@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,45 @@
1
+ import React, { type ComponentPropsWithoutRef } from 'react';
2
+ import './ScreenShell.css';
3
+ export interface PrizmaScreenShellProps extends ComponentPropsWithoutRef<'div'> {
4
+ /** Camera-viewfinder screens render a full-bleed dark stage instead of the
5
+ * neutral surface. Default `false`. Implies `theme="dark"`. */
6
+ dark?: boolean;
7
+ /**
8
+ * PIN the token theme for this screen's subtree, regardless of the app's
9
+ * theme. Stamps `data-prizma-theme`, which the generated theme sheets select
10
+ * on ANY element (`[data-prizma-theme='dark']`, not `:root[...]`), so the pin
11
+ * scopes cleanly to one screen.
12
+ *
13
+ * Why screens need this: Core's capture components paint every ink with
14
+ * **Static** tokens because "the capture screen stays WHITE in both modes —
15
+ * light is needed for the shot" (owner decision 2026-07-14, documented in
16
+ * `SelfieCapture.css`). If the surrounding shell were allowed to flip, the
17
+ * app's dark mode would put a light-oriented stage — dark shutter, secondary
18
+ * feedback text — on a black background. Camera viewfinders are the mirror
19
+ * case: their inks are white-on-dark Static, so they pin dark.
20
+ *
21
+ * Leave undefined on ordinary screens: they should follow the app.
22
+ *
23
+ * ⚠️ A pin is a MODE pin, not a BRAND reset — and it used to be both, because
24
+ * `themes/light.css` is the full token set. A host that scopes a brand to a
25
+ * subtree (Core Lab's per-card `themeSeed`; equally `applyPrizmaTheme`'s
26
+ * output scoped to something narrower than `:root`) saw its brand die on
27
+ * every pinned screen: the "verified by incode" tag stayed Incode blue on the
28
+ * face-capture capturing screen while the unpinned tutorial beside it went
29
+ * fully purple. `ScreenShell.css` hands the brand back — read the block at
30
+ * the bottom of that file before changing this prop, including the known gap
31
+ * and the Android / iOS parity flag.
32
+ */
33
+ theme?: 'light' | 'dark';
34
+ }
35
+ /**
36
+ * ScreenShell — the root wrapper of every SDK screen.
37
+ *
38
+ * Responsive contract: the 390×844 Figma frame is the DESIGN REFERENCE, not a
39
+ * hardcoded size. The shell fills its container (host owns the outer size /
40
+ * aspect) and declares itself a CSS container (`pcs-screen`), so descendant
41
+ * geometry scales in `cqw` units capped at the reference pixel value —
42
+ * see GUIDELINES.md §1 and the archetype CSS.
43
+ */
44
+ export declare const PrizmaScreenShell: React.ForwardRefExoticComponent<PrizmaScreenShellProps & React.RefAttributes<HTMLDivElement>>;
45
+ export default PrizmaScreenShell;
@@ -0,0 +1,22 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { forwardRef } from 'react';
4
+ import './ScreenShell.css';
5
+ /**
6
+ * ScreenShell — the root wrapper of every SDK screen.
7
+ *
8
+ * Responsive contract: the 390×844 Figma frame is the DESIGN REFERENCE, not a
9
+ * hardcoded size. The shell fills its container (host owns the outer size /
10
+ * aspect) and declares itself a CSS container (`pcs-screen`), so descendant
11
+ * geometry scales in `cqw` units capped at the reference pixel value —
12
+ * see GUIDELINES.md §1 and the archetype CSS.
13
+ */
14
+ export const PrizmaScreenShell = forwardRef(({ dark = false, theme, className, children, ...rest }, ref) => (_jsx("div", { ref: ref, "data-prizma-theme": theme ?? (dark ? 'dark' : undefined), className: [
15
+ 'prizma-screen-shell',
16
+ dark ? 'prizma-screen-shell--dark' : '',
17
+ className ?? '',
18
+ ]
19
+ .filter(Boolean)
20
+ .join(' '), ...rest, children: children })));
21
+ PrizmaScreenShell.displayName = 'PrizmaScreenShell';
22
+ export default PrizmaScreenShell;
@@ -0,0 +1,70 @@
1
+ import React, { type ReactNode } from 'react';
2
+ import { type PrizmaScreenShellProps } from './ScreenShell';
3
+ import type { PrizmaScreenActionHandler, PrizmaScreenChromeProps, PrizmaScreenOverrides } from './types';
4
+ import './ScreenLayout.css';
5
+ export interface PrizmaTutorialScreenProps extends Omit<PrizmaScreenShellProps, 'dark' | 'title'>, PrizmaScreenChromeProps {
6
+ /**
7
+ * An optional block between the logo nav and the content — a journey stepper.
8
+ * Video Selfie draws Core's `PrizmaStepper` on EVERY screen of the flow, not
9
+ * just its camera stages, and it is the only chrome that tells the steps
10
+ * apart; the archetypes had a slot on E alone, so the rest of the module shed
11
+ * it (owner-reported 2026-08-19). Takes a `ReactNode` so the module supplies
12
+ * Core's own component — no primitive invented, and both offsets live once in
13
+ * `ScreenLayout.css` (`.prizma-screen-layout__progress`). Omit it and nothing
14
+ * renders, so every existing consumer is byte-identical. DEVIATIONS #VS-4.
15
+ */
16
+ progress?: ReactNode;
17
+ /** Screen title (H2). */
18
+ title: string;
19
+ /** Description below the title (H5). */
20
+ subtitle?: string;
21
+ /** Hint copy 28px above the CTA ("Stay still…"). */
22
+ disclaimer?: string;
23
+ /** Primary CTA label. Optional: some tutorial-shaped screens (Face Match's
24
+ * comparison views) carry no CTA at all. */
25
+ ctaLabel?: string;
26
+ /** The primary CTA shows Core's designed loading treatment — the `*.loading`
27
+ * half of Face Capture's and ID Capture's tutorial sections. */
28
+ ctaLoading?: boolean;
29
+ /** Accessible/visible loading copy for the primary CTA (`PrizmaButton`'s own
30
+ * `loadingLabel`; no hardcoded English anywhere). */
31
+ ctaLoadingLabel?: string;
32
+ /** Secondary CTA rendered ABOVE the primary — a second filled action. */
33
+ secondaryCtaLabel?: string;
34
+ /**
35
+ * Tertiary underlined LINK below the primary — Document Capture's "Skip this
36
+ * step" (tutorial / method selection) and "All pages captured" (next page).
37
+ * A link, not a button: Figma draws Core's `tertiary-link` composite there.
38
+ */
39
+ linkLabel?: string;
40
+ /** "verified by" attribution copy for the footer tag. */
41
+ verifiedLabel: string;
42
+ /** Centerpiece illustration (inline SVG component / Core Illustration*). */
43
+ illustration?: ReactNode;
44
+ /**
45
+ * A shell-level layer painted OVER the whole screen — Document Capture's
46
+ * method-selection sheet (scrim + `PrizmaBottomSheetContent`), which Figma
47
+ * presents on top of the dimmed tutorial. It cannot ride in the content
48
+ * column: it is absolutely positioned against the shell (DEVIATIONS #DC-30).
49
+ */
50
+ overlay?: ReactNode;
51
+ /** Accessible name for the nav region. */
52
+ navLabel?: string;
53
+ /** Stable id reported in actions, e.g. `face-capture-tutorial`. */
54
+ screenId?: string;
55
+ overrides?: PrizmaScreenOverrides;
56
+ onAction?: PrizmaScreenActionHandler;
57
+ }
58
+ /**
59
+ * Archetype A — Tutorial / Instruction (GUIDELINES.md §6-A).
60
+ * Nav → title block → illustration (flex-1) → disclaimer → CTA → verified tag.
61
+ *
62
+ * CTA band order is the family's designed one: disclaimer → secondary → primary
63
+ * → tertiary link (the link sits BELOW the primary on every tutorial-shaped
64
+ * section — Document Capture's "Skip this step" / "All pages captured"). The
65
+ * stack is the foundation's flat Spacing/16 (DEVIATIONS #8); Core's own
66
+ * `PrizmaButtonGroup` would put 12 between the slots but cannot forward
67
+ * `loadingLabel`, which the loading tutorials need — DEVIATIONS #F-32.
68
+ */
69
+ export declare const PrizmaTutorialScreen: React.ForwardRefExoticComponent<PrizmaTutorialScreenProps & React.RefAttributes<HTMLDivElement>>;
70
+ export default PrizmaTutorialScreen;
@@ -0,0 +1,24 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { forwardRef } from 'react';
4
+ import { PrizmaTitle } from '@incodetech/prizma-core-web/title';
5
+ import { PrizmaDisclaimer } from '@incodetech/prizma-core-web/disclaimer';
6
+ import { PrizmaButton } from '@incodetech/prizma-core-web/button';
7
+ import { PrizmaTag } from '@incodetech/prizma-core-web/tag';
8
+ import { PrizmaScreenShell } from './ScreenShell';
9
+ import { PrizmaScreenNav } from './ScreenNav';
10
+ import './ScreenLayout.css';
11
+ /**
12
+ * Archetype A — Tutorial / Instruction (GUIDELINES.md §6-A).
13
+ * Nav → title block → illustration (flex-1) → disclaimer → CTA → verified tag.
14
+ *
15
+ * CTA band order is the family's designed one: disclaimer → secondary → primary
16
+ * → tertiary link (the link sits BELOW the primary on every tutorial-shaped
17
+ * section — Document Capture's "Skip this step" / "All pages captured"). The
18
+ * stack is the foundation's flat Spacing/16 (DEVIATIONS #8); Core's own
19
+ * `PrizmaButtonGroup` would put 12 between the slots but cannot forward
20
+ * `loadingLabel`, which the loading tutorials need — DEVIATIONS #F-32.
21
+ */
22
+ export const PrizmaTutorialScreen = forwardRef(({ progress, title, subtitle, disclaimer, ctaLabel, ctaLoading = false, ctaLoadingLabel, secondaryCtaLabel, linkLabel, verifiedLabel, illustration, overlay, navLabel, screenId, showHeader = true, showFooter = true, overrides, onAction, ...shell }, ref) => (_jsxs(PrizmaScreenShell, { ref: ref, ...shell, children: [_jsx(PrizmaScreenNav, { reserved: !showHeader, logo: overrides?.logo, navLabel: navLabel }), progress ? (_jsx("div", { className: "prizma-screen-layout__progress", children: progress })) : null, _jsxs("div", { className: "prizma-screen-layout__content", children: [_jsx(PrizmaTitle, { variant: overrides?.align === 'left' ? 'left' : 'centered', title: title, showSubtitle: Boolean(subtitle), subtitle: subtitle }), _jsx("div", { className: "prizma-screen-layout__flex", children: illustration }), _jsxs("div", { className: "prizma-screen-layout__band", children: [disclaimer ? _jsx(PrizmaDisclaimer, { text: disclaimer }) : null, secondaryCtaLabel ? (_jsx(PrizmaButton, { variant: "secondary", size: "L", onClick: () => onAction?.({ type: 'secondary', screenId }), children: secondaryCtaLabel })) : null, ctaLabel ? (_jsx(PrizmaButton, { variant: "primary", size: "L", loading: ctaLoading, loadingLabel: ctaLoadingLabel, onClick: () => onAction?.({ type: 'cta', screenId }), children: ctaLabel })) : null, linkLabel ? (_jsx(PrizmaButton, { variant: "tertiary-link", size: "L", onClick: () => onAction?.({ type: 'secondary', screenId }), children: linkLabel })) : null, showFooter ? (_jsx("div", { className: "prizma-screen-layout__band__tag", children: _jsx(PrizmaTag, { label: verifiedLabel }) })) : null] })] }), overlay] })));
23
+ PrizmaTutorialScreen.displayName = 'PrizmaTutorialScreen';
24
+ export default PrizmaTutorialScreen;
@@ -0,0 +1,47 @@
1
+ import React from 'react';
2
+ import { type PrizmaListScreenProps } from './ListScreen';
3
+ import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
4
+ import type { VideoSelfieStepsOs, VideoSelfieStrings } from './VideoSelfieStrings';
5
+ import './ScreenLayout.css';
6
+ import './VideoSelfieLayout.css';
7
+ export interface VideoSelfieCameraStepsScreenProps extends Omit<PrizmaListScreenProps, 'status' | 'title' | 'subtitle' | 'children' | 'ctaLabel' | 'secondaryCtaLabel' | 'linkLabel' | 'verifiedLabel' | 'navLabel'> {
8
+ /** Module copy — this screen reads the `permission.steps` slice. */
9
+ strings: VideoSelfieStrings;
10
+ /** Which device variant of the section to render: `2.5 - ios` (default) or
11
+ * `2.6 - android`. They are different screens, not translations. */
12
+ os?: VideoSelfieStepsOs;
13
+ screenId?: string;
14
+ overrides?: PrizmaScreenOverrides;
15
+ onAction?: PrizmaScreenActionHandler;
16
+ }
17
+ /**
18
+ * Video Selfie — the OS settings walk-through, built on the List archetype
19
+ * (GUIDELINES.md §6-G). Figma: purple section `video selfie - permissions
20
+ * 2.5 - camera access instructions`, which holds TWO Incode-drawn symbols:
21
+ * `2.5 - ios camera access instructions` and
22
+ * `2.6 - android camera access instructions`. Both are built here, selected by
23
+ * `os` — unlike `2.1` and `2.4` of the same group, which are OS chrome and are
24
+ * deliberately not built.
25
+ *
26
+ * Same family as `GeolocationBrowserStepsScreen`: a title block over a step
27
+ * list and a "Retry" CTA, LEFT-aligned throughout — a centred headline above a
28
+ * left-led numbered list reads as a mistake. The screen only picks which of the
29
+ * archetype's OWN alignment variants this family uses; a host that passes
30
+ * `overrides.align` still wins.
31
+ *
32
+ * What Figma draws that no single Core list models: TWO labelled sections in
33
+ * the middle. On iOS the second is a plain remark with no steps at all; on
34
+ * Android it is a SECOND five-step numbered list followed by a closing note
35
+ * ("Remember, the specific steps might vary…"). Both numbered lists are Core's
36
+ * Core `PrizmaListItem` (`number`) rows verbatim; the section labels and the two
37
+ * kinds of note are plain content typography in `VideoSelfieLayout.css`. The
38
+ * offset above the whole block is the archetype's `__list` Spacing/24 —
39
+ * nothing about it is re-declared.
40
+ *
41
+ * Neither device frame draws the verified tag (both end at the CTA), so
42
+ * `showFooter` defaults to `true` (owner rule #PI-8/#F-34 — the chrome is
43
+ * constant), as on the other two permission
44
+ * sections.
45
+ */
46
+ export declare const VideoSelfieCameraStepsScreen: React.ForwardRefExoticComponent<VideoSelfieCameraStepsScreenProps & React.RefAttributes<HTMLDivElement>>;
47
+ export default VideoSelfieCameraStepsScreen;
@@ -0,0 +1,56 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { forwardRef } from 'react';
4
+ import { PrizmaListItem } from '@incodetech/prizma-core-web/list';
5
+ import { PrizmaListScreen } from './ListScreen';
6
+ import './ScreenLayout.css';
7
+ import './VideoSelfieLayout.css';
8
+ /**
9
+ * Video Selfie — the OS settings walk-through, built on the List archetype
10
+ * (GUIDELINES.md §6-G). Figma: purple section `video selfie - permissions
11
+ * 2.5 - camera access instructions`, which holds TWO Incode-drawn symbols:
12
+ * `2.5 - ios camera access instructions` and
13
+ * `2.6 - android camera access instructions`. Both are built here, selected by
14
+ * `os` — unlike `2.1` and `2.4` of the same group, which are OS chrome and are
15
+ * deliberately not built.
16
+ *
17
+ * Same family as `GeolocationBrowserStepsScreen`: a title block over a step
18
+ * list and a "Retry" CTA, LEFT-aligned throughout — a centred headline above a
19
+ * left-led numbered list reads as a mistake. The screen only picks which of the
20
+ * archetype's OWN alignment variants this family uses; a host that passes
21
+ * `overrides.align` still wins.
22
+ *
23
+ * What Figma draws that no single Core list models: TWO labelled sections in
24
+ * the middle. On iOS the second is a plain remark with no steps at all; on
25
+ * Android it is a SECOND five-step numbered list followed by a closing note
26
+ * ("Remember, the specific steps might vary…"). Both numbered lists are Core's
27
+ * Core `PrizmaListItem` (`number`) rows verbatim; the section labels and the two
28
+ * kinds of note are plain content typography in `VideoSelfieLayout.css`. The
29
+ * offset above the whole block is the archetype's `__list` Spacing/24 —
30
+ * nothing about it is re-declared.
31
+ *
32
+ * Neither device frame draws the verified tag (both end at the CTA), so
33
+ * `showFooter` defaults to `true` (owner rule #PI-8/#F-34 — the chrome is
34
+ * constant), as on the other two permission
35
+ * sections.
36
+ */
37
+ export const VideoSelfieCameraStepsScreen = forwardRef(({ strings, os = 'ios', screenId = `video-selfie-permission-steps-${os}`, showHeader = true, showFooter = true, overrides, onAction, ...shell }, ref) => {
38
+ const slice = strings.permission.steps[os];
39
+ /* Family default, not a local re-declaration: the archetype already owns a
40
+ left variant, so the screen only picks which of ITS variants applies. */
41
+ const alignedOverrides = {
42
+ ...overrides,
43
+ align: overrides?.align ?? 'left',
44
+ };
45
+ return (_jsx(PrizmaListScreen
46
+ /* Two five-step lists + a closing note exceed the 844 frame — Figma's
47
+ own frame is 1041 tall. Pan the middle instead of overlapping the
48
+ CTA and the tag (#VS-12). */
49
+ , {
50
+ /* Two five-step lists + a closing note exceed the 844 frame — Figma's
51
+ own frame is 1041 tall. Pan the middle instead of overlapping the
52
+ CTA and the tag (#VS-12). */
53
+ scrollList: true, ref: ref, showHeader: showHeader, showFooter: showFooter, title: slice.title, subtitle: slice.subtitle, ctaLabel: slice.ctaLabel, verifiedLabel: strings.verifiedLabel, navLabel: strings.navLabel, screenId: screenId, overrides: alignedOverrides, onAction: onAction, ...shell, children: _jsxs("div", { className: "video-selfie-steps", children: [_jsx("h3", { className: "video-selfie-steps__heading", children: slice.microphoneTitle }), _jsx("ol", { className: "video-selfie-steps__rows", children: slice.microphoneSteps.map((step, i) => (_jsx("li", { children: _jsx(PrizmaListItem, { variant: "number", number: i + 1, label: step }) }, i))) }), _jsx("h3", { className: "video-selfie-steps__heading", children: slice.recordingTitle }), slice.recordingSteps ? (_jsx("ol", { className: "video-selfie-steps__rows", children: slice.recordingSteps.map((step, i) => (_jsx("li", { children: _jsx(PrizmaListItem, { variant: "number", number: i + 1, label: step }) }, i))) })) : slice.recordingNote ? (_jsx("p", { className: "video-selfie-steps__note", children: slice.recordingNote })) : null, slice.closingNote ? (_jsx("p", { className: "video-selfie-steps__note", children: slice.closingNote })) : null] }) }));
54
+ });
55
+ VideoSelfieCameraStepsScreen.displayName = 'VideoSelfieCameraStepsScreen';
56
+ export default VideoSelfieCameraStepsScreen;
@@ -0,0 +1,63 @@
1
+ import React from 'react';
2
+ import { type PrizmaResultScreenProps } from './ResultScreen';
3
+ import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
4
+ import type { VideoSelfieStrings } from './VideoSelfieStrings';
5
+ import './ScreenLayout.css';
6
+ /** Which purple section of group 14 to render (the retry list is its own
7
+ * screen — it is a List, not a Result). */
8
+ export type VideoSelfieErrorVariant = 'processingFailed' | 'stepError' | 'moduleError' | 'noConnection';
9
+ export interface VideoSelfieErrorScreenProps extends Omit<PrizmaResultScreenProps, 'status' | 'title' | 'subtitle' | 'glyph' | 'children' | 'bandContent' | 'ctaLabel' | 'secondaryCtaLabel' | 'verifiedLabel' | 'navLabel'> {
10
+ /** Module copy — this screen reads the `errors` slice. */
11
+ strings: VideoSelfieStrings;
12
+ /** Which purple section to render. Default `processingFailed`. */
13
+ variant?: VideoSelfieErrorVariant;
14
+ screenId?: string;
15
+ overrides?: PrizmaScreenOverrides;
16
+ onAction?: PrizmaScreenActionHandler;
17
+ }
18
+ /**
19
+ * Video Selfie — the generic errors, built on the Result archetype
20
+ * (GUIDELINES.md §6-F). Figma: purple sections `general errors 14.0 -
21
+ * processing failed`, `14.2 - step error`, `14.3 - module error` and
22
+ * `14.4 - no connection`.
23
+ *
24
+ * Four verdicts, one skeleton: a centred mark over the title, a Retry CTA, and
25
+ * — on the two that offer a way out — a "Quit process" link. Every state
26
+ * renders differently: `processingFailed` alone carries the supporting line,
27
+ * `stepError` is the only one drawn on the dark camera surface, `moduleError`
28
+ * adds the quit link, and `noConnection` swaps the status mark for the Wi-Fi
29
+ * glyph.
30
+ *
31
+ * **Chrome (owner rule, restated 2026-08-19).** All four keep the logo header
32
+ * and the verified tag even though Figma draws them bare — the same call
33
+ * `#PI-8` / `#F-34` made, so the module's connectivity and error screens read
34
+ * identically to every other module's and nothing shifts between states.
35
+ *
36
+ * **Theme.** `stepError` is the one section the camera is still open behind, and
37
+ * Figma draws it white-on-black; it pins `theme="dark"` through Core's own
38
+ * theme switch, so every token-bound child flips THROUGH the design system
39
+ * (DEVIATIONS #DC-32) rather than around it. `noConnection` deliberately does
40
+ * NOT pin: `#F-34`'s whole point is that a module's connectivity screen looks
41
+ * like every other module's.
42
+ *
43
+ * **Reported gap — CONFIRMED DEFECT, blocked on the archetype.** Archetype F
44
+ * has no tertiary-link slot: G has `linkLabel` and pins it above the pair, A and
45
+ * E pin theirs below, F has none. The quit link therefore rides in F's
46
+ * `bandContent` slot (Core's `tertiary-link` button, never a hand-rolled
47
+ * anchor), which `PrizmaResultScreen` renders ABOVE the CTA row — and `14.3` and
48
+ * `14.4` both draw "Retry" first with "Quit process" underlined BELOW it. QA
49
+ * re-confirmed the inversion against both frames on 2026-08-19.
50
+ *
51
+ * It is NOT worked around here. The fix is one slot in the archetype — F needs
52
+ * A's `linkLabel`, rendered AFTER the button stack (mirroring
53
+ * `TutorialScreen.tsx:129`), with `bandContent` left to its intended Snackbar
54
+ * use. `ResultScreen.*` is owned by the foundation, so this module reports it
55
+ * (`archetypeGaps`) instead of editing it (GUIDELINES rule 2). The moment the
56
+ * slot lands, both variants move to `linkLabel={copy.quitLabel}` and the
57
+ * `bandContent` block below is deleted.
58
+ *
59
+ * Figma also draws the journey stepper on `14.1`, `14.2` and `14.4`. Archetype
60
+ * F has no slot for it and this module does not hand-roll one — reported.
61
+ */
62
+ export declare const VideoSelfieErrorScreen: React.ForwardRefExoticComponent<VideoSelfieErrorScreenProps & React.RefAttributes<HTMLDivElement>>;
63
+ export default VideoSelfieErrorScreen;
@@ -0,0 +1,94 @@
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
+ * Video Selfie — the generic errors, built on the Result archetype
9
+ * (GUIDELINES.md §6-F). Figma: purple sections `general errors 14.0 -
10
+ * processing failed`, `14.2 - step error`, `14.3 - module error` and
11
+ * `14.4 - no connection`.
12
+ *
13
+ * Four verdicts, one skeleton: a centred mark over the title, a Retry CTA, and
14
+ * — on the two that offer a way out — a "Quit process" link. Every state
15
+ * renders differently: `processingFailed` alone carries the supporting line,
16
+ * `stepError` is the only one drawn on the dark camera surface, `moduleError`
17
+ * adds the quit link, and `noConnection` swaps the status mark for the Wi-Fi
18
+ * glyph.
19
+ *
20
+ * **Chrome (owner rule, restated 2026-08-19).** All four keep the logo header
21
+ * and the verified tag even though Figma draws them bare — the same call
22
+ * `#PI-8` / `#F-34` made, so the module's connectivity and error screens read
23
+ * identically to every other module's and nothing shifts between states.
24
+ *
25
+ * **Theme.** `stepError` is the one section the camera is still open behind, and
26
+ * Figma draws it white-on-black; it pins `theme="dark"` through Core's own
27
+ * theme switch, so every token-bound child flips THROUGH the design system
28
+ * (DEVIATIONS #DC-32) rather than around it. `noConnection` deliberately does
29
+ * NOT pin: `#F-34`'s whole point is that a module's connectivity screen looks
30
+ * like every other module's.
31
+ *
32
+ * **Reported gap — CONFIRMED DEFECT, blocked on the archetype.** Archetype F
33
+ * has no tertiary-link slot: G has `linkLabel` and pins it above the pair, A and
34
+ * E pin theirs below, F has none. The quit link therefore rides in F's
35
+ * `bandContent` slot (Core's `tertiary-link` button, never a hand-rolled
36
+ * anchor), which `PrizmaResultScreen` renders ABOVE the CTA row — and `14.3` and
37
+ * `14.4` both draw "Retry" first with "Quit process" underlined BELOW it. QA
38
+ * re-confirmed the inversion against both frames on 2026-08-19.
39
+ *
40
+ * It is NOT worked around here. The fix is one slot in the archetype — F needs
41
+ * A's `linkLabel`, rendered AFTER the button stack (mirroring
42
+ * `TutorialScreen.tsx:129`), with `bandContent` left to its intended Snackbar
43
+ * use. `ResultScreen.*` is owned by the foundation, so this module reports it
44
+ * (`archetypeGaps`) instead of editing it (GUIDELINES rule 2). The moment the
45
+ * slot lands, both variants move to `linkLabel={copy.quitLabel}` and the
46
+ * `bandContent` block below is deleted.
47
+ *
48
+ * Figma also draws the journey stepper on `14.1`, `14.2` and `14.4`. Archetype
49
+ * F has no slot for it and this module does not hand-roll one — reported.
50
+ */
51
+ export const VideoSelfieErrorScreen = forwardRef(({ strings, variant = 'processingFailed', screenId = `video-selfie-error-${variant}`, overrides, onAction, ...shell }, ref) => {
52
+ const slice = strings.errors;
53
+ const copy = variant === 'processingFailed'
54
+ ? {
55
+ title: slice.processingFailed.title,
56
+ subtitle: slice.processingFailed.subtitle,
57
+ ctaLabel: slice.processingFailed.ctaLabel,
58
+ quitLabel: undefined,
59
+ }
60
+ : variant === 'stepError'
61
+ ? {
62
+ title: slice.stepError.title,
63
+ subtitle: undefined,
64
+ ctaLabel: slice.stepError.ctaLabel,
65
+ quitLabel: undefined,
66
+ }
67
+ : variant === 'moduleError'
68
+ ? {
69
+ title: slice.moduleError.title,
70
+ subtitle: undefined,
71
+ ctaLabel: slice.moduleError.ctaLabel,
72
+ quitLabel: slice.moduleError.quitLabel,
73
+ }
74
+ : {
75
+ title: slice.noConnection.title,
76
+ subtitle: undefined,
77
+ ctaLabel: slice.noConnection.ctaLabel,
78
+ quitLabel: slice.noConnection.quitLabel,
79
+ };
80
+ return (_jsx(PrizmaResultScreen, { ref: ref, theme: variant === 'stepError' ? 'dark' : undefined, status: variant === 'noConnection' ? 'none' : 'error', glyph: variant === 'noConnection' ? (_jsx("span", { className: [
81
+ 'prizma-screen-layout__glyph',
82
+ 'prizma-screen-layout__glyph--negative',
83
+ overrides?.align === 'left' ? 'prizma-screen-layout__glyph--left' : '',
84
+ ]
85
+ .filter(Boolean)
86
+ .join(' '), children: _jsx(IconWifiOff, { size: "l" }) })) : undefined, title: copy.title, subtitle: copy.subtitle,
87
+ /* The archetype's own tertiary slot, which renders BELOW the button
88
+ stack — `14.3`/`14.4` draw "Retry" first with "Quit process"
89
+ underneath. This used to borrow `bandContent`, which paints ABOVE
90
+ the buttons and put the link on the wrong side (#VS-17). */
91
+ linkLabel: copy.quitLabel, ctaLabel: copy.ctaLabel, verifiedLabel: strings.verifiedLabel, navLabel: strings.navLabel, screenId: screenId, overrides: overrides, onAction: onAction, ...shell }));
92
+ });
93
+ VideoSelfieErrorScreen.displayName = 'VideoSelfieErrorScreen';
94
+ export default VideoSelfieErrorScreen;
@@ -0,0 +1,34 @@
1
+ import React from 'react';
2
+ import { type PrizmaResultScreenProps } from './ResultScreen';
3
+ import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
4
+ import type { VideoSelfieStrings } from './VideoSelfieStrings';
5
+ import './ScreenLayout.css';
6
+ export interface VideoSelfieFlipCameraScreenProps extends Omit<PrizmaResultScreenProps, 'status' | 'title' | 'subtitle' | 'children' | 'verifiedLabel' | 'navLabel'> {
7
+ /** Module copy — this screen reads the `flipCamera` slice. */
8
+ strings: VideoSelfieStrings;
9
+ screenId?: string;
10
+ overrides?: PrizmaScreenOverrides;
11
+ onAction?: PrizmaScreenActionHandler;
12
+ }
13
+ /**
14
+ * Video Selfie — the camera-swap interstitial, built on the Result archetype
15
+ * (GUIDELINES.md §6-F). Figma: purple section `video selfie - flip camera
16
+ * 7.0 - switch to front`.
17
+ *
18
+ * The sibling of the flip-ID screen and deliberately its opposite: the camera
19
+ * is still open, so the section is drawn on the DARK surface with white copy.
20
+ * The archetype takes `theme="dark"` straight from `PrizmaScreenShell` — the
21
+ * same switch `DocumentCaptureCaptureScreen` uses — so the Title and every
22
+ * other token-bound child flips THROUGH the design system rather than around it
23
+ * (DEVIATIONS #DC-32). No hardcoded white anywhere.
24
+ *
25
+ * The mark is the canonical bank's `IconCameraFlip` in the archetype's own
26
+ * `glyph` slot (`PrizmaTitle.icon` only accepts status | spinner | none —
27
+ * DEVIATIONS #10), wrapped in the foundation's `__glyph` class so no module CSS
28
+ * is needed for it. No CTA and no verified tag: the section draws neither.
29
+ *
30
+ * Figma also draws the journey stepper at the top of this section. Archetype F
31
+ * has no slot for it and this module does not hand-roll one — reported.
32
+ */
33
+ export declare const VideoSelfieFlipCameraScreen: React.ForwardRefExoticComponent<VideoSelfieFlipCameraScreenProps & React.RefAttributes<HTMLDivElement>>;
34
+ export default VideoSelfieFlipCameraScreen;
@@ -0,0 +1,38 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { forwardRef } from 'react';
4
+ import { IconCameraFlip } from '@incodetech/prizma-core-icons';
5
+ import { PrizmaResultScreen } from './ResultScreen';
6
+ import './ScreenLayout.css';
7
+ /**
8
+ * Video Selfie — the camera-swap interstitial, built on the Result archetype
9
+ * (GUIDELINES.md §6-F). Figma: purple section `video selfie - flip camera
10
+ * 7.0 - switch to front`.
11
+ *
12
+ * The sibling of the flip-ID screen and deliberately its opposite: the camera
13
+ * is still open, so the section is drawn on the DARK surface with white copy.
14
+ * The archetype takes `theme="dark"` straight from `PrizmaScreenShell` — the
15
+ * same switch `DocumentCaptureCaptureScreen` uses — so the Title and every
16
+ * other token-bound child flips THROUGH the design system rather than around it
17
+ * (DEVIATIONS #DC-32). No hardcoded white anywhere.
18
+ *
19
+ * The mark is the canonical bank's `IconCameraFlip` in the archetype's own
20
+ * `glyph` slot (`PrizmaTitle.icon` only accepts status | spinner | none —
21
+ * DEVIATIONS #10), wrapped in the foundation's `__glyph` class so no module CSS
22
+ * is needed for it. No CTA and no verified tag: the section draws neither.
23
+ *
24
+ * Figma also draws the journey stepper at the top of this section. Archetype F
25
+ * has no slot for it and this module does not hand-roll one — reported.
26
+ */
27
+ export const VideoSelfieFlipCameraScreen = forwardRef(({ strings, screenId = 'video-selfie-flip-camera',
28
+ /* A camera screen (dark, feed open, stepper drawn) — the chrome
29
+ contract drops the LOGO and keeps the footer (#VS-15). */
30
+ showHeader = false, showFooter = true, overrides, onAction, ...shell }, ref) => (_jsx(PrizmaResultScreen, { ref: ref, theme: "dark", showHeader: showHeader, showFooter: showFooter, glyph: _jsx("span", { className: [
31
+ 'prizma-screen-layout__glyph',
32
+ 'prizma-screen-layout__glyph--neutral',
33
+ overrides?.align === 'left' ? 'prizma-screen-layout__glyph--left' : '',
34
+ ]
35
+ .filter(Boolean)
36
+ .join(' '), children: _jsx(IconCameraFlip, { size: "l" }) }), title: strings.flipCamera.title, verifiedLabel: strings.verifiedLabel, navLabel: strings.navLabel, screenId: screenId, overrides: overrides, onAction: onAction, ...shell })));
37
+ VideoSelfieFlipCameraScreen.displayName = 'VideoSelfieFlipCameraScreen';
38
+ export default VideoSelfieFlipCameraScreen;
@@ -0,0 +1,34 @@
1
+ import React from 'react';
2
+ import { type PrizmaResultScreenProps } from './ResultScreen';
3
+ import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
4
+ import type { VideoSelfieStrings } from './VideoSelfieStrings';
5
+ import './ScreenLayout.css';
6
+ export interface VideoSelfieFlipIdScreenProps extends Omit<PrizmaResultScreenProps, 'status' | 'title' | 'subtitle' | 'children' | 'verifiedLabel' | 'navLabel'> {
7
+ /** Module copy — this screen reads the `flipId` slice. */
8
+ strings: VideoSelfieStrings;
9
+ screenId?: string;
10
+ overrides?: PrizmaScreenOverrides;
11
+ onAction?: PrizmaScreenActionHandler;
12
+ }
13
+ /**
14
+ * Video Selfie — the flip interstitial between the two document sides, built on
15
+ * the Result archetype (GUIDELINES.md §6-F). Figma: purple section
16
+ * `video selfie - flip id 4.0 - default`.
17
+ *
18
+ * The module's shortest screen and the one moment the camera closes: a bare H2
19
+ * over the spinning-card artwork, no logo, no CTA (the flow advances itself),
20
+ * no verified tag and — alone among the camera-adjacent sections — no stepper.
21
+ * The archetype covers it exactly: `status="none"` for the bare title, the
22
+ * artwork in `children`, no `ctaLabel` so no band renders, `showHeader={true}`
23
+ * to drop the logo while still reserving the nav row so the offsets match every
24
+ * other screen (owner rule 2026-08-18), and `showFooter={true}` — the chrome is constant (#PI-8/#F-34) — because the
25
+ * section draws no tag.
26
+ *
27
+ * The artwork is Core's `PrizmaIllustrationIdFlip` in its `interstitial`
28
+ * variant — the card spinning inside the static circular arrows, exactly what
29
+ * this moment was designed for. Never redrawn here (§7, §10). Identical
30
+ * treatment to `IdCaptureFlipScreen`, which is the point: the same beat looks
31
+ * the same in every module.
32
+ */
33
+ export declare const VideoSelfieFlipIdScreen: React.ForwardRefExoticComponent<VideoSelfieFlipIdScreenProps & React.RefAttributes<HTMLDivElement>>;
34
+ export default VideoSelfieFlipIdScreen;
@@ -0,0 +1,29 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { forwardRef } from 'react';
4
+ import { PrizmaIllustrationIdFlip } from '@incodetech/prizma-core-web/illustration-id-flip';
5
+ import { PrizmaResultScreen } from './ResultScreen';
6
+ import './ScreenLayout.css';
7
+ /**
8
+ * Video Selfie — the flip interstitial between the two document sides, built on
9
+ * the Result archetype (GUIDELINES.md §6-F). Figma: purple section
10
+ * `video selfie - flip id 4.0 - default`.
11
+ *
12
+ * The module's shortest screen and the one moment the camera closes: a bare H2
13
+ * over the spinning-card artwork, no logo, no CTA (the flow advances itself),
14
+ * no verified tag and — alone among the camera-adjacent sections — no stepper.
15
+ * The archetype covers it exactly: `status="none"` for the bare title, the
16
+ * artwork in `children`, no `ctaLabel` so no band renders, `showHeader={true}`
17
+ * to drop the logo while still reserving the nav row so the offsets match every
18
+ * other screen (owner rule 2026-08-18), and `showFooter={true}` — the chrome is constant (#PI-8/#F-34) — because the
19
+ * section draws no tag.
20
+ *
21
+ * The artwork is Core's `PrizmaIllustrationIdFlip` in its `interstitial`
22
+ * variant — the card spinning inside the static circular arrows, exactly what
23
+ * this moment was designed for. Never redrawn here (§7, §10). Identical
24
+ * treatment to `IdCaptureFlipScreen`, which is the point: the same beat looks
25
+ * the same in every module.
26
+ */
27
+ export const VideoSelfieFlipIdScreen = forwardRef(({ strings, screenId = 'video-selfie-flip-id', showHeader = true, showFooter = true, overrides, onAction, ...shell }, ref) => (_jsx(PrizmaResultScreen, { ref: ref, showHeader: showHeader, showFooter: showFooter, title: strings.flipId.title, verifiedLabel: strings.verifiedLabel, navLabel: strings.navLabel, screenId: screenId, overrides: overrides, onAction: onAction, ...shell, children: _jsx(PrizmaIllustrationIdFlip, { variant: "interstitial" }) })));
28
+ VideoSelfieFlipIdScreen.displayName = 'VideoSelfieFlipIdScreen';
29
+ export default VideoSelfieFlipIdScreen;