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.
@@ -7134,7 +7134,7 @@
7134
7134
  var arr = [];
7135
7135
  var each = arr.forEach;
7136
7136
  var slice = arr.slice;
7137
- function defaults$1(obj) {
7137
+ function defaults(obj) {
7138
7138
  each.call(slice.call(arguments, 1), function (source) {
7139
7139
  if (source) {
7140
7140
  for (var prop in source) {
@@ -7436,7 +7436,7 @@
7436
7436
  this.services = services || {
7437
7437
  languageUtils: {}
7438
7438
  }; // this way the language detector can be used without i18next
7439
- this.options = defaults$1(options, this.options || {}, getDefaults());
7439
+ this.options = defaults(options, this.options || {}, getDefaults());
7440
7440
  if (typeof this.options.convertDetectedLanguage === 'string' && this.options.convertDetectedLanguage.indexOf('15897') > -1) {
7441
7441
  this.options.convertDetectedLanguage = function (l) {
7442
7442
  return l.replace('-', '_');
@@ -11233,15 +11233,17 @@
11233
11233
  var HAND_OVER_FACE = 'Remove your hand from your face...';
11234
11234
  var SELFIE_RECOVERY_HINT = 'We’re having trouble checking the lighting. Keep your face centered and hold still—we’ll still check your positioning.';
11235
11235
  var CONTINUE_WITH_CURRENT_LIGHTING = 'Continue with current lighting';
11236
+ // The face liveness Retry button while the camera restarts behind it.
11237
+ var STARTING_CAMERA = 'Starting camera...';
11236
11238
  var threeOhTranslations = {
11237
- 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),
11238
- 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),
11239
- 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),
11240
- 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),
11241
- 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),
11242
- 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),
11243
- 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),
11244
- 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)
11239
+ 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),
11240
+ 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),
11241
+ 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),
11242
+ 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),
11243
+ 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),
11244
+ 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),
11245
+ 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),
11246
+ 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)
11245
11247
  };
11246
11248
  /** Base entries win nothing — the supplement may only ADD. See `noShadowing`. */
11247
11249
  function withThreeOhTranslations(lang, base) {
@@ -11595,7 +11597,7 @@
11595
11597
  return ctx;
11596
11598
  }
11597
11599
 
11598
- var _templateObject$$, _templateObject2$R;
11600
+ var _templateObject$10, _templateObject2$S;
11599
11601
  var _excluded$j = ["isRearFacing"];
11600
11602
  var CameraVideoTag = /*#__PURE__*/React.forwardRef(function CameraVideoTag(_ref, ref) {
11601
11603
  var isRearFacing = _ref.isRearFacing,
@@ -11608,10 +11610,10 @@
11608
11610
  "$isRearFacing": isRearFacing
11609
11611
  }, props));
11610
11612
  });
11611
- 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) {
11613
+ var FullscreenVideoTag = styled.video(_templateObject$10 || (_templateObject$10 = _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) {
11612
11614
  return props.$isRearFacing ? '' : 'scaleX(-1)';
11613
11615
  });
11614
- 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) {
11616
+ var CameraFeedWrapper = styled.div(_templateObject2$S || (_templateObject2$S = _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) {
11615
11617
  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;";
11616
11618
  }, function (props) {
11617
11619
  return props.$hidden ? 'display: none;' : '';
@@ -11666,7 +11668,7 @@
11666
11668
  });
11667
11669
  }
11668
11670
 
11669
- var _templateObject$_, _templateObject2$Q, _templateObject3$E, _templateObject4$z, _templateObject5$t, _templateObject6$l;
11671
+ var _templateObject$$, _templateObject2$R, _templateObject3$E, _templateObject4$z, _templateObject5$t, _templateObject6$l;
11670
11672
  function _createForOfIteratorHelperLoose$v(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$v(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."); }
11671
11673
  function _unsupportedIterableToArray$v(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$v(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$v(r, a) : void 0; } }
11672
11674
  function _arrayLikeToArray$v(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; }
@@ -11688,8 +11690,8 @@
11688
11690
  if (!portalLocation) return element;
11689
11691
  return /*#__PURE__*/reactDom.createPortal(element, portalLocation);
11690
11692
  }
11691
- 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"])));
11692
- 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) {
11693
+ 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"])));
11694
+ var ObjectDetectionDebugOverlayDiv = styled.div(_templateObject2$R || (_templateObject2$R = _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) {
11693
11695
  var $flipX = _ref3.$flipX;
11694
11696
  return $flipX ? 'transform: scaleX(-1);' : '';
11695
11697
  });
@@ -12001,7 +12003,7 @@
12001
12003
  });
12002
12004
  }
12003
12005
 
12004
- var _templateObject$Z;
12006
+ var _templateObject$_;
12005
12007
  /**
12006
12008
  * Over WebKit's 10px "thin border" cutoff (`LocalFrameView::fixedContainerEdges`).
12007
12009
  * At or under it, Safari never reads the strip's `background-color`: it samples
@@ -12104,7 +12106,7 @@
12104
12106
  }, "bottom:" + bottomColor)]
12105
12107
  }), target);
12106
12108
  }
12107
- 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) {
12109
+ var EdgeStrip = styled.div(_templateObject$_ || (_templateObject$_ = _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) {
12108
12110
  var $edge = _ref2.$edge;
12109
12111
  return $edge;
12110
12112
  }, EDGE_STRIP_PX, function (_ref3) {
@@ -12115,8 +12117,13 @@
12115
12117
  return $hidden ? 'opacity: 0;' : '';
12116
12118
  });
12117
12119
 
12118
- var _templateObject$Y;
12120
+ var _templateObject$Z, _templateObject2$Q;
12119
12121
  var _excluded$i = ["children", "className", "colors", "disabled", "finished", "variant"];
12122
+ /**
12123
+ * The SDK's action button. `ladda-button` / `ladda-label` are kept as class
12124
+ * hooks from when Ladda drew the loading state, since 2.x customer CSS may
12125
+ * target them.
12126
+ */
12120
12127
  var LoaderButton = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
12121
12128
  var children = _ref.children,
12122
12129
  className = _ref.className,
@@ -12127,49 +12134,14 @@
12127
12134
  _ref$variant = _ref.variant,
12128
12135
  variant = _ref$variant === void 0 ? 'primary' : _ref$variant,
12129
12136
  props = _objectWithoutPropertiesLoose(_ref, _excluded$i);
12130
- var buttonRef = React.useRef(null);
12131
- var laddaRef = React.useRef(null);
12132
- var _useState = React.useState(false),
12133
- _useState2 = _slicedToArray(_useState, 2),
12134
- laddaLoaded = _useState2[0],
12135
- setLaddaLoaded = _useState2[1];
12136
- // Expose the button element to the parent via ref
12137
- React.useImperativeHandle(ref, function () {
12138
- return buttonRef.current;
12139
- }, []);
12140
- React.useEffect(function () {
12141
- if (laddaLoaded || finished) return;
12142
- var interval;
12143
- var isMounted = true;
12144
- Promise.resolve().then(function () { return ladda; }).then(function (Ladda) {
12145
- if (!buttonRef.current || !isMounted) return;
12146
- laddaRef.current = Ladda.create(buttonRef.current);
12147
- laddaRef.current.start();
12148
- setLaddaLoaded(true);
12149
- var currentProgress = 0;
12150
- interval = setInterval(function () {
12151
- var _laddaRef$current;
12152
- if (currentProgress < 0.9) currentProgress += 0.1;
12153
- (_laddaRef$current = laddaRef.current) == null || _laddaRef$current.setProgress(currentProgress);
12154
- }, 250);
12155
- });
12156
- return function () {
12157
- var _laddaRef$current2;
12158
- isMounted = false;
12159
- (_laddaRef$current2 = laddaRef.current) == null || _laddaRef$current2.remove();
12160
- clearInterval(interval);
12161
- };
12162
- }, [finished, laddaLoaded]);
12163
- React.useEffect(function () {
12164
- var _laddaRef$current3;
12165
- if (laddaLoaded && finished) (_laddaRef$current3 = laddaRef.current) == null || _laddaRef$current3.stop();
12166
- }, [finished, laddaLoaded]);
12137
+ var loading = finished === false;
12138
+ var inert = disabled || loading;
12167
12139
  return jsx(StyledButton, _extends({
12168
- className: "ladda-button " + className + " " + (disabled ? 'disabled' : ''),
12169
- "data-style": "expand-right",
12140
+ className: "ladda-button " + className + " " + (inert ? 'disabled' : ''),
12170
12141
  type: "button",
12171
- disabled: disabled,
12172
- ref: buttonRef,
12142
+ disabled: inert,
12143
+ "aria-busy": loading,
12144
+ ref: ref,
12173
12145
  "$backgroundColor": colors.backgroundColor,
12174
12146
  "$textColor": colors.textColor,
12175
12147
  "$disabledBackgroundColor": colors.loadingBackgroundColor,
@@ -12183,16 +12155,19 @@
12183
12155
  }));
12184
12156
  });
12185
12157
  LoaderButton.displayName = 'LoaderButton';
12186
- var StyledButton = styled.button(_templateObject$Y || (_templateObject$Y = _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) {
12187
- 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;
12188
- 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 ";
12189
- });
12158
+ // From just off the left edge to just off the right: the bar is 38% wide, so
12159
+ // 265% of its own width carries it clear.
12160
+ var track = keyframes(_templateObject$Z || (_templateObject$Z = _taggedTemplateLiteralLoose(["\n from { transform: translateX(-100%); }\n to { transform: translateX(265%); }\n"])));
12161
+ var StyledButton = styled.button(_templateObject2$Q || (_templateObject2$Q = _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) {
12162
+ 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;
12163
+ 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 ";
12164
+ }, track);
12190
12165
 
12191
- var _templateObject$X;
12192
- 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"])));
12166
+ var _templateObject$Y;
12167
+ var ButtonsRow$2 = styled.div(_templateObject$Y || (_templateObject$Y = _taggedTemplateLiteralLoose(["\n display: flex;\n gap: 0 15px;\n justify-content: center;\n text-align: left;\n"])));
12193
12168
 
12194
- var _templateObject$W, _templateObject2$P;
12195
- 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) {
12169
+ var _templateObject$X, _templateObject2$P;
12170
+ var GuidanceMessageContainerDiv = styled.div(_templateObject$X || (_templateObject$X = _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) {
12196
12171
  var $top = _ref.$top;
12197
12172
  return $top != null ? $top : '10%';
12198
12173
  }, function (_ref2) {
@@ -12257,14 +12232,14 @@
12257
12232
  });
12258
12233
  };
12259
12234
 
12260
- var _templateObject$V, _templateObject2$O, _templateObject3$D, _templateObject4$y;
12261
- 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"])));
12235
+ var _templateObject$W, _templateObject2$O, _templateObject3$D, _templateObject4$y;
12236
+ var wavesAnimation = keyframes(_templateObject$W || (_templateObject$W = _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"])));
12262
12237
  var progressBarAnimation = keyframes(_templateObject2$O || (_templateObject2$O = _taggedTemplateLiteralLoose(["\n 0% {\n width: 0;\n }\n 100% {\n width: 100%;\n }\n"])));
12263
12238
  keyframes(_templateObject3$D || (_templateObject3$D = _taggedTemplateLiteralLoose(["\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n"])));
12264
12239
  keyframes(_templateObject4$y || (_templateObject4$y = _taggedTemplateLiteralLoose(["\n to {\n stroke-dashoffset: 0;\n }\n"])));
12265
12240
 
12266
- var _templateObject$U, _templateObject2$N, _templateObject3$C, _templateObject4$x, _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;
12267
- 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) {
12241
+ var _templateObject$V, _templateObject2$N, _templateObject3$C, _templateObject4$x, _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;
12242
+ var OverlayContainer = styled.div(_templateObject$V || (_templateObject$V = _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) {
12268
12243
  return props.theme.background ? "" + props.theme.background : "white";
12269
12244
  }, function (props) {
12270
12245
  return props.theme.textColor ? "color: " + props.theme.textColor + ";" : "";
@@ -12304,7 +12279,7 @@
12304
12279
  return props.theme.padding ? "box-sizing: border-box; padding: " + props.theme.padding + ";" : "";
12305
12280
  });
12306
12281
  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"])));
12307
- var LoadingOverlayImageContainer = styled(OverlayImageContainer)(_templateObject10$a || (_templateObject10$a = _taggedTemplateLiteralLoose(["\n padding: 0;\n max-height: 100%;\n pointer-events: none;\n"])));
12282
+ var LoadingOverlayImageContainer = styled(OverlayImageContainer)(_templateObject10$9 || (_templateObject10$9 = _taggedTemplateLiteralLoose(["\n padding: 0;\n max-height: 100%;\n pointer-events: none;\n"])));
12308
12283
  var LoadingOverlayProgressBarBackground = styled.div.attrs({
12309
12284
  className: 'loading-overlay-progress-bar-background'
12310
12285
  })(_templateObject11$7 || (_templateObject11$7 = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n"])));
@@ -12439,8 +12414,8 @@
12439
12414
 
12440
12415
  var _excluded$h = ["children", "status", "borderWidth", "borderRadius", "borderColor", "aspectRatio", "progress", "guideBoxDisabled"],
12441
12416
  _excluded2$5 = ["borderRadius", "borderColor", "borderWidth", "borderOpacity", "progress", "isProgressBar", "scaleBorderRadius"];
12442
- var _templateObject$T, _templateObject2$M, _templateObject3$B, _templateObject4$w, _templateObject5$r, _templateObject6$j, _templateObject7$g;
12443
- 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) {
12417
+ var _templateObject$U, _templateObject2$M, _templateObject3$B, _templateObject4$w, _templateObject5$r, _templateObject6$j, _templateObject7$g;
12418
+ var IdCardGuideImageContainer = styled(IdCardBorder)(_templateObject$U || (_templateObject$U = _taggedTemplateLiteralLoose(["\n position: relative;\n ", "\n box-sizing: border-box;\n max-width: 100%;\n max-height: 100%;\n ", ";\n"])), function (props) {
12444
12419
  return props.$isVisible ? '' : 'opacity: 0;';
12445
12420
  }, function (props) {
12446
12421
  return props.$isMobile ? props.$isLandscape ? 'height: 100%;' : 'width: 80%;' : props.$isLandscape ? 'height: 70%;' : 'width: 82%;';
@@ -12736,7 +12711,7 @@
12736
12711
  }, [images]);
12737
12712
  }
12738
12713
 
12739
- var _templateObject$S;
12714
+ var _templateObject$T;
12740
12715
  var FlipIdPrompt = function FlipIdPrompt(_ref) {
12741
12716
  var _ref$images = _ref.images,
12742
12717
  images = _ref$images === void 0 ? defaultIdCaptureGuideImages : _ref$images,
@@ -12833,11 +12808,11 @@
12833
12808
  })]
12834
12809
  });
12835
12810
  };
12836
- 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) {
12811
+ var Wrapper$1 = styled.div(_templateObject$T || (_templateObject$T = _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) {
12837
12812
  return props.$isMobile ? props.$isLandscape ? 'height: 100%;' : 'width: 80%;' : props.$isLandscape ? 'height: 70%;' : 'width: 82%;';
12838
12813
  });
12839
12814
 
12840
- var _templateObject$R, _templateObject2$L, _templateObject3$A, _templateObject4$v, _templateObject5$q, _templateObject6$i, _templateObject7$f, _templateObject8$c, _templateObject9$c;
12815
+ var _templateObject$S, _templateObject2$L, _templateObject3$A, _templateObject4$v, _templateObject5$q, _templateObject6$i, _templateObject7$f, _templateObject8$c, _templateObject9$c;
12841
12816
  var IdCaptureGuideOverlay = function IdCaptureGuideOverlay(_ref) {
12842
12817
  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;
12843
12818
  var _ref$classNames = _ref.classNames,
@@ -12993,7 +12968,7 @@
12993
12968
  return v;
12994
12969
  }).join(' ');
12995
12970
  };
12996
- 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"])));
12971
+ var StyledPageContainer = styled.div(_templateObject$S || (_templateObject$S = _taggedTemplateLiteralLoose(["\n position: relative;\n width: 100%;\n height: 100%;\n z-index: 1000;\n overflow: hidden;\n"])));
12997
12972
  var GuidesContainer = styled.div(_templateObject2$L || (_templateObject2$L = _taggedTemplateLiteralLoose(["\n display: flex;\n flex-flow: column nowrap;\n width: 100%;\n height: 100%;\n"])));
12998
12973
  var GuideCenterRow = styled.div(_templateObject3$A || (_templateObject3$A = _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"])));
12999
12974
  var GuideRegion = styled.div(_templateObject4$v || (_templateObject4$v = _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) {
@@ -13026,7 +13001,7 @@
13026
13001
  /** The mask colour when neither the prop nor the theme sets one. */
13027
13002
  var OVERLAY_GUIDE_MASK_DEFAULT = 'rgba(0, 0, 0, 0.5)';
13028
13003
 
13029
- var _templateObject$Q, _templateObject2$K, _templateObject3$z, _templateObject4$u;
13004
+ var _templateObject$R, _templateObject2$K, _templateObject3$z, _templateObject4$u;
13030
13005
  var IdCaptureFitGuide = function IdCaptureFitGuide(_ref) {
13031
13006
  var _theme$idCapture$guid, _theme$idCapture, _theme$idCapture$guid5, _theme$idCapture5, _theme$idCapture$guid6, _theme$idCapture6, _theme$idCapture$guid7, _theme$idCapture7;
13032
13007
  var aspectRatio = _ref.aspectRatio,
@@ -13263,7 +13238,7 @@
13263
13238
  })]
13264
13239
  });
13265
13240
  };
13266
- 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) {
13241
+ var CanvasWrapper$1 = styled.div(_templateObject$R || (_templateObject$R = _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) {
13267
13242
  return props.$aboveCameraFeed ? "z-index: 1;" : "box-shadow: inset 0 0 0 2px " + props.$maskColor + ";\n z-index: -1;";
13268
13243
  });
13269
13244
  var Canvas$2 = styled.canvas(_templateObject2$K || (_templateObject2$K = _taggedTemplateLiteralLoose(["\n display: block;\n"])));
@@ -13295,8 +13270,8 @@
13295
13270
  });
13296
13271
  }
13297
13272
 
13298
- var _templateObject$P;
13299
- 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"])));
13273
+ var _templateObject$Q;
13274
+ var ExitCaptureStyledButton = styled.button(_templateObject$Q || (_templateObject$Q = _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"])));
13300
13275
  var ExitCaptureButton = function ExitCaptureButton(_ref) {
13301
13276
  var onClick = _ref.onClick,
13302
13277
  className = _ref.className;
@@ -13345,7 +13320,7 @@
13345
13320
  });
13346
13321
  };
13347
13322
 
13348
- var _templateObject$O, _templateObject2$J, _templateObject3$y, _templateObject4$t;
13323
+ var _templateObject$P, _templateObject2$J, _templateObject3$y, _templateObject4$t;
13349
13324
  function IdCaptureLoadingGraphic(props) {
13350
13325
  var isMobile = window.innerHeight > window.innerWidth;
13351
13326
  return isMobile ? jsx(IdCaptureLoadingGraphicMobile, _extends({}, props)) : jsx(IdCaptureLoadingGraphicDesktop, _extends({}, props));
@@ -13842,7 +13817,7 @@
13842
13817
  })]
13843
13818
  });
13844
13819
  }
13845
- var LoadingGraphicWrapper = styled.div(_templateObject$O || (_templateObject$O = _taggedTemplateLiteralLoose(["\n display: flex;\n width: 100%;\n height: 100%;\n"])));
13820
+ var LoadingGraphicWrapper = styled.div(_templateObject$P || (_templateObject$P = _taggedTemplateLiteralLoose(["\n display: flex;\n width: 100%;\n height: 100%;\n"])));
13846
13821
  var LoadingGraphicSvg = styled.svg(_templateObject2$J || (_templateObject2$J = _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) {
13847
13822
  return props.$frame > 1 ? 1 : props.$frame === 1 ? 1.25 : 0.75;
13848
13823
  }, function (props) {
@@ -14041,7 +14016,7 @@
14041
14016
  }, [enabled, ready]);
14042
14017
  };
14043
14018
 
14044
- var _templateObject$N;
14019
+ var _templateObject$O;
14045
14020
  var LoadingSpinnerContext = /*#__PURE__*/React.createContext(undefined);
14046
14021
  function LoadingSpinnerProvider(_ref) {
14047
14022
  var spinner = _ref.spinner,
@@ -14109,9 +14084,9 @@
14109
14084
  }
14110
14085
  // `display: contents` while empty: an empty flex box still occupies its
14111
14086
  // parent's gap/padding, which would offset the fallback it sits next to.
14112
- 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"])));
14087
+ var SpinnerSlot = styled.div(_templateObject$O || (_templateObject$O = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n justify-content: center;\n\n &:empty {\n display: contents;\n }\n"])));
14113
14088
 
14114
- var _templateObject$M, _templateObject2$I, _templateObject3$x, _templateObject4$s, _templateObject5$p;
14089
+ var _templateObject$N, _templateObject2$I, _templateObject3$x, _templateObject4$s, _templateObject5$p;
14115
14090
  var legacyInstructionImageUrl$1 = DEFAULT_CDN_URL$1 + "/WebSDK-Instruction-DL-Capture-3-Portrait.png";
14116
14091
  // Module-level so the default `now` prop has a stable identity across
14117
14092
  // renders (it sits in useModelWarmingElapsedMs's effect dependency array).
@@ -14300,7 +14275,7 @@
14300
14275
  })
14301
14276
  });
14302
14277
  };
14303
- var OverlayInner$1 = styled(LoadingOverlayInner)(_templateObject$M || (_templateObject$M = _taggedTemplateLiteralLoose(["\n background: ", ";\n color: ", ";\n"])), function (props) {
14278
+ var OverlayInner$1 = styled(LoadingOverlayInner)(_templateObject$N || (_templateObject$N = _taggedTemplateLiteralLoose(["\n background: ", ";\n color: ", ";\n"])), function (props) {
14304
14279
  var _props$theme$idCaptur, _props$theme;
14305
14280
  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;
14306
14281
  }, function (props) {
@@ -22961,7 +22936,7 @@
22961
22936
  return bag == null ? void 0 : bag[instructionVerbiageKeys[code]];
22962
22937
  }
22963
22938
 
22964
- var _templateObject$L, _templateObject2$H, _templateObject3$w, _templateObject4$r, _templateObject5$o;
22939
+ var _templateObject$M, _templateObject2$H, _templateObject3$w, _templateObject4$r, _templateObject5$o;
22965
22940
  var PDF417_ASPECT_RATIO = 3 / 1;
22966
22941
  function BarcodeGuideOverlay(_ref) {
22967
22942
  var _ref$aspectRatio = _ref.aspectRatio,
@@ -23091,14 +23066,14 @@
23091
23066
  })]
23092
23067
  });
23093
23068
  }
23094
- 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"])));
23069
+ var Wrapper = styled.div(_templateObject$M || (_templateObject$M = _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"])));
23095
23070
  var Canvas$1 = styled.canvas(_templateObject2$H || (_templateObject2$H = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n"])));
23096
23071
  var TextOverlay = styled.div(_templateObject3$w || (_templateObject3$w = _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"])));
23097
23072
  var HeaderText = styled.div(_templateObject4$r || (_templateObject4$r = _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"])));
23098
23073
  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"])));
23099
23074
 
23100
- var _templateObject$K, _templateObject2$G, _templateObject3$v, _templateObject4$q, _templateObject5$n, _templateObject6$h;
23101
- 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"])));
23075
+ var _templateObject$L, _templateObject2$G, _templateObject3$v, _templateObject4$q, _templateObject5$n, _templateObject6$h;
23076
+ var scaleIn = keyframes(_templateObject$L || (_templateObject$L = _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"])));
23102
23077
  var drawCheck = keyframes(_templateObject2$G || (_templateObject2$G = _taggedTemplateLiteralLoose(["\n 0% {\n stroke-dashoffset: 24;\n }\n 100% {\n stroke-dashoffset: 0;\n }\n"])));
23103
23078
  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 align-items: center;\n justify-content: center;\n pointer-events: none;\n z-index: 3;\n"])));
23104
23079
  styled.div(_templateObject4$q || (_templateObject4$q = _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) {
@@ -23199,7 +23174,7 @@
23199
23174
  });
23200
23175
  }
23201
23176
 
23202
- var _templateObject$J, _templateObject2$F, _templateObject3$u, _templateObject4$p, _templateObject5$m;
23177
+ var _templateObject$K, _templateObject2$F, _templateObject3$u, _templateObject4$p, _templateObject5$m;
23203
23178
  function OverrideWrongDocumentTypeDialog(_ref) {
23204
23179
  var visible = _ref.visible,
23205
23180
  onOverride = _ref.onOverride,
@@ -23231,7 +23206,7 @@
23231
23206
  })
23232
23207
  });
23233
23208
  }
23234
- 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) {
23209
+ var Container$3 = styled.div(_templateObject$K || (_templateObject$K = _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) {
23235
23210
  var _props$theme$idCaptur, _props$theme$idCaptur2;
23236
23211
  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';
23237
23212
  }, function (props) {
@@ -23348,7 +23323,7 @@
23348
23323
  });
23349
23324
  };
23350
23325
 
23351
- var _templateObject$I, _templateObject2$E;
23326
+ var _templateObject$J, _templateObject2$E;
23352
23327
  var RING_SIZE = 74;
23353
23328
  var RADIUS = 32;
23354
23329
  var CIRCUMFERENCE = 2 * Math.PI * RADIUS;
@@ -23393,7 +23368,7 @@
23393
23368
  })]
23394
23369
  });
23395
23370
  };
23396
- var RingSvg = styled.svg(_templateObject$I || (_templateObject$I = _taggedTemplateLiteralLoose(["\n width: ", "px;\n height: ", "px;\n transform: rotate(-90deg);\n"])), RING_SIZE, RING_SIZE);
23371
+ var RingSvg = styled.svg(_templateObject$J || (_templateObject$J = _taggedTemplateLiteralLoose(["\n width: ", "px;\n height: ", "px;\n transform: rotate(-90deg);\n"])), RING_SIZE, RING_SIZE);
23397
23372
  var FillCircle = styled.circle(_templateObject2$E || (_templateObject2$E = _taggedTemplateLiteralLoose(["\n transition: stroke-dashoffset 0.3s linear;\n"])));
23398
23373
 
23399
23374
  var selectRingStatusKey = function selectRingStatusKey(_ref) {
@@ -23409,7 +23384,7 @@
23409
23384
  return 'warming';
23410
23385
  };
23411
23386
 
23412
- var _templateObject$H, _templateObject2$D, _templateObject3$t, _templateObject4$o, _templateObject5$l, _templateObject6$g, _templateObject7$e, _templateObject8$b, _templateObject9$b, _templateObject0$a, _templateObject1$9, _templateObject10$9;
23387
+ var _templateObject$I, _templateObject2$D, _templateObject3$t, _templateObject4$o, _templateObject5$l, _templateObject6$g, _templateObject7$e, _templateObject8$b, _templateObject9$b, _templateObject0$a, _templateObject1$9;
23413
23388
  /**
23414
23389
  * The ring overlay's priming cover page (CEO prototype `#v-prime`): camera
23415
23390
  * badge, title/subtitle, step chips, reassurance chip, "Enable camera &
@@ -23480,7 +23455,6 @@
23480
23455
  finished: !requesting,
23481
23456
  disabled: requesting,
23482
23457
  onClick: onStart,
23483
- "data-spinner-color": badgeColor,
23484
23458
  children: requesting ? requestingButtonText : startButtonText
23485
23459
  }), jsx(Privacy, {
23486
23460
  className: classNames.introPrivacy,
@@ -23488,20 +23462,19 @@
23488
23462
  })]
23489
23463
  });
23490
23464
  };
23491
- var _float = keyframes(_templateObject$H || (_templateObject$H = _taggedTemplateLiteralLoose(["\n 0%, 100% { transform: translateY(0); }\n 50% { transform: translateY(-7px); }\n"])));
23492
- var sweep = keyframes(_templateObject2$D || (_templateObject2$D = _taggedTemplateLiteralLoose(["\n from { transform: translateX(-100%); }\n to { transform: translateX(100%); }\n"])));
23493
- var IntroLayout = styled.div(_templateObject3$t || (_templateObject3$t = _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"])));
23494
- var Badge = styled.div(_templateObject4$o || (_templateObject4$o = _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) {
23465
+ var _float = keyframes(_templateObject$I || (_templateObject$I = _taggedTemplateLiteralLoose(["\n 0%, 100% { transform: translateY(0); }\n 50% { transform: translateY(-7px); }\n"])));
23466
+ var IntroLayout = styled.div(_templateObject2$D || (_templateObject2$D = _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"])));
23467
+ var Badge = styled.div(_templateObject3$t || (_templateObject3$t = _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) {
23495
23468
  return props.$color;
23496
23469
  }, function (props) {
23497
23470
  return props.$color;
23498
23471
  }, _float);
23499
- var Title$4 = styled.div(_templateObject5$l || (_templateObject5$l = _taggedTemplateLiteralLoose(["\n font-size: 22px;\n font-weight: 700;\n"])));
23500
- var Subtitle$3 = styled.div(_templateObject6$g || (_templateObject6$g = _taggedTemplateLiteralLoose(["\n font-size: 14px;\n opacity: 0.65;\n line-height: 1.5;\n"])));
23501
- var Steps = styled.div(_templateObject7$e || (_templateObject7$e = _taggedTemplateLiteralLoose(["\n display: flex;\n gap: 26px;\n margin: 16px 0 6px;\n"])));
23502
- 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"])));
23503
- 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"])));
23504
- 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) {
23472
+ var Title$4 = styled.div(_templateObject4$o || (_templateObject4$o = _taggedTemplateLiteralLoose(["\n font-size: 22px;\n font-weight: 700;\n"])));
23473
+ var Subtitle$3 = styled.div(_templateObject5$l || (_templateObject5$l = _taggedTemplateLiteralLoose(["\n font-size: 14px;\n opacity: 0.65;\n line-height: 1.5;\n"])));
23474
+ var Steps = styled.div(_templateObject6$g || (_templateObject6$g = _taggedTemplateLiteralLoose(["\n display: flex;\n gap: 26px;\n margin: 16px 0 6px;\n"])));
23475
+ 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"])));
23476
+ 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"])));
23477
+ 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) {
23505
23478
  return props.$tint;
23506
23479
  });
23507
23480
  /* Pill treatment from the CEO prototype (.btn.primary: radius 26, teal glow,
@@ -23509,10 +23482,8 @@
23509
23482
  * theme styling. The glow and the deliberately quiet focus ring derive from
23510
23483
  * the button's own background (--bs-btn-bg, set by the theme's bootstrap
23511
23484
  * block) with the intro accent as fallback for un-themed buttons. Double
23512
- * ampersand outranks the base LoaderButton rules; Ladda's loading
23513
- * padding-right still wins (three-selector specificity) so the spinner
23514
- * keeps its room. */
23515
- 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) {
23485
+ * ampersand outranks the base LoaderButton rules. */
23486
+ 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) {
23516
23487
  return props.$accent;
23517
23488
  }, function (props) {
23518
23489
  return props.$accent;
@@ -23528,8 +23499,8 @@
23528
23499
  return props.$accent;
23529
23500
  }, function (props) {
23530
23501
  return props.$accent;
23531
- }, sweep);
23532
- var Privacy = styled.div(_templateObject10$9 || (_templateObject10$9 = _taggedTemplateLiteralLoose(["\n font-size: 11px;\n opacity: 0.55;\n margin-top: 6px;\n"])));
23502
+ });
23503
+ var Privacy = styled.div(_templateObject1$9 || (_templateObject1$9 = _taggedTemplateLiteralLoose(["\n font-size: 11px;\n opacity: 0.55;\n margin-top: 6px;\n"])));
23533
23504
 
23534
23505
  var selectRingOverlayStage = function selectRingOverlayStage(_ref) {
23535
23506
  var showIntroScreen = _ref.showIntroScreen,
@@ -23539,7 +23510,7 @@
23539
23510
  return requesting ? 'requesting' : 'intro';
23540
23511
  };
23541
23512
 
23542
- var _templateObject$G, _templateObject2$C, _templateObject3$s, _templateObject4$n, _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;
23513
+ var _templateObject$H, _templateObject2$C, _templateObject3$s, _templateObject4$n, _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;
23543
23514
  /** Minimum time a stage handoff stays on screen so its message is
23544
23515
  * legible even when everything preloaded and readiness is instant. */
23545
23516
  var STAGE_TRANSITION_HOLD_MS = 1600;
@@ -23598,7 +23569,7 @@
23598
23569
  })]
23599
23570
  });
23600
23571
  };
23601
- 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"])));
23572
+ var badgePop = keyframes(_templateObject$H || (_templateObject$H = _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"])));
23602
23573
  var cardFlip = keyframes(_templateObject2$C || (_templateObject2$C = _taggedTemplateLiteralLoose(["\n from { transform: rotateY(0deg); }\n to { transform: rotateY(180deg); }\n"])));
23603
23574
  var microcopyBeat = keyframes(_templateObject3$s || (_templateObject3$s = _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"])));
23604
23575
  var rise = keyframes(_templateObject4$n || (_templateObject4$n = _taggedTemplateLiteralLoose(["\n from { opacity: 0; transform: translateY(8px); }\n to { opacity: 1; transform: translateY(0); }\n"])));
@@ -23630,7 +23601,7 @@
23630
23601
  return props.$visible ? 1 : 0;
23631
23602
  });
23632
23603
 
23633
- var _templateObject$F, _templateObject2$B, _templateObject3$r, _templateObject4$m, _templateObject5$j, _templateObject6$e, _templateObject7$c;
23604
+ var _templateObject$G, _templateObject2$B, _templateObject3$r, _templateObject4$m, _templateObject5$j, _templateObject6$e, _templateObject7$c;
23634
23605
  // Module-level so the default `now` prop has a stable identity across
23635
23606
  // renders (it sits in useModelWarmingElapsedMs's effect dependency array).
23636
23607
  var defaultNow$2 = function defaultNow() {
@@ -23904,7 +23875,7 @@
23904
23875
  })
23905
23876
  });
23906
23877
  };
23907
- var overlayFadeIn$1 = keyframes(_templateObject$F || (_templateObject$F = _taggedTemplateLiteralLoose(["\n from { opacity: 0; }\n to { opacity: 1; }\n"])));
23878
+ var overlayFadeIn$1 = keyframes(_templateObject$G || (_templateObject$G = _taggedTemplateLiteralLoose(["\n from { opacity: 0; }\n to { opacity: 1; }\n"])));
23908
23879
  var RingOverlayInner$1 = styled(LoadingOverlayInner)(_templateObject2$B || (_templateObject2$B = _taggedTemplateLiteralLoose(["\n background: ", ";\n color: ", ";\n ", "\n"])), function (props) {
23909
23880
  var _props$theme$idCaptur, _props$theme;
23910
23881
  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)';
@@ -24009,11 +23980,11 @@
24009
23980
  });
24010
23981
  };
24011
23982
 
24012
- var _templateObject$E, _templateObject2$A;
24013
- 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"])));
23983
+ var _templateObject$F, _templateObject2$A;
23984
+ var Card = styled.div(_templateObject$F || (_templateObject$F = _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"])));
24014
23985
  var FlexCard = styled(Card)(_templateObject2$A || (_templateObject2$A = _taggedTemplateLiteralLoose(["\n display: flex;\n flex-direction: column;\n"])));
24015
23986
 
24016
- var _templateObject$D, _templateObject2$z, _templateObject3$q, _templateObject4$l, _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;
23987
+ var _templateObject$E, _templateObject2$z, _templateObject3$q, _templateObject4$l, _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;
24017
23988
  function ReviewDocumentDiagnostics(_ref) {
24018
23989
  var _document$detectionSc, _document$detectionSc2, _document$focusScore, _document$focusScore2;
24019
23990
  var document = _ref.document,
@@ -24472,7 +24443,7 @@
24472
24443
  })]
24473
24444
  });
24474
24445
  }
24475
- 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"])));
24446
+ var DebugInfoContainer = styled.div(_templateObject$E || (_templateObject$E = _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"])));
24476
24447
  var DebugSection = styled.div(_templateObject2$z || (_templateObject2$z = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n gap: 0.5rem;\n margin: 0;\n"])));
24477
24448
  var DebugLabel = styled.span(_templateObject3$q || (_templateObject3$q = _taggedTemplateLiteralLoose(["\n width: 110px;\n flex-shrink: 0;\n color: #495057;\n font-size: 0.8125rem;\n font-weight: 600;\n"])));
24478
24449
  var DebugValue = styled.span(_templateObject4$l || (_templateObject4$l = _taggedTemplateLiteralLoose(["\n color: #212529;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 0.8125rem;\n"])));
@@ -24588,7 +24559,7 @@
24588
24559
  return $highlight ? '#004085' : $ok ? '#155724' : '#721c24';
24589
24560
  });
24590
24561
 
24591
- var _templateObject$C, _templateObject2$y, _templateObject3$p, _templateObject4$k, _templateObject5$h;
24562
+ var _templateObject$D, _templateObject2$y, _templateObject3$p, _templateObject4$k, _templateObject5$h;
24592
24563
  var imageDisplayOrder = ['idCardFront', 'idCardBack', 'idBarcodeImage', 'passport', 'singlePage', 'idFrontIrImage', 'idBackIrImage', 'idFrontUvImage', 'idBackUvImage'];
24593
24564
  var ReviewScreen = function ReviewScreen(_ref) {
24594
24565
  var capturedDocuments = _ref.capturedDocuments,
@@ -24679,13 +24650,13 @@
24679
24650
  })
24680
24651
  });
24681
24652
  };
24682
- 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"])));
24653
+ var Heading$9 = styled.h1(_templateObject$D || (_templateObject$D = _taggedTemplateLiteralLoose(["\n font-size: 1.5rem;\n margin-top: 0;\n margin-bottom: 1.5rem;\n"])));
24683
24654
  var ImagesContainer = styled(OverlayImageContainer)(_templateObject2$y || (_templateObject2$y = _taggedTemplateLiteralLoose(["\n flex-grow: 1;\n overflow-y: auto;\n padding-bottom: 0;\n max-width: 100%;\n"])));
24684
24655
  var ImageRow = styled(OverlayImageRow)(_templateObject3$p || (_templateObject3$p = _taggedTemplateLiteralLoose(["\n max-width: 100%;\n flex-direction: column;\n position: relative;\n width: 100%;\n"])));
24685
24656
  var ImageCol$1 = styled.div(_templateObject4$k || (_templateObject4$k = _taggedTemplateLiteralLoose(["\n width: 450px;\n max-width: 100%;\n max-height: none !important;\n"])));
24686
24657
  var StyledImage = styled(CapturedDocumentImg)(_templateObject5$h || (_templateObject5$h = _taggedTemplateLiteralLoose(["\n width: 100%;\n border-radius: 12px;\n"])));
24687
24658
 
24688
- var _templateObject$B, _templateObject2$x, _templateObject3$o, _templateObject4$j;
24659
+ var _templateObject$C, _templateObject2$x, _templateObject3$o, _templateObject4$j;
24689
24660
  var CameraAccessDeniedOverlay = function CameraAccessDeniedOverlay(_ref) {
24690
24661
  var _assets$imageUrl, _classNames$container;
24691
24662
  var onRetry = _ref.onRetry,
@@ -24744,12 +24715,12 @@
24744
24715
  })
24745
24716
  });
24746
24717
  };
24747
- var StyledOverlayInner$2 = styled(OverlayInner$2)(_templateObject$B || (_templateObject$B = _taggedTemplateLiteralLoose(["\n max-width: 500px;\n height: auto;\n margin: auto;\n"])));
24718
+ var StyledOverlayInner$2 = styled(OverlayInner$2)(_templateObject$C || (_templateObject$C = _taggedTemplateLiteralLoose(["\n max-width: 500px;\n height: auto;\n margin: auto;\n"])));
24748
24719
  var StyledOverlayImageContainer = styled(OverlayImageContainer)(_templateObject2$x || (_templateObject2$x = _taggedTemplateLiteralLoose(["\n flex-grow: 0;\n"])));
24749
24720
  var Description$3 = styled.p(_templateObject3$o || (_templateObject3$o = _taggedTemplateLiteralLoose(["\n line-height: 1.5;\n margin-bottom: 50px;\n"])));
24750
24721
  var RetryButton$1 = styled(LoaderButton)(_templateObject4$j || (_templateObject4$j = _taggedTemplateLiteralLoose(["\n width: 200px;\n margin: 0 auto;\n"])));
24751
24722
 
24752
- var _templateObject$A, _templateObject2$w, _templateObject3$n;
24723
+ var _templateObject$B, _templateObject2$w, _templateObject3$n;
24753
24724
  var ErrorScreen = function ErrorScreen(_ref) {
24754
24725
  var error = _ref.error,
24755
24726
  onRetry = _ref.onRetry,
@@ -24940,7 +24911,7 @@
24940
24911
  // component pins its own foreground for the same reason (e.g.
24941
24912
  // IdCaptureLoadingOverlayDefault's `theme...textColor ?? 'black'`); do the
24942
24913
  // same here rather than inherit a foreground meant for the dark overlays.
24943
- var ErrorCard = styled(FlexCard)(_templateObject$A || (_templateObject$A = _taggedTemplateLiteralLoose(["\n color: black;\n"])));
24914
+ var ErrorCard = styled(FlexCard)(_templateObject$B || (_templateObject$B = _taggedTemplateLiteralLoose(["\n color: black;\n"])));
24944
24915
  var Heading$8 = styled.h1(_templateObject2$w || (_templateObject2$w = _taggedTemplateLiteralLoose(["\n font-size: 1.5rem;\n margin-top: 0;\n margin-bottom: 1rem;\n"])));
24945
24916
  var Description$2 = styled.p(_templateObject3$n || (_templateObject3$n = _taggedTemplateLiteralLoose(["\n line-height: 1.5;\n margin-bottom: 1.5rem;\n"])));
24946
24917
 
@@ -24983,7 +24954,7 @@
24983
24954
  return key === 'third' ? 'ID page of passport' : 'back of ID card';
24984
24955
  }
24985
24956
 
24986
- var _templateObject$z, _templateObject2$v, _templateObject3$m, _templateObject4$i, _templateObject5$g, _templateObject6$c, _templateObject7$a;
24957
+ var _templateObject$A, _templateObject2$v, _templateObject3$m, _templateObject4$i, _templateObject5$g, _templateObject6$c, _templateObject7$a;
24987
24958
  function IdCaptureFallback(_ref) {
24988
24959
  var _ref$captureRequireme = _ref.captureRequirement,
24989
24960
  captureRequirement = _ref$captureRequireme === void 0 ? 'idCardOrPassport' : _ref$captureRequireme,
@@ -25152,7 +25123,7 @@
25152
25123
  })
25153
25124
  });
25154
25125
  }
25155
- var StyledOverlayInner$1 = styled(OverlayInner$2)(_templateObject$z || (_templateObject$z = _taggedTemplateLiteralLoose(["\n justify-content: center;\n"])));
25126
+ var StyledOverlayInner$1 = styled(OverlayInner$2)(_templateObject$A || (_templateObject$A = _taggedTemplateLiteralLoose(["\n justify-content: center;\n"])));
25156
25127
  var Heading$7 = styled.h3(_templateObject2$v || (_templateObject2$v = _taggedTemplateLiteralLoose(["\n margin-bottom: 8px;\n"])));
25157
25128
  var Description$1 = styled.p(_templateObject3$m || (_templateObject3$m = _taggedTemplateLiteralLoose(["\n margin-bottom: 8px;\n"])));
25158
25129
  var Instruction = styled.p(_templateObject4$i || (_templateObject4$i = _taggedTemplateLiteralLoose(["\n font-weight: bold;\n"])));
@@ -25160,7 +25131,7 @@
25160
25131
  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"])));
25161
25132
  var StyledButtonsRow$6 = styled(ButtonsRow$2)(_templateObject7$a || (_templateObject7$a = _taggedTemplateLiteralLoose(["\n margin-top: 32px;\n"])));
25162
25133
 
25163
- var _templateObject$y, _templateObject2$u, _templateObject3$l, _templateObject4$h, _templateObject5$f, _templateObject6$b, _templateObject7$9, _templateObject8$8, _templateObject9$8, _templateObject0$7, _templateObject1$6, _templateObject10$6;
25134
+ var _templateObject$z, _templateObject2$u, _templateObject3$l, _templateObject4$h, _templateObject5$f, _templateObject6$b, _templateObject7$9, _templateObject8$8, _templateObject9$8, _templateObject0$7, _templateObject1$6, _templateObject10$6;
25164
25135
  function IdCaptureOrUploadScreen(_ref) {
25165
25136
  var _ref$captureRequireme = _ref.captureRequirement,
25166
25137
  captureRequirement = _ref$captureRequireme === void 0 ? 'idCardOrPassport' : _ref$captureRequireme,
@@ -25407,7 +25378,7 @@
25407
25378
  })]
25408
25379
  });
25409
25380
  }
25410
- 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) {
25381
+ var ScreenContainer = styled.div(_templateObject$z || (_templateObject$z = _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) {
25411
25382
  var _props$theme$backgrou, _props$theme;
25412
25383
  return (_props$theme$backgrou = (_props$theme = props.theme) == null ? void 0 : _props$theme.background) != null ? _props$theme$backgrou : '#fff';
25413
25384
  });
@@ -25528,7 +25499,7 @@
25528
25499
  return context ? context.sessionReady : true;
25529
25500
  }
25530
25501
 
25531
- var _templateObject$x;
25502
+ var _templateObject$y;
25532
25503
  function _createForOfIteratorHelperLoose$n(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$n(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."); }
25533
25504
  function _unsupportedIterableToArray$n(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$n(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$n(r, a) : void 0; } }
25534
25505
  function _arrayLikeToArray$n(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; }
@@ -25544,7 +25515,7 @@
25544
25515
  // containing block against whatever ancestor the host provides, exactly as
25545
25516
  // before this wrapper existed) while font-family -- an inherited CSS
25546
25517
  // property -- still cascades to every descendant.
25547
- var FontCarrier = styled.div(_templateObject$x || (_templateObject$x = _taggedTemplateLiteralLoose(["\n display: contents;\n ", "\n"])), function (props) {
25518
+ var FontCarrier = styled.div(_templateObject$y || (_templateObject$y = _taggedTemplateLiteralLoose(["\n display: contents;\n ", "\n"])), function (props) {
25548
25519
  var _props$theme;
25549
25520
  return (_props$theme = props.theme) != null && _props$theme.fontFamily ? "font-family: " + props.theme.fontFamily + ";" : '';
25550
25521
  });
@@ -28139,6 +28110,7 @@
28139
28110
  liveness: config.liveness ? createInitialLivenessMachineState() : null,
28140
28111
  challenge: null,
28141
28112
  livenessTimedOut: false,
28113
+ retryPending: false,
28142
28114
  handOverFace: {
28143
28115
  status: 'off',
28144
28116
  lastCheck: null
@@ -29520,6 +29492,19 @@
29520
29492
  livenessTimedOut: false
29521
29493
  });
29522
29494
  }
29495
+ // retry()'s reset of the terminal attempt, run straight away or once a
29496
+ // released camera is back. Moving off the terminal phase and verdict is
29497
+ // what takes the view's terminal screen down.
29498
+ function spendRetry() {
29499
+ if (config.liveness) resetLivenessAttempt();
29500
+ progress.retry('capture-error');
29501
+ internal.setState({
29502
+ retryPending: false
29503
+ });
29504
+ dispatch({
29505
+ type: 'retryRequested'
29506
+ });
29507
+ }
29523
29508
  // retry()'s capture re-entry, run straight away or once a released camera
29524
29509
  // is back.
29525
29510
  function resumeCapture() {
@@ -29676,6 +29661,7 @@
29676
29661
  liveness: config.liveness ? createInitialLivenessMachineState() : null,
29677
29662
  challenge: null,
29678
29663
  livenessTimedOut: false,
29664
+ retryPending: false,
29679
29665
  handOverFace: {
29680
29666
  status: 'off',
29681
29667
  lastCheck: null
@@ -29853,27 +29839,42 @@
29853
29839
  },
29854
29840
  retry: function retry() {
29855
29841
  if (!active) return;
29856
- if (config.liveness) resetLivenessAttempt();
29857
- progress.retry('capture-error');
29858
- dispatch({
29859
- type: 'retryRequested'
29860
- });
29861
29842
  if (!cameraReleased) {
29843
+ spendRetry();
29862
29844
  resumeCapture();
29863
29845
  return;
29864
29846
  }
29865
- // The terminal screen handed the camera back: get it again first, so
29866
- // the initial-delay gate and the kick-out count from a live feed. A
29867
- // second retry() while this is in flight joins it. A failure has
29868
- // already landed in `error` (requestCamera's own write), which puts
29869
- // up the camera error screen and its recovery path.
29847
+ // The terminal screen handed the camera back: get it again BEFORE
29848
+ // leaving that screen, so the user never lands on a feed with no
29849
+ // stream, and the initial-delay gate and kick-out count from a live
29850
+ // feed. A second retry() while this is in flight joins it.
29870
29851
  if (cameraReacquisition) return;
29852
+ internal.setState({
29853
+ retryPending: true
29854
+ });
29871
29855
  var generation = attachGeneration;
29856
+ // exitCapture() clears `retryPending` if it sent the user back to the
29857
+ // instructions while the camera was coming back.
29858
+ var stillPending = function stillPending() {
29859
+ return active && generation === attachGeneration && internal.getState().retryPending;
29860
+ };
29872
29861
  var reacquisition = requestCamera().then(function () {
29873
- // exitCapture() may have sent the user back to the instructions
29874
- // while the camera was coming back.
29875
- if (active && generation === attachGeneration && internal.getState().phase === 'capturing') resumeCapture();
29876
- })["catch"](function () {})["finally"](function () {
29862
+ if (!stillPending()) return;
29863
+ spendRetry();
29864
+ resumeCapture();
29865
+ }, function () {
29866
+ // Spend the attempt anyway so the terminal screen gives way to
29867
+ // the camera error screen, whose recovery re-enters through
29868
+ // 'loading'. 'retryRequested' clears `error`, so the one
29869
+ // requestCamera wrote goes back on after it.
29870
+ if (!stillPending()) return;
29871
+ var _internal$getState = internal.getState(),
29872
+ error = _internal$getState.error;
29873
+ spendRetry();
29874
+ internal.setState({
29875
+ error: error
29876
+ });
29877
+ })["finally"](function () {
29877
29878
  // detach() may have dropped this one and a newer one started.
29878
29879
  if (cameraReacquisition === reacquisition) cameraReacquisition = null;
29879
29880
  });
@@ -29882,8 +29883,8 @@
29882
29883
  exitCapture: function exitCapture() {
29883
29884
  var _frameLoop9;
29884
29885
  if (!active) return;
29885
- var _internal$getState = internal.getState(),
29886
- phase = _internal$getState.phase;
29886
+ var _internal$getState2 = internal.getState(),
29887
+ phase = _internal$getState2.phase;
29887
29888
  if (phase === 'initializing' || phase === 'loading') return;
29888
29889
  // Every armed timer belongs to the abandoned attempt.
29889
29890
  clearAllTimers();
@@ -29898,7 +29899,8 @@
29898
29899
  internal.setState({
29899
29900
  capturedAttempt: null,
29900
29901
  capturedImageUrl: null,
29901
- captureRecovery: null
29902
+ captureRecovery: null,
29903
+ retryPending: false
29902
29904
  });
29903
29905
  dispatch({
29904
29906
  type: 'exitRequested'
@@ -29944,8 +29946,8 @@
29944
29946
  return shimExports.useSyncExternalStore(subscribe, controller.getState, controller.getState);
29945
29947
  }
29946
29948
 
29947
- var _templateObject$w;
29948
- 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"])));
29949
+ var _templateObject$x;
29950
+ var SelfieCameraFeedWrapper = styled.div(_templateObject$x || (_templateObject$x = _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"])));
29949
29951
  function SelfieCameraFeed(_ref) {
29950
29952
  var videoRef = _ref.videoRef,
29951
29953
  isRearFacing = _ref.isRearFacing,
@@ -29959,7 +29961,7 @@
29959
29961
  });
29960
29962
  }
29961
29963
 
29962
- var _templateObject$v, _templateObject2$t, _templateObject3$k, _templateObject4$g;
29964
+ var _templateObject$w, _templateObject2$t, _templateObject3$k, _templateObject4$g;
29963
29965
  var _excluded$d = ["borderColor", "borderOpacity", "borderWidth", "status"],
29964
29966
  _excluded2$4 = ["status", "guideStyle"],
29965
29967
  _excluded3 = ["frame", "borderWidth", "borderColor", "borderOpacity", "verticalAlign", "status", "guideStyle"],
@@ -30036,7 +30038,7 @@
30036
30038
  // refresh rate for the whole capture, which low-end GPUs can't keep up with
30037
30039
  // while also running the camera and face model. Waves only render while the
30038
30040
  // status is 'ready', so the pulse replays each time the face leaves the guide.
30039
- 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"])));
30041
+ var headGuideWavesAnimation = keyframes(_templateObject$w || (_templateObject$w = _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"])));
30040
30042
  var PulsingHeadGuideContainer = styled.div(_templateObject2$t || (_templateObject2$t = _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);
30041
30043
  function HeadGuide(_ref2) {
30042
30044
  var _theme$selfieCapture$, _theme$selfieCapture, _theme$selfieCapture$2, _theme$selfieCapture2, _theme$selfieCapture$3, _theme$selfieCapture3, _props$className;
@@ -30348,8 +30350,8 @@
30348
30350
  }));
30349
30351
  }
30350
30352
 
30351
- var _templateObject$u, _templateObject2$s;
30352
- 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) {
30353
+ var _templateObject$v, _templateObject2$s;
30354
+ var FaceCaptureGuideContainer = styled.div(_templateObject$v || (_templateObject$v = _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) {
30353
30355
  return props.$clip ? 'overflow: hidden;' : '';
30354
30356
  });
30355
30357
  var FaceCaptureGuideInner = styled.div(_templateObject2$s || (_templateObject2$s = _taggedTemplateLiteralLoose(["\n position: relative;\n height: 60%;\n"])));
@@ -30662,7 +30664,7 @@
30662
30664
  });
30663
30665
  }
30664
30666
 
30665
- var _templateObject$t, _templateObject2$r, _templateObject3$j, _templateObject4$f, _templateObject5$e;
30667
+ var _templateObject$u, _templateObject2$r, _templateObject3$j, _templateObject4$f, _templateObject5$e;
30666
30668
  var legacyInstructionImageUrl = DEFAULT_CDN_URL$1 + "/Selfie-Image-1.png";
30667
30669
  // Module-level so the default `now` prop has a stable identity across
30668
30670
  // renders (it sits in useModelWarmingElapsedMs's effect dependency array).
@@ -30833,7 +30835,7 @@
30833
30835
  })
30834
30836
  });
30835
30837
  };
30836
- var OverlayInner = styled(LoadingOverlayInner)(_templateObject$t || (_templateObject$t = _taggedTemplateLiteralLoose(["\n background: ", ";\n color: ", ";\n"])), function (props) {
30838
+ var OverlayInner = styled(LoadingOverlayInner)(_templateObject$u || (_templateObject$u = _taggedTemplateLiteralLoose(["\n background: ", ";\n color: ", ";\n"])), function (props) {
30837
30839
  var _props$theme$selfieCa, _props$theme;
30838
30840
  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;
30839
30841
  }, function (props) {
@@ -30899,7 +30901,7 @@
30899
30901
  });
30900
30902
  }
30901
30903
 
30902
- var _templateObject$s, _templateObject2$q;
30904
+ var _templateObject$t, _templateObject2$q;
30903
30905
  var SelfieCaptureLoadingOverlayLegacy = function SelfieCaptureLoadingOverlayLegacy(_ref) {
30904
30906
  var _assets$instructionIm;
30905
30907
  var state = _ref.state,
@@ -30975,10 +30977,10 @@
30975
30977
  })
30976
30978
  });
30977
30979
  };
30978
- 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"])));
30980
+ var StyledGuidanceMessage = styled(GuidanceMessage)(_templateObject$t || (_templateObject$t = _taggedTemplateLiteralLoose(["\n padding: 12px 24px;\n font-weight: normal;\n line-height: 1.5;\n margin-bottom: -30px;\n"])));
30979
30981
  var StyledButtonsRow$5 = styled(ButtonsRow$2)(_templateObject2$q || (_templateObject2$q = _taggedTemplateLiteralLoose(["\n flex-direction: column;\n padding-top: 25px;\n"])));
30980
30982
 
30981
- var _templateObject$r, _templateObject2$p, _templateObject3$i, _templateObject4$e, _templateObject5$d, _templateObject6$a, _templateObject7$8;
30983
+ var _templateObject$s, _templateObject2$p, _templateObject3$i, _templateObject4$e, _templateObject5$d, _templateObject6$a, _templateObject7$8;
30982
30984
  // Module-level so the default `now` prop has a stable identity across
30983
30985
  // renders (it sits in useModelWarmingElapsedMs's effect dependency array).
30984
30986
  var defaultNow = function defaultNow() {
@@ -31236,7 +31238,7 @@
31236
31238
  })
31237
31239
  });
31238
31240
  };
31239
- var overlayFadeIn = keyframes(_templateObject$r || (_templateObject$r = _taggedTemplateLiteralLoose(["\n from { opacity: 0; }\n to { opacity: 1; }\n"])));
31241
+ var overlayFadeIn = keyframes(_templateObject$s || (_templateObject$s = _taggedTemplateLiteralLoose(["\n from { opacity: 0; }\n to { opacity: 1; }\n"])));
31240
31242
  var RingOverlayInner = styled(LoadingOverlayInner)(_templateObject2$p || (_templateObject2$p = _taggedTemplateLiteralLoose(["\n background: ", ";\n color: ", ";\n ", "\n"])), function (props) {
31241
31243
  var _props$theme$selfieCa, _props$theme;
31242
31244
  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)';
@@ -31279,7 +31281,7 @@
31279
31281
  return jsx(Component, _extends({}, props));
31280
31282
  };
31281
31283
 
31282
- var _templateObject$q, _templateObject2$o, _templateObject3$h, _templateObject4$d, _templateObject5$c, _templateObject6$9;
31284
+ var _templateObject$r, _templateObject2$o, _templateObject3$h, _templateObject4$d, _templateObject5$c, _templateObject6$9;
31283
31285
  function SelfieCaptureFallback(_ref) {
31284
31286
  var _ref$silentFallback = _ref.silentFallback,
31285
31287
  silentFallback = _ref$silentFallback === void 0 ? false : _ref$silentFallback,
@@ -31433,14 +31435,14 @@
31433
31435
  })
31434
31436
  });
31435
31437
  }
31436
- var StyledOverlayInner = styled(OverlayInner$2)(_templateObject$q || (_templateObject$q = _taggedTemplateLiteralLoose(["\n justify-content: center;\n padding: 24px;\n box-sizing: border-box;\n"])));
31438
+ var StyledOverlayInner = styled(OverlayInner$2)(_templateObject$r || (_templateObject$r = _taggedTemplateLiteralLoose(["\n justify-content: center;\n padding: 24px;\n box-sizing: border-box;\n"])));
31437
31439
  var Heading$6 = styled.h1(_templateObject2$o || (_templateObject2$o = _taggedTemplateLiteralLoose(["\n font-size: 1.5rem;\n margin: 0 0 1rem;\n"])));
31438
31440
  var Description = styled.p(_templateObject3$h || (_templateObject3$h = _taggedTemplateLiteralLoose(["\n line-height: 1.5;\n margin: 0 0 1.5rem;\n"])));
31439
31441
  var ImageContainer$4 = styled.div(_templateObject4$d || (_templateObject4$d = _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"])));
31440
31442
  var ReadFailed = styled.p(_templateObject5$c || (_templateObject5$c = _taggedTemplateLiteralLoose(["\n margin: 0 0 1rem;\n"])));
31441
31443
  var StyledButtonsRow$4 = styled(ButtonsRow$2)(_templateObject6$9 || (_templateObject6$9 = _taggedTemplateLiteralLoose(["\n display: flex;\n gap: 12px;\n justify-content: center;\n"])));
31442
31444
 
31443
- var _templateObject$p, _templateObject2$n;
31445
+ var _templateObject$q, _templateObject2$n;
31444
31446
  function SelfieCaptureSurface(_ref) {
31445
31447
  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;
31446
31448
  var controller = _ref.controller,
@@ -31842,7 +31844,7 @@
31842
31844
  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)]
31843
31845
  });
31844
31846
  }
31845
- 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"])));
31847
+ var ManualCaptureButtonContainer = styled.div(_templateObject$q || (_templateObject$q = _taggedTemplateLiteralLoose(["\n position: absolute;\n z-index: 4;\n left: 50%;\n bottom: 24px;\n transform: translateX(-50%);\n"])));
31846
31848
  // A footer below the camera keeps the lighting guidance visible above it.
31847
31849
  var CaptureRecoveryActions = styled.div(_templateObject2$n || (_templateObject2$n = _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"])));
31848
31850
 
@@ -31977,7 +31979,7 @@
31977
31979
  return null;
31978
31980
  }
31979
31981
 
31980
- var _GUIDANCE_VERBIAGE_FI, _templateObject$o;
31982
+ var _GUIDANCE_VERBIAGE_FI, _templateObject$p;
31981
31983
  // `state.guidance.code` -> the SelfieGuidanceVerbiage field that overrides
31982
31984
  // it. Keyed off the same `SelfieGuidanceCode` values selfieGuidanceMessageKey
31983
31985
  // switches on (guidance/selfieStrings.ts) — NONE has no field (the pill is
@@ -31995,7 +31997,7 @@
31995
31997
  // still-mounted-through-error rationale as IdCaptureView's ScalingCameraFeed
31996
31998
  // (a successful retry()/requestCamera() re-attaches into the SAME element).
31997
31999
  var CAPTURE_SURFACE_PHASES$1 = new Set(['capturing', 'challenge', 'processing', 'checking', 'completed', 'failed']);
31998
- 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) {
32000
+ var Container$2 = styled.div(_templateObject$p || (_templateObject$p = _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) {
31999
32001
  var _props$theme;
32000
32002
  return (_props$theme = props.theme) != null && _props$theme.fontFamily ? "font-family: " + props.theme.fontFamily + ";" : '';
32001
32003
  });
@@ -32173,11 +32175,24 @@
32173
32175
  });
32174
32176
  }
32175
32177
 
32178
+ var _templateObject$o;
32179
+ /**
32180
+ * A polite live region that is read aloud but not shown. For a change with no
32181
+ * focused text to carry it, such as a button that went busy and dropped focus
32182
+ * by being disabled. Keep it mounted and change its text: a region that mounts
32183
+ * already holding its message is often not announced.
32184
+ */
32185
+ var ScreenReaderStatus = styled.span.attrs({
32186
+ role: 'status'
32187
+ })(_templateObject$o || (_templateObject$o = _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"])));
32188
+
32176
32189
  var _templateObject$n, _templateObject2$m;
32177
32190
  var FaceLivenessSuccess = function FaceLivenessSuccess(_ref) {
32178
32191
  var imageUrl = _ref.imageUrl,
32179
32192
  onDoneClick = _ref.onDoneClick,
32180
32193
  onRetryClick = _ref.onRetryClick,
32194
+ _ref$retrying = _ref.retrying,
32195
+ retrying = _ref$retrying === void 0 ? false : _ref$retrying,
32181
32196
  _ref$classNames = _ref.classNames,
32182
32197
  classNames = _ref$classNames === void 0 ? {} : _ref$classNames,
32183
32198
  _ref$colors = _ref.colors,
@@ -32187,6 +32202,7 @@
32187
32202
  var verbiage = useTranslations(rawVerbiage, {
32188
32203
  headingText: 'Face liveness has been verified!',
32189
32204
  retryBtnText: 'Retry',
32205
+ retryingBtnText: 'Starting camera...',
32190
32206
  doneBtnText: 'Done'
32191
32207
  });
32192
32208
  var imageContainerRef = React.useRef(null);
@@ -32216,20 +32232,24 @@
32216
32232
  children: verbiage.headingText
32217
32233
  }), jsxs(ButtonsColumn, {
32218
32234
  className: classNames.buttonsRow,
32219
- children: [jsx(WideButton, {
32235
+ children: [jsx(ScreenReaderStatus, {
32236
+ children: retrying ? verbiage.retryingBtnText : null
32237
+ }), jsx(WideButton, {
32220
32238
  variant: "positive",
32221
32239
  onClick: onDoneClick,
32222
32240
  colors: colors.doneBtn,
32223
32241
  className: classNames.doneBtn,
32224
32242
  finished: true,
32243
+ // Done would race the retry the user already started.
32244
+ disabled: retrying,
32225
32245
  children: verbiage.doneBtnText
32226
32246
  }), jsx(WideBorderButton, {
32227
32247
  variant: "secondary",
32228
32248
  onClick: onRetryClick,
32229
32249
  colors: colors.retryBtn,
32230
32250
  className: classNames.retryBtn,
32231
- finished: true,
32232
- children: verbiage.retryBtnText
32251
+ finished: !retrying,
32252
+ children: retrying ? verbiage.retryingBtnText : verbiage.retryBtnText
32233
32253
  })]
32234
32254
  })]
32235
32255
  })
@@ -32245,6 +32265,8 @@
32245
32265
  var _ref$canRetry = _ref.canRetry,
32246
32266
  canRetry = _ref$canRetry === void 0 ? true : _ref$canRetry,
32247
32267
  onRetryClick = _ref.onRetryClick,
32268
+ _ref$retrying = _ref.retrying,
32269
+ retrying = _ref$retrying === void 0 ? false : _ref$retrying,
32248
32270
  onExitClick = _ref.onExitClick,
32249
32271
  _ref$assets = _ref.assets,
32250
32272
  assets = _ref$assets === void 0 ? {} : _ref$assets,
@@ -32258,6 +32280,7 @@
32258
32280
  var verbiage = useTranslations(rawVerbiage, {
32259
32281
  headingText: 'Live face not detected, please try again',
32260
32282
  retryBtnText: 'Retry',
32283
+ retryingBtnText: 'Starting camera...',
32261
32284
  exitBtnText: 'Exit'
32262
32285
  });
32263
32286
  return jsx(GrayOverlayContainer, {
@@ -32277,13 +32300,15 @@
32277
32300
  children: verbiage.headingText
32278
32301
  }), jsxs(ButtonsColumn, {
32279
32302
  className: classNames.buttonsRow,
32280
- children: [canRetry && jsx(WideButton, {
32303
+ children: [jsx(ScreenReaderStatus, {
32304
+ children: retrying ? verbiage.retryingBtnText : null
32305
+ }), canRetry && jsx(WideButton, {
32281
32306
  variant: "secondary",
32282
32307
  className: classNames.retryBtn,
32283
32308
  onClick: onRetryClick,
32284
32309
  colors: colors.retryBtn,
32285
- finished: true,
32286
- children: verbiage.retryBtnText
32310
+ finished: !retrying,
32311
+ children: retrying ? verbiage.retryingBtnText : verbiage.retryBtnText
32287
32312
  }), jsx(WideBorderButton, {
32288
32313
  variant: "secondary",
32289
32314
  className: classNames.exitBtn,
@@ -32567,6 +32592,9 @@
32567
32592
  // back and let the camera light go out. `restartRun` gets it again through
32568
32593
  // the controller's retry(). A skipped success screen needs nothing here: the
32569
32594
  // host moves on and unmounting detaches.
32595
+ // Core holds the terminal screen up while a retry waits for that camera
32596
+ // (`retryPending`), so its Retry button shows the wait instead of the user
32597
+ // landing on a black feed.
32570
32598
  var coveredByTerminalScreen = showSuccessScreen || showFailureScreen;
32571
32599
  React.useEffect(function () {
32572
32600
  if (coveredByTerminalScreen) controller.actions.releaseCamera();
@@ -32631,12 +32659,19 @@
32631
32659
  return onDone == null ? void 0 : onDone(completedImageUrl);
32632
32660
  },
32633
32661
  onRetryClick: restartRun,
32662
+ retrying: state.retryPending,
32634
32663
  verbiage: verbiage.success,
32635
32664
  classNames: classNames.success,
32636
32665
  colors: colors.success
32637
- }), showFailureScreen && jsx(FaceLivenessFailure, {
32638
- canRetry: canRetryFailure,
32666
+ }), showFailureScreen && jsx(FaceLivenessFailure
32667
+ // The click already spent the budget; keep the last retry's button
32668
+ // up while it waits on the camera.
32669
+ , {
32670
+ // The click already spent the budget; keep the last retry's button
32671
+ // up while it waits on the camera.
32672
+ canRetry: canRetryFailure || state.retryPending,
32639
32673
  onRetryClick: restartRun,
32674
+ retrying: state.retryPending,
32640
32675
  onExitClick: onExitAfterFailure != null ? onExitAfterFailure : onExit,
32641
32676
  assets: assets.failure,
32642
32677
  verbiage: verbiage.failure,
@@ -41596,14 +41631,8 @@
41596
41631
  className: classNames.captureBtn,
41597
41632
  finished: state.camera.ready,
41598
41633
  variant: "primary",
41599
- // Guarded rather than relying on `disabled` alone: with
41600
- // `finished` false, LoaderButton hands the element to ladda,
41601
- // which manipulates its disabled state imperatively
41602
- // (LoaderButton.tsx:63-79). The button can therefore be
41603
- // clickable mid-animation, which CI caught.
41604
41634
  onClick: function onClick() {
41605
- if (!state.camera.ready || state.capturing) return;
41606
- void controller.actions.capture();
41635
+ return void controller.actions.capture();
41607
41636
  },
41608
41637
  disabled: !state.camera.ready || state.capturing,
41609
41638
  children: !state.camera.ready ? verbiage.loadingBtnText : state.capturing ? verbiage.capturingBtnText : verbiage.captureBtnText
@@ -54108,7 +54137,7 @@
54108
54137
  });
54109
54138
  }
54110
54139
 
54111
- var webSdkVersion = '2.5.83-changeset-release-develop-eb57522';
54140
+ var webSdkVersion = '2.5.83-changeset-release-develop-2127d44';
54112
54141
 
54113
54142
  // GENERATED by scripts/styleBagTypes.mjs from
54114
54143
  // src/__fixtures__/sdk2StyleBags.json and the mapper sweep — do not
@@ -57440,468 +57469,6 @@
57440
57469
  // of the 2.x contract — a consumer that imports a single type still gets it.
57441
57470
  initializeI18n();
57442
57471
 
57443
- var __assign = undefined && undefined.__assign || function () {
57444
- __assign = Object.assign || function (t) {
57445
- for (var s, i = 1, n = arguments.length; i < n; i++) {
57446
- s = arguments[i];
57447
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
57448
- }
57449
- return t;
57450
- };
57451
- return __assign.apply(this, arguments);
57452
- };
57453
- var defaults = {
57454
- lines: 12,
57455
- length: 7,
57456
- width: 5,
57457
- radius: 10,
57458
- scale: 1.0,
57459
- corners: 1,
57460
- color: '#000',
57461
- fadeColor: 'transparent',
57462
- animation: 'spinner-line-fade-default',
57463
- rotate: 0,
57464
- direction: 1,
57465
- speed: 1,
57466
- zIndex: 2e9,
57467
- className: 'spinner',
57468
- top: '50%',
57469
- left: '50%',
57470
- shadow: '0 0 1px transparent',
57471
- // prevent aliased lines
57472
- position: 'absolute'
57473
- };
57474
- var Spinner = /** @class */function () {
57475
- function Spinner(opts) {
57476
- if (opts === void 0) {
57477
- opts = {};
57478
- }
57479
- this.opts = __assign(__assign({}, defaults), opts);
57480
- }
57481
- /**
57482
- * Adds the spinner to the given target element. If this instance is already
57483
- * spinning, it is automatically removed from its previous target by calling
57484
- * stop() internally.
57485
- */
57486
- Spinner.prototype.spin = function (target) {
57487
- this.stop();
57488
- this.el = document.createElement('div');
57489
- this.el.className = this.opts.className;
57490
- this.el.setAttribute('role', 'progressbar');
57491
- this.el.style.position = this.opts.position;
57492
- this.el.style.width = "0";
57493
- this.el.style.zIndex = this.opts.zIndex.toString();
57494
- this.el.style.left = this.opts.left;
57495
- this.el.style.top = this.opts.top;
57496
- this.el.style.transform = "scale(".concat(this.opts.scale, ")");
57497
- if (target) {
57498
- target.insertBefore(this.el, target.firstChild || null);
57499
- }
57500
- drawLines(this.el, this.opts);
57501
- return this;
57502
- };
57503
- /**
57504
- * Stops and removes the Spinner.
57505
- * Stopped spinners may be reused by calling spin() again.
57506
- */
57507
- Spinner.prototype.stop = function () {
57508
- if (this.el) {
57509
- if (this.el.parentNode) {
57510
- this.el.parentNode.removeChild(this.el);
57511
- }
57512
- this.el = undefined;
57513
- }
57514
- return this;
57515
- };
57516
- return Spinner;
57517
- }();
57518
- /**
57519
- * Returns the line color from the given string or array.
57520
- */
57521
- function getColor(color, idx) {
57522
- return typeof color == 'string' ? color : color[idx % color.length];
57523
- }
57524
- /**
57525
- * Internal method that draws the individual lines.
57526
- */
57527
- function drawLines(el, opts) {
57528
- var borderRadius = Math.round(opts.corners * opts.width * 500) / 1000 + 'px';
57529
- var shadow = 'none';
57530
- if (opts.shadow === true) {
57531
- shadow = '0 2px 4px #000'; // default shadow
57532
- } else if (typeof opts.shadow === 'string') {
57533
- shadow = opts.shadow;
57534
- }
57535
- var shadows = parseBoxShadow(shadow);
57536
- for (var i = 0; i < opts.lines; i++) {
57537
- var degrees = ~~(360 / opts.lines * i + opts.rotate);
57538
- var backgroundLine = document.createElement('div');
57539
- backgroundLine.style.position = 'absolute';
57540
- backgroundLine.style.top = "".concat(-opts.width / 2, "px");
57541
- backgroundLine.style.width = opts.length + opts.width + 'px';
57542
- backgroundLine.style.height = opts.width + 'px';
57543
- backgroundLine.style.background = getColor(opts.fadeColor, i);
57544
- backgroundLine.style.borderRadius = borderRadius;
57545
- backgroundLine.style.transformOrigin = 'left';
57546
- backgroundLine.style.transform = "rotate(".concat(degrees, "deg) translateX(").concat(opts.radius, "px)");
57547
- var delay = i * opts.direction / opts.lines / opts.speed;
57548
- delay -= 1 / opts.speed; // so initial animation state will include trail
57549
- var line = document.createElement('div');
57550
- line.style.width = '100%';
57551
- line.style.height = '100%';
57552
- line.style.background = getColor(opts.color, i);
57553
- line.style.borderRadius = borderRadius;
57554
- line.style.boxShadow = normalizeShadow(shadows, degrees);
57555
- line.style.animation = "".concat(1 / opts.speed, "s linear ").concat(delay, "s infinite ").concat(opts.animation);
57556
- backgroundLine.appendChild(line);
57557
- el.appendChild(backgroundLine);
57558
- }
57559
- }
57560
- function parseBoxShadow(boxShadow) {
57561
- var regex = /^\s*([a-zA-Z]+\s+)?(-?\d+(\.\d+)?)([a-zA-Z]*)\s+(-?\d+(\.\d+)?)([a-zA-Z]*)(.*)$/;
57562
- var shadows = [];
57563
- for (var _i = 0, _a = boxShadow.split(','); _i < _a.length; _i++) {
57564
- var shadow = _a[_i];
57565
- var matches = shadow.match(regex);
57566
- if (matches === null) {
57567
- continue; // invalid syntax
57568
- }
57569
- var x = +matches[2];
57570
- var y = +matches[5];
57571
- var xUnits = matches[4];
57572
- var yUnits = matches[7];
57573
- if (x === 0 && !xUnits) {
57574
- xUnits = yUnits;
57575
- }
57576
- if (y === 0 && !yUnits) {
57577
- yUnits = xUnits;
57578
- }
57579
- if (xUnits !== yUnits) {
57580
- continue; // units must match to use as coordinates
57581
- }
57582
- shadows.push({
57583
- prefix: matches[1] || '',
57584
- // could have value of 'inset' or undefined
57585
- x: x,
57586
- y: y,
57587
- xUnits: xUnits,
57588
- yUnits: yUnits,
57589
- end: matches[8]
57590
- });
57591
- }
57592
- return shadows;
57593
- }
57594
- /**
57595
- * Modify box-shadow x/y offsets to counteract rotation
57596
- */
57597
- function normalizeShadow(shadows, degrees) {
57598
- var normalized = [];
57599
- for (var _i = 0, shadows_1 = shadows; _i < shadows_1.length; _i++) {
57600
- var shadow = shadows_1[_i];
57601
- var xy = convertOffset(shadow.x, shadow.y, degrees);
57602
- normalized.push(shadow.prefix + xy[0] + shadow.xUnits + ' ' + xy[1] + shadow.yUnits + shadow.end);
57603
- }
57604
- return normalized.join(', ');
57605
- }
57606
- function convertOffset(x, y, degrees) {
57607
- var radians = degrees * Math.PI / 180;
57608
- var sin = Math.sin(radians);
57609
- var cos = Math.cos(radians);
57610
- return [Math.round((x * cos + y * sin) * 1000) / 1000, Math.round((-x * sin + y * cos) * 1000) / 1000];
57611
- }
57612
-
57613
- /*!
57614
- * Ladda
57615
- * http://lab.hakim.se/ladda
57616
- * MIT licensed
57617
- *
57618
- * Copyright (C) 2018 Hakim El Hattab, http://hakim.se
57619
- */
57620
-
57621
-
57622
- // All currently instantiated instances of Ladda
57623
- var ALL_INSTANCES = [];
57624
-
57625
- /**
57626
- * Creates a new instance of Ladda which wraps the
57627
- * target button element.
57628
- *
57629
- * @return An API object that can be used to control
57630
- * the loading animation state.
57631
- */
57632
- function create(button) {
57633
- if (typeof button === 'undefined') {
57634
- console.warn("Ladda button target must be defined.");
57635
- return;
57636
- }
57637
-
57638
- // The button must have the class "ladda-button"
57639
- if (!button.classList.contains('ladda-button')) {
57640
- button.classList.add('ladda-button');
57641
- }
57642
-
57643
- // Style is required, default to "expand-right"
57644
- if (!button.hasAttribute('data-style')) {
57645
- button.setAttribute('data-style', 'expand-right');
57646
- }
57647
-
57648
- // The text contents must be wrapped in a ladda-label
57649
- // element, create one if it doesn't already exist
57650
- if (!button.querySelector('.ladda-label')) {
57651
- var laddaLabel = document.createElement('span');
57652
- laddaLabel.className = 'ladda-label';
57653
- wrapContent(button, laddaLabel);
57654
- }
57655
-
57656
- // The spinner component
57657
- var spinnerWrapper = button.querySelector('.ladda-spinner');
57658
-
57659
- // Wrapper element for the spinner
57660
- if (!spinnerWrapper) {
57661
- spinnerWrapper = document.createElement('span');
57662
- spinnerWrapper.className = 'ladda-spinner';
57663
- }
57664
- button.appendChild(spinnerWrapper);
57665
-
57666
- // Timer used to delay starting/stopping
57667
- var timer;
57668
- var spinner;
57669
- var instance = {
57670
- /**
57671
- * Enter the loading state.
57672
- */
57673
- start: function start() {
57674
- // Create the spinner if it doesn't already exist
57675
- if (!spinner) {
57676
- spinner = createSpinner(button);
57677
- }
57678
- button.disabled = true;
57679
- button.setAttribute('data-loading', '');
57680
- clearTimeout(timer);
57681
- spinner.spin(spinnerWrapper);
57682
- this.setProgress(0);
57683
- return this; // chain
57684
- },
57685
- /**
57686
- * Enter the loading state, after a delay.
57687
- */
57688
- startAfter: function startAfter(delay) {
57689
- clearTimeout(timer);
57690
- timer = setTimeout(function () {
57691
- instance.start();
57692
- }, delay);
57693
- return this; // chain
57694
- },
57695
- /**
57696
- * Exit the loading state.
57697
- */
57698
- stop: function stop() {
57699
- if (instance.isLoading()) {
57700
- button.disabled = false;
57701
- button.removeAttribute('data-loading');
57702
- }
57703
-
57704
- // Kill the animation after a delay to make sure it
57705
- // runs for the duration of the button transition
57706
- clearTimeout(timer);
57707
- if (spinner) {
57708
- timer = setTimeout(function () {
57709
- spinner.stop();
57710
- }, 1000);
57711
- }
57712
- return this; // chain
57713
- },
57714
- /**
57715
- * Toggle the loading state on/off.
57716
- */
57717
- toggle: function toggle() {
57718
- return this.isLoading() ? this.stop() : this.start();
57719
- },
57720
- /**
57721
- * Sets the width of the visual progress bar inside of
57722
- * this Ladda button
57723
- *
57724
- * @param {number} progress in the range of 0-1
57725
- */
57726
- setProgress: function setProgress(progress) {
57727
- // Cap it
57728
- progress = Math.max(Math.min(progress, 1), 0);
57729
- var progressElement = button.querySelector('.ladda-progress');
57730
-
57731
- // Remove the progress bar if we're at 0 progress
57732
- if (progress === 0 && progressElement && progressElement.parentNode) {
57733
- progressElement.parentNode.removeChild(progressElement);
57734
- } else {
57735
- if (!progressElement) {
57736
- progressElement = document.createElement('div');
57737
- progressElement.className = 'ladda-progress';
57738
- button.appendChild(progressElement);
57739
- }
57740
- progressElement.style.width = (progress || 0) * button.offsetWidth + 'px';
57741
- }
57742
- },
57743
- isLoading: function isLoading() {
57744
- return button.hasAttribute('data-loading');
57745
- },
57746
- remove: function remove() {
57747
- clearTimeout(timer);
57748
- button.disabled = false;
57749
- button.removeAttribute('data-loading');
57750
- if (spinner) {
57751
- spinner.stop();
57752
- spinner = null;
57753
- }
57754
- ALL_INSTANCES.splice(ALL_INSTANCES.indexOf(instance), 1);
57755
- }
57756
- };
57757
- ALL_INSTANCES.push(instance);
57758
- return instance;
57759
- }
57760
-
57761
- /**
57762
- * Binds the target buttons to automatically enter the
57763
- * loading state when clicked.
57764
- *
57765
- * @param target Either an HTML element or a CSS selector.
57766
- * @param options
57767
- * - timeout Number of milliseconds to wait before
57768
- * automatically cancelling the animation.
57769
- * - callback A function to be called with the Ladda
57770
- * instance when a target button is clicked.
57771
- */
57772
- function bind(target, options) {
57773
- var targets;
57774
- if (typeof target === 'string') {
57775
- targets = document.querySelectorAll(target);
57776
- } else if (typeof target === 'object') {
57777
- targets = [target];
57778
- } else {
57779
- throw new Error('target must be string or object');
57780
- }
57781
- options = options || {};
57782
- for (var i = 0; i < targets.length; i++) {
57783
- bindElement(targets[i], options);
57784
- }
57785
- }
57786
-
57787
- /**
57788
- * Stops ALL current loading animations.
57789
- */
57790
- function stopAll() {
57791
- for (var i = 0, len = ALL_INSTANCES.length; i < len; i++) {
57792
- ALL_INSTANCES[i].stop();
57793
- }
57794
- }
57795
-
57796
- /**
57797
- * Get the first ancestor node from an element, having a
57798
- * certain type.
57799
- *
57800
- * @param elem An HTML element
57801
- * @param type an HTML tag type (uppercased)
57802
- *
57803
- * @return An HTML element
57804
- */
57805
- function getAncestorOfTagType(elem, type) {
57806
- while (elem.parentNode && elem.tagName !== type) {
57807
- elem = elem.parentNode;
57808
- }
57809
- return type === elem.tagName ? elem : undefined;
57810
- }
57811
- function createSpinner(button) {
57812
- var height = button.offsetHeight,
57813
- spinnerColor,
57814
- spinnerLines;
57815
- if (height === 0) {
57816
- // We may have an element that is not visible so
57817
- // we attempt to get the height in a different way
57818
- height = parseFloat(window.getComputedStyle(button).height);
57819
- }
57820
-
57821
- // If the button is tall we can afford some padding
57822
- if (height > 32) {
57823
- height *= 0.8;
57824
- }
57825
-
57826
- // Prefer an explicit height if one is defined
57827
- if (button.hasAttribute('data-spinner-size')) {
57828
- height = parseInt(button.getAttribute('data-spinner-size'), 10);
57829
- }
57830
-
57831
- // Allow buttons to specify the color of the spinner element
57832
- if (button.hasAttribute('data-spinner-color')) {
57833
- spinnerColor = button.getAttribute('data-spinner-color');
57834
- }
57835
-
57836
- // Allow buttons to specify the number of lines of the spinner
57837
- if (button.hasAttribute('data-spinner-lines')) {
57838
- spinnerLines = parseInt(button.getAttribute('data-spinner-lines'), 10);
57839
- }
57840
- var radius = height * 0.2,
57841
- length = radius * 0.6,
57842
- width = radius < 7 ? 2 : 3;
57843
- return new Spinner({
57844
- color: spinnerColor || '#fff',
57845
- lines: spinnerLines || 12,
57846
- radius: radius,
57847
- length: length,
57848
- width: width,
57849
- animation: 'ladda-spinner-line-fade',
57850
- zIndex: 'auto',
57851
- top: 'auto',
57852
- left: 'auto',
57853
- className: ''
57854
- });
57855
- }
57856
- function wrapContent(node, wrapper) {
57857
- var r = document.createRange();
57858
- r.selectNodeContents(node);
57859
- r.surroundContents(wrapper);
57860
- node.appendChild(wrapper);
57861
- }
57862
- function bindElement(element, options) {
57863
- if (typeof element.addEventListener !== 'function') {
57864
- return;
57865
- }
57866
- var instance = create(element);
57867
- var timeout = -1;
57868
- element.addEventListener('click', function () {
57869
- // If the button belongs to a form, make sure all the
57870
- // fields in that form are filled out
57871
- var valid = true;
57872
- var form = getAncestorOfTagType(element, 'FORM');
57873
- if (typeof form !== 'undefined' && !form.hasAttribute('novalidate')) {
57874
- // Modern form validation
57875
- if (typeof form.checkValidity === 'function') {
57876
- valid = form.checkValidity();
57877
- }
57878
- }
57879
- if (valid) {
57880
- // This is asynchronous to avoid an issue where disabling
57881
- // the button prevents forms from submitting
57882
- instance.startAfter(1);
57883
-
57884
- // Set a loading timeout if one is specified
57885
- if (typeof options.timeout === 'number') {
57886
- clearTimeout(timeout);
57887
- timeout = setTimeout(instance.stop, options.timeout);
57888
- }
57889
-
57890
- // Invoke callbacks
57891
- if (typeof options.callback === 'function') {
57892
- options.callback.apply(null, [instance]);
57893
- }
57894
- }
57895
- }, false);
57896
- }
57897
-
57898
- var ladda = /*#__PURE__*/Object.freeze({
57899
- __proto__: null,
57900
- bind: bind,
57901
- create: create,
57902
- stopAll: stopAll
57903
- });
57904
-
57905
57472
  var _templateObject, _templateObject2, _templateObject3, _templateObject4;
57906
57473
  function _createForOfIteratorHelperLoose$9(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$9(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."); }
57907
57474
  function _unsupportedIterableToArray$9(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$9(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$9(r, a) : void 0; } }