@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,45 @@
|
|
|
1
|
+
import React, { type ComponentPropsWithoutRef } from 'react';
|
|
2
|
+
import './ScreenShell.css';
|
|
3
|
+
export interface PrizmaScreenShellProps extends ComponentPropsWithoutRef<'div'> {
|
|
4
|
+
/** Camera-viewfinder screens render a full-bleed dark stage instead of the
|
|
5
|
+
* neutral surface. Default `false`. Implies `theme="dark"`. */
|
|
6
|
+
dark?: boolean;
|
|
7
|
+
/**
|
|
8
|
+
* PIN the token theme for this screen's subtree, regardless of the app's
|
|
9
|
+
* theme. Stamps `data-prizma-theme`, which the generated theme sheets select
|
|
10
|
+
* on ANY element (`[data-prizma-theme='dark']`, not `:root[...]`), so the pin
|
|
11
|
+
* scopes cleanly to one screen.
|
|
12
|
+
*
|
|
13
|
+
* Why screens need this: Core's capture components paint every ink with
|
|
14
|
+
* **Static** tokens because "the capture screen stays WHITE in both modes —
|
|
15
|
+
* light is needed for the shot" (owner decision 2026-07-14, documented in
|
|
16
|
+
* `SelfieCapture.css`). If the surrounding shell were allowed to flip, the
|
|
17
|
+
* app's dark mode would put a light-oriented stage — dark shutter, secondary
|
|
18
|
+
* feedback text — on a black background. Camera viewfinders are the mirror
|
|
19
|
+
* case: their inks are white-on-dark Static, so they pin dark.
|
|
20
|
+
*
|
|
21
|
+
* Leave undefined on ordinary screens: they should follow the app.
|
|
22
|
+
*
|
|
23
|
+
* ⚠️ A pin is a MODE pin, not a BRAND reset — and it used to be both, because
|
|
24
|
+
* `themes/light.css` is the full token set. A host that scopes a brand to a
|
|
25
|
+
* subtree (Core Lab's per-card `themeSeed`; equally `applyPrizmaTheme`'s
|
|
26
|
+
* output scoped to something narrower than `:root`) saw its brand die on
|
|
27
|
+
* every pinned screen: the "verified by incode" tag stayed Incode blue on the
|
|
28
|
+
* face-capture capturing screen while the unpinned tutorial beside it went
|
|
29
|
+
* fully purple. `ScreenShell.css` hands the brand back — read the block at
|
|
30
|
+
* the bottom of that file before changing this prop, including the known gap
|
|
31
|
+
* and the Android / iOS parity flag.
|
|
32
|
+
*/
|
|
33
|
+
theme?: 'light' | 'dark';
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* ScreenShell — the root wrapper of every SDK screen.
|
|
37
|
+
*
|
|
38
|
+
* Responsive contract: the 390×844 Figma frame is the DESIGN REFERENCE, not a
|
|
39
|
+
* hardcoded size. The shell fills its container (host owns the outer size /
|
|
40
|
+
* aspect) and declares itself a CSS container (`pcs-screen`), so descendant
|
|
41
|
+
* geometry scales in `cqw` units capped at the reference pixel value —
|
|
42
|
+
* see GUIDELINES.md §1 and the archetype CSS.
|
|
43
|
+
*/
|
|
44
|
+
export declare const PrizmaScreenShell: React.ForwardRefExoticComponent<PrizmaScreenShellProps & React.RefAttributes<HTMLDivElement>>;
|
|
45
|
+
export default PrizmaScreenShell;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef } from 'react';
|
|
4
|
+
import './ScreenShell.css';
|
|
5
|
+
/**
|
|
6
|
+
* ScreenShell — the root wrapper of every SDK screen.
|
|
7
|
+
*
|
|
8
|
+
* Responsive contract: the 390×844 Figma frame is the DESIGN REFERENCE, not a
|
|
9
|
+
* hardcoded size. The shell fills its container (host owns the outer size /
|
|
10
|
+
* aspect) and declares itself a CSS container (`pcs-screen`), so descendant
|
|
11
|
+
* geometry scales in `cqw` units capped at the reference pixel value —
|
|
12
|
+
* see GUIDELINES.md §1 and the archetype CSS.
|
|
13
|
+
*/
|
|
14
|
+
export const PrizmaScreenShell = forwardRef(({ dark = false, theme, className, children, ...rest }, ref) => (_jsx("div", { ref: ref, "data-prizma-theme": theme ?? (dark ? 'dark' : undefined), className: [
|
|
15
|
+
'prizma-screen-shell',
|
|
16
|
+
dark ? 'prizma-screen-shell--dark' : '',
|
|
17
|
+
className ?? '',
|
|
18
|
+
]
|
|
19
|
+
.filter(Boolean)
|
|
20
|
+
.join(' '), ...rest, children: children })));
|
|
21
|
+
PrizmaScreenShell.displayName = 'PrizmaScreenShell';
|
|
22
|
+
export default PrizmaScreenShell;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import React, { type ReactNode } from 'react';
|
|
2
|
+
import { type PrizmaScreenShellProps } from './ScreenShell';
|
|
3
|
+
import type { PrizmaScreenActionHandler, PrizmaScreenChromeProps, PrizmaScreenOverrides } from './types';
|
|
4
|
+
import './ScreenLayout.css';
|
|
5
|
+
export interface PrizmaTutorialScreenProps extends Omit<PrizmaScreenShellProps, 'dark' | 'title'>, PrizmaScreenChromeProps {
|
|
6
|
+
/**
|
|
7
|
+
* An optional block between the logo nav and the content — a journey stepper.
|
|
8
|
+
* Video Selfie draws Core's `PrizmaStepper` on EVERY screen of the flow, not
|
|
9
|
+
* just its camera stages, and it is the only chrome that tells the steps
|
|
10
|
+
* apart; the archetypes had a slot on E alone, so the rest of the module shed
|
|
11
|
+
* it (owner-reported 2026-08-19). Takes a `ReactNode` so the module supplies
|
|
12
|
+
* Core's own component — no primitive invented, and both offsets live once in
|
|
13
|
+
* `ScreenLayout.css` (`.prizma-screen-layout__progress`). Omit it and nothing
|
|
14
|
+
* renders, so every existing consumer is byte-identical. DEVIATIONS #VS-4.
|
|
15
|
+
*/
|
|
16
|
+
progress?: ReactNode;
|
|
17
|
+
/** Screen title (H2). */
|
|
18
|
+
title: string;
|
|
19
|
+
/** Description below the title (H5). */
|
|
20
|
+
subtitle?: string;
|
|
21
|
+
/** Hint copy 28px above the CTA ("Stay still…"). */
|
|
22
|
+
disclaimer?: string;
|
|
23
|
+
/** Primary CTA label. Optional: some tutorial-shaped screens (Face Match's
|
|
24
|
+
* comparison views) carry no CTA at all. */
|
|
25
|
+
ctaLabel?: string;
|
|
26
|
+
/** The primary CTA shows Core's designed loading treatment — the `*.loading`
|
|
27
|
+
* half of Face Capture's and ID Capture's tutorial sections. */
|
|
28
|
+
ctaLoading?: boolean;
|
|
29
|
+
/** Accessible/visible loading copy for the primary CTA (`PrizmaButton`'s own
|
|
30
|
+
* `loadingLabel`; no hardcoded English anywhere). */
|
|
31
|
+
ctaLoadingLabel?: string;
|
|
32
|
+
/** Secondary CTA rendered ABOVE the primary — a second filled action. */
|
|
33
|
+
secondaryCtaLabel?: string;
|
|
34
|
+
/**
|
|
35
|
+
* Tertiary underlined LINK below the primary — Document Capture's "Skip this
|
|
36
|
+
* step" (tutorial / method selection) and "All pages captured" (next page).
|
|
37
|
+
* A link, not a button: Figma draws Core's `tertiary-link` composite there.
|
|
38
|
+
*/
|
|
39
|
+
linkLabel?: string;
|
|
40
|
+
/** "verified by" attribution copy for the footer tag. */
|
|
41
|
+
verifiedLabel: string;
|
|
42
|
+
/** Centerpiece illustration (inline SVG component / Core Illustration*). */
|
|
43
|
+
illustration?: ReactNode;
|
|
44
|
+
/**
|
|
45
|
+
* A shell-level layer painted OVER the whole screen — Document Capture's
|
|
46
|
+
* method-selection sheet (scrim + `PrizmaBottomSheetContent`), which Figma
|
|
47
|
+
* presents on top of the dimmed tutorial. It cannot ride in the content
|
|
48
|
+
* column: it is absolutely positioned against the shell (DEVIATIONS #DC-30).
|
|
49
|
+
*/
|
|
50
|
+
overlay?: ReactNode;
|
|
51
|
+
/** Accessible name for the nav region. */
|
|
52
|
+
navLabel?: string;
|
|
53
|
+
/** Stable id reported in actions, e.g. `face-capture-tutorial`. */
|
|
54
|
+
screenId?: string;
|
|
55
|
+
overrides?: PrizmaScreenOverrides;
|
|
56
|
+
onAction?: PrizmaScreenActionHandler;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Archetype A — Tutorial / Instruction (GUIDELINES.md §6-A).
|
|
60
|
+
* Nav → title block → illustration (flex-1) → disclaimer → CTA → verified tag.
|
|
61
|
+
*
|
|
62
|
+
* CTA band order is the family's designed one: disclaimer → secondary → primary
|
|
63
|
+
* → tertiary link (the link sits BELOW the primary on every tutorial-shaped
|
|
64
|
+
* section — Document Capture's "Skip this step" / "All pages captured"). The
|
|
65
|
+
* stack is the foundation's flat Spacing/16 (DEVIATIONS #8); Core's own
|
|
66
|
+
* `PrizmaButtonGroup` would put 12 between the slots but cannot forward
|
|
67
|
+
* `loadingLabel`, which the loading tutorials need — DEVIATIONS #F-32.
|
|
68
|
+
*/
|
|
69
|
+
export declare const PrizmaTutorialScreen: React.ForwardRefExoticComponent<PrizmaTutorialScreenProps & React.RefAttributes<HTMLDivElement>>;
|
|
70
|
+
export default PrizmaTutorialScreen;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef } from 'react';
|
|
4
|
+
import { PrizmaTitle } from '@incodetech/prizma-core-web/title';
|
|
5
|
+
import { PrizmaDisclaimer } from '@incodetech/prizma-core-web/disclaimer';
|
|
6
|
+
import { PrizmaButton } from '@incodetech/prizma-core-web/button';
|
|
7
|
+
import { PrizmaTag } from '@incodetech/prizma-core-web/tag';
|
|
8
|
+
import { PrizmaScreenShell } from './ScreenShell';
|
|
9
|
+
import { PrizmaScreenNav } from './ScreenNav';
|
|
10
|
+
import './ScreenLayout.css';
|
|
11
|
+
/**
|
|
12
|
+
* Archetype A — Tutorial / Instruction (GUIDELINES.md §6-A).
|
|
13
|
+
* Nav → title block → illustration (flex-1) → disclaimer → CTA → verified tag.
|
|
14
|
+
*
|
|
15
|
+
* CTA band order is the family's designed one: disclaimer → secondary → primary
|
|
16
|
+
* → tertiary link (the link sits BELOW the primary on every tutorial-shaped
|
|
17
|
+
* section — Document Capture's "Skip this step" / "All pages captured"). The
|
|
18
|
+
* stack is the foundation's flat Spacing/16 (DEVIATIONS #8); Core's own
|
|
19
|
+
* `PrizmaButtonGroup` would put 12 between the slots but cannot forward
|
|
20
|
+
* `loadingLabel`, which the loading tutorials need — DEVIATIONS #F-32.
|
|
21
|
+
*/
|
|
22
|
+
export const PrizmaTutorialScreen = forwardRef(({ progress, title, subtitle, disclaimer, ctaLabel, ctaLoading = false, ctaLoadingLabel, secondaryCtaLabel, linkLabel, verifiedLabel, illustration, overlay, navLabel, screenId, showHeader = true, showFooter = true, overrides, onAction, ...shell }, ref) => (_jsxs(PrizmaScreenShell, { ref: ref, ...shell, children: [_jsx(PrizmaScreenNav, { reserved: !showHeader, logo: overrides?.logo, navLabel: navLabel }), progress ? (_jsx("div", { className: "prizma-screen-layout__progress", children: progress })) : null, _jsxs("div", { className: "prizma-screen-layout__content", children: [_jsx(PrizmaTitle, { variant: overrides?.align === 'left' ? 'left' : 'centered', title: title, showSubtitle: Boolean(subtitle), subtitle: subtitle }), _jsx("div", { className: "prizma-screen-layout__flex", children: illustration }), _jsxs("div", { className: "prizma-screen-layout__band", children: [disclaimer ? _jsx(PrizmaDisclaimer, { text: disclaimer }) : null, secondaryCtaLabel ? (_jsx(PrizmaButton, { variant: "secondary", size: "L", onClick: () => onAction?.({ type: 'secondary', screenId }), children: secondaryCtaLabel })) : null, ctaLabel ? (_jsx(PrizmaButton, { variant: "primary", size: "L", loading: ctaLoading, loadingLabel: ctaLoadingLabel, onClick: () => onAction?.({ type: 'cta', screenId }), children: ctaLabel })) : null, linkLabel ? (_jsx(PrizmaButton, { variant: "tertiary-link", size: "L", onClick: () => onAction?.({ type: 'secondary', screenId }), children: linkLabel })) : null, showFooter ? (_jsx("div", { className: "prizma-screen-layout__band__tag", children: _jsx(PrizmaTag, { label: verifiedLabel }) })) : null] })] }), overlay] })));
|
|
23
|
+
PrizmaTutorialScreen.displayName = 'PrizmaTutorialScreen';
|
|
24
|
+
export default PrizmaTutorialScreen;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type PrizmaListScreenProps } from './ListScreen';
|
|
3
|
+
import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
|
|
4
|
+
import type { VideoSelfieStepsOs, VideoSelfieStrings } from './VideoSelfieStrings';
|
|
5
|
+
import './ScreenLayout.css';
|
|
6
|
+
import './VideoSelfieLayout.css';
|
|
7
|
+
export interface VideoSelfieCameraStepsScreenProps extends Omit<PrizmaListScreenProps, 'status' | 'title' | 'subtitle' | 'children' | 'ctaLabel' | 'secondaryCtaLabel' | 'linkLabel' | 'verifiedLabel' | 'navLabel'> {
|
|
8
|
+
/** Module copy — this screen reads the `permission.steps` slice. */
|
|
9
|
+
strings: VideoSelfieStrings;
|
|
10
|
+
/** Which device variant of the section to render: `2.5 - ios` (default) or
|
|
11
|
+
* `2.6 - android`. They are different screens, not translations. */
|
|
12
|
+
os?: VideoSelfieStepsOs;
|
|
13
|
+
screenId?: string;
|
|
14
|
+
overrides?: PrizmaScreenOverrides;
|
|
15
|
+
onAction?: PrizmaScreenActionHandler;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Video Selfie — the OS settings walk-through, built on the List archetype
|
|
19
|
+
* (GUIDELINES.md §6-G). Figma: purple section `video selfie - permissions
|
|
20
|
+
* 2.5 - camera access instructions`, which holds TWO Incode-drawn symbols:
|
|
21
|
+
* `2.5 - ios camera access instructions` and
|
|
22
|
+
* `2.6 - android camera access instructions`. Both are built here, selected by
|
|
23
|
+
* `os` — unlike `2.1` and `2.4` of the same group, which are OS chrome and are
|
|
24
|
+
* deliberately not built.
|
|
25
|
+
*
|
|
26
|
+
* Same family as `GeolocationBrowserStepsScreen`: a title block over a step
|
|
27
|
+
* list and a "Retry" CTA, LEFT-aligned throughout — a centred headline above a
|
|
28
|
+
* left-led numbered list reads as a mistake. The screen only picks which of the
|
|
29
|
+
* archetype's OWN alignment variants this family uses; a host that passes
|
|
30
|
+
* `overrides.align` still wins.
|
|
31
|
+
*
|
|
32
|
+
* What Figma draws that no single Core list models: TWO labelled sections in
|
|
33
|
+
* the middle. On iOS the second is a plain remark with no steps at all; on
|
|
34
|
+
* Android it is a SECOND five-step numbered list followed by a closing note
|
|
35
|
+
* ("Remember, the specific steps might vary…"). Both numbered lists are Core's
|
|
36
|
+
* Core `PrizmaListItem` (`number`) rows verbatim; the section labels and the two
|
|
37
|
+
* kinds of note are plain content typography in `VideoSelfieLayout.css`. The
|
|
38
|
+
* offset above the whole block is the archetype's `__list` Spacing/24 —
|
|
39
|
+
* nothing about it is re-declared.
|
|
40
|
+
*
|
|
41
|
+
* Neither device frame draws the verified tag (both end at the CTA), so
|
|
42
|
+
* `showFooter` defaults to `true` (owner rule #PI-8/#F-34 — the chrome is
|
|
43
|
+
* constant), as on the other two permission
|
|
44
|
+
* sections.
|
|
45
|
+
*/
|
|
46
|
+
export declare const VideoSelfieCameraStepsScreen: React.ForwardRefExoticComponent<VideoSelfieCameraStepsScreenProps & React.RefAttributes<HTMLDivElement>>;
|
|
47
|
+
export default VideoSelfieCameraStepsScreen;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef } from 'react';
|
|
4
|
+
import { PrizmaListItem } from '@incodetech/prizma-core-web/list';
|
|
5
|
+
import { PrizmaListScreen } from './ListScreen';
|
|
6
|
+
import './ScreenLayout.css';
|
|
7
|
+
import './VideoSelfieLayout.css';
|
|
8
|
+
/**
|
|
9
|
+
* Video Selfie — the OS settings walk-through, built on the List archetype
|
|
10
|
+
* (GUIDELINES.md §6-G). Figma: purple section `video selfie - permissions
|
|
11
|
+
* 2.5 - camera access instructions`, which holds TWO Incode-drawn symbols:
|
|
12
|
+
* `2.5 - ios camera access instructions` and
|
|
13
|
+
* `2.6 - android camera access instructions`. Both are built here, selected by
|
|
14
|
+
* `os` — unlike `2.1` and `2.4` of the same group, which are OS chrome and are
|
|
15
|
+
* deliberately not built.
|
|
16
|
+
*
|
|
17
|
+
* Same family as `GeolocationBrowserStepsScreen`: a title block over a step
|
|
18
|
+
* list and a "Retry" CTA, LEFT-aligned throughout — a centred headline above a
|
|
19
|
+
* left-led numbered list reads as a mistake. The screen only picks which of the
|
|
20
|
+
* archetype's OWN alignment variants this family uses; a host that passes
|
|
21
|
+
* `overrides.align` still wins.
|
|
22
|
+
*
|
|
23
|
+
* What Figma draws that no single Core list models: TWO labelled sections in
|
|
24
|
+
* the middle. On iOS the second is a plain remark with no steps at all; on
|
|
25
|
+
* Android it is a SECOND five-step numbered list followed by a closing note
|
|
26
|
+
* ("Remember, the specific steps might vary…"). Both numbered lists are Core's
|
|
27
|
+
* Core `PrizmaListItem` (`number`) rows verbatim; the section labels and the two
|
|
28
|
+
* kinds of note are plain content typography in `VideoSelfieLayout.css`. The
|
|
29
|
+
* offset above the whole block is the archetype's `__list` Spacing/24 —
|
|
30
|
+
* nothing about it is re-declared.
|
|
31
|
+
*
|
|
32
|
+
* Neither device frame draws the verified tag (both end at the CTA), so
|
|
33
|
+
* `showFooter` defaults to `true` (owner rule #PI-8/#F-34 — the chrome is
|
|
34
|
+
* constant), as on the other two permission
|
|
35
|
+
* sections.
|
|
36
|
+
*/
|
|
37
|
+
export const VideoSelfieCameraStepsScreen = forwardRef(({ strings, os = 'ios', screenId = `video-selfie-permission-steps-${os}`, showHeader = true, showFooter = true, overrides, onAction, ...shell }, ref) => {
|
|
38
|
+
const slice = strings.permission.steps[os];
|
|
39
|
+
/* Family default, not a local re-declaration: the archetype already owns a
|
|
40
|
+
left variant, so the screen only picks which of ITS variants applies. */
|
|
41
|
+
const alignedOverrides = {
|
|
42
|
+
...overrides,
|
|
43
|
+
align: overrides?.align ?? 'left',
|
|
44
|
+
};
|
|
45
|
+
return (_jsx(PrizmaListScreen
|
|
46
|
+
/* Two five-step lists + a closing note exceed the 844 frame — Figma's
|
|
47
|
+
own frame is 1041 tall. Pan the middle instead of overlapping the
|
|
48
|
+
CTA and the tag (#VS-12). */
|
|
49
|
+
, {
|
|
50
|
+
/* Two five-step lists + a closing note exceed the 844 frame — Figma's
|
|
51
|
+
own frame is 1041 tall. Pan the middle instead of overlapping the
|
|
52
|
+
CTA and the tag (#VS-12). */
|
|
53
|
+
scrollList: true, ref: ref, showHeader: showHeader, showFooter: showFooter, title: slice.title, subtitle: slice.subtitle, ctaLabel: slice.ctaLabel, verifiedLabel: strings.verifiedLabel, navLabel: strings.navLabel, screenId: screenId, overrides: alignedOverrides, onAction: onAction, ...shell, children: _jsxs("div", { className: "video-selfie-steps", children: [_jsx("h3", { className: "video-selfie-steps__heading", children: slice.microphoneTitle }), _jsx("ol", { className: "video-selfie-steps__rows", children: slice.microphoneSteps.map((step, i) => (_jsx("li", { children: _jsx(PrizmaListItem, { variant: "number", number: i + 1, label: step }) }, i))) }), _jsx("h3", { className: "video-selfie-steps__heading", children: slice.recordingTitle }), slice.recordingSteps ? (_jsx("ol", { className: "video-selfie-steps__rows", children: slice.recordingSteps.map((step, i) => (_jsx("li", { children: _jsx(PrizmaListItem, { variant: "number", number: i + 1, label: step }) }, i))) })) : slice.recordingNote ? (_jsx("p", { className: "video-selfie-steps__note", children: slice.recordingNote })) : null, slice.closingNote ? (_jsx("p", { className: "video-selfie-steps__note", children: slice.closingNote })) : null] }) }));
|
|
54
|
+
});
|
|
55
|
+
VideoSelfieCameraStepsScreen.displayName = 'VideoSelfieCameraStepsScreen';
|
|
56
|
+
export default VideoSelfieCameraStepsScreen;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type PrizmaResultScreenProps } from './ResultScreen';
|
|
3
|
+
import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
|
|
4
|
+
import type { VideoSelfieStrings } from './VideoSelfieStrings';
|
|
5
|
+
import './ScreenLayout.css';
|
|
6
|
+
/** Which purple section of group 14 to render (the retry list is its own
|
|
7
|
+
* screen — it is a List, not a Result). */
|
|
8
|
+
export type VideoSelfieErrorVariant = 'processingFailed' | 'stepError' | 'moduleError' | 'noConnection';
|
|
9
|
+
export interface VideoSelfieErrorScreenProps extends Omit<PrizmaResultScreenProps, 'status' | 'title' | 'subtitle' | 'glyph' | 'children' | 'bandContent' | 'ctaLabel' | 'secondaryCtaLabel' | 'verifiedLabel' | 'navLabel'> {
|
|
10
|
+
/** Module copy — this screen reads the `errors` slice. */
|
|
11
|
+
strings: VideoSelfieStrings;
|
|
12
|
+
/** Which purple section to render. Default `processingFailed`. */
|
|
13
|
+
variant?: VideoSelfieErrorVariant;
|
|
14
|
+
screenId?: string;
|
|
15
|
+
overrides?: PrizmaScreenOverrides;
|
|
16
|
+
onAction?: PrizmaScreenActionHandler;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Video Selfie — the generic errors, built on the Result archetype
|
|
20
|
+
* (GUIDELINES.md §6-F). Figma: purple sections `general errors 14.0 -
|
|
21
|
+
* processing failed`, `14.2 - step error`, `14.3 - module error` and
|
|
22
|
+
* `14.4 - no connection`.
|
|
23
|
+
*
|
|
24
|
+
* Four verdicts, one skeleton: a centred mark over the title, a Retry CTA, and
|
|
25
|
+
* — on the two that offer a way out — a "Quit process" link. Every state
|
|
26
|
+
* renders differently: `processingFailed` alone carries the supporting line,
|
|
27
|
+
* `stepError` is the only one drawn on the dark camera surface, `moduleError`
|
|
28
|
+
* adds the quit link, and `noConnection` swaps the status mark for the Wi-Fi
|
|
29
|
+
* glyph.
|
|
30
|
+
*
|
|
31
|
+
* **Chrome (owner rule, restated 2026-08-19).** All four keep the logo header
|
|
32
|
+
* and the verified tag even though Figma draws them bare — the same call
|
|
33
|
+
* `#PI-8` / `#F-34` made, so the module's connectivity and error screens read
|
|
34
|
+
* identically to every other module's and nothing shifts between states.
|
|
35
|
+
*
|
|
36
|
+
* **Theme.** `stepError` is the one section the camera is still open behind, and
|
|
37
|
+
* Figma draws it white-on-black; it pins `theme="dark"` through Core's own
|
|
38
|
+
* theme switch, so every token-bound child flips THROUGH the design system
|
|
39
|
+
* (DEVIATIONS #DC-32) rather than around it. `noConnection` deliberately does
|
|
40
|
+
* NOT pin: `#F-34`'s whole point is that a module's connectivity screen looks
|
|
41
|
+
* like every other module's.
|
|
42
|
+
*
|
|
43
|
+
* **Reported gap — CONFIRMED DEFECT, blocked on the archetype.** Archetype F
|
|
44
|
+
* has no tertiary-link slot: G has `linkLabel` and pins it above the pair, A and
|
|
45
|
+
* E pin theirs below, F has none. The quit link therefore rides in F's
|
|
46
|
+
* `bandContent` slot (Core's `tertiary-link` button, never a hand-rolled
|
|
47
|
+
* anchor), which `PrizmaResultScreen` renders ABOVE the CTA row — and `14.3` and
|
|
48
|
+
* `14.4` both draw "Retry" first with "Quit process" underlined BELOW it. QA
|
|
49
|
+
* re-confirmed the inversion against both frames on 2026-08-19.
|
|
50
|
+
*
|
|
51
|
+
* It is NOT worked around here. The fix is one slot in the archetype — F needs
|
|
52
|
+
* A's `linkLabel`, rendered AFTER the button stack (mirroring
|
|
53
|
+
* `TutorialScreen.tsx:129`), with `bandContent` left to its intended Snackbar
|
|
54
|
+
* use. `ResultScreen.*` is owned by the foundation, so this module reports it
|
|
55
|
+
* (`archetypeGaps`) instead of editing it (GUIDELINES rule 2). The moment the
|
|
56
|
+
* slot lands, both variants move to `linkLabel={copy.quitLabel}` and the
|
|
57
|
+
* `bandContent` block below is deleted.
|
|
58
|
+
*
|
|
59
|
+
* Figma also draws the journey stepper on `14.1`, `14.2` and `14.4`. Archetype
|
|
60
|
+
* F has no slot for it and this module does not hand-roll one — reported.
|
|
61
|
+
*/
|
|
62
|
+
export declare const VideoSelfieErrorScreen: React.ForwardRefExoticComponent<VideoSelfieErrorScreenProps & React.RefAttributes<HTMLDivElement>>;
|
|
63
|
+
export default VideoSelfieErrorScreen;
|
|
@@ -0,0 +1,94 @@
|
|
|
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
|
+
* Video Selfie — the generic errors, built on the Result archetype
|
|
9
|
+
* (GUIDELINES.md §6-F). Figma: purple sections `general errors 14.0 -
|
|
10
|
+
* processing failed`, `14.2 - step error`, `14.3 - module error` and
|
|
11
|
+
* `14.4 - no connection`.
|
|
12
|
+
*
|
|
13
|
+
* Four verdicts, one skeleton: a centred mark over the title, a Retry CTA, and
|
|
14
|
+
* — on the two that offer a way out — a "Quit process" link. Every state
|
|
15
|
+
* renders differently: `processingFailed` alone carries the supporting line,
|
|
16
|
+
* `stepError` is the only one drawn on the dark camera surface, `moduleError`
|
|
17
|
+
* adds the quit link, and `noConnection` swaps the status mark for the Wi-Fi
|
|
18
|
+
* glyph.
|
|
19
|
+
*
|
|
20
|
+
* **Chrome (owner rule, restated 2026-08-19).** All four keep the logo header
|
|
21
|
+
* and the verified tag even though Figma draws them bare — the same call
|
|
22
|
+
* `#PI-8` / `#F-34` made, so the module's connectivity and error screens read
|
|
23
|
+
* identically to every other module's and nothing shifts between states.
|
|
24
|
+
*
|
|
25
|
+
* **Theme.** `stepError` is the one section the camera is still open behind, and
|
|
26
|
+
* Figma draws it white-on-black; it pins `theme="dark"` through Core's own
|
|
27
|
+
* theme switch, so every token-bound child flips THROUGH the design system
|
|
28
|
+
* (DEVIATIONS #DC-32) rather than around it. `noConnection` deliberately does
|
|
29
|
+
* NOT pin: `#F-34`'s whole point is that a module's connectivity screen looks
|
|
30
|
+
* like every other module's.
|
|
31
|
+
*
|
|
32
|
+
* **Reported gap — CONFIRMED DEFECT, blocked on the archetype.** Archetype F
|
|
33
|
+
* has no tertiary-link slot: G has `linkLabel` and pins it above the pair, A and
|
|
34
|
+
* E pin theirs below, F has none. The quit link therefore rides in F's
|
|
35
|
+
* `bandContent` slot (Core's `tertiary-link` button, never a hand-rolled
|
|
36
|
+
* anchor), which `PrizmaResultScreen` renders ABOVE the CTA row — and `14.3` and
|
|
37
|
+
* `14.4` both draw "Retry" first with "Quit process" underlined BELOW it. QA
|
|
38
|
+
* re-confirmed the inversion against both frames on 2026-08-19.
|
|
39
|
+
*
|
|
40
|
+
* It is NOT worked around here. The fix is one slot in the archetype — F needs
|
|
41
|
+
* A's `linkLabel`, rendered AFTER the button stack (mirroring
|
|
42
|
+
* `TutorialScreen.tsx:129`), with `bandContent` left to its intended Snackbar
|
|
43
|
+
* use. `ResultScreen.*` is owned by the foundation, so this module reports it
|
|
44
|
+
* (`archetypeGaps`) instead of editing it (GUIDELINES rule 2). The moment the
|
|
45
|
+
* slot lands, both variants move to `linkLabel={copy.quitLabel}` and the
|
|
46
|
+
* `bandContent` block below is deleted.
|
|
47
|
+
*
|
|
48
|
+
* Figma also draws the journey stepper on `14.1`, `14.2` and `14.4`. Archetype
|
|
49
|
+
* F has no slot for it and this module does not hand-roll one — reported.
|
|
50
|
+
*/
|
|
51
|
+
export const VideoSelfieErrorScreen = forwardRef(({ strings, variant = 'processingFailed', screenId = `video-selfie-error-${variant}`, overrides, onAction, ...shell }, ref) => {
|
|
52
|
+
const slice = strings.errors;
|
|
53
|
+
const copy = variant === 'processingFailed'
|
|
54
|
+
? {
|
|
55
|
+
title: slice.processingFailed.title,
|
|
56
|
+
subtitle: slice.processingFailed.subtitle,
|
|
57
|
+
ctaLabel: slice.processingFailed.ctaLabel,
|
|
58
|
+
quitLabel: undefined,
|
|
59
|
+
}
|
|
60
|
+
: variant === 'stepError'
|
|
61
|
+
? {
|
|
62
|
+
title: slice.stepError.title,
|
|
63
|
+
subtitle: undefined,
|
|
64
|
+
ctaLabel: slice.stepError.ctaLabel,
|
|
65
|
+
quitLabel: undefined,
|
|
66
|
+
}
|
|
67
|
+
: variant === 'moduleError'
|
|
68
|
+
? {
|
|
69
|
+
title: slice.moduleError.title,
|
|
70
|
+
subtitle: undefined,
|
|
71
|
+
ctaLabel: slice.moduleError.ctaLabel,
|
|
72
|
+
quitLabel: slice.moduleError.quitLabel,
|
|
73
|
+
}
|
|
74
|
+
: {
|
|
75
|
+
title: slice.noConnection.title,
|
|
76
|
+
subtitle: undefined,
|
|
77
|
+
ctaLabel: slice.noConnection.ctaLabel,
|
|
78
|
+
quitLabel: slice.noConnection.quitLabel,
|
|
79
|
+
};
|
|
80
|
+
return (_jsx(PrizmaResultScreen, { ref: ref, theme: variant === 'stepError' ? 'dark' : undefined, status: variant === 'noConnection' ? 'none' : 'error', glyph: variant === 'noConnection' ? (_jsx("span", { className: [
|
|
81
|
+
'prizma-screen-layout__glyph',
|
|
82
|
+
'prizma-screen-layout__glyph--negative',
|
|
83
|
+
overrides?.align === 'left' ? 'prizma-screen-layout__glyph--left' : '',
|
|
84
|
+
]
|
|
85
|
+
.filter(Boolean)
|
|
86
|
+
.join(' '), children: _jsx(IconWifiOff, { size: "l" }) })) : undefined, title: copy.title, subtitle: copy.subtitle,
|
|
87
|
+
/* The archetype's own tertiary slot, which renders BELOW the button
|
|
88
|
+
stack — `14.3`/`14.4` draw "Retry" first with "Quit process"
|
|
89
|
+
underneath. This used to borrow `bandContent`, which paints ABOVE
|
|
90
|
+
the buttons and put the link on the wrong side (#VS-17). */
|
|
91
|
+
linkLabel: copy.quitLabel, ctaLabel: copy.ctaLabel, verifiedLabel: strings.verifiedLabel, navLabel: strings.navLabel, screenId: screenId, overrides: overrides, onAction: onAction, ...shell }));
|
|
92
|
+
});
|
|
93
|
+
VideoSelfieErrorScreen.displayName = 'VideoSelfieErrorScreen';
|
|
94
|
+
export default VideoSelfieErrorScreen;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type PrizmaResultScreenProps } from './ResultScreen';
|
|
3
|
+
import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
|
|
4
|
+
import type { VideoSelfieStrings } from './VideoSelfieStrings';
|
|
5
|
+
import './ScreenLayout.css';
|
|
6
|
+
export interface VideoSelfieFlipCameraScreenProps extends Omit<PrizmaResultScreenProps, 'status' | 'title' | 'subtitle' | 'children' | 'verifiedLabel' | 'navLabel'> {
|
|
7
|
+
/** Module copy — this screen reads the `flipCamera` slice. */
|
|
8
|
+
strings: VideoSelfieStrings;
|
|
9
|
+
screenId?: string;
|
|
10
|
+
overrides?: PrizmaScreenOverrides;
|
|
11
|
+
onAction?: PrizmaScreenActionHandler;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Video Selfie — the camera-swap interstitial, built on the Result archetype
|
|
15
|
+
* (GUIDELINES.md §6-F). Figma: purple section `video selfie - flip camera
|
|
16
|
+
* 7.0 - switch to front`.
|
|
17
|
+
*
|
|
18
|
+
* The sibling of the flip-ID screen and deliberately its opposite: the camera
|
|
19
|
+
* is still open, so the section is drawn on the DARK surface with white copy.
|
|
20
|
+
* The archetype takes `theme="dark"` straight from `PrizmaScreenShell` — the
|
|
21
|
+
* same switch `DocumentCaptureCaptureScreen` uses — so the Title and every
|
|
22
|
+
* other token-bound child flips THROUGH the design system rather than around it
|
|
23
|
+
* (DEVIATIONS #DC-32). No hardcoded white anywhere.
|
|
24
|
+
*
|
|
25
|
+
* The mark is the canonical bank's `IconCameraFlip` in the archetype's own
|
|
26
|
+
* `glyph` slot (`PrizmaTitle.icon` only accepts status | spinner | none —
|
|
27
|
+
* DEVIATIONS #10), wrapped in the foundation's `__glyph` class so no module CSS
|
|
28
|
+
* is needed for it. No CTA and no verified tag: the section draws neither.
|
|
29
|
+
*
|
|
30
|
+
* Figma also draws the journey stepper at the top of this section. Archetype F
|
|
31
|
+
* has no slot for it and this module does not hand-roll one — reported.
|
|
32
|
+
*/
|
|
33
|
+
export declare const VideoSelfieFlipCameraScreen: React.ForwardRefExoticComponent<VideoSelfieFlipCameraScreenProps & React.RefAttributes<HTMLDivElement>>;
|
|
34
|
+
export default VideoSelfieFlipCameraScreen;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef } from 'react';
|
|
4
|
+
import { IconCameraFlip } from '@incodetech/prizma-core-icons';
|
|
5
|
+
import { PrizmaResultScreen } from './ResultScreen';
|
|
6
|
+
import './ScreenLayout.css';
|
|
7
|
+
/**
|
|
8
|
+
* Video Selfie — the camera-swap interstitial, built on the Result archetype
|
|
9
|
+
* (GUIDELINES.md §6-F). Figma: purple section `video selfie - flip camera
|
|
10
|
+
* 7.0 - switch to front`.
|
|
11
|
+
*
|
|
12
|
+
* The sibling of the flip-ID screen and deliberately its opposite: the camera
|
|
13
|
+
* is still open, so the section is drawn on the DARK surface with white copy.
|
|
14
|
+
* The archetype takes `theme="dark"` straight from `PrizmaScreenShell` — the
|
|
15
|
+
* same switch `DocumentCaptureCaptureScreen` uses — so the Title and every
|
|
16
|
+
* other token-bound child flips THROUGH the design system rather than around it
|
|
17
|
+
* (DEVIATIONS #DC-32). No hardcoded white anywhere.
|
|
18
|
+
*
|
|
19
|
+
* The mark is the canonical bank's `IconCameraFlip` in the archetype's own
|
|
20
|
+
* `glyph` slot (`PrizmaTitle.icon` only accepts status | spinner | none —
|
|
21
|
+
* DEVIATIONS #10), wrapped in the foundation's `__glyph` class so no module CSS
|
|
22
|
+
* is needed for it. No CTA and no verified tag: the section draws neither.
|
|
23
|
+
*
|
|
24
|
+
* Figma also draws the journey stepper at the top of this section. Archetype F
|
|
25
|
+
* has no slot for it and this module does not hand-roll one — reported.
|
|
26
|
+
*/
|
|
27
|
+
export const VideoSelfieFlipCameraScreen = forwardRef(({ strings, screenId = 'video-selfie-flip-camera',
|
|
28
|
+
/* A camera screen (dark, feed open, stepper drawn) — the chrome
|
|
29
|
+
contract drops the LOGO and keeps the footer (#VS-15). */
|
|
30
|
+
showHeader = false, showFooter = true, overrides, onAction, ...shell }, ref) => (_jsx(PrizmaResultScreen, { ref: ref, theme: "dark", showHeader: showHeader, showFooter: showFooter, glyph: _jsx("span", { className: [
|
|
31
|
+
'prizma-screen-layout__glyph',
|
|
32
|
+
'prizma-screen-layout__glyph--neutral',
|
|
33
|
+
overrides?.align === 'left' ? 'prizma-screen-layout__glyph--left' : '',
|
|
34
|
+
]
|
|
35
|
+
.filter(Boolean)
|
|
36
|
+
.join(' '), children: _jsx(IconCameraFlip, { size: "l" }) }), title: strings.flipCamera.title, verifiedLabel: strings.verifiedLabel, navLabel: strings.navLabel, screenId: screenId, overrides: overrides, onAction: onAction, ...shell })));
|
|
37
|
+
VideoSelfieFlipCameraScreen.displayName = 'VideoSelfieFlipCameraScreen';
|
|
38
|
+
export default VideoSelfieFlipCameraScreen;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type PrizmaResultScreenProps } from './ResultScreen';
|
|
3
|
+
import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
|
|
4
|
+
import type { VideoSelfieStrings } from './VideoSelfieStrings';
|
|
5
|
+
import './ScreenLayout.css';
|
|
6
|
+
export interface VideoSelfieFlipIdScreenProps extends Omit<PrizmaResultScreenProps, 'status' | 'title' | 'subtitle' | 'children' | 'verifiedLabel' | 'navLabel'> {
|
|
7
|
+
/** Module copy — this screen reads the `flipId` slice. */
|
|
8
|
+
strings: VideoSelfieStrings;
|
|
9
|
+
screenId?: string;
|
|
10
|
+
overrides?: PrizmaScreenOverrides;
|
|
11
|
+
onAction?: PrizmaScreenActionHandler;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Video Selfie — the flip interstitial between the two document sides, built on
|
|
15
|
+
* the Result archetype (GUIDELINES.md §6-F). Figma: purple section
|
|
16
|
+
* `video selfie - flip id 4.0 - default`.
|
|
17
|
+
*
|
|
18
|
+
* The module's shortest screen and the one moment the camera closes: a bare H2
|
|
19
|
+
* over the spinning-card artwork, no logo, no CTA (the flow advances itself),
|
|
20
|
+
* no verified tag and — alone among the camera-adjacent sections — no stepper.
|
|
21
|
+
* The archetype covers it exactly: `status="none"` for the bare title, the
|
|
22
|
+
* artwork in `children`, no `ctaLabel` so no band renders, `showHeader={true}`
|
|
23
|
+
* to drop the logo while still reserving the nav row so the offsets match every
|
|
24
|
+
* other screen (owner rule 2026-08-18), and `showFooter={true}` — the chrome is constant (#PI-8/#F-34) — because the
|
|
25
|
+
* section draws no tag.
|
|
26
|
+
*
|
|
27
|
+
* The artwork is Core's `PrizmaIllustrationIdFlip` in its `interstitial`
|
|
28
|
+
* variant — the card spinning inside the static circular arrows, exactly what
|
|
29
|
+
* this moment was designed for. Never redrawn here (§7, §10). Identical
|
|
30
|
+
* treatment to `IdCaptureFlipScreen`, which is the point: the same beat looks
|
|
31
|
+
* the same in every module.
|
|
32
|
+
*/
|
|
33
|
+
export declare const VideoSelfieFlipIdScreen: React.ForwardRefExoticComponent<VideoSelfieFlipIdScreenProps & React.RefAttributes<HTMLDivElement>>;
|
|
34
|
+
export default VideoSelfieFlipIdScreen;
|
|
@@ -0,0 +1,29 @@
|
|
|
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
|
+
* Video Selfie — the flip interstitial between the two document sides, built on
|
|
9
|
+
* the Result archetype (GUIDELINES.md §6-F). Figma: purple section
|
|
10
|
+
* `video selfie - flip id 4.0 - default`.
|
|
11
|
+
*
|
|
12
|
+
* The module's shortest screen and the one moment the camera closes: a bare H2
|
|
13
|
+
* over the spinning-card artwork, no logo, no CTA (the flow advances itself),
|
|
14
|
+
* no verified tag and — alone among the camera-adjacent sections — no stepper.
|
|
15
|
+
* The archetype covers it exactly: `status="none"` for the bare title, the
|
|
16
|
+
* artwork in `children`, no `ctaLabel` so no band renders, `showHeader={true}`
|
|
17
|
+
* to drop the logo while still reserving the nav row so the offsets match every
|
|
18
|
+
* other screen (owner rule 2026-08-18), and `showFooter={true}` — the chrome is constant (#PI-8/#F-34) — because the
|
|
19
|
+
* section draws no tag.
|
|
20
|
+
*
|
|
21
|
+
* The artwork is Core's `PrizmaIllustrationIdFlip` in its `interstitial`
|
|
22
|
+
* variant — the card spinning inside the static circular arrows, exactly what
|
|
23
|
+
* this moment was designed for. Never redrawn here (§7, §10). Identical
|
|
24
|
+
* treatment to `IdCaptureFlipScreen`, which is the point: the same beat looks
|
|
25
|
+
* the same in every module.
|
|
26
|
+
*/
|
|
27
|
+
export const VideoSelfieFlipIdScreen = forwardRef(({ strings, screenId = 'video-selfie-flip-id', showHeader = true, showFooter = true, overrides, onAction, ...shell }, ref) => (_jsx(PrizmaResultScreen, { ref: ref, showHeader: showHeader, showFooter: showFooter, title: strings.flipId.title, verifiedLabel: strings.verifiedLabel, navLabel: strings.navLabel, screenId: screenId, overrides: overrides, onAction: onAction, ...shell, children: _jsx(PrizmaIllustrationIdFlip, { variant: "interstitial" }) })));
|
|
28
|
+
VideoSelfieFlipIdScreen.displayName = 'VideoSelfieFlipIdScreen';
|
|
29
|
+
export default VideoSelfieFlipIdScreen;
|