@incodetech/prizma-core-screens 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (497) hide show
  1. package/README.md +74 -0
  2. package/dist/CaptureOverlay.css +55 -0
  3. package/dist/CaptureOverlay.d.ts +34 -0
  4. package/dist/CaptureOverlay.js +32 -0
  5. package/dist/CaptureScreen.d.ts +51 -0
  6. package/dist/CaptureScreen.js +30 -0
  7. package/dist/CurpConfirmScreen.d.ts +33 -0
  8. package/dist/CurpConfirmScreen.js +29 -0
  9. package/dist/CurpEnterScreen.d.ts +51 -0
  10. package/dist/CurpEnterScreen.js +77 -0
  11. package/dist/CurpGenerateScreen.d.ts +47 -0
  12. package/dist/CurpGenerateScreen.js +57 -0
  13. package/dist/CurpLayout.css +92 -0
  14. package/dist/CurpProcessingScreen.d.ts +32 -0
  15. package/dist/CurpProcessingScreen.js +29 -0
  16. package/dist/CurpResultScreen.d.ts +37 -0
  17. package/dist/CurpResultScreen.js +36 -0
  18. package/dist/CurpStrings.d.ts +170 -0
  19. package/dist/CurpStrings.js +16 -0
  20. package/dist/DataSharingConsentConsentScreen.d.ts +73 -0
  21. package/dist/DataSharingConsentConsentScreen.js +120 -0
  22. package/dist/DataSharingConsentLayout.css +78 -0
  23. package/dist/DataSharingConsentStrings.d.ts +96 -0
  24. package/dist/DataSharingConsentStrings.js +38 -0
  25. package/dist/DemoScreensEndScreen.d.ts +33 -0
  26. package/dist/DemoScreensEndScreen.js +27 -0
  27. package/dist/DemoScreensStrings.d.ts +11 -0
  28. package/dist/DemoScreensStrings.js +19 -0
  29. package/dist/DocumentCaptureCaptureScreen.d.ts +53 -0
  30. package/dist/DocumentCaptureCaptureScreen.js +51 -0
  31. package/dist/DocumentCaptureCommonIssuesScreen.d.ts +32 -0
  32. package/dist/DocumentCaptureCommonIssuesScreen.js +45 -0
  33. package/dist/DocumentCaptureConfirmImageScreen.d.ts +38 -0
  34. package/dist/DocumentCaptureConfirmImageScreen.js +34 -0
  35. package/dist/DocumentCaptureConfirmUploadScreen.d.ts +43 -0
  36. package/dist/DocumentCaptureConfirmUploadScreen.js +29 -0
  37. package/dist/DocumentCaptureGenericErrorScreen.d.ts +36 -0
  38. package/dist/DocumentCaptureGenericErrorScreen.js +30 -0
  39. package/dist/DocumentCaptureIllustration.d.ts +45 -0
  40. package/dist/DocumentCaptureIllustration.js +7 -0
  41. package/dist/DocumentCaptureLayout.css +226 -0
  42. package/dist/DocumentCaptureMethodSelectionScreen.d.ts +45 -0
  43. package/dist/DocumentCaptureMethodSelectionScreen.js +70 -0
  44. package/dist/DocumentCaptureNextPageScreen.d.ts +33 -0
  45. package/dist/DocumentCaptureNextPageScreen.js +28 -0
  46. package/dist/DocumentCaptureNoConnectionScreen.d.ts +28 -0
  47. package/dist/DocumentCaptureNoConnectionScreen.js +29 -0
  48. package/dist/DocumentCaptureStrings.d.ts +158 -0
  49. package/dist/DocumentCaptureStrings.js +21 -0
  50. package/dist/DocumentCaptureTutorialScreen.d.ts +36 -0
  51. package/dist/DocumentCaptureTutorialScreen.js +27 -0
  52. package/dist/EkybAddressDetailsScreen.d.ts +61 -0
  53. package/dist/EkybAddressDetailsScreen.js +63 -0
  54. package/dist/EkybBusinessDetailsScreen.d.ts +55 -0
  55. package/dist/EkybBusinessDetailsScreen.js +57 -0
  56. package/dist/EkybCountryScreen.d.ts +52 -0
  57. package/dist/EkybCountryScreen.js +58 -0
  58. package/dist/EkybErrorScreen.d.ts +30 -0
  59. package/dist/EkybErrorScreen.js +24 -0
  60. package/dist/EkybOwnersScreen.d.ts +73 -0
  61. package/dist/EkybOwnersScreen.js +87 -0
  62. package/dist/EkybProcessingScreen.d.ts +28 -0
  63. package/dist/EkybProcessingScreen.js +22 -0
  64. package/dist/EkybStrings.d.ts +200 -0
  65. package/dist/EkybStrings.js +27 -0
  66. package/dist/EkybSuccessScreen.d.ts +28 -0
  67. package/dist/EkybSuccessScreen.js +22 -0
  68. package/dist/EkycDetailsScreen.d.ts +65 -0
  69. package/dist/EkycDetailsScreen.js +81 -0
  70. package/dist/EkycErrorScreen.d.ts +32 -0
  71. package/dist/EkycErrorScreen.js +26 -0
  72. package/dist/EkycLayout.css +39 -0
  73. package/dist/EkycLicenseScreen.d.ts +21 -0
  74. package/dist/EkycLicenseScreen.js +68 -0
  75. package/dist/EkycProcessingScreen.d.ts +26 -0
  76. package/dist/EkycProcessingScreen.js +20 -0
  77. package/dist/EkycStrings.d.ts +112 -0
  78. package/dist/EkycStrings.js +34 -0
  79. package/dist/EkycSuccessScreen.d.ts +29 -0
  80. package/dist/EkycSuccessScreen.js +23 -0
  81. package/dist/ElectronicSignatureDrawScreen.d.ts +57 -0
  82. package/dist/ElectronicSignatureDrawScreen.js +53 -0
  83. package/dist/ElectronicSignatureErrorScreen.d.ts +31 -0
  84. package/dist/ElectronicSignatureErrorScreen.js +25 -0
  85. package/dist/ElectronicSignatureLayout.css +80 -0
  86. package/dist/ElectronicSignatureReviewScreen.d.ts +51 -0
  87. package/dist/ElectronicSignatureReviewScreen.js +36 -0
  88. package/dist/ElectronicSignatureStrings.d.ts +50 -0
  89. package/dist/ElectronicSignatureStrings.js +12 -0
  90. package/dist/ElectronicSignatureSuccessScreen.d.ts +30 -0
  91. package/dist/ElectronicSignatureSuccessScreen.js +24 -0
  92. package/dist/EmailInputErrorScreen.d.ts +34 -0
  93. package/dist/EmailInputErrorScreen.js +28 -0
  94. package/dist/EmailInputOtpScreen.d.ts +56 -0
  95. package/dist/EmailInputOtpScreen.js +82 -0
  96. package/dist/EmailInputProcessingScreen.d.ts +29 -0
  97. package/dist/EmailInputProcessingScreen.js +23 -0
  98. package/dist/EmailInputStrings.d.ts +130 -0
  99. package/dist/EmailInputStrings.js +19 -0
  100. package/dist/EmailInputSuccessScreen.d.ts +37 -0
  101. package/dist/EmailInputSuccessScreen.js +31 -0
  102. package/dist/EmailInputVerifyScreen.d.ts +46 -0
  103. package/dist/EmailInputVerifyScreen.js +55 -0
  104. package/dist/ErrorScreensScreen.d.ts +62 -0
  105. package/dist/ErrorScreensScreen.js +71 -0
  106. package/dist/ErrorScreensStrings.d.ts +31 -0
  107. package/dist/ErrorScreensStrings.js +28 -0
  108. package/dist/FaceCaptureCapturingScreen.d.ts +32 -0
  109. package/dist/FaceCaptureCapturingScreen.js +53 -0
  110. package/dist/FaceCaptureLayout.css +18 -0
  111. package/dist/FaceCaptureLoadingScreen.d.ts +32 -0
  112. package/dist/FaceCaptureLoadingScreen.js +30 -0
  113. package/dist/FaceCaptureManualCaptureScreen.d.ts +32 -0
  114. package/dist/FaceCaptureManualCaptureScreen.js +27 -0
  115. package/dist/FaceCaptureNoConnectionScreen.d.ts +30 -0
  116. package/dist/FaceCaptureNoConnectionScreen.js +31 -0
  117. package/dist/FaceCaptureResultErrorScreen.d.ts +40 -0
  118. package/dist/FaceCaptureResultErrorScreen.js +32 -0
  119. package/dist/FaceCaptureResultSuccessScreen.d.ts +25 -0
  120. package/dist/FaceCaptureResultSuccessScreen.js +27 -0
  121. package/dist/FaceCaptureStrings.d.ts +62 -0
  122. package/dist/FaceCaptureStrings.js +14 -0
  123. package/dist/FaceCaptureTutorialScreen.d.ts +29 -0
  124. package/dist/FaceCaptureTutorialScreen.js +20 -0
  125. package/dist/FaceMatchComparisonCompactScreen.d.ts +26 -0
  126. package/dist/FaceMatchComparisonCompactScreen.js +24 -0
  127. package/dist/FaceMatchComparisonScreen.d.ts +80 -0
  128. package/dist/FaceMatchComparisonScreen.js +81 -0
  129. package/dist/FaceMatchLayout.css +264 -0
  130. package/dist/FaceMatchResultScreen.d.ts +50 -0
  131. package/dist/FaceMatchResultScreen.js +52 -0
  132. package/dist/FaceMatchStrings.d.ts +66 -0
  133. package/dist/FaceMatchStrings.js +21 -0
  134. package/dist/FormScreen.css +78 -0
  135. package/dist/FormScreen.d.ts +101 -0
  136. package/dist/FormScreen.js +36 -0
  137. package/dist/FormsChoiceScreen.d.ts +66 -0
  138. package/dist/FormsChoiceScreen.js +63 -0
  139. package/dist/FormsErrorScreen.d.ts +28 -0
  140. package/dist/FormsErrorScreen.js +22 -0
  141. package/dist/FormsFieldScreen.d.ts +66 -0
  142. package/dist/FormsFieldScreen.js +85 -0
  143. package/dist/FormsLayout.css +45 -0
  144. package/dist/FormsLongFormScreen.d.ts +70 -0
  145. package/dist/FormsLongFormScreen.js +149 -0
  146. package/dist/FormsStrings.d.ts +181 -0
  147. package/dist/FormsStrings.js +36 -0
  148. package/dist/FormsSuccessScreen.d.ts +32 -0
  149. package/dist/FormsSuccessScreen.js +26 -0
  150. package/dist/GeolocationBrowserStepsScreen.d.ts +56 -0
  151. package/dist/GeolocationBrowserStepsScreen.js +95 -0
  152. package/dist/GeolocationErrorScreen.d.ts +43 -0
  153. package/dist/GeolocationErrorScreen.js +56 -0
  154. package/dist/GeolocationIntroScreen.d.ts +49 -0
  155. package/dist/GeolocationIntroScreen.js +38 -0
  156. package/dist/GeolocationPermissionScreen.d.ts +38 -0
  157. package/dist/GeolocationPermissionScreen.js +30 -0
  158. package/dist/GeolocationStrings.d.ts +157 -0
  159. package/dist/GeolocationStrings.js +28 -0
  160. package/dist/IdCaptureAgeVerificationScreen.d.ts +25 -0
  161. package/dist/IdCaptureAgeVerificationScreen.js +38 -0
  162. package/dist/IdCaptureAnalyzingScreen.d.ts +41 -0
  163. package/dist/IdCaptureAnalyzingScreen.js +30 -0
  164. package/dist/IdCaptureCommonIssuesScreen.d.ts +31 -0
  165. package/dist/IdCaptureCommonIssuesScreen.js +49 -0
  166. package/dist/IdCaptureDocumentErrorScreen.d.ts +37 -0
  167. package/dist/IdCaptureDocumentErrorScreen.js +30 -0
  168. package/dist/IdCaptureDocumentSelectionScreen.d.ts +41 -0
  169. package/dist/IdCaptureDocumentSelectionScreen.js +49 -0
  170. package/dist/IdCaptureFlipScreen.d.ts +31 -0
  171. package/dist/IdCaptureFlipScreen.js +26 -0
  172. package/dist/IdCaptureHoldOnScreen.d.ts +28 -0
  173. package/dist/IdCaptureHoldOnScreen.js +22 -0
  174. package/dist/IdCaptureLayout.css +111 -0
  175. package/dist/IdCaptureNoConnectionScreen.d.ts +28 -0
  176. package/dist/IdCaptureNoConnectionScreen.js +29 -0
  177. package/dist/IdCapturePermissionScreen.d.ts +34 -0
  178. package/dist/IdCapturePermissionScreen.js +45 -0
  179. package/dist/IdCaptureResultScreen.d.ts +59 -0
  180. package/dist/IdCaptureResultScreen.js +89 -0
  181. package/dist/IdCaptureStageScreen.d.ts +69 -0
  182. package/dist/IdCaptureStageScreen.js +88 -0
  183. package/dist/IdCaptureStrings.d.ts +199 -0
  184. package/dist/IdCaptureStrings.js +15 -0
  185. package/dist/IdCaptureTutorialScreen.d.ts +36 -0
  186. package/dist/IdCaptureTutorialScreen.js +30 -0
  187. package/dist/ListScreen.d.ts +95 -0
  188. package/dist/ListScreen.js +46 -0
  189. package/dist/LoaderScreen.d.ts +32 -0
  190. package/dist/LoaderScreen.js +27 -0
  191. package/dist/LoadersStrings.d.ts +20 -0
  192. package/dist/LoadersStrings.js +16 -0
  193. package/dist/NfcCommonIssuesScreen.d.ts +35 -0
  194. package/dist/NfcCommonIssuesScreen.js +48 -0
  195. package/dist/NfcErrorScreen.d.ts +41 -0
  196. package/dist/NfcErrorScreen.js +27 -0
  197. package/dist/NfcLayout.css +36 -0
  198. package/dist/NfcProcessingScreen.d.ts +28 -0
  199. package/dist/NfcProcessingScreen.js +22 -0
  200. package/dist/NfcScanningScreen.d.ts +66 -0
  201. package/dist/NfcScanningScreen.js +61 -0
  202. package/dist/NfcSettingsScreen.d.ts +53 -0
  203. package/dist/NfcSettingsScreen.js +57 -0
  204. package/dist/NfcStrings.d.ts +112 -0
  205. package/dist/NfcStrings.js +7 -0
  206. package/dist/NfcSuccessScreen.d.ts +28 -0
  207. package/dist/NfcSuccessScreen.js +22 -0
  208. package/dist/NfcSymbolScreen.d.ts +39 -0
  209. package/dist/NfcSymbolScreen.js +32 -0
  210. package/dist/NfcTryAgainScreen.d.ts +53 -0
  211. package/dist/NfcTryAgainScreen.js +45 -0
  212. package/dist/NfcTutorialScreen.d.ts +33 -0
  213. package/dist/NfcTutorialScreen.js +24 -0
  214. package/dist/PermissionsAllowScreen.d.ts +44 -0
  215. package/dist/PermissionsAllowScreen.js +38 -0
  216. package/dist/PermissionsBrowserStepsScreen.d.ts +42 -0
  217. package/dist/PermissionsBrowserStepsScreen.js +86 -0
  218. package/dist/PermissionsRequiredScreen.d.ts +37 -0
  219. package/dist/PermissionsRequiredScreen.js +51 -0
  220. package/dist/PermissionsStrings.d.ts +70 -0
  221. package/dist/PermissionsStrings.js +36 -0
  222. package/dist/PhoneInputErrorScreen.d.ts +37 -0
  223. package/dist/PhoneInputErrorScreen.js +47 -0
  224. package/dist/PhoneInputLayout.css +61 -0
  225. package/dist/PhoneInputOtpScreen.d.ts +37 -0
  226. package/dist/PhoneInputOtpScreen.js +44 -0
  227. package/dist/PhoneInputSnaLoadingScreen.d.ts +23 -0
  228. package/dist/PhoneInputSnaLoadingScreen.js +17 -0
  229. package/dist/PhoneInputStrings.d.ts +121 -0
  230. package/dist/PhoneInputStrings.js +13 -0
  231. package/dist/PhoneInputSuccessScreen.d.ts +23 -0
  232. package/dist/PhoneInputSuccessScreen.js +17 -0
  233. package/dist/PhoneInputVerifyScreen.d.ts +41 -0
  234. package/dist/PhoneInputVerifyScreen.js +71 -0
  235. package/dist/ProcessingScreen.d.ts +42 -0
  236. package/dist/ProcessingScreen.js +21 -0
  237. package/dist/QualifiedSignatureAcceptScreen.d.ts +71 -0
  238. package/dist/QualifiedSignatureAcceptScreen.js +86 -0
  239. package/dist/QualifiedSignatureDocumentScreen.d.ts +62 -0
  240. package/dist/QualifiedSignatureDocumentScreen.js +56 -0
  241. package/dist/QualifiedSignatureLayout.css +206 -0
  242. package/dist/QualifiedSignatureProcessingScreen.d.ts +46 -0
  243. package/dist/QualifiedSignatureProcessingScreen.js +48 -0
  244. package/dist/QualifiedSignatureResultScreen.d.ts +65 -0
  245. package/dist/QualifiedSignatureResultScreen.js +76 -0
  246. package/dist/QualifiedSignatureReviewScreen.d.ts +49 -0
  247. package/dist/QualifiedSignatureReviewScreen.js +40 -0
  248. package/dist/QualifiedSignatureStrings.d.ts +222 -0
  249. package/dist/QualifiedSignatureStrings.js +25 -0
  250. package/dist/QualifiedSignatureUploadScreen.d.ts +42 -0
  251. package/dist/QualifiedSignatureUploadScreen.js +35 -0
  252. package/dist/ResultScreen.d.ts +93 -0
  253. package/dist/ResultScreen.js +37 -0
  254. package/dist/ReviewScreen.d.ts +81 -0
  255. package/dist/ReviewScreen.js +56 -0
  256. package/dist/ScreenLayout.css +469 -0
  257. package/dist/ScreenNav.css +43 -0
  258. package/dist/ScreenNav.d.ts +26 -0
  259. package/dist/ScreenNav.js +13 -0
  260. package/dist/ScreenShell.css +130 -0
  261. package/dist/ScreenShell.d.ts +45 -0
  262. package/dist/ScreenShell.js +22 -0
  263. package/dist/TutorialScreen.d.ts +70 -0
  264. package/dist/TutorialScreen.js +24 -0
  265. package/dist/VideoSelfieCameraStepsScreen.d.ts +47 -0
  266. package/dist/VideoSelfieCameraStepsScreen.js +56 -0
  267. package/dist/VideoSelfieErrorScreen.d.ts +63 -0
  268. package/dist/VideoSelfieErrorScreen.js +94 -0
  269. package/dist/VideoSelfieFlipCameraScreen.d.ts +34 -0
  270. package/dist/VideoSelfieFlipCameraScreen.js +38 -0
  271. package/dist/VideoSelfieFlipIdScreen.d.ts +34 -0
  272. package/dist/VideoSelfieFlipIdScreen.js +29 -0
  273. package/dist/VideoSelfieIdCaptureScreen.d.ts +75 -0
  274. package/dist/VideoSelfieIdCaptureScreen.js +86 -0
  275. package/dist/VideoSelfieLayout.css +259 -0
  276. package/dist/VideoSelfiePermissionRequiredScreen.d.ts +35 -0
  277. package/dist/VideoSelfiePermissionRequiredScreen.js +45 -0
  278. package/dist/VideoSelfiePermissionScreen.d.ts +51 -0
  279. package/dist/VideoSelfiePermissionScreen.js +44 -0
  280. package/dist/VideoSelfieProcessingScreen.d.ts +28 -0
  281. package/dist/VideoSelfieProcessingScreen.js +22 -0
  282. package/dist/VideoSelfieRetryScreen.d.ts +31 -0
  283. package/dist/VideoSelfieRetryScreen.js +32 -0
  284. package/dist/VideoSelfieSelfieCaptureScreen.d.ts +52 -0
  285. package/dist/VideoSelfieSelfieCaptureScreen.js +58 -0
  286. package/dist/VideoSelfieSpeakScreen.d.ts +64 -0
  287. package/dist/VideoSelfieSpeakScreen.js +95 -0
  288. package/dist/VideoSelfieStrings.d.ts +196 -0
  289. package/dist/VideoSelfieStrings.js +14 -0
  290. package/dist/VideoSelfieSuccessScreen.d.ts +25 -0
  291. package/dist/VideoSelfieSuccessScreen.js +19 -0
  292. package/dist/VideoSelfieTutorialScreen.d.ts +33 -0
  293. package/dist/VideoSelfieTutorialScreen.js +41 -0
  294. package/dist/ViewfinderScreen.css +107 -0
  295. package/dist/ViewfinderScreen.d.ts +40 -0
  296. package/dist/ViewfinderScreen.js +26 -0
  297. package/dist/WatchlistBusinessFormScreen.d.ts +61 -0
  298. package/dist/WatchlistBusinessFormScreen.js +85 -0
  299. package/dist/WatchlistBusinessProcessingScreen.d.ts +25 -0
  300. package/dist/WatchlistBusinessProcessingScreen.js +19 -0
  301. package/dist/WatchlistBusinessStrings.d.ts +95 -0
  302. package/dist/WatchlistBusinessStrings.js +19 -0
  303. package/dist/WatchlistBusinessSuccessScreen.d.ts +29 -0
  304. package/dist/WatchlistBusinessSuccessScreen.js +23 -0
  305. package/dist/flows.d.ts +216 -0
  306. package/dist/flows.js +516 -0
  307. package/dist/index.d.ts +145 -0
  308. package/dist/index.js +130 -0
  309. package/dist/styles.css +33 -0
  310. package/dist/types.d.ts +56 -0
  311. package/dist/types.js +8 -0
  312. package/package.json +689 -0
  313. package/samples/camera-surface.png +0 -0
  314. package/samples/document-still.png +0 -0
  315. package/samples/document-thumbnail.png +0 -0
  316. package/samples/face-match-bottom.png +0 -0
  317. package/samples/face-match-left.png +0 -0
  318. package/samples/face-match-right.png +0 -0
  319. package/samples/id-back-blur.png +0 -0
  320. package/samples/id-back-dark.png +0 -0
  321. package/samples/id-back-glare.png +0 -0
  322. package/samples/id-back.png +0 -0
  323. package/samples/id-front-blur.png +0 -0
  324. package/samples/id-front-dark.png +0 -0
  325. package/samples/id-front-glare.png +0 -0
  326. package/samples/id-front.png +0 -0
  327. package/samples/id-passport.png +0 -0
  328. package/samples/selfie-glasses.png +0 -0
  329. package/samples/selfie-hat.png +0 -0
  330. package/samples/selfie-mask.png +0 -0
  331. package/samples/selfie.png +0 -0
  332. package/samples/video-selfie-camera.png +0 -0
  333. package/src/CaptureOverlay.css +55 -0
  334. package/src/CaptureOverlay.tsx +56 -0
  335. package/src/CaptureScreen.tsx +121 -0
  336. package/src/CurpConfirmScreen.tsx +75 -0
  337. package/src/CurpEnterScreen.tsx +149 -0
  338. package/src/CurpGenerateScreen.tsx +172 -0
  339. package/src/CurpLayout.css +92 -0
  340. package/src/CurpProcessingScreen.tsx +75 -0
  341. package/src/CurpResultScreen.tsx +80 -0
  342. package/src/CurpStrings.ts +178 -0
  343. package/src/DataSharingConsentConsentScreen.tsx +223 -0
  344. package/src/DataSharingConsentLayout.css +78 -0
  345. package/src/DataSharingConsentStrings.ts +144 -0
  346. package/src/DemoScreensEndScreen.tsx +56 -0
  347. package/src/DemoScreensStrings.ts +31 -0
  348. package/src/DocumentCaptureCaptureScreen.tsx +135 -0
  349. package/src/DocumentCaptureCommonIssuesScreen.tsx +97 -0
  350. package/src/DocumentCaptureConfirmImageScreen.tsx +112 -0
  351. package/src/DocumentCaptureConfirmUploadScreen.tsx +113 -0
  352. package/src/DocumentCaptureGenericErrorScreen.tsx +82 -0
  353. package/src/DocumentCaptureIllustration.tsx +153 -0
  354. package/src/DocumentCaptureLayout.css +226 -0
  355. package/src/DocumentCaptureMethodSelectionScreen.tsx +151 -0
  356. package/src/DocumentCaptureNextPageScreen.tsx +82 -0
  357. package/src/DocumentCaptureNoConnectionScreen.tsx +77 -0
  358. package/src/DocumentCaptureStrings.ts +192 -0
  359. package/src/DocumentCaptureTutorialScreen.tsx +79 -0
  360. package/src/EkybAddressDetailsScreen.tsx +200 -0
  361. package/src/EkybBusinessDetailsScreen.tsx +147 -0
  362. package/src/EkybCountryScreen.tsx +124 -0
  363. package/src/EkybErrorScreen.tsx +61 -0
  364. package/src/EkybOwnersScreen.tsx +230 -0
  365. package/src/EkybProcessingScreen.tsx +57 -0
  366. package/src/EkybStrings.ts +239 -0
  367. package/src/EkybSuccessScreen.tsx +54 -0
  368. package/src/EkycDetailsScreen.tsx +178 -0
  369. package/src/EkycErrorScreen.tsx +64 -0
  370. package/src/EkycLayout.css +39 -0
  371. package/src/EkycLicenseScreen.tsx +164 -0
  372. package/src/EkycProcessingScreen.tsx +60 -0
  373. package/src/EkycStrings.ts +157 -0
  374. package/src/EkycSuccessScreen.tsx +63 -0
  375. package/src/ElectronicSignatureDrawScreen.tsx +127 -0
  376. package/src/ElectronicSignatureErrorScreen.tsx +74 -0
  377. package/src/ElectronicSignatureLayout.css +80 -0
  378. package/src/ElectronicSignatureReviewScreen.tsx +106 -0
  379. package/src/ElectronicSignatureStrings.ts +67 -0
  380. package/src/ElectronicSignatureSuccessScreen.tsx +67 -0
  381. package/src/EmailInputErrorScreen.tsx +67 -0
  382. package/src/EmailInputOtpScreen.tsx +169 -0
  383. package/src/EmailInputProcessingScreen.tsx +67 -0
  384. package/src/EmailInputStrings.ts +166 -0
  385. package/src/EmailInputSuccessScreen.tsx +72 -0
  386. package/src/EmailInputVerifyScreen.tsx +117 -0
  387. package/src/ErrorScreensScreen.tsx +149 -0
  388. package/src/ErrorScreensStrings.ts +66 -0
  389. package/src/FaceCaptureCapturingScreen.tsx +99 -0
  390. package/src/FaceCaptureLayout.css +18 -0
  391. package/src/FaceCaptureLoadingScreen.tsx +65 -0
  392. package/src/FaceCaptureManualCaptureScreen.tsx +94 -0
  393. package/src/FaceCaptureNoConnectionScreen.tsx +73 -0
  394. package/src/FaceCaptureResultErrorScreen.tsx +86 -0
  395. package/src/FaceCaptureResultSuccessScreen.tsx +49 -0
  396. package/src/FaceCaptureStrings.ts +92 -0
  397. package/src/FaceCaptureTutorialScreen.tsx +77 -0
  398. package/src/FaceMatchComparisonCompactScreen.tsx +51 -0
  399. package/src/FaceMatchComparisonScreen.tsx +201 -0
  400. package/src/FaceMatchLayout.css +264 -0
  401. package/src/FaceMatchResultScreen.tsx +117 -0
  402. package/src/FaceMatchStrings.ts +95 -0
  403. package/src/FormScreen.css +78 -0
  404. package/src/FormScreen.tsx +213 -0
  405. package/src/FormsChoiceScreen.tsx +150 -0
  406. package/src/FormsErrorScreen.tsx +61 -0
  407. package/src/FormsFieldScreen.tsx +198 -0
  408. package/src/FormsLayout.css +45 -0
  409. package/src/FormsLongFormScreen.tsx +295 -0
  410. package/src/FormsStrings.ts +243 -0
  411. package/src/FormsSuccessScreen.tsx +67 -0
  412. package/src/GeolocationBrowserStepsScreen.tsx +173 -0
  413. package/src/GeolocationErrorScreen.tsx +113 -0
  414. package/src/GeolocationIntroScreen.tsx +100 -0
  415. package/src/GeolocationPermissionScreen.tsx +88 -0
  416. package/src/GeolocationStrings.ts +193 -0
  417. package/src/IdCaptureAgeVerificationScreen.tsx +84 -0
  418. package/src/IdCaptureAnalyzingScreen.tsx +94 -0
  419. package/src/IdCaptureCommonIssuesScreen.tsx +109 -0
  420. package/src/IdCaptureDocumentErrorScreen.tsx +92 -0
  421. package/src/IdCaptureDocumentSelectionScreen.tsx +100 -0
  422. package/src/IdCaptureFlipScreen.tsx +66 -0
  423. package/src/IdCaptureHoldOnScreen.tsx +51 -0
  424. package/src/IdCaptureLayout.css +111 -0
  425. package/src/IdCaptureNoConnectionScreen.tsx +68 -0
  426. package/src/IdCapturePermissionScreen.tsx +102 -0
  427. package/src/IdCaptureResultScreen.tsx +197 -0
  428. package/src/IdCaptureStageScreen.tsx +241 -0
  429. package/src/IdCaptureStrings.ts +228 -0
  430. package/src/IdCaptureTutorialScreen.tsx +99 -0
  431. package/src/ListScreen.tsx +213 -0
  432. package/src/LoaderScreen.tsx +69 -0
  433. package/src/LoadersStrings.ts +38 -0
  434. package/src/NfcCommonIssuesScreen.tsx +104 -0
  435. package/src/NfcErrorScreen.tsx +83 -0
  436. package/src/NfcLayout.css +36 -0
  437. package/src/NfcProcessingScreen.tsx +57 -0
  438. package/src/NfcScanningScreen.tsx +127 -0
  439. package/src/NfcSettingsScreen.tsx +124 -0
  440. package/src/NfcStrings.ts +127 -0
  441. package/src/NfcSuccessScreen.tsx +56 -0
  442. package/src/NfcSymbolScreen.tsx +85 -0
  443. package/src/NfcTryAgainScreen.tsx +114 -0
  444. package/src/NfcTutorialScreen.tsx +76 -0
  445. package/src/PermissionsAllowScreen.tsx +90 -0
  446. package/src/PermissionsBrowserStepsScreen.tsx +158 -0
  447. package/src/PermissionsRequiredScreen.tsx +118 -0
  448. package/src/PermissionsStrings.ts +129 -0
  449. package/src/PhoneInputErrorScreen.tsx +104 -0
  450. package/src/PhoneInputLayout.css +61 -0
  451. package/src/PhoneInputOtpScreen.tsx +126 -0
  452. package/src/PhoneInputSnaLoadingScreen.tsx +61 -0
  453. package/src/PhoneInputStrings.ts +136 -0
  454. package/src/PhoneInputSuccessScreen.tsx +56 -0
  455. package/src/PhoneInputVerifyScreen.tsx +153 -0
  456. package/src/ProcessingScreen.tsx +97 -0
  457. package/src/QualifiedSignatureAcceptScreen.tsx +198 -0
  458. package/src/QualifiedSignatureDocumentScreen.tsx +124 -0
  459. package/src/QualifiedSignatureLayout.css +206 -0
  460. package/src/QualifiedSignatureProcessingScreen.tsx +112 -0
  461. package/src/QualifiedSignatureResultScreen.tsx +146 -0
  462. package/src/QualifiedSignatureReviewScreen.tsx +113 -0
  463. package/src/QualifiedSignatureStrings.ts +256 -0
  464. package/src/QualifiedSignatureUploadScreen.tsx +81 -0
  465. package/src/ResultScreen.tsx +211 -0
  466. package/src/ReviewScreen.tsx +196 -0
  467. package/src/ScreenLayout.css +469 -0
  468. package/src/ScreenNav.css +43 -0
  469. package/src/ScreenNav.tsx +46 -0
  470. package/src/ScreenShell.css +130 -0
  471. package/src/ScreenShell.tsx +66 -0
  472. package/src/TutorialScreen.tsx +166 -0
  473. package/src/VideoSelfieCameraStepsScreen.tsx +145 -0
  474. package/src/VideoSelfieErrorScreen.tsx +168 -0
  475. package/src/VideoSelfieFlipCameraScreen.tsx +88 -0
  476. package/src/VideoSelfieFlipIdScreen.tsx +74 -0
  477. package/src/VideoSelfieIdCaptureScreen.tsx +213 -0
  478. package/src/VideoSelfieLayout.css +259 -0
  479. package/src/VideoSelfiePermissionRequiredScreen.tsx +104 -0
  480. package/src/VideoSelfiePermissionScreen.tsx +102 -0
  481. package/src/VideoSelfieProcessingScreen.tsx +68 -0
  482. package/src/VideoSelfieRetryScreen.tsx +92 -0
  483. package/src/VideoSelfieSelfieCaptureScreen.tsx +122 -0
  484. package/src/VideoSelfieSpeakScreen.tsx +237 -0
  485. package/src/VideoSelfieStrings.ts +222 -0
  486. package/src/VideoSelfieSuccessScreen.tsx +64 -0
  487. package/src/VideoSelfieTutorialScreen.tsx +129 -0
  488. package/src/ViewfinderScreen.css +107 -0
  489. package/src/ViewfinderScreen.tsx +113 -0
  490. package/src/WatchlistBusinessFormScreen.tsx +176 -0
  491. package/src/WatchlistBusinessProcessingScreen.tsx +63 -0
  492. package/src/WatchlistBusinessStrings.ts +121 -0
  493. package/src/WatchlistBusinessSuccessScreen.tsx +67 -0
  494. package/src/flows.ts +711 -0
  495. package/src/index.ts +591 -0
  496. package/src/styles.css +33 -0
  497. package/src/types.ts +69 -0
@@ -0,0 +1,56 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { forwardRef } from 'react';
4
+ import { IconWifiOff } from '@incodetech/prizma-core-icons';
5
+ import { PrizmaResultScreen } from './ResultScreen';
6
+ import './ScreenLayout.css';
7
+ /**
8
+ * Geolocation — the error verdicts, built on the Result archetype
9
+ * (GUIDELINES.md §6-F, `PrizmaResultScreen`).
10
+ *
11
+ * ONE screen for the four purple `Geolocation.error.*` sections. All four draw
12
+ * the identical skeleton — a centred mark + title + supporting line over a
13
+ * single CTA — and differ only in copy and in which mark leads:
14
+ *
15
+ * - `locationUnavailable` — weak/inaccurate signal, "Try again"
16
+ * - `quit` — attempts exhausted, the step is required
17
+ * - `skip` — attempts exhausted, the step is optional
18
+ * - `noNetwork` — the connectivity family every module carries
19
+ *
20
+ * Figma draws the first three with a filled amber disc; Core renders the
21
+ * canonical OUTLINE warning mark (icon-outline sweep, DEVIATIONS #15). The
22
+ * module Figma is one sweep behind, exactly as Face Capture's and ID Capture's
23
+ * result screens were.
24
+ *
25
+ * `noNetwork` KEEPS the logo header and the verified tag even though its purple
26
+ * section draws neither: the owner rule of 2026-08-18 (#F-30, #F-34) makes the
27
+ * chrome constant across every screen so nothing shifts between states, and all
28
+ * modules' connectivity screens must read identically (#PI-8).
29
+ *
30
+ * The Wi-Fi mark is Figma's `Icon / Wi-Fi`; Core's `PrizmaTitle` icon allowlist
31
+ * is `status | spinner | none`, so it rides the archetype's `glyph` slot with
32
+ * the foundation's `__glyph` class, drawn from the canonical icon bank (#10).
33
+ */
34
+ export const GeolocationErrorScreen = forwardRef(({ strings, variant = 'locationUnavailable', screenId = `geolocation-error-${variant}`, overrides, onAction, ...shell }, ref) => {
35
+ const noConnection = variant === 'noNetwork';
36
+ const copy = noConnection
37
+ ? strings.error.noConnection
38
+ : variant === 'quit'
39
+ ? strings.error.quit
40
+ : variant === 'skip'
41
+ ? strings.error.skip
42
+ : strings.error.locationUnavailable;
43
+ return (_jsx(PrizmaResultScreen, { ref: ref,
44
+ /* The connectivity screen leads with the Wi-Fi glyph instead of a
45
+ status mark; the other three carry the canonical warning mark, which
46
+ is what the module Figma draws (amber, not red). */
47
+ status: noConnection ? 'none' : 'warning', glyph: noConnection ? (_jsx("span", { className: [
48
+ 'prizma-screen-layout__glyph',
49
+ 'prizma-screen-layout__glyph--negative',
50
+ overrides?.align === 'left' ? 'prizma-screen-layout__glyph--left' : '',
51
+ ]
52
+ .filter(Boolean)
53
+ .join(' '), children: _jsx(IconWifiOff, { size: "l" }) })) : undefined, title: copy.title, subtitle: copy.subtitle, ctaLabel: copy.ctaLabel, verifiedLabel: strings.verifiedLabel, navLabel: strings.navLabel, screenId: screenId, overrides: overrides, onAction: onAction, ...shell }));
54
+ });
55
+ GeolocationErrorScreen.displayName = 'GeolocationErrorScreen';
56
+ export default GeolocationErrorScreen;
@@ -0,0 +1,49 @@
1
+ import React, { type ReactNode } from 'react';
2
+ import { type PrizmaTutorialScreenProps } from './TutorialScreen';
3
+ import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
4
+ import type { GeolocationIntroState, GeolocationStrings } from './GeolocationStrings';
5
+ import './ScreenLayout.css';
6
+ export interface GeolocationIntroScreenProps extends Omit<PrizmaTutorialScreenProps, 'title' | 'subtitle' | 'disclaimer' | 'ctaLabel' | 'ctaLoadingLabel' | 'illustration' | 'verifiedLabel' | 'navLabel'> {
7
+ /** Module copy — this screen reads the `intro` slice (+ shared labels). */
8
+ strings: GeolocationStrings;
9
+ /** Which purple intro section to render. Default `request`. */
10
+ state?: GeolocationIntroState;
11
+ /**
12
+ * The resolved place shown on `located` ("Mexico City, Mexico"). Runtime data,
13
+ * never copy — the host's geocoder produces it, so it does not belong in
14
+ * `strings`. Falls back to `strings.intro.located.subtitle`.
15
+ */
16
+ location?: string;
17
+ /** Replace Core's geolocation illustration (host artwork / a still). */
18
+ illustration?: ReactNode;
19
+ screenId?: string;
20
+ overrides?: PrizmaScreenOverrides;
21
+ onAction?: PrizmaScreenActionHandler;
22
+ }
23
+ /**
24
+ * Geolocation — the two intro sections, built on the `PrizmaTutorialScreen`
25
+ * archetype (GUIDELINES.md §6-A).
26
+ *
27
+ * ONE screen for both purple sections, because they draw the identical
28
+ * skeleton — nav → title block → illustration filling the middle → CTA → tag —
29
+ * and differ only in copy and in which state of the illustration is showing:
30
+ *
31
+ * - `request` (`geolocation.default`) — "We need to determine your current
32
+ * location", inactive artwork, CTA asks for permission.
33
+ * - `located` (`Geolocation.continue`) — "You are currently in:" with the
34
+ * resolved place, active artwork (brand pin dropped), CTA advances the flow.
35
+ *
36
+ * The artwork is Core's own `PrizmaIllustrationGeolocation`, whose `active`
37
+ * axis is exactly this pair of states — nothing is inlined here (§10).
38
+ *
39
+ * Its drawing differs from the module Figma's, which draws a folded street map
40
+ * with a pin dropped on it — grey with a ✕ through the pin on `geolocation.default`,
41
+ * brand blue on `Geolocation.continue`. Core's illustration wins (rule 4), and
42
+ * the divergence is ESCALATED, NOT RESOLVED: DEVIATIONS.md still has no
43
+ * Geolocation section, so there is no numbered ruling to cite yet.
44
+ *
45
+ * Figma also draws a nav ✕ on both sections; it is deliberately not built here
46
+ * (#PI-9).
47
+ */
48
+ export declare const GeolocationIntroScreen: React.ForwardRefExoticComponent<GeolocationIntroScreenProps & React.RefAttributes<HTMLDivElement>>;
49
+ export default GeolocationIntroScreen;
@@ -0,0 +1,38 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { forwardRef } from 'react';
4
+ import { PrizmaIllustrationGeolocation } from '@incodetech/prizma-core-web/illustration-geolocation';
5
+ import { PrizmaTutorialScreen } from './TutorialScreen';
6
+ import './ScreenLayout.css';
7
+ /**
8
+ * Geolocation — the two intro sections, built on the `PrizmaTutorialScreen`
9
+ * archetype (GUIDELINES.md §6-A).
10
+ *
11
+ * ONE screen for both purple sections, because they draw the identical
12
+ * skeleton — nav → title block → illustration filling the middle → CTA → tag —
13
+ * and differ only in copy and in which state of the illustration is showing:
14
+ *
15
+ * - `request` (`geolocation.default`) — "We need to determine your current
16
+ * location", inactive artwork, CTA asks for permission.
17
+ * - `located` (`Geolocation.continue`) — "You are currently in:" with the
18
+ * resolved place, active artwork (brand pin dropped), CTA advances the flow.
19
+ *
20
+ * The artwork is Core's own `PrizmaIllustrationGeolocation`, whose `active`
21
+ * axis is exactly this pair of states — nothing is inlined here (§10).
22
+ *
23
+ * Its drawing differs from the module Figma's, which draws a folded street map
24
+ * with a pin dropped on it — grey with a ✕ through the pin on `geolocation.default`,
25
+ * brand blue on `Geolocation.continue`. Core's illustration wins (rule 4), and
26
+ * the divergence is ESCALATED, NOT RESOLVED: DEVIATIONS.md still has no
27
+ * Geolocation section, so there is no numbered ruling to cite yet.
28
+ *
29
+ * Figma also draws a nav ✕ on both sections; it is deliberately not built here
30
+ * (#PI-9).
31
+ */
32
+ export const GeolocationIntroScreen = forwardRef(({ strings, state = 'request', location, illustration, screenId = `geolocation-intro-${state}`, overrides, onAction, ...shell }, ref) => {
33
+ const located = state === 'located';
34
+ const copy = located ? strings.intro.located : strings.intro.request;
35
+ return (_jsx(PrizmaTutorialScreen, { ref: ref, title: copy.title, subtitle: located ? (location ?? copy.subtitle) : copy.subtitle, ctaLabel: copy.ctaLabel, illustration: illustration ?? _jsx(PrizmaIllustrationGeolocation, { active: located, decorative: true }), verifiedLabel: strings.verifiedLabel, navLabel: strings.navLabel, screenId: screenId, overrides: overrides, onAction: onAction, ...shell }));
36
+ });
37
+ GeolocationIntroScreen.displayName = 'GeolocationIntroScreen';
38
+ export default GeolocationIntroScreen;
@@ -0,0 +1,38 @@
1
+ import React from 'react';
2
+ import { type PrizmaResultScreenProps } from './ResultScreen';
3
+ import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
4
+ import type { GeolocationPermissionVariant, GeolocationStrings } from './GeolocationStrings';
5
+ import './ScreenLayout.css';
6
+ export interface GeolocationPermissionScreenProps extends Omit<PrizmaResultScreenProps, 'status' | 'title' | 'subtitle' | 'glyph' | 'ctaLabel' | 'secondaryCtaLabel' | 'verifiedLabel' | 'navLabel'> {
7
+ /** Module copy — this screen reads the `permission` slice. */
8
+ strings: GeolocationStrings;
9
+ /** Which second action the flow offers. Default `skip`. */
10
+ variant?: GeolocationPermissionVariant;
11
+ screenId?: string;
12
+ overrides?: PrizmaScreenOverrides;
13
+ onAction?: PrizmaScreenActionHandler;
14
+ }
15
+ /**
16
+ * Geolocation — "Allow location access", built on the Result archetype
17
+ * (GUIDELINES.md §6-F, `PrizmaResultScreen`).
18
+ *
19
+ * ONE screen for the two purple sections `Geolocation.AllowLocation` and
20
+ * `Geolocation.AllowLocation.quit`: the user declined the OS prompt, so the
21
+ * screen reports the blocked state (warning mark → title → subtitle) and offers
22
+ * to open the OS settings. They differ only in the second action — skip the
23
+ * step, or quit the process — which is a copy variant, not a second screen.
24
+ *
25
+ * The warning mark is Core's outline status icon, not the module Figma's filled
26
+ * amber disc: the outline sweep of 2026-07-28 settled that for every module
27
+ * (DEVIATIONS #15, #DC-34).
28
+ *
29
+ * Figma draws the filled primary ABOVE the outlined second action on both
30
+ * sections ("Open settings" over "Skip this step" / "Quit process"); archetype F
31
+ * stacks the secondary first (`ResultScreen.tsx`), so these two screens ship
32
+ * inverted against their frames. The archetype owns the order and no module
33
+ * re-declares it — archetype F needs a `ctaOrder` slot alongside the
34
+ * `ctaOrientation` it already has. ESCALATED, NOT RESOLVED: DEVIATIONS.md still
35
+ * has no Geolocation section, so there is no ruling to cite yet.
36
+ */
37
+ export declare const GeolocationPermissionScreen: React.ForwardRefExoticComponent<GeolocationPermissionScreenProps & React.RefAttributes<HTMLDivElement>>;
38
+ export default GeolocationPermissionScreen;
@@ -0,0 +1,30 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { forwardRef } from 'react';
4
+ import { PrizmaResultScreen } from './ResultScreen';
5
+ import './ScreenLayout.css';
6
+ /**
7
+ * Geolocation — "Allow location access", built on the Result archetype
8
+ * (GUIDELINES.md §6-F, `PrizmaResultScreen`).
9
+ *
10
+ * ONE screen for the two purple sections `Geolocation.AllowLocation` and
11
+ * `Geolocation.AllowLocation.quit`: the user declined the OS prompt, so the
12
+ * screen reports the blocked state (warning mark → title → subtitle) and offers
13
+ * to open the OS settings. They differ only in the second action — skip the
14
+ * step, or quit the process — which is a copy variant, not a second screen.
15
+ *
16
+ * The warning mark is Core's outline status icon, not the module Figma's filled
17
+ * amber disc: the outline sweep of 2026-07-28 settled that for every module
18
+ * (DEVIATIONS #15, #DC-34).
19
+ *
20
+ * Figma draws the filled primary ABOVE the outlined second action on both
21
+ * sections ("Open settings" over "Skip this step" / "Quit process"); archetype F
22
+ * stacks the secondary first (`ResultScreen.tsx`), so these two screens ship
23
+ * inverted against their frames. The archetype owns the order and no module
24
+ * re-declares it — archetype F needs a `ctaOrder` slot alongside the
25
+ * `ctaOrientation` it already has. ESCALATED, NOT RESOLVED: DEVIATIONS.md still
26
+ * has no Geolocation section, so there is no ruling to cite yet.
27
+ */
28
+ export const GeolocationPermissionScreen = forwardRef(({ strings, variant = 'skip', screenId = `geolocation-permission-${variant}`, overrides, onAction, ...shell }, ref) => (_jsx(PrizmaResultScreen, { ref: ref, status: "warning", title: strings.permission.title, subtitle: strings.permission.subtitle, ctaLabel: strings.permission.ctaLabel, secondaryCtaLabel: variant === 'quit' ? strings.permission.quitLabel : strings.permission.skipLabel, verifiedLabel: strings.verifiedLabel, navLabel: strings.navLabel, screenId: screenId, overrides: overrides, onAction: onAction, ...shell })));
29
+ GeolocationPermissionScreen.displayName = 'GeolocationPermissionScreen';
30
+ export default GeolocationPermissionScreen;
@@ -0,0 +1,157 @@
1
+ /**
2
+ * The two intro sections. Same layout — title block, geolocation illustration,
3
+ * one CTA — so they are states of one screen rather than two screens:
4
+ * - `request` — `geolocation.default`, location not yet known (inactive artwork)
5
+ * - `located` — `Geolocation.continue`, the resolved place in the subtitle
6
+ * (active artwork: brand pin dropped on the map)
7
+ */
8
+ export type GeolocationIntroState = 'request' | 'located';
9
+ /**
10
+ * The `Geolocation.AllowLocation*` sections. Identical screens except for the
11
+ * second action: the flow either lets the user skip the step or forces a quit.
12
+ */
13
+ export type GeolocationPermissionVariant = 'skip' | 'quit';
14
+ /**
15
+ * The `Geolocation.error.*` sections.
16
+ * - `locationUnavailable` — weak signal, retry is offered
17
+ * - `quit` — attempts exhausted and the step is required
18
+ * - `skip` — attempts exhausted but the step is optional
19
+ * - `noNetwork` — the connectivity family (Wi-Fi glyph, DEVIATIONS #10)
20
+ */
21
+ export type GeolocationErrorVariant = 'locationUnavailable' | 'quit' | 'skip' | 'noNetwork';
22
+ /**
23
+ * The nine `Geolocation.allowLocation.*` sections of the Web group. Each is the
24
+ * same screen with a different step list, because "turn location back on" is a
25
+ * different journey in every browser.
26
+ *
27
+ * `samsungAndroid` is the section Figma labels `…web.opera.Android` a second
28
+ * time (4936:72487): its rows read "Sites and downloads" / "Site permissions"
29
+ * and its return row draws the Samsung Internet mark, so it is Samsung Internet,
30
+ * not a second Opera. Named for what it draws.
31
+ */
32
+ export type GeolocationBrowser = 'safariIos' | 'chromeIos' | 'firefoxIos' | 'operaIos' | 'chromeAndroid' | 'firefoxAndroid' | 'operaAndroid' | 'samsungAndroid' | 'unrecognizedAndroid';
33
+ /**
34
+ * What a browser step is ABOUT, not what glyph it draws. The screen owns the
35
+ * kind → canonical bank icon map so no host ever passes artwork, and so the
36
+ * substitutions live in exactly one place (DEVIATIONS #DC-23 precedent — Figma
37
+ * draws OS/browser chrome the Prizma icon bank does not ship).
38
+ */
39
+ export type GeolocationStepKind =
40
+ /** The browser's address bar (Safari's "AA" control). */
41
+ 'addressBar'
42
+ /** The ⋮ / ⋯ overflow menu. */
43
+ | 'menu'
44
+ /** A settings screen (browser settings, site settings). */
45
+ | 'settings'
46
+ /** A permissions list. */
47
+ | 'permissions'
48
+ /** The location permission itself. */
49
+ | 'location'
50
+ /** The device's own Settings app. */
51
+ | 'device'
52
+ /** The app list / app drawer. */
53
+ | 'apps'
54
+ /** "Return here and refresh" — Figma draws the browser's own logo. */
55
+ | 'return';
56
+ /** One row of a browser's step list. */
57
+ export interface GeolocationStep {
58
+ /** Chooses the leading canonical icon. Never artwork. */
59
+ kind: GeolocationStepKind;
60
+ /**
61
+ * The whole instruction as one line. Figma bolds the actionable fragment
62
+ * inside the sentence; Core's row title is a plain `string`, so the emphasis
63
+ * is not expressible — reported, not worked around (see the screen's docs).
64
+ */
65
+ label: string;
66
+ }
67
+ /** One browser's slice of the step-list screen. */
68
+ export interface GeolocationBrowserSteps {
69
+ /**
70
+ * The browser name under the title ("Safari", "Chrome · Android"). Figma
71
+ * draws it on the Safari section only and leaves the other eight to identify
72
+ * themselves through artwork — each section's last row leads with that
73
+ * browser's own logo. Prizma never bundles brand rasters (rule 1,
74
+ * GUIDELINES §10), so without a label those sections are indistinguishable:
75
+ * `…chrome.iOS`, `…firefox.iOS` and `…chrome.android` carry the same four
76
+ * rows and would render as one screen three times. Every browser therefore
77
+ * SHOULD carry a label, extending the precedent Figma itself sets on Safari.
78
+ * Still optional so a host that ships its own logo artwork can drop it.
79
+ */
80
+ label?: string;
81
+ /** The steps, in order. */
82
+ steps: GeolocationStep[];
83
+ }
84
+ export interface GeolocationStrings {
85
+ /** "verified by" attribution in the footer tag. */
86
+ verifiedLabel: string;
87
+ /** Accessible name for the logo nav row. */
88
+ navLabel?: string;
89
+ /** geolocation.default + Geolocation.continue */
90
+ intro: {
91
+ /** `geolocation.default` — "We need to determine your current location". */
92
+ request: {
93
+ title: string;
94
+ subtitle?: string;
95
+ /** Primary CTA ("Continue"). */
96
+ ctaLabel: string;
97
+ };
98
+ /**
99
+ * `Geolocation.continue` — "You are currently in:". The place itself
100
+ * ("Mexico City, Mexico") is runtime data, not copy: it arrives as the
101
+ * screen's `location` prop and lands in the subtitle. `subtitle` here is the
102
+ * fallback for hosts that have no resolved place to show.
103
+ */
104
+ located: {
105
+ title: string;
106
+ subtitle?: string;
107
+ ctaLabel: string;
108
+ };
109
+ };
110
+ /** Geolocation.AllowLocation + Geolocation.AllowLocation.quit */
111
+ permission: {
112
+ /** H2 ("Allow location access"). */
113
+ title: string;
114
+ /** H5 ("to complete the process"). */
115
+ subtitle?: string;
116
+ /** Primary CTA ("Open settings"). */
117
+ ctaLabel: string;
118
+ /** Second action on the `skip` variant ("Skip this step"). */
119
+ skipLabel: string;
120
+ /** Second action on the `quit` variant ("Quit process"). */
121
+ quitLabel: string;
122
+ };
123
+ /** Geolocation.allowLocation.<browser> — the Web group's nine sections. */
124
+ browserSteps: {
125
+ /** H2, shared by all nine ("Follow the next steps to allow Incode to access your location"). */
126
+ title: string;
127
+ /** Primary CTA ("Refresh page"). */
128
+ ctaLabel: string;
129
+ /** Second action ("Skip this step"). Omit on flows where the step is required. */
130
+ skipLabel?: string;
131
+ /** One entry per browser. */
132
+ browsers: Record<GeolocationBrowser, GeolocationBrowserSteps>;
133
+ };
134
+ /** Geolocation.error.* — one slice per variant. */
135
+ error: {
136
+ locationUnavailable: {
137
+ title: string;
138
+ subtitle?: string;
139
+ ctaLabel: string;
140
+ };
141
+ quit: {
142
+ title: string;
143
+ subtitle?: string;
144
+ ctaLabel: string;
145
+ };
146
+ skip: {
147
+ title: string;
148
+ subtitle?: string;
149
+ ctaLabel: string;
150
+ };
151
+ noConnection: {
152
+ title: string;
153
+ subtitle?: string;
154
+ ctaLabel: string;
155
+ };
156
+ };
157
+ }
@@ -0,0 +1,28 @@
1
+ // Geolocation — copy contract.
2
+ //
3
+ // Figma: `📍 Geolocation - Screens specs + Localization` and
4
+ // `📍 Geolocation 🌐 Web - Allow location - Screens specs + Localization`
5
+ // (xg1t3GnUS95A4bLrM3lyOG, page 2002:1727). The two parent groups hold these
6
+ // purple sections:
7
+ //
8
+ // geolocation.default — the location request intro
9
+ // geolocation.permission — the NATIVE iOS permission alert (not built, see below)
10
+ // Geolocation.AllowLocation — permission refused, "Skip this step"
11
+ // Geolocation.AllowLocation.quit — permission refused, "Quit process"
12
+ // Geolocation.continue — located, shows the resolved place
13
+ // Geolocation.error.locationUnavailable— signal too weak, retry
14
+ // Geolocation.error.quit — attempts exhausted, step is required
15
+ // Geolocation.error.skip — attempts exhausted, step is optional
16
+ // Geolocation.error.noNetwork — the connectivity family every module carries
17
+ // Geolocation.allowLocation.<browser> — nine per-browser "turn location on" step lists
18
+ //
19
+ // `geolocation.permission` is the iOS system alert ("Allow 'Incode' to use your
20
+ // location?" over a live Apple Maps tile) drawn as flow documentation. It is not
21
+ // a Prizma surface: none of its chrome exists in Core and rebuilding it would
22
+ // mean inventing primitives and shipping platform rasters — both forbidden
23
+ // (rule 1, GUIDELINES §10). Same call as ID Capture's OS dialogs (DEVIATIONS
24
+ // #IDC-26) and Document Capture's iOS action sheets (#DC-20).
25
+ //
26
+ // No hardcoded English anywhere in a screen: every visible string arrives here,
27
+ // so the host's locale pack drives the module (the file ships ES + PT columns).
28
+ export {};
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ import { type PrizmaListScreenProps } from './ListScreen';
3
+ import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
4
+ import type { IdCaptureStrings } from './IdCaptureStrings';
5
+ import './ScreenLayout.css';
6
+ export interface IdCaptureAgeVerificationScreenProps extends Omit<PrizmaListScreenProps, 'title' | 'subtitle' | 'children' | 'ctaLabel' | 'verifiedLabel' | 'navLabel'> {
7
+ /** Module copy — this screen reads the `ageVerification` slice. */
8
+ strings: IdCaptureStrings;
9
+ screenId?: string;
10
+ overrides?: PrizmaScreenOverrides;
11
+ onAction?: PrizmaScreenActionHandler;
12
+ }
13
+ /**
14
+ * ID Capture — age-verification consent, built on the `PrizmaListScreen`
15
+ * archetype (GUIDELINES.md §6-G).
16
+ * Figma: purple section `1-1-2-id` of the `Age verification` group.
17
+ *
18
+ * Logo nav → Title → three reassurance rows → CTA → verified tag. The rows are
19
+ * Core's `PrizmaCardListCommonIssues` (Figma `list-unordered`), so the row
20
+ * geometry, the icon slot and the title/description typography are Core's, and
21
+ * the Spacing/24 under the title block is the archetype's — this file used to
22
+ * declare it as `.id-capture-info-list` (deleted; #F-31).
23
+ */
24
+ export declare const IdCaptureAgeVerificationScreen: React.ForwardRefExoticComponent<IdCaptureAgeVerificationScreenProps & React.RefAttributes<HTMLDivElement>>;
25
+ export default IdCaptureAgeVerificationScreen;
@@ -0,0 +1,38 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { forwardRef } from 'react';
4
+ import { IconCalendar, IconIdFrontScan, IconLockCheck } from '@incodetech/prizma-core-icons';
5
+ import { PrizmaCardListCommonIssues } from '@incodetech/prizma-core-web/card-list';
6
+ import { PrizmaListScreen } from './ListScreen';
7
+ import './ScreenLayout.css';
8
+ /**
9
+ * The three rows' leading icons, in the order the purple section lists them:
10
+ * scan the ID · we only read the date of birth · the rest is deleted. From the
11
+ * canonical bank only (§10) — Figma draws small ID-card thumbnails, which the
12
+ * 24px `Icon/Size/m` row slot of Core's redesigned list does not take.
13
+ * DEVIATIONS.md #IDC-24.
14
+ */
15
+ const ROW_ICONS = [
16
+ _jsx(IconIdFrontScan, { size: "m" }, "scan"),
17
+ _jsx(IconCalendar, { size: "m" }, "dob"),
18
+ _jsx(IconLockCheck, { size: "m" }, "privacy"),
19
+ ];
20
+ /**
21
+ * ID Capture — age-verification consent, built on the `PrizmaListScreen`
22
+ * archetype (GUIDELINES.md §6-G).
23
+ * Figma: purple section `1-1-2-id` of the `Age verification` group.
24
+ *
25
+ * Logo nav → Title → three reassurance rows → CTA → verified tag. The rows are
26
+ * Core's `PrizmaCardListCommonIssues` (Figma `list-unordered`), so the row
27
+ * geometry, the icon slot and the title/description typography are Core's, and
28
+ * the Spacing/24 under the title block is the archetype's — this file used to
29
+ * declare it as `.id-capture-info-list` (deleted; #F-31).
30
+ */
31
+ export const IdCaptureAgeVerificationScreen = forwardRef(({ strings, screenId = 'id-capture-age-verification', overrides, onAction, ...shell }, ref) => (_jsx(PrizmaListScreen, { ref: ref, title: strings.ageVerification.title, subtitle: strings.ageVerification.subtitle, ctaLabel: strings.ageVerification.ctaLabel, verifiedLabel: strings.verifiedLabel, navLabel: strings.navLabel, screenId: screenId, overrides: overrides, onAction: onAction, ...shell, children: _jsx(PrizmaCardListCommonIssues, { items: strings.ageVerification.rows.map((row, i) => ({
32
+ icon: ROW_ICONS[i % ROW_ICONS.length],
33
+ title: row.title,
34
+ subtitle: row.description,
35
+ showSubtitle: Boolean(row.description),
36
+ })) }) })));
37
+ IdCaptureAgeVerificationScreen.displayName = 'IdCaptureAgeVerificationScreen';
38
+ export default IdCaptureAgeVerificationScreen;
@@ -0,0 +1,41 @@
1
+ import React, { type ReactNode } from 'react';
2
+ import { type PrizmaScreenShellProps } from './ScreenShell';
3
+ import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
4
+ import type { IdCaptureDocumentType, IdCaptureStrings } from './IdCaptureStrings';
5
+ import './ScreenLayout.css';
6
+ import './IdCaptureLayout.css';
7
+ export interface IdCaptureAnalyzingScreenProps extends Omit<PrizmaScreenShellProps, 'dark' | 'title' | 'children'> {
8
+ /** Module copy — this screen reads the `analyzing` slice. */
9
+ strings: IdCaptureStrings;
10
+ /** Which document was captured — Core `PrizmaIdCapture.type`. */
11
+ documentType?: IdCaptureDocumentType;
12
+ /** Portrait document orientation — the `↕️ vertical` groups. */
13
+ vertical?: boolean;
14
+ /** How far along the upload/analysis is, 0–100 (Core `PrizmaLoadingBar`). */
15
+ progress?: number;
16
+ /** The captured document still (<img>) being analyzed. */
17
+ still?: ReactNode;
18
+ screenId?: string;
19
+ overrides?: PrizmaScreenOverrides;
20
+ onAction?: PrizmaScreenActionHandler;
21
+ }
22
+ /**
23
+ * ID Capture — analyzing the captured still.
24
+ * Figma: purple sections `1-9-1` / `1-9-2-id-analyzing`,
25
+ * `1-16-1` / `1-16-2-id-back-analyzing`, `3-9-1-id-passport-analyzing`,
26
+ * `2-9-1-id-vertical-analyzing`, `4-9-1-id-passport-vertical-analyzing`.
27
+ *
28
+ * NOT the Processing archetype (§6-C) and not a spinner screen: every purple
29
+ * analyzing section puts a `Loading bar` + its status line in the SAME top band
30
+ * the Title occupies on the result screens, with the still below it in the
31
+ * capture frame — the identical three-band recipe (see `IdCaptureLayout.css`),
32
+ * so the screen is the result layout with the Title swapped for the bar. Core
33
+ * owns both halves: `PrizmaLoadingBar` draws the track, the fill and the status
34
+ * title, and `PrizmaIdCapture`'s `analyzing` state draws the positive frame and
35
+ * the sweep over the still.
36
+ *
37
+ * The bar's `state="analyzing"` is what tints the fill; the screen never picks
38
+ * a colour of its own.
39
+ */
40
+ export declare const IdCaptureAnalyzingScreen: React.ForwardRefExoticComponent<IdCaptureAnalyzingScreenProps & React.RefAttributes<HTMLDivElement>>;
41
+ export default IdCaptureAnalyzingScreen;
@@ -0,0 +1,30 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { forwardRef } from 'react';
4
+ import { PrizmaLoadingBar } from '@incodetech/prizma-core-web/loading-bar';
5
+ import { PrizmaIdCapture } from '@incodetech/prizma-core-web/id-capture';
6
+ import { PrizmaTag } from '@incodetech/prizma-core-web/tag';
7
+ import { PrizmaScreenShell } from './ScreenShell';
8
+ import './ScreenLayout.css';
9
+ import './IdCaptureLayout.css';
10
+ /**
11
+ * ID Capture — analyzing the captured still.
12
+ * Figma: purple sections `1-9-1` / `1-9-2-id-analyzing`,
13
+ * `1-16-1` / `1-16-2-id-back-analyzing`, `3-9-1-id-passport-analyzing`,
14
+ * `2-9-1-id-vertical-analyzing`, `4-9-1-id-passport-vertical-analyzing`.
15
+ *
16
+ * NOT the Processing archetype (§6-C) and not a spinner screen: every purple
17
+ * analyzing section puts a `Loading bar` + its status line in the SAME top band
18
+ * the Title occupies on the result screens, with the still below it in the
19
+ * capture frame — the identical three-band recipe (see `IdCaptureLayout.css`),
20
+ * so the screen is the result layout with the Title swapped for the bar. Core
21
+ * owns both halves: `PrizmaLoadingBar` draws the track, the fill and the status
22
+ * title, and `PrizmaIdCapture`'s `analyzing` state draws the positive frame and
23
+ * the sweep over the still.
24
+ *
25
+ * The bar's `state="analyzing"` is what tints the fill; the screen never picks
26
+ * a colour of its own.
27
+ */
28
+ export const IdCaptureAnalyzingScreen = forwardRef(({ strings, documentType = 'id', vertical = false, progress = 30, still, screenId = 'id-capture-analyzing', overrides, onAction, ...shell }, ref) => (_jsxs(PrizmaScreenShell, { ref: ref, ...shell, children: [_jsxs("div", { className: "prizma-screen-layout__content prizma-screen-layout__content--no-nav id-capture-on-surface", children: [_jsx("div", { className: "id-capture-band id-capture-band--top", children: _jsx(PrizmaLoadingBar, { progress: progress, state: "analyzing", showTitle: true, title: strings.analyzing.title }) }), _jsx(PrizmaIdCapture, { type: documentType, state: "analyzing", isVertical: vertical, mode: "overlay", encryptedLabel: strings.encryptedLabel, still: still }), _jsx("div", { className: "id-capture-band" })] }), _jsx("div", { className: "prizma-screen-layout__footer", children: _jsx(PrizmaTag, { label: strings.verifiedLabel }) })] })));
29
+ IdCaptureAnalyzingScreen.displayName = 'IdCaptureAnalyzingScreen';
30
+ export default IdCaptureAnalyzingScreen;
@@ -0,0 +1,31 @@
1
+ import React from 'react';
2
+ import { type PrizmaListScreenProps } from './ListScreen';
3
+ import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
4
+ import type { IdCaptureStrings } from './IdCaptureStrings';
5
+ import './ScreenLayout.css';
6
+ export interface IdCaptureCommonIssuesScreenProps extends Omit<PrizmaListScreenProps, 'title' | 'children' | 'glyph' | 'ctaLabel' | 'linkLabel' | 'verifiedLabel' | 'navLabel'> {
7
+ /** Module copy — this screen reads the `commonIssues` slice. */
8
+ strings: IdCaptureStrings;
9
+ screenId?: string;
10
+ overrides?: PrizmaScreenOverrides;
11
+ onAction?: PrizmaScreenActionHandler;
12
+ }
13
+ /**
14
+ * ID Capture — the "Common issues" help screen the stage's "?" opens, built on
15
+ * the `PrizmaListScreen` archetype (GUIDELINES.md §6-G).
16
+ * Figma: purple section `1-5-2-id-common-issues` of the front-side group.
17
+ *
18
+ * Glyph → Title → three explanatory rows → a tertiary link that switches to
19
+ * manual capture → the retry CTA. `showHeader={false}` keeps the section's
20
+ * logo-free chrome while still reserving the nav row, so every offset matches the
21
+ * rest of the module (owner rule 2026-08-18).
22
+ *
23
+ * Figma draws the header glyph as a filled 64px dark disc with a white question
24
+ * mark. Core's icon bank ships the OUTLINE question-circle and there is no
25
+ * filled-disc primitive, so the glyph is the bank icon in the archetype's
26
+ * non-status glyph slot at Title/Icon/Size — the same resolution the Face
27
+ * Capture pilot reached for its Wi-Fi glyph (DEVIATIONS.md #10) and the same
28
+ * outline-over-filled rule as the status marks (#15). DEVIATIONS.md #IDC-25.
29
+ */
30
+ export declare const IdCaptureCommonIssuesScreen: React.ForwardRefExoticComponent<IdCaptureCommonIssuesScreenProps & React.RefAttributes<HTMLDivElement>>;
31
+ export default IdCaptureCommonIssuesScreen;
@@ -0,0 +1,49 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { forwardRef } from 'react';
4
+ import { IconBankCardSearch, IconHide, IconImage, IconQuestionCircle, } from '@incodetech/prizma-core-icons';
5
+ import { PrizmaCardListCommonIssues } from '@incodetech/prizma-core-web/card-list';
6
+ import { PrizmaListScreen } from './ListScreen';
7
+ import './ScreenLayout.css';
8
+ /**
9
+ * The three rows' leading icons, in the order the purple section lists them:
10
+ * glare present · blur present · info is not readable. Canonical bank only
11
+ * (§10); the closest bank glyphs to Figma's drawings are the image mark, the
12
+ * crossed-out eye and the card-with-magnifier.
13
+ */
14
+ const ROW_ICONS = [
15
+ _jsx(IconImage, { size: "m" }, "glare"),
16
+ _jsx(IconHide, { size: "m" }, "blur"),
17
+ _jsx(IconBankCardSearch, { size: "m" }, "readable"),
18
+ ];
19
+ /**
20
+ * ID Capture — the "Common issues" help screen the stage's "?" opens, built on
21
+ * the `PrizmaListScreen` archetype (GUIDELINES.md §6-G).
22
+ * Figma: purple section `1-5-2-id-common-issues` of the front-side group.
23
+ *
24
+ * Glyph → Title → three explanatory rows → a tertiary link that switches to
25
+ * manual capture → the retry CTA. `showHeader={false}` keeps the section's
26
+ * logo-free chrome while still reserving the nav row, so every offset matches the
27
+ * rest of the module (owner rule 2026-08-18).
28
+ *
29
+ * Figma draws the header glyph as a filled 64px dark disc with a white question
30
+ * mark. Core's icon bank ships the OUTLINE question-circle and there is no
31
+ * filled-disc primitive, so the glyph is the bank icon in the archetype's
32
+ * non-status glyph slot at Title/Icon/Size — the same resolution the Face
33
+ * Capture pilot reached for its Wi-Fi glyph (DEVIATIONS.md #10) and the same
34
+ * outline-over-filled rule as the status marks (#15). DEVIATIONS.md #IDC-25.
35
+ */
36
+ export const IdCaptureCommonIssuesScreen = forwardRef(({ strings, screenId = 'id-capture-common-issues', showHeader = false, overrides, onAction, ...shell }, ref) => (_jsx(PrizmaListScreen, { ref: ref, showHeader: showHeader, glyph: _jsx("span", { className: [
37
+ 'prizma-screen-layout__glyph',
38
+ 'prizma-screen-layout__glyph--neutral',
39
+ overrides?.align === 'left' ? 'prizma-screen-layout__glyph--left' : '',
40
+ ]
41
+ .filter(Boolean)
42
+ .join(' '), children: _jsx(IconQuestionCircle, { size: "l" }) }), title: strings.commonIssues.title, ctaLabel: strings.commonIssues.ctaLabel, linkLabel: strings.commonIssues.manualLabel, verifiedLabel: strings.verifiedLabel, navLabel: strings.navLabel, screenId: screenId, overrides: overrides, onAction: onAction, ...shell, children: _jsx(PrizmaCardListCommonIssues, { items: strings.commonIssues.rows.map((row, i) => ({
43
+ icon: ROW_ICONS[i % ROW_ICONS.length],
44
+ title: row.title,
45
+ subtitle: row.description,
46
+ showSubtitle: Boolean(row.description),
47
+ })) }) })));
48
+ IdCaptureCommonIssuesScreen.displayName = 'IdCaptureCommonIssuesScreen';
49
+ export default IdCaptureCommonIssuesScreen;