@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,56 @@
|
|
|
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
|
+
* Geolocation — the error verdicts, built on the Result archetype
|
|
9
|
+
* (GUIDELINES.md §6-F, `PrizmaResultScreen`).
|
|
10
|
+
*
|
|
11
|
+
* ONE screen for the four purple `Geolocation.error.*` sections. All four draw
|
|
12
|
+
* the identical skeleton — a centred mark + title + supporting line over a
|
|
13
|
+
* single CTA — and differ only in copy and in which mark leads:
|
|
14
|
+
*
|
|
15
|
+
* - `locationUnavailable` — weak/inaccurate signal, "Try again"
|
|
16
|
+
* - `quit` — attempts exhausted, the step is required
|
|
17
|
+
* - `skip` — attempts exhausted, the step is optional
|
|
18
|
+
* - `noNetwork` — the connectivity family every module carries
|
|
19
|
+
*
|
|
20
|
+
* Figma draws the first three with a filled amber disc; Core renders the
|
|
21
|
+
* canonical OUTLINE warning mark (icon-outline sweep, DEVIATIONS #15). The
|
|
22
|
+
* module Figma is one sweep behind, exactly as Face Capture's and ID Capture's
|
|
23
|
+
* result screens were.
|
|
24
|
+
*
|
|
25
|
+
* `noNetwork` KEEPS the logo header and the verified tag even though its purple
|
|
26
|
+
* section draws neither: the owner rule of 2026-08-18 (#F-30, #F-34) makes the
|
|
27
|
+
* chrome constant across every screen so nothing shifts between states, and all
|
|
28
|
+
* modules' connectivity screens must read identically (#PI-8).
|
|
29
|
+
*
|
|
30
|
+
* The Wi-Fi mark is Figma's `Icon / Wi-Fi`; Core's `PrizmaTitle` icon allowlist
|
|
31
|
+
* is `status | spinner | none`, so it rides the archetype's `glyph` slot with
|
|
32
|
+
* the foundation's `__glyph` class, drawn from the canonical icon bank (#10).
|
|
33
|
+
*/
|
|
34
|
+
export const GeolocationErrorScreen = forwardRef(({ strings, variant = 'locationUnavailable', screenId = `geolocation-error-${variant}`, overrides, onAction, ...shell }, ref) => {
|
|
35
|
+
const noConnection = variant === 'noNetwork';
|
|
36
|
+
const copy = noConnection
|
|
37
|
+
? strings.error.noConnection
|
|
38
|
+
: variant === 'quit'
|
|
39
|
+
? strings.error.quit
|
|
40
|
+
: variant === 'skip'
|
|
41
|
+
? strings.error.skip
|
|
42
|
+
: strings.error.locationUnavailable;
|
|
43
|
+
return (_jsx(PrizmaResultScreen, { ref: ref,
|
|
44
|
+
/* The connectivity screen leads with the Wi-Fi glyph instead of a
|
|
45
|
+
status mark; the other three carry the canonical warning mark, which
|
|
46
|
+
is what the module Figma draws (amber, not red). */
|
|
47
|
+
status: noConnection ? 'none' : 'warning', glyph: noConnection ? (_jsx("span", { className: [
|
|
48
|
+
'prizma-screen-layout__glyph',
|
|
49
|
+
'prizma-screen-layout__glyph--negative',
|
|
50
|
+
overrides?.align === 'left' ? 'prizma-screen-layout__glyph--left' : '',
|
|
51
|
+
]
|
|
52
|
+
.filter(Boolean)
|
|
53
|
+
.join(' '), children: _jsx(IconWifiOff, { size: "l" }) })) : undefined, title: copy.title, subtitle: copy.subtitle, ctaLabel: copy.ctaLabel, verifiedLabel: strings.verifiedLabel, navLabel: strings.navLabel, screenId: screenId, overrides: overrides, onAction: onAction, ...shell }));
|
|
54
|
+
});
|
|
55
|
+
GeolocationErrorScreen.displayName = 'GeolocationErrorScreen';
|
|
56
|
+
export default GeolocationErrorScreen;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import React, { type ReactNode } from 'react';
|
|
2
|
+
import { type PrizmaTutorialScreenProps } from './TutorialScreen';
|
|
3
|
+
import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
|
|
4
|
+
import type { GeolocationIntroState, GeolocationStrings } from './GeolocationStrings';
|
|
5
|
+
import './ScreenLayout.css';
|
|
6
|
+
export interface GeolocationIntroScreenProps extends Omit<PrizmaTutorialScreenProps, 'title' | 'subtitle' | 'disclaimer' | 'ctaLabel' | 'ctaLoadingLabel' | 'illustration' | 'verifiedLabel' | 'navLabel'> {
|
|
7
|
+
/** Module copy — this screen reads the `intro` slice (+ shared labels). */
|
|
8
|
+
strings: GeolocationStrings;
|
|
9
|
+
/** Which purple intro section to render. Default `request`. */
|
|
10
|
+
state?: GeolocationIntroState;
|
|
11
|
+
/**
|
|
12
|
+
* The resolved place shown on `located` ("Mexico City, Mexico"). Runtime data,
|
|
13
|
+
* never copy — the host's geocoder produces it, so it does not belong in
|
|
14
|
+
* `strings`. Falls back to `strings.intro.located.subtitle`.
|
|
15
|
+
*/
|
|
16
|
+
location?: string;
|
|
17
|
+
/** Replace Core's geolocation illustration (host artwork / a still). */
|
|
18
|
+
illustration?: ReactNode;
|
|
19
|
+
screenId?: string;
|
|
20
|
+
overrides?: PrizmaScreenOverrides;
|
|
21
|
+
onAction?: PrizmaScreenActionHandler;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Geolocation — the two intro sections, built on the `PrizmaTutorialScreen`
|
|
25
|
+
* archetype (GUIDELINES.md §6-A).
|
|
26
|
+
*
|
|
27
|
+
* ONE screen for both purple sections, because they draw the identical
|
|
28
|
+
* skeleton — nav → title block → illustration filling the middle → CTA → tag —
|
|
29
|
+
* and differ only in copy and in which state of the illustration is showing:
|
|
30
|
+
*
|
|
31
|
+
* - `request` (`geolocation.default`) — "We need to determine your current
|
|
32
|
+
* location", inactive artwork, CTA asks for permission.
|
|
33
|
+
* - `located` (`Geolocation.continue`) — "You are currently in:" with the
|
|
34
|
+
* resolved place, active artwork (brand pin dropped), CTA advances the flow.
|
|
35
|
+
*
|
|
36
|
+
* The artwork is Core's own `PrizmaIllustrationGeolocation`, whose `active`
|
|
37
|
+
* axis is exactly this pair of states — nothing is inlined here (§10).
|
|
38
|
+
*
|
|
39
|
+
* Its drawing differs from the module Figma's, which draws a folded street map
|
|
40
|
+
* with a pin dropped on it — grey with a ✕ through the pin on `geolocation.default`,
|
|
41
|
+
* brand blue on `Geolocation.continue`. Core's illustration wins (rule 4), and
|
|
42
|
+
* the divergence is ESCALATED, NOT RESOLVED: DEVIATIONS.md still has no
|
|
43
|
+
* Geolocation section, so there is no numbered ruling to cite yet.
|
|
44
|
+
*
|
|
45
|
+
* Figma also draws a nav ✕ on both sections; it is deliberately not built here
|
|
46
|
+
* (#PI-9).
|
|
47
|
+
*/
|
|
48
|
+
export declare const GeolocationIntroScreen: React.ForwardRefExoticComponent<GeolocationIntroScreenProps & React.RefAttributes<HTMLDivElement>>;
|
|
49
|
+
export default GeolocationIntroScreen;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef } from 'react';
|
|
4
|
+
import { PrizmaIllustrationGeolocation } from '@incodetech/prizma-core-web/illustration-geolocation';
|
|
5
|
+
import { PrizmaTutorialScreen } from './TutorialScreen';
|
|
6
|
+
import './ScreenLayout.css';
|
|
7
|
+
/**
|
|
8
|
+
* Geolocation — the two intro sections, built on the `PrizmaTutorialScreen`
|
|
9
|
+
* archetype (GUIDELINES.md §6-A).
|
|
10
|
+
*
|
|
11
|
+
* ONE screen for both purple sections, because they draw the identical
|
|
12
|
+
* skeleton — nav → title block → illustration filling the middle → CTA → tag —
|
|
13
|
+
* and differ only in copy and in which state of the illustration is showing:
|
|
14
|
+
*
|
|
15
|
+
* - `request` (`geolocation.default`) — "We need to determine your current
|
|
16
|
+
* location", inactive artwork, CTA asks for permission.
|
|
17
|
+
* - `located` (`Geolocation.continue`) — "You are currently in:" with the
|
|
18
|
+
* resolved place, active artwork (brand pin dropped), CTA advances the flow.
|
|
19
|
+
*
|
|
20
|
+
* The artwork is Core's own `PrizmaIllustrationGeolocation`, whose `active`
|
|
21
|
+
* axis is exactly this pair of states — nothing is inlined here (§10).
|
|
22
|
+
*
|
|
23
|
+
* Its drawing differs from the module Figma's, which draws a folded street map
|
|
24
|
+
* with a pin dropped on it — grey with a ✕ through the pin on `geolocation.default`,
|
|
25
|
+
* brand blue on `Geolocation.continue`. Core's illustration wins (rule 4), and
|
|
26
|
+
* the divergence is ESCALATED, NOT RESOLVED: DEVIATIONS.md still has no
|
|
27
|
+
* Geolocation section, so there is no numbered ruling to cite yet.
|
|
28
|
+
*
|
|
29
|
+
* Figma also draws a nav ✕ on both sections; it is deliberately not built here
|
|
30
|
+
* (#PI-9).
|
|
31
|
+
*/
|
|
32
|
+
export const GeolocationIntroScreen = forwardRef(({ strings, state = 'request', location, illustration, screenId = `geolocation-intro-${state}`, overrides, onAction, ...shell }, ref) => {
|
|
33
|
+
const located = state === 'located';
|
|
34
|
+
const copy = located ? strings.intro.located : strings.intro.request;
|
|
35
|
+
return (_jsx(PrizmaTutorialScreen, { ref: ref, title: copy.title, subtitle: located ? (location ?? copy.subtitle) : copy.subtitle, ctaLabel: copy.ctaLabel, illustration: illustration ?? _jsx(PrizmaIllustrationGeolocation, { active: located, decorative: true }), verifiedLabel: strings.verifiedLabel, navLabel: strings.navLabel, screenId: screenId, overrides: overrides, onAction: onAction, ...shell }));
|
|
36
|
+
});
|
|
37
|
+
GeolocationIntroScreen.displayName = 'GeolocationIntroScreen';
|
|
38
|
+
export default GeolocationIntroScreen;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type PrizmaResultScreenProps } from './ResultScreen';
|
|
3
|
+
import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
|
|
4
|
+
import type { GeolocationPermissionVariant, GeolocationStrings } from './GeolocationStrings';
|
|
5
|
+
import './ScreenLayout.css';
|
|
6
|
+
export interface GeolocationPermissionScreenProps extends Omit<PrizmaResultScreenProps, 'status' | 'title' | 'subtitle' | 'glyph' | 'ctaLabel' | 'secondaryCtaLabel' | 'verifiedLabel' | 'navLabel'> {
|
|
7
|
+
/** Module copy — this screen reads the `permission` slice. */
|
|
8
|
+
strings: GeolocationStrings;
|
|
9
|
+
/** Which second action the flow offers. Default `skip`. */
|
|
10
|
+
variant?: GeolocationPermissionVariant;
|
|
11
|
+
screenId?: string;
|
|
12
|
+
overrides?: PrizmaScreenOverrides;
|
|
13
|
+
onAction?: PrizmaScreenActionHandler;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Geolocation — "Allow location access", built on the Result archetype
|
|
17
|
+
* (GUIDELINES.md §6-F, `PrizmaResultScreen`).
|
|
18
|
+
*
|
|
19
|
+
* ONE screen for the two purple sections `Geolocation.AllowLocation` and
|
|
20
|
+
* `Geolocation.AllowLocation.quit`: the user declined the OS prompt, so the
|
|
21
|
+
* screen reports the blocked state (warning mark → title → subtitle) and offers
|
|
22
|
+
* to open the OS settings. They differ only in the second action — skip the
|
|
23
|
+
* step, or quit the process — which is a copy variant, not a second screen.
|
|
24
|
+
*
|
|
25
|
+
* The warning mark is Core's outline status icon, not the module Figma's filled
|
|
26
|
+
* amber disc: the outline sweep of 2026-07-28 settled that for every module
|
|
27
|
+
* (DEVIATIONS #15, #DC-34).
|
|
28
|
+
*
|
|
29
|
+
* Figma draws the filled primary ABOVE the outlined second action on both
|
|
30
|
+
* sections ("Open settings" over "Skip this step" / "Quit process"); archetype F
|
|
31
|
+
* stacks the secondary first (`ResultScreen.tsx`), so these two screens ship
|
|
32
|
+
* inverted against their frames. The archetype owns the order and no module
|
|
33
|
+
* re-declares it — archetype F needs a `ctaOrder` slot alongside the
|
|
34
|
+
* `ctaOrientation` it already has. ESCALATED, NOT RESOLVED: DEVIATIONS.md still
|
|
35
|
+
* has no Geolocation section, so there is no ruling to cite yet.
|
|
36
|
+
*/
|
|
37
|
+
export declare const GeolocationPermissionScreen: React.ForwardRefExoticComponent<GeolocationPermissionScreenProps & React.RefAttributes<HTMLDivElement>>;
|
|
38
|
+
export default GeolocationPermissionScreen;
|
|
@@ -0,0 +1,30 @@
|
|
|
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
|
+
* Geolocation — "Allow location access", built on the Result archetype
|
|
8
|
+
* (GUIDELINES.md §6-F, `PrizmaResultScreen`).
|
|
9
|
+
*
|
|
10
|
+
* ONE screen for the two purple sections `Geolocation.AllowLocation` and
|
|
11
|
+
* `Geolocation.AllowLocation.quit`: the user declined the OS prompt, so the
|
|
12
|
+
* screen reports the blocked state (warning mark → title → subtitle) and offers
|
|
13
|
+
* to open the OS settings. They differ only in the second action — skip the
|
|
14
|
+
* step, or quit the process — which is a copy variant, not a second screen.
|
|
15
|
+
*
|
|
16
|
+
* The warning mark is Core's outline status icon, not the module Figma's filled
|
|
17
|
+
* amber disc: the outline sweep of 2026-07-28 settled that for every module
|
|
18
|
+
* (DEVIATIONS #15, #DC-34).
|
|
19
|
+
*
|
|
20
|
+
* Figma draws the filled primary ABOVE the outlined second action on both
|
|
21
|
+
* sections ("Open settings" over "Skip this step" / "Quit process"); archetype F
|
|
22
|
+
* stacks the secondary first (`ResultScreen.tsx`), so these two screens ship
|
|
23
|
+
* inverted against their frames. The archetype owns the order and no module
|
|
24
|
+
* re-declares it — archetype F needs a `ctaOrder` slot alongside the
|
|
25
|
+
* `ctaOrientation` it already has. ESCALATED, NOT RESOLVED: DEVIATIONS.md still
|
|
26
|
+
* has no Geolocation section, so there is no ruling to cite yet.
|
|
27
|
+
*/
|
|
28
|
+
export const GeolocationPermissionScreen = forwardRef(({ strings, variant = 'skip', screenId = `geolocation-permission-${variant}`, overrides, onAction, ...shell }, ref) => (_jsx(PrizmaResultScreen, { ref: ref, status: "warning", title: strings.permission.title, subtitle: strings.permission.subtitle, ctaLabel: strings.permission.ctaLabel, secondaryCtaLabel: variant === 'quit' ? strings.permission.quitLabel : strings.permission.skipLabel, verifiedLabel: strings.verifiedLabel, navLabel: strings.navLabel, screenId: screenId, overrides: overrides, onAction: onAction, ...shell })));
|
|
29
|
+
GeolocationPermissionScreen.displayName = 'GeolocationPermissionScreen';
|
|
30
|
+
export default GeolocationPermissionScreen;
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The two intro sections. Same layout — title block, geolocation illustration,
|
|
3
|
+
* one CTA — so they are states of one screen rather than two screens:
|
|
4
|
+
* - `request` — `geolocation.default`, location not yet known (inactive artwork)
|
|
5
|
+
* - `located` — `Geolocation.continue`, the resolved place in the subtitle
|
|
6
|
+
* (active artwork: brand pin dropped on the map)
|
|
7
|
+
*/
|
|
8
|
+
export type GeolocationIntroState = 'request' | 'located';
|
|
9
|
+
/**
|
|
10
|
+
* The `Geolocation.AllowLocation*` sections. Identical screens except for the
|
|
11
|
+
* second action: the flow either lets the user skip the step or forces a quit.
|
|
12
|
+
*/
|
|
13
|
+
export type GeolocationPermissionVariant = 'skip' | 'quit';
|
|
14
|
+
/**
|
|
15
|
+
* The `Geolocation.error.*` sections.
|
|
16
|
+
* - `locationUnavailable` — weak signal, retry is offered
|
|
17
|
+
* - `quit` — attempts exhausted and the step is required
|
|
18
|
+
* - `skip` — attempts exhausted but the step is optional
|
|
19
|
+
* - `noNetwork` — the connectivity family (Wi-Fi glyph, DEVIATIONS #10)
|
|
20
|
+
*/
|
|
21
|
+
export type GeolocationErrorVariant = 'locationUnavailable' | 'quit' | 'skip' | 'noNetwork';
|
|
22
|
+
/**
|
|
23
|
+
* The nine `Geolocation.allowLocation.*` sections of the Web group. Each is the
|
|
24
|
+
* same screen with a different step list, because "turn location back on" is a
|
|
25
|
+
* different journey in every browser.
|
|
26
|
+
*
|
|
27
|
+
* `samsungAndroid` is the section Figma labels `…web.opera.Android` a second
|
|
28
|
+
* time (4936:72487): its rows read "Sites and downloads" / "Site permissions"
|
|
29
|
+
* and its return row draws the Samsung Internet mark, so it is Samsung Internet,
|
|
30
|
+
* not a second Opera. Named for what it draws.
|
|
31
|
+
*/
|
|
32
|
+
export type GeolocationBrowser = 'safariIos' | 'chromeIos' | 'firefoxIos' | 'operaIos' | 'chromeAndroid' | 'firefoxAndroid' | 'operaAndroid' | 'samsungAndroid' | 'unrecognizedAndroid';
|
|
33
|
+
/**
|
|
34
|
+
* What a browser step is ABOUT, not what glyph it draws. The screen owns the
|
|
35
|
+
* kind → canonical bank icon map so no host ever passes artwork, and so the
|
|
36
|
+
* substitutions live in exactly one place (DEVIATIONS #DC-23 precedent — Figma
|
|
37
|
+
* draws OS/browser chrome the Prizma icon bank does not ship).
|
|
38
|
+
*/
|
|
39
|
+
export type GeolocationStepKind =
|
|
40
|
+
/** The browser's address bar (Safari's "AA" control). */
|
|
41
|
+
'addressBar'
|
|
42
|
+
/** The ⋮ / ⋯ overflow menu. */
|
|
43
|
+
| 'menu'
|
|
44
|
+
/** A settings screen (browser settings, site settings). */
|
|
45
|
+
| 'settings'
|
|
46
|
+
/** A permissions list. */
|
|
47
|
+
| 'permissions'
|
|
48
|
+
/** The location permission itself. */
|
|
49
|
+
| 'location'
|
|
50
|
+
/** The device's own Settings app. */
|
|
51
|
+
| 'device'
|
|
52
|
+
/** The app list / app drawer. */
|
|
53
|
+
| 'apps'
|
|
54
|
+
/** "Return here and refresh" — Figma draws the browser's own logo. */
|
|
55
|
+
| 'return';
|
|
56
|
+
/** One row of a browser's step list. */
|
|
57
|
+
export interface GeolocationStep {
|
|
58
|
+
/** Chooses the leading canonical icon. Never artwork. */
|
|
59
|
+
kind: GeolocationStepKind;
|
|
60
|
+
/**
|
|
61
|
+
* The whole instruction as one line. Figma bolds the actionable fragment
|
|
62
|
+
* inside the sentence; Core's row title is a plain `string`, so the emphasis
|
|
63
|
+
* is not expressible — reported, not worked around (see the screen's docs).
|
|
64
|
+
*/
|
|
65
|
+
label: string;
|
|
66
|
+
}
|
|
67
|
+
/** One browser's slice of the step-list screen. */
|
|
68
|
+
export interface GeolocationBrowserSteps {
|
|
69
|
+
/**
|
|
70
|
+
* The browser name under the title ("Safari", "Chrome · Android"). Figma
|
|
71
|
+
* draws it on the Safari section only and leaves the other eight to identify
|
|
72
|
+
* themselves through artwork — each section's last row leads with that
|
|
73
|
+
* browser's own logo. Prizma never bundles brand rasters (rule 1,
|
|
74
|
+
* GUIDELINES §10), so without a label those sections are indistinguishable:
|
|
75
|
+
* `…chrome.iOS`, `…firefox.iOS` and `…chrome.android` carry the same four
|
|
76
|
+
* rows and would render as one screen three times. Every browser therefore
|
|
77
|
+
* SHOULD carry a label, extending the precedent Figma itself sets on Safari.
|
|
78
|
+
* Still optional so a host that ships its own logo artwork can drop it.
|
|
79
|
+
*/
|
|
80
|
+
label?: string;
|
|
81
|
+
/** The steps, in order. */
|
|
82
|
+
steps: GeolocationStep[];
|
|
83
|
+
}
|
|
84
|
+
export interface GeolocationStrings {
|
|
85
|
+
/** "verified by" attribution in the footer tag. */
|
|
86
|
+
verifiedLabel: string;
|
|
87
|
+
/** Accessible name for the logo nav row. */
|
|
88
|
+
navLabel?: string;
|
|
89
|
+
/** geolocation.default + Geolocation.continue */
|
|
90
|
+
intro: {
|
|
91
|
+
/** `geolocation.default` — "We need to determine your current location". */
|
|
92
|
+
request: {
|
|
93
|
+
title: string;
|
|
94
|
+
subtitle?: string;
|
|
95
|
+
/** Primary CTA ("Continue"). */
|
|
96
|
+
ctaLabel: string;
|
|
97
|
+
};
|
|
98
|
+
/**
|
|
99
|
+
* `Geolocation.continue` — "You are currently in:". The place itself
|
|
100
|
+
* ("Mexico City, Mexico") is runtime data, not copy: it arrives as the
|
|
101
|
+
* screen's `location` prop and lands in the subtitle. `subtitle` here is the
|
|
102
|
+
* fallback for hosts that have no resolved place to show.
|
|
103
|
+
*/
|
|
104
|
+
located: {
|
|
105
|
+
title: string;
|
|
106
|
+
subtitle?: string;
|
|
107
|
+
ctaLabel: string;
|
|
108
|
+
};
|
|
109
|
+
};
|
|
110
|
+
/** Geolocation.AllowLocation + Geolocation.AllowLocation.quit */
|
|
111
|
+
permission: {
|
|
112
|
+
/** H2 ("Allow location access"). */
|
|
113
|
+
title: string;
|
|
114
|
+
/** H5 ("to complete the process"). */
|
|
115
|
+
subtitle?: string;
|
|
116
|
+
/** Primary CTA ("Open settings"). */
|
|
117
|
+
ctaLabel: string;
|
|
118
|
+
/** Second action on the `skip` variant ("Skip this step"). */
|
|
119
|
+
skipLabel: string;
|
|
120
|
+
/** Second action on the `quit` variant ("Quit process"). */
|
|
121
|
+
quitLabel: string;
|
|
122
|
+
};
|
|
123
|
+
/** Geolocation.allowLocation.<browser> — the Web group's nine sections. */
|
|
124
|
+
browserSteps: {
|
|
125
|
+
/** H2, shared by all nine ("Follow the next steps to allow Incode to access your location"). */
|
|
126
|
+
title: string;
|
|
127
|
+
/** Primary CTA ("Refresh page"). */
|
|
128
|
+
ctaLabel: string;
|
|
129
|
+
/** Second action ("Skip this step"). Omit on flows where the step is required. */
|
|
130
|
+
skipLabel?: string;
|
|
131
|
+
/** One entry per browser. */
|
|
132
|
+
browsers: Record<GeolocationBrowser, GeolocationBrowserSteps>;
|
|
133
|
+
};
|
|
134
|
+
/** Geolocation.error.* — one slice per variant. */
|
|
135
|
+
error: {
|
|
136
|
+
locationUnavailable: {
|
|
137
|
+
title: string;
|
|
138
|
+
subtitle?: string;
|
|
139
|
+
ctaLabel: string;
|
|
140
|
+
};
|
|
141
|
+
quit: {
|
|
142
|
+
title: string;
|
|
143
|
+
subtitle?: string;
|
|
144
|
+
ctaLabel: string;
|
|
145
|
+
};
|
|
146
|
+
skip: {
|
|
147
|
+
title: string;
|
|
148
|
+
subtitle?: string;
|
|
149
|
+
ctaLabel: string;
|
|
150
|
+
};
|
|
151
|
+
noConnection: {
|
|
152
|
+
title: string;
|
|
153
|
+
subtitle?: string;
|
|
154
|
+
ctaLabel: string;
|
|
155
|
+
};
|
|
156
|
+
};
|
|
157
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// Geolocation — copy contract.
|
|
2
|
+
//
|
|
3
|
+
// Figma: `📍 Geolocation - Screens specs + Localization` and
|
|
4
|
+
// `📍 Geolocation 🌐 Web - Allow location - Screens specs + Localization`
|
|
5
|
+
// (xg1t3GnUS95A4bLrM3lyOG, page 2002:1727). The two parent groups hold these
|
|
6
|
+
// purple sections:
|
|
7
|
+
//
|
|
8
|
+
// geolocation.default — the location request intro
|
|
9
|
+
// geolocation.permission — the NATIVE iOS permission alert (not built, see below)
|
|
10
|
+
// Geolocation.AllowLocation — permission refused, "Skip this step"
|
|
11
|
+
// Geolocation.AllowLocation.quit — permission refused, "Quit process"
|
|
12
|
+
// Geolocation.continue — located, shows the resolved place
|
|
13
|
+
// Geolocation.error.locationUnavailable— signal too weak, retry
|
|
14
|
+
// Geolocation.error.quit — attempts exhausted, step is required
|
|
15
|
+
// Geolocation.error.skip — attempts exhausted, step is optional
|
|
16
|
+
// Geolocation.error.noNetwork — the connectivity family every module carries
|
|
17
|
+
// Geolocation.allowLocation.<browser> — nine per-browser "turn location on" step lists
|
|
18
|
+
//
|
|
19
|
+
// `geolocation.permission` is the iOS system alert ("Allow 'Incode' to use your
|
|
20
|
+
// location?" over a live Apple Maps tile) drawn as flow documentation. It is not
|
|
21
|
+
// a Prizma surface: none of its chrome exists in Core and rebuilding it would
|
|
22
|
+
// mean inventing primitives and shipping platform rasters — both forbidden
|
|
23
|
+
// (rule 1, GUIDELINES §10). Same call as ID Capture's OS dialogs (DEVIATIONS
|
|
24
|
+
// #IDC-26) and Document Capture's iOS action sheets (#DC-20).
|
|
25
|
+
//
|
|
26
|
+
// No hardcoded English anywhere in a screen: every visible string arrives here,
|
|
27
|
+
// so the host's locale pack drives the module (the file ships ES + PT columns).
|
|
28
|
+
export {};
|
|
@@ -0,0 +1,25 @@
|
|
|
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 IdCaptureAgeVerificationScreenProps extends Omit<PrizmaListScreenProps, 'title' | 'subtitle' | 'children' | 'ctaLabel' | 'verifiedLabel' | 'navLabel'> {
|
|
7
|
+
/** Module copy — this screen reads the `ageVerification` slice. */
|
|
8
|
+
strings: IdCaptureStrings;
|
|
9
|
+
screenId?: string;
|
|
10
|
+
overrides?: PrizmaScreenOverrides;
|
|
11
|
+
onAction?: PrizmaScreenActionHandler;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* ID Capture — age-verification consent, built on the `PrizmaListScreen`
|
|
15
|
+
* archetype (GUIDELINES.md §6-G).
|
|
16
|
+
* Figma: purple section `1-1-2-id` of the `Age verification` group.
|
|
17
|
+
*
|
|
18
|
+
* Logo nav → Title → three reassurance rows → CTA → verified tag. The rows are
|
|
19
|
+
* Core's `PrizmaCardListCommonIssues` (Figma `list-unordered`), so the row
|
|
20
|
+
* geometry, the icon slot and the title/description typography are Core's, and
|
|
21
|
+
* the Spacing/24 under the title block is the archetype's — this file used to
|
|
22
|
+
* declare it as `.id-capture-info-list` (deleted; #F-31).
|
|
23
|
+
*/
|
|
24
|
+
export declare const IdCaptureAgeVerificationScreen: React.ForwardRefExoticComponent<IdCaptureAgeVerificationScreenProps & React.RefAttributes<HTMLDivElement>>;
|
|
25
|
+
export default IdCaptureAgeVerificationScreen;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef } from 'react';
|
|
4
|
+
import { IconCalendar, IconIdFrontScan, IconLockCheck } 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 rows' leading icons, in the order the purple section lists them:
|
|
10
|
+
* scan the ID · we only read the date of birth · the rest is deleted. From the
|
|
11
|
+
* canonical bank only (§10) — Figma draws small ID-card thumbnails, which the
|
|
12
|
+
* 24px `Icon/Size/m` row slot of Core's redesigned list does not take.
|
|
13
|
+
* DEVIATIONS.md #IDC-24.
|
|
14
|
+
*/
|
|
15
|
+
const ROW_ICONS = [
|
|
16
|
+
_jsx(IconIdFrontScan, { size: "m" }, "scan"),
|
|
17
|
+
_jsx(IconCalendar, { size: "m" }, "dob"),
|
|
18
|
+
_jsx(IconLockCheck, { size: "m" }, "privacy"),
|
|
19
|
+
];
|
|
20
|
+
/**
|
|
21
|
+
* ID Capture — age-verification consent, built on the `PrizmaListScreen`
|
|
22
|
+
* archetype (GUIDELINES.md §6-G).
|
|
23
|
+
* Figma: purple section `1-1-2-id` of the `Age verification` group.
|
|
24
|
+
*
|
|
25
|
+
* Logo nav → Title → three reassurance rows → CTA → verified tag. The rows are
|
|
26
|
+
* Core's `PrizmaCardListCommonIssues` (Figma `list-unordered`), so the row
|
|
27
|
+
* geometry, the icon slot and the title/description typography are Core's, and
|
|
28
|
+
* the Spacing/24 under the title block is the archetype's — this file used to
|
|
29
|
+
* declare it as `.id-capture-info-list` (deleted; #F-31).
|
|
30
|
+
*/
|
|
31
|
+
export const IdCaptureAgeVerificationScreen = forwardRef(({ strings, screenId = 'id-capture-age-verification', overrides, onAction, ...shell }, ref) => (_jsx(PrizmaListScreen, { ref: ref, title: strings.ageVerification.title, subtitle: strings.ageVerification.subtitle, ctaLabel: strings.ageVerification.ctaLabel, verifiedLabel: strings.verifiedLabel, navLabel: strings.navLabel, screenId: screenId, overrides: overrides, onAction: onAction, ...shell, children: _jsx(PrizmaCardListCommonIssues, { items: strings.ageVerification.rows.map((row, i) => ({
|
|
32
|
+
icon: ROW_ICONS[i % ROW_ICONS.length],
|
|
33
|
+
title: row.title,
|
|
34
|
+
subtitle: row.description,
|
|
35
|
+
showSubtitle: Boolean(row.description),
|
|
36
|
+
})) }) })));
|
|
37
|
+
IdCaptureAgeVerificationScreen.displayName = 'IdCaptureAgeVerificationScreen';
|
|
38
|
+
export default IdCaptureAgeVerificationScreen;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import React, { type ReactNode } from 'react';
|
|
2
|
+
import { type PrizmaScreenShellProps } from './ScreenShell';
|
|
3
|
+
import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
|
|
4
|
+
import type { IdCaptureDocumentType, IdCaptureStrings } from './IdCaptureStrings';
|
|
5
|
+
import './ScreenLayout.css';
|
|
6
|
+
import './IdCaptureLayout.css';
|
|
7
|
+
export interface IdCaptureAnalyzingScreenProps extends Omit<PrizmaScreenShellProps, 'dark' | 'title' | 'children'> {
|
|
8
|
+
/** Module copy — this screen reads the `analyzing` slice. */
|
|
9
|
+
strings: IdCaptureStrings;
|
|
10
|
+
/** Which document was captured — Core `PrizmaIdCapture.type`. */
|
|
11
|
+
documentType?: IdCaptureDocumentType;
|
|
12
|
+
/** Portrait document orientation — the `↕️ vertical` groups. */
|
|
13
|
+
vertical?: boolean;
|
|
14
|
+
/** How far along the upload/analysis is, 0–100 (Core `PrizmaLoadingBar`). */
|
|
15
|
+
progress?: number;
|
|
16
|
+
/** The captured document still (<img>) being analyzed. */
|
|
17
|
+
still?: ReactNode;
|
|
18
|
+
screenId?: string;
|
|
19
|
+
overrides?: PrizmaScreenOverrides;
|
|
20
|
+
onAction?: PrizmaScreenActionHandler;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* ID Capture — analyzing the captured still.
|
|
24
|
+
* Figma: purple sections `1-9-1` / `1-9-2-id-analyzing`,
|
|
25
|
+
* `1-16-1` / `1-16-2-id-back-analyzing`, `3-9-1-id-passport-analyzing`,
|
|
26
|
+
* `2-9-1-id-vertical-analyzing`, `4-9-1-id-passport-vertical-analyzing`.
|
|
27
|
+
*
|
|
28
|
+
* NOT the Processing archetype (§6-C) and not a spinner screen: every purple
|
|
29
|
+
* analyzing section puts a `Loading bar` + its status line in the SAME top band
|
|
30
|
+
* the Title occupies on the result screens, with the still below it in the
|
|
31
|
+
* capture frame — the identical three-band recipe (see `IdCaptureLayout.css`),
|
|
32
|
+
* so the screen is the result layout with the Title swapped for the bar. Core
|
|
33
|
+
* owns both halves: `PrizmaLoadingBar` draws the track, the fill and the status
|
|
34
|
+
* title, and `PrizmaIdCapture`'s `analyzing` state draws the positive frame and
|
|
35
|
+
* the sweep over the still.
|
|
36
|
+
*
|
|
37
|
+
* The bar's `state="analyzing"` is what tints the fill; the screen never picks
|
|
38
|
+
* a colour of its own.
|
|
39
|
+
*/
|
|
40
|
+
export declare const IdCaptureAnalyzingScreen: React.ForwardRefExoticComponent<IdCaptureAnalyzingScreenProps & React.RefAttributes<HTMLDivElement>>;
|
|
41
|
+
export default IdCaptureAnalyzingScreen;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef } from 'react';
|
|
4
|
+
import { PrizmaLoadingBar } from '@incodetech/prizma-core-web/loading-bar';
|
|
5
|
+
import { PrizmaIdCapture } from '@incodetech/prizma-core-web/id-capture';
|
|
6
|
+
import { PrizmaTag } from '@incodetech/prizma-core-web/tag';
|
|
7
|
+
import { PrizmaScreenShell } from './ScreenShell';
|
|
8
|
+
import './ScreenLayout.css';
|
|
9
|
+
import './IdCaptureLayout.css';
|
|
10
|
+
/**
|
|
11
|
+
* ID Capture — analyzing the captured still.
|
|
12
|
+
* Figma: purple sections `1-9-1` / `1-9-2-id-analyzing`,
|
|
13
|
+
* `1-16-1` / `1-16-2-id-back-analyzing`, `3-9-1-id-passport-analyzing`,
|
|
14
|
+
* `2-9-1-id-vertical-analyzing`, `4-9-1-id-passport-vertical-analyzing`.
|
|
15
|
+
*
|
|
16
|
+
* NOT the Processing archetype (§6-C) and not a spinner screen: every purple
|
|
17
|
+
* analyzing section puts a `Loading bar` + its status line in the SAME top band
|
|
18
|
+
* the Title occupies on the result screens, with the still below it in the
|
|
19
|
+
* capture frame — the identical three-band recipe (see `IdCaptureLayout.css`),
|
|
20
|
+
* so the screen is the result layout with the Title swapped for the bar. Core
|
|
21
|
+
* owns both halves: `PrizmaLoadingBar` draws the track, the fill and the status
|
|
22
|
+
* title, and `PrizmaIdCapture`'s `analyzing` state draws the positive frame and
|
|
23
|
+
* the sweep over the still.
|
|
24
|
+
*
|
|
25
|
+
* The bar's `state="analyzing"` is what tints the fill; the screen never picks
|
|
26
|
+
* a colour of its own.
|
|
27
|
+
*/
|
|
28
|
+
export const IdCaptureAnalyzingScreen = forwardRef(({ strings, documentType = 'id', vertical = false, progress = 30, still, screenId = 'id-capture-analyzing', overrides, onAction, ...shell }, ref) => (_jsxs(PrizmaScreenShell, { ref: ref, ...shell, children: [_jsxs("div", { className: "prizma-screen-layout__content prizma-screen-layout__content--no-nav id-capture-on-surface", children: [_jsx("div", { className: "id-capture-band id-capture-band--top", children: _jsx(PrizmaLoadingBar, { progress: progress, state: "analyzing", showTitle: true, title: strings.analyzing.title }) }), _jsx(PrizmaIdCapture, { type: documentType, state: "analyzing", isVertical: vertical, mode: "overlay", encryptedLabel: strings.encryptedLabel, still: still }), _jsx("div", { className: "id-capture-band" })] }), _jsx("div", { className: "prizma-screen-layout__footer", children: _jsx(PrizmaTag, { label: strings.verifiedLabel }) })] })));
|
|
29
|
+
IdCaptureAnalyzingScreen.displayName = 'IdCaptureAnalyzingScreen';
|
|
30
|
+
export default IdCaptureAnalyzingScreen;
|
|
@@ -0,0 +1,31 @@
|
|
|
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 IdCaptureCommonIssuesScreenProps extends Omit<PrizmaListScreenProps, 'title' | 'children' | 'glyph' | 'ctaLabel' | 'linkLabel' | 'verifiedLabel' | 'navLabel'> {
|
|
7
|
+
/** Module copy — this screen reads the `commonIssues` slice. */
|
|
8
|
+
strings: IdCaptureStrings;
|
|
9
|
+
screenId?: string;
|
|
10
|
+
overrides?: PrizmaScreenOverrides;
|
|
11
|
+
onAction?: PrizmaScreenActionHandler;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* ID Capture — the "Common issues" help screen the stage's "?" opens, built on
|
|
15
|
+
* the `PrizmaListScreen` archetype (GUIDELINES.md §6-G).
|
|
16
|
+
* Figma: purple section `1-5-2-id-common-issues` of the front-side group.
|
|
17
|
+
*
|
|
18
|
+
* Glyph → Title → three explanatory rows → a tertiary link that switches to
|
|
19
|
+
* manual capture → the retry CTA. `showHeader={false}` keeps the section's
|
|
20
|
+
* logo-free chrome while still reserving the nav row, so every offset matches the
|
|
21
|
+
* rest of the module (owner rule 2026-08-18).
|
|
22
|
+
*
|
|
23
|
+
* Figma draws the header glyph as a filled 64px dark disc with a white question
|
|
24
|
+
* mark. Core's icon bank ships the OUTLINE question-circle and there is no
|
|
25
|
+
* filled-disc primitive, so the glyph is the bank icon in the archetype's
|
|
26
|
+
* non-status glyph slot at Title/Icon/Size — the same resolution the Face
|
|
27
|
+
* Capture pilot reached for its Wi-Fi glyph (DEVIATIONS.md #10) and the same
|
|
28
|
+
* outline-over-filled rule as the status marks (#15). DEVIATIONS.md #IDC-25.
|
|
29
|
+
*/
|
|
30
|
+
export declare const IdCaptureCommonIssuesScreen: React.ForwardRefExoticComponent<IdCaptureCommonIssuesScreenProps & React.RefAttributes<HTMLDivElement>>;
|
|
31
|
+
export default IdCaptureCommonIssuesScreen;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef } from 'react';
|
|
4
|
+
import { IconBankCardSearch, IconHide, IconImage, IconQuestionCircle, } 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 rows' leading icons, in the order the purple section lists them:
|
|
10
|
+
* glare present · blur present · info is not readable. Canonical bank only
|
|
11
|
+
* (§10); the closest bank glyphs to Figma's drawings are the image mark, the
|
|
12
|
+
* crossed-out eye and the card-with-magnifier.
|
|
13
|
+
*/
|
|
14
|
+
const ROW_ICONS = [
|
|
15
|
+
_jsx(IconImage, { size: "m" }, "glare"),
|
|
16
|
+
_jsx(IconHide, { size: "m" }, "blur"),
|
|
17
|
+
_jsx(IconBankCardSearch, { size: "m" }, "readable"),
|
|
18
|
+
];
|
|
19
|
+
/**
|
|
20
|
+
* ID Capture — the "Common issues" help screen the stage's "?" opens, built on
|
|
21
|
+
* the `PrizmaListScreen` archetype (GUIDELINES.md §6-G).
|
|
22
|
+
* Figma: purple section `1-5-2-id-common-issues` of the front-side group.
|
|
23
|
+
*
|
|
24
|
+
* Glyph → Title → three explanatory rows → a tertiary link that switches to
|
|
25
|
+
* manual capture → the retry CTA. `showHeader={false}` keeps the section's
|
|
26
|
+
* logo-free chrome while still reserving the nav row, so every offset matches the
|
|
27
|
+
* rest of the module (owner rule 2026-08-18).
|
|
28
|
+
*
|
|
29
|
+
* Figma draws the header glyph as a filled 64px dark disc with a white question
|
|
30
|
+
* mark. Core's icon bank ships the OUTLINE question-circle and there is no
|
|
31
|
+
* filled-disc primitive, so the glyph is the bank icon in the archetype's
|
|
32
|
+
* non-status glyph slot at Title/Icon/Size — the same resolution the Face
|
|
33
|
+
* Capture pilot reached for its Wi-Fi glyph (DEVIATIONS.md #10) and the same
|
|
34
|
+
* outline-over-filled rule as the status marks (#15). DEVIATIONS.md #IDC-25.
|
|
35
|
+
*/
|
|
36
|
+
export const IdCaptureCommonIssuesScreen = forwardRef(({ strings, screenId = 'id-capture-common-issues', showHeader = false, overrides, onAction, ...shell }, ref) => (_jsx(PrizmaListScreen, { ref: ref, showHeader: showHeader, glyph: _jsx("span", { className: [
|
|
37
|
+
'prizma-screen-layout__glyph',
|
|
38
|
+
'prizma-screen-layout__glyph--neutral',
|
|
39
|
+
overrides?.align === 'left' ? 'prizma-screen-layout__glyph--left' : '',
|
|
40
|
+
]
|
|
41
|
+
.filter(Boolean)
|
|
42
|
+
.join(' '), children: _jsx(IconQuestionCircle, { size: "l" }) }), title: strings.commonIssues.title, ctaLabel: strings.commonIssues.ctaLabel, linkLabel: strings.commonIssues.manualLabel, verifiedLabel: strings.verifiedLabel, navLabel: strings.navLabel, screenId: screenId, overrides: overrides, onAction: onAction, ...shell, children: _jsx(PrizmaCardListCommonIssues, { items: strings.commonIssues.rows.map((row, i) => ({
|
|
43
|
+
icon: ROW_ICONS[i % ROW_ICONS.length],
|
|
44
|
+
title: row.title,
|
|
45
|
+
subtitle: row.description,
|
|
46
|
+
showSubtitle: Boolean(row.description),
|
|
47
|
+
})) }) })));
|
|
48
|
+
IdCaptureCommonIssuesScreen.displayName = 'IdCaptureCommonIssuesScreen';
|
|
49
|
+
export default IdCaptureCommonIssuesScreen;
|