@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,84 @@
1
+ import React, { forwardRef } from 'react';
2
+ import { IconCalendar, IconIdFrontScan, IconLockCheck } from '@incodetech/prizma-core-icons';
3
+ import { PrizmaCardListCommonIssues } from '@incodetech/prizma-core-web/card-list';
4
+ import { PrizmaListScreen, type PrizmaListScreenProps } from './ListScreen';
5
+ import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
6
+ import type { IdCaptureStrings } from './IdCaptureStrings';
7
+ import './ScreenLayout.css';
8
+
9
+ /**
10
+ * The three rows' leading icons, in the order the purple section lists them:
11
+ * scan the ID · we only read the date of birth · the rest is deleted. From the
12
+ * canonical bank only (§10) — Figma draws small ID-card thumbnails, which the
13
+ * 24px `Icon/Size/m` row slot of Core's redesigned list does not take.
14
+ * DEVIATIONS.md #IDC-24.
15
+ */
16
+ const ROW_ICONS = [
17
+ <IconIdFrontScan key="scan" size="m" />,
18
+ <IconCalendar key="dob" size="m" />,
19
+ <IconLockCheck key="privacy" size="m" />,
20
+ ];
21
+
22
+ export interface IdCaptureAgeVerificationScreenProps
23
+ extends Omit<
24
+ PrizmaListScreenProps,
25
+ 'title' | 'subtitle' | 'children' | 'ctaLabel' | 'verifiedLabel' | 'navLabel'
26
+ > {
27
+ /** Module copy — this screen reads the `ageVerification` slice. */
28
+ strings: IdCaptureStrings;
29
+ screenId?: string;
30
+ overrides?: PrizmaScreenOverrides;
31
+ onAction?: PrizmaScreenActionHandler;
32
+ }
33
+
34
+ /**
35
+ * ID Capture — age-verification consent, built on the `PrizmaListScreen`
36
+ * archetype (GUIDELINES.md §6-G).
37
+ * Figma: purple section `1-1-2-id` of the `Age verification` group.
38
+ *
39
+ * Logo nav → Title → three reassurance rows → CTA → verified tag. The rows are
40
+ * Core's `PrizmaCardListCommonIssues` (Figma `list-unordered`), so the row
41
+ * geometry, the icon slot and the title/description typography are Core's, and
42
+ * the Spacing/24 under the title block is the archetype's — this file used to
43
+ * declare it as `.id-capture-info-list` (deleted; #F-31).
44
+ */
45
+ export const IdCaptureAgeVerificationScreen = forwardRef<
46
+ HTMLDivElement,
47
+ IdCaptureAgeVerificationScreenProps
48
+ >(
49
+ (
50
+ {
51
+ strings,
52
+ screenId = 'id-capture-age-verification',
53
+ overrides,
54
+ onAction,
55
+ ...shell
56
+ },
57
+ ref,
58
+ ) => (
59
+ <PrizmaListScreen
60
+ ref={ref}
61
+ title={strings.ageVerification.title}
62
+ subtitle={strings.ageVerification.subtitle}
63
+ ctaLabel={strings.ageVerification.ctaLabel}
64
+ verifiedLabel={strings.verifiedLabel}
65
+ navLabel={strings.navLabel}
66
+ screenId={screenId}
67
+ overrides={overrides}
68
+ onAction={onAction}
69
+ {...shell}
70
+ >
71
+ <PrizmaCardListCommonIssues
72
+ items={strings.ageVerification.rows.map((row, i) => ({
73
+ icon: ROW_ICONS[i % ROW_ICONS.length],
74
+ title: row.title,
75
+ subtitle: row.description,
76
+ showSubtitle: Boolean(row.description),
77
+ }))}
78
+ />
79
+ </PrizmaListScreen>
80
+ ),
81
+ );
82
+ IdCaptureAgeVerificationScreen.displayName = 'IdCaptureAgeVerificationScreen';
83
+
84
+ export default IdCaptureAgeVerificationScreen;
@@ -0,0 +1,94 @@
1
+ import React, { forwardRef, type ReactNode } from 'react';
2
+ import { PrizmaLoadingBar } from '@incodetech/prizma-core-web/loading-bar';
3
+ import { PrizmaIdCapture } from '@incodetech/prizma-core-web/id-capture';
4
+ import { PrizmaTag } from '@incodetech/prizma-core-web/tag';
5
+ import { PrizmaScreenShell, type PrizmaScreenShellProps } from './ScreenShell';
6
+ import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
7
+ import type { IdCaptureDocumentType, IdCaptureStrings } from './IdCaptureStrings';
8
+ import './ScreenLayout.css';
9
+ import './IdCaptureLayout.css';
10
+
11
+ export interface IdCaptureAnalyzingScreenProps
12
+ extends Omit<PrizmaScreenShellProps, 'dark' | 'title' | 'children'> {
13
+ /** Module copy — this screen reads the `analyzing` slice. */
14
+ strings: IdCaptureStrings;
15
+ /** Which document was captured — Core `PrizmaIdCapture.type`. */
16
+ documentType?: IdCaptureDocumentType;
17
+ /** Portrait document orientation — the `↕️ vertical` groups. */
18
+ vertical?: boolean;
19
+ /** How far along the upload/analysis is, 0–100 (Core `PrizmaLoadingBar`). */
20
+ progress?: number;
21
+ /** The captured document still (<img>) being analyzed. */
22
+ still?: ReactNode;
23
+ screenId?: string;
24
+ overrides?: PrizmaScreenOverrides;
25
+ onAction?: PrizmaScreenActionHandler;
26
+ }
27
+
28
+ /**
29
+ * ID Capture — analyzing the captured still.
30
+ * Figma: purple sections `1-9-1` / `1-9-2-id-analyzing`,
31
+ * `1-16-1` / `1-16-2-id-back-analyzing`, `3-9-1-id-passport-analyzing`,
32
+ * `2-9-1-id-vertical-analyzing`, `4-9-1-id-passport-vertical-analyzing`.
33
+ *
34
+ * NOT the Processing archetype (§6-C) and not a spinner screen: every purple
35
+ * analyzing section puts a `Loading bar` + its status line in the SAME top band
36
+ * the Title occupies on the result screens, with the still below it in the
37
+ * capture frame — the identical three-band recipe (see `IdCaptureLayout.css`),
38
+ * so the screen is the result layout with the Title swapped for the bar. Core
39
+ * owns both halves: `PrizmaLoadingBar` draws the track, the fill and the status
40
+ * title, and `PrizmaIdCapture`'s `analyzing` state draws the positive frame and
41
+ * the sweep over the still.
42
+ *
43
+ * The bar's `state="analyzing"` is what tints the fill; the screen never picks
44
+ * a colour of its own.
45
+ */
46
+ export const IdCaptureAnalyzingScreen = forwardRef<
47
+ HTMLDivElement,
48
+ IdCaptureAnalyzingScreenProps
49
+ >(
50
+ (
51
+ {
52
+ strings,
53
+ documentType = 'id',
54
+ vertical = false,
55
+ progress = 30,
56
+ still,
57
+ screenId = 'id-capture-analyzing',
58
+ overrides,
59
+ onAction,
60
+ ...shell
61
+ },
62
+ ref,
63
+ ) => (
64
+ <PrizmaScreenShell ref={ref} {...shell}>
65
+ <div className="prizma-screen-layout__content prizma-screen-layout__content--no-nav id-capture-on-surface">
66
+ <div className="id-capture-band id-capture-band--top">
67
+ <PrizmaLoadingBar
68
+ progress={progress}
69
+ state="analyzing"
70
+ showTitle
71
+ title={strings.analyzing.title}
72
+ />
73
+ </div>
74
+ {/* Light surface — same overlay reasoning as IdCaptureResultScreen
75
+ (DEVIATIONS.md #IDC-28). */}
76
+ <PrizmaIdCapture
77
+ type={documentType}
78
+ state="analyzing"
79
+ isVertical={vertical}
80
+ mode="overlay"
81
+ encryptedLabel={strings.encryptedLabel}
82
+ still={still}
83
+ />
84
+ <div className="id-capture-band" />
85
+ </div>
86
+ <div className="prizma-screen-layout__footer">
87
+ <PrizmaTag label={strings.verifiedLabel} />
88
+ </div>
89
+ </PrizmaScreenShell>
90
+ ),
91
+ );
92
+ IdCaptureAnalyzingScreen.displayName = 'IdCaptureAnalyzingScreen';
93
+
94
+ export default IdCaptureAnalyzingScreen;
@@ -0,0 +1,109 @@
1
+ import React, { forwardRef } from 'react';
2
+ import {
3
+ IconBankCardSearch,
4
+ IconHide,
5
+ IconImage,
6
+ IconQuestionCircle,
7
+ } from '@incodetech/prizma-core-icons';
8
+ import { PrizmaCardListCommonIssues } from '@incodetech/prizma-core-web/card-list';
9
+ import { PrizmaListScreen, type PrizmaListScreenProps } from './ListScreen';
10
+ import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
11
+ import type { IdCaptureStrings } from './IdCaptureStrings';
12
+ import './ScreenLayout.css';
13
+
14
+ /**
15
+ * The three rows' leading icons, in the order the purple section lists them:
16
+ * glare present · blur present · info is not readable. Canonical bank only
17
+ * (§10); the closest bank glyphs to Figma's drawings are the image mark, the
18
+ * crossed-out eye and the card-with-magnifier.
19
+ */
20
+ const ROW_ICONS = [
21
+ <IconImage key="glare" size="m" />,
22
+ <IconHide key="blur" size="m" />,
23
+ <IconBankCardSearch key="readable" size="m" />,
24
+ ];
25
+
26
+ export interface IdCaptureCommonIssuesScreenProps
27
+ extends Omit<
28
+ PrizmaListScreenProps,
29
+ 'title' | 'children' | 'glyph' | 'ctaLabel' | 'linkLabel' | 'verifiedLabel' | 'navLabel'
30
+ > {
31
+ /** Module copy — this screen reads the `commonIssues` slice. */
32
+ strings: IdCaptureStrings;
33
+ screenId?: string;
34
+ overrides?: PrizmaScreenOverrides;
35
+ onAction?: PrizmaScreenActionHandler;
36
+ }
37
+
38
+ /**
39
+ * ID Capture — the "Common issues" help screen the stage's "?" opens, built on
40
+ * the `PrizmaListScreen` archetype (GUIDELINES.md §6-G).
41
+ * Figma: purple section `1-5-2-id-common-issues` of the front-side group.
42
+ *
43
+ * Glyph → Title → three explanatory rows → a tertiary link that switches to
44
+ * manual capture → the retry CTA. `showHeader={false}` keeps the section's
45
+ * logo-free chrome while still reserving the nav row, so every offset matches the
46
+ * rest of the module (owner rule 2026-08-18).
47
+ *
48
+ * Figma draws the header glyph as a filled 64px dark disc with a white question
49
+ * mark. Core's icon bank ships the OUTLINE question-circle and there is no
50
+ * filled-disc primitive, so the glyph is the bank icon in the archetype's
51
+ * non-status glyph slot at Title/Icon/Size — the same resolution the Face
52
+ * Capture pilot reached for its Wi-Fi glyph (DEVIATIONS.md #10) and the same
53
+ * outline-over-filled rule as the status marks (#15). DEVIATIONS.md #IDC-25.
54
+ */
55
+ export const IdCaptureCommonIssuesScreen = forwardRef<
56
+ HTMLDivElement,
57
+ IdCaptureCommonIssuesScreenProps
58
+ >(
59
+ (
60
+ {
61
+ strings,
62
+ screenId = 'id-capture-common-issues',
63
+ showHeader = false,
64
+ overrides,
65
+ onAction,
66
+ ...shell
67
+ },
68
+ ref,
69
+ ) => (
70
+ <PrizmaListScreen
71
+ ref={ref}
72
+ showHeader={showHeader}
73
+ glyph={
74
+ <span
75
+ className={[
76
+ 'prizma-screen-layout__glyph',
77
+ 'prizma-screen-layout__glyph--neutral',
78
+ overrides?.align === 'left' ? 'prizma-screen-layout__glyph--left' : '',
79
+ ]
80
+ .filter(Boolean)
81
+ .join(' ')}
82
+ >
83
+ <IconQuestionCircle size="l" />
84
+ </span>
85
+ }
86
+ title={strings.commonIssues.title}
87
+ ctaLabel={strings.commonIssues.ctaLabel}
88
+ linkLabel={strings.commonIssues.manualLabel}
89
+ verifiedLabel={strings.verifiedLabel}
90
+ navLabel={strings.navLabel}
91
+ screenId={screenId}
92
+ overrides={overrides}
93
+ onAction={onAction}
94
+ {...shell}
95
+ >
96
+ <PrizmaCardListCommonIssues
97
+ items={strings.commonIssues.rows.map((row, i) => ({
98
+ icon: ROW_ICONS[i % ROW_ICONS.length],
99
+ title: row.title,
100
+ subtitle: row.description,
101
+ showSubtitle: Boolean(row.description),
102
+ }))}
103
+ />
104
+ </PrizmaListScreen>
105
+ ),
106
+ );
107
+ IdCaptureCommonIssuesScreen.displayName = 'IdCaptureCommonIssuesScreen';
108
+
109
+ export default IdCaptureCommonIssuesScreen;
@@ -0,0 +1,92 @@
1
+ import React, { forwardRef } from 'react';
2
+ import { PrizmaCardDocumentList } from '@incodetech/prizma-core-web/card';
3
+ import { PrizmaResultScreen, type PrizmaResultScreenProps } from './ResultScreen';
4
+ import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
5
+ import type { IdCaptureStrings } from './IdCaptureStrings';
6
+ import './ScreenLayout.css';
7
+
8
+ export interface IdCaptureDocumentErrorScreenProps
9
+ extends Omit<
10
+ PrizmaResultScreenProps,
11
+ | 'status'
12
+ | 'title'
13
+ | 'subtitle'
14
+ | 'children'
15
+ | 'disclaimer'
16
+ | 'ctaLabel'
17
+ | 'verifiedLabel'
18
+ | 'navLabel'
19
+ > {
20
+ /** Module copy — this screen reads the `documentError` slice. */
21
+ strings: IdCaptureStrings;
22
+ /** The `-empty` variant: no accepted-documents list is available yet. */
23
+ empty?: boolean;
24
+ screenId?: string;
25
+ overrides?: PrizmaScreenOverrides;
26
+ onAction?: PrizmaScreenActionHandler;
27
+ }
28
+
29
+ /**
30
+ * ID Capture — the document itself is not accepted, built on the
31
+ * `PrizmaResultScreen` archetype (GUIDELINES.md §6-F).
32
+ * Figma: purple sections `1-9-12-id-documenterror`, `1-9-13-id-documenterror`
33
+ * and `1-9-11-id-documenterror-empty` of the `Document Errors 🚧` group.
34
+ * (`1-9-11-id-documenterror` is an EMPTY purple section — nothing is designed in
35
+ * it yet, so there is nothing to build; the group's 🚧 marker is honest.)
36
+ *
37
+ * Error status mark → Title → the accepted-documents card (the archetype's
38
+ * `children` slot) → attempts line (`disclaimer`) → retry CTA. The card block
39
+ * used to carry its own Spacing/24 in `IdCaptureLayout.css`; the archetype's
40
+ * centred column now supplies the gap, so the module declares no spacing at all
41
+ * (#F-33 records that the block therefore centres rather than sitting at the top).
42
+ *
43
+ * The card is Core's `PrizmaCardDocumentList`, which owns the country row (its
44
+ * bundled flag raster or an emoji fallback) and the document rows, and ships the
45
+ * `empty` placeholder the `-empty` section needs. Figma puts the
46
+ * "Accepted documents for: 🇺🇸 United States" line ABOVE the card while Core
47
+ * carries the country INSIDE it as the card's own header — the design system
48
+ * wins and the line is not duplicated outside. DEVIATIONS.md #IDC-27.
49
+ */
50
+ export const IdCaptureDocumentErrorScreen = forwardRef<
51
+ HTMLDivElement,
52
+ IdCaptureDocumentErrorScreenProps
53
+ >(
54
+ (
55
+ {
56
+ strings,
57
+ empty = false,
58
+ screenId = empty ? 'id-capture-document-error-empty' : 'id-capture-document-error',
59
+ overrides,
60
+ onAction,
61
+ ...shell
62
+ },
63
+ ref,
64
+ ) => (
65
+ <PrizmaResultScreen
66
+ ref={ref}
67
+ status="error"
68
+ title={strings.documentError.title}
69
+ subtitle={strings.documentError.description}
70
+ disclaimer={strings.documentError.attemptsLabel}
71
+ ctaLabel={strings.documentError.ctaLabel}
72
+ verifiedLabel={strings.verifiedLabel}
73
+ navLabel={strings.navLabel}
74
+ screenId={screenId}
75
+ overrides={overrides}
76
+ onAction={onAction}
77
+ {...shell}
78
+ >
79
+ <PrizmaCardDocumentList
80
+ state={empty ? 'empty' : 'default'}
81
+ countryCode={strings.documentError.countryCode}
82
+ flag={strings.documentError.flag}
83
+ country={strings.documentError.country}
84
+ documents={strings.documentError.documents}
85
+ emptyMessage={strings.documentError.emptyMessage}
86
+ />
87
+ </PrizmaResultScreen>
88
+ ),
89
+ );
90
+ IdCaptureDocumentErrorScreen.displayName = 'IdCaptureDocumentErrorScreen';
91
+
92
+ export default IdCaptureDocumentErrorScreen;
@@ -0,0 +1,100 @@
1
+ import React, { forwardRef } from 'react';
2
+ import { PrizmaCardListVerificationOptions } from '@incodetech/prizma-core-web/card-list';
3
+ import { PrizmaListScreen, type PrizmaListScreenProps } from './ListScreen';
4
+ import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
5
+ import type { IdCaptureDocumentType, IdCaptureStrings } from './IdCaptureStrings';
6
+ import './ScreenLayout.css';
7
+
8
+ export interface IdCaptureDocumentSelectionScreenProps
9
+ extends Omit<
10
+ PrizmaListScreenProps,
11
+ 'title' | 'subtitle' | 'children' | 'listAlign' | 'verifiedLabel' | 'navLabel'
12
+ > {
13
+ /** Module copy — this screen reads the `documentSelection` slice. */
14
+ strings: IdCaptureStrings;
15
+ /** Fired with the chosen document type; `onAction` still reports the tap.
16
+ * Named `onDocumentSelect`, not `onSelect` — the latter is a native <div>
17
+ * event the shell already passes through. */
18
+ onDocumentSelect?: (documentType: IdCaptureDocumentType) => void;
19
+ screenId?: string;
20
+ overrides?: PrizmaScreenOverrides;
21
+ onAction?: PrizmaScreenActionHandler;
22
+ }
23
+
24
+ /**
25
+ * ID Capture — choose which document to scan, built on the `PrizmaListScreen`
26
+ * archetype (GUIDELINES.md §6-G).
27
+ * Figma: purple sections `1-1-1-id` and `1-1-1-Document Chooser V2` of the
28
+ * `Document selection` group.
29
+ *
30
+ * The rows ARE the actions (Core makes each one a real `<button>`), so the
31
+ * archetype renders no CTA band; the option list hangs off the bottom of the
32
+ * middle via `listAlign="end"`, which is the offset this screen used to buy with
33
+ * a hand-placed `__flex` spacer.
34
+ *
35
+ * The two purple sections are two GENERATIONS of the same screen, and Core has
36
+ * already resolved which one ships: `1-1-1-id` draws each option as a card with
37
+ * a description line and a round blue arrow button, while
38
+ * `1-1-1-Document Chooser V2` draws flat rows of a 60px card icon + label +
39
+ * chevron — and the second is exactly Core's `Card / Verification options`
40
+ * after its 2026-07-27 redesign (`CardList.tsx`: the descriptive
41
+ * `Card/Item` stack was replaced, clean break, pre-1.0). The design system wins,
42
+ * so this screen is V2 and V1 is not rebuilt. DEVIATIONS.md #IDC-23.
43
+ *
44
+ * The row artwork comes from Core's card-icon bank (`id` / `passport`), so no
45
+ * illustration is redrawn here (§10).
46
+ */
47
+ export const IdCaptureDocumentSelectionScreen = forwardRef<
48
+ HTMLDivElement,
49
+ IdCaptureDocumentSelectionScreenProps
50
+ >(
51
+ (
52
+ {
53
+ strings,
54
+ onDocumentSelect,
55
+ screenId = 'id-capture-document-selection',
56
+ overrides,
57
+ onAction,
58
+ ...shell
59
+ },
60
+ ref,
61
+ ) => {
62
+ const choose = (documentType: IdCaptureDocumentType) => {
63
+ onDocumentSelect?.(documentType);
64
+ onAction?.({ type: 'cta', screenId });
65
+ };
66
+
67
+ return (
68
+ <PrizmaListScreen
69
+ ref={ref}
70
+ title={strings.documentSelection.title}
71
+ subtitle={strings.documentSelection.subtitle}
72
+ listAlign="end"
73
+ verifiedLabel={strings.verifiedLabel}
74
+ navLabel={strings.navLabel}
75
+ screenId={screenId}
76
+ overrides={overrides}
77
+ onAction={onAction}
78
+ {...shell}
79
+ >
80
+ <PrizmaCardListVerificationOptions
81
+ items={[
82
+ {
83
+ icon: 'id',
84
+ title: strings.documentSelection.idLabel,
85
+ onClick: () => choose('id'),
86
+ },
87
+ {
88
+ icon: 'passport',
89
+ title: strings.documentSelection.passportLabel,
90
+ onClick: () => choose('passport'),
91
+ },
92
+ ]}
93
+ />
94
+ </PrizmaListScreen>
95
+ );
96
+ },
97
+ );
98
+ IdCaptureDocumentSelectionScreen.displayName = 'IdCaptureDocumentSelectionScreen';
99
+
100
+ export default IdCaptureDocumentSelectionScreen;
@@ -0,0 +1,66 @@
1
+ import React, { forwardRef } from 'react';
2
+ import { PrizmaIllustrationIdFlip } from '@incodetech/prizma-core-web/illustration-id-flip';
3
+ import { PrizmaResultScreen, type PrizmaResultScreenProps } from './ResultScreen';
4
+ import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
5
+ import type { IdCaptureStrings } from './IdCaptureStrings';
6
+ import './ScreenLayout.css';
7
+
8
+ export interface IdCaptureFlipScreenProps
9
+ extends Omit<
10
+ PrizmaResultScreenProps,
11
+ 'status' | 'title' | 'subtitle' | 'children' | 'verifiedLabel' | 'navLabel'
12
+ > {
13
+ /** Module copy — this screen reads the `flip` slice. */
14
+ strings: IdCaptureStrings;
15
+ screenId?: string;
16
+ overrides?: PrizmaScreenOverrides;
17
+ onAction?: PrizmaScreenActionHandler;
18
+ }
19
+
20
+ /**
21
+ * ID Capture — the flip interstitial between the two sides, built on the
22
+ * `PrizmaResultScreen` archetype (GUIDELINES.md §6-F).
23
+ * Figma: purple section `1-11-1-id-flip` of the `Flip ID` group.
24
+ *
25
+ * The module's shortest screen: the CONTENT frame holds only the H2 and the
26
+ * spinning-card artwork — no logo, and no CTA (the flow advances itself). The
27
+ * archetype covers it exactly: `status="none"` for the bare title, the artwork in
28
+ * `children`, no `ctaLabel` so no band is rendered, and `showHeader={false}` to
29
+ * drop the logo while still reserving the nav row so the offsets match every
30
+ * other screen (owner rule 2026-08-18).
31
+ *
32
+ * The artwork is Core's `PrizmaIllustrationIdFlip` in its `interstitial`
33
+ * variant — the card spinning inside the static circular arrows, which is
34
+ * exactly what this moment was designed for (see the component's own
35
+ * `interstitial` doc note, owner 2026-07-17). Never redrawn here (§7, §10).
36
+ */
37
+ export const IdCaptureFlipScreen = forwardRef<HTMLDivElement, IdCaptureFlipScreenProps>(
38
+ (
39
+ {
40
+ strings,
41
+ screenId = 'id-capture-flip',
42
+ showHeader = false,
43
+ overrides,
44
+ onAction,
45
+ ...shell
46
+ },
47
+ ref,
48
+ ) => (
49
+ <PrizmaResultScreen
50
+ ref={ref}
51
+ showHeader={showHeader}
52
+ title={strings.flip.title}
53
+ verifiedLabel={strings.verifiedLabel}
54
+ navLabel={strings.navLabel}
55
+ screenId={screenId}
56
+ overrides={overrides}
57
+ onAction={onAction}
58
+ {...shell}
59
+ >
60
+ <PrizmaIllustrationIdFlip variant="interstitial" />
61
+ </PrizmaResultScreen>
62
+ ),
63
+ );
64
+ IdCaptureFlipScreen.displayName = 'IdCaptureFlipScreen';
65
+
66
+ export default IdCaptureFlipScreen;
@@ -0,0 +1,51 @@
1
+ import React, { forwardRef } from 'react';
2
+ import { PrizmaResultScreen, type PrizmaResultScreenProps } from './ResultScreen';
3
+ import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
4
+ import type { IdCaptureStrings } from './IdCaptureStrings';
5
+ import './ScreenLayout.css';
6
+
7
+ export interface IdCaptureHoldOnScreenProps
8
+ extends Omit<
9
+ PrizmaResultScreenProps,
10
+ 'status' | 'title' | 'subtitle' | 'verifiedLabel' | 'navLabel'
11
+ > {
12
+ /** Module copy — this screen reads the `holdOn` slice. */
13
+ strings: IdCaptureStrings;
14
+ screenId?: string;
15
+ overrides?: PrizmaScreenOverrides;
16
+ onAction?: PrizmaScreenActionHandler;
17
+ }
18
+
19
+ /**
20
+ * ID Capture — server-side verification wait ("Hold on a sec…").
21
+ * Figma: purple sections `1-18-1-id-hold-on` and `1-4.1-1-id-hold-on`.
22
+ *
23
+ * The one screen in the module that is a pure Processing state (§6-C): the
24
+ * spinner + status copy centred in all remaining space, no capture frame, no
25
+ * CTA. Built on `PrizmaResultScreen` with `status="loading"` and no CTA label —
26
+ * the archetype renders no band at all in that case, so this is §6-C's layout
27
+ * reached through the same template as the module's other verdict screens
28
+ * instead of a hand-composed shell.
29
+ *
30
+ * The spinner is `PrizmaTitle`'s own `spinner` icon slot — the canonical
31
+ * `PrizmaLoadingSpinner` inside the component, never a new one (§3, §7).
32
+ */
33
+ export const IdCaptureHoldOnScreen = forwardRef<HTMLDivElement, IdCaptureHoldOnScreenProps>(
34
+ ({ strings, screenId = 'id-capture-hold-on', overrides, onAction, ...shell }, ref) => (
35
+ <PrizmaResultScreen
36
+ ref={ref}
37
+ status="loading"
38
+ title={strings.holdOn.title}
39
+ subtitle={strings.holdOn.description}
40
+ verifiedLabel={strings.verifiedLabel}
41
+ navLabel={strings.navLabel}
42
+ screenId={screenId}
43
+ overrides={overrides}
44
+ onAction={onAction}
45
+ {...shell}
46
+ />
47
+ ),
48
+ );
49
+ IdCaptureHoldOnScreen.displayName = 'IdCaptureHoldOnScreen';
50
+
51
+ export default IdCaptureHoldOnScreen;