@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.
- package/README.md +74 -0
- package/dist/CaptureOverlay.css +55 -0
- package/dist/CaptureOverlay.d.ts +34 -0
- package/dist/CaptureOverlay.js +32 -0
- package/dist/CaptureScreen.d.ts +51 -0
- package/dist/CaptureScreen.js +30 -0
- package/dist/CurpConfirmScreen.d.ts +33 -0
- package/dist/CurpConfirmScreen.js +29 -0
- package/dist/CurpEnterScreen.d.ts +51 -0
- package/dist/CurpEnterScreen.js +77 -0
- package/dist/CurpGenerateScreen.d.ts +47 -0
- package/dist/CurpGenerateScreen.js +57 -0
- package/dist/CurpLayout.css +92 -0
- package/dist/CurpProcessingScreen.d.ts +32 -0
- package/dist/CurpProcessingScreen.js +29 -0
- package/dist/CurpResultScreen.d.ts +37 -0
- package/dist/CurpResultScreen.js +36 -0
- package/dist/CurpStrings.d.ts +170 -0
- package/dist/CurpStrings.js +16 -0
- package/dist/DataSharingConsentConsentScreen.d.ts +73 -0
- package/dist/DataSharingConsentConsentScreen.js +120 -0
- package/dist/DataSharingConsentLayout.css +78 -0
- package/dist/DataSharingConsentStrings.d.ts +96 -0
- package/dist/DataSharingConsentStrings.js +38 -0
- package/dist/DemoScreensEndScreen.d.ts +33 -0
- package/dist/DemoScreensEndScreen.js +27 -0
- package/dist/DemoScreensStrings.d.ts +11 -0
- package/dist/DemoScreensStrings.js +19 -0
- package/dist/DocumentCaptureCaptureScreen.d.ts +53 -0
- package/dist/DocumentCaptureCaptureScreen.js +51 -0
- package/dist/DocumentCaptureCommonIssuesScreen.d.ts +32 -0
- package/dist/DocumentCaptureCommonIssuesScreen.js +45 -0
- package/dist/DocumentCaptureConfirmImageScreen.d.ts +38 -0
- package/dist/DocumentCaptureConfirmImageScreen.js +34 -0
- package/dist/DocumentCaptureConfirmUploadScreen.d.ts +43 -0
- package/dist/DocumentCaptureConfirmUploadScreen.js +29 -0
- package/dist/DocumentCaptureGenericErrorScreen.d.ts +36 -0
- package/dist/DocumentCaptureGenericErrorScreen.js +30 -0
- package/dist/DocumentCaptureIllustration.d.ts +45 -0
- package/dist/DocumentCaptureIllustration.js +7 -0
- package/dist/DocumentCaptureLayout.css +226 -0
- package/dist/DocumentCaptureMethodSelectionScreen.d.ts +45 -0
- package/dist/DocumentCaptureMethodSelectionScreen.js +70 -0
- package/dist/DocumentCaptureNextPageScreen.d.ts +33 -0
- package/dist/DocumentCaptureNextPageScreen.js +28 -0
- package/dist/DocumentCaptureNoConnectionScreen.d.ts +28 -0
- package/dist/DocumentCaptureNoConnectionScreen.js +29 -0
- package/dist/DocumentCaptureStrings.d.ts +158 -0
- package/dist/DocumentCaptureStrings.js +21 -0
- package/dist/DocumentCaptureTutorialScreen.d.ts +36 -0
- package/dist/DocumentCaptureTutorialScreen.js +27 -0
- package/dist/EkybAddressDetailsScreen.d.ts +61 -0
- package/dist/EkybAddressDetailsScreen.js +63 -0
- package/dist/EkybBusinessDetailsScreen.d.ts +55 -0
- package/dist/EkybBusinessDetailsScreen.js +57 -0
- package/dist/EkybCountryScreen.d.ts +52 -0
- package/dist/EkybCountryScreen.js +58 -0
- package/dist/EkybErrorScreen.d.ts +30 -0
- package/dist/EkybErrorScreen.js +24 -0
- package/dist/EkybOwnersScreen.d.ts +73 -0
- package/dist/EkybOwnersScreen.js +87 -0
- package/dist/EkybProcessingScreen.d.ts +28 -0
- package/dist/EkybProcessingScreen.js +22 -0
- package/dist/EkybStrings.d.ts +200 -0
- package/dist/EkybStrings.js +27 -0
- package/dist/EkybSuccessScreen.d.ts +28 -0
- package/dist/EkybSuccessScreen.js +22 -0
- package/dist/EkycDetailsScreen.d.ts +65 -0
- package/dist/EkycDetailsScreen.js +81 -0
- package/dist/EkycErrorScreen.d.ts +32 -0
- package/dist/EkycErrorScreen.js +26 -0
- package/dist/EkycLayout.css +39 -0
- package/dist/EkycLicenseScreen.d.ts +21 -0
- package/dist/EkycLicenseScreen.js +68 -0
- package/dist/EkycProcessingScreen.d.ts +26 -0
- package/dist/EkycProcessingScreen.js +20 -0
- package/dist/EkycStrings.d.ts +112 -0
- package/dist/EkycStrings.js +34 -0
- package/dist/EkycSuccessScreen.d.ts +29 -0
- package/dist/EkycSuccessScreen.js +23 -0
- package/dist/ElectronicSignatureDrawScreen.d.ts +57 -0
- package/dist/ElectronicSignatureDrawScreen.js +53 -0
- package/dist/ElectronicSignatureErrorScreen.d.ts +31 -0
- package/dist/ElectronicSignatureErrorScreen.js +25 -0
- package/dist/ElectronicSignatureLayout.css +80 -0
- package/dist/ElectronicSignatureReviewScreen.d.ts +51 -0
- package/dist/ElectronicSignatureReviewScreen.js +36 -0
- package/dist/ElectronicSignatureStrings.d.ts +50 -0
- package/dist/ElectronicSignatureStrings.js +12 -0
- package/dist/ElectronicSignatureSuccessScreen.d.ts +30 -0
- package/dist/ElectronicSignatureSuccessScreen.js +24 -0
- package/dist/EmailInputErrorScreen.d.ts +34 -0
- package/dist/EmailInputErrorScreen.js +28 -0
- package/dist/EmailInputOtpScreen.d.ts +56 -0
- package/dist/EmailInputOtpScreen.js +82 -0
- package/dist/EmailInputProcessingScreen.d.ts +29 -0
- package/dist/EmailInputProcessingScreen.js +23 -0
- package/dist/EmailInputStrings.d.ts +130 -0
- package/dist/EmailInputStrings.js +19 -0
- package/dist/EmailInputSuccessScreen.d.ts +37 -0
- package/dist/EmailInputSuccessScreen.js +31 -0
- package/dist/EmailInputVerifyScreen.d.ts +46 -0
- package/dist/EmailInputVerifyScreen.js +55 -0
- package/dist/ErrorScreensScreen.d.ts +62 -0
- package/dist/ErrorScreensScreen.js +71 -0
- package/dist/ErrorScreensStrings.d.ts +31 -0
- package/dist/ErrorScreensStrings.js +28 -0
- package/dist/FaceCaptureCapturingScreen.d.ts +32 -0
- package/dist/FaceCaptureCapturingScreen.js +53 -0
- package/dist/FaceCaptureLayout.css +18 -0
- package/dist/FaceCaptureLoadingScreen.d.ts +32 -0
- package/dist/FaceCaptureLoadingScreen.js +30 -0
- package/dist/FaceCaptureManualCaptureScreen.d.ts +32 -0
- package/dist/FaceCaptureManualCaptureScreen.js +27 -0
- package/dist/FaceCaptureNoConnectionScreen.d.ts +30 -0
- package/dist/FaceCaptureNoConnectionScreen.js +31 -0
- package/dist/FaceCaptureResultErrorScreen.d.ts +40 -0
- package/dist/FaceCaptureResultErrorScreen.js +32 -0
- package/dist/FaceCaptureResultSuccessScreen.d.ts +25 -0
- package/dist/FaceCaptureResultSuccessScreen.js +27 -0
- package/dist/FaceCaptureStrings.d.ts +62 -0
- package/dist/FaceCaptureStrings.js +14 -0
- package/dist/FaceCaptureTutorialScreen.d.ts +29 -0
- package/dist/FaceCaptureTutorialScreen.js +20 -0
- package/dist/FaceMatchComparisonCompactScreen.d.ts +26 -0
- package/dist/FaceMatchComparisonCompactScreen.js +24 -0
- package/dist/FaceMatchComparisonScreen.d.ts +80 -0
- package/dist/FaceMatchComparisonScreen.js +81 -0
- package/dist/FaceMatchLayout.css +264 -0
- package/dist/FaceMatchResultScreen.d.ts +50 -0
- package/dist/FaceMatchResultScreen.js +52 -0
- package/dist/FaceMatchStrings.d.ts +66 -0
- package/dist/FaceMatchStrings.js +21 -0
- package/dist/FormScreen.css +78 -0
- package/dist/FormScreen.d.ts +101 -0
- package/dist/FormScreen.js +36 -0
- package/dist/FormsChoiceScreen.d.ts +66 -0
- package/dist/FormsChoiceScreen.js +63 -0
- package/dist/FormsErrorScreen.d.ts +28 -0
- package/dist/FormsErrorScreen.js +22 -0
- package/dist/FormsFieldScreen.d.ts +66 -0
- package/dist/FormsFieldScreen.js +85 -0
- package/dist/FormsLayout.css +45 -0
- package/dist/FormsLongFormScreen.d.ts +70 -0
- package/dist/FormsLongFormScreen.js +149 -0
- package/dist/FormsStrings.d.ts +181 -0
- package/dist/FormsStrings.js +36 -0
- package/dist/FormsSuccessScreen.d.ts +32 -0
- package/dist/FormsSuccessScreen.js +26 -0
- package/dist/GeolocationBrowserStepsScreen.d.ts +56 -0
- package/dist/GeolocationBrowserStepsScreen.js +95 -0
- package/dist/GeolocationErrorScreen.d.ts +43 -0
- package/dist/GeolocationErrorScreen.js +56 -0
- package/dist/GeolocationIntroScreen.d.ts +49 -0
- package/dist/GeolocationIntroScreen.js +38 -0
- package/dist/GeolocationPermissionScreen.d.ts +38 -0
- package/dist/GeolocationPermissionScreen.js +30 -0
- package/dist/GeolocationStrings.d.ts +157 -0
- package/dist/GeolocationStrings.js +28 -0
- package/dist/IdCaptureAgeVerificationScreen.d.ts +25 -0
- package/dist/IdCaptureAgeVerificationScreen.js +38 -0
- package/dist/IdCaptureAnalyzingScreen.d.ts +41 -0
- package/dist/IdCaptureAnalyzingScreen.js +30 -0
- package/dist/IdCaptureCommonIssuesScreen.d.ts +31 -0
- package/dist/IdCaptureCommonIssuesScreen.js +49 -0
- package/dist/IdCaptureDocumentErrorScreen.d.ts +37 -0
- package/dist/IdCaptureDocumentErrorScreen.js +30 -0
- package/dist/IdCaptureDocumentSelectionScreen.d.ts +41 -0
- package/dist/IdCaptureDocumentSelectionScreen.js +49 -0
- package/dist/IdCaptureFlipScreen.d.ts +31 -0
- package/dist/IdCaptureFlipScreen.js +26 -0
- package/dist/IdCaptureHoldOnScreen.d.ts +28 -0
- package/dist/IdCaptureHoldOnScreen.js +22 -0
- package/dist/IdCaptureLayout.css +111 -0
- package/dist/IdCaptureNoConnectionScreen.d.ts +28 -0
- package/dist/IdCaptureNoConnectionScreen.js +29 -0
- package/dist/IdCapturePermissionScreen.d.ts +34 -0
- package/dist/IdCapturePermissionScreen.js +45 -0
- package/dist/IdCaptureResultScreen.d.ts +59 -0
- package/dist/IdCaptureResultScreen.js +89 -0
- package/dist/IdCaptureStageScreen.d.ts +69 -0
- package/dist/IdCaptureStageScreen.js +88 -0
- package/dist/IdCaptureStrings.d.ts +199 -0
- package/dist/IdCaptureStrings.js +15 -0
- package/dist/IdCaptureTutorialScreen.d.ts +36 -0
- package/dist/IdCaptureTutorialScreen.js +30 -0
- package/dist/ListScreen.d.ts +95 -0
- package/dist/ListScreen.js +46 -0
- package/dist/LoaderScreen.d.ts +32 -0
- package/dist/LoaderScreen.js +27 -0
- package/dist/LoadersStrings.d.ts +20 -0
- package/dist/LoadersStrings.js +16 -0
- package/dist/NfcCommonIssuesScreen.d.ts +35 -0
- package/dist/NfcCommonIssuesScreen.js +48 -0
- package/dist/NfcErrorScreen.d.ts +41 -0
- package/dist/NfcErrorScreen.js +27 -0
- package/dist/NfcLayout.css +36 -0
- package/dist/NfcProcessingScreen.d.ts +28 -0
- package/dist/NfcProcessingScreen.js +22 -0
- package/dist/NfcScanningScreen.d.ts +66 -0
- package/dist/NfcScanningScreen.js +61 -0
- package/dist/NfcSettingsScreen.d.ts +53 -0
- package/dist/NfcSettingsScreen.js +57 -0
- package/dist/NfcStrings.d.ts +112 -0
- package/dist/NfcStrings.js +7 -0
- package/dist/NfcSuccessScreen.d.ts +28 -0
- package/dist/NfcSuccessScreen.js +22 -0
- package/dist/NfcSymbolScreen.d.ts +39 -0
- package/dist/NfcSymbolScreen.js +32 -0
- package/dist/NfcTryAgainScreen.d.ts +53 -0
- package/dist/NfcTryAgainScreen.js +45 -0
- package/dist/NfcTutorialScreen.d.ts +33 -0
- package/dist/NfcTutorialScreen.js +24 -0
- package/dist/PermissionsAllowScreen.d.ts +44 -0
- package/dist/PermissionsAllowScreen.js +38 -0
- package/dist/PermissionsBrowserStepsScreen.d.ts +42 -0
- package/dist/PermissionsBrowserStepsScreen.js +86 -0
- package/dist/PermissionsRequiredScreen.d.ts +37 -0
- package/dist/PermissionsRequiredScreen.js +51 -0
- package/dist/PermissionsStrings.d.ts +70 -0
- package/dist/PermissionsStrings.js +36 -0
- package/dist/PhoneInputErrorScreen.d.ts +37 -0
- package/dist/PhoneInputErrorScreen.js +47 -0
- package/dist/PhoneInputLayout.css +61 -0
- package/dist/PhoneInputOtpScreen.d.ts +37 -0
- package/dist/PhoneInputOtpScreen.js +44 -0
- package/dist/PhoneInputSnaLoadingScreen.d.ts +23 -0
- package/dist/PhoneInputSnaLoadingScreen.js +17 -0
- package/dist/PhoneInputStrings.d.ts +121 -0
- package/dist/PhoneInputStrings.js +13 -0
- package/dist/PhoneInputSuccessScreen.d.ts +23 -0
- package/dist/PhoneInputSuccessScreen.js +17 -0
- package/dist/PhoneInputVerifyScreen.d.ts +41 -0
- package/dist/PhoneInputVerifyScreen.js +71 -0
- package/dist/ProcessingScreen.d.ts +42 -0
- package/dist/ProcessingScreen.js +21 -0
- package/dist/QualifiedSignatureAcceptScreen.d.ts +71 -0
- package/dist/QualifiedSignatureAcceptScreen.js +86 -0
- package/dist/QualifiedSignatureDocumentScreen.d.ts +62 -0
- package/dist/QualifiedSignatureDocumentScreen.js +56 -0
- package/dist/QualifiedSignatureLayout.css +206 -0
- package/dist/QualifiedSignatureProcessingScreen.d.ts +46 -0
- package/dist/QualifiedSignatureProcessingScreen.js +48 -0
- package/dist/QualifiedSignatureResultScreen.d.ts +65 -0
- package/dist/QualifiedSignatureResultScreen.js +76 -0
- package/dist/QualifiedSignatureReviewScreen.d.ts +49 -0
- package/dist/QualifiedSignatureReviewScreen.js +40 -0
- package/dist/QualifiedSignatureStrings.d.ts +222 -0
- package/dist/QualifiedSignatureStrings.js +25 -0
- package/dist/QualifiedSignatureUploadScreen.d.ts +42 -0
- package/dist/QualifiedSignatureUploadScreen.js +35 -0
- package/dist/ResultScreen.d.ts +93 -0
- package/dist/ResultScreen.js +37 -0
- package/dist/ReviewScreen.d.ts +81 -0
- package/dist/ReviewScreen.js +56 -0
- package/dist/ScreenLayout.css +469 -0
- package/dist/ScreenNav.css +43 -0
- package/dist/ScreenNav.d.ts +26 -0
- package/dist/ScreenNav.js +13 -0
- package/dist/ScreenShell.css +130 -0
- package/dist/ScreenShell.d.ts +45 -0
- package/dist/ScreenShell.js +22 -0
- package/dist/TutorialScreen.d.ts +70 -0
- package/dist/TutorialScreen.js +24 -0
- package/dist/VideoSelfieCameraStepsScreen.d.ts +47 -0
- package/dist/VideoSelfieCameraStepsScreen.js +56 -0
- package/dist/VideoSelfieErrorScreen.d.ts +63 -0
- package/dist/VideoSelfieErrorScreen.js +94 -0
- package/dist/VideoSelfieFlipCameraScreen.d.ts +34 -0
- package/dist/VideoSelfieFlipCameraScreen.js +38 -0
- package/dist/VideoSelfieFlipIdScreen.d.ts +34 -0
- package/dist/VideoSelfieFlipIdScreen.js +29 -0
- package/dist/VideoSelfieIdCaptureScreen.d.ts +75 -0
- package/dist/VideoSelfieIdCaptureScreen.js +86 -0
- package/dist/VideoSelfieLayout.css +259 -0
- package/dist/VideoSelfiePermissionRequiredScreen.d.ts +35 -0
- package/dist/VideoSelfiePermissionRequiredScreen.js +45 -0
- package/dist/VideoSelfiePermissionScreen.d.ts +51 -0
- package/dist/VideoSelfiePermissionScreen.js +44 -0
- package/dist/VideoSelfieProcessingScreen.d.ts +28 -0
- package/dist/VideoSelfieProcessingScreen.js +22 -0
- package/dist/VideoSelfieRetryScreen.d.ts +31 -0
- package/dist/VideoSelfieRetryScreen.js +32 -0
- package/dist/VideoSelfieSelfieCaptureScreen.d.ts +52 -0
- package/dist/VideoSelfieSelfieCaptureScreen.js +58 -0
- package/dist/VideoSelfieSpeakScreen.d.ts +64 -0
- package/dist/VideoSelfieSpeakScreen.js +95 -0
- package/dist/VideoSelfieStrings.d.ts +196 -0
- package/dist/VideoSelfieStrings.js +14 -0
- package/dist/VideoSelfieSuccessScreen.d.ts +25 -0
- package/dist/VideoSelfieSuccessScreen.js +19 -0
- package/dist/VideoSelfieTutorialScreen.d.ts +33 -0
- package/dist/VideoSelfieTutorialScreen.js +41 -0
- package/dist/ViewfinderScreen.css +107 -0
- package/dist/ViewfinderScreen.d.ts +40 -0
- package/dist/ViewfinderScreen.js +26 -0
- package/dist/WatchlistBusinessFormScreen.d.ts +61 -0
- package/dist/WatchlistBusinessFormScreen.js +85 -0
- package/dist/WatchlistBusinessProcessingScreen.d.ts +25 -0
- package/dist/WatchlistBusinessProcessingScreen.js +19 -0
- package/dist/WatchlistBusinessStrings.d.ts +95 -0
- package/dist/WatchlistBusinessStrings.js +19 -0
- package/dist/WatchlistBusinessSuccessScreen.d.ts +29 -0
- package/dist/WatchlistBusinessSuccessScreen.js +23 -0
- package/dist/flows.d.ts +216 -0
- package/dist/flows.js +516 -0
- package/dist/index.d.ts +145 -0
- package/dist/index.js +130 -0
- package/dist/styles.css +33 -0
- package/dist/types.d.ts +56 -0
- package/dist/types.js +8 -0
- package/package.json +689 -0
- package/samples/camera-surface.png +0 -0
- package/samples/document-still.png +0 -0
- package/samples/document-thumbnail.png +0 -0
- package/samples/face-match-bottom.png +0 -0
- package/samples/face-match-left.png +0 -0
- package/samples/face-match-right.png +0 -0
- package/samples/id-back-blur.png +0 -0
- package/samples/id-back-dark.png +0 -0
- package/samples/id-back-glare.png +0 -0
- package/samples/id-back.png +0 -0
- package/samples/id-front-blur.png +0 -0
- package/samples/id-front-dark.png +0 -0
- package/samples/id-front-glare.png +0 -0
- package/samples/id-front.png +0 -0
- package/samples/id-passport.png +0 -0
- package/samples/selfie-glasses.png +0 -0
- package/samples/selfie-hat.png +0 -0
- package/samples/selfie-mask.png +0 -0
- package/samples/selfie.png +0 -0
- package/samples/video-selfie-camera.png +0 -0
- package/src/CaptureOverlay.css +55 -0
- package/src/CaptureOverlay.tsx +56 -0
- package/src/CaptureScreen.tsx +121 -0
- package/src/CurpConfirmScreen.tsx +75 -0
- package/src/CurpEnterScreen.tsx +149 -0
- package/src/CurpGenerateScreen.tsx +172 -0
- package/src/CurpLayout.css +92 -0
- package/src/CurpProcessingScreen.tsx +75 -0
- package/src/CurpResultScreen.tsx +80 -0
- package/src/CurpStrings.ts +178 -0
- package/src/DataSharingConsentConsentScreen.tsx +223 -0
- package/src/DataSharingConsentLayout.css +78 -0
- package/src/DataSharingConsentStrings.ts +144 -0
- package/src/DemoScreensEndScreen.tsx +56 -0
- package/src/DemoScreensStrings.ts +31 -0
- package/src/DocumentCaptureCaptureScreen.tsx +135 -0
- package/src/DocumentCaptureCommonIssuesScreen.tsx +97 -0
- package/src/DocumentCaptureConfirmImageScreen.tsx +112 -0
- package/src/DocumentCaptureConfirmUploadScreen.tsx +113 -0
- package/src/DocumentCaptureGenericErrorScreen.tsx +82 -0
- package/src/DocumentCaptureIllustration.tsx +153 -0
- package/src/DocumentCaptureLayout.css +226 -0
- package/src/DocumentCaptureMethodSelectionScreen.tsx +151 -0
- package/src/DocumentCaptureNextPageScreen.tsx +82 -0
- package/src/DocumentCaptureNoConnectionScreen.tsx +77 -0
- package/src/DocumentCaptureStrings.ts +192 -0
- package/src/DocumentCaptureTutorialScreen.tsx +79 -0
- package/src/EkybAddressDetailsScreen.tsx +200 -0
- package/src/EkybBusinessDetailsScreen.tsx +147 -0
- package/src/EkybCountryScreen.tsx +124 -0
- package/src/EkybErrorScreen.tsx +61 -0
- package/src/EkybOwnersScreen.tsx +230 -0
- package/src/EkybProcessingScreen.tsx +57 -0
- package/src/EkybStrings.ts +239 -0
- package/src/EkybSuccessScreen.tsx +54 -0
- package/src/EkycDetailsScreen.tsx +178 -0
- package/src/EkycErrorScreen.tsx +64 -0
- package/src/EkycLayout.css +39 -0
- package/src/EkycLicenseScreen.tsx +164 -0
- package/src/EkycProcessingScreen.tsx +60 -0
- package/src/EkycStrings.ts +157 -0
- package/src/EkycSuccessScreen.tsx +63 -0
- package/src/ElectronicSignatureDrawScreen.tsx +127 -0
- package/src/ElectronicSignatureErrorScreen.tsx +74 -0
- package/src/ElectronicSignatureLayout.css +80 -0
- package/src/ElectronicSignatureReviewScreen.tsx +106 -0
- package/src/ElectronicSignatureStrings.ts +67 -0
- package/src/ElectronicSignatureSuccessScreen.tsx +67 -0
- package/src/EmailInputErrorScreen.tsx +67 -0
- package/src/EmailInputOtpScreen.tsx +169 -0
- package/src/EmailInputProcessingScreen.tsx +67 -0
- package/src/EmailInputStrings.ts +166 -0
- package/src/EmailInputSuccessScreen.tsx +72 -0
- package/src/EmailInputVerifyScreen.tsx +117 -0
- package/src/ErrorScreensScreen.tsx +149 -0
- package/src/ErrorScreensStrings.ts +66 -0
- package/src/FaceCaptureCapturingScreen.tsx +99 -0
- package/src/FaceCaptureLayout.css +18 -0
- package/src/FaceCaptureLoadingScreen.tsx +65 -0
- package/src/FaceCaptureManualCaptureScreen.tsx +94 -0
- package/src/FaceCaptureNoConnectionScreen.tsx +73 -0
- package/src/FaceCaptureResultErrorScreen.tsx +86 -0
- package/src/FaceCaptureResultSuccessScreen.tsx +49 -0
- package/src/FaceCaptureStrings.ts +92 -0
- package/src/FaceCaptureTutorialScreen.tsx +77 -0
- package/src/FaceMatchComparisonCompactScreen.tsx +51 -0
- package/src/FaceMatchComparisonScreen.tsx +201 -0
- package/src/FaceMatchLayout.css +264 -0
- package/src/FaceMatchResultScreen.tsx +117 -0
- package/src/FaceMatchStrings.ts +95 -0
- package/src/FormScreen.css +78 -0
- package/src/FormScreen.tsx +213 -0
- package/src/FormsChoiceScreen.tsx +150 -0
- package/src/FormsErrorScreen.tsx +61 -0
- package/src/FormsFieldScreen.tsx +198 -0
- package/src/FormsLayout.css +45 -0
- package/src/FormsLongFormScreen.tsx +295 -0
- package/src/FormsStrings.ts +243 -0
- package/src/FormsSuccessScreen.tsx +67 -0
- package/src/GeolocationBrowserStepsScreen.tsx +173 -0
- package/src/GeolocationErrorScreen.tsx +113 -0
- package/src/GeolocationIntroScreen.tsx +100 -0
- package/src/GeolocationPermissionScreen.tsx +88 -0
- package/src/GeolocationStrings.ts +193 -0
- package/src/IdCaptureAgeVerificationScreen.tsx +84 -0
- package/src/IdCaptureAnalyzingScreen.tsx +94 -0
- package/src/IdCaptureCommonIssuesScreen.tsx +109 -0
- package/src/IdCaptureDocumentErrorScreen.tsx +92 -0
- package/src/IdCaptureDocumentSelectionScreen.tsx +100 -0
- package/src/IdCaptureFlipScreen.tsx +66 -0
- package/src/IdCaptureHoldOnScreen.tsx +51 -0
- package/src/IdCaptureLayout.css +111 -0
- package/src/IdCaptureNoConnectionScreen.tsx +68 -0
- package/src/IdCapturePermissionScreen.tsx +102 -0
- package/src/IdCaptureResultScreen.tsx +197 -0
- package/src/IdCaptureStageScreen.tsx +241 -0
- package/src/IdCaptureStrings.ts +228 -0
- package/src/IdCaptureTutorialScreen.tsx +99 -0
- package/src/ListScreen.tsx +213 -0
- package/src/LoaderScreen.tsx +69 -0
- package/src/LoadersStrings.ts +38 -0
- package/src/NfcCommonIssuesScreen.tsx +104 -0
- package/src/NfcErrorScreen.tsx +83 -0
- package/src/NfcLayout.css +36 -0
- package/src/NfcProcessingScreen.tsx +57 -0
- package/src/NfcScanningScreen.tsx +127 -0
- package/src/NfcSettingsScreen.tsx +124 -0
- package/src/NfcStrings.ts +127 -0
- package/src/NfcSuccessScreen.tsx +56 -0
- package/src/NfcSymbolScreen.tsx +85 -0
- package/src/NfcTryAgainScreen.tsx +114 -0
- package/src/NfcTutorialScreen.tsx +76 -0
- package/src/PermissionsAllowScreen.tsx +90 -0
- package/src/PermissionsBrowserStepsScreen.tsx +158 -0
- package/src/PermissionsRequiredScreen.tsx +118 -0
- package/src/PermissionsStrings.ts +129 -0
- package/src/PhoneInputErrorScreen.tsx +104 -0
- package/src/PhoneInputLayout.css +61 -0
- package/src/PhoneInputOtpScreen.tsx +126 -0
- package/src/PhoneInputSnaLoadingScreen.tsx +61 -0
- package/src/PhoneInputStrings.ts +136 -0
- package/src/PhoneInputSuccessScreen.tsx +56 -0
- package/src/PhoneInputVerifyScreen.tsx +153 -0
- package/src/ProcessingScreen.tsx +97 -0
- package/src/QualifiedSignatureAcceptScreen.tsx +198 -0
- package/src/QualifiedSignatureDocumentScreen.tsx +124 -0
- package/src/QualifiedSignatureLayout.css +206 -0
- package/src/QualifiedSignatureProcessingScreen.tsx +112 -0
- package/src/QualifiedSignatureResultScreen.tsx +146 -0
- package/src/QualifiedSignatureReviewScreen.tsx +113 -0
- package/src/QualifiedSignatureStrings.ts +256 -0
- package/src/QualifiedSignatureUploadScreen.tsx +81 -0
- package/src/ResultScreen.tsx +211 -0
- package/src/ReviewScreen.tsx +196 -0
- package/src/ScreenLayout.css +469 -0
- package/src/ScreenNav.css +43 -0
- package/src/ScreenNav.tsx +46 -0
- package/src/ScreenShell.css +130 -0
- package/src/ScreenShell.tsx +66 -0
- package/src/TutorialScreen.tsx +166 -0
- package/src/VideoSelfieCameraStepsScreen.tsx +145 -0
- package/src/VideoSelfieErrorScreen.tsx +168 -0
- package/src/VideoSelfieFlipCameraScreen.tsx +88 -0
- package/src/VideoSelfieFlipIdScreen.tsx +74 -0
- package/src/VideoSelfieIdCaptureScreen.tsx +213 -0
- package/src/VideoSelfieLayout.css +259 -0
- package/src/VideoSelfiePermissionRequiredScreen.tsx +104 -0
- package/src/VideoSelfiePermissionScreen.tsx +102 -0
- package/src/VideoSelfieProcessingScreen.tsx +68 -0
- package/src/VideoSelfieRetryScreen.tsx +92 -0
- package/src/VideoSelfieSelfieCaptureScreen.tsx +122 -0
- package/src/VideoSelfieSpeakScreen.tsx +237 -0
- package/src/VideoSelfieStrings.ts +222 -0
- package/src/VideoSelfieSuccessScreen.tsx +64 -0
- package/src/VideoSelfieTutorialScreen.tsx +129 -0
- package/src/ViewfinderScreen.css +107 -0
- package/src/ViewfinderScreen.tsx +113 -0
- package/src/WatchlistBusinessFormScreen.tsx +176 -0
- package/src/WatchlistBusinessProcessingScreen.tsx +63 -0
- package/src/WatchlistBusinessStrings.ts +121 -0
- package/src/WatchlistBusinessSuccessScreen.tsx +67 -0
- package/src/flows.ts +711 -0
- package/src/index.ts +591 -0
- package/src/styles.css +33 -0
- 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,144 @@
|
|
|
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
|
+
|
|
39
|
+
import type { PrizmaConsentSegment } from '@incodetech/prizma-core-web/checkbox';
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* The states the purple section draws, plus the two the Core checkbox earned in
|
|
43
|
+
* #1925. All share ONE layout — nav → Title → body paragraph → consent cards →
|
|
44
|
+
* CTA → tag — which is exactly what GUIDELINES §6-E means by "states are
|
|
45
|
+
* separate screens sharing the identical layout":
|
|
46
|
+
*
|
|
47
|
+
* - `default` — the master frame: the mandatory consent alone,
|
|
48
|
+
* unticked, so the CTA is disabled (Figma greys it).
|
|
49
|
+
* - `accepted` — the same single consent ticked; the CTA turns brand
|
|
50
|
+
* blue. This is the `🔧 Behavior` frame's treatment
|
|
51
|
+
* applied to the single-consent screen.
|
|
52
|
+
* - `multiple` — every consent in `items` listed and unticked; the
|
|
53
|
+
* stack is taller than the frame, so it pans while the
|
|
54
|
+
* Title, the CTA and the tag hold still. CTA disabled.
|
|
55
|
+
* - `multipleAccepted` — the `🔧 Behavior` frame: every consent ticked, CTA
|
|
56
|
+
* released.
|
|
57
|
+
* - `rejected` — NOT IN EITHER FIGMA FILE. The single mandatory consent
|
|
58
|
+
* left unticked with `errorText` showing underneath it:
|
|
59
|
+
* the moment a user presses Continue and is refused.
|
|
60
|
+
* - `multipleRejected` — the same refusal on the every-consent screen. Only the
|
|
61
|
+
* `required` cards carry the message; an optional consent
|
|
62
|
+
* left unticked is not an error.
|
|
63
|
+
*
|
|
64
|
+
* WHY THEY EXIST WITH NO FRAME BEHIND THEM. Core shipped the L consent
|
|
65
|
+
* container's error state on 2026-09-02 (#1925) — `error` + `errorText` render a
|
|
66
|
+
* `role="alert"` row below the card, and the card itself is deliberately
|
|
67
|
+
* unchanged. Until now no screen selected it, so the flow canvas had nothing to
|
|
68
|
+
* point at for "Continue, with nothing ticked". Owner call, 2026-09-03: add the
|
|
69
|
+
* state to the screen and wire it into the User Consent flow. If the design file
|
|
70
|
+
* later draws this moment differently, this is the state to re-read.
|
|
71
|
+
*/
|
|
72
|
+
export type DataSharingConsentState =
|
|
73
|
+
| 'default'
|
|
74
|
+
| 'accepted'
|
|
75
|
+
| 'rejected'
|
|
76
|
+
| 'multiple'
|
|
77
|
+
| 'multipleAccepted'
|
|
78
|
+
| 'multipleRejected';
|
|
79
|
+
|
|
80
|
+
/** One consent card — a Core `PrizmaCheckbox size="L"` (the component IS the
|
|
81
|
+
* tinted consent container Figma draws, padding, radius and all). */
|
|
82
|
+
export interface DataSharingConsentItemStrings {
|
|
83
|
+
/**
|
|
84
|
+
* The card copy, as ordered segments: a plain string renders as body copy, an
|
|
85
|
+
* object renders as an inline `<a>` that opens the document WITHOUT toggling
|
|
86
|
+
* the box. This is Core's own `PrizmaConsentSegment` contract — the multi-link
|
|
87
|
+
* path on `PrizmaCheckbox` — so nothing is re-modelled here and a consent that
|
|
88
|
+
* cites two documents stays expressible (#PI-10: each link is separately
|
|
89
|
+
* actionable, never one button).
|
|
90
|
+
*/
|
|
91
|
+
segments: PrizmaConsentSegment[];
|
|
92
|
+
/**
|
|
93
|
+
* Mandatory consent. The screen appends `DataSharingConsentStrings.requiredHint`
|
|
94
|
+
* (the `*` Figma draws at the end of the first card) rather than baking the
|
|
95
|
+
* marker into `segments`, so it stays localizable — the #CURP-4 precedent.
|
|
96
|
+
*/
|
|
97
|
+
required?: boolean;
|
|
98
|
+
/** Accessible name for the box when the card copy is too long to serve as
|
|
99
|
+
* one (screen readers otherwise announce the whole paragraph). */
|
|
100
|
+
ariaLabel?: string;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
export interface DataSharingConsentStrings {
|
|
104
|
+
/** "verified by" attribution in the footer tag. */
|
|
105
|
+
verifiedLabel: string;
|
|
106
|
+
/** Accessible name for the logo nav row. */
|
|
107
|
+
navLabel?: string;
|
|
108
|
+
/** Suffix appended to a `required` consent card ("*"). Localizable. */
|
|
109
|
+
requiredHint?: string;
|
|
110
|
+
|
|
111
|
+
/** The `User Consent` section. */
|
|
112
|
+
consent: {
|
|
113
|
+
/** H2 ("User consent"). Centered, per the section. */
|
|
114
|
+
title: string;
|
|
115
|
+
/** H5 — the section draws none; kept for hosts that want one. */
|
|
116
|
+
subtitle?: string;
|
|
117
|
+
/**
|
|
118
|
+
* The legal disclosure above the cards, as ordered segments so the Privacy
|
|
119
|
+
* Notice link stays inline and translatable. Left-aligned body copy — the
|
|
120
|
+
* section left-aligns it under the centered Title.
|
|
121
|
+
*/
|
|
122
|
+
body: PrizmaConsentSegment[];
|
|
123
|
+
/**
|
|
124
|
+
* Every consent the flow asks for, in the order the section lists them.
|
|
125
|
+
* `default` / `accepted` draw the FIRST entry alone (that is the master
|
|
126
|
+
* frame); `multiple` / `multipleAccepted` draw them all.
|
|
127
|
+
*/
|
|
128
|
+
items: DataSharingConsentItemStrings[];
|
|
129
|
+
/** Primary CTA ("Continue"). Disabled until the consents are ticked. */
|
|
130
|
+
ctaLabel: string;
|
|
131
|
+
/**
|
|
132
|
+
* The sentence a refused Continue owes the user, shown under every
|
|
133
|
+
* `required` card in the `rejected` / `multipleRejected` states.
|
|
134
|
+
*
|
|
135
|
+
* REQUIRED BY THOSE STATES, in practice. On Core's L container the errored
|
|
136
|
+
* card is visually identical to the enabled one — no fill change, no border,
|
|
137
|
+
* the box unchanged (owner decision 2026-09-02, after three card treatments
|
|
138
|
+
* read as "selected" rather than "failed" next to an already-ticked card).
|
|
139
|
+
* This message row is the entire visible error, so omitting it leaves a
|
|
140
|
+
* sighted user with no feedback at all; `PrizmaCheckbox` dev-warns.
|
|
141
|
+
*/
|
|
142
|
+
errorText?: string;
|
|
143
|
+
};
|
|
144
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import React, { forwardRef } from 'react';
|
|
2
|
+
import { PrizmaResultScreen, type PrizmaResultScreenProps } from './ResultScreen';
|
|
3
|
+
import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
|
|
4
|
+
import type { DemoScreensStrings } from './DemoScreensStrings';
|
|
5
|
+
import './ScreenLayout.css';
|
|
6
|
+
|
|
7
|
+
export interface DemoScreensEndScreenProps
|
|
8
|
+
extends Omit<
|
|
9
|
+
PrizmaResultScreenProps,
|
|
10
|
+
'status' | 'title' | 'subtitle' | 'glyph' | 'verifiedLabel' | 'navLabel'
|
|
11
|
+
> {
|
|
12
|
+
/** Family copy — this screen reads the `end` slice. */
|
|
13
|
+
strings: DemoScreensStrings;
|
|
14
|
+
screenId?: string;
|
|
15
|
+
overrides?: PrizmaScreenOverrides;
|
|
16
|
+
onAction?: PrizmaScreenActionHandler;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Demo screens — "Verification complete!", built on the Result archetype
|
|
21
|
+
* (GUIDELINES.md §6-F, `PrizmaResultScreen`).
|
|
22
|
+
*
|
|
23
|
+
* Figma: `Module Generic Screens` frame `63:399`. The last thing a prospect
|
|
24
|
+
* sees in a sample flow: logo header → a centred title and supporting line →
|
|
25
|
+
* the verified tag. No CTA, because the demo has nowhere left to go.
|
|
26
|
+
*
|
|
27
|
+
* Result rather than Processing, even though the skeleton is Processing's:
|
|
28
|
+
* archetype C's status vocabulary is `loading | success | error | warning`, so
|
|
29
|
+
* a MARK-FREE centred title is not expressible there. `status="none"` is
|
|
30
|
+
* archetype F's, and with no CTA the band never renders — F degenerates to
|
|
31
|
+
* exactly C's shape and keeps the mark off.
|
|
32
|
+
*
|
|
33
|
+
* Figma draws no status mark above the title, deliberately: the demo did not
|
|
34
|
+
* verify anything, it finished. A success tick here would claim a verdict the
|
|
35
|
+
* session never reached — the copy already says the result is still under
|
|
36
|
+
* review.
|
|
37
|
+
*/
|
|
38
|
+
export const DemoScreensEndScreen = forwardRef<HTMLDivElement, DemoScreensEndScreenProps>(
|
|
39
|
+
({ strings, screenId = 'demo-screens-end', overrides, onAction, ...shell }, ref) => (
|
|
40
|
+
<PrizmaResultScreen
|
|
41
|
+
ref={ref}
|
|
42
|
+
status="none"
|
|
43
|
+
title={strings.end.title}
|
|
44
|
+
subtitle={strings.end.subtitle}
|
|
45
|
+
verifiedLabel={strings.verifiedLabel}
|
|
46
|
+
navLabel={strings.navLabel}
|
|
47
|
+
screenId={screenId}
|
|
48
|
+
overrides={overrides}
|
|
49
|
+
onAction={onAction}
|
|
50
|
+
{...shell}
|
|
51
|
+
/>
|
|
52
|
+
),
|
|
53
|
+
);
|
|
54
|
+
DemoScreensEndScreen.displayName = 'DemoScreensEndScreen';
|
|
55
|
+
|
|
56
|
+
export default DemoScreensEndScreen;
|
|
@@ -0,0 +1,31 @@
|
|
|
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
|
+
|
|
20
|
+
export interface DemoScreensStrings {
|
|
21
|
+
/** Accessible name for the logo nav region (i18n — no baked-in English). */
|
|
22
|
+
navLabel?: string;
|
|
23
|
+
/** "verified by" attribution copy for the footer tag. */
|
|
24
|
+
verifiedLabel: string;
|
|
25
|
+
|
|
26
|
+
/** `63:399` — the demo is over and the result is with a human. */
|
|
27
|
+
end: {
|
|
28
|
+
title: string;
|
|
29
|
+
subtitle?: string;
|
|
30
|
+
};
|
|
31
|
+
}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import React, { forwardRef, type ReactNode } from 'react';
|
|
2
|
+
import { PrizmaIdCapture } from '@incodetech/prizma-core-web/id-capture';
|
|
3
|
+
import { PrizmaCaptureManual } from '@incodetech/prizma-core-web/capture-manual';
|
|
4
|
+
import { PrizmaTag } from '@incodetech/prizma-core-web/tag';
|
|
5
|
+
import { PrizmaScreenShell, type PrizmaScreenShellProps } from './ScreenShell';
|
|
6
|
+
import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
|
|
7
|
+
import type { DocumentCaptureStrings } from './DocumentCaptureStrings';
|
|
8
|
+
import './ScreenLayout.css';
|
|
9
|
+
import './DocumentCaptureLayout.css';
|
|
10
|
+
|
|
11
|
+
export interface DocumentCaptureCaptureScreenProps
|
|
12
|
+
extends Omit<PrizmaScreenShellProps, 'dark' | 'title' | 'children'> {
|
|
13
|
+
/** Module copy — this screen reads the `capture` slice. */
|
|
14
|
+
strings: DocumentCaptureStrings;
|
|
15
|
+
/**
|
|
16
|
+
* `empty` = `documentCapture.capture.default` (the live camera, no document
|
|
17
|
+
* detected yet) · `filled` = `documentCapture.capture.filled` (a document
|
|
18
|
+
* fills the frame). Both are `enabled`-border states of Core's stage.
|
|
19
|
+
*/
|
|
20
|
+
state?: 'empty' | 'filled';
|
|
21
|
+
/** Live camera feed (<video>) or sample still (<img>). Rendered full-bleed on
|
|
22
|
+
* the viewfinder surface behind the transparent overlay window (overlay mode
|
|
23
|
+
* ignores PrizmaIdCapture's own `camera` slot). */
|
|
24
|
+
camera?: ReactNode;
|
|
25
|
+
screenId?: string;
|
|
26
|
+
overrides?: PrizmaScreenOverrides;
|
|
27
|
+
onAction?: PrizmaScreenActionHandler;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Document Capture — camera stage (Archetype D, GUIDELINES.md §6-D).
|
|
32
|
+
* Figma: purple sections `documentCapture.capture.default` / `.filled`.
|
|
33
|
+
*
|
|
34
|
+
* The stage is Core's `PrizmaIdCapture` with `type="poa"` — the Document
|
|
35
|
+
* Capture variant it was built for ("PoA (Document Capture flow)").
|
|
36
|
+
* Composed exactly like `IdCaptureStageScreen`: the camera feed rides full-bleed
|
|
37
|
+
* on `.prizma-viewfinder__surface`, a white viewfinder title sits above the
|
|
38
|
+
* frame, and `PrizmaIdCapture mode="overlay" scrim` cuts a transparent window
|
|
39
|
+
* through the veil. Without overlay+scrim the poa frame draws no border and the
|
|
40
|
+
* screen reads as raw camera; without the white viewfinder title the dark
|
|
41
|
+
* PrizmaTitle ink vanished on the light feed (DEVIATIONS.md #DC-36). The strip
|
|
42
|
+
* is `PrizmaCaptureManual` (shutter + help); nothing Core-owned is
|
|
43
|
+
* re-implemented.
|
|
44
|
+
*
|
|
45
|
+
* Measured off the 390 sections (CONTENT 654 tall, no nav, no tag):
|
|
46
|
+
* Title 16→75 · stage 75→538 (`Capture / ID` 430 + its own 33 encrypted row) ·
|
|
47
|
+
* Spacing/12 · manual strip 566→630 · Spacing/24 to the bottom. The stage
|
|
48
|
+
* carries its own frame↔row spacing, so the module adds only the Spacing/16
|
|
49
|
+
* title gap and the Spacing/12 strip gap — never an offset Core already has
|
|
50
|
+
* (DEVIATIONS.md #12).
|
|
51
|
+
*
|
|
52
|
+
* Always dark (§6-D). Rather than hardcode white literals the way the
|
|
53
|
+
* foundation's ViewfinderScreen does, the shell declares Core's own theme
|
|
54
|
+
* switch (`data-prizma-theme="dark"`), so the Title and every other token-bound
|
|
55
|
+
* child flips through the design system instead of around it —
|
|
56
|
+
* DEVIATIONS.md #DC-32.
|
|
57
|
+
*/
|
|
58
|
+
export const DocumentCaptureCaptureScreen = forwardRef<
|
|
59
|
+
HTMLDivElement,
|
|
60
|
+
DocumentCaptureCaptureScreenProps
|
|
61
|
+
>(
|
|
62
|
+
(
|
|
63
|
+
{
|
|
64
|
+
strings,
|
|
65
|
+
state = 'empty',
|
|
66
|
+
camera,
|
|
67
|
+
screenId = `document-capture-capture-${state}`,
|
|
68
|
+
overrides,
|
|
69
|
+
onAction,
|
|
70
|
+
className,
|
|
71
|
+
...shell
|
|
72
|
+
},
|
|
73
|
+
ref,
|
|
74
|
+
) => (
|
|
75
|
+
<PrizmaScreenShell
|
|
76
|
+
ref={ref}
|
|
77
|
+
dark
|
|
78
|
+
data-prizma-theme="dark"
|
|
79
|
+
// `document-capture-capture-screen` is what carries the status-bar
|
|
80
|
+
// reserve — this screen draws no nav, and on the viewfinder composition
|
|
81
|
+
// the nav is what would otherwise supply it (DocumentCaptureLayout.css,
|
|
82
|
+
// "THIS RESERVE WENT MISSING AND CAME BACK"). Without the hook the title
|
|
83
|
+
// renders at y+0, under the notch.
|
|
84
|
+
className={['document-capture-capture-screen', className].filter(Boolean).join(' ')}
|
|
85
|
+
{...shell}
|
|
86
|
+
>
|
|
87
|
+
{/* Full-bleed camera feed UNDER the UI; the overlay window is transparent
|
|
88
|
+
and reveals it undimmed while the scrim veils the surround — Core's
|
|
89
|
+
own recipe (IdCapture.tsx overlay mode), the same one IdCaptureStage
|
|
90
|
+
uses. In this mode the `camera` slot on PrizmaIdCapture is ignored, so
|
|
91
|
+
the feed rides on the viewfinder surface instead. */}
|
|
92
|
+
<div className="prizma-viewfinder__surface">{camera}</div>
|
|
93
|
+
<div
|
|
94
|
+
className={[
|
|
95
|
+
'prizma-viewfinder__content',
|
|
96
|
+
overrides?.align === 'left' ? 'prizma-viewfinder__content--left' : '',
|
|
97
|
+
]
|
|
98
|
+
.filter(Boolean)
|
|
99
|
+
.join(' ')}
|
|
100
|
+
>
|
|
101
|
+
<div className="prizma-viewfinder__intro">
|
|
102
|
+
<h2 className="prizma-viewfinder__title">{strings.capture.title}</h2>
|
|
103
|
+
{strings.capture.subtitle ? (
|
|
104
|
+
<p className="prizma-viewfinder__instruction">{strings.capture.subtitle}</p>
|
|
105
|
+
) : null}
|
|
106
|
+
</div>
|
|
107
|
+
<PrizmaIdCapture
|
|
108
|
+
type="poa"
|
|
109
|
+
state={state}
|
|
110
|
+
isVertical
|
|
111
|
+
mode="overlay"
|
|
112
|
+
scrim
|
|
113
|
+
showEncryptedLabel={Boolean(strings.encryptedLabel)}
|
|
114
|
+
encryptedLabel={strings.encryptedLabel}
|
|
115
|
+
/>
|
|
116
|
+
</div>
|
|
117
|
+
<div className="prizma-screen-layout__capture-strip">
|
|
118
|
+
<PrizmaCaptureManual
|
|
119
|
+
variant="id-capture"
|
|
120
|
+
showTooltip={false}
|
|
121
|
+
ariaLabel={strings.capture.captureLabel}
|
|
122
|
+
helpLabel={strings.capture.helpLabel}
|
|
123
|
+
onCapture={() => onAction?.({ type: 'cta', screenId })}
|
|
124
|
+
onHelp={() => onAction?.({ type: 'help', screenId })}
|
|
125
|
+
/>
|
|
126
|
+
</div>
|
|
127
|
+
<div className="prizma-screen-layout__footer">
|
|
128
|
+
<PrizmaTag label={strings.verifiedLabel} />
|
|
129
|
+
</div>
|
|
130
|
+
</PrizmaScreenShell>
|
|
131
|
+
),
|
|
132
|
+
);
|
|
133
|
+
DocumentCaptureCaptureScreen.displayName = 'DocumentCaptureCaptureScreen';
|
|
134
|
+
|
|
135
|
+
export default DocumentCaptureCaptureScreen;
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import React, { forwardRef } from 'react';
|
|
2
|
+
import {
|
|
3
|
+
IconCamera,
|
|
4
|
+
IconFile,
|
|
5
|
+
IconHide,
|
|
6
|
+
IconIdTooFar,
|
|
7
|
+
} from '@incodetech/prizma-core-icons';
|
|
8
|
+
import { PrizmaCardListCommonIssues } from '@incodetech/prizma-core-web/card-list';
|
|
9
|
+
import { PrizmaListScreen, type PrizmaListScreenProps } from './ListScreen';
|
|
10
|
+
import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
|
|
11
|
+
import type { DocumentCaptureStrings } from './DocumentCaptureStrings';
|
|
12
|
+
import './ScreenLayout.css';
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* The four `commonIssues` rows, in Figma order. Figma leads each row with an
|
|
16
|
+
* ICONLY PRO glyph (`Focus frame` · `Straighten` · `Moon` · `Camera close`);
|
|
17
|
+
* only the first has a counterpart in the Prizma bank, so the other three are
|
|
18
|
+
* the nearest canonical glyphs — GUIDELINES §10 ("icons: prizma-core-icons
|
|
19
|
+
* only") wins over the module Figma. DEVIATIONS.md #DC-23.
|
|
20
|
+
*/
|
|
21
|
+
const ISSUE_ICONS = [
|
|
22
|
+
<IconIdTooFar key="frame" size="m" />, // out of frame ← Figma "Focus frame"
|
|
23
|
+
<IconFile key="folded" size="m" />, // folded page ← Figma "Straighten"
|
|
24
|
+
<IconHide key="shadow" size="m" />, // shadows ← Figma "Moon"
|
|
25
|
+
<IconCamera key="lens" size="m" />, // dirty lens ← Figma "Camera close"
|
|
26
|
+
] as const;
|
|
27
|
+
|
|
28
|
+
export interface DocumentCaptureCommonIssuesScreenProps
|
|
29
|
+
extends Omit<
|
|
30
|
+
PrizmaListScreenProps,
|
|
31
|
+
'title' | 'children' | 'ctaLabel' | 'verifiedLabel' | 'navLabel'
|
|
32
|
+
> {
|
|
33
|
+
/** Module copy — this screen reads the `commonIssues` slice. */
|
|
34
|
+
strings: DocumentCaptureStrings;
|
|
35
|
+
screenId?: string;
|
|
36
|
+
overrides?: PrizmaScreenOverrides;
|
|
37
|
+
onAction?: PrizmaScreenActionHandler;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Document Capture — common issues help sheet (purple section
|
|
42
|
+
* `documentCapture.commonIssues.default`), built on the `PrizmaListScreen`
|
|
43
|
+
* archetype (GUIDELINES.md §6-G).
|
|
44
|
+
*
|
|
45
|
+
* Like the module's `errors.noConnection`, this section carries no logo
|
|
46
|
+
* (DEVIATIONS.md #DC-22), so `showHeader={false}` drops the wordmark while the
|
|
47
|
+
* nav row stays reserved and the tag keeps its one fixed position.
|
|
48
|
+
*
|
|
49
|
+
* The list itself is Core's `PrizmaCardListCommonIssues`, whose Figma master IS
|
|
50
|
+
* this `list-unordered`: rows at Spacing/32, a 24px leading icon at Spacing/16,
|
|
51
|
+
* H5 title + Spacing/4 + Body/M description. Verified identical against the
|
|
52
|
+
* section's measured rows (icon 24 @ x0, text @ x40, title 19 / body @ +23,
|
|
53
|
+
* row pitch 32) — nothing re-implemented.
|
|
54
|
+
*
|
|
55
|
+
* Figma draws Spacing/32 between the Title and the list here while the three ID
|
|
56
|
+
* Capture list screens draw 24; the archetype ships ONE value, 24 (#F-31).
|
|
57
|
+
*/
|
|
58
|
+
export const DocumentCaptureCommonIssuesScreen = forwardRef<
|
|
59
|
+
HTMLDivElement,
|
|
60
|
+
DocumentCaptureCommonIssuesScreenProps
|
|
61
|
+
>(
|
|
62
|
+
(
|
|
63
|
+
{
|
|
64
|
+
strings,
|
|
65
|
+
screenId = 'document-capture-common-issues',
|
|
66
|
+
showHeader = false,
|
|
67
|
+
overrides,
|
|
68
|
+
onAction,
|
|
69
|
+
...shell
|
|
70
|
+
},
|
|
71
|
+
ref,
|
|
72
|
+
) => (
|
|
73
|
+
<PrizmaListScreen
|
|
74
|
+
ref={ref}
|
|
75
|
+
showHeader={showHeader}
|
|
76
|
+
title={strings.commonIssues.title}
|
|
77
|
+
ctaLabel={strings.commonIssues.ctaLabel}
|
|
78
|
+
verifiedLabel={strings.verifiedLabel}
|
|
79
|
+
navLabel={strings.navLabel}
|
|
80
|
+
screenId={screenId}
|
|
81
|
+
overrides={overrides}
|
|
82
|
+
onAction={onAction}
|
|
83
|
+
{...shell}
|
|
84
|
+
>
|
|
85
|
+
<PrizmaCardListCommonIssues
|
|
86
|
+
items={strings.commonIssues.issues.map((issue, i) => ({
|
|
87
|
+
icon: ISSUE_ICONS[i % ISSUE_ICONS.length],
|
|
88
|
+
title: issue.title,
|
|
89
|
+
subtitle: issue.description,
|
|
90
|
+
}))}
|
|
91
|
+
/>
|
|
92
|
+
</PrizmaListScreen>
|
|
93
|
+
),
|
|
94
|
+
);
|
|
95
|
+
DocumentCaptureCommonIssuesScreen.displayName = 'DocumentCaptureCommonIssuesScreen';
|
|
96
|
+
|
|
97
|
+
export default DocumentCaptureCommonIssuesScreen;
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import React, { forwardRef, type ReactNode } from 'react';
|
|
2
|
+
import { PrizmaIdCapture } from '@incodetech/prizma-core-web/id-capture';
|
|
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
|
+
/** Stage → Core `PrizmaIdCapture` state: the review keeps the enabled frame,
|
|
13
|
+
* analyzing runs the component's own sweep, success turns the border positive. */
|
|
14
|
+
const CAPTURE_STATE = {
|
|
15
|
+
review: 'filled',
|
|
16
|
+
analyzing: 'analyzing',
|
|
17
|
+
success: 'success',
|
|
18
|
+
} as const;
|
|
19
|
+
|
|
20
|
+
export interface DocumentCaptureConfirmImageScreenProps
|
|
21
|
+
extends Omit<
|
|
22
|
+
PrizmaReviewScreenProps,
|
|
23
|
+
| 'title'
|
|
24
|
+
| 'subtitle'
|
|
25
|
+
| 'successTitle'
|
|
26
|
+
| 'analyzingLabel'
|
|
27
|
+
| 'analyzingState'
|
|
28
|
+
| 'primaryLabel'
|
|
29
|
+
| 'secondaryLabel'
|
|
30
|
+
| 'verifiedLabel'
|
|
31
|
+
| 'children'
|
|
32
|
+
| 'stageClassName'
|
|
33
|
+
| 'stage'
|
|
34
|
+
> {
|
|
35
|
+
/** Module copy — this screen reads the `confirmImage` slice. */
|
|
36
|
+
strings: DocumentCaptureStrings;
|
|
37
|
+
/** Which purple `documentCapture.confirmImage.*` section to render. */
|
|
38
|
+
stage?: DocumentCaptureConfirmStage;
|
|
39
|
+
/** The captured document still (an <img>). */
|
|
40
|
+
still?: ReactNode;
|
|
41
|
+
/** Loading-bar progress on `analyzing`, 0–100. Figma draws it part-filled. */
|
|
42
|
+
progress?: number;
|
|
43
|
+
screenId?: string;
|
|
44
|
+
overrides?: PrizmaScreenOverrides;
|
|
45
|
+
onAction?: PrizmaScreenActionHandler;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Document Capture — captured-photo confirmation, built on the Review archetype
|
|
50
|
+
* (GUIDELINES.md §6-H, `PrizmaReviewScreen`).
|
|
51
|
+
*
|
|
52
|
+
* Figma: purple sections `documentCapture.confirmImage.reviewPhoto` /
|
|
53
|
+
* `.analyzing` / `.success` — header, stage-verdict and CTA variants of this
|
|
54
|
+
* ONE screen. The stage is the SAME `PrizmaIdCapture type="poa"` instance the
|
|
55
|
+
* camera screen uses, now holding the captured `still` — success reuses the
|
|
56
|
+
* frame geometry with the positive color, never a new layout (GUIDELINES §7),
|
|
57
|
+
* satisfied by Core's own state axis.
|
|
58
|
+
*
|
|
59
|
+
* The archetype owns every offset (no nav, header → Spacing/32 → flexing media
|
|
60
|
+
* stage → Spacing/24 → CTA row → tag; `analyzing` swaps the Title for the
|
|
61
|
+
* loading bar and drops the CTA). This file used to hand-build that skeleton in
|
|
62
|
+
* `DocumentCaptureLayout.css` (DEVIATIONS #DC-22/24, now #REV-1) — all that
|
|
63
|
+
* stays module-side is the light-surface encrypted re-tint (#DC-25).
|
|
64
|
+
*/
|
|
65
|
+
export const DocumentCaptureConfirmImageScreen = forwardRef<
|
|
66
|
+
HTMLDivElement,
|
|
67
|
+
DocumentCaptureConfirmImageScreenProps
|
|
68
|
+
>(
|
|
69
|
+
(
|
|
70
|
+
{
|
|
71
|
+
strings,
|
|
72
|
+
stage = 'review',
|
|
73
|
+
still,
|
|
74
|
+
progress = 62,
|
|
75
|
+
screenId = `document-capture-confirm-image-${stage}`,
|
|
76
|
+
overrides,
|
|
77
|
+
onAction,
|
|
78
|
+
...shell
|
|
79
|
+
},
|
|
80
|
+
ref,
|
|
81
|
+
) => (
|
|
82
|
+
<PrizmaReviewScreen
|
|
83
|
+
ref={ref}
|
|
84
|
+
stage={stage}
|
|
85
|
+
title={strings.confirmImage.title}
|
|
86
|
+
subtitle={strings.confirmImage.subtitle}
|
|
87
|
+
successTitle={strings.confirmImage.successTitle}
|
|
88
|
+
analyzingLabel={strings.confirmImage.analyzingLabel}
|
|
89
|
+
analyzingState="analyzing"
|
|
90
|
+
progress={progress}
|
|
91
|
+
stageClassName="document-capture-review-image"
|
|
92
|
+
primaryLabel={strings.confirmImage.ctaLabel}
|
|
93
|
+
secondaryLabel={strings.confirmImage.replaceLabel}
|
|
94
|
+
verifiedLabel={strings.verifiedLabel}
|
|
95
|
+
screenId={screenId}
|
|
96
|
+
overrides={overrides}
|
|
97
|
+
onAction={onAction}
|
|
98
|
+
{...shell}
|
|
99
|
+
>
|
|
100
|
+
<PrizmaIdCapture
|
|
101
|
+
type="poa"
|
|
102
|
+
state={CAPTURE_STATE[stage]}
|
|
103
|
+
still={still}
|
|
104
|
+
showEncryptedLabel={Boolean(strings.encryptedLabel)}
|
|
105
|
+
encryptedLabel={strings.encryptedLabel}
|
|
106
|
+
/>
|
|
107
|
+
</PrizmaReviewScreen>
|
|
108
|
+
),
|
|
109
|
+
);
|
|
110
|
+
DocumentCaptureConfirmImageScreen.displayName = 'DocumentCaptureConfirmImageScreen';
|
|
111
|
+
|
|
112
|
+
export default DocumentCaptureConfirmImageScreen;
|