@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,31 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type PrizmaResultScreenProps } from './ResultScreen';
|
|
3
|
+
import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
|
|
4
|
+
import type { ElectronicSignatureStrings } from './ElectronicSignatureStrings';
|
|
5
|
+
import './ScreenLayout.css';
|
|
6
|
+
export interface ElectronicSignatureErrorScreenProps extends Omit<PrizmaResultScreenProps, 'status' | 'title' | 'subtitle' | 'ctaLabel' | 'secondaryCtaLabel' | 'verifiedLabel' | 'navLabel' | 'children'> {
|
|
7
|
+
/** Module copy — this screen reads the `error` slice. */
|
|
8
|
+
strings: ElectronicSignatureStrings;
|
|
9
|
+
screenId?: string;
|
|
10
|
+
overrides?: PrizmaScreenOverrides;
|
|
11
|
+
onAction?: PrizmaScreenActionHandler;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Electronic Signature — the failure verdict (`eSign.error`, 6291:67151), built
|
|
15
|
+
* on the Result archetype (GUIDELINES.md §6-F, `PrizmaResultScreen`).
|
|
16
|
+
*
|
|
17
|
+
* Archetype F, not C: the section centres the status block AND draws a primary
|
|
18
|
+
* "Try again" under it, which is the line §6-F draws between the two.
|
|
19
|
+
*
|
|
20
|
+
* The mark is the WARNING status, not the negative one: the section draws the
|
|
21
|
+
* amber `!` disc, and the copy ("we couldn't process it — try again") reports a
|
|
22
|
+
* recoverable failure rather than a rejection. Core renders it as the outline
|
|
23
|
+
* `IconStatusWarning` (DEVIATIONS #15).
|
|
24
|
+
*
|
|
25
|
+
* The module has ONE error section and no `noConnection` family, so this screen
|
|
26
|
+
* ships no `variant` axis and no Wi-Fi glyph — the asymmetry with Phone Input's
|
|
27
|
+
* three-way error is real, not an omission (the #EI-5 precedent). Logo header
|
|
28
|
+
* and tag both stay, as they do on every non-capture screen (#PI-8 / #F-30).
|
|
29
|
+
*/
|
|
30
|
+
export declare const ElectronicSignatureErrorScreen: React.ForwardRefExoticComponent<ElectronicSignatureErrorScreenProps & React.RefAttributes<HTMLDivElement>>;
|
|
31
|
+
export default ElectronicSignatureErrorScreen;
|
|
@@ -0,0 +1,25 @@
|
|
|
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
|
+
* Electronic Signature — the failure verdict (`eSign.error`, 6291:67151), built
|
|
8
|
+
* on the Result archetype (GUIDELINES.md §6-F, `PrizmaResultScreen`).
|
|
9
|
+
*
|
|
10
|
+
* Archetype F, not C: the section centres the status block AND draws a primary
|
|
11
|
+
* "Try again" under it, which is the line §6-F draws between the two.
|
|
12
|
+
*
|
|
13
|
+
* The mark is the WARNING status, not the negative one: the section draws the
|
|
14
|
+
* amber `!` disc, and the copy ("we couldn't process it — try again") reports a
|
|
15
|
+
* recoverable failure rather than a rejection. Core renders it as the outline
|
|
16
|
+
* `IconStatusWarning` (DEVIATIONS #15).
|
|
17
|
+
*
|
|
18
|
+
* The module has ONE error section and no `noConnection` family, so this screen
|
|
19
|
+
* ships no `variant` axis and no Wi-Fi glyph — the asymmetry with Phone Input's
|
|
20
|
+
* three-way error is real, not an omission (the #EI-5 precedent). Logo header
|
|
21
|
+
* and tag both stay, as they do on every non-capture screen (#PI-8 / #F-30).
|
|
22
|
+
*/
|
|
23
|
+
export const ElectronicSignatureErrorScreen = forwardRef(({ strings, screenId = 'electronic-signature-error', overrides, onAction, ...shell }, ref) => (_jsx(PrizmaResultScreen, { ref: ref, status: "warning", title: strings.error.title, subtitle: strings.error.subtitle, ctaLabel: strings.error.ctaLabel, verifiedLabel: strings.verifiedLabel, navLabel: strings.navLabel, screenId: screenId, overrides: overrides, onAction: onAction, ...shell })));
|
|
24
|
+
ElectronicSignatureErrorScreen.displayName = 'ElectronicSignatureErrorScreen';
|
|
25
|
+
export default ElectronicSignatureErrorScreen;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/* Electronic Signature — module layout additions.
|
|
2
|
+
*
|
|
3
|
+
* TWO blocks, and neither declares an archetype value. The content column, the
|
|
4
|
+
* 24px gutters, the title → middle Spacing/24, the middle → CTA band, the
|
|
5
|
+
* CTA column and the anchored footer all stay the foundation's
|
|
6
|
+
* (`ScreenLayout.css`). Everything below shapes CONTENT the design system does
|
|
7
|
+
* not own — the same class of exception as Document Capture's uploaded-file
|
|
8
|
+
* card and standalone encrypted notice (DEVIATIONS #DC-26 / #DC-27), and built
|
|
9
|
+
* the same way: from Core's own tokens, with no primitive re-implemented and no
|
|
10
|
+
* `!important`.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
/* ── The agreement frame (`eSign.default`) ───────────────────────────────────
|
|
14
|
+
* The purple section draws the document as a rendered page inside a 342-wide
|
|
15
|
+
* box: `Border/Neutral/100` hairline, `Border/Radius/small`, clipped, with a
|
|
16
|
+
* 4px scroll indicator riding its right edge. Core ships no document viewer and
|
|
17
|
+
* no scrollbar primitive — `PrizmaCardDocumentContainer` is a filename + action
|
|
18
|
+
* ROW, not a page frame (DEVIATIONS #DC-27 settled the same point for the
|
|
19
|
+
* uploaded-file card) — so the frame is composed here from the identical Card
|
|
20
|
+
* tokens and the page itself arrives through the screen's `document` slot, the
|
|
21
|
+
* same host-supplied-content contract the capture screens use for `camera`
|
|
22
|
+
* (DEVIATIONS #FM-22).
|
|
23
|
+
*
|
|
24
|
+
* Figma's page is an artboard image that bleeds to the frame edge; a TEXT
|
|
25
|
+
* agreement needs a gutter, so the frame carries Spacing/16 and the paragraph
|
|
26
|
+
* rhythm below it — content padding, never screen spacing.
|
|
27
|
+
*
|
|
28
|
+
* The scroll is the browser's own: the designed 4px track + thumb would be an
|
|
29
|
+
* invented primitive, and releasing overflow is the same idiom CURP used to fit
|
|
30
|
+
* a taller-than-844 Figma page into the 390×844 reference (DEVIATIONS #CURP-1).
|
|
31
|
+
* CORE REQUEST: a `PrizmaDocumentViewer` / page-frame primitive — Electronic
|
|
32
|
+
* Signature is the first module to need one and consent flows will need it next.
|
|
33
|
+
*
|
|
34
|
+
* The screen itself is archetype G (`PrizmaListScreen`), whose `__list` middle
|
|
35
|
+
* already fills the space between the title block and the CTA band — so there is
|
|
36
|
+
* no centring to cancel and no stage rule here. The single LAYOUT line below is
|
|
37
|
+
* the overflow release, identical to `.qualified-signature-document`; everything
|
|
38
|
+
* else on this class shapes CONTENT the design system does not own.
|
|
39
|
+
*/
|
|
40
|
+
.electronic-signature-document {
|
|
41
|
+
flex: 1 1 auto;
|
|
42
|
+
min-height: 0;
|
|
43
|
+
overflow-y: auto;
|
|
44
|
+
box-sizing: border-box;
|
|
45
|
+
padding: var(--prizma-spacing-16);
|
|
46
|
+
background-color: var(--prizma-surface-neutral-0);
|
|
47
|
+
border: var(--prizma-border-width-regular) solid var(--prizma-border-neutral-100);
|
|
48
|
+
border-radius: var(--prizma-border-radius-small);
|
|
49
|
+
text-align: start;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/* The agreement's own typography — Body/M Regular on Text/Body/500, the pair
|
|
53
|
+
Core uses for every secondary block of prose (`CardList.css`, `Card.css`).
|
|
54
|
+
Applied to the host's markup by descendant selector so the document slot
|
|
55
|
+
takes plain `<h4>` / `<p>` and needs no inline styles. */
|
|
56
|
+
.electronic-signature-document > * {
|
|
57
|
+
margin: 0;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.electronic-signature-document > * + * {
|
|
61
|
+
margin-top: var(--prizma-spacing-12);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.electronic-signature-document p {
|
|
65
|
+
font-family: var(--prizma-body-family);
|
|
66
|
+
font-weight: var(--prizma-body-m-regular-font-weight);
|
|
67
|
+
font-size: var(--prizma-body-m-regular-font-size);
|
|
68
|
+
line-height: var(--prizma-body-m-regular-line-height);
|
|
69
|
+
letter-spacing: var(--prizma-body-m-regular-letter-spacing);
|
|
70
|
+
color: var(--prizma-text-body-500-secondary);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.electronic-signature-document h4 {
|
|
74
|
+
font-family: var(--prizma-headline-family);
|
|
75
|
+
font-weight: var(--prizma-headline-h5-font-weight);
|
|
76
|
+
font-size: var(--prizma-headline-h5-font-size);
|
|
77
|
+
line-height: var(--prizma-headline-h5-line-height);
|
|
78
|
+
letter-spacing: var(--prizma-headline-h5-letter-spacing);
|
|
79
|
+
color: var(--prizma-text-body-800-primary);
|
|
80
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import React, { type ReactNode } from 'react';
|
|
2
|
+
import { type PrizmaListScreenProps } from './ListScreen';
|
|
3
|
+
import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
|
|
4
|
+
import type { ElectronicSignatureStrings } from './ElectronicSignatureStrings';
|
|
5
|
+
import './ScreenLayout.css';
|
|
6
|
+
import './ElectronicSignatureLayout.css';
|
|
7
|
+
export interface ElectronicSignatureReviewScreenProps extends Omit<PrizmaListScreenProps, 'status' | 'title' | 'subtitle' | 'glyph' | 'children' | 'listAlign' | 'disclaimer' | 'ctaLabel' | 'secondaryCtaLabel' | 'linkLabel' | 'verifiedLabel' | 'navLabel'> {
|
|
8
|
+
/** Module copy — this screen reads the `review` slice. */
|
|
9
|
+
strings: ElectronicSignatureStrings;
|
|
10
|
+
/**
|
|
11
|
+
* The agreement itself: a rendered page (`<img>` of the PDF, host markup,
|
|
12
|
+
* plain `<h4>` / `<p>` prose). Runtime DATA supplied by the host, never copy
|
|
13
|
+
* the design system owns — the same slot contract the capture screens use for
|
|
14
|
+
* `camera` (GUIDELINES §10) and Qualified Signature uses for its contract page.
|
|
15
|
+
* Core ships no document viewer; the frame around this node is the module's,
|
|
16
|
+
* built from Core's Card tokens (see `ElectronicSignatureLayout.css`).
|
|
17
|
+
*/
|
|
18
|
+
document: ReactNode;
|
|
19
|
+
screenId?: string;
|
|
20
|
+
overrides?: PrizmaScreenOverrides;
|
|
21
|
+
onAction?: PrizmaScreenActionHandler;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Electronic Signature — the document-review screen (`eSign.default`,
|
|
25
|
+
* 6291:27012), built on the List archetype (GUIDELINES.md §6-G,
|
|
26
|
+
* `PrizmaListScreen`).
|
|
27
|
+
*
|
|
28
|
+
* Archetype G, not H: the frame draws the logo header, a centred H2, a
|
|
29
|
+
* host-supplied agreement page filling the whole middle, one primary CTA and
|
|
30
|
+
* the verified tag — which is G's definition line for line ("content filling
|
|
31
|
+
* the space between the title block and the CTA band"). It is also the shape
|
|
32
|
+
* the sibling `QualifiedSignatureDocumentScreen` already uses for exactly this
|
|
33
|
+
* content, a scrolling contract page.
|
|
34
|
+
*
|
|
35
|
+
* H was the earlier reading and was wrong: H is captured-MEDIA confirmation, it
|
|
36
|
+
* carries no logo by default and it centres its stage, so the module had to
|
|
37
|
+
* override the archetype twice (a `showHeader` opt-in and a local
|
|
38
|
+
* `align-items: stretch` rule) just to hold a document. G needs neither —
|
|
39
|
+
* `showHeader` already defaults to true and `__list` already fills the middle —
|
|
40
|
+
* so the screen now renders ONE archetype call and declares no layout of its
|
|
41
|
+
* own. The only module CSS left is the overflow release on the document frame,
|
|
42
|
+
* the same single-constraint release Qualified Signature and CURP use
|
|
43
|
+
* (DEVIATIONS #CURP-1).
|
|
44
|
+
*
|
|
45
|
+
* One owner rule still overrides the purple section:
|
|
46
|
+
* **No close ✕.** The sibling `eSign.signed` / `eSign.success` sections draw one
|
|
47
|
+
* at the nav's right; GUIDELINES §3 stands and there is no slot for it
|
|
48
|
+
* (DEVIATIONS #PI-9).
|
|
49
|
+
*/
|
|
50
|
+
export declare const ElectronicSignatureReviewScreen: React.ForwardRefExoticComponent<ElectronicSignatureReviewScreenProps & React.RefAttributes<HTMLDivElement>>;
|
|
51
|
+
export default ElectronicSignatureReviewScreen;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef } from 'react';
|
|
4
|
+
import { PrizmaListScreen } from './ListScreen';
|
|
5
|
+
import './ScreenLayout.css';
|
|
6
|
+
import './ElectronicSignatureLayout.css';
|
|
7
|
+
/**
|
|
8
|
+
* Electronic Signature — the document-review screen (`eSign.default`,
|
|
9
|
+
* 6291:27012), built on the List archetype (GUIDELINES.md §6-G,
|
|
10
|
+
* `PrizmaListScreen`).
|
|
11
|
+
*
|
|
12
|
+
* Archetype G, not H: the frame draws the logo header, a centred H2, a
|
|
13
|
+
* host-supplied agreement page filling the whole middle, one primary CTA and
|
|
14
|
+
* the verified tag — which is G's definition line for line ("content filling
|
|
15
|
+
* the space between the title block and the CTA band"). It is also the shape
|
|
16
|
+
* the sibling `QualifiedSignatureDocumentScreen` already uses for exactly this
|
|
17
|
+
* content, a scrolling contract page.
|
|
18
|
+
*
|
|
19
|
+
* H was the earlier reading and was wrong: H is captured-MEDIA confirmation, it
|
|
20
|
+
* carries no logo by default and it centres its stage, so the module had to
|
|
21
|
+
* override the archetype twice (a `showHeader` opt-in and a local
|
|
22
|
+
* `align-items: stretch` rule) just to hold a document. G needs neither —
|
|
23
|
+
* `showHeader` already defaults to true and `__list` already fills the middle —
|
|
24
|
+
* so the screen now renders ONE archetype call and declares no layout of its
|
|
25
|
+
* own. The only module CSS left is the overflow release on the document frame,
|
|
26
|
+
* the same single-constraint release Qualified Signature and CURP use
|
|
27
|
+
* (DEVIATIONS #CURP-1).
|
|
28
|
+
*
|
|
29
|
+
* One owner rule still overrides the purple section:
|
|
30
|
+
* **No close ✕.** The sibling `eSign.signed` / `eSign.success` sections draw one
|
|
31
|
+
* at the nav's right; GUIDELINES §3 stands and there is no slot for it
|
|
32
|
+
* (DEVIATIONS #PI-9).
|
|
33
|
+
*/
|
|
34
|
+
export const ElectronicSignatureReviewScreen = forwardRef(({ strings, document, screenId = 'electronic-signature-review', overrides, onAction, ...shell }, ref) => (_jsx(PrizmaListScreen, { ref: ref, title: strings.review.title, ctaLabel: strings.review.ctaLabel, verifiedLabel: strings.verifiedLabel, navLabel: strings.navLabel, screenId: screenId, overrides: overrides, onAction: onAction, ...shell, children: _jsx("div", { className: "electronic-signature-document", role: "region", "aria-label": strings.review.documentLabel, tabIndex: 0, children: document }) })));
|
|
35
|
+
ElectronicSignatureReviewScreen.displayName = 'ElectronicSignatureReviewScreen';
|
|
36
|
+
export default ElectronicSignatureReviewScreen;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The two states the signature-pad screen draws — `eSign.draw` (empty canvas,
|
|
3
|
+
* placeholder visible, both actions inert) and `eSign.signed` (ink on the
|
|
4
|
+
* canvas, Clear live, Done live). One screen, one Figma-drawn axis.
|
|
5
|
+
*/
|
|
6
|
+
export type ElectronicSignatureDrawState = 'draw' | 'signed';
|
|
7
|
+
export interface ElectronicSignatureStrings {
|
|
8
|
+
/** "verified by" attribution copy for the footer tag. */
|
|
9
|
+
verifiedLabel: string;
|
|
10
|
+
/** Accessible name for the logo row. */
|
|
11
|
+
navLabel: string;
|
|
12
|
+
/** `eSign.default` — read the agreement before signing it. */
|
|
13
|
+
review: {
|
|
14
|
+
/** H2 — "Review your document". */
|
|
15
|
+
title: string;
|
|
16
|
+
/** Accessible name for the scrolling document frame. */
|
|
17
|
+
documentLabel: string;
|
|
18
|
+
/** Primary CTA — "Continue". */
|
|
19
|
+
ctaLabel: string;
|
|
20
|
+
};
|
|
21
|
+
/** `eSign.draw` + `eSign.signed` — the signature pad. */
|
|
22
|
+
draw: {
|
|
23
|
+
/** H2 — "Draw your signature". */
|
|
24
|
+
title: string;
|
|
25
|
+
/** H5 — "Use your finger or mouse". */
|
|
26
|
+
subtitle: string;
|
|
27
|
+
/** Canvas placeholder, shown while the pad is empty — "Sign here". */
|
|
28
|
+
placeholder: string;
|
|
29
|
+
/** Accessible name for the drawing canvas (Core has no default). */
|
|
30
|
+
canvasLabel: string;
|
|
31
|
+
/** Core's Clear-canvas tertiary link — "Clear canvas". */
|
|
32
|
+
clearLabel: string;
|
|
33
|
+
/** Primary CTA — "Done". */
|
|
34
|
+
ctaLabel: string;
|
|
35
|
+
};
|
|
36
|
+
/** `eSign.success` — the verdict, reported with no action. */
|
|
37
|
+
success: {
|
|
38
|
+
/** H2 — "Signed successfully!". */
|
|
39
|
+
title: string;
|
|
40
|
+
};
|
|
41
|
+
/** `eSign.error` — the single failure verdict the module draws. */
|
|
42
|
+
error: {
|
|
43
|
+
/** H2 — "We couldn't process your signature". */
|
|
44
|
+
title: string;
|
|
45
|
+
/** H5 — "Please try again.". */
|
|
46
|
+
subtitle: string;
|
|
47
|
+
/** Primary CTA — "Try again". */
|
|
48
|
+
ctaLabel: string;
|
|
49
|
+
};
|
|
50
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// Electronic Signature — the module's whole copy surface.
|
|
2
|
+
//
|
|
3
|
+
// Every string the four screen families render lives here, so a screen carries
|
|
4
|
+
// no hardcoded English and a host can translate the module by supplying one
|
|
5
|
+
// object (README rule 3, the same contract as `PhoneInputStrings` /
|
|
6
|
+
// `CurpStrings`).
|
|
7
|
+
//
|
|
8
|
+
// Figma: `✍️ Signature (Electronic) - Screens specs + Localization`
|
|
9
|
+
// (`kUsDigsC8Mq1WobTewF0R6`, page `5:13191`, section `4116:10249`). Five purple
|
|
10
|
+
// parent sections — `eSign.default` · `eSign.draw` · `eSign.signed` ·
|
|
11
|
+
// `eSign.success` · `eSign.error` — with ES / PT columns beside the EN one.
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type PrizmaProcessingScreenProps } from './ProcessingScreen';
|
|
3
|
+
import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
|
|
4
|
+
import type { ElectronicSignatureStrings } from './ElectronicSignatureStrings';
|
|
5
|
+
import './ScreenLayout.css';
|
|
6
|
+
export interface ElectronicSignatureSuccessScreenProps extends Omit<PrizmaProcessingScreenProps, 'status' | 'title' | 'subtitle' | 'verifiedLabel' | 'navLabel'> {
|
|
7
|
+
/** Module copy — this screen reads the `success` slice. */
|
|
8
|
+
strings: ElectronicSignatureStrings;
|
|
9
|
+
screenId?: string;
|
|
10
|
+
overrides?: PrizmaScreenOverrides;
|
|
11
|
+
onAction?: PrizmaScreenActionHandler;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Electronic Signature — the signed verdict (`eSign.success`, 4116:10347),
|
|
15
|
+
* built on the Processing archetype (GUIDELINES.md §6-C,
|
|
16
|
+
* `PrizmaProcessingScreen`).
|
|
17
|
+
*
|
|
18
|
+
* Archetype C, not F: the section draws a centred status mark and one line and
|
|
19
|
+
* offers **no button at all** — §6-F reserves C for exactly that pure case, and
|
|
20
|
+
* the same split was already ruled on between two sibling modules (Email
|
|
21
|
+
* Input's success is C, Phone Input's is F — DEVIATIONS #EI-4). Reaching for F
|
|
22
|
+
* here would render an empty CTA band.
|
|
23
|
+
*
|
|
24
|
+
* The mark is Core's outline `IconStatusPositive` at Title/Icon/Size 40, where
|
|
25
|
+
* the section draws a filled green disc at a smaller size — the icon-outline
|
|
26
|
+
* sweep settled that for every module (DEVIATIONS #15). The section's close ✕
|
|
27
|
+
* is not composed (DEVIATIONS #PI-9).
|
|
28
|
+
*/
|
|
29
|
+
export declare const ElectronicSignatureSuccessScreen: React.ForwardRefExoticComponent<ElectronicSignatureSuccessScreenProps & React.RefAttributes<HTMLDivElement>>;
|
|
30
|
+
export default ElectronicSignatureSuccessScreen;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef } from 'react';
|
|
4
|
+
import { PrizmaProcessingScreen, } from './ProcessingScreen';
|
|
5
|
+
import './ScreenLayout.css';
|
|
6
|
+
/**
|
|
7
|
+
* Electronic Signature — the signed verdict (`eSign.success`, 4116:10347),
|
|
8
|
+
* built on the Processing archetype (GUIDELINES.md §6-C,
|
|
9
|
+
* `PrizmaProcessingScreen`).
|
|
10
|
+
*
|
|
11
|
+
* Archetype C, not F: the section draws a centred status mark and one line and
|
|
12
|
+
* offers **no button at all** — §6-F reserves C for exactly that pure case, and
|
|
13
|
+
* the same split was already ruled on between two sibling modules (Email
|
|
14
|
+
* Input's success is C, Phone Input's is F — DEVIATIONS #EI-4). Reaching for F
|
|
15
|
+
* here would render an empty CTA band.
|
|
16
|
+
*
|
|
17
|
+
* The mark is Core's outline `IconStatusPositive` at Title/Icon/Size 40, where
|
|
18
|
+
* the section draws a filled green disc at a smaller size — the icon-outline
|
|
19
|
+
* sweep settled that for every module (DEVIATIONS #15). The section's close ✕
|
|
20
|
+
* is not composed (DEVIATIONS #PI-9).
|
|
21
|
+
*/
|
|
22
|
+
export const ElectronicSignatureSuccessScreen = forwardRef(({ strings, screenId = 'electronic-signature-success', overrides, onAction, ...shell }, ref) => (_jsx(PrizmaProcessingScreen, { ref: ref, status: "success", title: strings.success.title, verifiedLabel: strings.verifiedLabel, navLabel: strings.navLabel, screenId: screenId, overrides: overrides, onAction: onAction, ...shell })));
|
|
23
|
+
ElectronicSignatureSuccessScreen.displayName = 'ElectronicSignatureSuccessScreen';
|
|
24
|
+
export default ElectronicSignatureSuccessScreen;
|
|
@@ -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 { EmailInputStrings } from './EmailInputStrings';
|
|
5
|
+
import './ScreenLayout.css';
|
|
6
|
+
export interface EmailInputErrorScreenProps extends Omit<PrizmaResultScreenProps, 'status' | 'title' | 'subtitle' | 'ctaLabel' | 'verifiedLabel' | 'navLabel'> {
|
|
7
|
+
/** Module copy — this screen reads the `error` slice. */
|
|
8
|
+
strings: EmailInputStrings;
|
|
9
|
+
screenId?: string;
|
|
10
|
+
overrides?: PrizmaScreenOverrides;
|
|
11
|
+
onAction?: PrizmaScreenActionHandler;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Email Input — the failure verdict, built on the Result archetype
|
|
15
|
+
* (GUIDELINES.md §6-F, `PrizmaResultScreen`).
|
|
16
|
+
*
|
|
17
|
+
* Figma: the purple `email.error` section, which holds exactly ONE screen —
|
|
18
|
+
* `email.error.somethingWentWrong`. A centred status mark + H2 over the
|
|
19
|
+
* "Try again" CTA band (40:33375).
|
|
20
|
+
*
|
|
21
|
+
* DEVIATIONS #EI-5 — unlike its Phone Input sibling this module draws no
|
|
22
|
+
* `tryAgain` split and, notably, **no connectivity section anywhere in the
|
|
23
|
+
* file**: `email.error` (3058:103116) has a single child section, and the four
|
|
24
|
+
* purple parents are verifyEmail / OTP / error / success with no no-connection
|
|
25
|
+
* screen among them. So this screen ships NO `variant` prop and no Wi-Fi
|
|
26
|
+
* glyph — there is nothing to switch between, and adding the axis would be
|
|
27
|
+
* inventing a state the spec does not have. The #PI-8 ruling still applies to
|
|
28
|
+
* the one screen that exists: the header and the verified tag stay.
|
|
29
|
+
*
|
|
30
|
+
* The mark is Core's outline status icon; the module Figma still draws the
|
|
31
|
+
* two-tone filled disc, one icon sweep behind (DEVIATIONS #15).
|
|
32
|
+
*/
|
|
33
|
+
export declare const EmailInputErrorScreen: React.ForwardRefExoticComponent<EmailInputErrorScreenProps & React.RefAttributes<HTMLDivElement>>;
|
|
34
|
+
export default EmailInputErrorScreen;
|
|
@@ -0,0 +1,28 @@
|
|
|
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
|
+
* Email Input — the failure verdict, built on the Result archetype
|
|
8
|
+
* (GUIDELINES.md §6-F, `PrizmaResultScreen`).
|
|
9
|
+
*
|
|
10
|
+
* Figma: the purple `email.error` section, which holds exactly ONE screen —
|
|
11
|
+
* `email.error.somethingWentWrong`. A centred status mark + H2 over the
|
|
12
|
+
* "Try again" CTA band (40:33375).
|
|
13
|
+
*
|
|
14
|
+
* DEVIATIONS #EI-5 — unlike its Phone Input sibling this module draws no
|
|
15
|
+
* `tryAgain` split and, notably, **no connectivity section anywhere in the
|
|
16
|
+
* file**: `email.error` (3058:103116) has a single child section, and the four
|
|
17
|
+
* purple parents are verifyEmail / OTP / error / success with no no-connection
|
|
18
|
+
* screen among them. So this screen ships NO `variant` prop and no Wi-Fi
|
|
19
|
+
* glyph — there is nothing to switch between, and adding the axis would be
|
|
20
|
+
* inventing a state the spec does not have. The #PI-8 ruling still applies to
|
|
21
|
+
* the one screen that exists: the header and the verified tag stay.
|
|
22
|
+
*
|
|
23
|
+
* The mark is Core's outline status icon; the module Figma still draws the
|
|
24
|
+
* two-tone filled disc, one icon sweep behind (DEVIATIONS #15).
|
|
25
|
+
*/
|
|
26
|
+
export const EmailInputErrorScreen = forwardRef(({ strings, screenId = 'email-input-error', overrides, onAction, ...shell }, ref) => (_jsx(PrizmaResultScreen, { ref: ref, status: "error", title: strings.error.title, subtitle: strings.error.subtitle, ctaLabel: strings.error.ctaLabel, verifiedLabel: strings.verifiedLabel, navLabel: strings.navLabel, screenId: screenId, overrides: overrides, onAction: onAction, ...shell })));
|
|
27
|
+
EmailInputErrorScreen.displayName = 'EmailInputErrorScreen';
|
|
28
|
+
export default EmailInputErrorScreen;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type PrizmaFormScreenProps } from './FormScreen';
|
|
3
|
+
import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
|
|
4
|
+
import type { EmailInputOtpState, EmailInputStrings } from './EmailInputStrings';
|
|
5
|
+
import './ScreenLayout.css';
|
|
6
|
+
export interface EmailInputOtpScreenProps extends Omit<PrizmaFormScreenProps, 'title' | 'subtitle' | 'ctaLabel' | 'verifiedLabel' | 'children' | 'navLabel'> {
|
|
7
|
+
/** Module copy — this screen reads the `otp` slice. */
|
|
8
|
+
strings: EmailInputStrings;
|
|
9
|
+
/** Which purple `email.OTP.*` section to render. Default `typing`. */
|
|
10
|
+
state?: EmailInputOtpState;
|
|
11
|
+
/** The code as typed. Figma's sample is the alphanumeric `A1B2C3`. */
|
|
12
|
+
value?: string;
|
|
13
|
+
/** How many characters the code carries. Default 6. */
|
|
14
|
+
length?: number;
|
|
15
|
+
screenId?: string;
|
|
16
|
+
overrides?: PrizmaScreenOverrides;
|
|
17
|
+
onAction?: PrizmaScreenActionHandler;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Email Input — the one-time-code screen, built on the Form archetype
|
|
21
|
+
* (GUIDELINES.md §6-E, `PrizmaFormScreen`).
|
|
22
|
+
*
|
|
23
|
+
* ONE screen for all five purple `email.OTP.*` sections (`typing` / `filled` /
|
|
24
|
+
* `processing` and the module's TWO error sections) — identical layout,
|
|
25
|
+
* differing in the state of the code field, the CTA, and the line under it.
|
|
26
|
+
*
|
|
27
|
+
* The code field is Core's `PrizmaOtp`, which is a single centred, letter-spaced
|
|
28
|
+
* field rather than a segmented box row — exactly what the Figma sections draw
|
|
29
|
+
* ("A1B2C3" as one line of type inside one 56px field).
|
|
30
|
+
*
|
|
31
|
+
* `processing` deliberately does NOT use Core's `PrizmaOtp.loading`. That prop
|
|
32
|
+
* centres the spinner INSIDE the code field (owner definition 2026-07-12), but
|
|
33
|
+
* the purple section draws the field simply DISABLED with the code still
|
|
34
|
+
* legible and puts the spinner in the CTA — the same treatment as
|
|
35
|
+
* `verify.loading`, which is what makes the module read consistently.
|
|
36
|
+
* DEVIATIONS #PI-5.
|
|
37
|
+
*
|
|
38
|
+
* DEVIATIONS #EI-3 — the band under the CTA is NOT one treatment for all five
|
|
39
|
+
* sections, which is this module's own finding rather than anything inherited
|
|
40
|
+
* from Phone Input. Measured on the 390 frames, three different treatments:
|
|
41
|
+
* - `typing` (146:37111) draws a re-send COUNTDOWN ("Resend code in 30s") —
|
|
42
|
+
* plain secondary copy, NO links, because the code has only just been sent
|
|
43
|
+
* and re-sending it immediately is meaningless
|
|
44
|
+
* - `filled` (150:38395) and both error sections (150:63411 generic,
|
|
45
|
+
* 150:70717 invalid-code) draw the two-link sentence
|
|
46
|
+
* - `processing` (150:63409) draws that same sentence INERT — every word in
|
|
47
|
+
* the secondary ink, no underline, nothing clickable, because the request is
|
|
48
|
+
* in flight. Rendering the labels as plain text is what produces that, so
|
|
49
|
+
* `processing` reads differently from `filled` in the band as well as in the
|
|
50
|
+
* field.
|
|
51
|
+
* The consequence for a host: `resendCountdown` and `resendPrompt` are not
|
|
52
|
+
* alternatives it may choose between — which one is drawn is decided by
|
|
53
|
+
* `state`, so both must be supplied for the five sections to render as drawn.
|
|
54
|
+
*/
|
|
55
|
+
export declare const EmailInputOtpScreen: React.ForwardRefExoticComponent<EmailInputOtpScreenProps & React.RefAttributes<HTMLDivElement>>;
|
|
56
|
+
export default EmailInputOtpScreen;
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef } from 'react';
|
|
4
|
+
import { PrizmaOtp } from '@incodetech/prizma-core-web/otp';
|
|
5
|
+
import { PrizmaFormScreen } from './FormScreen';
|
|
6
|
+
import './ScreenLayout.css';
|
|
7
|
+
/**
|
|
8
|
+
* Email Input — the one-time-code screen, built on the Form archetype
|
|
9
|
+
* (GUIDELINES.md §6-E, `PrizmaFormScreen`).
|
|
10
|
+
*
|
|
11
|
+
* ONE screen for all five purple `email.OTP.*` sections (`typing` / `filled` /
|
|
12
|
+
* `processing` and the module's TWO error sections) — identical layout,
|
|
13
|
+
* differing in the state of the code field, the CTA, and the line under it.
|
|
14
|
+
*
|
|
15
|
+
* The code field is Core's `PrizmaOtp`, which is a single centred, letter-spaced
|
|
16
|
+
* field rather than a segmented box row — exactly what the Figma sections draw
|
|
17
|
+
* ("A1B2C3" as one line of type inside one 56px field).
|
|
18
|
+
*
|
|
19
|
+
* `processing` deliberately does NOT use Core's `PrizmaOtp.loading`. That prop
|
|
20
|
+
* centres the spinner INSIDE the code field (owner definition 2026-07-12), but
|
|
21
|
+
* the purple section draws the field simply DISABLED with the code still
|
|
22
|
+
* legible and puts the spinner in the CTA — the same treatment as
|
|
23
|
+
* `verify.loading`, which is what makes the module read consistently.
|
|
24
|
+
* DEVIATIONS #PI-5.
|
|
25
|
+
*
|
|
26
|
+
* DEVIATIONS #EI-3 — the band under the CTA is NOT one treatment for all five
|
|
27
|
+
* sections, which is this module's own finding rather than anything inherited
|
|
28
|
+
* from Phone Input. Measured on the 390 frames, three different treatments:
|
|
29
|
+
* - `typing` (146:37111) draws a re-send COUNTDOWN ("Resend code in 30s") —
|
|
30
|
+
* plain secondary copy, NO links, because the code has only just been sent
|
|
31
|
+
* and re-sending it immediately is meaningless
|
|
32
|
+
* - `filled` (150:38395) and both error sections (150:63411 generic,
|
|
33
|
+
* 150:70717 invalid-code) draw the two-link sentence
|
|
34
|
+
* - `processing` (150:63409) draws that same sentence INERT — every word in
|
|
35
|
+
* the secondary ink, no underline, nothing clickable, because the request is
|
|
36
|
+
* in flight. Rendering the labels as plain text is what produces that, so
|
|
37
|
+
* `processing` reads differently from `filled` in the band as well as in the
|
|
38
|
+
* field.
|
|
39
|
+
* The consequence for a host: `resendCountdown` and `resendPrompt` are not
|
|
40
|
+
* alternatives it may choose between — which one is drawn is decided by
|
|
41
|
+
* `state`, so both must be supplied for the five sections to render as drawn.
|
|
42
|
+
*/
|
|
43
|
+
export const EmailInputOtpScreen = forwardRef(({ strings, state = 'typing', value, length = 6, screenId = `email-input-otp-${state}`, overrides, onAction, ...shell }, ref) => {
|
|
44
|
+
const busy = state === 'processing';
|
|
45
|
+
const invalid = state === 'error' || state === 'errorGeneric';
|
|
46
|
+
const focused = state === 'typing';
|
|
47
|
+
const errorText = state === 'error'
|
|
48
|
+
? strings.otp.errorText
|
|
49
|
+
: state === 'errorGeneric'
|
|
50
|
+
? strings.otp.genericErrorText
|
|
51
|
+
: undefined;
|
|
52
|
+
/* `typing` shows the countdown; every other section shows the sentence. */
|
|
53
|
+
const countdown = focused ? strings.otp.resendCountdown : undefined;
|
|
54
|
+
/* Both links are wrapped by the same helper so the inert (`processing`)
|
|
55
|
+
rendering cannot drift from the actionable one — only the element type
|
|
56
|
+
changes. Each link emits a DISTINCT action: re-sending the code and
|
|
57
|
+
returning to email entry are different flows a host must tell apart
|
|
58
|
+
(DEVIATIONS #PI-10). */
|
|
59
|
+
const link = (label, type) => busy ? (label) : (_jsx("button", { type: "button", className: "prizma-screen-layout__inline-link", onClick: () => onAction?.({ type, screenId }), children: label }));
|
|
60
|
+
const resendLine = countdown ? (_jsx("p", { className: "prizma-screen-layout__inline-prompt", children: countdown })) : strings.otp.resendPrompt ? (_jsxs("p", { className: "prizma-screen-layout__inline-prompt", children: [strings.otp.resendPrompt, ' ', strings.otp.resendLabel ? link(strings.otp.resendLabel, 'secondary') : null, strings.otp.changeEmailLabel ? (_jsxs(_Fragment, { children: [' ', strings.otp.resendSeparator, ' ', link(strings.otp.changeEmailLabel, 'tertiary')] })) : null] })) : undefined;
|
|
61
|
+
return (_jsx(PrizmaFormScreen, { ref: ref, title: strings.otp.title, subtitle: strings.otp.subtitle, ctaLabel: strings.otp.ctaLabel,
|
|
62
|
+
/* Figma greys the CTA on both error sections; `typing` keeps it live. */
|
|
63
|
+
ctaDisabled: invalid,
|
|
64
|
+
/* The spinner rides the CTA, not the field (see the note above). */
|
|
65
|
+
ctaLoading: busy, ctaLoadingLabel: strings.otp.ctaLoadingLabel, linkContent: resendLine, verifiedLabel: strings.verifiedLabel, navLabel: strings.navLabel, screenId: screenId, overrides: overrides, onAction: onAction, ...shell, children: _jsx(PrizmaOtp, { length: length,
|
|
66
|
+
/* Core's own static-focus modifier, the same mechanism the verify
|
|
67
|
+
field uses: `typing` is the one section Figma draws focused, and
|
|
68
|
+
`filled` sits on the resting border. DEVIATIONS #PI-7. */
|
|
69
|
+
className: focused ? 'prizma-input-otp--focused' : undefined, "aria-label": strings.otp.fieldLabel,
|
|
70
|
+
/* Uncontrolled, for the same reason as the email field: `readOnly`
|
|
71
|
+
would paint Core's DISABLED surface on the resting states, which is
|
|
72
|
+
grey Figma does not draw there (DEVIATIONS #PI-6). */
|
|
73
|
+
defaultValue: value ?? '',
|
|
74
|
+
/* Figma's code is alphanumeric ("A1B2C3"), so the field must not
|
|
75
|
+
advertise a numeric keypad the way Core's OTP default does. */
|
|
76
|
+
inputMode: "text",
|
|
77
|
+
/* `processing` is the one section Figma greys — the code stays
|
|
78
|
+
legible while the check runs. */
|
|
79
|
+
disabled: busy, error: invalid, errorText: errorText }) }));
|
|
80
|
+
});
|
|
81
|
+
EmailInputOtpScreen.displayName = 'EmailInputOtpScreen';
|
|
82
|
+
export default EmailInputOtpScreen;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type PrizmaProcessingScreenProps } from './ProcessingScreen';
|
|
3
|
+
import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
|
|
4
|
+
import type { EmailInputStrings } from './EmailInputStrings';
|
|
5
|
+
import './ScreenLayout.css';
|
|
6
|
+
export interface EmailInputProcessingScreenProps extends Omit<PrizmaProcessingScreenProps, 'status' | 'title' | 'subtitle' | 'verifiedLabel' | 'navLabel'> {
|
|
7
|
+
/** Module copy — this screen reads the `processing` slice. */
|
|
8
|
+
strings: EmailInputStrings;
|
|
9
|
+
screenId?: string;
|
|
10
|
+
overrides?: PrizmaScreenOverrides;
|
|
11
|
+
onAction?: PrizmaScreenActionHandler;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Email Input — the code is being checked, built on the Processing archetype
|
|
15
|
+
* (GUIDELINES.md §6-C, `PrizmaProcessingScreen`).
|
|
16
|
+
*
|
|
17
|
+
* Figma: the purple `email.OTP.processing` section holding `email.processing`
|
|
18
|
+
* — a separate SCREEN from the in-form `email.OTP.processing` state, which
|
|
19
|
+
* keeps the code field and only swaps the CTA. This one is a pure spinner + H2
|
|
20
|
+
* with no button, which is exactly the case §6-F reserves for C rather than the
|
|
21
|
+
* Result archetype.
|
|
22
|
+
*
|
|
23
|
+
* Figma draws this section with a close ✕ in the nav and no verified tag; both
|
|
24
|
+
* are owner-settled and neither is reproduced — GUIDELINES §3 forbids the ✕
|
|
25
|
+
* (DEVIATIONS #PI-9, a standing Wave-3 ruling) and the chrome stays constant
|
|
26
|
+
* across the module's screens (#F-30, #F-34, #PI-8).
|
|
27
|
+
*/
|
|
28
|
+
export declare const EmailInputProcessingScreen: React.ForwardRefExoticComponent<EmailInputProcessingScreenProps & React.RefAttributes<HTMLDivElement>>;
|
|
29
|
+
export default EmailInputProcessingScreen;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef } from 'react';
|
|
4
|
+
import { PrizmaProcessingScreen, } from './ProcessingScreen';
|
|
5
|
+
import './ScreenLayout.css';
|
|
6
|
+
/**
|
|
7
|
+
* Email Input — the code is being checked, built on the Processing archetype
|
|
8
|
+
* (GUIDELINES.md §6-C, `PrizmaProcessingScreen`).
|
|
9
|
+
*
|
|
10
|
+
* Figma: the purple `email.OTP.processing` section holding `email.processing`
|
|
11
|
+
* — a separate SCREEN from the in-form `email.OTP.processing` state, which
|
|
12
|
+
* keeps the code field and only swaps the CTA. This one is a pure spinner + H2
|
|
13
|
+
* with no button, which is exactly the case §6-F reserves for C rather than the
|
|
14
|
+
* Result archetype.
|
|
15
|
+
*
|
|
16
|
+
* Figma draws this section with a close ✕ in the nav and no verified tag; both
|
|
17
|
+
* are owner-settled and neither is reproduced — GUIDELINES §3 forbids the ✕
|
|
18
|
+
* (DEVIATIONS #PI-9, a standing Wave-3 ruling) and the chrome stays constant
|
|
19
|
+
* across the module's screens (#F-30, #F-34, #PI-8).
|
|
20
|
+
*/
|
|
21
|
+
export const EmailInputProcessingScreen = forwardRef(({ strings, screenId = 'email-input-processing', overrides, onAction, ...shell }, ref) => (_jsx(PrizmaProcessingScreen, { ref: ref, status: "loading", title: strings.processing.title, subtitle: strings.processing.subtitle, verifiedLabel: strings.verifiedLabel, navLabel: strings.navLabel, screenId: screenId, overrides: overrides, onAction: onAction, ...shell })));
|
|
22
|
+
EmailInputProcessingScreen.displayName = 'EmailInputProcessingScreen';
|
|
23
|
+
export default EmailInputProcessingScreen;
|