idmission-web-sdk 2.2.34 → 2.2.36

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 (70) hide show
  1. package/dist/components/CompositeWizard.d.ts +1 -2
  2. package/dist/components/CompositeWizard.d.ts.map +1 -1
  3. package/dist/components/camera/CameraAccessDeniedOverlay.d.ts.map +1 -1
  4. package/dist/components/camera/CameraVideoTag.d.ts +2 -4
  5. package/dist/components/camera/CameraVideoTag.d.ts.map +1 -1
  6. package/dist/components/camera/MicrophoneAccessDeniedOverlay.d.ts.map +1 -1
  7. package/dist/components/common/debug.d.ts.map +1 -1
  8. package/dist/components/customer_flows/CustomerBiometricsEnrollment.d.ts.map +1 -1
  9. package/dist/components/customer_flows/CustomerIdAndBiometricsEnrollment.d.ts.map +1 -1
  10. package/dist/components/customer_flows/CustomerIdentification.d.ts.map +1 -1
  11. package/dist/components/customer_flows/CustomerVerification.d.ts.map +1 -1
  12. package/dist/components/customer_flows/DocumentCapture.d.ts.map +1 -1
  13. package/dist/components/customer_flows/FaceValidation.d.ts.map +1 -1
  14. package/dist/components/customer_flows/IdAndFaceValidation.d.ts.map +1 -1
  15. package/dist/components/customer_flows/IdValidation.d.ts.map +1 -1
  16. package/dist/components/customer_flows/VideoIdValidation.d.ts.map +1 -1
  17. package/dist/components/customer_identification/CustomerIdentificationWizard.d.ts +1 -1
  18. package/dist/components/customer_identification/CustomerIdentificationWizard.d.ts.map +1 -1
  19. package/dist/components/customer_verification/CustomerVerificationWizard.d.ts.map +1 -1
  20. package/dist/components/document_capture/DocumentCaptureScreen.d.ts.map +1 -1
  21. package/dist/components/document_capture/DocumentCaptureStateProvider.d.ts.map +1 -1
  22. package/dist/components/face_liveness/FaceLivenessWizard.d.ts.map +1 -1
  23. package/dist/components/id_capture/DocumentDetectionModelProvider.d.ts.map +1 -1
  24. package/dist/components/id_capture/FocusModelProvider.d.ts.map +1 -1
  25. package/dist/components/id_capture/IdCapture.d.ts.map +1 -1
  26. package/dist/components/id_capture/IdCaptureGuideOverlay.d.ts.map +1 -1
  27. package/dist/components/id_capture/IdCaptureGuides.d.ts.map +1 -1
  28. package/dist/components/id_capture/IdCaptureGuidesCommon.d.ts.map +1 -1
  29. package/dist/components/id_capture/IdCaptureLoadingGraphic.d.ts.map +1 -1
  30. package/dist/components/id_capture/IdCaptureLoadingOverlayDefault.d.ts.map +1 -1
  31. package/dist/components/id_capture/IdCaptureLoadingOverlayLegacy.d.ts.map +1 -1
  32. package/dist/components/id_capture/IdCaptureWizard.d.ts.map +1 -1
  33. package/dist/components/selfie_capture/SelfieCapture.d.ts.map +1 -1
  34. package/dist/components/selfie_capture/SelfieCaptureLoadingGraphic.d.ts.map +1 -1
  35. package/dist/components/selfie_capture/SelfieCaptureLoadingOverlayDefault.d.ts.map +1 -1
  36. package/dist/components/selfie_capture/SelfieCaptureLoadingOverlayLegacy.d.ts.map +1 -1
  37. package/dist/components/selfie_capture/SelfieGuidanceModelsProvider.d.ts.map +1 -1
  38. package/dist/components/video_id/IdVideoCapture.d.ts +1 -1
  39. package/dist/components/video_id/IdVideoCapture.d.ts.map +1 -1
  40. package/dist/components/video_id/IdVideoCaptureFlipIdPrompt.d.ts.map +1 -1
  41. package/dist/components/video_id/IdVideoCaptureGuides.d.ts.map +1 -1
  42. package/dist/components/video_id/IdVideoCaptureWizard.d.ts.map +1 -1
  43. package/dist/components/video_signature_capture/VideoSignatureCapture.d.ts.map +1 -1
  44. package/dist/components/video_signature_capture/VideoSignatureWizard.d.ts.map +1 -1
  45. package/dist/lib/camera/Camera.d.ts +4 -0
  46. package/dist/lib/camera/Camera.d.ts.map +1 -1
  47. package/dist/lib/camera/cameraStore.d.ts +52 -0
  48. package/dist/lib/camera/cameraStore.d.ts.map +1 -0
  49. package/dist/lib/camera/videoRefStack.d.ts +6 -0
  50. package/dist/lib/camera/videoRefStack.d.ts.map +1 -0
  51. package/dist/lib/models/DocumentDetection.d.ts +3 -1
  52. package/dist/lib/models/DocumentDetection.d.ts.map +1 -1
  53. package/dist/lib/models/FaceDetection.d.ts +3 -1
  54. package/dist/lib/models/FaceDetection.d.ts.map +1 -1
  55. package/dist/lib/models/Focus.d.ts +3 -1
  56. package/dist/lib/models/Focus.d.ts.map +1 -1
  57. package/dist/sdk2.cjs.development.js +1277 -1169
  58. package/dist/sdk2.cjs.development.js.map +1 -1
  59. package/dist/sdk2.cjs.production.js +1 -1
  60. package/dist/sdk2.cjs.production.js.map +1 -1
  61. package/dist/sdk2.esm.js +1277 -1169
  62. package/dist/sdk2.esm.js.map +1 -1
  63. package/dist/sdk2.umd.development.js +1675 -1450
  64. package/dist/sdk2.umd.development.js.map +1 -1
  65. package/dist/sdk2.umd.production.js +1 -1
  66. package/dist/sdk2.umd.production.js.map +1 -1
  67. package/dist/version.d.ts +1 -1
  68. package/package.json +5 -4
  69. package/dist/components/camera/CameraProvider.d.ts +0 -17
  70. package/dist/components/camera/CameraProvider.d.ts.map +0 -1
package/dist/sdk2.esm.js CHANGED
@@ -8,10 +8,12 @@ import { Upload } from 'tus-js-client';
8
8
  import SparkMD5 from 'spark-md5';
9
9
  import useResizeObserver from 'use-resize-observer';
10
10
  import { ImageSegmenter, FilesetResolver, ImageClassifier, FaceDetector, ObjectDetector } from '@mediapipe/tasks-vision';
11
+ import { createStore, useStore } from 'zustand';
11
12
  import { useDebouncedCallback, useThrottledCallback } from 'use-debounce';
12
13
  import { createPortal } from 'react-dom';
13
14
  import LanguageDetector from 'i18next-browser-languagedetector';
14
15
  import i18n from 'i18next';
16
+ import { useShallow } from 'zustand/react/shallow';
15
17
  import SignatureCanvas from 'react-signature-canvas';
16
18
 
17
19
  /******************************************************************************
@@ -201,7 +203,7 @@ typeof SuppressedError === "function" ? SuppressedError : function (error, suppr
201
203
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
202
204
  };
203
205
 
204
- var webSdkVersion = '2.2.34';
206
+ var webSdkVersion = '2.2.36';
205
207
 
206
208
  function getPlatform() {
207
209
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
@@ -362,7 +364,7 @@ function videoDataUrlToB64(url) {
362
364
  });
363
365
  }
364
366
 
365
- var PageContainerDiv = styled.div(templateObject_1$J || (templateObject_1$J = __makeTemplateObject(["\n ", "\n\n ", "\n\n &.flex {\n display: flex;\n }\n\n &.padded {\n box-sizing: border-box;\n padding: 16px 24px;\n }\n"], ["\n ", "\n\n ", "\n\n &.flex {\n display: flex;\n }\n\n &.padded {\n box-sizing: border-box;\n padding: 16px 24px;\n }\n"])), function (props) {
367
+ var PageContainerDiv = styled.div(templateObject_1$L || (templateObject_1$L = __makeTemplateObject(["\n ", "\n\n ", "\n\n &.flex {\n display: flex;\n }\n\n &.padded {\n box-sizing: border-box;\n padding: 16px 24px;\n }\n"], ["\n ", "\n\n ", "\n\n &.flex {\n display: flex;\n }\n\n &.padded {\n box-sizing: border-box;\n padding: 16px 24px;\n }\n"])), function (props) {
366
368
  var _a;
367
369
  return props.theme.isFullscreen === false ? "" : "\n position: fixed;\n top: 0;\n left: 0;\n width: var(--app-width);\n height: calc(\n var(--app-height) - ".concat((_a = props.$heightOffset) !== null && _a !== void 0 ? _a : 0, "px\n );\n overflow-x: hidden;\n overflow-y: auto;\n ");
368
370
  }, function (props) {
@@ -402,7 +404,7 @@ var PageContainer = /*#__PURE__*/forwardRef(function (_a, ref) {
402
404
  }, dimensionsCalculated && children);
403
405
  });
404
406
  PageContainer.displayName = 'PageContainer';
405
- var templateObject_1$J;
407
+ var templateObject_1$L;
406
408
 
407
409
  var LoaderButton = function LoaderButton(_a) {
408
410
  var children = _a.children,
@@ -461,30 +463,30 @@ var LoaderButton = function LoaderButton(_a) {
461
463
  className: "ladda-label"
462
464
  }, children));
463
465
  };
464
- var StyledButton = styled.button(templateObject_1$I || (templateObject_1$I = __makeTemplateObject(["\n ", "\n\n /*!\n * Ladda\n * http://lab.hakim.se/ladda\n * MIT licensed\n *\n * Copyright (C) 2018 Hakim El Hattab, http://hakim.se\n */\n\n position: relative;\n\n .ladda-spinner {\n position: absolute;\n z-index: 2;\n display: inline-block;\n width: 32px;\n top: 50%;\n margin-top: 0;\n opacity: 0;\n pointer-events: none;\n }\n .ladda-label {\n position: relative;\n z-index: 3;\n }\n .ladda-progress {\n position: absolute;\n width: 0;\n height: 100%;\n left: 0;\n top: 0;\n background: rgba(0, 0, 0, 0.2);\n display: none;\n transition: 0.1s linear all !important;\n }\n &[data-loading] .ladda-progress {\n display: block;\n }\n\n transition: 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important;\n\n .ladda-spinner,\n .ladda-label {\n transition: 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important;\n }\n &[data-style='zoom-in'],\n &[data-style='zoom-in'] .ladda-spinner,\n &[data-style='zoom-in'] .ladda-label,\n &[data-style='zoom-out'],\n &[data-style='zoom-out'] .ladda-spinner,\n &[data-style='zoom-out'] .ladda-label {\n transition: 0.3s ease all !important;\n }\n &[data-style='expand-right'] .ladda-spinner {\n right: -6px;\n }\n &[data-style='expand-right'][data-size='s'] .ladda-spinner,\n &[data-style='expand-right'][data-size='xs'] .ladda-spinner {\n right: -12px;\n }\n &[data-style='expand-right'][data-loading] {\n padding-right: 56px;\n }\n &[data-style='expand-right'][data-loading] .ladda-spinner {\n opacity: 1;\n }\n &[data-style='expand-right'][data-loading][data-size='s'],\n &[data-style='expand-right'][data-loading][data-size='xs'] {\n padding-right: 40px;\n }\n &[data-style='expand-left'] .ladda-spinner {\n left: 26px;\n }\n &[data-style='expand-left'][data-size='s'] .ladda-spinner,\n &[data-style='expand-left'][data-size='xs'] .ladda-spinner {\n left: 4px;\n }\n &[data-style='expand-left'][data-loading] {\n padding-left: 56px;\n }\n &[data-style='expand-left'][data-loading] .ladda-spinner {\n opacity: 1;\n }\n &[data-style='expand-left'][data-loading][data-size='s'],\n &[data-style='expand-left'][data-loading][data-size='xs'] {\n padding-left: 40px;\n }\n &[data-style='expand-up'] {\n overflow: hidden;\n }\n &[data-style='expand-up'] .ladda-spinner {\n top: -32px;\n left: 50%;\n margin-left: 0;\n }\n &[data-style='expand-up'][data-loading] {\n padding-top: 54px;\n }\n &[data-style='expand-up'][data-loading] .ladda-spinner {\n opacity: 1;\n top: 26px;\n margin-top: 0;\n }\n &[data-style='expand-up'][data-loading][data-size='s'],\n &[data-style='expand-up'][data-loading][data-size='xs'] {\n padding-top: 32px;\n }\n &[data-style='expand-up'][data-loading][data-size='s'] .ladda-spinner,\n &[data-style='expand-up'][data-loading][data-size='xs'] .ladda-spinner {\n top: 4px;\n }\n &[data-style='expand-down'] {\n overflow: hidden;\n }\n &[data-style='expand-down'] .ladda-spinner {\n top: 62px;\n left: 50%;\n margin-left: 0;\n }\n &[data-style='expand-down'][data-size='s'] .ladda-spinner,\n &[data-style='expand-down'][data-size='xs'] .ladda-spinner {\n top: 40px;\n }\n &[data-style='expand-down'][data-loading] {\n padding-bottom: 54px;\n }\n &[data-style='expand-down'][data-loading] .ladda-spinner {\n opacity: 1;\n }\n &[data-style='expand-down'][data-loading][data-size='s'],\n &[data-style='expand-down'][data-loading][data-size='xs'] {\n padding-bottom: 32px;\n }\n &[data-style='slide-left'] {\n overflow: hidden;\n }\n &[data-style='slide-left'] .ladda-label {\n position: relative;\n }\n &[data-style='slide-left'] .ladda-spinner {\n left: 100%;\n margin-left: 0;\n }\n &[data-style='slide-left'][data-loading] .ladda-label {\n opacity: 0;\n left: -100%;\n }\n &[data-style='slide-left'][data-loading] .ladda-spinner {\n opacity: 1;\n left: 50%;\n }\n &[data-style='slide-right'] {\n overflow: hidden;\n }\n &[data-style='slide-right'] .ladda-label {\n position: relative;\n }\n &[data-style='slide-right'] .ladda-spinner {\n right: 100%;\n margin-left: 0;\n left: 16px;\n }\n [dir='rtl'] &[data-style='slide-right'] .ladda-spinner {\n right: auto;\n }\n &[data-style='slide-right'][data-loading] .ladda-label {\n opacity: 0;\n left: 100%;\n }\n &[data-style='slide-right'][data-loading] .ladda-spinner {\n opacity: 1;\n left: 50%;\n }\n &[data-style='slide-up'] {\n overflow: hidden;\n }\n &[data-style='slide-up'] .ladda-label {\n position: relative;\n }\n &[data-style='slide-up'] .ladda-spinner {\n left: 50%;\n margin-left: 0;\n margin-top: 1em;\n }\n &[data-style='slide-up'][data-loading] .ladda-label {\n opacity: 0;\n top: -1em;\n }\n &[data-style='slide-up'][data-loading] .ladda-spinner {\n opacity: 1;\n margin-top: 0;\n }\n &[data-style='slide-down'] {\n overflow: hidden;\n }\n &[data-style='slide-down'] .ladda-label {\n position: relative;\n }\n &[data-style='slide-down'] .ladda-spinner {\n left: 50%;\n margin-left: 0;\n margin-top: -2em;\n }\n &[data-style='slide-down'][data-loading] .ladda-label {\n opacity: 0;\n top: 1em;\n }\n &[data-style='slide-down'][data-loading] .ladda-spinner {\n opacity: 1;\n margin-top: 0;\n }\n &[data-style='zoom-out'] {\n overflow: hidden;\n }\n &[data-style='zoom-out'] .ladda-spinner {\n left: 50%;\n margin-left: 32px;\n transform: scale(2.5);\n }\n &[data-style='zoom-out'] .ladda-label {\n position: relative;\n display: inline-block;\n }\n &[data-style='zoom-out'][data-loading] .ladda-label {\n opacity: 0;\n transform: scale(0.5);\n }\n &[data-style='zoom-out'][data-loading] .ladda-spinner {\n opacity: 1;\n margin-left: 0;\n transform: none;\n }\n &[data-style='zoom-in'] {\n overflow: hidden;\n }\n &[data-style='zoom-in'] .ladda-spinner {\n left: 50%;\n margin-left: -16px;\n transform: scale(0.2);\n }\n &[data-style='zoom-in'] .ladda-label {\n position: relative;\n display: inline-block;\n }\n &[data-style='zoom-in'][data-loading] .ladda-label {\n opacity: 0;\n transform: scale(2.2);\n }\n &[data-style='zoom-in'][data-loading] .ladda-spinner {\n opacity: 1;\n margin-left: 0;\n transform: none;\n }\n &[data-style='contract'] {\n overflow: hidden;\n width: 100px;\n }\n &[data-style='contract'] .ladda-spinner {\n left: 50%;\n margin-left: 0;\n }\n &[data-style='contract'][data-loading] {\n border-radius: 50%;\n width: 52px;\n }\n &[data-style='contract'][data-loading] .ladda-label {\n opacity: 0;\n }\n &[data-style='contract'][data-loading] .ladda-spinner {\n opacity: 1;\n }\n &[data-style='contract-overlay'] {\n overflow: hidden;\n width: 100px;\n box-shadow: 0px 0px 0px 2000px rgba(0, 0, 0, 0);\n }\n &[data-style='contract-overlay'] .ladda-spinner {\n left: 50%;\n margin-left: 0;\n }\n &[data-style='contract-overlay'][data-loading] {\n border-radius: 50%;\n width: 52px;\n box-shadow: 0px 0px 0px 2000px rgba(0, 0, 0, 0.8);\n }\n &[data-style='contract-overlay'][data-loading] .ladda-label {\n opacity: 0;\n }\n &[data-style='contract-overlay'][data-loading] .ladda-spinner {\n opacity: 1;\n }\n [dir='rtl'] .ladda-spinner > div {\n left: 25% !important;\n }\n"], ["\n ", "\n\n /*!\n * Ladda\n * http://lab.hakim.se/ladda\n * MIT licensed\n *\n * Copyright (C) 2018 Hakim El Hattab, http://hakim.se\n */\n\n position: relative;\n\n .ladda-spinner {\n position: absolute;\n z-index: 2;\n display: inline-block;\n width: 32px;\n top: 50%;\n margin-top: 0;\n opacity: 0;\n pointer-events: none;\n }\n .ladda-label {\n position: relative;\n z-index: 3;\n }\n .ladda-progress {\n position: absolute;\n width: 0;\n height: 100%;\n left: 0;\n top: 0;\n background: rgba(0, 0, 0, 0.2);\n display: none;\n transition: 0.1s linear all !important;\n }\n &[data-loading] .ladda-progress {\n display: block;\n }\n\n transition: 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important;\n\n .ladda-spinner,\n .ladda-label {\n transition: 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important;\n }\n &[data-style='zoom-in'],\n &[data-style='zoom-in'] .ladda-spinner,\n &[data-style='zoom-in'] .ladda-label,\n &[data-style='zoom-out'],\n &[data-style='zoom-out'] .ladda-spinner,\n &[data-style='zoom-out'] .ladda-label {\n transition: 0.3s ease all !important;\n }\n &[data-style='expand-right'] .ladda-spinner {\n right: -6px;\n }\n &[data-style='expand-right'][data-size='s'] .ladda-spinner,\n &[data-style='expand-right'][data-size='xs'] .ladda-spinner {\n right: -12px;\n }\n &[data-style='expand-right'][data-loading] {\n padding-right: 56px;\n }\n &[data-style='expand-right'][data-loading] .ladda-spinner {\n opacity: 1;\n }\n &[data-style='expand-right'][data-loading][data-size='s'],\n &[data-style='expand-right'][data-loading][data-size='xs'] {\n padding-right: 40px;\n }\n &[data-style='expand-left'] .ladda-spinner {\n left: 26px;\n }\n &[data-style='expand-left'][data-size='s'] .ladda-spinner,\n &[data-style='expand-left'][data-size='xs'] .ladda-spinner {\n left: 4px;\n }\n &[data-style='expand-left'][data-loading] {\n padding-left: 56px;\n }\n &[data-style='expand-left'][data-loading] .ladda-spinner {\n opacity: 1;\n }\n &[data-style='expand-left'][data-loading][data-size='s'],\n &[data-style='expand-left'][data-loading][data-size='xs'] {\n padding-left: 40px;\n }\n &[data-style='expand-up'] {\n overflow: hidden;\n }\n &[data-style='expand-up'] .ladda-spinner {\n top: -32px;\n left: 50%;\n margin-left: 0;\n }\n &[data-style='expand-up'][data-loading] {\n padding-top: 54px;\n }\n &[data-style='expand-up'][data-loading] .ladda-spinner {\n opacity: 1;\n top: 26px;\n margin-top: 0;\n }\n &[data-style='expand-up'][data-loading][data-size='s'],\n &[data-style='expand-up'][data-loading][data-size='xs'] {\n padding-top: 32px;\n }\n &[data-style='expand-up'][data-loading][data-size='s'] .ladda-spinner,\n &[data-style='expand-up'][data-loading][data-size='xs'] .ladda-spinner {\n top: 4px;\n }\n &[data-style='expand-down'] {\n overflow: hidden;\n }\n &[data-style='expand-down'] .ladda-spinner {\n top: 62px;\n left: 50%;\n margin-left: 0;\n }\n &[data-style='expand-down'][data-size='s'] .ladda-spinner,\n &[data-style='expand-down'][data-size='xs'] .ladda-spinner {\n top: 40px;\n }\n &[data-style='expand-down'][data-loading] {\n padding-bottom: 54px;\n }\n &[data-style='expand-down'][data-loading] .ladda-spinner {\n opacity: 1;\n }\n &[data-style='expand-down'][data-loading][data-size='s'],\n &[data-style='expand-down'][data-loading][data-size='xs'] {\n padding-bottom: 32px;\n }\n &[data-style='slide-left'] {\n overflow: hidden;\n }\n &[data-style='slide-left'] .ladda-label {\n position: relative;\n }\n &[data-style='slide-left'] .ladda-spinner {\n left: 100%;\n margin-left: 0;\n }\n &[data-style='slide-left'][data-loading] .ladda-label {\n opacity: 0;\n left: -100%;\n }\n &[data-style='slide-left'][data-loading] .ladda-spinner {\n opacity: 1;\n left: 50%;\n }\n &[data-style='slide-right'] {\n overflow: hidden;\n }\n &[data-style='slide-right'] .ladda-label {\n position: relative;\n }\n &[data-style='slide-right'] .ladda-spinner {\n right: 100%;\n margin-left: 0;\n left: 16px;\n }\n [dir='rtl'] &[data-style='slide-right'] .ladda-spinner {\n right: auto;\n }\n &[data-style='slide-right'][data-loading] .ladda-label {\n opacity: 0;\n left: 100%;\n }\n &[data-style='slide-right'][data-loading] .ladda-spinner {\n opacity: 1;\n left: 50%;\n }\n &[data-style='slide-up'] {\n overflow: hidden;\n }\n &[data-style='slide-up'] .ladda-label {\n position: relative;\n }\n &[data-style='slide-up'] .ladda-spinner {\n left: 50%;\n margin-left: 0;\n margin-top: 1em;\n }\n &[data-style='slide-up'][data-loading] .ladda-label {\n opacity: 0;\n top: -1em;\n }\n &[data-style='slide-up'][data-loading] .ladda-spinner {\n opacity: 1;\n margin-top: 0;\n }\n &[data-style='slide-down'] {\n overflow: hidden;\n }\n &[data-style='slide-down'] .ladda-label {\n position: relative;\n }\n &[data-style='slide-down'] .ladda-spinner {\n left: 50%;\n margin-left: 0;\n margin-top: -2em;\n }\n &[data-style='slide-down'][data-loading] .ladda-label {\n opacity: 0;\n top: 1em;\n }\n &[data-style='slide-down'][data-loading] .ladda-spinner {\n opacity: 1;\n margin-top: 0;\n }\n &[data-style='zoom-out'] {\n overflow: hidden;\n }\n &[data-style='zoom-out'] .ladda-spinner {\n left: 50%;\n margin-left: 32px;\n transform: scale(2.5);\n }\n &[data-style='zoom-out'] .ladda-label {\n position: relative;\n display: inline-block;\n }\n &[data-style='zoom-out'][data-loading] .ladda-label {\n opacity: 0;\n transform: scale(0.5);\n }\n &[data-style='zoom-out'][data-loading] .ladda-spinner {\n opacity: 1;\n margin-left: 0;\n transform: none;\n }\n &[data-style='zoom-in'] {\n overflow: hidden;\n }\n &[data-style='zoom-in'] .ladda-spinner {\n left: 50%;\n margin-left: -16px;\n transform: scale(0.2);\n }\n &[data-style='zoom-in'] .ladda-label {\n position: relative;\n display: inline-block;\n }\n &[data-style='zoom-in'][data-loading] .ladda-label {\n opacity: 0;\n transform: scale(2.2);\n }\n &[data-style='zoom-in'][data-loading] .ladda-spinner {\n opacity: 1;\n margin-left: 0;\n transform: none;\n }\n &[data-style='contract'] {\n overflow: hidden;\n width: 100px;\n }\n &[data-style='contract'] .ladda-spinner {\n left: 50%;\n margin-left: 0;\n }\n &[data-style='contract'][data-loading] {\n border-radius: 50%;\n width: 52px;\n }\n &[data-style='contract'][data-loading] .ladda-label {\n opacity: 0;\n }\n &[data-style='contract'][data-loading] .ladda-spinner {\n opacity: 1;\n }\n &[data-style='contract-overlay'] {\n overflow: hidden;\n width: 100px;\n box-shadow: 0px 0px 0px 2000px rgba(0, 0, 0, 0);\n }\n &[data-style='contract-overlay'] .ladda-spinner {\n left: 50%;\n margin-left: 0;\n }\n &[data-style='contract-overlay'][data-loading] {\n border-radius: 50%;\n width: 52px;\n box-shadow: 0px 0px 0px 2000px rgba(0, 0, 0, 0.8);\n }\n &[data-style='contract-overlay'][data-loading] .ladda-label {\n opacity: 0;\n }\n &[data-style='contract-overlay'][data-loading] .ladda-spinner {\n opacity: 1;\n }\n [dir='rtl'] .ladda-spinner > div {\n left: 25% !important;\n }\n"])), function (props) {
466
+ var StyledButton = styled.button(templateObject_1$K || (templateObject_1$K = __makeTemplateObject(["\n ", "\n\n /*!\n * Ladda\n * http://lab.hakim.se/ladda\n * MIT licensed\n *\n * Copyright (C) 2018 Hakim El Hattab, http://hakim.se\n */\n\n position: relative;\n\n .ladda-spinner {\n position: absolute;\n z-index: 2;\n display: inline-block;\n width: 32px;\n top: 50%;\n margin-top: 0;\n opacity: 0;\n pointer-events: none;\n }\n .ladda-label {\n position: relative;\n z-index: 3;\n }\n .ladda-progress {\n position: absolute;\n width: 0;\n height: 100%;\n left: 0;\n top: 0;\n background: rgba(0, 0, 0, 0.2);\n display: none;\n transition: 0.1s linear all !important;\n }\n &[data-loading] .ladda-progress {\n display: block;\n }\n\n transition: 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important;\n\n .ladda-spinner,\n .ladda-label {\n transition: 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important;\n }\n &[data-style='zoom-in'],\n &[data-style='zoom-in'] .ladda-spinner,\n &[data-style='zoom-in'] .ladda-label,\n &[data-style='zoom-out'],\n &[data-style='zoom-out'] .ladda-spinner,\n &[data-style='zoom-out'] .ladda-label {\n transition: 0.3s ease all !important;\n }\n &[data-style='expand-right'] .ladda-spinner {\n right: -6px;\n }\n &[data-style='expand-right'][data-size='s'] .ladda-spinner,\n &[data-style='expand-right'][data-size='xs'] .ladda-spinner {\n right: -12px;\n }\n &[data-style='expand-right'][data-loading] {\n padding-right: 56px;\n }\n &[data-style='expand-right'][data-loading] .ladda-spinner {\n opacity: 1;\n }\n &[data-style='expand-right'][data-loading][data-size='s'],\n &[data-style='expand-right'][data-loading][data-size='xs'] {\n padding-right: 40px;\n }\n &[data-style='expand-left'] .ladda-spinner {\n left: 26px;\n }\n &[data-style='expand-left'][data-size='s'] .ladda-spinner,\n &[data-style='expand-left'][data-size='xs'] .ladda-spinner {\n left: 4px;\n }\n &[data-style='expand-left'][data-loading] {\n padding-left: 56px;\n }\n &[data-style='expand-left'][data-loading] .ladda-spinner {\n opacity: 1;\n }\n &[data-style='expand-left'][data-loading][data-size='s'],\n &[data-style='expand-left'][data-loading][data-size='xs'] {\n padding-left: 40px;\n }\n &[data-style='expand-up'] {\n overflow: hidden;\n }\n &[data-style='expand-up'] .ladda-spinner {\n top: -32px;\n left: 50%;\n margin-left: 0;\n }\n &[data-style='expand-up'][data-loading] {\n padding-top: 54px;\n }\n &[data-style='expand-up'][data-loading] .ladda-spinner {\n opacity: 1;\n top: 26px;\n margin-top: 0;\n }\n &[data-style='expand-up'][data-loading][data-size='s'],\n &[data-style='expand-up'][data-loading][data-size='xs'] {\n padding-top: 32px;\n }\n &[data-style='expand-up'][data-loading][data-size='s'] .ladda-spinner,\n &[data-style='expand-up'][data-loading][data-size='xs'] .ladda-spinner {\n top: 4px;\n }\n &[data-style='expand-down'] {\n overflow: hidden;\n }\n &[data-style='expand-down'] .ladda-spinner {\n top: 62px;\n left: 50%;\n margin-left: 0;\n }\n &[data-style='expand-down'][data-size='s'] .ladda-spinner,\n &[data-style='expand-down'][data-size='xs'] .ladda-spinner {\n top: 40px;\n }\n &[data-style='expand-down'][data-loading] {\n padding-bottom: 54px;\n }\n &[data-style='expand-down'][data-loading] .ladda-spinner {\n opacity: 1;\n }\n &[data-style='expand-down'][data-loading][data-size='s'],\n &[data-style='expand-down'][data-loading][data-size='xs'] {\n padding-bottom: 32px;\n }\n &[data-style='slide-left'] {\n overflow: hidden;\n }\n &[data-style='slide-left'] .ladda-label {\n position: relative;\n }\n &[data-style='slide-left'] .ladda-spinner {\n left: 100%;\n margin-left: 0;\n }\n &[data-style='slide-left'][data-loading] .ladda-label {\n opacity: 0;\n left: -100%;\n }\n &[data-style='slide-left'][data-loading] .ladda-spinner {\n opacity: 1;\n left: 50%;\n }\n &[data-style='slide-right'] {\n overflow: hidden;\n }\n &[data-style='slide-right'] .ladda-label {\n position: relative;\n }\n &[data-style='slide-right'] .ladda-spinner {\n right: 100%;\n margin-left: 0;\n left: 16px;\n }\n [dir='rtl'] &[data-style='slide-right'] .ladda-spinner {\n right: auto;\n }\n &[data-style='slide-right'][data-loading] .ladda-label {\n opacity: 0;\n left: 100%;\n }\n &[data-style='slide-right'][data-loading] .ladda-spinner {\n opacity: 1;\n left: 50%;\n }\n &[data-style='slide-up'] {\n overflow: hidden;\n }\n &[data-style='slide-up'] .ladda-label {\n position: relative;\n }\n &[data-style='slide-up'] .ladda-spinner {\n left: 50%;\n margin-left: 0;\n margin-top: 1em;\n }\n &[data-style='slide-up'][data-loading] .ladda-label {\n opacity: 0;\n top: -1em;\n }\n &[data-style='slide-up'][data-loading] .ladda-spinner {\n opacity: 1;\n margin-top: 0;\n }\n &[data-style='slide-down'] {\n overflow: hidden;\n }\n &[data-style='slide-down'] .ladda-label {\n position: relative;\n }\n &[data-style='slide-down'] .ladda-spinner {\n left: 50%;\n margin-left: 0;\n margin-top: -2em;\n }\n &[data-style='slide-down'][data-loading] .ladda-label {\n opacity: 0;\n top: 1em;\n }\n &[data-style='slide-down'][data-loading] .ladda-spinner {\n opacity: 1;\n margin-top: 0;\n }\n &[data-style='zoom-out'] {\n overflow: hidden;\n }\n &[data-style='zoom-out'] .ladda-spinner {\n left: 50%;\n margin-left: 32px;\n transform: scale(2.5);\n }\n &[data-style='zoom-out'] .ladda-label {\n position: relative;\n display: inline-block;\n }\n &[data-style='zoom-out'][data-loading] .ladda-label {\n opacity: 0;\n transform: scale(0.5);\n }\n &[data-style='zoom-out'][data-loading] .ladda-spinner {\n opacity: 1;\n margin-left: 0;\n transform: none;\n }\n &[data-style='zoom-in'] {\n overflow: hidden;\n }\n &[data-style='zoom-in'] .ladda-spinner {\n left: 50%;\n margin-left: -16px;\n transform: scale(0.2);\n }\n &[data-style='zoom-in'] .ladda-label {\n position: relative;\n display: inline-block;\n }\n &[data-style='zoom-in'][data-loading] .ladda-label {\n opacity: 0;\n transform: scale(2.2);\n }\n &[data-style='zoom-in'][data-loading] .ladda-spinner {\n opacity: 1;\n margin-left: 0;\n transform: none;\n }\n &[data-style='contract'] {\n overflow: hidden;\n width: 100px;\n }\n &[data-style='contract'] .ladda-spinner {\n left: 50%;\n margin-left: 0;\n }\n &[data-style='contract'][data-loading] {\n border-radius: 50%;\n width: 52px;\n }\n &[data-style='contract'][data-loading] .ladda-label {\n opacity: 0;\n }\n &[data-style='contract'][data-loading] .ladda-spinner {\n opacity: 1;\n }\n &[data-style='contract-overlay'] {\n overflow: hidden;\n width: 100px;\n box-shadow: 0px 0px 0px 2000px rgba(0, 0, 0, 0);\n }\n &[data-style='contract-overlay'] .ladda-spinner {\n left: 50%;\n margin-left: 0;\n }\n &[data-style='contract-overlay'][data-loading] {\n border-radius: 50%;\n width: 52px;\n box-shadow: 0px 0px 0px 2000px rgba(0, 0, 0, 0.8);\n }\n &[data-style='contract-overlay'][data-loading] .ladda-label {\n opacity: 0;\n }\n &[data-style='contract-overlay'][data-loading] .ladda-spinner {\n opacity: 1;\n }\n [dir='rtl'] .ladda-spinner > div {\n left: 25% !important;\n }\n"], ["\n ", "\n\n /*!\n * Ladda\n * http://lab.hakim.se/ladda\n * MIT licensed\n *\n * Copyright (C) 2018 Hakim El Hattab, http://hakim.se\n */\n\n position: relative;\n\n .ladda-spinner {\n position: absolute;\n z-index: 2;\n display: inline-block;\n width: 32px;\n top: 50%;\n margin-top: 0;\n opacity: 0;\n pointer-events: none;\n }\n .ladda-label {\n position: relative;\n z-index: 3;\n }\n .ladda-progress {\n position: absolute;\n width: 0;\n height: 100%;\n left: 0;\n top: 0;\n background: rgba(0, 0, 0, 0.2);\n display: none;\n transition: 0.1s linear all !important;\n }\n &[data-loading] .ladda-progress {\n display: block;\n }\n\n transition: 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important;\n\n .ladda-spinner,\n .ladda-label {\n transition: 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important;\n }\n &[data-style='zoom-in'],\n &[data-style='zoom-in'] .ladda-spinner,\n &[data-style='zoom-in'] .ladda-label,\n &[data-style='zoom-out'],\n &[data-style='zoom-out'] .ladda-spinner,\n &[data-style='zoom-out'] .ladda-label {\n transition: 0.3s ease all !important;\n }\n &[data-style='expand-right'] .ladda-spinner {\n right: -6px;\n }\n &[data-style='expand-right'][data-size='s'] .ladda-spinner,\n &[data-style='expand-right'][data-size='xs'] .ladda-spinner {\n right: -12px;\n }\n &[data-style='expand-right'][data-loading] {\n padding-right: 56px;\n }\n &[data-style='expand-right'][data-loading] .ladda-spinner {\n opacity: 1;\n }\n &[data-style='expand-right'][data-loading][data-size='s'],\n &[data-style='expand-right'][data-loading][data-size='xs'] {\n padding-right: 40px;\n }\n &[data-style='expand-left'] .ladda-spinner {\n left: 26px;\n }\n &[data-style='expand-left'][data-size='s'] .ladda-spinner,\n &[data-style='expand-left'][data-size='xs'] .ladda-spinner {\n left: 4px;\n }\n &[data-style='expand-left'][data-loading] {\n padding-left: 56px;\n }\n &[data-style='expand-left'][data-loading] .ladda-spinner {\n opacity: 1;\n }\n &[data-style='expand-left'][data-loading][data-size='s'],\n &[data-style='expand-left'][data-loading][data-size='xs'] {\n padding-left: 40px;\n }\n &[data-style='expand-up'] {\n overflow: hidden;\n }\n &[data-style='expand-up'] .ladda-spinner {\n top: -32px;\n left: 50%;\n margin-left: 0;\n }\n &[data-style='expand-up'][data-loading] {\n padding-top: 54px;\n }\n &[data-style='expand-up'][data-loading] .ladda-spinner {\n opacity: 1;\n top: 26px;\n margin-top: 0;\n }\n &[data-style='expand-up'][data-loading][data-size='s'],\n &[data-style='expand-up'][data-loading][data-size='xs'] {\n padding-top: 32px;\n }\n &[data-style='expand-up'][data-loading][data-size='s'] .ladda-spinner,\n &[data-style='expand-up'][data-loading][data-size='xs'] .ladda-spinner {\n top: 4px;\n }\n &[data-style='expand-down'] {\n overflow: hidden;\n }\n &[data-style='expand-down'] .ladda-spinner {\n top: 62px;\n left: 50%;\n margin-left: 0;\n }\n &[data-style='expand-down'][data-size='s'] .ladda-spinner,\n &[data-style='expand-down'][data-size='xs'] .ladda-spinner {\n top: 40px;\n }\n &[data-style='expand-down'][data-loading] {\n padding-bottom: 54px;\n }\n &[data-style='expand-down'][data-loading] .ladda-spinner {\n opacity: 1;\n }\n &[data-style='expand-down'][data-loading][data-size='s'],\n &[data-style='expand-down'][data-loading][data-size='xs'] {\n padding-bottom: 32px;\n }\n &[data-style='slide-left'] {\n overflow: hidden;\n }\n &[data-style='slide-left'] .ladda-label {\n position: relative;\n }\n &[data-style='slide-left'] .ladda-spinner {\n left: 100%;\n margin-left: 0;\n }\n &[data-style='slide-left'][data-loading] .ladda-label {\n opacity: 0;\n left: -100%;\n }\n &[data-style='slide-left'][data-loading] .ladda-spinner {\n opacity: 1;\n left: 50%;\n }\n &[data-style='slide-right'] {\n overflow: hidden;\n }\n &[data-style='slide-right'] .ladda-label {\n position: relative;\n }\n &[data-style='slide-right'] .ladda-spinner {\n right: 100%;\n margin-left: 0;\n left: 16px;\n }\n [dir='rtl'] &[data-style='slide-right'] .ladda-spinner {\n right: auto;\n }\n &[data-style='slide-right'][data-loading] .ladda-label {\n opacity: 0;\n left: 100%;\n }\n &[data-style='slide-right'][data-loading] .ladda-spinner {\n opacity: 1;\n left: 50%;\n }\n &[data-style='slide-up'] {\n overflow: hidden;\n }\n &[data-style='slide-up'] .ladda-label {\n position: relative;\n }\n &[data-style='slide-up'] .ladda-spinner {\n left: 50%;\n margin-left: 0;\n margin-top: 1em;\n }\n &[data-style='slide-up'][data-loading] .ladda-label {\n opacity: 0;\n top: -1em;\n }\n &[data-style='slide-up'][data-loading] .ladda-spinner {\n opacity: 1;\n margin-top: 0;\n }\n &[data-style='slide-down'] {\n overflow: hidden;\n }\n &[data-style='slide-down'] .ladda-label {\n position: relative;\n }\n &[data-style='slide-down'] .ladda-spinner {\n left: 50%;\n margin-left: 0;\n margin-top: -2em;\n }\n &[data-style='slide-down'][data-loading] .ladda-label {\n opacity: 0;\n top: 1em;\n }\n &[data-style='slide-down'][data-loading] .ladda-spinner {\n opacity: 1;\n margin-top: 0;\n }\n &[data-style='zoom-out'] {\n overflow: hidden;\n }\n &[data-style='zoom-out'] .ladda-spinner {\n left: 50%;\n margin-left: 32px;\n transform: scale(2.5);\n }\n &[data-style='zoom-out'] .ladda-label {\n position: relative;\n display: inline-block;\n }\n &[data-style='zoom-out'][data-loading] .ladda-label {\n opacity: 0;\n transform: scale(0.5);\n }\n &[data-style='zoom-out'][data-loading] .ladda-spinner {\n opacity: 1;\n margin-left: 0;\n transform: none;\n }\n &[data-style='zoom-in'] {\n overflow: hidden;\n }\n &[data-style='zoom-in'] .ladda-spinner {\n left: 50%;\n margin-left: -16px;\n transform: scale(0.2);\n }\n &[data-style='zoom-in'] .ladda-label {\n position: relative;\n display: inline-block;\n }\n &[data-style='zoom-in'][data-loading] .ladda-label {\n opacity: 0;\n transform: scale(2.2);\n }\n &[data-style='zoom-in'][data-loading] .ladda-spinner {\n opacity: 1;\n margin-left: 0;\n transform: none;\n }\n &[data-style='contract'] {\n overflow: hidden;\n width: 100px;\n }\n &[data-style='contract'] .ladda-spinner {\n left: 50%;\n margin-left: 0;\n }\n &[data-style='contract'][data-loading] {\n border-radius: 50%;\n width: 52px;\n }\n &[data-style='contract'][data-loading] .ladda-label {\n opacity: 0;\n }\n &[data-style='contract'][data-loading] .ladda-spinner {\n opacity: 1;\n }\n &[data-style='contract-overlay'] {\n overflow: hidden;\n width: 100px;\n box-shadow: 0px 0px 0px 2000px rgba(0, 0, 0, 0);\n }\n &[data-style='contract-overlay'] .ladda-spinner {\n left: 50%;\n margin-left: 0;\n }\n &[data-style='contract-overlay'][data-loading] {\n border-radius: 50%;\n width: 52px;\n box-shadow: 0px 0px 0px 2000px rgba(0, 0, 0, 0.8);\n }\n &[data-style='contract-overlay'][data-loading] .ladda-label {\n opacity: 0;\n }\n &[data-style='contract-overlay'][data-loading] .ladda-spinner {\n opacity: 1;\n }\n [dir='rtl'] .ladda-spinner > div {\n left: 25% !important;\n }\n"])), function (props) {
465
467
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
466
468
  return ((_a = props.theme.buttons) === null || _a === void 0 ? void 0 : _a.style) === 'bootstrap' && "\n border-radius: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n text-transform: none;\n -webkit-appearance: button;\n \n &:not(:disabled),\n &[type='button']:not(:disabled),\n &[type='reset']:not(:disabled),\n &[type='submit']:not(:disabled) {\n cursor: pointer;\n }\n \n &:focus:not(:focus-visible) {\n outline: 0;\n }\n \n --bs-btn-padding-x: 0.75rem;\n --bs-btn-padding-y: 0.375rem;\n --bs-btn-font-family: ;\n --bs-btn-font-size: 1rem;\n --bs-btn-font-weight: 400;\n --bs-btn-line-height: 1.5;\n --bs-btn-color: var(--bs-body-color);\n --bs-btn-bg: transparent;\n --bs-btn-border-width: var(--bs-border-width);\n --bs-btn-border-color: transparent;\n --bs-btn-border-radius: var(--bs-border-radius);\n --bs-btn-hover-border-color: transparent;\n --bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15),\n 0 1px 1px rgba(0, 0, 0, 0.075);\n --bs-btn-disabled-opacity: 0.65;\n --bs-btn-focus-box-shadow: 0 0 0 0.25rem\n rgba(var(--bs-btn-focus-shadow-rgb), 0.5);\n display: inline-block;\n padding: var(--bs-btn-padding-y) var(--bs-btn-padding-x);\n font-family: var(--bs-btn-font-family);\n font-size: var(--bs-btn-font-size);\n font-weight: var(--bs-btn-font-weight);\n line-height: var(--bs-btn-line-height);\n color: var(--bs-btn-color);\n text-align: center;\n text-decoration: none;\n vertical-align: middle;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n border: var(--bs-btn-border-width) solid var(--bs-btn-border-color);\n border-radius: var(--bs-btn-border-radius);\n background-color: var(--bs-btn-bg);\n //transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out,\n // border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n \n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n \n &:hover {\n filter: brightness(1.15);\n }\n \n &:focus-visible {\n color: var(--bs-btn-hover-color);\n background-color: var(--bs-btn-hover-bg);\n border-color: var(--bs-btn-hover-border-color);\n outline: 0;\n box-shadow: var(--bs-btn-focus-box-shadow);\n }\n \n &:disabled,\n &.disabled,\n fieldset:disabled & {\n color: var(--bs-btn-disabled-color);\n pointer-events: none;\n background-color: var(--bs-btn-disabled-bg);\n border-color: var(--bs-btn-disabled-border-color);\n opacity: var(--bs-btn-disabled-opacity);\n }\n \n --bs-btn-color: ".concat((_f = (_b = props.$textColor) !== null && _b !== void 0 ? _b : (_e = (_c = props.theme.buttons) === null || _c === void 0 ? void 0 : _c[(_d = props.$variant) !== null && _d !== void 0 ? _d : 'primary']) === null || _e === void 0 ? void 0 : _e.textColor) !== null && _f !== void 0 ? _f : '#fff', ";\n --bs-btn-bg: ").concat((_l = (_g = props.$backgroundColor) !== null && _g !== void 0 ? _g : (_k = (_h = props.theme.buttons) === null || _h === void 0 ? void 0 : _h[(_j = props.$variant) !== null && _j !== void 0 ? _j : 'primary']) === null || _k === void 0 ? void 0 : _k.backgroundColor) !== null && _l !== void 0 ? _l : '#0d6efd', ";\n --bs-btn-border-color: var(--bs-btn-bg);\n --bs-btn-focus-shadow-rgb: 49, 132, 253;\n --bs-btn-active-color: #fff;\n --bs-btn-active-bg: #0a58ca;\n --bs-btn-active-border-color: #0a53be;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: ").concat((_q = (_m = props.$disabledTextColor) !== null && _m !== void 0 ? _m : (_p = (_o = props.theme.buttons) === null || _o === void 0 ? void 0 : _o.loading) === null || _p === void 0 ? void 0 : _p.textColor) !== null && _q !== void 0 ? _q : '#fff', ";\n --bs-btn-disabled-bg: ").concat((_u = (_r = props.$disabledBackgroundColor) !== null && _r !== void 0 ? _r : (_t = (_s = props.theme.buttons) === null || _s === void 0 ? void 0 : _s.loading) === null || _t === void 0 ? void 0 : _t.backgroundColor) !== null && _u !== void 0 ? _u : 'gray', ";\n --bs-btn-disabled-border-color: ").concat((_v = props.$disabledBackgroundColor) !== null && _v !== void 0 ? _v : '#0d6efd', ";\n \n --bs-btn-padding-y: 14px;\n --bs-btn-padding-x: 1rem;\n --bs-btn-font-size: 18px;\n --bs-btn-border-radius: 4px;\n ");
467
469
  });
468
- var templateObject_1$I;
470
+ var templateObject_1$K;
469
471
 
470
- var OverlayContainer = styled(PageContainer)(templateObject_1$H || (templateObject_1$H = __makeTemplateObject(["\n background: ", ";\n ", "\n z-index: 10000;\n"], ["\n background: ", ";\n ", "\n z-index: 10000;\n"])), function (props) {
472
+ var OverlayContainer = styled(PageContainer)(templateObject_1$J || (templateObject_1$J = __makeTemplateObject(["\n background: ", ";\n ", "\n z-index: 10000;\n"], ["\n background: ", ";\n ", "\n z-index: 10000;\n"])), function (props) {
471
473
  return props.theme.background ? "".concat(props.theme.background) : "white";
472
474
  }, function (props) {
473
475
  return props.theme.textColor ? "color: ".concat(props.theme.textColor, ";") : "";
474
476
  });
475
- var OverlayInner$2 = styled.div(templateObject_2$y || (templateObject_2$y = __makeTemplateObject(["\n text-align: ", ";\n display: flex;\n flex-direction: column;\n flex-wrap: nowrap;\n max-width: 100dvw;\n max-height: 100dvh;\n width: 100%;\n height: 100%;\n ", "\n"], ["\n text-align: ", ";\n display: flex;\n flex-direction: column;\n flex-wrap: nowrap;\n max-width: 100dvw;\n max-height: 100dvh;\n width: 100%;\n height: 100%;\n ", "\n"])), function (props) {
477
+ var OverlayInner$2 = styled.div(templateObject_2$A || (templateObject_2$A = __makeTemplateObject(["\n text-align: ", ";\n display: flex;\n flex-direction: column;\n flex-wrap: nowrap;\n max-width: 100dvw;\n max-height: 100dvh;\n width: 100%;\n height: 100%;\n ", "\n"], ["\n text-align: ", ";\n display: flex;\n flex-direction: column;\n flex-wrap: nowrap;\n max-width: 100dvw;\n max-height: 100dvh;\n width: 100%;\n height: 100%;\n ", "\n"])), function (props) {
476
478
  var _a;
477
479
  return (_a = props.theme.textAlign) !== null && _a !== void 0 ? _a : 'center';
478
480
  }, function (props) {
479
481
  return props.theme.padding ? "box-sizing: border-box; padding: ".concat(props.theme.padding, ";") : "";
480
482
  });
481
- var OverlayImageContainer = styled.div(templateObject_3$p || (templateObject_3$p = __makeTemplateObject(["\n position: relative;\n display: flex;\n flex-grow: 1;\n padding-bottom: 25px;\n max-width: 100dvw;\n max-height: 100dvh;\n overflow: hidden;\n\n & > img,\n & > svg {\n margin: 0 auto;\n width: max-content;\n max-width: 100%;\n max-height: 100%;\n aspect-ratio: initial;\n object-fit: contain;\n display: block;\n }\n"], ["\n position: relative;\n display: flex;\n flex-grow: 1;\n padding-bottom: 25px;\n max-width: 100dvw;\n max-height: 100dvh;\n overflow: hidden;\n\n & > img,\n & > svg {\n margin: 0 auto;\n width: max-content;\n max-width: 100%;\n max-height: 100%;\n aspect-ratio: initial;\n object-fit: contain;\n display: block;\n }\n"])));
482
- var OverlayImageRow = styled.div(templateObject_4$j || (templateObject_4$j = __makeTemplateObject(["\n display: flex;\n margin: auto;\n\n & > div {\n max-height: calc(100vh - 320px);\n\n & > img {\n width: 100%;\n max-height: 100%;\n height: auto;\n object-fit: contain;\n }\n }\n"], ["\n display: flex;\n margin: auto;\n\n & > div {\n max-height: calc(100vh - 320px);\n\n & > img {\n width: 100%;\n max-height: 100%;\n height: auto;\n object-fit: contain;\n }\n }\n"])));
483
- var GrayOverlayContainer = styled(OverlayContainer)(templateObject_5$b || (templateObject_5$b = __makeTemplateObject(["\n background: #f7f6fb;\n"], ["\n background: #f7f6fb;\n"])));
484
- var ButtonsColumn = styled.div(templateObject_6$8 || (templateObject_6$8 = __makeTemplateObject(["\n display: flex;\n flex-direction: column;\n gap: 15px 0;\n justify-content: center;\n margin-top: 24px;\n"], ["\n display: flex;\n flex-direction: column;\n gap: 15px 0;\n justify-content: center;\n margin-top: 24px;\n"])));
485
- var WideButton = styled(LoaderButton)(templateObject_7$5 || (templateObject_7$5 = __makeTemplateObject(["\n width: 100%;\n border-radius: 30px;\n"], ["\n width: 100%;\n border-radius: 30px;\n"])));
483
+ var OverlayImageContainer = styled.div(templateObject_3$r || (templateObject_3$r = __makeTemplateObject(["\n position: relative;\n display: flex;\n flex-grow: 1;\n padding-bottom: 25px;\n max-width: 100dvw;\n max-height: 100dvh;\n overflow: hidden;\n\n & > img,\n & > svg {\n margin: 0 auto;\n width: max-content;\n max-width: 100%;\n max-height: 100%;\n aspect-ratio: initial;\n object-fit: contain;\n display: block;\n }\n"], ["\n position: relative;\n display: flex;\n flex-grow: 1;\n padding-bottom: 25px;\n max-width: 100dvw;\n max-height: 100dvh;\n overflow: hidden;\n\n & > img,\n & > svg {\n margin: 0 auto;\n width: max-content;\n max-width: 100%;\n max-height: 100%;\n aspect-ratio: initial;\n object-fit: contain;\n display: block;\n }\n"])));
484
+ var OverlayImageRow = styled.div(templateObject_4$l || (templateObject_4$l = __makeTemplateObject(["\n display: flex;\n margin: auto;\n\n & > div {\n max-height: calc(100vh - 320px);\n\n & > img {\n width: 100%;\n max-height: 100%;\n height: auto;\n object-fit: contain;\n }\n }\n"], ["\n display: flex;\n margin: auto;\n\n & > div {\n max-height: calc(100vh - 320px);\n\n & > img {\n width: 100%;\n max-height: 100%;\n height: auto;\n object-fit: contain;\n }\n }\n"])));
485
+ var GrayOverlayContainer = styled(OverlayContainer)(templateObject_5$c || (templateObject_5$c = __makeTemplateObject(["\n background: #f7f6fb;\n"], ["\n background: #f7f6fb;\n"])));
486
+ var ButtonsColumn = styled.div(templateObject_6$9 || (templateObject_6$9 = __makeTemplateObject(["\n display: flex;\n flex-direction: column;\n gap: 15px 0;\n justify-content: center;\n margin-top: 24px;\n"], ["\n display: flex;\n flex-direction: column;\n gap: 15px 0;\n justify-content: center;\n margin-top: 24px;\n"])));
487
+ var WideButton = styled(LoaderButton)(templateObject_7$6 || (templateObject_7$6 = __makeTemplateObject(["\n width: 100%;\n border-radius: 30px;\n"], ["\n width: 100%;\n border-radius: 30px;\n"])));
486
488
  var WideBorderButton = styled(WideButton)(templateObject_8$3 || (templateObject_8$3 = __makeTemplateObject(["\n color: black;\n background: white;\n border: 1px solid var(--idm-color-secondary-500);\n box-sizing: border-box;\n"], ["\n color: black;\n background: white;\n border: 1px solid var(--idm-color-secondary-500);\n box-sizing: border-box;\n"])));
487
- var templateObject_1$H, templateObject_2$y, templateObject_3$p, templateObject_4$j, templateObject_5$b, templateObject_6$8, templateObject_7$5, templateObject_8$3;
489
+ var templateObject_1$J, templateObject_2$A, templateObject_3$r, templateObject_4$l, templateObject_5$c, templateObject_6$9, templateObject_7$6, templateObject_8$3;
488
490
 
489
491
  var GeolocationAccessDeniedOverlay = function GeolocationAccessDeniedOverlay(_a) {
490
492
  var accessBlockedImageUrl = _a.accessBlockedImageUrl;
@@ -731,13 +733,13 @@ var SessionValidationErrorOverlay = function SessionValidationErrorOverlay(_a) {
731
733
  }, retryText)))));
732
734
  };
733
735
 
734
- var wavesAnimation = keyframes(templateObject_1$G || (templateObject_1$G = __makeTemplateObject(["\n 0% {\n opacity: 0;\n transform: scale3d(1, 1, 1);\n }\n 80% {\n opacity: 1;\n }\n 100% {\n transform: scale3d(2, 2, 1);\n opacity: 0;\n }\n"], ["\n 0% {\n opacity: 0;\n transform: scale3d(1, 1, 1);\n }\n 80% {\n opacity: 1;\n }\n 100% {\n transform: scale3d(2, 2, 1);\n opacity: 0;\n }\n"])));
735
- var progressBarAnimation = keyframes(templateObject_2$x || (templateObject_2$x = __makeTemplateObject(["\n 0% {\n width: 0;\n }\n 100% {\n width: 100%;\n }\n"], ["\n 0% {\n width: 0;\n }\n 100% {\n width: 100%;\n }\n"])));
736
- var dualRingSpinnerAnimation = keyframes(templateObject_3$o || (templateObject_3$o = __makeTemplateObject(["\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n"], ["\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n"])));
737
- var progressBorderAnimation = keyframes(templateObject_4$i || (templateObject_4$i = __makeTemplateObject(["\n to {\n stroke-dashoffset: 0;\n }\n"], ["\n to {\n stroke-dashoffset: 0;\n }\n"])));
738
- var templateObject_1$G, templateObject_2$x, templateObject_3$o, templateObject_4$i;
736
+ var wavesAnimation = keyframes(templateObject_1$I || (templateObject_1$I = __makeTemplateObject(["\n 0% {\n opacity: 0;\n transform: scale3d(1, 1, 1);\n }\n 80% {\n opacity: 1;\n }\n 100% {\n transform: scale3d(2, 2, 1);\n opacity: 0;\n }\n"], ["\n 0% {\n opacity: 0;\n transform: scale3d(1, 1, 1);\n }\n 80% {\n opacity: 1;\n }\n 100% {\n transform: scale3d(2, 2, 1);\n opacity: 0;\n }\n"])));
737
+ var progressBarAnimation = keyframes(templateObject_2$z || (templateObject_2$z = __makeTemplateObject(["\n 0% {\n width: 0;\n }\n 100% {\n width: 100%;\n }\n"], ["\n 0% {\n width: 0;\n }\n 100% {\n width: 100%;\n }\n"])));
738
+ var dualRingSpinnerAnimation = keyframes(templateObject_3$q || (templateObject_3$q = __makeTemplateObject(["\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n"], ["\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n"])));
739
+ var progressBorderAnimation = keyframes(templateObject_4$k || (templateObject_4$k = __makeTemplateObject(["\n to {\n stroke-dashoffset: 0;\n }\n"], ["\n to {\n stroke-dashoffset: 0;\n }\n"])));
740
+ var templateObject_1$I, templateObject_2$z, templateObject_3$q, templateObject_4$k;
739
741
 
740
- var Spinner = styled.div(templateObject_1$F || (templateObject_1$F = __makeTemplateObject(["\n display: inline-block;\n width: ", "px;\n height: ", "px;\n margin: auto;\n\n &:after {\n content: ' ';\n display: block;\n width: ", "px;\n height: ", "px;\n margin: 8px;\n border-radius: 50%;\n border: ", "px solid\n ", ";\n border-color: ", " transparent\n ", " transparent;\n animation: ", " 1.2s linear infinite;\n box-sizing: content-box;\n }\n"], ["\n display: inline-block;\n width: ", "px;\n height: ", "px;\n margin: auto;\n\n &:after {\n content: ' ';\n display: block;\n width: ", "px;\n height: ", "px;\n margin: 8px;\n border-radius: 50%;\n border: ", "px solid\n ", ";\n border-color: ", " transparent\n ", " transparent;\n animation: ", " 1.2s linear infinite;\n box-sizing: content-box;\n }\n"])), function (_a) {
742
+ var Spinner = styled.div(templateObject_1$H || (templateObject_1$H = __makeTemplateObject(["\n display: inline-block;\n width: ", "px;\n height: ", "px;\n margin: auto;\n\n &:after {\n content: ' ';\n display: block;\n width: ", "px;\n height: ", "px;\n margin: 8px;\n border-radius: 50%;\n border: ", "px solid\n ", ";\n border-color: ", " transparent\n ", " transparent;\n animation: ", " 1.2s linear infinite;\n box-sizing: content-box;\n }\n"], ["\n display: inline-block;\n width: ", "px;\n height: ", "px;\n margin: auto;\n\n &:after {\n content: ' ';\n display: block;\n width: ", "px;\n height: ", "px;\n margin: 8px;\n border-radius: 50%;\n border: ", "px solid\n ", ";\n border-color: ", " transparent\n ", " transparent;\n animation: ", " 1.2s linear infinite;\n box-sizing: content-box;\n }\n"])), function (_a) {
741
743
  var $size = _a.$size;
742
744
  return $size !== null && $size !== void 0 ? $size : 80;
743
745
  }, function (_a) {
@@ -762,7 +764,7 @@ var Spinner = styled.div(templateObject_1$F || (templateObject_1$F = __makeTempl
762
764
  var $color = _a.$color;
763
765
  return $color !== null && $color !== void 0 ? $color : '#888';
764
766
  }, dualRingSpinnerAnimation);
765
- var templateObject_1$F;
767
+ var templateObject_1$H;
766
768
 
767
769
  var defaultAuthUrl = 'https://portal-api.idmission.com';
768
770
  var allowedAuthUrls = ['https://portal-api.idmission.com', 'https://portal-api-uat.idmission.com', 'https://portal-api-demo.idmission.com', 'https://portal-api-dev.idmission.com', 'http://localhost:10000'];
@@ -770,11 +772,11 @@ function setDefaultAuthUrl(url) {
770
772
  if (!allowedAuthUrls.includes(url)) throw new Error('invalid auth url');
771
773
  defaultAuthUrl = url;
772
774
  }
773
- var initialState$5 = {
775
+ var initialState$6 = {
774
776
  authUrl: defaultAuthUrl,
775
777
  sessionCheckState: 'READY'
776
778
  };
777
- var AuthStateContext = /*#__PURE__*/createContext(initialState$5);
779
+ var AuthStateContext = /*#__PURE__*/createContext(initialState$6);
778
780
  var AuthDispatchContext = /*#__PURE__*/createContext(function () {});
779
781
  var reducer$4 = function reducer(state, action) {
780
782
  switch (action.type) {
@@ -806,7 +808,7 @@ function useAuthReducer(authUrl, sessionId) {
806
808
  if (authUrl === void 0) {
807
809
  authUrl = defaultAuthUrl;
808
810
  }
809
- var _a = useReducer(reducer$4, _assign(_assign({}, initialState$5), {
811
+ var _a = useReducer(reducer$4, _assign(_assign({}, initialState$6), {
810
812
  authUrl: authUrl
811
813
  })),
812
814
  state = _a[0],
@@ -1886,608 +1888,6 @@ function calculateMd5(blob) {
1886
1888
  });
1887
1889
  }
1888
1890
 
1889
- function getFrameDimensions(frame) {
1890
- var frameWidth = frame.width,
1891
- frameHeight = frame.height;
1892
- if (frame instanceof HTMLImageElement) {
1893
- frameWidth = frame.naturalWidth;
1894
- frameHeight = frame.naturalHeight;
1895
- }
1896
- if (frame instanceof HTMLVideoElement) {
1897
- frameWidth = frame.videoWidth;
1898
- frameHeight = frame.videoHeight;
1899
- }
1900
- return [frameWidth, frameHeight];
1901
- }
1902
-
1903
- var InvisibleCanvas = styled.canvas(templateObject_1$E || (templateObject_1$E = __makeTemplateObject(["\n display: none;\n"], ["\n display: none;\n"])));
1904
- function drawToCanvas(canvas, frame, width, height) {
1905
- if (!canvas) return;
1906
- var ctx = canvas.getContext('2d');
1907
- if (!ctx) return;
1908
- if (!width || !height) {
1909
- var _a = getFrameDimensions(frame),
1910
- frameWidth = _a[0],
1911
- frameHeight = _a[1];
1912
- width || (width = frameWidth);
1913
- height || (height = frameHeight);
1914
- }
1915
- canvas.width = width;
1916
- canvas.height = height;
1917
- ctx.drawImage(frame, 0, 0, width, height);
1918
- }
1919
- function clearCanvas(canvas) {
1920
- var _a;
1921
- (_a = canvas === null || canvas === void 0 ? void 0 : canvas.getContext('2d')) === null || _a === void 0 ? void 0 : _a.clearRect(0, 0, canvas === null || canvas === void 0 ? void 0 : canvas.width, canvas === null || canvas === void 0 ? void 0 : canvas.height);
1922
- }
1923
- var templateObject_1$E;
1924
-
1925
- function listAvailableCameras(facingMode_1) {
1926
- return __awaiter(this, arguments, void 0, function (facingMode, requestMicAccess) {
1927
- var cameraEnumerationStream, videoDevices;
1928
- if (requestMicAccess === void 0) {
1929
- requestMicAccess = false;
1930
- }
1931
- return __generator(this, function (_a) {
1932
- switch (_a.label) {
1933
- case 0:
1934
- return [4 /*yield*/, navigator.mediaDevices.getUserMedia({
1935
- video: {
1936
- facingMode: {
1937
- exact: facingMode
1938
- }
1939
- },
1940
- audio: requestMicAccess
1941
- })
1942
- // This lists all available cameras attached to the user's device.
1943
- ];
1944
- case 1:
1945
- cameraEnumerationStream = _a.sent();
1946
- return [4 /*yield*/, navigator.mediaDevices.enumerateDevices()];
1947
- case 2:
1948
- videoDevices = _a.sent().filter(function (_a) {
1949
- var kind = _a.kind;
1950
- return kind === 'videoinput';
1951
- });
1952
- // Release the access to the user's camera that we obtained for enumeration purposes.
1953
- cameraEnumerationStream.getVideoTracks().forEach(function (track) {
1954
- track.enabled = false;
1955
- track.stop();
1956
- });
1957
- cameraEnumerationStream = null;
1958
- return [2 /*return*/, videoDevices];
1959
- }
1960
- });
1961
- });
1962
- }
1963
- var frontLabels = ['front', 'avant', 'anteriore', 'cameraaanvoorzijde', 'kamerapåframsidan', 'forsidekamera', 'kamerapåforsiden', 'aparatprzedni', 'etukamera', 'kameradepan', 'ÖnKamera', 'cameramặttrước', 'camerăfață', 'prednákamera', 'prednjakamera', 'előlapikamera', 'přednífotoaparát', 'μπροστινήκάμερα', 'переднякамера', 'передняякамера', 'преднакамера', 'алдыңғыкамера', 'מצלמה קדמית', 'الكاميرا الأمامية', 'फ़्रंटकैमरा', '前置相机', '前置鏡頭', '前面カメラ', '전면카메라', 'กล้องด้านหน้า'].map(function (s) {
1964
- return s.toLocaleLowerCase().split(' ').join('');
1965
- });
1966
- var rearLabels = ['back', 'rear', 'posterior', 'trasera', 'traseira', 'arrière', 'rückkamera', 'fotocamera(posteriore)', 'cameraaanachterzijde', 'kamerapåbaksidan', 'kamerapåbaksiden', 'bagsidekamera', 'aparattylny', 'takakamera', 'arkakamera', 'kamerabelakang', 'cameramặtsau', 'camerăspate', 'stražnjakamera', 'zadnákamera', 'hátoldalikamera', 'zadnífotoaparát', 'πίσωκάμερα', 'заднякамера', 'Задняякамера', 'заднакамера', 'артқыкамера', 'מצלמה אחורית', 'الكاميرا الخلفية', 'बैककैमरा', '后置相机', '後置鏡頭', '背面カメラ', '후면카메라', 'กล้องด้านหลัง'].map(function (s) {
1967
- return s.toLocaleLowerCase().split(' ').join('');
1968
- });
1969
- var backUltraWideLabels = ['backdualwidecamera', 'backultrawidecamera', 'ultraampliaposterior', 'ultra-angulartraseira', 'ultragrandeangulartraseira', 'ultragrandangle', 'ultragranangular', 'ultra-weitwinkelkamera', 'ultra-grandangolo', 'ultrabredecameraaanachterzijde', 'ultravidvinkelkamerapåbaksidan', 'ultravidvinkelkameraetpåbagsiden', 'ultravidvinkelkamerabak', 'ultragenişkameraarkayüzü', 'ultralaajakulmainentakakamera', 'tylnyaparatultraszerokokątny', 'cameracựcrộngmặtsau', 'camerăcuobiectivultra‑superangularspate', 'ultraszéleslátószögűkamera', 'kameraultralebarbelakang', 'stražnjaultraširokakamera', 'zadníultraširokoúhlýfotoaparát', 'ultraširokouhlá', 'πίσωυπερευρείακάμερα', 'заднянадширококутнакамера', 'Задняясверхширокоугольнаякамера', 'Задна свръх широкоъгълна камера', 'артқыультракеңбұрыштыкамера', 'מצלמה אולטרה רחבה אחורית', 'كاميرا خلفية عريضة جدًا', 'बैकअल्ट्रावाइडकैमरा', '后置超广角相机', '後置超廣角鏡頭相機', '背面超広角カメラ', '후면울트라와이드카메라', 'กล้องด้านหลังอัลตร้าไวด์'].map(function (s) {
1970
- return s.toLocaleLowerCase().split(' ').join('');
1971
- });
1972
- var labelMatches = function labelMatches(labelOrDevice, labelSetOrLabel) {
1973
- var label = labelOrDevice instanceof MediaDeviceInfo ? getDeviceLabel(labelOrDevice) : labelOrDevice;
1974
- var labelSet = typeof labelSetOrLabel === 'string' ? [labelSetOrLabel] : labelSetOrLabel;
1975
- return labelSet.some(function (l) {
1976
- return label.includes(l);
1977
- });
1978
- };
1979
- var getDeviceLabel = function getDeviceLabel(deviceInfo) {
1980
- return deviceInfo.label.toLocaleLowerCase().split(' ').join('');
1981
- };
1982
- var currentCamera;
1983
- var currentAudioStream;
1984
- function obtainCameraAccess(stream, deviceLabel, video) {
1985
- releaseCameraAccess();
1986
- log('obtaining camera access...');
1987
- var _a = stream.getVideoTracks()[0].getSettings(),
1988
- width = _a.width,
1989
- height = _a.height;
1990
- var label = deviceLabel.toLocaleLowerCase().split(' ').join('');
1991
- var isRearFacing = labelMatches(label, __spreadArray(__spreadArray(__spreadArray([], rearLabels, true), backUltraWideLabels, true), ['iphone'], false));
1992
- var release = function release() {
1993
- stream.getTracks().forEach(function (track) {
1994
- track.enabled = false;
1995
- track.stop();
1996
- });
1997
- if (video) {
1998
- video.pause();
1999
- video.srcObject = null;
2000
- video.src = '';
2001
- }
2002
- };
2003
- width || (width = 0);
2004
- height || (height = 0);
2005
- currentCamera = {
2006
- label: deviceLabel,
2007
- stream: stream,
2008
- width: width,
2009
- height: height,
2010
- isRearFacing: isRearFacing,
2011
- release: release
2012
- };
2013
- if (video) video.srcObject = stream;
2014
- return currentCamera;
2015
- }
2016
- function releaseCameraAccess() {
2017
- if (!currentCamera) return;
2018
- log('releasing camera access...');
2019
- currentCamera.release();
2020
- currentCamera = undefined;
2021
- }
2022
- function releaseMicrophoneAccess() {
2023
- var _a;
2024
- if (!currentAudioStream) return;
2025
- log('releasing microphone access...');
2026
- (_a = currentAudioStream.stop) === null || _a === void 0 ? void 0 : _a.call(currentAudioStream);
2027
- currentAudioStream.getAudioTracks().forEach(function (t) {
2028
- var _a;
2029
- (_a = t.stop) === null || _a === void 0 ? void 0 : _a.call(t);
2030
- });
2031
- currentAudioStream = undefined;
2032
- }
2033
- function usePreferredCaptureDevice(_a) {
2034
- var _b = _a === void 0 ? {} : _a,
2035
- _c = _b.requestAccessAutomatically,
2036
- requestAccessAutomatically = _c === void 0 ? true : _c,
2037
- _d = _b.preferFrontFacingCamera,
2038
- preferFrontFacingCamera = _d === void 0 ? false : _d,
2039
- _e = _b.preferContinuityCamera,
2040
- preferContinuityCamera = _e === void 0 ? true : _e,
2041
- _f = _b.requireMicrophoneAccess,
2042
- requireMicrophoneAccess = _f === void 0 ? false : _f,
2043
- _g = _b.maxVideoWidth,
2044
- maxVideoWidth = _g === void 0 ? 1920 : _g,
2045
- maxFps = _b.maxFps,
2046
- _h = _b.debugMode,
2047
- debugMode = _h === void 0 ? false : _h;
2048
- var videoRef = useRef(null);
2049
- var videoRefStack = useRef([]);
2050
- var cameraRef = useRef(null);
2051
- var _j = useState(false),
2052
- cameraReady = _j[0],
2053
- setCameraReady = _j[1];
2054
- var _k = useState(false),
2055
- microphoneReady = _k[0],
2056
- setMicrophoneReady = _k[1];
2057
- var _l = useState(null),
2058
- videoDevice = _l[0],
2059
- setVideoDevice = _l[1];
2060
- var _m = useState(null),
2061
- audioStream = _m[0],
2062
- setAudioStream = _m[1];
2063
- var _o = useState(false),
2064
- videoLoaded = _o[0],
2065
- setVideoLoaded = _o[1];
2066
- var _p = useState(false),
2067
- iphoneContinuityCameraAvailable = _p[0],
2068
- setIphoneContinuityCameraAvailable = _p[1];
2069
- var _q = useState(preferContinuityCamera),
2070
- iphoneContinuityCameraAllowed = _q[0],
2071
- setIphoneContinuityCameraAllowed = _q[1];
2072
- var _r = useState(false),
2073
- iphoneContinuityCameraDenied = _r[0],
2074
- setIphoneContinuityCameraDenied = _r[1];
2075
- var _s = useState(false),
2076
- cameraAccessDenied = _s[0],
2077
- setCameraAccessDenied = _s[1];
2078
- var _t = useState(false),
2079
- microphoneAccessDenied = _t[0],
2080
- setMicrophoneAccessDenied = _t[1];
2081
- var videoRefElement = videoRef.current;
2082
- useEffect(function pushVideoRefToStackWhenChanged() {
2083
- // proceed if the video element being mounted is not already at the top of the videoRefStack.
2084
- var topOfStack = videoRefStack.current.slice(-1)[0];
2085
- if (videoRefElement && videoRefElement !== topOfStack) {
2086
- log('adding video to stack', videoRefElement);
2087
- videoRefStack.current.push(videoRefElement);
2088
- }
2089
- }, [videoRefElement]);
2090
- var onVideoUnmounted = useCallback(function (videoElement) {
2091
- log('removing video from stack', videoElement);
2092
- videoRefStack.current = videoRefStack.current.filter(function (v) {
2093
- return v !== videoElement;
2094
- });
2095
- videoRef.current = videoRefStack.current.slice(-1)[0]; // top of stack.
2096
- log('new videoRef is', videoRef.current);
2097
- }, []);
2098
- useEffect(function resetCameraOnContinuityPreferenceChanged() {
2099
- if (debugMode) {
2100
- log('iphone continuity camera allowed changed', iphoneContinuityCameraAllowed);
2101
- }
2102
- releaseCameraAccess();
2103
- cameraRef.current = null;
2104
- setVideoLoaded(false);
2105
- }, [debugMode, iphoneContinuityCameraAllowed]);
2106
- // NOTE: the bound callback function here is called requestCameraAccess, because
2107
- // it initiates the useEffect chain that results in camera access being requested
2108
- // (requestCameraAccessAutomatically -> chooseFromAvailableCameras -> accessChosenCamera).
2109
- //
2110
- // We chose to title the inner function "chooseFromAvailableCameras" because
2111
- // that's all it literally does -- the available cameras are enumerated, and then
2112
- // the result is parsed to decide which one we like best, which is then passed to
2113
- // setVideoDevice, which causes accessChosenCamera to trigger.
2114
- //
2115
- // I am not a huge fan of getUserMedia's design -- you need to call it twice in order
2116
- // to select the "best" camera for your application's purposes.
2117
- var requestCameraAccess = useCallback(function chooseFromAvailableCameras() {
2118
- return __awaiter(this, void 0, void 0, function () {
2119
- var availableCameras, selectedCamera, platform_1, iphoneContinuityCamera, e_1;
2120
- var _a, _b;
2121
- return __generator(this, function (_c) {
2122
- switch (_c.label) {
2123
- case 0:
2124
- setCameraReady(false);
2125
- setCameraAccessDenied(false);
2126
- _c.label = 1;
2127
- case 1:
2128
- _c.trys.push([1, 3,, 4]);
2129
- return [4 /*yield*/, listAvailableCameras()];
2130
- case 2:
2131
- availableCameras = _c.sent();
2132
- selectedCamera = void 0;
2133
- if (debugMode) {
2134
- log('availableCameras', availableCameras);
2135
- }
2136
- platform_1 = getPlatform();
2137
- if (debugMode) {
2138
- log('platformDetails', platform_1);
2139
- }
2140
- if (!iphoneContinuityCameraDenied && (!(platform_1 === null || platform_1 === void 0 ? void 0 : platform_1.os) || platform_1.os.family === 'OS X')) {
2141
- iphoneContinuityCamera = availableCameras.find(function (deviceInfo) {
2142
- return labelMatches(deviceInfo, 'iphone');
2143
- });
2144
- setIphoneContinuityCameraAvailable(!!iphoneContinuityCamera);
2145
- if (iphoneContinuityCamera && iphoneContinuityCameraAllowed) {
2146
- selectedCamera = iphoneContinuityCamera;
2147
- }
2148
- } else if (((_a = platform_1 === null || platform_1 === void 0 ? void 0 : platform_1.os) === null || _a === void 0 ? void 0 : _a.family) === 'Android' || availableCameras.every(function (c) {
2149
- return c.label.startsWith('camera2 ');
2150
- })) {
2151
- availableCameras = availableCameras.sort(function (a, b) {
2152
- return a.label.toLowerCase().localeCompare(b.label.toLowerCase());
2153
- });
2154
- if (debugMode) {
2155
- log('cameras have been sorted', availableCameras);
2156
- }
2157
- }
2158
- if (preferFrontFacingCamera) {
2159
- selectedCamera = availableCameras.find(function (deviceInfo) {
2160
- return labelMatches(deviceInfo, frontLabels);
2161
- });
2162
- }
2163
- selectedCamera || (selectedCamera = availableCameras.find(function (deviceInfo) {
2164
- return labelMatches(deviceInfo, 'backtriplecamera');
2165
- }));
2166
- selectedCamera || (selectedCamera = availableCameras.find(function (deviceInfo) {
2167
- return labelMatches(deviceInfo, 'backdualcamera');
2168
- }));
2169
- selectedCamera || (selectedCamera = availableCameras.find(function (deviceInfo) {
2170
- return labelMatches(deviceInfo, rearLabels) && !labelMatches(deviceInfo, backUltraWideLabels);
2171
- }));
2172
- selectedCamera || (selectedCamera = availableCameras.find(function (deviceInfo) {
2173
- return labelMatches(deviceInfo, rearLabels);
2174
- }));
2175
- // on iOS, the front facing camera always is at the first position in the list, so we skip it if all else fails.
2176
- if (!preferFrontFacingCamera && ((_b = platform_1 === null || platform_1 === void 0 ? void 0 : platform_1.os) === null || _b === void 0 ? void 0 : _b.family) === 'iOS' && availableCameras.length > 0) {
2177
- selectedCamera || (selectedCamera = availableCameras[1]);
2178
- }
2179
- selectedCamera || (selectedCamera = availableCameras[0]);
2180
- if (debugMode) log('selectedCamera', selectedCamera);
2181
- setVideoDevice(selectedCamera);
2182
- return [3 /*break*/, 4];
2183
- case 3:
2184
- e_1 = _c.sent();
2185
- if (e_1.name === 'NotAllowedError') {
2186
- error('camera access has been blocked by the user', e_1);
2187
- setCameraAccessDenied(true);
2188
- } else {
2189
- error('camera access encountered some other error', e_1);
2190
- throw e_1;
2191
- }
2192
- return [3 /*break*/, 4];
2193
- case 4:
2194
- return [2 /*return*/];
2195
- }
2196
- });
2197
- });
2198
- }, [debugMode, iphoneContinuityCameraAllowed, iphoneContinuityCameraDenied, preferFrontFacingCamera]);
2199
- useEffect(function requestCameraAccessAutomatically() {
2200
- if (requestAccessAutomatically && !cameraAccessDenied) {
2201
- requestCameraAccess()["catch"](error);
2202
- }
2203
- }, [cameraAccessDenied, requestAccessAutomatically, requestCameraAccess]);
2204
- useEffect(function accessChosenCamera() {
2205
- var _this = this;
2206
- var _a;
2207
- if (!videoDevice) return;
2208
- var cleanup = function cleanup() {
2209
- releaseCameraAccess();
2210
- cameraRef.current = null;
2211
- setVideoLoaded(false);
2212
- };
2213
- if (!((_a = navigator.mediaDevices) === null || _a === void 0 ? void 0 : _a.getUserMedia)) return cleanup;
2214
- (function () {
2215
- return __awaiter(_this, void 0, void 0, function () {
2216
- var constraints, stream, e_2, handleStreamEnded;
2217
- var _a;
2218
- return __generator(this, function (_b) {
2219
- switch (_b.label) {
2220
- case 0:
2221
- constraints = {
2222
- audio: false,
2223
- video: {
2224
- deviceId: {
2225
- exact: videoDevice.deviceId
2226
- },
2227
- width: {
2228
- ideal: maxVideoWidth
2229
- },
2230
- aspectRatio: 1.777777778,
2231
- frameRate: {}
2232
- }
2233
- };
2234
- if (maxFps) {
2235
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
2236
- // @ts-ignore
2237
- constraints.video.frameRate = {
2238
- max: maxFps
2239
- };
2240
- }
2241
- stream = null;
2242
- _b.label = 1;
2243
- case 1:
2244
- _b.trys.push([1, 3,, 4]);
2245
- return [4 /*yield*/, navigator.mediaDevices.getUserMedia(constraints)];
2246
- case 2:
2247
- stream = _b.sent();
2248
- return [3 /*break*/, 4];
2249
- case 3:
2250
- e_2 = _b.sent();
2251
- if (e_2.name === 'NotAllowedError') {
2252
- if (iphoneContinuityCameraAllowed) {
2253
- setIphoneContinuityCameraAvailable(false);
2254
- setIphoneContinuityCameraDenied(true);
2255
- } else {
2256
- setCameraAccessDenied(true);
2257
- }
2258
- return [2 /*return*/];
2259
- }
2260
- return [3 /*break*/, 4];
2261
- case 4:
2262
- if (!!stream) return [3 /*break*/, 8];
2263
- _b.label = 5;
2264
- case 5:
2265
- _b.trys.push([5, 7,, 8]);
2266
- return [4 /*yield*/, navigator.mediaDevices.getUserMedia({
2267
- audio: false,
2268
- video: true
2269
- })];
2270
- case 6:
2271
- stream = _b.sent();
2272
- log('opened stream with no width and height constraints');
2273
- return [3 /*break*/, 8];
2274
- case 7:
2275
- _b.sent();
2276
- log('cannot open stream at all');
2277
- return [3 /*break*/, 8];
2278
- case 8:
2279
- if (!stream) {
2280
- throw new Error('failed to open camera');
2281
- }
2282
- handleStreamEnded = function handleStreamEnded() {
2283
- if (iphoneContinuityCameraAvailable && iphoneContinuityCameraAllowed) {
2284
- log('someone unplugged the continuity camera');
2285
- releaseCameraAccess();
2286
- cameraRef.current = null;
2287
- setIphoneContinuityCameraAvailable(false);
2288
- setIphoneContinuityCameraDenied(true);
2289
- setVideoDevice(null);
2290
- } else {
2291
- log('someone unplugged the webcam');
2292
- releaseCameraAccess();
2293
- cameraRef.current = null;
2294
- setVideoLoaded(false);
2295
- setCameraAccessDenied(true);
2296
- }
2297
- };
2298
- (_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.addEventListener('ended', handleStreamEnded);
2299
- stream.getVideoTracks().forEach(function (track) {
2300
- track.onended = handleStreamEnded;
2301
- });
2302
- cameraRef.current = obtainCameraAccess(stream, videoDevice.label, videoRef.current);
2303
- return [2 /*return*/];
2304
- }
2305
- });
2306
- });
2307
- })();
2308
- return cleanup;
2309
- }, [iphoneContinuityCameraAllowed, iphoneContinuityCameraAvailable, maxFps, maxVideoWidth, videoDevice]);
2310
- useEffect(function triggerCameraReady() {
2311
- // TODO: in the future let's evaluate whether we can simplify this to just
2312
- // setCameraReady(!!videoDevice && videoLoaded) -- we are wondering whether
2313
- // we somehow depend on this being set twice.
2314
- setCameraReady(false);
2315
- if (videoDevice && videoLoaded) {
2316
- setCameraReady(videoDevice && videoLoaded);
2317
- }
2318
- }, [videoLoaded, videoDevice]);
2319
- var requestMicrophoneAccess = useCallback(function _requestMicrophoneAccess() {
2320
- return __awaiter(this, void 0, void 0, function () {
2321
- var stream;
2322
- return __generator(this, function (_a) {
2323
- switch (_a.label) {
2324
- case 0:
2325
- setMicrophoneReady(false);
2326
- setMicrophoneAccessDenied(false);
2327
- _a.label = 1;
2328
- case 1:
2329
- _a.trys.push([1, 3,, 4]);
2330
- return [4 /*yield*/, navigator.mediaDevices.getUserMedia({
2331
- audio: true,
2332
- video: false
2333
- })];
2334
- case 2:
2335
- stream = _a.sent();
2336
- currentAudioStream = stream;
2337
- setAudioStream(stream);
2338
- setMicrophoneReady(true);
2339
- stream.getAudioTracks().forEach(function (track) {
2340
- track.onended = function () {
2341
- setMicrophoneAccessDenied(true);
2342
- };
2343
- });
2344
- return [3 /*break*/, 4];
2345
- case 3:
2346
- _a.sent();
2347
- setMicrophoneAccessDenied(true);
2348
- return [3 /*break*/, 4];
2349
- case 4:
2350
- return [2 /*return*/];
2351
- }
2352
- });
2353
- });
2354
- }, []);
2355
- useEffect(function requestMicrophoneAccessIfNeeded() {
2356
- if (!requireMicrophoneAccess || microphoneAccessDenied) return;
2357
- requestMicrophoneAccess()["catch"](error);
2358
- return function () {
2359
- releaseMicrophoneAccess();
2360
- setAudioStream(null);
2361
- setMicrophoneReady(false);
2362
- };
2363
- }, [microphoneAccessDenied, requestMicrophoneAccess, requireMicrophoneAccess]);
2364
- var takePhoto = useCallback(function _takePhoto() {
2365
- return __awaiter(this, void 0, void 0, function () {
2366
- var canvas;
2367
- return __generator(this, function (_a) {
2368
- switch (_a.label) {
2369
- case 0:
2370
- if (!cameraRef.current) return [2 /*return*/, null];
2371
- if (!(typeof ImageCapture !== 'undefined')) return [3 /*break*/, 2];
2372
- return [4 /*yield*/, new ImageCapture(cameraRef.current.stream.getTracks()[0]).takePhoto()];
2373
- case 1:
2374
- return [2 /*return*/, _a.sent()];
2375
- case 2:
2376
- if (!videoRef.current) return [2 /*return*/, null];
2377
- canvas = document.createElement('canvas');
2378
- drawToCanvas(canvas, videoRef.current);
2379
- return [2 /*return*/, new Promise(function (resolve) {
2380
- return canvas.toBlob(resolve);
2381
- })];
2382
- }
2383
- });
2384
- });
2385
- }, []);
2386
- return useMemo(function () {
2387
- return {
2388
- videoRef: videoRef,
2389
- videoDevice: videoDevice,
2390
- videoLoaded: videoLoaded,
2391
- setVideoLoaded: setVideoLoaded,
2392
- onVideoUnmounted: onVideoUnmounted,
2393
- cameraRef: cameraRef,
2394
- cameraReady: cameraReady,
2395
- cameraAccessDenied: cameraAccessDenied,
2396
- requestCameraAccess: requestCameraAccess,
2397
- releaseCameraAccess: releaseCameraAccess,
2398
- iphoneContinuityCameraAvailable: iphoneContinuityCameraAvailable,
2399
- iphoneContinuityCameraAllowed: iphoneContinuityCameraAllowed,
2400
- setIphoneContinuityCameraAllowed: setIphoneContinuityCameraAllowed,
2401
- takePhoto: takePhoto,
2402
- audioStream: audioStream,
2403
- microphoneReady: microphoneReady,
2404
- microphoneAccessDenied: microphoneAccessDenied,
2405
- requestMicrophoneAccess: requestMicrophoneAccess
2406
- };
2407
- }, [audioStream, cameraAccessDenied, cameraReady, iphoneContinuityCameraAllowed, iphoneContinuityCameraAvailable, microphoneAccessDenied, microphoneReady, onVideoUnmounted, requestCameraAccess, requestMicrophoneAccess, takePhoto, videoDevice, videoLoaded]);
2408
- }
2409
-
2410
- var CameraStateContext = /*#__PURE__*/createContext({
2411
- videoRef: {
2412
- current: null
2413
- },
2414
- videoDevice: null,
2415
- videoLoaded: false,
2416
- cameraRef: {
2417
- current: null
2418
- },
2419
- cameraReady: false,
2420
- cameraAccessDenied: false,
2421
- requestCameraAccess: function requestCameraAccess() {
2422
- return null;
2423
- },
2424
- releaseCameraAccess: function releaseCameraAccess() {
2425
- return null;
2426
- },
2427
- iphoneContinuityCameraAvailable: false,
2428
- iphoneContinuityCameraAllowed: true,
2429
- setIphoneContinuityCameraAllowed: function setIphoneContinuityCameraAllowed() {
2430
- return null;
2431
- },
2432
- takePhoto: function takePhoto() {
2433
- return Promise.resolve(null);
2434
- },
2435
- setVideoLoaded: function setVideoLoaded() {
2436
- return null;
2437
- },
2438
- onVideoUnmounted: function onVideoUnmounted() {
2439
- return null;
2440
- },
2441
- audioStream: null,
2442
- microphoneReady: false,
2443
- microphoneAccessDenied: false,
2444
- requestMicrophoneAccess: function requestMicrophoneAccess() {
2445
- return null;
2446
- }
2447
- });
2448
- var CameraProvider = function CameraProvider(_a) {
2449
- var children = _a.children,
2450
- _b = _a.requestAccessAutomatically,
2451
- requestAccessAutomatically = _b === void 0 ? true : _b,
2452
- _c = _a.preferFrontFacingCamera,
2453
- preferFrontFacingCamera = _c === void 0 ? false : _c,
2454
- _d = _a.preferContinuityCamera,
2455
- preferContinuityCamera = _d === void 0 ? true : _d,
2456
- _e = _a.requireMicrophoneAccess,
2457
- requireMicrophoneAccess = _e === void 0 ? false : _e,
2458
- _f = _a.maxVideoWidth,
2459
- maxVideoWidth = _f === void 0 ? 1920 : _f,
2460
- maxFps = _a.maxFps,
2461
- onCameraAccessDenied = _a.onCameraAccessDenied,
2462
- onMicrophoneAccessDenied = _a.onMicrophoneAccessDenied,
2463
- _g = _a.debugMode,
2464
- debugMode = _g === void 0 ? false : _g;
2465
- var captureDevice = usePreferredCaptureDevice({
2466
- requestAccessAutomatically: requestAccessAutomatically,
2467
- preferFrontFacingCamera: preferFrontFacingCamera,
2468
- preferContinuityCamera: preferContinuityCamera,
2469
- requireMicrophoneAccess: requireMicrophoneAccess,
2470
- maxVideoWidth: maxVideoWidth,
2471
- maxFps: maxFps,
2472
- debugMode: debugMode
2473
- });
2474
- useEffect(function () {
2475
- if (captureDevice.cameraAccessDenied) onCameraAccessDenied === null || onCameraAccessDenied === void 0 ? void 0 : onCameraAccessDenied();
2476
- }, [captureDevice.cameraAccessDenied, onCameraAccessDenied]);
2477
- useEffect(function () {
2478
- if (captureDevice.microphoneAccessDenied) onMicrophoneAccessDenied === null || onMicrophoneAccessDenied === void 0 ? void 0 : onMicrophoneAccessDenied();
2479
- }, [captureDevice.microphoneAccessDenied, onMicrophoneAccessDenied]);
2480
- var releaseCameraAccess = captureDevice.releaseCameraAccess;
2481
- useEffect(function () {
2482
- return function () {
2483
- releaseCameraAccess();
2484
- };
2485
- }, [releaseCameraAccess]);
2486
- return /*#__PURE__*/React__default.createElement(CameraStateContext.Provider, {
2487
- value: captureDevice
2488
- }, children);
2489
- };
2490
-
2491
1891
  var visionTasksBasePath = "https://cdn.jsdelivr.net/npm/@mediapipe/tasks-vision@0.10.7/wasm";
2492
1892
  var visionRuntimePreloading = false;
2493
1893
  function preloadVisionRuntime() {
@@ -2530,6 +1930,42 @@ function preloadVisionRuntime() {
2530
1930
  });
2531
1931
  }
2532
1932
 
1933
+ function getFrameDimensions(frame) {
1934
+ var frameWidth = frame.width,
1935
+ frameHeight = frame.height;
1936
+ if (frame instanceof HTMLImageElement) {
1937
+ frameWidth = frame.naturalWidth;
1938
+ frameHeight = frame.naturalHeight;
1939
+ }
1940
+ if (frame instanceof HTMLVideoElement) {
1941
+ frameWidth = frame.videoWidth;
1942
+ frameHeight = frame.videoHeight;
1943
+ }
1944
+ return [frameWidth, frameHeight];
1945
+ }
1946
+
1947
+ var InvisibleCanvas = styled.canvas(templateObject_1$G || (templateObject_1$G = __makeTemplateObject(["\n display: none;\n"], ["\n display: none;\n"])));
1948
+ function drawToCanvas(canvas, frame, width, height) {
1949
+ if (!canvas) return;
1950
+ var ctx = canvas.getContext('2d');
1951
+ if (!ctx) return;
1952
+ if (!width || !height) {
1953
+ var _a = getFrameDimensions(frame),
1954
+ frameWidth = _a[0],
1955
+ frameHeight = _a[1];
1956
+ width || (width = frameWidth);
1957
+ height || (height = frameHeight);
1958
+ }
1959
+ canvas.width = width;
1960
+ canvas.height = height;
1961
+ ctx.drawImage(frame, 0, 0, width, height);
1962
+ }
1963
+ function clearCanvas(canvas) {
1964
+ var _a;
1965
+ (_a = canvas === null || canvas === void 0 ? void 0 : canvas.getContext('2d')) === null || _a === void 0 ? void 0 : _a.clearRect(0, 0, canvas === null || canvas === void 0 ? void 0 : canvas.width, canvas === null || canvas === void 0 ? void 0 : canvas.height);
1966
+ }
1967
+ var templateObject_1$G;
1968
+
2533
1969
  function cropToShoulders(rawCanvas, cropCanvas, resizeCanvas, frame, face, quality, maxHeight) {
2534
1970
  if (quality === void 0) {
2535
1971
  quality = 0.92;
@@ -2833,7 +2269,8 @@ function useLoadFocusModel(_a) {
2833
2269
  modelPath = _b === void 0 ? defaultFocusModelPath : _b,
2834
2270
  _c = _a.modelLoadTimeoutMs,
2835
2271
  modelLoadTimeoutMs = _c === void 0 ? defaultFocusModelLoadTimeoutMs : _c,
2836
- onModelError = _a.onModelError;
2272
+ onModelError = _a.onModelError,
2273
+ videoRef = _a.videoRef;
2837
2274
  var _d = useState(false),
2838
2275
  ready = _d[0],
2839
2276
  setReady = _d[1];
@@ -2843,7 +2280,6 @@ function useLoadFocusModel(_a) {
2843
2280
  var _f = useState(null),
2844
2281
  modelError = _f[0],
2845
2282
  setModelError = _f[1];
2846
- var videoRef = useContext(CameraStateContext).videoRef;
2847
2283
  useEffect(function loadModel() {
2848
2284
  var _this = this;
2849
2285
  setReady(false);
@@ -2981,7 +2417,8 @@ function closeFaceDetector() {
2981
2417
  function useLoadFaceDetector(_a) {
2982
2418
  var onModelError = _a.onModelError,
2983
2419
  _b = _a.modelLoadTimeoutMs,
2984
- modelLoadTimeoutMs = _b === void 0 ? defaultSelfieCaptureModelLoadTimeoutMs : _b;
2420
+ modelLoadTimeoutMs = _b === void 0 ? defaultSelfieCaptureModelLoadTimeoutMs : _b,
2421
+ videoRef = _a.videoRef;
2985
2422
  var _c = useState(false),
2986
2423
  ready = _c[0],
2987
2424
  setReady = _c[1];
@@ -2991,7 +2428,6 @@ function useLoadFaceDetector(_a) {
2991
2428
  var _e = useState(null),
2992
2429
  modelError = _e[0],
2993
2430
  setModelError = _e[1];
2994
- var videoRef = useContext(CameraStateContext).videoRef;
2995
2431
  useEffect(function loadModel() {
2996
2432
  var _this = this;
2997
2433
  setReady(false);
@@ -3472,7 +2908,8 @@ function useLoadDocumentDetector(_a) {
3472
2908
  modelLoadTimeoutMs = _c === void 0 ? defaultDocumentDetectionModelLoadTimeoutMs : _c,
3473
2909
  _d = _a.scoreThreshold,
3474
2910
  scoreThreshold = _d === void 0 ? defaultDocumentDetectionScoreThreshold : _d,
3475
- onModelError = _a.onModelError;
2911
+ onModelError = _a.onModelError,
2912
+ videoRef = _a.videoRef;
3476
2913
  var _e = useState(false),
3477
2914
  ready = _e[0],
3478
2915
  setReady = _e[1];
@@ -3482,7 +2919,6 @@ function useLoadDocumentDetector(_a) {
3482
2919
  var _g = useState(null),
3483
2920
  modelError = _g[0],
3484
2921
  setModelError = _g[1];
3485
- var videoRef = useContext(CameraStateContext).videoRef;
3486
2922
  useEffect(function loadModel() {
3487
2923
  var _this = this;
3488
2924
  setReady(false);
@@ -3791,6 +3227,470 @@ function useFrameLoop(fn, _a) {
3791
3227
  };
3792
3228
  }
3793
3229
 
3230
+ function listAvailableCameras(facingMode_1) {
3231
+ return __awaiter(this, arguments, void 0, function (facingMode, requestMicAccess) {
3232
+ var cameraEnumerationStream, videoDevices;
3233
+ if (requestMicAccess === void 0) {
3234
+ requestMicAccess = false;
3235
+ }
3236
+ return __generator(this, function (_a) {
3237
+ switch (_a.label) {
3238
+ case 0:
3239
+ return [4 /*yield*/, navigator.mediaDevices.getUserMedia({
3240
+ video: {
3241
+ facingMode: {
3242
+ exact: facingMode
3243
+ }
3244
+ },
3245
+ audio: requestMicAccess
3246
+ })
3247
+ // This lists all available cameras attached to the user's device.
3248
+ ];
3249
+ case 1:
3250
+ cameraEnumerationStream = _a.sent();
3251
+ return [4 /*yield*/, navigator.mediaDevices.enumerateDevices()];
3252
+ case 2:
3253
+ videoDevices = _a.sent().filter(function (_a) {
3254
+ var kind = _a.kind;
3255
+ return kind === 'videoinput';
3256
+ });
3257
+ // Release the access to the user's camera that we obtained for enumeration purposes.
3258
+ cameraEnumerationStream.getVideoTracks().forEach(function (track) {
3259
+ track.enabled = false;
3260
+ track.stop();
3261
+ });
3262
+ cameraEnumerationStream = null;
3263
+ return [2 /*return*/, videoDevices];
3264
+ }
3265
+ });
3266
+ });
3267
+ }
3268
+ var frontCameraLabels = ['front', 'avant', 'anteriore', 'cameraaanvoorzijde', 'kamerapåframsidan', 'forsidekamera', 'kamerapåforsiden', 'aparatprzedni', 'etukamera', 'kameradepan', 'ÖnKamera', 'cameramặttrước', 'camerăfață', 'prednákamera', 'prednjakamera', 'előlapikamera', 'přednífotoaparát', 'μπροστινήκάμερα', 'переднякамера', 'передняякамера', 'преднакамера', 'алдыңғыкамера', 'מצלמה קדמית', 'الكاميرا الأمامية', 'फ़्रंटकैमरा', '前置相机', '前置鏡頭', '前面カメラ', '전면카메라', 'กล้องด้านหน้า'].map(function (s) {
3269
+ return s.toLocaleLowerCase().split(' ').join('');
3270
+ });
3271
+ var rearCameraLabels = ['back', 'rear', 'posterior', 'trasera', 'traseira', 'arrière', 'rückkamera', 'fotocamera(posteriore)', 'cameraaanachterzijde', 'kamerapåbaksidan', 'kamerapåbaksiden', 'bagsidekamera', 'aparattylny', 'takakamera', 'arkakamera', 'kamerabelakang', 'cameramặtsau', 'camerăspate', 'stražnjakamera', 'zadnákamera', 'hátoldalikamera', 'zadnífotoaparát', 'πίσωκάμερα', 'заднякамера', 'Задняякамера', 'заднакамера', 'артқыкамера', 'מצלמה אחורית', 'الكاميرا الخلفية', 'बैककैमरा', '后置相机', '後置鏡頭', '背面カメラ', '후면카메라', 'กล้องด้านหลัง'].map(function (s) {
3272
+ return s.toLocaleLowerCase().split(' ').join('');
3273
+ });
3274
+ var backUltraWideCameraLabels = ['backdualwidecamera', 'backultrawidecamera', 'ultraampliaposterior', 'ultra-angulartraseira', 'ultragrandeangulartraseira', 'ultragrandangle', 'ultragranangular', 'ultra-weitwinkelkamera', 'ultra-grandangolo', 'ultrabredecameraaanachterzijde', 'ultravidvinkelkamerapåbaksidan', 'ultravidvinkelkameraetpåbagsiden', 'ultravidvinkelkamerabak', 'ultragenişkameraarkayüzü', 'ultralaajakulmainentakakamera', 'tylnyaparatultraszerokokątny', 'cameracựcrộngmặtsau', 'camerăcuobiectivultra‑superangularspate', 'ultraszéleslátószögűkamera', 'kameraultralebarbelakang', 'stražnjaultraširokakamera', 'zadníultraširokoúhlýfotoaparát', 'ultraširokouhlá', 'πίσωυπερευρείακάμερα', 'заднянадширококутнакамера', 'Задняясверхширокоугольнаякамера', 'Задна свръх широкоъгълна камера', 'артқыультракеңбұрыштыкамера', 'מצלמה אולטרה רחבה אחורית', 'كاميرا خلفية عريضة جدًا', 'बैकअल्ट्रावाइडकैमरा', '后置超广角相机', '後置超廣角鏡頭相機', '背面超広角カメラ', '후면울트라와이드카메라', 'กล้องด้านหลังอัลตร้าไวด์'].map(function (s) {
3275
+ return s.toLocaleLowerCase().split(' ').join('');
3276
+ });
3277
+ var cameraLabelMatches = function cameraLabelMatches(labelOrDevice, labelSetOrLabel) {
3278
+ var label = labelOrDevice instanceof MediaDeviceInfo ? getDeviceLabel(labelOrDevice) : labelOrDevice;
3279
+ var labelSet = typeof labelSetOrLabel === 'string' ? [labelSetOrLabel] : labelSetOrLabel;
3280
+ return labelSet.some(function (l) {
3281
+ return label.includes(l);
3282
+ });
3283
+ };
3284
+ var getDeviceLabel = function getDeviceLabel(deviceInfo) {
3285
+ return deviceInfo.label.toLocaleLowerCase().split(' ').join('');
3286
+ };
3287
+ var currentCamera;
3288
+ function obtainCameraAccess(stream, deviceLabel, video) {
3289
+ releaseCameraAccess();
3290
+ log('obtaining camera access...');
3291
+ var _a = stream.getVideoTracks()[0].getSettings(),
3292
+ width = _a.width,
3293
+ height = _a.height;
3294
+ log('camera dimensions', width, height);
3295
+ var label = deviceLabel.toLocaleLowerCase().split(' ').join('');
3296
+ log('camera label', label);
3297
+ var isRearFacing = cameraLabelMatches(label, __spreadArray(__spreadArray(__spreadArray([], rearCameraLabels, true), backUltraWideCameraLabels, true), ['iphone'], false));
3298
+ log('is rear facing?', isRearFacing);
3299
+ var release = function release() {
3300
+ stream.getTracks().forEach(function (track) {
3301
+ track.enabled = false;
3302
+ track.stop();
3303
+ });
3304
+ if (video) {
3305
+ video.pause();
3306
+ video.srcObject = null;
3307
+ video.src = '';
3308
+ }
3309
+ };
3310
+ width || (width = 0);
3311
+ height || (height = 0);
3312
+ currentCamera = {
3313
+ label: deviceLabel,
3314
+ stream: stream,
3315
+ width: width,
3316
+ height: height,
3317
+ isRearFacing: isRearFacing,
3318
+ release: release
3319
+ };
3320
+ log('camera access granted');
3321
+ if (video) video.srcObject = stream;
3322
+ log('video source initialized');
3323
+ return currentCamera;
3324
+ }
3325
+ function releaseCameraAccess() {
3326
+ if (!currentCamera) return;
3327
+ log('releasing camera access...');
3328
+ currentCamera.release();
3329
+ currentCamera = undefined;
3330
+ }
3331
+
3332
+ var initialState$5 = {
3333
+ videoRef: {
3334
+ current: null
3335
+ },
3336
+ videoLoaded: false,
3337
+ videoStream: null,
3338
+ videoDevice: null,
3339
+ isRearFacing: false,
3340
+ camera: null,
3341
+ cameraReady: false,
3342
+ cameraAccessDenied: false,
3343
+ iphoneContinuityCameraAvailable: false,
3344
+ iphoneContinuityCameraDenied: false,
3345
+ preferIphoneContinuityCamera: true,
3346
+ audioStream: null,
3347
+ microphoneReady: false,
3348
+ microphoneAccessDenied: false
3349
+ };
3350
+ var createCameraStore = function createCameraStore(config) {
3351
+ var store = createStore(function (set, get) {
3352
+ return _assign(_assign(_assign({}, initialState$5), config), {
3353
+ reset: function reset() {
3354
+ return set(_assign(_assign({}, initialState$5), config));
3355
+ },
3356
+ setConfig: function setConfig(config) {
3357
+ return set(config);
3358
+ },
3359
+ onVideoMounted: function onVideoMounted() {
3360
+ return set({
3361
+ videoLoaded: true
3362
+ });
3363
+ },
3364
+ setIphoneContinuityCameraAllowed: function setIphoneContinuityCameraAllowed(value) {
3365
+ return set({
3366
+ preferIphoneContinuityCamera: value
3367
+ });
3368
+ },
3369
+ requestCameraAccess: function requestCameraAccess() {
3370
+ return __awaiter(this, void 0, void 0, function () {
3371
+ var _a, releaseCameraAccess, preferIphoneContinuityCamera, iphoneContinuityCameraDenied, availableCameras, selectedCamera, platform_1, iphoneContinuityCamera, constraints, stream, e_1, iphoneContinuityCameraAvailable_1, handleStreamEnded_1, camera, e_3;
3372
+ var _b, _c, _d;
3373
+ return __generator(this, function (_e) {
3374
+ switch (_e.label) {
3375
+ case 0:
3376
+ _a = get(), releaseCameraAccess = _a.releaseCameraAccess, preferIphoneContinuityCamera = _a.preferIphoneContinuityCamera, iphoneContinuityCameraDenied = _a.iphoneContinuityCameraDenied;
3377
+ releaseCameraAccess();
3378
+ _e.label = 1;
3379
+ case 1:
3380
+ _e.trys.push([1, 11,, 12]);
3381
+ return [4 /*yield*/, listAvailableCameras()];
3382
+ case 2:
3383
+ availableCameras = _e.sent();
3384
+ selectedCamera = void 0;
3385
+ debug('availableCameras', availableCameras);
3386
+ platform_1 = getPlatform();
3387
+ debug('platformDetails', platform_1);
3388
+ if (!iphoneContinuityCameraDenied && (!(platform_1 === null || platform_1 === void 0 ? void 0 : platform_1.os) || platform_1.os.family === 'OS X')) {
3389
+ iphoneContinuityCamera = availableCameras.find(function (deviceInfo) {
3390
+ return cameraLabelMatches(deviceInfo, 'iphone');
3391
+ });
3392
+ set({
3393
+ iphoneContinuityCameraAvailable: !!iphoneContinuityCamera
3394
+ });
3395
+ if (iphoneContinuityCamera && preferIphoneContinuityCamera) {
3396
+ selectedCamera = iphoneContinuityCamera;
3397
+ }
3398
+ } else if (((_b = platform_1 === null || platform_1 === void 0 ? void 0 : platform_1.os) === null || _b === void 0 ? void 0 : _b.family) === 'Android' || availableCameras.every(function (c) {
3399
+ return c.label.startsWith('camera2 ');
3400
+ })) {
3401
+ availableCameras = availableCameras.sort(function (a, b) {
3402
+ return a.label.toLowerCase().localeCompare(b.label.toLowerCase());
3403
+ });
3404
+ debug('cameras have been sorted', availableCameras);
3405
+ }
3406
+ if (config.preferFrontFacingCamera) {
3407
+ selectedCamera = availableCameras.find(function (deviceInfo) {
3408
+ return cameraLabelMatches(deviceInfo, frontCameraLabels);
3409
+ });
3410
+ }
3411
+ selectedCamera || (selectedCamera = availableCameras.find(function (deviceInfo) {
3412
+ return cameraLabelMatches(deviceInfo, 'backtriplecamera');
3413
+ }));
3414
+ selectedCamera || (selectedCamera = availableCameras.find(function (deviceInfo) {
3415
+ return cameraLabelMatches(deviceInfo, 'backdualcamera');
3416
+ }));
3417
+ selectedCamera || (selectedCamera = availableCameras.find(function (deviceInfo) {
3418
+ return cameraLabelMatches(deviceInfo, rearCameraLabels) && !cameraLabelMatches(deviceInfo, backUltraWideCameraLabels);
3419
+ }));
3420
+ selectedCamera || (selectedCamera = availableCameras.find(function (deviceInfo) {
3421
+ return cameraLabelMatches(deviceInfo, rearCameraLabels);
3422
+ }));
3423
+ // on iOS, the front facing camera always is at the first position in the list, so we skip it if all else fails.
3424
+ if (!config.preferFrontFacingCamera && ((_c = platform_1 === null || platform_1 === void 0 ? void 0 : platform_1.os) === null || _c === void 0 ? void 0 : _c.family) === 'iOS' && availableCameras.length > 0) {
3425
+ selectedCamera || (selectedCamera = availableCameras[1]);
3426
+ }
3427
+ selectedCamera || (selectedCamera = availableCameras[0]);
3428
+ debug('selectedCamera', selectedCamera);
3429
+ set({
3430
+ videoDevice: selectedCamera
3431
+ });
3432
+ constraints = {
3433
+ audio: false,
3434
+ video: {
3435
+ deviceId: {
3436
+ exact: selectedCamera.deviceId
3437
+ },
3438
+ width: {
3439
+ ideal: config.maxVideoWidth
3440
+ },
3441
+ aspectRatio: 1.777777778,
3442
+ frameRate: {}
3443
+ }
3444
+ };
3445
+ if (config.maxFps) {
3446
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
3447
+ // @ts-ignore
3448
+ constraints.video.frameRate = {
3449
+ max: config.maxFps
3450
+ };
3451
+ }
3452
+ stream = null;
3453
+ _e.label = 3;
3454
+ case 3:
3455
+ _e.trys.push([3, 5,, 6]);
3456
+ debug('obtaining camera access with constraints', constraints);
3457
+ return [4 /*yield*/, navigator.mediaDevices.getUserMedia(constraints)];
3458
+ case 4:
3459
+ stream = _e.sent();
3460
+ return [3 /*break*/, 6];
3461
+ case 5:
3462
+ e_1 = _e.sent();
3463
+ if (e_1.name === 'NotAllowedError') {
3464
+ if (preferIphoneContinuityCamera) {
3465
+ set({
3466
+ iphoneContinuityCameraAvailable: false,
3467
+ iphoneContinuityCameraDenied: true
3468
+ });
3469
+ } else {
3470
+ set({
3471
+ cameraAccessDenied: true
3472
+ });
3473
+ }
3474
+ return [2 /*return*/];
3475
+ }
3476
+ return [3 /*break*/, 6];
3477
+ case 6:
3478
+ if (!!stream) return [3 /*break*/, 10];
3479
+ _e.label = 7;
3480
+ case 7:
3481
+ _e.trys.push([7, 9,, 10]);
3482
+ return [4 /*yield*/, navigator.mediaDevices.getUserMedia({
3483
+ audio: false,
3484
+ video: true
3485
+ })];
3486
+ case 8:
3487
+ stream = _e.sent();
3488
+ debug('opened stream with no width and height constraints');
3489
+ return [3 /*break*/, 10];
3490
+ case 9:
3491
+ _e.sent();
3492
+ debug('cannot open stream at all');
3493
+ return [3 /*break*/, 10];
3494
+ case 10:
3495
+ if (!stream) {
3496
+ error('failed to open camera');
3497
+ throw new Error('failed to open camera');
3498
+ }
3499
+ debug('camera access granted with constraints', constraints);
3500
+ iphoneContinuityCameraAvailable_1 = get().iphoneContinuityCameraAvailable;
3501
+ handleStreamEnded_1 = function handleStreamEnded_1() {
3502
+ if (iphoneContinuityCameraAvailable_1 && preferIphoneContinuityCamera) {
3503
+ debug('someone unplugged the continuity camera');
3504
+ releaseCameraAccess();
3505
+ set({
3506
+ videoStream: null,
3507
+ videoDevice: null,
3508
+ iphoneContinuityCameraAvailable: false,
3509
+ iphoneContinuityCameraDenied: true
3510
+ });
3511
+ } else {
3512
+ debug('someone unplugged the webcam');
3513
+ releaseCameraAccess();
3514
+ set({
3515
+ videoStream: null,
3516
+ videoDevice: null,
3517
+ videoLoaded: false,
3518
+ cameraAccessDenied: true
3519
+ });
3520
+ }
3521
+ };
3522
+ (_d = config.videoRef.current) === null || _d === void 0 ? void 0 : _d.addEventListener('ended', handleStreamEnded_1);
3523
+ stream.getVideoTracks().forEach(function (track) {
3524
+ track.onended = handleStreamEnded_1;
3525
+ });
3526
+ camera = obtainCameraAccess(stream, selectedCamera.label, config.videoRef.current);
3527
+ set({
3528
+ camera: camera,
3529
+ cameraReady: true,
3530
+ isRearFacing: camera.isRearFacing,
3531
+ videoStream: stream
3532
+ });
3533
+ return [3 /*break*/, 12];
3534
+ case 11:
3535
+ e_3 = _e.sent();
3536
+ if (e_3.name === 'NotAllowedError') {
3537
+ error('camera access has been blocked by the user', e_3);
3538
+ set({
3539
+ cameraAccessDenied: true
3540
+ });
3541
+ } else {
3542
+ error('camera access encountered some other error', e_3);
3543
+ throw e_3;
3544
+ }
3545
+ return [3 /*break*/, 12];
3546
+ case 12:
3547
+ return [2 /*return*/];
3548
+ }
3549
+ });
3550
+ });
3551
+ },
3552
+ releaseCameraAccess: function releaseCameraAccess() {
3553
+ return __awaiter(this, void 0, void 0, function () {
3554
+ var camera;
3555
+ return __generator(this, function (_a) {
3556
+ camera = get().camera;
3557
+ if (!camera) return [2 /*return*/];
3558
+ camera.release();
3559
+ set({
3560
+ camera: null,
3561
+ cameraReady: false,
3562
+ cameraAccessDenied: false
3563
+ });
3564
+ return [2 /*return*/];
3565
+ });
3566
+ });
3567
+ },
3568
+ requestMicrophoneAccess: function requestMicrophoneAccess() {
3569
+ return __awaiter(this, void 0, void 0, function () {
3570
+ var stream;
3571
+ return __generator(this, function (_a) {
3572
+ switch (_a.label) {
3573
+ case 0:
3574
+ get().releaseMicrophoneAccess();
3575
+ _a.label = 1;
3576
+ case 1:
3577
+ _a.trys.push([1, 3,, 4]);
3578
+ return [4 /*yield*/, navigator.mediaDevices.getUserMedia({
3579
+ audio: true,
3580
+ video: false
3581
+ })];
3582
+ case 2:
3583
+ stream = _a.sent();
3584
+ set({
3585
+ audioStream: stream,
3586
+ microphoneReady: true
3587
+ });
3588
+ stream.getAudioTracks().forEach(function (track) {
3589
+ track.onended = function () {
3590
+ set({
3591
+ microphoneAccessDenied: true
3592
+ });
3593
+ };
3594
+ });
3595
+ return [3 /*break*/, 4];
3596
+ case 3:
3597
+ _a.sent();
3598
+ set({
3599
+ microphoneAccessDenied: true
3600
+ });
3601
+ return [3 /*break*/, 4];
3602
+ case 4:
3603
+ return [2 /*return*/];
3604
+ }
3605
+ });
3606
+ });
3607
+ },
3608
+ releaseMicrophoneAccess: function releaseMicrophoneAccess() {
3609
+ var _a;
3610
+ var audioStream = get().audioStream;
3611
+ (_a = audioStream === null || audioStream === void 0 ? void 0 : audioStream.stop) === null || _a === void 0 ? void 0 : _a.call(audioStream);
3612
+ audioStream === null || audioStream === void 0 ? void 0 : audioStream.getAudioTracks().forEach(function (track) {
3613
+ var _a;
3614
+ (_a = track.stop) === null || _a === void 0 ? void 0 : _a.call(track);
3615
+ });
3616
+ set({
3617
+ audioStream: null,
3618
+ microphoneReady: false,
3619
+ microphoneAccessDenied: false
3620
+ });
3621
+ }
3622
+ });
3623
+ });
3624
+ if (config.requestAccessAutomatically) {
3625
+ store.getState().requestCameraAccess();
3626
+ }
3627
+ if (config.requireMicrophoneAccess) {
3628
+ store.getState().requestMicrophoneAccess();
3629
+ }
3630
+ return _assign(_assign({}, store), {
3631
+ destroy: function destroy() {
3632
+ store.getState().releaseCameraAccess();
3633
+ store.getState().releaseMicrophoneAccess();
3634
+ }
3635
+ });
3636
+ };
3637
+ var CameraStoreContext = /*#__PURE__*/createContext(undefined);
3638
+ function CameraStoreProvider(_a) {
3639
+ var children = _a.children,
3640
+ _b = _a.requestAccessAutomatically,
3641
+ requestAccessAutomatically = _b === void 0 ? true : _b,
3642
+ _c = _a.preferIphoneContinuityCamera,
3643
+ preferIphoneContinuityCamera = _c === void 0 ? true : _c,
3644
+ _d = _a.preferFrontFacingCamera,
3645
+ preferFrontFacingCamera = _d === void 0 ? false : _d,
3646
+ _e = _a.maxVideoWidth,
3647
+ maxVideoWidth = _e === void 0 ? 1920 : _e,
3648
+ maxFps = _a.maxFps,
3649
+ onCameraAccessDenied = _a.onCameraAccessDenied,
3650
+ onMicrophoneAccessDenied = _a.onMicrophoneAccessDenied,
3651
+ _f = _a.requireMicrophoneAccess,
3652
+ requireMicrophoneAccess = _f === void 0 ? false : _f;
3653
+ var videoRef = useRef(null);
3654
+ var store = useRef();
3655
+ store.current || (store.current = createCameraStore({
3656
+ videoRef: videoRef,
3657
+ requestAccessAutomatically: requestAccessAutomatically,
3658
+ preferIphoneContinuityCamera: preferIphoneContinuityCamera,
3659
+ preferFrontFacingCamera: preferFrontFacingCamera,
3660
+ maxVideoWidth: maxVideoWidth,
3661
+ maxFps: maxFps,
3662
+ onCameraAccessDenied: onCameraAccessDenied,
3663
+ onMicrophoneAccessDenied: onMicrophoneAccessDenied,
3664
+ requireMicrophoneAccess: requireMicrophoneAccess
3665
+ }));
3666
+ useEffect(function () {
3667
+ var _a, _b, _c;
3668
+ var state = (_a = store.current) === null || _a === void 0 ? void 0 : _a.getState();
3669
+ if (!state) return;
3670
+ if (preferIphoneContinuityCamera !== (state === null || state === void 0 ? void 0 : state.preferIphoneContinuityCamera) || preferFrontFacingCamera !== (state === null || state === void 0 ? void 0 : state.preferFrontFacingCamera)) {
3671
+ (_b = store.current) === null || _b === void 0 ? void 0 : _b.setState({
3672
+ preferIphoneContinuityCamera: preferIphoneContinuityCamera,
3673
+ preferFrontFacingCamera: preferFrontFacingCamera
3674
+ });
3675
+ (_c = store.current) === null || _c === void 0 ? void 0 : _c.getState().requestCameraAccess();
3676
+ }
3677
+ }, [preferFrontFacingCamera, preferIphoneContinuityCamera]);
3678
+ useEffect(function () {
3679
+ return function () {
3680
+ var _a;
3681
+ return (_a = store.current) === null || _a === void 0 ? void 0 : _a.destroy();
3682
+ };
3683
+ }, []);
3684
+ return /*#__PURE__*/React__default.createElement(CameraStoreContext.Provider, {
3685
+ value: store.current
3686
+ }, children);
3687
+ }
3688
+ function useCameraStore(selector) {
3689
+ var store = useContext(CameraStoreContext);
3690
+ if (!store) throw new Error('useCameraStore cannot be used without Provider');
3691
+ return useStore(store, selector);
3692
+ }
3693
+
3794
3694
  var DocumentDetectionModelContext = /*#__PURE__*/createContext({
3795
3695
  startDocumentDetection: function startDocumentDetection() {
3796
3696
  return null;
@@ -3836,7 +3736,7 @@ function DocumentDetectionModelProvider(_a) {
3836
3736
  _g = _a.documentDetectionModelLoadTimeoutMs,
3837
3737
  documentDetectionModelLoadTimeoutMs = _g === void 0 ? defaultDocumentDetectionModelLoadTimeoutMs : _g,
3838
3738
  onDocumentDetectionModelError = _a.onDocumentDetectionModelError;
3839
- var _h = useContext(CameraStateContext),
3739
+ var _h = useCameraStore(),
3840
3740
  videoRef = _h.videoRef,
3841
3741
  videoLoaded = _h.videoLoaded,
3842
3742
  cameraReady = _h.cameraReady;
@@ -3859,7 +3759,8 @@ function DocumentDetectionModelProvider(_a) {
3859
3759
  modelPath: documentDetectionModelPath,
3860
3760
  modelLoadTimeoutMs: documentDetectionModelLoadTimeoutMs,
3861
3761
  scoreThreshold: documentDetectionModelScoreThreshold,
3862
- onModelError: onDocumentDetectionModelError
3762
+ onModelError: onDocumentDetectionModelError,
3763
+ videoRef: videoRef
3863
3764
  }),
3864
3765
  ready = _o.ready,
3865
3766
  modelDownloadProgress = _o.modelDownloadProgress,
@@ -3976,10 +3877,12 @@ function FocusModelProvider(_a) {
3976
3877
  var _e = useState({}),
3977
3878
  focusThresholds = _e[0],
3978
3879
  setFocusThresholds = _e[1];
3880
+ var videoRef = useCameraStore().videoRef;
3979
3881
  var _f = useLoadFocusModel({
3980
3882
  modelPath: focusModelPath,
3981
3883
  modelLoadTimeoutMs: focusModelLoadTimeoutMs,
3982
- onModelError: onFocusModelError
3884
+ onModelError: onFocusModelError,
3885
+ videoRef: videoRef
3983
3886
  }),
3984
3887
  ready = _f.ready,
3985
3888
  modelDownloadProgress = _f.modelDownloadProgress,
@@ -4651,12 +4554,12 @@ function DebugStatsPane(_a) {
4651
4554
  if (!portalLocation) return element;
4652
4555
  return /*#__PURE__*/createPortal(element, portalLocation);
4653
4556
  }
4654
- var DebugStatsPaneDiv = styled.span(templateObject_1$D || (templateObject_1$D = __makeTemplateObject(["\n font-size: 16px;\n font-family: monospace;\n position: absolute;\n left: 20px;\n bottom: 20px;\n margin-right: 20px;\n padding: 8px;\n color: limegreen;\n background: rgba(0, 0, 0, 0.5);\n z-index: 10002;\n"], ["\n font-size: 16px;\n font-family: monospace;\n position: absolute;\n left: 20px;\n bottom: 20px;\n margin-right: 20px;\n padding: 8px;\n color: limegreen;\n background: rgba(0, 0, 0, 0.5);\n z-index: 10002;\n"])));
4655
- var ObjectDetectionDebugOverlayDiv = styled.div(templateObject_2$w || (templateObject_2$w = __makeTemplateObject(["\n position: absolute;\n z-index: 1001;\n width: 100%;\n height: 100%;\n max-width: 100%;\n max-height: 100%;\n overflow: hidden;\n ", "\n"], ["\n position: absolute;\n z-index: 1001;\n width: 100%;\n height: 100%;\n max-width: 100%;\n max-height: 100%;\n overflow: hidden;\n ", "\n"])), function (_a) {
4557
+ var DebugStatsPaneDiv = styled.span(templateObject_1$F || (templateObject_1$F = __makeTemplateObject(["\n font-size: 16px;\n font-family: monospace;\n position: absolute;\n left: 20px;\n bottom: 20px;\n margin-right: 20px;\n padding: 8px;\n color: limegreen;\n background: rgba(0, 0, 0, 0.5);\n z-index: 10002;\n"], ["\n font-size: 16px;\n font-family: monospace;\n position: absolute;\n left: 20px;\n bottom: 20px;\n margin-right: 20px;\n padding: 8px;\n color: limegreen;\n background: rgba(0, 0, 0, 0.5);\n z-index: 10002;\n"])));
4558
+ var ObjectDetectionDebugOverlayDiv = styled.div(templateObject_2$y || (templateObject_2$y = __makeTemplateObject(["\n position: absolute;\n z-index: 1001;\n width: 100%;\n height: 100%;\n max-width: 100%;\n max-height: 100%;\n overflow: hidden;\n ", "\n transform-style: preserve-3d;\n"], ["\n position: absolute;\n z-index: 1001;\n width: 100%;\n height: 100%;\n max-width: 100%;\n max-height: 100%;\n overflow: hidden;\n ", "\n transform-style: preserve-3d;\n"])), function (_a) {
4656
4559
  var $flipX = _a.$flipX;
4657
4560
  return $flipX ? 'transform: scaleX(-1);' : '';
4658
4561
  });
4659
- var ObjectDetectionDebugBox = styled.div(templateObject_3$n || (templateObject_3$n = __makeTemplateObject(["\n font: 10px monospace;\n position: absolute;\n border: 3px solid ", ";\n color: ", ";\n ", "\n"], ["\n font: 10px monospace;\n position: absolute;\n border: 3px solid ", ";\n color: ", ";\n ", "\n"])), function (_a) {
4562
+ var ObjectDetectionDebugBox = styled.div(templateObject_3$p || (templateObject_3$p = __makeTemplateObject(["\n font: 10px monospace;\n position: absolute;\n border: 3px solid ", ";\n color: ", ";\n ", "\n transform-style: preserve-3d;\n"], ["\n font: 10px monospace;\n position: absolute;\n border: 3px solid ", ";\n color: ", ";\n ", "\n transform-style: preserve-3d;\n"])), function (_a) {
4660
4563
  var $color = _a.$color;
4661
4564
  return $color !== null && $color !== void 0 ? $color : 'green';
4662
4565
  }, function (_a) {
@@ -4666,7 +4569,7 @@ var ObjectDetectionDebugBox = styled.div(templateObject_3$n || (templateObject_3
4666
4569
  var $flipX = _a.$flipX;
4667
4570
  return $flipX ? 'transform: scaleX(-1);' : '';
4668
4571
  });
4669
- var FaceDetectionKeypointMarker = styled.div(templateObject_4$h || (templateObject_4$h = __makeTemplateObject(["\n position: absolute;\n width: 4px;\n height: 4px;\n border: 2px solid ", ";\n font: 10px monospace;\n color: ", ";\n border-radius: 50%;\n ", "\n"], ["\n position: absolute;\n width: 4px;\n height: 4px;\n border: 2px solid ", ";\n font: 10px monospace;\n color: ", ";\n border-radius: 50%;\n ", "\n"])), function (_a) {
4572
+ var FaceDetectionKeypointMarker = styled.div(templateObject_4$j || (templateObject_4$j = __makeTemplateObject(["\n position: absolute;\n width: 4px;\n height: 4px;\n border: 2px solid ", ";\n font: 10px monospace;\n color: ", ";\n border-radius: 50%;\n ", "\n transform-style: preserve-3d;\n"], ["\n position: absolute;\n width: 4px;\n height: 4px;\n border: 2px solid ", ";\n font: 10px monospace;\n color: ", ";\n border-radius: 50%;\n ", "\n transform-style: preserve-3d;\n"])), function (_a) {
4670
4573
  var $color = _a.$color;
4671
4574
  return $color !== null && $color !== void 0 ? $color : 'red';
4672
4575
  }, function (_a) {
@@ -4857,7 +4760,7 @@ function SelfieCaptureFaceKeypoint(_a) {
4857
4760
  }
4858
4761
  });
4859
4762
  }
4860
- var templateObject_1$D, templateObject_2$w, templateObject_3$n, templateObject_4$h;
4763
+ var templateObject_1$F, templateObject_2$y, templateObject_3$p, templateObject_4$j;
4861
4764
 
4862
4765
  var enTranslation = {};
4863
4766
 
@@ -5034,7 +4937,7 @@ function useTranslations(verbiage, fallbacks) {
5034
4937
  }, [fallbacks, i18n.language, t, verbiage]);
5035
4938
  }
5036
4939
 
5037
- var GuidanceMessageContainerDiv = styled.div(templateObject_1$C || (templateObject_1$C = __makeTemplateObject(["\n position: absolute;\n top: calc(", ");\n ", "\n font-weight: bold;\n width: 100%;\n display: flex;\n"], ["\n position: absolute;\n top: calc(", ");\n ", "\n font-weight: bold;\n width: 100%;\n display: flex;\n"])), function (_a) {
4940
+ var GuidanceMessageContainerDiv = styled.div(templateObject_1$E || (templateObject_1$E = __makeTemplateObject(["\n position: absolute;\n top: calc(", ");\n ", "\n font-weight: bold;\n width: 100%;\n display: flex;\n"], ["\n position: absolute;\n top: calc(", ");\n ", "\n font-weight: bold;\n width: 100%;\n display: flex;\n"])), function (_a) {
5038
4941
  var $top = _a.$top;
5039
4942
  return $top !== null && $top !== void 0 ? $top : '10vh';
5040
4943
  }, function (_a) {
@@ -5047,14 +4950,14 @@ var GuidanceMessageContainer = function GuidanceMessageContainer(props) {
5047
4950
  if (!portalLocation) return element;
5048
4951
  return /*#__PURE__*/createPortal(element, portalLocation);
5049
4952
  };
5050
- var GuidanceMessage = styled.div(templateObject_2$v || (templateObject_2$v = __makeTemplateObject(["\n margin-left: auto;\n margin-right: auto;\n background: ", ";\n color: ", ";\n padding: 10px 12px 8px;\n border-radius: 8px;\n z-index: 10001;\n"], ["\n margin-left: auto;\n margin-right: auto;\n background: ", ";\n color: ", ";\n padding: 10px 12px 8px;\n border-radius: 8px;\n z-index: 10001;\n"])), function (props) {
4953
+ var GuidanceMessage = styled.div(templateObject_2$x || (templateObject_2$x = __makeTemplateObject(["\n margin-left: auto;\n margin-right: auto;\n background: ", ";\n color: ", ";\n padding: 10px 12px 8px;\n border-radius: 8px;\n z-index: 10001;\n"], ["\n margin-left: auto;\n margin-right: auto;\n background: ", ";\n color: ", ";\n padding: 10px 12px 8px;\n border-radius: 8px;\n z-index: 10001;\n"])), function (props) {
5051
4954
  var _a, _b, _c, _d, _e, _f;
5052
4955
  return (_f = (_a = props.$background) !== null && _a !== void 0 ? _a : (_e = (_c = (_b = props.theme) === null || _b === void 0 ? void 0 : _b.guidanceMessages) === null || _c === void 0 ? void 0 : _c[(_d = props.$variant) !== null && _d !== void 0 ? _d : 'default']) === null || _e === void 0 ? void 0 : _e.backgroundColor) !== null && _f !== void 0 ? _f : '#ccc';
5053
4956
  }, function (props) {
5054
4957
  var _a, _b, _c, _d, _e, _f;
5055
4958
  return (_f = (_a = props.$textColor) !== null && _a !== void 0 ? _a : (_e = (_c = (_b = props.theme) === null || _b === void 0 ? void 0 : _b.guidanceMessages) === null || _c === void 0 ? void 0 : _c[(_d = props.$variant) !== null && _d !== void 0 ? _d : 'default']) === null || _e === void 0 ? void 0 : _e.textColor) !== null && _f !== void 0 ? _f : 'black';
5056
4959
  });
5057
- var templateObject_1$C, templateObject_2$v;
4960
+ var templateObject_1$E, templateObject_2$x;
5058
4961
 
5059
4962
  function OverrideWrongDocumentTypeGuidanceDialog(_a) {
5060
4963
  var _b = _a.classNames,
@@ -5069,7 +4972,7 @@ function OverrideWrongDocumentTypeGuidanceDialog(_a) {
5069
4972
  buttonText: 'OK'
5070
4973
  });
5071
4974
  if (!state.allowOverrideWrongDocumentTypeGuidance) return null;
5072
- return /*#__PURE__*/React__default.createElement(Container$1, {
4975
+ return /*#__PURE__*/React__default.createElement(Container$2, {
5073
4976
  className: classNames.container
5074
4977
  }, /*#__PURE__*/React__default.createElement(InnerContainer, {
5075
4978
  className: classNames.inner
@@ -5087,45 +4990,47 @@ function OverrideWrongDocumentTypeGuidanceDialog(_a) {
5087
4990
  }
5088
4991
  }, verbiage.buttonText))));
5089
4992
  }
5090
- var Container$1 = styled.div(templateObject_1$B || (templateObject_1$B = __makeTemplateObject(["\n position: fixed;\n left: 0;\n bottom: 0;\n width: 100dvw;\n background: ", ";\n color: ", ";\n display: flex;\n z-index: 100001;\n"], ["\n position: fixed;\n left: 0;\n bottom: 0;\n width: 100dvw;\n background: ", ";\n color: ", ";\n display: flex;\n z-index: 100001;\n"])), function (props) {
4993
+ var Container$2 = styled.div(templateObject_1$D || (templateObject_1$D = __makeTemplateObject(["\n position: fixed;\n left: 0;\n bottom: 0;\n width: 100dvw;\n background: ", ";\n color: ", ";\n display: flex;\n z-index: 100001;\n"], ["\n position: fixed;\n left: 0;\n bottom: 0;\n width: 100dvw;\n background: ", ";\n color: ", ";\n display: flex;\n z-index: 100001;\n"])), function (props) {
5091
4994
  var _a, _b, _c;
5092
4995
  return (_c = (_b = (_a = props.theme.idCapture) === null || _a === void 0 ? void 0 : _a.overrideWrongDocumentTypeGuidance) === null || _b === void 0 ? void 0 : _b.backgroundColor) !== null && _c !== void 0 ? _c : '#eed202';
5093
4996
  }, function (props) {
5094
4997
  var _a, _b, _c;
5095
4998
  return (_c = (_b = (_a = props.theme.idCapture) === null || _a === void 0 ? void 0 : _a.overrideWrongDocumentTypeGuidance) === null || _b === void 0 ? void 0 : _b.textColor) !== null && _c !== void 0 ? _c : 'black';
5096
4999
  });
5097
- var InnerContainer = styled.div(templateObject_2$u || (templateObject_2$u = __makeTemplateObject(["\n display: flex;\n flex-direction: row;\n padding: 16px 24px;\n margin: auto 0;\n width: 100%;\n"], ["\n display: flex;\n flex-direction: row;\n padding: 16px 24px;\n margin: auto 0;\n width: 100%;\n"])));
5098
- var Message = styled.span(templateObject_3$m || (templateObject_3$m = __makeTemplateObject(["\n display: block;\n margin: auto 12px auto 0;\n"], ["\n display: block;\n margin: auto 12px auto 0;\n"])));
5099
- var ButtonContainer = styled.div(templateObject_4$g || (templateObject_4$g = __makeTemplateObject(["\n display: flex;\n margin-left: auto;\n"], ["\n display: flex;\n margin-left: auto;\n"])));
5100
- var Button = styled(LoaderButton)(templateObject_5$a || (templateObject_5$a = __makeTemplateObject(["\n white-space: nowrap;\n margin: auto;\n"], ["\n white-space: nowrap;\n margin: auto;\n"])));
5101
- var templateObject_1$B, templateObject_2$u, templateObject_3$m, templateObject_4$g, templateObject_5$a;
5000
+ var InnerContainer = styled.div(templateObject_2$w || (templateObject_2$w = __makeTemplateObject(["\n display: flex;\n flex-direction: row;\n padding: 16px 24px;\n margin: auto 0;\n width: 100%;\n"], ["\n display: flex;\n flex-direction: row;\n padding: 16px 24px;\n margin: auto 0;\n width: 100%;\n"])));
5001
+ var Message = styled.span(templateObject_3$o || (templateObject_3$o = __makeTemplateObject(["\n display: block;\n margin: auto 12px auto 0;\n"], ["\n display: block;\n margin: auto 12px auto 0;\n"])));
5002
+ var ButtonContainer = styled.div(templateObject_4$i || (templateObject_4$i = __makeTemplateObject(["\n display: flex;\n margin-left: auto;\n"], ["\n display: flex;\n margin-left: auto;\n"])));
5003
+ var Button = styled(LoaderButton)(templateObject_5$b || (templateObject_5$b = __makeTemplateObject(["\n white-space: nowrap;\n margin: auto;\n"], ["\n white-space: nowrap;\n margin: auto;\n"])));
5004
+ var templateObject_1$D, templateObject_2$w, templateObject_3$o, templateObject_4$i, templateObject_5$b;
5102
5005
 
5103
5006
  var IdCapture = function IdCapture(_a) {
5104
- var _b, _c, _d, _e, _f, _g, _h, _j;
5007
+ var _b, _c, _d, _e, _f, _g, _h;
5105
5008
  var requiredDocumentType = _a.requiredDocumentType,
5106
- _k = _a.thresholds,
5107
- thresholds = _k === void 0 ? defaultIdCaptureThresholds : _k,
5009
+ _j = _a.thresholds,
5010
+ thresholds = _j === void 0 ? defaultIdCaptureThresholds : _j,
5108
5011
  guidanceMessage = _a.guidanceMessage,
5109
5012
  guidanceSatisfied = _a.guidanceSatisfied,
5110
5013
  onCapture = _a.onCapture,
5111
- _l = _a.classNames,
5112
- classNames = _l === void 0 ? {} : _l,
5113
- _m = _a.colors,
5114
- colors = _m === void 0 ? {} : _m,
5115
- _o = _a.verbiage,
5116
- rawVerbiage = _o === void 0 ? {} : _o,
5117
- _p = _a.debugMode,
5118
- debugMode = _p === void 0 ? false : _p;
5119
- var _q = useResizeObserver(),
5120
- ref = _q.ref,
5121
- _r = _q.width,
5122
- width = _r === void 0 ? 1 : _r,
5123
- _s = _q.height,
5124
- height = _s === void 0 ? 1 : _s;
5125
- var _t = useIdCaptureState(),
5126
- state = _t[0],
5127
- dispatch = _t[1];
5128
- var cameraRef = useContext(CameraStateContext).cameraRef;
5014
+ _k = _a.classNames,
5015
+ classNames = _k === void 0 ? {} : _k,
5016
+ _l = _a.colors,
5017
+ colors = _l === void 0 ? {} : _l,
5018
+ _m = _a.verbiage,
5019
+ rawVerbiage = _m === void 0 ? {} : _m,
5020
+ _o = _a.debugMode,
5021
+ debugMode = _o === void 0 ? false : _o;
5022
+ var _p = useResizeObserver(),
5023
+ ref = _p.ref,
5024
+ _q = _p.width,
5025
+ width = _q === void 0 ? 1 : _q,
5026
+ _r = _p.height,
5027
+ height = _r === void 0 ? 1 : _r;
5028
+ var _s = useIdCaptureState(),
5029
+ state = _s[0],
5030
+ dispatch = _s[1];
5031
+ var _t = useCameraStore(),
5032
+ camera = _t.camera,
5033
+ isRearFacing = _t.isRearFacing;
5129
5034
  var _u = useContext(IdCaptureModelsContext),
5130
5035
  modelsReady = _u.ready,
5131
5036
  setThresholds = _u.setThresholds,
@@ -5237,17 +5142,16 @@ var IdCapture = function IdCapture(_a) {
5237
5142
  classNames: classNames.overrideWrongDocumentTypeGuidanceDialog,
5238
5143
  verbiage: rawVerbiage.overrideWrongDocumentTypeGuidanceDialog
5239
5144
  }))), debugMode && ( /*#__PURE__*/React__default.createElement(DebugBoundingBoxOverlay, {
5240
- "$flipX": !((_j = cameraRef.current) === null || _j === void 0 ? void 0 : _j.isRearFacing),
5145
+ "$flipX": !isRearFacing,
5241
5146
  scaling: debugScalingDetails
5242
5147
  }, state.detectedObjects.map(function (obj, i) {
5243
- var _a;
5244
5148
  return /*#__PURE__*/React__default.createElement(IdCaptureDetectedObjectDebugBox, {
5245
5149
  key: i,
5246
5150
  obj: obj,
5247
5151
  scaling: debugScalingDetails,
5248
- flipX: !((_a = cameraRef.current) === null || _a === void 0 ? void 0 : _a.isRearFacing)
5152
+ flipX: !isRearFacing
5249
5153
  });
5250
- }))), debugMode && ( /*#__PURE__*/React__default.createElement(DebugStatsPane, null, cameraRef.current ? ( /*#__PURE__*/React__default.createElement(React__default.Fragment, null, "\u2705 Camera: ", cameraRef.current.label, " (", cameraRef.current.width, "x", cameraRef.current.height, ")")) : '❌ Camera not ready', /*#__PURE__*/React__default.createElement("br", null), state.frameCaptureRate > 0.75 ? '✅' : '👎', " Frame Rate:", ' ', Math.round((state.frameCaptureRate + Number.EPSILON) * 1000) / 1000, ' ', "fps (", detectionTime, "ms doc detect, ", focusPredictionTime, "ms focus)", /*#__PURE__*/React__default.createElement("br", null), modelsReady ? ( /*#__PURE__*/React__default.createElement(React__default.Fragment, null, state.detectionThresholdMet ? '✅' : '❌', " Detected Document Type: ", state.detectedDocumentType, /*#__PURE__*/React__default.createElement("br", null), state.idCardFrontDetectionThresholdMet ? '✅' : '❌', " ID Card Front Score: ", state.idCardFrontDetectionScore.toFixed(3), /*#__PURE__*/React__default.createElement("br", null), state.idCardBackDetectionThresholdMet ? '✅' : '❌', " ID Card Back Score: ", state.idCardBackDetectionScore.toFixed(3), /*#__PURE__*/React__default.createElement("br", null), state.passportDetectionThresholdMet ? '✅' : '❌', " Passport Score: ", state.passportDetectionScore.toFixed(3), /*#__PURE__*/React__default.createElement("br", null), state.focusThresholdMet ? '✅' : '❌', " Focus Score:", ' ', state.focusScore.toFixed(3), /*#__PURE__*/React__default.createElement("br", null), state.documentInBounds ? '✅' : '❌', " Document In Bounds", /*#__PURE__*/React__default.createElement("br", null), state.documentIsStable ? '✅' : '❌', " Document Is Stable", /*#__PURE__*/React__default.createElement("br", null), state.goodFramesThresholdMet ? '✅' : '❌', " Good Frame Count:", ' ', state.goodFramesCount, "/", state.goodFramesThreshold)) : ( /*#__PURE__*/React__default.createElement(React__default.Fragment, null, "\u274C Models not ready")))));
5154
+ }))), debugMode && ( /*#__PURE__*/React__default.createElement(DebugStatsPane, null, camera ? ( /*#__PURE__*/React__default.createElement(React__default.Fragment, null, "\u2705 Camera: ", camera.label, " (", camera.width, "x", camera.height, ")")) : '❌ Camera not ready', /*#__PURE__*/React__default.createElement("br", null), state.frameCaptureRate > 0.75 ? '✅' : '👎', " Frame Rate:", ' ', Math.round((state.frameCaptureRate + Number.EPSILON) * 1000) / 1000, ' ', "fps (", detectionTime, "ms doc detect, ", focusPredictionTime, "ms focus)", /*#__PURE__*/React__default.createElement("br", null), modelsReady ? ( /*#__PURE__*/React__default.createElement(React__default.Fragment, null, state.detectionThresholdMet ? '✅' : '❌', " Detected Document Type: ", state.detectedDocumentType, /*#__PURE__*/React__default.createElement("br", null), state.idCardFrontDetectionThresholdMet ? '✅' : '❌', " ID Card Front Score: ", state.idCardFrontDetectionScore.toFixed(3), /*#__PURE__*/React__default.createElement("br", null), state.idCardBackDetectionThresholdMet ? '✅' : '❌', " ID Card Back Score: ", state.idCardBackDetectionScore.toFixed(3), /*#__PURE__*/React__default.createElement("br", null), state.passportDetectionThresholdMet ? '✅' : '❌', " Passport Score: ", state.passportDetectionScore.toFixed(3), /*#__PURE__*/React__default.createElement("br", null), state.focusThresholdMet ? '✅' : '❌', " Focus Score:", ' ', state.focusScore.toFixed(3), /*#__PURE__*/React__default.createElement("br", null), state.documentInBounds ? '✅' : '❌', " Document In Bounds", /*#__PURE__*/React__default.createElement("br", null), state.documentIsStable ? '✅' : '❌', " Document Is Stable", /*#__PURE__*/React__default.createElement("br", null), state.goodFramesThresholdMet ? '✅' : '❌', " Good Frame Count:", ' ', state.goodFramesCount, "/", state.goodFramesThreshold)) : ( /*#__PURE__*/React__default.createElement(React__default.Fragment, null, "\u274C Models not ready")))));
5251
5155
  };
5252
5156
  var timeSince = function timeSince(t) {
5253
5157
  if (!t) return 0;
@@ -5264,7 +5168,9 @@ var CameraAccessDeniedOverlay = function CameraAccessDeniedOverlay(_a) {
5264
5168
  colors = _e === void 0 ? {} : _e,
5265
5169
  _f = _a.verbiage,
5266
5170
  rawVerbiage = _f === void 0 ? {} : _f;
5267
- var requestCameraAccess = useContext(CameraStateContext).requestCameraAccess;
5171
+ var requestCameraAccess = useCameraStore(function (state) {
5172
+ return state.requestCameraAccess;
5173
+ });
5268
5174
  assets.imageUrl || (assets.imageUrl = DEFAULT_CDN_URL + '/camera-disable-icon.png');
5269
5175
  var verbiage = useTranslations(rawVerbiage, {
5270
5176
  headingText: 'Your camera permission is disabled',
@@ -5293,13 +5199,13 @@ var CameraAccessDeniedOverlay = function CameraAccessDeniedOverlay(_a) {
5293
5199
  finished: true
5294
5200
  }, verbiage.retryBtnText)));
5295
5201
  };
5296
- var StyledOverlayInner$3 = styled(OverlayInner$2)(templateObject_1$A || (templateObject_1$A = __makeTemplateObject(["\n max-width: 500px;\n height: auto;\n margin: auto;\n"], ["\n max-width: 500px;\n height: auto;\n margin: auto;\n"])));
5297
- var StyledOverlayImageContainer$3 = styled(OverlayImageContainer)(templateObject_2$t || (templateObject_2$t = __makeTemplateObject(["\n flex-grow: 0;\n"], ["\n flex-grow: 0;\n"])));
5298
- var Description$4 = styled.p(templateObject_3$l || (templateObject_3$l = __makeTemplateObject(["\n line-height: 1.5;\n margin-bottom: 50px;\n"], ["\n line-height: 1.5;\n margin-bottom: 50px;\n"])));
5299
- var RetryButton$1 = styled(LoaderButton)(templateObject_4$f || (templateObject_4$f = __makeTemplateObject(["\n width: 200px;\n margin: 0 auto;\n"], ["\n width: 200px;\n margin: 0 auto;\n"])));
5300
- var templateObject_1$A, templateObject_2$t, templateObject_3$l, templateObject_4$f;
5202
+ var StyledOverlayInner$3 = styled(OverlayInner$2)(templateObject_1$C || (templateObject_1$C = __makeTemplateObject(["\n max-width: 500px;\n height: auto;\n margin: auto;\n"], ["\n max-width: 500px;\n height: auto;\n margin: auto;\n"])));
5203
+ var StyledOverlayImageContainer$3 = styled(OverlayImageContainer)(templateObject_2$v || (templateObject_2$v = __makeTemplateObject(["\n flex-grow: 0;\n"], ["\n flex-grow: 0;\n"])));
5204
+ var Description$4 = styled.p(templateObject_3$n || (templateObject_3$n = __makeTemplateObject(["\n line-height: 1.5;\n margin-bottom: 50px;\n"], ["\n line-height: 1.5;\n margin-bottom: 50px;\n"])));
5205
+ var RetryButton$1 = styled(LoaderButton)(templateObject_4$h || (templateObject_4$h = __makeTemplateObject(["\n width: 200px;\n margin: 0 auto;\n"], ["\n width: 200px;\n margin: 0 auto;\n"])));
5206
+ var templateObject_1$C, templateObject_2$v, templateObject_3$n, templateObject_4$h;
5301
5207
 
5302
- var ExitCaptureStyledButton = styled.button(templateObject_1$z || (templateObject_1$z = __makeTemplateObject(["\n position: absolute;\n top: 12px;\n right: 12px;\n font-size: 20px;\n width: 32px;\n height: 32px;\n font-family: monospace;\n z-index: 1002;\n border: none;\n border-radius: 4px;\n background: #ccc;\n cursor: pointer;\n padding: 8px;\n box-sizing: border-box;\n display: flex;\n\n &:hover {\n background: #ddd;\n }\n\n & > svg {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n }\n"], ["\n position: absolute;\n top: 12px;\n right: 12px;\n font-size: 20px;\n width: 32px;\n height: 32px;\n font-family: monospace;\n z-index: 1002;\n border: none;\n border-radius: 4px;\n background: #ccc;\n cursor: pointer;\n padding: 8px;\n box-sizing: border-box;\n display: flex;\n\n &:hover {\n background: #ddd;\n }\n\n & > svg {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n }\n"])));
5208
+ var ExitCaptureStyledButton = styled.button(templateObject_1$B || (templateObject_1$B = __makeTemplateObject(["\n position: absolute;\n top: 12px;\n right: 12px;\n font-size: 20px;\n width: 32px;\n height: 32px;\n font-family: monospace;\n z-index: 1002;\n border: none;\n border-radius: 4px;\n background: #ccc;\n cursor: pointer;\n padding: 8px;\n box-sizing: border-box;\n display: flex;\n\n &:hover {\n background: #ddd;\n }\n\n & > svg {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n }\n"], ["\n position: absolute;\n top: 12px;\n right: 12px;\n font-size: 20px;\n width: 32px;\n height: 32px;\n font-family: monospace;\n z-index: 1002;\n border: none;\n border-radius: 4px;\n background: #ccc;\n cursor: pointer;\n padding: 8px;\n box-sizing: border-box;\n display: flex;\n\n &:hover {\n background: #ddd;\n }\n\n & > svg {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n }\n"])));
5303
5209
  var ExitCaptureButton = function ExitCaptureButton(_a) {
5304
5210
  var onClick = _a.onClick,
5305
5211
  className = _a.className;
@@ -5343,10 +5249,10 @@ var ExitCaptureButton = function ExitCaptureButton(_a) {
5343
5249
  y2: "19.75"
5344
5250
  }))));
5345
5251
  };
5346
- var templateObject_1$z;
5252
+ var templateObject_1$B;
5347
5253
 
5348
- var ButtonsRow = styled.div(templateObject_1$y || (templateObject_1$y = __makeTemplateObject(["\n display: flex;\n gap: 0 15px;\n justify-content: center;\n"], ["\n display: flex;\n gap: 0 15px;\n justify-content: center;\n"])));
5349
- var templateObject_1$y;
5254
+ var ButtonsRow = styled.div(templateObject_1$A || (templateObject_1$A = __makeTemplateObject(["\n display: flex;\n gap: 0 15px;\n justify-content: center;\n"], ["\n display: flex;\n gap: 0 15px;\n justify-content: center;\n"])));
5255
+ var templateObject_1$A;
5350
5256
 
5351
5257
  function IdCaptureLoadingGraphic(props) {
5352
5258
  var isMobile = window.innerHeight > window.innerWidth;
@@ -5375,25 +5281,15 @@ function IdCaptureLoadingGraphicDesktop(_a) {
5375
5281
  var theme = useTheme();
5376
5282
  var accentColor = (_d = (_c = (_b = theme.idCapture) === null || _b === void 0 ? void 0 : _b.loadingOverlay) === null || _c === void 0 ? void 0 : _c.loadingGraphicAccentColor) !== null && _d !== void 0 ? _d : 'var(--idm-color-positive-600)';
5377
5283
  var accentOpacity = (_g = (_f = (_e = theme.idCapture) === null || _e === void 0 ? void 0 : _e.loadingOverlay) === null || _f === void 0 ? void 0 : _f.loadingGraphicAccentOpacity) !== null && _g !== void 0 ? _g : 0.2;
5378
- return /*#__PURE__*/React__default.createElement("div", {
5379
- style: {
5380
- display: 'flex',
5381
- width: '100%',
5382
- height: '100%'
5383
- }
5384
- }, /*#__PURE__*/React__default.createElement("svg", {
5284
+ return /*#__PURE__*/React__default.createElement(LoadingGraphicWrapper, null, /*#__PURE__*/React__default.createElement(LoadingGraphicSvg, {
5385
5285
  className: className,
5386
5286
  width: width,
5387
5287
  height: height,
5288
+ "$frame": frame,
5289
+ "$borderColor": accentColor,
5388
5290
  viewBox: "0 0 698 452",
5389
5291
  fill: "none",
5390
- xmlns: "http://www.w3.org/2000/svg",
5391
- style: {
5392
- margin: 'auto',
5393
- transform: "scale(".concat(frame > 1 ? 1 : frame === 1 ? 1.25 : 0.75, ")"),
5394
- transition: 'transform 0.2s linear, border-width 0.2s linear',
5395
- border: "".concat(frame >= 5 ? 10 : 0, "px solid ").concat(accentColor)
5396
- }
5292
+ xmlns: "http://www.w3.org/2000/svg"
5397
5293
  }, /*#__PURE__*/React__default.createElement("g", {
5398
5294
  filter: frame === 1 ? 'url(#filter0_f_91_884)' : undefined
5399
5295
  }, /*#__PURE__*/React__default.createElement("path", {
@@ -5621,12 +5517,9 @@ function IdCaptureLoadingGraphicMobile(_a) {
5621
5517
  viewBox: "0 0 428 747",
5622
5518
  fill: "none",
5623
5519
  xmlns: "http://www.w3.org/2000/svg"
5624
- }, /*#__PURE__*/React__default.createElement("g", {
5520
+ }, /*#__PURE__*/React__default.createElement(LoadingGraphicCardGroup, {
5625
5521
  id: "card",
5626
- style: {
5627
- transform: "translate(".concat(frame < 1 ? '-500px' : '0', ", 0)"),
5628
- transition: 'transform 0.3s linear'
5629
- }
5522
+ "$offScreen": frame < 1
5630
5523
  }, /*#__PURE__*/React__default.createElement("path", {
5631
5524
  d: "M76.5001 181.274C76.5001 176.027 80.7534 171.774 86.0001 171.774L342 171.774C347.247 171.774 351.5 176.027 351.5 181.274L351.5 586C351.5 591.247 347.247 595.5 342 595.5L86.0001 595.5C80.7534 595.5 76.5001 591.247 76.5001 586L76.5001 181.274Z",
5632
5525
  fill: "#F3F3F3",
@@ -5809,13 +5702,10 @@ function IdCaptureLoadingGraphicMobile(_a) {
5809
5702
  strokeWidth: "5",
5810
5703
  strokeLinecap: "round",
5811
5704
  strokeLinejoin: "round"
5812
- }))), /*#__PURE__*/React__default.createElement("g", {
5705
+ }))), /*#__PURE__*/React__default.createElement(LoadingGraphicPhoneGroup, {
5813
5706
  id: "phone",
5814
5707
  clipPath: "url(#clip0_29_1778)",
5815
- style: {
5816
- transform: "translate(".concat(frame < 1 ? '40px' : '0', ", 0)"),
5817
- transition: 'transform 0.3s linear'
5818
- }
5708
+ "$offScreen": frame < 1
5819
5709
  }, /*#__PURE__*/React__default.createElement("rect", {
5820
5710
  x: "154",
5821
5711
  y: "693",
@@ -5843,6 +5733,21 @@ function IdCaptureLoadingGraphicMobile(_a) {
5843
5733
  fill: "white"
5844
5734
  }))));
5845
5735
  }
5736
+ var LoadingGraphicWrapper = styled.div(templateObject_1$z || (templateObject_1$z = __makeTemplateObject(["\n display: flex;\n width: 100%;\n height: 100%;\n"], ["\n display: flex;\n width: 100%;\n height: 100%;\n"])));
5737
+ var LoadingGraphicSvg = styled.svg(templateObject_2$u || (templateObject_2$u = __makeTemplateObject(["\n margin: auto;\n transform: scale(\n ", "\n );\n transform-style: preserve-3d;\n transition:\n transform 0.2s linear,\n border-width 0.2s linear;\n border: ", "px solid\n ", ";\n"], ["\n margin: auto;\n transform: scale(\n ", "\n );\n transform-style: preserve-3d;\n transition:\n transform 0.2s linear,\n border-width 0.2s linear;\n border: ", "px solid\n ", ";\n"])), function (props) {
5738
+ return props.$frame > 1 ? 1 : props.$frame === 1 ? 1.25 : 0.75;
5739
+ }, function (props) {
5740
+ return props.$frame >= 5 ? 10 : 0;
5741
+ }, function (props) {
5742
+ return props.$borderColor;
5743
+ });
5744
+ var LoadingGraphicCardGroup = styled.g(templateObject_3$m || (templateObject_3$m = __makeTemplateObject(["\n transform: translate(", ", 0);\n transform-style: preserve-3d;\n transition: transform 0.3s linear;\n"], ["\n transform: translate(", ", 0);\n transform-style: preserve-3d;\n transition: transform 0.3s linear;\n"])), function (props) {
5745
+ return props.$offScreen ? '-500px' : '0';
5746
+ });
5747
+ var LoadingGraphicPhoneGroup = styled.g(templateObject_4$g || (templateObject_4$g = __makeTemplateObject(["\n transform: translate(", ", 0);\n transform-style: preserve-3d;\n transition: transform 0.3s linear;\n"], ["\n transform: translate(", ", 0);\n transform-style: preserve-3d;\n transition: transform 0.3s linear;\n"])), function (props) {
5748
+ return props.$offScreen ? '40px' : '0';
5749
+ });
5750
+ var templateObject_1$z, templateObject_2$u, templateObject_3$m, templateObject_4$g;
5846
5751
 
5847
5752
  function LoadingListItemIndicator(_a) {
5848
5753
  var _b = _a.state,
@@ -5913,7 +5818,7 @@ var IdCaptureLoadingOverlayDefault = function IdCaptureLoadingOverlayDefault(_a)
5913
5818
  var _o = useContext(IdCaptureModelsContext),
5914
5819
  modelsReady = _o.ready,
5915
5820
  modelDownloadProgress = _o.modelDownloadProgress;
5916
- var _p = useContext(CameraStateContext),
5821
+ var _p = useCameraStore(),
5917
5822
  cameraReady = _p.cameraReady,
5918
5823
  cameraAccessDenied = _p.cameraAccessDenied,
5919
5824
  iphoneContinuityCameraAvailable = _p.iphoneContinuityCameraAvailable,
@@ -6037,24 +5942,24 @@ var IdCaptureLoadingOverlayDefault = function IdCaptureLoadingOverlayDefault(_a)
6037
5942
  }
6038
5943
  }, verbiage.continueText))))));
6039
5944
  };
6040
- var OverlayInner$1 = styled.div(templateObject_1$x || (templateObject_1$x = __makeTemplateObject(["\n height: 100dvh;\n display: flex;\n flex-direction: column;\n background: ", ";\n color: ", ";\n"], ["\n height: 100dvh;\n display: flex;\n flex-direction: column;\n background: ", ";\n color: ", ";\n"])), function (props) {
5945
+ var OverlayInner$1 = styled.div(templateObject_1$y || (templateObject_1$y = __makeTemplateObject(["\n height: 100dvh;\n display: flex;\n flex-direction: column;\n background: ", ";\n color: ", ";\n"], ["\n height: 100dvh;\n display: flex;\n flex-direction: column;\n background: ", ";\n color: ", ";\n"])), function (props) {
6041
5946
  var _a, _b, _c, _d;
6042
5947
  return (_d = (_c = (_b = (_a = props.theme) === null || _a === void 0 ? void 0 : _a.idCapture) === null || _b === void 0 ? void 0 : _b.loadingOverlay) === null || _c === void 0 ? void 0 : _c.backgroundColor) !== null && _d !== void 0 ? _d : '#ecedf3';
6043
5948
  }, function (props) {
6044
5949
  var _a, _b, _c, _d;
6045
5950
  return (_d = (_c = (_b = (_a = props.theme) === null || _a === void 0 ? void 0 : _a.idCapture) === null || _b === void 0 ? void 0 : _b.loadingOverlay) === null || _c === void 0 ? void 0 : _c.textColor) !== null && _d !== void 0 ? _d : 'black';
6046
5951
  });
6047
- var OverlayHeader$1 = styled.div(templateObject_2$s || (templateObject_2$s = __makeTemplateObject(["\n text-align: ", ";\n display: flex;\n flex-direction: column;\n flex-wrap: nowrap;\n ", "\n padding-bottom: 0;\n"], ["\n text-align: ", ";\n display: flex;\n flex-direction: column;\n flex-wrap: nowrap;\n ", "\n padding-bottom: 0;\n"])), function (props) {
5952
+ var OverlayHeader$1 = styled.div(templateObject_2$t || (templateObject_2$t = __makeTemplateObject(["\n text-align: ", ";\n display: flex;\n flex-direction: column;\n flex-wrap: nowrap;\n ", "\n padding-bottom: 0;\n"], ["\n text-align: ", ";\n display: flex;\n flex-direction: column;\n flex-wrap: nowrap;\n ", "\n padding-bottom: 0;\n"])), function (props) {
6048
5953
  var _a;
6049
5954
  return (_a = props.theme.textAlign) !== null && _a !== void 0 ? _a : 'center';
6050
5955
  }, function (props) {
6051
5956
  return props.theme.padding ? "box-sizing: border-box; padding: ".concat(props.theme.padding, ";") : "";
6052
5957
  });
6053
- var StyledGuidanceMessage$2 = styled(GuidanceMessage)(templateObject_3$k || (templateObject_3$k = __makeTemplateObject(["\n padding: 16px 24px;\n margin-top: 16px;\n font-size: 18px;\n font-weight: bold;\n background: white;\n box-shadow:\n 0 1px 3px 0 rgb(0 0 0 / 0.1),\n 0 1px 2px -1px rgb(0 0 0 / 0.1);\n"], ["\n padding: 16px 24px;\n margin-top: 16px;\n font-size: 18px;\n font-weight: bold;\n background: white;\n box-shadow:\n 0 1px 3px 0 rgb(0 0 0 / 0.1),\n 0 1px 2px -1px rgb(0 0 0 / 0.1);\n"])));
6054
- var StyledOverlayImageContainer$2 = styled(OverlayImageContainer)(templateObject_4$e || (templateObject_4$e = __makeTemplateObject(["\n padding: 0 0 100px;\n\n & > svg {\n height: 100%;\n }\n"], ["\n padding: 0 0 100px;\n\n & > svg {\n height: 100%;\n }\n"])));
6055
- var ContinuityCameraCheckboxContainer$1 = styled.div(templateObject_5$9 || (templateObject_5$9 = __makeTemplateObject(["\n position: fixed;\n bottom: 120px;\n width: 100dvw;\n display: flex;\n"], ["\n position: fixed;\n bottom: 120px;\n width: 100dvw;\n display: flex;\n"])));
6056
- var ContinuityCameraCheckboxInner = styled(GuidanceMessage)(templateObject_6$7 || (templateObject_6$7 = __makeTemplateObject(["\n padding: 12px 18px;\n margin: 0 auto;\n font-size: 14px;\n font-weight: bold;\n background: white;\n box-shadow:\n 0 1px 3px 0 rgb(0 0 0 / 0.1),\n 0 1px 2px -1px rgb(0 0 0 / 0.1);\n"], ["\n padding: 12px 18px;\n margin: 0 auto;\n font-size: 14px;\n font-weight: bold;\n background: white;\n box-shadow:\n 0 1px 3px 0 rgb(0 0 0 / 0.1),\n 0 1px 2px -1px rgb(0 0 0 / 0.1);\n"])));
6057
- var ContinuityCameraCheckbox$1 = styled.input(templateObject_7$4 || (templateObject_7$4 = __makeTemplateObject(["\n margin-right: 8px;\n"], ["\n margin-right: 8px;\n"])));
5958
+ var StyledGuidanceMessage$2 = styled(GuidanceMessage)(templateObject_3$l || (templateObject_3$l = __makeTemplateObject(["\n padding: 16px 24px;\n margin-top: 16px;\n font-size: 18px;\n font-weight: bold;\n background: white;\n box-shadow:\n 0 1px 3px 0 rgb(0 0 0 / 0.1),\n 0 1px 2px -1px rgb(0 0 0 / 0.1);\n"], ["\n padding: 16px 24px;\n margin-top: 16px;\n font-size: 18px;\n font-weight: bold;\n background: white;\n box-shadow:\n 0 1px 3px 0 rgb(0 0 0 / 0.1),\n 0 1px 2px -1px rgb(0 0 0 / 0.1);\n"])));
5959
+ var StyledOverlayImageContainer$2 = styled(OverlayImageContainer)(templateObject_4$f || (templateObject_4$f = __makeTemplateObject(["\n padding: 0 0 100px;\n\n & > svg {\n height: 100%;\n }\n"], ["\n padding: 0 0 100px;\n\n & > svg {\n height: 100%;\n }\n"])));
5960
+ var ContinuityCameraCheckboxContainer$1 = styled.div(templateObject_5$a || (templateObject_5$a = __makeTemplateObject(["\n position: fixed;\n bottom: 120px;\n width: 100dvw;\n display: flex;\n"], ["\n position: fixed;\n bottom: 120px;\n width: 100dvw;\n display: flex;\n"])));
5961
+ var ContinuityCameraCheckboxInner = styled(GuidanceMessage)(templateObject_6$8 || (templateObject_6$8 = __makeTemplateObject(["\n padding: 12px 18px;\n margin: 0 auto;\n font-size: 14px;\n font-weight: bold;\n background: white;\n box-shadow:\n 0 1px 3px 0 rgb(0 0 0 / 0.1),\n 0 1px 2px -1px rgb(0 0 0 / 0.1);\n"], ["\n padding: 12px 18px;\n margin: 0 auto;\n font-size: 14px;\n font-weight: bold;\n background: white;\n box-shadow:\n 0 1px 3px 0 rgb(0 0 0 / 0.1),\n 0 1px 2px -1px rgb(0 0 0 / 0.1);\n"])));
5962
+ var ContinuityCameraCheckbox$1 = styled.input(templateObject_7$5 || (templateObject_7$5 = __makeTemplateObject(["\n margin-right: 8px;\n"], ["\n margin-right: 8px;\n"])));
6058
5963
  var StyledButtonsRow$a = styled(ButtonsRow)(templateObject_8$2 || (templateObject_8$2 = __makeTemplateObject(["\n display: flex;\n flex-direction: row;\n padding: 15px 25px;\n height: 100px;\n color: ", ";\n ", "\n position: fixed;\n bottom: 0;\n left: 0;\n width: 100dvw;\n box-sizing: border-box;\n"], ["\n display: flex;\n flex-direction: row;\n padding: 15px 25px;\n height: 100px;\n color: ", ";\n ", "\n position: fixed;\n bottom: 0;\n left: 0;\n width: 100dvw;\n box-sizing: border-box;\n"])), function (props) {
6059
5964
  var _a, _b, _c, _d;
6060
5965
  return (_d = (_c = (_b = (_a = props.theme) === null || _a === void 0 ? void 0 : _a.idCapture) === null || _b === void 0 ? void 0 : _b.loadingOverlay) === null || _c === void 0 ? void 0 : _c.progressBarTextColor) !== null && _d !== void 0 ? _d : 'white';
@@ -6080,7 +5985,7 @@ var ProgressIndicator$1 = styled.span(templateObject_15$1 || (templateObject_15$
6080
5985
  var _a, _b, _c, _d;
6081
5986
  return (_d = (_c = (_b = (_a = props.theme) === null || _a === void 0 ? void 0 : _a.idCapture) === null || _b === void 0 ? void 0 : _b.loadingOverlay) === null || _c === void 0 ? void 0 : _c.progressBarIndicatorColor) !== null && _d !== void 0 ? _d : 'var(--idm-color-positive-600)';
6082
5987
  }, progressBarAnimation);
6083
- var CustomLoadingGraphic$1 = styled.img(templateObject_16 || (templateObject_16 = __makeTemplateObject([""], [""])));
5988
+ var CustomLoadingGraphic$1 = styled.img(templateObject_16 || (templateObject_16 = __makeTemplateObject(["\n transform-style: preserve-3d;\n"], ["\n transform-style: preserve-3d;\n"])));
6084
5989
  var ContinueButtonContainer$1 = styled.div(templateObject_17 || (templateObject_17 = __makeTemplateObject(["\n display: flex;\n"], ["\n display: flex;\n"])));
6085
5990
  var ContinueButton$1 = styled(LoaderButton)(templateObject_18 || (templateObject_18 = __makeTemplateObject(["\n margin: auto;\n white-space: nowrap;\n ", "\n ", "\n"], ["\n margin: auto;\n white-space: nowrap;\n ", "\n ", "\n"])), function (props) {
6086
5991
  var _a, _b, _c, _d, _e, _f;
@@ -6089,10 +5994,10 @@ var ContinueButton$1 = styled(LoaderButton)(templateObject_18 || (templateObject
6089
5994
  var _a, _b, _c, _d, _e, _f;
6090
5995
  return ((_c = (_b = (_a = props.theme) === null || _a === void 0 ? void 0 : _a.idCapture) === null || _b === void 0 ? void 0 : _b.loadingOverlay) === null || _c === void 0 ? void 0 : _c.continueBtnBorder) ? "border: ".concat((_f = (_e = (_d = props.theme) === null || _d === void 0 ? void 0 : _d.idCapture) === null || _e === void 0 ? void 0 : _e.loadingOverlay) === null || _f === void 0 ? void 0 : _f.continueBtnBorder, ";") : '';
6091
5996
  });
6092
- var templateObject_1$x, templateObject_2$s, templateObject_3$k, templateObject_4$e, templateObject_5$9, templateObject_6$7, templateObject_7$4, templateObject_8$2, templateObject_9$2, templateObject_10$1, templateObject_11$1, templateObject_12$1, templateObject_13$1, templateObject_14$1, templateObject_15$1, templateObject_16, templateObject_17, templateObject_18;
5997
+ var templateObject_1$y, templateObject_2$t, templateObject_3$l, templateObject_4$f, templateObject_5$a, templateObject_6$8, templateObject_7$5, templateObject_8$2, templateObject_9$2, templateObject_10$1, templateObject_11$1, templateObject_12$1, templateObject_13$1, templateObject_14$1, templateObject_15$1, templateObject_16, templateObject_17, templateObject_18;
6093
5998
 
6094
- var ContinuityCameraCheckboxContainer = styled.div(templateObject_1$w || (templateObject_1$w = __makeTemplateObject(["\n margin-top: 15px;\n margin-bottom: 15px;\n"], ["\n margin-top: 15px;\n margin-bottom: 15px;\n"])));
6095
- var ContinuityCameraCheckbox = styled.input(templateObject_2$r || (templateObject_2$r = __makeTemplateObject(["\n margin-right: 8px;\n"], ["\n margin-right: 8px;\n"])));
5999
+ var ContinuityCameraCheckboxContainer = styled.div(templateObject_1$x || (templateObject_1$x = __makeTemplateObject(["\n margin-top: 15px;\n margin-bottom: 15px;\n"], ["\n margin-top: 15px;\n margin-bottom: 15px;\n"])));
6000
+ var ContinuityCameraCheckbox = styled.input(templateObject_2$s || (templateObject_2$s = __makeTemplateObject(["\n margin-right: 8px;\n"], ["\n margin-right: 8px;\n"])));
6096
6001
  var IdCaptureLoadingOverlayLegacy = function IdCaptureLoadingOverlayLegacy(_a) {
6097
6002
  var _b, _c, _d, _e;
6098
6003
  var onDismissed = _a.onDismissed,
@@ -6111,7 +6016,14 @@ var IdCaptureLoadingOverlayLegacy = function IdCaptureLoadingOverlayLegacy(_a) {
6111
6016
  var _l = useContext(IdCaptureModelsContext),
6112
6017
  modelsReady = _l.ready,
6113
6018
  modelDownloadProgress = _l.modelDownloadProgress;
6114
- var _m = useContext(CameraStateContext),
6019
+ var _m = useCameraStore(useShallow(function (state) {
6020
+ return {
6021
+ cameraReady: state.cameraReady,
6022
+ cameraAccessDenied: state.cameraAccessDenied,
6023
+ iphoneContinuityCameraAvailable: state.iphoneContinuityCameraAvailable,
6024
+ setIphoneContinuityCameraAllowed: state.setIphoneContinuityCameraAllowed
6025
+ };
6026
+ })),
6115
6027
  cameraReady = _m.cameraReady,
6116
6028
  cameraAccessDenied = _m.cameraAccessDenied,
6117
6029
  iphoneContinuityCameraAvailable = _m.iphoneContinuityCameraAvailable,
@@ -6203,7 +6115,7 @@ var IdCaptureLoadingOverlayLegacy = function IdCaptureLoadingOverlayLegacy(_a) {
6203
6115
  }
6204
6116
  }, cameraReady && modelsReady ? verbiage.continueText : modelsReady ? verbiage.cameraInitializingText : modelDownloadProgress >= 100 ? verbiage.modelsWarmingUpText : "".concat(verbiage.downloadingText, " (").concat(modelDownloadProgress, "%)"))));
6205
6117
  };
6206
- var templateObject_1$w, templateObject_2$r;
6118
+ var templateObject_1$x, templateObject_2$s;
6207
6119
 
6208
6120
  var components$1 = {
6209
6121
  "default": IdCaptureLoadingOverlayDefault,
@@ -6261,9 +6173,9 @@ var CapturedDocumentImg = function CapturedDocumentImg(_a) {
6261
6173
  });
6262
6174
  };
6263
6175
 
6264
- var Card = styled.div(templateObject_1$v || (templateObject_1$v = __makeTemplateObject(["\n background: white;\n border-radius: 8px;\n padding: 24px;\n box-shadow: 0 0 8px rgba(0, 0, 0, 0.1);\n margin: auto;\n max-width: min(500px, 100dvw - 48px);\n max-height: 100%;\n overflow: auto;\n box-sizing: border-box;\n"], ["\n background: white;\n border-radius: 8px;\n padding: 24px;\n box-shadow: 0 0 8px rgba(0, 0, 0, 0.1);\n margin: auto;\n max-width: min(500px, 100dvw - 48px);\n max-height: 100%;\n overflow: auto;\n box-sizing: border-box;\n"])));
6265
- var FlexCard = styled(Card)(templateObject_2$q || (templateObject_2$q = __makeTemplateObject(["\n display: flex;\n flex-direction: column;\n"], ["\n display: flex;\n flex-direction: column;\n"])));
6266
- var templateObject_1$v, templateObject_2$q;
6176
+ var Card = styled.div(templateObject_1$w || (templateObject_1$w = __makeTemplateObject(["\n background: white;\n border-radius: 8px;\n padding: 24px;\n box-shadow: 0 0 8px rgba(0, 0, 0, 0.1);\n margin: auto;\n max-width: min(500px, 100dvw - 48px);\n max-height: 100%;\n overflow: auto;\n box-sizing: border-box;\n"], ["\n background: white;\n border-radius: 8px;\n padding: 24px;\n box-shadow: 0 0 8px rgba(0, 0, 0, 0.1);\n margin: auto;\n max-width: min(500px, 100dvw - 48px);\n max-height: 100%;\n overflow: auto;\n box-sizing: border-box;\n"])));
6177
+ var FlexCard = styled(Card)(templateObject_2$r || (templateObject_2$r = __makeTemplateObject(["\n display: flex;\n flex-direction: column;\n"], ["\n display: flex;\n flex-direction: column;\n"])));
6178
+ var templateObject_1$w, templateObject_2$r;
6267
6179
 
6268
6180
  var IdCaptureSuccess = function IdCaptureSuccess(_a) {
6269
6181
  var capturedDocuments = _a.capturedDocuments,
@@ -6338,13 +6250,13 @@ var IdCaptureSuccess = function IdCaptureSuccess(_a) {
6338
6250
  finished: true
6339
6251
  }, verbiage.retryText)))));
6340
6252
  };
6341
- var Heading$a = styled.h1(templateObject_1$u || (templateObject_1$u = __makeTemplateObject(["\n font-size: 1.5rem;\n margin-top: 0;\n margin-bottom: 1.5rem;\n"], ["\n font-size: 1.5rem;\n margin-top: 0;\n margin-bottom: 1.5rem;\n"])));
6342
- var ImagesContainer = styled(OverlayImageContainer)(templateObject_2$p || (templateObject_2$p = __makeTemplateObject(["\n flex-grow: 1;\n overflow-y: auto;\n padding-bottom: 0;\n max-width: 100%;\n"], ["\n flex-grow: 1;\n overflow-y: auto;\n padding-bottom: 0;\n max-width: 100%;\n"])));
6343
- var ImageRow = styled(OverlayImageRow)(templateObject_3$j || (templateObject_3$j = __makeTemplateObject(["\n max-width: 100%;\n flex-direction: column;\n display: grid;\n grid-gap: 12px;\n //grid-template-columns: 1fr 1fr;\n"], ["\n max-width: 100%;\n flex-direction: column;\n display: grid;\n grid-gap: 12px;\n //grid-template-columns: 1fr 1fr;\n"])));
6344
- var ImageCol$1 = styled.div(templateObject_4$d || (templateObject_4$d = __makeTemplateObject(["\n width: 100%;\n max-height: none !important;\n"], ["\n width: 100%;\n max-height: none !important;\n"])));
6345
- var StyledImage = styled(CapturedDocumentImg)(templateObject_5$8 || (templateObject_5$8 = __makeTemplateObject(["\n width: 100%;\n border-radius: 12px;\n"], ["\n width: 100%;\n border-radius: 12px;\n"])));
6346
- var DebugPre = styled.pre(templateObject_6$6 || (templateObject_6$6 = __makeTemplateObject(["\n text-align: left;\n max-width: min(450px, 100dvw - 100px);\n overflow-x: auto;\n"], ["\n text-align: left;\n max-width: min(450px, 100dvw - 100px);\n overflow-x: auto;\n"])));
6347
- var templateObject_1$u, templateObject_2$p, templateObject_3$j, templateObject_4$d, templateObject_5$8, templateObject_6$6;
6253
+ var Heading$a = styled.h1(templateObject_1$v || (templateObject_1$v = __makeTemplateObject(["\n font-size: 1.5rem;\n margin-top: 0;\n margin-bottom: 1.5rem;\n"], ["\n font-size: 1.5rem;\n margin-top: 0;\n margin-bottom: 1.5rem;\n"])));
6254
+ var ImagesContainer = styled(OverlayImageContainer)(templateObject_2$q || (templateObject_2$q = __makeTemplateObject(["\n flex-grow: 1;\n overflow-y: auto;\n padding-bottom: 0;\n max-width: 100%;\n"], ["\n flex-grow: 1;\n overflow-y: auto;\n padding-bottom: 0;\n max-width: 100%;\n"])));
6255
+ var ImageRow = styled(OverlayImageRow)(templateObject_3$k || (templateObject_3$k = __makeTemplateObject(["\n max-width: 100%;\n flex-direction: column;\n display: grid;\n grid-gap: 12px;\n //grid-template-columns: 1fr 1fr;\n"], ["\n max-width: 100%;\n flex-direction: column;\n display: grid;\n grid-gap: 12px;\n //grid-template-columns: 1fr 1fr;\n"])));
6256
+ var ImageCol$1 = styled.div(templateObject_4$e || (templateObject_4$e = __makeTemplateObject(["\n width: 100%;\n max-height: none !important;\n"], ["\n width: 100%;\n max-height: none !important;\n"])));
6257
+ var StyledImage = styled(CapturedDocumentImg)(templateObject_5$9 || (templateObject_5$9 = __makeTemplateObject(["\n width: 100%;\n border-radius: 12px;\n"], ["\n width: 100%;\n border-radius: 12px;\n"])));
6258
+ var DebugPre = styled.pre(templateObject_6$7 || (templateObject_6$7 = __makeTemplateObject(["\n text-align: left;\n max-width: min(450px, 100dvw - 100px);\n overflow-x: auto;\n"], ["\n text-align: left;\n max-width: min(450px, 100dvw - 100px);\n overflow-x: auto;\n"])));
6259
+ var templateObject_1$v, templateObject_2$q, templateObject_3$k, templateObject_4$e, templateObject_5$9, templateObject_6$7;
6348
6260
 
6349
6261
  function useShowSuccessScreen(skipSuccessScreen, successScreenReady, onDoneCallback) {
6350
6262
  var _this = this;
@@ -6396,10 +6308,10 @@ function resetCanvasDimensions(canvas) {
6396
6308
  canvas.style.height = '0';
6397
6309
  }
6398
6310
 
6399
- var IdCardGuideImageContainer = styled(IdCardBorder)(templateObject_1$t || (templateObject_1$t = __makeTemplateObject(["\n position: relative;\n ", "\n box-sizing: border-box;\n"], ["\n position: relative;\n ", "\n box-sizing: border-box;\n"])), function (props) {
6311
+ var IdCardGuideImageContainer = styled(IdCardBorder)(templateObject_1$u || (templateObject_1$u = __makeTemplateObject(["\n position: relative;\n ", "\n box-sizing: border-box;\n"], ["\n position: relative;\n ", "\n box-sizing: border-box;\n"])), function (props) {
6400
6312
  return props.$isVisible ? '' : 'opacity: 0;';
6401
6313
  });
6402
- var IdCardGuideImage = styled.img(templateObject_2$o || (templateObject_2$o = __makeTemplateObject(["\n ", "\n ", "\n"], ["\n ", "\n ", "\n"])), function (props) {
6314
+ var IdCardGuideImage = styled.img(templateObject_2$p || (templateObject_2$p = __makeTemplateObject(["\n transform-style: preserve-3d;\n ", "\n ", "\n"], ["\n transform-style: preserve-3d;\n ", "\n ", "\n"])), function (props) {
6403
6315
  return props.$isMirrored ? 'transform: scaleX(-1);' : '';
6404
6316
  }, function (props) {
6405
6317
  return props.$isInvisible ? 'opacity: 0;' : '';
@@ -6541,16 +6453,16 @@ function IdCardBorderSvg(_a) {
6541
6453
  className: isProgressBar ? "idmSdkProgressBorder ".concat(progressPaused ? 'idmSdkProgressPaused' : '') : ''
6542
6454
  }));
6543
6455
  }
6544
- var IdCardBorderContainer = styled.div(templateObject_3$i || (templateObject_3$i = __makeTemplateObject(["\n & > .idmSdkWaves {\n position: absolute;\n animation: ", " 2s ease-out infinite;\n\n &:nth-child(2) {\n animation-delay: 0.66s;\n }\n\n &:nth-child(3) {\n animation-delay: 1.33s;\n }\n }\n"], ["\n & > .idmSdkWaves {\n position: absolute;\n animation: ", " 2s ease-out infinite;\n\n &:nth-child(2) {\n animation-delay: 0.66s;\n }\n\n &:nth-child(3) {\n animation-delay: 1.33s;\n }\n }\n"])), wavesAnimation);
6545
- var SvgOverlay = styled.svg(templateObject_4$c || (templateObject_4$c = __makeTemplateObject(["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n"], ["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n"])));
6546
- var IdCardBorderRect = styled.rect(templateObject_5$7 || (templateObject_5$7 = __makeTemplateObject(["\n &.idmSdkProgressBorder {\n animation: ", " ", "\n ", ";\n }\n\n &.idmSdkProgressPaused {\n animation-play-state: paused;\n }\n"], ["\n &.idmSdkProgressBorder {\n animation: ", " ", "\n ", ";\n }\n\n &.idmSdkProgressPaused {\n animation-play-state: paused;\n }\n"])), progressBorderAnimation, function (props) {
6456
+ var IdCardBorderContainer = styled.div(templateObject_3$j || (templateObject_3$j = __makeTemplateObject(["\n & > .idmSdkWaves {\n position: absolute;\n animation: ", " 2s ease-out infinite;\n transform-style: preserve-3d;\n\n &:nth-child(2) {\n animation-delay: 0.66s;\n }\n\n &:nth-child(3) {\n animation-delay: 1.33s;\n }\n }\n"], ["\n & > .idmSdkWaves {\n position: absolute;\n animation: ", " 2s ease-out infinite;\n transform-style: preserve-3d;\n\n &:nth-child(2) {\n animation-delay: 0.66s;\n }\n\n &:nth-child(3) {\n animation-delay: 1.33s;\n }\n }\n"])), wavesAnimation);
6457
+ var SvgOverlay = styled.svg(templateObject_4$d || (templateObject_4$d = __makeTemplateObject(["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n"], ["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n"])));
6458
+ var IdCardBorderRect = styled.rect(templateObject_5$8 || (templateObject_5$8 = __makeTemplateObject(["\n &.idmSdkProgressBorder {\n animation: ", " ", "\n ", ";\n }\n\n &.idmSdkProgressPaused {\n animation-play-state: paused;\n }\n"], ["\n &.idmSdkProgressBorder {\n animation: ", " ", "\n ", ";\n }\n\n &.idmSdkProgressPaused {\n animation-play-state: paused;\n }\n"])), progressBorderAnimation, function (props) {
6547
6459
  var _a;
6548
6460
  return (_a = props.$speed) !== null && _a !== void 0 ? _a : '3s';
6549
6461
  }, function (props) {
6550
6462
  var _a;
6551
6463
  return (_a = props.$fillMode) !== null && _a !== void 0 ? _a : 'forwards';
6552
6464
  });
6553
- var templateObject_1$t, templateObject_2$o, templateObject_3$i, templateObject_4$c, templateObject_5$7;
6465
+ var templateObject_1$u, templateObject_2$p, templateObject_3$j, templateObject_4$d, templateObject_5$8;
6554
6466
 
6555
6467
  var defaultIdCaptureGuideImages = {
6556
6468
  portrait: {
@@ -6656,12 +6568,82 @@ function getOrientation(allowPortraitOnMobile) {
6656
6568
  return allowPortraitOnMobile && window.innerWidth < window.innerHeight ? 'portrait' : 'landscape';
6657
6569
  }
6658
6570
 
6659
- var FlipImageContainer = styled(IdCardGuideImageContainer)(templateObject_1$s || (templateObject_1$s = __makeTemplateObject(["\n backface-visibility: hidden;\n transition: transform ", "s;\n transform: ", ";\n transform-style: preserve-3d;\n position: absolute;\n display: block;\n top: 0;\n width: 100%;\n max-height: 100%;\n"], ["\n backface-visibility: hidden;\n transition: transform ", "s;\n transform: ", ";\n transform-style: preserve-3d;\n position: absolute;\n display: block;\n top: 0;\n width: 100%;\n max-height: 100%;\n"])), function (props) {
6571
+ var IdVideoCaptureFlipIdPrompt = function IdVideoCaptureFlipIdPrompt(_a) {
6572
+ var _b = _a.idCaptureGuideImages,
6573
+ idCaptureGuideImages = _b === void 0 ? defaultIdCaptureGuideImages : _b,
6574
+ _c = _a.classNames,
6575
+ classNames = _c === void 0 ? {} : _c,
6576
+ borderWidth = _a.borderWidth,
6577
+ borderColor = _a.borderColor,
6578
+ borderRadius = _a.borderRadius,
6579
+ imageStyle = _a.imageStyle;
6580
+ var isRearFacing = useCameraStore(function (state) {
6581
+ return state.isRearFacing;
6582
+ });
6583
+ var isMirrored = !isRearFacing;
6584
+ var _d = useState(1),
6585
+ transitionTime = _d[0],
6586
+ setTransitionTime = _d[1];
6587
+ var _e = useState(0),
6588
+ rotationAngle = _e[0],
6589
+ setRotationAngle = _e[1];
6590
+ var frontTransforms = ["rotateY(".concat(rotationAngle, "deg)")];
6591
+ if (isMirrored) frontTransforms.push('scaleX(-1)');
6592
+ var backTransforms = ["rotateY(".concat(180 - rotationAngle, "deg)")];
6593
+ if (isMirrored) backTransforms.push('scaleX(-1)');
6594
+ useEffect(function () {
6595
+ var timeout;
6596
+ function doFlip() {
6597
+ setTransitionTime(1);
6598
+ setRotationAngle(180);
6599
+ timeout = setTimeout(function () {
6600
+ setTransitionTime(0);
6601
+ setRotationAngle(0);
6602
+ }, 1500);
6603
+ }
6604
+ var interval = setInterval(doFlip, 2500);
6605
+ timeout = setTimeout(doFlip, 250);
6606
+ return function () {
6607
+ clearInterval(interval);
6608
+ clearTimeout(timeout);
6609
+ };
6610
+ }, []);
6611
+ return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(FlipImageContainer, {
6612
+ className: classNames.frontImageContainer,
6613
+ status: "disabled",
6614
+ borderWidth: borderWidth,
6615
+ borderColor: borderColor,
6616
+ borderRadius: borderRadius,
6617
+ "$transforms": frontTransforms.join(' '),
6618
+ "$transitionTime": transitionTime,
6619
+ "$isVisible": true
6620
+ }, /*#__PURE__*/React__default.createElement(IdCardGuideImage, {
6621
+ src: idCaptureGuideImages.landscape.SHOW_ID_FRONT.url,
6622
+ className: classNames.frontImage,
6623
+ alt: "",
6624
+ style: imageStyle
6625
+ })), /*#__PURE__*/React__default.createElement(FlipImageContainer, {
6626
+ className: classNames.backImageContainer,
6627
+ status: "disabled",
6628
+ borderWidth: borderWidth,
6629
+ borderColor: borderColor,
6630
+ borderRadius: borderRadius,
6631
+ "$transforms": backTransforms.join(' '),
6632
+ "$transitionTime": transitionTime,
6633
+ "$isVisible": true
6634
+ }, /*#__PURE__*/React__default.createElement(IdCardGuideImage, {
6635
+ src: idCaptureGuideImages.landscape.SHOW_ID_BACK.url,
6636
+ className: classNames.backImage,
6637
+ alt: "",
6638
+ style: imageStyle
6639
+ })));
6640
+ };
6641
+ var FlipImageContainer = styled(IdCardGuideImageContainer)(templateObject_1$t || (templateObject_1$t = __makeTemplateObject(["\n backface-visibility: hidden;\n transition: transform ", "s;\n transform: ", ";\n transform-style: preserve-3d;\n position: absolute;\n display: block;\n top: 0;\n width: 100%;\n max-height: 100%;\n"], ["\n backface-visibility: hidden;\n transition: transform ", "s;\n transform: ", ";\n transform-style: preserve-3d;\n position: absolute;\n display: block;\n top: 0;\n width: 100%;\n max-height: 100%;\n"])), function (props) {
6660
6642
  return props.$transitionTime;
6661
6643
  }, function (props) {
6662
6644
  return props.$transforms;
6663
6645
  });
6664
- var templateObject_1$s;
6646
+ var templateObject_1$t;
6665
6647
 
6666
6648
  var GuideOrientationContext = /*#__PURE__*/createContext({
6667
6649
  orientation: 'landscape',
@@ -6950,10 +6932,10 @@ var regionClsx = function regionClsx(classNames, which) {
6950
6932
  return v;
6951
6933
  }).join(' ');
6952
6934
  };
6953
- var StyledPageContainer = styled(PageContainerDiv)(templateObject_1$r || (templateObject_1$r = __makeTemplateObject(["\n z-index: 1000;\n overflow-y: hidden;\n"], ["\n z-index: 1000;\n overflow-y: hidden;\n"])));
6954
- var GuidesContainer = styled.div(templateObject_2$n || (templateObject_2$n = __makeTemplateObject(["\n display: flex;\n flex-flow: column nowrap;\n width: 100dvw;\n height: 100dvh;\n"], ["\n display: flex;\n flex-flow: column nowrap;\n width: 100dvw;\n height: 100dvh;\n"])));
6955
- var GuideCenterRow = styled.div(templateObject_3$h || (templateObject_3$h = __makeTemplateObject(["\n position: relative;\n display: flex;\n flex-flow: row nowrap;\n align-items: center;\n justify-items: center;\n box-sizing: border-box;\n max-width: 100%;\n max-height: 100%;\n min-height: 0;\n flex: 1;\n"], ["\n position: relative;\n display: flex;\n flex-flow: row nowrap;\n align-items: center;\n justify-items: center;\n box-sizing: border-box;\n max-width: 100%;\n max-height: 100%;\n min-height: 0;\n flex: 1;\n"])));
6956
- var GuideRegion = styled.div(templateObject_4$b || (templateObject_4$b = __makeTemplateObject(["\n display: flex;\n flex-direction: column;\n justify-content: end;\n width: 100%;\n position: relative;\n z-index: 1000;\n background: ", ";\n color: ", ";\n text-align: center;\n ", "\n ", "\n"], ["\n display: flex;\n flex-direction: column;\n justify-content: end;\n width: 100%;\n position: relative;\n z-index: 1000;\n background: ", ";\n color: ", ";\n text-align: center;\n ", "\n ", "\n"])), function (props) {
6935
+ var StyledPageContainer = styled(PageContainerDiv)(templateObject_1$s || (templateObject_1$s = __makeTemplateObject(["\n z-index: 1000;\n overflow-y: hidden;\n"], ["\n z-index: 1000;\n overflow-y: hidden;\n"])));
6936
+ var GuidesContainer = styled.div(templateObject_2$o || (templateObject_2$o = __makeTemplateObject(["\n display: flex;\n flex-flow: column nowrap;\n width: 100dvw;\n height: 100dvh;\n"], ["\n display: flex;\n flex-flow: column nowrap;\n width: 100dvw;\n height: 100dvh;\n"])));
6937
+ var GuideCenterRow = styled.div(templateObject_3$i || (templateObject_3$i = __makeTemplateObject(["\n position: relative;\n display: flex;\n flex-flow: row nowrap;\n align-items: center;\n justify-items: center;\n box-sizing: border-box;\n max-width: 100%;\n max-height: 100%;\n min-height: 0;\n flex: 1;\n"], ["\n position: relative;\n display: flex;\n flex-flow: row nowrap;\n align-items: center;\n justify-items: center;\n box-sizing: border-box;\n max-width: 100%;\n max-height: 100%;\n min-height: 0;\n flex: 1;\n"])));
6938
+ var GuideRegion = styled.div(templateObject_4$c || (templateObject_4$c = __makeTemplateObject(["\n display: flex;\n flex-direction: column;\n justify-content: end;\n width: 100%;\n position: relative;\n z-index: 1000;\n background: ", ";\n color: ", ";\n text-align: center;\n ", "\n ", "\n"], ["\n display: flex;\n flex-direction: column;\n justify-content: end;\n width: 100%;\n position: relative;\n z-index: 1000;\n background: ", ";\n color: ", ";\n text-align: center;\n ", "\n ", "\n"])), function (props) {
6957
6939
  var _a, _b, _c, _d, _e;
6958
6940
  return (_e = (_a = props.$maskColor) !== null && _a !== void 0 ? _a : (_d = (_c = (_b = props.theme) === null || _b === void 0 ? void 0 : _b.idCapture) === null || _c === void 0 ? void 0 : _c.guideOverlay) === null || _d === void 0 ? void 0 : _d.backgroundColor) !== null && _e !== void 0 ? _e : 'rgba(0, 0, 0, 0.5)';
6959
6941
  }, function (props) {
@@ -6964,13 +6946,13 @@ var GuideRegion = styled.div(templateObject_4$b || (templateObject_4$b = __makeT
6964
6946
  }, function (props) {
6965
6947
  return props.$minHeight ? "min-height: ".concat(props.$minHeight, "px;") : "";
6966
6948
  });
6967
- var Spacer = styled(GuideRegion)(templateObject_5$6 || (templateObject_5$6 = __makeTemplateObject(["\n display: block;\n width: auto;\n"], ["\n display: block;\n width: auto;\n"])));
6968
- var GuideCenterRegion = styled.div(templateObject_6$5 || (templateObject_6$5 = __makeTemplateObject(["\n ", "\n ", "\n box-sizing: border-box;\n display: flex;\n flex: 1;\n max-height: 100%;\n height: 100%;\n"], ["\n ", "\n ", "\n box-sizing: border-box;\n display: flex;\n flex: 1;\n max-height: 100%;\n height: 100%;\n"])), function (props) {
6949
+ var Spacer = styled(GuideRegion)(templateObject_5$7 || (templateObject_5$7 = __makeTemplateObject(["\n display: block;\n width: auto;\n"], ["\n display: block;\n width: auto;\n"])));
6950
+ var GuideCenterRegion = styled.div(templateObject_6$6 || (templateObject_6$6 = __makeTemplateObject(["\n ", "\n ", "\n transform-style: preserve-3d;\n box-sizing: border-box;\n display: flex;\n flex: 1;\n max-height: 100%;\n height: 100%;\n"], ["\n ", "\n ", "\n transform-style: preserve-3d;\n box-sizing: border-box;\n display: flex;\n flex: 1;\n max-height: 100%;\n height: 100%;\n"])), function (props) {
6969
6951
  return props.$minWidth ? "min-width: ".concat(props.$minWidth, "px;") : "";
6970
6952
  }, function (props) {
6971
6953
  return props.$isMirrored ? 'transform: scaleX(-1);' : '';
6972
6954
  });
6973
- var GuideCenterBorder = styled.div(templateObject_7$3 || (templateObject_7$3 = __makeTemplateObject(["\n box-sizing: border-box;\n border: ", ";\n display: flex;\n flex: 1;\n justify-content: center;\n max-height: 100%;\n min-height: 0;\n position: relative;\n ", "\n"], ["\n box-sizing: border-box;\n border: ", ";\n display: flex;\n flex: 1;\n justify-content: center;\n max-height: 100%;\n min-height: 0;\n position: relative;\n ", "\n"])), function (props) {
6955
+ var GuideCenterBorder = styled.div(templateObject_7$4 || (templateObject_7$4 = __makeTemplateObject(["\n box-sizing: border-box;\n border: ", ";\n display: flex;\n flex: 1;\n justify-content: center;\n max-height: 100%;\n min-height: 0;\n position: relative;\n ", "\n"], ["\n box-sizing: border-box;\n border: ", ";\n display: flex;\n flex: 1;\n justify-content: center;\n max-height: 100%;\n min-height: 0;\n position: relative;\n ", "\n"])), function (props) {
6974
6956
  var _a, _b;
6975
6957
  return "".concat((_a = props.$borderWidth) !== null && _a !== void 0 ? _a : 4, "px solid ").concat((_b = props.$borderColor) !== null && _b !== void 0 ? _b : 'white');
6976
6958
  }, function (props) {
@@ -6978,7 +6960,7 @@ var GuideCenterBorder = styled.div(templateObject_7$3 || (templateObject_7$3 = _
6978
6960
  });
6979
6961
  var GuideText = styled.span(templateObject_8$1 || (templateObject_8$1 = __makeTemplateObject(["\n align-content: center;\n margin-top: 12px;\n margin-bottom: 12px;\n"], ["\n align-content: center;\n margin-top: 12px;\n margin-bottom: 12px;\n"])));
6980
6962
  var GuideCenterInner = styled.div(templateObject_9$1 || (templateObject_9$1 = __makeTemplateObject(["\n position: relative;\n margin: auto;\n"], ["\n position: relative;\n margin: auto;\n"])));
6981
- var templateObject_1$r, templateObject_2$n, templateObject_3$h, templateObject_4$b, templateObject_5$6, templateObject_6$5, templateObject_7$3, templateObject_8$1, templateObject_9$1;
6963
+ var templateObject_1$s, templateObject_2$o, templateObject_3$i, templateObject_4$c, templateObject_5$7, templateObject_6$6, templateObject_7$4, templateObject_8$1, templateObject_9$1;
6982
6964
 
6983
6965
  var IdCaptureFitGuide = function IdCaptureFitGuide(_a) {
6984
6966
  var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
@@ -7121,36 +7103,37 @@ var IdCaptureFitGuide = function IdCaptureFitGuide(_a) {
7121
7103
  progress: progress
7122
7104
  }));
7123
7105
  };
7124
- var CanvasWrapper$1 = styled.div(templateObject_1$q || (templateObject_1$q = __makeTemplateObject(["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n flex-grow: 1;\n background-clip: padding-box;\n box-shadow: inset 0 0 0 2px ", ";\n z-index: -1;\n"], ["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n flex-grow: 1;\n background-clip: padding-box;\n box-shadow: inset 0 0 0 2px ", ";\n z-index: -1;\n"])), function (props) {
7106
+ var CanvasWrapper$1 = styled.div(templateObject_1$r || (templateObject_1$r = __makeTemplateObject(["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n flex-grow: 1;\n background-clip: padding-box;\n box-shadow: inset 0 0 0 2px ", ";\n z-index: -1;\n"], ["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n flex-grow: 1;\n background-clip: padding-box;\n box-shadow: inset 0 0 0 2px ", ";\n z-index: -1;\n"])), function (props) {
7125
7107
  return props.$maskColor;
7126
7108
  });
7127
- var Canvas$1 = styled.canvas(templateObject_2$m || (templateObject_2$m = __makeTemplateObject(["\n display: block;\n"], ["\n display: block;\n"])));
7128
- var templateObject_1$q, templateObject_2$m;
7109
+ var Canvas$1 = styled.canvas(templateObject_2$n || (templateObject_2$n = __makeTemplateObject(["\n display: block;\n"], ["\n display: block;\n"])));
7110
+ var templateObject_1$r, templateObject_2$n;
7129
7111
 
7130
7112
  function IdCaptureGuides(_a) {
7131
- var _b, _c;
7132
- var _d = _a.guideType,
7133
- guideType = _d === void 0 ? 'fit' : _d,
7134
- _e = _a.status,
7135
- status = _e === void 0 ? 'ready' : _e,
7136
- _f = _a.progress,
7137
- progress = _f === void 0 ? 0 : _f,
7138
- _g = _a.portraitGuidesOnMobile,
7139
- portraitGuidesOnMobile = _g === void 0 ? true : _g,
7140
- _h = _a.requestedAction,
7141
- requestedAction = _h === void 0 ? 'SHOW_ID_FRONT' : _h,
7142
- _j = _a.isBackToFront,
7143
- isBackToFront = _j === void 0 ? false : _j,
7144
- _k = _a.images,
7145
- images = _k === void 0 ? defaultIdCaptureGuideImages : _k,
7146
- _l = _a.classNames,
7147
- classNames = _l === void 0 ? {} : _l,
7148
- _m = _a.colors,
7149
- colors = _m === void 0 ? {} : _m,
7150
- _o = _a.verbiage,
7151
- rawVerbiage = _o === void 0 ? {} : _o;
7113
+ var _b = _a.guideType,
7114
+ guideType = _b === void 0 ? 'fit' : _b,
7115
+ _c = _a.status,
7116
+ status = _c === void 0 ? 'ready' : _c,
7117
+ _d = _a.progress,
7118
+ progress = _d === void 0 ? 0 : _d,
7119
+ _e = _a.portraitGuidesOnMobile,
7120
+ portraitGuidesOnMobile = _e === void 0 ? true : _e,
7121
+ _f = _a.requestedAction,
7122
+ requestedAction = _f === void 0 ? 'SHOW_ID_FRONT' : _f,
7123
+ _g = _a.isBackToFront,
7124
+ isBackToFront = _g === void 0 ? false : _g,
7125
+ _h = _a.images,
7126
+ images = _h === void 0 ? defaultIdCaptureGuideImages : _h,
7127
+ _j = _a.classNames,
7128
+ classNames = _j === void 0 ? {} : _j,
7129
+ _k = _a.colors,
7130
+ colors = _k === void 0 ? {} : _k,
7131
+ _l = _a.verbiage,
7132
+ rawVerbiage = _l === void 0 ? {} : _l;
7152
7133
  var state = useIdCaptureState()[0];
7153
- var cameraRef = useContext(CameraStateContext).cameraRef;
7134
+ var isRearFacing = useCameraStore(function (state) {
7135
+ return state.isRearFacing;
7136
+ });
7154
7137
  var verbiage = useTranslations(rawVerbiage, {
7155
7138
  instructionText: 'Scan the front of ID',
7156
7139
  capturingText: 'Capturing...',
@@ -7162,7 +7145,7 @@ function IdCaptureGuides(_a) {
7162
7145
  status: status,
7163
7146
  progress: progress,
7164
7147
  instruction: state.captureFailed ? verbiage.captureFailedText : state.capturing ? verbiage === null || verbiage === void 0 ? void 0 : verbiage.capturingText : verbiage.instructionText,
7165
- isMirrored: !((_b = cameraRef.current) === null || _b === void 0 ? void 0 : _b.isRearFacing),
7148
+ isMirrored: !isRearFacing,
7166
7149
  borderColor: state.isGoodFrame ? colors.guideBoxSatisfiedColor : colors.guideBoxUnsatisfiedColor,
7167
7150
  imageVisible: requestedAction === 'FLIP_ID' || !state.idCardFrontDetectionThresholdMet || !state.documentInBounds || state.documentTooClose
7168
7151
  })), guideType === 'fit' && ( /*#__PURE__*/React__default.createElement(IdCaptureFitGuide, {
@@ -7172,7 +7155,7 @@ function IdCaptureGuides(_a) {
7172
7155
  status: status,
7173
7156
  progress: progress,
7174
7157
  instruction: state.captureFailed ? verbiage.captureFailedText : state.capturing ? verbiage === null || verbiage === void 0 ? void 0 : verbiage.capturingText : verbiage.instructionText,
7175
- isMirrored: !((_c = cameraRef.current) === null || _c === void 0 ? void 0 : _c.isRearFacing),
7158
+ isMirrored: !isRearFacing,
7176
7159
  isBackToFront: isBackToFront,
7177
7160
  portraitGuidesOnMobile: portraitGuidesOnMobile,
7178
7161
  borderColor: state.isGoodFrame ? colors.guideBoxSatisfiedColor : colors.guideBoxUnsatisfiedColor,
@@ -7265,53 +7248,11 @@ var SelfieProgressPreview = function SelfieProgressPreview(_a) {
7265
7248
  onError: onError
7266
7249
  })));
7267
7250
  };
7268
- var StyledSpinner = styled(Spinner)(templateObject_1$p || (templateObject_1$p = __makeTemplateObject(["\n position: relative;\n top: 4px;\n left: -3px;\n margin: 0 3px 0 -12px;\n"], ["\n position: relative;\n top: 4px;\n left: -3px;\n margin: 0 3px 0 -12px;\n"])));
7269
- var ImagePreviewWrapper = styled.div(templateObject_2$l || (templateObject_2$l = __makeTemplateObject(["\n position: absolute;\n display: flex;\n flex-direction: column;\n height: 33%;\n bottom: 12px;\n right: 12px;\n"], ["\n position: absolute;\n display: flex;\n flex-direction: column;\n height: 33%;\n bottom: 12px;\n right: 12px;\n"])));
7270
- var ImagePreviewText = styled.div(templateObject_3$g || (templateObject_3$g = __makeTemplateObject(["\n display: block;\n position: absolute;\n top: -32px;\n font:\n 14px -apple-system,\n BlinkMacSystemFont,\n 'Segoe UI',\n Roboto,\n Helvetica,\n Arial,\n sans-serif,\n 'Apple Color Emoji',\n 'Segoe UI Emoji',\n 'Segoe UI Symbol';\n color: white;\n text-align: center;\n margin: 0 auto;\n width: 100%;\n"], ["\n display: block;\n position: absolute;\n top: -32px;\n font:\n 14px -apple-system,\n BlinkMacSystemFont,\n 'Segoe UI',\n Roboto,\n Helvetica,\n Arial,\n sans-serif,\n 'Apple Color Emoji',\n 'Segoe UI Emoji',\n 'Segoe UI Symbol';\n color: white;\n text-align: center;\n margin: 0 auto;\n width: 100%;\n"])));
7271
- var ImagePreviewImageWrapper = styled.div(templateObject_4$a || (templateObject_4$a = __makeTemplateObject(["\n position: relative;\n height: calc(100% - 8px);\n padding: 4px;\n border-radius: 4px;\n background: white;\n\n & > img {\n border-radius: 4px;\n width: auto;\n max-height: 100%;\n }\n"], ["\n position: relative;\n height: calc(100% - 8px);\n padding: 4px;\n border-radius: 4px;\n background: white;\n\n & > img {\n border-radius: 4px;\n width: auto;\n max-height: 100%;\n }\n"])));
7272
- var templateObject_1$p, templateObject_2$l, templateObject_3$g, templateObject_4$a;
7273
-
7274
- var CameraVideoTag = function CameraVideoTag(_a) {
7275
- var _b;
7276
- var className = _a.className;
7277
- var _c = useContext(CameraStateContext),
7278
- videoRef = _c.videoRef,
7279
- setVideoLoaded = _c.setVideoLoaded,
7280
- onVideoUnmounted = _c.onVideoUnmounted,
7281
- cameraRef = _c.cameraRef;
7282
- useEffect(function notifyCameraProviderOfUnmount() {
7283
- var videoElement = videoRef.current;
7284
- if (!videoElement) return;
7285
- return function () {
7286
- onVideoUnmounted(videoElement);
7287
- };
7288
- }, [onVideoUnmounted, videoRef]);
7289
- useEffect(function setVideoLoadedToFalseOnMount() {
7290
- setVideoLoaded(false);
7291
- }, [setVideoLoaded]);
7292
- useEffect(function attachCameraStreamToVideoTagWhenReady() {
7293
- var _a;
7294
- if (videoRef.current && ((_a = cameraRef.current) === null || _a === void 0 ? void 0 : _a.stream)) {
7295
- videoRef.current.srcObject = cameraRef.current.stream;
7296
- }
7297
- }, [cameraRef, videoRef]);
7298
- var onLoadedData = useCallback(function () {
7299
- setVideoLoaded(true);
7300
- }, [setVideoLoaded]);
7301
- return /*#__PURE__*/React__default.createElement(FullscreenVideoTag, {
7302
- className: className,
7303
- autoPlay: true,
7304
- playsInline: true,
7305
- muted: true,
7306
- ref: videoRef,
7307
- onLoadedData: onLoadedData,
7308
- "$isRearFacing": (_b = cameraRef.current) === null || _b === void 0 ? void 0 : _b.isRearFacing
7309
- });
7310
- };
7311
- var FullscreenVideoTag = styled.video(templateObject_1$o || (templateObject_1$o = __makeTemplateObject(["\n transform: ", ";\n min-width: 100%;\n min-height: 100%;\n width: auto;\n height: auto;\n max-width: 100%;\n max-height: 100%;\n object-fit: cover;\n background: black;\n z-index: -2;\n"], ["\n transform: ", ";\n min-width: 100%;\n min-height: 100%;\n width: auto;\n height: auto;\n max-width: 100%;\n max-height: 100%;\n object-fit: cover;\n background: black;\n z-index: -2;\n"])), function (props) {
7312
- return props.$isRearFacing ? '' : 'scaleX(-1)';
7313
- });
7314
- var templateObject_1$o;
7251
+ var StyledSpinner = styled(Spinner)(templateObject_1$q || (templateObject_1$q = __makeTemplateObject(["\n position: relative;\n top: 4px;\n left: -3px;\n margin: 0 3px 0 -12px;\n"], ["\n position: relative;\n top: 4px;\n left: -3px;\n margin: 0 3px 0 -12px;\n"])));
7252
+ var ImagePreviewWrapper = styled.div(templateObject_2$m || (templateObject_2$m = __makeTemplateObject(["\n position: absolute;\n display: flex;\n flex-direction: column;\n height: 33%;\n bottom: 12px;\n right: 12px;\n"], ["\n position: absolute;\n display: flex;\n flex-direction: column;\n height: 33%;\n bottom: 12px;\n right: 12px;\n"])));
7253
+ var ImagePreviewText = styled.div(templateObject_3$h || (templateObject_3$h = __makeTemplateObject(["\n display: block;\n position: absolute;\n top: -32px;\n font:\n 14px -apple-system,\n BlinkMacSystemFont,\n 'Segoe UI',\n Roboto,\n Helvetica,\n Arial,\n sans-serif,\n 'Apple Color Emoji',\n 'Segoe UI Emoji',\n 'Segoe UI Symbol';\n color: white;\n text-align: center;\n margin: 0 auto;\n width: 100%;\n"], ["\n display: block;\n position: absolute;\n top: -32px;\n font:\n 14px -apple-system,\n BlinkMacSystemFont,\n 'Segoe UI',\n Roboto,\n Helvetica,\n Arial,\n sans-serif,\n 'Apple Color Emoji',\n 'Segoe UI Emoji',\n 'Segoe UI Symbol';\n color: white;\n text-align: center;\n margin: 0 auto;\n width: 100%;\n"])));
7254
+ var ImagePreviewImageWrapper = styled.div(templateObject_4$b || (templateObject_4$b = __makeTemplateObject(["\n position: relative;\n height: calc(100% - 8px);\n padding: 4px;\n border-radius: 4px;\n background: white;\n\n & > img {\n border-radius: 4px;\n width: auto;\n max-height: 100%;\n }\n"], ["\n position: relative;\n height: calc(100% - 8px);\n padding: 4px;\n border-radius: 4px;\n background: white;\n\n & > img {\n border-radius: 4px;\n width: auto;\n max-height: 100%;\n }\n"])));
7255
+ var templateObject_1$q, templateObject_2$m, templateObject_3$h, templateObject_4$b;
7315
7256
 
7316
7257
  var documentCaptureInitialState = {
7317
7258
  documents: [],
@@ -7431,8 +7372,8 @@ var DocumentCaptureStateProvider = function DocumentCaptureStateProvider(_a) {
7431
7372
  var _c = useReducer(documentCaptureStateReducer, documentCaptureInitialState),
7432
7373
  state = _c[0],
7433
7374
  dispatch = _c[1];
7434
- var _d = useContext(CameraStateContext),
7435
- cameraRef = _d.cameraRef,
7375
+ var _d = useCameraStore(),
7376
+ videoStream = _d.videoStream,
7436
7377
  videoRef = _d.videoRef;
7437
7378
  var uploadDocument = useContext(SubmissionContext).uploadDocument;
7438
7379
  var uploadCapturedDocument = useCallback(function (content, filetype) {
@@ -7523,8 +7464,7 @@ var DocumentCaptureStateProvider = function DocumentCaptureStateProvider(_a) {
7523
7464
  }, [onResize]);
7524
7465
  var videoTag = videoRef.current;
7525
7466
  useEffect(function () {
7526
- if (!state.capturing) return;
7527
- if (!cameraRef.current) return;
7467
+ if (!state.capturing || !(videoStream === null || videoStream === void 0 ? void 0 : videoStream.active)) return;
7528
7468
  function onComplete(content) {
7529
7469
  if (!content) return;
7530
7470
  var contentUrl = URL.createObjectURL(content);
@@ -7537,7 +7477,7 @@ var DocumentCaptureStateProvider = function DocumentCaptureStateProvider(_a) {
7537
7477
  });
7538
7478
  }
7539
7479
  if (typeof ImageCapture !== 'undefined') {
7540
- var tracks = cameraRef.current.stream.getTracks();
7480
+ var tracks = videoStream.getTracks();
7541
7481
  var videoCameraTrack = tracks.find(function (track) {
7542
7482
  return track.kind === 'video';
7543
7483
  });
@@ -7552,7 +7492,7 @@ var DocumentCaptureStateProvider = function DocumentCaptureStateProvider(_a) {
7552
7492
  drawToCanvas(canvas, videoTag);
7553
7493
  canvas.toBlob(onComplete);
7554
7494
  }
7555
- }, [cameraRef, state.capturing, videoTag]);
7495
+ }, [state.capturing, videoStream, videoTag]);
7556
7496
  var stateWithActions = useMemo(function () {
7557
7497
  return _assign(_assign({}, state), {
7558
7498
  uploadCapturedDocument: uploadCapturedDocument
@@ -7667,52 +7607,85 @@ var DocumentCaptureGuideOverlay = function DocumentCaptureGuideOverlay(_a) {
7667
7607
  ref: canvasRef
7668
7608
  }));
7669
7609
  };
7670
- var CanvasWrapper = styled.div(templateObject_1$n || (templateObject_1$n = __makeTemplateObject(["\n flex-grow: 1;\n background-clip: padding-box;\n box-shadow: inset 0 0 0 2px ", ";\n"], ["\n flex-grow: 1;\n background-clip: padding-box;\n box-shadow: inset 0 0 0 2px ", ";\n"])), function (props) {
7610
+ var CanvasWrapper = styled.div(templateObject_1$p || (templateObject_1$p = __makeTemplateObject(["\n flex-grow: 1;\n background-clip: padding-box;\n box-shadow: inset 0 0 0 2px ", ";\n"], ["\n flex-grow: 1;\n background-clip: padding-box;\n box-shadow: inset 0 0 0 2px ", ";\n"])), function (props) {
7671
7611
  return props.$maskColor;
7672
7612
  });
7673
- var Canvas = styled.canvas(templateObject_2$k || (templateObject_2$k = __makeTemplateObject(["\n display: block;\n"], ["\n display: block;\n"])));
7674
- var templateObject_1$n, templateObject_2$k;
7613
+ var Canvas = styled.canvas(templateObject_2$l || (templateObject_2$l = __makeTemplateObject(["\n display: block;\n"], ["\n display: block;\n"])));
7614
+ var templateObject_1$p, templateObject_2$l;
7675
7615
 
7676
- var CameraFeedWrapper = styled.div(templateObject_1$m || (templateObject_1$m = __makeTemplateObject(["\n ", "\n"], ["\n ", "\n"])), function (props) {
7616
+ var CameraFeedWrapper = styled.div(templateObject_1$o || (templateObject_1$o = __makeTemplateObject(["\n ", "\n"], ["\n ", "\n"])), function (props) {
7677
7617
  return props.$mode === 'snapToGuides' ? "display: flex;\n position: absolute;\n left: ".concat(props.$x, "px;\n top: ").concat(props.$y, "px;\n width: ").concat(props.$w, "px;\n height: ").concat(props.$h, "px;") : "";
7678
7618
  });
7679
- var templateObject_1$m;
7619
+ var templateObject_1$o;
7620
+
7621
+ var CameraVideoTag = function CameraVideoTag(props) {
7622
+ var _a = useCameraStore(useShallow(function (store) {
7623
+ return {
7624
+ videoRef: store.videoRef,
7625
+ videoStream: store.videoStream,
7626
+ onVideoMounted: store.onVideoMounted,
7627
+ isRearFacing: store.isRearFacing
7628
+ };
7629
+ })),
7630
+ videoRef = _a.videoRef,
7631
+ videoStream = _a.videoStream,
7632
+ onVideoMounted = _a.onVideoMounted,
7633
+ isRearFacing = _a.isRearFacing;
7634
+ useEffect(function attachCameraStreamToVideoTagWhenReady() {
7635
+ if (videoRef.current && videoStream) {
7636
+ debug('attaching camera stream to video tag');
7637
+ videoRef.current.srcObject = videoStream;
7638
+ }
7639
+ }, [videoStream, videoRef]);
7640
+ return /*#__PURE__*/React__default.createElement(FullscreenVideoTag, _assign({
7641
+ autoPlay: true,
7642
+ playsInline: true,
7643
+ muted: true,
7644
+ ref: videoRef,
7645
+ onLoadedData: onVideoMounted,
7646
+ "$isRearFacing": isRearFacing
7647
+ }, props));
7648
+ };
7649
+ var FullscreenVideoTag = styled.video(templateObject_1$n || (templateObject_1$n = __makeTemplateObject(["\n transform: ", ";\n transform-style: preserve-3d;\n min-width: 100%;\n min-height: 100%;\n width: auto;\n height: auto;\n max-width: 100%;\n max-height: 100%;\n object-fit: cover;\n background: black;\n z-index: -2;\n"], ["\n transform: ", ";\n transform-style: preserve-3d;\n min-width: 100%;\n min-height: 100%;\n width: auto;\n height: auto;\n max-width: 100%;\n max-height: 100%;\n object-fit: cover;\n background: black;\n z-index: -2;\n"])), function (props) {
7650
+ return props.$isRearFacing ? '' : 'scaleX(-1)';
7651
+ });
7652
+ var templateObject_1$n;
7680
7653
 
7681
7654
  var DocumentCaptureScreen = function DocumentCaptureScreen(_a) {
7682
- var _b, _c, _d, _e, _f, _g, _h;
7655
+ var _b, _c, _d, _e, _f;
7683
7656
  var onCaptureClicked = _a.onCaptureClicked,
7684
- _j = _a.classNames,
7685
- classNames = _j === void 0 ? {} : _j,
7686
- _k = _a.verbiage,
7687
- rawVerbiage = _k === void 0 ? {} : _k;
7688
- var _l = useDocumentCaptureState(),
7689
- _m = _l[0],
7690
- documents = _m.documents,
7691
- currentDocumentIndex = _m.currentDocumentIndex,
7692
- rectX = _m.rectX,
7693
- rectY = _m.rectY,
7694
- rectWidth = _m.rectWidth,
7695
- rectHeight = _m.rectHeight,
7696
- rectOffsetTop = _m.rectOffsetTop,
7697
- capturing = _m.capturing,
7698
- uploadCapturedDocument = _m.uploadCapturedDocument,
7699
- dispatch = _l[1];
7700
- var _o = (_b = documents[currentDocumentIndex]) !== null && _b !== void 0 ? _b : {},
7701
- title = _o.title,
7702
- aspectRatio = _o.aspectRatio,
7703
- cameraFeedMode = _o.cameraFeedMode,
7704
- instructions = _o.instructions,
7705
- contentUrl = _o.contentUrl,
7706
- content = _o.content,
7707
- uploadState = _o.uploadState;
7708
- var _p = useContext(CameraStateContext),
7709
- cameraRef = _p.cameraRef,
7710
- cameraReady = _p.cameraReady,
7711
- cameraAccessDenied = _p.cameraAccessDenied,
7712
- requestCameraAccess = _p.requestCameraAccess;
7713
- var _q = useState(false),
7714
- cameraAccessRequested = _q[0],
7715
- setCameraAccessRequested = _q[1];
7657
+ _g = _a.classNames,
7658
+ classNames = _g === void 0 ? {} : _g,
7659
+ _h = _a.verbiage,
7660
+ rawVerbiage = _h === void 0 ? {} : _h;
7661
+ var _j = useDocumentCaptureState(),
7662
+ _k = _j[0],
7663
+ documents = _k.documents,
7664
+ currentDocumentIndex = _k.currentDocumentIndex,
7665
+ rectX = _k.rectX,
7666
+ rectY = _k.rectY,
7667
+ rectWidth = _k.rectWidth,
7668
+ rectHeight = _k.rectHeight,
7669
+ rectOffsetTop = _k.rectOffsetTop,
7670
+ capturing = _k.capturing,
7671
+ uploadCapturedDocument = _k.uploadCapturedDocument,
7672
+ dispatch = _j[1];
7673
+ var _l = (_b = documents[currentDocumentIndex]) !== null && _b !== void 0 ? _b : {},
7674
+ title = _l.title,
7675
+ aspectRatio = _l.aspectRatio,
7676
+ cameraFeedMode = _l.cameraFeedMode,
7677
+ instructions = _l.instructions,
7678
+ contentUrl = _l.contentUrl,
7679
+ content = _l.content,
7680
+ uploadState = _l.uploadState;
7681
+ var _m = useCameraStore(),
7682
+ videoStream = _m.videoStream,
7683
+ cameraReady = _m.cameraReady,
7684
+ cameraAccessDenied = _m.cameraAccessDenied,
7685
+ requestCameraAccess = _m.requestCameraAccess;
7686
+ var _o = useState(false),
7687
+ cameraAccessRequested = _o[0],
7688
+ setCameraAccessRequested = _o[1];
7716
7689
  var cameraAccessNeeded =
7717
7690
  // we should force the browser to ask for camera access if...
7718
7691
  uploadState === 'not_started' &&
@@ -7721,14 +7694,14 @@ var DocumentCaptureScreen = function DocumentCaptureScreen(_a) {
7721
7694
  // and the user hasn't passed a media blob for the current document...
7722
7695
  !cameraAccessRequested &&
7723
7696
  // and we haven't already tried to force a camera request...
7724
- !((_d = (_c = cameraRef.current) === null || _c === void 0 ? void 0 : _c.stream) === null || _d === void 0 ? void 0 : _d.active); // and we don't already have camera access.
7697
+ !(videoStream === null || videoStream === void 0 ? void 0 : videoStream.active); // and we don't already have camera access.
7725
7698
  useEffect(function requestCameraAccessIfNeeded() {
7726
7699
  if (!cameraAccessNeeded) return;
7727
7700
  setCameraAccessRequested(true);
7728
7701
  requestCameraAccess();
7729
7702
  }, [cameraAccessNeeded, requestCameraAccess]);
7730
7703
  var theme = useTheme();
7731
- var maskColor = (_g = (_f = (_e = theme.documentCapture) === null || _e === void 0 ? void 0 : _e.guideBox) === null || _f === void 0 ? void 0 : _f.maskColor) !== null && _g !== void 0 ? _g : cameraFeedMode === 'snapToGuides' ? '#708090' : "rgba(0, 0, 0, 0.5)";
7704
+ var maskColor = (_e = (_d = (_c = theme.documentCapture) === null || _c === void 0 ? void 0 : _c.guideBox) === null || _d === void 0 ? void 0 : _d.maskColor) !== null && _e !== void 0 ? _e : cameraFeedMode === 'snapToGuides' ? '#708090' : "rgba(0, 0, 0, 0.5)";
7732
7705
  var verbiage = useTranslations(rawVerbiage, {
7733
7706
  headingText: title,
7734
7707
  loadingBtnText: 'Camera initializing...',
@@ -7761,7 +7734,7 @@ var DocumentCaptureScreen = function DocumentCaptureScreen(_a) {
7761
7734
  });
7762
7735
  }
7763
7736
  return /*#__PURE__*/React__default.createElement(PageContainer, {
7764
- className: "flex ".concat((_h = classNames.container) !== null && _h !== void 0 ? _h : '')
7737
+ className: "flex ".concat((_f = classNames.container) !== null && _f !== void 0 ? _f : '')
7765
7738
  }, /*#__PURE__*/React__default.createElement(CameraFeedWrapper, {
7766
7739
  className: classNames.cameraFeedWrapper,
7767
7740
  "$mode": cameraFeedMode !== null && cameraFeedMode !== void 0 ? cameraFeedMode : 'snapToGuides',
@@ -7826,21 +7799,21 @@ var DocumentCaptureScreen = function DocumentCaptureScreen(_a) {
7826
7799
  disabled: !cameraReady || capturing
7827
7800
  }, !cameraReady ? verbiage.loadingBtnText : capturing ? verbiage.capturingBtnText : verbiage.captureBtnText))))));
7828
7801
  };
7829
- var CaptureContainer = styled.div(templateObject_1$l || (templateObject_1$l = __makeTemplateObject(["\n display: flex;\n flex-direction: column;\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: var(--app-height);\n"], ["\n display: flex;\n flex-direction: column;\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: var(--app-height);\n"])));
7830
- var HeadingRow = styled.div(templateObject_2$j || (templateObject_2$j = __makeTemplateObject(["\n background: ", ";\n text-align: center;\n color: white;\n"], ["\n background: ", ";\n text-align: center;\n color: white;\n"])), function (props) {
7802
+ var CaptureContainer = styled.div(templateObject_1$m || (templateObject_1$m = __makeTemplateObject(["\n display: flex;\n flex-direction: column;\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: var(--app-height);\n"], ["\n display: flex;\n flex-direction: column;\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: var(--app-height);\n"])));
7803
+ var HeadingRow = styled.div(templateObject_2$k || (templateObject_2$k = __makeTemplateObject(["\n background: ", ";\n text-align: center;\n color: white;\n"], ["\n background: ", ";\n text-align: center;\n color: white;\n"])), function (props) {
7831
7804
  return props.$maskColor;
7832
7805
  });
7833
- var Heading$9 = styled.h1(templateObject_3$f || (templateObject_3$f = __makeTemplateObject(["\n font-size: 22px;\n"], ["\n font-size: 22px;\n"])));
7834
- var FooterRow = styled.div(templateObject_4$9 || (templateObject_4$9 = __makeTemplateObject(["\n background: ", ";\n display: flex;\n flex-direction: column;\n justify-content: center;\n padding: 0 20px 20px;\n height: auto;\n color: white;\n"], ["\n background: ", ";\n display: flex;\n flex-direction: column;\n justify-content: center;\n padding: 0 20px 20px;\n height: auto;\n color: white;\n"])), function (props) {
7806
+ var Heading$9 = styled.h1(templateObject_3$g || (templateObject_3$g = __makeTemplateObject(["\n font-size: 22px;\n"], ["\n font-size: 22px;\n"])));
7807
+ var FooterRow = styled.div(templateObject_4$a || (templateObject_4$a = __makeTemplateObject(["\n background: ", ";\n display: flex;\n flex-direction: column;\n justify-content: center;\n padding: 0 20px 20px;\n height: auto;\n color: white;\n"], ["\n background: ", ";\n display: flex;\n flex-direction: column;\n justify-content: center;\n padding: 0 20px 20px;\n height: auto;\n color: white;\n"])), function (props) {
7835
7808
  return props.$maskColor;
7836
7809
  });
7837
- var Instructions = styled.div(templateObject_5$5 || (templateObject_5$5 = __makeTemplateObject(["\n max-height: ", ";\n overflow-y: auto;\n"], ["\n max-height: ", ";\n overflow-y: auto;\n"])), function (props) {
7810
+ var Instructions = styled.div(templateObject_5$6 || (templateObject_5$6 = __makeTemplateObject(["\n max-height: ", ";\n overflow-y: auto;\n"], ["\n max-height: ", ";\n overflow-y: auto;\n"])), function (props) {
7838
7811
  var _a, _b, _c;
7839
7812
  return (_c = (_b = (_a = props.theme.documentCapture) === null || _a === void 0 ? void 0 : _a.instructions) === null || _b === void 0 ? void 0 : _b.maxHeight) !== null && _c !== void 0 ? _c : '8rem';
7840
7813
  });
7841
- var StyledButtonsRow$9 = styled(ButtonsRow)(templateObject_6$4 || (templateObject_6$4 = __makeTemplateObject(["\n padding-top: 20px;\n"], ["\n padding-top: 20px;\n"])));
7842
- var PreviewImage = styled.img(templateObject_7$2 || (templateObject_7$2 = __makeTemplateObject(["\n width: 100%;\n height: 100%;\n object-fit: cover;\n"], ["\n width: 100%;\n height: 100%;\n object-fit: cover;\n"])));
7843
- var templateObject_1$l, templateObject_2$j, templateObject_3$f, templateObject_4$9, templateObject_5$5, templateObject_6$4, templateObject_7$2;
7814
+ var StyledButtonsRow$9 = styled(ButtonsRow)(templateObject_6$5 || (templateObject_6$5 = __makeTemplateObject(["\n padding-top: 20px;\n"], ["\n padding-top: 20px;\n"])));
7815
+ var PreviewImage = styled.img(templateObject_7$3 || (templateObject_7$3 = __makeTemplateObject(["\n width: 100%;\n height: 100%;\n object-fit: cover;\n"], ["\n width: 100%;\n height: 100%;\n object-fit: cover;\n"])));
7816
+ var templateObject_1$m, templateObject_2$k, templateObject_3$g, templateObject_4$a, templateObject_5$6, templateObject_6$5, templateObject_7$3;
7844
7817
 
7845
7818
  var DocumentCaptureWizard = function DocumentCaptureWizard(_a) {
7846
7819
  var onSuccess = _a.onSuccess,
@@ -8109,13 +8082,13 @@ var IdCaptureFallback = function IdCaptureFallback(_a) {
8109
8082
  }
8110
8083
  }, verbiage.doneBtnText))))));
8111
8084
  };
8112
- var StyledOverlayInner$2 = styled(OverlayInner$2)(templateObject_1$k || (templateObject_1$k = __makeTemplateObject(["\n justify-content: center;\n"], ["\n justify-content: center;\n"])));
8113
- var Heading$8 = styled.h3(templateObject_2$i || (templateObject_2$i = __makeTemplateObject(["\n margin-bottom: 8px;\n"], ["\n margin-bottom: 8px;\n"])));
8114
- var Description$3 = styled.p(templateObject_3$e || (templateObject_3$e = __makeTemplateObject(["\n margin-bottom: 8px;\n"], ["\n margin-bottom: 8px;\n"])));
8115
- var Instruction = styled.p(templateObject_4$8 || (templateObject_4$8 = __makeTemplateObject(["\n font-weight: bold;\n"], ["\n font-weight: bold;\n"])));
8116
- var ImageCol = styled.div(templateObject_5$4 || (templateObject_5$4 = __makeTemplateObject(["\n display: flex;\n justify-content: center;\n flex-grow: 1;\n flex-basis: 0;\n"], ["\n display: flex;\n justify-content: center;\n flex-grow: 1;\n flex-basis: 0;\n"])));
8117
- var StyledButtonsRow$8 = styled(ButtonsRow)(templateObject_6$3 || (templateObject_6$3 = __makeTemplateObject(["\n margin-top: 32px;\n"], ["\n margin-top: 32px;\n"])));
8118
- var templateObject_1$k, templateObject_2$i, templateObject_3$e, templateObject_4$8, templateObject_5$4, templateObject_6$3;
8085
+ var StyledOverlayInner$2 = styled(OverlayInner$2)(templateObject_1$l || (templateObject_1$l = __makeTemplateObject(["\n justify-content: center;\n"], ["\n justify-content: center;\n"])));
8086
+ var Heading$8 = styled.h3(templateObject_2$j || (templateObject_2$j = __makeTemplateObject(["\n margin-bottom: 8px;\n"], ["\n margin-bottom: 8px;\n"])));
8087
+ var Description$3 = styled.p(templateObject_3$f || (templateObject_3$f = __makeTemplateObject(["\n margin-bottom: 8px;\n"], ["\n margin-bottom: 8px;\n"])));
8088
+ var Instruction = styled.p(templateObject_4$9 || (templateObject_4$9 = __makeTemplateObject(["\n font-weight: bold;\n"], ["\n font-weight: bold;\n"])));
8089
+ var ImageCol = styled.div(templateObject_5$5 || (templateObject_5$5 = __makeTemplateObject(["\n display: flex;\n justify-content: center;\n flex-grow: 1;\n flex-basis: 0;\n"], ["\n display: flex;\n justify-content: center;\n flex-grow: 1;\n flex-basis: 0;\n"])));
8090
+ var StyledButtonsRow$8 = styled(ButtonsRow)(templateObject_6$4 || (templateObject_6$4 = __makeTemplateObject(["\n margin-top: 32px;\n"], ["\n margin-top: 32px;\n"])));
8091
+ var templateObject_1$l, templateObject_2$j, templateObject_3$f, templateObject_4$9, templateObject_5$5, templateObject_6$4;
8119
8092
 
8120
8093
  function ScalingCameraFeed() {
8121
8094
  var _a = useContext(IdCaptureStateContext),
@@ -8186,7 +8159,7 @@ var IdCaptureWizard = function IdCaptureWizard(_a) {
8186
8159
  var _3 = useIdCaptureState(),
8187
8160
  state = _3[0],
8188
8161
  dispatch = _3[1];
8189
- var _4 = useContext(CameraStateContext),
8162
+ var _4 = useCameraStore(),
8190
8163
  cameraAccessDenied = _4.cameraAccessDenied,
8191
8164
  requestCameraAccess = _4.requestCameraAccess,
8192
8165
  releaseCameraAccess = _4.releaseCameraAccess;
@@ -8801,7 +8774,7 @@ var HeadGuideSvg = /*#__PURE__*/forwardRef(function (_a, ref) {
8801
8774
  }))));
8802
8775
  });
8803
8776
  HeadGuideSvg.displayName = 'HeadGuideSvg';
8804
- var PulsingHeadGuideContainer = styled.div(templateObject_1$j || (templateObject_1$j = __makeTemplateObject(["\n display: flex;\n position: relative;\n height: 100%;\n max-height: 100%;\n\n & > .idmSdkWaves {\n position: absolute;\n animation: ", " 2s ease-out infinite;\n\n &:nth-child(2) {\n animation-delay: 0.66s;\n }\n\n &:nth-child(3) {\n animation-delay: 1.33s;\n }\n }\n\n & > .idmSdkWavesOrigin {\n position: relative;\n }\n"], ["\n display: flex;\n position: relative;\n height: 100%;\n max-height: 100%;\n\n & > .idmSdkWaves {\n position: absolute;\n animation: ", " 2s ease-out infinite;\n\n &:nth-child(2) {\n animation-delay: 0.66s;\n }\n\n &:nth-child(3) {\n animation-delay: 1.33s;\n }\n }\n\n & > .idmSdkWavesOrigin {\n position: relative;\n }\n"])), wavesAnimation);
8777
+ var PulsingHeadGuideContainer = styled.div(templateObject_1$k || (templateObject_1$k = __makeTemplateObject(["\n display: flex;\n position: relative;\n height: 100%;\n max-height: 100%;\n\n & > .idmSdkWaves {\n position: absolute;\n animation: ", " 2s ease-out infinite;\n transform-style: preserve-3d;\n\n &:nth-child(2) {\n animation-delay: 0.66s;\n }\n\n &:nth-child(3) {\n animation-delay: 1.33s;\n }\n }\n\n & > .idmSdkWavesOrigin {\n position: relative;\n }\n"], ["\n display: flex;\n position: relative;\n height: 100%;\n max-height: 100%;\n\n & > .idmSdkWaves {\n position: absolute;\n animation: ", " 2s ease-out infinite;\n transform-style: preserve-3d;\n\n &:nth-child(2) {\n animation-delay: 0.66s;\n }\n\n &:nth-child(3) {\n animation-delay: 1.33s;\n }\n }\n\n & > .idmSdkWavesOrigin {\n position: relative;\n }\n"])), wavesAnimation);
8805
8778
  function HeadGuide(_a) {
8806
8779
  var _b;
8807
8780
  var _c = _a.status,
@@ -8851,8 +8824,8 @@ function HeadGuide(_a) {
8851
8824
  height: parentHeight
8852
8825
  })));
8853
8826
  }
8854
- var AbsoluteSvg = styled.svg(templateObject_2$h || (templateObject_2$h = __makeTemplateObject(["\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n"], ["\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n"])));
8855
- var RelativeSvgContainer = styled.div(templateObject_3$d || (templateObject_3$d = __makeTemplateObject(["\n position: relative;\n height: 100%;\n display: flex;\n align-items: ", ";\n"], ["\n position: relative;\n height: 100%;\n display: flex;\n align-items: ", ";\n"])), function (props) {
8827
+ var AbsoluteSvg = styled.svg(templateObject_2$i || (templateObject_2$i = __makeTemplateObject(["\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n"], ["\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n"])));
8828
+ var RelativeSvgContainer = styled.div(templateObject_3$e || (templateObject_3$e = __makeTemplateObject(["\n position: relative;\n height: 100%;\n display: flex;\n align-items: ", ";\n"], ["\n position: relative;\n height: 100%;\n display: flex;\n align-items: ", ";\n"])), function (props) {
8856
8829
  return props.$verticalAlign === 'bottom' ? 'flex-end' : 'center';
8857
8830
  });
8858
8831
  function SelfieCaptureAnimatedMask(_a) {
@@ -9079,10 +9052,10 @@ function SelfieCaptureAnimatedMaskWithStatus(_a) {
9079
9052
  status: status
9080
9053
  }));
9081
9054
  }
9082
- var templateObject_1$j, templateObject_2$h, templateObject_3$d;
9055
+ var templateObject_1$k, templateObject_2$i, templateObject_3$e;
9083
9056
 
9084
- var FaceCaptureGuideContainer = styled.div(templateObject_1$i || (templateObject_1$i = __makeTemplateObject(["\n position: fixed;\n z-index: 1000;\n width: 100dvw;\n height: 100dvh;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 40px;\n box-sizing: border-box;\n"], ["\n position: fixed;\n z-index: 1000;\n width: 100dvw;\n height: 100dvh;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 40px;\n box-sizing: border-box;\n"])));
9085
- var FaceCaptureGuideInner = styled.div(templateObject_2$g || (templateObject_2$g = __makeTemplateObject(["\n position: relative;\n height: 60%;\n"], ["\n position: relative;\n height: 60%;\n"])));
9057
+ var FaceCaptureGuideContainer = styled.div(templateObject_1$j || (templateObject_1$j = __makeTemplateObject(["\n position: fixed;\n z-index: 1000;\n width: 100dvw;\n height: 100dvh;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 40px;\n box-sizing: border-box;\n"], ["\n position: fixed;\n z-index: 1000;\n width: 100dvw;\n height: 100dvh;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 40px;\n box-sizing: border-box;\n"])));
9058
+ var FaceCaptureGuideInner = styled.div(templateObject_2$h || (templateObject_2$h = __makeTemplateObject(["\n position: relative;\n height: 60%;\n"], ["\n position: relative;\n height: 60%;\n"])));
9086
9059
  var FaceCaptureGuideOverlay = function FaceCaptureGuideOverlay(_a) {
9087
9060
  var _b = _a.classNames,
9088
9061
  classNames = _b === void 0 ? {} : _b,
@@ -9104,7 +9077,7 @@ var FaceCaptureGuideOverlay = function FaceCaptureGuideOverlay(_a) {
9104
9077
  verticalAlign: "center"
9105
9078
  })));
9106
9079
  };
9107
- var templateObject_1$i, templateObject_2$g;
9080
+ var templateObject_1$j, templateObject_2$h;
9108
9081
 
9109
9082
  var SelfieGuidanceModelsContext = /*#__PURE__*/createContext({
9110
9083
  start: function start() {
@@ -9134,7 +9107,13 @@ function SelfieGuidanceModelsProvider(_a) {
9134
9107
  modelLoadTimeoutMs = _c === void 0 ? defaultSelfieCaptureModelLoadTimeoutMs : _c,
9135
9108
  _d = _a.requireVerticalFaceCentering,
9136
9109
  requireVerticalFaceCentering = _d === void 0 ? true : _d;
9137
- var _e = useContext(CameraStateContext),
9110
+ var _e = useCameraStore(useShallow(function (state) {
9111
+ return {
9112
+ videoRef: state.videoRef,
9113
+ videoLoaded: state.videoLoaded,
9114
+ cameraReady: state.cameraReady
9115
+ };
9116
+ })),
9138
9117
  videoRef = _e.videoRef,
9139
9118
  videoLoaded = _e.videoLoaded,
9140
9119
  cameraReady = _e.cameraReady;
@@ -9142,7 +9121,8 @@ function SelfieGuidanceModelsProvider(_a) {
9142
9121
  var onPredictionHandler = useRef();
9143
9122
  var _f = useLoadFaceDetector({
9144
9123
  onModelError: onModelError,
9145
- modelLoadTimeoutMs: modelLoadTimeoutMs
9124
+ modelLoadTimeoutMs: modelLoadTimeoutMs,
9125
+ videoRef: videoRef
9146
9126
  }),
9147
9127
  ready = _f.ready,
9148
9128
  modelDownloadProgress = _f.modelDownloadProgress,
@@ -9408,12 +9388,12 @@ var SelfieCaptureFallback = function SelfieCaptureFallback(_a) {
9408
9388
  }
9409
9389
  }, !image ? invalidSelfie ? verbiage.retryButtonText : verbiage.captureBtnText : loading ? verbiage.doneBtnLoadingText : verbiage.doneBtnText)))));
9410
9390
  };
9411
- var StyledOverlayInner$1 = styled(OverlayInner$2)(templateObject_1$h || (templateObject_1$h = __makeTemplateObject(["\n justify-content: center;\n"], ["\n justify-content: center;\n"])));
9412
- var Heading$7 = styled.h3(templateObject_2$f || (templateObject_2$f = __makeTemplateObject(["\n margin-bottom: 8px;\n"], ["\n margin-bottom: 8px;\n"])));
9413
- var Description$2 = styled.p(templateObject_3$c || (templateObject_3$c = __makeTemplateObject(["\n margin-bottom: 8px;\n"], ["\n margin-bottom: 8px;\n"])));
9414
- var ImageContainer$6 = styled(OverlayImageContainer)(templateObject_4$7 || (templateObject_4$7 = __makeTemplateObject(["\n margin-top: 32px;\n"], ["\n margin-top: 32px;\n"])));
9415
- var StyledButtonsRow$7 = styled(ButtonsRow)(templateObject_5$3 || (templateObject_5$3 = __makeTemplateObject(["\n margin-top: 32px;\n"], ["\n margin-top: 32px;\n"])));
9416
- var templateObject_1$h, templateObject_2$f, templateObject_3$c, templateObject_4$7, templateObject_5$3;
9391
+ var StyledOverlayInner$1 = styled(OverlayInner$2)(templateObject_1$i || (templateObject_1$i = __makeTemplateObject(["\n justify-content: center;\n"], ["\n justify-content: center;\n"])));
9392
+ var Heading$7 = styled.h3(templateObject_2$g || (templateObject_2$g = __makeTemplateObject(["\n margin-bottom: 8px;\n"], ["\n margin-bottom: 8px;\n"])));
9393
+ var Description$2 = styled.p(templateObject_3$d || (templateObject_3$d = __makeTemplateObject(["\n margin-bottom: 8px;\n"], ["\n margin-bottom: 8px;\n"])));
9394
+ var ImageContainer$6 = styled(OverlayImageContainer)(templateObject_4$8 || (templateObject_4$8 = __makeTemplateObject(["\n margin-top: 32px;\n"], ["\n margin-top: 32px;\n"])));
9395
+ var StyledButtonsRow$7 = styled(ButtonsRow)(templateObject_5$4 || (templateObject_5$4 = __makeTemplateObject(["\n margin-top: 32px;\n"], ["\n margin-top: 32px;\n"])));
9396
+ var templateObject_1$i, templateObject_2$g, templateObject_3$d, templateObject_4$8, templateObject_5$4;
9417
9397
 
9418
9398
  var initialState$3 = {
9419
9399
  busy: false,
@@ -9475,8 +9455,14 @@ var SelfieCapture = function SelfieCapture(_a) {
9475
9455
  prediction = _t.prediction,
9476
9456
  dispatch = _s[1];
9477
9457
  var lastPredictionCanvas = useRef(null);
9478
- var _u = useContext(CameraStateContext),
9479
- cameraRef = _u.cameraRef,
9458
+ var _u = useCameraStore(useShallow(function (state) {
9459
+ return {
9460
+ camera: state.camera,
9461
+ cameraReady: state.cameraReady,
9462
+ videoRef: state.videoRef
9463
+ };
9464
+ })),
9465
+ camera = _u.camera,
9480
9466
  videoRef = _u.videoRef;
9481
9467
  var _v = useContext(SelfieGuidanceModelsContext),
9482
9468
  onPredictionMade = _v.onPredictionMade,
@@ -9566,7 +9552,7 @@ var SelfieCapture = function SelfieCapture(_a) {
9566
9552
  face: prediction.face,
9567
9553
  scaling: debugScalingDetails,
9568
9554
  color: satisfied ? 'green' : 'red'
9569
- }))), debugMode && ( /*#__PURE__*/React__default.createElement(DebugStatsPane, null, cameraRef.current ? ( /*#__PURE__*/React__default.createElement(React__default.Fragment, null, "\u2705 Camera: ", cameraRef.current.label, " (", cameraRef.current.width, "x", cameraRef.current.height, ")")) : '❌ Camera not ready', /*#__PURE__*/React__default.createElement("br", null), !(prediction === null || prediction === void 0 ? void 0 : prediction.faceNotCentered) ? '✅' : '❌', " Face Centered", /*#__PURE__*/React__default.createElement("br", null), !(prediction === null || prediction === void 0 ? void 0 : prediction.faceTooClose) && !(prediction === null || prediction === void 0 ? void 0 : prediction.faceTooFar) ? '✅' : '❌', ' ', "Face", ' ', (prediction === null || prediction === void 0 ? void 0 : prediction.faceTooClose) ? 'Too Close' : (prediction === null || prediction === void 0 ? void 0 : prediction.faceTooFar) ? 'Too Far' : 'Distance Correct', /*#__PURE__*/React__default.createElement("br", null), !(prediction === null || prediction === void 0 ? void 0 : prediction.faceLookingAway) ? '✅' : '❌', " Face Looking Forward", /*#__PURE__*/React__default.createElement("br", null), !(prediction === null || prediction === void 0 ? void 0 : prediction.faceIsStable) ? '✅' : '❌', " Face Is Stable", /*#__PURE__*/React__default.createElement("br", null), !timedOut ? '✅' : '❌', " Time Remaining:", ' ', Math.max(0, timeoutDurationMs - (new Date().getTime() - (timeoutStartedAt !== null && timeoutStartedAt !== void 0 ? timeoutStartedAt : new Date()).getTime())), "ms")), /*#__PURE__*/React__default.createElement(ExitCaptureButton, {
9555
+ }))), debugMode && ( /*#__PURE__*/React__default.createElement(DebugStatsPane, null, camera ? ( /*#__PURE__*/React__default.createElement(React__default.Fragment, null, "\u2705 Camera: ", camera.label, " (", camera.width, "x", camera.height, ")")) : '❌ Camera not ready', /*#__PURE__*/React__default.createElement("br", null), !(prediction === null || prediction === void 0 ? void 0 : prediction.faceNotCentered) ? '✅' : '❌', " Face Centered", /*#__PURE__*/React__default.createElement("br", null), !(prediction === null || prediction === void 0 ? void 0 : prediction.faceTooClose) && !(prediction === null || prediction === void 0 ? void 0 : prediction.faceTooFar) ? '✅' : '❌', ' ', "Face", ' ', (prediction === null || prediction === void 0 ? void 0 : prediction.faceTooClose) ? 'Too Close' : (prediction === null || prediction === void 0 ? void 0 : prediction.faceTooFar) ? 'Too Far' : 'Distance Correct', /*#__PURE__*/React__default.createElement("br", null), !(prediction === null || prediction === void 0 ? void 0 : prediction.faceLookingAway) ? '✅' : '❌', " Face Looking Forward", /*#__PURE__*/React__default.createElement("br", null), !(prediction === null || prediction === void 0 ? void 0 : prediction.faceIsStable) ? '✅' : '❌', " Face Is Stable", /*#__PURE__*/React__default.createElement("br", null), !timedOut ? '✅' : '❌', " Time Remaining:", ' ', Math.max(0, timeoutDurationMs - (new Date().getTime() - (timeoutStartedAt !== null && timeoutStartedAt !== void 0 ? timeoutStartedAt : new Date()).getTime())), "ms")), /*#__PURE__*/React__default.createElement(ExitCaptureButton, {
9570
9556
  onClick: onExit,
9571
9557
  className: classNames.exitCaptureBtn
9572
9558
  }));
@@ -9957,9 +9943,9 @@ var FaceLivenessSuccess = function FaceLivenessSuccess(_a) {
9957
9943
  finished: true
9958
9944
  }, verbiage.retryBtnText)))));
9959
9945
  };
9960
- var ImageContainer$5 = styled.div(templateObject_1$g || (templateObject_1$g = __makeTemplateObject(["\n position: relative;\n flex-grow: 1;\n margin-bottom: 25px;\n max-width: 100dvw;\n max-height: 100dvh;\n overflow-y: auto;\n border-radius: 12px;\n\n & > img,\n & > svg {\n width: 100%;\n max-width: 100%;\n margin: 0 auto;\n display: block;\n border-radius: 12px;\n }\n"], ["\n position: relative;\n flex-grow: 1;\n margin-bottom: 25px;\n max-width: 100dvw;\n max-height: 100dvh;\n overflow-y: auto;\n border-radius: 12px;\n\n & > img,\n & > svg {\n width: 100%;\n max-width: 100%;\n margin: 0 auto;\n display: block;\n border-radius: 12px;\n }\n"])));
9961
- var Heading$6 = styled.h3(templateObject_2$e || (templateObject_2$e = __makeTemplateObject(["\n font-size: 1.2rem;\n margin: 0;\n"], ["\n font-size: 1.2rem;\n margin: 0;\n"])));
9962
- var templateObject_1$g, templateObject_2$e;
9946
+ var ImageContainer$5 = styled.div(templateObject_1$h || (templateObject_1$h = __makeTemplateObject(["\n position: relative;\n flex-grow: 1;\n margin-bottom: 25px;\n max-width: 100dvw;\n max-height: 100dvh;\n overflow-y: auto;\n border-radius: 12px;\n\n & > img,\n & > svg {\n width: 100%;\n max-width: 100%;\n margin: 0 auto;\n display: block;\n border-radius: 12px;\n }\n"], ["\n position: relative;\n flex-grow: 1;\n margin-bottom: 25px;\n max-width: 100dvw;\n max-height: 100dvh;\n overflow-y: auto;\n border-radius: 12px;\n\n & > img,\n & > svg {\n width: 100%;\n max-width: 100%;\n margin: 0 auto;\n display: block;\n border-radius: 12px;\n }\n"])));
9947
+ var Heading$6 = styled.h3(templateObject_2$f || (templateObject_2$f = __makeTemplateObject(["\n font-size: 1.2rem;\n margin: 0;\n"], ["\n font-size: 1.2rem;\n margin: 0;\n"])));
9948
+ var templateObject_1$h, templateObject_2$f;
9963
9949
 
9964
9950
  var FaceLivenessFailure = function FaceLivenessFailure(_a) {
9965
9951
  var _b = _a.canRetry,
@@ -10008,9 +9994,9 @@ var FaceLivenessFailure = function FaceLivenessFailure(_a) {
10008
9994
  finished: true
10009
9995
  }, verbiage.exitBtnText)))));
10010
9996
  };
10011
- var ImageContainer$4 = styled(OverlayImageContainer)(templateObject_1$f || (templateObject_1$f = __makeTemplateObject(["\n max-height: calc(100vh - 185px);\n"], ["\n max-height: calc(100vh - 185px);\n"])));
10012
- var Heading$5 = styled.h3(templateObject_2$d || (templateObject_2$d = __makeTemplateObject(["\n margin-bottom: 36px;\n"], ["\n margin-bottom: 36px;\n"])));
10013
- var templateObject_1$f, templateObject_2$d;
9997
+ var ImageContainer$4 = styled(OverlayImageContainer)(templateObject_1$g || (templateObject_1$g = __makeTemplateObject(["\n max-height: calc(100vh - 185px);\n"], ["\n max-height: calc(100vh - 185px);\n"])));
9998
+ var Heading$5 = styled.h3(templateObject_2$e || (templateObject_2$e = __makeTemplateObject(["\n margin-bottom: 36px;\n"], ["\n margin-bottom: 36px;\n"])));
9999
+ var templateObject_1$g, templateObject_2$e;
10014
10000
 
10015
10001
  var MicrophoneAccessDeniedOverlay = function MicrophoneAccessDeniedOverlay(_a) {
10016
10002
  var _b;
@@ -10022,7 +10008,9 @@ var MicrophoneAccessDeniedOverlay = function MicrophoneAccessDeniedOverlay(_a) {
10022
10008
  colors = _e === void 0 ? {} : _e,
10023
10009
  _f = _a.verbiage,
10024
10010
  rawVerbiage = _f === void 0 ? {} : _f;
10025
- var requestMicrophoneAccess = useContext(CameraStateContext).requestMicrophoneAccess;
10011
+ var requestMicrophoneAccess = useCameraStore(function (state) {
10012
+ return state.requestMicrophoneAccess;
10013
+ });
10026
10014
  assets.imageUrl || (assets.imageUrl = DEFAULT_CDN_URL + '/microphone-disable-icon.svg');
10027
10015
  var verbiage = useTranslations(rawVerbiage, {
10028
10016
  headingText: 'Your microphone permission is disabled',
@@ -10051,11 +10039,11 @@ var MicrophoneAccessDeniedOverlay = function MicrophoneAccessDeniedOverlay(_a) {
10051
10039
  finished: true
10052
10040
  }, verbiage.retryBtnText)));
10053
10041
  };
10054
- var StyledOverlayInner = styled(OverlayInner$2)(templateObject_1$e || (templateObject_1$e = __makeTemplateObject(["\n max-width: 500px;\n height: auto;\n margin: auto;\n"], ["\n max-width: 500px;\n height: auto;\n margin: auto;\n"])));
10055
- var StyledOverlayImageContainer$1 = styled(OverlayImageContainer)(templateObject_2$c || (templateObject_2$c = __makeTemplateObject(["\n flex-grow: 0;\n"], ["\n flex-grow: 0;\n"])));
10056
- var Description$1 = styled.p(templateObject_3$b || (templateObject_3$b = __makeTemplateObject(["\n line-height: 1.5;\n margin-bottom: 50px;\n"], ["\n line-height: 1.5;\n margin-bottom: 50px;\n"])));
10057
- var RetryButton = styled(LoaderButton)(templateObject_4$6 || (templateObject_4$6 = __makeTemplateObject(["\n width: 200px;\n margin: 0 auto;\n"], ["\n width: 200px;\n margin: 0 auto;\n"])));
10058
- var templateObject_1$e, templateObject_2$c, templateObject_3$b, templateObject_4$6;
10042
+ var StyledOverlayInner = styled(OverlayInner$2)(templateObject_1$f || (templateObject_1$f = __makeTemplateObject(["\n max-width: 500px;\n height: auto;\n margin: auto;\n"], ["\n max-width: 500px;\n height: auto;\n margin: auto;\n"])));
10043
+ var StyledOverlayImageContainer$1 = styled(OverlayImageContainer)(templateObject_2$d || (templateObject_2$d = __makeTemplateObject(["\n flex-grow: 0;\n"], ["\n flex-grow: 0;\n"])));
10044
+ var Description$1 = styled.p(templateObject_3$c || (templateObject_3$c = __makeTemplateObject(["\n line-height: 1.5;\n margin-bottom: 50px;\n"], ["\n line-height: 1.5;\n margin-bottom: 50px;\n"])));
10045
+ var RetryButton = styled(LoaderButton)(templateObject_4$7 || (templateObject_4$7 = __makeTemplateObject(["\n width: 200px;\n margin: 0 auto;\n"], ["\n width: 200px;\n margin: 0 auto;\n"])));
10046
+ var templateObject_1$f, templateObject_2$d, templateObject_3$c, templateObject_4$7;
10059
10047
 
10060
10048
  var SelfieCaptureLoadingOverlayLegacy = function SelfieCaptureLoadingOverlayLegacy(_a) {
10061
10049
  var onDismissed = _a.onDismissed,
@@ -10070,7 +10058,13 @@ var SelfieCaptureLoadingOverlayLegacy = function SelfieCaptureLoadingOverlayLega
10070
10058
  colors = _e === void 0 ? {} : _e,
10071
10059
  _f = _a.verbiage,
10072
10060
  rawVerbiage = _f === void 0 ? {} : _f;
10073
- var _g = useContext(CameraStateContext),
10061
+ var _g = useCameraStore(useShallow(function (state) {
10062
+ return {
10063
+ cameraReady: state.cameraReady,
10064
+ cameraAccessDenied: state.cameraAccessDenied,
10065
+ microphoneAccessDenied: state.microphoneAccessDenied
10066
+ };
10067
+ })),
10074
10068
  cameraReady = _g.cameraReady,
10075
10069
  cameraAccessDenied = _g.cameraAccessDenied,
10076
10070
  microphoneAccessDenied = _g.microphoneAccessDenied;
@@ -10138,9 +10132,9 @@ var SelfieCaptureLoadingOverlayLegacy = function SelfieCaptureLoadingOverlayLega
10138
10132
  }
10139
10133
  }, cameraReady && allModelsReady ? verbiage.continueText : allModelsReady ? verbiage.cameraInitializingText : modelDownloadProgress >= 100 ? "".concat(verbiage.modelsWarmingUpText) : "".concat(verbiage.downloadingText, " (").concat(modelDownloadProgress, "%)")))));
10140
10134
  };
10141
- var StyledGuidanceMessage$1 = styled(GuidanceMessage)(templateObject_1$d || (templateObject_1$d = __makeTemplateObject(["\n padding: 12px 24px;\n font-weight: normal;\n line-height: 1.5;\n margin-bottom: -30px;\n"], ["\n padding: 12px 24px;\n font-weight: normal;\n line-height: 1.5;\n margin-bottom: -30px;\n"])));
10142
- var StyledButtonsRow$6 = styled(ButtonsRow)(templateObject_2$b || (templateObject_2$b = __makeTemplateObject(["\n flex-direction: column;\n padding-top: 25px;\n"], ["\n flex-direction: column;\n padding-top: 25px;\n"])));
10143
- var templateObject_1$d, templateObject_2$b;
10135
+ var StyledGuidanceMessage$1 = styled(GuidanceMessage)(templateObject_1$e || (templateObject_1$e = __makeTemplateObject(["\n padding: 12px 24px;\n font-weight: normal;\n line-height: 1.5;\n margin-bottom: -30px;\n"], ["\n padding: 12px 24px;\n font-weight: normal;\n line-height: 1.5;\n margin-bottom: -30px;\n"])));
10136
+ var StyledButtonsRow$6 = styled(ButtonsRow)(templateObject_2$c || (templateObject_2$c = __makeTemplateObject(["\n flex-direction: column;\n padding-top: 25px;\n"], ["\n flex-direction: column;\n padding-top: 25px;\n"])));
10137
+ var templateObject_1$e, templateObject_2$c;
10144
10138
 
10145
10139
  var legacyInstructionImageUrl = "".concat(DEFAULT_CDN_URL, "/Selfie-Image-1.png");
10146
10140
  var SelfieCaptureLoadingOverlayDefault = function SelfieCaptureLoadingOverlayDefault(_a) {
@@ -10157,7 +10151,13 @@ var SelfieCaptureLoadingOverlayDefault = function SelfieCaptureLoadingOverlayDef
10157
10151
  colors = _e === void 0 ? {} : _e,
10158
10152
  _f = _a.verbiage,
10159
10153
  rawVerbiage = _f === void 0 ? {} : _f;
10160
- var _g = useContext(CameraStateContext),
10154
+ var _g = useCameraStore(useShallow(function (state) {
10155
+ return {
10156
+ cameraReady: state.cameraReady,
10157
+ cameraAccessDenied: state.cameraAccessDenied,
10158
+ microphoneAccessDenied: state.microphoneAccessDenied
10159
+ };
10160
+ })),
10161
10161
  cameraReady = _g.cameraReady,
10162
10162
  cameraAccessDenied = _g.cameraAccessDenied,
10163
10163
  microphoneAccessDenied = _g.microphoneAccessDenied;
@@ -10265,30 +10265,30 @@ var SelfieCaptureLoadingOverlayDefault = function SelfieCaptureLoadingOverlayDef
10265
10265
  }
10266
10266
  }, verbiage.continueText))))));
10267
10267
  };
10268
- var OverlayInner = styled.div(templateObject_1$c || (templateObject_1$c = __makeTemplateObject(["\n height: 100dvh;\n display: flex;\n flex-direction: column;\n background: ", ";\n color: ", ";\n"], ["\n height: 100dvh;\n display: flex;\n flex-direction: column;\n background: ", ";\n color: ", ";\n"])), function (props) {
10268
+ var OverlayInner = styled.div(templateObject_1$d || (templateObject_1$d = __makeTemplateObject(["\n height: 100dvh;\n display: flex;\n flex-direction: column;\n background: ", ";\n color: ", ";\n"], ["\n height: 100dvh;\n display: flex;\n flex-direction: column;\n background: ", ";\n color: ", ";\n"])), function (props) {
10269
10269
  var _a, _b, _c, _d;
10270
10270
  return (_d = (_c = (_b = (_a = props.theme) === null || _a === void 0 ? void 0 : _a.selfieCapture) === null || _b === void 0 ? void 0 : _b.loadingOverlay) === null || _c === void 0 ? void 0 : _c.backgroundColor) !== null && _d !== void 0 ? _d : '#ecedf3';
10271
10271
  }, function (props) {
10272
10272
  var _a, _b, _c, _d;
10273
10273
  return (_d = (_c = (_b = (_a = props.theme) === null || _a === void 0 ? void 0 : _a.selfieCapture) === null || _b === void 0 ? void 0 : _b.loadingOverlay) === null || _c === void 0 ? void 0 : _c.textColor) !== null && _d !== void 0 ? _d : 'black';
10274
10274
  });
10275
- var OverlayHeader = styled.div(templateObject_2$a || (templateObject_2$a = __makeTemplateObject(["\n text-align: ", ";\n display: flex;\n flex-direction: column;\n flex-wrap: nowrap;\n ", "\n padding-bottom: 0;\n"], ["\n text-align: ", ";\n display: flex;\n flex-direction: column;\n flex-wrap: nowrap;\n ", "\n padding-bottom: 0;\n"])), function (props) {
10275
+ var OverlayHeader = styled.div(templateObject_2$b || (templateObject_2$b = __makeTemplateObject(["\n text-align: ", ";\n display: flex;\n flex-direction: column;\n flex-wrap: nowrap;\n ", "\n padding-bottom: 0;\n"], ["\n text-align: ", ";\n display: flex;\n flex-direction: column;\n flex-wrap: nowrap;\n ", "\n padding-bottom: 0;\n"])), function (props) {
10276
10276
  var _a;
10277
10277
  return (_a = props.theme.textAlign) !== null && _a !== void 0 ? _a : 'center';
10278
10278
  }, function (props) {
10279
10279
  return props.theme.padding ? "box-sizing: border-box; padding: ".concat(props.theme.padding, ";") : "";
10280
10280
  });
10281
- var StyledGuidanceMessage = styled(GuidanceMessage)(templateObject_3$a || (templateObject_3$a = __makeTemplateObject(["\n padding: 16px 24px;\n margin-top: 16px;\n font-size: 18px;\n font-weight: bold;\n background: white;\n box-shadow:\n 0 1px 3px 0 rgb(0 0 0 / 0.1),\n 0 1px 2px -1px rgb(0 0 0 / 0.1);\n"], ["\n padding: 16px 24px;\n margin-top: 16px;\n font-size: 18px;\n font-weight: bold;\n background: white;\n box-shadow:\n 0 1px 3px 0 rgb(0 0 0 / 0.1),\n 0 1px 2px -1px rgb(0 0 0 / 0.1);\n"])));
10282
- var StyledButtonsRow$5 = styled(ButtonsRow)(templateObject_4$5 || (templateObject_4$5 = __makeTemplateObject(["\n display: flex;\n flex-direction: row;\n padding: 15px 25px;\n height: 100px;\n color: ", ";\n ", "\n position: fixed;\n bottom: 0;\n left: 0;\n width: 100dvw;\n box-sizing: border-box;\n"], ["\n display: flex;\n flex-direction: row;\n padding: 15px 25px;\n height: 100px;\n color: ", ";\n ", "\n position: fixed;\n bottom: 0;\n left: 0;\n width: 100dvw;\n box-sizing: border-box;\n"])), function (props) {
10281
+ var StyledGuidanceMessage = styled(GuidanceMessage)(templateObject_3$b || (templateObject_3$b = __makeTemplateObject(["\n padding: 16px 24px;\n margin-top: 16px;\n font-size: 18px;\n font-weight: bold;\n background: white;\n box-shadow:\n 0 1px 3px 0 rgb(0 0 0 / 0.1),\n 0 1px 2px -1px rgb(0 0 0 / 0.1);\n"], ["\n padding: 16px 24px;\n margin-top: 16px;\n font-size: 18px;\n font-weight: bold;\n background: white;\n box-shadow:\n 0 1px 3px 0 rgb(0 0 0 / 0.1),\n 0 1px 2px -1px rgb(0 0 0 / 0.1);\n"])));
10282
+ var StyledButtonsRow$5 = styled(ButtonsRow)(templateObject_4$6 || (templateObject_4$6 = __makeTemplateObject(["\n display: flex;\n flex-direction: row;\n padding: 15px 25px;\n height: 100px;\n color: ", ";\n ", "\n position: fixed;\n bottom: 0;\n left: 0;\n width: 100dvw;\n box-sizing: border-box;\n"], ["\n display: flex;\n flex-direction: row;\n padding: 15px 25px;\n height: 100px;\n color: ", ";\n ", "\n position: fixed;\n bottom: 0;\n left: 0;\n width: 100dvw;\n box-sizing: border-box;\n"])), function (props) {
10283
10283
  var _a, _b, _c, _d;
10284
10284
  return (_d = (_c = (_b = (_a = props.theme) === null || _a === void 0 ? void 0 : _a.selfieCapture) === null || _b === void 0 ? void 0 : _b.loadingOverlay) === null || _c === void 0 ? void 0 : _c.progressBarTextColor) !== null && _d !== void 0 ? _d : 'white';
10285
10285
  }, function (props) {
10286
10286
  var _a, _b, _c, _d, _e, _f;
10287
10287
  return ((_c = (_b = (_a = props.theme) === null || _a === void 0 ? void 0 : _a.selfieCapture) === null || _b === void 0 ? void 0 : _b.loadingOverlay) === null || _c === void 0 ? void 0 : _c.progressBarFontSize) ? "font-size: ".concat((_f = (_e = (_d = props.theme) === null || _d === void 0 ? void 0 : _d.selfieCapture) === null || _e === void 0 ? void 0 : _e.loadingOverlay) === null || _f === void 0 ? void 0 : _f.progressBarFontSize, ";") : '';
10288
10288
  });
10289
- var StyledOverlayImageContainer = styled(OverlayImageContainer)(templateObject_5$2 || (templateObject_5$2 = __makeTemplateObject(["\n padding: 0;\n\n & > svg {\n height: 100%;\n }\n"], ["\n padding: 0;\n\n & > svg {\n height: 100%;\n }\n"])));
10290
- var LoadingListContainer = styled.div(templateObject_6$2 || (templateObject_6$2 = __makeTemplateObject(["\n display: flex;\n position: relative;\n z-index: 2;\n"], ["\n display: flex;\n position: relative;\n z-index: 2;\n"])));
10291
- var LoadingList = styled.ul(templateObject_7$1 || (templateObject_7$1 = __makeTemplateObject(["\n display: block;\n margin: auto;\n list-style: none;\n padding: 0;\n"], ["\n display: block;\n margin: auto;\n list-style: none;\n padding: 0;\n"])));
10289
+ var StyledOverlayImageContainer = styled(OverlayImageContainer)(templateObject_5$3 || (templateObject_5$3 = __makeTemplateObject(["\n padding: 0;\n\n & > svg {\n height: 100%;\n }\n"], ["\n padding: 0;\n\n & > svg {\n height: 100%;\n }\n"])));
10290
+ var LoadingListContainer = styled.div(templateObject_6$3 || (templateObject_6$3 = __makeTemplateObject(["\n display: flex;\n position: relative;\n z-index: 2;\n"], ["\n display: flex;\n position: relative;\n z-index: 2;\n"])));
10291
+ var LoadingList = styled.ul(templateObject_7$2 || (templateObject_7$2 = __makeTemplateObject(["\n display: block;\n margin: auto;\n list-style: none;\n padding: 0;\n"], ["\n display: block;\n margin: auto;\n list-style: none;\n padding: 0;\n"])));
10292
10292
  var LoadingListItem = styled.li(templateObject_8 || (templateObject_8 = __makeTemplateObject(["\n display: inline-flex;\n justify-content: center;\n align-items: center;\n padding: 2px 1.25rem 2px 0;\n line-height: 1rem;\n"], ["\n display: inline-flex;\n justify-content: center;\n align-items: center;\n padding: 2px 1.25rem 2px 0;\n line-height: 1rem;\n"])));
10293
10293
  var ProgressContainer = styled.div(templateObject_9 || (templateObject_9 = __makeTemplateObject(["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n"], ["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n"])));
10294
10294
  var ProgressBarBackground = styled.div(templateObject_10 || (templateObject_10 = __makeTemplateObject(["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: ", ";\n opacity: ", ";\n"], ["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: ", ";\n opacity: ", ";\n"])), function (props) {
@@ -10314,7 +10314,7 @@ var ContinueButton = styled(LoaderButton)(templateObject_15 || (templateObject_1
10314
10314
  var _a, _b, _c, _d, _e, _f;
10315
10315
  return ((_c = (_b = (_a = props.theme) === null || _a === void 0 ? void 0 : _a.selfieCapture) === null || _b === void 0 ? void 0 : _b.loadingOverlay) === null || _c === void 0 ? void 0 : _c.continueBtnBorder) ? "border: ".concat((_f = (_e = (_d = props.theme) === null || _d === void 0 ? void 0 : _d.selfieCapture) === null || _e === void 0 ? void 0 : _e.loadingOverlay) === null || _f === void 0 ? void 0 : _f.continueBtnBorder, ";") : '';
10316
10316
  });
10317
- var templateObject_1$c, templateObject_2$a, templateObject_3$a, templateObject_4$5, templateObject_5$2, templateObject_6$2, templateObject_7$1, templateObject_8, templateObject_9, templateObject_10, templateObject_11, templateObject_12, templateObject_13, templateObject_14, templateObject_15;
10317
+ var templateObject_1$d, templateObject_2$b, templateObject_3$b, templateObject_4$6, templateObject_5$3, templateObject_6$3, templateObject_7$2, templateObject_8, templateObject_9, templateObject_10, templateObject_11, templateObject_12, templateObject_13, templateObject_14, templateObject_15;
10318
10318
 
10319
10319
  var components = {
10320
10320
  "default": SelfieCaptureLoadingOverlayDefault,
@@ -10374,7 +10374,13 @@ var FaceLivenessWizard = function FaceLivenessWizard(_a) {
10374
10374
  livenessCheckRequest = _t.livenessCheckRequest,
10375
10375
  setSelfieImage = _t.setSelfieImage,
10376
10376
  logSelfieCaptureAttempt = _t.logSelfieCaptureAttempt;
10377
- var _u = useContext(CameraStateContext),
10377
+ var _u = useCameraStore(useShallow(function (state) {
10378
+ return {
10379
+ cameraAccessDenied: state.cameraAccessDenied,
10380
+ requestCameraAccess: state.requestCameraAccess,
10381
+ releaseCameraAccess: state.releaseCameraAccess
10382
+ };
10383
+ })),
10378
10384
  cameraAccessDenied = _u.cameraAccessDenied,
10379
10385
  requestCameraAccess = _u.requestCameraAccess,
10380
10386
  releaseCameraAccess = _u.releaseCameraAccess;
@@ -10643,7 +10649,7 @@ var AdditionalDocumentCapture = function AdditionalDocumentCapture(_a) {
10643
10649
  }
10644
10650
  return /*#__PURE__*/React__default.createElement(OverlayContainer, {
10645
10651
  className: classNames.container
10646
- }, /*#__PURE__*/React__default.createElement(Inner$1, {
10652
+ }, /*#__PURE__*/React__default.createElement(Inner$2, {
10647
10653
  className: classNames.inner
10648
10654
  }, /*#__PURE__*/React__default.createElement(Heading$4, {
10649
10655
  className: classNames.heading
@@ -10673,11 +10679,11 @@ var AdditionalDocumentCapture = function AdditionalDocumentCapture(_a) {
10673
10679
  }
10674
10680
  }, verbiage.captureBtnText)))));
10675
10681
  };
10676
- var Inner$1 = styled(OverlayInner$2)(templateObject_1$b || (templateObject_1$b = __makeTemplateObject(["\n justify-content: center;\n"], ["\n justify-content: center;\n"])));
10677
- var Heading$4 = styled.h3(templateObject_2$9 || (templateObject_2$9 = __makeTemplateObject(["\n margin-bottom: 8px;\n"], ["\n margin-bottom: 8px;\n"])));
10678
- var Description = styled.p(templateObject_3$9 || (templateObject_3$9 = __makeTemplateObject(["\n margin-bottom: 8px;\n"], ["\n margin-bottom: 8px;\n"])));
10679
- var StyledButtonsRow$4 = styled(ButtonsRow)(templateObject_4$4 || (templateObject_4$4 = __makeTemplateObject(["\n margin-top: 32px;\n"], ["\n margin-top: 32px;\n"])));
10680
- var templateObject_1$b, templateObject_2$9, templateObject_3$9, templateObject_4$4;
10682
+ var Inner$2 = styled(OverlayInner$2)(templateObject_1$c || (templateObject_1$c = __makeTemplateObject(["\n justify-content: center;\n"], ["\n justify-content: center;\n"])));
10683
+ var Heading$4 = styled.h3(templateObject_2$a || (templateObject_2$a = __makeTemplateObject(["\n margin-bottom: 8px;\n"], ["\n margin-bottom: 8px;\n"])));
10684
+ var Description = styled.p(templateObject_3$a || (templateObject_3$a = __makeTemplateObject(["\n margin-bottom: 8px;\n"], ["\n margin-bottom: 8px;\n"])));
10685
+ var StyledButtonsRow$4 = styled(ButtonsRow)(templateObject_4$5 || (templateObject_4$5 = __makeTemplateObject(["\n margin-top: 32px;\n"], ["\n margin-top: 32px;\n"])));
10686
+ var templateObject_1$c, templateObject_2$a, templateObject_3$a, templateObject_4$5;
10681
10687
 
10682
10688
  var AdditionalDocumentCaptureWizard = function AdditionalDocumentCaptureWizard(_a) {
10683
10689
  var documents = _a.documents,
@@ -10821,7 +10827,7 @@ function convertSVGtoImg(svgData_1) {
10821
10827
  });
10822
10828
  }
10823
10829
 
10824
- var SignaturePaperBacking = styled.div(templateObject_1$a || (templateObject_1$a = __makeTemplateObject(["\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n ", "\n ", "\n ", "\n"], ["\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n ", "\n ", "\n ", "\n"])), function (props) {
10830
+ var SignaturePaperBacking = styled.div(templateObject_1$b || (templateObject_1$b = __makeTemplateObject(["\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n ", "\n ", "\n ", "\n"], ["\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n ", "\n ", "\n ", "\n"])), function (props) {
10825
10831
  var _a, _b;
10826
10832
  return ((_a = props.theme.signatureCapture) === null || _a === void 0 ? void 0 : _a.background) ? "background: ".concat((_b = props.theme.signatureCapture) === null || _b === void 0 ? void 0 : _b.background, ";") : "";
10827
10833
  }, function (props) {
@@ -10831,8 +10837,8 @@ var SignaturePaperBacking = styled.div(templateObject_1$a || (templateObject_1$a
10831
10837
  var _a, _b;
10832
10838
  return ((_a = props.theme.signatureCapture) === null || _a === void 0 ? void 0 : _a.backgroundPosition) ? "background-position: ".concat((_b = props.theme.signatureCapture) === null || _b === void 0 ? void 0 : _b.backgroundPosition, ";") : "";
10833
10839
  });
10834
- var SignatureCanvasContainer$1 = styled.div(templateObject_2$8 || (templateObject_2$8 = __makeTemplateObject(["\n position: absolute;\n top: 25%;\n left: 15%;\n width: 70%;\n height: 50%;\n\n @media (max-width: 800px) {\n top: 15%;\n left: 2%;\n width: 96%;\n height: 70%;\n }\n"], ["\n position: absolute;\n top: 25%;\n left: 15%;\n width: 70%;\n height: 50%;\n\n @media (max-width: 800px) {\n top: 15%;\n left: 2%;\n width: 96%;\n height: 70%;\n }\n"])));
10835
- var SignaturePad = styled.div(templateObject_3$8 || (templateObject_3$8 = __makeTemplateObject(["\n position: relative;\n background: ", ";\n border: ", ";\n border-radius: ", ";\n flex-grow: 1;\n z-index: 100;\n height: 100%;\n"], ["\n position: relative;\n background: ", ";\n border: ", ";\n border-radius: ", ";\n flex-grow: 1;\n z-index: 100;\n height: 100%;\n"])), function (props) {
10840
+ var SignatureCanvasContainer$1 = styled.div(templateObject_2$9 || (templateObject_2$9 = __makeTemplateObject(["\n position: absolute;\n top: 25%;\n left: 15%;\n width: 70%;\n height: 50%;\n\n @media (max-width: 800px) {\n top: 15%;\n left: 2%;\n width: 96%;\n height: 70%;\n }\n"], ["\n position: absolute;\n top: 25%;\n left: 15%;\n width: 70%;\n height: 50%;\n\n @media (max-width: 800px) {\n top: 15%;\n left: 2%;\n width: 96%;\n height: 70%;\n }\n"])));
10841
+ var SignaturePad = styled.div(templateObject_3$9 || (templateObject_3$9 = __makeTemplateObject(["\n position: relative;\n background: ", ";\n border: ", ";\n border-radius: ", ";\n flex-grow: 1;\n z-index: 100;\n height: 100%;\n"], ["\n position: relative;\n background: ", ";\n border: ", ";\n border-radius: ", ";\n flex-grow: 1;\n z-index: 100;\n height: 100%;\n"])), function (props) {
10836
10842
  var _a, _b, _c;
10837
10843
  return (_c = (_b = (_a = props.theme.signatureCapture) === null || _a === void 0 ? void 0 : _a.canvas) === null || _b === void 0 ? void 0 : _b.background) !== null && _c !== void 0 ? _c : 'rgba(255, 255, 255, 0.5)';
10838
10844
  }, function (props) {
@@ -10842,8 +10848,8 @@ var SignaturePad = styled.div(templateObject_3$8 || (templateObject_3$8 = __make
10842
10848
  var _a, _b, _c;
10843
10849
  return (_c = (_b = (_a = props.theme.signatureCapture) === null || _a === void 0 ? void 0 : _a.canvas) === null || _b === void 0 ? void 0 : _b.borderRadius) !== null && _c !== void 0 ? _c : '16px';
10844
10850
  });
10845
- var SignatureButtonsContainer = styled(ButtonsRow)(templateObject_4$3 || (templateObject_4$3 = __makeTemplateObject(["\n flex-grow: 0;\n padding-top: 12px;\n display: flex;\n z-index: 1000;\n position: relative;\n"], ["\n flex-grow: 0;\n padding-top: 12px;\n display: flex;\n z-index: 1000;\n position: relative;\n"])));
10846
- var templateObject_1$a, templateObject_2$8, templateObject_3$8, templateObject_4$3;
10851
+ var SignatureButtonsContainer = styled(ButtonsRow)(templateObject_4$4 || (templateObject_4$4 = __makeTemplateObject(["\n flex-grow: 0;\n padding-top: 12px;\n display: flex;\n z-index: 1000;\n position: relative;\n"], ["\n flex-grow: 0;\n padding-top: 12px;\n display: flex;\n z-index: 1000;\n position: relative;\n"])));
10852
+ var templateObject_1$b, templateObject_2$9, templateObject_3$9, templateObject_4$4;
10847
10853
 
10848
10854
  var SignatureCapture = function SignatureCapture(_a) {
10849
10855
  var _b;
@@ -10914,8 +10920,8 @@ var SignatureCapture = function SignatureCapture(_a) {
10914
10920
  finished: true
10915
10921
  }, verbiage.acceptBtnText)))));
10916
10922
  };
10917
- var AcceptBtn$1 = styled(LoaderButton)(templateObject_1$9 || (templateObject_1$9 = __makeTemplateObject(["\n margin-left: auto;\n"], ["\n margin-left: auto;\n"])));
10918
- var templateObject_1$9;
10923
+ var AcceptBtn$1 = styled(LoaderButton)(templateObject_1$a || (templateObject_1$a = __makeTemplateObject(["\n margin-left: auto;\n"], ["\n margin-left: auto;\n"])));
10924
+ var templateObject_1$a;
10919
10925
 
10920
10926
  var useVideoRecorder = function useVideoRecorder(camera, audioStream, mergeAVStreams) {
10921
10927
  if (mergeAVStreams === void 0) {
@@ -11095,10 +11101,10 @@ function VideoSignatureContextProvider(_a) {
11095
11101
  setSignatureVideoUrl = _e[1];
11096
11102
  var signatureRecorder = useRef(null);
11097
11103
  var recordedChunks = useRef([]);
11098
- var _f = useContext(CameraStateContext),
11099
- cameraRef = _f.cameraRef,
11104
+ var _f = useCameraStore(),
11105
+ camera = _f.camera,
11100
11106
  videoRef = _f.videoRef;
11101
- var _g = useVideoRecorder(cameraRef.current),
11107
+ var _g = useVideoRecorder(camera),
11102
11108
  isRecordingVideo = _g.isRecordingVideo,
11103
11109
  startRecordingVideo = _g.startRecordingVideo,
11104
11110
  stopRecordingVideo = _g.stopRecordingVideo,
@@ -11166,8 +11172,8 @@ function VideoSignatureContextProvider(_a) {
11166
11172
  var animationFrame = useRef(0);
11167
11173
  useEffect(function () {
11168
11174
  var _a;
11169
- if (!signaturePad.current || !videoRef.current || !outputCanvas.current || !cameraRef.current || !isRecording || !isRecordingVideo) return;
11170
- var _b = [cameraRef.current.width, cameraRef.current.height],
11175
+ if (!signaturePad.current || !videoRef.current || !outputCanvas.current || !camera || !isRecording || !isRecordingVideo) return;
11176
+ var _b = [camera.width, camera.height],
11171
11177
  w = _b[0],
11172
11178
  h = _b[1];
11173
11179
  var isPortrait = typeof window !== 'undefined' && window.innerWidth < window.innerHeight;
@@ -11200,7 +11206,7 @@ function VideoSignatureContextProvider(_a) {
11200
11206
  return function () {
11201
11207
  cancelAnimationFrame(animationFrame.current);
11202
11208
  };
11203
- }, [cameraRef, isRecording, isRecordingVideo, videoRef]);
11209
+ }, [camera, isRecording, isRecordingVideo, videoRef]);
11204
11210
  var onAcceptClicked = useCallback(function () {
11205
11211
  return __awaiter(_this, void 0, void 0, function () {
11206
11212
  var imageUrl;
@@ -11275,11 +11281,11 @@ function VideoSignatureGuides(_a) {
11275
11281
  className: classNames.signatureCanvas
11276
11282
  };
11277
11283
  }, [classNames.signatureCanvas, height, width]);
11278
- return /*#__PURE__*/React__default.createElement(Container, {
11284
+ return /*#__PURE__*/React__default.createElement(Container$1, {
11279
11285
  className: classNames.container
11280
- }, /*#__PURE__*/React__default.createElement(Inner, {
11286
+ }, /*#__PURE__*/React__default.createElement(Inner$1, {
11281
11287
  className: classNames.inner
11282
- }, /*#__PURE__*/React__default.createElement(FaceGuideContainer, {
11288
+ }, /*#__PURE__*/React__default.createElement(FaceGuideContainer$1, {
11283
11289
  className: classNames.faceGuideContainer
11284
11290
  }, /*#__PURE__*/React__default.createElement(StyledSelfieCaptureAnimatedMask, {
11285
11291
  className: classNames.faceGuide,
@@ -11314,42 +11320,44 @@ function VideoSignatureGuides(_a) {
11314
11320
  finished: true
11315
11321
  }, verbiage.acceptSignatureBtnText))))));
11316
11322
  }
11317
- var Container = styled.div(templateObject_1$8 || (templateObject_1$8 = __makeTemplateObject(["\n display: flex;\n max-height: 100%;\n position: absolute;\n z-index: 1000;\n width: 100dvw;\n height: 100dvh;\n font-family: ", ";\n box-sizing: border-box;\n overflow: hidden;\n padding: 40px;\n"], ["\n display: flex;\n max-height: 100%;\n position: absolute;\n z-index: 1000;\n width: 100dvw;\n height: 100dvh;\n font-family: ", ";\n box-sizing: border-box;\n overflow: hidden;\n padding: 40px;\n"])), function (props) {
11323
+ var Container$1 = styled.div(templateObject_1$9 || (templateObject_1$9 = __makeTemplateObject(["\n display: flex;\n max-height: 100%;\n position: absolute;\n z-index: 1000;\n width: 100dvw;\n height: 100dvh;\n font-family: ", ";\n box-sizing: border-box;\n overflow: hidden;\n padding: 40px;\n"], ["\n display: flex;\n max-height: 100%;\n position: absolute;\n z-index: 1000;\n width: 100dvw;\n height: 100dvh;\n font-family: ", ";\n box-sizing: border-box;\n overflow: hidden;\n padding: 40px;\n"])), function (props) {
11318
11324
  var _a;
11319
11325
  return (_a = props.theme) === null || _a === void 0 ? void 0 : _a.fontFamily;
11320
11326
  });
11321
- var Inner = styled.div(templateObject_2$7 || (templateObject_2$7 = __makeTemplateObject(["\n width: 100%;\n height: 100%;\n max-height: 1280px;\n display: flex;\n margin: auto;\n align-items: center;\n flex-direction: column;\n"], ["\n width: 100%;\n height: 100%;\n max-height: 1280px;\n display: flex;\n margin: auto;\n align-items: center;\n flex-direction: column;\n"])));
11322
- var FaceGuideContainer = styled.div(templateObject_3$7 || (templateObject_3$7 = __makeTemplateObject(["\n position: relative;\n height: 50%;\n"], ["\n position: relative;\n height: 50%;\n"])));
11323
- var StyledSelfieCaptureAnimatedMask = styled(SelfieCaptureAnimatedMaskWithStatus)(templateObject_4$2 || (templateObject_4$2 = __makeTemplateObject(["\n max-width: 100%;\n height: 100%;\n"], ["\n max-width: 100%;\n height: 100%;\n"])));
11324
- var SignaturePadContainer = styled.div(templateObject_5$1 || (templateObject_5$1 = __makeTemplateObject(["\n position: relative;\n max-width: 100%;\n height: 50%;\n aspect-ratio: 2;\n"], ["\n position: relative;\n max-width: 100%;\n height: 50%;\n aspect-ratio: 2;\n"])));
11325
- var SignatureCanvasContainer = styled.div(templateObject_6$1 || (templateObject_6$1 = __makeTemplateObject(["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: calc(100% - 67px);\n ", "\n"], ["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: calc(100% - 67px);\n ", "\n"])), function (props) {
11327
+ var Inner$1 = styled.div(templateObject_2$8 || (templateObject_2$8 = __makeTemplateObject(["\n width: 100%;\n height: 100%;\n max-height: 1280px;\n display: flex;\n margin: auto;\n align-items: center;\n flex-direction: column;\n"], ["\n width: 100%;\n height: 100%;\n max-height: 1280px;\n display: flex;\n margin: auto;\n align-items: center;\n flex-direction: column;\n"])));
11328
+ var FaceGuideContainer$1 = styled.div(templateObject_3$8 || (templateObject_3$8 = __makeTemplateObject(["\n position: relative;\n height: 50%;\n"], ["\n position: relative;\n height: 50%;\n"])));
11329
+ var StyledSelfieCaptureAnimatedMask = styled(SelfieCaptureAnimatedMaskWithStatus)(templateObject_4$3 || (templateObject_4$3 = __makeTemplateObject(["\n max-width: 100%;\n height: 100%;\n"], ["\n max-width: 100%;\n height: 100%;\n"])));
11330
+ var SignaturePadContainer = styled.div(templateObject_5$2 || (templateObject_5$2 = __makeTemplateObject(["\n position: relative;\n max-width: 100%;\n height: 50%;\n aspect-ratio: 2;\n"], ["\n position: relative;\n max-width: 100%;\n height: 50%;\n aspect-ratio: 2;\n"])));
11331
+ var SignatureCanvasContainer = styled.div(templateObject_6$2 || (templateObject_6$2 = __makeTemplateObject(["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: calc(100% - 67px);\n ", "\n"], ["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: calc(100% - 67px);\n ", "\n"])), function (props) {
11326
11332
  return props.$disabled ? 'opacity: 0.5; pointer-events: none;' : '';
11327
11333
  });
11328
- var AcceptBtn = styled(LoaderButton)(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n margin-left: auto;\n"], ["\n margin-left: auto;\n"])));
11329
- var templateObject_1$8, templateObject_2$7, templateObject_3$7, templateObject_4$2, templateObject_5$1, templateObject_6$1, templateObject_7;
11334
+ var AcceptBtn = styled(LoaderButton)(templateObject_7$1 || (templateObject_7$1 = __makeTemplateObject(["\n margin-left: auto;\n"], ["\n margin-left: auto;\n"])));
11335
+ var templateObject_1$9, templateObject_2$8, templateObject_3$8, templateObject_4$3, templateObject_5$2, templateObject_6$2, templateObject_7$1;
11330
11336
 
11331
11337
  var VideoSignatureCapture = function VideoSignatureCapture(_a) {
11332
- var _b, _c, _d;
11338
+ var _b;
11333
11339
  var onVideoCaptured = _a.onVideoCaptured,
11334
11340
  onFaceNotDetected = _a.onFaceNotDetected,
11335
11341
  onExit = _a.onExit,
11336
11342
  guidesComponent = _a.guidesComponent,
11337
- _e = _a.classNames,
11338
- classNames = _e === void 0 ? {} : _e,
11339
- _f = _a.colors,
11340
- colors = _f === void 0 ? {} : _f,
11341
- _g = _a.verbiage,
11342
- rawVerbiage = _g === void 0 ? {} : _g,
11343
- _h = _a.debugMode,
11344
- debugMode = _h === void 0 ? false : _h;
11345
- var cameraRef = useContext(CameraStateContext).cameraRef;
11343
+ _c = _a.classNames,
11344
+ classNames = _c === void 0 ? {} : _c,
11345
+ _d = _a.colors,
11346
+ colors = _d === void 0 ? {} : _d,
11347
+ _e = _a.verbiage,
11348
+ rawVerbiage = _e === void 0 ? {} : _e,
11349
+ _f = _a.debugMode,
11350
+ debugMode = _f === void 0 ? false : _f;
11351
+ var camera = useCameraStore(function (state) {
11352
+ return state.camera;
11353
+ });
11346
11354
  var onPredictionMade = useContext(SelfieGuidanceModelsContext).onPredictionMade;
11347
- var _j = useVideoSignatureContext(),
11348
- signatureData = _j.signatureData,
11349
- signatureDataUrl = _j.signatureDataUrl,
11350
- signatureVideoData = _j.signatureVideoData,
11351
- startRecording = _j.startRecording,
11352
- stopRecording = _j.stopRecording;
11355
+ var _g = useVideoSignatureContext(),
11356
+ signatureData = _g.signatureData,
11357
+ signatureDataUrl = _g.signatureDataUrl,
11358
+ signatureVideoData = _g.signatureVideoData,
11359
+ startRecording = _g.startRecording,
11360
+ stopRecording = _g.stopRecording;
11353
11361
  useEffect(function () {
11354
11362
  startRecording();
11355
11363
  return function () {
@@ -11366,9 +11374,9 @@ var VideoSignatureCapture = function VideoSignatureCapture(_a) {
11366
11374
  onVideoCaptured === null || onVideoCaptured === void 0 ? void 0 : onVideoCaptured(signatureVideoData, signatureData, signatureDataUrl);
11367
11375
  }
11368
11376
  }, [onVideoCaptured, signatureData, signatureDataUrl, signatureVideoData]);
11369
- var _k = useState(0),
11370
- numFramesWithoutFaces = _k[0],
11371
- setNumFramesWithoutFaces = _k[1];
11377
+ var _h = useState(0),
11378
+ numFramesWithoutFaces = _h[0],
11379
+ setNumFramesWithoutFaces = _h[1];
11372
11380
  useEffect(function () {
11373
11381
  onPredictionMade(function (_a) {
11374
11382
  var face = _a.face;
@@ -11395,7 +11403,7 @@ var VideoSignatureCapture = function VideoSignatureCapture(_a) {
11395
11403
  }, verbiage.guidanceMessageText))), /*#__PURE__*/React__default.createElement(GuidesComponent, {
11396
11404
  classNames: classNames.videoSignatureGuidesClassNames,
11397
11405
  status: "success"
11398
- }), debugMode && ( /*#__PURE__*/React__default.createElement(DebugStatsPane, null, "Video: ", (_c = cameraRef.current) === null || _c === void 0 ? void 0 : _c.width, "x", (_d = cameraRef.current) === null || _d === void 0 ? void 0 : _d.height)), /*#__PURE__*/React__default.createElement(ExitCaptureButton, {
11406
+ }), debugMode && ( /*#__PURE__*/React__default.createElement(DebugStatsPane, null, "Video: ", camera === null || camera === void 0 ? void 0 : camera.width, "x", camera === null || camera === void 0 ? void 0 : camera.height)), /*#__PURE__*/React__default.createElement(ExitCaptureButton, {
11399
11407
  onClick: onExit,
11400
11408
  className: classNames.exitCaptureBtn
11401
11409
  }));
@@ -11454,8 +11462,8 @@ var VideoSignatureSuccess = function VideoSignatureSuccess(_a) {
11454
11462
  finished: true
11455
11463
  }, verbiage.doneBtnText))));
11456
11464
  };
11457
- var StyledVideo$1 = styled.video(templateObject_1$7 || (templateObject_1$7 = __makeTemplateObject(["\n margin-left: auto;\n margin-right: auto;\n max-width: 100%;\n"], ["\n margin-left: auto;\n margin-right: auto;\n max-width: 100%;\n"])));
11458
- var templateObject_1$7;
11465
+ var StyledVideo$1 = styled.video(templateObject_1$8 || (templateObject_1$8 = __makeTemplateObject(["\n margin-left: auto;\n margin-right: auto;\n max-width: 100%;\n"], ["\n margin-left: auto;\n margin-right: auto;\n max-width: 100%;\n"])));
11466
+ var templateObject_1$8;
11459
11467
 
11460
11468
  var VideoSignatureWizard = function VideoSignatureWizard(_a) {
11461
11469
  var _b;
@@ -11489,7 +11497,13 @@ var VideoSignatureWizard = function VideoSignatureWizard(_a) {
11489
11497
  setSignatureData = _l.setSignatureData,
11490
11498
  setSignatureVideoUrl = _l.setSignatureVideoUrl,
11491
11499
  logSelfieCaptureAttempt = _l.logSelfieCaptureAttempt;
11492
- var _m = useContext(CameraStateContext),
11500
+ var _m = useCameraStore(useShallow(function (state) {
11501
+ return {
11502
+ cameraAccessDenied: state.cameraAccessDenied,
11503
+ requestCameraAccess: state.requestCameraAccess,
11504
+ releaseCameraAccess: state.releaseCameraAccess
11505
+ };
11506
+ })),
11493
11507
  cameraAccessDenied = _m.cameraAccessDenied,
11494
11508
  requestCameraAccess = _m.requestCameraAccess,
11495
11509
  releaseCameraAccess = _m.releaseCameraAccess;
@@ -11648,6 +11662,129 @@ var VideoSignatureWizard = function VideoSignatureWizard(_a) {
11648
11662
  }()));
11649
11663
  };
11650
11664
 
11665
+ var IdVideoCaptureGuides = function IdVideoCaptureGuides(_a) {
11666
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y;
11667
+ var _z = _a.requestedAction,
11668
+ requestedAction = _z === void 0 ? 'SHOW_ID_FRONT' : _z,
11669
+ _0 = _a.satisfied,
11670
+ satisfied = _0 === void 0 ? false : _0,
11671
+ _1 = _a.faceGuideStatus,
11672
+ faceGuideStatus = _1 === void 0 ? 'success' : _1,
11673
+ faceGuideBorderWidth = _a.faceGuideBorderWidth,
11674
+ faceGuideBorderColor = _a.faceGuideBorderColor,
11675
+ _2 = _a.idCardGuideStatus,
11676
+ idCardGuideStatus = _2 === void 0 ? 'ready' : _2,
11677
+ idCardGuideBorderWidth = _a.idCardGuideBorderWidth,
11678
+ idCardGuideBorderColor = _a.idCardGuideBorderColor,
11679
+ idCardCaptureProgress = _a.idCardCaptureProgress,
11680
+ _3 = _a.idCardCaptureGuideImages,
11681
+ userSuppliedImages = _3 === void 0 ? defaultIdCaptureGuideImages : _3,
11682
+ _4 = _a.classNames,
11683
+ classNames = _4 === void 0 ? {} : _4,
11684
+ _5 = _a.verbiage,
11685
+ rawVerbiage = _5 === void 0 ? {} : _5;
11686
+ var isRearFacing = useCameraStore(function (state) {
11687
+ return state.isRearFacing;
11688
+ });
11689
+ var verbiage = useTranslations(rawVerbiage, {
11690
+ idFrontInstructionText: 'Display the front of your ID card...',
11691
+ idBackInstructionText: 'Display the back of your ID card...',
11692
+ flipIdInstructionText: 'Please flip your ID card...',
11693
+ verifyLivenessInstructionText: 'Performing facial recognition, please hold still...'
11694
+ });
11695
+ var instructionText = requestedAction === 'VERIFY_LIVENESS' ? verbiage.verifyLivenessInstructionText : requestedAction === 'SHOW_ID_FRONT' ? verbiage.idFrontInstructionText : requestedAction === 'FLIP_ID' ? verbiage.flipIdInstructionText : verbiage.idBackInstructionText;
11696
+ var theme = useTheme();
11697
+ if (faceGuideBorderWidth === undefined) faceGuideBorderWidth = (_d = (_c = (_b = theme.idVideoCapture) === null || _b === void 0 ? void 0 : _b.faceGuides) === null || _c === void 0 ? void 0 : _c.borderWidth) !== null && _d !== void 0 ? _d : 5;
11698
+ if (faceGuideBorderColor === undefined) faceGuideBorderColor = (_j = satisfied ? (_f = (_e = theme.idVideoCapture) === null || _e === void 0 ? void 0 : _e.faceGuides) === null || _f === void 0 ? void 0 : _f.satisfiedColor : (_h = (_g = theme.idVideoCapture) === null || _g === void 0 ? void 0 : _g.faceGuides) === null || _h === void 0 ? void 0 : _h.unsatisfiedColor) !== null && _j !== void 0 ? _j : '#D6DCE7';
11699
+ if (idCardGuideBorderWidth === undefined) idCardGuideBorderWidth = (_m = (_l = (_k = theme.idVideoCapture) === null || _k === void 0 ? void 0 : _k.idCardGuides) === null || _l === void 0 ? void 0 : _l.borderWidth) !== null && _m !== void 0 ? _m : 20;
11700
+ if (idCardGuideBorderColor === undefined) idCardGuideBorderColor = (_s = satisfied ? (_p = (_o = theme.idVideoCapture) === null || _o === void 0 ? void 0 : _o.idCardGuides) === null || _p === void 0 ? void 0 : _p.satisfiedColor : (_r = (_q = theme.idVideoCapture) === null || _q === void 0 ? void 0 : _q.idCardGuides) === null || _r === void 0 ? void 0 : _r.unsatisfiedColor) !== null && _s !== void 0 ? _s : '#D6DCE7';
11701
+ var _6 = useResizeObserver(),
11702
+ idCardGuideRef = _6.ref,
11703
+ _7 = _6.width,
11704
+ idCardGuideWidth = _7 === void 0 ? 0 : _7,
11705
+ _8 = _6.height,
11706
+ idCardGuideHeight = _8 === void 0 ? 0 : _8;
11707
+ var idCaptureGuideImages = useGuideImages(userSuppliedImages);
11708
+ var idCaptureGuideImagesByUrl = useGuideImagesByUrl(idCaptureGuideImages);
11709
+ var _9 = useState(undefined),
11710
+ aspectRatio = _9[0],
11711
+ setAspectRatio = _9[1];
11712
+ var onImageLoaded = useCallback(function (e) {
11713
+ var _a, _b, _c, _d;
11714
+ var img = e.currentTarget;
11715
+ var imageByUrl = idCaptureGuideImagesByUrl[img.src];
11716
+ var naturalWidth = (_b = (_a = imageByUrl === null || imageByUrl === void 0 ? void 0 : imageByUrl.width) !== null && _a !== void 0 ? _a : img.naturalWidth) !== null && _b !== void 0 ? _b : 0;
11717
+ var naturalHeight = (_d = (_c = imageByUrl === null || imageByUrl === void 0 ? void 0 : imageByUrl.height) !== null && _c !== void 0 ? _c : img.naturalHeight) !== null && _d !== void 0 ? _d : 0;
11718
+ setAspectRatio(naturalHeight > 0 ? naturalWidth / naturalHeight : undefined);
11719
+ }, [idCaptureGuideImagesByUrl]);
11720
+ var idCardImageStyle = useMemo(function () {
11721
+ return {
11722
+ maxWidth: idCardGuideWidth > idCardGuideHeight ? idCardGuideWidth : undefined,
11723
+ maxHeight: idCardGuideHeight > idCardGuideWidth ? idCardGuideHeight : undefined,
11724
+ height: '100%',
11725
+ aspectRatio: aspectRatio
11726
+ };
11727
+ }, [idCardGuideWidth, idCardGuideHeight, aspectRatio]);
11728
+ var disableIdGuides = ((_u = (_t = theme.idVideoCapture) === null || _t === void 0 ? void 0 : _t.idCardGuides) === null || _u === void 0 ? void 0 : _u.disableDuringLivenessCheck) && requestedAction === 'VERIFY_LIVENESS';
11729
+ return /*#__PURE__*/React__default.createElement(Container, {
11730
+ className: classNames.container
11731
+ }, /*#__PURE__*/React__default.createElement(Inner, null, /*#__PURE__*/React__default.createElement(FaceGuideContainer, {
11732
+ className: classNames.faceGuideContainer
11733
+ }, /*#__PURE__*/React__default.createElement(SelfieCaptureAnimatedMaskWithStatus, {
11734
+ className: classNames.faceGuide,
11735
+ status: requestedAction === 'VERIFY_LIVENESS' ? faceGuideStatus : 'success',
11736
+ borderWidth: faceGuideBorderWidth,
11737
+ borderColor: faceGuideBorderColor,
11738
+ verticalAlign: "bottom"
11739
+ })), !disableIdGuides && ( /*#__PURE__*/React__default.createElement(IdCardGuideContainer, {
11740
+ className: classNames.idCardGuideContainer,
11741
+ ref: idCardGuideRef
11742
+ }, /*#__PURE__*/React__default.createElement(IdCardGuideInner, {
11743
+ className: classNames.idCardGuideInner,
11744
+ style: {
11745
+ aspectRatio: aspectRatio
11746
+ }
11747
+ }, /*#__PURE__*/React__default.createElement(IdCardGuideImageContainer, {
11748
+ className: classNames.idCardGuideImageContainer,
11749
+ status: requestedAction === 'VERIFY_LIVENESS' ? 'disabled' : idCardGuideStatus,
11750
+ borderWidth: idCardGuideBorderWidth,
11751
+ borderColor: idCardGuideBorderColor,
11752
+ aspectRatio: aspectRatio,
11753
+ "$isVisible": requestedAction !== 'FLIP_ID',
11754
+ progress: requestedAction === 'VERIFY_LIVENESS' ? undefined : idCardCaptureProgress
11755
+ }, /*#__PURE__*/React__default.createElement(IdCardGuideImage, {
11756
+ alt: "",
11757
+ className: classNames.idCardGuideImage,
11758
+ "$isMirrored": !isRearFacing,
11759
+ style: idCardImageStyle,
11760
+ src: requestedAction === 'SHOW_ID_BACK' ? idCaptureGuideImages.landscape.SHOW_ID_BACK.url : idCaptureGuideImages.landscape.SHOW_ID_FRONT.url,
11761
+ onLoad: onImageLoaded
11762
+ })), requestedAction === 'FLIP_ID' && ( /*#__PURE__*/React__default.createElement(IdVideoCaptureFlipIdPrompt, {
11763
+ idCaptureGuideImages: idCaptureGuideImages,
11764
+ classNames: classNames.flipIdPrompt,
11765
+ borderWidth: idCardGuideBorderWidth,
11766
+ borderColor: idCardGuideBorderColor,
11767
+ imageStyle: idCardImageStyle
11768
+ }))), /*#__PURE__*/React__default.createElement(IdCardGuideInstructionsContainer, {
11769
+ className: classNames.idCardGuideInstructionsContainer
11770
+ }, /*#__PURE__*/React__default.createElement(IdCardGuideInstructions, {
11771
+ className: classNames.idCardGuideInstructions,
11772
+ "$textColor": (_w = (_v = theme.idVideoCapture) === null || _v === void 0 ? void 0 : _v.idCardGuides) === null || _w === void 0 ? void 0 : _w.instructionsTextColor,
11773
+ "$background": (_y = (_x = theme.idVideoCapture) === null || _x === void 0 ? void 0 : _x.idCardGuides) === null || _y === void 0 ? void 0 : _y.instructionsBackgroundColor
11774
+ }, instructionText))))));
11775
+ };
11776
+ var Container = styled.div(templateObject_1$7 || (templateObject_1$7 = __makeTemplateObject(["\n display: flex;\n max-height: 100%;\n position: absolute;\n z-index: 1000;\n width: 100dvw;\n height: 100dvh;\n font-family: ", ";\n box-sizing: border-box;\n overflow: hidden;\n padding: 40px;\n"], ["\n display: flex;\n max-height: 100%;\n position: absolute;\n z-index: 1000;\n width: 100dvw;\n height: 100dvh;\n font-family: ", ";\n box-sizing: border-box;\n overflow: hidden;\n padding: 40px;\n"])), function (props) {
11777
+ var _a;
11778
+ return (_a = props.theme) === null || _a === void 0 ? void 0 : _a.fontFamily;
11779
+ });
11780
+ var Inner = styled.div(templateObject_2$7 || (templateObject_2$7 = __makeTemplateObject(["\n width: 100%;\n height: 100%;\n max-height: 1280px;\n display: flex;\n margin: auto;\n align-items: center;\n flex-direction: column;\n justify-content: center;\n"], ["\n width: 100%;\n height: 100%;\n max-height: 1280px;\n display: flex;\n margin: auto;\n align-items: center;\n flex-direction: column;\n justify-content: center;\n"])));
11781
+ var FaceGuideContainer = styled.div(templateObject_3$7 || (templateObject_3$7 = __makeTemplateObject(["\n position: relative;\n height: 65%;\n"], ["\n position: relative;\n height: 65%;\n"])));
11782
+ var IdCardGuideContainer = styled.div(templateObject_4$2 || (templateObject_4$2 = __makeTemplateObject(["\n display: flex;\n flex-flow: column nowrap;\n margin: 0 auto;\n position: relative;\n max-width: 100%;\n height: 35%;\n"], ["\n display: flex;\n flex-flow: column nowrap;\n margin: 0 auto;\n position: relative;\n max-width: 100%;\n height: 35%;\n"])));
11783
+ var IdCardGuideInner = styled.div(templateObject_5$1 || (templateObject_5$1 = __makeTemplateObject(["\n position: relative;\n height: 100%;\n width: 100%;\n"], ["\n position: relative;\n height: 100%;\n width: 100%;\n"])));
11784
+ var IdCardGuideInstructionsContainer = styled.div(templateObject_6$1 || (templateObject_6$1 = __makeTemplateObject(["\n width: 100%;\n text-align: center;\n color: white;\n display: flex;\n flex-direction: column;\n justify-content: end;\n padding: 0 40px;\n position: fixed;\n bottom: 14px;\n left: 0;\n right: 0;\n box-sizing: border-box;\n"], ["\n width: 100%;\n text-align: center;\n color: white;\n display: flex;\n flex-direction: column;\n justify-content: end;\n padding: 0 40px;\n position: fixed;\n bottom: 14px;\n left: 0;\n right: 0;\n box-sizing: border-box;\n"])));
11785
+ var IdCardGuideInstructions = styled(GuidanceMessage)(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n align-content: center;\n margin: 12px auto;\n padding: 8px 12px;\n font-weight: bold;\n font-size: 18px;\n"], ["\n align-content: center;\n margin: 12px auto;\n padding: 8px 12px;\n font-weight: bold;\n font-size: 18px;\n"])));
11786
+ var templateObject_1$7, templateObject_2$7, templateObject_3$7, templateObject_4$2, templateObject_5$1, templateObject_6$1, templateObject_7;
11787
+
11651
11788
  var ReadTextPrompt = function ReadTextPrompt(_a) {
11652
11789
  var text = _a.text,
11653
11790
  onComplete = _a.onComplete,
@@ -11778,18 +11915,18 @@ var defaultVideoIdCaptureThresholds = {
11778
11915
  flipShortcutThreshold: 0.7
11779
11916
  };
11780
11917
  var IdVideoCapture = function IdVideoCapture(_a) {
11781
- var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w;
11918
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
11782
11919
  var onComplete = _a.onComplete,
11783
11920
  onIdFrontImageCaptured = _a.onIdFrontImageCaptured,
11784
11921
  onIdBackImageCaptured = _a.onIdBackImageCaptured,
11785
11922
  onFaceNotDetected = _a.onFaceNotDetected,
11786
11923
  onRecordingFailed = _a.onRecordingFailed,
11787
11924
  onExitCapture = _a.onExitCapture,
11788
- _x = _a.idCaptureModelsEnabled,
11789
- idCaptureModelsEnabled = _x === void 0 ? true : _x,
11790
- // idCardCaptureGuideImages = defaultIdCaptureGuideImages,
11925
+ _w = _a.idCaptureModelsEnabled,
11926
+ idCaptureModelsEnabled = _w === void 0 ? true : _w,
11927
+ _x = _a.idCardCaptureGuideImages,
11928
+ idCardCaptureGuideImages = _x === void 0 ? defaultIdCaptureGuideImages : _x,
11791
11929
  _y = _a.idCardFrontDelay,
11792
- // idCardCaptureGuideImages = defaultIdCaptureGuideImages,
11793
11930
  idCardFrontDelay = _y === void 0 ? 1000 : _y,
11794
11931
  _z = _a.videoIdCaptureThresholds,
11795
11932
  videoIdCaptureThresholds = _z === void 0 ? defaultVideoIdCaptureThresholds : _z,
@@ -11810,67 +11947,68 @@ var IdVideoCapture = function IdVideoCapture(_a) {
11810
11947
  mergeAVStreams = _6 === void 0 ? false : _6,
11811
11948
  _7 = _a.classNames,
11812
11949
  classNames = _7 === void 0 ? {} : _7,
11813
- // colors = {},
11814
- _8 = _a.verbiage,
11815
- // colors = {},
11816
- rawVerbiage = _8 === void 0 ? {} : _8,
11817
- _9 = _a.debugMode,
11818
- debugMode = _9 === void 0 ? false : _9;
11819
- var _10 = useResizeObserver(),
11820
- ref = _10.ref,
11821
- _11 = _10.width,
11822
- width = _11 === void 0 ? 1 : _11,
11823
- _12 = _10.height,
11824
- height = _12 === void 0 ? 1 : _12;
11825
- var _13 = useContext(CameraStateContext),
11826
- cameraRef = _13.cameraRef,
11827
- videoRef = _13.videoRef,
11828
- videoLoaded = _13.videoLoaded,
11829
- cameraReady = _13.cameraReady,
11830
- microphoneReady = _13.microphoneReady,
11831
- audioStream = _13.audioStream,
11832
- setVideoLoaded = _13.setVideoLoaded;
11833
- var _14 = useState([]),
11834
- detectedObjects = _14[0],
11835
- setDetectedObjects = _14[1];
11836
- var _15 = useState(null),
11837
- face = _15[0],
11838
- setFace = _15[1];
11839
- var _16 = useContext(IdCaptureModelsContext),
11840
- idModelsReady = _16.ready,
11841
- startIdModels = _16.start,
11842
- stopIdModels = _16.stop,
11843
- onIdPredictionMade = _16.onPredictionMade,
11844
- setThresholds = _16.setThresholds,
11845
- setDocumentDetectionBoundaries = _16.setDocumentDetectionBoundaries,
11846
- bestFrameDetails = _16.bestFrameDetails,
11847
- resetBestFrame = _16.resetBestFrame,
11848
- idModelError = _16.modelError;
11849
- var _17 = useState(null),
11850
- videoStartsAt = _17[0],
11851
- setVideoStartsAt = _17[1];
11852
- var _18 = useContext(SubmissionContext),
11853
- setIdCaptureVideoAudioStartsAt = _18.setIdCaptureVideoAudioStartsAt,
11854
- setExpectedAudioText = _18.setExpectedAudioText;
11855
- var _19 = useContext(SelfieGuidanceModelsContext),
11856
- startSelfieGuidance = _19.start,
11857
- stopSelfieGuidance = _19.stop,
11858
- onSelfiePredictionMade = _19.onPredictionMade,
11859
- selfieModelError = _19.error;
11860
- var _20 = useVideoRecorder(cameraRef.current, audioStream, mergeAVStreams),
11861
- isRecordingVideo = _20.isRecordingVideo,
11862
- startRecordingVideo = _20.startRecordingVideo,
11863
- startRecordingAudio = _20.startRecordingAudio,
11864
- stopRecordingVideo = _20.stopRecordingVideo,
11865
- stopRecordingAudio = _20.stopRecordingAudio,
11866
- videoRecordingUnintentionallyStopped = _20.videoRecordingUnintentionallyStopped,
11867
- audioRecordingUnintentionallyStopped = _20.audioRecordingUnintentionallyStopped,
11868
- videoUrl = _20.videoUrl,
11869
- audioUrl = _20.audioUrl;
11950
+ _8 = _a.colors,
11951
+ colors = _8 === void 0 ? {} : _8,
11952
+ _9 = _a.verbiage,
11953
+ rawVerbiage = _9 === void 0 ? {} : _9,
11954
+ _10 = _a.debugMode,
11955
+ debugMode = _10 === void 0 ? false : _10;
11956
+ var _11 = useResizeObserver(),
11957
+ ref = _11.ref,
11958
+ _12 = _11.width,
11959
+ width = _12 === void 0 ? 1 : _12,
11960
+ _13 = _11.height,
11961
+ height = _13 === void 0 ? 1 : _13;
11962
+ var _14 = useCameraStore(),
11963
+ camera = _14.camera,
11964
+ videoRef = _14.videoRef,
11965
+ videoLoaded = _14.videoLoaded,
11966
+ cameraReady = _14.cameraReady,
11967
+ microphoneReady = _14.microphoneReady,
11968
+ audioStream = _14.audioStream,
11969
+ isRearFacing = _14.isRearFacing,
11970
+ releaseCameraAccess = _14.releaseCameraAccess;
11971
+ var _15 = useState([]),
11972
+ detectedObjects = _15[0],
11973
+ setDetectedObjects = _15[1];
11974
+ var _16 = useState(null),
11975
+ face = _16[0],
11976
+ setFace = _16[1];
11977
+ var _17 = useContext(IdCaptureModelsContext),
11978
+ idModelsReady = _17.ready,
11979
+ startIdModels = _17.start,
11980
+ stopIdModels = _17.stop,
11981
+ onIdPredictionMade = _17.onPredictionMade,
11982
+ setThresholds = _17.setThresholds,
11983
+ setDocumentDetectionBoundaries = _17.setDocumentDetectionBoundaries,
11984
+ bestFrameDetails = _17.bestFrameDetails,
11985
+ resetBestFrame = _17.resetBestFrame,
11986
+ idModelError = _17.modelError;
11987
+ var _18 = useState(null),
11988
+ videoStartsAt = _18[0],
11989
+ setVideoStartsAt = _18[1];
11990
+ var _19 = useContext(SubmissionContext),
11991
+ setIdCaptureVideoAudioStartsAt = _19.setIdCaptureVideoAudioStartsAt,
11992
+ setExpectedAudioText = _19.setExpectedAudioText;
11993
+ var _20 = useContext(SelfieGuidanceModelsContext),
11994
+ startSelfieGuidance = _20.start,
11995
+ stopSelfieGuidance = _20.stop,
11996
+ onSelfiePredictionMade = _20.onPredictionMade,
11997
+ selfieModelError = _20.error;
11998
+ var _21 = useVideoRecorder(camera, audioStream, mergeAVStreams),
11999
+ isRecordingVideo = _21.isRecordingVideo,
12000
+ startRecordingVideo = _21.startRecordingVideo,
12001
+ startRecordingAudio = _21.startRecordingAudio,
12002
+ stopRecordingVideo = _21.stopRecordingVideo,
12003
+ stopRecordingAudio = _21.stopRecordingAudio,
12004
+ videoRecordingUnintentionallyStopped = _21.videoRecordingUnintentionallyStopped,
12005
+ audioRecordingUnintentionallyStopped = _21.audioRecordingUnintentionallyStopped,
12006
+ videoUrl = _21.videoUrl,
12007
+ audioUrl = _21.audioUrl;
11870
12008
  var countdownTimeoutRef = useRef(undefined);
11871
- var _21 = useState(-1),
11872
- countdownRemaining = _21[0],
11873
- setCountdownRemaining = _21[1];
12009
+ var _22 = useState(-1),
12010
+ countdownRemaining = _22[0],
12011
+ setCountdownRemaining = _22[1];
11874
12012
  useEffect(function () {
11875
12013
  if (!isRecordingVideo && !videoUrl) {
11876
12014
  startRecordingVideo();
@@ -11881,18 +12019,18 @@ var IdVideoCapture = function IdVideoCapture(_a) {
11881
12019
  var needsAudio = !!readTextPrompt && !mergeAVStreams;
11882
12020
  var audioReady = !needsAudio || audioUrl;
11883
12021
  if (videoUrl && audioReady) {
11884
- setVideoLoaded(false);
12022
+ releaseCameraAccess();
11885
12023
  onComplete === null || onComplete === void 0 ? void 0 : onComplete(videoUrl, audioUrl);
11886
12024
  }
11887
- }, [audioUrl, isRecordingVideo, mergeAVStreams, onComplete, readTextPrompt, setVideoLoaded, startRecordingVideo, videoUrl]);
12025
+ }, [audioUrl, isRecordingVideo, mergeAVStreams, onComplete, readTextPrompt, releaseCameraAccess, startRecordingVideo, videoUrl]);
11888
12026
  useEffect(function () {
11889
12027
  if (videoRecordingUnintentionallyStopped || audioRecordingUnintentionallyStopped) {
11890
12028
  onRecordingFailed === null || onRecordingFailed === void 0 ? void 0 : onRecordingFailed();
11891
12029
  }
11892
12030
  }, [audioRecordingUnintentionallyStopped, onRecordingFailed, videoRecordingUnintentionallyStopped]);
11893
- var _22 = useState('SHOW_ID_FRONT'),
11894
- requestedAction = _22[0],
11895
- setRequestedAction = _22[1];
12031
+ var _23 = useState('SHOW_ID_FRONT'),
12032
+ requestedAction = _23[0],
12033
+ setRequestedAction = _23[1];
11896
12034
  var shouldRunIdModels = idCaptureModelsEnabled && videoLoaded && cameraReady && idModelsReady && !idModelError && requestedAction !== 'READ_TEXT' && (!readTextPrompt || microphoneReady);
11897
12035
  useEffect(function startModelsWhenCapturing() {
11898
12036
  if (!shouldRunIdModels) return;
@@ -11912,18 +12050,18 @@ var IdVideoCapture = function IdVideoCapture(_a) {
11912
12050
  bottom: 1
11913
12051
  });
11914
12052
  }, [setDocumentDetectionBoundaries]);
11915
- var _23 = useState(0),
11916
- currentDetectionScore = _23[0],
11917
- setCurrentDetectionScore = _23[1];
11918
- var _24 = useState('none'),
11919
- currentDetectedDocumentType = _24[0],
11920
- setCurrentDetectedDocumentType = _24[1];
11921
- var _25 = useState(0),
11922
- currentFocusScore = _25[0],
11923
- setCurrentFocusScore = _25[1];
12053
+ var _24 = useState(0),
12054
+ currentDetectionScore = _24[0],
12055
+ setCurrentDetectionScore = _24[1];
12056
+ var _25 = useState('none'),
12057
+ currentDetectedDocumentType = _25[0],
12058
+ setCurrentDetectedDocumentType = _25[1];
11924
12059
  var _26 = useState(0),
11925
- goodFramesCount = _26[0],
11926
- setGoodFramesCount = _26[1];
12060
+ currentFocusScore = _26[0],
12061
+ setCurrentFocusScore = _26[1];
12062
+ var _27 = useState(0),
12063
+ goodFramesCount = _27[0],
12064
+ setGoodFramesCount = _27[1];
11927
12065
  var goodFramesThreshold = requestedAction === 'SHOW_ID_FRONT' ? videoIdCaptureThresholds.goodFrames.idCardFront : videoIdCaptureThresholds.goodFrames.idCardBack;
11928
12066
  var goodFramesThresholdMet = goodFramesCount >= goodFramesThreshold;
11929
12067
  useEffect(function () {
@@ -11944,9 +12082,9 @@ var IdVideoCapture = function IdVideoCapture(_a) {
11944
12082
  } : 0);
11945
12083
  });
11946
12084
  }, [idCaptureModelsEnabled, onIdPredictionMade, idModelError, requestedAction, videoIdCaptureThresholds.flipShortcutThreshold]);
11947
- var _27 = useState(null),
11948
- idFrontCaptureStartedAt = _27[0],
11949
- setFirstGoodFrameTime = _27[1];
12085
+ var _28 = useState(null),
12086
+ idFrontCaptureStartedAt = _28[0],
12087
+ setFirstGoodFrameTime = _28[1];
11950
12088
  useEffect(function () {
11951
12089
  if (goodFramesCount === 1) setFirstGoodFrameTime(new Date().getTime());
11952
12090
  }, [goodFramesCount]);
@@ -11967,9 +12105,9 @@ var IdVideoCapture = function IdVideoCapture(_a) {
11967
12105
  var frameHeight = (_e = (_d = videoRef.current) === null || _d === void 0 ? void 0 : _d.videoHeight) !== null && _e !== void 0 ? _e : 0;
11968
12106
  var faceBox = face === null || face === void 0 ? void 0 : face.box;
11969
12107
  var faceCentered = !faceBox || !frameWidth || faceBox.xMin > frameWidth * edgeBoundary && faceBox.yMin > frameHeight * edgeBoundary && faceBox.xMax < frameWidth * (1 - edgeBoundary) && faceBox.yMax < frameHeight * (1 - edgeBoundary);
11970
- var _28 = useState(),
11971
- countdownStartedAt = _28[0],
11972
- setCountdownStartedAt = _28[1];
12108
+ var _29 = useState(),
12109
+ countdownStartedAt = _29[0],
12110
+ setCountdownStartedAt = _29[1];
11973
12111
  var photoCanvas = useRef(null);
11974
12112
  var frameLock = useRef(false);
11975
12113
  var captureFrame = useCallback(function () {
@@ -12092,9 +12230,9 @@ var IdVideoCapture = function IdVideoCapture(_a) {
12092
12230
  stopSelfieGuidance();
12093
12231
  };
12094
12232
  }, [startSelfieGuidance, stopSelfieGuidance]);
12095
- var _29 = useState(0),
12096
- numFramesWithoutFaces = _29[0],
12097
- setNumFramesWithoutFaces = _29[1];
12233
+ var _30 = useState(0),
12234
+ numFramesWithoutFaces = _30[0],
12235
+ setNumFramesWithoutFaces = _30[1];
12098
12236
  onSelfiePredictionMade(useThrottledCallback(useCallback(function (_a) {
12099
12237
  var face = _a.face;
12100
12238
  if (selfieModelError) return;
@@ -12110,12 +12248,12 @@ var IdVideoCapture = function IdVideoCapture(_a) {
12110
12248
  }
12111
12249
  }, [disableFaceDetectionWhileAudioCapture, disableFaceDetectionWhileAudioCaptureMsDelay, numFramesWithoutFaces, onFaceNotDetected, timeoutStartedAt]);
12112
12250
  var theme = useTheme();
12113
- var _30 = useTranslations(rawVerbiage, {
12251
+ var _31 = useTranslations(rawVerbiage, {
12114
12252
  faceNotCenteredText: 'Please move your face to the center...',
12115
12253
  captureBtnText: 'Capture'
12116
12254
  }),
12117
- captureBtnText = _30.captureBtnText,
12118
- faceNotCenteredText = _30.faceNotCenteredText;
12255
+ captureBtnText = _31.captureBtnText,
12256
+ faceNotCenteredText = _31.faceNotCenteredText;
12119
12257
  var debugScalingDetails = useDebugScalingDetails({
12120
12258
  enabled: debugMode,
12121
12259
  pageWidth: width,
@@ -12140,16 +12278,25 @@ var IdVideoCapture = function IdVideoCapture(_a) {
12140
12278
  classNames: classNames.readTextPrompt,
12141
12279
  verbiage: rawVerbiage.readTextPrompt,
12142
12280
  onComplete: stopRecording
12143
- })) : ( /*#__PURE__*/React__default.createElement(React__default.Fragment, null, debugMode && capturingId && ( /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(ObjectDetectionDebugOverlayDiv, {
12144
- "$flipX": !((_l = cameraRef.current) === null || _l === void 0 ? void 0 : _l.isRearFacing)
12281
+ })) : ( /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(IdVideoCaptureGuides, {
12282
+ classNames: classNames.guides,
12283
+ verbiage: rawVerbiage.guides,
12284
+ requestedAction: requestedAction,
12285
+ satisfied: satisfied,
12286
+ idCardGuideStatus: countdownStartedAt ? 'capturing' : 'ready',
12287
+ idCardCaptureProgress: !!countdownStartedAt ? 1 : 0,
12288
+ idCardCaptureGuideImages: idCardCaptureGuideImages,
12289
+ faceGuideBorderColor: satisfied ? colors.guidesSatisfiedColor : colors.guidesUnsatisfiedColor,
12290
+ idCardGuideBorderColor: satisfied ? colors.guidesSatisfiedColor : colors.guidesUnsatisfiedColor
12291
+ }), debugMode && capturingId && ( /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(ObjectDetectionDebugOverlayDiv, {
12292
+ "$flipX": !isRearFacing
12145
12293
  }, detectedObjects.map(function (obj, i) {
12146
- var _a;
12147
12294
  return /*#__PURE__*/React__default.createElement(IdCaptureDetectedObjectDebugBox, {
12148
12295
  key: i,
12149
12296
  obj: obj,
12150
12297
  scaling: debugScalingDetails,
12151
12298
  color: "blue",
12152
- flipX: !((_a = cameraRef.current) === null || _a === void 0 ? void 0 : _a.isRearFacing)
12299
+ flipX: !isRearFacing
12153
12300
  });
12154
12301
  })), /*#__PURE__*/React__default.createElement(DebugBoundingBoxOverlay, null, face && ( /*#__PURE__*/React__default.createElement(SelfieCaptureFaceDebugBox, {
12155
12302
  face: face,
@@ -12158,9 +12305,9 @@ var IdVideoCapture = function IdVideoCapture(_a) {
12158
12305
  className: classNames.guidanceMessageContainer
12159
12306
  }, /*#__PURE__*/React__default.createElement(GuidanceMessage, {
12160
12307
  className: classNames.guidanceMessage,
12161
- "$background": (_p = (_o = (_m = theme.guidanceMessages) === null || _m === void 0 ? void 0 : _m.negative) === null || _o === void 0 ? void 0 : _o.backgroundColor) !== null && _p !== void 0 ? _p : 'red',
12162
- "$textColor": (_s = (_r = (_q = theme.guidanceMessages) === null || _q === void 0 ? void 0 : _q.negative) === null || _r === void 0 ? void 0 : _r.textColor) !== null && _s !== void 0 ? _s : 'white'
12163
- }, guidanceText))), debugMode && ( /*#__PURE__*/React__default.createElement(DebugStatsPane, null, cameraRef.current ? ( /*#__PURE__*/React__default.createElement(React__default.Fragment, null, "\u2705 Camera: ", cameraRef.current.label, " (", cameraRef.current.width, "x", cameraRef.current.height, ")")) : '❌ Camera not ready', /*#__PURE__*/React__default.createElement("br", null), isRecordingVideo ? '✅ Recording' : '❌ Not recording', /*#__PURE__*/React__default.createElement("br", null), goodFramesThresholdMet ? '✅' : '❌', " Good Frame Count:", ' ', goodFramesCount, "/", goodFramesThreshold, /*#__PURE__*/React__default.createElement("br", null), "Document Type: ", currentDetectedDocumentType, /*#__PURE__*/React__default.createElement("br", null), "Detection Score: ", currentDetectionScore, /*#__PURE__*/React__default.createElement("br", null), "Focus Score: ", currentFocusScore, /*#__PURE__*/React__default.createElement("br", null), "Best Frame Detection Score:", ' ', (_u = (_t = bestFrameDetails.current) === null || _t === void 0 ? void 0 : _t.detectionScore) !== null && _u !== void 0 ? _u : 0, /*#__PURE__*/React__default.createElement("br", null), "Best Frame Focus Score: ", (_w = (_v = bestFrameDetails.current) === null || _v === void 0 ? void 0 : _v.focusScore) !== null && _w !== void 0 ? _w : 0)), countdownRemaining > 0 && capturingId && ( /*#__PURE__*/React__default.createElement(CountdownContainer, {
12308
+ "$background": (_o = (_m = (_l = theme.guidanceMessages) === null || _l === void 0 ? void 0 : _l.negative) === null || _m === void 0 ? void 0 : _m.backgroundColor) !== null && _o !== void 0 ? _o : 'red',
12309
+ "$textColor": (_r = (_q = (_p = theme.guidanceMessages) === null || _p === void 0 ? void 0 : _p.negative) === null || _q === void 0 ? void 0 : _q.textColor) !== null && _r !== void 0 ? _r : 'white'
12310
+ }, guidanceText))), debugMode && ( /*#__PURE__*/React__default.createElement(DebugStatsPane, null, camera ? ( /*#__PURE__*/React__default.createElement(React__default.Fragment, null, "\u2705 Camera: ", camera.label, " (", camera.width, "x", camera.height, ")")) : '❌ Camera not ready', /*#__PURE__*/React__default.createElement("br", null), isRecordingVideo ? '✅ Recording' : '❌ Not recording', /*#__PURE__*/React__default.createElement("br", null), goodFramesThresholdMet ? '✅' : '❌', " Good Frame Count:", ' ', goodFramesCount, "/", goodFramesThreshold, /*#__PURE__*/React__default.createElement("br", null), "Document Type: ", currentDetectedDocumentType, /*#__PURE__*/React__default.createElement("br", null), "Detection Score: ", currentDetectionScore, /*#__PURE__*/React__default.createElement("br", null), "Focus Score: ", currentFocusScore, /*#__PURE__*/React__default.createElement("br", null), "Best Frame Detection Score:", ' ', (_t = (_s = bestFrameDetails.current) === null || _s === void 0 ? void 0 : _s.detectionScore) !== null && _t !== void 0 ? _t : 0, /*#__PURE__*/React__default.createElement("br", null), "Best Frame Focus Score: ", (_v = (_u = bestFrameDetails.current) === null || _u === void 0 ? void 0 : _u.focusScore) !== null && _v !== void 0 ? _v : 0)), countdownRemaining > 0 && capturingId && ( /*#__PURE__*/React__default.createElement(CountdownContainer, {
12164
12311
  className: classNames.countdownContainer
12165
12312
  }, /*#__PURE__*/React__default.createElement(Countdown, {
12166
12313
  className: classNames.countdown
@@ -12440,42 +12587,31 @@ var VideoIdWizard = function VideoIdWizard(_a) {
12440
12587
  onExitCapture === null || onExitCapture === void 0 ? void 0 : onExitCapture();
12441
12588
  }, [onExitCapture]);
12442
12589
  var faceLivenessGuides = useCallback(function (_a) {
12443
- return null;
12444
- },
12445
- // <IdVideoCaptureGuides
12446
- // idCardCaptureGuideImages={idCaptureGuideImages}
12447
- // classNames={classNames.idVideoCapture?.guides}
12448
- // verbiage={verbiage.idVideoCapture?.guides}
12449
- // requestedAction="VERIFY_LIVENESS"
12450
- // faceGuideStatus={status}
12451
- // faceGuideBorderColor={
12452
- // status === 'success'
12453
- // ? colors.idVideoCapture?.guidesSatisfiedColor
12454
- // : colors.idVideoCapture?.guidesUnsatisfiedColor
12455
- // }
12456
- // idCardGuideStatus="disabled"
12457
- // // idCardGuideBorderColor={
12458
- // // status === 'success'
12459
- // // ? colors.idVideoCapture?.guidesSatisfiedColor
12460
- // // : colors.idVideoCapture?.guidesUnsatisfiedColor
12461
- // // }
12462
- // />
12463
- [(_b = classNames.idVideoCapture) === null || _b === void 0 ? void 0 : _b.guides, (_c = colors.idVideoCapture) === null || _c === void 0 ? void 0 : _c.guidesSatisfiedColor, (_d = colors.idVideoCapture) === null || _d === void 0 ? void 0 : _d.guidesUnsatisfiedColor, idCaptureGuideImages, (_e = verbiage.idVideoCapture) === null || _e === void 0 ? void 0 : _e.guides]);
12590
+ var _b, _c, _d, _e;
12591
+ var status = _a.status;
12592
+ return /*#__PURE__*/React__default.createElement(IdVideoCaptureGuides, {
12593
+ idCardCaptureGuideImages: idCaptureGuideImages,
12594
+ classNames: (_b = classNames.idVideoCapture) === null || _b === void 0 ? void 0 : _b.guides,
12595
+ verbiage: (_c = verbiage.idVideoCapture) === null || _c === void 0 ? void 0 : _c.guides,
12596
+ requestedAction: "VERIFY_LIVENESS",
12597
+ faceGuideStatus: status,
12598
+ faceGuideBorderColor: status === 'success' ? (_d = colors.idVideoCapture) === null || _d === void 0 ? void 0 : _d.guidesSatisfiedColor : (_e = colors.idVideoCapture) === null || _e === void 0 ? void 0 : _e.guidesUnsatisfiedColor,
12599
+ idCardGuideStatus: "disabled"
12600
+ });
12601
+ }, [(_b = classNames.idVideoCapture) === null || _b === void 0 ? void 0 : _b.guides, (_c = colors.idVideoCapture) === null || _c === void 0 ? void 0 : _c.guidesSatisfiedColor, (_d = colors.idVideoCapture) === null || _d === void 0 ? void 0 : _d.guidesUnsatisfiedColor, idCaptureGuideImages, (_e = verbiage.idVideoCapture) === null || _e === void 0 ? void 0 : _e.guides]);
12464
12602
  if (submissionStatus === SubmissionStatus.SUBMITTING) {
12465
12603
  return /*#__PURE__*/React__default.createElement(PageContainer, {
12466
12604
  className: "flex"
12467
12605
  }, /*#__PURE__*/React__default.createElement(Spinner, null));
12468
12606
  }
12469
- return /*#__PURE__*/React__default.createElement(CameraProvider, {
12470
- key: "".concat(isCapturingId ? 'id' : 'selfie', "-camera-").concat(attempt),
12471
- preferContinuityCamera: isCapturingId,
12607
+ return /*#__PURE__*/React__default.createElement(CameraStoreProvider, {
12608
+ preferIphoneContinuityCamera: isCapturingId,
12472
12609
  preferFrontFacingCamera: !isCapturingId,
12473
12610
  requireMicrophoneAccess: !isCapturingId && !!readTextPrompt,
12474
12611
  maxVideoWidth: isCapturingId ? 1920 : 1280,
12475
12612
  maxFps: isCapturingId ? 60 : 30,
12476
12613
  onCameraAccessDenied: onCameraAccessDenied,
12477
- onMicrophoneAccessDenied: onMicrophoneAccessDenied,
12478
- debugMode: debugMode
12614
+ onMicrophoneAccessDenied: onMicrophoneAccessDenied
12479
12615
  }, /*#__PURE__*/React__default.createElement(IdCaptureModelsProvider, {
12480
12616
  autoStart: false,
12481
12617
  documentDetectionModelUrl: (_g = (_f = idCaptureProps.assets) === null || _f === void 0 ? void 0 : _f.documentDetectionModelUrl) !== null && _g !== void 0 ? _g : '',
@@ -12601,17 +12737,15 @@ function CompositeWizard(_a) {
12601
12737
  _o = _a.captureSignatureVideo,
12602
12738
  captureSignatureVideo = _o === void 0 ? false : _o,
12603
12739
  onCameraAccessDenied = _a.onCameraAccessDenied,
12604
- onMicrophoneAccessDenied = _a.onMicrophoneAccessDenied,
12605
- _p = _a.debugMode,
12606
- debugMode = _p === void 0 ? false : _p;
12607
- var _q = useContext(SubmissionContext),
12608
- submit = _q.submit,
12609
- submissionStatus = _q.submissionStatus,
12610
- setSignatureData = _q.setSignatureData,
12611
- setAdditionalDocuments = _q.setAdditionalDocuments;
12612
- var _r = useState(0),
12613
- checkIndex = _r[0],
12614
- setCheckIndex = _r[1];
12740
+ onMicrophoneAccessDenied = _a.onMicrophoneAccessDenied;
12741
+ var _p = useContext(SubmissionContext),
12742
+ submit = _p.submit,
12743
+ submissionStatus = _p.submissionStatus,
12744
+ setSignatureData = _p.setSignatureData,
12745
+ setAdditionalDocuments = _p.setAdditionalDocuments;
12746
+ var _q = useState(0),
12747
+ checkIndex = _q[0],
12748
+ setCheckIndex = _q[1];
12615
12749
  var checks = useMemo(function () {
12616
12750
  var _a, _b;
12617
12751
  var checks = __spreadArray([], userChecks, true);
@@ -12689,16 +12823,6 @@ function CompositeWizard(_a) {
12689
12823
  return i + 1;
12690
12824
  });
12691
12825
  }, [onVideoSignatureCompleteProp]);
12692
- var _s = useState(0),
12693
- videoSignatureAttempts = _s[0],
12694
- setVideoSignatureAttempts = _s[1];
12695
- var onVideoSignatureRetryProp = videoSignatureCaptureProps.onRetryClicked;
12696
- var onVideoSignatureRetry = useCallback(function () {
12697
- onVideoSignatureRetryProp === null || onVideoSignatureRetryProp === void 0 ? void 0 : onVideoSignatureRetryProp();
12698
- setVideoSignatureAttempts(function (n) {
12699
- return n + 1;
12700
- });
12701
- }, [onVideoSignatureRetryProp]);
12702
12826
  var onAdditionalDocumentCaptureCompleteProp = additionalDocumentCaptureProps === null || additionalDocumentCaptureProps === void 0 ? void 0 : additionalDocumentCaptureProps.onComplete;
12703
12827
  var onAdditionalDocumentCaptureComplete = useCallback(function (uploadedDocuments) {
12704
12828
  setAdditionalDocuments(uploadedDocuments);
@@ -12727,11 +12851,9 @@ function CompositeWizard(_a) {
12727
12851
  }
12728
12852
  switch (checks[checkIndex]) {
12729
12853
  case 'IdCapture':
12730
- return /*#__PURE__*/React__default.createElement(CameraProvider, {
12731
- key: "IdCaptureCamera",
12854
+ return /*#__PURE__*/React__default.createElement(CameraStoreProvider, {
12732
12855
  onCameraAccessDenied: onCameraAccessDenied,
12733
- onMicrophoneAccessDenied: onMicrophoneAccessDenied,
12734
- debugMode: debugMode
12856
+ onMicrophoneAccessDenied: onMicrophoneAccessDenied
12735
12857
  }, /*#__PURE__*/React__default.createElement(IdCaptureModelsProvider, {
12736
12858
  autoStart: false,
12737
12859
  documentDetectionModelUrl: (_d = (_c = idCaptureProps.assets) === null || _c === void 0 ? void 0 : _c.documentDetectionModelUrl) !== null && _d !== void 0 ? _d : '',
@@ -12748,13 +12870,11 @@ function CompositeWizard(_a) {
12748
12870
  onMicrophoneAccessDenied: onMicrophoneAccessDenied
12749
12871
  }));
12750
12872
  case 'FaceLiveness':
12751
- return /*#__PURE__*/React__default.createElement(CameraProvider, {
12752
- key: "FaceLivenessCamera",
12873
+ return /*#__PURE__*/React__default.createElement(CameraStoreProvider, {
12753
12874
  preferFrontFacingCamera: true,
12754
- preferContinuityCamera: false,
12875
+ preferIphoneContinuityCamera: false,
12755
12876
  onCameraAccessDenied: onCameraAccessDenied,
12756
- onMicrophoneAccessDenied: onMicrophoneAccessDenied,
12757
- debugMode: debugMode
12877
+ onMicrophoneAccessDenied: onMicrophoneAccessDenied
12758
12878
  }, /*#__PURE__*/React__default.createElement(SelfieGuidanceModelsProvider, {
12759
12879
  autoStart: false,
12760
12880
  onModelError: faceLivenessProps.onModelError,
@@ -12767,15 +12887,13 @@ function CompositeWizard(_a) {
12767
12887
  onAccept: onSignatureCaptureSuccess
12768
12888
  }));
12769
12889
  case 'VideoSignatureCapture':
12770
- return /*#__PURE__*/React__default.createElement(CameraProvider, {
12771
- key: "SignatureKycCamera-".concat(videoSignatureAttempts),
12772
- preferContinuityCamera: false,
12890
+ return /*#__PURE__*/React__default.createElement(CameraStoreProvider, {
12891
+ preferIphoneContinuityCamera: false,
12773
12892
  preferFrontFacingCamera: true,
12774
12893
  maxVideoWidth: 1280,
12775
12894
  maxFps: 30,
12776
12895
  onCameraAccessDenied: onCameraAccessDenied,
12777
- onMicrophoneAccessDenied: onMicrophoneAccessDenied,
12778
- debugMode: debugMode
12896
+ onMicrophoneAccessDenied: onMicrophoneAccessDenied
12779
12897
  }, /*#__PURE__*/React__default.createElement(SelfieGuidanceModelsProvider, {
12780
12898
  autoStart: false,
12781
12899
  throttleMs: 250,
@@ -12783,8 +12901,7 @@ function CompositeWizard(_a) {
12783
12901
  modelLoadTimeoutMs: videoSignatureCaptureProps.modelLoadTimeoutMs,
12784
12902
  requireVerticalFaceCentering: false
12785
12903
  }, /*#__PURE__*/React__default.createElement(VideoSignatureWizard, _assign({}, videoSignatureCaptureProps, {
12786
- onComplete: onVideoSignatureComplete,
12787
- onRetryClicked: onVideoSignatureRetry
12904
+ onComplete: onVideoSignatureComplete
12788
12905
  }))));
12789
12906
  case 'AdditionalDocumentCapture':
12790
12907
  return /*#__PURE__*/React__default.createElement(AdditionalDocumentCaptureWizard, _assign({}, additionalDocumentCaptureProps, {
@@ -13235,8 +13352,7 @@ var IdValidation = function IdValidation(_a) {
13235
13352
  videoSignatureCaptureProps: videoSignatureCaptureProps,
13236
13353
  captureSignature: captureSignature,
13237
13354
  captureSignatureVideo: captureSignatureVideo,
13238
- onCameraAccessDenied: onCameraAccessDenied,
13239
- debugMode: debugMode
13355
+ onCameraAccessDenied: onCameraAccessDenied
13240
13356
  }))));
13241
13357
  };
13242
13358
 
@@ -13342,8 +13458,7 @@ var FaceValidation = function FaceValidation(_a) {
13342
13458
  return ['FaceLiveness'];
13343
13459
  }, []),
13344
13460
  faceLivenessProps: faceLivenessProps,
13345
- onCameraAccessDenied: onCameraAccessDenied,
13346
- debugMode: debugMode
13461
+ onCameraAccessDenied: onCameraAccessDenied
13347
13462
  }))));
13348
13463
  };
13349
13464
 
@@ -13576,8 +13691,7 @@ var IdAndFaceValidation = function IdAndFaceValidation(_a) {
13576
13691
  additionalDocumentCaptureProps: additionalDocumentCaptureProps,
13577
13692
  captureSignature: captureSignature,
13578
13693
  captureSignatureVideo: captureSignatureVideo,
13579
- onCameraAccessDenied: onCameraAccessDenied,
13580
- debugMode: debugMode
13694
+ onCameraAccessDenied: onCameraAccessDenied
13581
13695
  }))));
13582
13696
  };
13583
13697
 
@@ -13832,8 +13946,7 @@ var CustomerIdAndBiometricsEnrollment = function CustomerIdAndBiometricsEnrollme
13832
13946
  videoSignatureCaptureProps: videoSignatureCaptureProps,
13833
13947
  captureSignature: captureSignature,
13834
13948
  captureSignatureVideo: captureSignatureVideo,
13835
- onCameraAccessDenied: onCameraAccessDenied,
13836
- debugMode: debugMode
13949
+ onCameraAccessDenied: onCameraAccessDenied
13837
13950
  }))));
13838
13951
  };
13839
13952
 
@@ -14165,7 +14278,7 @@ var CustomerVerificationWizard = function CustomerVerificationWizard(_a) {
14165
14278
  var _l = useState('LOADING'),
14166
14279
  captureState = _l[0],
14167
14280
  setCaptureState = _l[1];
14168
- var _m = useContext(CameraStateContext),
14281
+ var _m = useCameraStore(),
14169
14282
  cameraAccessDenied = _m.cameraAccessDenied,
14170
14283
  releaseCameraAccess = _m.releaseCameraAccess;
14171
14284
  var _o = useContext(SelfieGuidanceModelsContext),
@@ -14371,10 +14484,9 @@ var CustomerVerification = function CustomerVerification(_a) {
14371
14484
  onSubmit: onSubmit,
14372
14485
  geolocationEnabled: geolocationEnabled,
14373
14486
  geolocationRequired: geolocationRequired
14374
- }, /*#__PURE__*/React__default.createElement(CameraProvider, {
14487
+ }, /*#__PURE__*/React__default.createElement(CameraStoreProvider, {
14375
14488
  preferFrontFacingCamera: true,
14376
- onCameraAccessDenied: onCameraAccessDenied,
14377
- debugMode: debugMode
14489
+ onCameraAccessDenied: onCameraAccessDenied
14378
14490
  }, /*#__PURE__*/React__default.createElement(SelfieGuidanceModelsProvider, {
14379
14491
  autoStart: false,
14380
14492
  onModelError: onModelError,
@@ -14723,7 +14835,7 @@ var CustomerIdentificationWizard = function CustomerIdentificationWizard(_a) {
14723
14835
  var _l = useState('LOADING'),
14724
14836
  captureState = _l[0],
14725
14837
  setCaptureState = _l[1];
14726
- var _m = useContext(CameraStateContext),
14838
+ var _m = useCameraStore(),
14727
14839
  cameraAccessDenied = _m.cameraAccessDenied,
14728
14840
  releaseCameraAccess = _m.releaseCameraAccess;
14729
14841
  var _o = useContext(SelfieGuidanceModelsContext),
@@ -14927,10 +15039,9 @@ var CustomerIdentification = function CustomerIdentification(_a) {
14927
15039
  onSubmit: onSubmit,
14928
15040
  geolocationEnabled: geolocationEnabled,
14929
15041
  geolocationRequired: geolocationRequired
14930
- }, /*#__PURE__*/React__default.createElement(CameraProvider, {
15042
+ }, /*#__PURE__*/React__default.createElement(CameraStoreProvider, {
14931
15043
  preferFrontFacingCamera: true,
14932
- onCameraAccessDenied: onCameraAccessDenied,
14933
- debugMode: debugMode
15044
+ onCameraAccessDenied: onCameraAccessDenied
14934
15045
  }, /*#__PURE__*/React__default.createElement(SelfieGuidanceModelsProvider, {
14935
15046
  autoStart: false,
14936
15047
  modelLoadTimeoutMs: modelLoadTimeoutMs,
@@ -15257,8 +15368,7 @@ var VideoIdValidation = function VideoIdValidation(_a) {
15257
15368
  captureSignature: captureSignature,
15258
15369
  captureSignatureVideo: captureSignatureVideo,
15259
15370
  onCameraAccessDenied: onCameraAccessDenied,
15260
- onMicrophoneAccessDenied: onMicrophoneAccessDenied,
15261
- debugMode: debugMode
15371
+ onMicrophoneAccessDenied: onMicrophoneAccessDenied
15262
15372
  }))));
15263
15373
  };
15264
15374
 
@@ -15415,8 +15525,7 @@ var CustomerBiometricsEnrollment = function CustomerBiometricsEnrollment(_a) {
15415
15525
  videoSignatureCaptureProps: videoSignatureCaptureProps,
15416
15526
  captureSignature: captureSignature,
15417
15527
  captureSignatureVideo: captureSignatureVideo,
15418
- onCameraAccessDenied: onCameraAccessDenied,
15419
- debugMode: debugMode
15528
+ onCameraAccessDenied: onCameraAccessDenied
15420
15529
  }))));
15421
15530
  };
15422
15531
 
@@ -15474,11 +15583,10 @@ var DocumentCapture = function DocumentCapture(_a) {
15474
15583
  onDocumentUploadFailed: onDocumentUploadFailed,
15475
15584
  geolocationEnabled: geolocationEnabled,
15476
15585
  geolocationRequired: geolocationRequired
15477
- }, /*#__PURE__*/React__default.createElement(CameraProvider, {
15586
+ }, /*#__PURE__*/React__default.createElement(CameraStoreProvider, {
15478
15587
  requestAccessAutomatically: false,
15479
- preferContinuityCamera: true,
15480
- onCameraAccessDenied: onCameraAccessDenied,
15481
- debugMode: debugMode
15588
+ preferIphoneContinuityCamera: true,
15589
+ onCameraAccessDenied: onCameraAccessDenied
15482
15590
  }, /*#__PURE__*/React__default.createElement(DocumentCaptureWizard, {
15483
15591
  onSuccess: onComplete,
15484
15592
  onExitCapture: onExitCapture,