@onairos/react-native 3.7.1 → 3.7.3

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 (241) hide show
  1. package/lib/commonjs/api/index.js +219 -9
  2. package/lib/commonjs/assets/icons/spotify.png +0 -0
  3. package/lib/commonjs/assets/images/spotify.png +0 -0
  4. package/lib/commonjs/components/BodyText.js +27 -9
  5. package/lib/commonjs/components/BrandMark.js +111 -10
  6. package/lib/commonjs/components/CodeInput.js +116 -9
  7. package/lib/commonjs/components/EmailInput.js +30 -8
  8. package/lib/commonjs/components/GoogleButton.js +56 -9
  9. package/lib/commonjs/components/HeadingGroup.js +43 -9
  10. package/lib/commonjs/components/LLMDataInputModal.js +664 -14
  11. package/lib/commonjs/components/ModalHeader.js +99 -9
  12. package/lib/commonjs/components/ModalSheet.js +47 -9
  13. package/lib/commonjs/components/Onairos.js +380 -14
  14. package/lib/commonjs/components/OnairosButton.js +313 -13
  15. package/lib/commonjs/components/OnairosSignInButton.js +130 -12
  16. package/lib/commonjs/components/Overlay.js +465 -13
  17. package/lib/commonjs/components/PersonaImage.js +137 -10
  18. package/lib/commonjs/components/PersonaLoadingScreen.js +318 -12
  19. package/lib/commonjs/components/PersonalizationConsentScreen.js +467 -13
  20. package/lib/commonjs/components/PinCreationScreen.js +403 -12
  21. package/lib/commonjs/components/PinInput.js +464 -9
  22. package/lib/commonjs/components/PlatformConnectorsStep.js +1311 -23
  23. package/lib/commonjs/components/PlatformList.js +137 -10
  24. package/lib/commonjs/components/PlatformToggle.js +180 -9
  25. package/lib/commonjs/components/PrimaryButton.js +180 -10
  26. package/lib/commonjs/components/SignInMatchAnimation.js +197 -9
  27. package/lib/commonjs/components/SignInStep.js +345 -12
  28. package/lib/commonjs/components/UniversalOnboarding.js +2780 -30
  29. package/lib/commonjs/components/VerificationStep.js +176 -11
  30. package/lib/commonjs/components/WelcomeScreen.js +461 -22
  31. package/lib/commonjs/components/icons/Basicproficon.js +37 -8
  32. package/lib/commonjs/components/icons/Basicprofile.js +21 -8
  33. package/lib/commonjs/components/icons/Checkbox.js +21 -8
  34. package/lib/commonjs/components/icons/Checkmark.js +27 -8
  35. package/lib/commonjs/components/icons/Contentanalysis.js +21 -8
  36. package/lib/commonjs/components/icons/Contenticon.js +39 -8
  37. package/lib/commonjs/components/icons/EnochE.js +41 -8
  38. package/lib/commonjs/components/icons/Personalityicon.js +30 -8
  39. package/lib/commonjs/components/icons/Personalityprofile.js +21 -8
  40. package/lib/commonjs/components/icons/Personalitytraits.js +21 -8
  41. package/lib/commonjs/components/icons/Userpreferences.js +21 -8
  42. package/lib/commonjs/components/icons/index.js +84 -17
  43. package/lib/commonjs/components/onboarding/OAuthWebView.js +1754 -18
  44. package/lib/commonjs/components/onboarding/OnboardingHeader.js +74 -10
  45. package/lib/commonjs/components/onboarding/PinInput.js +283 -10
  46. package/lib/commonjs/components/onboarding/PlatformConnector.js +249 -11
  47. package/lib/commonjs/config/PLATFORM_APIS.md +849 -0
  48. package/lib/commonjs/config/api.js +56 -7
  49. package/lib/commonjs/constants/index.js +120 -7
  50. package/lib/commonjs/context/AuthContext.js +345 -10
  51. package/lib/commonjs/hooks/useConnectedAccounts.js +111 -9
  52. package/lib/commonjs/hooks/useConnections.js +102 -8
  53. package/lib/commonjs/hooks/useCredentials.js +178 -10
  54. package/lib/commonjs/hooks/useUserConnections.js +148 -10
  55. package/lib/commonjs/index.js +439 -34
  56. package/lib/commonjs/services/apiClient.js +298 -8
  57. package/lib/commonjs/services/biometricPinService.js +180 -8
  58. package/lib/commonjs/services/chatGPTConversationExtractor.js +155 -8
  59. package/lib/commonjs/services/chatGPTConversationService.js +275 -9
  60. package/lib/commonjs/services/claudeConversationExtractor.js +103 -8
  61. package/lib/commonjs/services/claudeConversationService.js +158 -9
  62. package/lib/commonjs/services/connectedAccountsService.js +310 -10
  63. package/lib/commonjs/services/googleAuthService.js +252 -11
  64. package/lib/commonjs/services/hingeDataExtractor.js +105 -8
  65. package/lib/commonjs/services/hingeDataService.js +150 -9
  66. package/lib/commonjs/services/imageCompressionService.js +260 -7
  67. package/lib/commonjs/services/instagramDataExtractor.js +126 -8
  68. package/lib/commonjs/services/instagramDataService.js +163 -9
  69. package/lib/commonjs/services/jwtStorageService.js +276 -7
  70. package/lib/commonjs/services/linkedinDOMExtractor.js +245 -7
  71. package/lib/commonjs/services/linkedinProfileService.js +222 -9
  72. package/lib/commonjs/services/linkedinScrapingService.js +230 -8
  73. package/lib/commonjs/services/llmDataStorage.js +294 -8
  74. package/lib/commonjs/services/mobileTrainingService.js +186 -8
  75. package/lib/commonjs/services/netflixDataExtractor.js +120 -8
  76. package/lib/commonjs/services/netflixDataService.js +198 -9
  77. package/lib/commonjs/services/pinEncryptionService.js +84 -8
  78. package/lib/commonjs/services/pinStorageUtils.js +105 -7
  79. package/lib/commonjs/services/platformAuthService.js +1484 -12
  80. package/lib/commonjs/services/sephoraDataExtractor.js +140 -8
  81. package/lib/commonjs/services/sephoraDataService.js +200 -9
  82. package/lib/commonjs/services/spotifyDataExtractor.js +148 -8
  83. package/lib/commonjs/services/spotifyDataService.js +241 -9
  84. package/lib/commonjs/services/storageService.js +404 -8
  85. package/lib/commonjs/services/telegramDataExtractor.js +115 -8
  86. package/lib/commonjs/services/telegramDataService.js +499 -9
  87. package/lib/commonjs/services/trainingApiHelpers.js +73 -7
  88. package/lib/commonjs/services/userConnectionsService.js +340 -10
  89. package/lib/commonjs/services/youtubeMigrationService.js +416 -10
  90. package/lib/commonjs/theme/index.js +250 -7
  91. package/lib/commonjs/types/ambient.d.js +2 -1
  92. package/lib/commonjs/types/declarations.d.js +2 -1
  93. package/lib/commonjs/types/index.js +6 -1
  94. package/lib/commonjs/types/node-fix.d.js +2 -1
  95. package/lib/commonjs/types/node-override.d.js +2 -1
  96. package/lib/commonjs/types/opacity.d.js +2 -1
  97. package/lib/commonjs/types.js +14 -1
  98. package/lib/commonjs/utils/Portal.js +98 -8
  99. package/lib/commonjs/utils/api.js +130 -9
  100. package/lib/commonjs/utils/assetRegistry.js +210 -35
  101. package/lib/commonjs/utils/auth.js +112 -9
  102. package/lib/commonjs/utils/connectorTests.js +613 -29
  103. package/lib/commonjs/utils/crypto.js +62 -8
  104. package/lib/commonjs/utils/debugHelper.js +64 -1
  105. package/lib/commonjs/utils/encryption.js +76 -7
  106. package/lib/commonjs/utils/eventUtils.js +288 -1
  107. package/lib/commonjs/utils/haptics.js +66 -9
  108. package/lib/commonjs/utils/imagePreloader.js +6 -1
  109. package/lib/commonjs/utils/networkDiagnostics.js +226 -8
  110. package/lib/commonjs/utils/onairosApi.js +350 -9
  111. package/lib/commonjs/utils/programmaticFlow.js +117 -9
  112. package/lib/commonjs/utils/retryHelper.js +220 -1
  113. package/lib/commonjs/utils/secureStorage.js +349 -10
  114. package/lib/commonjs/utils/webviewScripts/chatgpt.js +551 -1
  115. package/lib/commonjs/utils/webviewScripts/claude.js +376 -1
  116. package/lib/commonjs/utils/webviewScripts/hinge.js +411 -1
  117. package/lib/commonjs/utils/webviewScripts/index.js +698 -15
  118. package/lib/commonjs/utils/webviewScripts/instagram.js +454 -1
  119. package/lib/commonjs/utils/webviewScripts/linkedin.js +880 -1
  120. package/lib/commonjs/utils/webviewScripts/netflix.js +382 -1
  121. package/lib/commonjs/utils/webviewScripts/sephora.js +516 -1
  122. package/lib/commonjs/utils/webviewScripts/spotify.js +419 -1
  123. package/lib/commonjs/utils/webviewScripts/telegram.js +678 -1
  124. package/lib/module/api/index.js +211 -1
  125. package/lib/module/assets/icons/spotify.png +0 -0
  126. package/lib/module/assets/images/spotify.png +0 -0
  127. package/lib/module/components/BodyText.js +20 -1
  128. package/lib/module/components/BrandMark.js +104 -1
  129. package/lib/module/components/CodeInput.js +109 -1
  130. package/lib/module/components/EmailInput.js +23 -1
  131. package/lib/module/components/GoogleButton.js +49 -1
  132. package/lib/module/components/HeadingGroup.js +36 -1
  133. package/lib/module/components/LLMDataInputModal.js +656 -7
  134. package/lib/module/components/ModalHeader.js +92 -1
  135. package/lib/module/components/ModalSheet.js +39 -1
  136. package/lib/module/components/Onairos.js +373 -1
  137. package/lib/module/components/OnairosButton.js +305 -1
  138. package/lib/module/components/OnairosSignInButton.js +121 -1
  139. package/lib/module/components/Overlay.js +456 -1
  140. package/lib/module/components/PersonaImage.js +129 -1
  141. package/lib/module/components/PersonaLoadingScreen.js +310 -1
  142. package/lib/module/components/PersonalizationConsentScreen.js +460 -1
  143. package/lib/module/components/PinCreationScreen.js +396 -1
  144. package/lib/module/components/PinInput.js +456 -1
  145. package/lib/module/components/PlatformConnectorsStep.js +1302 -6
  146. package/lib/module/components/PlatformList.js +129 -1
  147. package/lib/module/components/PlatformToggle.js +173 -1
  148. package/lib/module/components/PrimaryButton.js +172 -1
  149. package/lib/module/components/SignInMatchAnimation.js +189 -1
  150. package/lib/module/components/SignInStep.js +338 -1
  151. package/lib/module/components/UniversalOnboarding.js +2770 -1
  152. package/lib/module/components/VerificationStep.js +168 -1
  153. package/lib/module/components/WelcomeScreen.js +453 -1
  154. package/lib/module/components/icons/Basicproficon.js +30 -1
  155. package/lib/module/components/icons/Basicprofile.js +14 -1
  156. package/lib/module/components/icons/Checkbox.js +14 -1
  157. package/lib/module/components/icons/Checkmark.js +20 -1
  158. package/lib/module/components/icons/Contentanalysis.js +14 -1
  159. package/lib/module/components/icons/Contenticon.js +32 -1
  160. package/lib/module/components/icons/EnochE.js +34 -1
  161. package/lib/module/components/icons/Personalityicon.js +23 -1
  162. package/lib/module/components/icons/Personalityprofile.js +14 -1
  163. package/lib/module/components/icons/Personalitytraits.js +14 -1
  164. package/lib/module/components/icons/Userpreferences.js +14 -1
  165. package/lib/module/components/icons/index.js +13 -1
  166. package/lib/module/components/onboarding/OAuthWebView.js +1746 -1
  167. package/lib/module/components/onboarding/OnboardingHeader.js +66 -1
  168. package/lib/module/components/onboarding/PinInput.js +274 -1
  169. package/lib/module/components/onboarding/PlatformConnector.js +240 -1
  170. package/lib/module/config/PLATFORM_APIS.md +849 -0
  171. package/lib/module/config/api.js +47 -1
  172. package/lib/module/constants/index.js +114 -1
  173. package/lib/module/context/AuthContext.js +335 -1
  174. package/lib/module/hooks/useConnectedAccounts.js +106 -1
  175. package/lib/module/hooks/useConnections.js +95 -1
  176. package/lib/module/hooks/useCredentials.js +171 -6
  177. package/lib/module/hooks/useUserConnections.js +140 -1
  178. package/lib/module/index.js +172 -1
  179. package/lib/module/services/apiClient.js +295 -1
  180. package/lib/module/services/biometricPinService.js +169 -1
  181. package/lib/module/services/chatGPTConversationExtractor.js +149 -1
  182. package/lib/module/services/chatGPTConversationService.js +268 -1
  183. package/lib/module/services/claudeConversationExtractor.js +97 -1
  184. package/lib/module/services/claudeConversationService.js +151 -1
  185. package/lib/module/services/connectedAccountsService.js +293 -1
  186. package/lib/module/services/googleAuthService.js +241 -1
  187. package/lib/module/services/hingeDataExtractor.js +99 -1
  188. package/lib/module/services/hingeDataService.js +143 -1
  189. package/lib/module/services/imageCompressionService.js +250 -1
  190. package/lib/module/services/instagramDataExtractor.js +120 -1
  191. package/lib/module/services/instagramDataService.js +156 -1
  192. package/lib/module/services/jwtStorageService.js +257 -1
  193. package/lib/module/services/linkedinDOMExtractor.js +234 -1
  194. package/lib/module/services/linkedinProfileService.js +210 -1
  195. package/lib/module/services/linkedinScrapingService.js +219 -1
  196. package/lib/module/services/llmDataStorage.js +277 -1
  197. package/lib/module/services/mobileTrainingService.js +173 -1
  198. package/lib/module/services/netflixDataExtractor.js +114 -1
  199. package/lib/module/services/netflixDataService.js +191 -1
  200. package/lib/module/services/pinEncryptionService.js +74 -6
  201. package/lib/module/services/pinStorageUtils.js +93 -1
  202. package/lib/module/services/platformAuthService.js +1461 -1
  203. package/lib/module/services/sephoraDataExtractor.js +134 -1
  204. package/lib/module/services/sephoraDataService.js +193 -1
  205. package/lib/module/services/spotifyDataExtractor.js +142 -1
  206. package/lib/module/services/spotifyDataService.js +234 -1
  207. package/lib/module/services/storageService.js +383 -1
  208. package/lib/module/services/telegramDataExtractor.js +109 -1
  209. package/lib/module/services/telegramDataService.js +493 -1
  210. package/lib/module/services/trainingApiHelpers.js +67 -1
  211. package/lib/module/services/userConnectionsService.js +329 -1
  212. package/lib/module/services/youtubeMigrationService.js +405 -1
  213. package/lib/module/theme/index.js +245 -1
  214. package/lib/module/types.js +10 -1
  215. package/lib/module/utils/Portal.js +90 -1
  216. package/lib/module/utils/api.js +118 -1
  217. package/lib/module/utils/assetRegistry.js +200 -34
  218. package/lib/module/utils/auth.js +100 -1
  219. package/lib/module/utils/connectorTests.js +600 -27
  220. package/lib/module/utils/crypto.js +54 -1
  221. package/lib/module/utils/debugHelper.js +54 -1
  222. package/lib/module/utils/encryption.js +67 -1
  223. package/lib/module/utils/eventUtils.js +270 -1
  224. package/lib/module/utils/haptics.js +59 -8
  225. package/lib/module/utils/imagePreloader.js +3 -1
  226. package/lib/module/utils/networkDiagnostics.js +217 -1
  227. package/lib/module/utils/onairosApi.js +333 -1
  228. package/lib/module/utils/programmaticFlow.js +111 -1
  229. package/lib/module/utils/retryHelper.js +211 -1
  230. package/lib/module/utils/secureStorage.js +330 -6
  231. package/lib/module/utils/webviewScripts/chatgpt.js +545 -1
  232. package/lib/module/utils/webviewScripts/claude.js +370 -1
  233. package/lib/module/utils/webviewScripts/hinge.js +405 -1
  234. package/lib/module/utils/webviewScripts/index.js +434 -1
  235. package/lib/module/utils/webviewScripts/instagram.js +448 -1
  236. package/lib/module/utils/webviewScripts/linkedin.js +874 -1
  237. package/lib/module/utils/webviewScripts/netflix.js +376 -1
  238. package/lib/module/utils/webviewScripts/sephora.js +510 -1
  239. package/lib/module/utils/webviewScripts/spotify.js +413 -1
  240. package/lib/module/utils/webviewScripts/telegram.js +672 -1
  241. package/package.json +2 -2
@@ -1,12 +1,403 @@
1
- 'use strict';
2
- // Onairos SDK - Asset Registry (auto-generated)
3
- var __ONAIROS_REQ_REGISTRY__ = [
4
- require("react"),
5
- require("react-native"),
6
- require("../theme"),
7
- require("../utils/haptics"),
8
- require("../services/biometricPinService"),
9
- require("../services/pinStorageUtils")
10
- ];
11
- function __ONAIROS_REQ_FUNC__(i) { return __ONAIROS_REQ_REGISTRY__[i]; }
12
- function _0x2bdf(_0x1bf3b7,_0x2bdf1c){_0x1bf3b7=_0x1bf3b7-0x0;const _0x5c2846=_0x1bf3();let _0x2c7f17=_0x5c2846[_0x1bf3b7];return _0x2c7f17;}Object['defineProperty'](exports,_0x2bdf(0x0),{'value':!![]}),exports[_0x2bdf(0x1)]=exports['PinCreationScreen']=void 0x0;var _react=_interopRequireWildcard(__ONAIROS_REQ_FUNC__(0x0)),_reactNative=__ONAIROS_REQ_FUNC__(0x1),_theme=__ONAIROS_REQ_FUNC__(0x2),_haptics=__ONAIROS_REQ_FUNC__(0x3),_biometricPinService=__ONAIROS_REQ_FUNC__(0x4),_pinStorageUtils=__ONAIROS_REQ_FUNC__(0x5);function _interopRequireWildcard(_0x5b3293,_0x43a2df){const _0x684020={'IddbH':function(_0x1ad0e1,_0xcc1e46){return _0x1ad0e1===_0xcc1e46;},'vAPjC':function(_0x516048,_0x188eb0){return _0x516048!=_0x188eb0;},'xUURa':'object','bkrIv':function(_0x4bd321,_0x223612){return _0x4bd321!=_0x223612;},'TBzBd':function(_0x329e71,_0x592e4a){return _0x329e71!==_0x592e4a;},'wZUhy':_0x2bdf(0x1),'uXsFy':function(_0x40f98e,_0x162de5,_0x2cd61d,_0x4c8e4c){return _0x40f98e(_0x162de5,_0x2cd61d,_0x4c8e4c);},'HbHtn':function(_0x20d6a1,_0x5afc55){return _0x20d6a1==_0x5afc55;},'UDyKG':_0x2bdf(0x2)};if(_0x684020['HbHtn'](_0x684020['UDyKG'],typeof WeakMap))var _0x296e44=new WeakMap(),_0x1139aa=new WeakMap();return(_interopRequireWildcard=function(_0x123c89,_0x4aad66){if(!_0x4aad66&&_0x123c89&&_0x123c89[_0x2bdf(0x0)])return _0x123c89;var _0xd9f27,_0x191d0c,_0x3c7e4a={'__proto__':null,'default':_0x123c89};if(_0x684020[_0x2bdf(0x3)](null,_0x123c89)||_0x684020[_0x2bdf(0x4)](_0x684020[_0x2bdf(0x5)],typeof _0x123c89)&&_0x684020[_0x2bdf(0x6)](_0x2bdf(0x2),typeof _0x123c89))return _0x3c7e4a;if(_0xd9f27=_0x4aad66?_0x1139aa:_0x296e44){if(_0xd9f27[_0x2bdf(0x7)](_0x123c89))return _0xd9f27[_0x2bdf(0x8)](_0x123c89);_0xd9f27[_0x2bdf(0x9)](_0x123c89,_0x3c7e4a);}for(const _0x51e8b0 in _0x123c89)_0x684020[_0x2bdf(0xa)](_0x684020[_0x2bdf(0xb)],_0x51e8b0)&&{}[_0x2bdf(0xc)][_0x2bdf(0xd)](_0x123c89,_0x51e8b0)&&((_0x191d0c=(_0xd9f27=Object[_0x2bdf(0xe)])&&Object[_0x2bdf(0xf)](_0x123c89,_0x51e8b0))&&(_0x191d0c[_0x2bdf(0x8)]||_0x191d0c[_0x2bdf(0x9)])?_0x684020[_0x2bdf(0x10)](_0xd9f27,_0x3c7e4a,_0x51e8b0,_0x191d0c):_0x3c7e4a[_0x51e8b0]=_0x123c89[_0x51e8b0]);return _0x3c7e4a;})(_0x5b3293,_0x43a2df);}const PinCreationScreen=({visible:_0x2f216c,onComplete:_0x10b80d,onBack:_0x1d397a})=>{const _0x973669={'GtZoa':_0x2bdf(0x11),'paaRt':function(_0xa5b5bd,_0x59caff){return _0xa5b5bd>=_0x59caff;},'mrCFT':function(_0x4be76f,_0x81cec9){return _0x4be76f(_0x81cec9);},'pxrtL':function(_0x27d1b8,_0x3f1052){return _0x27d1b8(_0x3f1052);},'Nlbuv':'Invalid\x20PIN','mAcSJ':_0x2bdf(0x12),'OkJZv':_0x2bdf(0x13),'XenKj':function(_0x669983,_0x75a9a6){return _0x669983(_0x75a9a6);},'oyjzU':_0x2bdf(0x14),'MXhyP':'❌\x20Error\x20checking\x20biometric\x20availability:','msGnf':function(_0x21d4e3,_0x304347){return _0x21d4e3(_0x304347);},'GRiVT':function(_0x1a1515,_0x3caebb){return _0x1a1515!=_0x3caebb;},'DxzZl':_0x2bdf(0x2),'LLHkJ':function(_0x1a7cae,_0x58a38e){return _0x1a7cae!==_0x58a38e;},'RfrEC':_0x2bdf(0x1),'dZDVC':function(_0x357ee8,_0x21baeb){return _0x357ee8===_0x21baeb;},'JLevI':'LoSPs','SyLLS':_0x2bdf(0x15),'ewvYR':function(_0x1338d6,_0x290d2c){return _0x1338d6(_0x290d2c);},'HQJOz':_0x2bdf(0x16),'riFHU':_0x2bdf(0x17),'TjDUh':function(_0x8e59b4,_0x1c0164){return _0x8e59b4(_0x1c0164);},'aqJHf':_0x2bdf(0x18),'fvVdf':function(_0xd7d346,_0x41400d,_0x2b6955){return _0xd7d346(_0x41400d,_0x2b6955);},'EjSix':function(_0x129cbb,_0x1802c2){return _0x129cbb===_0x1802c2;},'obLWL':_0x2bdf(0x19),'svoMo':function(_0x5784e7,_0x25444e){return _0x5784e7(_0x25444e);},'RwsIj':function(_0x420269,_0x34ce23){return _0x420269!==_0x34ce23;},'ltpQD':_0x2bdf(0x1a),'ccwzy':_0x2bdf(0x1b),'VjPYD':function(_0x256f94,_0xf596c1){return _0x256f94===_0xf596c1;},'trDzV':_0x2bdf(0x1c),'RPHBE':_0x2bdf(0x1d),'UdgrB':'🔐\x20[PIN\x20CREATION]\x20Biometric\x20storage\x20enabled,\x20starting\x20biometric\x20flow...','rmUYB':_0x2bdf(0x1e),'dftIS':_0x2bdf(0x1f),'WogtF':function(_0xf78ec0,_0xf63c37){return _0xf78ec0(_0xf63c37);},'MhokQ':_0x2bdf(0x20),'wRRGJ':function(_0x278372,_0x923109){return _0x278372!==_0x923109;},'sUPAF':_0x2bdf(0x21),'joALM':'✅\x20PIN\x20storage\x20verified\x20-\x20proceeding\x20with\x20onboarding','EvFZJ':function(_0x54ff0f,_0x5b89a6){return _0x54ff0f(_0x5b89a6);},'tTlPQ':_0x2bdf(0x22),'DIRFt':function(_0x4c2527,_0x29bbb7){return _0x4c2527(_0x29bbb7);},'uNWeH':'PIN\x20Storage\x20Error','JDDtd':_0x2bdf(0x23),'VkkrV':_0x2bdf(0x24),'AheNN':'Bkczp','PHUte':_0x2bdf(0x25),'MtCCQ':function(_0x3906b6,_0x19c8e2){return _0x3906b6(_0x19c8e2);},'yCPlC':_0x2bdf(0x26),'LoQPO':_0x2bdf(0x27),'XOqYl':_0x2bdf(0x28),'cRDjt':_0x2bdf(0x29),'hwrvQ':function(_0x37a80f,_0x248c2d){return _0x37a80f(_0x248c2d);},'ZRNii':function(_0xead22f,_0x1bf138){return _0xead22f(_0x1bf138);},'FNUqq':function(_0x206572,_0x33ce8f){return _0x206572===_0x33ce8f;},'gbzvp':_0x2bdf(0x2a),'LtnkN':'PIN\x20Creation\x20Error','TmRdZ':_0x2bdf(0x2b),'ayMrp':'❌\x20Error\x20in\x20PIN\x20creation\x20process:','QsPga':function(_0x575274){return _0x575274();},'MDGko':function(_0x12daba,_0x117532){return _0x12daba===_0x117532;},'lxjuI':_0x2bdf(0x2c),'qqEmf':function(_0x45af6d,_0x117cfc){return _0x45af6d(_0x117cfc);},'SVGCr':_0x2bdf(0x2d),'MKCVB':function(_0x51f829,_0x215b15){return _0x51f829(_0x215b15);},'SiDGo':function(_0x45d2a8,_0x3a53fc){return _0x45d2a8(_0x3a53fc);},'WAJeb':_0x2bdf(0x2e),'mHzzl':_0x2bdf(0x2f),'zkpVX':'Enter\x20your\x20PIN','fGzkK':_0x2bdf(0x30),'QJPtg':_0x2bdf(0x31),'asIsA':_0x2bdf(0x32),'FFccN':_0x2bdf(0x33),'GrKky':_0x2bdf(0x34),'WNugC':function(_0x475ee9,_0x6e4729){return _0x475ee9===_0x6e4729;},'ogmvr':'small','xdDyH':_0x2bdf(0x35),'UfBPn':_0x2bdf(0x36),'emqun':function(_0x58ffd9,_0x9ac5a4){return _0x58ffd9===_0x9ac5a4;},'axagv':function(_0x214a8a,_0x459613){return _0x214a8a===_0x459613;},'gCCsN':function(_0x1aca7b,_0x1df655){return _0x1aca7b===_0x1df655;},'zVezO':_0x2bdf(0x37),'YmpUY':_0x2bdf(0x38),'MOPWH':function(_0x2e9eac,_0xb25b51){return _0x2e9eac===_0xb25b51;},'hWJqc':_0x2bdf(0x39),'gvpsI':_0x2bdf(0x3a),'SxUSS':function(_0xf74345,_0x51cb02){return _0xf74345===_0x51cb02;},'ypACN':_0x2bdf(0x3b),'KSiKB':_0x2bdf(0x3c),'QvBjd':_0x2bdf(0x3d),'rkNxX':function(_0x37bc34,_0x3e2536){return _0x37bc34===_0x3e2536;},'Attou':_0x2bdf(0x3e),'uEKCO':function(_0x11eb03,_0x5e06e3){return _0x11eb03===_0x5e06e3;},'sxiTd':'Face\x20ID\x20is\x20not\x20available\x20on\x20this\x20device.\x20Your\x20PIN\x20will\x20be\x20stored\x20securely.','zGyEb':_0x2bdf(0x3f),'FpUrV':function(_0x4839eb,_0x509795){return _0x4839eb===_0x509795;},'CCaTp':_0x2bdf(0x40),'FhAHZ':function(_0x9cb204,_0x570b39){return _0x9cb204||_0x570b39;},'nfUqc':_0x2bdf(0x41)},[_0x4ae02c,_0x409fc8]=(0x0,_react[_0x2bdf(0x42)])(''),[_0x2c0166,_0x566ab8]=(0x0,_react[_0x2bdf(0x42)])({'length':![],'uppercase':![],'number':![],'symbol':![]}),[_0x41b240,_0x575a8c]=(0x0,_react['useState'])(![]),[_0x3cb7ff,_0x45ba7f]=(0x0,_react['useState'])(![]),[_0xe827ca,_0x1642bd]=(0x0,_react[_0x2bdf(0x42)])(_0x973669[_0x2bdf(0x43)]),_0x37aa27=_0x1e458b=>{if(_0x973669[_0x2bdf(0x44)]!==_0x973669[_0x2bdf(0x44)])(0x0,_0x1f3243[_0x2bdf(0x45)])(_0x323a49[_0x2bdf(0x46)]['BUTTON_PRESS']),_0x3e64f2();else{const _0x177399={'length':_0x973669['paaRt'](_0x1e458b[_0x2bdf(0x47)],0x8),'uppercase':/[A-Z]/[_0x2bdf(0x48)](_0x1e458b),'number':/[0-9]/['test'](_0x1e458b),'symbol':/[!@#$%^&*(),.?":{}|<>]/[_0x2bdf(0x48)](_0x1e458b)};return _0x566ab8(_0x177399),Object['values'](_0x177399)[_0x2bdf(0x49)](_0xb47b1e=>_0xb47b1e);}},_0x40e058=_0x5f38be=>{_0x973669[_0x2bdf(0x4a)](_0x409fc8,_0x5f38be),_0x973669[_0x2bdf(0x4a)](_0x37aa27,_0x5f38be);},_0xd3de81=async()=>{const _0x54b780={'ExXPZ':_0x2bdf(0x2),'ElkZB':function(_0x29b8b7,_0x2a08a7){return _0x973669['pxrtL'](_0x29b8b7,_0x2a08a7);},'HvqYJ':_0x973669[_0x2bdf(0x4b)],'jTcCI':function(_0x513b86,_0x3f08d3,_0x3ef09a){return _0x973669['fvVdf'](_0x513b86,_0x3f08d3,_0x3ef09a);}};if(_0x973669['EjSix']('xaBFd',_0x973669[_0x2bdf(0x4c)]))_0x541f8b(_0x348751),_0x973669[_0x2bdf(0x4d)](_0x458d0e,_0x56a54f);else{if(!_0x37aa27(_0x4ae02c)){(0x0,_haptics[_0x2bdf(0x45)])(_haptics['HapticType']['ERROR']),_reactNative[_0x2bdf(0x4e)][_0x2bdf(0x4f)]('Invalid\x20PIN',_0x973669[_0x2bdf(0x50)]);return;}(0x0,_haptics[_0x2bdf(0x45)])(_haptics[_0x2bdf(0x46)][_0x2bdf(0x51)]),_0x973669[_0x2bdf(0x52)](_0x575a8c,!![]);try{if(_0x973669['RwsIj'](_0x973669[_0x2bdf(0x53)],_0x973669['ltpQD'])){(0x0,_0x1f728d['triggerHaptic'])(_0xc8ae64['HapticType'][_0x2bdf(0x54)]),_0x7cbef2[_0x2bdf(0x4e)][_0x2bdf(0x4f)](_0x973669[_0x2bdf(0x55)],_0x973669['mAcSJ']);return;}else{console['log'](_0x973669['ccwzy']),(0x0,_pinStorageUtils['setTemporaryPin'])(_0x4ae02c),console['log'](_0x2bdf(0x56));if(_0x3cb7ff){if(_0x973669[_0x2bdf(0x57)](_0x973669[_0x2bdf(0x58)],_0x973669[_0x2bdf(0x59)])){if(_0x504378[_0x2bdf(0x7)](_0x523380))return _0x4d742c['get'](_0xd8def1);_0x18ecf0[_0x2bdf(0x9)](_0x16f227,_0x20c1f1);}else{_0x973669[_0x2bdf(0x5a)](_0x1642bd,'storing'),console['log'](_0x973669['UdgrB']);const _0x31f44d=await _biometricPinService[_0x2bdf(0x5b)][_0x2bdf(0x5c)]();console['log'](_0x973669[_0x2bdf(0x5d)],_0x31f44d);if(!_0x31f44d){console[_0x2bdf(0x22)](_0x973669['dftIS']),_0x1642bd(_0x973669['oyjzU']),_0x973669[_0x2bdf(0x5e)](_0x575a8c,![]);return;}console[_0x2bdf(0x5f)](_0x973669[_0x2bdf(0x60)]);const _0x570114=await _biometricPinService[_0x2bdf(0x5b)][_0x2bdf(0x61)](_0x4ae02c);if(_0x570114){if(_0x973669['wRRGJ'](_0x2bdf(0x62),_0x973669[_0x2bdf(0x63)])){console[_0x2bdf(0x5f)](_0x2bdf(0x64));const _0x1f3db4=await _biometricPinService[_0x2bdf(0x5b)][_0x2bdf(0x65)]();if(_0x1f3db4)console['log'](_0x973669[_0x2bdf(0x66)]),_0x973669[_0x2bdf(0x67)](_0x1642bd,_0x973669[_0x2bdf(0x4b)]),(0x0,_haptics[_0x2bdf(0x45)])(_haptics[_0x2bdf(0x46)][_0x2bdf(0x68)]),setTimeout(()=>{_0x973669[_0x2bdf(0x4d)](_0x575a8c,![]),_0x10b80d(_0x4ae02c);},0x320);else{const _0x37aa16=_0x2bdf(0x69)['split']('|');let _0x5c4fe3=0x0;while(!![]){switch(_0x37aa16[_0x5c4fe3++]){case'0':_0x1642bd(_0x973669[_0x2bdf(0x6a)]);continue;case'1':_0x973669[_0x2bdf(0x6b)](_0x575a8c,![]);continue;case'2':(0x0,_haptics[_0x2bdf(0x45)])(_haptics[_0x2bdf(0x46)]['ERROR']);continue;case'3':_reactNative[_0x2bdf(0x4e)]['alert'](_0x973669[_0x2bdf(0x6c)],_0x973669[_0x2bdf(0x6d)],[{'text':'OK'}]);continue;case'4':console[_0x2bdf(0x22)](_0x973669[_0x2bdf(0x6e)]);continue;}break;}}}else _0x3c598f[_0x2bdf(0x5f)](_0x973669[_0x2bdf(0x6f)]),_0x973669['XenKj'](_0x337627,_0x973669['oyjzU']),_0x973669['mrCFT'](_0x1ac7ce,![]),_0x4a8c4d(_0x3825ce);}else'Bkczp'!==_0x973669[_0x2bdf(0x70)]?(_0x45375c[_0x2bdf(0x22)](_0x973669[_0x2bdf(0x71)],_0xb152f),_0x973669[_0x2bdf(0x4a)](_0x394f5f,![]),_0x973669[_0x2bdf(0x5a)](_0x52535d,_0x973669['oyjzU'])):(console[_0x2bdf(0x5f)](_0x973669[_0x2bdf(0x72)]),_0x973669[_0x2bdf(0x73)](_0x1642bd,_0x2bdf(0x22)),(0x0,_haptics[_0x2bdf(0x45)])(_haptics[_0x2bdf(0x46)][_0x2bdf(0x54)]),_reactNative[_0x2bdf(0x4e)][_0x2bdf(0x4f)](_0x973669[_0x2bdf(0x74)],_0x973669[_0x2bdf(0x75)],[{'text':_0x973669[_0x2bdf(0x76)],'onPress':()=>{const _0x1195c4={'BkJHL':function(_0x18791c,_0x5a89b1){return _0x18791c&&_0x5a89b1;},'nFEDG':function(_0xd17cd,_0x3c606d){return _0xd17cd===_0x3c606d;},'HydaT':function(_0x353ef8,_0x18e227){return _0x973669['GRiVT'](_0x353ef8,_0x18e227);},'HiHzr':_0x2bdf(0x77),'tGICR':_0x973669[_0x2bdf(0x78)],'zDVRT':function(_0x303ddb,_0x224621){return _0x973669['LLHkJ'](_0x303ddb,_0x224621);},'qfcyq':_0x973669['RfrEC']};if(_0x973669[_0x2bdf(0x79)](_0x973669['JLevI'],_0x973669['SyLLS'])){if(_0x54b780[_0x2bdf(0x7a)]==typeof _0xd453e8)var _0x138bbb=new _0x4f4ca9(),_0x5a28ee=new _0x1ab32c();return(_0x4d2b63=function(_0x8f5cf6,_0x5befbe){if(_0x1195c4[_0x2bdf(0x7b)](!_0x5befbe,_0x8f5cf6)&&_0x8f5cf6['__esModule'])return _0x8f5cf6;var _0x21069f,_0x312ffd,_0x270872={'__proto__':null,'default':_0x8f5cf6};if(_0x1195c4['nFEDG'](null,_0x8f5cf6)||_0x1195c4[_0x2bdf(0x7c)](_0x1195c4[_0x2bdf(0x7d)],typeof _0x8f5cf6)&&_0x1195c4['tGICR']!=typeof _0x8f5cf6)return _0x270872;if(_0x21069f=_0x5befbe?_0x5a28ee:_0x138bbb){if(_0x21069f[_0x2bdf(0x7)](_0x8f5cf6))return _0x21069f[_0x2bdf(0x8)](_0x8f5cf6);_0x21069f[_0x2bdf(0x9)](_0x8f5cf6,_0x270872);}for(const _0x594326 in _0x8f5cf6)_0x1195c4[_0x2bdf(0x7e)](_0x1195c4['qfcyq'],_0x594326)&&{}[_0x2bdf(0xc)][_0x2bdf(0xd)](_0x8f5cf6,_0x594326)&&((_0x312ffd=(_0x21069f=_0x7347ed[_0x2bdf(0xe)])&&_0x1d44c3[_0x2bdf(0xf)](_0x8f5cf6,_0x594326))&&(_0x312ffd[_0x2bdf(0x8)]||_0x312ffd['set'])?_0x21069f(_0x270872,_0x594326,_0x312ffd):_0x270872[_0x594326]=_0x8f5cf6[_0x594326]);return _0x270872;})(_0x1c9432,_0x41d12c);}else _0x973669['ewvYR'](_0x575a8c,![]),_0x1642bd(_0x973669[_0x2bdf(0x7f)]);}},{'text':_0x973669['cRDjt'],'onPress':()=>{const _0xb7ebb9={'Knvfg':function(_0x1d02b5){return _0x1d02b5();}};_0x973669[_0x2bdf(0x79)](_0x973669[_0x2bdf(0x80)],_0x973669[_0x2bdf(0x80)])?(_0x575a8c(![]),_0x973669[_0x2bdf(0x81)](_0x10b80d,_0x4ae02c)):_0xb7ebb9[_0x2bdf(0x82)](_0x1efafe);}}]));}}else console[_0x2bdf(0x5f)](_0x973669['OkJZv']),_0x973669[_0x2bdf(0x83)](_0x1642bd,_0x973669[_0x2bdf(0x84)]),_0x973669[_0x2bdf(0x4a)](_0x575a8c,![]),_0x973669[_0x2bdf(0x85)](_0x10b80d,_0x4ae02c);}}catch(_0x1ee316){if(_0x973669[_0x2bdf(0x86)]('nTwfU',_0x973669['gbzvp']))_0x3e6b7b['log']('✅\x20PIN\x20storage\x20verified\x20-\x20proceeding\x20with\x20onboarding'),_0x54b780[_0x2bdf(0x87)](_0x39530b,_0x54b780[_0x2bdf(0x88)]),(0x0,_0x11ede4[_0x2bdf(0x45)])(_0x303fd2[_0x2bdf(0x46)][_0x2bdf(0x68)]),_0x54b780['jTcCI'](_0x524dbc,()=>{_0x59e7e8(![]),_0x54b780[_0x2bdf(0x87)](_0x5430f6,_0x3445df);},0x320);else{const _0x8e5c9e=_0x2bdf(0x89)[_0x2bdf(0x8a)]('|');let _0x312d9f=0x0;while(!![]){switch(_0x8e5c9e[_0x312d9f++]){case'0':_0x575a8c(![]);continue;case'1':(0x0,_haptics[_0x2bdf(0x45)])(_haptics[_0x2bdf(0x46)]['ERROR']);continue;case'2':_0x973669[_0x2bdf(0x4a)](_0x1642bd,_0x973669['tTlPQ']);continue;case'3':_reactNative['Alert']['alert'](_0x973669[_0x2bdf(0x8b)],_0x973669[_0x2bdf(0x8c)],[{'text':'OK'}]);continue;case'4':console['error'](_0x973669['ayMrp'],_0x1ee316);continue;}break;}}}}},_0x163554=()=>{(0x0,_haptics[_0x2bdf(0x45)])(_haptics[_0x2bdf(0x46)][_0x2bdf(0x51)]),_0x973669[_0x2bdf(0x8d)](_0x1d397a);};(0x0,_react[_0x2bdf(0x8e)])(()=>{const _0x1ffbff={'RjYDL':function(_0x5eb385,_0x9f9e34){return _0x973669[_0x2bdf(0x8f)](_0x5eb385,_0x9f9e34);},'yGvAU':function(_0x585338,_0x3a6245){return _0x585338(_0x3a6245);}},_0xe35833=async()=>{try{if(_0x973669[_0x2bdf(0x90)](_0x973669[_0x2bdf(0x91)],_0x973669[_0x2bdf(0x91)])){_0x973669['qqEmf'](_0x1642bd,_0x973669[_0x2bdf(0x43)]);const _0x22d380=await _biometricPinService[_0x2bdf(0x5b)][_0x2bdf(0x5c)]();_0x973669[_0x2bdf(0x92)](_0x45ba7f,_0x22d380),_0x973669[_0x2bdf(0x93)](_0x1642bd,_0x22d380?_0x973669[_0x2bdf(0x7f)]:_0x973669[_0x2bdf(0x84)]),console['log'](_0x973669[_0x2bdf(0x94)],_0x22d380);}else{const _0x479e80={'length':_0x1ffbff[_0x2bdf(0x95)](_0x5ae6c4[_0x2bdf(0x47)],0x8),'uppercase':/[A-Z]/[_0x2bdf(0x48)](_0x32f20d),'number':/[0-9]/[_0x2bdf(0x48)](_0x5cb38c),'symbol':/[!@#$%^&*(),.?":{}|<>]/['test'](_0x515f89)};return _0x1ffbff['yGvAU'](_0x29e648,_0x479e80),_0x3715ec[_0x2bdf(0x96)](_0x479e80)[_0x2bdf(0x49)](_0x3dabd9=>_0x3dabd9);}}catch(_0x397b70){console['error'](_0x973669[_0x2bdf(0x71)],_0x397b70),_0x45ba7f(![]),_0x973669[_0x2bdf(0x83)](_0x1642bd,_0x973669[_0x2bdf(0x84)]);}};_0x2f216c&&_0x973669['QsPga'](_0xe35833);},[_0x2f216c]);const _0x3ea9e3=Object['values'](_0x2c0166)[_0x2bdf(0x49)](_0x416275=>_0x416275);if(!_0x2f216c)return null;return _react[_0x2bdf(0x1)][_0x2bdf(0x97)](_reactNative['View'],{'style':styles[_0x2bdf(0x98)]},_react['default']['createElement'](_reactNative['View'],{'style':styles[_0x2bdf(0x99)]},_react[_0x2bdf(0x1)][_0x2bdf(0x97)](_reactNative[_0x2bdf(0x9a)],{'style':styles[_0x2bdf(0x9b)]},_0x973669[_0x2bdf(0x9c)]),_react[_0x2bdf(0x1)][_0x2bdf(0x97)](_reactNative[_0x2bdf(0x9a)],{'style':styles[_0x2bdf(0x9d)]},_0x2bdf(0x9e))),_react[_0x2bdf(0x1)][_0x2bdf(0x97)](_reactNative[_0x2bdf(0x9f)],{'style':styles[_0x2bdf(0xa0)]},_react[_0x2bdf(0x1)][_0x2bdf(0x97)](_reactNative[_0x2bdf(0xa1)],{'style':styles[_0x2bdf(0xa2)],'value':_0x4ae02c,'onChangeText':_0x40e058,'placeholder':_0x973669[_0x2bdf(0xa3)],'secureTextEntry':!![],'autoFocus':!![],'maxLength':0x14})),_react[_0x2bdf(0x1)][_0x2bdf(0x97)](_reactNative[_0x2bdf(0x9f)],{'style':styles[_0x2bdf(0xa4)]},_react[_0x2bdf(0x1)][_0x2bdf(0x97)](_reactNative[_0x2bdf(0x9a)],{'style':styles['requirementsTitle']},_0x973669[_0x2bdf(0xa5)]),_react[_0x2bdf(0x1)][_0x2bdf(0x97)](_reactNative[_0x2bdf(0x9f)],{'style':styles[_0x2bdf(0xa6)]},_react[_0x2bdf(0x1)][_0x2bdf(0x97)](_reactNative[_0x2bdf(0x9f)],{'style':[styles[_0x2bdf(0xa7)],_0x2c0166[_0x2bdf(0x47)]&&styles['checkboxChecked']]},_0x2c0166[_0x2bdf(0x47)]&&_react[_0x2bdf(0x1)][_0x2bdf(0x97)](_reactNative['Text'],{'style':styles[_0x2bdf(0xa8)]},'✓')),_react[_0x2bdf(0x1)][_0x2bdf(0x97)](_reactNative['Text'],{'style':[styles[_0x2bdf(0xa9)],_0x2c0166['length']&&styles[_0x2bdf(0xaa)]]},_0x973669[_0x2bdf(0xab)])),_react[_0x2bdf(0x1)][_0x2bdf(0x97)](_reactNative[_0x2bdf(0x9f)],{'style':styles[_0x2bdf(0xa6)]},_react[_0x2bdf(0x1)][_0x2bdf(0x97)](_reactNative['View'],{'style':[styles['checkbox'],_0x2c0166[_0x2bdf(0xac)]&&styles[_0x2bdf(0xad)]]},_0x2c0166[_0x2bdf(0xac)]&&_react[_0x2bdf(0x1)]['createElement'](_reactNative[_0x2bdf(0x9a)],{'style':styles[_0x2bdf(0xa8)]},'✓')),_react[_0x2bdf(0x1)][_0x2bdf(0x97)](_reactNative[_0x2bdf(0x9a)],{'style':[styles[_0x2bdf(0xa9)],_0x2c0166[_0x2bdf(0xac)]&&styles['requirementTextMet']]},_0x973669[_0x2bdf(0xae)])),_react[_0x2bdf(0x1)][_0x2bdf(0x97)](_reactNative['View'],{'style':styles[_0x2bdf(0xa6)]},_react[_0x2bdf(0x1)]['createElement'](_reactNative[_0x2bdf(0x9f)],{'style':[styles[_0x2bdf(0xa7)],_0x2c0166[_0x2bdf(0xaf)]&&styles[_0x2bdf(0xad)]]},_0x2c0166['number']&&_react[_0x2bdf(0x1)][_0x2bdf(0x97)](_reactNative[_0x2bdf(0x9a)],{'style':styles[_0x2bdf(0xa8)]},'✓')),_react[_0x2bdf(0x1)][_0x2bdf(0x97)](_reactNative[_0x2bdf(0x9a)],{'style':[styles['requirementText'],_0x2c0166[_0x2bdf(0xaf)]&&styles[_0x2bdf(0xaa)]]},_0x973669[_0x2bdf(0xb0)])),_react['default']['createElement'](_reactNative[_0x2bdf(0x9f)],{'style':styles['requirementItem']},_react[_0x2bdf(0x1)][_0x2bdf(0x97)](_reactNative[_0x2bdf(0x9f)],{'style':[styles['checkbox'],_0x2c0166[_0x2bdf(0xb1)]&&styles[_0x2bdf(0xad)]]},_0x2c0166[_0x2bdf(0xb1)]&&_react['default']['createElement'](_reactNative['Text'],{'style':styles['checkmark']},'✓')),_react['default'][_0x2bdf(0x97)](_reactNative[_0x2bdf(0x9a)],{'style':[styles['requirementText'],_0x2c0166['symbol']&&styles[_0x2bdf(0xaa)]]},_0x973669['GrKky']))),_react[_0x2bdf(0x1)]['createElement'](_reactNative[_0x2bdf(0x9f)],{'style':[styles[_0x2bdf(0xb2)],_0xe827ca===_0x973669[_0x2bdf(0x4b)]&&styles[_0x2bdf(0xb3)],_0x973669[_0x2bdf(0x79)](_0xe827ca,_0x973669[_0x2bdf(0x6a)])&&styles['securityCardError']]},_react[_0x2bdf(0x1)][_0x2bdf(0x97)](_reactNative['View'],{'style':styles['securityIconContainer']},_0x973669['WNugC'](_0xe827ca,_0x973669[_0x2bdf(0x43)])&&_react[_0x2bdf(0x1)][_0x2bdf(0x97)](_reactNative[_0x2bdf(0xb4)],{'size':_0x973669[_0x2bdf(0xb5)],'color':_theme[_0x2bdf(0xb6)][_0x2bdf(0xb7)]}),_0x973669[_0x2bdf(0x79)](_0xe827ca,_0x973669[_0x2bdf(0xb8)])&&_react[_0x2bdf(0x1)]['createElement'](_reactNative['ActivityIndicator'],{'size':_0x973669[_0x2bdf(0xb5)],'color':_0x973669[_0x2bdf(0xb9)]}),_0x973669[_0x2bdf(0xba)](_0xe827ca,_0x2bdf(0x16))&&_react[_0x2bdf(0x1)][_0x2bdf(0x97)](_reactNative['Text'],{'style':styles[_0x2bdf(0xbb)]},'🔐'),_0xe827ca===_0x973669[_0x2bdf(0x84)]&&_react[_0x2bdf(0x1)][_0x2bdf(0x97)](_reactNative[_0x2bdf(0x9a)],{'style':styles[_0x2bdf(0xbb)]},'⚠️'),_0x973669['axagv'](_0xe827ca,_0x973669[_0x2bdf(0x4b)])&&_react[_0x2bdf(0x1)][_0x2bdf(0x97)](_reactNative[_0x2bdf(0x9a)],{'style':styles[_0x2bdf(0xbb)]},'✅'),_0x973669[_0x2bdf(0xbc)](_0xe827ca,_0x973669['tTlPQ'])&&_react['default'][_0x2bdf(0x97)](_reactNative['Text'],{'style':styles['securityIcon']},'❌')),_react[_0x2bdf(0x1)][_0x2bdf(0x97)](_reactNative[_0x2bdf(0x9f)],{'style':styles[_0x2bdf(0xbd)]},_react[_0x2bdf(0x1)][_0x2bdf(0x97)](_reactNative[_0x2bdf(0x9a)],{'style':styles[_0x2bdf(0xbe)]},_0xe827ca===_0x2bdf(0x2d)&&_0x973669['zVezO'],_0x973669['dZDVC'](_0xe827ca,_0x973669[_0x2bdf(0x7f)])&&_0x973669[_0x2bdf(0xbf)],_0x973669[_0x2bdf(0xc0)](_0xe827ca,_0x2bdf(0x14))&&_0x973669[_0x2bdf(0xc1)],_0x973669['EjSix'](_0xe827ca,_0x973669[_0x2bdf(0xb8)])&&_0x973669['gvpsI'],_0x973669['SxUSS'](_0xe827ca,_0x973669['aqJHf'])&&_0x973669['ypACN'],_0xe827ca===_0x2bdf(0x22)&&_0x973669[_0x2bdf(0xc2)]),_react[_0x2bdf(0x1)]['createElement'](_reactNative[_0x2bdf(0x9a)],{'style':styles[_0x2bdf(0xc3)]},_0x973669[_0x2bdf(0x57)](_0xe827ca,_0x973669[_0x2bdf(0x43)])&&_0x973669['QvBjd'],_0x973669[_0x2bdf(0xc4)](_0xe827ca,_0x2bdf(0x16))&&_0x973669[_0x2bdf(0xc5)],_0x973669[_0x2bdf(0xc6)](_0xe827ca,_0x973669[_0x2bdf(0x84)])&&_0x973669[_0x2bdf(0xc7)],_0x973669['dZDVC'](_0xe827ca,'storing')&&_0x973669[_0x2bdf(0xc8)],_0x973669[_0x2bdf(0xc9)](_0xe827ca,_0x973669[_0x2bdf(0x4b)])&&_0x2bdf(0xca),_0xe827ca===_0x973669['tTlPQ']&&_0x973669['CCaTp']))),_react[_0x2bdf(0x1)][_0x2bdf(0x97)](_reactNative[_0x2bdf(0x9f)],{'style':styles['buttonContainer']},_react[_0x2bdf(0x1)][_0x2bdf(0x97)](_reactNative[_0x2bdf(0xcb)],{'style':[styles[_0x2bdf(0xcc)],_0x3ea9e3&&styles['continueButtonActive']],'onPress':_0xd3de81,'disabled':_0x973669[_0x2bdf(0xcd)](!_0x3ea9e3,_0x41b240)},_0x41b240?_react[_0x2bdf(0x1)]['createElement'](_reactNative[_0x2bdf(0xb4)],{'size':_0x2bdf(0xce),'color':_0x973669[_0x2bdf(0xcf)]}):_react['default'][_0x2bdf(0x97)](_reactNative[_0x2bdf(0x9a)],{'style':[styles['continueButtonText'],_0x3ea9e3&&styles[_0x2bdf(0xd0)]]},_0x2bdf(0xd1)))));};exports[_0x2bdf(0xd2)]=PinCreationScreen;const styles=_reactNative[_0x2bdf(0xd3)]['create']({'container':{'flex':0x1,'backgroundColor':_theme[_0x2bdf(0xb6)]['surface'],'paddingHorizontal':0x18,'paddingTop':0x28},'titleContainer':{'alignItems':'center','marginBottom':0x18,'paddingTop':0x0,'marginTop':0x0},'title':{'fontSize':0x18,'fontWeight':_0x2bdf(0xd4),'color':_theme[_0x2bdf(0xb6)][_0x2bdf(0xd5)],'marginBottom':0x8,'fontFamily':_0x2bdf(0xd6)},'subtitle':{'fontSize':0x10,'color':_theme[_0x2bdf(0xb6)]['grey600'],'lineHeight':0x18,'fontFamily':_0x2bdf(0xd7)},'pinContainer':{'marginBottom':0x20},'pinInput':{'backgroundColor':_0x2bdf(0xd8),'borderRadius':0xc,'paddingVertical':0x10,'paddingHorizontal':0x10,'fontSize':0x10,'fontFamily':'Inter','borderWidth':0x1,'borderColor':'#E5E5E5'},'requirementsContainer':{'marginBottom':0x20},'requirementsTitle':{'fontSize':0x10,'fontWeight':_0x2bdf(0xd9),'color':_theme[_0x2bdf(0xb6)][_0x2bdf(0xd5)],'marginBottom':0x10,'fontFamily':_0x2bdf(0xd7)},'requirementItem':{'flexDirection':_0x2bdf(0xda),'alignItems':_0x2bdf(0xdb),'marginBottom':0xc},'checkbox':{'width':0x14,'height':0x14,'borderRadius':0xa,'borderWidth':0x2,'borderColor':_0x2bdf(0xdc),'marginRight':0xc,'alignItems':'center','justifyContent':'center'},'checkboxChecked':{'borderColor':_0x2bdf(0xdd),'backgroundColor':_0x2bdf(0xdd)},'checkmark':{'color':_0x2bdf(0x41),'fontSize':0xc,'fontWeight':_0x2bdf(0xde)},'requirementText':{'fontSize':0xe,'color':_theme[_0x2bdf(0xb6)][_0x2bdf(0xb7)],'fontFamily':'Inter','flex':0x1},'requirementTextMet':{'color':_theme[_0x2bdf(0xb6)]['grey800']},'securityCard':{'backgroundColor':'#F8F9FA','borderRadius':0xc,'padding':0x10,'flexDirection':_0x2bdf(0xda),'alignItems':'center','marginBottom':0x18,'borderWidth':0x1,'borderColor':_0x2bdf(0xdc)},'securityCardSuccess':{'backgroundColor':_0x2bdf(0xdf),'borderColor':'#22C55E'},'securityCardError':{'backgroundColor':_0x2bdf(0xe0),'borderColor':_0x2bdf(0xe1)},'securityIconContainer':{'marginRight':0xc},'securityIcon':{'fontSize':0x18},'securityTextContainer':{'flex':0x1},'securityTitle':{'fontSize':0xe,'fontWeight':_0x2bdf(0xd9),'color':_theme[_0x2bdf(0xb6)]['grey800'],'marginBottom':0x4,'fontFamily':'Inter'},'securityDescription':{'fontSize':0xd,'color':_theme[_0x2bdf(0xb6)][_0x2bdf(0xb7)],'lineHeight':0x12,'fontFamily':_0x2bdf(0xd7)},'buttonContainer':{'marginTop':'auto','paddingBottom':0x22},'continueButton':{'backgroundColor':'#E5E5E5','borderRadius':0x19,'paddingVertical':0x10,'alignItems':_0x2bdf(0xdb),'justifyContent':_0x2bdf(0xdb)},'continueButtonActive':{'backgroundColor':_0x2bdf(0xe2)},'continueButtonText':{'fontSize':0x10,'fontWeight':'600','color':_0x2bdf(0xe3),'fontFamily':_0x2bdf(0xd7)},'continueButtonTextActive':{'color':_0x2bdf(0x41)}});var _default=exports[_0x2bdf(0x1)]=PinCreationScreen;function _0x1bf3(){const _0x5d0f58=['__esModule','default','function','IddbH','vAPjC','xUURa','bkrIv','has','get','set','TBzBd','wZUhy','hasOwnProperty','call','defineProperty','getOwnPropertyDescriptor','uXsFy','EDsvg','Please\x20ensure\x20your\x20PIN\x20meets\x20all\x20requirements.','📱\x20Biometric\x20not\x20available,\x20continuing\x20without\x20Face\x20ID','unavailable','NnEuC','available','pMEWG','success','iclXE','DRuLx','🔐\x20Starting\x20PIN\x20creation\x20process...','fSwkE','TVrzX','📱\x20[PIN\x20CREATION]\x20Biometric\x20available\x20before\x20storage:','❌\x20[PIN\x20CREATION]\x20Face\x20ID\x20not\x20available\x20on\x20this\x20device','🔐\x20[PIN\x20CREATION]\x20Triggering\x20biometric\x20authentication\x20for\x20PIN\x20storage...','SpwZU','error','PIN\x20storage\x20verification\x20failed.\x20Please\x20try\x20again.','❌\x20PIN\x20storage\x20verification\x20failed','⚠️\x20Face\x20ID\x20authentication\x20was\x20cancelled\x20or\x20failed','Face\x20ID\x20Setup','Face\x20ID\x20authentication\x20was\x20cancelled\x20or\x20failed.\x20Your\x20PIN\x20is\x20still\x20saved\x20securely.','Try\x20Again','Continue\x20Without\x20Face\x20ID','mtUPt','There\x20was\x20an\x20issue\x20creating\x20your\x20PIN.\x20Please\x20try\x20again.','cmVJO','checking','📱\x20Biometric\x20availability\x20check:','Create\x20a\x20PIN','Your\x20PIN\x20must:','Be\x20at\x20least\x208\x20characters\x20in\x20length.','Contain\x20an\x20uppercase\x20letter.','Contain\x20a\x20number.','Contain\x20a\x20symbol\x20(e.g.\x20!@#$%^&*).','storing','#D4A536','Checking\x20Face\x20ID...','Enhanced\x20Security','Face\x20ID\x20Unavailable','Securing\x20with\x20Face\x20ID...','PIN\x20Secured\x20with\x20Face\x20ID','Face\x20ID\x20Setup\x20Failed','Verifying\x20Face\x20ID\x20availability\x20on\x20your\x20device.','We\x20use\x20Face\x20ID\x20to\x20ensure\x20only\x20you\x20can\x20access\x20your\x20data.','Please\x20authenticate\x20with\x20Face\x20ID\x20to\x20secure\x20your\x20PIN.','Face\x20ID\x20setup\x20failed,\x20but\x20your\x20PIN\x20is\x20stored\x20securely.','#FFFFFF','useState','SVGCr','GtZoa','triggerHaptic','HapticType','length','test','every','mrCFT','aqJHf','obLWL','pxrtL','Alert','alert','mAcSJ','BUTTON_PRESS','svoMo','ltpQD','ERROR','Nlbuv','📝\x20PIN\x20stored\x20temporarily\x20for\x20onboarding','VjPYD','trDzV','RPHBE','msGnf','biometricPinService','isBiometricAvailable','rmUYB','WogtF','log','MhokQ','storePinWithBiometric','lwhKv','sUPAF','✅\x20PIN\x20stored\x20successfully\x20with\x20Face\x20ID','isPinStored','joALM','EvFZJ','SUCCESS','4|0|1|2|3','tTlPQ','DIRFt','uNWeH','JDDtd','VkkrV','OkJZv','AheNN','MXhyP','PHUte','MtCCQ','yCPlC','LoQPO','XOqYl','object','DxzZl','dZDVC','ExXPZ','BkJHL','HydaT','HiHzr','zDVRT','HQJOz','riFHU','TjDUh','Knvfg','hwrvQ','oyjzU','ZRNii','FNUqq','ElkZB','HvqYJ','4|2|0|1|3','split','LtnkN','TmRdZ','QsPga','useEffect','paaRt','MDGko','lxjuI','MKCVB','SiDGo','WAJeb','RjYDL','values','createElement','container','titleContainer','Text','title','mHzzl','subtitle','A\x20PIN\x20so\x20only\x20you\x20have\x20access\x20to\x20your\x20data.','View','pinContainer','TextInput','pinInput','zkpVX','requirementsContainer','fGzkK','requirementItem','checkbox','checkmark','requirementText','requirementTextMet','QJPtg','uppercase','checkboxChecked','asIsA','number','FFccN','symbol','securityCard','securityCardSuccess','ActivityIndicator','ogmvr','COLORS','grey600','xdDyH','UfBPn','emqun','securityIcon','gCCsN','securityTextContainer','securityTitle','YmpUY','MOPWH','hWJqc','KSiKB','securityDescription','rkNxX','Attou','uEKCO','sxiTd','zGyEb','FpUrV','Your\x20PIN\x20is\x20now\x20protected\x20with\x20Face\x20ID\x20authentication.','TouchableOpacity','continueButton','FhAHZ','small','nfUqc','continueButtonTextActive','Continue','PinCreationScreen','StyleSheet','700','grey800','IBM\x20Plex\x20Sans','Inter','#F8F9FA','600','row','center','#E5E5E5','#4CD964','bold','#F0FDF4','#FEF2F2','#EF4444','#2D3436','#999999'];_0x1bf3=function(){return _0x5d0f58;};return _0x1bf3();}
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.PinCreationScreen = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _theme = require("../theme");
10
+ var _haptics = require("../utils/haptics");
11
+ var _biometricPinService = require("../services/biometricPinService");
12
+ var _pinStorageUtils = require("../services/pinStorageUtils");
13
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
14
+ const PinCreationScreen = ({
15
+ visible,
16
+ onComplete,
17
+ onBack
18
+ }) => {
19
+ const [pin, setPin] = (0, _react.useState)('');
20
+ const [requirements, setRequirements] = (0, _react.useState)({
21
+ length: false,
22
+ uppercase: false,
23
+ number: false,
24
+ symbol: false
25
+ });
26
+ const [isLoading, setIsLoading] = (0, _react.useState)(false);
27
+ const [biometricAvailable, setBiometricAvailable] = (0, _react.useState)(false);
28
+ const [biometricStatus, setBiometricStatus] = (0, _react.useState)('checking');
29
+ const validatePin = pinText => {
30
+ const newRequirements = {
31
+ length: pinText.length >= 8,
32
+ uppercase: /[A-Z]/.test(pinText),
33
+ number: /[0-9]/.test(pinText),
34
+ symbol: /[!@#$%^&*(),.?":{}|<>]/.test(pinText)
35
+ };
36
+ setRequirements(newRequirements);
37
+ return Object.values(newRequirements).every(req => req);
38
+ };
39
+ const handlePinChange = text => {
40
+ setPin(text);
41
+ validatePin(text);
42
+ };
43
+ const handleContinue = async () => {
44
+ if (!validatePin(pin)) {
45
+ (0, _haptics.triggerHaptic)(_haptics.HapticType.ERROR);
46
+ _reactNative.Alert.alert('Invalid PIN', 'Please ensure your PIN meets all requirements.');
47
+ return;
48
+ }
49
+ (0, _haptics.triggerHaptic)(_haptics.HapticType.BUTTON_PRESS);
50
+ setIsLoading(true);
51
+ try {
52
+ console.log('🔐 Starting PIN creation process...');
53
+
54
+ // Store PIN temporarily for the onboarding flow first
55
+ (0, _pinStorageUtils.setTemporaryPin)(pin);
56
+ console.log('📝 PIN stored temporarily for onboarding');
57
+
58
+ // If biometric is available, immediately trigger Face ID authentication
59
+ if (biometricAvailable) {
60
+ setBiometricStatus('storing');
61
+ console.log('🔐 [PIN CREATION] Biometric storage enabled, starting biometric flow...');
62
+
63
+ // Double-check biometric availability right before triggering
64
+ const biometricStillAvailable = await _biometricPinService.biometricPinService.isBiometricAvailable();
65
+ console.log('📱 [PIN CREATION] Biometric available before storage:', biometricStillAvailable);
66
+ if (!biometricStillAvailable) {
67
+ console.error('❌ [PIN CREATION] Face ID not available on this device');
68
+ setBiometricStatus('unavailable');
69
+ setIsLoading(false);
70
+ return;
71
+ }
72
+
73
+ // Immediately attempt to store PIN with biometric authentication
74
+ console.log('🔐 [PIN CREATION] Triggering biometric authentication for PIN storage...');
75
+
76
+ // This will immediately show the Face ID prompt
77
+ const stored = await _biometricPinService.biometricPinService.storePinWithBiometric(pin);
78
+ if (stored) {
79
+ console.log('✅ PIN stored successfully with Face ID');
80
+
81
+ // Verify the PIN was actually stored by checking if it can be retrieved
82
+ const isStored = await _biometricPinService.biometricPinService.isPinStored();
83
+ if (isStored) {
84
+ console.log('✅ PIN storage verified - proceeding with onboarding');
85
+ setBiometricStatus('success');
86
+ (0, _haptics.triggerHaptic)(_haptics.HapticType.SUCCESS);
87
+
88
+ // Brief success state, then continue
89
+ setTimeout(() => {
90
+ setIsLoading(false);
91
+ onComplete(pin);
92
+ }, 800);
93
+ } else {
94
+ console.error('❌ PIN storage verification failed');
95
+ setBiometricStatus('error');
96
+ setIsLoading(false);
97
+ (0, _haptics.triggerHaptic)(_haptics.HapticType.ERROR);
98
+ _reactNative.Alert.alert('PIN Storage Error', 'PIN storage verification failed. Please try again.', [{
99
+ text: 'OK'
100
+ }]);
101
+ }
102
+ } else {
103
+ console.log('⚠️ Face ID authentication was cancelled or failed');
104
+ setBiometricStatus('error');
105
+ (0, _haptics.triggerHaptic)(_haptics.HapticType.ERROR);
106
+
107
+ // Show error but still allow continuation
108
+ _reactNative.Alert.alert('Face ID Setup', 'Face ID authentication was cancelled or failed. Your PIN is still saved securely.', [{
109
+ text: 'Try Again',
110
+ onPress: () => {
111
+ setIsLoading(false);
112
+ setBiometricStatus('available');
113
+ }
114
+ }, {
115
+ text: 'Continue Without Face ID',
116
+ onPress: () => {
117
+ setIsLoading(false);
118
+ onComplete(pin);
119
+ }
120
+ }]);
121
+ }
122
+ } else {
123
+ console.log('📱 Biometric not available, continuing without Face ID');
124
+ setBiometricStatus('unavailable');
125
+ setIsLoading(false);
126
+ onComplete(pin);
127
+ }
128
+ } catch (error) {
129
+ console.error('❌ Error in PIN creation process:', error);
130
+ setBiometricStatus('error');
131
+ setIsLoading(false);
132
+ (0, _haptics.triggerHaptic)(_haptics.HapticType.ERROR);
133
+ _reactNative.Alert.alert('PIN Creation Error', 'There was an issue creating your PIN. Please try again.', [{
134
+ text: 'OK'
135
+ }]);
136
+ }
137
+ };
138
+ const handleBack = () => {
139
+ (0, _haptics.triggerHaptic)(_haptics.HapticType.BUTTON_PRESS);
140
+ onBack();
141
+ };
142
+
143
+ // Check biometric availability on component mount
144
+ (0, _react.useEffect)(() => {
145
+ const checkBiometric = async () => {
146
+ try {
147
+ setBiometricStatus('checking');
148
+ const available = await _biometricPinService.biometricPinService.isBiometricAvailable();
149
+ setBiometricAvailable(available);
150
+ setBiometricStatus(available ? 'available' : 'unavailable');
151
+ console.log('📱 Biometric availability check:', available);
152
+ } catch (error) {
153
+ console.error('❌ Error checking biometric availability:', error);
154
+ setBiometricAvailable(false);
155
+ setBiometricStatus('unavailable');
156
+ }
157
+ };
158
+ if (visible) {
159
+ checkBiometric();
160
+ }
161
+ }, [visible]);
162
+ const allRequirementsMet = Object.values(requirements).every(req => req);
163
+ if (!visible) return null;
164
+ return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
165
+ style: styles.container
166
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
167
+ style: styles.titleContainer
168
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
169
+ style: styles.title
170
+ }, "Create a PIN"), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
171
+ style: styles.subtitle
172
+ }, "A PIN so only you have access to your data.")), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
173
+ style: styles.pinContainer
174
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.TextInput, {
175
+ style: styles.pinInput,
176
+ value: pin,
177
+ onChangeText: handlePinChange,
178
+ placeholder: "Enter your PIN",
179
+ secureTextEntry: true,
180
+ autoFocus: true,
181
+ maxLength: 20
182
+ })), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
183
+ style: styles.requirementsContainer
184
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
185
+ style: styles.requirementsTitle
186
+ }, "Your PIN must:"), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
187
+ style: styles.requirementItem
188
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
189
+ style: [styles.checkbox, requirements.length && styles.checkboxChecked]
190
+ }, requirements.length && /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
191
+ style: styles.checkmark
192
+ }, "\u2713")), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
193
+ style: [styles.requirementText, requirements.length && styles.requirementTextMet]
194
+ }, "Be at least 8 characters in length.")), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
195
+ style: styles.requirementItem
196
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
197
+ style: [styles.checkbox, requirements.uppercase && styles.checkboxChecked]
198
+ }, requirements.uppercase && /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
199
+ style: styles.checkmark
200
+ }, "\u2713")), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
201
+ style: [styles.requirementText, requirements.uppercase && styles.requirementTextMet]
202
+ }, "Contain an uppercase letter.")), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
203
+ style: styles.requirementItem
204
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
205
+ style: [styles.checkbox, requirements.number && styles.checkboxChecked]
206
+ }, requirements.number && /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
207
+ style: styles.checkmark
208
+ }, "\u2713")), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
209
+ style: [styles.requirementText, requirements.number && styles.requirementTextMet]
210
+ }, "Contain a number.")), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
211
+ style: styles.requirementItem
212
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
213
+ style: [styles.checkbox, requirements.symbol && styles.checkboxChecked]
214
+ }, requirements.symbol && /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
215
+ style: styles.checkmark
216
+ }, "\u2713")), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
217
+ style: [styles.requirementText, requirements.symbol && styles.requirementTextMet]
218
+ }, "Contain a symbol (e.g. !@#$%^&*)."))), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
219
+ style: [styles.securityCard, biometricStatus === 'success' && styles.securityCardSuccess, biometricStatus === 'error' && styles.securityCardError]
220
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
221
+ style: styles.securityIconContainer
222
+ }, biometricStatus === 'checking' && /*#__PURE__*/_react.default.createElement(_reactNative.ActivityIndicator, {
223
+ size: "small",
224
+ color: _theme.COLORS.grey600
225
+ }), biometricStatus === 'storing' && /*#__PURE__*/_react.default.createElement(_reactNative.ActivityIndicator, {
226
+ size: "small",
227
+ color: "#D4A536"
228
+ }), biometricStatus === 'available' && /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
229
+ style: styles.securityIcon
230
+ }, "\uD83D\uDD10"), biometricStatus === 'unavailable' && /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
231
+ style: styles.securityIcon
232
+ }, "\u26A0\uFE0F"), biometricStatus === 'success' && /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
233
+ style: styles.securityIcon
234
+ }, "\u2705"), biometricStatus === 'error' && /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
235
+ style: styles.securityIcon
236
+ }, "\u274C")), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
237
+ style: styles.securityTextContainer
238
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
239
+ style: styles.securityTitle
240
+ }, biometricStatus === 'checking' && 'Checking Face ID...', biometricStatus === 'available' && 'Enhanced Security', biometricStatus === 'unavailable' && 'Face ID Unavailable', biometricStatus === 'storing' && 'Securing with Face ID...', biometricStatus === 'success' && 'PIN Secured with Face ID', biometricStatus === 'error' && 'Face ID Setup Failed'), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
241
+ style: styles.securityDescription
242
+ }, biometricStatus === 'checking' && 'Verifying Face ID availability on your device.', biometricStatus === 'available' && 'We use Face ID to ensure only you can access your data.', biometricStatus === 'unavailable' && 'Face ID is not available on this device. Your PIN will be stored securely.', biometricStatus === 'storing' && 'Please authenticate with Face ID to secure your PIN.', biometricStatus === 'success' && 'Your PIN is now protected with Face ID authentication.', biometricStatus === 'error' && 'Face ID setup failed, but your PIN is stored securely.'))), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
243
+ style: styles.buttonContainer
244
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
245
+ style: [styles.continueButton, allRequirementsMet && styles.continueButtonActive],
246
+ onPress: handleContinue,
247
+ disabled: !allRequirementsMet || isLoading
248
+ }, isLoading ? /*#__PURE__*/_react.default.createElement(_reactNative.ActivityIndicator, {
249
+ size: "small",
250
+ color: "#FFFFFF"
251
+ }) : /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
252
+ style: [styles.continueButtonText, allRequirementsMet && styles.continueButtonTextActive]
253
+ }, "Continue"))));
254
+ };
255
+ exports.PinCreationScreen = PinCreationScreen;
256
+ const styles = _reactNative.StyleSheet.create({
257
+ container: {
258
+ flex: 1,
259
+ backgroundColor: _theme.COLORS.surface,
260
+ paddingHorizontal: 24,
261
+ paddingTop: 40
262
+ },
263
+ titleContainer: {
264
+ alignItems: 'center',
265
+ marginBottom: 24,
266
+ paddingTop: 0,
267
+ marginTop: 0
268
+ },
269
+ title: {
270
+ fontSize: 24,
271
+ fontWeight: '700',
272
+ color: _theme.COLORS.grey800,
273
+ marginBottom: 8,
274
+ fontFamily: 'IBM Plex Sans'
275
+ },
276
+ subtitle: {
277
+ fontSize: 16,
278
+ color: _theme.COLORS.grey600,
279
+ lineHeight: 24,
280
+ fontFamily: 'Inter'
281
+ },
282
+ pinContainer: {
283
+ marginBottom: 32
284
+ },
285
+ pinInput: {
286
+ backgroundColor: '#F8F9FA',
287
+ borderRadius: 12,
288
+ paddingVertical: 16,
289
+ paddingHorizontal: 16,
290
+ fontSize: 16,
291
+ fontFamily: 'Inter',
292
+ borderWidth: 1,
293
+ borderColor: '#E5E5E5'
294
+ },
295
+ requirementsContainer: {
296
+ marginBottom: 32
297
+ },
298
+ requirementsTitle: {
299
+ fontSize: 16,
300
+ fontWeight: '600',
301
+ color: _theme.COLORS.grey800,
302
+ marginBottom: 16,
303
+ fontFamily: 'Inter'
304
+ },
305
+ requirementItem: {
306
+ flexDirection: 'row',
307
+ alignItems: 'center',
308
+ marginBottom: 12
309
+ },
310
+ checkbox: {
311
+ width: 20,
312
+ height: 20,
313
+ borderRadius: 10,
314
+ borderWidth: 2,
315
+ borderColor: '#E5E5E5',
316
+ marginRight: 12,
317
+ alignItems: 'center',
318
+ justifyContent: 'center'
319
+ },
320
+ checkboxChecked: {
321
+ borderColor: '#4CD964',
322
+ backgroundColor: '#4CD964'
323
+ },
324
+ checkmark: {
325
+ color: '#FFFFFF',
326
+ fontSize: 12,
327
+ fontWeight: 'bold'
328
+ },
329
+ requirementText: {
330
+ fontSize: 14,
331
+ color: _theme.COLORS.grey600,
332
+ fontFamily: 'Inter',
333
+ flex: 1
334
+ },
335
+ requirementTextMet: {
336
+ color: _theme.COLORS.grey800
337
+ },
338
+ securityCard: {
339
+ backgroundColor: '#F8F9FA',
340
+ borderRadius: 12,
341
+ padding: 16,
342
+ flexDirection: 'row',
343
+ alignItems: 'center',
344
+ marginBottom: 24,
345
+ borderWidth: 1,
346
+ borderColor: '#E5E5E5'
347
+ },
348
+ securityCardSuccess: {
349
+ backgroundColor: '#F0FDF4',
350
+ borderColor: '#22C55E'
351
+ },
352
+ securityCardError: {
353
+ backgroundColor: '#FEF2F2',
354
+ borderColor: '#EF4444'
355
+ },
356
+ securityIconContainer: {
357
+ marginRight: 12
358
+ },
359
+ securityIcon: {
360
+ fontSize: 24
361
+ },
362
+ securityTextContainer: {
363
+ flex: 1
364
+ },
365
+ securityTitle: {
366
+ fontSize: 14,
367
+ fontWeight: '600',
368
+ color: _theme.COLORS.grey800,
369
+ marginBottom: 4,
370
+ fontFamily: 'Inter'
371
+ },
372
+ securityDescription: {
373
+ fontSize: 13,
374
+ color: _theme.COLORS.grey600,
375
+ lineHeight: 18,
376
+ fontFamily: 'Inter'
377
+ },
378
+ buttonContainer: {
379
+ marginTop: 'auto',
380
+ paddingBottom: 34
381
+ },
382
+ continueButton: {
383
+ backgroundColor: '#E5E5E5',
384
+ borderRadius: 25,
385
+ paddingVertical: 16,
386
+ alignItems: 'center',
387
+ justifyContent: 'center'
388
+ },
389
+ continueButtonActive: {
390
+ backgroundColor: '#2D3436'
391
+ },
392
+ continueButtonText: {
393
+ fontSize: 16,
394
+ fontWeight: '600',
395
+ color: '#999999',
396
+ fontFamily: 'Inter'
397
+ },
398
+ continueButtonTextActive: {
399
+ color: '#FFFFFF'
400
+ }
401
+ });
402
+ var _default = exports.default = PinCreationScreen;
403
+ //# sourceMappingURL=PinCreationScreen.js.map