@incodetech/web 0.0.0-dev-20260820-e7c67ad4 → 0.0.0-dev-20260821-af317971

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 (91) hide show
  1. package/dist/ae-signature/ae-signature.es.js +4 -4
  2. package/dist/antifraud/antifraud.es.js +4 -4
  3. package/dist/authentication/authentication.es.js +3 -3
  4. package/dist/{back-horizontal-hint-DE7qSED8.js → back-horizontal-hint-C26z-OQP.js} +1 -1
  5. package/dist/{back-vertical-hint-tRfKQSB7.js → back-vertical-hint-CWwh2lzA.js} +1 -1
  6. package/dist/certificate-issuance/certificate-issuance.es.js +6 -6
  7. package/dist/consent/consent.es.js +6 -6
  8. package/dist/{countrySelector-B6QRA97i.js → countrySelector-BSwFVQaF.js} +3 -3
  9. package/dist/cross-document-data-match/cross-document-data-match.es.js +4 -4
  10. package/dist/curp-validation/curp-validation.es.js +6 -6
  11. package/dist/{customFields-D_S84yvF.js → customFields-DPrnxWAa.js} +6 -6
  12. package/dist/{customWatchlist-IzjqAbCa.js → customWatchlist-BBQmaE7o.js} +6 -6
  13. package/dist/{dashboardTheme-DAD_v7bm.js → dashboardTheme-Bg4e2e_3.js} +1 -1
  14. package/dist/document-capture/document-capture.es.js +1 -1
  15. package/dist/documentCapture-D18mAgyp.js +2 -0
  16. package/dist/{documentCapture-DtsXUXZu.js → documentCapture-DMN197Um.js} +8 -8
  17. package/dist/{dropdownComposed-B3EP6yr2.js → dropdownComposed-CL61H6PB.js} +2 -2
  18. package/dist/{dynamicForms-rUDf9mVr.js → dynamicForms-BauXESm2.js} +6 -6
  19. package/dist/ekyb/ekyb.es.js +1 -1
  20. package/dist/ekybModule-CZANWAc_.js +2 -0
  21. package/dist/{ekybModule-DHa5_5HW.js → ekybModule-CbTDHFlW.js} +9 -9
  22. package/dist/ekyc/ekyc.es.js +1 -1
  23. package/dist/{ekycModule-D14o93bg.js → ekycModule-Bs5Xywue.js} +7 -7
  24. package/dist/ekycModule-DonCll8J.js +2 -0
  25. package/dist/electronic-signature/electronic-signature.es.js +1 -1
  26. package/dist/{electronic-signature-XzenHvq9.js → electronic-signature-BbYoqAr9.js} +6 -6
  27. package/dist/email/email.es.js +7 -7
  28. package/dist/{emailInput-09uwGACr.js → emailInput-DdGx_c-F.js} +3 -3
  29. package/dist/{extensibility-C94DltcN.js → extensibility-CHLVc-Wh.js} +227 -74
  30. package/dist/extensibility.es.js +5 -5
  31. package/dist/face-match/face-match.es.js +1 -1
  32. package/dist/faceMatch-ClZJMSqC.js +2 -0
  33. package/dist/{faceMatch-wwCDcSbs.js → faceMatch-DieakWZY.js} +7 -7
  34. package/dist/field-comparison/field-comparison.es.js +1 -1
  35. package/dist/{fieldComparison-CaQOzoZT.js → fieldComparison-Dfo_LFVW.js} +6 -6
  36. package/dist/fieldComparison-Dhmi4zCD.js +2 -0
  37. package/dist/{finalSuccessScreen-CJaKTpxc.js → finalSuccessScreen-DaVv7Mz7.js} +5 -5
  38. package/dist/fiscal-qr/fiscal-qr.es.js +6 -6
  39. package/dist/flow/flow.es.js +7 -7
  40. package/dist/flow/styles.css +53 -4
  41. package/dist/{front-horizontal-hint-DJoi7q0O.js → front-horizontal-hint-BSDqPUtf.js} +1 -1
  42. package/dist/{front-vertical-hint-DwBeFRhM.js → front-vertical-hint-DC7DL0yG.js} +1 -1
  43. package/dist/geolocation/geolocation.es.js +6 -6
  44. package/dist/government-validation/government-validation.es.js +4 -4
  45. package/dist/{homeScreen-Zh7A-i_Y.js → homeScreen-ZhZlt4X1.js} +4 -4
  46. package/dist/id/id.es.js +40 -23
  47. package/dist/id/styles.css +53 -4
  48. package/dist/{id-back-of-card-B6eogP7K.js → id-back-of-card-CUPpGLav.js} +1 -1
  49. package/dist/{id-back-of-card-vertical-CaV3B-zH.js → id-back-of-card-vertical-CgjJSlf0.js} +1 -1
  50. package/dist/{id-front-of-card-vertical-2eT7T5am.js → id-front-of-card-vertical-C0y_w9U7.js} +1 -1
  51. package/dist/{id-front-of-card-Cdl6WAzD.js → id-front-of-card-yG_DnjCP.js} +1 -1
  52. package/dist/id-selfie-flow/id-selfie-flow.es.js +6 -6
  53. package/dist/id-verification/id-verification.es.js +4 -4
  54. package/dist/{idOcr-C9pQ5BA4.js → idOcr-Bo-LE8lX.js} +5 -5
  55. package/dist/identity-reuse/identity-reuse.es.js +6 -6
  56. package/dist/{incodeModule-JCrVkdOU.js → incodeModule-CTY2xtWa.js} +3 -3
  57. package/dist/index.es.js +2 -2
  58. package/dist/{mandatoryConsent-C7bFhSu1.js → mandatoryConsent-DULxCEKw.js} +6 -6
  59. package/dist/{optionAccessibleLabel-oKJS2y9f.js → optionAccessibleLabel-Ds1y7qsi.js} +3 -3
  60. package/dist/{passport-horizontal-hint-DkZZzf9B.js → passport-horizontal-hint-kGA1I7F-.js} +1 -1
  61. package/dist/{passport-vertical-hint-BMZpf7cB.js → passport-vertical-hint-C-Dj33fi.js} +1 -1
  62. package/dist/pdfViewer-BDpmCeqq.js +2 -0
  63. package/dist/{pdfViewer-GCWb2ADa.js → pdfViewer-CROFG59S.js} +3 -3
  64. package/dist/phone/phone.es.js +6 -6
  65. package/dist/qe-signature/qe-signature.es.js +4 -4
  66. package/dist/redirect-to-mobile/redirect-to-mobile.es.js +7 -7
  67. package/dist/{registerIncodeElement-C0hR3QZu.js → registerIncodeElement-BlqIsaEs.js} +1 -1
  68. package/dist/{richText-DS1OO6IL.js → richText-Dd3vg4mr.js} +2 -2
  69. package/dist/selfie/selfie.es.js +7 -7
  70. package/dist/signature/signature.es.js +6 -6
  71. package/dist/{spacer-BgPYQ4gX.js → spacer-1k4Y_MPK.js} +2 -2
  72. package/dist/{spinner-V9NaJLF-.js → spinner-Dx70DGml.js} +2 -2
  73. package/dist/{tabs-BpK5OmvJ.js → tabs-HOIR9SXn.js} +2 -2
  74. package/dist/themes/dark.css +3 -0
  75. package/dist/themes/light.css +3 -0
  76. package/dist/types/extensibility.d.ts +0 -6
  77. package/dist/{uiConfig-C3dX3oV1.js → uiConfig-CoKSzxxR.js} +1 -1
  78. package/dist/{useModuleLoader-Dn47Khdf.js → useModuleLoader-CoykN6rv.js} +19 -19
  79. package/dist/{vendor-preact-mvwZ8mJj.js → vendor-preact-BPXMFRom.js} +1 -1
  80. package/dist/video-selfie/video-selfie.es.js +8 -8
  81. package/dist/watchlist/watchlist.es.js +6 -6
  82. package/dist/{watchlistForBusiness-CzCodKym.js → watchlistForBusiness-2cGRqBKC.js} +7 -7
  83. package/dist/workflow/styles.css +53 -4
  84. package/dist/workflow/workflow.es.js +7 -7
  85. package/package.json +2 -2
  86. package/dist/documentCapture-DdWniHgb.js +0 -2
  87. package/dist/ekybModule-DjbJU_7T.js +0 -2
  88. package/dist/ekycModule-CFTd0oTi.js +0 -2
  89. package/dist/faceMatch-BSJmZ3d7.js +0 -2
  90. package/dist/fieldComparison-DfL5oZOK.js +0 -2
  91. package/dist/pdfViewer-BMPqbDBw.js +0 -2
@@ -1,9 +1,9 @@
1
- import { a as useTranslation, i as Trans, r as useUiConfig } from "./uiConfig-C3dX3oV1.js";
2
- import { S as k, _ as y, a as D, b as Q, c as z, d as T, f as _, g as x, h as q, i as C, l as A, m as g, o as P, p as d, r as $, s as gn, v as u } from "./vendor-preact-mvwZ8mJj.js";
3
- import { a as getStandaloneSetupPolicy, n as preloadDashboardTheme, t as getDashboardTheme } from "./dashboardTheme-DAD_v7bm.js";
4
- import { a as useAnimationData, n as LoadingIcon, o as Lottie, r as AnimatedAsset, t as Spacer, u as cn } from "./spacer-BgPYQ4gX.js";
5
- import { a as TypographyH4, n as Title, o as TypographyH5, r as TypographyH1, t as Spinner } from "./spinner-V9NaJLF-.js";
6
- import { C as CheckmarkIcon, D as incode_logo_default, E as CalendarIcon, O as ErrorIcon, _ as EllipseIcon, a as useModalFocusCapture, c as SvgLightningIcon, f as LockIcon, g as EyeIcon, h as EyeOffIcon, i as useModalEscapeDismiss, k as Button, l as WarningIcon, n as Modal, o as useModalTabCycle, p as HelpIcon, r as useModalBodyScrollLock, s as useModalVisualViewportBounds, t as DropdownComposed, u as SuccessIcon, v as CloseIcon, w as CaptureButtonIcon, y as ChevronRightIcon } from "./dropdownComposed-B3EP6yr2.js";
1
+ import { a as useTranslation, i as Trans, r as useUiConfig } from "./uiConfig-CoKSzxxR.js";
2
+ import { C as k, _ as x, a as D, c as z, d as T, f as _, g as q, h, i as C, l as A, m as g, o as P, p as d, r as $, s as gn, v as y, x as Q, y as u } from "./vendor-preact-BPXMFRom.js";
3
+ import { a as getStandaloneSetupPolicy, n as preloadDashboardTheme, t as getDashboardTheme } from "./dashboardTheme-Bg4e2e_3.js";
4
+ import { a as useAnimationData, n as LoadingIcon, o as Lottie, r as AnimatedAsset, t as Spacer, u as cn } from "./spacer-1k4Y_MPK.js";
5
+ import { a as TypographyH4, n as Title, o as TypographyH5, r as TypographyH1, t as Spinner } from "./spinner-Dx70DGml.js";
6
+ import { C as CheckmarkIcon, D as incode_logo_default, E as CalendarIcon, O as ErrorIcon, _ as EllipseIcon, a as useModalFocusCapture, c as SvgLightningIcon, f as LockIcon, g as EyeIcon, h as EyeOffIcon, i as useModalEscapeDismiss, k as Button, l as WarningIcon, n as Modal, o as useModalTabCycle, p as HelpIcon, r as useModalBodyScrollLock, s as useModalVisualViewportBounds, t as DropdownComposed, u as SuccessIcon, v as CloseIcon, w as CaptureButtonIcon, y as ChevronRightIcon } from "./dropdownComposed-CL61H6PB.js";
7
7
  import { ScreenOrientationProvider, createScreenOrientationObserver, getBrowser, getDeviceClass, isApplePlatform, isIPad, isSupportedBrowser } from "@incodetech/core/device";
8
8
  import { eventModuleNames, recordExperimentAssignmentOnce } from "@incodetech/core/events";
9
9
  import { ONBOARDING_WEB_SDK_PARAMETER_STORE, booleanParam, defineExperimentParams, getExperiment, getFeatureGate, getFeatureManagementVersion, getFeatureParameterStore, getIsFeatureManagementInitialized, getLayer, resolveExperiment, subscribeFeatureManagement, updateFeatureManagementUser } from "@incodetech/core/feature-management";
@@ -228,6 +228,102 @@ function useCopyToClipboard() {
228
228
  }, []);
229
229
  }
230
230
  //#endregion
231
+ //#region src/hooks/useAnimationSignal.ts
232
+ /**
233
+ * "This animation finished" primitive: filters `animationend` bubbling from a
234
+ * subtree down to the names that matter, fires `onComplete` at most once per
235
+ * `active` activation, and backstops with a watchdog timer in case the event
236
+ * never arrives (CSS fails to load, the element is swapped mid-animation,
237
+ * `animationend` doesn't fire in a test environment, …).
238
+ *
239
+ * Returns an `onAnimationEnd` handler to attach to the animating element (or
240
+ * an ancestor — bubbled events from unrelated animations are ignored by name).
241
+ */
242
+ function useAnimationSignal({ active, animationName, timeoutMs, onComplete }) {
243
+ const names = T(() => new Set(Array.isArray(animationName) ? animationName : [animationName]), [animationName]);
244
+ const activeRef = A(active);
245
+ activeRef.current = active;
246
+ const onCompleteRef = A(onComplete);
247
+ onCompleteRef.current = onComplete;
248
+ const hasFiredRef = A(false);
249
+ const { schedule, clear } = useTimeoutHandle();
250
+ const complete = () => {
251
+ if (hasFiredRef.current) return;
252
+ hasFiredRef.current = true;
253
+ clear();
254
+ onCompleteRef.current();
255
+ };
256
+ y(() => {
257
+ if (!active) return;
258
+ hasFiredRef.current = false;
259
+ schedule(complete, timeoutMs);
260
+ return clear;
261
+ }, [active, timeoutMs]);
262
+ return (event) => {
263
+ if (!activeRef.current) return;
264
+ if (!names.has(event.animationName)) return;
265
+ complete();
266
+ };
267
+ }
268
+ //#endregion
269
+ //#region src/hooks/useNextTick.ts
270
+ var nextTick = (tick, _action) => tick + 1;
271
+ /**
272
+ * Forces one extra render with no payload — the primitive for "something
273
+ * happened outside of render (a DOM event, a timer, an external
274
+ * subscription, …), re-render me now." The tick value itself is never read.
275
+ */
276
+ function useNextTick() {
277
+ const [, dispatch] = h(nextTick, 0);
278
+ return () => dispatch();
279
+ }
280
+ //#endregion
281
+ //#region src/hooks/usePresence.ts
282
+ /**
283
+ * Keeps a layer mounted for the length of its exit animation. `present`
284
+ * dropping to `false` starts the exit synchronously, in the same render —
285
+ * not one render later via an effect — so there is no paintable frame where
286
+ * the caller has already stopped rendering the layer but the exit hasn't
287
+ * started. `present` becoming `true` again while exiting (e.g. a retry)
288
+ * cancels the exit immediately.
289
+ *
290
+ * Mutating refs during render (rather than in an effect) is what makes the
291
+ * exit start synchronous with the render that reports `present: false`.
292
+ * This is safe here: Preact renders function components synchronously with
293
+ * no concurrent double-invocation, so a ref write in the render body is
294
+ * observed by every consumer of this hook's return value in that same pass.
295
+ * The only actual state update — `nextTick` (see `useNextTick`) — happens
296
+ * exclusively from the animation-completion callback below, never during
297
+ * render.
298
+ */
299
+ function usePresence({ present, animationName, timeoutMs, skipExit = false }) {
300
+ const wasPresentRef = A(present);
301
+ const isExitingRef = A(false);
302
+ const nextTick = useNextTick();
303
+ const wasPresent = wasPresentRef.current;
304
+ wasPresentRef.current = present;
305
+ if (skipExit || present) isExitingRef.current = false;
306
+ else if (wasPresent) isExitingRef.current = true;
307
+ const isExiting = !present && isExitingRef.current;
308
+ const isRendered = present || isExiting;
309
+ const onAnimationEnd = useAnimationSignal({
310
+ active: isExiting,
311
+ animationName,
312
+ timeoutMs,
313
+ onComplete: () => {
314
+ if (isExitingRef.current) {
315
+ isExitingRef.current = false;
316
+ nextTick();
317
+ }
318
+ }
319
+ });
320
+ return {
321
+ phase: present ? "present" : isExiting ? "exiting" : "absent",
322
+ isRendered,
323
+ onAnimationEnd
324
+ };
325
+ }
326
+ //#endregion
231
327
  //#region src/hooks/useFeatureManagement.ts
232
328
  var fallbackGet = (_paramName, fallback) => fallback;
233
329
  var FALLBACK_EXPERIMENT = {
@@ -17995,45 +18091,56 @@ var CommonIssues = ({ open, onClose, onTakeManually, portalContainer }) => {
17995
18091
  };
17996
18092
  //#endregion
17997
18093
  //#region src/modules/id/experiments/useCaptureResultPreview.ts
17998
- var CAPTURE_RESULT_HOLD_MS = 2e3;
17999
- var CROSSFADE_ANIMATION_NAME = "incodeIdCaptureResultCrossfade";
18094
+ var CROSSFADE_ANIMATION_NAME = "incodeIdCaptureResultCrossfadeOut";
18000
18095
  var CROSSFADE_WATCHDOG_MS = 1e3;
18001
- var useCaptureResultPreview = (manager, state) => {
18002
- const enabled = state.captureFeedbackMode === "result-preview";
18003
- const hasAdvancedRef = A(false);
18004
- const [isCrossfading, setIsCrossfading] = d(false);
18005
- const { schedule: scheduleCrossfadeTimeout, clear: clearCrossfadeTimeout } = useTimeoutHandle();
18006
- const advance = q(() => {
18007
- if (hasAdvancedRef.current) return;
18008
- hasAdvancedRef.current = true;
18009
- clearCrossfadeTimeout();
18010
- manager.completeResultPreview();
18011
- }, [clearCrossfadeTimeout, manager]);
18012
- y(() => {
18013
- if (!enabled || state.captureStatus !== "resultPreview") {
18014
- hasAdvancedRef.current = false;
18015
- setIsCrossfading(false);
18016
- clearCrossfadeTimeout();
18017
- return;
18018
- }
18019
- const timeoutId = setTimeout(() => {
18020
- setIsCrossfading(true);
18021
- scheduleCrossfadeTimeout(advance, CROSSFADE_WATCHDOG_MS);
18022
- }, CAPTURE_RESULT_HOLD_MS);
18023
- return () => clearTimeout(timeoutId);
18024
- }, [
18025
- advance,
18026
- clearCrossfadeTimeout,
18027
- enabled,
18028
- scheduleCrossfadeTimeout,
18029
- state.captureStatus
18030
- ]);
18096
+ /**
18097
+ * IDC-05 rendering state.
18098
+ *
18099
+ * Core owns the phase on **both** paths — `detectingWithOptimization.optimizing`
18100
+ * before the frame is committed (auto capture), `optimizingHold` after it
18101
+ * (manual capture) — and reports both as `captureStatus: 'optimizing'`. So there
18102
+ * is no dwell timer here, nothing to acknowledge, and no branch on which path
18103
+ * produced it.
18104
+ *
18105
+ * What stays UI-owned is only the *tail*: keeping the frozen still (and the live
18106
+ * camera layer beneath it) mounted for the length of the crossfade into the
18107
+ * analyzing screen. `usePresence` starts that exit in the *same* render that
18108
+ * stops reporting the phase — deriving it from an effect instead leaves one
18109
+ * paintable frame with neither the still nor the fade, which resolves to the
18110
+ * analyzing stage: the live `<video>` is destroyed, a bare `IdAnalyzing` flashes
18111
+ * with no fade and an undecoded image, and the fade then remounts the element and
18112
+ * re-attaches the MediaStream — a visible blink.
18113
+ */
18114
+ var useCaptureResultPreview = (state) => {
18115
+ const enabled = state.captureFeedbackMode === "optimizing";
18116
+ const isOptimizing = enabled && state.captureStatus === "optimizing";
18117
+ /**
18118
+ * The auto path's phase runs before the commit, so its still is the best
18119
+ * frame *so far*; the manual path's runs after, so `previewImageUrl` is all
18120
+ * there is. One expression covers both.
18121
+ *
18122
+ * At the commit, core clears `candidateImageUrl` in the same assign that
18123
+ * sets `previewImageUrl` (`getStoreCapturedImageValues`), so this falls through
18124
+ * to the committed frame for the crossfade — the better-rectified crop, and the
18125
+ * same URL the analyzing layer beneath is already mounting, so the swap paints
18126
+ * from that URL's cache entry rather than decoding cold. The fallthrough is
18127
+ * also what lets core free the phase's blob at the commit instead of holding it
18128
+ * to the next boundary.
18129
+ */
18130
+ const imageUrl = state.candidateImageUrl ?? state.previewImageUrl;
18131
+ const { phase, isRendered, onAnimationEnd } = usePresence({
18132
+ present: isOptimizing && Boolean(imageUrl),
18133
+ animationName: CROSSFADE_ANIMATION_NAME,
18134
+ timeoutMs: CROSSFADE_WATCHDOG_MS,
18135
+ skipExit: !(state.previewImageUrl && state.captureStatus === "uploading")
18136
+ });
18031
18137
  return {
18032
18138
  enabled,
18033
- isCrossfading,
18034
- onCrossfadeEnd: q((event) => {
18035
- if (event.animationName === CROSSFADE_ANIMATION_NAME) advance();
18036
- }, [advance])
18139
+ phase,
18140
+ isResultPreview: isRendered,
18141
+ resultPreviewImageUrl: isRendered ? imageUrl : void 0,
18142
+ isCrossfading: phase === "exiting",
18143
+ onCrossfadeEnd: onAnimationEnd
18037
18144
  };
18038
18145
  };
18039
18146
  //#endregion
@@ -18095,11 +18202,38 @@ var IdProcessingLayout = ({ imageUrl, orientation, mode, borderState, topContent
18095
18202
  });
18096
18203
  };
18097
18204
  //#endregion
18205
+ //#region src/modules/id/experiments/analyzingTitle.ts
18206
+ /** Control arm: one static title for the whole upload. */
18207
+ var ANALYZING_TITLE_KEY = "idv2.capture.processing.analyzing";
18208
+ /** IDC-05 treatment arm, below `UPLOADING_TITLE_PROGRESS`. */
18209
+ var PROCESSING_TITLE_KEY = "idv2.capture.processing.processing";
18210
+ /** IDC-05 treatment arm, at or above `UPLOADING_TITLE_PROGRESS`. */
18211
+ var UPLOADING_TITLE_KEY = "idv2.capture.processing.uploading";
18212
+ /**
18213
+ * IDC-05 treatment: the analyzing screen steps its title "Processing" →
18214
+ * "Uploading" instead of resting on the control arm's single "Analyzing".
18215
+ *
18216
+ * Derived from `uploadProgress` rather than from a dwell timer, so the copy and
18217
+ * the bar can never disagree about how far along the upload looks. That also
18218
+ * makes it monotonic for free — the machine only ever raises `uploadProgress`
18219
+ * within a single `uploading` visit (`Math.max` on the byte events, `Math.min`
18220
+ * against the hold ceiling on the ticker) — so the title cannot walk backwards
18221
+ * on a re-render or a stalled upload.
18222
+ *
18223
+ * Pure rather than a hook: no timers, no state, nothing to reset between
18224
+ * attempts.
18225
+ */
18226
+ function getAnalyzingTitleKey(resultPreviewEnabled, progress) {
18227
+ if (!resultPreviewEnabled) return ANALYZING_TITLE_KEY;
18228
+ return progress >= 80 ? UPLOADING_TITLE_KEY : PROCESSING_TITLE_KEY;
18229
+ }
18230
+ //#endregion
18098
18231
  //#region src/modules/id/processing/idAnalyzing.tsx
18099
- var IdAnalyzing = ({ imageUrl, progress, orientation, mode, blurImage, autoFocusTitle = true }) => {
18232
+ var IdAnalyzing = ({ imageUrl, progress, orientation, mode, blurImage, autoFocusTitle = true, resultPreviewEnabled = false }) => {
18100
18233
  const { t } = useTranslation();
18101
18234
  const titleRef = A(null);
18102
18235
  const isHorizontal = orientation !== "vertical";
18236
+ const titleKey = getAnalyzingTitleKey(resultPreviewEnabled, progress);
18103
18237
  _(() => {
18104
18238
  if (!autoFocusTitle) return;
18105
18239
  titleRef.current?.focus();
@@ -18120,7 +18254,11 @@ var IdAnalyzing = ({ imageUrl, progress, orientation, mode, blurImage, autoFocus
18120
18254
  id: "analyzing-title",
18121
18255
  className: "IncodeAnalyzingTitle",
18122
18256
  tabIndex: -1,
18123
- children: t("idv2.capture.processing.analyzing")
18257
+ "aria-live": "polite",
18258
+ children: /* @__PURE__ */ u("span", {
18259
+ class: "IncodeAnalyzingTitleText",
18260
+ children: t(titleKey)
18261
+ }, titleKey)
18124
18262
  })]
18125
18263
  }),
18126
18264
  overlayContent: /* @__PURE__ */ u(AnimatedAsset, {
@@ -18487,12 +18625,12 @@ var IdNoAttempts = ({ manager }) => {
18487
18625
  };
18488
18626
  //#endregion
18489
18627
  //#region src/modules/id/capture/idHint.tsx
18490
- var FrontHorizontalHintSvg = z(() => import("./front-horizontal-hint-DJoi7q0O.js"));
18491
- var FrontVerticalHintSvg = z(() => import("./front-vertical-hint-DwBeFRhM.js"));
18492
- var BackHorizontalHintSvg = z(() => import("./back-horizontal-hint-DE7qSED8.js"));
18493
- var BackVerticalHintSvg = z(() => import("./back-vertical-hint-tRfKQSB7.js"));
18494
- var PassportHorizontalHintSvg = z(() => import("./passport-horizontal-hint-DkZZzf9B.js"));
18495
- var PassportVerticalHintSvg = z(() => import("./passport-vertical-hint-BMZpf7cB.js"));
18628
+ var FrontHorizontalHintSvg = z(() => import("./front-horizontal-hint-BSDqPUtf.js"));
18629
+ var FrontVerticalHintSvg = z(() => import("./front-vertical-hint-DC7DL0yG.js"));
18630
+ var BackHorizontalHintSvg = z(() => import("./back-horizontal-hint-C26z-OQP.js"));
18631
+ var BackVerticalHintSvg = z(() => import("./back-vertical-hint-CWwh2lzA.js"));
18632
+ var PassportHorizontalHintSvg = z(() => import("./passport-horizontal-hint-kGA1I7F-.js"));
18633
+ var PassportVerticalHintSvg = z(() => import("./passport-vertical-hint-C-Dj33fi.js"));
18496
18634
  var CARD_WIDTH_IN_SVG = {
18497
18635
  "front-horizontal": 348,
18498
18636
  "back-horizontal": 348,
@@ -18554,7 +18692,7 @@ var IdHint = ({ mode, orientation, onAnimationEnd }) => {
18554
18692
  };
18555
18693
  //#endregion
18556
18694
  //#region src/modules/id/capture/captureLiveFrameContent.tsx
18557
- var CaptureLiveFrameContent = ({ hideCountdown, isCapturing, counterValue, showIdHint, mode, orientation, onIdHintAnimationEnd }) => /* @__PURE__ */ u(k, { children: [!hideCountdown && isCapturing && counterValue > 0 && /* @__PURE__ */ u("div", {
18695
+ var CaptureLiveFrameContent = ({ isCapturing, counterValue, showIdHint, mode, orientation, onIdHintAnimationEnd }) => /* @__PURE__ */ u(k, { children: [isCapturing && counterValue > 0 && /* @__PURE__ */ u("div", {
18558
18696
  class: "IncodeCaptureCounter",
18559
18697
  children: counterValue
18560
18698
  }), showIdHint && /* @__PURE__ */ u(IdHint, {
@@ -18847,7 +18985,7 @@ var resolveLiveView = ({ t, mode, detectionStatus, isCapturing }) => {
18847
18985
  //#endregion
18848
18986
  //#region src/modules/id/capture/captureOverlay.tsx
18849
18987
  var MANUAL_CAPTURE_TOOLTIP_EXIT_ANIMATION = "manualCaptureTooltipExit";
18850
- var CaptureOverlay = D(({ mode, orientation, detectionStatus, counterValue, isCapturing, showManualCapture, onCapture, onOpenHelp, helpButtonRef, captureButtonRef, hideCountdown, resultPreview }, ref) => {
18988
+ var CaptureOverlay = D(({ mode, orientation, detectionStatus, counterValue, isCapturing, showManualCapture, onCapture, onOpenHelp, helpButtonRef, captureButtonRef, hideFooterActions, resultPreview }, ref) => {
18851
18989
  const { t } = useTranslation();
18852
18990
  usePreloadCaptureAnimations();
18853
18991
  const isResultPreview = resultPreview !== void 0;
@@ -18893,7 +19031,7 @@ var CaptureOverlay = D(({ mode, orientation, detectionStatus, counterValue, isCa
18893
19031
  const isPassport = mode === "passport";
18894
19032
  const frameOrientation = orientation !== "vertical" ? "horizontal" : "vertical";
18895
19033
  const showManualCaptureTooltip = !isResultPreview && showManualCapture && !manualCaptureTooltipDismissed;
18896
- const showCounter = !isResultPreview && !hideCountdown && isCapturing && counterValue > 0;
19034
+ const showCounter = isCapturing && counterValue > 0;
18897
19035
  const manualCaptureTooltip = /* @__PURE__ */ u("div", {
18898
19036
  id: "manual-capture-tooltip",
18899
19037
  class: "IncodeIdManualCaptureTooltip",
@@ -18927,7 +19065,6 @@ var CaptureOverlay = D(({ mode, orientation, detectionStatus, counterValue, isCa
18927
19065
  frameState,
18928
19066
  className: cn(isPassport && "IncodeCaptureFramePassport"),
18929
19067
  children: resultPreview ? /* @__PURE__ */ u(CaptureResultPreview, { resultPreview }) : /* @__PURE__ */ u(CaptureLiveFrameContent, {
18930
- hideCountdown,
18931
19068
  isCapturing,
18932
19069
  counterValue,
18933
19070
  showIdHint,
@@ -18949,7 +19086,7 @@ var CaptureOverlay = D(({ mode, orientation, detectionStatus, counterValue, isCa
18949
19086
  helpButtonRef,
18950
19087
  captureButtonRef,
18951
19088
  captureAriaDescribedBy: showManualCaptureTooltip ? "manual-capture-tooltip" : void 0,
18952
- hideActions: isResultPreview,
19089
+ hideActions: hideFooterActions,
18953
19090
  children: showManualCaptureTooltip ? /* @__PURE__ */ u("div", {
18954
19091
  class: "IncodeIdManualCaptureTooltipContainer",
18955
19092
  onAnimationEnd: handleManualCaptureTooltipAnimationEnd,
@@ -18961,10 +19098,23 @@ var CaptureOverlay = D(({ mode, orientation, detectionStatus, counterValue, isCa
18961
19098
  });
18962
19099
  //#endregion
18963
19100
  //#region src/modules/id/capture/captureHelpers.ts
18964
- function getCaptureStageView(state, isCrossfading) {
19101
+ /**
19102
+ * Which layer(s) the capture screen mounts.
19103
+ *
19104
+ * The crossfade wins outright while it runs: on the IDC-05 treatment the machine
19105
+ * commits the frame on its own clock, so `uploading` arrives *before* the fade
19106
+ * rather than after it, and letting `uploading` win would hard-cut the live
19107
+ * layer away mid-animation.
19108
+ *
19109
+ * A `present` phase keeps the live layer mounted through the manual-capture
19110
+ * result preview, where a committed `previewImageUrl` already exists but the frozen still
19111
+ * is deliberately still on screen.
19112
+ */
19113
+ function getCaptureStageView(state, phase) {
18965
19114
  if (!state.previewImageUrl) return "live";
18966
- if (state.captureStatus === "uploading") return "analyzing";
18967
- return isCrossfading ? "crossfade" : "live";
19115
+ if (phase === "exiting") return "crossfade";
19116
+ if (phase === "present") return "live";
19117
+ return state.captureStatus === "uploading" ? "analyzing" : "live";
18968
19118
  }
18969
19119
  function getCaptureMode(state) {
18970
19120
  return state.currentMode === "passport" ? "passport" : "id";
@@ -18973,7 +19123,10 @@ function getCaptureMode(state) {
18973
19123
  //#region src/modules/id/capture/capture.tsx
18974
19124
  var Capture = ({ manager, state }) => {
18975
19125
  const { t } = useTranslation();
18976
- const { enabled: captureResultPreviewEnabled, isCrossfading, onCrossfadeEnd } = useCaptureResultPreview(manager, state);
19126
+ const { enabled: resultPreviewEnabled, phase: resultPreviewPhase, isResultPreview, resultPreviewImageUrl, onCrossfadeEnd } = useCaptureResultPreview(state);
19127
+ const stageView = getCaptureStageView(state, resultPreviewPhase);
19128
+ const isCrossfadeStage = stageView === "crossfade";
19129
+ const isLiveStage = stageView === "live";
18977
19130
  if (state.captureStatus === "holdOn") return /* @__PURE__ */ u(TransitionSpinner, { spinnerConfig: { subtitle: t("idv2.capture.holdOn.subtitle") } });
18978
19131
  if (state.captureStatus === "success" && (state.previewImageUrl || state.barcodeFastPathCaptured)) return /* @__PURE__ */ u(IdSuccess, {
18979
19132
  manager,
@@ -18985,12 +19138,9 @@ var Capture = ({ manager, state }) => {
18985
19138
  state,
18986
19139
  blurImage: state.ageAssurance
18987
19140
  });
18988
- const stageView = getCaptureStageView(state, isCrossfading);
18989
- const isCrossfadeStage = stageView === "crossfade";
18990
- const isLiveStage = stageView === "live";
18991
19141
  let idAnalyzingSlot = null;
18992
19142
  if (state.previewImageUrl && !isLiveStage) idAnalyzingSlot = /* @__PURE__ */ u("div", {
18993
- class: "IncodeIdCaptureStageAnalyzing",
19143
+ class: cn("IncodeIdCaptureStageAnalyzing", isCrossfadeStage && "IncodeIdCaptureStageResultEntering"),
18994
19144
  "aria-hidden": isCrossfadeStage || void 0,
18995
19145
  inert: isCrossfadeStage || void 0,
18996
19146
  children: /* @__PURE__ */ u(IdAnalyzing, {
@@ -18999,25 +19149,28 @@ var Capture = ({ manager, state }) => {
18999
19149
  orientation: state.orientation,
19000
19150
  mode: getCaptureMode(state),
19001
19151
  blurImage: state.ageAssurance,
19002
- autoFocusTitle: !isCrossfadeStage
19152
+ autoFocusTitle: !isCrossfadeStage,
19153
+ resultPreviewEnabled
19003
19154
  })
19004
19155
  }, "analyzing");
19005
19156
  let captureViewSlot = null;
19006
19157
  if (stageView !== "analyzing") captureViewSlot = /* @__PURE__ */ u("div", {
19007
- class: "IncodeIdCaptureStageLive",
19158
+ class: cn("IncodeIdCaptureStageLive", isCrossfadeStage && "IncodeIdCaptureStageResultExiting"),
19008
19159
  onAnimationEnd: onCrossfadeEnd,
19009
19160
  children: /* @__PURE__ */ u(CaptureView, {
19010
19161
  manager,
19011
19162
  state,
19012
- captureResultPreviewEnabled
19163
+ isResultPreview,
19164
+ resultPreviewImageUrl,
19165
+ hideFooterActions: !isLiveStage
19013
19166
  })
19014
19167
  }, "live");
19015
19168
  return /* @__PURE__ */ u("div", {
19016
- class: cn("IncodeIdCaptureStage", stageView === "crossfade" && "IncodeIdCaptureStageCrossfading"),
19169
+ class: "IncodeIdCaptureStage",
19017
19170
  children: [idAnalyzingSlot, captureViewSlot]
19018
19171
  });
19019
19172
  };
19020
- var CaptureView = ({ manager, state, captureResultPreviewEnabled }) => {
19173
+ var CaptureView = ({ manager, state, isResultPreview, resultPreviewImageUrl, hideFooterActions }) => {
19021
19174
  const frameRef = A(null);
19022
19175
  const helpButtonRef = A(null);
19023
19176
  const captureButtonRef = A(null);
@@ -19036,11 +19189,11 @@ var CaptureView = ({ manager, state, captureResultPreviewEnabled }) => {
19036
19189
  }, [manager]);
19037
19190
  useEventListener("resize", reportFrame);
19038
19191
  useResizeObserver(frameRef, reportFrame);
19039
- const isCapturing = state.captureStatus === "capturing" || state.detectionStatus === "capturing";
19192
+ const isCapturing = !isResultPreview && (state.captureStatus === "capturing" || state.detectionStatus === "capturing");
19040
19193
  const detectionStatus = state.detectionStatus;
19041
19194
  const showManualCapture = detectionStatus === "manualCapture" || state.showCaptureButtonInAuto && state.captureStatus === "detecting" && detectionStatus !== "capturing";
19042
- const resultPreview = captureResultPreviewEnabled && state.captureStatus === "resultPreview" && state.previewImageUrl ? {
19043
- imageUrl: state.previewImageUrl,
19195
+ const resultPreview = isResultPreview && resultPreviewImageUrl ? {
19196
+ imageUrl: resultPreviewImageUrl,
19044
19197
  blurImage: state.ageAssurance
19045
19198
  } : void 0;
19046
19199
  const handleOpenHelp = () => {
@@ -19083,8 +19236,8 @@ var CaptureView = ({ manager, state, captureResultPreviewEnabled }) => {
19083
19236
  onOpenHelp: handleOpenHelp,
19084
19237
  helpButtonRef,
19085
19238
  captureButtonRef,
19086
- hideCountdown: captureResultPreviewEnabled,
19087
- resultPreview
19239
+ resultPreview,
19240
+ hideFooterActions
19088
19241
  })
19089
19242
  }),
19090
19243
  /* @__PURE__ */ u("div", { ref: portalRef }),
@@ -20284,4 +20437,4 @@ var FlipAnimation = ({ manager, direction }) => {
20284
20437
  });
20285
20438
  };
20286
20439
  //#endregion
20287
- export { Processing as $, TextArea as A, translateError as B, CameraOverlayHeader as C, VerificationOptionCard as D, BottomSheet as E, PhoneInputComposed as F, PasswordInputComposed as G, OtpInput as H, countries as I, ProgressBar as J, InputComposed as K, getCountryByCallingCode as L, RadioButtonComposed as M, SegmentedDateInput as N, VerificationOptionCardList as O, DateInputComposed as P, ErrorContent as Q, getCountryByCode as R, CameraView as S, CameraFrame as T, formatResendTimer as U, Checkbox as V, useResendTimerAnnouncements as W, StatusPage as X, ConnectionError as Y, VerificationResult as Z, Permissions as _, useModuleTerminalCallbacks as _t, Capture as a, withStandaloneModuleBootstrap as at, ManualCapture as b, IdNoAttempts as c, Page as ct, IdError as d, TransitionSpinner as dt, Overlay as et, useIdExperiment as f, useFeatureManagement as ft, ManualCaptureButton$1 as g, isTerminalModuleState as gt, Capture$1 as h, useFormScrollable as ht, ManualCaptureButton as i, Snackbar as it, RadioGroupComposed as j, TextAreaComposed as k, IdExpired as l, VerifiedByIncodeLogo as lt, Tutorial$1 as m, useIsMobileDeviceWidth as mt, Chooser as n, LandscapeBlocker as nt, CaptureNotification as o, ResolvedConfigProvider as ot, CaptureFrame as p, useTimeoutHandle as pt, Input as q, Tutorial as r, AutoFocusTitle as rt, preloadCaptureAnimations as s, TerminalErrorPage as st, FlipAnimation as t, IncodeComponent as tt, ExpiredId as u, usePageUiConfig as ut, NumberedStep as v, useScreenOrientation as vt, CameraOverlay as w, CaptureFooter as x, BaseTutorial as y, useManager as yt, FormField as z };
20440
+ export { Processing as $, TextArea as A, translateError as B, CameraOverlayHeader as C, VerificationOptionCard as D, BottomSheet as E, PhoneInputComposed as F, PasswordInputComposed as G, OtpInput as H, countries as I, ProgressBar as J, InputComposed as K, getCountryByCallingCode as L, RadioButtonComposed as M, SegmentedDateInput as N, VerificationOptionCardList as O, DateInputComposed as P, ErrorContent as Q, getCountryByCode as R, CameraView as S, CameraFrame as T, formatResendTimer as U, Checkbox as V, useResendTimerAnnouncements as W, StatusPage as X, ConnectionError as Y, VerificationResult as Z, Permissions as _, isTerminalModuleState as _t, Capture as a, withStandaloneModuleBootstrap as at, ManualCapture as b, useManager as bt, IdNoAttempts as c, TerminalErrorPage as ct, IdError as d, usePageUiConfig as dt, Overlay as et, useIdExperiment as f, TransitionSpinner as ft, ManualCaptureButton$1 as g, useFormScrollable as gt, Capture$1 as h, useIsMobileDeviceWidth as ht, ManualCaptureButton as i, Snackbar as it, RadioGroupComposed as j, TextAreaComposed as k, IdExpired as l, Page as lt, Tutorial$1 as m, useTimeoutHandle as mt, Chooser as n, LandscapeBlocker as nt, CaptureNotification as o, ResolvedConfigProvider as ot, CaptureFrame as p, useFeatureManagement as pt, Input as q, Tutorial as r, AutoFocusTitle as rt, preloadCaptureAnimations as s, useHasResolvedConfig as st, FlipAnimation as t, IncodeComponent as tt, ExpiredId as u, VerifiedByIncodeLogo as ut, NumberedStep as v, useModuleTerminalCallbacks as vt, CameraOverlay as w, CaptureFooter as x, BaseTutorial as y, useScreenOrientation as yt, FormField as z };
@@ -1,6 +1,6 @@
1
- import { a as useTranslation, n as setUiConfig } from "./uiConfig-C3dX3oV1.js";
2
- import { $ as Processing, A as TextArea, C as CameraOverlayHeader, D as VerificationOptionCard, E as BottomSheet, F as PhoneInputComposed, G as PasswordInputComposed, H as OtpInput, I as countries, J as ProgressBar, K as InputComposed, L as getCountryByCallingCode, M as RadioButtonComposed, N as SegmentedDateInput, O as VerificationOptionCardList, P as DateInputComposed, Q as ErrorContent, R as getCountryByCode, S as CameraView, T as CameraFrame, V as Checkbox, Y as ConnectionError, Z as VerificationResult, _ as Permissions, a as Capture, b as ManualCapture, ct as Page, d as IdError, et as Overlay, h as Capture$1, j as RadioGroupComposed, k as TextAreaComposed, l as IdExpired, m as Tutorial$1, n as Chooser, nt as LandscapeBlocker, q as Input, r as Tutorial, t as FlipAnimation, tt as IncodeComponent, vt as useScreenOrientation, w as CameraOverlay, x as CaptureFooter, y as BaseTutorial, yt as useManager, z as FormField } from "./extensibility-C94DltcN.js";
3
- import { o as Lottie, t as Spacer } from "./spacer-BgPYQ4gX.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-V9NaJLF-.js";
5
- import { C as CheckmarkIcon, E as CalendarIcon, O as ErrorIcon, S as CheckmarkCompactIcon, T as CameraIcon, _ as EllipseIcon, b as ChevronLeftIcon, c as SvgLightningIcon, d as SearchIcon, f as LockIcon, g as EyeIcon, h as EyeOffIcon, k as Button, l as WarningIcon, m as FileIcon, n as Modal, p as HelpIcon, t as DropdownComposed, u as SuccessIcon, v as CloseIcon, w as CaptureButtonIcon, x as ChevronDown, y as ChevronRightIcon } from "./dropdownComposed-B3EP6yr2.js";
1
+ import { a as useTranslation, n as setUiConfig } from "./uiConfig-CoKSzxxR.js";
2
+ import { $ as Processing, A as TextArea, C as CameraOverlayHeader, D as VerificationOptionCard, E as BottomSheet, F as PhoneInputComposed, G as PasswordInputComposed, H as OtpInput, I as countries, J as ProgressBar, K as InputComposed, L as getCountryByCallingCode, M as RadioButtonComposed, N as SegmentedDateInput, O as VerificationOptionCardList, P as DateInputComposed, Q as ErrorContent, R as getCountryByCode, S as CameraView, T as CameraFrame, V as Checkbox, Y as ConnectionError, Z as VerificationResult, _ as Permissions, a as Capture, b as ManualCapture, bt as useManager, d as IdError, et as Overlay, h as Capture$1, j as RadioGroupComposed, k as TextAreaComposed, l as IdExpired, lt as Page, m as Tutorial$1, n as Chooser, nt as LandscapeBlocker, q as Input, r as Tutorial, t as FlipAnimation, tt as IncodeComponent, w as CameraOverlay, x as CaptureFooter, y as BaseTutorial, yt as useScreenOrientation, z as FormField } from "./extensibility-CHLVc-Wh.js";
3
+ import { o as Lottie, t as Spacer } from "./spacer-1k4Y_MPK.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-Dx70DGml.js";
5
+ import { C as CheckmarkIcon, E as CalendarIcon, O as ErrorIcon, S as CheckmarkCompactIcon, T as CameraIcon, _ as EllipseIcon, b as ChevronLeftIcon, c as SvgLightningIcon, d as SearchIcon, f as LockIcon, g as EyeIcon, h as EyeOffIcon, k as Button, l as WarningIcon, m as FileIcon, n as Modal, p as HelpIcon, t as DropdownComposed, u as SuccessIcon, v as CloseIcon, w as CaptureButtonIcon, x as ChevronDown, y as ChevronRightIcon } from "./dropdownComposed-CL61H6PB.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-wwCDcSbs.js";
1
+ import { t as FaceMatch } from "../faceMatch-DieakWZY.js";
2
2
  export { FaceMatch };
@@ -0,0 +1,2 @@
1
+ import { t as FaceMatch } from "./faceMatch-DieakWZY.js";
2
+ export { FaceMatch };
@@ -1,10 +1,10 @@
1
- import { a as useTranslation } from "./uiConfig-C3dX3oV1.js";
2
- import { S as k, _ as y, l as A, v as u } from "./vendor-preact-mvwZ8mJj.js";
3
- import { _t as useModuleTerminalCallbacks, at as withStandaloneModuleBootstrap, ct as Page, dt as TransitionSpinner, gt as isTerminalModuleState, it as Snackbar, tt as IncodeComponent, yt as useManager } from "./extensibility-C94DltcN.js";
4
- import { s as Asset, t as Spacer } from "./spacer-BgPYQ4gX.js";
5
- import { n as Title } from "./spinner-V9NaJLF-.js";
6
- import { k as Button } from "./dropdownComposed-B3EP6yr2.js";
7
- import { t as registerIncodeModuleElement } from "./incodeModule-JCrVkdOU.js";
1
+ import { a as useTranslation } from "./uiConfig-CoKSzxxR.js";
2
+ import { C as k, l as A, v as y, y as u } from "./vendor-preact-BPXMFRom.js";
3
+ import { _t as isTerminalModuleState, at as withStandaloneModuleBootstrap, bt as useManager, ft as TransitionSpinner, it as Snackbar, lt as Page, tt as IncodeComponent, vt as useModuleTerminalCallbacks } from "./extensibility-CHLVc-Wh.js";
4
+ import { s as Asset, t as Spacer } from "./spacer-1k4Y_MPK.js";
5
+ import { n as Title } from "./spinner-Dx70DGml.js";
6
+ import { k as Button } from "./dropdownComposed-CL61H6PB.js";
7
+ import { t as registerIncodeModuleElement } from "./incodeModule-CTY2xtWa.js";
8
8
  import { createFaceMatchManager } from "@incodetech/core/face-match";
9
9
  //#region src/modules/face-match/assets/match-success.svg?react
10
10
  var SvgMatchSuccess = (props) => /* @__PURE__ */ u("svg", {
@@ -1,2 +1,2 @@
1
- import { t as FieldComparison } from "../fieldComparison-CaQOzoZT.js";
1
+ import { t as FieldComparison } from "../fieldComparison-Dfo_LFVW.js";
2
2
  export { FieldComparison };
@@ -1,9 +1,9 @@
1
- import { a as useTranslation } from "./uiConfig-C3dX3oV1.js";
2
- import { v as u } from "./vendor-preact-mvwZ8mJj.js";
3
- import { K as InputComposed, Z as VerificationResult, _t as useModuleTerminalCallbacks, at as withStandaloneModuleBootstrap, ct as Page, tt as IncodeComponent, yt as useManager } from "./extensibility-C94DltcN.js";
4
- import { t as Spacer } from "./spacer-BgPYQ4gX.js";
5
- import { k as Button } from "./dropdownComposed-B3EP6yr2.js";
6
- import { t as registerIncodeModuleElement } from "./incodeModule-JCrVkdOU.js";
1
+ import { a as useTranslation } from "./uiConfig-CoKSzxxR.js";
2
+ import { y as u } from "./vendor-preact-BPXMFRom.js";
3
+ import { K as InputComposed, Z as VerificationResult, at as withStandaloneModuleBootstrap, bt as useManager, lt as Page, tt as IncodeComponent, vt as useModuleTerminalCallbacks } from "./extensibility-CHLVc-Wh.js";
4
+ import { t as Spacer } from "./spacer-1k4Y_MPK.js";
5
+ import { k as Button } from "./dropdownComposed-CL61H6PB.js";
6
+ import { t as registerIncodeModuleElement } from "./incodeModule-CTY2xtWa.js";
7
7
  import { createFieldComparisonManager } from "@incodetech/core/field-comparison";
8
8
  //#region src/modules/field-comparison/fieldComparison.tsx
9
9
  var FieldComparisonContent = ({ config, manager: externalManager, onFinish }) => {
@@ -0,0 +1,2 @@
1
+ import { t as FieldComparison } from "./fieldComparison-Dfo_LFVW.js";
2
+ export { FieldComparison };
@@ -1,8 +1,8 @@
1
- import { a as useTranslation } from "./uiConfig-C3dX3oV1.js";
2
- import { S as k, _ as y, h as q, l as A, p as d, v as u } from "./vendor-preact-mvwZ8mJj.js";
3
- import { T as CameraFrame, ct as Page, g as ManualCaptureButton, i as ManualCaptureButton$1, o as CaptureNotification, pt as useTimeoutHandle, rt as AutoFocusTitle } from "./extensibility-C94DltcN.js";
4
- import { n as LoadingIcon, o as Lottie, s as Asset, u as cn } from "./spacer-BgPYQ4gX.js";
5
- import { O as ErrorIcon, k as Button, n as Modal, u as SuccessIcon } from "./dropdownComposed-B3EP6yr2.js";
1
+ import { a as useTranslation } from "./uiConfig-CoKSzxxR.js";
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, g as ManualCaptureButton, i as ManualCaptureButton$1, lt as Page, mt as useTimeoutHandle, o as CaptureNotification, rt as AutoFocusTitle } from "./extensibility-CHLVc-Wh.js";
4
+ import { n as LoadingIcon, o as Lottie, s as Asset, u as cn } from "./spacer-1k4Y_MPK.js";
5
+ import { O as ErrorIcon, k as Button, n as Modal, u as SuccessIcon } from "./dropdownComposed-CL61H6PB.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,9 +1,9 @@
1
- import { a as useTranslation } from "../uiConfig-C3dX3oV1.js";
2
- import { v as u } from "../vendor-preact-mvwZ8mJj.js";
3
- import { C as CameraOverlayHeader, S as CameraView, T as CameraFrame, Z as VerificationResult, _t as useModuleTerminalCallbacks, at as withStandaloneModuleBootstrap, ct as Page, tt as IncodeComponent, w as CameraOverlay, yt as useManager } from "../extensibility-C94DltcN.js";
4
- import { t as Spacer } from "../spacer-BgPYQ4gX.js";
5
- import { k as Button } from "../dropdownComposed-B3EP6yr2.js";
6
- import { t as registerIncodeModuleElement } from "../incodeModule-JCrVkdOU.js";
1
+ import { a as useTranslation } from "../uiConfig-CoKSzxxR.js";
2
+ import { y as u } from "../vendor-preact-BPXMFRom.js";
3
+ import { C as CameraOverlayHeader, S as CameraView, T as CameraFrame, Z as VerificationResult, at as withStandaloneModuleBootstrap, bt as useManager, lt as Page, tt as IncodeComponent, vt as useModuleTerminalCallbacks, w as CameraOverlay } from "../extensibility-CHLVc-Wh.js";
4
+ import { t as Spacer } from "../spacer-1k4Y_MPK.js";
5
+ import { k as Button } from "../dropdownComposed-CL61H6PB.js";
6
+ import { t as registerIncodeModuleElement } from "../incodeModule-CTY2xtWa.js";
7
7
  import { createFiscalQrManager } from "@incodetech/core/fiscal-qr";
8
8
  //#region src/modules/fiscal-qr/fiscalQrCapture.tsx
9
9
  function getFrameState(status) {
@@ -1,9 +1,9 @@
1
- import { a as useTranslation, l as readStoredLanguage, t as setThemeUiConfig } from "../uiConfig-C3dX3oV1.js";
2
- import { _ 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 { X as StatusPage, dt as TransitionSpinner, ot as ResolvedConfigProvider, st as TerminalErrorPage, tt as IncodeComponent, yt as useManager } from "../extensibility-C94DltcN.js";
4
- import { O as ErrorIcon } from "../dropdownComposed-B3EP6yr2.js";
5
- import { t as registerIncodeModuleElement } from "../incodeModule-JCrVkdOU.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 } from "../useModuleLoader-Dn47Khdf.js";
1
+ import { a as useTranslation, l as readStoredLanguage, t as setThemeUiConfig } from "../uiConfig-CoKSzxxR.js";
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 { X as StatusPage, bt as useManager, ct as TerminalErrorPage, ft as TransitionSpinner, ot as ResolvedConfigProvider, tt as IncodeComponent } from "../extensibility-CHLVc-Wh.js";
4
+ import { O as ErrorIcon } from "../dropdownComposed-CL61H6PB.js";
5
+ import { t as registerIncodeModuleElement } from "../incodeModule-CTY2xtWa.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 } from "../useModuleLoader-CoykN6rv.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-Zh7A-i_Y.js").then((module) => ({ default: module.HomeScreen })));
345
+ var LazyHomeScreen = z(() => import("../homeScreen-ZhZlt4X1.js").then((module) => ({ default: module.HomeScreen })));
346
346
  var IncodeFlowContent = ({ config, onFinish, onError }) => {
347
347
  const { i18n } = useTranslation();
348
348
  const initState = useFlowInitialization(T(() => ({