@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,37 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type PrizmaResultScreenProps } from './ResultScreen';
|
|
3
|
+
import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
|
|
4
|
+
import type { IdCaptureStrings } from './IdCaptureStrings';
|
|
5
|
+
import './ScreenLayout.css';
|
|
6
|
+
export interface IdCaptureDocumentErrorScreenProps extends Omit<PrizmaResultScreenProps, 'status' | 'title' | 'subtitle' | 'children' | 'disclaimer' | 'ctaLabel' | 'verifiedLabel' | 'navLabel'> {
|
|
7
|
+
/** Module copy — this screen reads the `documentError` slice. */
|
|
8
|
+
strings: IdCaptureStrings;
|
|
9
|
+
/** The `-empty` variant: no accepted-documents list is available yet. */
|
|
10
|
+
empty?: boolean;
|
|
11
|
+
screenId?: string;
|
|
12
|
+
overrides?: PrizmaScreenOverrides;
|
|
13
|
+
onAction?: PrizmaScreenActionHandler;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* ID Capture — the document itself is not accepted, built on the
|
|
17
|
+
* `PrizmaResultScreen` archetype (GUIDELINES.md §6-F).
|
|
18
|
+
* Figma: purple sections `1-9-12-id-documenterror`, `1-9-13-id-documenterror`
|
|
19
|
+
* and `1-9-11-id-documenterror-empty` of the `Document Errors 🚧` group.
|
|
20
|
+
* (`1-9-11-id-documenterror` is an EMPTY purple section — nothing is designed in
|
|
21
|
+
* it yet, so there is nothing to build; the group's 🚧 marker is honest.)
|
|
22
|
+
*
|
|
23
|
+
* Error status mark → Title → the accepted-documents card (the archetype's
|
|
24
|
+
* `children` slot) → attempts line (`disclaimer`) → retry CTA. The card block
|
|
25
|
+
* used to carry its own Spacing/24 in `IdCaptureLayout.css`; the archetype's
|
|
26
|
+
* centred column now supplies the gap, so the module declares no spacing at all
|
|
27
|
+
* (#F-33 records that the block therefore centres rather than sitting at the top).
|
|
28
|
+
*
|
|
29
|
+
* The card is Core's `PrizmaCardDocumentList`, which owns the country row (its
|
|
30
|
+
* bundled flag raster or an emoji fallback) and the document rows, and ships the
|
|
31
|
+
* `empty` placeholder the `-empty` section needs. Figma puts the
|
|
32
|
+
* "Accepted documents for: 🇺🇸 United States" line ABOVE the card while Core
|
|
33
|
+
* carries the country INSIDE it as the card's own header — the design system
|
|
34
|
+
* wins and the line is not duplicated outside. DEVIATIONS.md #IDC-27.
|
|
35
|
+
*/
|
|
36
|
+
export declare const IdCaptureDocumentErrorScreen: React.ForwardRefExoticComponent<IdCaptureDocumentErrorScreenProps & React.RefAttributes<HTMLDivElement>>;
|
|
37
|
+
export default IdCaptureDocumentErrorScreen;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef } from 'react';
|
|
4
|
+
import { PrizmaCardDocumentList } from '@incodetech/prizma-core-web/card';
|
|
5
|
+
import { PrizmaResultScreen } from './ResultScreen';
|
|
6
|
+
import './ScreenLayout.css';
|
|
7
|
+
/**
|
|
8
|
+
* ID Capture — the document itself is not accepted, built on the
|
|
9
|
+
* `PrizmaResultScreen` archetype (GUIDELINES.md §6-F).
|
|
10
|
+
* Figma: purple sections `1-9-12-id-documenterror`, `1-9-13-id-documenterror`
|
|
11
|
+
* and `1-9-11-id-documenterror-empty` of the `Document Errors 🚧` group.
|
|
12
|
+
* (`1-9-11-id-documenterror` is an EMPTY purple section — nothing is designed in
|
|
13
|
+
* it yet, so there is nothing to build; the group's 🚧 marker is honest.)
|
|
14
|
+
*
|
|
15
|
+
* Error status mark → Title → the accepted-documents card (the archetype's
|
|
16
|
+
* `children` slot) → attempts line (`disclaimer`) → retry CTA. The card block
|
|
17
|
+
* used to carry its own Spacing/24 in `IdCaptureLayout.css`; the archetype's
|
|
18
|
+
* centred column now supplies the gap, so the module declares no spacing at all
|
|
19
|
+
* (#F-33 records that the block therefore centres rather than sitting at the top).
|
|
20
|
+
*
|
|
21
|
+
* The card is Core's `PrizmaCardDocumentList`, which owns the country row (its
|
|
22
|
+
* bundled flag raster or an emoji fallback) and the document rows, and ships the
|
|
23
|
+
* `empty` placeholder the `-empty` section needs. Figma puts the
|
|
24
|
+
* "Accepted documents for: 🇺🇸 United States" line ABOVE the card while Core
|
|
25
|
+
* carries the country INSIDE it as the card's own header — the design system
|
|
26
|
+
* wins and the line is not duplicated outside. DEVIATIONS.md #IDC-27.
|
|
27
|
+
*/
|
|
28
|
+
export const IdCaptureDocumentErrorScreen = forwardRef(({ strings, empty = false, screenId = empty ? 'id-capture-document-error-empty' : 'id-capture-document-error', overrides, onAction, ...shell }, ref) => (_jsx(PrizmaResultScreen, { ref: ref, status: "error", title: strings.documentError.title, subtitle: strings.documentError.description, disclaimer: strings.documentError.attemptsLabel, ctaLabel: strings.documentError.ctaLabel, verifiedLabel: strings.verifiedLabel, navLabel: strings.navLabel, screenId: screenId, overrides: overrides, onAction: onAction, ...shell, children: _jsx(PrizmaCardDocumentList, { state: empty ? 'empty' : 'default', countryCode: strings.documentError.countryCode, flag: strings.documentError.flag, country: strings.documentError.country, documents: strings.documentError.documents, emptyMessage: strings.documentError.emptyMessage }) })));
|
|
29
|
+
IdCaptureDocumentErrorScreen.displayName = 'IdCaptureDocumentErrorScreen';
|
|
30
|
+
export default IdCaptureDocumentErrorScreen;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type PrizmaListScreenProps } from './ListScreen';
|
|
3
|
+
import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
|
|
4
|
+
import type { IdCaptureDocumentType, IdCaptureStrings } from './IdCaptureStrings';
|
|
5
|
+
import './ScreenLayout.css';
|
|
6
|
+
export interface IdCaptureDocumentSelectionScreenProps extends Omit<PrizmaListScreenProps, 'title' | 'subtitle' | 'children' | 'listAlign' | 'verifiedLabel' | 'navLabel'> {
|
|
7
|
+
/** Module copy — this screen reads the `documentSelection` slice. */
|
|
8
|
+
strings: IdCaptureStrings;
|
|
9
|
+
/** Fired with the chosen document type; `onAction` still reports the tap.
|
|
10
|
+
* Named `onDocumentSelect`, not `onSelect` — the latter is a native <div>
|
|
11
|
+
* event the shell already passes through. */
|
|
12
|
+
onDocumentSelect?: (documentType: IdCaptureDocumentType) => void;
|
|
13
|
+
screenId?: string;
|
|
14
|
+
overrides?: PrizmaScreenOverrides;
|
|
15
|
+
onAction?: PrizmaScreenActionHandler;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* ID Capture — choose which document to scan, built on the `PrizmaListScreen`
|
|
19
|
+
* archetype (GUIDELINES.md §6-G).
|
|
20
|
+
* Figma: purple sections `1-1-1-id` and `1-1-1-Document Chooser V2` of the
|
|
21
|
+
* `Document selection` group.
|
|
22
|
+
*
|
|
23
|
+
* The rows ARE the actions (Core makes each one a real `<button>`), so the
|
|
24
|
+
* archetype renders no CTA band; the option list hangs off the bottom of the
|
|
25
|
+
* middle via `listAlign="end"`, which is the offset this screen used to buy with
|
|
26
|
+
* a hand-placed `__flex` spacer.
|
|
27
|
+
*
|
|
28
|
+
* The two purple sections are two GENERATIONS of the same screen, and Core has
|
|
29
|
+
* already resolved which one ships: `1-1-1-id` draws each option as a card with
|
|
30
|
+
* a description line and a round blue arrow button, while
|
|
31
|
+
* `1-1-1-Document Chooser V2` draws flat rows of a 60px card icon + label +
|
|
32
|
+
* chevron — and the second is exactly Core's `Card / Verification options`
|
|
33
|
+
* after its 2026-07-27 redesign (`CardList.tsx`: the descriptive
|
|
34
|
+
* `Card/Item` stack was replaced, clean break, pre-1.0). The design system wins,
|
|
35
|
+
* so this screen is V2 and V1 is not rebuilt. DEVIATIONS.md #IDC-23.
|
|
36
|
+
*
|
|
37
|
+
* The row artwork comes from Core's card-icon bank (`id` / `passport`), so no
|
|
38
|
+
* illustration is redrawn here (§10).
|
|
39
|
+
*/
|
|
40
|
+
export declare const IdCaptureDocumentSelectionScreen: React.ForwardRefExoticComponent<IdCaptureDocumentSelectionScreenProps & React.RefAttributes<HTMLDivElement>>;
|
|
41
|
+
export default IdCaptureDocumentSelectionScreen;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef } from 'react';
|
|
4
|
+
import { PrizmaCardListVerificationOptions } from '@incodetech/prizma-core-web/card-list';
|
|
5
|
+
import { PrizmaListScreen } from './ListScreen';
|
|
6
|
+
import './ScreenLayout.css';
|
|
7
|
+
/**
|
|
8
|
+
* ID Capture — choose which document to scan, built on the `PrizmaListScreen`
|
|
9
|
+
* archetype (GUIDELINES.md §6-G).
|
|
10
|
+
* Figma: purple sections `1-1-1-id` and `1-1-1-Document Chooser V2` of the
|
|
11
|
+
* `Document selection` group.
|
|
12
|
+
*
|
|
13
|
+
* The rows ARE the actions (Core makes each one a real `<button>`), so the
|
|
14
|
+
* archetype renders no CTA band; the option list hangs off the bottom of the
|
|
15
|
+
* middle via `listAlign="end"`, which is the offset this screen used to buy with
|
|
16
|
+
* a hand-placed `__flex` spacer.
|
|
17
|
+
*
|
|
18
|
+
* The two purple sections are two GENERATIONS of the same screen, and Core has
|
|
19
|
+
* already resolved which one ships: `1-1-1-id` draws each option as a card with
|
|
20
|
+
* a description line and a round blue arrow button, while
|
|
21
|
+
* `1-1-1-Document Chooser V2` draws flat rows of a 60px card icon + label +
|
|
22
|
+
* chevron — and the second is exactly Core's `Card / Verification options`
|
|
23
|
+
* after its 2026-07-27 redesign (`CardList.tsx`: the descriptive
|
|
24
|
+
* `Card/Item` stack was replaced, clean break, pre-1.0). The design system wins,
|
|
25
|
+
* so this screen is V2 and V1 is not rebuilt. DEVIATIONS.md #IDC-23.
|
|
26
|
+
*
|
|
27
|
+
* The row artwork comes from Core's card-icon bank (`id` / `passport`), so no
|
|
28
|
+
* illustration is redrawn here (§10).
|
|
29
|
+
*/
|
|
30
|
+
export const IdCaptureDocumentSelectionScreen = forwardRef(({ strings, onDocumentSelect, screenId = 'id-capture-document-selection', overrides, onAction, ...shell }, ref) => {
|
|
31
|
+
const choose = (documentType) => {
|
|
32
|
+
onDocumentSelect?.(documentType);
|
|
33
|
+
onAction?.({ type: 'cta', screenId });
|
|
34
|
+
};
|
|
35
|
+
return (_jsx(PrizmaListScreen, { ref: ref, title: strings.documentSelection.title, subtitle: strings.documentSelection.subtitle, listAlign: "end", verifiedLabel: strings.verifiedLabel, navLabel: strings.navLabel, screenId: screenId, overrides: overrides, onAction: onAction, ...shell, children: _jsx(PrizmaCardListVerificationOptions, { items: [
|
|
36
|
+
{
|
|
37
|
+
icon: 'id',
|
|
38
|
+
title: strings.documentSelection.idLabel,
|
|
39
|
+
onClick: () => choose('id'),
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
icon: 'passport',
|
|
43
|
+
title: strings.documentSelection.passportLabel,
|
|
44
|
+
onClick: () => choose('passport'),
|
|
45
|
+
},
|
|
46
|
+
] }) }));
|
|
47
|
+
});
|
|
48
|
+
IdCaptureDocumentSelectionScreen.displayName = 'IdCaptureDocumentSelectionScreen';
|
|
49
|
+
export default IdCaptureDocumentSelectionScreen;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type PrizmaResultScreenProps } from './ResultScreen';
|
|
3
|
+
import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
|
|
4
|
+
import type { IdCaptureStrings } from './IdCaptureStrings';
|
|
5
|
+
import './ScreenLayout.css';
|
|
6
|
+
export interface IdCaptureFlipScreenProps extends Omit<PrizmaResultScreenProps, 'status' | 'title' | 'subtitle' | 'children' | 'verifiedLabel' | 'navLabel'> {
|
|
7
|
+
/** Module copy — this screen reads the `flip` slice. */
|
|
8
|
+
strings: IdCaptureStrings;
|
|
9
|
+
screenId?: string;
|
|
10
|
+
overrides?: PrizmaScreenOverrides;
|
|
11
|
+
onAction?: PrizmaScreenActionHandler;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* ID Capture — the flip interstitial between the two sides, built on the
|
|
15
|
+
* `PrizmaResultScreen` archetype (GUIDELINES.md §6-F).
|
|
16
|
+
* Figma: purple section `1-11-1-id-flip` of the `Flip ID` group.
|
|
17
|
+
*
|
|
18
|
+
* The module's shortest screen: the CONTENT frame holds only the H2 and the
|
|
19
|
+
* spinning-card artwork — no logo, and no CTA (the flow advances itself). The
|
|
20
|
+
* archetype covers it exactly: `status="none"` for the bare title, the artwork in
|
|
21
|
+
* `children`, no `ctaLabel` so no band is rendered, and `showHeader={false}` to
|
|
22
|
+
* drop the logo while still reserving the nav row so the offsets match every
|
|
23
|
+
* other screen (owner rule 2026-08-18).
|
|
24
|
+
*
|
|
25
|
+
* The artwork is Core's `PrizmaIllustrationIdFlip` in its `interstitial`
|
|
26
|
+
* variant — the card spinning inside the static circular arrows, which is
|
|
27
|
+
* exactly what this moment was designed for (see the component's own
|
|
28
|
+
* `interstitial` doc note, owner 2026-07-17). Never redrawn here (§7, §10).
|
|
29
|
+
*/
|
|
30
|
+
export declare const IdCaptureFlipScreen: React.ForwardRefExoticComponent<IdCaptureFlipScreenProps & React.RefAttributes<HTMLDivElement>>;
|
|
31
|
+
export default IdCaptureFlipScreen;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef } from 'react';
|
|
4
|
+
import { PrizmaIllustrationIdFlip } from '@incodetech/prizma-core-web/illustration-id-flip';
|
|
5
|
+
import { PrizmaResultScreen } from './ResultScreen';
|
|
6
|
+
import './ScreenLayout.css';
|
|
7
|
+
/**
|
|
8
|
+
* ID Capture — the flip interstitial between the two sides, built on the
|
|
9
|
+
* `PrizmaResultScreen` archetype (GUIDELINES.md §6-F).
|
|
10
|
+
* Figma: purple section `1-11-1-id-flip` of the `Flip ID` group.
|
|
11
|
+
*
|
|
12
|
+
* The module's shortest screen: the CONTENT frame holds only the H2 and the
|
|
13
|
+
* spinning-card artwork — no logo, and no CTA (the flow advances itself). The
|
|
14
|
+
* archetype covers it exactly: `status="none"` for the bare title, the artwork in
|
|
15
|
+
* `children`, no `ctaLabel` so no band is rendered, and `showHeader={false}` to
|
|
16
|
+
* drop the logo while still reserving the nav row so the offsets match every
|
|
17
|
+
* other screen (owner rule 2026-08-18).
|
|
18
|
+
*
|
|
19
|
+
* The artwork is Core's `PrizmaIllustrationIdFlip` in its `interstitial`
|
|
20
|
+
* variant — the card spinning inside the static circular arrows, which is
|
|
21
|
+
* exactly what this moment was designed for (see the component's own
|
|
22
|
+
* `interstitial` doc note, owner 2026-07-17). Never redrawn here (§7, §10).
|
|
23
|
+
*/
|
|
24
|
+
export const IdCaptureFlipScreen = forwardRef(({ strings, screenId = 'id-capture-flip', showHeader = false, overrides, onAction, ...shell }, ref) => (_jsx(PrizmaResultScreen, { ref: ref, showHeader: showHeader, title: strings.flip.title, verifiedLabel: strings.verifiedLabel, navLabel: strings.navLabel, screenId: screenId, overrides: overrides, onAction: onAction, ...shell, children: _jsx(PrizmaIllustrationIdFlip, { variant: "interstitial" }) })));
|
|
25
|
+
IdCaptureFlipScreen.displayName = 'IdCaptureFlipScreen';
|
|
26
|
+
export default IdCaptureFlipScreen;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type PrizmaResultScreenProps } from './ResultScreen';
|
|
3
|
+
import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
|
|
4
|
+
import type { IdCaptureStrings } from './IdCaptureStrings';
|
|
5
|
+
import './ScreenLayout.css';
|
|
6
|
+
export interface IdCaptureHoldOnScreenProps extends Omit<PrizmaResultScreenProps, 'status' | 'title' | 'subtitle' | 'verifiedLabel' | 'navLabel'> {
|
|
7
|
+
/** Module copy — this screen reads the `holdOn` slice. */
|
|
8
|
+
strings: IdCaptureStrings;
|
|
9
|
+
screenId?: string;
|
|
10
|
+
overrides?: PrizmaScreenOverrides;
|
|
11
|
+
onAction?: PrizmaScreenActionHandler;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* ID Capture — server-side verification wait ("Hold on a sec…").
|
|
15
|
+
* Figma: purple sections `1-18-1-id-hold-on` and `1-4.1-1-id-hold-on`.
|
|
16
|
+
*
|
|
17
|
+
* The one screen in the module that is a pure Processing state (§6-C): the
|
|
18
|
+
* spinner + status copy centred in all remaining space, no capture frame, no
|
|
19
|
+
* CTA. Built on `PrizmaResultScreen` with `status="loading"` and no CTA label —
|
|
20
|
+
* the archetype renders no band at all in that case, so this is §6-C's layout
|
|
21
|
+
* reached through the same template as the module's other verdict screens
|
|
22
|
+
* instead of a hand-composed shell.
|
|
23
|
+
*
|
|
24
|
+
* The spinner is `PrizmaTitle`'s own `spinner` icon slot — the canonical
|
|
25
|
+
* `PrizmaLoadingSpinner` inside the component, never a new one (§3, §7).
|
|
26
|
+
*/
|
|
27
|
+
export declare const IdCaptureHoldOnScreen: React.ForwardRefExoticComponent<IdCaptureHoldOnScreenProps & React.RefAttributes<HTMLDivElement>>;
|
|
28
|
+
export default IdCaptureHoldOnScreen;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef } from 'react';
|
|
4
|
+
import { PrizmaResultScreen } from './ResultScreen';
|
|
5
|
+
import './ScreenLayout.css';
|
|
6
|
+
/**
|
|
7
|
+
* ID Capture — server-side verification wait ("Hold on a sec…").
|
|
8
|
+
* Figma: purple sections `1-18-1-id-hold-on` and `1-4.1-1-id-hold-on`.
|
|
9
|
+
*
|
|
10
|
+
* The one screen in the module that is a pure Processing state (§6-C): the
|
|
11
|
+
* spinner + status copy centred in all remaining space, no capture frame, no
|
|
12
|
+
* CTA. Built on `PrizmaResultScreen` with `status="loading"` and no CTA label —
|
|
13
|
+
* the archetype renders no band at all in that case, so this is §6-C's layout
|
|
14
|
+
* reached through the same template as the module's other verdict screens
|
|
15
|
+
* instead of a hand-composed shell.
|
|
16
|
+
*
|
|
17
|
+
* The spinner is `PrizmaTitle`'s own `spinner` icon slot — the canonical
|
|
18
|
+
* `PrizmaLoadingSpinner` inside the component, never a new one (§3, §7).
|
|
19
|
+
*/
|
|
20
|
+
export const IdCaptureHoldOnScreen = forwardRef(({ strings, screenId = 'id-capture-hold-on', overrides, onAction, ...shell }, ref) => (_jsx(PrizmaResultScreen, { ref: ref, status: "loading", title: strings.holdOn.title, subtitle: strings.holdOn.description, verifiedLabel: strings.verifiedLabel, navLabel: strings.navLabel, screenId: screenId, overrides: overrides, onAction: onAction, ...shell })));
|
|
21
|
+
IdCaptureHoldOnScreen.displayName = 'IdCaptureHoldOnScreen';
|
|
22
|
+
export default IdCaptureHoldOnScreen;
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/* ID Capture — module layout additions.
|
|
2
|
+
*
|
|
3
|
+
* ONLY what the foundation archetypes do not already own. Every value is a
|
|
4
|
+
* token; each departure from GUIDELINES.md carries a numbered row in
|
|
5
|
+
* DEVIATIONS.md (Wave 2 section).
|
|
6
|
+
*
|
|
7
|
+
* The module's one structural discovery is the THREE-BAND recipe every
|
|
8
|
+
* document screen shares — measured off the purple sections, not eyeballed:
|
|
9
|
+
*
|
|
10
|
+
* 1-5-1-id-empty (CONTENT 390×610, node 16285:42627)
|
|
11
|
+
* top container 24 → 181.014 342 × 157.014 Title bottom-anchored,
|
|
12
|
+
* 40px of air below it
|
|
13
|
+
* Capture / ID 181.014 → 428.986 342 × 247.97 (214.97 frame + 33 row)
|
|
14
|
+
* bottom container 428.986 → 586 342 × 157.014 Manual capture flush
|
|
15
|
+
* to its own bottom
|
|
16
|
+
* → 24 + 157.014 + 247.97 + 157.014 + 24 = 610 ✓
|
|
17
|
+
*
|
|
18
|
+
* 1-9-3-id-attempt (CONTENT 390×654, node I19281:325100;16285:42538)
|
|
19
|
+
* top container 24 → 203.014 342 × 179.014 title + 40px air below
|
|
20
|
+
* Capture / ID 203.014 → 417.986 342 × 214.97
|
|
21
|
+
* Encrypted 417.986 → 450.986 154 × 33 (zero gap — Core renders
|
|
22
|
+
* this row INSIDE
|
|
23
|
+
* PrizmaIdCapture, same
|
|
24
|
+
* result)
|
|
25
|
+
* bottom container 450.986 → 630 342 × 179.014 CTAs flush to bottom
|
|
26
|
+
* → 24 + 179.014 + 214.97 + 33 + 179.014 + 24 = 654 ✓
|
|
27
|
+
*
|
|
28
|
+
* Two equal flexible bands hugging a fixed capture stage, the top band holding
|
|
29
|
+
* its content at the bottom with Spacing/40 of air under it. Identical on the
|
|
30
|
+
* dark camera stages and the light result screens, which is why one pair of
|
|
31
|
+
* classes serves both.
|
|
32
|
+
*/
|
|
33
|
+
|
|
34
|
+
/* ── The two flexible bands around the capture stage ───────────────────────── */
|
|
35
|
+
|
|
36
|
+
.id-capture-band {
|
|
37
|
+
flex: 1;
|
|
38
|
+
min-height: 0;
|
|
39
|
+
display: flex;
|
|
40
|
+
flex-direction: column;
|
|
41
|
+
justify-content: flex-end;
|
|
42
|
+
/* On the camera stages PrizmaIdCapture's overlay scrim is an absolutely
|
|
43
|
+
* positioned box-shadow that escapes the frame by design; without a stacking
|
|
44
|
+
* context of their own the bands' plain text nodes would paint UNDER it (a
|
|
45
|
+
* positioned sibling always wins over non-positioned content). Lifting the
|
|
46
|
+
* bands keeps the HUD copy and the manual strip above the veil — the same
|
|
47
|
+
* reason ScreenShell declares `contain: layout paint` for the scrim. */
|
|
48
|
+
position: relative;
|
|
49
|
+
z-index: 1;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/* Spacing/40 of air between the title block (or the feedback pill) and the
|
|
53
|
+
* capture stage. NOT the foundation's `.prizma-viewfinder__intro`, which pins
|
|
54
|
+
* its title Spacing/24 above the window — that is Face Capture's number; the
|
|
55
|
+
* ID Capture purple sections measure 40 on every single stage and result
|
|
56
|
+
* screen (see the arithmetic above). DEVIATIONS.md #IDC-20. */
|
|
57
|
+
.id-capture-band--top {
|
|
58
|
+
padding-bottom: var(--prizma-spacing-40);
|
|
59
|
+
gap: var(--prizma-spacing-8); /* Title → instruction, GUIDELINES §5 */
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/* ── Camera stage (dark) ───────────────────────────────────────────────────── */
|
|
63
|
+
|
|
64
|
+
/* The stage's nav row carries only the close X (no logo — the camera owns the
|
|
65
|
+
* screen). The foundation `.prizma-screen-nav` supplies the status-bar reserve,
|
|
66
|
+
* the 44px flow slot and the un-fixing of Core's PrizmaNavigation; the ink is
|
|
67
|
+
* the only thing the camera stage changes: Core's nav icon is the THEMED
|
|
68
|
+
* `Icon/Neutral/500`, which disappears on the always-dark camera surface, so it
|
|
69
|
+
* takes the camera's own Static ink — the same token PrizmaCaptureManual uses
|
|
70
|
+
* for the shutter and the "?" help control. DEVIATIONS.md #IDC-21. */
|
|
71
|
+
.id-capture-stage__nav .prizma-nav__icon {
|
|
72
|
+
color: var(--prizma-icon-neutral-50-static);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/* The manual-capture strip spans the content column so its "?" help control
|
|
76
|
+
* lands on the column's right edge (Figma: `Manual capture` 342 wide, x=24). */
|
|
77
|
+
.id-capture-stage__manual {
|
|
78
|
+
width: 100%;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/* The feedback pill replaces the title block on the error stages (Figma
|
|
82
|
+
* `1-5-5 … 1-5-9-id-errors`): same band, same Spacing/40 above the frame. */
|
|
83
|
+
.id-capture-stage__feedback {
|
|
84
|
+
display: flex;
|
|
85
|
+
justify-content: center;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/* ── Removed: promoted into the foundation ───────────────────────────────────
|
|
89
|
+
* `.id-capture-glyph*` (the non-status glyph slot) is now
|
|
90
|
+
* `ScreenLayout.css`'s `__glyph` — DEVIATIONS #DC-29, closed.
|
|
91
|
+
* `.id-capture-info-list` / `.id-capture-accepted-docs` (the Spacing/24 under a
|
|
92
|
+
* title block) are now the List archetype's `__list` — DEVIATIONS #F-31.
|
|
93
|
+
*/
|
|
94
|
+
|
|
95
|
+
/* ── PrizmaIdCapture on a LIGHT surface ────────────────────────────────────── */
|
|
96
|
+
/* The capture component was authored for the camera stage, so two of its layers
|
|
97
|
+
* are deliberately Static: the stand-in camera plate is Surface/Neutral/900 and
|
|
98
|
+
* the encrypted row is white ink. ID Capture's Figma also mounts the SAME
|
|
99
|
+
* component on the light result screens (`*-review`, `*-success`, `*-attempt`,
|
|
100
|
+
* `*-analyzing`), where the plate must not show through the document's 7px air
|
|
101
|
+
* and the reassurance line is drawn in body ink.
|
|
102
|
+
*
|
|
103
|
+
* The plate needs no override — Core's own `mode="overlay"` already makes the
|
|
104
|
+
* window transparent, which is what the light screens want. The ink does: the
|
|
105
|
+
* row is re-inked with the THEMED body token so it also survives dark mode,
|
|
106
|
+
* scoped to the light screens only (the camera stage keeps Core's Static white).
|
|
107
|
+
* Core gap — PrizmaIdCapture has no surface-aware encrypted row. DEVIATIONS.md #IDC-28.
|
|
108
|
+
*/
|
|
109
|
+
.id-capture-on-surface .prizma-id-capture__encrypted {
|
|
110
|
+
color: var(--prizma-text-body-800-primary);
|
|
111
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type PrizmaResultScreenProps } from './ResultScreen';
|
|
3
|
+
import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
|
|
4
|
+
import type { IdCaptureStrings } from './IdCaptureStrings';
|
|
5
|
+
import './ScreenLayout.css';
|
|
6
|
+
export interface IdCaptureNoConnectionScreenProps extends Omit<PrizmaResultScreenProps, 'status' | 'title' | 'subtitle' | 'glyph' | 'ctaLabel' | 'verifiedLabel' | 'navLabel'> {
|
|
7
|
+
/** Module copy — this screen reads the `noConnection` slice. */
|
|
8
|
+
strings: IdCaptureStrings;
|
|
9
|
+
screenId?: string;
|
|
10
|
+
overrides?: PrizmaScreenOverrides;
|
|
11
|
+
onAction?: PrizmaScreenActionHandler;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* ID Capture — no internet connection, built on the `PrizmaResultScreen`
|
|
15
|
+
* archetype (GUIDELINES.md §6-F).
|
|
16
|
+
* Figma: purple section `1-9-10-id-no-internet` of the front-side group.
|
|
17
|
+
*
|
|
18
|
+
* Structurally identical to the Face Capture pilot's
|
|
19
|
+
* `genericErrors.noConnection` — Title + one CTA — which is why both now render
|
|
20
|
+
* the same archetype and neither composes a shell. Header and verified tag are on
|
|
21
|
+
* per the owner's non-capture rule (DEVIATIONS #F-30).
|
|
22
|
+
*
|
|
23
|
+
* The Wi-Fi glyph is Figma's `Icon / Wi-Fi` in the archetype's `glyph` slot with
|
|
24
|
+
* the foundation's `__glyph` class; Core's `PrizmaTitle` allowlist is
|
|
25
|
+
* status | spinner | none (DEVIATIONS #10, #DC-29).
|
|
26
|
+
*/
|
|
27
|
+
export declare const IdCaptureNoConnectionScreen: React.ForwardRefExoticComponent<IdCaptureNoConnectionScreenProps & React.RefAttributes<HTMLDivElement>>;
|
|
28
|
+
export default IdCaptureNoConnectionScreen;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef } from 'react';
|
|
4
|
+
import { IconWifiOff } from '@incodetech/prizma-core-icons';
|
|
5
|
+
import { PrizmaResultScreen } from './ResultScreen';
|
|
6
|
+
import './ScreenLayout.css';
|
|
7
|
+
/**
|
|
8
|
+
* ID Capture — no internet connection, built on the `PrizmaResultScreen`
|
|
9
|
+
* archetype (GUIDELINES.md §6-F).
|
|
10
|
+
* Figma: purple section `1-9-10-id-no-internet` of the front-side group.
|
|
11
|
+
*
|
|
12
|
+
* Structurally identical to the Face Capture pilot's
|
|
13
|
+
* `genericErrors.noConnection` — Title + one CTA — which is why both now render
|
|
14
|
+
* the same archetype and neither composes a shell. Header and verified tag are on
|
|
15
|
+
* per the owner's non-capture rule (DEVIATIONS #F-30).
|
|
16
|
+
*
|
|
17
|
+
* The Wi-Fi glyph is Figma's `Icon / Wi-Fi` in the archetype's `glyph` slot with
|
|
18
|
+
* the foundation's `__glyph` class; Core's `PrizmaTitle` allowlist is
|
|
19
|
+
* status | spinner | none (DEVIATIONS #10, #DC-29).
|
|
20
|
+
*/
|
|
21
|
+
export const IdCaptureNoConnectionScreen = forwardRef(({ strings, screenId = 'id-capture-no-connection', overrides, onAction, ...shell }, ref) => (_jsx(PrizmaResultScreen, { ref: ref, glyph: _jsx("span", { className: [
|
|
22
|
+
'prizma-screen-layout__glyph',
|
|
23
|
+
'prizma-screen-layout__glyph--negative',
|
|
24
|
+
overrides?.align === 'left' ? 'prizma-screen-layout__glyph--left' : '',
|
|
25
|
+
]
|
|
26
|
+
.filter(Boolean)
|
|
27
|
+
.join(' '), children: _jsx(IconWifiOff, { size: "l" }) }), title: strings.noConnection.title, subtitle: strings.noConnection.description, ctaLabel: strings.noConnection.ctaLabel, verifiedLabel: strings.verifiedLabel, navLabel: strings.navLabel, screenId: screenId, overrides: overrides, onAction: onAction, ...shell })));
|
|
28
|
+
IdCaptureNoConnectionScreen.displayName = 'IdCaptureNoConnectionScreen';
|
|
29
|
+
export default IdCaptureNoConnectionScreen;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type PrizmaListScreenProps } from './ListScreen';
|
|
3
|
+
import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
|
|
4
|
+
import type { IdCaptureStrings } from './IdCaptureStrings';
|
|
5
|
+
import './ScreenLayout.css';
|
|
6
|
+
export interface IdCapturePermissionScreenProps extends Omit<PrizmaListScreenProps, 'status' | 'title' | 'subtitle' | 'children' | 'ctaLabel' | 'linkLabel' | 'verifiedLabel' | 'navLabel'> {
|
|
7
|
+
/** Module copy — this screen reads the `permission` slice. */
|
|
8
|
+
strings: IdCaptureStrings;
|
|
9
|
+
screenId?: string;
|
|
10
|
+
overrides?: PrizmaScreenOverrides;
|
|
11
|
+
onAction?: PrizmaScreenActionHandler;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* ID Capture — "Camera permission is required", built on the `PrizmaListScreen`
|
|
15
|
+
* archetype (GUIDELINES.md §6-G).
|
|
16
|
+
* Figma: purple section `1-3-2-id` of the `Permissions` group, plus its
|
|
17
|
+
* `1-3-2-id-allow-camera`, `1-3-2-id-quit-process` and
|
|
18
|
+
* `1-3-2-id-allow-camera-quit-process` siblings — which differ only in which
|
|
19
|
+
* control is pressed, i.e. copy/interaction variants of this ONE screen.
|
|
20
|
+
*
|
|
21
|
+
* Warning status mark → Title → three reason rows → a tertiary "quit" link →
|
|
22
|
+
* the permission CTA. `showHeader={false}` keeps the section's logo-free chrome
|
|
23
|
+
* (the flow has not started) with the nav row still reserved.
|
|
24
|
+
*
|
|
25
|
+
* NOT built from this group: `1-3-1-id-iOS+Android` and `1-4-1-id` are the
|
|
26
|
+
* NATIVE OS permission dialogs (an iOS alert and an Android sheet drawn as
|
|
27
|
+
* documentation), and `1-4-2-id` is a step list whose rows are OS app icons
|
|
28
|
+
* (Settings, Safari, the iOS camera tile). None of them is a Prizma surface and
|
|
29
|
+
* none of their chrome exists in Core — building them would mean inventing
|
|
30
|
+
* primitives and shipping platform raster assets, both forbidden (§10, rule 1).
|
|
31
|
+
* Reported to the owner instead. DEVIATIONS.md #IDC-26.
|
|
32
|
+
*/
|
|
33
|
+
export declare const IdCapturePermissionScreen: React.ForwardRefExoticComponent<IdCapturePermissionScreenProps & React.RefAttributes<HTMLDivElement>>;
|
|
34
|
+
export default IdCapturePermissionScreen;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef } from 'react';
|
|
4
|
+
import { IconApproval, IconBankCardSearch, IconCamera } from '@incodetech/prizma-core-icons';
|
|
5
|
+
import { PrizmaCardListCommonIssues } from '@incodetech/prizma-core-web/card-list';
|
|
6
|
+
import { PrizmaListScreen } from './ListScreen';
|
|
7
|
+
import './ScreenLayout.css';
|
|
8
|
+
/**
|
|
9
|
+
* The three reason rows' leading icons, in the order the purple section lists
|
|
10
|
+
* them: the camera captures the ID · it verifies authenticity · it is required
|
|
11
|
+
* to verify identity. Canonical bank only (§10).
|
|
12
|
+
*/
|
|
13
|
+
const ROW_ICONS = [
|
|
14
|
+
_jsx(IconCamera, { size: "m" }, "camera"),
|
|
15
|
+
_jsx(IconBankCardSearch, { size: "m" }, "authenticity"),
|
|
16
|
+
_jsx(IconApproval, { size: "m" }, "required"),
|
|
17
|
+
];
|
|
18
|
+
/**
|
|
19
|
+
* ID Capture — "Camera permission is required", built on the `PrizmaListScreen`
|
|
20
|
+
* archetype (GUIDELINES.md §6-G).
|
|
21
|
+
* Figma: purple section `1-3-2-id` of the `Permissions` group, plus its
|
|
22
|
+
* `1-3-2-id-allow-camera`, `1-3-2-id-quit-process` and
|
|
23
|
+
* `1-3-2-id-allow-camera-quit-process` siblings — which differ only in which
|
|
24
|
+
* control is pressed, i.e. copy/interaction variants of this ONE screen.
|
|
25
|
+
*
|
|
26
|
+
* Warning status mark → Title → three reason rows → a tertiary "quit" link →
|
|
27
|
+
* the permission CTA. `showHeader={false}` keeps the section's logo-free chrome
|
|
28
|
+
* (the flow has not started) with the nav row still reserved.
|
|
29
|
+
*
|
|
30
|
+
* NOT built from this group: `1-3-1-id-iOS+Android` and `1-4-1-id` are the
|
|
31
|
+
* NATIVE OS permission dialogs (an iOS alert and an Android sheet drawn as
|
|
32
|
+
* documentation), and `1-4-2-id` is a step list whose rows are OS app icons
|
|
33
|
+
* (Settings, Safari, the iOS camera tile). None of them is a Prizma surface and
|
|
34
|
+
* none of their chrome exists in Core — building them would mean inventing
|
|
35
|
+
* primitives and shipping platform raster assets, both forbidden (§10, rule 1).
|
|
36
|
+
* Reported to the owner instead. DEVIATIONS.md #IDC-26.
|
|
37
|
+
*/
|
|
38
|
+
export const IdCapturePermissionScreen = forwardRef(({ strings, screenId = 'id-capture-permission', showHeader = false, overrides, onAction, ...shell }, ref) => (_jsx(PrizmaListScreen, { ref: ref, showHeader: showHeader, status: "warning", title: strings.permission.title, subtitle: strings.permission.description, ctaLabel: strings.permission.ctaLabel, linkLabel: strings.permission.quitLabel, verifiedLabel: strings.verifiedLabel, navLabel: strings.navLabel, screenId: screenId, overrides: overrides, onAction: onAction, ...shell, children: _jsx(PrizmaCardListCommonIssues, { items: strings.permission.rows.map((row, i) => ({
|
|
39
|
+
icon: ROW_ICONS[i % ROW_ICONS.length],
|
|
40
|
+
title: row.title,
|
|
41
|
+
subtitle: row.description,
|
|
42
|
+
showSubtitle: Boolean(row.description),
|
|
43
|
+
})) }) })));
|
|
44
|
+
IdCapturePermissionScreen.displayName = 'IdCapturePermissionScreen';
|
|
45
|
+
export default IdCapturePermissionScreen;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import React, { type ReactNode } from 'react';
|
|
2
|
+
import { type PrizmaResultScreenProps } from './ResultScreen';
|
|
3
|
+
import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
|
|
4
|
+
import type { IdCaptureDocumentType, IdCaptureStrings } from './IdCaptureStrings';
|
|
5
|
+
import './ScreenLayout.css';
|
|
6
|
+
import './IdCaptureLayout.css';
|
|
7
|
+
/**
|
|
8
|
+
* Which verdict the screen reports. Each maps onto a purple section family:
|
|
9
|
+
* - `review` — `*-review` (no status icon, Retake + Continue)
|
|
10
|
+
* - `success` — `*-success`, `1-10-2-id-success-capture-only`
|
|
11
|
+
* - `error` — `*-attempt`, `*-failed-attempt` (retries left)
|
|
12
|
+
* - `exhausted` — `*-no-attempts` (retries used up)
|
|
13
|
+
* - `classification` — Classification Errors / "Scan the back of your ID"
|
|
14
|
+
*/
|
|
15
|
+
export type IdCaptureResultVerdict = 'review' | 'success' | 'error' | 'exhausted' | 'classification';
|
|
16
|
+
export interface IdCaptureResultScreenProps extends Omit<PrizmaResultScreenProps, 'status' | 'title' | 'subtitle' | 'children' | 'disclaimer' | 'ctaLabel' | 'secondaryCtaLabel' | 'ctaOrientation' | 'verifiedLabel' | 'navLabel'> {
|
|
17
|
+
/** Module copy — this screen reads the slice its `verdict` names. */
|
|
18
|
+
strings: IdCaptureStrings;
|
|
19
|
+
/** Which purple result section to render. Default `success`. */
|
|
20
|
+
verdict?: IdCaptureResultVerdict;
|
|
21
|
+
/** Which document was captured — Core `PrizmaIdCapture.type`. */
|
|
22
|
+
documentType?: IdCaptureDocumentType;
|
|
23
|
+
/** Portrait document orientation — the `↕️ vertical` groups. */
|
|
24
|
+
vertical?: boolean;
|
|
25
|
+
/** The captured document still (<img>) shown inside the frame. */
|
|
26
|
+
still?: ReactNode;
|
|
27
|
+
screenId?: string;
|
|
28
|
+
overrides?: PrizmaScreenOverrides;
|
|
29
|
+
onAction?: PrizmaScreenActionHandler;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* ID Capture — the captured-document verdict screens, built on the
|
|
33
|
+
* `PrizmaResultScreen` archetype (GUIDELINES.md §6-F).
|
|
34
|
+
*
|
|
35
|
+
* ONE screen for every `*-review`, `*-success`, `*-attempt`,
|
|
36
|
+
* `*-failed-attempt` and `*-no-attempts` section across all five capture groups,
|
|
37
|
+
* plus the Classification Errors section — ~35 purple sections that are copy,
|
|
38
|
+
* status-icon, frame-state and CTA variants of a single layout.
|
|
39
|
+
*
|
|
40
|
+
* The captured still rides in the archetype's `children` slot, the attempts line
|
|
41
|
+
* in `disclaimer`, and the review/classification action pair in
|
|
42
|
+
* `secondaryCtaLabel`. This file used to hand-build the whole shell (198 lines)
|
|
43
|
+
* with its own three-band arithmetic in `IdCaptureLayout.css`; the archetype now
|
|
44
|
+
* owns every offset, with two measured consequences logged as #F-33: the title
|
|
45
|
+
* block sits Spacing/16 above the frame rather than the module's Spacing/40, and
|
|
46
|
+
* review's Retake+Continue pair stacks vertically instead of sitting side by side
|
|
47
|
+
* (the archetype has one CTA orientation).
|
|
48
|
+
*
|
|
49
|
+
* `showHeader={false}` keeps the family's chrome as Figma draws it — no logo —
|
|
50
|
+
* while still reserving the nav row, so the offsets are identical to every other
|
|
51
|
+
* screen (owner rule 2026-08-18).
|
|
52
|
+
*
|
|
53
|
+
* Everything visual belongs to Core: the status marks are `PrizmaTitle`'s icon
|
|
54
|
+
* slot (outline bank icons — the module Figma still draws the two-tone filled
|
|
55
|
+
* discs, DEVIATIONS.md #15 again), and the frame and its border are
|
|
56
|
+
* `PrizmaIdCapture`.
|
|
57
|
+
*/
|
|
58
|
+
export declare const IdCaptureResultScreen: React.ForwardRefExoticComponent<IdCaptureResultScreenProps & React.RefAttributes<HTMLDivElement>>;
|
|
59
|
+
export default IdCaptureResultScreen;
|