@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,200 @@
|
|
|
1
|
+
import React, { forwardRef } from 'react';
|
|
2
|
+
import { PrizmaTextField } from '@incodetech/prizma-core-web/text-field';
|
|
3
|
+
import { PrizmaDropdown } from '@incodetech/prizma-core-web/dropdown';
|
|
4
|
+
import { PrizmaButton } from '@incodetech/prizma-core-web/button';
|
|
5
|
+
import { PrizmaStepper } from '@incodetech/prizma-core-web/stepper';
|
|
6
|
+
import { PrizmaFormScreen, type PrizmaFormScreenProps } from './FormScreen';
|
|
7
|
+
import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
|
|
8
|
+
import type {
|
|
9
|
+
EkybAddressState,
|
|
10
|
+
EkybAddressValues,
|
|
11
|
+
EkybOption,
|
|
12
|
+
EkybStrings,
|
|
13
|
+
} from './EkybStrings';
|
|
14
|
+
import './ScreenLayout.css';
|
|
15
|
+
|
|
16
|
+
export interface EkybAddressDetailsScreenProps
|
|
17
|
+
extends Omit<
|
|
18
|
+
PrizmaFormScreenProps,
|
|
19
|
+
| 'title'
|
|
20
|
+
| 'subtitle'
|
|
21
|
+
| 'ctaLabel'
|
|
22
|
+
| 'ctaLoading'
|
|
23
|
+
| 'ctaLoadingLabel'
|
|
24
|
+
| 'verifiedLabel'
|
|
25
|
+
| 'children'
|
|
26
|
+
| 'navLabel'
|
|
27
|
+
| 'linkLabel'
|
|
28
|
+
| 'linkContent'
|
|
29
|
+
| 'progress'
|
|
30
|
+
| 'scrollFields'
|
|
31
|
+
> {
|
|
32
|
+
/** Module copy — this screen reads the `address` slice. */
|
|
33
|
+
strings: EkybStrings;
|
|
34
|
+
/** Which address section to render. Default `empty`. */
|
|
35
|
+
state?: EkybAddressState;
|
|
36
|
+
/** The six field values. Empty renders the resting empty field. */
|
|
37
|
+
values?: EkybAddressValues;
|
|
38
|
+
/** The selectable states/provinces. Runtime data, not copy — a jurisdiction
|
|
39
|
+
* catalogue, never a string table. */
|
|
40
|
+
states?: EkybOption[];
|
|
41
|
+
screenId?: string;
|
|
42
|
+
overrides?: PrizmaScreenOverrides;
|
|
43
|
+
onAction?: PrizmaScreenActionHandler;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* eKYB — step 2 of the wizard, the registered address, built on the Form
|
|
48
|
+
* archetype (GUIDELINES.md §6-E, `PrizmaFormScreen`).
|
|
49
|
+
*
|
|
50
|
+
* ONE screen for both sections of the SECOND `eKYB.Bdetails` purple parent
|
|
51
|
+
* (6340:32594): `empty` (6340:50731) and `filled` (6340:38197). They share an
|
|
52
|
+
* identical skeleton — nav → Title (H2 + H5) → Spacing/32 → six labelled fields
|
|
53
|
+
* at Spacing/16 → "Continue" → "Back" → tag — and differ ONLY in field content.
|
|
54
|
+
*
|
|
55
|
+
* Four things are deliberate:
|
|
56
|
+
*
|
|
57
|
+
* 1. The stack SCROLLS inside the content column — now through the archetype's
|
|
58
|
+
* own `scrollFields` prop, not a module stylesheet. The Figma frame is
|
|
59
|
+
* 1128–1158 tall (six labelled fields are 548 on their own); a 390×844
|
|
60
|
+
* screen never reflows (#17), and without the release the surplus paints
|
|
61
|
+
* over the CTA. The module used to hand-roll `overflow-y: auto` in
|
|
62
|
+
* `EkybLayout.css`; five Wave-3 modules hit the same wall, the archetype
|
|
63
|
+
* absorbed it (DEVIATIONS #DSC-2), and that file is now deleted. The
|
|
64
|
+
* archetype's variant also carries the Spacing/16 margin that keeps the
|
|
65
|
+
* clipped column clear of the CTA rather than sliced against it.
|
|
66
|
+
* 2. Every field is UNCONTROLLED (`defaultValue`) — a screen is one static spec
|
|
67
|
+
* state, and Core's `readOnly` would grey a surface Figma draws white
|
|
68
|
+
* (#PI-6). Neither section greys anything, so nothing is `disabled`.
|
|
69
|
+
* 3. "Address line 2" is the ONE optional field of the page: Figma draws no `*`
|
|
70
|
+
* on it, so it alone renders no `requiredHint`.
|
|
71
|
+
* 4. "Back" is composed into the archetype's `linkContent` slot as a Core
|
|
72
|
+
* `secondary` button — the #CURP-2 precedent — so it stays a distinct
|
|
73
|
+
* `secondary` action and sits BELOW the primary (#GEO-1).
|
|
74
|
+
*
|
|
75
|
+
* NOTE on `filled`: 6340:38197 leaves the REQUIRED "State" dropdown on its
|
|
76
|
+
* "Select state" placeholder while all five text fields carry values. That is
|
|
77
|
+
* built as drawn rather than silently corrected, and reported as a Figma
|
|
78
|
+
* self-contradiction (the #CURP-4 class of finding) — a host that passes
|
|
79
|
+
* `values.state` gets the selected row.
|
|
80
|
+
*
|
|
81
|
+
* The three-segment journey bar (6384:86825 / 6340:66380 — segment 1 pale,
|
|
82
|
+
* segment 2 solid, segment 3 grey) is Core's `PrizmaStepper` at
|
|
83
|
+
* `currentState={2}`, composed into the archetype's `progress` slot. This is
|
|
84
|
+
* step 2 of 3.
|
|
85
|
+
*/
|
|
86
|
+
export const EkybAddressDetailsScreen = forwardRef<
|
|
87
|
+
HTMLDivElement,
|
|
88
|
+
EkybAddressDetailsScreenProps
|
|
89
|
+
>(
|
|
90
|
+
(
|
|
91
|
+
{
|
|
92
|
+
strings,
|
|
93
|
+
state = 'empty',
|
|
94
|
+
values,
|
|
95
|
+
states = [],
|
|
96
|
+
screenId = `ekyb-address-${state}`,
|
|
97
|
+
className,
|
|
98
|
+
overrides,
|
|
99
|
+
onAction,
|
|
100
|
+
...shell
|
|
101
|
+
},
|
|
102
|
+
ref,
|
|
103
|
+
) => {
|
|
104
|
+
const copy = strings.address;
|
|
105
|
+
|
|
106
|
+
return (
|
|
107
|
+
<PrizmaFormScreen
|
|
108
|
+
ref={ref}
|
|
109
|
+
className={['ekyb-address', className].filter(Boolean).join(' ')}
|
|
110
|
+
/* The archetype's own scrolling field stack — the six-field column is
|
|
111
|
+
548 tall against a middle that cannot be. No module CSS. */
|
|
112
|
+
scrollFields
|
|
113
|
+
/* Step 2 of 3. `showIcons={false}`: the eKYB bar is a bare 5px rail. */
|
|
114
|
+
progress={
|
|
115
|
+
<PrizmaStepper
|
|
116
|
+
steps={3}
|
|
117
|
+
currentState={2}
|
|
118
|
+
showIcons={false}
|
|
119
|
+
aria-label={strings.stepperLabel}
|
|
120
|
+
/>
|
|
121
|
+
}
|
|
122
|
+
title={copy.title}
|
|
123
|
+
subtitle={copy.subtitle}
|
|
124
|
+
ctaLabel={copy.ctaLabel}
|
|
125
|
+
linkContent={
|
|
126
|
+
<PrizmaButton
|
|
127
|
+
variant="secondary"
|
|
128
|
+
size="L"
|
|
129
|
+
onClick={() => onAction?.({ type: 'secondary', screenId })}
|
|
130
|
+
>
|
|
131
|
+
{strings.backLabel}
|
|
132
|
+
</PrizmaButton>
|
|
133
|
+
}
|
|
134
|
+
verifiedLabel={strings.verifiedLabel}
|
|
135
|
+
navLabel={strings.navLabel}
|
|
136
|
+
screenId={screenId}
|
|
137
|
+
overrides={{ align: overrides?.align ?? 'left', logo: overrides?.logo }}
|
|
138
|
+
onAction={onAction}
|
|
139
|
+
{...shell}
|
|
140
|
+
>
|
|
141
|
+
<PrizmaTextField
|
|
142
|
+
label={copy.street.label}
|
|
143
|
+
placeholder={copy.street.placeholder}
|
|
144
|
+
required
|
|
145
|
+
requiredHint={strings.requiredHint}
|
|
146
|
+
autoComplete="off"
|
|
147
|
+
defaultValue={values?.street ?? ''}
|
|
148
|
+
/>
|
|
149
|
+
<PrizmaTextField
|
|
150
|
+
label={copy.houseNumber.label}
|
|
151
|
+
placeholder={copy.houseNumber.placeholder}
|
|
152
|
+
required
|
|
153
|
+
requiredHint={strings.requiredHint}
|
|
154
|
+
autoComplete="off"
|
|
155
|
+
defaultValue={values?.houseNumber ?? ''}
|
|
156
|
+
/>
|
|
157
|
+
{/* The one field 6340:50731 draws without an asterisk. */}
|
|
158
|
+
<PrizmaTextField
|
|
159
|
+
label={copy.addressLine2.label}
|
|
160
|
+
placeholder={copy.addressLine2.placeholder}
|
|
161
|
+
autoComplete="off"
|
|
162
|
+
defaultValue={values?.addressLine2 ?? ''}
|
|
163
|
+
/>
|
|
164
|
+
<PrizmaTextField
|
|
165
|
+
label={copy.city.label}
|
|
166
|
+
placeholder={copy.city.placeholder}
|
|
167
|
+
required
|
|
168
|
+
requiredHint={strings.requiredHint}
|
|
169
|
+
autoComplete="off"
|
|
170
|
+
defaultValue={values?.city ?? ''}
|
|
171
|
+
/>
|
|
172
|
+
<PrizmaDropdown
|
|
173
|
+
label={copy.state.label}
|
|
174
|
+
placeholder={copy.state.placeholder}
|
|
175
|
+
required
|
|
176
|
+
requiredHint={strings.requiredHint}
|
|
177
|
+
options={states}
|
|
178
|
+
/* Both sections draw the placeholder unless the host supplies a
|
|
179
|
+
value — see the docstring note on 6340:38197. */
|
|
180
|
+
defaultValue={values?.state ?? null}
|
|
181
|
+
/* No `searchable` and therefore no `searchPlaceholder`: neither
|
|
182
|
+
address section draws this menu open, so there is nothing to build
|
|
183
|
+
it from — and a `searchPlaceholder` without `searchable` would be a
|
|
184
|
+
prop that silently does nothing (the #CURP-3 class of defect). */
|
|
185
|
+
/>
|
|
186
|
+
<PrizmaTextField
|
|
187
|
+
label={copy.postalCode.label}
|
|
188
|
+
placeholder={copy.postalCode.placeholder}
|
|
189
|
+
required
|
|
190
|
+
requiredHint={strings.requiredHint}
|
|
191
|
+
autoComplete="off"
|
|
192
|
+
defaultValue={values?.postalCode ?? ''}
|
|
193
|
+
/>
|
|
194
|
+
</PrizmaFormScreen>
|
|
195
|
+
);
|
|
196
|
+
},
|
|
197
|
+
);
|
|
198
|
+
EkybAddressDetailsScreen.displayName = 'EkybAddressDetailsScreen';
|
|
199
|
+
|
|
200
|
+
export default EkybAddressDetailsScreen;
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import React, { forwardRef } from 'react';
|
|
2
|
+
import { PrizmaTextField } from '@incodetech/prizma-core-web/text-field';
|
|
3
|
+
import { PrizmaButton } from '@incodetech/prizma-core-web/button';
|
|
4
|
+
import { PrizmaStepper } from '@incodetech/prizma-core-web/stepper';
|
|
5
|
+
import { PrizmaFormScreen, type PrizmaFormScreenProps } from './FormScreen';
|
|
6
|
+
import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
|
|
7
|
+
import type { EkybBusinessState, EkybBusinessValues, EkybStrings } from './EkybStrings';
|
|
8
|
+
import './ScreenLayout.css';
|
|
9
|
+
|
|
10
|
+
export interface EkybBusinessDetailsScreenProps
|
|
11
|
+
extends Omit<
|
|
12
|
+
PrizmaFormScreenProps,
|
|
13
|
+
| 'title'
|
|
14
|
+
| 'subtitle'
|
|
15
|
+
| 'ctaLabel'
|
|
16
|
+
| 'ctaLoading'
|
|
17
|
+
| 'ctaLoadingLabel'
|
|
18
|
+
| 'verifiedLabel'
|
|
19
|
+
| 'children'
|
|
20
|
+
| 'navLabel'
|
|
21
|
+
| 'linkLabel'
|
|
22
|
+
| 'linkContent'
|
|
23
|
+
| 'progress'
|
|
24
|
+
> {
|
|
25
|
+
/** Module copy — this screen reads the `business` slice. */
|
|
26
|
+
strings: EkybStrings;
|
|
27
|
+
/** Which purple `eKYB.Bdetails.*` section to render. Default `empty`. */
|
|
28
|
+
state?: EkybBusinessState;
|
|
29
|
+
/** The two field values. Empty renders the resting empty field. */
|
|
30
|
+
values?: EkybBusinessValues;
|
|
31
|
+
screenId?: string;
|
|
32
|
+
overrides?: PrizmaScreenOverrides;
|
|
33
|
+
onAction?: PrizmaScreenActionHandler;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* eKYB — step 1 of the wizard, the company's identity, built on the Form
|
|
38
|
+
* archetype (GUIDELINES.md §6-E, `PrizmaFormScreen`).
|
|
39
|
+
*
|
|
40
|
+
* ONE screen for both purple `eKYB.Bdetails.*` sections (`empty` 2115:21864,
|
|
41
|
+
* `filled` 5663:83132): measured against the 390 frames they share an identical
|
|
42
|
+
* skeleton — nav → Title (H2 + H5) → Spacing/32 → two labelled fields at
|
|
43
|
+
* Spacing/16 → "Continue" → "Back" → tag — and differ ONLY in field content.
|
|
44
|
+
*
|
|
45
|
+
* Three things are deliberate, each a lesson an earlier module paid for:
|
|
46
|
+
*
|
|
47
|
+
* 1. The fields are UNCONTROLLED (`defaultValue`). A screen is one static spec
|
|
48
|
+
* state, so no `onChange` is needed — and Core's `readOnly`, the other way to
|
|
49
|
+
* freeze a field, paints the DISABLED grey surface on sections Figma draws
|
|
50
|
+
* white (DEVIATIONS #PI-6). Neither section greys anything, so nothing here
|
|
51
|
+
* is `disabled`.
|
|
52
|
+
* 2. Figma draws no placeholders on these fields — the label row carries the
|
|
53
|
+
* meaning — so `empty` really is a blank field, not a hinted one.
|
|
54
|
+
* 3. "Back" is a full-width OUTLINED `secondary` button under the primary.
|
|
55
|
+
* Archetype E has no `secondaryCtaLabel` slot (archetype F does), so it is
|
|
56
|
+
* composed into the archetype's `linkContent` slot exactly as CURP does
|
|
57
|
+
* (DEVIATIONS #CURP-2): no primitive invented, no layout declared, the
|
|
58
|
+
* action stays a distinct `secondary` event, and it lands BELOW the primary,
|
|
59
|
+
* which is both what Figma draws and what #GEO-1 requires.
|
|
60
|
+
*
|
|
61
|
+
* The required asterisk is Core's `requiredHint` suffix on a `required` field —
|
|
62
|
+
* the label rows Figma draws as "Business name *" / "Tax ID *" — so the marker
|
|
63
|
+
* stays localizable and is never baked into the label string.
|
|
64
|
+
*
|
|
65
|
+
* The three-segment journey bar Figma draws between the nav and the title is
|
|
66
|
+
* Core's own `PrizmaStepper` in the archetype's `progress` slot — the slot
|
|
67
|
+
* archetype E gained for eKYC (DEVIATIONS #EK-1) and the fix for the QA finding
|
|
68
|
+
* that the wizard shipped with no progress signal. This is step 1 of 3, so the
|
|
69
|
+
* bar is at `currentState="Start"`: segment 1 filled, segments 2 and 3 grey,
|
|
70
|
+
* exactly what 5919:68599 renders. Both offsets around it live in
|
|
71
|
+
* `ScreenLayout.css`, never here.
|
|
72
|
+
*/
|
|
73
|
+
export const EkybBusinessDetailsScreen = forwardRef<
|
|
74
|
+
HTMLDivElement,
|
|
75
|
+
EkybBusinessDetailsScreenProps
|
|
76
|
+
>(
|
|
77
|
+
(
|
|
78
|
+
{
|
|
79
|
+
strings,
|
|
80
|
+
state = 'empty',
|
|
81
|
+
values,
|
|
82
|
+
screenId = `ekyb-business-${state}`,
|
|
83
|
+
overrides,
|
|
84
|
+
onAction,
|
|
85
|
+
...shell
|
|
86
|
+
},
|
|
87
|
+
ref,
|
|
88
|
+
) => {
|
|
89
|
+
const copy = strings.business;
|
|
90
|
+
|
|
91
|
+
return (
|
|
92
|
+
<PrizmaFormScreen
|
|
93
|
+
ref={ref}
|
|
94
|
+
/* Step 1 of 3. `showIcons={false}` because the eKYB frames draw the bar
|
|
95
|
+
as a bare 5px rail with no glyph row. */
|
|
96
|
+
progress={
|
|
97
|
+
<PrizmaStepper
|
|
98
|
+
steps={3}
|
|
99
|
+
currentState="Start"
|
|
100
|
+
showIcons={false}
|
|
101
|
+
aria-label={strings.stepperLabel}
|
|
102
|
+
/>
|
|
103
|
+
}
|
|
104
|
+
title={copy.title}
|
|
105
|
+
subtitle={copy.subtitle}
|
|
106
|
+
ctaLabel={copy.ctaLabel}
|
|
107
|
+
linkContent={
|
|
108
|
+
<PrizmaButton
|
|
109
|
+
variant="secondary"
|
|
110
|
+
size="L"
|
|
111
|
+
onClick={() => onAction?.({ type: 'secondary', screenId })}
|
|
112
|
+
>
|
|
113
|
+
{strings.backLabel}
|
|
114
|
+
</PrizmaButton>
|
|
115
|
+
}
|
|
116
|
+
verifiedLabel={strings.verifiedLabel}
|
|
117
|
+
navLabel={strings.navLabel}
|
|
118
|
+
screenId={screenId}
|
|
119
|
+
/* Left-aligned title block, the alignment every eKYB frame draws; a host
|
|
120
|
+
`align` still wins (#GEO-2). */
|
|
121
|
+
overrides={{ align: overrides?.align ?? 'left', logo: overrides?.logo }}
|
|
122
|
+
onAction={onAction}
|
|
123
|
+
{...shell}
|
|
124
|
+
>
|
|
125
|
+
<PrizmaTextField
|
|
126
|
+
label={copy.businessName.label}
|
|
127
|
+
placeholder={copy.businessName.placeholder}
|
|
128
|
+
required
|
|
129
|
+
requiredHint={strings.requiredHint}
|
|
130
|
+
autoComplete="off"
|
|
131
|
+
defaultValue={values?.businessName ?? ''}
|
|
132
|
+
/>
|
|
133
|
+
<PrizmaTextField
|
|
134
|
+
label={copy.taxId.label}
|
|
135
|
+
placeholder={copy.taxId.placeholder}
|
|
136
|
+
required
|
|
137
|
+
requiredHint={strings.requiredHint}
|
|
138
|
+
autoComplete="off"
|
|
139
|
+
defaultValue={values?.taxId ?? ''}
|
|
140
|
+
/>
|
|
141
|
+
</PrizmaFormScreen>
|
|
142
|
+
);
|
|
143
|
+
},
|
|
144
|
+
);
|
|
145
|
+
EkybBusinessDetailsScreen.displayName = 'EkybBusinessDetailsScreen';
|
|
146
|
+
|
|
147
|
+
export default EkybBusinessDetailsScreen;
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import React, { forwardRef } from 'react';
|
|
2
|
+
import { PrizmaDropdown } from '@incodetech/prizma-core-web/dropdown';
|
|
3
|
+
import { PrizmaFormScreen, type PrizmaFormScreenProps } from './FormScreen';
|
|
4
|
+
import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
|
|
5
|
+
import type { EkybCountryState, EkybOption, EkybStrings } from './EkybStrings';
|
|
6
|
+
import './ScreenLayout.css';
|
|
7
|
+
|
|
8
|
+
export interface EkybCountryScreenProps
|
|
9
|
+
extends Omit<
|
|
10
|
+
PrizmaFormScreenProps,
|
|
11
|
+
| 'title'
|
|
12
|
+
| 'subtitle'
|
|
13
|
+
| 'ctaLabel'
|
|
14
|
+
| 'ctaLoading'
|
|
15
|
+
| 'ctaLoadingLabel'
|
|
16
|
+
| 'verifiedLabel'
|
|
17
|
+
| 'children'
|
|
18
|
+
| 'navLabel'
|
|
19
|
+
| 'linkLabel'
|
|
20
|
+
| 'linkContent'
|
|
21
|
+
> {
|
|
22
|
+
/** Module copy — this screen reads the `country` slice. */
|
|
23
|
+
strings: EkybStrings;
|
|
24
|
+
/** Which purple `eKYB.country.*` section to render. Default `empty`. */
|
|
25
|
+
state?: EkybCountryState;
|
|
26
|
+
/** The selectable countries. Runtime data, not copy — the host owns the
|
|
27
|
+
* catalogue. */
|
|
28
|
+
countries?: EkybOption[];
|
|
29
|
+
/** Selected `EkybOption.value`. Omit to render the placeholder (`empty`). */
|
|
30
|
+
value?: string;
|
|
31
|
+
screenId?: string;
|
|
32
|
+
overrides?: PrizmaScreenOverrides;
|
|
33
|
+
onAction?: PrizmaScreenActionHandler;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* eKYB — the country-of-registration page, built on the Form archetype
|
|
38
|
+
* (GUIDELINES.md §6-E, `PrizmaFormScreen`).
|
|
39
|
+
*
|
|
40
|
+
* ONE screen for all three purple `eKYB.country.*` sections (`empty`
|
|
41
|
+
* 2115:20444, `filled` 5655:42140, `dropdown` 5707:54174): measured against the
|
|
42
|
+
* 390 frames they share an identical skeleton — nav → Title (H2 + H5) →
|
|
43
|
+
* Spacing/32 → one labelled dropdown → "Continue" pushed to the bottom → tag —
|
|
44
|
+
* and differ ONLY in what the dropdown carries, which is exactly what
|
|
45
|
+
* GUIDELINES §6-E means by "states are separate screens sharing the identical
|
|
46
|
+
* layout".
|
|
47
|
+
*
|
|
48
|
+
* Three things are deliberate:
|
|
49
|
+
*
|
|
50
|
+
* 1. The field DOES carry a visible label. Unlike Phone Input's combined row
|
|
51
|
+
* (#PI-4), Figma draws "Country" above this dropdown, which is Core's own
|
|
52
|
+
* `label` slot — so the copy rides the visible label, not `aria-label`.
|
|
53
|
+
* 2. `dropdown` IS the open-menu spec state, which Core exposes as the
|
|
54
|
+
* documentation-only `forceOpen` (a screen is one static spec state, never a
|
|
55
|
+
* live interaction) — the same mechanism Phone Input's `countryCode` and
|
|
56
|
+
* CURP's `Gene.dropdown` sections use. The search bar Figma draws inside the
|
|
57
|
+
* menu is Core's own `searchable`.
|
|
58
|
+
* 3. The closed field and the menu row are DIFFERENT faces of one option:
|
|
59
|
+
* 5707:54174 draws "🇺🇸 United States" in the field while the rows read
|
|
60
|
+
* "🇺🇸 +1 United States". That is Core's `PrizmaDropdownOption.fieldLabel`,
|
|
61
|
+
* so nothing is hand-composed. The flag travels inside the label text
|
|
62
|
+
* because Core still ships no country-flag primitive (#PI-3).
|
|
63
|
+
*
|
|
64
|
+
* This page is the only eKYB form page with NO "Back" secondary and NO Stepper —
|
|
65
|
+
* it is step 0, before the three-step wizard starts.
|
|
66
|
+
*/
|
|
67
|
+
export const EkybCountryScreen = forwardRef<HTMLDivElement, EkybCountryScreenProps>(
|
|
68
|
+
(
|
|
69
|
+
{
|
|
70
|
+
strings,
|
|
71
|
+
state = 'empty',
|
|
72
|
+
countries = [],
|
|
73
|
+
value,
|
|
74
|
+
screenId = `ekyb-country-${state}`,
|
|
75
|
+
overrides,
|
|
76
|
+
onAction,
|
|
77
|
+
...shell
|
|
78
|
+
},
|
|
79
|
+
ref,
|
|
80
|
+
) => {
|
|
81
|
+
const copy = strings.country;
|
|
82
|
+
// `empty` is the only section drawn on the placeholder; both other sections
|
|
83
|
+
// draw a chosen country in the closed field.
|
|
84
|
+
const selected = state === 'empty' ? null : (value ?? countries[0]?.value ?? null);
|
|
85
|
+
|
|
86
|
+
return (
|
|
87
|
+
<PrizmaFormScreen
|
|
88
|
+
ref={ref}
|
|
89
|
+
title={copy.title}
|
|
90
|
+
subtitle={copy.subtitle}
|
|
91
|
+
ctaLabel={copy.ctaLabel}
|
|
92
|
+
verifiedLabel={strings.verifiedLabel}
|
|
93
|
+
navLabel={strings.navLabel}
|
|
94
|
+
screenId={screenId}
|
|
95
|
+
/* Every eKYB form frame LEFT-aligns its title block, while the archetype
|
|
96
|
+
defaults to centred. The module supplies its designed alignment
|
|
97
|
+
through the sanctioned override rather than declaring any layout of
|
|
98
|
+
its own, and a host that passes `align` still wins (#GEO-2). */
|
|
99
|
+
overrides={{ align: overrides?.align ?? 'left', logo: overrides?.logo }}
|
|
100
|
+
onAction={onAction}
|
|
101
|
+
{...shell}
|
|
102
|
+
>
|
|
103
|
+
<PrizmaDropdown
|
|
104
|
+
label={copy.field.label}
|
|
105
|
+
placeholder={copy.field.placeholder}
|
|
106
|
+
options={countries}
|
|
107
|
+
/* Uncontrolled: a screen is one static spec state, so no `onChange` is
|
|
108
|
+
needed. Core's `readOnly`/`disabled` are NOT used to freeze it —
|
|
109
|
+
they paint the DISABLED grey surface on a section Figma draws white
|
|
110
|
+
(DEVIATIONS #PI-6). */
|
|
111
|
+
defaultValue={selected}
|
|
112
|
+
searchable
|
|
113
|
+
searchPlaceholder={copy.searchPlaceholder}
|
|
114
|
+
clearSearchLabel={copy.clearSearchLabel}
|
|
115
|
+
/* The `dropdown` section IS the open-menu spec state. */
|
|
116
|
+
forceOpen={state === 'dropdown'}
|
|
117
|
+
/>
|
|
118
|
+
</PrizmaFormScreen>
|
|
119
|
+
);
|
|
120
|
+
},
|
|
121
|
+
);
|
|
122
|
+
EkybCountryScreen.displayName = 'EkybCountryScreen';
|
|
123
|
+
|
|
124
|
+
export default EkybCountryScreen;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import React, { forwardRef } from 'react';
|
|
2
|
+
import { PrizmaResultScreen, type PrizmaResultScreenProps } from './ResultScreen';
|
|
3
|
+
import type { PrizmaScreenActionHandler, PrizmaScreenOverrides } from './types';
|
|
4
|
+
import type { EkybStrings } from './EkybStrings';
|
|
5
|
+
import './ScreenLayout.css';
|
|
6
|
+
|
|
7
|
+
export interface EkybErrorScreenProps
|
|
8
|
+
extends Omit<
|
|
9
|
+
PrizmaResultScreenProps,
|
|
10
|
+
| 'status'
|
|
11
|
+
| 'title'
|
|
12
|
+
| 'subtitle'
|
|
13
|
+
| 'glyph'
|
|
14
|
+
| 'ctaLabel'
|
|
15
|
+
| 'secondaryCtaLabel'
|
|
16
|
+
| 'verifiedLabel'
|
|
17
|
+
| 'navLabel'
|
|
18
|
+
> {
|
|
19
|
+
/** Module copy — this screen reads the `error` slice. */
|
|
20
|
+
strings: EkybStrings;
|
|
21
|
+
screenId?: string;
|
|
22
|
+
overrides?: PrizmaScreenOverrides;
|
|
23
|
+
onAction?: PrizmaScreenActionHandler;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* eKYB — the negative verdict (`eKYB.error`, 2116:34743), built on the Result
|
|
28
|
+
* archetype (GUIDELINES.md §6-F, `PrizmaResultScreen`).
|
|
29
|
+
*
|
|
30
|
+
* Nav → centred negative mark + H2 ("Something went wrong") → CTA band with the
|
|
31
|
+
* single "Try again" primary → anchored tag. It sits on F rather than C for one
|
|
32
|
+
* reason: it has a button, and §6-F reserves C for the pure no-button case —
|
|
33
|
+
* which is why its `success` sibling is on C and this one is not.
|
|
34
|
+
*
|
|
35
|
+
* This is a generic-error screen, and per the standing owner rule it KEEPS the
|
|
36
|
+
* logo header and the verified tag even where a module's Figma draws them bare
|
|
37
|
+
* (#PI-8, #F-34) — here Figma draws both anyway, so nothing is overridden.
|
|
38
|
+
*
|
|
39
|
+
* Core's outline status mark is used, not Figma's two-tone filled disc
|
|
40
|
+
* (icon-outline sweep, #15 / #DC-34).
|
|
41
|
+
*/
|
|
42
|
+
export const EkybErrorScreen = forwardRef<HTMLDivElement, EkybErrorScreenProps>(
|
|
43
|
+
({ strings, screenId = 'ekyb-error', overrides, onAction, ...shell }, ref) => (
|
|
44
|
+
<PrizmaResultScreen
|
|
45
|
+
ref={ref}
|
|
46
|
+
status="error"
|
|
47
|
+
title={strings.error.title}
|
|
48
|
+
subtitle={strings.error.subtitle}
|
|
49
|
+
ctaLabel={strings.error.ctaLabel}
|
|
50
|
+
verifiedLabel={strings.verifiedLabel}
|
|
51
|
+
navLabel={strings.navLabel}
|
|
52
|
+
screenId={screenId}
|
|
53
|
+
overrides={overrides}
|
|
54
|
+
onAction={onAction}
|
|
55
|
+
{...shell}
|
|
56
|
+
/>
|
|
57
|
+
),
|
|
58
|
+
);
|
|
59
|
+
EkybErrorScreen.displayName = 'EkybErrorScreen';
|
|
60
|
+
|
|
61
|
+
export default EkybErrorScreen;
|