@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.
Files changed (126) hide show
  1. package/dist/ae-signature/ae-signature.es.js +3 -3
  2. package/dist/antifraud/antifraud.es.js +3 -3
  3. package/dist/authentication/authentication.es.js +4 -4
  4. package/dist/{autoFocusTitle-CvZ2oKGw.js → autoFocusTitle-D1GHOAjH.js} +1 -1
  5. package/dist/certificate-issuance/certificate-issuance.es.js +9 -9
  6. package/dist/{checkbox-CjLNtXmu.js → checkbox-CvBuCfQh.js} +3 -3
  7. package/dist/{connectionError-DbDaaT-B.js → connectionError-DgH_z5kf.js} +3 -3
  8. package/dist/consent/consent.es.js +6 -6
  9. package/dist/{countrySelector-DWK-Q92b.js → countrySelector--5xoap3n.js} +2 -2
  10. package/dist/cross-document-data-match/cross-document-data-match.es.js +3 -3
  11. package/dist/curp-validation/curp-validation.es.js +12 -12
  12. package/dist/{customFields-JRAHfQtj.js → customFields-CfeNKDc5.js} +9 -9
  13. package/dist/{customWatchlist-DaP3FwDS.js → customWatchlist-CHYUtWKe.js} +5 -5
  14. package/dist/{dashboardTheme-BExWWw2E.js → dashboardTheme-CVliZSR-.js} +1 -1
  15. package/dist/{dateInputComposed-Bmm1u44s.js → dateInputComposed-P7Qs8RyW.js} +4 -4
  16. package/dist/dateInputComposed-aBLuOnmc.js +1 -0
  17. package/dist/document-capture/document-capture.es.js +1 -1
  18. package/dist/{documentCapture-BxwzPRns.js → documentCapture-ChmoxnXl.js} +14 -14
  19. package/dist/documentCapture-Dztskijk.js +2 -0
  20. package/dist/dropdownComposed-D5VwrEX-.js +1 -0
  21. package/dist/{dropdownComposed-B6FF4cVZ.js → dropdownComposed-Dlwcx-aR.js} +3 -3
  22. package/dist/{dynamicForms-Crad7QeY.js → dynamicForms-D5lkwGXq.js} +10 -10
  23. package/dist/ekyb/ekyb.es.js +1 -1
  24. package/dist/{ekybModule-Dp6Do6FI.js → ekybModule-QwZEaF5w.js} +13 -13
  25. package/dist/ekybModule-quhESB0N.js +2 -0
  26. package/dist/ekyc/ekyc.es.js +1 -1
  27. package/dist/ekycModule-3S5l5GCP.js +2 -0
  28. package/dist/{ekycModule-BxT6xyZU.js → ekycModule-CrdYv1cE.js} +11 -11
  29. package/dist/electronic-signature/electronic-signature.es.js +1 -1
  30. package/dist/{electronic-signature-ClbcVTNk.js → electronic-signature-Bfavo-r6.js} +9 -9
  31. package/dist/email/email.es.js +7 -7
  32. package/dist/{emailInput-BqlrJ_dX.js → emailInput-CuffX9J-.js} +3 -3
  33. package/dist/{expiredId-CJXzq12W.js → expiredId-DqQ2pcOs.js} +5 -5
  34. package/dist/{extensibility-DtlPhQNL.js → extensibility-D4tu352m.js} +35 -34
  35. package/dist/extensibility.es.js +21 -21
  36. package/dist/face-match/face-match.es.js +1 -1
  37. package/dist/{faceMatch-BHuxQw6x.js → faceMatch-B6QDKqLv.js} +7 -7
  38. package/dist/faceMatch-CgisVOjO.js +2 -0
  39. package/dist/field-comparison/field-comparison.es.js +1 -1
  40. package/dist/fieldComparison-CG2GyJGi.js +2 -0
  41. package/dist/{fieldComparison-mJFplVwr.js → fieldComparison-CJuwVWT1.js} +8 -8
  42. package/dist/finalSuccessScreen-BzfPc7PE.js +500 -0
  43. package/dist/fiscal-qr/fiscal-qr.es.js +8 -8
  44. package/dist/flow/flow.es.js +7 -7
  45. package/dist/flow/styles.css +18 -0
  46. package/dist/geolocation/geolocation.es.js +7 -7
  47. package/dist/government-validation/government-validation.es.js +8 -8
  48. package/dist/{homeScreen-ayC3SHjN.js → homeScreen-oanS5coR.js} +6 -6
  49. package/dist/{icons-CnHH5IUi.js → icons-B4dc7Tc_.js} +1 -1
  50. package/dist/id/id.es.js +18 -18
  51. package/dist/id/styles.css +4 -0
  52. package/dist/id-selfie-flow/id-selfie-flow.es.js +239 -0
  53. package/dist/id-selfie-flow/styles.css +1989 -0
  54. package/dist/id-verification/id-verification.es.js +4 -4
  55. package/dist/{idOcr-BNi9FWGZ.js → idOcr-DSnzbpAy.js} +9 -9
  56. package/dist/identity-reuse/identity-reuse.es.js +5 -5
  57. package/dist/{incode-logo-B44XBmUF.js → incode-logo-DfmsgFwc.js} +1 -1
  58. package/dist/{incodeComponent-CaVm81Om.js → incodeComponent-OSkicUIt.js} +5 -5
  59. package/dist/{incodeModule-B02hDGir.js → incodeModule-BE4EvBi8.js} +1 -1
  60. package/dist/index.es.js +2 -2
  61. package/dist/inputComposed-BY8Oxpj8.js +1 -0
  62. package/dist/{inputComposed-CWQkki5v.js → inputComposed-CLVhm6Gq.js} +3 -3
  63. package/dist/{mandatoryConsent-CfBlj5BM.js → mandatoryConsent-5xeUtj4a.js} +6 -6
  64. package/dist/{captureNotification-CZJAUALL.js → manualCaptureButton-CuYBkH_6.js} +40 -8
  65. package/dist/{permissions-CVWfTL-t.js → manualCaptureButton-sP8OSo15.js} +67 -8
  66. package/dist/{modal-B9tF0ldx.js → modal-DtPq9tRg.js} +2 -2
  67. package/dist/{optionAccessibleLabel-DeFMUVpn.js → optionAccessibleLabel-DfYYgV37.js} +4 -4
  68. package/dist/{otpInput-Dju8N2oD.js → otpInput-BXwcWbC7.js} +5 -5
  69. package/dist/pdfViewer-CYtBaOg-.js +2 -0
  70. package/dist/{pdfViewer-CvCy4uwi.js → pdfViewer-CYu11qlC.js} +3 -3
  71. package/dist/phone/phone.es.js +8 -8
  72. package/dist/{phoneInputComposed-DgMwulFN.js → phoneInputComposed-CFgW-FR9.js} +4 -4
  73. package/dist/{processing-DIUdk0S7.js → processing-v72-8SOm.js} +1 -1
  74. package/dist/qe-signature/qe-signature.es.js +3 -3
  75. package/dist/{radioGroupComposed-CRePkzYH.js → radioGroupComposed-Bx9G6loj.js} +5 -5
  76. package/dist/redirect-to-mobile/redirect-to-mobile.es.js +11 -11
  77. package/dist/{richText-BTiSRN0z.js → richText-ChGYb8a9.js} +1 -1
  78. package/dist/selfie/selfie.es.js +6 -6
  79. package/dist/signature/signature.es.js +7 -7
  80. package/dist/{snackbar-6nHZdZCi.js → snackbar-DOvKTbQf.js} +1 -1
  81. package/dist/{spacer-D52odyVb.js → spacer-Dv_GLIg1.js} +9 -9
  82. package/dist/{spinner-CEzuAsxR.js → spinner-9U-97vN9.js} +1 -1
  83. package/dist/{statusPage-BpxFc-P6.js → statusPage-BUedaCa2.js} +3 -3
  84. package/dist/{tabs-CbAXowHB.js → tabs-DLNEOL_N.js} +1 -1
  85. package/dist/{tutorial-CiSCBe8S.js → tutorial-DmfT2_ZD.js} +9 -66
  86. package/dist/types/id-selfie-flow.d.ts +161 -0
  87. package/dist/{uiConfig-Ar3UWfPc.js → uiConfig-B5ASPUL4.js} +1 -1
  88. package/dist/{useModuleLoader-DDr5IBnE.js → useModuleLoader-Dts-cY1f.js} +18 -18
  89. package/dist/{verificationResult-Bn1_erQu.js → verificationResult-7dnG2xo-.js} +7 -7
  90. package/dist/video-selfie/styles.css +14 -0
  91. package/dist/video-selfie/video-selfie.es.js +13 -487
  92. package/dist/watchlist/watchlist.es.js +5 -5
  93. package/dist/{watchlistForBusiness-Bgao5oZx.js → watchlistForBusiness-DdgVw02m.js} +8 -8
  94. package/dist/workflow/styles.css +4 -0
  95. package/dist/workflow/workflow.es.js +7 -7
  96. package/package.json +11 -2
  97. package/dist/dateInputComposed-CWtAGa8F.js +0 -1
  98. package/dist/documentCapture-DGG_2ySV.js +0 -2
  99. package/dist/dropdownComposed-D_Nb9dcy.js +0 -1
  100. package/dist/ekybModule-ORG0loIk.js +0 -2
  101. package/dist/ekycModule-BCVOgvs0.js +0 -2
  102. package/dist/faceMatch-BKvaCYWC.js +0 -2
  103. package/dist/fieldComparison-Dgzs9T1n.js +0 -2
  104. package/dist/inputComposed-DwUPrwiA.js +0 -1
  105. package/dist/pdfViewer-tQrHCTu2.js +0 -2
  106. /package/dist/{aligndevicelottie-DXalhkKB.js → aligndevicelottie-CfoZ5Uus.js} +0 -0
  107. /package/dist/{back-horizontal-hint-DTbSbMez.js → back-horizontal-hint-BBGuJ75y.js} +0 -0
  108. /package/dist/{back-tutorial-v9Hk3XFo.js → back-tutorial-BHyRHyET.js} +0 -0
  109. /package/dist/{back-vertical-hint-DflUmM1H.js → back-vertical-hint-B9usJ5lY.js} +0 -0
  110. /package/dist/{backdevicelottie-Bo_klJll.js → backdevicelottie-yKkczgFy.js} +0 -0
  111. /package/dist/{blurdevicelottie-CxKLM4Vs.js → blurdevicelottie-8BbophdM.js} +0 -0
  112. /package/dist/{browser-ponyfill-uS1iX5_X.js → browser-ponyfill-CBjGwwPW.js} +0 -0
  113. /package/dist/{flip-animation-DTAAOpEa.js → flip-animation-CvN8FLNc.js} +0 -0
  114. /package/dist/{front-horizontal-hint-ClzgOBfO.js → front-horizontal-hint-D3CrWViZ.js} +0 -0
  115. /package/dist/{front-vertical-hint-Bg_PjoFD.js → front-vertical-hint-BoLZvyx5.js} +0 -0
  116. /package/dist/{frontdevicelottie-DC_J26cw.js → frontdevicelottie-CFcahVLk.js} +0 -0
  117. /package/dist/{glaredevicelottie-v7rkW_o-.js → glaredevicelottie-Cnvah0kz.js} +0 -0
  118. /package/dist/{id-laser-h-B5wVlgYu.js → id-laser-h-BaUHzX-d.js} +0 -0
  119. /package/dist/{id-laser-v-Dt8NRFVP.js → id-laser-v-Dv9yEYJE.js} +0 -0
  120. /package/dist/{id-tutorial-B5rsdHAH.js → id-tutorial-BOOsXlAJ.js} +0 -0
  121. /package/dist/{lottie_light-DpbDagTe.js → lottie_light-Bv56F2Ae.js} +0 -0
  122. /package/dist/{passport-horizontal-hint-BWVt9PyV.js → passport-horizontal-hint-DgnU-8bl.js} +0 -0
  123. /package/dist/{passport-tutorial-CDUEHwmA.js → passport-tutorial-CeSup6m9.js} +0 -0
  124. /package/dist/{passport-vertical-hint-BCO4926p.js → passport-vertical-hint-Dd2Wknw7.js} +0 -0
  125. /package/dist/{pdf-yaBNakba.js → pdf-BUoY_2gv.js} +0 -0
  126. /package/dist/{selfieTutorial-UOaWO8hK.js → selfieTutorial-CYa8bq6B.js} +0 -0
@@ -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-Ar3UWfPc.js";
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-CaVm81Om.js";
4
- import { t as Spacer } from "../spacer-D52odyVb.js";
5
- import { r as Button } from "../incode-logo-B44XBmUF.js";
6
- import { t as VerificationResult } from "../verificationResult-Bn1_erQu.js";
7
- import { t as ConnectionError } from "../connectionError-DbDaaT-B.js";
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-B02hDGir.js";
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-Ar3UWfPc.js";
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-CaVm81Om.js";
4
- import { t as Spacer } from "../spacer-D52odyVb.js";
5
- import "../extensibility-DtlPhQNL.js";
6
- import { t as AutoFocusTitle } from "../autoFocusTitle-CvZ2oKGw.js";
7
- import { t as VerificationResult } from "../verificationResult-Bn1_erQu.js";
8
- import { t as OtpInput } from "../otpInput-Dju8N2oD.js";
9
- import { t as registerIncodeModuleElement } from "../incodeModule-B02hDGir.js";
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-Ar3UWfPc.js";
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-D52odyVb.js";
4
- import { r as Button } from "./incode-logo-B44XBmUF.js";
5
- import { t as Modal } from "./modal-B9tF0ldx.js";
6
- import { t as DropdownComposed } from "./dropdownComposed-B6FF4cVZ.js";
7
- import "./dropdownComposed-D_Nb9dcy.js";
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);
@@ -1,5 +1,5 @@
1
1
  import { m as g, v as u } from "./vendor-preact-mvwZ8mJj.js";
2
- import "./incode-logo-B44XBmUF.js";
2
+ import "./incode-logo-DfmsgFwc.js";
3
3
  import "./successIcon-Bj8Y9CuI.js";
4
4
  //#region src/shared/icons/warningIcon.tsx
5
5
  var WarningIcon = ({ size = 32 }) => {
package/dist/id/id.es.js CHANGED
@@ -1,22 +1,22 @@
1
- import { i as useTranslation } from "../uiConfig-Ar3UWfPc.js";
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-CaVm81Om.js";
4
- import { i as preloadAnimations, r as AnimatedAsset, s as Asset, t as Spacer, u as cn } from "../spacer-D52odyVb.js";
5
- import { n as Title, t as Spinner } from "../spinner-CEzuAsxR.js";
6
- import { n as ErrorIcon, r as Button } from "../incode-logo-B44XBmUF.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-DtlPhQNL.js";
8
- import { t as Processing } from "../processing-DIUdk0S7.js";
9
- import { r as LockIcon, u as ChevronRightIcon } from "../icons-CnHH5IUi.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-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-CiSCBe8S.js";
12
- import { t as Permissions } from "../permissions-CVWfTL-t.js";
13
- import { t as PdfViewer } from "../pdfViewer-CvCy4uwi.js";
14
- import { t as registerIncodeModuleElement } from "../incodeModule-B02hDGir.js";
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-CbAXowHB.js";
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-B5rsdHAH.js");
1096
- import("../back-tutorial-v9Hk3XFo.js");
1097
- import("../passport-tutorial-CDUEHwmA.js");
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-CfBlj5BM.js").then((module) => ({ default: module.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();
@@ -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 };