@incodetech/web 0.0.0-dev-20260729-9e7b030a → 0.0.0-dev-20260729-a31df3b7
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/dist/ae-signature/ae-signature.es.js +3 -3
- package/dist/antifraud/antifraud.es.js +3 -3
- package/dist/authentication/authentication.es.js +4 -4
- package/dist/{autoFocusTitle-CvZ2oKGw.js → autoFocusTitle-D1GHOAjH.js} +1 -1
- package/dist/certificate-issuance/certificate-issuance.es.js +9 -9
- package/dist/{checkbox-CjLNtXmu.js → checkbox-CvBuCfQh.js} +3 -3
- package/dist/{connectionError-DbDaaT-B.js → connectionError-DgH_z5kf.js} +3 -3
- package/dist/consent/consent.es.js +6 -6
- package/dist/{countrySelector-DWK-Q92b.js → countrySelector--5xoap3n.js} +2 -2
- package/dist/cross-document-data-match/cross-document-data-match.es.js +3 -3
- package/dist/curp-validation/curp-validation.es.js +12 -12
- package/dist/{customFields-JRAHfQtj.js → customFields-CfeNKDc5.js} +9 -9
- package/dist/{customWatchlist-DaP3FwDS.js → customWatchlist-CHYUtWKe.js} +5 -5
- package/dist/{dashboardTheme-BExWWw2E.js → dashboardTheme-CVliZSR-.js} +1 -1
- package/dist/{dateInputComposed-Bmm1u44s.js → dateInputComposed-P7Qs8RyW.js} +4 -4
- package/dist/dateInputComposed-aBLuOnmc.js +1 -0
- package/dist/document-capture/document-capture.es.js +1 -1
- package/dist/{documentCapture-BxwzPRns.js → documentCapture-ChmoxnXl.js} +14 -14
- package/dist/documentCapture-Dztskijk.js +2 -0
- package/dist/dropdownComposed-D5VwrEX-.js +1 -0
- package/dist/{dropdownComposed-B6FF4cVZ.js → dropdownComposed-Dlwcx-aR.js} +3 -3
- package/dist/{dynamicForms-Crad7QeY.js → dynamicForms-D5lkwGXq.js} +10 -10
- package/dist/ekyb/ekyb.es.js +1 -1
- package/dist/{ekybModule-Dp6Do6FI.js → ekybModule-QwZEaF5w.js} +13 -13
- package/dist/ekybModule-quhESB0N.js +2 -0
- package/dist/ekyc/ekyc.es.js +1 -1
- package/dist/ekycModule-3S5l5GCP.js +2 -0
- package/dist/{ekycModule-BxT6xyZU.js → ekycModule-CrdYv1cE.js} +11 -11
- package/dist/electronic-signature/electronic-signature.es.js +1 -1
- package/dist/{electronic-signature-ClbcVTNk.js → electronic-signature-Bfavo-r6.js} +9 -9
- package/dist/email/email.es.js +7 -7
- package/dist/{emailInput-BqlrJ_dX.js → emailInput-CuffX9J-.js} +3 -3
- package/dist/{expiredId-CJXzq12W.js → expiredId-DqQ2pcOs.js} +5 -5
- package/dist/{extensibility-DtlPhQNL.js → extensibility-D4tu352m.js} +35 -34
- package/dist/extensibility.es.js +21 -21
- package/dist/face-match/face-match.es.js +1 -1
- package/dist/{faceMatch-BHuxQw6x.js → faceMatch-B6QDKqLv.js} +7 -7
- package/dist/faceMatch-CgisVOjO.js +2 -0
- package/dist/field-comparison/field-comparison.es.js +1 -1
- package/dist/fieldComparison-CG2GyJGi.js +2 -0
- package/dist/{fieldComparison-mJFplVwr.js → fieldComparison-CJuwVWT1.js} +8 -8
- package/dist/finalSuccessScreen-BzfPc7PE.js +500 -0
- package/dist/fiscal-qr/fiscal-qr.es.js +8 -8
- package/dist/flow/flow.es.js +7 -7
- package/dist/flow/styles.css +18 -0
- package/dist/geolocation/geolocation.es.js +7 -7
- package/dist/government-validation/government-validation.es.js +8 -8
- package/dist/{homeScreen-ayC3SHjN.js → homeScreen-oanS5coR.js} +6 -6
- package/dist/{icons-CnHH5IUi.js → icons-B4dc7Tc_.js} +1 -1
- package/dist/id/id.es.js +18 -18
- package/dist/id/styles.css +4 -0
- package/dist/id-selfie-flow/id-selfie-flow.es.js +239 -0
- package/dist/id-selfie-flow/styles.css +1989 -0
- package/dist/id-verification/id-verification.es.js +4 -4
- package/dist/{idOcr-BNi9FWGZ.js → idOcr-DSnzbpAy.js} +9 -9
- package/dist/identity-reuse/identity-reuse.es.js +5 -5
- package/dist/{incode-logo-B44XBmUF.js → incode-logo-DfmsgFwc.js} +1 -1
- package/dist/{incodeComponent-CaVm81Om.js → incodeComponent-OSkicUIt.js} +5 -5
- package/dist/{incodeModule-B02hDGir.js → incodeModule-BE4EvBi8.js} +1 -1
- package/dist/index.es.js +2 -2
- package/dist/inputComposed-BY8Oxpj8.js +1 -0
- package/dist/{inputComposed-CWQkki5v.js → inputComposed-CLVhm6Gq.js} +3 -3
- package/dist/{mandatoryConsent-CfBlj5BM.js → mandatoryConsent-5xeUtj4a.js} +6 -6
- package/dist/{captureNotification-CZJAUALL.js → manualCaptureButton-CuYBkH_6.js} +40 -8
- package/dist/{permissions-CVWfTL-t.js → manualCaptureButton-sP8OSo15.js} +67 -8
- package/dist/{modal-B9tF0ldx.js → modal-DtPq9tRg.js} +2 -2
- package/dist/{optionAccessibleLabel-DeFMUVpn.js → optionAccessibleLabel-DfYYgV37.js} +4 -4
- package/dist/{otpInput-Dju8N2oD.js → otpInput-BXwcWbC7.js} +5 -5
- package/dist/pdfViewer-CYtBaOg-.js +2 -0
- package/dist/{pdfViewer-CvCy4uwi.js → pdfViewer-CYu11qlC.js} +3 -3
- package/dist/phone/phone.es.js +8 -8
- package/dist/{phoneInputComposed-DgMwulFN.js → phoneInputComposed-CFgW-FR9.js} +4 -4
- package/dist/{processing-DIUdk0S7.js → processing-v72-8SOm.js} +1 -1
- package/dist/qe-signature/qe-signature.es.js +3 -3
- package/dist/{radioGroupComposed-CRePkzYH.js → radioGroupComposed-Bx9G6loj.js} +5 -5
- package/dist/redirect-to-mobile/redirect-to-mobile.es.js +11 -11
- package/dist/{richText-BTiSRN0z.js → richText-ChGYb8a9.js} +1 -1
- package/dist/selfie/selfie.es.js +6 -6
- package/dist/signature/signature.es.js +7 -7
- package/dist/{snackbar-6nHZdZCi.js → snackbar-DOvKTbQf.js} +1 -1
- package/dist/{spacer-D52odyVb.js → spacer-Dv_GLIg1.js} +9 -9
- package/dist/{spinner-CEzuAsxR.js → spinner-9U-97vN9.js} +1 -1
- package/dist/{statusPage-BpxFc-P6.js → statusPage-BUedaCa2.js} +3 -3
- package/dist/{tabs-CbAXowHB.js → tabs-DLNEOL_N.js} +1 -1
- package/dist/{tutorial-CiSCBe8S.js → tutorial-DmfT2_ZD.js} +9 -66
- package/dist/types/id-selfie-flow.d.ts +161 -0
- package/dist/{uiConfig-Ar3UWfPc.js → uiConfig-B5ASPUL4.js} +1 -1
- package/dist/{useModuleLoader-DDr5IBnE.js → useModuleLoader-Dts-cY1f.js} +18 -18
- package/dist/{verificationResult-Bn1_erQu.js → verificationResult-7dnG2xo-.js} +7 -7
- package/dist/video-selfie/styles.css +14 -0
- package/dist/video-selfie/video-selfie.es.js +13 -487
- package/dist/watchlist/watchlist.es.js +5 -5
- package/dist/{watchlistForBusiness-Bgao5oZx.js → watchlistForBusiness-DdgVw02m.js} +8 -8
- package/dist/workflow/styles.css +4 -0
- package/dist/workflow/workflow.es.js +7 -7
- package/package.json +11 -2
- package/dist/dateInputComposed-CWtAGa8F.js +0 -1
- package/dist/documentCapture-DGG_2ySV.js +0 -2
- package/dist/dropdownComposed-D_Nb9dcy.js +0 -1
- package/dist/ekybModule-ORG0loIk.js +0 -2
- package/dist/ekycModule-BCVOgvs0.js +0 -2
- package/dist/faceMatch-BKvaCYWC.js +0 -2
- package/dist/fieldComparison-Dgzs9T1n.js +0 -2
- package/dist/inputComposed-DwUPrwiA.js +0 -1
- package/dist/pdfViewer-tQrHCTu2.js +0 -2
- /package/dist/{aligndevicelottie-DXalhkKB.js → aligndevicelottie-CfoZ5Uus.js} +0 -0
- /package/dist/{back-horizontal-hint-DTbSbMez.js → back-horizontal-hint-BBGuJ75y.js} +0 -0
- /package/dist/{back-tutorial-v9Hk3XFo.js → back-tutorial-BHyRHyET.js} +0 -0
- /package/dist/{back-vertical-hint-DflUmM1H.js → back-vertical-hint-B9usJ5lY.js} +0 -0
- /package/dist/{backdevicelottie-Bo_klJll.js → backdevicelottie-yKkczgFy.js} +0 -0
- /package/dist/{blurdevicelottie-CxKLM4Vs.js → blurdevicelottie-8BbophdM.js} +0 -0
- /package/dist/{browser-ponyfill-uS1iX5_X.js → browser-ponyfill-CBjGwwPW.js} +0 -0
- /package/dist/{flip-animation-DTAAOpEa.js → flip-animation-CvN8FLNc.js} +0 -0
- /package/dist/{front-horizontal-hint-ClzgOBfO.js → front-horizontal-hint-D3CrWViZ.js} +0 -0
- /package/dist/{front-vertical-hint-Bg_PjoFD.js → front-vertical-hint-BoLZvyx5.js} +0 -0
- /package/dist/{frontdevicelottie-DC_J26cw.js → frontdevicelottie-CFcahVLk.js} +0 -0
- /package/dist/{glaredevicelottie-v7rkW_o-.js → glaredevicelottie-Cnvah0kz.js} +0 -0
- /package/dist/{id-laser-h-B5wVlgYu.js → id-laser-h-BaUHzX-d.js} +0 -0
- /package/dist/{id-laser-v-Dt8NRFVP.js → id-laser-v-Dv9yEYJE.js} +0 -0
- /package/dist/{id-tutorial-B5rsdHAH.js → id-tutorial-BOOsXlAJ.js} +0 -0
- /package/dist/{lottie_light-DpbDagTe.js → lottie_light-Bv56F2Ae.js} +0 -0
- /package/dist/{passport-horizontal-hint-BWVt9PyV.js → passport-horizontal-hint-DgnU-8bl.js} +0 -0
- /package/dist/{passport-tutorial-CDUEHwmA.js → passport-tutorial-CeSup6m9.js} +0 -0
- /package/dist/{passport-vertical-hint-BCO4926p.js → passport-vertical-hint-Dd2Wknw7.js} +0 -0
- /package/dist/{pdf-yaBNakba.js → pdf-BUoY_2gv.js} +0 -0
- /package/dist/{selfieTutorial-UOaWO8hK.js → selfieTutorial-CYa8bq6B.js} +0 -0
package/dist/flow/styles.css
CHANGED
|
@@ -6900,6 +6900,10 @@
|
|
|
6900
6900
|
display: flex;
|
|
6901
6901
|
}
|
|
6902
6902
|
|
|
6903
|
+
.IncodeIdProcessingLayout.IncodeIdProcessingLayoutNoImage .IncodeIdProcessingBottomArea {
|
|
6904
|
+
justify-content: flex-end;
|
|
6905
|
+
}
|
|
6906
|
+
|
|
6903
6907
|
.IncodeIdProcessingLayout .IncodeAnalyzingContent {
|
|
6904
6908
|
flex-direction: column;
|
|
6905
6909
|
align-items: center;
|
|
@@ -9994,6 +9998,10 @@
|
|
|
9994
9998
|
opacity: 1;
|
|
9995
9999
|
}
|
|
9996
10000
|
|
|
10001
|
+
.IncodeVsSelfieManualCapture {
|
|
10002
|
+
pointer-events: auto;
|
|
10003
|
+
}
|
|
10004
|
+
|
|
9997
10005
|
.IncodeVideoSelfieOverlay .IncodeVsSelfieMask {
|
|
9998
10006
|
border-radius: var(--radius-full, var(--border-radius-full));
|
|
9999
10007
|
z-index: var(--video-selfie-mask-z-index);
|
|
@@ -10046,6 +10054,7 @@
|
|
|
10046
10054
|
|
|
10047
10055
|
.IncodeVsIdMask {
|
|
10048
10056
|
z-index: 50;
|
|
10057
|
+
padding-inline: var(--spacing-24);
|
|
10049
10058
|
justify-content: center;
|
|
10050
10059
|
align-items: center;
|
|
10051
10060
|
display: flex;
|
|
@@ -10053,6 +10062,15 @@
|
|
|
10053
10062
|
inset: 0;
|
|
10054
10063
|
}
|
|
10055
10064
|
|
|
10065
|
+
.IncodeVsIdMask .IncodeVsIdManualCapture {
|
|
10066
|
+
bottom: var(--spacing-32);
|
|
10067
|
+
z-index: 60;
|
|
10068
|
+
pointer-events: auto;
|
|
10069
|
+
position: absolute;
|
|
10070
|
+
left: 50%;
|
|
10071
|
+
transform: translateX(-50%);
|
|
10072
|
+
}
|
|
10073
|
+
|
|
10056
10074
|
.IncodeVsIdMask .IncodeIdCaptureNotification {
|
|
10057
10075
|
top: calc(var(--spacing-24) + var(--video-selfie-stepper-height) + var(--spacing-16));
|
|
10058
10076
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { i as useTranslation, r as Trans } from "../uiConfig-
|
|
1
|
+
import { i as useTranslation, r as Trans } from "../uiConfig-B5ASPUL4.js";
|
|
2
2
|
import { S as k, v as u } from "../vendor-preact-mvwZ8mJj.js";
|
|
3
|
-
import { _ as useModuleTerminalCallbacks, o as Page, r as withStandaloneModuleBootstrap, t as IncodeComponent, y as useManager } from "../incodeComponent-
|
|
4
|
-
import { t as Spacer } from "../spacer-
|
|
5
|
-
import { r as Button } from "../incode-logo-
|
|
6
|
-
import { t as VerificationResult } from "../verificationResult-
|
|
7
|
-
import { t as ConnectionError } from "../connectionError-
|
|
3
|
+
import { _ as useModuleTerminalCallbacks, o as Page, r as withStandaloneModuleBootstrap, t as IncodeComponent, y as useManager } from "../incodeComponent-OSkicUIt.js";
|
|
4
|
+
import { t as Spacer } from "../spacer-Dv_GLIg1.js";
|
|
5
|
+
import { r as Button } from "../incode-logo-DfmsgFwc.js";
|
|
6
|
+
import { t as VerificationResult } from "../verificationResult-7dnG2xo-.js";
|
|
7
|
+
import { t as ConnectionError } from "../connectionError-DgH_z5kf.js";
|
|
8
8
|
import { t as NumberedStep } from "../numberedStep-DUs77Gy3.js";
|
|
9
|
-
import { t as registerIncodeModuleElement } from "../incodeModule-
|
|
9
|
+
import { t as registerIncodeModuleElement } from "../incodeModule-BE4EvBi8.js";
|
|
10
10
|
import { getBrowser, getDeviceClass } from "@incodetech/core/device";
|
|
11
11
|
import { createGeolocationManager } from "@incodetech/core/geolocation";
|
|
12
12
|
//#region src/modules/geolocation/LocationActiveIcon.tsx
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { i as useTranslation } from "../uiConfig-
|
|
1
|
+
import { i as useTranslation } from "../uiConfig-B5ASPUL4.js";
|
|
2
2
|
import { S as k, v as u } from "../vendor-preact-mvwZ8mJj.js";
|
|
3
|
-
import { _ as useModuleTerminalCallbacks, o as Page, r as withStandaloneModuleBootstrap, t as IncodeComponent, y as useManager } from "../incodeComponent-
|
|
4
|
-
import { t as Spacer } from "../spacer-
|
|
5
|
-
import "../extensibility-
|
|
6
|
-
import { t as AutoFocusTitle } from "../autoFocusTitle-
|
|
7
|
-
import { t as VerificationResult } from "../verificationResult-
|
|
8
|
-
import { t as OtpInput } from "../otpInput-
|
|
9
|
-
import { t as registerIncodeModuleElement } from "../incodeModule-
|
|
3
|
+
import { _ as useModuleTerminalCallbacks, o as Page, r as withStandaloneModuleBootstrap, t as IncodeComponent, y as useManager } from "../incodeComponent-OSkicUIt.js";
|
|
4
|
+
import { t as Spacer } from "../spacer-Dv_GLIg1.js";
|
|
5
|
+
import "../extensibility-D4tu352m.js";
|
|
6
|
+
import { t as AutoFocusTitle } from "../autoFocusTitle-D1GHOAjH.js";
|
|
7
|
+
import { t as VerificationResult } from "../verificationResult-7dnG2xo-.js";
|
|
8
|
+
import { t as OtpInput } from "../otpInput-BXwcWbC7.js";
|
|
9
|
+
import { t as registerIncodeModuleElement } from "../incodeModule-BE4EvBi8.js";
|
|
10
10
|
import { createGovernmentValidationManager } from "@incodetech/core/government-validation";
|
|
11
11
|
//#region src/modules/government-validation/governmentIncodeLogo.tsx
|
|
12
12
|
var VerifiedByGovIncodeLogo = () => {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { i as useTranslation, l as getLanguageEmoji, n as useUiConfig, u as supportedLanguages } from "./uiConfig-
|
|
1
|
+
import { i as useTranslation, l as getLanguageEmoji, n as useUiConfig, u as supportedLanguages } from "./uiConfig-B5ASPUL4.js";
|
|
2
2
|
import { _ as y, d as T, l as A, p as d, v as u } from "./vendor-preact-mvwZ8mJj.js";
|
|
3
|
-
import { t as Spacer } from "./spacer-
|
|
4
|
-
import { r as Button } from "./incode-logo-
|
|
5
|
-
import { t as Modal } from "./modal-
|
|
6
|
-
import { t as DropdownComposed } from "./dropdownComposed-
|
|
7
|
-
import "./dropdownComposed-
|
|
3
|
+
import { t as Spacer } from "./spacer-Dv_GLIg1.js";
|
|
4
|
+
import { r as Button } from "./incode-logo-DfmsgFwc.js";
|
|
5
|
+
import { t as Modal } from "./modal-DtPq9tRg.js";
|
|
6
|
+
import { t as DropdownComposed } from "./dropdownComposed-Dlwcx-aR.js";
|
|
7
|
+
import "./dropdownComposed-D5VwrEX-.js";
|
|
8
8
|
//#region src/shared/homeScreen/language.ts
|
|
9
9
|
function capitalizeLabel(text, locale) {
|
|
10
10
|
const [firstCharacter, ...rest] = Array.from(text);
|
package/dist/id/id.es.js
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import { i as useTranslation } from "../uiConfig-
|
|
1
|
+
import { i as useTranslation } from "../uiConfig-B5ASPUL4.js";
|
|
2
2
|
import { S as k, _ as y, c as z, d as T, l as A, o as P, p as d, v as u } from "../vendor-preact-mvwZ8mJj.js";
|
|
3
|
-
import { _ as useModuleTerminalCallbacks, d as useTimeoutHandle, l as TransitionSpinner, o as Page, r as withStandaloneModuleBootstrap, t as IncodeComponent, y as useManager } from "../incodeComponent-
|
|
4
|
-
import { i as preloadAnimations, r as AnimatedAsset, s as Asset, t as Spacer, u as cn } from "../spacer-
|
|
5
|
-
import { n as Title, t as Spinner } from "../spinner-
|
|
6
|
-
import { n as ErrorIcon, r as Button } from "../incode-logo-
|
|
7
|
-
import { a as IdNoAttempts, b as ProgressBar, c as useIdExperiment, i as Capture, l as CaptureFrame, n as Chooser, o as IdExpired, r as Tutorial, s as IdError, t as FlipAnimation } from "../extensibility-
|
|
8
|
-
import { t as Processing } from "../processing-
|
|
9
|
-
import { r as LockIcon, u as ChevronRightIcon } from "../icons-
|
|
3
|
+
import { _ as useModuleTerminalCallbacks, d as useTimeoutHandle, l as TransitionSpinner, o as Page, r as withStandaloneModuleBootstrap, t as IncodeComponent, y as useManager } from "../incodeComponent-OSkicUIt.js";
|
|
4
|
+
import { i as preloadAnimations, r as AnimatedAsset, s as Asset, t as Spacer, u as cn } from "../spacer-Dv_GLIg1.js";
|
|
5
|
+
import { n as Title, t as Spinner } from "../spinner-9U-97vN9.js";
|
|
6
|
+
import { n as ErrorIcon, r as Button } from "../incode-logo-DfmsgFwc.js";
|
|
7
|
+
import { a as IdNoAttempts, b as ProgressBar, c as useIdExperiment, i as Capture, l as CaptureFrame, n as Chooser, o as IdExpired, r as Tutorial, s as IdError, t as FlipAnimation } from "../extensibility-D4tu352m.js";
|
|
8
|
+
import { t as Processing } from "../processing-v72-8SOm.js";
|
|
9
|
+
import { r as LockIcon, u as ChevronRightIcon } from "../icons-B4dc7Tc_.js";
|
|
10
10
|
import { t as SuccessIcon } from "../successIcon-Bj8Y9CuI.js";
|
|
11
|
-
import { i as ErrorContent } from "../tutorial-
|
|
12
|
-
import {
|
|
13
|
-
import { t as PdfViewer } from "../pdfViewer-
|
|
14
|
-
import { t as registerIncodeModuleElement } from "../incodeModule-
|
|
11
|
+
import { i as ErrorContent } from "../tutorial-DmfT2_ZD.js";
|
|
12
|
+
import { n as Permissions } from "../manualCaptureButton-sP8OSo15.js";
|
|
13
|
+
import { t as PdfViewer } from "../pdfViewer-CYu11qlC.js";
|
|
14
|
+
import { t as registerIncodeModuleElement } from "../incodeModule-BE4EvBi8.js";
|
|
15
15
|
import { t as SvgIdBackOfCard } from "../id-back-of-card-DO593HH8.js";
|
|
16
16
|
import { t as SvgIdBackOfCardVertical } from "../id-back-of-card-vertical-DArEQ0hE.js";
|
|
17
17
|
import { t as SvgIdFrontOfCard } from "../id-front-of-card-Bcit7Pnq.js";
|
|
18
18
|
import { t as SvgIdFrontOfCardVertical } from "../id-front-of-card-vertical-Bcr-KXcl.js";
|
|
19
|
-
import { t as Tabs } from "../tabs-
|
|
19
|
+
import { t as Tabs } from "../tabs-DLNEOL_N.js";
|
|
20
20
|
import { createIdCaptureManager } from "@incodetech/core/id";
|
|
21
21
|
//#region src/shared/fonts/preloadDisplayFont.ts
|
|
22
22
|
function preloadDisplayFont() {
|
|
@@ -224,7 +224,7 @@ var IdFlipTransition = ({ manager, state }) => {
|
|
|
224
224
|
const { params } = useIdExperiment({ key: "flipInCapturedState" });
|
|
225
225
|
const flipInCapturedState = params.flipInCaptureStateBehavior === "test";
|
|
226
226
|
const direction = state.status === "frontFinished" ? "toBack" : "toFront";
|
|
227
|
-
if (flipInCapturedState && state.mode !== "passport") return /* @__PURE__ */ u(IdFlipCard, {
|
|
227
|
+
if (flipInCapturedState && state.mode !== "passport" && state.previewImageUrl) return /* @__PURE__ */ u(IdFlipCard, {
|
|
228
228
|
manager,
|
|
229
229
|
direction,
|
|
230
230
|
imageUrl: state.previewImageUrl,
|
|
@@ -1092,9 +1092,9 @@ function preloadIdTutorialAssets() {
|
|
|
1092
1092
|
"id.tutorial.back",
|
|
1093
1093
|
"id.tutorial.passport"
|
|
1094
1094
|
]);
|
|
1095
|
-
import("../id-tutorial-
|
|
1096
|
-
import("../back-tutorial-
|
|
1097
|
-
import("../passport-tutorial-
|
|
1095
|
+
import("../id-tutorial-BOOsXlAJ.js");
|
|
1096
|
+
import("../back-tutorial-BHyRHyET.js");
|
|
1097
|
+
import("../passport-tutorial-CeSup6m9.js");
|
|
1098
1098
|
import("../id-back-of-card-DO593HH8.js").then((n) => n.n);
|
|
1099
1099
|
import("../id-back-of-card-vertical-DArEQ0hE.js").then((n) => n.n);
|
|
1100
1100
|
import("../id-front-of-card-Bcit7Pnq.js").then((n) => n.n);
|
|
@@ -1102,7 +1102,7 @@ function preloadIdTutorialAssets() {
|
|
|
1102
1102
|
}
|
|
1103
1103
|
//#endregion
|
|
1104
1104
|
//#region src/modules/id/id.tsx
|
|
1105
|
-
var MandatoryConsent = z(() => import("../mandatoryConsent-
|
|
1105
|
+
var MandatoryConsent = z(() => import("../mandatoryConsent-5xeUtj4a.js").then((module) => ({ default: module.MandatoryConsent })));
|
|
1106
1106
|
var IdContent = ({ config, manager: externalManager, onFinish, onError }) => {
|
|
1107
1107
|
usePreloadDisplayFont();
|
|
1108
1108
|
const { t } = useTranslation();
|
package/dist/id/styles.css
CHANGED
|
@@ -869,6 +869,10 @@
|
|
|
869
869
|
display: flex;
|
|
870
870
|
}
|
|
871
871
|
|
|
872
|
+
.IncodeIdProcessingLayout.IncodeIdProcessingLayoutNoImage .IncodeIdProcessingBottomArea {
|
|
873
|
+
justify-content: flex-end;
|
|
874
|
+
}
|
|
875
|
+
|
|
872
876
|
.IncodeIdProcessingLayout .IncodeAnalyzingContent {
|
|
873
877
|
flex-direction: column;
|
|
874
878
|
align-items: center;
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
import { i as useTranslation } from "../uiConfig-B5ASPUL4.js";
|
|
2
|
+
import { _ as y, d as T, p as d, v as u } from "../vendor-preact-mvwZ8mJj.js";
|
|
3
|
+
import { _ as useModuleTerminalCallbacks, a as TerminalErrorPage, l as TransitionSpinner, o as Page, t as IncodeComponent, y as useManager } from "../incodeComponent-OSkicUIt.js";
|
|
4
|
+
import { n as Title } from "../spinner-9U-97vN9.js";
|
|
5
|
+
import { a as CameraView, r as preloadCaptureAnimations } from "../manualCaptureButton-CuYBkH_6.js";
|
|
6
|
+
import { n as Permissions } from "../manualCaptureButton-sP8OSo15.js";
|
|
7
|
+
import { t as registerIncodeModuleElement } from "../incodeModule-BE4EvBi8.js";
|
|
8
|
+
import { a as IdFlipModal, c as VideoSelfieTutorial, i as IdMask, l as useVideoSelfiePermissions, n as SwitchingCameraScreen, o as preloadIdFlipAnimation, r as StepsHeader, s as SelfieMask, t as VideoSelfieFinalSuccessScreen } from "../finalSuccessScreen-BzfPc7PE.js";
|
|
9
|
+
import { createIdSelfieFlowManager, resolveIdSelfieFlowConfig, warmupIdSelfieFlowWasm } from "@incodetech/core/id-selfie-flow";
|
|
10
|
+
import { facingModeForStep } from "@incodetech/core/video-selfie";
|
|
11
|
+
//#region src/modules/id-selfie-flow/id-selfie-flow.tsx
|
|
12
|
+
/**
|
|
13
|
+
* @module @incodetech/web/id-selfie-flow
|
|
14
|
+
*
|
|
15
|
+
* ID + Selfie flow UI (PoC) — the REGULAR onboarding capture pipeline (ID
|
|
16
|
+
* front/back → `process/id`, selfie → `process/face`) presented through the
|
|
17
|
+
* Video Selfie continuous-camera UX: one session stream that follows the
|
|
18
|
+
* camera between steps and is never interrupted. Nothing is recorded and no
|
|
19
|
+
* microphone access is requested.
|
|
20
|
+
*
|
|
21
|
+
* @example Web Component usage
|
|
22
|
+
* ```html
|
|
23
|
+
* <script type="module">
|
|
24
|
+
* import '@incodetech/web/id-selfie-flow';
|
|
25
|
+
* import { setup } from '@incodetech/core';
|
|
26
|
+
* setup({ apiURL: 'https://api.example.com', token: 'your-token' });
|
|
27
|
+
* const el = document.querySelector('incode-id-selfie-flow');
|
|
28
|
+
* el.config = {};
|
|
29
|
+
* el.onFinish = () => console.log('done');
|
|
30
|
+
* <\/script>
|
|
31
|
+
* <incode-id-selfie-flow></incode-id-selfie-flow>
|
|
32
|
+
* ```
|
|
33
|
+
*
|
|
34
|
+
* @see {@link createIdSelfieFlowManager} for headless usage.
|
|
35
|
+
*/
|
|
36
|
+
var DEFAULT_STEPS = [
|
|
37
|
+
"frontId",
|
|
38
|
+
"backId",
|
|
39
|
+
"selfie"
|
|
40
|
+
];
|
|
41
|
+
/**
|
|
42
|
+
* Maps the live detection feedback to the selfie mask's visual state (same
|
|
43
|
+
* mapping as the Video Selfie module).
|
|
44
|
+
*/
|
|
45
|
+
var getSelfieVariant = (detectionStatus) => {
|
|
46
|
+
switch (detectionStatus) {
|
|
47
|
+
case "success": return "success";
|
|
48
|
+
case "error": return "error";
|
|
49
|
+
case "capturing": return "processing";
|
|
50
|
+
default: return "idle";
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
/** Full-screen spinner while `process/id` validates the captured document. */
|
|
54
|
+
var ProcessingIdScreen = () => {
|
|
55
|
+
const { t } = useTranslation();
|
|
56
|
+
return /* @__PURE__ */ u(Page, {
|
|
57
|
+
hideHeader: true,
|
|
58
|
+
children: /* @__PURE__ */ u(TransitionSpinner, { spinnerConfig: { title: t("common.processing") } })
|
|
59
|
+
});
|
|
60
|
+
};
|
|
61
|
+
var IdSelfieFlowContent = ({ config, onFinish, onError }) => {
|
|
62
|
+
const { t } = useTranslation();
|
|
63
|
+
const [state, manager] = useManager(() => createIdSelfieFlowManager({ config }), { autoLoad: false });
|
|
64
|
+
const [phase, setPhase] = d(config?.showTutorials ? "tutorial" : "permissions");
|
|
65
|
+
const { permissionStatus, manager: permissionsManager } = useVideoSelfiePermissions({
|
|
66
|
+
enabled: phase === "permissions",
|
|
67
|
+
onGranted: () => setPhase("capture"),
|
|
68
|
+
onClose: () => onError?.(void 0),
|
|
69
|
+
requestAudio: false
|
|
70
|
+
});
|
|
71
|
+
const steps = T(() => config?.steps ?? DEFAULT_STEPS, [config]);
|
|
72
|
+
const hasIdSteps = steps.includes("frontId") || steps.includes("backId");
|
|
73
|
+
y(() => {
|
|
74
|
+
if ((phase === "tutorial" || phase === "permissions") && config) {
|
|
75
|
+
warmupIdSelfieFlowWasm(config);
|
|
76
|
+
if (hasIdSteps) {
|
|
77
|
+
preloadCaptureAnimations();
|
|
78
|
+
preloadIdFlipAnimation();
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}, [
|
|
82
|
+
phase,
|
|
83
|
+
config,
|
|
84
|
+
hasIdSteps
|
|
85
|
+
]);
|
|
86
|
+
y(() => {
|
|
87
|
+
if (phase !== "capture") return;
|
|
88
|
+
manager.start();
|
|
89
|
+
}, [manager, phase]);
|
|
90
|
+
useModuleTerminalCallbacks({
|
|
91
|
+
status: state.status,
|
|
92
|
+
onFinish: () => onFinish?.(state.finishStatus)
|
|
93
|
+
});
|
|
94
|
+
const step = state.step ?? "selfie";
|
|
95
|
+
if (phase === "tutorial") return /* @__PURE__ */ u(VideoSelfieTutorial, {
|
|
96
|
+
steps,
|
|
97
|
+
copy: {
|
|
98
|
+
title: "Verify your identity",
|
|
99
|
+
subtitle: "You'll be requested to:",
|
|
100
|
+
permissionsLabel: "Allow camera access",
|
|
101
|
+
startLabel: "Start verification"
|
|
102
|
+
},
|
|
103
|
+
onStart: () => setPhase("permissions")
|
|
104
|
+
});
|
|
105
|
+
if (phase === "permissions") return /* @__PURE__ */ u(Permissions, {
|
|
106
|
+
manager: permissionsManager,
|
|
107
|
+
permissionStatus
|
|
108
|
+
});
|
|
109
|
+
if (state.status === "finished" || state.status === "closed") return null;
|
|
110
|
+
if (state.status === "error") return /* @__PURE__ */ u(TerminalErrorPage, {
|
|
111
|
+
message: state.error,
|
|
112
|
+
onRetry: () => manager.retry()
|
|
113
|
+
});
|
|
114
|
+
if (state.status === "processingId" || state.status === "finishing") return /* @__PURE__ */ u(ProcessingIdScreen, {});
|
|
115
|
+
if (state.status === "success") return /* @__PURE__ */ u(VideoSelfieFinalSuccessScreen, {});
|
|
116
|
+
if (state.status === "switchingCamera") return /* @__PURE__ */ u(SwitchingCameraScreen, {
|
|
117
|
+
steps,
|
|
118
|
+
currentIndex: state.stepIndex,
|
|
119
|
+
facing: facingModeForStep(state.step ?? "selfie")
|
|
120
|
+
});
|
|
121
|
+
const isFrontCamera = facingModeForStep(step) === "user";
|
|
122
|
+
const detectionStatus = state.detectionStatus;
|
|
123
|
+
const idMode = step === "backId" ? "back" : "front";
|
|
124
|
+
const stepLabel = t(`videoSelfie.step.${step}`);
|
|
125
|
+
const selfieMessage = () => {
|
|
126
|
+
if (detectionStatus === "success") return t("videoSelfie.lookingGood");
|
|
127
|
+
if (detectionStatus === "capturing") return t("common.processing");
|
|
128
|
+
if (detectionStatus === "error") return t("common.tryAgain");
|
|
129
|
+
switch (detectionStatus) {
|
|
130
|
+
case "tooFar": return t("notifications.moveCloser");
|
|
131
|
+
case "tooClose": return t("notifications.moveAway");
|
|
132
|
+
case "blur": return t("notifications.onBlur");
|
|
133
|
+
case "faceMask": return t("notifications.mask");
|
|
134
|
+
case "lenses": return t("notifications.removeLenses");
|
|
135
|
+
case "eyesClosed": return t("notifications.eyesClosed");
|
|
136
|
+
case "headWear": return t("notifications.removeHeadwear");
|
|
137
|
+
default: return t("videoSelfie.lookCamera");
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
const idValidationMessage = () => {
|
|
141
|
+
switch (state.validationFailure) {
|
|
142
|
+
case "idTypeMismatch": return t("videoSelfie.idValidation.idTypeMismatch");
|
|
143
|
+
case "idScanFailed": return t("notifications.compareID.scanFailed");
|
|
144
|
+
default: return t("common.tryAgain");
|
|
145
|
+
}
|
|
146
|
+
};
|
|
147
|
+
const idFeedback = () => {
|
|
148
|
+
if (state.status === "validationFeedback" && state.validationFailure !== "selfieVerificationFailed") return {
|
|
149
|
+
variant: "error",
|
|
150
|
+
message: idValidationMessage()
|
|
151
|
+
};
|
|
152
|
+
if (detectionStatus === "capturing") return {
|
|
153
|
+
variant: "processing",
|
|
154
|
+
message: t("videoSelfie.processingStep")
|
|
155
|
+
};
|
|
156
|
+
if (detectionStatus === "success") return {
|
|
157
|
+
variant: "success",
|
|
158
|
+
message: t("videoSelfie.allGood")
|
|
159
|
+
};
|
|
160
|
+
};
|
|
161
|
+
const renderStepUi = () => {
|
|
162
|
+
if (state.status === "flippingId") return /* @__PURE__ */ u(IdFlipModal, { onComplete: () => manager.nextStep() });
|
|
163
|
+
return isFrontCamera ? /* @__PURE__ */ u(SelfieMask, {
|
|
164
|
+
variant: getSelfieVariant(detectionStatus),
|
|
165
|
+
message: selfieMessage(),
|
|
166
|
+
onManualCapture: state.manualCaptureAvailable ? () => manager.manualCapture() : void 0
|
|
167
|
+
}) : /* @__PURE__ */ u(IdMask, {
|
|
168
|
+
mode: idMode,
|
|
169
|
+
wrongSide: detectionStatus === "wrongSide",
|
|
170
|
+
feedback: idFeedback(),
|
|
171
|
+
orientation: state.orientation ?? "horizontal",
|
|
172
|
+
onManualCapture: state.manualCaptureAvailable ? () => manager.manualCapture() : void 0
|
|
173
|
+
});
|
|
174
|
+
};
|
|
175
|
+
return /* @__PURE__ */ u(Page, {
|
|
176
|
+
hideHeader: true,
|
|
177
|
+
hideFooterBranding: true,
|
|
178
|
+
className: "IncodeVideoSelfieCapturePage",
|
|
179
|
+
children: [/* @__PURE__ */ u(Title, {
|
|
180
|
+
className: "IncodeCaptureVisuallyHidden",
|
|
181
|
+
children: stepLabel
|
|
182
|
+
}), /* @__PURE__ */ u(CameraView, {
|
|
183
|
+
stream: state.stream,
|
|
184
|
+
mirrored: isFrontCamera,
|
|
185
|
+
children: /* @__PURE__ */ u("div", {
|
|
186
|
+
class: "IncodeVideoSelfieOverlay",
|
|
187
|
+
children: [/* @__PURE__ */ u(StepsHeader, {
|
|
188
|
+
steps,
|
|
189
|
+
currentIndex: state.stepIndex
|
|
190
|
+
}), renderStepUi()]
|
|
191
|
+
})
|
|
192
|
+
})]
|
|
193
|
+
});
|
|
194
|
+
};
|
|
195
|
+
/**
|
|
196
|
+
* ID + Selfie flow UI component (PoC). Runs the regular ID + selfie capture
|
|
197
|
+
* pipeline behind the Video Selfie continuous-camera UX.
|
|
198
|
+
*
|
|
199
|
+
* Config is resolved from the active session's FLOW configuration (the same
|
|
200
|
+
* dashboard config the regular ID and SELFIE modules read — steps, attempts,
|
|
201
|
+
* tutorial, selfie validations); any `config` prop values win over the
|
|
202
|
+
* flow-derived ones.
|
|
203
|
+
*
|
|
204
|
+
* @see {@link createIdSelfieFlowManager} for headless usage.
|
|
205
|
+
*/
|
|
206
|
+
var IdSelfieFlow = ({ config, onFinish, onError }) => {
|
|
207
|
+
const [resolved, setResolved] = d({ status: "loading" });
|
|
208
|
+
y(() => {
|
|
209
|
+
const abortController = new AbortController();
|
|
210
|
+
setResolved({ status: "loading" });
|
|
211
|
+
resolveIdSelfieFlowConfig({
|
|
212
|
+
config,
|
|
213
|
+
signal: abortController.signal
|
|
214
|
+
}).then((resolvedConfig) => {
|
|
215
|
+
if (!abortController.signal.aborted) setResolved({
|
|
216
|
+
status: "ready",
|
|
217
|
+
config: resolvedConfig
|
|
218
|
+
});
|
|
219
|
+
}).catch((error) => {
|
|
220
|
+
if (!abortController.signal.aborted) setResolved({
|
|
221
|
+
status: "error",
|
|
222
|
+
error: String(error)
|
|
223
|
+
});
|
|
224
|
+
});
|
|
225
|
+
return () => abortController.abort();
|
|
226
|
+
}, [config]);
|
|
227
|
+
return /* @__PURE__ */ u(IncodeComponent, { children: [
|
|
228
|
+
resolved.status === "loading" && /* @__PURE__ */ u(TransitionSpinner, {}),
|
|
229
|
+
resolved.status === "error" && /* @__PURE__ */ u(TerminalErrorPage, { message: resolved.error }),
|
|
230
|
+
resolved.status === "ready" && /* @__PURE__ */ u(IdSelfieFlowContent, {
|
|
231
|
+
config: resolved.config,
|
|
232
|
+
onFinish,
|
|
233
|
+
onError
|
|
234
|
+
})
|
|
235
|
+
] });
|
|
236
|
+
};
|
|
237
|
+
registerIncodeModuleElement(IdSelfieFlow, "incode-id-selfie-flow");
|
|
238
|
+
//#endregion
|
|
239
|
+
export { IdSelfieFlow };
|