@incodetech/web 0.0.0-dev-20260902-10b14cca → 0.0.0-dev-20260902-b423eb4c

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 (73) hide show
  1. package/dist/ae-signature/ae-signature.es.js +2 -2
  2. package/dist/antifraud/antifraud.es.js +2 -2
  3. package/dist/authentication/authentication.es.js +1 -1
  4. package/dist/base.css +349 -3
  5. package/dist/certificate-issuance/certificate-issuance.es.js +2 -2
  6. package/dist/consent/consent.es.js +2 -2
  7. package/dist/{countrySelector-glWd8_oe.js → countrySelector-CZccmi4z.js} +2 -2
  8. package/dist/cross-document-data-match/cross-document-data-match.es.js +2 -2
  9. package/dist/curp-validation/curp-validation.es.js +2 -2
  10. package/dist/{customFields-BIRlqhhz.js → customFields-CaOTIR_e.js} +2 -2
  11. package/dist/{customWatchlist-DWXhZBDm.js → customWatchlist-B83i5Ubd.js} +2 -2
  12. package/dist/document-capture/document-capture.es.js +1 -1
  13. package/dist/{documentCapture-B2-pyxoX.js → documentCapture-B7T8XbL5.js} +4 -4
  14. package/dist/documentCapture-pXKP1Tbe.js +2 -0
  15. package/dist/{dropdownComposed-BiU5szlF.js → dropdownComposed-Bp28bptM.js} +9 -2
  16. package/dist/{dynamicForms-BUEgwP7h.js → dynamicForms-DvTAF24O.js} +3 -3
  17. package/dist/ekyb/ekyb.es.js +1 -1
  18. package/dist/ekybModule-DyROxp2N.js +2 -0
  19. package/dist/{ekybModule-omG8wv7v.js → ekybModule-x8d73Kdl.js} +5 -5
  20. package/dist/ekyc/ekyc.es.js +1 -1
  21. package/dist/ekycModule-4yjbMN_L.js +2 -0
  22. package/dist/{ekycModule-Zilv41Av.js → ekycModule-DzJz3lYC.js} +4 -4
  23. package/dist/electronic-signature/electronic-signature.es.js +1 -1
  24. package/dist/{electronic-signature-DmTRq7G4.js → electronic-signature-Cov9BKJ-.js} +3 -3
  25. package/dist/email/email.es.js +3 -3
  26. package/dist/{emailInput-CYI7mkgT.js → emailInput-CN48lIrg.js} +1 -1
  27. package/dist/{extensibility-BjsMZ9wH.js → extensibility-C_4OSwNj.js} +614 -187
  28. package/dist/extensibility.es.js +3 -3
  29. package/dist/face-match/face-match.es.js +1 -1
  30. package/dist/{faceMatch-C_h-t126.js → faceMatch-CJwGNK5J.js} +3 -3
  31. package/dist/faceMatch-Rl9qO8Fy.js +2 -0
  32. package/dist/field-comparison/field-comparison.es.js +1 -1
  33. package/dist/fieldComparison-7yzuwmhT.js +2 -0
  34. package/dist/{fieldComparison-CXlIUJBH.js → fieldComparison-BKGJa1-Z.js} +2 -2
  35. package/dist/{finalSuccessScreen-45lRExEd.js → finalSuccessScreen-BGvHT0Nb.js} +2 -2
  36. package/dist/fiscal-qr/fiscal-qr.es.js +2 -2
  37. package/dist/flow/flow.es.js +4 -4
  38. package/dist/flow/styles.css +34 -1
  39. package/dist/geolocation/geolocation.es.js +2 -2
  40. package/dist/government-validation/government-validation.es.js +1 -1
  41. package/dist/{homeScreen-Cfk7GxO1.js → homeScreen-CGwTFNOv.js} +1 -1
  42. package/dist/id/id.es.js +296 -9
  43. package/dist/id/styles.css +34 -1
  44. package/dist/id-selfie-flow/id-selfie-flow.es.js +3 -3
  45. package/dist/id-verification/id-verification.es.js +2 -2
  46. package/dist/{idOcr-D3ZJD8Qq.js → idOcr-KAbQjIuE.js} +2 -2
  47. package/dist/identity-reuse/identity-reuse.es.js +3 -3
  48. package/dist/{mandatoryConsent-CIyRDFuY.js → mandatoryConsent-gofFwZJb.js} +2 -2
  49. package/dist/{optionAccessibleLabel-B2AwevHH.js → optionAccessibleLabel-DdnoFUd4.js} +1 -1
  50. package/dist/pdfViewer-BVWBcRqJ.js +2 -0
  51. package/dist/{pdfViewer-CTYP5uX2.js → pdfViewer-ewa3CipR.js} +1 -1
  52. package/dist/phone/phone.es.js +2 -2
  53. package/dist/qe-signature/qe-signature.es.js +2 -2
  54. package/dist/redirect-to-mobile/redirect-to-mobile.es.js +2 -2
  55. package/dist/selfie/selfie.es.js +3 -3
  56. package/dist/signature/signature.es.js +2 -2
  57. package/dist/{spinner-BIgpFkeM.js → spinner-CKRC7C1a.js} +45 -3
  58. package/dist/themes/dark.css +19 -1
  59. package/dist/themes/light.css +18 -1
  60. package/dist/types/extensibility.d.ts +49 -6
  61. package/dist/{useModuleLoader-B9rRJAer.js → useModuleLoader-Dt7j-gwI.js} +16 -16
  62. package/dist/video-selfie/video-selfie.es.js +4 -4
  63. package/dist/watchlist/watchlist.es.js +2 -2
  64. package/dist/{watchlistForBusiness-9e1i4ti8.js → watchlistForBusiness-CwlS0dKZ.js} +3 -3
  65. package/dist/workflow/styles.css +34 -1
  66. package/dist/workflow/workflow.es.js +3 -3
  67. package/package.json +2 -2
  68. package/dist/documentCapture-CHPyx3Yv.js +0 -2
  69. package/dist/ekybModule-gqAdHHdr.js +0 -2
  70. package/dist/ekycModule-BET_yqkL.js +0 -2
  71. package/dist/faceMatch-BqO0NQOK.js +0 -2
  72. package/dist/fieldComparison-CY7Qg0Ok.js +0 -2
  73. package/dist/pdfViewer-GPJBE85L.js +0 -2
@@ -1,6 +1,6 @@
1
1
  import { n as setUiConfig, o as useTranslation } from "./uiConfig-S9TzEYvT.js";
2
- import { $ as VerificationResult, A as TextArea, B as getCountryByCode, C as CameraOverlayHeader, D as VerificationOptionCard, E as BottomSheet, F as PhoneInputComposed, J as InputComposed, M as RadioButtonComposed, N as SegmentedDateInput, O as VerificationOptionCardList, P as DateInputComposed, R as countries, S as CameraView, St as useManager, T as CameraFrame, U as Checkbox, V as FormField, W as OtpInput, X as ProgressBar, Y as Input, Z as ConnectionError, _ as Permissions, a as Capture, b as ManualCapture, d as IdError, dt as Page, et as ErrorContent, h as Capture$1, it as LandscapeBlocker, j as RadioGroupComposed, k as TextAreaComposed, l as IdExpired, m as Tutorial$1, n as Chooser, nt as Overlay, q as PasswordInputComposed, r as Tutorial, rt as IncodeComponent, t as FlipAnimation, tt as Processing, w as CameraOverlay, x as CaptureFooter, xt as useScreenOrientation, y as BaseTutorial, z as getCountryByCallingCode } from "./extensibility-BjsMZ9wH.js";
2
+ import { $ as Checkbox, A as ManualCapture, B as TextArea, C as Permissions, F as CameraFrame, G as PhoneInputComposed, H as RadioButtonComposed, I as BottomSheet, J as countries, L as VerificationOptionCard, M as CameraView, Mt as useManager, N as CameraOverlayHeader, P as CameraOverlay, R as VerificationOptionCardList, U as SegmentedDateInput, V as RadioGroupComposed, W as DateInputComposed, X as getCountryByCode, Y as getCountryByCallingCode, Z as FormField, a as Capture, at as Input, b as Tutorial$1, d as IdError, dt as Processing, et as OtpInput, ft as Overlay, it as InputComposed, j as CaptureFooter, jt as useScreenOrientation, k as BaseTutorial, l as IdExpired, lt as VerificationResult, mt as LandscapeBlocker, n as Chooser, ot as ProgressBar, pt as IncodeComponent, r as Tutorial, rt as PasswordInputComposed, st as ConnectionError, t as FlipAnimation, ut as ErrorContent, x as Capture$1, xt as Page, z as TextAreaComposed } from "./extensibility-C_4OSwNj.js";
3
3
  import { o as Lottie, t as Spacer } from "./spacer-6MHVWssc.js";
4
- import { a as TypographyH4, i as TypographyH3, n as Title, o as TypographyH5, r as TypographyH1, s as TypographyP, t as Spinner } from "./spinner-BIgpFkeM.js";
5
- import { A as Button, C as CheckmarkCompactIcon, D as CalendarIcon, E as CameraIcon, S as ChevronDown, T as CaptureButtonIcon, _ as EyeIcon, b as ChevronRightIcon, d as SuccessIcon, f as SearchIcon, g as EyeOffIcon, h as FileIcon, k as ErrorIcon, l as SvgLightningIcon, m as HelpIcon, p as LockIcon, r as Modal, t as DropdownComposed, u as WarningIcon, v as EllipseIcon, w as CheckmarkIcon, x as ChevronLeftIcon, y as CloseIcon } from "./dropdownComposed-BiU5szlF.js";
4
+ import { a as TypographyH4, i as TypographyH3, n as Title, o as TypographyH5, r as TypographyH1, s as TypographyP, t as Spinner } from "./spinner-CKRC7C1a.js";
5
+ import { A as Button, C as CheckmarkCompactIcon, D as CalendarIcon, E as CameraIcon, S as ChevronDown, T as CaptureButtonIcon, _ as EyeIcon, b as ChevronRightIcon, d as SuccessIcon, f as SearchIcon, g as EyeOffIcon, h as FileIcon, k as ErrorIcon, l as SvgLightningIcon, m as HelpIcon, p as LockIcon, r as Modal, t as DropdownComposed, u as WarningIcon, v as EllipseIcon, w as CheckmarkIcon, x as ChevronLeftIcon, y as CloseIcon } from "./dropdownComposed-Bp28bptM.js";
6
6
  export { BaseTutorial, BottomSheet, Button, CalendarIcon, CameraFrame, CameraIcon, CameraOverlay, CameraOverlayHeader, CameraView, CaptureButtonIcon, CaptureFooter, Checkbox, CheckmarkCompactIcon, CheckmarkIcon, ChevronDown, ChevronLeftIcon, ChevronRightIcon, CloseIcon, ConnectionError, DateInputComposed, DropdownComposed, EllipseIcon, ErrorContent, ErrorIcon, EyeIcon, EyeOffIcon, FileIcon, FormField, HelpIcon, Capture as IdCapture, Chooser as IdChooser, IdError, IdExpired, FlipAnimation as IdFlipAnimation, Tutorial as IdTutorial, IncodeComponent, Input, InputComposed, LandscapeBlocker, SvgLightningIcon as LightningIcon, LockIcon, Lottie, ManualCapture, Modal, OtpInput, Overlay, Page, PasswordInputComposed, Permissions, PhoneInputComposed, Processing, ProgressBar, RadioButtonComposed, RadioGroupComposed, SearchIcon, SegmentedDateInput, Capture$1 as SelfieCapture, Tutorial$1 as SelfieTutorial, Spacer, Spinner, SuccessIcon, TextArea, TextAreaComposed, Title, TypographyH1, TypographyH3, TypographyH4, TypographyH5, TypographyP, VerificationOptionCard, VerificationOptionCardList, VerificationResult, WarningIcon, countries, getCountryByCallingCode, getCountryByCode, setUiConfig, useManager, useScreenOrientation, useTranslation };
@@ -1,2 +1,2 @@
1
- import { t as FaceMatch } from "../faceMatch-C_h-t126.js";
1
+ import { t as FaceMatch } from "../faceMatch-CJwGNK5J.js";
2
2
  export { FaceMatch };
@@ -1,9 +1,9 @@
1
1
  import { o as useTranslation } from "./uiConfig-S9TzEYvT.js";
2
2
  import { C as k, l as A, v as y, y as u } from "./vendor-preact-BPXMFRom.js";
3
- import { St as useManager, bt as useModuleTerminalCallbacks, dt as Page, mt as TransitionSpinner, ot as Snackbar, rt as IncodeComponent, st as withStandaloneModuleBootstrap, yt as isTerminalModuleState } from "./extensibility-BjsMZ9wH.js";
3
+ import { At as useModuleTerminalCallbacks, Mt as useManager, _t as withStandaloneModuleBootstrap, gt as Snackbar, kt as isTerminalModuleState, pt as IncodeComponent, wt as TransitionSpinner, xt as Page } from "./extensibility-C_4OSwNj.js";
4
4
  import { s as Asset, t as Spacer } from "./spacer-6MHVWssc.js";
5
- import { n as Title } from "./spinner-BIgpFkeM.js";
6
- import { A as Button } from "./dropdownComposed-BiU5szlF.js";
5
+ import { n as Title } from "./spinner-CKRC7C1a.js";
6
+ import { A as Button } from "./dropdownComposed-Bp28bptM.js";
7
7
  import { t as registerIncodeModuleElement } from "./incodeModule-BJ-HCYmb.js";
8
8
  import { createFaceMatchManager } from "@incodetech/core/face-match";
9
9
  //#region src/modules/face-match/assets/match-success.svg?react
@@ -0,0 +1,2 @@
1
+ import { t as FaceMatch } from "./faceMatch-CJwGNK5J.js";
2
+ export { FaceMatch };
@@ -1,2 +1,2 @@
1
- import { t as FieldComparison } from "../fieldComparison-CXlIUJBH.js";
1
+ import { t as FieldComparison } from "../fieldComparison-BKGJa1-Z.js";
2
2
  export { FieldComparison };
@@ -0,0 +1,2 @@
1
+ import { t as FieldComparison } from "./fieldComparison-BKGJa1-Z.js";
2
+ export { FieldComparison };
@@ -1,8 +1,8 @@
1
1
  import { o as useTranslation } from "./uiConfig-S9TzEYvT.js";
2
2
  import { y as u } from "./vendor-preact-BPXMFRom.js";
3
- import { $ as VerificationResult, J as InputComposed, St as useManager, bt as useModuleTerminalCallbacks, dt as Page, rt as IncodeComponent, st as withStandaloneModuleBootstrap } from "./extensibility-BjsMZ9wH.js";
3
+ import { At as useModuleTerminalCallbacks, Mt as useManager, _t as withStandaloneModuleBootstrap, it as InputComposed, lt as VerificationResult, pt as IncodeComponent, xt as Page } from "./extensibility-C_4OSwNj.js";
4
4
  import { t as Spacer } from "./spacer-6MHVWssc.js";
5
- import { A as Button } from "./dropdownComposed-BiU5szlF.js";
5
+ import { A as Button } from "./dropdownComposed-Bp28bptM.js";
6
6
  import { t as registerIncodeModuleElement } from "./incodeModule-BJ-HCYmb.js";
7
7
  import { createFieldComparisonManager } from "@incodetech/core/field-comparison";
8
8
  //#region src/modules/field-comparison/fieldComparison.tsx
@@ -1,8 +1,8 @@
1
1
  import { o as useTranslation } from "./uiConfig-S9TzEYvT.js";
2
2
  import { C as k, g as q, l as A, p as d, v as y, y as u } from "./vendor-preact-BPXMFRom.js";
3
- import { T as CameraFrame, at as AutoFocusTitle, dt as Page, g as ManualCaptureButton, gt as useTimeoutHandle, i as ManualCaptureButton$1, o as CaptureNotification } from "./extensibility-BjsMZ9wH.js";
3
+ import { Et as useTimeoutHandle, F as CameraFrame, S as ManualCaptureButton, ht as AutoFocusTitle, i as ManualCaptureButton$1, o as CaptureNotification, xt as Page } from "./extensibility-C_4OSwNj.js";
4
4
  import { d as cn, n as LoadingIcon, o as Lottie, s as Asset } from "./spacer-6MHVWssc.js";
5
- import { A as Button, d as SuccessIcon, k as ErrorIcon, r as Modal } from "./dropdownComposed-BiU5szlF.js";
5
+ import { A as Button, d as SuccessIcon, k as ErrorIcon, r as Modal } from "./dropdownComposed-Bp28bptM.js";
6
6
  import { checkCameraPermission, requestCameraPermission } from "@incodetech/core/camera";
7
7
  import { resolveVideoSelfieSteps } from "@incodetech/core/video-selfie";
8
8
  //#region src/modules/video-selfie/useVideoSelfiePermissions.ts
@@ -1,8 +1,8 @@
1
1
  import { o as useTranslation } from "../uiConfig-S9TzEYvT.js";
2
2
  import { y as u } from "../vendor-preact-BPXMFRom.js";
3
- import { $ as VerificationResult, C as CameraOverlayHeader, S as CameraView, St as useManager, T as CameraFrame, bt as useModuleTerminalCallbacks, dt as Page, rt as IncodeComponent, st as withStandaloneModuleBootstrap, w as CameraOverlay } from "../extensibility-BjsMZ9wH.js";
3
+ import { At as useModuleTerminalCallbacks, F as CameraFrame, M as CameraView, Mt as useManager, N as CameraOverlayHeader, P as CameraOverlay, _t as withStandaloneModuleBootstrap, lt as VerificationResult, pt as IncodeComponent, xt as Page } from "../extensibility-C_4OSwNj.js";
4
4
  import { t as Spacer } from "../spacer-6MHVWssc.js";
5
- import { A as Button } from "../dropdownComposed-BiU5szlF.js";
5
+ import { A as Button } from "../dropdownComposed-Bp28bptM.js";
6
6
  import { t as registerIncodeModuleElement } from "../incodeModule-BJ-HCYmb.js";
7
7
  import { createFiscalQrManager } from "@incodetech/core/fiscal-qr";
8
8
  //#region src/modules/fiscal-qr/fiscalQrCapture.tsx
@@ -1,9 +1,9 @@
1
1
  import { o as useTranslation, t as setThemeUiConfig, u as readStoredLanguage } from "../uiConfig-S9TzEYvT.js";
2
2
  import { c as z, d as T, l as A, o as P, p as d, v as y, y as u } from "../vendor-preact-BPXMFRom.js";
3
- import { Q as StatusPage, St as useManager, ct as ResolvedConfigProvider, mt as TransitionSpinner, rt as IncodeComponent, ut as TerminalErrorPage } from "../extensibility-BjsMZ9wH.js";
4
- import { k as ErrorIcon } from "../dropdownComposed-BiU5szlF.js";
3
+ import { Mt as useManager, bt as TerminalErrorPage, ct as StatusPage, pt as IncodeComponent, vt as ResolvedConfigProvider, wt as TransitionSpinner } from "../extensibility-C_4OSwNj.js";
4
+ import { k as ErrorIcon } from "../dropdownComposed-Bp28bptM.js";
5
5
  import { t as registerIncodeModuleElement } from "../incodeModule-BJ-HCYmb.js";
6
- import { _ as warmupWasmIfNeeded, a as resolveApiKey, c as HEADLESS_FLOW_MODULE_KEYS, d as fetchTheme, f as initializeFlowManager, h as preloadRedirectToMobile, l as LAZY_UI_MODULES, m as preloadHomeScreen, n as useModulePreloader, o as extractIncodeStatus, p as preloadFirstModule, r as usePrefetchNextModule, s as UnsupportedModule, t as useModuleLoader, u as createFlowManager, v as isDesktopOrEmulated, y as resolveSessionLanguage } from "../useModuleLoader-B9rRJAer.js";
6
+ import { _ as warmupWasmIfNeeded, a as resolveApiKey, c as HEADLESS_FLOW_MODULE_KEYS, d as fetchTheme, f as initializeFlowManager, h as preloadRedirectToMobile, l as LAZY_UI_MODULES, m as preloadHomeScreen, n as useModulePreloader, o as extractIncodeStatus, p as preloadFirstModule, r as usePrefetchNextModule, s as UnsupportedModule, t as useModuleLoader, u as createFlowManager, v as isDesktopOrEmulated, y as resolveSessionLanguage } from "../useModuleLoader-Dt7j-gwI.js";
7
7
  import { getRequiredWasmPipelines } from "@incodetech/core/flow";
8
8
  import { bootstrapSession, refreshQrUrlUuid } from "@incodetech/core/session";
9
9
  //#region src/shared/processing/useDelayedFlag.ts
@@ -342,7 +342,7 @@ function useFlowInitialization(options) {
342
342
  }
343
343
  //#endregion
344
344
  //#region src/modules/flow/flow.tsx
345
- var LazyHomeScreen = z(() => import("../homeScreen-Cfk7GxO1.js").then((module) => ({ default: module.HomeScreen })));
345
+ var LazyHomeScreen = z(() => import("../homeScreen-CGwTFNOv.js").then((module) => ({ default: module.HomeScreen })));
346
346
  var IncodeFlowContent = ({ config, onFinish, onError }) => {
347
347
  const { i18n } = useTranslation();
348
348
  const initialSessionLanguage = A(isSelfLoadingFlowConfig(config) ? resolveSessionLanguage(config.lang, i18n.language, readStoredLanguage()) : config.lang).current;
@@ -1770,8 +1770,8 @@
1770
1770
  width: max-content;
1771
1771
  left: 50%;
1772
1772
  bottom: calc(100% - ( var(--manual-capture-tooltip-button-top-offset) - var(--manual-capture-tooltip-button-gap) ));
1773
+ animation: manualCaptureTooltipExit .35s ease-in var(--manual-capture-tooltip-dismiss-delay, 3.5s) forwards;
1773
1774
  justify-content: center;
1774
- animation: .35s ease-in 3.5s forwards manualCaptureTooltipExit;
1775
1775
  display: flex;
1776
1776
  position: absolute;
1777
1777
  transform: translateX(-50%);
@@ -1804,6 +1804,27 @@
1804
1804
  color: var(--color-text-body-0-static, var(--text-body-0-static));
1805
1805
  }
1806
1806
 
1807
+ .IncodeCaptureOverlayId .IncodeCaptureFooter .IncodeIdManualCaptureTooltipContainer.IncodeIdManualCaptureTooltipContainerSrOnly {
1808
+ clip-path: inset(50%);
1809
+ white-space: nowrap;
1810
+ border-width: 0;
1811
+ width: 1px;
1812
+ height: 1px;
1813
+ margin: -1px;
1814
+ padding: 0;
1815
+ animation: none;
1816
+ position: absolute;
1817
+ overflow: hidden;
1818
+ }
1819
+
1820
+ .IncodeCaptureOverlayId .IncodeCaptureFooter .IncodeIdManualCaptureTooltipContainer.IncodeIdManualCaptureTooltipContainerSrOnly .IncodeIdManualCaptureTooltip {
1821
+ animation: none;
1822
+ }
1823
+
1824
+ .IncodeCaptureOverlayId .IncodeCaptureFooter .IncodeIdManualCaptureTooltipContainer.IncodeIdManualCaptureTooltipContainerAutoDismiss {
1825
+ animation-name: manualCaptureTooltipExitAutoDismiss;
1826
+ }
1827
+
1807
1828
  .IncodeCaptureOverlayId .IncodeCameraFrameHorizontal.IncodeCaptureFramePassport {
1808
1829
  aspect-ratio: 42 / 30;
1809
1830
  }
@@ -1824,6 +1845,18 @@
1824
1845
  }
1825
1846
  }
1826
1847
 
1848
+ @keyframes manualCaptureTooltipExitAutoDismiss {
1849
+ from {
1850
+ opacity: 1;
1851
+ transform: translateX(-50%) scale(1);
1852
+ }
1853
+
1854
+ to {
1855
+ opacity: .5;
1856
+ transform: translate(-50%, calc(25% + var(--manual-capture-tooltip-button-center-offset))) scale(.5);
1857
+ }
1858
+ }
1859
+
1827
1860
  .IncodeIdManualCaptureButton {
1828
1861
  bottom: var(--spacing-24, var(--spacing-24, 24px));
1829
1862
  z-index: 100;
@@ -1,8 +1,8 @@
1
1
  import { a as Trans, o as useTranslation } from "../uiConfig-S9TzEYvT.js";
2
2
  import { C as k, y as u } from "../vendor-preact-BPXMFRom.js";
3
- import { $ as VerificationResult, St as useManager, Z as ConnectionError, bt as useModuleTerminalCallbacks, dt as Page, rt as IncodeComponent, st as withStandaloneModuleBootstrap, v as NumberedStep } from "../extensibility-BjsMZ9wH.js";
3
+ import { At as useModuleTerminalCallbacks, Mt as useManager, T as NumberedStep, _t as withStandaloneModuleBootstrap, lt as VerificationResult, pt as IncodeComponent, st as ConnectionError, xt as Page } from "../extensibility-C_4OSwNj.js";
4
4
  import { t as Spacer } from "../spacer-6MHVWssc.js";
5
- import { A as Button } from "../dropdownComposed-BiU5szlF.js";
5
+ import { A as Button } from "../dropdownComposed-Bp28bptM.js";
6
6
  import { t as registerIncodeModuleElement } from "../incodeModule-BJ-HCYmb.js";
7
7
  import { getBrowser, getDeviceClass } from "@incodetech/core/device";
8
8
  import { createGeolocationManager } from "@incodetech/core/geolocation";
@@ -1,6 +1,6 @@
1
1
  import { o as useTranslation } from "../uiConfig-S9TzEYvT.js";
2
2
  import { y as u } from "../vendor-preact-BPXMFRom.js";
3
- import { St as useManager, bt as useModuleTerminalCallbacks, dt as Page, mt as TransitionSpinner, rt as IncodeComponent, st as withStandaloneModuleBootstrap } from "../extensibility-BjsMZ9wH.js";
3
+ import { At as useModuleTerminalCallbacks, Mt as useManager, _t as withStandaloneModuleBootstrap, pt as IncodeComponent, wt as TransitionSpinner, xt as Page } from "../extensibility-C_4OSwNj.js";
4
4
  import { t as registerIncodeModuleElement } from "../incodeModule-BJ-HCYmb.js";
5
5
  import { createGovernmentValidationManager } from "@incodetech/core/government-validation";
6
6
  //#region src/modules/government-validation/governmentIncodeLogo.tsx
@@ -1,7 +1,7 @@
1
1
  import { d as getLanguageEmoji, f as supportedLanguages, o as useTranslation, r as useUiConfig } from "./uiConfig-S9TzEYvT.js";
2
2
  import { d as T, l as A, p as d, v as y, y as u } from "./vendor-preact-BPXMFRom.js";
3
3
  import { t as Spacer } from "./spacer-6MHVWssc.js";
4
- import { A as Button, r as Modal, t as DropdownComposed } from "./dropdownComposed-BiU5szlF.js";
4
+ import { A as Button, r as Modal, t as DropdownComposed } from "./dropdownComposed-Bp28bptM.js";
5
5
  //#region src/shared/homeScreen/language.ts
6
6
  function capitalizeLabel(text, locale) {
7
7
  const [firstCharacter, ...rest] = Array.from(text);
package/dist/id/id.es.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import { o as useTranslation } from "../uiConfig-S9TzEYvT.js";
2
2
  import { C as k, c as z, d as T, g as q, l as A, o as P, p as d, v as y, y as u } from "../vendor-preact-BPXMFRom.js";
3
- import { $ as VerificationResult, St as useManager, X as ProgressBar, _ as Permissions, a as Capture, bt as useModuleTerminalCallbacks, c as IdNoAttempts, d as IdError, dt as Page, et as ErrorContent, f as useIdExperiment, gt as useTimeoutHandle, ht as useFeatureManagement, l as IdExpired, lt as useHasResolvedConfig, mt as TransitionSpinner, n as Chooser, p as CaptureFrame, r as Tutorial, rt as IncodeComponent, st as withStandaloneModuleBootstrap, t as FlipAnimation, tt as Processing } from "../extensibility-BjsMZ9wH.js";
3
+ import { At as useModuleTerminalCallbacks, C as Permissions, D as SvgPersonCardIcon, Dt as useIsMobileDeviceWidth, E as SvgCheckV2Icon, Et as useTimeoutHandle, I as BottomSheet, Mt as useManager, O as SvgReloadIcon, St as VerifiedByIncodeLogo, Tt as useFeatureManagement, _ as ID_CAPTURE_LOADING_PHASE, _t as withStandaloneModuleBootstrap, a as Capture, c as IdNoAttempts, d as IdError, dt as Processing, f as CaptureFrame, g as EXPERIMENT_LIFECYCLE_STATUS, h as CONTINUING_TUTORIAL_PHASES, ht as AutoFocusTitle, l as IdExpired, lt as VerificationResult, m as CAMERA_PERMISSION_UX, n as Chooser, ot as ProgressBar, p as useIdExperiment, pt as IncodeComponent, r as Tutorial, t as FlipAnimation, ut as ErrorContent, v as ID_CAPTURE_STATUS, w as PermissionsDialog, wt as TransitionSpinner, xt as Page, y as PERMISSION_DIALOG_STATUS, yt as useHasResolvedConfig } from "../extensibility-C_4OSwNj.js";
4
4
  import { d as cn, i as preloadAnimations, r as AnimatedAsset, s as Asset, t as Spacer } from "../spacer-6MHVWssc.js";
5
- import { n as Title, t as Spinner } from "../spinner-BIgpFkeM.js";
6
- import { A as Button, b as ChevronRightIcon, d as SuccessIcon, k as ErrorIcon, p as LockIcon } from "../dropdownComposed-BiU5szlF.js";
7
- import { t as PdfViewer } from "../pdfViewer-CTYP5uX2.js";
5
+ import { n as Title, s as TypographyP, t as Spinner } from "../spinner-CKRC7C1a.js";
6
+ import { A as Button, b as ChevronRightIcon, d as SuccessIcon, k as ErrorIcon, p as LockIcon, r as Modal } from "../dropdownComposed-Bp28bptM.js";
7
+ import { t as PdfViewer } from "../pdfViewer-ewa3CipR.js";
8
8
  import { t as registerIncodeModuleElement } from "../incodeModule-BJ-HCYmb.js";
9
9
  import { t as SvgIdBackOfCard } from "../id-back-of-card-Cp-OinG6.js";
10
10
  import { t as SvgIdBackOfCardVertical } from "../id-back-of-card-vertical-DOKxMdys.js";
@@ -1290,8 +1290,288 @@ function preloadIdTutorialAssets() {
1290
1290
  import("../id-front-of-card-vertical-CdWPzfay.js").then((n) => n.n);
1291
1291
  }
1292
1292
  //#endregion
1293
+ //#region src/modules/id/tutorialWithPermissions/howItWorksOverlay.constants.ts
1294
+ var HOW_IT_WORKS_TITLE_ID = "how-it-works-title";
1295
+ var HOW_IT_WORKS_INSTRUCTIONS_LABELS = {
1296
+ TITLE: "idv2.tutorial.howItWorks.title",
1297
+ SUBTITLE: "idv2.tutorial.howItWorks.subtitle",
1298
+ STEP_1: "idv2.tutorial.howItWorks.instructions.step1",
1299
+ STEP_2: "idv2.tutorial.howItWorks.instructions.step2",
1300
+ STEP_3: "idv2.tutorial.howItWorks.instructions.step3",
1301
+ START_SCAN: "idv2.tutorial.startScan"
1302
+ };
1303
+ var HOW_IT_WORKS_INSTRUCTIONS = [
1304
+ {
1305
+ icon: SvgReloadIcon,
1306
+ labelKey: HOW_IT_WORKS_INSTRUCTIONS_LABELS.STEP_1
1307
+ },
1308
+ {
1309
+ icon: SvgPersonCardIcon,
1310
+ labelKey: HOW_IT_WORKS_INSTRUCTIONS_LABELS.STEP_2
1311
+ },
1312
+ {
1313
+ icon: SvgCheckV2Icon,
1314
+ labelKey: HOW_IT_WORKS_INSTRUCTIONS_LABELS.STEP_3
1315
+ }
1316
+ ];
1317
+ //#endregion
1318
+ //#region src/modules/id/tutorialWithPermissions/howItWorksOverlay.tsx
1319
+ function HowItWorksContent({ onContinue, isLoading }) {
1320
+ const { t } = useTranslation();
1321
+ return /* @__PURE__ */ u("div", {
1322
+ class: "IncodeHowItWorksOverlay",
1323
+ "data-testid": "how-it-works-overlay",
1324
+ children: [
1325
+ /* @__PURE__ */ u("div", {
1326
+ class: "IncodeHowItWorksOverlayHeader",
1327
+ children: [/* @__PURE__ */ u(AutoFocusTitle, {
1328
+ id: HOW_IT_WORKS_TITLE_ID,
1329
+ className: "IncodeHowItWorksOverlayTitle",
1330
+ children: t(HOW_IT_WORKS_INSTRUCTIONS_LABELS.TITLE)
1331
+ }), /* @__PURE__ */ u(TypographyP, {
1332
+ className: "IncodeHowItWorksOverlaySubtitle",
1333
+ children: t(HOW_IT_WORKS_INSTRUCTIONS_LABELS.SUBTITLE)
1334
+ })]
1335
+ }),
1336
+ /* @__PURE__ */ u("ul", {
1337
+ class: "IncodeHowItWorksOverlayInstructions",
1338
+ children: HOW_IT_WORKS_INSTRUCTIONS.map(({ icon: Icon, labelKey }) => /* @__PURE__ */ u("li", {
1339
+ class: "IncodeHowItWorksOverlayInstruction",
1340
+ children: [/* @__PURE__ */ u("div", {
1341
+ class: "IncodeHowItWorksOverlayInstructionIcon",
1342
+ "aria-hidden": "true",
1343
+ children: /* @__PURE__ */ u(Icon, {
1344
+ height: 24,
1345
+ width: 24
1346
+ })
1347
+ }), /* @__PURE__ */ u("span", { children: t(labelKey) })]
1348
+ }, labelKey))
1349
+ }),
1350
+ /* @__PURE__ */ u("div", {
1351
+ class: "IncodeHowItWorksOverlayActions",
1352
+ children: /* @__PURE__ */ u(Button, {
1353
+ onClick: onContinue,
1354
+ disabled: isLoading,
1355
+ isLoading,
1356
+ class: "IncodeHowItWorksOverlayActionButton",
1357
+ children: t(HOW_IT_WORKS_INSTRUCTIONS_LABELS.START_SCAN)
1358
+ })
1359
+ }),
1360
+ /* @__PURE__ */ u("div", {
1361
+ class: "IncodeHowItWorksOverlayFooter",
1362
+ children: /* @__PURE__ */ u(VerifiedByIncodeLogo, {})
1363
+ })
1364
+ ]
1365
+ });
1366
+ }
1367
+ var HowItWorksOverlay = ({ isOpen, onClose, onContinue, isLoading = false }) => {
1368
+ const isMobileWidth = useIsMobileDeviceWidth();
1369
+ const handleClose = isLoading ? void 0 : onClose;
1370
+ if (!isOpen) return null;
1371
+ if (isMobileWidth) return /* @__PURE__ */ u(BottomSheet, {
1372
+ isOpen: true,
1373
+ labelledById: HOW_IT_WORKS_TITLE_ID,
1374
+ manageInitialFocus: false,
1375
+ onClose: handleClose,
1376
+ "data-testid": "how-it-works-sheet",
1377
+ children: /* @__PURE__ */ u(HowItWorksContent, {
1378
+ onContinue,
1379
+ isLoading
1380
+ })
1381
+ });
1382
+ return /* @__PURE__ */ u(Modal.Root, {
1383
+ open: true,
1384
+ dismissible: !isLoading,
1385
+ labelledById: HOW_IT_WORKS_TITLE_ID,
1386
+ manageInitialFocus: false,
1387
+ onOpenChange: (open) => {
1388
+ if (!open) handleClose?.();
1389
+ },
1390
+ children: /* @__PURE__ */ u(Modal.Content, { children: /* @__PURE__ */ u(HowItWorksContent, {
1391
+ onContinue,
1392
+ isLoading
1393
+ }) })
1394
+ });
1395
+ };
1396
+ //#endregion
1397
+ //#region src/modules/id/tutorialWithPermissions/tutorialWithPermissions.tsx
1398
+ /**
1399
+ * Variant-specific overlay / CTA slots for the permission UX family.
1400
+ * Layer exclusivity means only one of IDC-01 / IDC-02 is active — `else if`
1401
+ * keeps that invariant in the UI composition.
1402
+ */
1403
+ function createSlots({ manager, stage, howItWorksOpen, onOpenHowItWorks, onCloseHowItWorks, onContinue, t }) {
1404
+ let permissionDialog = null;
1405
+ let howItWorksOverlay = null;
1406
+ let actions = null;
1407
+ if (stage.ux.id === CAMERA_PERMISSION_UX.PERMISSION_SHEET && stage.permissionStatus) permissionDialog = /* @__PURE__ */ u(PermissionsDialog, {
1408
+ manager,
1409
+ permissionStatus: stage.permissionStatus,
1410
+ isDismissible: true
1411
+ });
1412
+ else if (stage.ux.id === CAMERA_PERMISSION_UX.HOW_IT_WORKS) {
1413
+ const isRequesting = stage.permissionStatus === PERMISSION_DIALOG_STATUS.REQUESTING;
1414
+ actions = /* @__PURE__ */ u(Button, {
1415
+ variant: "link",
1416
+ onClick: onOpenHowItWorks,
1417
+ children: t("idv2.tutorial.howItWorks.link")
1418
+ });
1419
+ howItWorksOverlay = /* @__PURE__ */ u(HowItWorksOverlay, {
1420
+ isOpen: howItWorksOpen,
1421
+ onClose: onCloseHowItWorks,
1422
+ onContinue,
1423
+ isLoading: isRequesting
1424
+ });
1425
+ }
1426
+ return {
1427
+ permissionDialog,
1428
+ howItWorksOverlay,
1429
+ actions
1430
+ };
1431
+ }
1432
+ var TutorialWithPermissions = ({ manager, stage }) => {
1433
+ const { t } = useTranslation();
1434
+ const [howItWorksOpen, setHowItWorksOpen] = d(false);
1435
+ const isHowItWorks = stage.ux.id === CAMERA_PERMISSION_UX.HOW_IT_WORKS;
1436
+ const isCtaLoading = stage.tutorialPhase !== null ? CONTINUING_TUTORIAL_PHASES.has(stage.tutorialPhase) || stage.ux.id === CAMERA_PERMISSION_UX.PENDING : true;
1437
+ const requestPermissionFromTutorial = () => manager.requestPermission();
1438
+ function handleContinue() {
1439
+ if (isHowItWorks) {
1440
+ requestPermissionFromTutorial();
1441
+ return;
1442
+ }
1443
+ manager.nextStep();
1444
+ }
1445
+ const slots = createSlots({
1446
+ manager,
1447
+ stage,
1448
+ howItWorksOpen,
1449
+ onOpenHowItWorks: () => setHowItWorksOpen(true),
1450
+ onCloseHowItWorks: () => setHowItWorksOpen(false),
1451
+ onContinue: handleContinue,
1452
+ t
1453
+ });
1454
+ let disclaimerText = void 0;
1455
+ if (isHowItWorks) disclaimerText = t("idv2.tutorial.v2.allowCameraAccessDisclaimer");
1456
+ return /* @__PURE__ */ u(k, { children: [
1457
+ /* @__PURE__ */ u(Tutorial, {
1458
+ manager,
1459
+ documentType: stage.documentType,
1460
+ mode: stage.mode,
1461
+ isLoading: isCtaLoading,
1462
+ actionsSlot: slots.actions,
1463
+ onContinue: handleContinue,
1464
+ disclaimerText,
1465
+ shouldScaleAnimationContainer: true
1466
+ }),
1467
+ slots.permissionDialog,
1468
+ slots.howItWorksOverlay
1469
+ ] });
1470
+ };
1471
+ //#endregion
1472
+ //#region src/modules/id/experiments/useCameraPermissionUx.ts
1473
+ /** Permission surfaces the treatment can alter — the dialog ones, not the full-screen ones. */
1474
+ function isPermissionDialogSurface(state) {
1475
+ return state.status === ID_CAPTURE_STATUS.PERMISSIONS && (state.permissionStatus === PERMISSION_DIALOG_STATUS.IDLE || state.permissionStatus === PERMISSION_DIALOG_STATUS.MOTION_ONLY || state.permissionStatus === PERMISSION_DIALOG_STATUS.REQUESTING);
1476
+ }
1477
+ /**
1478
+ * `permissions.idle` collapsed into `status: 'loading'` — the silent
1479
+ * re-check between the tutorial CTA and the permission dialog. Treating it
1480
+ * as on-surface lets the arm resolve natively across the blip instead of
1481
+ * caching the last resolution: `resolveExperiment` is deterministic given
1482
+ * the store, so re-resolving here returns the same arm.
1483
+ */
1484
+ function isPermissionsIdleBlip(state) {
1485
+ return state.status === ID_CAPTURE_STATUS.LOADING && state.phase === ID_CAPTURE_LOADING_PHASE.PERMISSIONS_IDLE;
1486
+ }
1487
+ function isCameraPermissionExperimentSurface(state) {
1488
+ if (state.status === ID_CAPTURE_STATUS.TUTORIAL) return true;
1489
+ return isPermissionDialogSurface(state) || isPermissionsIdleBlip(state);
1490
+ }
1491
+ function isCameraPermissionTreatmentSurface(state) {
1492
+ if (state.status === ID_CAPTURE_STATUS.TUTORIAL) return true;
1493
+ if (isPermissionsIdleBlip(state)) return state.tutorialEnabled;
1494
+ return state.status === ID_CAPTURE_STATUS.PERMISSIONS && state.tutorialEnabled && isPermissionDialogSurface(state);
1495
+ }
1496
+ function resolveTutorialEnabled(state) {
1497
+ if (state.status === ID_CAPTURE_STATUS.TUTORIAL) return true;
1498
+ if (state.status === ID_CAPTURE_STATUS.PERMISSIONS || state.status === ID_CAPTURE_STATUS.LOADING) return state.tutorialEnabled;
1499
+ return false;
1500
+ }
1501
+ function collapseCameraPermissionUx(showHowItWorks, showPermissionSheet) {
1502
+ if (showHowItWorks) return { id: CAMERA_PERMISSION_UX.HOW_IT_WORKS };
1503
+ if (showPermissionSheet) return { id: CAMERA_PERMISSION_UX.PERMISSION_SHEET };
1504
+ return { id: CAMERA_PERMISSION_UX.CONTROL };
1505
+ }
1506
+ function useCameraPermissionUx(state) {
1507
+ const onExperimentSurface = isCameraPermissionExperimentSurface(state);
1508
+ const onTreatmentSurface = isCameraPermissionTreatmentSurface(state);
1509
+ const conditions = { tutorialEnabled: resolveTutorialEnabled(state) };
1510
+ const howItWorksExperiment = useIdExperiment({
1511
+ key: "cameraPermissionHowItWorks",
1512
+ enabled: onExperimentSurface,
1513
+ conditions
1514
+ });
1515
+ const permissionSheetExperiment = useIdExperiment({
1516
+ key: "cameraPermissionSheet",
1517
+ enabled: onExperimentSurface,
1518
+ conditions
1519
+ });
1520
+ if (!onTreatmentSurface) return { id: CAMERA_PERMISSION_UX.CONTROL };
1521
+ if (howItWorksExperiment.status === EXPERIMENT_LIFECYCLE_STATUS.PENDING || permissionSheetExperiment.status === EXPERIMENT_LIFECYCLE_STATUS.PENDING) return { id: CAMERA_PERMISSION_UX.PENDING };
1522
+ return collapseCameraPermissionUx(howItWorksExperiment.params.showHowItWorks, permissionSheetExperiment.params.showPermissionSheet);
1523
+ }
1524
+ //#endregion
1525
+ //#region src/modules/id/useIdTutorialWithPermissionsUxStage.ts
1526
+ /**
1527
+ * Which arm-specific permission statuses keep the tutorial mounted as a
1528
+ * backdrop behind the dialog surface. IDC-01 shows its sheet across the
1529
+ * whole idle/motionOnly/requesting range; IDC-02 has no dialog of its own —
1530
+ * only the native prompt (`requesting`) sits over the tutorial. Dismissing
1531
+ * that prompt (→ `waitingForUser`) falls through to the standard full-screen
1532
+ * explainer instead of leaving IDC-02 on a dead-end tutorial.
1533
+ */
1534
+ function isDialogBackdropStatus(ux, permissionStatus) {
1535
+ if (ux.id === CAMERA_PERMISSION_UX.HOW_IT_WORKS) return permissionStatus === PERMISSION_DIALOG_STATUS.REQUESTING;
1536
+ if (ux.id === CAMERA_PERMISSION_UX.PERMISSION_SHEET) return permissionStatus === PERMISSION_DIALOG_STATUS.IDLE || permissionStatus === PERMISSION_DIALOG_STATUS.MOTION_ONLY || permissionStatus === PERMISSION_DIALOG_STATUS.REQUESTING;
1537
+ return false;
1538
+ }
1539
+ /**
1540
+ * Resolves when `TutorialWithPermissions` should render instead of the plain
1541
+ * tutorial or permissions screens.
1542
+ *
1543
+ * - Default (non-experimental): `state.status === 'tutorial'`.
1544
+ * - Camera-permission experiment: permissions dialog with tutorial backdrop
1545
+ * when `tutorialEnabled` and the treatment is not control.
1546
+ */
1547
+ function useIdTutorialWithPermissionsUxStage(state) {
1548
+ const ux = useCameraPermissionUx(state);
1549
+ if (state.status === ID_CAPTURE_STATUS.LOADING && state.phase === "permissionsIdle" && state.tutorialEnabled && ux.id !== CAMERA_PERMISSION_UX.CONTROL && ux.id !== CAMERA_PERMISSION_UX.PENDING) return {
1550
+ documentType: state.selectedDocumentType,
1551
+ mode: state.currentMode,
1552
+ ux,
1553
+ tutorialPhase: null,
1554
+ permissionStatus: "checking"
1555
+ };
1556
+ if (state.status === ID_CAPTURE_STATUS.TUTORIAL) return {
1557
+ documentType: state.selectedDocumentType,
1558
+ mode: state.currentMode,
1559
+ ux,
1560
+ tutorialPhase: state.phase,
1561
+ permissionStatus: null
1562
+ };
1563
+ if (state.status === ID_CAPTURE_STATUS.PERMISSIONS && state.tutorialEnabled && isDialogBackdropStatus(ux, state.permissionStatus)) return {
1564
+ documentType: state.selectedDocumentType,
1565
+ mode: state.currentMode,
1566
+ ux,
1567
+ tutorialPhase: null,
1568
+ permissionStatus: state.permissionStatus
1569
+ };
1570
+ return null;
1571
+ }
1572
+ //#endregion
1293
1573
  //#region src/modules/id/id.tsx
1294
- var MandatoryConsent = z(() => import("../mandatoryConsent-CIyRDFuY.js").then((module) => ({ default: module.MandatoryConsent })));
1574
+ var MandatoryConsent = z(() => import("../mandatoryConsent-gofFwZJb.js").then((module) => ({ default: module.MandatoryConsent })));
1295
1575
  var IdContent = ({ config, manager: externalManager, onFinish, onError }) => {
1296
1576
  usePreloadDisplayFont();
1297
1577
  y(() => {
@@ -1311,19 +1591,26 @@ var IdContent = ({ config, manager: externalManager, onFinish, onError }) => {
1311
1591
  onFinish,
1312
1592
  onError
1313
1593
  });
1594
+ const tutorialWithPermissionsUxStage = useIdTutorialWithPermissionsUxStage(state);
1595
+ const isPreparingCameraLoader = state.status === "loading" && tutorialWithPermissionsUxStage?.ux.id !== CAMERA_PERMISSION_UX.PERMISSION_SHEET;
1596
+ const { params: darkCameraLoadingParams } = useIdExperiment({
1597
+ key: "darkCameraLoading",
1598
+ enabled: isPreparingCameraLoader
1599
+ });
1314
1600
  if (state.status === "idle") return /* @__PURE__ */ u(TransitionSpinner, { renderMode: "spinnerOnly" });
1315
- if (state.status === "loading") return /* @__PURE__ */ u(TransitionSpinner, {
1601
+ if (isPreparingCameraLoader) return /* @__PURE__ */ u(TransitionSpinner, {
1316
1602
  titleKey: "loadingCircle.holdOn",
1317
- subtitleKey: "loadingCircle.preparingCamera"
1603
+ subtitleKey: "loadingCircle.preparingCamera",
1604
+ alwaysDark: darkCameraLoadingParams.showDarkCameraLoading
1318
1605
  });
1319
1606
  if (state.status === "chooser") return /* @__PURE__ */ u(Chooser, {
1320
1607
  manager,
1321
1608
  state
1322
1609
  });
1323
1610
  if (state.status === "ageVerification") return /* @__PURE__ */ u(AgeVerification, { manager });
1324
- if (state.status === "tutorial") return /* @__PURE__ */ u(Tutorial, {
1611
+ if (tutorialWithPermissionsUxStage) return /* @__PURE__ */ u(TutorialWithPermissions, {
1325
1612
  manager,
1326
- state
1613
+ stage: tutorialWithPermissionsUxStage
1327
1614
  });
1328
1615
  if (state.status === "permissions") return /* @__PURE__ */ u(Permissions, {
1329
1616
  manager,
@@ -664,8 +664,8 @@
664
664
  width: max-content;
665
665
  left: 50%;
666
666
  bottom: calc(100% - ( var(--manual-capture-tooltip-button-top-offset) - var(--manual-capture-tooltip-button-gap) ));
667
+ animation: manualCaptureTooltipExit .35s ease-in var(--manual-capture-tooltip-dismiss-delay, 3.5s) forwards;
667
668
  justify-content: center;
668
- animation: .35s ease-in 3.5s forwards manualCaptureTooltipExit;
669
669
  display: flex;
670
670
  position: absolute;
671
671
  transform: translateX(-50%);
@@ -698,6 +698,27 @@
698
698
  color: var(--color-text-body-0-static, var(--text-body-0-static));
699
699
  }
700
700
 
701
+ .IncodeCaptureOverlayId .IncodeCaptureFooter .IncodeIdManualCaptureTooltipContainer.IncodeIdManualCaptureTooltipContainerSrOnly {
702
+ clip-path: inset(50%);
703
+ white-space: nowrap;
704
+ border-width: 0;
705
+ width: 1px;
706
+ height: 1px;
707
+ margin: -1px;
708
+ padding: 0;
709
+ animation: none;
710
+ position: absolute;
711
+ overflow: hidden;
712
+ }
713
+
714
+ .IncodeCaptureOverlayId .IncodeCaptureFooter .IncodeIdManualCaptureTooltipContainer.IncodeIdManualCaptureTooltipContainerSrOnly .IncodeIdManualCaptureTooltip {
715
+ animation: none;
716
+ }
717
+
718
+ .IncodeCaptureOverlayId .IncodeCaptureFooter .IncodeIdManualCaptureTooltipContainer.IncodeIdManualCaptureTooltipContainerAutoDismiss {
719
+ animation-name: manualCaptureTooltipExitAutoDismiss;
720
+ }
721
+
701
722
  .IncodeCaptureOverlayId .IncodeCameraFrameHorizontal.IncodeCaptureFramePassport {
702
723
  aspect-ratio: 42 / 30;
703
724
  }
@@ -718,6 +739,18 @@
718
739
  }
719
740
  }
720
741
 
742
+ @keyframes manualCaptureTooltipExitAutoDismiss {
743
+ from {
744
+ opacity: 1;
745
+ transform: translateX(-50%) scale(1);
746
+ }
747
+
748
+ to {
749
+ opacity: .5;
750
+ transform: translate(-50%, calc(25% + var(--manual-capture-tooltip-button-center-offset))) scale(.5);
751
+ }
752
+ }
753
+
721
754
  .IncodeIdManualCaptureButton {
722
755
  bottom: var(--spacing-24, var(--spacing-24, 24px));
723
756
  z-index: 100;
@@ -1,9 +1,9 @@
1
1
  import { o as useTranslation } from "../uiConfig-S9TzEYvT.js";
2
2
  import { d as T, p as d, v as y, y as u } from "../vendor-preact-BPXMFRom.js";
3
- import { S as CameraView, St as useManager, _ as Permissions, bt as useModuleTerminalCallbacks, dt as Page, mt as TransitionSpinner, rt as IncodeComponent, s as preloadCaptureAnimations, ut as TerminalErrorPage } from "../extensibility-BjsMZ9wH.js";
4
- import { n as Title } from "../spinner-BIgpFkeM.js";
3
+ import { At as useModuleTerminalCallbacks, C as Permissions, M as CameraView, Mt as useManager, bt as TerminalErrorPage, pt as IncodeComponent, s as preloadCaptureAnimations, wt as TransitionSpinner, xt as Page } from "../extensibility-C_4OSwNj.js";
4
+ import { n as Title } from "../spinner-CKRC7C1a.js";
5
5
  import { t as registerIncodeModuleElement } from "../incodeModule-BJ-HCYmb.js";
6
- 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-45lRExEd.js";
6
+ 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-BGvHT0Nb.js";
7
7
  import { createIdSelfieFlowManager, resolveIdSelfieFlowConfig, warmupIdSelfieFlowWasm } from "@incodetech/core/id-selfie-flow";
8
8
  import { facingModeForStep } from "@incodetech/core/video-selfie";
9
9
  //#region src/modules/id-selfie-flow/id-selfie-flow.tsx
@@ -1,6 +1,6 @@
1
1
  import { y as u } from "../vendor-preact-BPXMFRom.js";
2
- import { St as useManager, bt as useModuleTerminalCallbacks, rt as IncodeComponent, u as ExpiredId } from "../extensibility-BjsMZ9wH.js";
3
- import { t as Spinner } from "../spinner-BIgpFkeM.js";
2
+ import { At as useModuleTerminalCallbacks, Mt as useManager, pt as IncodeComponent, u as ExpiredId } from "../extensibility-C_4OSwNj.js";
3
+ import { t as Spinner } from "../spinner-CKRC7C1a.js";
4
4
  import { t as registerIncodeModuleElement } from "../incodeModule-BJ-HCYmb.js";
5
5
  import { createIdVerificationManager } from "@incodetech/core/id-verification";
6
6
  //#region src/modules/id-verification/id-verification.tsx
@@ -1,7 +1,7 @@
1
1
  import { o as useTranslation } from "./uiConfig-S9TzEYvT.js";
2
2
  import { y as u } from "./vendor-preact-BPXMFRom.js";
3
- import { $ as VerificationResult, J as InputComposed, P as DateInputComposed, St as useManager, bt as useModuleTerminalCallbacks, dt as Page, j as RadioGroupComposed, rt as IncodeComponent, st as withStandaloneModuleBootstrap } from "./extensibility-BjsMZ9wH.js";
4
- import { A as Button } from "./dropdownComposed-BiU5szlF.js";
3
+ import { At as useModuleTerminalCallbacks, Mt as useManager, V as RadioGroupComposed, W as DateInputComposed, _t as withStandaloneModuleBootstrap, it as InputComposed, lt as VerificationResult, pt as IncodeComponent, xt as Page } from "./extensibility-C_4OSwNj.js";
4
+ import { A as Button } from "./dropdownComposed-Bp28bptM.js";
5
5
  import { t as registerIncodeModuleElement } from "./incodeModule-BJ-HCYmb.js";
6
6
  import { createIdOcrManager, getOcrFields } from "@incodetech/core/id-ocr";
7
7
  //#region src/modules/id-ocr/idOcrForm.tsx