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