idmission-web-sdk 2.5.83-changeset-release-develop-eb57522 → 2.5.83-changeset-release-develop-2127d44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/sdk2.esm.js CHANGED
@@ -1,4 +1,4 @@
1
- import React, { useRef, useState, useEffect, useLayoutEffect, useCallback, useMemo, useContext, createContext, createElement, forwardRef, useImperativeHandle, memo, useReducer } from 'react';
1
+ import React, { useRef, useState, useEffect, useLayoutEffect, useCallback, useMemo, useContext, createContext, createElement, forwardRef, memo, useReducer } from 'react';
2
2
  import { createStore } from 'zustand/vanilla';
3
3
  import platform from 'platform';
4
4
  import { DetailedError, Upload } from 'tus-js-client';
@@ -7260,15 +7260,17 @@ var EYES_CLOSED = 'Keep your eyes open...';
7260
7260
  var HAND_OVER_FACE = 'Remove your hand from your face...';
7261
7261
  var SELFIE_RECOVERY_HINT = 'We’re having trouble checking the lighting. Keep your face centered and hold still—we’ll still check your positioning.';
7262
7262
  var CONTINUE_WITH_CURRENT_LIGHTING = 'Continue with current lighting';
7263
+ // The face liveness Retry button while the camera restarts behind it.
7264
+ var STARTING_CAMERA = 'Starting camera...';
7263
7265
  var threeOhTranslations = {
7264
- de: (_de = {}, _de[SELFIE_RECOVERY_HINT] = 'Wir haben Schwierigkeiten, die Beleuchtung zu prüfen. Halten Sie Ihr Gesicht mittig und bleiben Sie ruhig. Wir prüfen weiterhin Ihre Position.', _de[CONTINUE_WITH_CURRENT_LIGHTING] = 'Mit aktueller Beleuchtung fortfahren', _de[MANUAL_CAPTURE_HINT] = 'Die automatische Aufnahme hat Schwierigkeiten. Tippen Sie auf die Taste, um das Foto selbst aufzunehmen.', _de[REVIEW_HEADING] = 'Dokument aufgenommen', _de[MOVE_BACK] = 'Gehen Sie zurück und stellen Sie sicher, dass alle 4 Kanten des Blatts sichtbar sind.', _de[MOVE_CLOSER] = 'Kommen Sie näher und füllen Sie den Rahmen mit dem gesamten Blatt aus.', _de[EYES_CLOSED] = 'Augen offen halten...', _de[HAND_OVER_FACE] = 'Hand vom Gesicht nehmen...', _de),
7265
- es: (_es = {}, _es[SELFIE_RECOVERY_HINT] = 'Tenemos dificultades para comprobar la iluminación. Mantenga el rostro centrado y no se mueva. Seguiremos comprobando su posición.', _es[CONTINUE_WITH_CURRENT_LIGHTING] = 'Continuar con la iluminación actual', _es[MANUAL_CAPTURE_HINT] = 'La captura automática tiene dificultades. Toque el botón para tomar la foto usted mismo.', _es[REVIEW_HEADING] = 'Documento capturado', _es[MOVE_BACK] = 'Aléjese y asegúrese de que los 4 bordes de la hoja sean visibles.', _es[MOVE_CLOSER] = 'Acérquese y llene el encuadre con la hoja completa.', _es[EYES_CLOSED] = 'Hay que mantener los ojos abiertos...', _es[HAND_OVER_FACE] = 'Hay que retirar la mano de la cara...', _es),
7266
- fr: (_fr = {}, _fr[SELFIE_RECOVERY_HINT] = 'Nous avons du mal à vérifier l’éclairage. Gardez votre visage centré et restez immobile. Nous vérifierons toujours votre position.', _fr[CONTINUE_WITH_CURRENT_LIGHTING] = 'Continuer avec cet éclairage', _fr[MANUAL_CAPTURE_HINT] = 'La capture automatique rencontre des difficultés. Appuyez sur le bouton pour prendre la photo vous-même.', _fr[REVIEW_HEADING] = 'Document capturé', _fr[MOVE_BACK] = 'Reculez et assurez-vous que les 4 bords de la page sont visibles.', _fr[MOVE_CLOSER] = 'Rapprochez-vous et remplissez le cadre avec la page entière.', _fr[EYES_CLOSED] = 'Gardez les yeux ouverts...', _fr[HAND_OVER_FACE] = 'Retirez votre main de votre visage...', _fr),
7267
- it: (_it = {}, _it[SELFIE_RECOVERY_HINT] = 'Abbiamo difficoltà a verificare l’illuminazione. Mantieni il viso centrato e resta fermo. Continueremo a verificare la tua posizione.', _it[CONTINUE_WITH_CURRENT_LIGHTING] = 'Continua con la luce attuale', _it[MANUAL_CAPTURE_HINT] = 'La cattura automatica sta avendo difficoltà. Tocca il pulsante per scattare la foto manualmente.', _it[REVIEW_HEADING] = 'Documento acquisito', _it[MOVE_BACK] = 'Allontanati e assicurati che tutti e 4 i bordi del foglio siano visibili.', _it[MOVE_CLOSER] = "Avvicinati e riempi l'inquadratura con l'intero foglio.", _it[EYES_CLOSED] = 'Tenere gli occhi aperti...', _it[HAND_OVER_FACE] = 'Togliere la mano dal viso...', _it),
7268
- ja: (_ja = {}, _ja[SELFIE_RECOVERY_HINT] = '照明の確認がうまくできません。顔を中央に保ち、動かないでください。顔の位置は引き続き確認します。', _ja[CONTINUE_WITH_CURRENT_LIGHTING] = '現在の照明で続行', _ja[MANUAL_CAPTURE_HINT] = '自動撮影がうまくいきません。ボタンを押してご自身で撮影してください。', _ja[REVIEW_HEADING] = '書類を撮影しました', _ja[MOVE_BACK] = '離れて、書類の4つの端がすべて見えるようにしてください。', _ja[MOVE_CLOSER] = '近づいて、書類全体で画面いっぱいに表示してください。', _ja[EYES_CLOSED] = '目を開けたままにしてください…', _ja[HAND_OVER_FACE] = '顔から手を離してください…', _ja),
7269
- pt: (_pt = {}, _pt[SELFIE_RECOVERY_HINT] = 'Estamos com dificuldade para verificar a iluminação. Mantenha o rosto centralizado e fique imóvel. Continuaremos verificando sua posição.', _pt[CONTINUE_WITH_CURRENT_LIGHTING] = 'Continuar com a iluminação atual', _pt[MANUAL_CAPTURE_HINT] = 'A captura automática está com dificuldades. Toque no botão para tirar a foto você mesmo.', _pt[REVIEW_HEADING] = 'Documento capturado', _pt[MOVE_BACK] = 'Afaste-se e certifique-se de que as 4 bordas da folha estejam visíveis.', _pt[MOVE_CLOSER] = 'Aproxime-se e preencha o quadro com a folha inteira.', _pt[EYES_CLOSED] = 'Mantenha os olhos abertos...', _pt[HAND_OVER_FACE] = 'Tire a mão do rosto...', _pt),
7270
- ru: (_ru = {}, _ru[SELFIE_RECOVERY_HINT] = 'Нам не удаётся проверить освещение. Держите лицо по центру и не двигайтесь. Мы продолжим проверять положение лица.', _ru[CONTINUE_WITH_CURRENT_LIGHTING] = 'Продолжить с текущим освещением', _ru[MANUAL_CAPTURE_HINT] = 'Автоматическая съёмка не справляется. Нажмите кнопку, чтобы сделать снимок самостоятельно.', _ru[REVIEW_HEADING] = 'Документ снят', _ru[MOVE_BACK] = 'Отойдите назад и убедитесь, что видны все 4 края листа.', _ru[MOVE_CLOSER] = 'Подойдите ближе и заполните кадр всем листом.', _ru[EYES_CLOSED] = 'Не закрывайте глаза…', _ru[HAND_OVER_FACE] = 'Уберите руку от лица…', _ru),
7271
- zh: (_zh = {}, _zh[SELFIE_RECOVERY_HINT] = '我們無法順利檢查光線。請將臉部保持在中央並保持不動。我們仍會檢查您的位置。', _zh[CONTINUE_WITH_CURRENT_LIGHTING] = '使用目前的光線繼續', _zh[MANUAL_CAPTURE_HINT] = '自動拍攝遇到困難。請點選按鈕自行拍攝。', _zh[REVIEW_HEADING] = '已拍攝文件', _zh[MOVE_BACK] = '後退一些,確保紙張的四個邊緣都清晰可見。', _zh[MOVE_CLOSER] = '靠近一些,讓整張紙填滿畫面。', _zh[EYES_CLOSED] = '請保持雙眼睜開...', _zh[HAND_OVER_FACE] = '請將手從臉上移開...', _zh)
7266
+ de: (_de = {}, _de[SELFIE_RECOVERY_HINT] = 'Wir haben Schwierigkeiten, die Beleuchtung zu prüfen. Halten Sie Ihr Gesicht mittig und bleiben Sie ruhig. Wir prüfen weiterhin Ihre Position.', _de[CONTINUE_WITH_CURRENT_LIGHTING] = 'Mit aktueller Beleuchtung fortfahren', _de[MANUAL_CAPTURE_HINT] = 'Die automatische Aufnahme hat Schwierigkeiten. Tippen Sie auf die Taste, um das Foto selbst aufzunehmen.', _de[REVIEW_HEADING] = 'Dokument aufgenommen', _de[MOVE_BACK] = 'Gehen Sie zurück und stellen Sie sicher, dass alle 4 Kanten des Blatts sichtbar sind.', _de[MOVE_CLOSER] = 'Kommen Sie näher und füllen Sie den Rahmen mit dem gesamten Blatt aus.', _de[EYES_CLOSED] = 'Augen offen halten...', _de[HAND_OVER_FACE] = 'Hand vom Gesicht nehmen...', _de[STARTING_CAMERA] = 'Kamera wird gestartet...', _de),
7267
+ es: (_es = {}, _es[SELFIE_RECOVERY_HINT] = 'Tenemos dificultades para comprobar la iluminación. Mantenga el rostro centrado y no se mueva. Seguiremos comprobando su posición.', _es[CONTINUE_WITH_CURRENT_LIGHTING] = 'Continuar con la iluminación actual', _es[MANUAL_CAPTURE_HINT] = 'La captura automática tiene dificultades. Toque el botón para tomar la foto usted mismo.', _es[REVIEW_HEADING] = 'Documento capturado', _es[MOVE_BACK] = 'Aléjese y asegúrese de que los 4 bordes de la hoja sean visibles.', _es[MOVE_CLOSER] = 'Acérquese y llene el encuadre con la hoja completa.', _es[EYES_CLOSED] = 'Hay que mantener los ojos abiertos...', _es[HAND_OVER_FACE] = 'Hay que retirar la mano de la cara...', _es[STARTING_CAMERA] = 'Iniciando la cámara...', _es),
7268
+ fr: (_fr = {}, _fr[SELFIE_RECOVERY_HINT] = 'Nous avons du mal à vérifier l’éclairage. Gardez votre visage centré et restez immobile. Nous vérifierons toujours votre position.', _fr[CONTINUE_WITH_CURRENT_LIGHTING] = 'Continuer avec cet éclairage', _fr[MANUAL_CAPTURE_HINT] = 'La capture automatique rencontre des difficultés. Appuyez sur le bouton pour prendre la photo vous-même.', _fr[REVIEW_HEADING] = 'Document capturé', _fr[MOVE_BACK] = 'Reculez et assurez-vous que les 4 bords de la page sont visibles.', _fr[MOVE_CLOSER] = 'Rapprochez-vous et remplissez le cadre avec la page entière.', _fr[EYES_CLOSED] = 'Gardez les yeux ouverts...', _fr[HAND_OVER_FACE] = 'Retirez votre main de votre visage...', _fr[STARTING_CAMERA] = 'Démarrage de la caméra...', _fr),
7269
+ it: (_it = {}, _it[SELFIE_RECOVERY_HINT] = 'Abbiamo difficoltà a verificare l’illuminazione. Mantieni il viso centrato e resta fermo. Continueremo a verificare la tua posizione.', _it[CONTINUE_WITH_CURRENT_LIGHTING] = 'Continua con la luce attuale', _it[MANUAL_CAPTURE_HINT] = 'La cattura automatica sta avendo difficoltà. Tocca il pulsante per scattare la foto manualmente.', _it[REVIEW_HEADING] = 'Documento acquisito', _it[MOVE_BACK] = 'Allontanati e assicurati che tutti e 4 i bordi del foglio siano visibili.', _it[MOVE_CLOSER] = "Avvicinati e riempi l'inquadratura con l'intero foglio.", _it[EYES_CLOSED] = 'Tenere gli occhi aperti...', _it[HAND_OVER_FACE] = 'Togliere la mano dal viso...', _it[STARTING_CAMERA] = 'Avvio della fotocamera...', _it),
7270
+ ja: (_ja = {}, _ja[SELFIE_RECOVERY_HINT] = '照明の確認がうまくできません。顔を中央に保ち、動かないでください。顔の位置は引き続き確認します。', _ja[CONTINUE_WITH_CURRENT_LIGHTING] = '現在の照明で続行', _ja[MANUAL_CAPTURE_HINT] = '自動撮影がうまくいきません。ボタンを押してご自身で撮影してください。', _ja[REVIEW_HEADING] = '書類を撮影しました', _ja[MOVE_BACK] = '離れて、書類の4つの端がすべて見えるようにしてください。', _ja[MOVE_CLOSER] = '近づいて、書類全体で画面いっぱいに表示してください。', _ja[EYES_CLOSED] = '目を開けたままにしてください…', _ja[HAND_OVER_FACE] = '顔から手を離してください…', _ja[STARTING_CAMERA] = 'カメラを起動しています…', _ja),
7271
+ pt: (_pt = {}, _pt[SELFIE_RECOVERY_HINT] = 'Estamos com dificuldade para verificar a iluminação. Mantenha o rosto centralizado e fique imóvel. Continuaremos verificando sua posição.', _pt[CONTINUE_WITH_CURRENT_LIGHTING] = 'Continuar com a iluminação atual', _pt[MANUAL_CAPTURE_HINT] = 'A captura automática está com dificuldades. Toque no botão para tirar a foto você mesmo.', _pt[REVIEW_HEADING] = 'Documento capturado', _pt[MOVE_BACK] = 'Afaste-se e certifique-se de que as 4 bordas da folha estejam visíveis.', _pt[MOVE_CLOSER] = 'Aproxime-se e preencha o quadro com a folha inteira.', _pt[EYES_CLOSED] = 'Mantenha os olhos abertos...', _pt[HAND_OVER_FACE] = 'Tire a mão do rosto...', _pt[STARTING_CAMERA] = 'Iniciando a câmera...', _pt),
7272
+ ru: (_ru = {}, _ru[SELFIE_RECOVERY_HINT] = 'Нам не удаётся проверить освещение. Держите лицо по центру и не двигайтесь. Мы продолжим проверять положение лица.', _ru[CONTINUE_WITH_CURRENT_LIGHTING] = 'Продолжить с текущим освещением', _ru[MANUAL_CAPTURE_HINT] = 'Автоматическая съёмка не справляется. Нажмите кнопку, чтобы сделать снимок самостоятельно.', _ru[REVIEW_HEADING] = 'Документ снят', _ru[MOVE_BACK] = 'Отойдите назад и убедитесь, что видны все 4 края листа.', _ru[MOVE_CLOSER] = 'Подойдите ближе и заполните кадр всем листом.', _ru[EYES_CLOSED] = 'Не закрывайте глаза…', _ru[HAND_OVER_FACE] = 'Уберите руку от лица…', _ru[STARTING_CAMERA] = 'Запуск камеры…', _ru),
7273
+ zh: (_zh = {}, _zh[SELFIE_RECOVERY_HINT] = '我們無法順利檢查光線。請將臉部保持在中央並保持不動。我們仍會檢查您的位置。', _zh[CONTINUE_WITH_CURRENT_LIGHTING] = '使用目前的光線繼續', _zh[MANUAL_CAPTURE_HINT] = '自動拍攝遇到困難。請點選按鈕自行拍攝。', _zh[REVIEW_HEADING] = '已拍攝文件', _zh[MOVE_BACK] = '後退一些,確保紙張的四個邊緣都清晰可見。', _zh[MOVE_CLOSER] = '靠近一些,讓整張紙填滿畫面。', _zh[EYES_CLOSED] = '請保持雙眼睜開...', _zh[HAND_OVER_FACE] = '請將手從臉上移開...', _zh[STARTING_CAMERA] = '正在啟動相機...', _zh)
7272
7274
  };
7273
7275
  /** Base entries win nothing — the supplement may only ADD. See `noShadowing`. */
7274
7276
  function withThreeOhTranslations(lang, base) {
@@ -7622,7 +7624,7 @@ function useGuideOrientationContext() {
7622
7624
  return ctx;
7623
7625
  }
7624
7626
 
7625
- var _templateObject$_, _templateObject2$Q;
7627
+ var _templateObject$$, _templateObject2$R;
7626
7628
  var _excluded$i = ["isRearFacing"];
7627
7629
  var CameraVideoTag = /*#__PURE__*/forwardRef(function CameraVideoTag(_ref, ref) {
7628
7630
  var isRearFacing = _ref.isRearFacing,
@@ -7635,10 +7637,10 @@ var CameraVideoTag = /*#__PURE__*/forwardRef(function CameraVideoTag(_ref, ref)
7635
7637
  "$isRearFacing": isRearFacing
7636
7638
  }, props));
7637
7639
  });
7638
- var FullscreenVideoTag = styled.video(_templateObject$_ || (_templateObject$_ = _taggedTemplateLiteralLoose(["\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) {
7640
+ var FullscreenVideoTag = styled.video(_templateObject$$ || (_templateObject$$ = _taggedTemplateLiteralLoose(["\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) {
7639
7641
  return props.$isRearFacing ? '' : 'scaleX(-1)';
7640
7642
  });
7641
- var CameraFeedWrapper = styled.div(_templateObject2$Q || (_templateObject2$Q = _taggedTemplateLiteralLoose(["\n /* Keep CameraVideoTag's legacy negative z-index above opaque flow shells. */\n isolation: isolate;\n\n ", "\n\n /* Last, so it wins over both branches' display. */\n ", "\n"])), function (props) {
7643
+ var CameraFeedWrapper = styled.div(_templateObject2$R || (_templateObject2$R = _taggedTemplateLiteralLoose(["\n /* Keep CameraVideoTag's legacy negative z-index above opaque flow shells. */\n isolation: isolate;\n\n ", "\n\n /* Last, so it wins over both branches' display. */\n ", "\n"])), function (props) {
7642
7644
  return props.$mode === 'snapToGuides' ? "display: flex;\n position: absolute;\n z-index: -2;\n left: " + props.$x + "px;\n top: " + props.$y + "px;\n width: " + props.$w + "px;\n height: " + props.$h + "px;\n /* Match the mask's hole when the guide publishes a radius. The mask\n sits above this feed (-1 vs -2), so square corners here show through\n as dimmed wedges outside the rounded hole. Guides that publish no\n radius keep the previous unclipped behaviour. */\n " + (props.$radius ? "border-radius: " + props.$radius + "px; overflow: hidden;" : '') : "display: flex;\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n overflow: hidden;";
7643
7645
  }, function (props) {
7644
7646
  return props.$hidden ? 'display: none;' : '';
@@ -7693,7 +7695,7 @@ function ScalingCameraFeed(_ref2) {
7693
7695
  });
7694
7696
  }
7695
7697
 
7696
- var _templateObject$Z, _templateObject2$P, _templateObject3$D, _templateObject4$y, _templateObject5$t, _templateObject6$l;
7698
+ var _templateObject$_, _templateObject2$Q, _templateObject3$D, _templateObject4$y, _templateObject5$t, _templateObject6$l;
7697
7699
  function _createForOfIteratorHelperLoose$r(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray$r(r)) || e) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: true } : { done: false, value: r[o++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
7698
7700
  function _unsupportedIterableToArray$r(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$r(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$r(r, a) : void 0; } }
7699
7701
  function _arrayLikeToArray$r(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
@@ -7715,8 +7717,8 @@ function DebugStatsPane(_ref2) {
7715
7717
  if (!portalLocation) return element;
7716
7718
  return /*#__PURE__*/createPortal(element, portalLocation);
7717
7719
  }
7718
- var DebugStatsPaneDiv = styled.span(_templateObject$Z || (_templateObject$Z = _taggedTemplateLiteralLoose(["\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 pointer-events: none;\n"])));
7719
- var ObjectDetectionDebugOverlayDiv = styled.div(_templateObject2$P || (_templateObject2$P = _taggedTemplateLiteralLoose(["\n position: absolute;\n z-index: 1001;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n max-width: 100%;\n max-height: 100%;\n overflow: hidden;\n pointer-events: none;\n ", "\n transform-style: preserve-3d;\n"])), function (_ref3) {
7720
+ var DebugStatsPaneDiv = styled.span(_templateObject$_ || (_templateObject$_ = _taggedTemplateLiteralLoose(["\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 pointer-events: none;\n"])));
7721
+ var ObjectDetectionDebugOverlayDiv = styled.div(_templateObject2$Q || (_templateObject2$Q = _taggedTemplateLiteralLoose(["\n position: absolute;\n z-index: 1001;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n max-width: 100%;\n max-height: 100%;\n overflow: hidden;\n pointer-events: none;\n ", "\n transform-style: preserve-3d;\n"])), function (_ref3) {
7720
7722
  var $flipX = _ref3.$flipX;
7721
7723
  return $flipX ? 'transform: scaleX(-1);' : '';
7722
7724
  });
@@ -8028,7 +8030,7 @@ function SelfieCaptureFaceKeypoint(_ref16) {
8028
8030
  });
8029
8031
  }
8030
8032
 
8031
- var _templateObject$Y;
8033
+ var _templateObject$Z;
8032
8034
  /**
8033
8035
  * Over WebKit's 10px "thin border" cutoff (`LocalFrameView::fixedContainerEdges`).
8034
8036
  * At or under it, Safari never reads the strip's `background-color`: it samples
@@ -8131,7 +8133,7 @@ function BrowserEdgeTint(_ref) {
8131
8133
  }, "bottom:" + bottomColor)]
8132
8134
  }), target);
8133
8135
  }
8134
- var EdgeStrip = styled.div(_templateObject$Y || (_templateObject$Y = _taggedTemplateLiteralLoose(["\n position: fixed;\n left: 0;\n right: 0;\n ", ": 0;\n height: ", "px;\n background: ", ";\n ", "\n pointer-events: none;\n"])), function (_ref2) {
8136
+ var EdgeStrip = styled.div(_templateObject$Z || (_templateObject$Z = _taggedTemplateLiteralLoose(["\n position: fixed;\n left: 0;\n right: 0;\n ", ": 0;\n height: ", "px;\n background: ", ";\n ", "\n pointer-events: none;\n"])), function (_ref2) {
8135
8137
  var $edge = _ref2.$edge;
8136
8138
  return $edge;
8137
8139
  }, EDGE_STRIP_PX, function (_ref3) {
@@ -8142,8 +8144,13 @@ var EdgeStrip = styled.div(_templateObject$Y || (_templateObject$Y = _taggedTemp
8142
8144
  return $hidden ? 'opacity: 0;' : '';
8143
8145
  });
8144
8146
 
8145
- var _templateObject$X;
8147
+ var _templateObject$Y, _templateObject2$P;
8146
8148
  var _excluded$h = ["children", "className", "colors", "disabled", "finished", "variant"];
8149
+ /**
8150
+ * The SDK's action button. `ladda-button` / `ladda-label` are kept as class
8151
+ * hooks from when Ladda drew the loading state, since 2.x customer CSS may
8152
+ * target them.
8153
+ */
8147
8154
  var LoaderButton = /*#__PURE__*/forwardRef(function (_ref, ref) {
8148
8155
  var children = _ref.children,
8149
8156
  className = _ref.className,
@@ -8154,49 +8161,14 @@ var LoaderButton = /*#__PURE__*/forwardRef(function (_ref, ref) {
8154
8161
  _ref$variant = _ref.variant,
8155
8162
  variant = _ref$variant === void 0 ? 'primary' : _ref$variant,
8156
8163
  props = _objectWithoutPropertiesLoose(_ref, _excluded$h);
8157
- var buttonRef = useRef(null);
8158
- var laddaRef = useRef(null);
8159
- var _useState = useState(false),
8160
- _useState2 = _slicedToArray(_useState, 2),
8161
- laddaLoaded = _useState2[0],
8162
- setLaddaLoaded = _useState2[1];
8163
- // Expose the button element to the parent via ref
8164
- useImperativeHandle(ref, function () {
8165
- return buttonRef.current;
8166
- }, []);
8167
- useEffect(function () {
8168
- if (laddaLoaded || finished) return;
8169
- var interval;
8170
- var isMounted = true;
8171
- import('ladda').then(function (Ladda) {
8172
- if (!buttonRef.current || !isMounted) return;
8173
- laddaRef.current = Ladda.create(buttonRef.current);
8174
- laddaRef.current.start();
8175
- setLaddaLoaded(true);
8176
- var currentProgress = 0;
8177
- interval = setInterval(function () {
8178
- var _laddaRef$current;
8179
- if (currentProgress < 0.9) currentProgress += 0.1;
8180
- (_laddaRef$current = laddaRef.current) == null || _laddaRef$current.setProgress(currentProgress);
8181
- }, 250);
8182
- });
8183
- return function () {
8184
- var _laddaRef$current2;
8185
- isMounted = false;
8186
- (_laddaRef$current2 = laddaRef.current) == null || _laddaRef$current2.remove();
8187
- clearInterval(interval);
8188
- };
8189
- }, [finished, laddaLoaded]);
8190
- useEffect(function () {
8191
- var _laddaRef$current3;
8192
- if (laddaLoaded && finished) (_laddaRef$current3 = laddaRef.current) == null || _laddaRef$current3.stop();
8193
- }, [finished, laddaLoaded]);
8164
+ var loading = finished === false;
8165
+ var inert = disabled || loading;
8194
8166
  return jsx(StyledButton, _extends({
8195
- className: "ladda-button " + className + " " + (disabled ? 'disabled' : ''),
8196
- "data-style": "expand-right",
8167
+ className: "ladda-button " + className + " " + (inert ? 'disabled' : ''),
8197
8168
  type: "button",
8198
- disabled: disabled,
8199
- ref: buttonRef,
8169
+ disabled: inert,
8170
+ "aria-busy": loading,
8171
+ ref: ref,
8200
8172
  "$backgroundColor": colors.backgroundColor,
8201
8173
  "$textColor": colors.textColor,
8202
8174
  "$disabledBackgroundColor": colors.loadingBackgroundColor,
@@ -8210,16 +8182,19 @@ var LoaderButton = /*#__PURE__*/forwardRef(function (_ref, ref) {
8210
8182
  }));
8211
8183
  });
8212
8184
  LoaderButton.displayName = 'LoaderButton';
8213
- var StyledButton = styled.button(_templateObject$X || (_templateObject$X = _taggedTemplateLiteralLoose(["\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) {
8214
- var _props$theme$buttons, _ref2, _props$$textColor, _props$theme$buttons2, _props$$variant, _ref3, _props$$backgroundCol, _props$theme$buttons3, _props$$variant2, _ref4, _props$$disabledTextC, _props$theme$buttons4, _ref5, _props$$disabledBackg, _props$theme$buttons5, _props$$disabledBackg2;
8215
- return ((_props$theme$buttons = props.theme.buttons) == null ? void 0 : _props$theme$buttons.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-color);\n background-color: var(--bs-btn-bg);\n border-color: var(--bs-btn-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: " + ((_ref2 = (_props$$textColor = props.$textColor) != null ? _props$$textColor : (_props$theme$buttons2 = props.theme.buttons) == null || (_props$theme$buttons2 = _props$theme$buttons2[(_props$$variant = props.$variant) != null ? _props$$variant : 'primary']) == null ? void 0 : _props$theme$buttons2.textColor) != null ? _ref2 : '#fff') + ";\n --bs-btn-bg: " + ((_ref3 = (_props$$backgroundCol = props.$backgroundColor) != null ? _props$$backgroundCol : (_props$theme$buttons3 = props.theme.buttons) == null || (_props$theme$buttons3 = _props$theme$buttons3[(_props$$variant2 = props.$variant) != null ? _props$$variant2 : 'primary']) == null ? void 0 : _props$theme$buttons3.backgroundColor) != null ? _ref3 : '#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: " + ((_ref4 = (_props$$disabledTextC = props.$disabledTextColor) != null ? _props$$disabledTextC : (_props$theme$buttons4 = props.theme.buttons) == null || (_props$theme$buttons4 = _props$theme$buttons4.loading) == null ? void 0 : _props$theme$buttons4.textColor) != null ? _ref4 : '#fff') + ";\n --bs-btn-disabled-bg: " + ((_ref5 = (_props$$disabledBackg = props.$disabledBackgroundColor) != null ? _props$$disabledBackg : (_props$theme$buttons5 = props.theme.buttons) == null || (_props$theme$buttons5 = _props$theme$buttons5.loading) == null ? void 0 : _props$theme$buttons5.backgroundColor) != null ? _ref5 : 'gray') + ";\n --bs-btn-disabled-border-color: " + ((_props$$disabledBackg2 = props.$disabledBackgroundColor) != null ? _props$$disabledBackg2 : '#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 ";
8216
- });
8185
+ // From just off the left edge to just off the right: the bar is 38% wide, so
8186
+ // 265% of its own width carries it clear.
8187
+ var track = keyframes(_templateObject$Y || (_templateObject$Y = _taggedTemplateLiteralLoose(["\n from { transform: translateX(-100%); }\n to { transform: translateX(265%); }\n"])));
8188
+ var StyledButton = styled.button(_templateObject2$P || (_templateObject2$P = _taggedTemplateLiteralLoose(["\n ", "\n\n position: relative;\n transition: 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important;\n\n /* Keeps the label above the loading bar below. */\n .ladda-label {\n position: relative;\n z-index: 3;\n }\n\n /* The loading state: a short bar glides along the inside of the bottom\n edge, clipped to the button's shape, in the label's colour. The label\n stays put, so callers whose label carries progress keep it readable.\n Transform-only, so it composites without repainting. */\n &[aria-busy='true'] {\n overflow: hidden;\n\n &::after {\n content: '';\n position: absolute;\n left: 0;\n bottom: 0;\n width: 38%;\n height: 3px;\n border-radius: 3px;\n background: currentColor;\n animation: ", " 1.5s cubic-bezier(0.65, 0, 0.35, 1) infinite;\n }\n\n @media (prefers-reduced-motion: reduce) {\n &::after {\n animation: none;\n width: 100%;\n opacity: 0.4;\n }\n }\n }\n"])), function (props) {
8189
+ var _props$theme$buttons, _ref2, _props$$textColor, _props$theme$buttons2, _props$$variant, _ref3, _props$$backgroundCol, _props$theme$buttons3, _props$$variant2, _ref4, _props$$disabledTextC, _props$theme$buttons4, _ref5, _props$$disabledBackg, _props$theme$buttons5;
8190
+ return ((_props$theme$buttons = props.theme.buttons) == null ? void 0 : _props$theme$buttons.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-color);\n background-color: var(--bs-btn-bg);\n border-color: var(--bs-btn-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: " + ((_ref2 = (_props$$textColor = props.$textColor) != null ? _props$$textColor : (_props$theme$buttons2 = props.theme.buttons) == null || (_props$theme$buttons2 = _props$theme$buttons2[(_props$$variant = props.$variant) != null ? _props$$variant : 'primary']) == null ? void 0 : _props$theme$buttons2.textColor) != null ? _ref2 : '#fff') + ";\n --bs-btn-bg: " + ((_ref3 = (_props$$backgroundCol = props.$backgroundColor) != null ? _props$$backgroundCol : (_props$theme$buttons3 = props.theme.buttons) == null || (_props$theme$buttons3 = _props$theme$buttons3[(_props$$variant2 = props.$variant) != null ? _props$$variant2 : 'primary']) == null ? void 0 : _props$theme$buttons3.backgroundColor) != null ? _ref3 : '#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: " + ((_ref4 = (_props$$disabledTextC = props.$disabledTextColor) != null ? _props$$disabledTextC : (_props$theme$buttons4 = props.theme.buttons) == null || (_props$theme$buttons4 = _props$theme$buttons4.loading) == null ? void 0 : _props$theme$buttons4.textColor) != null ? _ref4 : '#fff') + ";\n --bs-btn-disabled-bg: " + ((_ref5 = (_props$$disabledBackg = props.$disabledBackgroundColor) != null ? _props$$disabledBackg : (_props$theme$buttons5 = props.theme.buttons) == null || (_props$theme$buttons5 = _props$theme$buttons5.loading) == null ? void 0 : _props$theme$buttons5.backgroundColor) != null ? _ref5 : 'gray') + ";\n --bs-btn-disabled-border-color: var(--bs-btn-disabled-bg);\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 ";
8191
+ }, track);
8217
8192
 
8218
- var _templateObject$W;
8219
- var ButtonsRow$2 = styled.div(_templateObject$W || (_templateObject$W = _taggedTemplateLiteralLoose(["\n display: flex;\n gap: 0 15px;\n justify-content: center;\n text-align: left;\n"])));
8193
+ var _templateObject$X;
8194
+ var ButtonsRow$2 = styled.div(_templateObject$X || (_templateObject$X = _taggedTemplateLiteralLoose(["\n display: flex;\n gap: 0 15px;\n justify-content: center;\n text-align: left;\n"])));
8220
8195
 
8221
- var _templateObject$V, _templateObject2$O;
8222
- var GuidanceMessageContainerDiv = styled.div(_templateObject$V || (_templateObject$V = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: calc(", ");\n ", "\n font-weight: bold;\n width: 100%;\n display: flex;\n padding: 0 10%;\n box-sizing: border-box;\n"])), function (_ref) {
8196
+ var _templateObject$W, _templateObject2$O;
8197
+ var GuidanceMessageContainerDiv = styled.div(_templateObject$W || (_templateObject$W = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: calc(", ");\n ", "\n font-weight: bold;\n width: 100%;\n display: flex;\n padding: 0 10%;\n box-sizing: border-box;\n"])), function (_ref) {
8223
8198
  var $top = _ref.$top;
8224
8199
  return $top != null ? $top : '10%';
8225
8200
  }, function (_ref2) {
@@ -8284,14 +8259,14 @@ var PlacedGuidanceMessageContainer = function PlacedGuidanceMessageContainer(_re
8284
8259
  });
8285
8260
  };
8286
8261
 
8287
- var _templateObject$U, _templateObject2$N, _templateObject3$C, _templateObject4$x;
8288
- var wavesAnimation = keyframes(_templateObject$U || (_templateObject$U = _taggedTemplateLiteralLoose(["\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"])));
8262
+ var _templateObject$V, _templateObject2$N, _templateObject3$C, _templateObject4$x;
8263
+ var wavesAnimation = keyframes(_templateObject$V || (_templateObject$V = _taggedTemplateLiteralLoose(["\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"])));
8289
8264
  var progressBarAnimation = keyframes(_templateObject2$N || (_templateObject2$N = _taggedTemplateLiteralLoose(["\n 0% {\n width: 0;\n }\n 100% {\n width: 100%;\n }\n"])));
8290
8265
  keyframes(_templateObject3$C || (_templateObject3$C = _taggedTemplateLiteralLoose(["\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n"])));
8291
8266
  keyframes(_templateObject4$x || (_templateObject4$x = _taggedTemplateLiteralLoose(["\n to {\n stroke-dashoffset: 0;\n }\n"])));
8292
8267
 
8293
- var _templateObject$T, _templateObject2$M, _templateObject3$B, _templateObject4$w, _templateObject5$s, _templateObject6$k, _templateObject7$h, _templateObject8$d, _templateObject9$d, _templateObject0$b, _templateObject1$a, _templateObject10$a, _templateObject11$7, _templateObject12$6, _templateObject13$6, _templateObject14$6, _templateObject15$5, _templateObject16$4, _templateObject17$3, _templateObject18$3, _templateObject19$3, _templateObject20$3;
8294
- var OverlayContainer = styled.div(_templateObject$T || (_templateObject$T = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n\n display: flex;\n flex-direction: column;\n\n overflow-x: hidden;\n overflow-y: auto;\n\n background: ", ";\n ", "\n\n z-index: 10000;\n"])), function (props) {
8268
+ var _templateObject$U, _templateObject2$M, _templateObject3$B, _templateObject4$w, _templateObject5$s, _templateObject6$k, _templateObject7$h, _templateObject8$d, _templateObject9$d, _templateObject0$b, _templateObject1$a, _templateObject10$9, _templateObject11$7, _templateObject12$6, _templateObject13$6, _templateObject14$6, _templateObject15$5, _templateObject16$4, _templateObject17$3, _templateObject18$3, _templateObject19$3, _templateObject20$3;
8269
+ var OverlayContainer = styled.div(_templateObject$U || (_templateObject$U = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n\n display: flex;\n flex-direction: column;\n\n overflow-x: hidden;\n overflow-y: auto;\n\n background: ", ";\n ", "\n\n z-index: 10000;\n"])), function (props) {
8295
8270
  return props.theme.background ? "" + props.theme.background : "white";
8296
8271
  }, function (props) {
8297
8272
  return props.theme.textColor ? "color: " + props.theme.textColor + ";" : "";
@@ -8331,7 +8306,7 @@ var LoadingOverlayHeader = styled.div(_templateObject0$b || (_templateObject0$b
8331
8306
  return props.theme.padding ? "box-sizing: border-box; padding: " + props.theme.padding + ";" : "";
8332
8307
  });
8333
8308
  var LoadingOverlayGuidanceMessage = styled(GuidanceMessage)(_templateObject1$a || (_templateObject1$a = _taggedTemplateLiteralLoose(["\n padding: 16px 24px;\n margin-top: 16px;\n font-size: 18px;\n font-weight: bold;\n"])));
8334
- var LoadingOverlayImageContainer = styled(OverlayImageContainer)(_templateObject10$a || (_templateObject10$a = _taggedTemplateLiteralLoose(["\n padding: 0;\n max-height: 100%;\n pointer-events: none;\n"])));
8309
+ var LoadingOverlayImageContainer = styled(OverlayImageContainer)(_templateObject10$9 || (_templateObject10$9 = _taggedTemplateLiteralLoose(["\n padding: 0;\n max-height: 100%;\n pointer-events: none;\n"])));
8335
8310
  var LoadingOverlayProgressBarBackground = styled.div.attrs({
8336
8311
  className: 'loading-overlay-progress-bar-background'
8337
8312
  })(_templateObject11$7 || (_templateObject11$7 = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n"])));
@@ -8466,8 +8441,8 @@ var error = function error() {
8466
8441
 
8467
8442
  var _excluded$g = ["children", "status", "borderWidth", "borderRadius", "borderColor", "aspectRatio", "progress", "guideBoxDisabled"],
8468
8443
  _excluded2$5 = ["borderRadius", "borderColor", "borderWidth", "borderOpacity", "progress", "isProgressBar", "scaleBorderRadius"];
8469
- var _templateObject$S, _templateObject2$L, _templateObject3$A, _templateObject4$v, _templateObject5$r, _templateObject6$j, _templateObject7$g;
8470
- var IdCardGuideImageContainer = styled(IdCardBorder)(_templateObject$S || (_templateObject$S = _taggedTemplateLiteralLoose(["\n position: relative;\n ", "\n box-sizing: border-box;\n max-width: 100%;\n max-height: 100%;\n ", ";\n"])), function (props) {
8444
+ var _templateObject$T, _templateObject2$L, _templateObject3$A, _templateObject4$v, _templateObject5$r, _templateObject6$j, _templateObject7$g;
8445
+ var IdCardGuideImageContainer = styled(IdCardBorder)(_templateObject$T || (_templateObject$T = _taggedTemplateLiteralLoose(["\n position: relative;\n ", "\n box-sizing: border-box;\n max-width: 100%;\n max-height: 100%;\n ", ";\n"])), function (props) {
8471
8446
  return props.$isVisible ? '' : 'opacity: 0;';
8472
8447
  }, function (props) {
8473
8448
  return props.$isMobile ? props.$isLandscape ? 'height: 100%;' : 'width: 80%;' : props.$isLandscape ? 'height: 70%;' : 'width: 82%;';
@@ -8763,7 +8738,7 @@ function useGuideImagesByUrl(images) {
8763
8738
  }, [images]);
8764
8739
  }
8765
8740
 
8766
- var _templateObject$R;
8741
+ var _templateObject$S;
8767
8742
  var FlipIdPrompt = function FlipIdPrompt(_ref) {
8768
8743
  var _ref$images = _ref.images,
8769
8744
  images = _ref$images === void 0 ? defaultIdCaptureGuideImages : _ref$images,
@@ -8860,11 +8835,11 @@ var FlipIdPrompt = function FlipIdPrompt(_ref) {
8860
8835
  })]
8861
8836
  });
8862
8837
  };
8863
- var Wrapper$1 = styled.div(_templateObject$R || (_templateObject$R = _taggedTemplateLiteralLoose(["\n align-items: center;\n justify-content: center;\n display: flex;\n position: absolute;\n margin: auto;\n box-sizing: border-box;\n max-width: 100%;\n max-height: 100%;\n ", ";\n"])), function (props) {
8838
+ var Wrapper$1 = styled.div(_templateObject$S || (_templateObject$S = _taggedTemplateLiteralLoose(["\n align-items: center;\n justify-content: center;\n display: flex;\n position: absolute;\n margin: auto;\n box-sizing: border-box;\n max-width: 100%;\n max-height: 100%;\n ", ";\n"])), function (props) {
8864
8839
  return props.$isMobile ? props.$isLandscape ? 'height: 100%;' : 'width: 80%;' : props.$isLandscape ? 'height: 70%;' : 'width: 82%;';
8865
8840
  });
8866
8841
 
8867
- var _templateObject$Q, _templateObject2$K, _templateObject3$z, _templateObject4$u, _templateObject5$q, _templateObject6$i, _templateObject7$f, _templateObject8$c, _templateObject9$c;
8842
+ var _templateObject$R, _templateObject2$K, _templateObject3$z, _templateObject4$u, _templateObject5$q, _templateObject6$i, _templateObject7$f, _templateObject8$c, _templateObject9$c;
8868
8843
  var IdCaptureGuideOverlay = function IdCaptureGuideOverlay(_ref) {
8869
8844
  var _theme$idCapture$guid, _theme$idCapture, _theme$idCapture$guid2, _theme$idCapture2, _theme$idCapture$guid3, _theme$idCapture3, _theme$idCapture$guid4, _theme$idCapture4, _theme$idCapture$guid5, _theme$idCapture5;
8870
8845
  var _ref$classNames = _ref.classNames,
@@ -9020,7 +8995,7 @@ var regionClsx = function regionClsx(classNames, which) {
9020
8995
  return v;
9021
8996
  }).join(' ');
9022
8997
  };
9023
- var StyledPageContainer = styled.div(_templateObject$Q || (_templateObject$Q = _taggedTemplateLiteralLoose(["\n position: relative;\n width: 100%;\n height: 100%;\n z-index: 1000;\n overflow: hidden;\n"])));
8998
+ var StyledPageContainer = styled.div(_templateObject$R || (_templateObject$R = _taggedTemplateLiteralLoose(["\n position: relative;\n width: 100%;\n height: 100%;\n z-index: 1000;\n overflow: hidden;\n"])));
9024
8999
  var GuidesContainer = styled.div(_templateObject2$K || (_templateObject2$K = _taggedTemplateLiteralLoose(["\n display: flex;\n flex-flow: column nowrap;\n width: 100%;\n height: 100%;\n"])));
9025
9000
  var GuideCenterRow = styled.div(_templateObject3$z || (_templateObject3$z = _taggedTemplateLiteralLoose(["\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"])));
9026
9001
  var GuideRegion = styled.div(_templateObject4$u || (_templateObject4$u = _taggedTemplateLiteralLoose(["\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) {
@@ -9053,7 +9028,7 @@ var GuideCenterInner = styled.div(_templateObject9$c || (_templateObject9$c = _t
9053
9028
  /** The mask colour when neither the prop nor the theme sets one. */
9054
9029
  var OVERLAY_GUIDE_MASK_DEFAULT = 'rgba(0, 0, 0, 0.5)';
9055
9030
 
9056
- var _templateObject$P, _templateObject2$J, _templateObject3$y, _templateObject4$t;
9031
+ var _templateObject$Q, _templateObject2$J, _templateObject3$y, _templateObject4$t;
9057
9032
  var IdCaptureFitGuide = function IdCaptureFitGuide(_ref) {
9058
9033
  var _theme$idCapture$guid, _theme$idCapture, _theme$idCapture$guid5, _theme$idCapture5, _theme$idCapture$guid6, _theme$idCapture6, _theme$idCapture$guid7, _theme$idCapture7;
9059
9034
  var aspectRatio = _ref.aspectRatio,
@@ -9290,7 +9265,7 @@ var IdCaptureFitGuide = function IdCaptureFitGuide(_ref) {
9290
9265
  })]
9291
9266
  });
9292
9267
  };
9293
- var CanvasWrapper$1 = styled.div(_templateObject$P || (_templateObject$P = _taggedTemplateLiteralLoose(["\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 /* The default -1 puts the mask behind a 'fullscreen' camera feed, which hides\n the dimming entirely; it only works because 'snapToGuides' clips the feed to\n the guide rect. Lifting it is opt-in so existing integrations are untouched. */\n ", "\n"])), function (props) {
9268
+ var CanvasWrapper$1 = styled.div(_templateObject$Q || (_templateObject$Q = _taggedTemplateLiteralLoose(["\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 /* The default -1 puts the mask behind a 'fullscreen' camera feed, which hides\n the dimming entirely; it only works because 'snapToGuides' clips the feed to\n the guide rect. Lifting it is opt-in so existing integrations are untouched. */\n ", "\n"])), function (props) {
9294
9269
  return props.$aboveCameraFeed ? "z-index: 1;" : "box-shadow: inset 0 0 0 2px " + props.$maskColor + ";\n z-index: -1;";
9295
9270
  });
9296
9271
  var Canvas$2 = styled.canvas(_templateObject2$J || (_templateObject2$J = _taggedTemplateLiteralLoose(["\n display: block;\n"])));
@@ -9322,8 +9297,8 @@ function downloadingLabel(downloadingText, downloadProgress) {
9322
9297
  });
9323
9298
  }
9324
9299
 
9325
- var _templateObject$O;
9326
- var ExitCaptureStyledButton = styled.button(_templateObject$O || (_templateObject$O = _taggedTemplateLiteralLoose(["\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: 10002;\n border: none;\n border-radius: 4px;\n background: var(--idm-color-secondary-200);\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"])));
9300
+ var _templateObject$P;
9301
+ var ExitCaptureStyledButton = styled.button(_templateObject$P || (_templateObject$P = _taggedTemplateLiteralLoose(["\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: 10002;\n border: none;\n border-radius: 4px;\n background: var(--idm-color-secondary-200);\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"])));
9327
9302
  var ExitCaptureButton = function ExitCaptureButton(_ref) {
9328
9303
  var onClick = _ref.onClick,
9329
9304
  className = _ref.className;
@@ -9372,7 +9347,7 @@ var ExitCaptureButton = function ExitCaptureButton(_ref) {
9372
9347
  });
9373
9348
  };
9374
9349
 
9375
- var _templateObject$N, _templateObject2$I, _templateObject3$x, _templateObject4$s;
9350
+ var _templateObject$O, _templateObject2$I, _templateObject3$x, _templateObject4$s;
9376
9351
  function IdCaptureLoadingGraphic(props) {
9377
9352
  var isMobile = window.innerHeight > window.innerWidth;
9378
9353
  return isMobile ? jsx(IdCaptureLoadingGraphicMobile, _extends({}, props)) : jsx(IdCaptureLoadingGraphicDesktop, _extends({}, props));
@@ -9869,7 +9844,7 @@ function IdCaptureLoadingGraphicMobile(_ref2) {
9869
9844
  })]
9870
9845
  });
9871
9846
  }
9872
- var LoadingGraphicWrapper = styled.div(_templateObject$N || (_templateObject$N = _taggedTemplateLiteralLoose(["\n display: flex;\n width: 100%;\n height: 100%;\n"])));
9847
+ var LoadingGraphicWrapper = styled.div(_templateObject$O || (_templateObject$O = _taggedTemplateLiteralLoose(["\n display: flex;\n width: 100%;\n height: 100%;\n"])));
9873
9848
  var LoadingGraphicSvg = styled.svg(_templateObject2$I || (_templateObject2$I = _taggedTemplateLiteralLoose(["\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 max-height: 80%;\n max-width: 80%;\n"])), function (props) {
9874
9849
  return props.$frame > 1 ? 1 : props.$frame === 1 ? 1.25 : 0.75;
9875
9850
  }, function (props) {
@@ -10068,7 +10043,7 @@ var useAutoContinueWhenReady = function useAutoContinueWhenReady(_ref) {
10068
10043
  }, [enabled, ready]);
10069
10044
  };
10070
10045
 
10071
- var _templateObject$M;
10046
+ var _templateObject$N;
10072
10047
  var LoadingSpinnerContext = /*#__PURE__*/createContext(undefined);
10073
10048
  function LoadingSpinnerProvider(_ref) {
10074
10049
  var spinner = _ref.spinner,
@@ -10136,9 +10111,9 @@ function CustomerLoadingSpinner(_ref2) {
10136
10111
  }
10137
10112
  // `display: contents` while empty: an empty flex box still occupies its
10138
10113
  // parent's gap/padding, which would offset the fallback it sits next to.
10139
- var SpinnerSlot = styled.div(_templateObject$M || (_templateObject$M = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n justify-content: center;\n\n &:empty {\n display: contents;\n }\n"])));
10114
+ var SpinnerSlot = styled.div(_templateObject$N || (_templateObject$N = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n justify-content: center;\n\n &:empty {\n display: contents;\n }\n"])));
10140
10115
 
10141
- var _templateObject$L, _templateObject2$H, _templateObject3$w, _templateObject4$r, _templateObject5$p;
10116
+ var _templateObject$M, _templateObject2$H, _templateObject3$w, _templateObject4$r, _templateObject5$p;
10142
10117
  var legacyInstructionImageUrl$1 = DEFAULT_CDN_URL$1 + "/WebSDK-Instruction-DL-Capture-3-Portrait.png";
10143
10118
  // Module-level so the default `now` prop has a stable identity across
10144
10119
  // renders (it sits in useModelWarmingElapsedMs's effect dependency array).
@@ -10327,7 +10302,7 @@ var IdCaptureLoadingOverlayDefault = function IdCaptureLoadingOverlayDefault(_re
10327
10302
  })
10328
10303
  });
10329
10304
  };
10330
- var OverlayInner$1 = styled(LoadingOverlayInner)(_templateObject$L || (_templateObject$L = _taggedTemplateLiteralLoose(["\n background: ", ";\n color: ", ";\n"])), function (props) {
10305
+ var OverlayInner$1 = styled(LoadingOverlayInner)(_templateObject$M || (_templateObject$M = _taggedTemplateLiteralLoose(["\n background: ", ";\n color: ", ";\n"])), function (props) {
10331
10306
  var _props$theme$idCaptur, _props$theme;
10332
10307
  return (_props$theme$idCaptur = (_props$theme = props.theme) == null || (_props$theme = _props$theme.idCapture) == null || (_props$theme = _props$theme.loadingOverlay) == null ? void 0 : _props$theme.backgroundColor) != null ? _props$theme$idCaptur : LOADING_OVERLAY_BACKGROUND_DEFAULT;
10333
10308
  }, function (props) {
@@ -18988,7 +18963,7 @@ function instructionVerbiage(bag, code) {
18988
18963
  return bag == null ? void 0 : bag[instructionVerbiageKeys[code]];
18989
18964
  }
18990
18965
 
18991
- var _templateObject$K, _templateObject2$G, _templateObject3$v, _templateObject4$q, _templateObject5$o;
18966
+ var _templateObject$L, _templateObject2$G, _templateObject3$v, _templateObject4$q, _templateObject5$o;
18992
18967
  var PDF417_ASPECT_RATIO = 3 / 1;
18993
18968
  function BarcodeGuideOverlay(_ref) {
18994
18969
  var _ref$aspectRatio = _ref.aspectRatio,
@@ -19118,14 +19093,14 @@ function BarcodeGuideOverlay(_ref) {
19118
19093
  })]
19119
19094
  });
19120
19095
  }
19121
- var Wrapper = styled.div(_templateObject$K || (_templateObject$K = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n z-index: 1;\n"])));
19096
+ var Wrapper = styled.div(_templateObject$L || (_templateObject$L = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n z-index: 1;\n"])));
19122
19097
  var Canvas$1 = styled.canvas(_templateObject2$G || (_templateObject2$G = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n"])));
19123
19098
  var TextOverlay = styled.div(_templateObject3$v || (_templateObject3$v = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: flex-start;\n padding-top: 48px;\n pointer-events: none;\n z-index: 2;\n"])));
19124
19099
  var HeaderText = styled.div(_templateObject4$q || (_templateObject4$q = _taggedTemplateLiteralLoose(["\n color: white;\n font-size: 24px;\n font-weight: 700;\n text-align: center;\n text-transform: uppercase;\n letter-spacing: 2px;\n margin-bottom: 16px;\n"])));
19125
19100
  var InstructionText = styled.div(_templateObject5$o || (_templateObject5$o = _taggedTemplateLiteralLoose(["\n color: white;\n font-size: 16px;\n font-weight: 400;\n text-align: center;\n max-width: 300px;\n line-height: 1.4;\n opacity: 0.9;\n"])));
19126
19101
 
19127
- var _templateObject$J, _templateObject2$F, _templateObject3$u, _templateObject4$p, _templateObject5$n, _templateObject6$h;
19128
- var scaleIn = keyframes(_templateObject$J || (_templateObject$J = _taggedTemplateLiteralLoose(["\n 0% {\n transform: scale(0);\n opacity: 0;\n }\n 50% {\n transform: scale(1.1);\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n"])));
19102
+ var _templateObject$K, _templateObject2$F, _templateObject3$u, _templateObject4$p, _templateObject5$n, _templateObject6$h;
19103
+ var scaleIn = keyframes(_templateObject$K || (_templateObject$K = _taggedTemplateLiteralLoose(["\n 0% {\n transform: scale(0);\n opacity: 0;\n }\n 50% {\n transform: scale(1.1);\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n"])));
19129
19104
  var drawCheck = keyframes(_templateObject2$F || (_templateObject2$F = _taggedTemplateLiteralLoose(["\n 0% {\n stroke-dashoffset: 24;\n }\n 100% {\n stroke-dashoffset: 0;\n }\n"])));
19130
19105
  styled.div(_templateObject3$u || (_templateObject3$u = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n pointer-events: none;\n z-index: 3;\n"])));
19131
19106
  styled.div(_templateObject4$p || (_templateObject4$p = _taggedTemplateLiteralLoose(["\n width: 80px;\n height: 80px;\n border-radius: 50%;\n background-color: ", ";\n display: flex;\n align-items: center;\n justify-content: center;\n animation: ", " 0.4s ease-out forwards;\n"])), function (props) {
@@ -19226,7 +19201,7 @@ function IdCaptureGuides(_ref) {
19226
19201
  });
19227
19202
  }
19228
19203
 
19229
- var _templateObject$I, _templateObject2$E, _templateObject3$t, _templateObject4$o, _templateObject5$m;
19204
+ var _templateObject$J, _templateObject2$E, _templateObject3$t, _templateObject4$o, _templateObject5$m;
19230
19205
  function OverrideWrongDocumentTypeDialog(_ref) {
19231
19206
  var visible = _ref.visible,
19232
19207
  onOverride = _ref.onOverride,
@@ -19258,7 +19233,7 @@ function OverrideWrongDocumentTypeDialog(_ref) {
19258
19233
  })
19259
19234
  });
19260
19235
  }
19261
- var Container$3 = styled.div(_templateObject$I || (_templateObject$I = _taggedTemplateLiteralLoose(["\n position: fixed;\n left: 0;\n bottom: 0;\n width: 100%;\n background: ", ";\n color: ", ";\n display: flex;\n z-index: 100001;\n"])), function (props) {
19236
+ var Container$3 = styled.div(_templateObject$J || (_templateObject$J = _taggedTemplateLiteralLoose(["\n position: fixed;\n left: 0;\n bottom: 0;\n width: 100%;\n background: ", ";\n color: ", ";\n display: flex;\n z-index: 100001;\n"])), function (props) {
19262
19237
  var _props$theme$idCaptur, _props$theme$idCaptur2;
19263
19238
  return (_props$theme$idCaptur = (_props$theme$idCaptur2 = props.theme.idCapture) == null || (_props$theme$idCaptur2 = _props$theme$idCaptur2.overrideWrongDocumentTypeGuidance) == null ? void 0 : _props$theme$idCaptur2.backgroundColor) != null ? _props$theme$idCaptur : '#eed202';
19264
19239
  }, function (props) {
@@ -19375,7 +19350,7 @@ var IdCaptureLoadingOverlayLegacy = function IdCaptureLoadingOverlayLegacy(_ref)
19375
19350
  });
19376
19351
  };
19377
19352
 
19378
- var _templateObject$H, _templateObject2$D;
19353
+ var _templateObject$I, _templateObject2$D;
19379
19354
  var RING_SIZE = 74;
19380
19355
  var RADIUS = 32;
19381
19356
  var CIRCUMFERENCE = 2 * Math.PI * RADIUS;
@@ -19420,7 +19395,7 @@ var RingProgress = function RingProgress(_ref) {
19420
19395
  })]
19421
19396
  });
19422
19397
  };
19423
- var RingSvg = styled.svg(_templateObject$H || (_templateObject$H = _taggedTemplateLiteralLoose(["\n width: ", "px;\n height: ", "px;\n transform: rotate(-90deg);\n"])), RING_SIZE, RING_SIZE);
19398
+ var RingSvg = styled.svg(_templateObject$I || (_templateObject$I = _taggedTemplateLiteralLoose(["\n width: ", "px;\n height: ", "px;\n transform: rotate(-90deg);\n"])), RING_SIZE, RING_SIZE);
19424
19399
  var FillCircle = styled.circle(_templateObject2$D || (_templateObject2$D = _taggedTemplateLiteralLoose(["\n transition: stroke-dashoffset 0.3s linear;\n"])));
19425
19400
 
19426
19401
  var selectRingStatusKey = function selectRingStatusKey(_ref) {
@@ -19436,7 +19411,7 @@ var selectRingStatusKey = function selectRingStatusKey(_ref) {
19436
19411
  return 'warming';
19437
19412
  };
19438
19413
 
19439
- var _templateObject$G, _templateObject2$C, _templateObject3$s, _templateObject4$n, _templateObject5$l, _templateObject6$g, _templateObject7$e, _templateObject8$b, _templateObject9$b, _templateObject0$a, _templateObject1$9, _templateObject10$9;
19414
+ var _templateObject$H, _templateObject2$C, _templateObject3$s, _templateObject4$n, _templateObject5$l, _templateObject6$g, _templateObject7$e, _templateObject8$b, _templateObject9$b, _templateObject0$a, _templateObject1$9;
19440
19415
  /**
19441
19416
  * The ring overlay's priming cover page (CEO prototype `#v-prime`): camera
19442
19417
  * badge, title/subtitle, step chips, reassurance chip, "Enable camera &
@@ -19507,7 +19482,6 @@ var RingIntroScreen = function RingIntroScreen(_ref) {
19507
19482
  finished: !requesting,
19508
19483
  disabled: requesting,
19509
19484
  onClick: onStart,
19510
- "data-spinner-color": badgeColor,
19511
19485
  children: requesting ? requestingButtonText : startButtonText
19512
19486
  }), jsx(Privacy, {
19513
19487
  className: classNames.introPrivacy,
@@ -19515,20 +19489,19 @@ var RingIntroScreen = function RingIntroScreen(_ref) {
19515
19489
  })]
19516
19490
  });
19517
19491
  };
19518
- var _float = keyframes(_templateObject$G || (_templateObject$G = _taggedTemplateLiteralLoose(["\n 0%, 100% { transform: translateY(0); }\n 50% { transform: translateY(-7px); }\n"])));
19519
- var sweep = keyframes(_templateObject2$C || (_templateObject2$C = _taggedTemplateLiteralLoose(["\n from { transform: translateX(-100%); }\n to { transform: translateX(100%); }\n"])));
19520
- var IntroLayout = styled.div(_templateObject3$s || (_templateObject3$s = _taggedTemplateLiteralLoose(["\n position: absolute;\n inset: 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 14px;\n padding: 34px;\n text-align: center;\n"])));
19521
- var Badge = styled.div(_templateObject4$n || (_templateObject4$n = _taggedTemplateLiteralLoose(["\n width: 84px;\n height: 84px;\n border-radius: 28px;\n background: ", ";\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 12px 28px\n color-mix(in srgb, ", " 35%, transparent);\n margin-bottom: 8px;\n animation: ", " 3s ease-in-out infinite;\n\n @media (prefers-reduced-motion: reduce) {\n animation: none;\n }\n\n svg {\n width: 40px;\n height: 40px;\n fill: #ffffff;\n }\n"])), function (props) {
19492
+ var _float = keyframes(_templateObject$H || (_templateObject$H = _taggedTemplateLiteralLoose(["\n 0%, 100% { transform: translateY(0); }\n 50% { transform: translateY(-7px); }\n"])));
19493
+ var IntroLayout = styled.div(_templateObject2$C || (_templateObject2$C = _taggedTemplateLiteralLoose(["\n position: absolute;\n inset: 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 14px;\n padding: 34px;\n text-align: center;\n"])));
19494
+ var Badge = styled.div(_templateObject3$s || (_templateObject3$s = _taggedTemplateLiteralLoose(["\n width: 84px;\n height: 84px;\n border-radius: 28px;\n background: ", ";\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 12px 28px\n color-mix(in srgb, ", " 35%, transparent);\n margin-bottom: 8px;\n animation: ", " 3s ease-in-out infinite;\n\n @media (prefers-reduced-motion: reduce) {\n animation: none;\n }\n\n svg {\n width: 40px;\n height: 40px;\n fill: #ffffff;\n }\n"])), function (props) {
19522
19495
  return props.$color;
19523
19496
  }, function (props) {
19524
19497
  return props.$color;
19525
19498
  }, _float);
19526
- var Title$4 = styled.div(_templateObject5$l || (_templateObject5$l = _taggedTemplateLiteralLoose(["\n font-size: 22px;\n font-weight: 700;\n"])));
19527
- var Subtitle$3 = styled.div(_templateObject6$g || (_templateObject6$g = _taggedTemplateLiteralLoose(["\n font-size: 14px;\n opacity: 0.65;\n line-height: 1.5;\n"])));
19528
- var Steps = styled.div(_templateObject7$e || (_templateObject7$e = _taggedTemplateLiteralLoose(["\n display: flex;\n gap: 26px;\n margin: 16px 0 6px;\n"])));
19529
- var Step = styled.div(_templateObject8$b || (_templateObject8$b = _taggedTemplateLiteralLoose(["\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 6px;\n font-size: 11px;\n opacity: 0.75;\n width: 90px;\n"])));
19530
- var StepDot = styled.div(_templateObject9$b || (_templateObject9$b = _taggedTemplateLiteralLoose(["\n width: 44px;\n height: 44px;\n border-radius: 50%;\n background: #ffffff;\n border: 1.5px solid rgba(0, 0, 0, 0.08);\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 18px;\n"])));
19531
- var ReassuranceChip = styled.div(_templateObject0$a || (_templateObject0$a = _taggedTemplateLiteralLoose(["\n font-size: 11px;\n background: ", ";\n border-radius: 10px;\n padding: 6px 12px;\n max-width: 250px;\n line-height: 1.4;\n"])), function (props) {
19499
+ var Title$4 = styled.div(_templateObject4$n || (_templateObject4$n = _taggedTemplateLiteralLoose(["\n font-size: 22px;\n font-weight: 700;\n"])));
19500
+ var Subtitle$3 = styled.div(_templateObject5$l || (_templateObject5$l = _taggedTemplateLiteralLoose(["\n font-size: 14px;\n opacity: 0.65;\n line-height: 1.5;\n"])));
19501
+ var Steps = styled.div(_templateObject6$g || (_templateObject6$g = _taggedTemplateLiteralLoose(["\n display: flex;\n gap: 26px;\n margin: 16px 0 6px;\n"])));
19502
+ var Step = styled.div(_templateObject7$e || (_templateObject7$e = _taggedTemplateLiteralLoose(["\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 6px;\n font-size: 11px;\n opacity: 0.75;\n width: 90px;\n"])));
19503
+ var StepDot = styled.div(_templateObject8$b || (_templateObject8$b = _taggedTemplateLiteralLoose(["\n width: 44px;\n height: 44px;\n border-radius: 50%;\n background: #ffffff;\n border: 1.5px solid rgba(0, 0, 0, 0.08);\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 18px;\n"])));
19504
+ var ReassuranceChip = styled.div(_templateObject9$b || (_templateObject9$b = _taggedTemplateLiteralLoose(["\n font-size: 11px;\n background: ", ";\n border-radius: 10px;\n padding: 6px 12px;\n max-width: 250px;\n line-height: 1.4;\n"])), function (props) {
19532
19505
  return props.$tint;
19533
19506
  });
19534
19507
  /* Pill treatment from the CEO prototype (.btn.primary: radius 26, teal glow,
@@ -19536,10 +19509,8 @@ var ReassuranceChip = styled.div(_templateObject0$a || (_templateObject0$a = _ta
19536
19509
  * theme styling. The glow and the deliberately quiet focus ring derive from
19537
19510
  * the button's own background (--bs-btn-bg, set by the theme's bootstrap
19538
19511
  * block) with the intro accent as fallback for un-themed buttons. Double
19539
- * ampersand outranks the base LoaderButton rules; Ladda's loading
19540
- * padding-right still wins (three-selector specificity) so the spinner
19541
- * keeps its room. */
19542
- var StartButton = styled(LoaderButton)(_templateObject1$9 || (_templateObject1$9 = _taggedTemplateLiteralLoose(["\n && {\n margin-top: 10px;\n white-space: nowrap;\n min-width: 240px;\n border: none;\n border-radius: 26px;\n padding: 15px 28px;\n font-size: 16px;\n font-weight: 600;\n box-shadow: 0 6px 18px\n color-mix(\n in srgb,\n var(--bs-btn-bg, ", ") 35%,\n transparent\n );\n\n &:hover:not(.disabled) {\n transform: translateY(-1px);\n box-shadow: 0 9px 24px\n color-mix(\n in srgb,\n var(--bs-btn-bg, ", ") 42%,\n transparent\n );\n }\n\n &:active:not(.disabled) {\n transform: translateY(0) scale(0.97);\n box-shadow: 0 4px 12px\n color-mix(\n in srgb,\n var(--bs-btn-bg, ", ") 30%,\n transparent\n );\n }\n\n &:focus-visible {\n outline: none;\n box-shadow:\n 0 6px 18px\n color-mix(\n in srgb,\n var(--bs-btn-bg, ", ") 35%,\n transparent\n ),\n 0 0 0 3px\n color-mix(\n in srgb,\n var(--bs-btn-bg, ", ") 25%,\n #ffffff\n );\n }\n\n /* Requesting-camera state: a pale accent tint (visibly \"waiting\", not\n * the solid \"go\" green), deep-accent label, and an indeterminate gloss\n * sweep. LoaderButton's simulated 0\u219290% progress fill is hidden \u2014 a\n * permission prompt has no knowable progress. */\n &.disabled {\n opacity: 1;\n overflow: hidden;\n background: color-mix(\n in srgb,\n var(--bs-btn-bg, ", ") 12%,\n #ffffff\n );\n color: color-mix(\n in srgb,\n var(--bs-btn-bg, ", ") 85%,\n #000000\n );\n box-shadow: 0 4px 14px\n color-mix(\n in srgb,\n var(--bs-btn-bg, ", ") 18%,\n transparent\n );\n\n &::after {\n content: '';\n position: absolute;\n inset: 0;\n z-index: 1;\n background: linear-gradient(\n 100deg,\n transparent 30%,\n rgb(255 255 255 / 0.65) 50%,\n transparent 70%\n );\n animation: ", " 1.4s ease-in-out infinite;\n }\n\n .ladda-progress {\n display: none;\n }\n }\n\n @media (prefers-reduced-motion: reduce) {\n &:hover:not(.disabled),\n &:active:not(.disabled) {\n transform: none;\n }\n\n &.disabled::after {\n display: none;\n }\n }\n }\n"])), function (props) {
19512
+ * ampersand outranks the base LoaderButton rules. */
19513
+ var StartButton = styled(LoaderButton)(_templateObject0$a || (_templateObject0$a = _taggedTemplateLiteralLoose(["\n && {\n margin-top: 10px;\n white-space: nowrap;\n min-width: 240px;\n border: none;\n border-radius: 26px;\n padding: 15px 28px;\n font-size: 16px;\n font-weight: 600;\n box-shadow: 0 6px 18px\n color-mix(\n in srgb,\n var(--bs-btn-bg, ", ") 35%,\n transparent\n );\n\n &:hover:not(.disabled) {\n transform: translateY(-1px);\n box-shadow: 0 9px 24px\n color-mix(\n in srgb,\n var(--bs-btn-bg, ", ") 42%,\n transparent\n );\n }\n\n &:active:not(.disabled) {\n transform: translateY(0) scale(0.97);\n box-shadow: 0 4px 12px\n color-mix(\n in srgb,\n var(--bs-btn-bg, ", ") 30%,\n transparent\n );\n }\n\n &:focus-visible {\n outline: none;\n box-shadow:\n 0 6px 18px\n color-mix(\n in srgb,\n var(--bs-btn-bg, ", ") 35%,\n transparent\n ),\n 0 0 0 3px\n color-mix(\n in srgb,\n var(--bs-btn-bg, ", ") 25%,\n #ffffff\n );\n }\n\n /* Requesting-camera state: a pale accent tint (visibly \"waiting\", not\n * the solid \"go\" green) and a deep-accent label. LoaderButton's loading\n * bar takes the label colour. */\n &.disabled {\n opacity: 1;\n background: color-mix(\n in srgb,\n var(--bs-btn-bg, ", ") 12%,\n #ffffff\n );\n color: color-mix(\n in srgb,\n var(--bs-btn-bg, ", ") 85%,\n #000000\n );\n box-shadow: 0 4px 14px\n color-mix(\n in srgb,\n var(--bs-btn-bg, ", ") 18%,\n transparent\n );\n }\n\n @media (prefers-reduced-motion: reduce) {\n &:hover:not(.disabled),\n &:active:not(.disabled) {\n transform: none;\n }\n }\n }\n"])), function (props) {
19543
19514
  return props.$accent;
19544
19515
  }, function (props) {
19545
19516
  return props.$accent;
@@ -19555,8 +19526,8 @@ var StartButton = styled(LoaderButton)(_templateObject1$9 || (_templateObject1$9
19555
19526
  return props.$accent;
19556
19527
  }, function (props) {
19557
19528
  return props.$accent;
19558
- }, sweep);
19559
- var Privacy = styled.div(_templateObject10$9 || (_templateObject10$9 = _taggedTemplateLiteralLoose(["\n font-size: 11px;\n opacity: 0.55;\n margin-top: 6px;\n"])));
19529
+ });
19530
+ var Privacy = styled.div(_templateObject1$9 || (_templateObject1$9 = _taggedTemplateLiteralLoose(["\n font-size: 11px;\n opacity: 0.55;\n margin-top: 6px;\n"])));
19560
19531
 
19561
19532
  var selectRingOverlayStage = function selectRingOverlayStage(_ref) {
19562
19533
  var showIntroScreen = _ref.showIntroScreen,
@@ -19566,7 +19537,7 @@ var selectRingOverlayStage = function selectRingOverlayStage(_ref) {
19566
19537
  return requesting ? 'requesting' : 'intro';
19567
19538
  };
19568
19539
 
19569
- var _templateObject$F, _templateObject2$B, _templateObject3$r, _templateObject4$m, _templateObject5$k, _templateObject6$f, _templateObject7$d, _templateObject8$a, _templateObject9$a, _templateObject0$9, _templateObject1$8, _templateObject10$8, _templateObject11$6, _templateObject12$5, _templateObject13$5, _templateObject14$5, _templateObject15$4;
19540
+ var _templateObject$G, _templateObject2$B, _templateObject3$r, _templateObject4$m, _templateObject5$k, _templateObject6$f, _templateObject7$d, _templateObject8$a, _templateObject9$a, _templateObject0$9, _templateObject1$8, _templateObject10$8, _templateObject11$6, _templateObject12$5, _templateObject13$5, _templateObject14$5, _templateObject15$4;
19570
19541
  /** Minimum time a stage handoff stays on screen so its message is
19571
19542
  * legible even when everything preloaded and readiness is instant. */
19572
19543
  var STAGE_TRANSITION_HOLD_MS = 1600;
@@ -19625,7 +19596,7 @@ var RingStageTransition = function RingStageTransition(_ref) {
19625
19596
  })]
19626
19597
  });
19627
19598
  };
19628
- var badgePop = keyframes(_templateObject$F || (_templateObject$F = _taggedTemplateLiteralLoose(["\n 0% { transform: scale(0.4); opacity: 0; }\n 60% { transform: scale(1.08); opacity: 1; }\n 100% { transform: scale(1); opacity: 1; }\n"])));
19599
+ var badgePop = keyframes(_templateObject$G || (_templateObject$G = _taggedTemplateLiteralLoose(["\n 0% { transform: scale(0.4); opacity: 0; }\n 60% { transform: scale(1.08); opacity: 1; }\n 100% { transform: scale(1); opacity: 1; }\n"])));
19629
19600
  var cardFlip = keyframes(_templateObject2$B || (_templateObject2$B = _taggedTemplateLiteralLoose(["\n from { transform: rotateY(0deg); }\n to { transform: rotateY(180deg); }\n"])));
19630
19601
  var microcopyBeat = keyframes(_templateObject3$r || (_templateObject3$r = _taggedTemplateLiteralLoose(["\n 0% { opacity: 0; transform: translateY(6px); }\n 18% { opacity: 1; transform: translateY(0); }\n 60% { opacity: 1; transform: translateY(0); }\n 80% { opacity: 0; transform: translateY(-6px); }\n 100% { opacity: 0; }\n"])));
19631
19602
  var rise = keyframes(_templateObject4$m || (_templateObject4$m = _taggedTemplateLiteralLoose(["\n from { opacity: 0; transform: translateY(8px); }\n to { opacity: 1; transform: translateY(0); }\n"])));
@@ -19657,7 +19628,7 @@ var LoadingRow = styled.div(_templateObject15$4 || (_templateObject15$4 = _tagge
19657
19628
  return props.$visible ? 1 : 0;
19658
19629
  });
19659
19630
 
19660
- var _templateObject$E, _templateObject2$A, _templateObject3$q, _templateObject4$l, _templateObject5$j, _templateObject6$e, _templateObject7$c;
19631
+ var _templateObject$F, _templateObject2$A, _templateObject3$q, _templateObject4$l, _templateObject5$j, _templateObject6$e, _templateObject7$c;
19661
19632
  // Module-level so the default `now` prop has a stable identity across
19662
19633
  // renders (it sits in useModelWarmingElapsedMs's effect dependency array).
19663
19634
  var defaultNow$2 = function defaultNow() {
@@ -19931,7 +19902,7 @@ var IdCaptureLoadingOverlayRing = function IdCaptureLoadingOverlayRing(_ref) {
19931
19902
  })
19932
19903
  });
19933
19904
  };
19934
- var overlayFadeIn$1 = keyframes(_templateObject$E || (_templateObject$E = _taggedTemplateLiteralLoose(["\n from { opacity: 0; }\n to { opacity: 1; }\n"])));
19905
+ var overlayFadeIn$1 = keyframes(_templateObject$F || (_templateObject$F = _taggedTemplateLiteralLoose(["\n from { opacity: 0; }\n to { opacity: 1; }\n"])));
19935
19906
  var RingOverlayInner$1 = styled(LoadingOverlayInner)(_templateObject2$A || (_templateObject2$A = _taggedTemplateLiteralLoose(["\n background: ", ";\n color: ", ";\n ", "\n"])), function (props) {
19936
19907
  var _props$theme$idCaptur, _props$theme;
19937
19908
  var tintBase = (_props$theme$idCaptur = (_props$theme = props.theme) == null || (_props$theme = _props$theme.idCapture) == null || (_props$theme = _props$theme.loadingOverlay) == null ? void 0 : _props$theme.backgroundColor) != null ? _props$theme$idCaptur : 'var(--idm-color-primary-500)';
@@ -20036,11 +20007,11 @@ var CapturedDocumentImg = function CapturedDocumentImg(_ref) {
20036
20007
  });
20037
20008
  };
20038
20009
 
20039
- var _templateObject$D, _templateObject2$z;
20040
- var Card = styled.div(_templateObject$D || (_templateObject$D = _taggedTemplateLiteralLoose(["\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, 100% - 48px);\n max-height: 100%;\n overflow: auto;\n box-sizing: border-box;\n"])));
20010
+ var _templateObject$E, _templateObject2$z;
20011
+ var Card = styled.div(_templateObject$E || (_templateObject$E = _taggedTemplateLiteralLoose(["\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, 100% - 48px);\n max-height: 100%;\n overflow: auto;\n box-sizing: border-box;\n"])));
20041
20012
  var FlexCard = styled(Card)(_templateObject2$z || (_templateObject2$z = _taggedTemplateLiteralLoose(["\n display: flex;\n flex-direction: column;\n"])));
20042
20013
 
20043
- var _templateObject$C, _templateObject2$y, _templateObject3$p, _templateObject4$k, _templateObject5$i, _templateObject6$d, _templateObject7$b, _templateObject8$9, _templateObject9$9, _templateObject0$8, _templateObject1$7, _templateObject10$7, _templateObject11$5, _templateObject12$4, _templateObject13$4, _templateObject14$4, _templateObject15$3, _templateObject16$3, _templateObject17$2, _templateObject18$2, _templateObject19$2, _templateObject20$2, _templateObject21$2, _templateObject22$2, _templateObject23$2, _templateObject24$1, _templateObject25, _templateObject26, _templateObject27, _templateObject28, _templateObject29, _templateObject30, _templateObject31, _templateObject32, _templateObject33, _templateObject34, _templateObject35, _templateObject36, _templateObject37, _templateObject38, _templateObject39, _templateObject40, _templateObject41, _templateObject42, _templateObject43, _templateObject44;
20014
+ var _templateObject$D, _templateObject2$y, _templateObject3$p, _templateObject4$k, _templateObject5$i, _templateObject6$d, _templateObject7$b, _templateObject8$9, _templateObject9$9, _templateObject0$8, _templateObject1$7, _templateObject10$7, _templateObject11$5, _templateObject12$4, _templateObject13$4, _templateObject14$4, _templateObject15$3, _templateObject16$3, _templateObject17$2, _templateObject18$2, _templateObject19$2, _templateObject20$2, _templateObject21$2, _templateObject22$2, _templateObject23$2, _templateObject24$1, _templateObject25, _templateObject26, _templateObject27, _templateObject28, _templateObject29, _templateObject30, _templateObject31, _templateObject32, _templateObject33, _templateObject34, _templateObject35, _templateObject36, _templateObject37, _templateObject38, _templateObject39, _templateObject40, _templateObject41, _templateObject42, _templateObject43, _templateObject44;
20044
20015
  function ReviewDocumentDiagnostics(_ref) {
20045
20016
  var _document$detectionSc, _document$detectionSc2, _document$focusScore, _document$focusScore2;
20046
20017
  var document = _ref.document,
@@ -20499,7 +20470,7 @@ function RotationAttemptRow(_ref3) {
20499
20470
  })]
20500
20471
  });
20501
20472
  }
20502
- var DebugInfoContainer = styled.div(_templateObject$C || (_templateObject$C = _taggedTemplateLiteralLoose(["\n display: flex;\n flex-direction: column;\n gap: 0.375rem;\n margin-top: 0.5rem;\n margin-bottom: 1rem;\n padding: 0.625rem;\n background: #f8f9fa;\n border-radius: 6px;\n border: 1px solid #e9ecef;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 0.8125rem;\n line-height: 1.35;\n text-align: left;\n"])));
20473
+ var DebugInfoContainer = styled.div(_templateObject$D || (_templateObject$D = _taggedTemplateLiteralLoose(["\n display: flex;\n flex-direction: column;\n gap: 0.375rem;\n margin-top: 0.5rem;\n margin-bottom: 1rem;\n padding: 0.625rem;\n background: #f8f9fa;\n border-radius: 6px;\n border: 1px solid #e9ecef;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 0.8125rem;\n line-height: 1.35;\n text-align: left;\n"])));
20503
20474
  var DebugSection = styled.div(_templateObject2$y || (_templateObject2$y = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n gap: 0.5rem;\n margin: 0;\n"])));
20504
20475
  var DebugLabel = styled.span(_templateObject3$p || (_templateObject3$p = _taggedTemplateLiteralLoose(["\n width: 110px;\n flex-shrink: 0;\n color: #495057;\n font-size: 0.8125rem;\n font-weight: 600;\n"])));
20505
20476
  var DebugValue = styled.span(_templateObject4$k || (_templateObject4$k = _taggedTemplateLiteralLoose(["\n color: #212529;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 0.8125rem;\n"])));
@@ -20615,7 +20586,7 @@ var DiagnosticsBadge = styled.span(_templateObject44 || (_templateObject44 = _ta
20615
20586
  return $highlight ? '#004085' : $ok ? '#155724' : '#721c24';
20616
20587
  });
20617
20588
 
20618
- var _templateObject$B, _templateObject2$x, _templateObject3$o, _templateObject4$j, _templateObject5$h;
20589
+ var _templateObject$C, _templateObject2$x, _templateObject3$o, _templateObject4$j, _templateObject5$h;
20619
20590
  var imageDisplayOrder = ['idCardFront', 'idCardBack', 'idBarcodeImage', 'passport', 'singlePage', 'idFrontIrImage', 'idBackIrImage', 'idFrontUvImage', 'idBackUvImage'];
20620
20591
  var ReviewScreen = function ReviewScreen(_ref) {
20621
20592
  var capturedDocuments = _ref.capturedDocuments,
@@ -20706,13 +20677,13 @@ var ReviewScreen = function ReviewScreen(_ref) {
20706
20677
  })
20707
20678
  });
20708
20679
  };
20709
- var Heading$9 = styled.h1(_templateObject$B || (_templateObject$B = _taggedTemplateLiteralLoose(["\n font-size: 1.5rem;\n margin-top: 0;\n margin-bottom: 1.5rem;\n"])));
20680
+ var Heading$9 = styled.h1(_templateObject$C || (_templateObject$C = _taggedTemplateLiteralLoose(["\n font-size: 1.5rem;\n margin-top: 0;\n margin-bottom: 1.5rem;\n"])));
20710
20681
  var ImagesContainer = styled(OverlayImageContainer)(_templateObject2$x || (_templateObject2$x = _taggedTemplateLiteralLoose(["\n flex-grow: 1;\n overflow-y: auto;\n padding-bottom: 0;\n max-width: 100%;\n"])));
20711
20682
  var ImageRow = styled(OverlayImageRow)(_templateObject3$o || (_templateObject3$o = _taggedTemplateLiteralLoose(["\n max-width: 100%;\n flex-direction: column;\n position: relative;\n width: 100%;\n"])));
20712
20683
  var ImageCol$1 = styled.div(_templateObject4$j || (_templateObject4$j = _taggedTemplateLiteralLoose(["\n width: 450px;\n max-width: 100%;\n max-height: none !important;\n"])));
20713
20684
  var StyledImage = styled(CapturedDocumentImg)(_templateObject5$h || (_templateObject5$h = _taggedTemplateLiteralLoose(["\n width: 100%;\n border-radius: 12px;\n"])));
20714
20685
 
20715
- var _templateObject$A, _templateObject2$w, _templateObject3$n, _templateObject4$i;
20686
+ var _templateObject$B, _templateObject2$w, _templateObject3$n, _templateObject4$i;
20716
20687
  var CameraAccessDeniedOverlay = function CameraAccessDeniedOverlay(_ref) {
20717
20688
  var _assets$imageUrl, _classNames$container;
20718
20689
  var onRetry = _ref.onRetry,
@@ -20771,12 +20742,12 @@ var CameraAccessDeniedOverlay = function CameraAccessDeniedOverlay(_ref) {
20771
20742
  })
20772
20743
  });
20773
20744
  };
20774
- var StyledOverlayInner$2 = styled(OverlayInner$2)(_templateObject$A || (_templateObject$A = _taggedTemplateLiteralLoose(["\n max-width: 500px;\n height: auto;\n margin: auto;\n"])));
20745
+ var StyledOverlayInner$2 = styled(OverlayInner$2)(_templateObject$B || (_templateObject$B = _taggedTemplateLiteralLoose(["\n max-width: 500px;\n height: auto;\n margin: auto;\n"])));
20775
20746
  var StyledOverlayImageContainer = styled(OverlayImageContainer)(_templateObject2$w || (_templateObject2$w = _taggedTemplateLiteralLoose(["\n flex-grow: 0;\n"])));
20776
20747
  var Description$3 = styled.p(_templateObject3$n || (_templateObject3$n = _taggedTemplateLiteralLoose(["\n line-height: 1.5;\n margin-bottom: 50px;\n"])));
20777
20748
  var RetryButton$1 = styled(LoaderButton)(_templateObject4$i || (_templateObject4$i = _taggedTemplateLiteralLoose(["\n width: 200px;\n margin: 0 auto;\n"])));
20778
20749
 
20779
- var _templateObject$z, _templateObject2$v, _templateObject3$m;
20750
+ var _templateObject$A, _templateObject2$v, _templateObject3$m;
20780
20751
  var ErrorScreen = function ErrorScreen(_ref) {
20781
20752
  var error = _ref.error,
20782
20753
  onRetry = _ref.onRetry,
@@ -20967,7 +20938,7 @@ var cameraFailureClassNames = function cameraFailureClassNames(own, bag) {
20967
20938
  // component pins its own foreground for the same reason (e.g.
20968
20939
  // IdCaptureLoadingOverlayDefault's `theme...textColor ?? 'black'`); do the
20969
20940
  // same here rather than inherit a foreground meant for the dark overlays.
20970
- var ErrorCard = styled(FlexCard)(_templateObject$z || (_templateObject$z = _taggedTemplateLiteralLoose(["\n color: black;\n"])));
20941
+ var ErrorCard = styled(FlexCard)(_templateObject$A || (_templateObject$A = _taggedTemplateLiteralLoose(["\n color: black;\n"])));
20971
20942
  var Heading$8 = styled.h1(_templateObject2$v || (_templateObject2$v = _taggedTemplateLiteralLoose(["\n font-size: 1.5rem;\n margin-top: 0;\n margin-bottom: 1rem;\n"])));
20972
20943
  var Description$2 = styled.p(_templateObject3$m || (_templateObject3$m = _taggedTemplateLiteralLoose(["\n line-height: 1.5;\n margin-bottom: 1.5rem;\n"])));
20973
20944
 
@@ -21010,7 +20981,7 @@ function fallbackCaptureMoreLabelForStep(idCaptureRequirement, idCardBackCapture
21010
20981
  return key === 'third' ? 'ID page of passport' : 'back of ID card';
21011
20982
  }
21012
20983
 
21013
- var _templateObject$y, _templateObject2$u, _templateObject3$l, _templateObject4$h, _templateObject5$g, _templateObject6$c, _templateObject7$a;
20984
+ var _templateObject$z, _templateObject2$u, _templateObject3$l, _templateObject4$h, _templateObject5$g, _templateObject6$c, _templateObject7$a;
21014
20985
  function IdCaptureFallback(_ref) {
21015
20986
  var _ref$captureRequireme = _ref.captureRequirement,
21016
20987
  captureRequirement = _ref$captureRequireme === void 0 ? 'idCardOrPassport' : _ref$captureRequireme,
@@ -21179,7 +21150,7 @@ function IdCaptureFallback(_ref) {
21179
21150
  })
21180
21151
  });
21181
21152
  }
21182
- var StyledOverlayInner$1 = styled(OverlayInner$2)(_templateObject$y || (_templateObject$y = _taggedTemplateLiteralLoose(["\n justify-content: center;\n"])));
21153
+ var StyledOverlayInner$1 = styled(OverlayInner$2)(_templateObject$z || (_templateObject$z = _taggedTemplateLiteralLoose(["\n justify-content: center;\n"])));
21183
21154
  var Heading$7 = styled.h3(_templateObject2$u || (_templateObject2$u = _taggedTemplateLiteralLoose(["\n margin-bottom: 8px;\n"])));
21184
21155
  var Description$1 = styled.p(_templateObject3$l || (_templateObject3$l = _taggedTemplateLiteralLoose(["\n margin-bottom: 8px;\n"])));
21185
21156
  var Instruction = styled.p(_templateObject4$h || (_templateObject4$h = _taggedTemplateLiteralLoose(["\n font-weight: bold;\n"])));
@@ -21187,7 +21158,7 @@ var ReadFailed$1 = styled.p(_templateObject5$g || (_templateObject5$g = _taggedT
21187
21158
  var ImageCol = styled.div(_templateObject6$c || (_templateObject6$c = _taggedTemplateLiteralLoose(["\n display: flex;\n justify-content: center;\n flex-grow: 1;\n flex-basis: 0;\n"])));
21188
21159
  var StyledButtonsRow$6 = styled(ButtonsRow$2)(_templateObject7$a || (_templateObject7$a = _taggedTemplateLiteralLoose(["\n margin-top: 32px;\n"])));
21189
21160
 
21190
- var _templateObject$x, _templateObject2$t, _templateObject3$k, _templateObject4$g, _templateObject5$f, _templateObject6$b, _templateObject7$9, _templateObject8$8, _templateObject9$8, _templateObject0$7, _templateObject1$6, _templateObject10$6;
21161
+ var _templateObject$y, _templateObject2$t, _templateObject3$k, _templateObject4$g, _templateObject5$f, _templateObject6$b, _templateObject7$9, _templateObject8$8, _templateObject9$8, _templateObject0$7, _templateObject1$6, _templateObject10$6;
21191
21162
  function IdCaptureOrUploadScreen(_ref) {
21192
21163
  var _ref$captureRequireme = _ref.captureRequirement,
21193
21164
  captureRequirement = _ref$captureRequireme === void 0 ? 'idCardOrPassport' : _ref$captureRequireme,
@@ -21434,7 +21405,7 @@ function IdCaptureOrUploadScreen(_ref) {
21434
21405
  })]
21435
21406
  });
21436
21407
  }
21437
- var ScreenContainer = styled.div(_templateObject$x || (_templateObject$x = _taggedTemplateLiteralLoose(["\n position: absolute;\n inset: 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 16px;\n padding: 24px;\n background: ", ";\n"])), function (props) {
21408
+ var ScreenContainer = styled.div(_templateObject$y || (_templateObject$y = _taggedTemplateLiteralLoose(["\n position: absolute;\n inset: 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 16px;\n padding: 24px;\n background: ", ";\n"])), function (props) {
21438
21409
  var _props$theme$backgrou, _props$theme;
21439
21410
  return (_props$theme$backgrou = (_props$theme = props.theme) == null ? void 0 : _props$theme.background) != null ? _props$theme$backgrou : '#fff';
21440
21411
  });
@@ -21555,7 +21526,7 @@ function useSessionReady() {
21555
21526
  return context ? context.sessionReady : true;
21556
21527
  }
21557
21528
 
21558
- var _templateObject$w;
21529
+ var _templateObject$x;
21559
21530
  function _createForOfIteratorHelperLoose$j(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray$j(r)) || e) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: true } : { done: false, value: r[o++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
21560
21531
  function _unsupportedIterableToArray$j(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$j(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$j(r, a) : void 0; } }
21561
21532
  function _arrayLikeToArray$j(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
@@ -21571,7 +21542,7 @@ function _arrayLikeToArray$j(r, a) { (null == a || a > r.length) && (a = r.lengt
21571
21542
  // containing block against whatever ancestor the host provides, exactly as
21572
21543
  // before this wrapper existed) while font-family -- an inherited CSS
21573
21544
  // property -- still cascades to every descendant.
21574
- var FontCarrier = styled.div(_templateObject$w || (_templateObject$w = _taggedTemplateLiteralLoose(["\n display: contents;\n ", "\n"])), function (props) {
21545
+ var FontCarrier = styled.div(_templateObject$x || (_templateObject$x = _taggedTemplateLiteralLoose(["\n display: contents;\n ", "\n"])), function (props) {
21575
21546
  var _props$theme;
21576
21547
  return (_props$theme = props.theme) != null && _props$theme.fontFamily ? "font-family: " + props.theme.fontFamily + ";" : '';
21577
21548
  });
@@ -24166,6 +24137,7 @@ function createSelfieCaptureController(config) {
24166
24137
  liveness: config.liveness ? createInitialLivenessMachineState() : null,
24167
24138
  challenge: null,
24168
24139
  livenessTimedOut: false,
24140
+ retryPending: false,
24169
24141
  handOverFace: {
24170
24142
  status: 'off',
24171
24143
  lastCheck: null
@@ -25547,6 +25519,19 @@ function createSelfieCaptureController(config) {
25547
25519
  livenessTimedOut: false
25548
25520
  });
25549
25521
  }
25522
+ // retry()'s reset of the terminal attempt, run straight away or once a
25523
+ // released camera is back. Moving off the terminal phase and verdict is
25524
+ // what takes the view's terminal screen down.
25525
+ function spendRetry() {
25526
+ if (config.liveness) resetLivenessAttempt();
25527
+ progress.retry('capture-error');
25528
+ internal.setState({
25529
+ retryPending: false
25530
+ });
25531
+ dispatch({
25532
+ type: 'retryRequested'
25533
+ });
25534
+ }
25550
25535
  // retry()'s capture re-entry, run straight away or once a released camera
25551
25536
  // is back.
25552
25537
  function resumeCapture() {
@@ -25703,6 +25688,7 @@ function createSelfieCaptureController(config) {
25703
25688
  liveness: config.liveness ? createInitialLivenessMachineState() : null,
25704
25689
  challenge: null,
25705
25690
  livenessTimedOut: false,
25691
+ retryPending: false,
25706
25692
  handOverFace: {
25707
25693
  status: 'off',
25708
25694
  lastCheck: null
@@ -25880,27 +25866,42 @@ function createSelfieCaptureController(config) {
25880
25866
  },
25881
25867
  retry: function retry() {
25882
25868
  if (!active) return;
25883
- if (config.liveness) resetLivenessAttempt();
25884
- progress.retry('capture-error');
25885
- dispatch({
25886
- type: 'retryRequested'
25887
- });
25888
25869
  if (!cameraReleased) {
25870
+ spendRetry();
25889
25871
  resumeCapture();
25890
25872
  return;
25891
25873
  }
25892
- // The terminal screen handed the camera back: get it again first, so
25893
- // the initial-delay gate and the kick-out count from a live feed. A
25894
- // second retry() while this is in flight joins it. A failure has
25895
- // already landed in `error` (requestCamera's own write), which puts
25896
- // up the camera error screen and its recovery path.
25874
+ // The terminal screen handed the camera back: get it again BEFORE
25875
+ // leaving that screen, so the user never lands on a feed with no
25876
+ // stream, and the initial-delay gate and kick-out count from a live
25877
+ // feed. A second retry() while this is in flight joins it.
25897
25878
  if (cameraReacquisition) return;
25879
+ internal.setState({
25880
+ retryPending: true
25881
+ });
25898
25882
  var generation = attachGeneration;
25883
+ // exitCapture() clears `retryPending` if it sent the user back to the
25884
+ // instructions while the camera was coming back.
25885
+ var stillPending = function stillPending() {
25886
+ return active && generation === attachGeneration && internal.getState().retryPending;
25887
+ };
25899
25888
  var reacquisition = requestCamera().then(function () {
25900
- // exitCapture() may have sent the user back to the instructions
25901
- // while the camera was coming back.
25902
- if (active && generation === attachGeneration && internal.getState().phase === 'capturing') resumeCapture();
25903
- })["catch"](function () {})["finally"](function () {
25889
+ if (!stillPending()) return;
25890
+ spendRetry();
25891
+ resumeCapture();
25892
+ }, function () {
25893
+ // Spend the attempt anyway so the terminal screen gives way to
25894
+ // the camera error screen, whose recovery re-enters through
25895
+ // 'loading'. 'retryRequested' clears `error`, so the one
25896
+ // requestCamera wrote goes back on after it.
25897
+ if (!stillPending()) return;
25898
+ var _internal$getState = internal.getState(),
25899
+ error = _internal$getState.error;
25900
+ spendRetry();
25901
+ internal.setState({
25902
+ error: error
25903
+ });
25904
+ })["finally"](function () {
25904
25905
  // detach() may have dropped this one and a newer one started.
25905
25906
  if (cameraReacquisition === reacquisition) cameraReacquisition = null;
25906
25907
  });
@@ -25909,8 +25910,8 @@ function createSelfieCaptureController(config) {
25909
25910
  exitCapture: function exitCapture() {
25910
25911
  var _frameLoop9;
25911
25912
  if (!active) return;
25912
- var _internal$getState = internal.getState(),
25913
- phase = _internal$getState.phase;
25913
+ var _internal$getState2 = internal.getState(),
25914
+ phase = _internal$getState2.phase;
25914
25915
  if (phase === 'initializing' || phase === 'loading') return;
25915
25916
  // Every armed timer belongs to the abandoned attempt.
25916
25917
  clearAllTimers();
@@ -25925,7 +25926,8 @@ function createSelfieCaptureController(config) {
25925
25926
  internal.setState({
25926
25927
  capturedAttempt: null,
25927
25928
  capturedImageUrl: null,
25928
- captureRecovery: null
25929
+ captureRecovery: null,
25930
+ retryPending: false
25929
25931
  });
25930
25932
  dispatch({
25931
25933
  type: 'exitRequested'
@@ -25971,8 +25973,8 @@ function useSelfieCapture(controller) {
25971
25973
  return useSyncExternalStore(subscribe, controller.getState, controller.getState);
25972
25974
  }
25973
25975
 
25974
- var _templateObject$v;
25975
- var SelfieCameraFeedWrapper = styled.div(_templateObject$v || (_templateObject$v = _taggedTemplateLiteralLoose(["\n display: flex;\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n overflow: hidden;\n /* Keep CameraVideoTag's legacy negative z-index above opaque flow shells. */\n isolation: isolate;\n"])));
25976
+ var _templateObject$w;
25977
+ var SelfieCameraFeedWrapper = styled.div(_templateObject$w || (_templateObject$w = _taggedTemplateLiteralLoose(["\n display: flex;\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n overflow: hidden;\n /* Keep CameraVideoTag's legacy negative z-index above opaque flow shells. */\n isolation: isolate;\n"])));
25976
25978
  function SelfieCameraFeed(_ref) {
25977
25979
  var videoRef = _ref.videoRef,
25978
25980
  isRearFacing = _ref.isRearFacing,
@@ -25986,7 +25988,7 @@ function SelfieCameraFeed(_ref) {
25986
25988
  });
25987
25989
  }
25988
25990
 
25989
- var _templateObject$u, _templateObject2$s, _templateObject3$j, _templateObject4$f;
25991
+ var _templateObject$v, _templateObject2$s, _templateObject3$j, _templateObject4$f;
25990
25992
  var _excluded$c = ["borderColor", "borderOpacity", "borderWidth", "status"],
25991
25993
  _excluded2$4 = ["status", "guideStyle"],
25992
25994
  _excluded3 = ["frame", "borderWidth", "borderColor", "borderOpacity", "verticalAlign", "status", "guideStyle"],
@@ -26063,7 +26065,7 @@ HeadGuideSvg.displayName = 'HeadGuideSvg';
26063
26065
  // refresh rate for the whole capture, which low-end GPUs can't keep up with
26064
26066
  // while also running the camera and face model. Waves only render while the
26065
26067
  // status is 'ready', so the pulse replays each time the face leaves the guide.
26066
- var headGuideWavesAnimation = keyframes(_templateObject$u || (_templateObject$u = _taggedTemplateLiteralLoose(["\n 0% {\n opacity: 0;\n transform: scale(1);\n }\n 60% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n transform: scale(1.3);\n }\n"])));
26068
+ var headGuideWavesAnimation = keyframes(_templateObject$v || (_templateObject$v = _taggedTemplateLiteralLoose(["\n 0% {\n opacity: 0;\n transform: scale(1);\n }\n 60% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n transform: scale(1.3);\n }\n"])));
26067
26069
  var PulsingHeadGuideContainer = styled.div(_templateObject2$s || (_templateObject2$s = _taggedTemplateLiteralLoose(["\n display: flex;\n position: relative;\n height: 100%;\n max-height: 100%;\n\n & > .idmSdkWaves {\n position: absolute;\n opacity: 0;\n animation: ", " 2s ease-out 3;\n\n @media (prefers-reduced-motion: reduce) {\n display: none;\n }\n }\n\n /* Paints far past its box; the nearest clipping ancestor bounds it\n (FaceCaptureGuideOverlay clips to the capture surface). */\n & > .idmSdkSpotlight {\n position: absolute;\n overflow: visible;\n pointer-events: none;\n }\n\n & > .idmSdkWavesOrigin {\n position: relative;\n }\n"])), headGuideWavesAnimation);
26068
26070
  function HeadGuide(_ref2) {
26069
26071
  var _theme$selfieCapture$, _theme$selfieCapture, _theme$selfieCapture$2, _theme$selfieCapture2, _theme$selfieCapture$3, _theme$selfieCapture3, _props$className;
@@ -26375,8 +26377,8 @@ function SelfieCaptureAnimatedMaskWithStatus(_ref5) {
26375
26377
  }));
26376
26378
  }
26377
26379
 
26378
- var _templateObject$t, _templateObject2$r;
26379
- var FaceCaptureGuideContainer = styled.div(_templateObject$t || (_templateObject$t = _taggedTemplateLiteralLoose(["\n position: absolute;\n z-index: 1000;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 40px;\n box-sizing: border-box;\n /* Keeps the spotlight dim inside the capture surface when the view is\n embedded rather than full-screen. */\n ", "\n"])), function (props) {
26380
+ var _templateObject$u, _templateObject2$r;
26381
+ var FaceCaptureGuideContainer = styled.div(_templateObject$u || (_templateObject$u = _taggedTemplateLiteralLoose(["\n position: absolute;\n z-index: 1000;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 40px;\n box-sizing: border-box;\n /* Keeps the spotlight dim inside the capture surface when the view is\n embedded rather than full-screen. */\n ", "\n"])), function (props) {
26380
26382
  return props.$clip ? 'overflow: hidden;' : '';
26381
26383
  });
26382
26384
  var FaceCaptureGuideInner = styled.div(_templateObject2$r || (_templateObject2$r = _taggedTemplateLiteralLoose(["\n position: relative;\n height: 60%;\n"])));
@@ -26689,7 +26691,7 @@ function SelfieCaptureLoadingGraphic(_ref) {
26689
26691
  });
26690
26692
  }
26691
26693
 
26692
- var _templateObject$s, _templateObject2$q, _templateObject3$i, _templateObject4$e, _templateObject5$e;
26694
+ var _templateObject$t, _templateObject2$q, _templateObject3$i, _templateObject4$e, _templateObject5$e;
26693
26695
  var legacyInstructionImageUrl = DEFAULT_CDN_URL$1 + "/Selfie-Image-1.png";
26694
26696
  // Module-level so the default `now` prop has a stable identity across
26695
26697
  // renders (it sits in useModelWarmingElapsedMs's effect dependency array).
@@ -26860,7 +26862,7 @@ var SelfieCaptureLoadingOverlayDefault = function SelfieCaptureLoadingOverlayDef
26860
26862
  })
26861
26863
  });
26862
26864
  };
26863
- var OverlayInner = styled(LoadingOverlayInner)(_templateObject$s || (_templateObject$s = _taggedTemplateLiteralLoose(["\n background: ", ";\n color: ", ";\n"])), function (props) {
26865
+ var OverlayInner = styled(LoadingOverlayInner)(_templateObject$t || (_templateObject$t = _taggedTemplateLiteralLoose(["\n background: ", ";\n color: ", ";\n"])), function (props) {
26864
26866
  var _props$theme$selfieCa, _props$theme;
26865
26867
  return (_props$theme$selfieCa = (_props$theme = props.theme) == null || (_props$theme = _props$theme.selfieCapture) == null || (_props$theme = _props$theme.loadingOverlay) == null ? void 0 : _props$theme.backgroundColor) != null ? _props$theme$selfieCa : SELFIE_LOADING_OVERLAY_BACKGROUND_DEFAULT;
26866
26868
  }, function (props) {
@@ -26926,7 +26928,7 @@ function selfieLoadingOverlayBottomEdgeColor(theme, modelsReady) {
26926
26928
  });
26927
26929
  }
26928
26930
 
26929
- var _templateObject$r, _templateObject2$p;
26931
+ var _templateObject$s, _templateObject2$p;
26930
26932
  var SelfieCaptureLoadingOverlayLegacy = function SelfieCaptureLoadingOverlayLegacy(_ref) {
26931
26933
  var _assets$instructionIm;
26932
26934
  var state = _ref.state,
@@ -27002,10 +27004,10 @@ var SelfieCaptureLoadingOverlayLegacy = function SelfieCaptureLoadingOverlayLega
27002
27004
  })
27003
27005
  });
27004
27006
  };
27005
- var StyledGuidanceMessage = styled(GuidanceMessage)(_templateObject$r || (_templateObject$r = _taggedTemplateLiteralLoose(["\n padding: 12px 24px;\n font-weight: normal;\n line-height: 1.5;\n margin-bottom: -30px;\n"])));
27007
+ var StyledGuidanceMessage = styled(GuidanceMessage)(_templateObject$s || (_templateObject$s = _taggedTemplateLiteralLoose(["\n padding: 12px 24px;\n font-weight: normal;\n line-height: 1.5;\n margin-bottom: -30px;\n"])));
27006
27008
  var StyledButtonsRow$5 = styled(ButtonsRow$2)(_templateObject2$p || (_templateObject2$p = _taggedTemplateLiteralLoose(["\n flex-direction: column;\n padding-top: 25px;\n"])));
27007
27009
 
27008
- var _templateObject$q, _templateObject2$o, _templateObject3$h, _templateObject4$d, _templateObject5$d, _templateObject6$a, _templateObject7$8;
27010
+ var _templateObject$r, _templateObject2$o, _templateObject3$h, _templateObject4$d, _templateObject5$d, _templateObject6$a, _templateObject7$8;
27009
27011
  // Module-level so the default `now` prop has a stable identity across
27010
27012
  // renders (it sits in useModelWarmingElapsedMs's effect dependency array).
27011
27013
  var defaultNow = function defaultNow() {
@@ -27263,7 +27265,7 @@ var SelfieCaptureLoadingOverlayRing = function SelfieCaptureLoadingOverlayRing(_
27263
27265
  })
27264
27266
  });
27265
27267
  };
27266
- var overlayFadeIn = keyframes(_templateObject$q || (_templateObject$q = _taggedTemplateLiteralLoose(["\n from { opacity: 0; }\n to { opacity: 1; }\n"])));
27268
+ var overlayFadeIn = keyframes(_templateObject$r || (_templateObject$r = _taggedTemplateLiteralLoose(["\n from { opacity: 0; }\n to { opacity: 1; }\n"])));
27267
27269
  var RingOverlayInner = styled(LoadingOverlayInner)(_templateObject2$o || (_templateObject2$o = _taggedTemplateLiteralLoose(["\n background: ", ";\n color: ", ";\n ", "\n"])), function (props) {
27268
27270
  var _props$theme$selfieCa, _props$theme;
27269
27271
  var tintBase = (_props$theme$selfieCa = (_props$theme = props.theme) == null || (_props$theme = _props$theme.selfieCapture) == null || (_props$theme = _props$theme.loadingOverlay) == null ? void 0 : _props$theme.backgroundColor) != null ? _props$theme$selfieCa : 'var(--idm-color-primary-500)';
@@ -27306,7 +27308,7 @@ var SelfieCaptureLoadingOverlay = function SelfieCaptureLoadingOverlay(_ref) {
27306
27308
  return jsx(Component, _extends({}, props));
27307
27309
  };
27308
27310
 
27309
- var _templateObject$p, _templateObject2$n, _templateObject3$g, _templateObject4$c, _templateObject5$c, _templateObject6$9;
27311
+ var _templateObject$q, _templateObject2$n, _templateObject3$g, _templateObject4$c, _templateObject5$c, _templateObject6$9;
27310
27312
  function SelfieCaptureFallback(_ref) {
27311
27313
  var _ref$silentFallback = _ref.silentFallback,
27312
27314
  silentFallback = _ref$silentFallback === void 0 ? false : _ref$silentFallback,
@@ -27460,14 +27462,14 @@ function SelfieCaptureFallback(_ref) {
27460
27462
  })
27461
27463
  });
27462
27464
  }
27463
- var StyledOverlayInner = styled(OverlayInner$2)(_templateObject$p || (_templateObject$p = _taggedTemplateLiteralLoose(["\n justify-content: center;\n padding: 24px;\n box-sizing: border-box;\n"])));
27465
+ var StyledOverlayInner = styled(OverlayInner$2)(_templateObject$q || (_templateObject$q = _taggedTemplateLiteralLoose(["\n justify-content: center;\n padding: 24px;\n box-sizing: border-box;\n"])));
27464
27466
  var Heading$6 = styled.h1(_templateObject2$n || (_templateObject2$n = _taggedTemplateLiteralLoose(["\n font-size: 1.5rem;\n margin: 0 0 1rem;\n"])));
27465
27467
  var Description = styled.p(_templateObject3$g || (_templateObject3$g = _taggedTemplateLiteralLoose(["\n line-height: 1.5;\n margin: 0 0 1.5rem;\n"])));
27466
27468
  var ImageContainer$4 = styled.div(_templateObject4$c || (_templateObject4$c = _taggedTemplateLiteralLoose(["\n display: flex;\n justify-content: center;\n margin-bottom: 1.5rem;\n\n & > img {\n max-width: 100%;\n max-height: 40vh;\n border-radius: 8px;\n }\n"])));
27467
27469
  var ReadFailed = styled.p(_templateObject5$c || (_templateObject5$c = _taggedTemplateLiteralLoose(["\n margin: 0 0 1rem;\n"])));
27468
27470
  var StyledButtonsRow$4 = styled(ButtonsRow$2)(_templateObject6$9 || (_templateObject6$9 = _taggedTemplateLiteralLoose(["\n display: flex;\n gap: 12px;\n justify-content: center;\n"])));
27469
27471
 
27470
- var _templateObject$o, _templateObject2$m;
27472
+ var _templateObject$p, _templateObject2$m;
27471
27473
  function SelfieCaptureSurface(_ref) {
27472
27474
  var _state$error, _state$error2, _state$captureRecover, _state$error5, _state$captureRecover2, _state$prediction, _state$prediction$sam, _state$prediction2, _state$prediction3, _state$prediction4, _state$prediction5, _state$prediction6, _state$prediction7, _state$prediction8, _state$prediction9, _state$prediction0, _state$prediction1, _state$prediction$bri, _state$prediction10, _state$prediction$ran, _state$prediction11, _state$prediction$var, _state$prediction12, _assets$loadingOverla, _classNames$loadingOv, _colors$loadingOverla, _verbiage$loadingOver;
27473
27475
  var controller = _ref.controller,
@@ -27869,7 +27871,7 @@ function EyesOpenDebugLines(_ref2) {
27869
27871
  children: [verdict, " Eyes Open", state.thresholds.requireEyesOpen ? " (" + openReadings + "/" + eyeReadings.length + " frames open in the last " + EYES_OPEN_WINDOW_MS + " ms)" : ' (gate off)', eye('Mesh-left eye', ear.left, earBaseline.left, earCalibrationMs.left), eye('Mesh-right eye', ear.right, earBaseline.right, earCalibrationMs.right)]
27870
27872
  });
27871
27873
  }
27872
- var ManualCaptureButtonContainer = styled.div(_templateObject$o || (_templateObject$o = _taggedTemplateLiteralLoose(["\n position: absolute;\n z-index: 4;\n left: 50%;\n bottom: 24px;\n transform: translateX(-50%);\n"])));
27874
+ var ManualCaptureButtonContainer = styled.div(_templateObject$p || (_templateObject$p = _taggedTemplateLiteralLoose(["\n position: absolute;\n z-index: 4;\n left: 50%;\n bottom: 24px;\n transform: translateX(-50%);\n"])));
27873
27875
  // A footer below the camera keeps the lighting guidance visible above it.
27874
27876
  var CaptureRecoveryActions = styled.div(_templateObject2$m || (_templateObject2$m = _taggedTemplateLiteralLoose(["\n position: absolute;\n z-index: 10001;\n inset: auto 0 0;\n padding: 16px 24px max(16px, env(safe-area-inset-bottom));\n background: white;\n color: #333;\n text-align: center;\n display: grid;\n justify-items: center;\n gap: 12px;\n\n p { margin: 0; font-size: 14px; line-height: 1.4; }\n button { width: 100%; max-width: 320px; }\n"])));
27875
27877
 
@@ -28004,7 +28006,7 @@ function livenessStatusCode(state) {
28004
28006
  return null;
28005
28007
  }
28006
28008
 
28007
- var _GUIDANCE_VERBIAGE_FI, _templateObject$n;
28009
+ var _GUIDANCE_VERBIAGE_FI, _templateObject$o;
28008
28010
  // `state.guidance.code` -> the SelfieGuidanceVerbiage field that overrides
28009
28011
  // it. Keyed off the same `SelfieGuidanceCode` values selfieGuidanceMessageKey
28010
28012
  // switches on (guidance/selfieStrings.ts) — NONE has no field (the pill is
@@ -28022,7 +28024,7 @@ var GUIDANCE_VERBIAGE_FIELD = (_GUIDANCE_VERBIAGE_FI = {}, _GUIDANCE_VERBIAGE_FI
28022
28024
  // still-mounted-through-error rationale as IdCaptureView's ScalingCameraFeed
28023
28025
  // (a successful retry()/requestCamera() re-attaches into the SAME element).
28024
28026
  var CAPTURE_SURFACE_PHASES$1 = new Set(['capturing', 'challenge', 'processing', 'checking', 'completed', 'failed']);
28025
- var Container$2 = styled.div(_templateObject$n || (_templateObject$n = _taggedTemplateLiteralLoose(["\n position: relative;\n width: 100%;\n height: 100%;\n /* sdk2 applied theme.fontFamily at the flow-level SdkPage wrapper\n (SdkPage.tsx:59: a font-family declaration reading props.theme.fontFamily,\n conditional on it being set) -- SdkPage itself is flow-level and was\n never ported to this package, so this view's own root carries it\n instead. */\n ", "\n"])), function (props) {
28027
+ var Container$2 = styled.div(_templateObject$o || (_templateObject$o = _taggedTemplateLiteralLoose(["\n position: relative;\n width: 100%;\n height: 100%;\n /* sdk2 applied theme.fontFamily at the flow-level SdkPage wrapper\n (SdkPage.tsx:59: a font-family declaration reading props.theme.fontFamily,\n conditional on it being set) -- SdkPage itself is flow-level and was\n never ported to this package, so this view's own root carries it\n instead. */\n ", "\n"])), function (props) {
28026
28028
  var _props$theme;
28027
28029
  return (_props$theme = props.theme) != null && _props$theme.fontFamily ? "font-family: " + props.theme.fontFamily + ";" : '';
28028
28030
  });
@@ -28200,11 +28202,24 @@ function SelfieCaptureViewContent(_ref) {
28200
28202
  });
28201
28203
  }
28202
28204
 
28205
+ var _templateObject$n;
28206
+ /**
28207
+ * A polite live region that is read aloud but not shown. For a change with no
28208
+ * focused text to carry it, such as a button that went busy and dropped focus
28209
+ * by being disabled. Keep it mounted and change its text: a region that mounts
28210
+ * already holding its message is often not announced.
28211
+ */
28212
+ var ScreenReaderStatus = styled.span.attrs({
28213
+ role: 'status'
28214
+ })(_templateObject$n || (_templateObject$n = _taggedTemplateLiteralLoose(["\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border: 0;\n"])));
28215
+
28203
28216
  var _templateObject$m, _templateObject2$l;
28204
28217
  var FaceLivenessSuccess = function FaceLivenessSuccess(_ref) {
28205
28218
  var imageUrl = _ref.imageUrl,
28206
28219
  onDoneClick = _ref.onDoneClick,
28207
28220
  onRetryClick = _ref.onRetryClick,
28221
+ _ref$retrying = _ref.retrying,
28222
+ retrying = _ref$retrying === void 0 ? false : _ref$retrying,
28208
28223
  _ref$classNames = _ref.classNames,
28209
28224
  classNames = _ref$classNames === void 0 ? {} : _ref$classNames,
28210
28225
  _ref$colors = _ref.colors,
@@ -28214,6 +28229,7 @@ var FaceLivenessSuccess = function FaceLivenessSuccess(_ref) {
28214
28229
  var verbiage = useTranslations(rawVerbiage, {
28215
28230
  headingText: 'Face liveness has been verified!',
28216
28231
  retryBtnText: 'Retry',
28232
+ retryingBtnText: 'Starting camera...',
28217
28233
  doneBtnText: 'Done'
28218
28234
  });
28219
28235
  var imageContainerRef = useRef(null);
@@ -28243,20 +28259,24 @@ var FaceLivenessSuccess = function FaceLivenessSuccess(_ref) {
28243
28259
  children: verbiage.headingText
28244
28260
  }), jsxs(ButtonsColumn, {
28245
28261
  className: classNames.buttonsRow,
28246
- children: [jsx(WideButton, {
28262
+ children: [jsx(ScreenReaderStatus, {
28263
+ children: retrying ? verbiage.retryingBtnText : null
28264
+ }), jsx(WideButton, {
28247
28265
  variant: "positive",
28248
28266
  onClick: onDoneClick,
28249
28267
  colors: colors.doneBtn,
28250
28268
  className: classNames.doneBtn,
28251
28269
  finished: true,
28270
+ // Done would race the retry the user already started.
28271
+ disabled: retrying,
28252
28272
  children: verbiage.doneBtnText
28253
28273
  }), jsx(WideBorderButton, {
28254
28274
  variant: "secondary",
28255
28275
  onClick: onRetryClick,
28256
28276
  colors: colors.retryBtn,
28257
28277
  className: classNames.retryBtn,
28258
- finished: true,
28259
- children: verbiage.retryBtnText
28278
+ finished: !retrying,
28279
+ children: retrying ? verbiage.retryingBtnText : verbiage.retryBtnText
28260
28280
  })]
28261
28281
  })]
28262
28282
  })
@@ -28272,6 +28292,8 @@ var FaceLivenessFailure = function FaceLivenessFailure(_ref) {
28272
28292
  var _ref$canRetry = _ref.canRetry,
28273
28293
  canRetry = _ref$canRetry === void 0 ? true : _ref$canRetry,
28274
28294
  onRetryClick = _ref.onRetryClick,
28295
+ _ref$retrying = _ref.retrying,
28296
+ retrying = _ref$retrying === void 0 ? false : _ref$retrying,
28275
28297
  onExitClick = _ref.onExitClick,
28276
28298
  _ref$assets = _ref.assets,
28277
28299
  assets = _ref$assets === void 0 ? {} : _ref$assets,
@@ -28285,6 +28307,7 @@ var FaceLivenessFailure = function FaceLivenessFailure(_ref) {
28285
28307
  var verbiage = useTranslations(rawVerbiage, {
28286
28308
  headingText: 'Live face not detected, please try again',
28287
28309
  retryBtnText: 'Retry',
28310
+ retryingBtnText: 'Starting camera...',
28288
28311
  exitBtnText: 'Exit'
28289
28312
  });
28290
28313
  return jsx(GrayOverlayContainer, {
@@ -28304,13 +28327,15 @@ var FaceLivenessFailure = function FaceLivenessFailure(_ref) {
28304
28327
  children: verbiage.headingText
28305
28328
  }), jsxs(ButtonsColumn, {
28306
28329
  className: classNames.buttonsRow,
28307
- children: [canRetry && jsx(WideButton, {
28330
+ children: [jsx(ScreenReaderStatus, {
28331
+ children: retrying ? verbiage.retryingBtnText : null
28332
+ }), canRetry && jsx(WideButton, {
28308
28333
  variant: "secondary",
28309
28334
  className: classNames.retryBtn,
28310
28335
  onClick: onRetryClick,
28311
28336
  colors: colors.retryBtn,
28312
- finished: true,
28313
- children: verbiage.retryBtnText
28337
+ finished: !retrying,
28338
+ children: retrying ? verbiage.retryingBtnText : verbiage.retryBtnText
28314
28339
  }), jsx(WideBorderButton, {
28315
28340
  variant: "secondary",
28316
28341
  className: classNames.exitBtn,
@@ -28594,6 +28619,9 @@ function FaceLivenessViewContent(_ref) {
28594
28619
  // back and let the camera light go out. `restartRun` gets it again through
28595
28620
  // the controller's retry(). A skipped success screen needs nothing here: the
28596
28621
  // host moves on and unmounting detaches.
28622
+ // Core holds the terminal screen up while a retry waits for that camera
28623
+ // (`retryPending`), so its Retry button shows the wait instead of the user
28624
+ // landing on a black feed.
28597
28625
  var coveredByTerminalScreen = showSuccessScreen || showFailureScreen;
28598
28626
  useEffect(function () {
28599
28627
  if (coveredByTerminalScreen) controller.actions.releaseCamera();
@@ -28658,12 +28686,19 @@ function FaceLivenessViewContent(_ref) {
28658
28686
  return onDone == null ? void 0 : onDone(completedImageUrl);
28659
28687
  },
28660
28688
  onRetryClick: restartRun,
28689
+ retrying: state.retryPending,
28661
28690
  verbiage: verbiage.success,
28662
28691
  classNames: classNames.success,
28663
28692
  colors: colors.success
28664
- }), showFailureScreen && jsx(FaceLivenessFailure, {
28665
- canRetry: canRetryFailure,
28693
+ }), showFailureScreen && jsx(FaceLivenessFailure
28694
+ // The click already spent the budget; keep the last retry's button
28695
+ // up while it waits on the camera.
28696
+ , {
28697
+ // The click already spent the budget; keep the last retry's button
28698
+ // up while it waits on the camera.
28699
+ canRetry: canRetryFailure || state.retryPending,
28666
28700
  onRetryClick: restartRun,
28701
+ retrying: state.retryPending,
28667
28702
  onExitClick: onExitAfterFailure != null ? onExitAfterFailure : onExit,
28668
28703
  assets: assets.failure,
28669
28704
  verbiage: verbiage.failure,
@@ -36771,14 +36806,8 @@ function DocumentCaptureSurface(_ref) {
36771
36806
  className: classNames.captureBtn,
36772
36807
  finished: state.camera.ready,
36773
36808
  variant: "primary",
36774
- // Guarded rather than relying on `disabled` alone: with
36775
- // `finished` false, LoaderButton hands the element to ladda,
36776
- // which manipulates its disabled state imperatively
36777
- // (LoaderButton.tsx:63-79). The button can therefore be
36778
- // clickable mid-animation, which CI caught.
36779
36809
  onClick: function onClick() {
36780
- if (!state.camera.ready || state.capturing) return;
36781
- void controller.actions.capture();
36810
+ return void controller.actions.capture();
36782
36811
  },
36783
36812
  disabled: !state.camera.ready || state.capturing,
36784
36813
  children: !state.camera.ready ? verbiage.loadingBtnText : state.capturing ? verbiage.capturingBtnText : verbiage.captureBtnText
@@ -48442,7 +48471,7 @@ function mapCustomerIdAndBiometricsEnrollmentProps(props, ctx) {
48442
48471
  });
48443
48472
  }
48444
48473
 
48445
- var webSdkVersion = '2.5.83-changeset-release-develop-eb57522';
48474
+ var webSdkVersion = '2.5.83-changeset-release-develop-2127d44';
48446
48475
 
48447
48476
  // GENERATED by scripts/styleBagTypes.mjs from
48448
48477
  // src/__fixtures__/sdk2StyleBags.json and the mapper sweep — do not