@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,113 @@
1
+ import React, { forwardRef, type ReactNode } from 'react';
2
+ import { IconLock } from '@incodetech/prizma-core-icons';
3
+ import { PrizmaReviewScreen, type PrizmaReviewScreenProps } from './ReviewScreen';
4
+ import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
5
+ import type {
6
+ DocumentCaptureConfirmStage,
7
+ DocumentCaptureStrings,
8
+ } from './DocumentCaptureStrings';
9
+ import './ScreenLayout.css';
10
+ import './DocumentCaptureLayout.css';
11
+
12
+ export interface DocumentCaptureConfirmUploadScreenProps
13
+ extends Omit<
14
+ PrizmaReviewScreenProps,
15
+ | 'title'
16
+ | 'subtitle'
17
+ | 'successTitle'
18
+ | 'analyzingLabel'
19
+ | 'analyzingState'
20
+ | 'primaryLabel'
21
+ | 'secondaryLabel'
22
+ | 'verifiedLabel'
23
+ | 'children'
24
+ | 'stageClassName'
25
+ | 'stage'
26
+ > {
27
+ /** Module copy — this screen reads the `confirmUpload` slice. */
28
+ strings: DocumentCaptureStrings;
29
+ /** Which purple `documentCapture.confirmUpload.*` section to render. */
30
+ stage?: DocumentCaptureConfirmStage;
31
+ /** The uploaded file's name, shown under the page thumbnail. Not copy — it is
32
+ * runtime data from the picker, so it stays out of `strings`. */
33
+ filename?: string;
34
+ /** Page-preview thumbnail (an <img>) rendered inside the card. */
35
+ thumbnail?: ReactNode;
36
+ /** Loading-bar progress on `analyzing`, 0–100. Figma draws it part-filled. */
37
+ progress?: number;
38
+ screenId?: string;
39
+ overrides?: PrizmaScreenOverrides;
40
+ onAction?: PrizmaScreenActionHandler;
41
+ }
42
+
43
+ /**
44
+ * Document Capture — uploaded-file confirmation, built on the Review archetype
45
+ * (GUIDELINES.md §6-H, `PrizmaReviewScreen`).
46
+ *
47
+ * Figma: purple sections `documentCapture.confirmUpload.reviewFile` /
48
+ * `.analyzing` / `.success` — the same review skeleton as
49
+ * `DocumentCaptureConfirmImageScreen`, with the camera stage swapped for the
50
+ * uploaded file's preview card. The archetype owns the header, the flexing
51
+ * media stage, the Spacing/24 CTA offset and the anchored tag (DEVIATIONS
52
+ * #DC-22/24, now #REV-1); what stays module-side is the media itself — the
53
+ * vertical preview card and the standalone encrypted row, which have no Core
54
+ * counterpart (`PrizmaCardDocumentContainer` is a HORIZONTAL filename + action
55
+ * row, and Core's encrypted block ships only inside `PrizmaIdCapture`) —
56
+ * DEVIATIONS #DC-26, #DC-27 — plus the file-column inset.
57
+ *
58
+ * `documentCapture.upload.selectFromLibrary` / `.selectFromFiles` sit between
59
+ * the tutorial and this screen in the Figma flow, but they are the iOS Photos
60
+ * and Files apps — OS chrome, not Prizma surfaces (DEVIATIONS.md #DC-20).
61
+ */
62
+ export const DocumentCaptureConfirmUploadScreen = forwardRef<
63
+ HTMLDivElement,
64
+ DocumentCaptureConfirmUploadScreenProps
65
+ >(
66
+ (
67
+ {
68
+ strings,
69
+ stage = 'review',
70
+ filename,
71
+ thumbnail,
72
+ progress = 45,
73
+ screenId = `document-capture-confirm-upload-${stage}`,
74
+ overrides,
75
+ onAction,
76
+ ...shell
77
+ },
78
+ ref,
79
+ ) => (
80
+ <PrizmaReviewScreen
81
+ ref={ref}
82
+ stage={stage}
83
+ title={strings.confirmUpload.title}
84
+ subtitle={strings.confirmUpload.subtitle}
85
+ successTitle={strings.confirmUpload.successTitle}
86
+ analyzingLabel={strings.confirmUpload.analyzingLabel}
87
+ analyzingState="uploading"
88
+ progress={progress}
89
+ stageClassName="document-capture-review-file"
90
+ primaryLabel={strings.confirmUpload.ctaLabel}
91
+ secondaryLabel={strings.confirmUpload.replaceLabel}
92
+ verifiedLabel={strings.verifiedLabel}
93
+ screenId={screenId}
94
+ overrides={overrides}
95
+ onAction={onAction}
96
+ {...shell}
97
+ >
98
+ <div className="document-capture-file-card">
99
+ <span className="document-capture-file-card__thumb">{thumbnail}</span>
100
+ {filename ? <p className="document-capture-file-card__name">{filename}</p> : null}
101
+ </div>
102
+ {strings.encryptedLabel ? (
103
+ <p className="document-capture-encrypted">
104
+ <IconLock size="s" />
105
+ <span>{strings.encryptedLabel}</span>
106
+ </p>
107
+ ) : null}
108
+ </PrizmaReviewScreen>
109
+ ),
110
+ );
111
+ DocumentCaptureConfirmUploadScreen.displayName = 'DocumentCaptureConfirmUploadScreen';
112
+
113
+ export default DocumentCaptureConfirmUploadScreen;
@@ -0,0 +1,82 @@
1
+ import React, { forwardRef } from 'react';
2
+ import { PrizmaResultScreen, type PrizmaResultScreenProps } from './ResultScreen';
3
+ import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
4
+ import type { DocumentCaptureStrings } from './DocumentCaptureStrings';
5
+ import './ScreenLayout.css';
6
+
7
+ export interface DocumentCaptureGenericErrorScreenProps
8
+ extends Omit<
9
+ PrizmaResultScreenProps,
10
+ 'status' | 'title' | 'subtitle' | 'disclaimer' | 'ctaLabel' | 'verifiedLabel' | 'navLabel'
11
+ > {
12
+ /** Module copy — this screen reads the `error` slice (+ shared labels). The
13
+ * host passes the copy of the CURRENT verdict. */
14
+ strings: DocumentCaptureStrings;
15
+ /**
16
+ * `documentCapture.errors.genericErrorExhausted` — retries are used up: the
17
+ * status icon goes from warning to negative, the attempts line is dropped,
18
+ * and the CTA becomes the forward action instead of "Recapture document".
19
+ */
20
+ exhausted?: boolean;
21
+ screenId?: string;
22
+ overrides?: PrizmaScreenOverrides;
23
+ onAction?: PrizmaScreenActionHandler;
24
+ }
25
+
26
+ /**
27
+ * Document Capture — generic error, built on the `PrizmaResultScreen` archetype
28
+ * (GUIDELINES.md §6-F). Figma: purple sections
29
+ * `documentCapture.errors.genericError` / `.genericErrorExhausted`.
30
+ *
31
+ * The two sections that DO keep the attribution chrome (nav + verified tag),
32
+ * alongside the tutorial and next-page families — DEVIATIONS.md #DC-22.
33
+ *
34
+ * Layout measured off the 390 sections and identical, to the pixel, to the Face
35
+ * Capture pilot's `resultError.*`: `top-nav/header` 8→52 · Title stretched
36
+ * 52→479 with its icon/heading/subtitle block vertically centered · CTA band
37
+ * 479→646. That centered block IS Core's `PrizmaTitle` (icon slot → Spacing/16
38
+ * → H2 → Spacing/12 → H5), and the band is the archetype's — this file used to
39
+ * repeat both by hand for want of a result template (the #FM-24 gap, now closed).
40
+ */
41
+ export const DocumentCaptureGenericErrorScreen = forwardRef<
42
+ HTMLDivElement,
43
+ DocumentCaptureGenericErrorScreenProps
44
+ >(
45
+ (
46
+ {
47
+ strings,
48
+ exhausted = false,
49
+ screenId = exhausted
50
+ ? 'document-capture-generic-error-exhausted'
51
+ : 'document-capture-generic-error',
52
+ overrides,
53
+ onAction,
54
+ ...shell
55
+ },
56
+ ref,
57
+ ) => {
58
+ // Figma: the base section carries "N attempts remaining"; the exhausted
59
+ // section drops it (the subtitle says the limit is reached instead).
60
+ const attemptsLabel = exhausted ? undefined : strings.error.attemptsLabel;
61
+
62
+ return (
63
+ <PrizmaResultScreen
64
+ ref={ref}
65
+ status={exhausted ? 'error' : 'warning'}
66
+ title={strings.error.title}
67
+ subtitle={strings.error.description}
68
+ disclaimer={attemptsLabel}
69
+ ctaLabel={strings.error.ctaLabel}
70
+ verifiedLabel={strings.verifiedLabel}
71
+ navLabel={strings.navLabel}
72
+ screenId={screenId}
73
+ overrides={overrides}
74
+ onAction={onAction}
75
+ {...shell}
76
+ />
77
+ );
78
+ },
79
+ );
80
+ DocumentCaptureGenericErrorScreen.displayName = 'DocumentCaptureGenericErrorScreen';
81
+
82
+ export default DocumentCaptureGenericErrorScreen;
@@ -0,0 +1,153 @@
1
+ import React, { forwardRef, type ComponentPropsWithoutRef } from 'react';
2
+ import './DocumentCaptureLayout.css';
3
+
4
+ /**
5
+ * DocumentCaptureIllustration — the document centerpiece of the Document
6
+ * Capture tutorial / next-page screens.
7
+ *
8
+ * WHY IT LIVES IN THE MODULE LAYER: `prizma-core-web` ships
9
+ * `PrizmaIllustrationSelfie`, `…IdTutorial`, `…IdIntro`, `…IdFlip`,
10
+ * `…IdHint`, `…IdFeedback`, `…NfcScan`, `…NfcIssue`, `…Geolocation`,
11
+ * `…DigitalId` and `…Avatar` — there is NO document / proof-of-address
12
+ * illustration. GUIDELINES.md §10 is the standing asset rule for that gap
13
+ * ("Illustrations…: inline SVG React components (Figma-sourced), tintable via
14
+ * tokens/currentColor"), so the artwork is inlined here verbatim from the
15
+ * Figma export and every paint is bound to an existing illustration token —
16
+ * no primitive re-implemented, no hex hardcoded. Promotion to
17
+ * `PrizmaIllustrationDocument` is a Core request (DEVIATIONS.md #DC-21).
18
+ *
19
+ * Figma source: the `Illustrations` frame of the purple sections
20
+ * `documentCapture.tutorial.*` / `documentCapture.nextPage.*`
21
+ * (cbFXiChmJ8cWQDHwVghBqJ) — a 342 × 358 box (`aspect-[342/358]`, max 362 ×
22
+ * 378.94) holding four layers, whose positions are PERCENTAGES of that box and
23
+ * therefore identical across every purple variant (verified against
24
+ * `tutorial.default` 4095:26010 and `nextPage.optional` 4095:26026):
25
+ *
26
+ * halo circle d = 91.34% of the height, centered, top 4.19%
27
+ * document page inset 9.05% / 20.37% / 16.97% / 20.12% (+ its Figma drop
28
+ * shadow, which bleeds −13.84% sideways and −9.31% / −11.97%)
29
+ * text lines inset 12.01% / 25.28% / 26.42% / 25.14%, opacity 0.5
30
+ * capture frame aspect 177.81 / 230.04, top 8.38%, bottom 16.2%, centered —
31
+ * a 2px white outline just outside the page edge
32
+ *
33
+ * Those percentages are resolved to the 342 × 358 viewBox once, below, so the
34
+ * whole thing is ONE scalable SVG instead of four positioned layers.
35
+ *
36
+ * Paint mapping (exact values, pixel-diff 0):
37
+ * #E5F0FF → Illustration/Surface/Halo · #C6C8D2 → artwork/grey-96
38
+ * white → artwork/white
39
+ * The export also stacked a `fill="black" fill-opacity="0.01"` plate over the
40
+ * page — dropped on purpose: it is invisible (a 0.15%-of-a-channel shift) and
41
+ * black is absent from the illustration token set, so keeping it would have
42
+ * meant a hardcoded literal for no visual gain.
43
+ */
44
+ export type PrizmaDocumentCaptureIllustrationProps = Omit<
45
+ ComponentPropsWithoutRef<'svg'>,
46
+ 'viewBox' | 'children'
47
+ >;
48
+
49
+ export const DocumentCaptureIllustration = forwardRef<
50
+ SVGSVGElement,
51
+ PrizmaDocumentCaptureIllustrationProps
52
+ >(({ className, ...rest }, ref) => (
53
+ <svg
54
+ ref={ref}
55
+ className={['document-capture-illustration', className ?? ''].filter(Boolean).join(' ')}
56
+ viewBox="0 0 342 358"
57
+ fill="none"
58
+ xmlns="http://www.w3.org/2000/svg"
59
+ aria-hidden="true"
60
+ focusable="false"
61
+ {...rest}
62
+ >
63
+ {/* Halo — Illustration/Surface/Halo, drawn in code (same as Core's
64
+ illustrations) so a rebrand of the token restyles it. */}
65
+ <circle cx="171" cy="178.5" r="163.5" fill="var(--prizma-illustration-surface-halo)" />
66
+
67
+ {/* Document page + its Figma drop shadow. The export's canvas is larger
68
+ than the page by exactly the blur bleed, so the nested <svg> is placed
69
+ at the bled rect and the page lands on its designed inset. */}
70
+ <svg
71
+ x="40.64"
72
+ y="7.75"
73
+ width="259.83"
74
+ height="321.15"
75
+ viewBox="0 0 221.387 273.626"
76
+ overflow="visible"
77
+ >
78
+ <g filter="url(#prizma-dc-ill-shadow)">
79
+ <path
80
+ d="M24 26C24 23.2386 26.2386 21 29 21H192.387C195.149 21 197.387 23.2386 197.387 26V241.626C197.387 244.387 195.149 246.626 192.387 246.626H29C26.2386 246.626 24 244.387 24 241.626V26Z"
81
+ fill="var(--prizma-illustration-artwork-white)"
82
+ />
83
+ </g>
84
+ <defs>
85
+ <filter
86
+ id="prizma-dc-ill-shadow"
87
+ x="0"
88
+ y="0"
89
+ width="221.387"
90
+ height="273.626"
91
+ filterUnits="userSpaceOnUse"
92
+ colorInterpolationFilters="sRGB"
93
+ >
94
+ <feFlood floodOpacity="0" result="BackgroundImageFix" />
95
+ <feColorMatrix
96
+ in="SourceAlpha"
97
+ type="matrix"
98
+ values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
99
+ result="hardAlpha"
100
+ />
101
+ <feOffset dy="3" />
102
+ <feGaussianBlur stdDeviation="12" />
103
+ <feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15 0" />
104
+ <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow" />
105
+ <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow" result="shape" />
106
+ </filter>
107
+ </defs>
108
+ </svg>
109
+
110
+ {/* The page's placeholder text lines (Figma `documents / Vector`). */}
111
+ <svg
112
+ x="85.98"
113
+ y="42.996"
114
+ width="169.56"
115
+ height="220.42"
116
+ viewBox="0 0 144.456 187.768"
117
+ preserveAspectRatio="none"
118
+ >
119
+ <g opacity="0.5" fill="var(--prizma-illustration-artwork-grey-96)">
120
+ <path
121
+ fillRule="evenodd"
122
+ clipRule="evenodd"
123
+ d="M0.152148 23.4538C0.152148 22.9833 0.533578 22.6018 1.0041 22.6018H143.603C144.074 22.6018 144.455 22.9833 144.455 23.4538V26.0963C144.455 26.5669 144.074 26.9483 143.603 26.9483H1.0041C0.533582 26.9483 0.152148 26.5669 0.152148 26.0963V23.4538Z"
124
+ />
125
+ <path
126
+ fillRule="evenodd"
127
+ clipRule="evenodd"
128
+ d="M0.152148 184.274C0.152148 183.803 0.533578 183.422 1.0041 183.422H143.603C144.074 183.422 144.455 183.803 144.455 184.274V186.916C144.455 187.387 144.074 187.768 143.603 187.768H1.0041C0.533582 187.768 0.152148 187.387 0.152148 186.916V184.274Z"
129
+ />
130
+ <path d="M0.152148 46.9252C0.152148 46.4546 0.533582 46.0732 1.0041 46.0732H57.5431C58.0136 46.0732 58.395 46.4546 58.395 46.9252V54.7835C58.395 55.254 58.0136 55.6355 57.5431 55.6355H1.0041C0.533582 55.6355 0.152148 55.254 0.152148 54.7835L0.152148 46.9252Z" />
131
+ <path d="M0.152108 65.1805C0.152108 64.71 0.533541 64.3286 1.00406 64.3286H57.543C58.0135 64.3286 58.395 64.71 58.395 65.1805V73.0389C58.395 73.5094 58.0136 73.8908 57.543 73.8908H1.00406C0.533541 73.8908 0.152108 73.5094 0.152108 73.0389L0.152108 65.1805Z" />
132
+ <path d="M0.13728 83.4351C0.145491 82.9647 0.533524 82.59 1.00397 82.5982L81.0017 83.9945C81.4722 84.0028 81.8469 84.3908 81.8387 84.8612L81.7015 92.7184C81.6933 93.1888 81.3053 93.5636 80.8348 93.5553L0.837091 92.159C0.366641 92.1508 -0.00807931 91.7627 0.000132428 91.2923L0.13728 83.4351Z" />
133
+ <path d="M0.13728 101.69C0.145491 101.22 0.533524 100.845 1.00397 100.854L24.5061 101.264C24.9765 101.272 25.3512 101.66 25.343 102.13L25.2362 108.249C25.228 108.72 24.84 109.094 24.3695 109.086L0.867432 108.676C0.396982 108.668 0.0222633 108.28 0.0304751 107.809L0.13728 101.69Z" />
134
+ <path d="M0.152148 1.72151C0.152148 1.25099 0.533582 0.869559 1.0041 0.869559H107.093C107.563 0.869559 107.945 1.25099 107.945 1.72151V10.4492C107.945 10.9197 107.563 11.3011 107.093 11.3011H1.0041C0.533581 11.3011 0.152148 10.9197 0.152148 10.4492V1.72151Z" />
135
+ <path d="M122.723 0.851954C122.723 0.381432 123.105 0 123.575 0H143.604C144.074 0 144.456 0.381433 144.456 0.851955V9.5796C144.456 10.0501 144.074 10.4316 143.604 10.4316H123.575C123.105 10.4316 122.723 10.0501 122.723 9.5796V0.851954Z" />
136
+ </g>
137
+ </svg>
138
+
139
+ {/* Capture-frame outline — Figma `frame-border`: 2px white, radius 7. */}
140
+ <rect
141
+ x="67.65"
142
+ y="31"
143
+ width="206.7"
144
+ height="268"
145
+ rx="7"
146
+ stroke="var(--prizma-illustration-artwork-white)"
147
+ strokeWidth="2"
148
+ />
149
+ </svg>
150
+ ));
151
+ DocumentCaptureIllustration.displayName = 'DocumentCaptureIllustration';
152
+
153
+ export default DocumentCaptureIllustration;
@@ -0,0 +1,226 @@
1
+ /* Document Capture — module layout additions.
2
+ *
3
+ * ONLY what the foundation archetypes and Prizma Core do not already own.
4
+ * Every value is a token; the two unavoidable literals below carry an inline
5
+ * justification AND a numbered row in DEVIATIONS.md (Wave 2).
6
+ *
7
+ * Nothing here re-declares an archetype spacing rule: the content column, the
8
+ * 24px gutters, the CTA-band recipe (`__band`, DEVIATIONS #8), the no-nav
9
+ * status-bar reserve (`__content--no-nav`, #9) and the "capture stage adds no
10
+ * offset" rule (`__content--capture`, #12) all stay the foundation's.
11
+ */
12
+
13
+ /* ── Camera stage top offset ─────────────────────────────────────────────────
14
+ * `documentCapture.capture.*` has NO logo nav (DEVIATIONS #DC-22) and its CONTENT
15
+ * frame starts at Spacing/16, not the Spacing/24 every other no-nav screen uses
16
+ * (measured: 54px System UI Top Bar → `center grouping container` y=16). Same
17
+ * `--pcs-status-bar` custom property as the foundation, so a host that draws
18
+ * its own chrome still overrides the reserve exactly once.
19
+ *
20
+ * ⚠ THIS RESERVE WENT MISSING AND CAME BACK — read before touching it.
21
+ * It used to hang off `.document-capture-content--camera`, a class this screen
22
+ * carried when it composed its own column. The screen was later rebuilt on the
23
+ * foundation's viewfinder (`.prizma-viewfinder__content`) to match
24
+ * IdCaptureStageScreen, and the class went with the old markup — but the rule
25
+ * stayed here, matching nothing. The reserve went with it: the viewfinder
26
+ * column declares `padding: 0 24 24`, so the title rendered at the very top of
27
+ * the shell, y+0, clipped by the notch (owner report 2026-09-03; measured
28
+ * title-to-shell gap 0px on Document Capture against 143px on ID Capture,
29
+ * which is only right because ITS stage draws a nav row and the nav carries the
30
+ * reserve — see ScreenNav.css).
31
+ *
32
+ * So it is scoped to the composition that actually ships. The 16 rather than
33
+ * the foundation's 24 is the measured number and the reason this rule is not
34
+ * just `__content--no-nav`; the Spacing/16 between the title block and the
35
+ * frame is `.prizma-viewfinder__intro`'s own padding-bottom, which the
36
+ * foundation already sets, so nothing re-declares it here.
37
+ */
38
+ .document-capture-capture-screen .prizma-viewfinder__content {
39
+ padding-top: calc(var(--pcs-status-bar, 47px) + var(--prizma-spacing-16));
40
+ }
41
+
42
+ /* Core's PoA stage is `height: 100%` so it fills whatever box the host gives
43
+ * it (IdCapture.css). Inside a flex column that has to be spelled out as a
44
+ * flex item, otherwise the percentage resolves against the whole content
45
+ * column and the Title / strip get squeezed. No spacing is added — the stage
46
+ * keeps owning its own frame ↔ encrypted-row geometry (DEVIATIONS #12). The
47
+ * camera screen and the confirm-image review both put the poa stage in a flex
48
+ * column, so both need it. */
49
+ .document-capture-capture-screen .prizma-viewfinder__content > .prizma-id-capture,
50
+ .document-capture-review-image > .prizma-id-capture {
51
+ flex: 1 1 auto;
52
+ min-height: 0;
53
+ }
54
+
55
+ /* Capture stage → manual-capture strip: Spacing/12 (Figma `center grouping
56
+ * container` 550 − content 538). */
57
+ .document-capture-capture-bar {
58
+ flex-shrink: 0;
59
+ display: flex;
60
+ justify-content: center;
61
+ margin-top: var(--prizma-spacing-12);
62
+ }
63
+
64
+ /* Removed: `.document-capture-band--pinned` (`margin-top: auto`). Its one
65
+ * consumer, `commonIssues`, is now the List archetype, whose `__list` middle
66
+ * flexes and pushes the band down on its own — DEVIATIONS #F-31.
67
+ */
68
+
69
+ /* ── Review-stage media adapters (archetype H) ───────────────────────────────
70
+ * The review skeleton — header block, flexing media stage, stage → CTA Spacing/24
71
+ * and the analyzing flush — now lives in the foundation (`ScreenLayout.css`
72
+ * `.prizma-screen-layout__review-*`, consumed via `PrizmaReviewScreen`).
73
+ * DEVIATIONS #REV-1. Only what shapes THIS module's media stays here.
74
+ */
75
+
76
+ /* Confirm-image review: the captured still keeps the same PoA frame the camera
77
+ * screen uses (its flex-item rule is shared above), and its encrypted row is
78
+ * re-tinted for the LIGHT review surface — Core paints it Text/Body/0 Static
79
+ * (white) for the dark camera stage; Figma draws Text/Body/800 (Primary) here.
80
+ * No Core file touched, no !important — DEVIATIONS #DC-25. */
81
+ .document-capture-review-image .prizma-id-capture__encrypted {
82
+ color: var(--prizma-text-body-800-primary);
83
+ }
84
+
85
+ /* Confirm-upload review: the file-preview card is inset by 48 inside the media
86
+ * stage (Figma `Container` px-48 → the 246-wide card in the 342 column). The
87
+ * spacing scale stops at 40, so the value is DERIVED from Spacing/24. */
88
+ .document-capture-review-file {
89
+ padding-inline: calc(var(--prizma-spacing-24) * 2);
90
+ }
91
+
92
+ /* ── Standalone encrypted notice ─────────────────────────────────────────────
93
+ * Core owns the "capture encrypted message" building block only as a private
94
+ * part of PrizmaIdCapture; the uploaded-file screens need it beside a card
95
+ * instead. Rebuilt here from the same tokens as
96
+ * `.prizma-id-capture__encrypted` (Spacing/8 block padding, Spacing/4 gap,
97
+ * Body/M Regular, 16px lock). `IconLock` is designed at 24 only, so — exactly
98
+ * as Core does in `IdCapture.css` — the glyph is clamped to the designed 16 in
99
+ * CSS; 16 is absent from the icon-size token axis (m=24, l=32, …).
100
+ * DEVIATIONS #DC-26.
101
+ */
102
+ .document-capture-encrypted {
103
+ margin: 0;
104
+ flex-shrink: 0;
105
+ display: flex;
106
+ align-items: center;
107
+ justify-content: center;
108
+ gap: var(--prizma-spacing-4);
109
+ padding-block: var(--prizma-spacing-8);
110
+ color: var(--prizma-text-body-800-primary);
111
+ font-family: var(--prizma-body-family);
112
+ font-size: var(--prizma-body-m-regular-font-size);
113
+ font-weight: var(--prizma-body-m-regular-font-weight);
114
+ line-height: var(--prizma-body-m-regular-line-height);
115
+ letter-spacing: var(--prizma-body-m-regular-letter-spacing);
116
+ }
117
+
118
+ .document-capture-encrypted > svg {
119
+ flex: none;
120
+ width: 16px; /* hardcoded — Icon/Lock is designed at 24 only and Figma draws 16; same clamp as Core's .prizma-id-capture__encrypted-icon (DEVIATIONS #DC-26) */
121
+ height: 16px;
122
+ }
123
+
124
+ /* ── Uploaded-file preview card ──────────────────────────────────────────────
125
+ * Figma `Document Container` of `confirmUpload.*`. Core's
126
+ * `PrizmaCardDocumentContainer` is the HORIZONTAL filename + action row — a
127
+ * different component with the same Figma name — so the vertical preview card
128
+ * is composed here from the same Card tokens (Surface/Neutral/50 on
129
+ * Border/Neutral/100 at Border/Radius/large, Spacing/32 block + Spacing/24
130
+ * inline padding, Spacing/24 thumbnail → info gap). DEVIATIONS #DC-27.
131
+ */
132
+ .document-capture-file-card {
133
+ display: flex;
134
+ flex-direction: column;
135
+ align-items: center;
136
+ gap: var(--prizma-spacing-24);
137
+ box-sizing: border-box;
138
+ width: 100%;
139
+ padding: var(--prizma-spacing-32) var(--prizma-spacing-24);
140
+ background: var(--prizma-surface-neutral-50);
141
+ border: var(--prizma-border-width-regular) solid var(--prizma-border-neutral-100);
142
+ border-radius: var(--prizma-border-radius-large);
143
+ overflow: hidden;
144
+ }
145
+
146
+ /* Thumbnail — Figma 120 × 160 (a 3:4 page crop). Sized by ratio off the card
147
+ * width so it scales with the host, capped at the design size. */
148
+ .document-capture-file-card__thumb {
149
+ position: relative;
150
+ flex: none;
151
+ width: 120px; /* hardcoded — Figma page-thumbnail width; absent from the token SOT (DEVIATIONS #DC-27) */
152
+ aspect-ratio: 3 / 4;
153
+ max-width: 100%;
154
+ border: var(--prizma-border-width-regular) solid var(--prizma-border-neutral-100);
155
+ border-radius: var(--prizma-border-radius-small);
156
+ overflow: hidden;
157
+ background: var(--prizma-surface-neutral-0);
158
+ }
159
+
160
+ .document-capture-file-card__thumb > img,
161
+ .document-capture-file-card__thumb > svg {
162
+ position: absolute;
163
+ inset: 0;
164
+ width: 100%;
165
+ height: 100%;
166
+ object-fit: cover;
167
+ }
168
+
169
+ .document-capture-file-card__name {
170
+ margin: 0;
171
+ width: 100%;
172
+ overflow-wrap: break-word;
173
+ text-align: center;
174
+ color: var(--prizma-text-body-800-primary);
175
+ font-family: var(--prizma-headline-family);
176
+ font-size: var(--prizma-headline-h5-font-size);
177
+ font-weight: var(--prizma-headline-h5-font-weight);
178
+ line-height: var(--prizma-headline-h5-line-height);
179
+ letter-spacing: var(--prizma-headline-h5-letter-spacing);
180
+ }
181
+
182
+ /* The `analyzing` loading-bar block (164px centred cap) moved to the foundation
183
+ * with the rest of the review skeleton — `.prizma-screen-layout__review-loading`
184
+ * in ScreenLayout.css. DEVIATIONS #DC-28, #REV-1. */
185
+
186
+ /* ── Illustration slot ───────────────────────────────────────────────────────
187
+ * The SVG carries the 342 × 358 viewBox, so `preserveAspectRatio` does the
188
+ * letterboxing: the slot only supplies the flexible box and the Figma
189
+ * max-width (362 → max-height 378.9 follows from the ratio, so it is never
190
+ * declared).
191
+ */
192
+ .document-capture-illustration {
193
+ flex: 1 1 auto;
194
+ min-height: 0;
195
+ width: 100%;
196
+ max-width: 362px; /* hardcoded — Figma `Illustrations` max-width; absent from the token SOT (DEVIATIONS #DC-21) */
197
+ }
198
+
199
+ /* The non-status glyph slot that used to live here (`.document-capture-glyph`)
200
+ * is now the foundation's `__glyph` in `ScreenLayout.css` — DEVIATIONS #DC-29,
201
+ * closed: three modules had a byte-identical copy of it.
202
+ */
203
+
204
+ /* ── Bottom-sheet overlay ────────────────────────────────────────────────────
205
+ * `tutorial.methodSelection*` layers Core's `PrizmaBottomSheetContent` over the
206
+ * tutorial. The safe presenter (`PrizmaBottomSheet`) portals to
207
+ * `document.body`, which would escape the 390 × 844 screen frame and the
208
+ * host's `transform: scale()` — so the screen owns the scrim, exactly as
209
+ * bottom-sheet.md §10.3 assigns it to "the consuming surface". The scrim drinks
210
+ * Core's own `Surface/Overlay` token; no animation, because a screen is one
211
+ * static spec state. DEVIATIONS #DC-30.
212
+ */
213
+ .document-capture-sheet-scrim {
214
+ position: absolute;
215
+ inset: 0;
216
+ z-index: 1;
217
+ background: var(--prizma-surface-overlay);
218
+ }
219
+
220
+ .document-capture-sheet-panel {
221
+ position: absolute;
222
+ left: 0;
223
+ right: 0;
224
+ bottom: 0;
225
+ z-index: 2;
226
+ }