@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,78 @@
1
+ /* Data Sharing Consent — module layout additions.
2
+ *
3
+ * ONE rule, and it declares NO spacing: a text style for the legal disclosure
4
+ * paragraph, which Core ships no component for. The content column, the 24px
5
+ * gutters, the title → stack offset, the gap between the body paragraph and the
6
+ * consent cards, the panning stack and its Spacing/16 clearance above the CTA,
7
+ * the CTA column and the anchored footer are all the foundation's
8
+ * (`ScreenLayout.css`, `FormScreen.css`); the consent card's own padding,
9
+ * radius, surface and typography are Core's (`Checkbox.css`, size L).
10
+ *
11
+ * The scroll rule this file used to carry has been promoted to the archetype
12
+ * (`.prizma-form-screen__fields--scroll`, `scrollFields`), and the section's
13
+ * Spacing/24 column rhythm is SELECTED through the archetype's `fieldsOffset` /
14
+ * `fieldsGap` slots rather than overridden here. DEVIATIONS #DSC-1, #DSC-2.
15
+ */
16
+
17
+ /* ── The legal disclosure paragraph ──────────────────────────────────────────
18
+ * `User Consent` draws ~250px of left-aligned body copy between the centered
19
+ * Title and the first consent card, with "Incode's Privacy Notice" as an inline
20
+ * link. Measured off the master frame (27151:280): 342 wide, 252 tall over 15
21
+ * lines = 16.8px line height at 14px — i.e. Core's `Body/M/Regular` exactly,
22
+ * inked `Text/Body/800 (primary)`.
23
+ *
24
+ * Core ships NO body-paragraph primitive: `PrizmaDisclaimer` is the CENTERED
25
+ * H4 legal row that belongs to the CTA band (its own docstring says so, and it
26
+ * carries Spacing/12 of band breathing room), `PrizmaTitle.subtitle` takes a
27
+ * plain string with no link support and follows the Title's centering, and the
28
+ * foundation's `__inline-prompt` recipe is a CENTERED single line. So the style
29
+ * is composed here from Core's OWN tokens — no palette, no size and no spacing
30
+ * is invented, and the block declares no margin beyond the browser reset.
31
+ *
32
+ * FOUNDATION REQUEST: promote a `__body` recipe (left-aligned Body/M/Regular
33
+ * with inline links) into `ScreenLayout.css`, or give Core a `PrizmaParagraph`.
34
+ * Every consent-bearing module still to come — eKYC disclosure, biometric
35
+ * consent, terms acceptance — draws this exact block (#DC-29 / #PI-10 precedent,
36
+ * where a cross-module recipe was placed in the foundation rather than a module).
37
+ */
38
+ .data-sharing-consent__body {
39
+ margin: 0;
40
+ text-align: left;
41
+ color: var(--prizma-text-body-800-primary);
42
+ font-family: var(--prizma-body-family);
43
+ font-size: var(--prizma-body-m-regular-font-size);
44
+ font-weight: var(--prizma-body-m-regular-font-weight);
45
+ line-height: var(--prizma-body-m-regular-line-height);
46
+ letter-spacing: var(--prizma-body-m-regular-letter-spacing);
47
+ }
48
+
49
+ /* The inline document link inside that paragraph. `Link/Default` is the same
50
+ * token Core inks `.prizma-checkbox__link` with, so the Privacy Notice link in
51
+ * the paragraph and a link inside a consent card read as one family. Figma
52
+ * draws this one WITHOUT the underline Core's checkbox link carries — recorded
53
+ * as a deviation rather than resolved silently, since no Core component governs
54
+ * a standalone paragraph link. */
55
+ .data-sharing-consent__body-link {
56
+ color: var(--prizma-link-default);
57
+ text-decoration: none;
58
+ cursor: pointer;
59
+ }
60
+
61
+ .data-sharing-consent__body-link:hover {
62
+ color: var(--prizma-link-hover);
63
+ }
64
+
65
+ /* ── The consent stack outgrows the frame — NO LONGER A MODULE RULE ──────────
66
+ * `29645:5306` is a 390×844 frame whose `middle content` is 584 tall for a
67
+ * column that has ~470: the body paragraph alone is 383 and each consent card
68
+ * is 74. Figma lets the column pan and clips it at y=698, then starts the CTA
69
+ * band there with 16px of internal padding — so the second consent card is
70
+ * sliced mid-sentence and followed by clear surface before "Continue".
71
+ *
72
+ * This module used to hand-roll `overflow-y: auto` here, which reproduced the
73
+ * slice but glued the button to the cut edge (zero gap). The behaviour AND its
74
+ * Spacing/16 breathing room now live in the archetype as
75
+ * `.prizma-form-screen__fields--scroll`, driven by `scrollFields` on
76
+ * `PrizmaFormScreen` — the foundation request this file used to carry, granted.
77
+ * DEVIATIONS #DSC-2.
78
+ */
@@ -0,0 +1,96 @@
1
+ import type { PrizmaConsentSegment } from '@incodetech/prizma-core-web/checkbox';
2
+ /**
3
+ * The states the purple section draws, plus the two the Core checkbox earned in
4
+ * #1925. All share ONE layout — nav → Title → body paragraph → consent cards →
5
+ * CTA → tag — which is exactly what GUIDELINES §6-E means by "states are
6
+ * separate screens sharing the identical layout":
7
+ *
8
+ * - `default` — the master frame: the mandatory consent alone,
9
+ * unticked, so the CTA is disabled (Figma greys it).
10
+ * - `accepted` — the same single consent ticked; the CTA turns brand
11
+ * blue. This is the `🔧 Behavior` frame's treatment
12
+ * applied to the single-consent screen.
13
+ * - `multiple` — every consent in `items` listed and unticked; the
14
+ * stack is taller than the frame, so it pans while the
15
+ * Title, the CTA and the tag hold still. CTA disabled.
16
+ * - `multipleAccepted` — the `🔧 Behavior` frame: every consent ticked, CTA
17
+ * released.
18
+ * - `rejected` — NOT IN EITHER FIGMA FILE. The single mandatory consent
19
+ * left unticked with `errorText` showing underneath it:
20
+ * the moment a user presses Continue and is refused.
21
+ * - `multipleRejected` — the same refusal on the every-consent screen. Only the
22
+ * `required` cards carry the message; an optional consent
23
+ * left unticked is not an error.
24
+ *
25
+ * WHY THEY EXIST WITH NO FRAME BEHIND THEM. Core shipped the L consent
26
+ * container's error state on 2026-09-02 (#1925) — `error` + `errorText` render a
27
+ * `role="alert"` row below the card, and the card itself is deliberately
28
+ * unchanged. Until now no screen selected it, so the flow canvas had nothing to
29
+ * point at for "Continue, with nothing ticked". Owner call, 2026-09-03: add the
30
+ * state to the screen and wire it into the User Consent flow. If the design file
31
+ * later draws this moment differently, this is the state to re-read.
32
+ */
33
+ export type DataSharingConsentState = 'default' | 'accepted' | 'rejected' | 'multiple' | 'multipleAccepted' | 'multipleRejected';
34
+ /** One consent card — a Core `PrizmaCheckbox size="L"` (the component IS the
35
+ * tinted consent container Figma draws, padding, radius and all). */
36
+ export interface DataSharingConsentItemStrings {
37
+ /**
38
+ * The card copy, as ordered segments: a plain string renders as body copy, an
39
+ * object renders as an inline `<a>` that opens the document WITHOUT toggling
40
+ * the box. This is Core's own `PrizmaConsentSegment` contract — the multi-link
41
+ * path on `PrizmaCheckbox` — so nothing is re-modelled here and a consent that
42
+ * cites two documents stays expressible (#PI-10: each link is separately
43
+ * actionable, never one button).
44
+ */
45
+ segments: PrizmaConsentSegment[];
46
+ /**
47
+ * Mandatory consent. The screen appends `DataSharingConsentStrings.requiredHint`
48
+ * (the `*` Figma draws at the end of the first card) rather than baking the
49
+ * marker into `segments`, so it stays localizable — the #CURP-4 precedent.
50
+ */
51
+ required?: boolean;
52
+ /** Accessible name for the box when the card copy is too long to serve as
53
+ * one (screen readers otherwise announce the whole paragraph). */
54
+ ariaLabel?: string;
55
+ }
56
+ export interface DataSharingConsentStrings {
57
+ /** "verified by" attribution in the footer tag. */
58
+ verifiedLabel: string;
59
+ /** Accessible name for the logo nav row. */
60
+ navLabel?: string;
61
+ /** Suffix appended to a `required` consent card ("*"). Localizable. */
62
+ requiredHint?: string;
63
+ /** The `User Consent` section. */
64
+ consent: {
65
+ /** H2 ("User consent"). Centered, per the section. */
66
+ title: string;
67
+ /** H5 — the section draws none; kept for hosts that want one. */
68
+ subtitle?: string;
69
+ /**
70
+ * The legal disclosure above the cards, as ordered segments so the Privacy
71
+ * Notice link stays inline and translatable. Left-aligned body copy — the
72
+ * section left-aligns it under the centered Title.
73
+ */
74
+ body: PrizmaConsentSegment[];
75
+ /**
76
+ * Every consent the flow asks for, in the order the section lists them.
77
+ * `default` / `accepted` draw the FIRST entry alone (that is the master
78
+ * frame); `multiple` / `multipleAccepted` draw them all.
79
+ */
80
+ items: DataSharingConsentItemStrings[];
81
+ /** Primary CTA ("Continue"). Disabled until the consents are ticked. */
82
+ ctaLabel: string;
83
+ /**
84
+ * The sentence a refused Continue owes the user, shown under every
85
+ * `required` card in the `rejected` / `multipleRejected` states.
86
+ *
87
+ * REQUIRED BY THOSE STATES, in practice. On Core's L container the errored
88
+ * card is visually identical to the enabled one — no fill change, no border,
89
+ * the box unchanged (owner decision 2026-09-02, after three card treatments
90
+ * read as "selected" rather than "failed" next to an already-ticked card).
91
+ * This message row is the entire visible error, so omitting it leaves a
92
+ * sighted user with no feedback at all; `PrizmaCheckbox` dev-warns.
93
+ */
94
+ errorText?: string;
95
+ };
96
+ }
@@ -0,0 +1,38 @@
1
+ // The consent screen — copy contract.
2
+ //
3
+ // ONE screen, TWO SDK modules. `Data Sharing Consent` and `User Consent` are
4
+ // separate modules in the product and separate entries in the gallery, and they
5
+ // draw the same screen — the Face Capture / Face Authentication situation
6
+ // (`FIGMA-SOURCES.md`: "same file as Face Capture"). Their two Figma files carry
7
+ // the same node ids to the byte — section `27151:441`, master `27151:321` — so
8
+ // the screen, the strings and the states below are authored once and both
9
+ // modules render them. The type names keep the `DataSharingConsent` prefix
10
+ // because that is what shipped; renaming them would break every host import for
11
+ // no gain.
12
+ //
13
+ // · Data Sharing Consent CO2SfrFrWis9fIUKHvLYyY (page 16285:41282)
14
+ // · User Consent Oh4GGFoTXCnMKMq3gnzINg (page 16285:41282, "In
15
+ // Production" — carries the happy-path flow frames
16
+ // and the token-customization doc)
17
+ //
18
+ // ONE purple parent section, `User Consent` (27151:441), which draws the module
19
+ // across three 390-wide frames plus presentation-only children:
20
+ // · 27151:321 the master component — ONE mandatory consent, unticked, the
21
+ // CTA greyed
22
+ // · 29645:5306 the same screen carrying EVERY consent — the stack outgrows
23
+ // the frame and pans under the CTA
24
+ // · 27198:2661 the `🔧 Behavior` frame — the consents ticked and the CTA
25
+ // released to brand blue
26
+ // · `🖤 Dark mode`, `🇪🇸 ES`, `🇵🇹 PT` and the five device sections are the
27
+ // same screen re-presented: dark is token-driven
28
+ // (`[data-prizma-theme='dark']`), the locales are this file's job, and the
29
+ // widths are excluded by the no-per-width-variants rule (DEVIATIONS #17).
30
+ //
31
+ // The module is the biometric-data disclosure the user must accept before any
32
+ // capture runs: a legal body paragraph carrying the Privacy Notice link, then
33
+ // one or more consent cards, then a CTA that stays inert until they are ticked.
34
+ //
35
+ // No hardcoded English anywhere in a screen: every visible string arrives here,
36
+ // so the host's locale pack drives the module (the Figma file ships ES + PT
37
+ // columns beside the EN one).
38
+ export {};
@@ -0,0 +1,33 @@
1
+ import React from 'react';
2
+ import { type PrizmaResultScreenProps } from './ResultScreen';
3
+ import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
4
+ import type { DemoScreensStrings } from './DemoScreensStrings';
5
+ import './ScreenLayout.css';
6
+ export interface DemoScreensEndScreenProps extends Omit<PrizmaResultScreenProps, 'status' | 'title' | 'subtitle' | 'glyph' | 'verifiedLabel' | 'navLabel'> {
7
+ /** Family copy — this screen reads the `end` slice. */
8
+ strings: DemoScreensStrings;
9
+ screenId?: string;
10
+ overrides?: PrizmaScreenOverrides;
11
+ onAction?: PrizmaScreenActionHandler;
12
+ }
13
+ /**
14
+ * Demo screens — "Verification complete!", built on the Result archetype
15
+ * (GUIDELINES.md §6-F, `PrizmaResultScreen`).
16
+ *
17
+ * Figma: `Module Generic Screens` frame `63:399`. The last thing a prospect
18
+ * sees in a sample flow: logo header → a centred title and supporting line →
19
+ * the verified tag. No CTA, because the demo has nowhere left to go.
20
+ *
21
+ * Result rather than Processing, even though the skeleton is Processing's:
22
+ * archetype C's status vocabulary is `loading | success | error | warning`, so
23
+ * a MARK-FREE centred title is not expressible there. `status="none"` is
24
+ * archetype F's, and with no CTA the band never renders — F degenerates to
25
+ * exactly C's shape and keeps the mark off.
26
+ *
27
+ * Figma draws no status mark above the title, deliberately: the demo did not
28
+ * verify anything, it finished. A success tick here would claim a verdict the
29
+ * session never reached — the copy already says the result is still under
30
+ * review.
31
+ */
32
+ export declare const DemoScreensEndScreen: React.ForwardRefExoticComponent<DemoScreensEndScreenProps & React.RefAttributes<HTMLDivElement>>;
33
+ export default DemoScreensEndScreen;
@@ -0,0 +1,27 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { forwardRef } from 'react';
4
+ import { PrizmaResultScreen } from './ResultScreen';
5
+ import './ScreenLayout.css';
6
+ /**
7
+ * Demo screens — "Verification complete!", built on the Result archetype
8
+ * (GUIDELINES.md §6-F, `PrizmaResultScreen`).
9
+ *
10
+ * Figma: `Module Generic Screens` frame `63:399`. The last thing a prospect
11
+ * sees in a sample flow: logo header → a centred title and supporting line →
12
+ * the verified tag. No CTA, because the demo has nowhere left to go.
13
+ *
14
+ * Result rather than Processing, even though the skeleton is Processing's:
15
+ * archetype C's status vocabulary is `loading | success | error | warning`, so
16
+ * a MARK-FREE centred title is not expressible there. `status="none"` is
17
+ * archetype F's, and with no CTA the band never renders — F degenerates to
18
+ * exactly C's shape and keeps the mark off.
19
+ *
20
+ * Figma draws no status mark above the title, deliberately: the demo did not
21
+ * verify anything, it finished. A success tick here would claim a verdict the
22
+ * session never reached — the copy already says the result is still under
23
+ * review.
24
+ */
25
+ export const DemoScreensEndScreen = forwardRef(({ strings, screenId = 'demo-screens-end', overrides, onAction, ...shell }, ref) => (_jsx(PrizmaResultScreen, { ref: ref, status: "none", title: strings.end.title, subtitle: strings.end.subtitle, verifiedLabel: strings.verifiedLabel, navLabel: strings.navLabel, screenId: screenId, overrides: overrides, onAction: onAction, ...shell })));
26
+ DemoScreensEndScreen.displayName = 'DemoScreensEndScreen';
27
+ export default DemoScreensEndScreen;
@@ -0,0 +1,11 @@
1
+ export interface DemoScreensStrings {
2
+ /** Accessible name for the logo nav region (i18n — no baked-in English). */
3
+ navLabel?: string;
4
+ /** "verified by" attribution copy for the footer tag. */
5
+ verifiedLabel: string;
6
+ /** `63:399` — the demo is over and the result is with a human. */
7
+ end: {
8
+ title: string;
9
+ subtitle?: string;
10
+ };
11
+ }
@@ -0,0 +1,19 @@
1
+ // Demo screens — copy contract for the GENERIC family.
2
+ //
3
+ // Figma: `Module Generic Screens` (qGJjfL4O0JSjz1x4tOjJn8), frame `63:399`.
4
+ //
5
+ // The screens that bracket a DEMO session rather than a real one — what a
6
+ // prospect sees at the two ends of a sample flow. They are generic by
7
+ // definition: the demo does not belong to any module, it strings several of
8
+ // them together.
9
+ //
10
+ // ONLY the end screen exists so far. The owner is supplying the start screen
11
+ // separately (Camila 2026-09-03: "that's the end screen but we need the start
12
+ // too, I will add it some other time"), so `start` is deliberately absent from
13
+ // this contract rather than guessed — an invented start screen would be a
14
+ // second source of truth for a frame that already exists in someone's file.
15
+ //
16
+ // The family has no flow of its own. Core Lab lists it as a library of states.
17
+ //
18
+ // No hardcoded English anywhere in a screen: every visible string arrives here.
19
+ export {};
@@ -0,0 +1,53 @@
1
+ import React, { type ReactNode } from 'react';
2
+ import { type PrizmaScreenShellProps } from './ScreenShell';
3
+ import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
4
+ import type { DocumentCaptureStrings } from './DocumentCaptureStrings';
5
+ import './ScreenLayout.css';
6
+ import './DocumentCaptureLayout.css';
7
+ export interface DocumentCaptureCaptureScreenProps extends Omit<PrizmaScreenShellProps, 'dark' | 'title' | 'children'> {
8
+ /** Module copy — this screen reads the `capture` slice. */
9
+ strings: DocumentCaptureStrings;
10
+ /**
11
+ * `empty` = `documentCapture.capture.default` (the live camera, no document
12
+ * detected yet) · `filled` = `documentCapture.capture.filled` (a document
13
+ * fills the frame). Both are `enabled`-border states of Core's stage.
14
+ */
15
+ state?: 'empty' | 'filled';
16
+ /** Live camera feed (<video>) or sample still (<img>). Rendered full-bleed on
17
+ * the viewfinder surface behind the transparent overlay window (overlay mode
18
+ * ignores PrizmaIdCapture's own `camera` slot). */
19
+ camera?: ReactNode;
20
+ screenId?: string;
21
+ overrides?: PrizmaScreenOverrides;
22
+ onAction?: PrizmaScreenActionHandler;
23
+ }
24
+ /**
25
+ * Document Capture — camera stage (Archetype D, GUIDELINES.md §6-D).
26
+ * Figma: purple sections `documentCapture.capture.default` / `.filled`.
27
+ *
28
+ * The stage is Core's `PrizmaIdCapture` with `type="poa"` — the Document
29
+ * Capture variant it was built for ("PoA (Document Capture flow)").
30
+ * Composed exactly like `IdCaptureStageScreen`: the camera feed rides full-bleed
31
+ * on `.prizma-viewfinder__surface`, a white viewfinder title sits above the
32
+ * frame, and `PrizmaIdCapture mode="overlay" scrim` cuts a transparent window
33
+ * through the veil. Without overlay+scrim the poa frame draws no border and the
34
+ * screen reads as raw camera; without the white viewfinder title the dark
35
+ * PrizmaTitle ink vanished on the light feed (DEVIATIONS.md #DC-36). The strip
36
+ * is `PrizmaCaptureManual` (shutter + help); nothing Core-owned is
37
+ * re-implemented.
38
+ *
39
+ * Measured off the 390 sections (CONTENT 654 tall, no nav, no tag):
40
+ * Title 16→75 · stage 75→538 (`Capture / ID` 430 + its own 33 encrypted row) ·
41
+ * Spacing/12 · manual strip 566→630 · Spacing/24 to the bottom. The stage
42
+ * carries its own frame↔row spacing, so the module adds only the Spacing/16
43
+ * title gap and the Spacing/12 strip gap — never an offset Core already has
44
+ * (DEVIATIONS.md #12).
45
+ *
46
+ * Always dark (§6-D). Rather than hardcode white literals the way the
47
+ * foundation's ViewfinderScreen does, the shell declares Core's own theme
48
+ * switch (`data-prizma-theme="dark"`), so the Title and every other token-bound
49
+ * child flips through the design system instead of around it —
50
+ * DEVIATIONS.md #DC-32.
51
+ */
52
+ export declare const DocumentCaptureCaptureScreen: React.ForwardRefExoticComponent<DocumentCaptureCaptureScreenProps & React.RefAttributes<HTMLDivElement>>;
53
+ export default DocumentCaptureCaptureScreen;
@@ -0,0 +1,51 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { forwardRef } from 'react';
4
+ import { PrizmaIdCapture } from '@incodetech/prizma-core-web/id-capture';
5
+ import { PrizmaCaptureManual } from '@incodetech/prizma-core-web/capture-manual';
6
+ import { PrizmaTag } from '@incodetech/prizma-core-web/tag';
7
+ import { PrizmaScreenShell } from './ScreenShell';
8
+ import './ScreenLayout.css';
9
+ import './DocumentCaptureLayout.css';
10
+ /**
11
+ * Document Capture — camera stage (Archetype D, GUIDELINES.md §6-D).
12
+ * Figma: purple sections `documentCapture.capture.default` / `.filled`.
13
+ *
14
+ * The stage is Core's `PrizmaIdCapture` with `type="poa"` — the Document
15
+ * Capture variant it was built for ("PoA (Document Capture flow)").
16
+ * Composed exactly like `IdCaptureStageScreen`: the camera feed rides full-bleed
17
+ * on `.prizma-viewfinder__surface`, a white viewfinder title sits above the
18
+ * frame, and `PrizmaIdCapture mode="overlay" scrim` cuts a transparent window
19
+ * through the veil. Without overlay+scrim the poa frame draws no border and the
20
+ * screen reads as raw camera; without the white viewfinder title the dark
21
+ * PrizmaTitle ink vanished on the light feed (DEVIATIONS.md #DC-36). The strip
22
+ * is `PrizmaCaptureManual` (shutter + help); nothing Core-owned is
23
+ * re-implemented.
24
+ *
25
+ * Measured off the 390 sections (CONTENT 654 tall, no nav, no tag):
26
+ * Title 16→75 · stage 75→538 (`Capture / ID` 430 + its own 33 encrypted row) ·
27
+ * Spacing/12 · manual strip 566→630 · Spacing/24 to the bottom. The stage
28
+ * carries its own frame↔row spacing, so the module adds only the Spacing/16
29
+ * title gap and the Spacing/12 strip gap — never an offset Core already has
30
+ * (DEVIATIONS.md #12).
31
+ *
32
+ * Always dark (§6-D). Rather than hardcode white literals the way the
33
+ * foundation's ViewfinderScreen does, the shell declares Core's own theme
34
+ * switch (`data-prizma-theme="dark"`), so the Title and every other token-bound
35
+ * child flips through the design system instead of around it —
36
+ * DEVIATIONS.md #DC-32.
37
+ */
38
+ export const DocumentCaptureCaptureScreen = forwardRef(({ strings, state = 'empty', camera, screenId = `document-capture-capture-${state}`, overrides, onAction, className, ...shell }, ref) => (_jsxs(PrizmaScreenShell, { ref: ref, dark: true, "data-prizma-theme": "dark",
39
+ // `document-capture-capture-screen` is what carries the status-bar
40
+ // reserve — this screen draws no nav, and on the viewfinder composition
41
+ // the nav is what would otherwise supply it (DocumentCaptureLayout.css,
42
+ // "THIS RESERVE WENT MISSING AND CAME BACK"). Without the hook the title
43
+ // renders at y+0, under the notch.
44
+ className: ['document-capture-capture-screen', className].filter(Boolean).join(' '), ...shell, children: [_jsx("div", { className: "prizma-viewfinder__surface", children: camera }), _jsxs("div", { className: [
45
+ 'prizma-viewfinder__content',
46
+ overrides?.align === 'left' ? 'prizma-viewfinder__content--left' : '',
47
+ ]
48
+ .filter(Boolean)
49
+ .join(' '), children: [_jsxs("div", { className: "prizma-viewfinder__intro", children: [_jsx("h2", { className: "prizma-viewfinder__title", children: strings.capture.title }), strings.capture.subtitle ? (_jsx("p", { className: "prizma-viewfinder__instruction", children: strings.capture.subtitle })) : null] }), _jsx(PrizmaIdCapture, { type: "poa", state: state, isVertical: true, mode: "overlay", scrim: true, showEncryptedLabel: Boolean(strings.encryptedLabel), encryptedLabel: strings.encryptedLabel })] }), _jsx("div", { className: "prizma-screen-layout__capture-strip", children: _jsx(PrizmaCaptureManual, { variant: "id-capture", showTooltip: false, ariaLabel: strings.capture.captureLabel, helpLabel: strings.capture.helpLabel, onCapture: () => onAction?.({ type: 'cta', screenId }), onHelp: () => onAction?.({ type: 'help', screenId }) }) }), _jsx("div", { className: "prizma-screen-layout__footer", children: _jsx(PrizmaTag, { label: strings.verifiedLabel }) })] })));
50
+ DocumentCaptureCaptureScreen.displayName = 'DocumentCaptureCaptureScreen';
51
+ export default DocumentCaptureCaptureScreen;
@@ -0,0 +1,32 @@
1
+ import React from 'react';
2
+ import { type PrizmaListScreenProps } from './ListScreen';
3
+ import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
4
+ import type { DocumentCaptureStrings } from './DocumentCaptureStrings';
5
+ import './ScreenLayout.css';
6
+ export interface DocumentCaptureCommonIssuesScreenProps extends Omit<PrizmaListScreenProps, 'title' | 'children' | 'ctaLabel' | 'verifiedLabel' | 'navLabel'> {
7
+ /** Module copy — this screen reads the `commonIssues` slice. */
8
+ strings: DocumentCaptureStrings;
9
+ screenId?: string;
10
+ overrides?: PrizmaScreenOverrides;
11
+ onAction?: PrizmaScreenActionHandler;
12
+ }
13
+ /**
14
+ * Document Capture — common issues help sheet (purple section
15
+ * `documentCapture.commonIssues.default`), built on the `PrizmaListScreen`
16
+ * archetype (GUIDELINES.md §6-G).
17
+ *
18
+ * Like the module's `errors.noConnection`, this section carries no logo
19
+ * (DEVIATIONS.md #DC-22), so `showHeader={false}` drops the wordmark while the
20
+ * nav row stays reserved and the tag keeps its one fixed position.
21
+ *
22
+ * The list itself is Core's `PrizmaCardListCommonIssues`, whose Figma master IS
23
+ * this `list-unordered`: rows at Spacing/32, a 24px leading icon at Spacing/16,
24
+ * H5 title + Spacing/4 + Body/M description. Verified identical against the
25
+ * section's measured rows (icon 24 @ x0, text @ x40, title 19 / body @ +23,
26
+ * row pitch 32) — nothing re-implemented.
27
+ *
28
+ * Figma draws Spacing/32 between the Title and the list here while the three ID
29
+ * Capture list screens draw 24; the archetype ships ONE value, 24 (#F-31).
30
+ */
31
+ export declare const DocumentCaptureCommonIssuesScreen: React.ForwardRefExoticComponent<DocumentCaptureCommonIssuesScreenProps & React.RefAttributes<HTMLDivElement>>;
32
+ export default DocumentCaptureCommonIssuesScreen;
@@ -0,0 +1,45 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { forwardRef } from 'react';
4
+ import { IconCamera, IconFile, IconHide, IconIdTooFar, } from '@incodetech/prizma-core-icons';
5
+ import { PrizmaCardListCommonIssues } from '@incodetech/prizma-core-web/card-list';
6
+ import { PrizmaListScreen } from './ListScreen';
7
+ import './ScreenLayout.css';
8
+ /**
9
+ * The four `commonIssues` rows, in Figma order. Figma leads each row with an
10
+ * ICONLY PRO glyph (`Focus frame` · `Straighten` · `Moon` · `Camera close`);
11
+ * only the first has a counterpart in the Prizma bank, so the other three are
12
+ * the nearest canonical glyphs — GUIDELINES §10 ("icons: prizma-core-icons
13
+ * only") wins over the module Figma. DEVIATIONS.md #DC-23.
14
+ */
15
+ const ISSUE_ICONS = [
16
+ _jsx(IconIdTooFar, { size: "m" }, "frame"), // out of frame ← Figma "Focus frame"
17
+ _jsx(IconFile, { size: "m" }, "folded"), // folded page ← Figma "Straighten"
18
+ _jsx(IconHide, { size: "m" }, "shadow"), // shadows ← Figma "Moon"
19
+ _jsx(IconCamera, { size: "m" }, "lens"),
20
+ ];
21
+ /**
22
+ * Document Capture — common issues help sheet (purple section
23
+ * `documentCapture.commonIssues.default`), built on the `PrizmaListScreen`
24
+ * archetype (GUIDELINES.md §6-G).
25
+ *
26
+ * Like the module's `errors.noConnection`, this section carries no logo
27
+ * (DEVIATIONS.md #DC-22), so `showHeader={false}` drops the wordmark while the
28
+ * nav row stays reserved and the tag keeps its one fixed position.
29
+ *
30
+ * The list itself is Core's `PrizmaCardListCommonIssues`, whose Figma master IS
31
+ * this `list-unordered`: rows at Spacing/32, a 24px leading icon at Spacing/16,
32
+ * H5 title + Spacing/4 + Body/M description. Verified identical against the
33
+ * section's measured rows (icon 24 @ x0, text @ x40, title 19 / body @ +23,
34
+ * row pitch 32) — nothing re-implemented.
35
+ *
36
+ * Figma draws Spacing/32 between the Title and the list here while the three ID
37
+ * Capture list screens draw 24; the archetype ships ONE value, 24 (#F-31).
38
+ */
39
+ export const DocumentCaptureCommonIssuesScreen = forwardRef(({ strings, screenId = 'document-capture-common-issues', showHeader = false, overrides, onAction, ...shell }, ref) => (_jsx(PrizmaListScreen, { ref: ref, showHeader: showHeader, title: strings.commonIssues.title, ctaLabel: strings.commonIssues.ctaLabel, verifiedLabel: strings.verifiedLabel, navLabel: strings.navLabel, screenId: screenId, overrides: overrides, onAction: onAction, ...shell, children: _jsx(PrizmaCardListCommonIssues, { items: strings.commonIssues.issues.map((issue, i) => ({
40
+ icon: ISSUE_ICONS[i % ISSUE_ICONS.length],
41
+ title: issue.title,
42
+ subtitle: issue.description,
43
+ })) }) })));
44
+ DocumentCaptureCommonIssuesScreen.displayName = 'DocumentCaptureCommonIssuesScreen';
45
+ export default DocumentCaptureCommonIssuesScreen;
@@ -0,0 +1,38 @@
1
+ import React, { type ReactNode } from 'react';
2
+ import { type PrizmaReviewScreenProps } from './ReviewScreen';
3
+ import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
4
+ import type { DocumentCaptureConfirmStage, DocumentCaptureStrings } from './DocumentCaptureStrings';
5
+ import './ScreenLayout.css';
6
+ import './DocumentCaptureLayout.css';
7
+ export interface DocumentCaptureConfirmImageScreenProps extends Omit<PrizmaReviewScreenProps, 'title' | 'subtitle' | 'successTitle' | 'analyzingLabel' | 'analyzingState' | 'primaryLabel' | 'secondaryLabel' | 'verifiedLabel' | 'children' | 'stageClassName' | 'stage'> {
8
+ /** Module copy — this screen reads the `confirmImage` slice. */
9
+ strings: DocumentCaptureStrings;
10
+ /** Which purple `documentCapture.confirmImage.*` section to render. */
11
+ stage?: DocumentCaptureConfirmStage;
12
+ /** The captured document still (an <img>). */
13
+ still?: ReactNode;
14
+ /** Loading-bar progress on `analyzing`, 0–100. Figma draws it part-filled. */
15
+ progress?: number;
16
+ screenId?: string;
17
+ overrides?: PrizmaScreenOverrides;
18
+ onAction?: PrizmaScreenActionHandler;
19
+ }
20
+ /**
21
+ * Document Capture — captured-photo confirmation, built on the Review archetype
22
+ * (GUIDELINES.md §6-H, `PrizmaReviewScreen`).
23
+ *
24
+ * Figma: purple sections `documentCapture.confirmImage.reviewPhoto` /
25
+ * `.analyzing` / `.success` — header, stage-verdict and CTA variants of this
26
+ * ONE screen. The stage is the SAME `PrizmaIdCapture type="poa"` instance the
27
+ * camera screen uses, now holding the captured `still` — success reuses the
28
+ * frame geometry with the positive color, never a new layout (GUIDELINES §7),
29
+ * satisfied by Core's own state axis.
30
+ *
31
+ * The archetype owns every offset (no nav, header → Spacing/32 → flexing media
32
+ * stage → Spacing/24 → CTA row → tag; `analyzing` swaps the Title for the
33
+ * loading bar and drops the CTA). This file used to hand-build that skeleton in
34
+ * `DocumentCaptureLayout.css` (DEVIATIONS #DC-22/24, now #REV-1) — all that
35
+ * stays module-side is the light-surface encrypted re-tint (#DC-25).
36
+ */
37
+ export declare const DocumentCaptureConfirmImageScreen: React.ForwardRefExoticComponent<DocumentCaptureConfirmImageScreenProps & React.RefAttributes<HTMLDivElement>>;
38
+ export default DocumentCaptureConfirmImageScreen;
@@ -0,0 +1,34 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { forwardRef } from 'react';
4
+ import { PrizmaIdCapture } from '@incodetech/prizma-core-web/id-capture';
5
+ import { PrizmaReviewScreen } from './ReviewScreen';
6
+ import './ScreenLayout.css';
7
+ import './DocumentCaptureLayout.css';
8
+ /** Stage → Core `PrizmaIdCapture` state: the review keeps the enabled frame,
9
+ * analyzing runs the component's own sweep, success turns the border positive. */
10
+ const CAPTURE_STATE = {
11
+ review: 'filled',
12
+ analyzing: 'analyzing',
13
+ success: 'success',
14
+ };
15
+ /**
16
+ * Document Capture — captured-photo confirmation, built on the Review archetype
17
+ * (GUIDELINES.md §6-H, `PrizmaReviewScreen`).
18
+ *
19
+ * Figma: purple sections `documentCapture.confirmImage.reviewPhoto` /
20
+ * `.analyzing` / `.success` — header, stage-verdict and CTA variants of this
21
+ * ONE screen. The stage is the SAME `PrizmaIdCapture type="poa"` instance the
22
+ * camera screen uses, now holding the captured `still` — success reuses the
23
+ * frame geometry with the positive color, never a new layout (GUIDELINES §7),
24
+ * satisfied by Core's own state axis.
25
+ *
26
+ * The archetype owns every offset (no nav, header → Spacing/32 → flexing media
27
+ * stage → Spacing/24 → CTA row → tag; `analyzing` swaps the Title for the
28
+ * loading bar and drops the CTA). This file used to hand-build that skeleton in
29
+ * `DocumentCaptureLayout.css` (DEVIATIONS #DC-22/24, now #REV-1) — all that
30
+ * stays module-side is the light-surface encrypted re-tint (#DC-25).
31
+ */
32
+ export const DocumentCaptureConfirmImageScreen = forwardRef(({ strings, stage = 'review', still, progress = 62, screenId = `document-capture-confirm-image-${stage}`, overrides, onAction, ...shell }, ref) => (_jsx(PrizmaReviewScreen, { ref: ref, stage: stage, title: strings.confirmImage.title, subtitle: strings.confirmImage.subtitle, successTitle: strings.confirmImage.successTitle, analyzingLabel: strings.confirmImage.analyzingLabel, analyzingState: "analyzing", progress: progress, stageClassName: "document-capture-review-image", primaryLabel: strings.confirmImage.ctaLabel, secondaryLabel: strings.confirmImage.replaceLabel, verifiedLabel: strings.verifiedLabel, screenId: screenId, overrides: overrides, onAction: onAction, ...shell, children: _jsx(PrizmaIdCapture, { type: "poa", state: CAPTURE_STATE[stage], still: still, showEncryptedLabel: Boolean(strings.encryptedLabel), encryptedLabel: strings.encryptedLabel }) })));
33
+ DocumentCaptureConfirmImageScreen.displayName = 'DocumentCaptureConfirmImageScreen';
34
+ export default DocumentCaptureConfirmImageScreen;
@@ -0,0 +1,43 @@
1
+ import React, { type ReactNode } from 'react';
2
+ import { type PrizmaReviewScreenProps } from './ReviewScreen';
3
+ import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
4
+ import type { DocumentCaptureConfirmStage, DocumentCaptureStrings } from './DocumentCaptureStrings';
5
+ import './ScreenLayout.css';
6
+ import './DocumentCaptureLayout.css';
7
+ export interface DocumentCaptureConfirmUploadScreenProps extends Omit<PrizmaReviewScreenProps, 'title' | 'subtitle' | 'successTitle' | 'analyzingLabel' | 'analyzingState' | 'primaryLabel' | 'secondaryLabel' | 'verifiedLabel' | 'children' | 'stageClassName' | 'stage'> {
8
+ /** Module copy — this screen reads the `confirmUpload` slice. */
9
+ strings: DocumentCaptureStrings;
10
+ /** Which purple `documentCapture.confirmUpload.*` section to render. */
11
+ stage?: DocumentCaptureConfirmStage;
12
+ /** The uploaded file's name, shown under the page thumbnail. Not copy — it is
13
+ * runtime data from the picker, so it stays out of `strings`. */
14
+ filename?: string;
15
+ /** Page-preview thumbnail (an <img>) rendered inside the card. */
16
+ thumbnail?: ReactNode;
17
+ /** Loading-bar progress on `analyzing`, 0–100. Figma draws it part-filled. */
18
+ progress?: number;
19
+ screenId?: string;
20
+ overrides?: PrizmaScreenOverrides;
21
+ onAction?: PrizmaScreenActionHandler;
22
+ }
23
+ /**
24
+ * Document Capture — uploaded-file confirmation, built on the Review archetype
25
+ * (GUIDELINES.md §6-H, `PrizmaReviewScreen`).
26
+ *
27
+ * Figma: purple sections `documentCapture.confirmUpload.reviewFile` /
28
+ * `.analyzing` / `.success` — the same review skeleton as
29
+ * `DocumentCaptureConfirmImageScreen`, with the camera stage swapped for the
30
+ * uploaded file's preview card. The archetype owns the header, the flexing
31
+ * media stage, the Spacing/24 CTA offset and the anchored tag (DEVIATIONS
32
+ * #DC-22/24, now #REV-1); what stays module-side is the media itself — the
33
+ * vertical preview card and the standalone encrypted row, which have no Core
34
+ * counterpart (`PrizmaCardDocumentContainer` is a HORIZONTAL filename + action
35
+ * row, and Core's encrypted block ships only inside `PrizmaIdCapture`) —
36
+ * DEVIATIONS #DC-26, #DC-27 — plus the file-column inset.
37
+ *
38
+ * `documentCapture.upload.selectFromLibrary` / `.selectFromFiles` sit between
39
+ * the tutorial and this screen in the Figma flow, but they are the iOS Photos
40
+ * and Files apps — OS chrome, not Prizma surfaces (DEVIATIONS.md #DC-20).
41
+ */
42
+ export declare const DocumentCaptureConfirmUploadScreen: React.ForwardRefExoticComponent<DocumentCaptureConfirmUploadScreenProps & React.RefAttributes<HTMLDivElement>>;
43
+ export default DocumentCaptureConfirmUploadScreen;