@sekyro/elements 0.0.0-stage → 0.1.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/LICENSE +29 -0
  3. package/README.md +247 -2
  4. package/custom-elements.json +355 -0
  5. package/dist/cdn/chunks/background-monitor-GCMNCJMG-UXYQ5GX7.js +1 -0
  6. package/dist/cdn/chunks/camera-trait-HVV5ZEDI-JB4HN6S3.js +1 -0
  7. package/dist/cdn/chunks/capture-session-doc-ELX6VK6Z-SDM3ILRA.js +1 -0
  8. package/dist/cdn/chunks/chunk-36WGD7QV.js +14 -0
  9. package/dist/cdn/chunks/chunk-4FHWXBOB.js +1 -0
  10. package/dist/cdn/chunks/chunk-5FLR7RPJ.js +1 -0
  11. package/dist/cdn/chunks/chunk-6H22RNSK.js +1 -0
  12. package/dist/cdn/chunks/chunk-7HJH5Q4M.js +1 -0
  13. package/dist/cdn/chunks/chunk-7Y73DZJB.js +1 -0
  14. package/dist/cdn/chunks/chunk-BF6SE2AC.js +1 -0
  15. package/dist/cdn/chunks/chunk-BZ37D4FR.js +1 -0
  16. package/dist/cdn/chunks/chunk-CFJJD6T2.js +1 -0
  17. package/dist/cdn/chunks/chunk-CMDITVXF.js +1 -0
  18. package/dist/cdn/chunks/chunk-CMS5FVGM.js +1 -0
  19. package/dist/cdn/chunks/chunk-CYGAKCKG.js +1 -0
  20. package/dist/cdn/chunks/chunk-D334IAZJ.js +1 -0
  21. package/dist/cdn/chunks/chunk-ET7NCKUV.js +1 -0
  22. package/dist/cdn/chunks/chunk-FAIDO3QL.js +1 -0
  23. package/dist/cdn/chunks/chunk-FCTRNWRU.js +1 -0
  24. package/dist/cdn/chunks/chunk-FDWO4KXK.js +1 -0
  25. package/dist/cdn/chunks/chunk-FEWP7HBJ.js +1 -0
  26. package/dist/cdn/chunks/chunk-HDJ6JFXX.js +1 -0
  27. package/dist/cdn/chunks/chunk-HQF66Y6S.js +1 -0
  28. package/dist/cdn/chunks/chunk-IBOJTLL7.js +1 -0
  29. package/dist/cdn/chunks/chunk-JM3CYFFZ.js +1 -0
  30. package/dist/cdn/chunks/chunk-JOZCJGRV.js +1 -0
  31. package/dist/cdn/chunks/chunk-KLE75SX4.js +1 -0
  32. package/dist/cdn/chunks/chunk-LYYAVERP.js +1 -0
  33. package/dist/cdn/chunks/chunk-PUO2VWDE.js +33 -0
  34. package/dist/cdn/chunks/chunk-RK4HVNRS.js +1 -0
  35. package/dist/cdn/chunks/chunk-RRLXNT33.js +1 -0
  36. package/dist/cdn/chunks/chunk-SK6UAYX2.js +1 -0
  37. package/dist/cdn/chunks/chunk-T4M2J44L.js +1 -0
  38. package/dist/cdn/chunks/chunk-U3UDWPBG.js +1 -0
  39. package/dist/cdn/chunks/chunk-UZWMCNZI.js +1 -0
  40. package/dist/cdn/chunks/chunk-X3BGM3B2.js +1 -0
  41. package/dist/cdn/chunks/chunk-X767DBO7.js +1 -0
  42. package/dist/cdn/chunks/chunk-YWPZG2MZ.js +25 -0
  43. package/dist/cdn/chunks/chunk-ZIC5GEH2.js +1 -0
  44. package/dist/cdn/chunks/chunk-ZKLSZJFN.js +1 -0
  45. package/dist/cdn/chunks/clip-inspect-HZ7N2YOP-DCDXB76T.js +1 -0
  46. package/dist/cdn/chunks/create-document-capture-UHZJUZHC-YYZNCSW6.js +1 -0
  47. package/dist/cdn/chunks/create-portrait-capture-VRZZOMJS-I4FBRNBP.js +1 -0
  48. package/dist/cdn/chunks/detector-scanic-F3Y5X3DF-FGVR4NEM.js +1 -0
  49. package/dist/cdn/chunks/document-capture-view-JE6IX4IE-2454PW6Z.js +1 -0
  50. package/dist/cdn/chunks/eid-view-RZS6MLT6-35VSHTV3.js +1 -0
  51. package/dist/cdn/chunks/email-otp-view-WUQ5OGDD-YDSUKAN2.js +1 -0
  52. package/dist/cdn/chunks/flow-views-5L7JF3MM-M6C3RXSX.js +1 -0
  53. package/dist/cdn/chunks/icao-gate-SO6YJ7RV-MPW6W3QN.js +1 -0
  54. package/dist/cdn/chunks/icao-tuning-DCZCMCEQ-ZQSK7ZOV.js +1 -0
  55. package/dist/cdn/chunks/keyframe-rank-R4NPQGN3-VRURE6OQ.js +1 -0
  56. package/dist/cdn/chunks/landmarker-3BBP3RBY-DDXMOLGK.js +1 -0
  57. package/dist/cdn/chunks/mrz-band-DCXFWDBD-OPMO6HYS.js +1 -0
  58. package/dist/cdn/chunks/overlay-de-JQ2FDZBA-HLFTXIF6.js +1 -0
  59. package/dist/cdn/chunks/overlay-es-WDYRSRHH-UXHTYCHD.js +1 -0
  60. package/dist/cdn/chunks/overlay-pt-AQMDWDWX-BD7TO6Y4.js +1 -0
  61. package/dist/cdn/chunks/plan-runner-ZHOYMRAO-RDS523K5.js +1 -0
  62. package/dist/cdn/chunks/portrait-capture-view-GQIBQY4U-TJUYRCTI.js +1 -0
  63. package/dist/cdn/chunks/portrait-review-view-XOQYQNU7-LPONGGFW.js +1 -0
  64. package/dist/cdn/chunks/print-4WOMNRBE-DNXJ7ERA.js +11 -0
  65. package/dist/cdn/chunks/scanic-ml-stub-XPNKT2N3-YSXFN7KY.js +1 -0
  66. package/dist/cdn/chunks/segmenter-3CVPTZMM-WGI6XGWN.js +1 -0
  67. package/dist/cdn/chunks/turnstile-N4K4U2AI-SLP55XAA.js +1 -0
  68. package/dist/cdn/chunks/upload-file-C4MFKLT3-DXCNEDXP.js +1 -0
  69. package/dist/cdn/chunks/vision_bundle-WBHR7TEE.js +41 -0
  70. package/dist/cdn/define.js +1 -0
  71. package/dist/cdn/index.js +1 -0
  72. package/dist/chunk-6NQ7EWA4.js +1 -0
  73. package/dist/chunk-72JW2LCH.js +25 -0
  74. package/dist/chunk-7URX73UH.js +1 -0
  75. package/dist/chunk-AGPBG22V.js +1 -0
  76. package/dist/chunk-B6A5RXN4.js +1 -0
  77. package/dist/chunk-EIRNIJXL.js +1 -0
  78. package/dist/chunk-ESSKMX7I.js +1 -0
  79. package/dist/chunk-IBPUWYHJ.js +1 -0
  80. package/dist/chunk-IGC6OQZ2.js +14 -0
  81. package/dist/chunk-QE2B3MSJ.js +1 -0
  82. package/dist/chunk-RMV3BNWO.js +1 -0
  83. package/dist/chunk-RPLVIGTS.js +1 -0
  84. package/dist/chunk-SEE6MST7.js +1 -0
  85. package/dist/chunk-TPIBYY2S.js +1 -0
  86. package/dist/chunk-XEY5ANJ6.js +1 -0
  87. package/dist/chunk-ZDF5JILV.js +33 -0
  88. package/dist/define.cjs +66 -0
  89. package/dist/define.d.cts +7 -0
  90. package/dist/define.d.ts +7 -0
  91. package/dist/define.js +1 -0
  92. package/dist/document-capture-view-JE6IX4IE-5HJYAEDX.js +1 -0
  93. package/dist/eid-view-RZS6MLT6-2W2T3AWK.js +1 -0
  94. package/dist/email-otp-view-WUQ5OGDD-NGI6PBX3.js +1 -0
  95. package/dist/flow-views-5L7JF3MM-P55CCCOH.js +1 -0
  96. package/dist/fonts/Cairo-OFL.txt +93 -0
  97. package/dist/fonts/Geist-OFL.txt +93 -0
  98. package/dist/fonts/Inter-OFL.txt +93 -0
  99. package/dist/fonts/SekyroCairo-Bold.woff2 +0 -0
  100. package/dist/fonts/SekyroCairo-Regular.woff2 +0 -0
  101. package/dist/fonts/SekyroCairo-SemiBold.woff2 +0 -0
  102. package/dist/fonts/SekyroGeist-Bold.woff2 +0 -0
  103. package/dist/fonts/SekyroGeist-SemiBold.woff2 +0 -0
  104. package/dist/fonts/SekyroInter-Medium.woff2 +0 -0
  105. package/dist/fonts/SekyroInter-Regular.woff2 +0 -0
  106. package/dist/fonts/SekyroInter-SemiBold.woff2 +0 -0
  107. package/dist/index.cjs +66 -0
  108. package/dist/index.d.cts +1115 -0
  109. package/dist/index.d.ts +1115 -0
  110. package/dist/index.js +1 -0
  111. package/dist/overlay-de-JQ2FDZBA-FR25JPE4.js +1 -0
  112. package/dist/overlay-es-WDYRSRHH-PFDMX5D2.js +1 -0
  113. package/dist/overlay-pt-AQMDWDWX-LTD4N2DW.js +1 -0
  114. package/dist/portrait-capture-view-GQIBQY4U-AFPEUDLY.js +1 -0
  115. package/dist/portrait-review-view-XOQYQNU7-IPKAZBP6.js +1 -0
  116. package/dist/styles.css +1479 -0
  117. package/package.json +117 -4
  118. package/types/empty.js +2 -0
  119. package/types/events.d.ts +9 -0
  120. package/types/jsx.d.ts +15 -0
  121. package/types/svelte.d.ts +16 -0
  122. package/types/vue.d.ts +15 -0
@@ -0,0 +1 @@
1
+ import{d as Et,e as Bt,f as Wt,g as qt}from"./chunk-6H22RNSK.js";import{a as it,b as zt,c as rt,d as Ht}from"./chunk-UZWMCNZI.js";import{a as kt,b as V,c as Tt,d as _t,e as St,g as At,h as tt,i as It,j as xt,k as Nt,l as Lt}from"./chunk-D334IAZJ.js";import{a as Dt,b as Rt,c as Ct,d as Ot,e as Pt,f as et,g as K,h as Gt,i as Ut,j as Ft}from"./chunk-RRLXNT33.js";import{a as o}from"./chunk-4FHWXBOB.js";var me=1e4,C,pe=(C=class{constructor(t,e){this.tier="blaze",this.inner=t,e!==void 0&&(this.fallbackReason=e)}static async create(t,e){let r=await import("./vision_bundle-WBHR7TEE.js"),s=await r.FilesetResolver.forVisionTasks(t),a=await r.FaceDetector.createFromOptions(s,{baseOptions:{modelAssetPath:`${t}/blaze_face_short_range.tflite`,delegate:"CPU"},runningMode:"IMAGE"});return new C(a,e)}async detect(t,e,r){let s;try{s=this.inner.detect(t).detections}catch{return null}let a=ge(s);if(a?.boundingBox===void 0)return null;let n=Z(t),l=ve(a.keypoints,n),c=a.keypoints?.[2],h={box:{x:a.boundingBox.originX,y:a.boundingBox.originY,width:a.boundingBox.width,height:a.boundingBox.height},...l!==void 0?{eyes:l}:{},...c!==void 0?{nose:{x:c.x*n.width,y:c.y*n.height}}:{},score:a.categories[0]?.score??0,extraFaces:Kt(s.map(d=>d.boundingBox??{width:0,height:0}),s.indexOf(a))};return Xt(h,t,e,r)}destroy(){try{this.inner.close()}catch{}}},o(C,"t"),C);function ge(i){let t,e=-1;for(let r of i){let s=r.categories[0]?.score??0;s>e&&(t=r,e=s)}return t}o(ge,"R");function ve(i,t){let e=i?.[0],r=i?.[1];if(e===void 0||r===void 0)return;let s=o(l=>({x:l.x*t.width,y:l.y*t.height}),"n"),[a,n]=[s(e),s(r)];return a.x<=n.x?{left:a,right:n}:{left:n,right:a}}o(ve,"T");function ye(){if(typeof OffscreenCanvas=="function")return new OffscreenCanvas(2,2);let i=document.createElement("canvas");return i.width=2,i.height=2,i}o(ye,"E");var we=4;async function be(){let i=globalThis.FaceDetector;if(typeof i!="function")return{ok:!1,reason:"unsupported"};try{let t=new i({fastMode:!0,maxDetectedFaces:we});return await t.detect(ye()),{ok:!0,instance:t}}catch(t){return{ok:!1,reason:`smoke_failed:${t instanceof Error?t.message:String(t)}`}}}o(be,"w");var P,Me=(P=class{constructor(t,e){this.tier="native",this.inner=t,e!==void 0&&(this.fallbackReason=e)}async detect(t,e,r){let s;try{s=await this.inner.detect(t)}catch{return null}let a=s.map(d=>d.boundingBox),n=-1;a.forEach((d,u)=>{let v=a[n];(v===void 0||d.width*d.height>v.width*v.height)&&(n=u)});let l=s[n];if(l===void 0)return null;let c=ke(l.landmarks),h={box:{x:l.boundingBox.x,y:l.boundingBox.y,width:l.boundingBox.width,height:l.boundingBox.height},...c!==void 0?{eyes:c}:{},score:1,extraFaces:Kt(a,n)};return Xt(h,t,e,r)}destroy(){}},o(P,"b"),P);function ke(i){if(i===void 0)return;let t=i.filter(s=>s.type==="eye").map(s=>s.locations[0]).filter(s=>s!==void 0),[e,r]=t;if(!(e===void 0||r===void 0))return e.x<=r.x?{left:e,right:r}:{left:r,right:e}}o(ke,"S");var Te=.25;function Kt(i,t){let e=i[t],r=e===void 0?0:e.width*e.height;if(!(r>0))return 0;let s=0;return i.forEach((a,n)=>{n!==t&&a.width*a.height>=Te*r&&(s+=1)}),s}o(Kt,"f");var at="/models-v3",_e=["native","blaze"],G,nt=(G=class extends Error{constructor(t){super(`no detector tier available (${t})`),this.name="DetectorLadderError",this.fallbackReason=t}},o(G,"x"),G);function Z(i){let t=i;if(typeof t.videoWidth=="number"&&t.videoWidth>0)return{width:t.videoWidth,height:t.videoHeight??0};if(typeof t.naturalWidth=="number"&&t.naturalWidth>0)return{width:t.naturalWidth,height:t.naturalHeight??0};let e=typeof t.width=="number"?t.width:0,r=typeof t.height=="number"?t.height:0;return{width:e,height:r}}o(Z,"y");function Xt(i,t,e,r){let s=Z(t),a=s.width>0?e/s.width:1,n=s.height>0?r/s.height:1,l=o(c=>({x:c.x*a,y:c.y*n}),"s");return{box:{x:i.box.x*a,y:i.box.y*n,width:i.box.width*a,height:i.box.height*n},...i.eyes!==void 0?{eyes:{left:l(i.eyes.left),right:l(i.eyes.right)}}:{},...i.nose!==void 0?{nose:l(i.nose)}:{},score:i.score,...i.extraFaces!==void 0?{extraFaces:i.extraFaces}:{}}}o(Xt,"h");function Ee(i){return i instanceof Error?i.message:String(i)}o(Ee,"C");async function x(i){let t=i.preferred??_e,e=[];for(let r of t){if(r==="native"){let s=await be();if(s.ok)return new Me(s.instance,st(e));e.push(`native:${s.reason}`);continue}try{return await Se(pe.create(i.v3AssetBaseUrl??at,st(e)),i.blazeInitTimeoutMs??me)}catch(s){e.push(s instanceof Vt?"blaze:blaze_init_timeout":`blaze:${Ee(s)}`)}}throw new nt(st(e)??"no_tier_available")}o(x,"O");function st(i){return i.length>0?i.join("; "):void 0}o(st,"v");var U,Vt=(U=class extends Error{},o(U,"g"),U);function Se(i,t){return new Promise((e,r)=>{let s=setTimeout(()=>{r(new Vt(`init exceeded ${t}ms`)),i.then(a=>a.destroy(),()=>{})},t);i.then(a=>{clearTimeout(s),e(a)},a=>{clearTimeout(s),r(a)})})}o(Se,"W");var R=1;function Zt(){return typeof OffscreenCanvas=="function"&&typeof createImageBitmap=="function"&&typeof Worker=="function"}o(Zt,"K");function Ae(i,t={}){let e=t.createDetector??x,r=null;i.onmessage=s=>{let a=s.data;if(a.v!==R){a.bitmap?.close?.();return}if(a.type==="init"){e(a.options).then(n=>{r=n;let l={v:R,type:"ready",tier:n.tier,...n.fallbackReason!==void 0?{fallbackReason:n.fallbackReason}:{}};i.postMessage(l)});return}if(a.type==="detect"){let n=o(l=>{let c={v:R,type:"result",id:a.id,observation:l};i.postMessage(c),a.bitmap.close?.()},"a");if(r===null){n(null);return}r.detect(a.bitmap,a.streamWidth,a.streamHeight).then(n,()=>n(null))}}}o(Ae,"B");typeof self<"u"&&typeof self.importScripts=="function"&&Ae(self);var O,jt=(O=class{constructor(t,e){this.pending=new Map,this.nextId=1,this.worker=t,this.tier=e.tier,e.fallbackReason!==void 0&&(this.fallbackReason=e.fallbackReason),t.addEventListener("message",r=>{let s=r.data;if(s.v!==R||s.type!=="result")return;let a=this.pending.get(s.id);this.pending.delete(s.id),a?.(s.observation)})}static create(t,e,r=1e4){return new Promise((s,a)=>{let n=setTimeout(()=>{t.removeEventListener("message",l),t.terminate(),a(new Error(`worker detector not ready within ${r}ms`))},r),l=o(h=>{let d=h.data;d.v!==R||d.type!=="ready"||(clearTimeout(n),t.removeEventListener("message",l),s(new O(t,d)))},"s");t.addEventListener("message",l);let c={v:R,type:"init",options:e};t.postMessage(c)})}async detect(t,e,r){let s;try{typeof ImageBitmap<"u"&&t instanceof ImageBitmap?s=t:typeof createImageBitmap=="function"?s=await createImageBitmap(t):s=t}catch{return null}let a=this.nextId;return this.nextId+=1,new Promise(n=>{this.pending.set(a,n);let l={v:R,type:"detect",id:a,bitmap:s,streamWidth:e,streamHeight:r};this.worker.postMessage(l,[s])})}destroy(){for(let t of this.pending.values())t(null);this.pending.clear(),this.worker.terminate()}},o(O,"t"),O);var Ie=[...Dt.filter(i=>i.startsWith("video/mp4")),"video/webm;codecs=h264","video/webm;codecs=avc1","video/webm;codecs=vp8","video/webm;codecs=vp9","video/webm"],se=new Set;function xe(i){let t=/(?:Chrome|Chromium)\/(\d+)\./.exec(i??"");return t?Number(t[1]):null}o(xe,"De");function De(i=Ce(),t=globalThis.navigator?.userAgent){if(i===void 0)return"";let e=xe(t)===126;for(let r of Ie)if(!(se.has(r)||e&&r.startsWith("video/mp4")))try{if(i(r))return r}catch{}return""}o(De,"he");function $t(i){i!==""&&se.add(i)}o($t,"F");function Re(i){return i.replace(/^video\/x-matroska/i,"video/webm")}o(Re,"fe");function ae(i){let t=/codecs=["']?([^,;"']+)/i.exec(i);return t?t[1].trim():i.split(";")[0].trim()}o(ae,"ut");function Ce(){let i=globalThis.MediaRecorder;return i&&typeof i.isTypeSupported=="function"?t=>i.isTypeSupported(t):void 0}o(Ce,"Oe");var ne=2500,Oe=1e3,Pe=1500,Yt=25e5,Ge=100,Ue=700,Fe=20,Ne=1500,j=null;function Le(){return j??(j=import("./clip-inspect-HZ7N2YOP-DCDXB76T.js").catch(i=>{throw j=null,i})),j.catch(()=>null)}o(Le,"Ne");var N,D=(N=class extends Error{constructor(t,e){super(e??t),this.kind=t}},o(N,"S"),N),Be=100;function Qt(i,t){return i.stats===void 0?!1:i.stats===null?!0:i.stats.durationMs<t-Be}o(Qt,"U");function We(i,t){return i.stats?t.stats?i.stats.durationMs>t.stats.durationMs:!0:!1}o(We,"ge");var L,qe=(L=class{constructor(t={}){this.recorder=null,this.stream=null,this.chunks=[],this.bytes=0,this.hardStopTimer=null,this.graceTimer=null,this.pollTimer=null,this.settled=!1,this.now=t.now??(()=>globalThis.performance?.now?.()??Date.now())}clearTimers(){this.hardStopTimer&&clearTimeout(this.hardStopTimer),this.graceTimer&&clearTimeout(this.graceTimer),this.pollTimer&&clearInterval(this.pollTimer),this.hardStopTimer=null,this.graceTimer=null,this.pollTimer=null}record(t,e,r,s=ne,a){let n=De(),l=Le();return this.recordRaw(t,e,r,s,a,n).then(c=>ze(c,l),c=>{throw c instanceof D&&(c.requestedMimeType=n),c})}recordRaw(t,e,r,s,a,n){return this.recorder&&!this.settled?Promise.reject(new D("generic","record() called while a recording is in flight — ClipRecorder handles one recording at a time")):(this.recorder=null,this.clearTimers(),this.chunks=[],this.bytes=0,this.settled=!1,this.stream=t,new Promise((l,c)=>{let h;try{h=new MediaRecorder(t,n?{mimeType:n,videoBitsPerSecond:Yt}:{videoBitsPerSecond:Yt})}catch{try{h=new MediaRecorder(t)}catch{c(new D("unsupported"));return}}this.recorder=h;let d=o(p=>{this.settled||(this.settled=!0,this.clearTimers(),p())},"d"),u=o(()=>d(()=>{let p=Re(h.mimeType||n||Rt),M=new Blob(this.chunks,{type:p});if(M.size===0){c(new D("generic","empty clip"));return}if(et(M)){c(new D("cliptoolarge"));return}l({blob:M,mimeType:p,requestedMimeType:n})}),"u");h.ondataavailable=p=>{p.data&&p.data.size&&(this.chunks.push(p.data),this.bytes+=p.data.size,this.bytes>Pt&&d(()=>{try{h.state!=="inactive"&&h.stop()}catch{}c(new D("cliptoolarge"))}))},h.onstop=u,h.onerror=()=>d(()=>c(new D("generic")));let v=this.now();if(r!==void 0||a!==void 0){let p=!1;h.onstart=()=>{if(!(p||this.settled)&&(p=!0,v=this.now(),r!==void 0))try{r()}catch{}}}try{h.start(Oe)}catch{d(()=>c(new D("generic")));return}let w=o(()=>{if(this.pollTimer&&clearInterval(this.pollTimer),this.pollTimer=null,this.hardStopTimer&&clearTimeout(this.hardStopTimer),this.hardStopTimer=null,this.settled||e?.(),h.state!=="inactive"){try{h.stop()}catch{u()}this.graceTimer=setTimeout(u,Pe)}else u()},"v"),m=this.now();if(a===void 0){this.hardStopTimer=setTimeout(w,s);return}let g=null,y=!1;this.hardStopTimer=setTimeout(w,s+Ue),this.pollTimer=setInterval(()=>{if(this.settled||y)return;let p=null;try{p=a.latest()}catch{p=null}let M=p?.presentationTimeMs;M!==void 0&&Number.isFinite(M)&&M>=v&&g===null&&(g=M);let T=g!==null&&M!==void 0&&M-g>=s,A=g===null&&this.now()-m>=s;if(!(!T&&!A)){if(y=!0,this.pollTimer&&clearInterval(this.pollTimer),this.pollTimer=null,A){w();return}this.hardStopTimer&&clearTimeout(this.hardStopTimer),this.hardStopTimer=setTimeout(w,Ge)}},Fe)}))}stop(t){this.clearTimers();let e=this.recorder;if(e&&e.state!=="inactive")try{e.stop()}catch{}this.recorder=null,(t??this.stream)?.getTracks().forEach(r=>r.stop()),this.stream=null}},o(L,"I"),L);async function ze(i,t){let e,r=new Promise(h=>{e=setTimeout(()=>h(null),Ne)}),s=await Promise.race([t,r]);if(clearTimeout(e),s===null)return i;let a;try{a=await s.blobBytes(i.blob)}catch{return{...i,stats:null}}let n=s.inspectClipBytes(a);if(n?.container!=="webm")return{...i,stats:n};let l=s.withWebmDuration(a,n.durationMs);if(l===null)return{...i,stats:n};let c=s.inspectClipBytes(l);return c===null||c.frames!==n.frames||c.durationMs!==n.durationMs?{...i,stats:n}:{...i,blob:new Blob([l],{type:i.blob.type}),stats:n}}o(ze,"He");var He=["magenta","yellow","green","blue"],Ke={magenta:"rgb(255, 72, 150)",yellow:"rgb(255, 190, 0)",green:"rgb(0, 238, 175)",blue:"rgb(25, 150, 255)",dark:"rgb(0, 0, 0)"};function zi(i){return Ke[i]}o(zi,"ft");var Xe=4,Ve=4,$=o(i=>typeof i=="number"&&Number.isFinite(i),"D");function oe(i){if(typeof i!="object"||i===null)return!1;let t=i;if(typeof t.nonce!="string"||t.nonce.length===0||!Array.isArray(t.colours)||t.colours.length<1||t.colours.length>8||!t.colours.every(r=>He.includes(r))||!Array.isArray(t.onsetsMs)||t.onsetsMs.length!==t.colours.length)return!1;let e=-1;for(let r of t.onsetsMs){if(!$(r)||r<0||r<=e)return!1;e=r}return!(!$(t.holdMs)||t.holdMs<=0||!$(t.endMs)||t.endMs<=e||!$(t.clipMs)||t.clipMs<t.endMs||t.clipMs>8e3)}o(oe,"be");function Ze(i,t){return oe(i)?Math.max(t,Math.ceil(i.clipMs)):t}o(Ze,"ye");function je(i,t){let e=t.now??(()=>performance.now()),r=oe(i)?i:void 0,s=[],a=null,n=null,l=null,c=!1,h=null,d=o(m=>{h=m;try{t.paint(m)}catch{}},"d"),u=o(m=>{let g=t.frames?.()??null;return g!==null&&l!==null?g.mediaTimeMs+(m-g.presentationTimeMs)-l:m-(n??m)},"u"),v=o((m,g,y=0)=>{if(c)return;let p=Math.max(0,m-u(e()));a=setTimeout(()=>{if(a=null,!c){if(y<Xe&&u(e())<m-Ve){v(m,g,y+1);return}g()}},p)},"f"),w=o(m=>{if(r===void 0)return;let g=r.endMs;if(m>=r.colours.length){v(g,()=>d(null));return}let y=r.onsetsMs[m],p=m+1<r.onsetsMs.length?r.onsetsMs[m+1]:g;v(y,()=>{let M=u(e());if(M>g){h!==null&&d(null);return}let T=r.colours[m];d(T);let A=s.length===0?0:s[s.length-1].tMs;s.push({tMs:Math.max(A,Math.round(M)),colour:T});let k=y+r.holdMs;if(k<p){v(k,()=>{if(u(e())>g){h!==null&&d(null);return}d("dark"),w(m+1)});return}w(m+1)})},"v");return{started(m){if(r===void 0||c||n!==null)return;n=m;let g=t.frames?.()??null;l=g===null?null:g.mediaTimeMs+(m-g.presentationTimeMs),w(0)},stop(){c||(c=!0,a!==null&&clearTimeout(a),a=null,h!==null&&d(null))},report(){return r===void 0?void 0:{nonce:r.nonce,rendered:[...s]}}}}o(je,"Me");function $e(i,t,e=.92){return new Promise((r,s)=>{let a=i.videoWidth,n=i.videoHeight;if(!a||!n){s(new Error("video-not-ready"));return}let l=t.getContext("2d");if(!l){s(new Error("no-2d-context"));return}t.width=a,t.height=n,l.scale(-1,1),l.drawImage(i,-a,0),t.toBlob(c=>c?r(c):s(new Error("empty-keyframe")),"image/jpeg",e)})}o($e,"Se");var B,Ye=(B=class{constructor(t){this.timer=null,this.frameCallbackId=null,this.running=!1,this.busy=!1,this.lastRunAt=Number.NEGATIVE_INFINITY,this.degradeCount=0,this.durations=[],this.options=t,this.periodMs=1e3/t.cadenceHz}start(){if(this.running)return;this.running=!0;let t=this.options.video;if(typeof t?.requestVideoFrameCallback=="function"){let e=o(()=>{this.running&&(this.frameCallbackId=t.requestVideoFrameCallback?.(()=>{this.frameCallbackId=null,this.now()-this.lastRunAt>=this.periodMs&&this.tick(),e()}))},"t");e();return}this.timer=setInterval(()=>this.tick(),this.periodMs)}stop(){this.running=!1,this.timer!==null&&(clearInterval(this.timer),this.timer=null),this.frameCallbackId!==null&&(this.options.video?.cancelVideoFrameCallback?.(this.frameCallbackId),this.frameCallbackId=null)}stats(){let t=this.durations.length===0?0:this.durations.reduce((e,r)=>e+r,0)/this.durations.length;return{degradeCount:this.degradeCount,meanDetectMs:t}}now(){return this.options.now?.()??performance.now()}tick(){if(!this.running)return;if(this.busy){this.degradeCount+=1;return}this.busy=!0,this.lastRunAt=this.now();let t=this.now();this.options.run().catch(()=>{}).finally(()=>{this.busy=!1,this.durations.push(this.now()-t),this.durations.length>20&&this.durations.shift()})}},o(B,"O"),B),Qe=Object.freeze({Q_GOOD:.6,RISE_PER_S:.9,FALL_PER_S:.25,CENTER_FALLOFF_IOD_MULTIPLE:1.35,BOX_EYE_OFFSET_FACTOR:.12,IOD_BOX_PROXY_FACTOR:.42,SIZE_IDEAL_MIN:.12,SIZE_IDEAL_MAX:.3,SIZE_HARD_MIN:.08,SIZE_HARD_MAX:.45,ROLL_MAX_DEG:25,MOTION_VELOCITY_IOD_PER_S:.5,MOTION_TAU_S:.4,MOTION_DEADBAND_IOD_PER_S:.1,READY_WINDOW_MS:500,GUIDE_SIZE:.6,GUIDE_CENTERING:.6,GUIDE_POSE:.6,GUIDE_EXPOSURE:.6,GUIDE_SHARPNESS:.35,GUIDE_MOTION:.5}),F=o(i=>Math.min(1,Math.max(0,i)),"_"),W,Jt=(W=class{constructor(t={}){this.p=0,this.lastTickAt=null,this.lastCenter=null,this.velocityEma=0,this.qWindow=[],this.lastSizeDirection="ideal",this.t={...Qe,...t}}reset(){this.p=0,this.lastTickAt=null,this.lastCenter=null,this.velocityEma=0,this.qWindow=[],this.lastSizeDirection="ideal"}tick(t){let{observation:e,quality:r,timestampMs:s}=t,a=this.lastTickAt===null?0:Math.max(0,(s-this.lastTickAt)/1e3);this.lastTickAt=s;let n={presence:0,single:1,centering:0,size:0,pose:0,sharpness:F(r.sharpness),exposure:F(r.exposure),motion:1};if(e!==null){n.presence=1,n.single=(e.extraFaces??0)>0?0:1;let d=this.geometryOf(e,t);n.centering=d.centering,n.size=d.size,n.pose=d.pose,n.motion=this.motionOf(d.center,d.iod,s)}else this.lastCenter=null,this.velocityEma=0;let l=Math.min(n.presence,n.single,n.centering,n.size,n.pose,n.sharpness,n.exposure,n.motion);this.p=F(this.p+(l>=this.t.Q_GOOD?this.t.RISE_PER_S*l:-this.t.FALL_PER_S*(1-l))*a),this.qWindow.push({at:s,q:l}),this.qWindow=this.qWindow.filter(d=>d.at>=s-this.t.READY_WINDOW_MS);let c=this.qWindow.map(d=>d.q);if(c.length>=3){let d=Math.min(...c),u=c.indexOf(d);c=c.filter((v,w)=>w!==u)}let h=this.p>=1&&c.every(d=>d>=this.t.Q_GOOD);return{at:s,q:l,p:this.p,factors:n,guidanceKey:this.guidanceOf(n,r,l),ready:h,accepted:l>=this.t.Q_GOOD}}geometryOf(t,e){let{box:r,eyes:s}=t,a={x:e.frameWidth/2,y:e.frameHeight/2},n=Math.min(e.frameWidth,e.frameHeight),l=s!==void 0?{x:(s.left.x+s.right.x)/2,y:(s.left.y+s.right.y)/2}:{x:r.x+r.width/2,y:r.y+r.height/2-this.t.BOX_EYE_OFFSET_FACTOR*r.height},c=s!==void 0?Math.hypot(s.right.x-s.left.x,s.right.y-s.left.y):this.t.IOD_BOX_PROXY_FACTOR*r.width,h=Math.hypot(l.x-a.x,l.y-a.y),d=c<=0?0:1-F(h/(this.t.CENTER_FALLOFF_IOD_MULTIPLE*c)),u=n>0?c/n:0;this.lastSizeDirection=u<this.t.SIZE_IDEAL_MIN?"far":u>this.t.SIZE_IDEAL_MAX?"close":"ideal";let v;u<this.t.SIZE_HARD_MIN||u>this.t.SIZE_HARD_MAX?v=0:u<this.t.SIZE_IDEAL_MIN?v=(u-this.t.SIZE_HARD_MIN)/(this.t.SIZE_IDEAL_MIN-this.t.SIZE_HARD_MIN):u>this.t.SIZE_IDEAL_MAX?v=(this.t.SIZE_HARD_MAX-u)/(this.t.SIZE_HARD_MAX-this.t.SIZE_IDEAL_MAX):v=1;let w=1;if(s!==void 0){let m=Math.abs(Math.atan2(s.right.y-s.left.y,s.right.x-s.left.x))*180/Math.PI;w=1-F(m/this.t.ROLL_MAX_DEG)}return{center:l,iod:c,centering:d,size:v,pose:w}}motionOf(t,e,r){let s=this.lastCenter;if(this.lastCenter={...t,at:r},s===null||e<=0)return 1;let a=(r-s.at)/1e3;if(a<=0)return 1;let n=Math.hypot(t.x-s.x,t.y-s.y)/e/a;n<=this.t.MOTION_DEADBAND_IOD_PER_S&&(n=0);let l=1-Math.exp(-a/this.t.MOTION_TAU_S);return this.velocityEma=l*n+(1-l)*this.velocityEma,1-F(this.velocityEma/this.t.MOTION_VELOCITY_IOD_PER_S)}guidanceOf(t,e,r){if(t.presence<=0)return"fcv3.no_face";if(t.single<=0)return"fcv3.one_face";if(t.size<this.t.GUIDE_SIZE)return this.sizeGuidance();if(t.centering<this.t.GUIDE_CENTERING)return"fcv3.center_face";if(t.pose<this.t.GUIDE_POSE)return"fcv3.straighten";if(t.exposure<this.t.GUIDE_EXPOSURE)return this.exposureGuidance(e);if(t.sharpness<this.t.GUIDE_SHARPNESS)return"fcv3.steady_camera";if(t.motion<this.t.GUIDE_MOTION)return"fcv3.hold_still";if(r<this.t.Q_GOOD){let s=[["size",this.sizeGuidance()],["centering","fcv3.center_face"],["pose","fcv3.straighten"],["exposure",this.exposureGuidance(e)],["sharpness","fcv3.steady_camera"],["motion","fcv3.hold_still"]],a=s[0];for(let n of s)t[n[0]]<t[a[0]]&&(a=n);return a[1]}return"fcv3.hold_still"}sizeGuidance(){return this.lastSizeDirection==="far"?"fcv3.come_closer":"fcv3.move_back"}exposureGuidance(t){let e=(it[0]+it[1])/2;return t.meanLuma<e?"fcv3.more_light":"fcv3.too_bright"}},o(W,"k"),W),Je=["single","size","centering","pose","exposure","sharpness","motion"];function ti(i){if(i.accepted)return null;if(i.factors.presence<=0)return"no_face";let t="single";for(let e of Je)i.factors[e]<i.factors[t]&&(t=e);return t}o(ti,"Ze");var q,te=(q=class{constructor(){this.blocked={},this.acceptedMs=0,this.ticks=0,this.lastAt=null}record(t){let e=this.lastAt===null?0:Math.max(0,t.at-this.lastAt);this.lastAt=t.at,this.ticks+=1;let r=ti(t);if(r===null){this.acceptedMs+=e;return}let s=this.blocked[r]??{count:0,ms:0};s.count+=1,s.ms+=e,this.blocked[r]=s}summary(){let t={};for(let[e,r]of Object.entries(this.blocked))t[e]={count:r.count,ms:Math.round(r.ms)};return{blocked:t,acceptedMs:Math.round(this.acceptedMs),ticks:this.ticks}}},o(q,"w"),q),ei=["obs","manycam","virtual","snap camera","xsplit","droidcam","iriun","camo"],ii=[/^(front|back|rear)( [a-z ]+)? camera$/i,/^caméra (avant|arrière)\b/i,/^cámara (frontal|trasera|delantera)\b/i,/^câmera (frontal|traseira)\b/i,/^(front|rück)kamera\b/i,/^الكاميرا (الأمامية|الخلفية)/,/^camera2? ?\d+, facing (front|back|external)/i,/facetime/i,/\b(integrated|built-in|builtin) (web)?cam(era)?\b/i,/\b(hd )?web ?cam\b/i,/\([0-9a-f]{4}:[0-9a-f]{4}\)\s*$/i];function ri(i){let t=(i??"").trim().toLowerCase();return t.length===0?"unknown":ei.some(e=>t.includes(e))?"known_virtual":ii.some(e=>e.test(t))?"platform":"unknown"}o(ri,"je");function ee(i){if(typeof i!="function")return!1;try{return/\{\s*\[native code\]\s*\}\s*$/.test(Function.prototype.toString.call(i))}catch{return!1}}o(ee,"Te");function si(i=globalThis){return ee(i.navigator?.mediaDevices?.getUserMedia)&&ee(i.MediaStreamTrack?.prototype?.getSettings)}o(si,"$e");async function ai(i,t=globalThis){let e=t.crypto?.subtle?.digest;if(typeof e=="function")try{let r=new Uint8Array(await e.call(t.crypto?.subtle,"SHA-256",new TextEncoder().encode(i)));return Array.from(r.subarray(0,8),s=>s.toString(16).padStart(2,"0")).join("")}catch{return}}o(ai,"Je");async function ni(i,t=globalThis){let e={};try{e=typeof i.getSettings=="function"?i.getSettings()??{}:{}}catch{e={}}let r={};if((e.facingMode==="user"||e.facingMode==="environment"||e.facingMode==="left"||e.facingMode==="right")&&(r.facingMode=e.facingMode),typeof e.frameRate=="number"&&Number.isFinite(e.frameRate)&&(r.frameRate=e.frameRate),typeof e.width=="number"&&Number.isFinite(e.width)&&(r.width=e.width),typeof e.height=="number"&&Number.isFinite(e.height)&&(r.height=e.height),typeof e.deviceId=="string"&&e.deviceId.length>0){let a=await ai(e.deviceId,t);a!==void 0&&(r.deviceIdHash=a)}let s;try{s=i.label}catch{s=void 0}return{trackSettings:r,capabilitiesPresent:typeof i.getCapabilities=="function",labelClass:ri(s),prototypesIntact:si(t)}}o(ni,"Ce");var ot=o(i=>Math.round(i*100)/100,"H");function oi(i){let t=i,e=typeof t?.requestVideoFrameCallback=="function",r=null,s=null,a=0,n=0,l=0,c=0,h=0,d=0,u=o(()=>{!e||t?.requestVideoFrameCallback===void 0||(r=t.requestVideoFrameCallback((v,w)=>{if(r=null,!e)return;let m=w.presentationTime;if(s!==null){let g=m-s.presentationTimeMs;n+=1;let y=g-l;l+=y/n,c+=y*(g-l)}typeof w.captureTime=="number"&&Number.isFinite(w.captureTime)&&(h+=m-w.captureTime,d+=1),a+=1,s={mediaTimeMs:w.mediaTime*1e3,presentationTimeMs:m},u()}))},"u");return u(),{latest:o(()=>s,"latest"),stats:o(()=>({n:a,meanGapMs:n===0?0:ot(l),stdGapMs:n<2?0:ot(Math.sqrt(c/(n-1))),captureLatencyMs:d===0?null:ot(h/d)}),"stats"),stop:o(()=>{e&&(e=!1,r!==null&&t?.cancelVideoFrameCallback?.(r),r=null)},"stop")}}o(oi,"Ee");function li(i,t,e){return{...i,rvfc:t,rampPainter:e}}o(li,"_e");var ci=1e3,lt="fcv3.hold_upright",hi=200,ct=4,ui=600,di=1e3,ie={sharpness:1,exposure:1,meanLuma:128};function fi(i,t){return t.width=i.videoWidth,t.height=i.videoHeight,t.getContext("2d").drawImage(i,0,0),new Promise((e,r)=>t.toBlob(s=>s?e(s):r(new Error("empty-keyframe")),"image/jpeg",.92))}o(fi,"it");function mi(){return V()==="phone"}o(mi,"at");var z,le=(z=class{constructor(t){this.handlers=new Map,this.stateValue="idle",this.attempt=0,this.stream=null,this.detector=null,this.scheduler=null,this.gate=null,this.profiler=null,this.lastGuidanceKey=null,this.positioningStartedAt=0,this.cameraRequestedAt=null,this.cameraReadyAt=null,this.faceAcquiredAt=null,this.captureCompleteAt=null,this.fired=!1,this.carriedDegrade=0,this.carriedMeans=[],this.blockStats=null,this.lastGateSnapshotAt=Number.NEGATIVE_INFINITY,this.uprightGuard=!1,this.trackProvenance=null,this.ramp=null,this.snapshotCanvas=null,this.options=t,this.facing=t.facingMode??"user"}get state(){return this.stateValue}on(t,e){let r=this.handlers.get(t);return r||(r=new Set,this.handlers.set(t,r)),r.add(e),()=>r?.delete(e)}emit(t,e){for(let r of[...this.handlers.get(t)??[]])r(e)}async start(t={}){t.facingMode!==void 0&&(this.facing=t.facingMode),this.attempt+=1,await this.run(this.attempt)}get facingMode(){return this.facing}retry(){this.teardownAttempt(),this.start()}switchCamera(){this.facing=this.facing==="user"?"environment":"user",this.teardownAttempt(),this.start()}restart(t){this.facing=t,this.teardownAttempt(),this.start()}destroy(){this.attempt+=1,this.teardownAttempt(),this.detector?.destroy(),this.detector=null,this.options.video.srcObject=null}async run(t){let{options:e}=this;this.fired=!1,this.lastGuidanceKey=null,this.carriedDegrade=0,this.carriedMeans=[],this.cameraRequestedAt=null,this.cameraReadyAt=null,this.faceAcquiredAt=null,this.captureCompleteAt=null,this.uprightGuard=(e.isPhone??mi)(),this.setState("preflight");let r=Ct();if(r!=="OK"){this.fail(r==="INSECURE_CONTEXT"?"insecure":"unsupported",{phase:"preflight"});return}this.setState("acquiring");let s=e.getUserMedia??(h=>navigator.mediaDevices.getUserMedia(h)),a;this.cameraRequestedAt=this.now();try{let{facingMode:h,...d}=kt(Tt(),this.facing).video;a=await Lt(this.facing,d,{getUserMedia:s,enumerateDevices:vi(e)})}catch(h){if(t!==this.attempt)return;if(h instanceof Nt){this.fail("backcamera",{phase:"acquiring",name:K(h)});return}this.fail(Ut(h),{phase:"acquiring",name:K(h)});return}if(Et(a),Ft(a),t!==this.attempt){for(let h of a.getTracks())h.stop();return}this.stream=a;let n=a.getVideoTracks?.()[0];if(this.trackProvenance=n===void 0?null:ni(n).catch(()=>null),this.facing=_t(a)??this.facing,e.video.srcObject=a,await e.video.play().catch(()=>{}),t!==this.attempt)return;if(this.cameraReadyAt=this.now(),this.detector===null){let h={v3AssetBaseUrl:e.v3AssetBaseUrl},d=e.createDetector??(e.createWorker!==void 0&&Zt()?async()=>{try{return await jt.create(e.createWorker(),h)}catch{return x(h)}}:()=>x(h)),u;try{u=await d()}catch(v){t===this.attempt&&this.fail("models",{phase:"models",name:K(v)},v instanceof nt?v.fallbackReason:gi(v));return}if(t!==this.attempt){u.destroy();return}this.detector=u,this.options.telemetry?.({type:"detector",tier:u.tier,fallbackReason:u.fallbackReason})}let l=Bt(),c=e.deviceClass??Wt(l);this.profiler=new qt(c),this.options.telemetry?.({type:"profile",staticClass:c,activeClass:this.profiler.deviceClass,simd:l.simd}),this.gate=new Jt(e.thresholds??{}),this.blockStats=new te,this.lastGateSnapshotAt=this.now(),e.rankKeyframes?.()&&import("./keyframe-rank-R4NPQGN3-VRURE6OQ.js").then(h=>ht=h,()=>{}),this.setState("positioning"),this.positioningStartedAt=this.now(),this.startScheduler(t)}get animations(){return this.profiler?.profile.animations??"full"}startScheduler(t){let e=this.profiler;if(e===null)return;if(this.scheduler!==null){let s=this.scheduler.stats();this.carriedDegrade+=s.degradeCount,s.meanDetectMs>0&&this.carriedMeans.push(s.meanDetectMs),this.scheduler.stop()}let r=new Ye({cadenceHz:e.profile.cadenceHz,video:this.options.video,now:this.options.now,run:o(()=>this.detectTick(t),"run")});this.scheduler=r,r.start()}async detectTick(t){let{detector:e,gate:r,profiler:s}=this,a=this.options.video;if(t!==this.attempt||e===null||r===null||s===null||this.fired||a.videoWidth===0)return;if(this.isLandscape()){this.holdUpright(t);return}let n=s.deviceClass,l=this.now(),c=this.options.makeSnapshot?.(a,s.profile.inputWidth)??this.defaultSnapshot(a,s.profile.inputWidth),h=null;try{h=await e.detect(c,a.videoWidth,a.videoHeight)}catch{h=null}if(t!==this.attempt||this.fired)return;s.record(this.now()-l),s.deviceClass!==n&&this.startScheduler(t);let d=h===null?ie:this.options.measureQuality?.(a,h.box)??this.defaultQuality(a,h.box),u=r.tick({timestampMs:this.now(),observation:h,quality:d,frameWidth:a.videoWidth,frameHeight:a.videoHeight});u.accepted&&this.faceAcquiredAt===null&&(this.faceAcquiredAt=u.at),this.blockStats?.record(u),!u.ready&&u.at-this.lastGateSnapshotAt>=ci&&(this.lastGateSnapshotAt=u.at,this.reportGate(!1)),this.emit("checks",{engine:"v3",progress:u.p,q:u.q,factors:u.factors,attempt:t}),u.guidanceKey!==this.lastGuidanceKey&&(this.lastGuidanceKey=u.guidanceKey,this.emit("guidance",{key:u.guidanceKey})),u.ready&&this.stateValue==="positioning"&&(this.fired=!0,this.captureCompleteAt=u.at,this.fire(t))}async fire(t){let{options:e}=this,r=this.scheduler;r?.stop(),this.reportGate(!0);let s=r?.stats()??{degradeCount:0,meanDetectMs:0},a=[...this.carriedMeans,...s.meanDetectMs>0?[s.meanDetectMs]:[]];e.telemetry?.({type:"fired",timeToGateMs:this.now()-this.positioningStartedAt,degradeCount:this.carriedDegrade+s.degradeCount,meanDetectMs:a.length===0?0:a.reduce((k,b)=>k+b,0)/a.length});let n=e.mode??"clip",l=e.rankKeyframes?.()&&ht?ht.default(this,t).catch(()=>this.collectKeyframes(t)):this.collectKeyframes(t);if(n==="photo"){let k=this.watchRotation(t,null),b=await l;if(k(),t!==this.attempt)return;if(b===null){this.fail("generic",{phase:"keyframes"});return}let I=await this.provenance({n:0,meanGapMs:0,stdGapMs:0,captureLatencyMs:null},!1);if(t!==this.attempt)return;this.finishCapture({keyframe:b.blob,previewDataUrl:b.previewDataUrl,...I});return}this.setState("recording");let c=this.stream;if(c===null){this.fail("generic",{phase:"recording"});return}let h=e.screenRamp?.(),d=h!==void 0,u=null;l.then(k=>{u=k},()=>{});let v=o(()=>{t===this.attempt&&u!==null&&this.emit("frozen",{previewDataUrl:u.previewDataUrl})},"f"),w=Ze(h,ne),m=null,g,y=0;try{let k=this.recordTake(t,c,h,w,void 0).then(_=>_,_=>({failed:_})),[b,I]=await Promise.all([k,l]);if(g=I,t!==this.attempt)return;if("failed"in b){if(b.failed.kind==="cliptoolarge")throw b.failed;$t(b.failed.requestedMimeType??"")}else m=b,Qt(b.clip,w)?b.clip.stats===null&&$t(b.clip.requestedMimeType??""):v();if(m===null||Qt(m.clip,w)){y=1,e.telemetry?.({type:"clip_retake",reason:m===null?"error":m.clip.stats===null?"unreadable":"short"});let _=null;try{_=await this.recordTake(t,c,h,w,v)}catch(H){if(m===null)throw H}if(t!==this.attempt)return;_!==null&&(m===null||We(_.clip,m.clip))&&(m=_),_===null&&v()}}catch(k){if(t!==this.attempt)return;let b=k.kind;this.fail(b==="cliptoolarge"?"cliptoolarge":"recorder",{phase:"recording",name:K(k)});return}if(m===null){this.fail("recorder",{phase:"recording"});return}let{clip:p,rvfc:M,report:T}=m;if(et(p.blob)){this.fail("cliptoolarge",{phase:"recording"});return}if(g===null){this.fail("generic",{phase:"keyframes"});return}let A=await this.provenance(M,d);t===this.attempt&&this.finishCapture({clip:p.blob,clipMimeType:p.mimeType,...p.stats?{clipStats:p.stats}:{},clipRetakes:y,keyframe:g.blob,previewDataUrl:g.previewDataUrl,...T!==void 0&&T.rendered.length>0?{screenRamp:T}:{},...A})}async recordTake(t,e,r,s,a){let n=this.options.createRecorder?.()??new qe({now:o(()=>this.now(),"now")}),l=oi(this.options.video),c=je(r,{paint:o(u=>{(u===null||t===this.attempt)&&this.emit("ramp",{colour:u})},"paint"),now:o(()=>this.now(),"now"),frames:l.latest});this.ramp=c;let h=o(()=>{l.stop(),c.stop(),this.ramp===c&&(this.ramp=null)},"l"),d=this.watchRotation(t,n);try{return{clip:await n.record(e,a,()=>c.started(this.now()),s,l),rvfc:l.stats(),report:c.report()}}finally{d(),h()}}async provenance(t,e){let r=this.trackProvenance;if(r===null)return{};let s,a=new Promise(l=>{s=setTimeout(()=>l(null),di)}),n=await Promise.race([r,a]);return clearTimeout(s),n===null?{}:{provenance:li(n,t,e)}}isLandscape(){let t=this.options.video;return this.uprightGuard&&t.videoWidth>t.videoHeight}holdUpright(t){this.gate?.reset(),this.emit("checks",{engine:"v3",progress:0,q:0,factors:{presence:0,single:1,centering:0,size:0,pose:0,sharpness:0,exposure:0,motion:0},attempt:t}),this.lastGuidanceKey!==lt&&(this.lastGuidanceKey=lt,this.emit("guidance",{key:lt}))}watchRotation(t,e){if(!this.uprightGuard)return()=>{};let r=this.options.video,s=o(()=>{if(t!==this.attempt||e!==null&&this.stateValue!=="recording"){l();return}r.videoWidth>0&&this.isLandscape()&&(l(),this.abortRecording(t,e))},"n"),a=setInterval(s,hi);r.addEventListener?.("resize",s);let n=!1;function l(){n||(n=!0,clearInterval(a),r.removeEventListener?.("resize",s))}return o(l,"o"),l}abortRecording(t,e){if(t!==this.attempt)return;this.attempt+=1;let r=this.attempt;try{e?.stop()}catch{}this.ramp?.stop(),this.ramp=null,this.fired=!1,this.captureCompleteAt=null,this.gate=new Jt(this.options.thresholds??{}),this.blockStats=new te,this.lastGateSnapshotAt=this.now(),this.lastGuidanceKey=null,this.setState("positioning"),this.positioningStartedAt=this.now(),this.holdUpright(r),this.startScheduler(r)}async collectKeyframes(t){let e=this.options.captureKeyframe??(a=>this.defaultKeyframe(a)),r=ui/(ct-1),s=null;for(let a=0;a<ct;a+=1){if(t!==this.attempt)return s;try{let n=await e(this.options.video);(s===null||n.sharpness>s.sharpness)&&(s=n)}catch{}a<ct-1&&await pi(r)}return s}finishCapture(t){this.stopTracks(),this.setState("captured");let e=this.captureTiming();this.emit("artifacts",e===void 0?t:{...t,timing:e})}captureTiming(){let t={},e=o((r,s,a)=>{s!==null&&a!==null&&(t[r]=Math.max(0,Math.round(a-s)))},"t");return e("cameraReadyMs",this.cameraRequestedAt,this.cameraReadyAt),e("faceAcquireMs",this.cameraReadyAt,this.faceAcquiredAt),e("captureMs",this.faceAcquiredAt,this.captureCompleteAt),Object.keys(t).length>0?t:void 0}async defaultKeyframe(t){let e=document.createElement("canvas"),r=await(this.facing==="user"?$e:fi)(t,e),s=e.toDataURL("image/jpeg",.92);return{blob:r,previewDataUrl:s,sharpness:this.centerSharpness(t)}}defaultSnapshot(t,e){try{let r=this.snapshotCanvas??document.createElement("canvas"),s=e/Math.max(1,t.videoWidth),a=Math.max(1,Math.round(t.videoWidth*s)),n=Math.max(1,Math.round(t.videoHeight*s)),l=r.getContext("2d");return l===null?t:(r.width!==a&&(r.width=a),r.height!==n&&(r.height=n),l.drawImage(t,0,0,a,n),this.snapshotCanvas=r,r)}catch{return t}}defaultQuality(t,e){let r=re(t,e,96);return r===null?ie:{sharpness:rt(r),exposure:Ht(r),meanLuma:zt(r)}}centerSharpness(t){let e=Z(t),r=re(t,{x:e.width*.25,y:e.height*.25,width:e.width*.5,height:e.height*.5},96);return r===null?0:rt(r)}teardownAttempt(){this.scheduler?.stop(),this.scheduler=null,this.reportGate(!0),this.gate=null,this.ramp?.stop(),this.ramp=null,this.stopTracks()}reportGate(t){let e=this.blockStats,r=this.profiler;if(e===null||r===null)return;let s=e.summary();t&&(this.blockStats=null),s.ticks!==0&&this.options.telemetry?.({type:"gate",final:t,activeClass:r.deviceClass,cadenceHz:r.profile.cadenceHz,...s})}stopTracks(){if(this.stream!==null){for(let t of this.stream.getTracks())t.stop();this.stream=null}}fail(t,e,r){this.scheduler?.stop(),this.reportGate(!0),this.stopTracks(),this.setState("error"),this.options.telemetry?.({type:"error",kind:t,fallbackReason:r});let{phase:s,name:a}=e;this.emit("error",{kind:t,retryable:t!=="insecure"&&t!=="unsupported",detail:a===void 0?{phase:s}:{phase:s,name:a}})}setState(t){this.stateValue=t,this.emit("statechange",{state:t})}now(){return this.options.now?.()??performance.now()}},o(z,"ke"),z),ht;function pi(i){return new Promise(t=>setTimeout(t,i))}o(pi,"st");function gi(i){return i instanceof Error?i.message:String(i)}o(gi,"ot");function re(i,t,e){try{let r=document.createElement("canvas"),s=e/Math.max(1,t.width);r.width=Math.max(1,Math.round(t.width*s)),r.height=Math.max(1,Math.round(t.height*s));let a=r.getContext("2d");return a===null?null:(a.drawImage(i,t.x,t.y,t.width,t.height,0,0,r.width,r.height),a.getImageData(0,0,r.width,r.height))}catch{return null}}o(re,"we");function vi(i){if(i.enumerateDevices!==void 0)return i.enumerateDevices;if(i.getUserMedia===void 0&&!(typeof navigator>"u"||typeof navigator.mediaDevices?.enumerateDevices!="function"))return()=>navigator.mediaDevices.enumerateDevices()}o(vi,"lt");var yi=12e4,ce=13e4,wi=3e3,bi=1200,ut=Symbol.for("@sekyro/web.preload.v1");function ft(){let i=globalThis;return i[ut]??(i[ut]=new Map),i[ut]}o(ft,"g");function Y(i){let t=(i??at).replace(/\/+$/,"");return t===""?"/":t}o(Y,"S");function ue(i){let t=ft(),e=t.get(i);return e===void 0&&(e={status:"idle",promise:null,scheduled:null,detectorPromise:null,detector:null,listeners:new Set},t.set(i,e)),e}o(ue,"se");function dt(i,t){if(i.status!==t){i.status=t;for(let e of[...i.listeners])e(t)}}o(dt,"A");var Mi=o(i=>x({preferred:["blaze"],v3AssetBaseUrl:i,blazeInitTimeoutMs:yi}),"x"),ki=Mi;function Ti(){return typeof window<"u"&&typeof navigator<"u"&&typeof navigator.mediaDevices?.getUserMedia=="function"}o(Ti,"pe");function _i(){return navigator.connection?.saveData===!0}o(_i,"me");function Ei(i){let t=window;if(typeof t.requestIdleCallback=="function"){let r=t.requestIdleCallback(i,{timeout:wi});return()=>t.cancelIdleCallback?.(r)}let e=setTimeout(i,bi);return()=>clearTimeout(e)}o(Ei,"ve");function Si(i,t){let e,r=new Promise(l=>{e=l}),s=!1,a=o(()=>{},"d"),n={promise:r,settle:o(l=>{s||(s=!0,a(),i.scheduled===n&&(i.scheduled=null),e(l))},"settle")};return i.scheduled=n,a=Ei(()=>{s||n.settle(mt(i,t))}),r}o(Si,"ge");function mt(i,t){if((i.status==="loading"||i.status==="ready")&&i.promise!==null)return i.promise;dt(i,"loading");let e=new Promise(n=>n(ki(t)));i.detectorPromise=e;let r,s=new Promise((n,l)=>{r=setTimeout(()=>{e.then(c=>c.destroy(),()=>{}),l(new Error(`detector preload exceeded ${ce} ms`))},ce)}),a=Promise.race([e,s]).then(n=>i.detectorPromise!==e?(n.destroy(),i.status):(i.detector=n,dt(i,"ready"),"ready"),n=>(i.detectorPromise===e&&(i.detectorPromise=null,i.detector=null,dt(i,"failed"),console.warn("[@sekyro/web] face-detector preload failed:",n)),i.status)).finally(()=>clearTimeout(r));return i.promise=a,i.scheduled?.settle(a),a}o(mt,"I");function Yi(i={}){if(!Ti())return Promise.resolve("idle");let t=Y(i.assetBaseUrl),e=ue(t);return i.respectSaveData===!0&&_i()?Promise.resolve(e.status):(e.status==="loading"||e.status==="ready")&&e.promise!==null?e.promise:i.idle===!0?e.scheduled?.promise??Si(e,t):mt(e,t)}o(Yi,"we");function Qi(i){return ft().get(Y(i))?.status??"idle"}o(Qi,"ke");function Ji(i,t){let e=ue(Y(t));return e.listeners.add(i),()=>{e.listeners.delete(i)}}o(Ji,"De");function Ai(i){return{get tier(){return i.tier},get fallbackReason(){return i.fallbackReason},detect:o((...t)=>i.detect(...t),"detect"),destroy:o(()=>{},"destroy")}}o(Ai,"he");function Ii(i){let t=Y(i),e=ft().get(t);if(!(e===void 0||e.detector===null&&e.detectorPromise===null&&e.scheduled===null))return async()=>{e.scheduled!==null&&mt(e,t);let r=e.promise;for(;e.detector===null&&r!==null&&(await r,e.promise!==r);)r=e.promise;return e.detector!==null?Ai(e.detector):x({v3AssetBaseUrl:t})}}o(Ii,"oe");function xi(i){switch(i){case"fcv3.no_face":case"fcv3.center_face":case"fcv3.straighten":return"center";case"fcv3.come_closer":return"closer";case"fcv3.move_back":return"farther";case"fcv3.more_light":case"fcv3.too_bright":return"light";case"fcv3.hold_still":case"fcv3.steady_camera":return"still";case"fcv3.hold_upright":return"upright";case"fcv3.one_face":return"one_face";default:return null}}o(xi,"Ce");function Di(i){switch(i){case"preflight":case"acquiring":return"starting";case"positioning":return"gating";default:return i}}o(Di,"Se");function he(i){switch(i){case"permission":case"notfound":case"inuse":case"insecure":case"unsupported":return i;case"backcamera":return"notfound";default:{let t=i;return"generic"}}}o(he,"ie");function Ri(i,t,e){if(e===void 0)return{kind:he(i),retryable:t};let r=Gt(e.name);return{kind:he(i),retryable:t,detail:{...r!==void 0?{name:r}:{},phase:e.phase,engineKind:i}}}o(Ri,"Le");var Ci=new Set(["captured","uploading","checking"]);function Oi(i,t={},e,r=()=>"self",s=()=>{},a){let n=t.now??(()=>performance.now()),l=t.canChooseFacing??At,c="user",h=It(),d=r(),u=St(),v=!Ot(),w=t.engineOptions,m=w?.createDetector===void 0&&w?.createWorker===void 0?{createDetector:o(()=>{let f=Ii(i.assetBaseUrl);return f!==void 0?f():x({v3AssetBaseUrl:i.assetBaseUrl})},"createDetector")}:{},g={video:i.video,mode:v?"photo":"clip",rankKeyframes:e,facingMode:void 0,v3AssetBaseUrl:i.assetBaseUrl,screenRamp:o(()=>d==="self"&&u.count("ramp")>0?s():void 0,"screenRamp"),...t.engineOptions??{},...m},y=t.createEngine?.(g)??new le(g),p="idle",M=null,T=0,A=!1,k="full",b=null,I=null,_=0,H=0,pt=o(()=>{i.video.videoWidth>0&&i.video.videoHeight>0&&(_=i.video.videoWidth,H=i.video.videoHeight)},"K"),gt=xt({enabled:i.keepScreenAwake!==!1}),X=o(f=>{p=f,gt.setActive(f==="starting"||f==="gating"||f==="recording"),u.emit("state",f)},"M"),Q=o(()=>u.emit("gate",{progress:T,hint:M,faceDetected:A}),"R"),vt=o(()=>{let f=y.animations??"full";f!==k&&(k=f,u.emit("profile",{animations:k}))},"G"),de=[y.on("statechange",({state:f})=>{let E=Di(f);E==="starting"&&p!=="starting"&&(M=null,T=0,A=!1,b=null,I=null,_=0,H=0),X(E),vt(),E==="recording"&&(pt(),b=n(),M="hold",T=1,Q())}),y.on("checks",f=>{pt(),T=f.progress,A=f.factors.presence>0,Q(),vt()}),y.on("guidance",({key:f})=>{M=xi(f),Q()}),y.on("frozen",({previewDataUrl:f})=>{I=n(),u.emit("frozen",{previewDataUrl:f})}),y.on("ramp",f=>u.emit("ramp",f)),y.on("artifacts",f=>{if(p!=="captured")return;let E=V(),S=f.clipStats,bt=S!==void 0?Math.round(S.durationMs):b!==null&&I!==null?Math.max(0,Math.round(I-b)):void 0,Mt=S!==void 0&&S.frames>1&&S.durationMs>0?Math.round(S.frames*1e4/S.durationMs)/10:void 0;u.emit("captured",{keyframe:f.keyframe,...f.clip!==void 0?{clip:f.clip}:{},...f.clipMimeType!==void 0?{clipMime:f.clipMimeType}:{},width:i.video.videoWidth||_,height:i.video.videoHeight||H,...bt!==void 0?{clipMs:bt}:{},...S!==void 0?{clipFrames:S.frames}:{},...Mt!==void 0?{fps:Mt}:{},...f.clipRetakes!==void 0?{clipRetakes:f.clipRetakes}:{},...f.clipMimeType!==void 0?{codec:ae(f.clipMimeType)}:{},captureChannel:E==="desktop"?"desktop":"mobile",formFactor:E,...v?{degraded:"NO_RECORDER"}:{},engine:"v3",facingMode:y.facingMode,mode:d,...f.timing,...f.screenRamp!==void 0?{screenRamp:f.screenRamp}:{},...f.provenance!==void 0?{provenance:f.provenance}:{}})}),y.on("error",({kind:f,retryable:E,detail:S})=>{f==="backcamera"&&fe()||u.emit("error",Ri(f,E,S))})],yt=!1;function fe(){return J||yt||d!=="assisted"||a===void 0||a.session()!=="choice"?!1:(yt=!0,a.onModeChange("self"),d="self",c=tt("self"),X("mode_switch"),y.restart(c),!0)}o(fe,"ce");let wt=o(async()=>a!==void 0&&a.session()==="choice"&&await l().catch(()=>!1),"W"),J=!1;return{handle:{get state(){return p},get captureMode(){return r()},get facingMode(){return y.facingMode??c},on:o((f,E)=>u.on(f,E),"on"),start:o(f=>(d=r(),h.facing(d,i.facing),c=h.facing(d,f?.facing),y.start({facingMode:c})),"start"),retry:o(()=>y.retry(),"retry"),switchCamera:o(()=>h.refuseSwitch(r()),"switchCamera"),canSwitchCaptureMode:wt,setCaptureMode:o(async f=>{if(f===r()||!await wt()||J||Ci.has(p)||a===void 0)return!1;a.onModeChange(f),d=f;let E=tt(f);return c=E,p==="idle"||(X("mode_switch"),y.restart(E)),!0},"setCaptureMode"),destroy:o(()=>{J=!0;for(let f of de)f();gt.setActive(!1),y.destroy(),u.clear()},"destroy")},setFlowState:o(f=>{p!==f&&X(f)},"setFlowState")}}o(Oi,"Ee");function tr(i){return Oi(i).handle}o(tr,"ze");export{zi as a,Yi as b,Qi as c,Ji as d,Ri as e,Oi as f,tr as g};
@@ -0,0 +1 @@
1
+ import{a as d}from"./chunk-4FHWXBOB.js";async function Y(e){try{return E(await S(e))}catch{return null}}d(Y,"j");async function S(e){return typeof e.arrayBuffer=="function"?new Uint8Array(await e.arrayBuffer()):new Promise((r,i)=>{let t=new FileReader;t.onload=()=>r(new Uint8Array(t.result)),t.onerror=()=>i(t.error),t.readAsArrayBuffer(e)})}d(S,"B");function E(e){if(e.length<8)return null;try{if(e[0]===26&&e[1]===69&&e[2]===223&&e[3]===163)return T(e);if(k(e,4,4)==="ftyp")return N(e)}catch{return null}return null}d(E,"O");var I=new Set(["moov","trak","mdia","minf","stbl","mvex","moof","traf","edts"]);function N(e){let r=new DataView(e.buffer,e.byteOffset,e.byteLength),i=[],t=null,n=null,l=0,g=d((s,f)=>{let o=s;for(;o+8<=f;){let c=r.getUint32(o),b=k(e,o+4,4),z=8;if(c===1){if(o+16>f)return;c=Number(r.getBigUint64(o+8)),z=16}else c===0&&(c=f-o);if(c<z)return;let y=Math.min(o+c,f),a=o+z;if(b==="trak"&&(t={id:0,video:!1,timescale:0,frames:0,units:0,defaultDuration:0},i.push(t)),b==="traf"&&(n=null,l=0),I.has(b))g(a,y);else if(b==="tkhd"&&t)t.id=r.getUint32(a+(e[a]===1?20:12));else if(b==="hdlr"&&t)t.video=k(e,a+8,4)==="vide";else if(b==="mdhd"&&t)t.timescale=r.getUint32(a+(e[a]===1?20:12));else if(b==="stts"&&t){let u=r.getUint32(a+4);for(let m=0;m<u;m++){let w=r.getUint32(a+8+m*8);t.frames+=w,t.units+=w*r.getUint32(a+12+m*8)}}else if(b==="trex"){let u=i.find(m=>m.id===r.getUint32(a+4));u&&(u.defaultDuration=r.getUint32(a+12))}else if(b==="tfhd"){let u=r.getUint32(a)&16777215;n=i.find(w=>w.id===r.getUint32(a+4))??null;let m=a+8;u&1&&(m+=8),u&2&&(m+=4),l=u&8?r.getUint32(m):n?.defaultDuration??0}else if(b==="trun"&&n){let u=r.getUint32(a)&16777215,m=r.getUint32(a+4),w=a+8;u&1&&(w+=4),u&4&&(w+=4);let O=(u&256?4:0)+(u&512?4:0)+(u&1024?4:0)+(u&2048?4:0);for(let p=0;p<m;p++)n.units+=u&256?r.getUint32(w+p*O):l;n.frames+=m}o=y}},"d");g(0,e.length);let h=i.find(s=>s.video&&s.timescale>0);return!h||h.frames===0?null:{container:"mp4",frames:h.frames,durationMs:D(h.units*1e3/h.timescale)}}d(N,"L");var A=408125543,B=357149030,P=374648427,x=174,C=524531317,R=160,v=2807729,F=17545,W=215,j=131,q=231,G=163,H=161,J=290298740,V=new Set([A,B,P,x,C,R]);function K(e,r){let i=e[r];if(i===void 0||i===0)return null;let t=Math.clz32(i)-23;if(t<1||t>4||r+t>e.length)return null;let n=0;for(let l=0;l<t;l++)n=n*256+e[r+l];return[n,t]}d(K,"Y");function L(e,r){let i=e[r];if(i===void 0||i===0)return null;let t=Math.clz32(i)-23;if(t<1||t>8||r+t>e.length)return null;let n=i&255>>t,l=n===255>>t;for(let g=1;g<t;g++){let h=e[r+g];n=n*256+h,h!==255&&(l=!1)}return[l?-1:n,t]}d(L,"_");function U(e,r,i){let t=0;for(let n=0;n<i;n++)t=t*256+e[r+n];return t}d(U,"p");function M(e){let r=[],i=0;for(;i<e.length;){let t=K(e,i);if(!t)break;let n=L(e,i+t[1]);if(!n)break;let l={id:t[0],start:i,sizeAt:i+t[1],data:i+t[1]+n[1],size:n[0]};if(r.push(l),V.has(l.id))i=l.data;else{if(l.size<0)break;i=l.data+l.size}}return r}d(M,"k");function T(e){let r=new DataView(e.buffer,e.byteOffset,e.byteLength),i=1e6,t=[],n=0,l=[];for(let s of M(e)){if(s.data+Math.max(0,s.size)>e.length&&!V.has(s.id))break;switch(s.id){case v:i=U(e,s.data,s.size)||i;break;case x:t.push({num:0,type:0});break;case W:t.length&&(t[t.length-1].num=U(e,s.data,s.size));break;case j:t.length&&(t[t.length-1].type=U(e,s.data,s.size));break;case q:n=U(e,s.data,s.size);break;case G:case H:{let f=L(e,s.data);if(!f||s.data+f[1]+2>e.length)break;let o=t.filter(c=>c.type===1).map(c=>c.num);if(o.length>0&&!o.includes(f[0]))break;l.push((n+r.getInt16(s.data+f[1]))*i/1e6);break}default:break}}if(l.length===0)return null;l.sort((s,f)=>s-f);let g=l.slice(1).map((s,f)=>s-l[f]),h=g.length?g.sort((s,f)=>s-f)[Math.floor(g.length/2)]:0;return{container:"webm",frames:l.length,durationMs:D(l[l.length-1]-l[0]+h)}}d(T,"H");function _(e,r){if(!(r>0))return null;let i=M(e),t=i.find(a=>a.id===A);if(!t||t.size!==-1||i.some(a=>a.id===J))return null;let n=i.find(a=>a.id===B);if(!n||n.size<0||n.data+n.size>e.length)return null;let l=1e6,g=[];for(let a of i)a.start<n.data||a.start>=n.data+n.size||(a.id===v&&(l=U(e,a.data,a.size)||l),a.id!==F&&g.push(e.subarray(a.start,a.data+a.size)));let h=new Uint8Array(11);h.set([68,137,136]),new DataView(h.buffer).setFloat64(3,r*1e6/l);let s=g.reduce((a,u)=>a+u.length,0)+h.length,f=new Uint8Array(12);f.set([21,73,169,102,1]);let o=s;for(let a=11;a>=5;a--)f[a]=o&255,o=Math.floor(o/256);let c=e.subarray(n.data+n.size),b=new Uint8Array(n.start+f.length+s+c.length),z=0,y=d(a=>{b.set(a,z),z+=a.length},"x");return y(e.subarray(0,n.start)),y(f),g.forEach(y),y(h),y(c),b}d(_,"q");function Q(e){let r=1e6,i=null,t=new DataView(e.buffer,e.byteOffset,e.byteLength);for(let n of M(e))if(n.id===v&&(r=U(e,n.data,n.size)||r),n.id===F&&(i=n.size===8?t.getFloat64(n.data):n.size===4?t.getFloat32(n.data):null),n.id===C)break;return i===null?null:D(i*r/1e6)}d(Q,"J");function k(e,r,i){let t="";for(let n=0;n<i&&r+n<e.length;n++)t+=String.fromCharCode(e[r+n]);return t}d(k,"A");function D(e){return Math.round(e*10)/10}d(D,"z");export{S as blobBytes,Y as inspectClip,E as inspectClipBytes,Q as webmDurationMs,_ as withWebmDuration};
@@ -0,0 +1 @@
1
+ import{a as t,b as r,c as m,d as o}from"./chunk-CFJJD6T2.js";import"./chunk-SK6UAYX2.js";import"./chunk-CMS5FVGM.js";import"./chunk-ZKLSZJFN.js";import"./chunk-6H22RNSK.js";import"./chunk-UZWMCNZI.js";import"./chunk-D334IAZJ.js";import"./chunk-RRLXNT33.js";import"./chunk-4FHWXBOB.js";export{t as SAME_FACE_MAX_DROPS,m as createDocumentCapture,o as createDocumentCaptureInternal,r as warmDocumentCapture};
@@ -0,0 +1 @@
1
+ import{a as r,b as a,c as t,d as o,e as m,f as p}from"./chunk-JM3CYFFZ.js";import"./chunk-HDJ6JFXX.js";import"./chunk-T4M2J44L.js";import"./chunk-FAIDO3QL.js";import"./chunk-IBOJTLL7.js";import"./chunk-ET7NCKUV.js";import"./chunk-D334IAZJ.js";import"./chunk-RRLXNT33.js";import"./chunk-4FHWXBOB.js";export{r as ANALYSIS_LONG_EDGE,a as PORTRAIT_JPEG_QUALITY,m as createPortraitCaptureInternal,t as defaultGrabber,o as observe,p as warmPortraitCapture};
@@ -0,0 +1 @@
1
+ import{a as fA}from"./chunk-X767DBO7.js";import"./chunk-CMS5FVGM.js";import"./chunk-UZWMCNZI.js";import{a as q}from"./chunk-4FHWXBOB.js";var Z,bA=1e3,pA=10;function qA(I,A={}){let o=A.width||Math.sqrt(I.length),t=A.height||I.length/o,C=A.mode!==void 0?A.mode:1,g=A.method!==void 0?A.method:2,Q=A.minArea||bA,E=o+2,a=t+2,i=new Int32Array(E*a);for(let s=0;s<t;s++)for(let e=0;e<o;e++)I[s*o+e]>0&&(i[(s+1)*E+(e+1)]=1);let h=[],D=2;for(let s=1;s<=t;s++)for(let e=1;e<=o;e++){let y=i[s*E+e],N=i[s*E+(e-1)],B=null,r=!1,F=-1;if(y===1&&N===0?(r=!0,B={x:e,y:s},F=2):y===0&&N>=1&&N!==-1&&N===1&&(r=!1,B={x:e-1,y:s},F=6),B){if(C===0&&!r){i[B.y*E+B.x]=-1;continue}let R=D++,m=xA(i,E,a,B,F,R);if(m&&m.length>0){let M=m;g===2&&(M=KA(m));let c=M.map(G=>({x:G.x-1,y:G.y-1}));if(c.length>=(g===2?4:pA)){let G={id:R,points:c,isOuter:r};h.push(G)}}else i[B.y*E+B.x]===1&&(i[B.y*E+B.x]=R)}}h.forEach(s=>{s.area=(function(e){let y=0,N=e.length;if(N<3)return 0;for(let B=0;B<N;B++){let r=(B+1)%N;y+=e[B].x*e[r].y,y-=e[r].x*e[B].y}return Math.abs(y)/2})(s.points),s.boundingBox=(function(e){if(e.length===0)return{minX:0,minY:0,maxX:0,maxY:0};let y=e[0].x,N=e[0].y,B=e[0].x,r=e[0].y;for(let F=1;F<e.length;F++){let R=e[F];y=Math.min(y,R.x),N=Math.min(N,R.y),B=Math.max(B,R.x),r=Math.max(r,R.y)}return{minX:y,minY:N,maxX:B,maxY:r}})(s.points)});let n=h.filter(s=>s.area>=Q);return n.sort((s,e)=>e.area-s.area),A.debug&&(A.debug.labels=i,A.debug.rawContours=h,A.debug.finalContours=n),n}q(qA,"YA");function xA(I,A,o,t,C,g){let Q=[],E=new Set,a=t.x,i=t.y,h=a,D=i,n=-1;I[D*A+h]=g;let s=0,e=A*o,y=[0,1,1,1,0,-1,-1,-1],N=[-1,-1,0,1,1,1,0,-1];for(;s++<e;){let B;if(n===-1){let M=!1;for(let c=0;c<8;c++){B=C+c&7;let G=a+y[B],u=i+N[B];if(G>=0&&G<A&&u>=0&&u<o&&I[u*A+G]>0){M=!0;break}}if(!M)return null}else B=n+2&7;let r=-1,F=-1;for(let M=0;M<8;M++){let c=B+M&7,G=a+y[c],u=i+N[c];if(G>=0&&G<A&&u>=0&&u<o&&I[u*A+G]>0){r=G,F=u,n=c+4&7;break}}if(r===-1){Q.length===0&&Q.push({x:a,y:i});break}let R=i*A+a;if(E.has(R))return Q;Q.push({x:a,y:i}),E.add(R);let m=F*A+r;if(I[m]===1&&(I[m]=g),a=r,i=F,a===h&&i===D)break}return s>=e?null:Q}q(xA,"qA");function KA(I){let A=I.length;if(A<=2)return I;let o=[],t=I[A-1],C=I[0],g=t,Q=C,E=I[1],a=Q.x-g.x,i=Q.y-g.y,h=E.x-Q.x,D=E.y-Q.y;a*D!==i*h&&o.push(Q);for(let n=1;n<A-1;n++)g=I[n-1],Q=I[n],E=I[n+1],a=Q.x-g.x,i=Q.y-g.y,h=E.x-Q.x,D=E.y-Q.y,a*D!==i*h&&o.push(Q);if(g=I[A-2],Q=t,E=C,a=Q.x-g.x,i=Q.y-g.y,h=E.x-Q.x,D=E.y-Q.y,a*D!==i*h&&o.push(Q),o.length===0){if(A===1)return[I[0]];if(A===2)return I;let n=0,s=1,e=C.x,y=C.y;for(let N=1;N<A;N++){let B=I[N],r=B.x-e,F=B.y-y,R=r*r+F*F;R>n&&(n=R,s=N)}return[C,I[s]]}return o}q(KA,"vA");function GA(I,A=1){if(I.length<=2)return I;let o=0,t=0,C=I[0],g=I[I.length-1];for(let Q=1;Q<I.length-1;Q++){let E=TA(I[Q],C,g);E>o&&(o=E,t=Q)}if(o>A){let Q=GA(I.slice(0,t+1),A),E=GA(I.slice(t),A);return Q.slice(0,-1).concat(E)}return[C,g]}q(GA,"uA");function TA(I,A,o){let t=o.x-A.x,C=o.y-A.y,g=t*t+C*C;if(g===0)return Math.sqrt(Math.pow(I.x-A.x,2)+Math.pow(I.y-A.y,2));let Q=((I.x-A.x)*t+(I.y-A.y)*C)/g,E,a;Q<0?(E=A.x,a=A.y):Q>1?(E=o.x,a=o.y):(E=A.x+Q*t,a=A.y+Q*C);let i=I.x-E,h=I.y-a;return Math.sqrt(i*i+h*h)}q(TA,"KA");function LA(I,A=.02){return GA(I,A*(function(o){let t=0,C=o.length;if(C<2)return 0;for(let g=0;g<C;g++){let Q=(g+1)%C,E=o[g].x-o[Q].x,a=o[g].y-o[Q].y;t+=Math.sqrt(E*E+a*a)}return t})(I))}q(LA,"SA");function JA(I,A){return Math.hypot(A.x-I.x,A.y-I.y)}q(JA,"mA");function SA(I){let A=0,o=0;for(let t of I)A+=t.x,o+=t.y;return{x:A/I.length,y:o/I.length}}q(SA,"RA");function WA(I,A={}){if(!I||!I.points||I.points.length<4)return null;let o=A.epsilon||.02,t=(function(g,Q){if(!g||g.length<4)return null;let E=[Q,1.3*Q,1.6*Q,2*Q],a=new Set;for(let i of E){let h=Math.min(.12,i),D=h.toFixed(4);if(a.has(D))continue;a.add(D);let n=vA(LA(g,h));if(n&&n.length===4)return n}return null})(I.points,o),C;return t&&t.length===4?C=(function(g){if(g.length!==4)return null;let Q=SA(g),E=[...g].sort((D,n)=>Math.atan2(D.y-Q.y,D.x-Q.x)-Math.atan2(n.y-Q.y,n.x-Q.x)),a=1/0,i=0;for(let D=0;D<4;D++){let n=E[D].x+E[D].y;n<a&&(a=n,i=D)}let h=[E[i],E[(i+1)%4],E[(i+2)%4],E[(i+3)%4]];return{topLeft:h[0],topRight:h[1],bottomRight:h[2],bottomLeft:h[3]}})(t):(C=(function(g){if(!g||g.length<4)return null;let Q=SA(g),E=null,a=null,i=null,h=null,D=0,n=0,s=0,e=0;for(let y of g){let N=JA(y,Q);y.x<Q.x&&y.y<Q.y?N>D&&(E=y,D=N):y.x>Q.x&&y.y<Q.y?N>n&&(a=y,n=N):y.x>Q.x&&y.y>Q.y?N>s&&(i=y,s=N):y.x<Q.x&&y.y>Q.y&&N>e&&(h=y,e=N)}return E&&a&&i&&h?{topLeft:E,topRight:a,bottomRight:i,bottomLeft:h}:null})(I.points),C&&C.topLeft&&C.topRight&&C.bottomRight&&C.bottomLeft||(C=(function(g){if(!g||g.length===0)return null;let Q=g[0],E=g[0],a=g[0],i=g[0],h=Q.x+Q.y,D=E.x-E.y,n=a.x+a.y,s=i.x-i.y;for(let e=1;e<g.length;e++){let y=g[e],N=y.x+y.y,B=y.x-y.y;N<h&&(h=N,Q=y),N>n&&(n=N,a=y),B>D&&(D=B,E=y),B<s&&(s=B,i=y)}return{topLeft:Q,topRight:E,bottomRight:a,bottomLeft:i}})(I.points))),C&&C.topLeft&&C.topRight&&C.bottomRight&&C.bottomLeft?C:null}q(WA,"TA");function vA(I){if(!I||I.length<4)return null;if(I.length===4)return I;if(I.length>8)return null;let A=(function(o,t){if(!o||o.length===0)return[];let C=[];for(let g of o)(C.length===0||JA(g,C[C.length-1])>t)&&C.push(g);return C.length>2&&JA(C[0],C[C.length-1])<=t&&C.pop(),C})(I,6);return A.length===4?A:(A.length,null)}q(vA,"WA");var tA=null;function UA(){return tA!==null&&tA.byteLength!==0||(tA=new Uint8Array(Z.memory.buffer)),tA}q(UA,"MA");var gA=0;function RA(I,A){let o=A(1*I.length,1)>>>0;return UA().set(I,o/1),gA=I.length,o}q(RA,"dA");function yA(I,A){return I>>>=0,UA().subarray(I/1,I/1+A)}q(yA,"cA");var oA=null;function HA(){return oA!==null&&oA.byteLength!==0||(oA=new Float32Array(Z.memory.buffer)),oA}q(HA,"bA");function ZA(I,A,o,t,C){let g=(function(i,h){let D=h(4*i.length,4)>>>0;return HA().set(i,D/4),gA=i.length,D})(I,Z.__wbindgen_malloc),Q=gA,E=Z.hysteresis_thresholding(g,Q,A,o,t,C);var a=yA(E[0],E[1]).slice();return Z.__wbindgen_free(E[0],1*E[1],1),a}q(ZA,"PA");var eA=null;function mA(I,A){let o=A(2*I.length,2)>>>0;return(eA!==null&&eA.byteLength!==0||(eA=new Uint16Array(Z.memory.buffer)),eA).set(I,o/2),gA=I.length,o}q(mA,"pA");function XA(I,A,o,t,C){let g=mA(I,Z.__wbindgen_malloc),Q=gA,E=mA(A,Z.__wbindgen_malloc),a=gA,i=Z.non_maximum_suppression(g,Q,E,a,o,t,C);var h,D,n=(h=i[0],D=i[1],h>>>=0,HA().subarray(h/4,h/4+D)).slice();return Z.__wbindgen_free(i[0],4*i[1],4),n}q(XA,"ZA");async function YA(I){if(Z!==void 0)return Z;if(I!==void 0&&Object.getPrototypeOf(I)===Object.prototype&&({module_or_path:I}=I),I===void 0)throw new Error("scanic: WASM module bytes must be passed to init().");let A=(function(){let C={wbg:{}};return C.wbg.__wbindgen_init_externref_table=function(){let g=Z.__wbindgen_export_0,Q=g.grow(4);g.set(0,void 0),g.set(Q+0,void 0),g.set(Q+1,null),g.set(Q+2,!0),g.set(Q+3,!1)},C})();(typeof I=="string"||typeof Request=="function"&&I instanceof Request||typeof URL=="function"&&I instanceof URL)&&(I=fetch(I));let{instance:o,module:t}=await(async function(C,g){if(typeof Response=="function"&&C instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(C,g)}catch(E){if(C.headers.get("Content-Type")=="application/wasm")throw E}let Q=await C.arrayBuffer();return await WebAssembly.instantiate(Q,g)}{let Q=await WebAssembly.instantiate(C,g);return Q instanceof WebAssembly.Instance?{instance:Q,module:C}:Q}})(await I,A);return(function(C,g){return Z=C.exports,YA.__wbindgen_wasm_module=g,oA=null,eA=null,tA=null,Z.__wbindgen_start(),Z})(o,t)}q(YA,"LA");var hA=null,kA=!1,FA=null;function VA(I){if(typeof atob=="function"){let A=atob(I),o=new Uint8Array(A.length);for(let t=0;t<A.length;t++)o[t]=A.charCodeAt(t);return o}return Uint8Array.from(Buffer.from(I,"base64"))}q(VA,"XA");async function PA(){if(!(function(){if(FA!==null)return FA;let I=!1;if(typeof WebAssembly=="object"&&typeof WebAssembly.validate=="function"){let A=new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11]),o=new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,111,3,2,1,0,10,6,1,4,0,208,111,11]);try{I=WebAssembly.validate(A)&&WebAssembly.validate(o)}catch{I=!1}}return FA=I,I})())throw new Error("scanic: WebAssembly features required by the WASM module (reference-types, SIMD) are unavailable in this engine; using the JavaScript fallback.");return await YA({module_or_path:VA("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JAAgAiABIAJqIgFLBEBBAEEAEC0ACyADQQRqIAAoAgAiAiAAKAIEQQggASACQQF0IgIgASACSxsiASABQQhNGyIBQQFBARARIAMoAgRBAUYEQCADKAIIIAMoAgwQLQALIAMoAgghAiAAIAE2AgAgACACNgIEIANBEGokAAt5AQF/IwBBIGsiAiQAAn8gACgCAEGAgICAeEcEQCABIAAoAgQgACgCCBAwDAELIAJBEGogACgCDCgCACIAQQhqKQIANwMAIAJBGGogAEEQaikCADcDACACIAApAgA3AwggASgCACABKAIEIAJBCGoQBwsgAkEgaiQAC2kBA38jAEEQayIBJAAgAUEEaiAAKAIAIgIgACgCBEEEIAJBAXQiAiACQQRNGyICQQRBBBARIAEoAgRBAUYEQCABKAIIIAEoAgwQLQALIAEoAgghAyAAIAI2AgAgACADNgIEIAFBEGokAAtpAQN/IwBBEGsiASQAIAFBBGogACgCACICIAAoAgRBBCACQQF0IgIgAkEETRsiAkEEQQgQESABKAIEQQFGBEAgASgCCCABKAIMEC0ACyABKAIIIQMgACACNgIAIAAgAzYCBCABQRBqJAALaQEDfyMAQRBrIgEkACABQQRqIAAoAgAiAiAAKAIEQQQgAkEBdCICIAJBBE0bIgJBAkECEBEgASgCBEEBRgRAIAEoAgggASgCDBAtAAsgASgCCCEDIAAgAjYCACAAIAM2AgQgAUEQaiQACxIAIwBBMGsiACQAIABBMGokAAtoAgF/AX4jAEEwayIDJAAgAyABNgIEIAMgADYCACADQQI2AgwgA0Hkl8AANgIIIANCAjcCFCADQoCAgIAwIgQgA62ENwMoIAMgBCADQQRqrYQ3AyAgAyADQSBqNgIQIANBCGogAhAmAAtHAQF/IAAoAgAgACgCCCIDayACSQRAIAAgAyACEBIgACgCCCEDCyACBEAgACgCBCADaiABIAL8CgAACyAAIAIgA2o2AghBAAtEAQJ/IAEoAgQhAiABKAIAIQNBCEEEEDUiAUUEQEEEQQgQOQALIAEgAjYCBCABIAM2AgAgAEHcksAANgIEIAAgATYCAAvGAgACQCAAIAJNBEAgACABTSABIAJLcg0BIwBBMGsiAiQAIAIgATYCBCACIAA2AgAgAkECNgIMIAJB2JbAADYCCCACQgI3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IAAAABwAEAAMAAAAEgAAABcAAAAcABAADAAAABcAAAAZAAAAHAAQAAwAAAAUAAAAGQAAABwAEAAMAAAAUQAAAB4AAAAcABAADAAAAFIAAAAeAAAATGF6eSBpbnN0YW5jZSBoYXMgcHJldmlvdXNseSBiZWVuIHBvaXNvbmVkAAA8CBAAKgAAAEgBEABaAAAACAMAABkAAAByZWVudHJhbnQgaW5pdAAAgAgQAA4AAABIARAAWgAAAHoCAAANAAAAfP2LMlfmV/kC30S/40jnr21dy9YsUOtjeEGmV3Ebi7ltZW1vcnkgYWxsb2NhdGlvbiBvZiAgYnl0ZXMgZmFpbGVkAADICBAAFQAAAN0IEAANAAAALwEQABgAAABkAQAACQAAAAQAAAAMAAAABAAAAAUAAAAGAAAABwAAAAAAAAAIAAAABAAAAAgAAAAJAAAACgAAAAsAAAAMAAAAEAAAAAQAAAANAAAADgAAAA8AAAAQAAAAAAAAAAgAAAAEAAAAEQAAAGFzc2VydGlvbiBmYWlsZWQ6IHBzaXplID49IHNpemUgKyBtaW5fb3ZlcmhlYWQAAAQBEAAqAAAAsQQAAAkAAABhc3NlcnRpb24gZmFpbGVkOiBwc2l6ZSA8PSBzaXplICsgbWF4X292ZXJoZWFkAAAEARAAKgAAALcEAAANAAAABAAAAAwAAAAEAAAAEgAAAGNhcGFjaXR5IG92ZXJmbG93AAAA/AkQABEAAADjABAAIAAAABwAAAAFAAAAMDAwMTAyMDMwNDA1MDYwNzA4MDkxMDExMTIxMzE0MTUxNjE3MTgxOTIwMjEyMjIzMjQyNTI2MjcyODI5MzAzMTMyMzMzNDM1MzYzNzM4Mzk0MDQxNDI0MzQ0NDU0NjQ3NDg0OTUwNTE1MjUzNTQ1NTU2NTc1ODU5NjA2MTYyNjM2NDY1NjY2NzY4Njk3MDcxNzI3Mzc0NzU3Njc3Nzg3OTgwODE4MjgzODQ4NTg2ODc4ODg5OTA5MTkyOTM5NDk1OTY5Nzk4OTlyYW5nZSBlbmQgaW5kZXggIG91dCBvZiByYW5nZSBmb3Igc2xpY2Ugb2YgbGVuZ3RoIAAA8AoQABAAAAAACxAAIgAAAHNsaWNlIGluZGV4IHN0YXJ0cyBhdCAgYnV0IGVuZHMgYXQgADQLEAAWAAAASgsQAA0AAAByYW5nZSBzdGFydCBpbmRleCAAAGgLEAASAAAAAAsQACIAAABhdHRlbXB0IHRvIGRpdmlkZSBieSB6ZXJvAAAAjAsQABkAAABpbmRleCBvdXQgb2YgYm91bmRzOiB0aGUgbGVuIGlzICBidXQgdGhlIGluZGV4IGlzIAAAsAsQACAAAADQCxAAEgAAAAAAAD8AAAC/AEGUmMAACwEBAHwJcHJvZHVjZXJzAghsYW5ndWFnZQEEUnVzdAAMcHJvY2Vzc2VkLWJ5AwVydXN0Yx0xLjkyLjAgKGRlZDVjMDZjZiAyMDI1LTEyLTA4KQZ3YWxydXMGMC4yMy4zDHdhc20tYmluZGdlbhMwLjIuMTAwICgyNDA1ZWMyYjQpAHQPdGFyZ2V0X2ZlYXR1cmVzBysPbXV0YWJsZS1nbG9iYWxzKxNub250cmFwcGluZy1mcHRvaW50KwdzaW1kMTI4KwtidWxrLW1lbW9yeSsIc2lnbi1leHQrD3JlZmVyZW5jZS10eXBlcysKbXVsdGl2YWx1ZQ==")})}q(PA,"VA");function iA(){return hA||(hA=PA().catch(I=>{throw hA=null,I})),hA}q(iA,"tA");function jA(I,A,o,t=5,C=0){C===0&&(C=.3*(.5*(t-1)-1)+.8);let g=Math.floor(t/2),Q=(function(i,h){let D=new Float32Array(i),n=Math.floor(i/2),s=0;for(let e=0;e<i;e++){let y=e-n;D[e]=Math.exp(-y*y/(2*h*h)),s+=D[e]}for(let e=0;e<i;e++)D[e]/=s;return D})(t,C),E=new Uint8ClampedArray(A*o),a=new Uint8ClampedArray(A*o);for(let i=0;i<o;i++){let h=i*A;for(let D=0;D<A;D++){let n=0;for(let s=-g;s<=g;s++)n+=I[h+Math.min(A-1,Math.max(0,D+s))]*Q[g+s];E[h+D]=n}}for(let i=0;i<A;i++)for(let h=0;h<o;h++){let D=0;for(let n=-g;n<=g;n++)D+=E[Math.min(o-1,Math.max(0,h+n))*A+i]*Q[g+n];a[h*A+i]=Math.round(D)}return a}q(jA,"jA");function dA(I,A,o,t,C){let g=new Uint8Array(A*o),Q=[];for(let i=1;i<o-1;i++)for(let h=1;h<A-1;h++){let D=i*A+h,n=I[D];n>=C?(g[D]=2,Q.push({x:h,y:i})):g[D]=n>=t?0:1}for(let i=0;i<A;i++)g[i]=1,g[(o-1)*A+i]=1;for(let i=1;i<o-1;i++)g[i*A]=1,g[i*A+A-1]=1;let E=[-1,0,1,-1,1,-1,0,1],a=[-1,-1,-1,0,0,1,1,1];for(;Q.length>0;){let{x:i,y:h}=Q.pop();for(let D=0;D<8;D++){let n=i+E[D],s=h+a[D],e=s*A+n;g[e]===0&&(g[e]=2,Q.push({x:n,y:s}))}}return g}q(dA,"JA");async function OA(I,A={}){let o=!(!A.debug||A.debug._timingsOnly),t=[],C=performance.now(),g,Q,E;if(A.skipGrayscale)g=A.width,Q=A.height,E=I,o&&(A.debug.grayscale=E);else{g=I.width,Q=I.height;let Y=performance.now();E=(function(f){let{width:x,height:T,data:d}=f,p=new Uint8ClampedArray(x*T);for(let w=0,H=0;w<d.length;w+=4,H++)p[H]=54*d[w]+183*d[w+1]+19*d[w+2]>>8;return p})(I);let l=performance.now();t.push({step:"Grayscale",ms:(l-Y).toFixed(2)}),o&&(A.debug.grayscale=E)}let a=A.lowThreshold!==void 0?A.lowThreshold:null,i=A.highThreshold!==void 0?A.highThreshold:null;if(a===null||i===null){let Y=new Uint32Array(1024),l=0;for(let d=1;d<Q-1;d++)for(let p=1;p<g-1;p++){let w=d*g+p,H=-E[w-g-1]+E[w-g+1]-2*E[w-1]+2*E[w+1]-E[w+g-1]+E[w+g+1],S=-E[w-g-1]-2*E[w-g]-E[w-g+1]+E[w+g-1]+2*E[w+g]+E[w+g+1],U=Math.abs(H)+Math.abs(S);U>=1024&&(U=1023),U>0&&(Y[U]++,l++)}let f=Math.round(.7*l),x=0,T=75;for(let d=1;d<1024;d++)if(x+=Y[d],x>=f){T=d;break}a===null&&(a=Math.max(5,Math.round(.5*T))),i===null&&(i=Math.min(500,Math.round(1.5*T)))}let h=A.kernelSize||5,D=A.sigma||0,n=A.L2gradient!==void 0&&A.L2gradient,s=A.applyDilation===void 0||A.applyDilation,e=A.dilationKernelSize||5,y=A.useWasmHysteresis!==void 0&&A.useWasmHysteresis,N=A.useWasmFullCanny!==void 0&&A.useWasmFullCanny;if(a>=i&&([a,i]=[i,a]),N)try{await iA();let Y=performance.now(),l=new Uint8ClampedArray((function(T,d,p,w,H,S,U,k,J,L){let b=RA(T,Z.__wbindgen_malloc),K=gA,W=Z.canny_edge_detector_full(b,K,d,p,w,H,S,U,k,J,L);var v=yA(W[0],W[1]).slice();return Z.__wbindgen_free(W[0],1*W[1],1),v})(E,g,Q,a,i,h,D,n,s,e)),f=(performance.now()-Y).toFixed(2);t.push({step:"Edge Processing (WASM)",ms:f}),o&&(A.debug.finalEdges=l),A.debug?A.debug.timings=t:A.debug={timings:t};let x=performance.now();return t.unshift({step:"Edge Detection Total",ms:(x-C).toFixed(2)}),l}catch(Y){kA||(kA=!0,Y instanceof Error?Y.message:String(Y))}let B,r,F,R,m,M;B=performance.now();try{await iA(),F=(function(Y,l,f,x,T){let d=RA(Y,Z.__wbindgen_malloc),p=gA,w=Z.blur(d,p,l,f,x,T);var H=yA(w[0],w[1]).slice();return Z.__wbindgen_free(w[0],1*w[1],1),H})(E,g,Q,h,D)}catch{F=jA(E,g,Q,h,D)}r=performance.now(),t.push({step:"Gaussian Blur",ms:(r-B).toFixed(2)}),o&&(A.debug.blurred=F),B=performance.now();{let Y=(function(l,f,x){let T=new Int16Array(f*x),d=new Int16Array(f*x);for(let p=1;p<x-1;p++){let w=p*f,H=(p-1)*f,S=(p+1)*f;for(let U=1;U<f-1;U++){let k=w+U,J=l[H+U-1],L=l[H+U],b=l[H+U+1],K=l[w+U-1],W=l[w+U+1],v=l[S+U-1],j=l[S+U],P=l[S+U+1],_=b-J+2*(W-K)+(P-v),$=v+2*j+P-(J+2*L+b);T[k]=_,d[k]=$}}return{dx:T,dy:d}})(F,g,Q);R=Y.dx,m=Y.dy}r=performance.now(),t.push({step:"Gradients",ms:(r-B).toFixed(2)}),B=performance.now();try{await iA(),M=await XA(R,m,g,Q,n)}catch{M=(function(Y,l,f,x,T){let d=new Float32Array(f*x),p=new Float32Array(f*x);for(let w=0;w<Y.length;w++){let H=Y[w],S=l[w];d[w]=T?Math.sqrt(H*H+S*S):Math.abs(H)+Math.abs(S)}for(let w=1;w<x-1;w++)for(let H=1;H<f-1;H++){let S=w*f+H,U=d[S];if(U===0){p[S]=0;continue}let k=Y[S],J=l[S],L=0,b=0,K=Math.abs(k),W=Math.abs(J);if(W>2.4142*K)L=d[S-f],b=d[S+f];else if(K>2.4142*W)L=d[S-1],b=d[S+1];else{let v=(k^J)<0?-1:1;J>0?(L=d[(w-1)*f+(H-v)],b=d[(w+1)*f+(H+v)]):(L=d[(w+1)*f+(H-v)],b=d[(w-1)*f+(H+v)]),k>0&&J>0||k<0&&J<0?(L=d[(w-1)*f+(H+1)],b=d[(w+1)*f+(H-1)]):(L=d[(w-1)*f+(H-1)],b=d[(w+1)*f+(H+1)])}p[S]=U>=L&&U>=b?U:0}return p})(R,m,g,Q,n)}r=performance.now(),t.push({step:"Non-Max Suppression",ms:(r-B).toFixed(2)}),B=performance.now();let c=n?a*a:a,G=n?i*i:i,u;if(y)try{await iA(),u=ZA(M,g,Q,c,G)}catch{u=dA(M,g,Q,c,G)}else u=dA(M,g,Q,c,G);r=performance.now(),t.push({step:"Hysteresis",ms:(r-B).toFixed(2)}),B=performance.now();let V=new Uint8ClampedArray(g*Q);for(let Y=0;Y<u.length;Y++)V[Y]=u[Y]===2?255:0;r=performance.now(),t.push({step:"Binary Image",ms:(r-B).toFixed(2)}),B=performance.now();let X=V;if(s)try{await iA(),X=(function(Y,l,f,x){let T=RA(Y,Z.__wbindgen_malloc),d=gA,p=Z.dilate(T,d,l,f,x);var w=yA(p[0],p[1]).slice();return Z.__wbindgen_free(p[0],1*p[1],1),w})(V,g,Q,e)}catch{X=(function(Y,l,f,x=5){let T=Math.floor(x/2),d=new Uint8ClampedArray(l*f),p=new Uint8ClampedArray(l*f);for(let w=0;w<f;w++){let H=w*l;for(let S=0;S<l;S++){let U=0;for(let k=-T;k<=T;k++){let J=S+k;if(J>=0&&J<l){let L=Y[H+J];L>U&&(U=L)}}d[H+S]=U}}for(let w=0;w<l;w++)for(let H=0;H<f;H++){let S=0;for(let U=-T;U<=T;U++){let k=H+U;if(k>=0&&k<f){let J=d[k*l+w];J>S&&(S=J)}}p[H*l+w]=S}return p})(V,g,Q,e)}if(r=performance.now(),t.push({step:"Dilation",ms:(r-B).toFixed(2)}),o){A.debug.dx=R,A.debug.dy=m;let Y=new Float32Array(g*Q);for(let l=0;l<R.length;l++){let f=R[l],x=m[l];Y[l]=n?Math.sqrt(f*f+x*x):Math.abs(f)+Math.abs(x)}A.debug.magnitude=Y,A.debug.suppressed=M,A.debug.edgeMap=u,A.debug.cannyEdges=V,A.debug.finalEdges=X}A.debug?A.debug.timings=t:A.debug||(A.debug={timings:t});let O=performance.now();return t.unshift({step:"Edge Detection Total",ms:(O-C).toFixed(2)}),X}q(OA,"OA");function aA(I){return I<=0?0:I>=1?1:I}q(aA,"oA");function nA(I,A){return Math.hypot(I.x-A.x,I.y-A.y)}q(nA,"nA");function MA(I){return[nA(I.topLeft,I.topRight),nA(I.topRight,I.bottomRight),nA(I.bottomRight,I.bottomLeft),nA(I.bottomLeft,I.topLeft)]}q(MA,"GA");function zA(I){let A=(function(t){let C=[t.topLeft,t.topRight,t.bottomRight,t.bottomLeft],g=[];for(let Q=0;Q<C.length;Q++){let E=C[(Q+C.length-1)%C.length],a=C[Q],i=C[(Q+1)%C.length],h=E.x-a.x,D=E.y-a.y,n=i.x-a.x,s=i.y-a.y,e=h*n+D*s,y=Math.max(1e-6,Math.hypot(h,D)*Math.hypot(n,s)),N=Math.max(-1,Math.min(1,e/y));g.push(180*Math.acos(N)/Math.PI)}return g})(I),o=0;for(let t of A)o+=aA(1-Math.abs(t-90)/55);return o/Math.max(1,A.length)}q(zA,"zA");function uA(I,A){let o=Number(A.isValid)-Number(I.isValid);if(o!==0)return o;let t=A.confidence-I.confidence;if(!(Math.abs(t)<.015)&&t!==0)return t;let C=Math.abs((I.approxCount??99)-4)-Math.abs((A.approxCount??99)-4);if(C!==0)return C;let g=(A.rightAngleScore??0)-(I.rightAngleScore??0);if(Math.abs(g)>1e-6)return g;let Q=Math.abs(1-(I.contourFitRatio??1))-Math.abs(1-(A.contourFitRatio??1));return Math.abs(Q)>1e-6?Q:t||A.score-I.score||A.coverageRatio-I.coverageRatio||A.area-I.area}q(uA,"kA");function _A(I,A,o,t,C={}){let g=C.epsilon||.02,Q=LA(I.points,g).length,E=WA(I,{epsilon:g});if(!E)return{contour:I,corners:null,score:0,confidence:0,isValid:!1,area:I.area||0,fillRatio:0,coverageRatio:0,cornersArea:0,approxCount:Q,convex:!1,edgeSupport:0,aspectRatio:1/0,minSide:0,rightAngleScore:0,oppositeSideConsistency:0,contourFitRatio:0,contourFitScore:0};let a=o*t,i=I.area||0,h=I.boundingBox||{minX:0,minY:0,maxX:0,maxY:0},D=i/Math.max(1,(h.maxX-h.minX+1)*(h.maxY-h.minY+1)),n=(function(k){if(!k)return 0;let J=[k.topLeft,k.topRight,k.bottomRight,k.bottomLeft],L=0;for(let b=0;b<J.length;b++){let K=(b+1)%J.length;L+=J[b].x*J[K].y-J[K].x*J[b].y}return Math.abs(L)/2})(E),s=n/Math.max(1,a),e=MA(E),y=Math.min(...e),N=(e[0]+e[2])/2,B=(e[1]+e[3])/2,r=N>B?N/Math.max(1e-6,B):B/Math.max(1e-6,N),F=(function(k){let J=[k.topLeft,k.topRight,k.bottomRight,k.bottomLeft],L=[];for(let K=0;K<J.length;K++){let W=J[K],v=J[(K+1)%J.length],j=J[(K+2)%J.length],P=(v.x-W.x)*(j.y-v.y)-(v.y-W.y)*(j.x-v.x);Math.abs(P)<1e-6||L.push(Math.sign(P))}if(L.length<3)return!1;let b=L[0];return L.every(K=>K===b)})(E),R=(function(k,J,L,b){if(!k?.points||k.points.length===0)return 0;let K=Math.max(1,Math.floor(k.points.length/240)),W=0,v=0;for(let j=0;j<k.points.length;j+=K){let P=k.points[j],_=Math.max(0,Math.min(L-1,0|P.x)),$=Math.max(0,Math.min(b-1,0|P.y));W++;let BA=!1;for(let AA=-1;AA<=1&&!BA;AA++){let IA=$+AA;if(!(IA<0||IA>=b))for(let QA=-1;QA<=1;QA++){let CA=_+QA;if(!(CA<0||CA>=L)&&J[IA*L+CA]>0){BA=!0;break}}}BA&&v++}return W===0?0:v/W})(I,A,o,t),m=zA(E),M=(function(k){let J=MA(k);return(Math.min(J[0],J[2])/Math.max(1e-6,Math.max(J[0],J[2]))+Math.min(J[1],J[3])/Math.max(1e-6,Math.max(J[1],J[3])))/2})(E),c=i/Math.max(1,n),G=aA(1-Math.abs(c-1)/.55),u=Q===4?1:Q===5?.9:Q===6?.7:Q<=8?.5:.28,V=aA(i/Math.max(1,.4*a)),X=aA((D-.08)/.72),O=aA((s-.03)/.82),Y=C.minDocumentSideRatio!==void 0?C.minDocumentSideRatio:.06,l=C.minDocumentCoverageRatio!==void 0?C.minDocumentCoverageRatio:.04,f=C.maxDocumentAspectRatio!==void 0?C.maxDocumentAspectRatio:8,x=C.minDocumentFillRatio!==void 0?C.minDocumentFillRatio:.07,T=C.minContourFitRatio!==void 0?C.minContourFitRatio:.11,d=C.maxContourFitRatio!==void 0?C.maxContourFitRatio:1.2,p=C.minRightAngleScore!==void 0?C.minRightAngleScore:.42,w=C.minOppositeSideConsistency!==void 0?C.minOppositeSideConsistency:.3,H=Math.min(o,t)*Y,S=(function(k,J=6){let L=[k?.topLeft,k?.topRight,k?.bottomRight,k?.bottomLeft];if(L.some(b=>!b||!Number.isFinite(b.x)||!Number.isFinite(b.y)))return!1;for(let b=0;b<L.length;b++)for(let K=b+1;K<L.length;K++)if(nA(L[b],L[K])<J)return!1;return!0})(E)&&F&&y>=H&&s>=l&&r<=f&&D>=x&&c>=T&&c<=d&&m>=p&&M>=w,U=.22*V+.14*X+.15*u+.08*(F?1:0)+.08*R+.13*O+.1*m+.05*M+.05*G;return{contour:I,corners:E,score:U,confidence:S?U:.33*U,isValid:S,area:i,fillRatio:D,coverageRatio:s,cornersArea:n,approxCount:Q,convex:F,edgeSupport:R,aspectRatio:r,minSide:y,rightAngleScore:m,oppositeSideConsistency:M,contourFitRatio:c,contourFitScore:G}}q(_A,"_A");async function $A(I,A,o,t,C={}){let g=C.debug?{}:{_timingsOnly:!0},Q=[];g&&!g._timingsOnly&&(g.preprocessing={scaledDimensions:{width:A,height:o},scaleFactor:t,maxProcessingDimension:C.maxProcessingDimension||800});let E=(function(B={}){let r=B.dilationKernelSize||3,F=B.dilationIterations||1,R=B.applyDilation===void 0||B.applyDilation,m=[{name:"default",lowThreshold:B.lowThreshold,highThreshold:B.highThreshold,dilationKernelSize:r,dilationIterations:F,applyDilation:R}];if(B.enableDetectionCascade===!1)return m;m.push({name:"connect-edges",lowThreshold:B.lowThreshold,highThreshold:B.highThreshold,dilationKernelSize:Math.max(r,5),dilationIterations:Math.max(F,2),applyDilation:!0}),m.push({name:"no-dilation",lowThreshold:B.lowThreshold,highThreshold:B.highThreshold,dilationKernelSize:r,dilationIterations:F,applyDilation:!1}),B.lowThreshold===void 0&&B.highThreshold===void 0&&m.push({name:"fixed-mid-thresholds",lowThreshold:60,highThreshold:180,dilationKernelSize:r,dilationIterations:F,applyDilation:R});let M=[],c=new Set;for(let G of m){let u=[G.lowThreshold,G.highThreshold,G.dilationKernelSize,G.dilationIterations,G.applyDilation].join(":");c.has(u)||(c.add(u),M.push(G))}return M})(C),a=[],i=q(async(B,r)=>{let F=B.name||`pass-${r+1}`,R=r===0?"":` (${F})`,m=C.debug?{}:{_timingsOnly:!0},M=await OA(I,{width:A,height:o,lowThreshold:B.lowThreshold,highThreshold:B.highThreshold,dilationKernelSize:B.dilationKernelSize,dilationIterations:B.dilationIterations,applyDilation:B.applyDilation,debug:m,skipGrayscale:!0,useWasmBlur:!0,useWasmHysteresis:C.useWasmHysteresis,useWasmFullCanny:C.useWasmFullCanny});m.timings&&m.timings.forEach(X=>{X.step!=="Edge Detection Total"&&Q.push({step:`${X.step}${R}`,ms:X.ms})});let c=performance.now(),G=qA(M,{minArea:(C.minArea||1e3)/(t*t),width:A,height:o});Q.push({step:`Find Contours${R}`,ms:(performance.now()-c).toFixed(2)}),c=performance.now();let{best:u,candidates:V}=(function(X,O,Y,l,f={}){let x=f.maxCandidateContours||12,T=X.slice(0,x).map((d,p)=>({rankByArea:p,..._A(d,O,Y,l,f)})).sort(uA);return{best:T[0]||null,candidates:T}})(G,M,A,o,C);return Q.push({step:`Corner Detection${R}`,ms:(performance.now()-c).toFixed(2)}),{name:F,params:{lowThreshold:B.lowThreshold,highThreshold:B.highThreshold,dilationKernelSize:B.dilationKernelSize,dilationIterations:B.dilationIterations,applyDilation:B.applyDilation},contours:G,best:u,candidates:V}},"i"),h=await i(E[0],0);if(a.push(h),(function(B,r={}){if(r.enableDetectionCascade===!1)return!1;if(!B||!B.corners)return!0;let F=r.minCascadeTriggerConfidence!==void 0?r.minCascadeTriggerConfidence:.68;return!B.isValid||B.confidence<F||B.approxCount>5||B.rightAngleScore<.55||B.contourFitRatio<.14})(h.best,C))for(let B=1;B<E.length;B++)a.push(await i(E[B],B));let D=[];for(let B of a)for(let r of B.candidates)D.push({...r,passName:B.name,passParams:B.params});D.sort(uA);let n=D[0]||null,s=D;if(!n||!n.corners)return{success:!1,message:"No document detected",debug:g._timingsOnly?null:g,timings:Q};g&&!g._timingsOnly&&(g.passes=a.map(B=>({name:B.name,params:B.params,contourCount:B.contours.length,bestCandidate:B.best?{score:B.best.score,confidence:B.best.confidence,isValid:B.best.isValid,approxCount:B.best.approxCount,coverageRatio:B.best.coverageRatio,fillRatio:B.best.fillRatio,rightAngleScore:B.best.rightAngleScore,contourFitRatio:B.best.contourFitRatio}:null})),g.candidates=s.map(B=>({passName:B.passName,rankByArea:B.rankByArea,area:B.area,fillRatio:B.fillRatio,coverageRatio:B.coverageRatio,cornersArea:B.cornersArea,approxCount:B.approxCount,convex:B.convex,edgeSupport:B.edgeSupport,aspectRatio:B.aspectRatio,minSide:B.minSide,rightAngleScore:B.rightAngleScore,oppositeSideConsistency:B.oppositeSideConsistency,contourFitRatio:B.contourFitRatio,contourFitScore:B.contourFitScore,score:B.score,confidence:B.confidence,isValid:B.isValid})),g.selectedCandidate=s[0]?{passName:s[0].passName,rankByArea:s[0].rankByArea,area:s[0].area,fillRatio:s[0].fillRatio,coverageRatio:s[0].coverageRatio,approxCount:s[0].approxCount,edgeSupport:s[0].edgeSupport,aspectRatio:s[0].aspectRatio,minSide:s[0].minSide,rightAngleScore:s[0].rightAngleScore,oppositeSideConsistency:s[0].oppositeSideConsistency,contourFitRatio:s[0].contourFitRatio,score:s[0].score,confidence:s[0].confidence,isValid:s[0].isValid}:null);let e=n.corners,y=n.contour,N=e;return t!==1&&(N={topLeft:{x:e.topLeft.x*t,y:e.topLeft.y*t},topRight:{x:e.topRight.x*t,y:e.topRight.y*t},bottomRight:{x:e.bottomRight.x*t,y:e.bottomRight.y*t},bottomLeft:{x:e.bottomLeft.x*t,y:e.bottomLeft.y*t}}),{success:!0,contour:y,corners:N,confidence:n.confidence,debug:g._timingsOnly?null:g,timings:Q}}q($A,"$A");function AI(I,A,o){let{topLeft:t,topRight:C,bottomRight:g,bottomLeft:Q}=o,E=Math.hypot(g.x-Q.x,g.y-Q.y),a=Math.hypot(C.x-t.x,C.y-t.y),i=Math.round(Math.max(E,a)),h=Math.hypot(C.x-g.x,C.y-g.y),D=Math.hypot(t.x-Q.x,t.y-Q.y),n=Math.round(Math.max(h,D));I.canvas.width=i,I.canvas.height=n,(function(s,e,y,N,B){let r=e&&typeof e.width=="number"&&typeof e.height=="number"&&e.data,F=e.width||e.naturalWidth,R=e.height||e.naturalHeight,m=document.createElement("canvas");m.width=F,m.height=R;let M=m.getContext("2d",{willReadFrequently:!0});r?M.putImageData(e,0,0):M.drawImage(e,0,0,F,R);let c=M.getImageData(0,0,F,R).data,G=(function(S){let U=S[0][0],k=S[0][1],J=S[0][2],L=S[1][0],b=S[1][1],K=S[1][2],W=S[2][0],v=S[2][1],j=S[2][2],P=b*j-K*v,_=-(L*j-K*W),$=L*v-b*W,BA=-(k*j-J*v),AA=U*j-J*W,IA=-(U*v-k*W),QA=k*K-J*b,CA=-(U*K-J*L),EA=U*b-k*L,z=U*P+k*_+J*$;if(z===0)throw new Error("Singular matrix");return[[P/z,BA/z,QA/z],[_/z,AA/z,CA/z],[$/z,IA/z,EA/z]]})(y),u=G[0][0],V=G[0][1],X=G[0][2],O=G[1][0],Y=G[1][1],l=G[1][2],f=G[2][0],x=G[2][1],T=G[2][2],d=s.createImageData(N,B),p=d.data,w=F-1,H=R-1;for(let S=0;S<B;S++){let U=V*S+X,k=Y*S+l,J=x*S+T;for(let L=0;L<N;L++){let b=1/(f*L+J),K=(u*L+U)*b,W=(O*L+k)*b,v=K<0?0:K>w?w:K,j=W<0?0:W>H?H:W,P=0|v,_=0|j,$=P<w?P+1:P,BA=_<H?_+1:_,AA=v-P,IA=j-_,QA=1-AA,CA=1-IA,EA=QA*CA,z=AA*CA,DA=QA*IA,rA=AA*IA,cA=_*F+P<<2,wA=_*F+$<<2,lA=BA*F+P<<2,NA=BA*F+$<<2,sA=S*N+L<<2;p[sA]=c[cA]*EA+c[wA]*z+c[lA]*DA+c[NA]*rA+.5|0,p[sA+1]=c[cA+1]*EA+c[wA+1]*z+c[lA+1]*DA+c[NA+1]*rA+.5|0,p[sA+2]=c[cA+2]*EA+c[wA+2]*z+c[lA+2]*DA+c[NA+2]*rA+.5|0,p[sA+3]=255}}s.putImageData(d,0,0)})(I,A,(function(s,e){let y=(function(N,B){let r=N.length,F=N[0].length,R=N.map(c=>c.slice()),m=B.slice();for(let c=0;c<F;c++){let G=c;for(let u=c+1;u<r;u++)Math.abs(R[u][c])>Math.abs(R[G][c])&&(G=u);[R[c],R[G]]=[R[G],R[c]],[m[c],m[G]]=[m[G],m[c]];for(let u=c+1;u<r;u++){let V=R[u][c]/R[c][c];for(let X=c;X<F;X++)R[u][X]-=V*R[c][X];m[u]-=V*m[c]}}let M=new Array(F);for(let c=F-1;c>=0;c--){let G=m[c];for(let u=c+1;u<F;u++)G-=R[c][u]*M[u];M[c]=G/R[c][c]}return M})((function(N){let B=[];for(let r=0;r<4;r++){let[F,R]=N[r];B.push([F,R,1,0,0,0,-F*e[r][0],-R*e[r][0]]),B.push([0,0,0,F,R,1,-F*e[r][1],-R*e[r][1]])}return B})(s),[e[0][0],e[0][1],e[1][0],e[1][1],e[2][0],e[2][1],e[3][0],e[3][1]]);return[[y[0],y[1],y[2]],[y[3],y[4],y[5]],[y[6],y[7],1]]})([[t.x,t.y],[C.x,C.y],[g.x,g.y],[Q.x,Q.y]],[[0,0],[i-1,0],[i-1,n-1],[0,n-1]]),i,n)}q(AI,"AI");async function II(I,A={}){let o=[],t=performance.now(),C=A.mode||"detect",g=A.output||"canvas",Q=A.maxProcessingDimension||800,E,a,i,h;if((A.detector||"classical")==="ml"){a=performance.now();let{detectDocumentMl:n}=await import("./scanic-ml-stub-XPNKT2N3-YSXFN7KY.js");E=await n(I,A.ml||{}),o.push({step:"ML Detection Total",ms:(performance.now()-a).toFixed(2)}),E.timings&&E.timings.forEach(s=>o.push(s))}else{a=performance.now();let{grayscaleData:n,scaleFactor:s,scaledDimensions:e}=await(async function(y,N=800){let B,r,F=y&&typeof y.width=="number"&&typeof y.height=="number"&&y.data;if(F)B=y.width,r=y.height;else{if(!y)throw new Error("No image provided");B=y.width||y.naturalWidth,r=y.height||y.naturalHeight}let R=Math.max(B,r),m,M,c;if(R<=N)m=B,M=r,c=1;else{let l=N/R;m=Math.round(B*l),M=Math.round(r*l),c=1/l}let G=typeof OffscreenCanvas<"u",u=G?new OffscreenCanvas(m,M):document.createElement("canvas");G||(u.width=m,u.height=M);let V=u.getContext("2d",{willReadFrequently:!0});if(V.imageSmoothingEnabled=!0,V.imageSmoothingQuality="medium",F){let l=G?new OffscreenCanvas(B,r):document.createElement("canvas");G||(l.width=B,l.height=r),l.getContext("2d").putImageData(y,0,0),V.drawImage(l,0,0,B,r,0,0,m,M)}else V.drawImage(y,0,0,B,r,0,0,m,M);let X=V.getImageData(0,0,m,M),O=X.data,Y=new Uint8ClampedArray(m*M);for(let l=0,f=0;l<O.length;l+=4,f++){let x=54*O[l]+183*O[l+1]+19*O[l+2]>>8;Y[f]=x,O[l]=O[l+1]=O[l+2]=x}return{grayscaleData:Y,imageData:X,scaleFactor:c,originalDimensions:{width:B,height:r},scaledDimensions:{width:m,height:M}}})(I,Q);o.push({step:"Image Prep + Scale + Gray",ms:(performance.now()-a).toFixed(2)}),E=await $A(n,e.width,e.height,s,A),E.timings&&E.timings.forEach(y=>o.push(y))}if(!E.success){let n=performance.now();return o.unshift({step:"Total",ms:(n-t).toFixed(2)}),{output:null,corners:null,contour:null,confidence:E.confidence||null,score:E.score??null,debug:E.debug,success:!1,message:E.message||"No document detected",timings:o}}C==="detect"?h=null:C==="extract"&&(a=performance.now(),i=document.createElement("canvas"),AI(i.getContext("2d"),I,E.corners),o.push({step:"Perspective Transform",ms:(performance.now()-a).toFixed(2)})),C!=="detect"&&i&&(a=performance.now(),h=g==="canvas"?i:g==="imagedata"?i.getContext("2d").getImageData(0,0,i.width,i.height):g==="dataurl"?i.toDataURL():i,o.push({step:"Output Conversion",ms:(performance.now()-a).toFixed(2)}));let D=performance.now();return o.unshift({step:"Total",ms:(D-t).toFixed(2)}),{output:h,corners:E.corners,contour:E.contour??null,confidence:E.confidence||null,score:E.score??null,debug:E.debug,success:!0,message:"Document detected",timings:o}}q(II,"xA");var QI="1.5.0",gI=.35;async function CI(I){let A=await II(I,{mode:"detect",detector:"classical",maxProcessingDimension:fA});return!A.success||A.corners===null||typeof A.confidence=="number"&&A.confidence<gI?null:A.corners}q(CI,"tI");export{gI as DOC_DETECT_MIN_CONFIDENCE,fA as DOC_DETECT_WIDTH,QI as SCANIC_VERSION,CI as detectQuad};
@@ -0,0 +1 @@
1
+ "use client";import{a as Ge}from"./chunk-FEWP7HBJ.js";import{a as Ve}from"./chunk-X3BGM3B2.js";import{a as Ie,b as Oe,c as Ee}from"./chunk-FCTRNWRU.js";import"./chunk-LYYAVERP.js";import{d as Be}from"./chunk-BF6SE2AC.js";import"./chunk-CYGAKCKG.js";import{E as Ae,F as Re,G as Pe,I as Ue,K as pe,L as me,a as ct,b as dt,c as O,o as He,q as De,v as Y,w as ue,y as he}from"./chunk-YWPZG2MZ.js";import{a as h}from"./chunk-RK4HVNRS.js";import{a as c,c as _e}from"./chunk-4FHWXBOB.js";var i=_e(ct(),1),e=_e(dt(),1);var ut={image:'<path d="M2 12C2 7.29 2 4.93 3.46 3.46C4.93 2 7.29 2 12 2C16.71 2 19.07 2 20.54 3.46C22 4.93 22 7.29 22 12C22 16.71 22 19.07 20.54 20.54C19.07 22 16.71 22 12 22C7.29 22 4.93 22 3.46 20.54C2 19.07 2 16.71 2 12Z" stroke="currentColor"/><path d="M14 8A2 2 0 1 0 18 8A2 2 0 1 0 14 8Z" stroke="currentColor"/><path d="M2 12.5L3.75 10.97C4.66 10.17 6.04 10.22 6.89 11.07L11.18 15.36C11.87 16.05 12.95 16.14 13.75 15.58L14.04 15.37C15.19 14.57 16.74 14.66 17.78 15.6L21 18.5" stroke="currentColor" stroke-linecap="round"/>',flashlight:'<path d="M9 11.66V19C9 19.93 9 20.4 9.15 20.77C9.36 21.26 9.74 21.64 10.23 21.85C10.6 22 11.07 22 12 22C12.93 22 13.4 22 13.77 21.85C14.26 21.64 14.64 21.26 14.85 20.77C15 20.4 15 19.93 15 19V11.66C15 10.84 15 10.43 15.15 10.06C15.3 9.7 15.59 9.41 16.17 8.83L16.17 8.83L19.41 5.59C19.7 5.3 19.85 5.15 19.92 4.97C20 4.78 20 4.58 20 4.17V4C20 3.06 20 2.59 19.71 2.29C19.41 2 18.94 2 18 2H6C5.06 2 4.59 2 4.29 2.29C4 2.59 4 3.06 4 4V4.17C4 4.58 4 4.78 4.08 4.97C4.15 5.15 4.3 5.3 4.59 5.59L7.83 8.83C8.41 9.41 8.7 9.7 8.85 10.06C9 10.43 9 10.84 9 11.66Z" stroke="currentColor" stroke-linecap="round"/><path d="M15 10H9" stroke="currentColor" stroke-linecap="round"/><path d="M12 13V15" stroke="currentColor" stroke-linecap="round"/><path d="M4.5 5H19.5" stroke="currentColor" stroke-linecap="round"/>'},ht={"dcv3.mrz.searching":"ضع صفحة جواز السفر كاملة داخل الإطار","dcv3.mrz.showMrzSide":"اعرض الوجه الذي يحتوي على سطرين أو ثلاثة أسطر من الحروف","dcv3.mrz.reading":"جارٍ قراءة الوثيقة… ثبّتها","dcv3.mrz.moveCloser":"اقترب حتى تملأ أسطر الحروف الإطار","dcv3.mrz.turnSideways":"أدر هاتفك أفقيًا لقراءة أسطر الحروف","dcv3.mrz.glare":"أمِل الوثيقة لإزالة الانعكاس","dcv3.mrz.holdStill":"لا تتحرك","dcv3.mrz.valid":"تمت قراءة الوثيقة. جارٍ التقاط الصورة","dcv3.mrz.looksLikePassport":"يبدو أن هذا جواز سفر","dcv3.mrz.looksLikeCard":"يبدو أن هذه بطاقة تعريف أو بطاقة إقامة"},ee={"dcv3.mrz.searching":"Fit the whole passport page in the frame","dcv3.mrz.showMrzSide":"Show the side with the two or three lines of characters","dcv3.mrz.reading":"Reading the document… hold it steady","dcv3.mrz.moveCloser":"Move closer so the lines of characters fill the frame","dcv3.mrz.turnSideways":"Turn your phone sideways to read the lines of characters","dcv3.mrz.glare":"Tilt the document to remove the reflection","dcv3.mrz.holdStill":"Hold still","dcv3.mrz.valid":"Document read. Taking the photo","dcv3.mrz.looksLikePassport":"This looks like a passport","dcv3.mrz.looksLikeCard":"This looks like an identity card or residence permit"},pt={"dcv3.mrz.searching":"Cadrez toute la page du passeport","dcv3.mrz.showMrzSide":"Montrez la face avec les deux ou trois lignes de caractères","dcv3.mrz.reading":"Lecture du document… tenez-le immobile","dcv3.mrz.moveCloser":"Rapprochez-vous pour que les lignes de caractères remplissent le cadre","dcv3.mrz.turnSideways":"Tournez votre téléphone à l’horizontale pour lire les lignes de caractères","dcv3.mrz.glare":"Inclinez le document pour supprimer le reflet","dcv3.mrz.holdStill":"Ne bougez plus","dcv3.mrz.valid":"Document lu. Prise de la photo","dcv3.mrz.looksLikePassport":"Ceci ressemble à un passeport","dcv3.mrz.looksLikeCard":"Ceci ressemble à une carte d’identité ou un titre de séjour"},mt={"doc.uploadInstead":"رفع صورة بدلًا من ذلك","doc.uploadTitle":"ارفع صورة لوثيقتك","doc.uploadHint":"صورة واضحة للوثيقة كاملة، ملتقطة بكاميرا.","doc.uploadUnsupported":"اختر صورة للوثيقة بصيغة JPEG أو PNG أو HEIC.","doc.uploadFailed":"تعذّر إرسال هذه الصورة. أعد المحاولة.","doc.source.title":"كيف تريد إضافة وثيقتك؟","doc.source.description":"التقط صورة بالكاميرا، أو ارفع صورة للوثيقة من هذا الجهاز.","doc.source.camera":"التقاط صورة","doc.source.upload":"رفع صورة"},te={"doc.uploadInstead":"Upload a photo instead","doc.uploadTitle":"Upload a photo of your document","doc.uploadHint":"A clear photo of the whole document, taken with a camera.","doc.uploadUnsupported":"Choose a JPEG, PNG or HEIC photo of the document.","doc.uploadFailed":"We could not send this photo. Try again.","doc.source.title":"How do you want to add your document?","doc.source.description":"Take a photo with the camera, or upload a photo of the document from this device.","doc.source.camera":"Take a photo","doc.source.upload":"Upload a photo"},vt={"doc.uploadInstead":"Téléverser une photo à la place","doc.uploadTitle":"Téléversez une photo de votre document","doc.uploadHint":"Une photo nette du document entier, prise avec un appareil photo.","doc.uploadUnsupported":"Choisissez une photo JPEG, PNG ou HEIC du document.","doc.uploadFailed":"Nous n'avons pas pu envoyer cette photo. Réessayez.","doc.source.title":"Comment voulez-vous ajouter votre document ?","doc.source.description":"Prenez une photo avec la caméra, ou importez une photo du document depuis cet appareil.","doc.source.camera":"Prendre une photo","doc.source.upload":"Importer une photo"},ft={"native.doc.introTitle":"سنلتقط صورة لوثيقتك","native.doc.introLead":"ستُفتح كاميرا هاتفك، وتُلتقط الصورة تلقائيًا بمجرد أن تكون الوثيقة داخل الإطار.","native.doc.tip.flat":"ضع الوثيقة مسطحة على سطح داكن.","native.doc.tip.glare":"تجنّب انعكاسات المصابيح أو الشمس.","native.doc.tip.frame":"أبقِ الوثيقة كاملة داخل الإطار.","native.doc.openCamera":"افتح الكاميرا","native.doc.changeDocument":"تغيير الوثيقة","native.scan.closer":"اقترب قليلًا","native.scan.farther":"ابتعد قليلًا","native.scan.glare":"أمِل البطاقة قليلًا","native.scan.dark":"الإضاءة ضعيفة. شغّل المصباح.","native.scan.blurry":"الصورة غير واضحة. ثبّت الهاتف.","native.scan.holdStill":"لا تتحرك","native.scan.reading":"جارٍ التحقق من وثيقتك…","native.scan.putDown":"يمكنك وضع وثيقتك جانبًا.","native.scan.retry":"لنحاول مرة أخرى"},ae={"native.doc.introTitle":"Photograph your document","native.doc.introLead":"Your phone's camera will open. The photo is taken by itself as soon as the document is well framed.","native.doc.tip.flat":"Lay the document flat on a dark surface.","native.doc.tip.glare":"Avoid glare from lamps or sunlight.","native.doc.tip.frame":"Keep the whole document in the frame.","native.doc.openCamera":"Open the camera","native.doc.changeDocument":"Change document","native.scan.closer":"Move a little closer","native.scan.farther":"Move back a little","native.scan.glare":"Tilt the card a little","native.scan.dark":"Too dark. Turn on the light.","native.scan.blurry":"Blurry image. Hold the phone still.","native.scan.holdStill":"Hold still","native.scan.reading":"Checking your document…","native.scan.putDown":"You can put your document down.","native.scan.retry":"Let's try that again"},kt={"native.doc.introTitle":"Photographiez votre pièce","native.doc.introLead":"La caméra de votre téléphone va s'ouvrir. La photo est prise automatiquement dès que la pièce est bien cadrée.","native.doc.tip.flat":"Posez la pièce à plat, sur une surface sombre.","native.doc.tip.glare":"Évitez les reflets de lampe ou de soleil.","native.doc.tip.frame":"Gardez toute la pièce dans le cadre.","native.doc.openCamera":"Ouvrir la caméra","native.doc.changeDocument":"Changer de document","native.scan.closer":"Approchez un peu","native.scan.farther":"Reculez un peu","native.scan.glare":"Inclinez un peu la carte","native.scan.dark":"Trop sombre. Allumez la lampe.","native.scan.blurry":"Image floue. Tenez le téléphone immobile.","native.scan.holdStill":"Ne bougez plus","native.scan.reading":"Vérification de votre document…","native.scan.putDown":"Vous pouvez poser votre pièce.","native.scan.retry":"Réessayons"},gt=["locking","capturing"],W,Ye=(W=class{constructor(){this.shown={hint:null,locking:!1,card:null,manualShutter:!1},this.candidate=null,this.candidateSince=0,this.hintShownAt=0,this.lockLostAt=null,this.detectedSince=null,this.lostSince=null,this.shutterSince=null}present(t,n){return this.presentHint(t,n),this.presentLock(t,n),this.presentCard(t,n),this.shutterSince=t.manualShutter?this.shutterSince??n:null,this.shown={...this.shown,manualShutter:this.shutterSince!==null&&n-this.shutterSince>=1e3},this.shown}presentHint(t,n){let o=t.phase==="framing"&&!(t.hint==="blurry"&&t.card===null)?t.hint:null;if(t.phase!=="framing"){this.shown={...this.shown,hint:null},this.candidate=null;return}if(o!==this.candidate&&(this.candidate=o,this.candidateSince=n),o===this.shown.hint)return;let r=n-this.candidateSince>=(o===null?0:350),f=this.shown.hint===null||n-this.hintShownAt>=1200;r&&f&&(this.shown={...this.shown,hint:o},this.hintShownAt=n)}presentLock(t,n){if(gt.includes(t.phase)){this.shown={...this.shown,locking:!0},this.lockLostAt=null;return}if(this.shown.locking){if(t.phase!=="framing"){this.shown={...this.shown,locking:!1},this.lockLostAt=null;return}this.lockLostAt??(this.lockLostAt=n),n-this.lockLostAt>=300&&(this.shown={...this.shown,locking:!1},this.lockLostAt=null)}}presentCard(t,n){let o=t.card;if(o===null||t.phase!=="framing"){if(t.phase!=="framing"){this.shown={...this.shown,card:null},this.detectedSince=null,this.lostSince=null;return}this.detectedSince=null,this.lostSince??(this.lostSince=n),n-this.lostSince>=300&&(this.shown={...this.shown,card:null});return}if(this.lostSince=null,this.detectedSince??(this.detectedSince=n),n-this.detectedSince<250)return;let r=this.shown.card;if(r===null){this.shown={...this.shown,card:{...o}};return}let f=.35;this.shown={...this.shown,card:{fill:r.fill+(o.fill-r.fill)*f,offsetX:r.offsetX+(o.offsetX-r.offsetX)*f,offsetY:r.offsetY+(o.offsetY-r.offsetY)*f}}}},c(W,"fe"),W);h(Ye,"ScanPresenter");var yt=Ye,wt={en:ae,fr:kt,ar:ft,es:ae,pt:ae,de:ae},Ct=450,fe=h(a=>t=>Ve(a.strings[t]??wt[a.locale][t]??""),"useScanCopy");function j({name:a}){return(0,e.jsx)("svg",{className:"sekyro-glyph",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",focusable:"false",dangerouslySetInnerHTML:{__html:ut[a]}})}c(j,"ae");h(j,"ScanGlyph");var zt={en:ee,fr:pt,ar:ht,es:ee,pt:ee,de:ee},bt={en:te,fr:vt,ar:mt,es:te,pt:te,de:te},St="image/jpeg,image/png,image/heic,image/heif";function E(a){let t=a.strings,n=h(o=>t[o]??bt[a.locale][o],"text");return{t:h(o=>n(o)??"","t")}}c(E,"F");h(E,"uploadCopy");function We(a,t){return a===null||a.state==="fallback"||a.state==="mismatch"?null:a.state==="searching"?t?"dcv3.mrz.searching":"dcv3.mrz.showMrzSide":a.state==="valid"?"dcv3.mrz.valid":a.coach!==void 0?`dcv3.mrz.${a.coach}`:"dcv3.mrz.reading"}c(We,"vt");h(We,"mrzInstruction");function ne(a){return a.reason==="unreadable"?"doc.reason_unreadable":a.reason==="tester_document_mismatch"?"reasons.tester_document_mismatch":a.reason!==void 0&&a.reason!=="side_missing"?De(a.reason):null}c(ne,"ve");h(ne,"reasonOf");var Nt=new Set(["document_type_not_accepted","tester_document_mismatch"]);function xt({step:a,i18n:t,liveMrz:n,ageLead:o,...r}){let[f,g]=(0,i.useState)(!1),y=(0,i.useRef)(-1),[v,k]=(0,i.useState)("idle"),w=(0,i.useRef)(null),x=typeof a.uploadDocument=="function",z=x?a.photo?.source??"camera":"camera",M=x&&z!=="camera"&&a.photo?.uploadOffered===!0,[C,V]=(0,i.useState)(null),_=z==="upload"?"upload":z==="choice"?C??a.photo?.pick??"source":"camera",H=v==="sending"?void 0:()=>w.current?.click(),m=h(async D=>{let q=D.currentTarget.files?.[0];if(D.currentTarget.value="",q!==void 0){g(!1),k("sending");try{await a.uploadDocument(q),k("idle")}catch(F){k(F instanceof TypeError&&F.message==="unsupported_file"?"unsupported":"failed")}}},"onFile"),Q=M?(0,e.jsx)("input",{ref:w,type:"file",accept:St,hidden:!0,"data-testid":"sekyro-doc-upload","aria-label":E(t).t("doc.uploadTitle"),onChange:c(D=>{m(D)},"onChange")}):null,b=E(t),X=a.photo?.cameraOnPhone===!0;return _==="camera"&&X?(0,e.jsx)(Be,{i18n:t,lead:t.t("handoff.lead.document"),refresh:a.refresh,actions:(0,e.jsx)(O,{kind:"ghost",full:!0,onClick:c(()=>V("upload"),"onClick"),children:b.t("doc.source.upload")})}):_==="source"?(0,e.jsx)(Ge,{testId:"sekyro-doc-source",title:b.t("doc.source.title"),lead:b.t("doc.source.description"),cameraLabel:X?t.t("capture.source.phone"):b.t("doc.source.camera"),onPhone:X,uploadLabel:b.t("doc.source.upload"),notice:(0,e.jsx)(oe,{step:a,i18n:t}),onCamera:c(()=>V("camera"),"onCamera"),onUpload:c(()=>V("upload"),"onUpload")}):_==="upload"?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(je,{step:a,i18n:t,ageLead:o===!0,upload:v,offered:M,onPick:c(()=>w.current?.click(),"onPick"),...z==="choice"?{onCamera:h(()=>V("camera"),"onCamera")}:{},...r}),Q]}):(0,e.jsxs)(e.Fragment,{children:[f?(0,e.jsx)(Qe,{step:a,i18n:t,attempts:y,...n!==void 0?{liveMrz:n}:{},...M&&H!==void 0?{onUpload:H}:{},onClose:c(()=>g(!1),"onClose")}):(0,e.jsx)(Fe,{step:a,i18n:t,ageLead:o===!0,onOpen:c(()=>g(!0),"onOpen"),upload:v,...M&&H!==void 0?{onUpload:H}:{},...r}),Q]})}c(xt,"ln");h(xt,"DocumentCaptureView");function ke({passport:a}){let t=Math.round(228/(a?1.42:1.586));return(0,e.jsxs)("svg",{className:"sekyro-mark sekyro-mark--card",viewBox:`-12 -12 252 ${t+24}`,"aria-hidden":"true",focusable:"false",children:[(0,e.jsx)("defs",{children:(0,e.jsx)("clipPath",{id:"sekyro-card-clip",children:(0,e.jsx)("rect",{width:228,height:t,rx:"12.5"})})}),(0,e.jsx)("rect",{className:"sekyro-mark__card",width:228,height:t,rx:"12.5"}),(0,e.jsx)("rect",{className:"sekyro-mark__photo",x:"17",y:"17",width:"55",height:t*.52,rx:"6"}),[0,1,2].map(n=>(0,e.jsx)("rect",{className:"sekyro-mark__text",x:"88",y:23+n*t*.12,width:100-n*20,height:"6",rx:"3"},n)),[0,1].map(n=>(0,e.jsx)("rect",{className:"sekyro-mark__text",x:"17",y:t*.74+n*9,width:194,height:"4",rx:"2"},n)),(0,e.jsx)("g",{clipPath:"url(#sekyro-card-clip)",children:(0,e.jsx)("g",{className:"sekyro-mark__read",style:{"--sekyro-read-w":"228px"},children:(0,e.jsx)("rect",{x:"-1",width:"2",height:t,className:"sekyro-mark__beam"})})}),(0,e.jsx)("path",{className:"sekyro-mark__brackets",d:Xe(-10,-10,248,t+20,16,30)})]})}c(ke,"qe");h(ke,"ScanMark");function Xe(a,t,n,o,r,f){let g=Math.min(r,f*.6);return[[a,t,1,1],[a+n,t,-1,1],[a,t+o,1,-1],[a+n,t+o,-1,-1]].map(([y,v,k,w])=>`M${y} ${v+w*f}V${v+w*g}Q${y} ${v} ${y+k*g} ${v}H${y+k*f}`).join("")}c(Xe,"kt");h(Xe,"brackets");function Fe({step:a,i18n:t,ageLead:n,onOpen:o,onChangeCountry:r,onChangeDocument:f,upload:g,onUpload:y}){let v=fe(t),k=E(t),w=a.documentType==="passport",x=ne(a),z=g==="sending",M=(0,i.useContext)(Re)?.busy===!0;return(0,e.jsxs)("section",{className:"sekyro-step","data-testid":"sekyro-document",children:[(0,e.jsx)(ke,{passport:w}),(0,e.jsx)(ue,{title:v("native.doc.introTitle"),lead:n?t.t("doc.ageStepUp"):v("native.doc.introLead")}),(0,e.jsx)(oe,{step:a,i18n:t}),a.reason!==void 0&&Nt.has(a.reason)?null:(0,e.jsxs)("ul",{className:"sekyro-tiprows",children:[(0,e.jsxs)("li",{children:[(0,e.jsx)(Y,{name:w?"passport":"card"}),v("native.doc.tip.flat")]}),(0,e.jsxs)("li",{children:[(0,e.jsx)(Y,{name:"light"}),v("native.doc.tip.glare")]}),(0,e.jsxs)("li",{children:[(0,e.jsx)(j,{name:"image"}),v("native.doc.tip.frame")]})]}),(0,e.jsx)(ge,{i18n:t,...f!==void 0?{onChangeDocument:f}:{},...r!==void 0?{onChangeCountry:r}:{}}),(0,e.jsx)(ye,{i18n:t,upload:g}),z?(0,e.jsx)("p",{className:"sekyro-text-muted",role:"status",children:t.t("doc.uploading")}):y!==void 0?(0,e.jsx)("p",{className:"sekyro-text-muted",children:k.t("doc.uploadHint")}):null,(0,e.jsxs)(he,{children:[(0,e.jsxs)(O,{full:!0,onClick:o,disabled:z||M,children:[(0,e.jsx)(Y,{name:"camera"}),v("native.doc.openCamera")]}),y!==void 0?(0,e.jsxs)(O,{full:!0,kind:"ghost",onClick:y,children:[(0,e.jsx)(j,{name:"image"}),k.t("doc.uploadInstead")]}):null]})]})}c(Fe,"bt");h(Fe,"DocumentIntro");function oe({step:a,i18n:t}){let n=ne(a);return n===null?null:(0,e.jsxs)(pe,{tone:"warning",children:[(0,e.jsx)("span",{children:t.t(n)}),(0,e.jsx)("span",{children:me(t,a.attemptsRemaining,a.attemptsExhausted)})]})}c(oe,"ye");h(oe,"ReasonNotice");function ge({i18n:a,onChangeCountry:t,onChangeDocument:n}){let o=fe(a);return n===void 0&&t===void 0?null:(0,e.jsxs)("div",{className:"sekyro-links",children:[n!==void 0?(0,e.jsx)("button",{type:"button",className:"sekyro-link",onClick:n,children:o("native.doc.changeDocument")}):null,t!==void 0?(0,e.jsx)("button",{type:"button",className:"sekyro-link",onClick:t,children:a.t("native.doc.changeCountry")}):null]})}c(ge,"Je");h(ge,"ChangeLinks");function ye({i18n:a,upload:t}){return t!=="unsupported"&&t!=="failed"?null:(0,e.jsx)(pe,{tone:"warning",children:(0,e.jsx)("span",{children:E(a).t(t==="unsupported"?"doc.uploadUnsupported":"doc.uploadFailed")})})}c(ye,"et");h(ye,"UploadNotice");function je({step:a,i18n:t,ageLead:n,upload:o,offered:r,onPick:f,onCamera:g,onChangeCountry:y,onChangeDocument:v}){let k=E(t),w=o==="sending";return(0,e.jsxs)("section",{className:"sekyro-step","data-testid":"sekyro-doc-upload-screen",children:[(0,e.jsx)(ke,{passport:a.documentType==="passport"}),(0,e.jsx)(ue,{title:k.t("doc.uploadTitle"),lead:n?t.t("doc.ageStepUp"):k.t("doc.uploadHint")}),n?(0,e.jsx)("p",{className:"sekyro-text-muted",children:k.t("doc.uploadHint")}):null,(0,e.jsx)(oe,{step:a,i18n:t}),(0,e.jsx)(ge,{i18n:t,...v!==void 0?{onChangeDocument:v}:{},...y!==void 0?{onChangeCountry:y}:{}}),(0,e.jsx)(ye,{i18n:t,upload:o}),w?(0,e.jsx)("p",{className:"sekyro-text-muted",role:"status",children:t.t("doc.uploading")}):null,(0,e.jsxs)(he,{children:[(0,e.jsxs)(O,{full:!0,onClick:f,disabled:w||!r||a.attemptsExhausted,children:[(0,e.jsx)(j,{name:"image"}),k.t("doc.source.upload")]}),g!==void 0?(0,e.jsxs)(O,{full:!0,kind:"ghost",onClick:g,disabled:w,children:[(0,e.jsx)(Y,{name:"camera"}),k.t("doc.source.camera")]}):null]})]})}c(je,"wt");h(je,"DocumentUploadScreen");function ve(a,t,n){let o=a*.88,r=o/n;return{x:(a-o)/2,y:t*.42-r/2,w:o,h:r}}c(ve,"Qe");h(ve,"guideRect");var $t={too_far:"native.scan.closer",too_close:"native.scan.farther",focus_far:"native.scan.farther",glare:"native.scan.glare",too_bright:"native.scan.glare",too_dark:"native.scan.dark",blurry:"native.scan.blurry"},Lt=h(()=>typeof window<"u"&&window.matchMedia?.("(prefers-reduced-motion: reduce)").matches===!0,"reduceMotion");function Qe({step:a,i18n:t,liveMrz:n,onClose:o,attempts:r,onUpload:f}){let g=fe(t),y=(0,i.useContext)(Ie),v=(0,i.useRef)(y);v.current=y;let k=(0,i.useRef)(null),w=(0,i.useRef)(null),x=(0,i.useRef)(null),[z,M]=(0,i.useState)("idle"),[C,V]=(0,i.useState)(null),[_,H]=(0,i.useState)(null),[m,Q]=(0,i.useState)({w:0,h:0}),[b,X]=(0,i.useState)({hint:null,locking:!1,card:null,manualShutter:!1}),[D,q]=(0,i.useState)({}),[F,Ke]=(0,i.useState)(null),[we,et]=(0,i.useState)(null),[Ce,ze]=(0,i.useState)(0),[be,Se]=(0,i.useState)(null),[Z,Ne]=(0,i.useState)(null),A=a.documentType==="passport",J=A?1.42:1.586;Ae(!0),(0,i.useLayoutEffect)(()=>{let s=k.current;if(s===null)return;let u=h(()=>Q({w:s.clientWidth,h:s.clientHeight}),"measure");if(u(),typeof ResizeObserver>"u")return;let d=new ResizeObserver(u);return d.observe(s),()=>d.disconnect()},[]);let l=ve(m.w,m.h,J);(0,i.useEffect)(()=>{m.w===0||m.h===0||x.current?.setGuide?.({viewAspect:m.w/m.h,rect:{x:l.x/m.w,y:l.y/m.h,width:l.w/m.w,height:l.h/m.h}})},[m.w,m.h,l.x,l.y,l.w,l.h]),(0,i.useEffect)(()=>{let s=w.current;if(s===null)return;let u=a.capture({video:s,...n!==void 0?{liveMrz:n}:{}});x.current=u;let d=k.current;if(d!==null&&d.clientWidth>0&&d.clientHeight>0){let p=ve(d.clientWidth,d.clientHeight,J);u.setGuide?.({viewAspect:d.clientWidth/d.clientHeight,rect:{x:p.x/d.clientWidth,y:p.y/d.clientHeight,width:p.w/d.clientWidth,height:p.h/d.clientHeight}})}let T=new yt,N={scan:null,feedback:null,gate:null},P=h(p=>{N={...N,...p};let L=N.gate?.guide,st={phase:N.scan?.phase??"framing",hint:N.feedback?.reticle==="coaching"?N.feedback.key:null,card:L?.detected?{fill:L.fill,offsetX:L.offsetX,offsetY:L.offsetY}:null,manualShutter:N.scan?.manualShutter??!1},U=T.present(st,performance.now());X(I=>I.hint===U.hint&&I.locking===U.locking&&I.manualShutter===U.manualShutter&&I.card?.fill===U.card?.fill&&I.card?.offsetX===U.card?.offsetX&&I.card?.offsetY===U.card?.offsetY?I:U)},"present"),it=[u.on("state",M),u.on("feedback",p=>P({feedback:p})),u.on("gate",p=>P({gate:p})),u.on("scan",p=>{V(p),P({scan:p})}),u.on("captured",p=>{q(L=>({...L,[qe(p.side,A,L)]:p.previewDataUrl})),Ke(p.previewDataUrl),et(Je(s))}),u.on("error",p=>{H(p);let L=v.current;L!==null&&Ee(L,Oe("document",p,Math.max(0,r.current)))}),u.on("mrz",p=>{p.state==="mismatch"?Ne(p.format??null):Se(p)})];return r.current+=1,u.start().catch(()=>{}),()=>{for(let p of it)p();u.destroy(),x.current=null}},[a.issuer,a.documentType]);let $=C?.phase??"framing",R=$==="reading"||$==="result",re=$==="flipCue"||$==="reaskRecto",B=b.locking,xe=C?.captured.length??0;(0,i.useEffect)(()=>{B&&ze(s=>s+1)},[B]),(0,i.useEffect)(()=>{xe>0&&ze(s=>s+1)},[xe]);let tt=C?.expected??null;(0,i.useEffect)(()=>{Se(null)},[tt]),(0,i.useEffect)(()=>{if(Z===null)return;let s=setTimeout(()=>Ne(null),2e3);return()=>clearTimeout(s)},[Z]);let $e=re||R?null:We(be,A),le=Z!==null?Z==="TD3"?"dcv3.mrz.looksLikePassport":"dcv3.mrz.looksLikeCard":$e,at=le===null?null:t.strings[le]??zt[t.locale][le],ie=ne(a),Le=b.hint===null?null:$t[b.hint]??`dcv2.${b.hint}`,nt=Le??($==="flipCue"?C?.notice==="same_face"?"doc.sameFace":"doc.flip":$==="reaskRecto"?"doc.reaskRecto":R?"native.scan.reading":$==="locking"||$==="capturing"||B?"native.scan.holdStill":C?.notice==="reread"?ie??"doc.reread":C?.notice==="technical"?"native.scan.retry":C?.notice==="blurry"?"native.scan.blurry":ie??(A?"doc.showPage":"doc.showSide")),se=at??g(nt),G=b.card,S=l;if(!B&&G!==null&&G.fill>=.45&&G.fill<=1.25&&!Lt()){let s=l.w*G.fill,u=s/J,d=l.x+l.w/2+l.w*Math.max(-.25,Math.min(.25,G.offsetX)),T=l.y+l.h/2+l.h*Math.max(-.25,Math.min(.25,G.offsetY));S={x:d-s/2,y:T-u/2,w:s,h:u}}let K=l.w*.045,ce=28,Me=Math.min(K,ce*.6),ot=[[S.x,S.y,1,1],[S.x+S.w,S.y,-1,1],[S.x,S.y+S.h,1,-1],[S.x+S.w,S.y+S.h,-1,-1]],rt=B?"is-locked":b.hint!==null?"is-coaching":"",lt=A?[{side:"single",label:"doc.progressPage"}]:[{side:"recto",label:"doc.progressFront"},{side:"verso",label:"doc.progressBack"}],Te=l.y+l.h+48,de={insetInlineStart:l.x,insetBlockStart:l.y,inlineSize:l.w,blockSize:l.h,borderRadius:K};return(0,e.jsx)("section",{className:"sekyro-lm","aria-label":se,"data-testid":"sekyro-document",children:(0,e.jsxs)("div",{ref:k,className:`sekyro-lm-stage${R?" is-reading":""}${re?" is-flip":""}`,style:{"--sekyro-guide-w":`${l.w}px`},children:[(0,e.jsx)("video",{ref:w,className:"sekyro-lm-video",playsInline:!0,muted:!0,autoPlay:!0,"aria-hidden":"true",onPointerUp:c(s=>{let u=s.currentTarget,d=u.getBoundingClientRect(),T=Math.max(d.width/(u.videoWidth||1),d.height/(u.videoHeight||1)),N=u.videoWidth*T,P=u.videoHeight*T;N>0&&P>0&&x.current?.focusAt((s.clientX-d.left+(N-d.width)/2)/N,(s.clientY-d.top+(P-d.height)/2)/P)},"onPointerUp")}),m.w>0?(0,e.jsxs)(e.Fragment,{children:[R&&we!==null?(0,e.jsx)("img",{className:"sekyro-lm-scene",src:we,alt:""}):null,R&&F!==null?(0,e.jsx)("img",{className:"sekyro-lm-frozen",src:F,alt:"",style:de}):null,(0,e.jsxs)("svg",{className:"sekyro-lm-overlay",viewBox:`0 0 ${m.w} ${m.h}`,"aria-hidden":"true",focusable:"false",children:[(0,e.jsxs)("defs",{children:[(0,e.jsxs)("linearGradient",{id:"sekyro-lm-top",x1:"0",y1:"0",x2:"0",y2:"1",children:[(0,e.jsx)("stop",{offset:"0",className:"sekyro-lm-ink",stopOpacity:"0.85"}),(0,e.jsx)("stop",{offset:"1",className:"sekyro-lm-ink",stopOpacity:"0"})]}),(0,e.jsxs)("linearGradient",{id:"sekyro-lm-bottom",x1:"0",y1:"0",x2:"0",y2:"1",children:[(0,e.jsx)("stop",{offset:"0",className:"sekyro-lm-ink",stopOpacity:"0"}),(0,e.jsx)("stop",{offset:"1",className:"sekyro-lm-ink",stopOpacity:"0.9"})]})]}),(0,e.jsx)("path",{className:"sekyro-lm-scrim",fillRule:"evenodd",d:`M0 0H${m.w}V${m.h}H0Z${Ze(l,K)}`}),(0,e.jsx)("rect",{width:m.w,height:Math.max(0,l.y),fill:"url(#sekyro-lm-top)"}),(0,e.jsx)("rect",{y:l.y+l.h,width:m.w,height:Math.max(0,m.h-l.y-l.h),fill:"url(#sekyro-lm-bottom)"}),(0,e.jsx)("g",{className:`sekyro-lm-brackets ${rt}`,children:ot.map(([s,u,d,T],N)=>(0,e.jsx)("path",{style:{transform:`translate(${s}px, ${u}px) scale(${d}, ${T})`},d:`M0 ${ce}V${Me}Q0 0 ${Me} 0H${ce}`},N))}),B?(0,e.jsx)("rect",{className:"sekyro-lm-trace",x:l.x,y:l.y,width:l.w,height:l.h,rx:K,pathLength:"1",style:{animationDuration:`${Ct}ms`}}):null]}),(0,e.jsx)("div",{className:"sekyro-lm-slot",style:de,"aria-hidden":"true",children:R?(0,e.jsx)("span",{className:"sekyro-lm-read is-repeating"}):Ce>0?(0,e.jsx)("span",{className:"sekyro-lm-read"},Ce):null})]}):null,$e!==null?(0,e.jsx)("div",{className:"sekyro-lm-slot",style:de,"aria-hidden":"true",children:(0,e.jsx)("span",{"data-testid":"sekyro-mrz-strip",className:`sekyro-lm-mrz${A?" is-page":""}${be?.state==="valid"?" is-valid":""}`})}):null,(0,e.jsxs)("div",{className:"sekyro-lm-instruction",style:{insetBlockStart:l.y-64},children:[(0,e.jsx)("div",{role:"status","aria-live":"polite",children:(0,e.jsx)(Ue,{swapKey:se,className:"sekyro-lm-line",children:se})}),ie!==null&&$==="framing"&&Le===null?(0,e.jsx)("p",{className:"sekyro-lm-attempts",children:me(t,a.attemptsRemaining,a.attemptsExhausted)}):null]}),R?(0,e.jsxs)("p",{className:"sekyro-lm-under sekyro-lm-note",style:{insetBlockStart:Te-12},children:[(0,e.jsx)("span",{className:"sekyro-lm-spinner","aria-hidden":"true"}),g("native.scan.putDown")]}):re?(0,e.jsx)("div",{className:`sekyro-lm-under sekyro-lm-flip${$==="reaskRecto"?" is-toFront":""}`,style:{insetBlockStart:Te-20},"data-testid":"sekyro-flip-cue","aria-hidden":"true",children:(0,e.jsxs)("span",{className:"sekyro-lm-flip-card",style:{aspectRatio:String(J)},children:[(0,e.jsx)("span",{className:"sekyro-lm-flip-front"}),(0,e.jsx)("span",{className:"sekyro-lm-flip-back"})]})}):null,(0,e.jsxs)("div",{className:"sekyro-lm-controls",children:[(0,e.jsxs)("div",{className:"sekyro-lm-bar",children:[(0,e.jsx)("button",{type:"button",className:"sekyro-glass","aria-label":t.t("native.close"),onClick:o,children:(0,e.jsx)(Y,{name:"close"})}),C?.torchAvailable?(0,e.jsx)("button",{type:"button",className:`sekyro-glass${C.torch?" is-on":""}`,"aria-label":t.t("doc.torchOn"),"aria-pressed":C.torch,onClick:c(()=>x.current?.setTorch(!C.torch),"onClick"),children:(0,e.jsx)(j,{name:"flashlight"})}):null]}),_!==null?(0,e.jsxs)("div",{className:"sekyro-lm-error",role:"alert",children:[(0,e.jsx)("p",{children:t.t("doc.cameraBlocked")}),(0,e.jsx)("p",{children:t.t(_.kind==="permission"?"doc.cameraBlockedHint":He(_.kind))}),(0,e.jsx)(O,{onClick:c(()=>{H(null),r.current+=1,x.current?.retry()},"onClick"),children:t.t("doc.retryCamera")})]}):null,b.manualShutter?(0,e.jsx)("button",{type:"button",className:"sekyro-shutter","aria-label":t.t("doc.shutter"),onClick:c(()=>x.current?.shutter(),"onClick")}):null,(0,e.jsx)("ol",{className:"sekyro-lm-tray",children:lt.map(({side:s,label:u})=>{let d=C?.captured.includes(s)??!1;return(0,e.jsxs)("li",{className:d?"is-done":void 0,"aria-current":!d&&(A||C?.expected===s)?"step":void 0,children:[d?(0,e.jsxs)("span",{className:"sekyro-lm-thumb",children:[D[s]!==void 0?(0,e.jsx)("img",{src:D[s],alt:""}):null,(0,e.jsx)("svg",{className:"sekyro-lm-check",viewBox:"0 0 18 18","aria-hidden":"true",children:(0,e.jsx)("path",{d:"M5 9.2l2.6 2.6L13 6.4"})})]}):null,g(u)]},s)})}),f!==void 0?(0,e.jsx)("button",{type:"button",className:"sekyro-lm-upload",onClick:f,children:E(t).t("doc.uploadInstead")}):null,z==="uploading"||z==="checking"?null:(0,e.jsx)(Pe,{onStop:o})]}),z==="uploading"||z==="checking"?(0,e.jsx)("span",{className:"sekyro-visually-hidden",role:"status",children:z==="uploading"?t.t("doc.uploading"):g("native.scan.reading")}):null]})})}c(Qe,"Nt");h(Qe,"LumiereScan");function qe(a,t,n){return t?"single":a==="recto"||a==="verso"?a:n.recto===void 0?"recto":"verso"}c(qe,"Lt");h(qe,"slotOf");function Ze({x:a,y:t,w:n,h:o},r){return`M${a+r} ${t}H${a+n-r}Q${a+n} ${t} ${a+n} ${t+r}V${t+o-r}Q${a+n} ${t+o} ${a+n-r} ${t+o}H${a+r}Q${a} ${t+o} ${a} ${t+o-r}V${t+r}Q${a} ${t} ${a+r} ${t}Z`}c(Ze,"zt");h(Ze,"roundedRect");function Je(a){let t=Math.round(a.videoWidth/4),n=Math.round(a.videoHeight/4);if(t===0||n===0||typeof document>"u")return null;try{let o=document.createElement("canvas");o.width=t,o.height=n;let r=o.getContext("2d");return r===null?null:(r.drawImage(a,0,0,t,n),o.toDataURL("image/jpeg",.7))}catch{return null}}c(Je,"xt");h(Je,"sceneSnapshot");export{xt as DocumentCaptureView,Ct as LOCK_TRACE_MS,St as UPLOAD_ACCEPT,ve as guideRect,We as mrzInstruction,qe as slotOf};
@@ -0,0 +1 @@
1
+ "use client";import{a as O,b as v,c as W}from"./chunk-JOZCJGRV.js";import{a as q,b as J,c as K}from"./chunk-ZIC5GEH2.js";import{a as z}from"./chunk-FDWO4KXK.js";import{a as w}from"./chunk-X3BGM3B2.js";import{c as T,d as A}from"./chunk-5FLR7RPJ.js";import"./chunk-LYYAVERP.js";import{H as j,K as E,a as oe,b as ce,c as N,t as U,y as R}from"./chunk-YWPZG2MZ.js";import"./chunk-U3UDWPBG.js";import"./chunk-ZKLSZJFN.js";import"./chunk-6H22RNSK.js";import"./chunk-UZWMCNZI.js";import{a as o}from"./chunk-RK4HVNRS.js";import"./chunk-D334IAZJ.js";import"./chunk-RRLXNT33.js";import{a as u,c as P}from"./chunk-4FHWXBOB.js";var a=P(oe(),1),i=P(ce(),1);var Q={en:v,fr:W,ar:O,es:v,pt:v,de:v},C=6,pe=new Set(["eid_identifier_invalid","eid_code_invalid","eid_locked","eid_not_enrolled"]),X=o((e,d)=>{if(e===void 0)return 0;let h=Date.parse(e)-d;return Number.isFinite(h)?Math.max(0,Math.ceil(h/1e3)):0},"secondsUntil"),me=o(e=>`${Math.floor(e/60)}:${String(e%60).padStart(2,"0")}`,"mmss");function ue({step:e,i18n:d,className:h,onError:Y}){let I=d.strings,r=o((n,t)=>w(I[n]??Q[d.locale][n]??"",t),"t"),B=o((n,t)=>{let le=new Intl.PluralRules(d.locale).select(t),L=`${n}.${le}`,te=I[L]??Q[d.locale][L]??r(`${n}.other`);return w(te,{count:new Intl.NumberFormat(d.locale).format(t)})},"plural"),y=o(n=>e.providerName?r(`eid.${n}`,{provider:e.providerName}):r(`eid.${n}Generic`),"named"),[S,Z]=(0,a.useState)(""),[f,_]=(0,a.useState)(""),[c,D]=(0,a.useState)(!1),[b,p]=(0,a.useState)(null),s=e.phase==="code",F=K(s),l=(0,a.useId)(),ee=U(),[ie,ne]=q(e.reason==="eid_code_invalid",e.codeAttemptsRemaining??0,()=>_("")),m=o(async n=>{D(!0),p(null);try{await n()}catch(t){p(z(t,d.strings)),Y?.(t)}finally{D(!1)}},"run"),M=(0,a.useRef)(!1);(0,a.useEffect)(()=>{!e.identifierBound||s||e.reason!==void 0||M.current||(M.current=!0,m(()=>e.start()))},[e.identifierBound,s,e.reason]),(0,a.useEffect)(()=>{(e.reason==="eid_code_invalid"||e.codeExpiresAt!==void 0)&&_("")},[e.reason,e.codeExpiresAt,e.codeAttemptsRemaining]);let H=(0,a.useRef)(s);(0,a.useEffect)(()=>{s&&!H.current&&document.getElementById(`${l}-code`)?.focus(),H.current=s},[s,l]);let k=e.reason==="eid_locked",V=X(e.codeExpiresAt,F),x=s&&e.codeExpiresAt!==void 0&&V===0,$=X(e.resendAvailableAt,F),G=e.resendsRemaining===0||e.reason==="eid_resend_limit",re=o(n=>{if(n.preventDefault(),s){f.length===C&&!k&&m(()=>e.verify(f));return}if(e.identifierBound){m(()=>e.start());return}let t=A(S);if(e.country==="MR"){if(!/^\d{10}$/.test(t))return p("population.invalid");if(!T(t))return p("population.reason_nni_invalid")}m(()=>e.start(t))},"onSubmit"),g=e.reason?.startsWith("eid_")?e.reason:void 0,ae=(0,i.jsxs)(i.Fragment,{children:[g!==void 0?(0,i.jsxs)(E,{tone:pe.has(g)?"danger":"warning",children:[(0,i.jsx)("span",{children:r(`reasons.${g}`)}),g==="eid_code_invalid"&&e.codeAttemptsRemaining!==void 0?(0,i.jsx)("span",{children:B("eid.codeAttemptsRemaining",e.codeAttemptsRemaining)}):null,e.canUseCamera?(0,i.jsx)(N,{kind:"secondary",disabled:c,onClick:u(()=>{m(()=>e.useCamera())},"onClick"),children:r("eid.useCamera")}):null]}):null,b!==null?(0,i.jsx)(E,{tone:"danger",children:(0,i.jsx)("span",{children:d.t(b)})}):null]}),[de,se]=s?[y("codeTitle"),y("codeHelp")]:[y("identifierTitle"),y(e.identifierBound?"boundDescription":"identifierDescription")];return(0,i.jsxs)("form",{className:`sekyro-step sekyro-otp${h?` ${h}`:""}`,"aria-labelledby":l,onSubmit:re,noValidate:!0,"data-testid":"sekyro-eid",children:[(0,i.jsxs)("div",{className:"sekyro-heading",children:[(0,i.jsx)("h2",{id:l,ref:ee,tabIndex:-1,className:"sekyro-text-body",children:de}),(0,i.jsx)("p",{className:"sekyro-text-muted",children:s&&e.context.simulation!==void 0?(0,i.jsx)(j,{template:d.t("sandbox.otpHint"),code:e.context.simulation.otpCode}):se}),e.afterPass==="continue"?(0,i.jsx)("p",{className:"sekyro-text-muted","data-testid":"sekyro-eid-continue",children:e.providerName?r("eid.continueHint",{provider:e.providerName}):r("eid.continueHintGeneric")}):null]}),ae,s?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("div",{className:"sekyro-field",children:[(0,i.jsx)("label",{className:"sekyro-label",htmlFor:`${l}-code`,children:r("eid.codeLabel")}),k?(0,i.jsx)("input",{id:`${l}-code`,className:"sekyro-input sekyro-input--number",dir:"ltr",value:f,disabled:!0,readOnly:!0}):(0,i.jsx)(J,{id:`${l}-code`,value:f,length:C,invalid:ie,onChange:u(n=>{p(null),n!==""&&ne(),_(n)},"onChange")}),e.codeExpiresAt!==void 0?(0,i.jsx)("span",{className:`sekyro-help sekyro-otp-expiry${x?" is-danger":""}`,children:x?r("eid.expired"):r("eid.expiresIn",{time:me(V)})}):null]}),(0,i.jsx)("span",{className:"sekyro-visually-hidden",role:"status","aria-live":"polite",children:x?r("eid.expired"):""}),(0,i.jsxs)(R,{children:[(0,i.jsx)(N,{type:"submit",full:!0,disabled:c||f.length!==C||k,"aria-busy":c||void 0,children:r("eid.verify")}),(0,i.jsx)("div",{className:"sekyro-resend-row",children:G?(0,i.jsx)("p",{className:"sekyro-resend is-waiting",children:r("eid.noResendsLeft")}):(0,i.jsx)("button",{type:"button",className:"sekyro-link sekyro-resend",disabled:c||$>0||k,onClick:u(()=>{m(()=>e.resend())},"onClick"),children:$>0?r("eid.resendIn",{seconds:$}):r("eid.resend")})}),!G&&e.resendsRemaining!==void 0?(0,i.jsx)("p",{className:"sekyro-help sekyro-center",children:B("eid.resendsRemaining",e.resendsRemaining)}):null]})]}):(0,i.jsxs)(i.Fragment,{children:[e.identifierBound?null:(0,i.jsxs)("div",{className:"sekyro-field",children:[(0,i.jsx)("label",{className:"sekyro-label",htmlFor:`${l}-nni`,children:d.t("population.label")}),(0,i.jsx)("input",{id:`${l}-nni`,className:"sekyro-input sekyro-input--number",dir:"ltr",inputMode:"numeric",autoComplete:"off",placeholder:d.t("population.placeholder"),value:S,"aria-describedby":`${l}-nni-help`,"aria-invalid":b==="population.invalid"||b==="population.reason_nni_invalid"||void 0,onChange:u(n=>{p(null),Z(A(n.target.value).replace(/\D/g,"").slice(0,10))},"onChange")}),(0,i.jsx)("span",{id:`${l}-nni-help`,className:"sekyro-help",children:d.t("population.helper")})]}),(0,i.jsx)(R,{children:(0,i.jsx)(N,{type:"submit",full:!0,disabled:c,"aria-busy":c||void 0,children:r("eid.start")})})]})]})}u(ue,"Ae");o(ue,"EidView");export{ue as EidView};
@@ -0,0 +1 @@
1
+ "use client";import{a as J,b as K,c as Q}from"./chunk-ZIC5GEH2.js";import{a as B}from"./chunk-FDWO4KXK.js";import{a as G}from"./chunk-X3BGM3B2.js";import"./chunk-5FLR7RPJ.js";import"./chunk-LYYAVERP.js";import{A as j,H as U,K as f,L as Y,a as me,b as pe,c as N,w as F,y as E}from"./chunk-YWPZG2MZ.js";import{A as P}from"./chunk-U3UDWPBG.js";import"./chunk-ZKLSZJFN.js";import"./chunk-6H22RNSK.js";import"./chunk-UZWMCNZI.js";import{a as n}from"./chunk-RK4HVNRS.js";import"./chunk-D334IAZJ.js";import"./chunk-RRLXNT33.js";import{a as p,c as q}from"./chunk-4FHWXBOB.js";var t=q(me(),1),e=q(pe(),1);var ce={"emailOtp.reason_otp_daily_cap_reached":"لا يمكننا إرسال رمز إلى بريدك الإلكتروني اليوم. اختر طريقة أخرى للتحقق إن كانت متاحة، أو حاول مرة أخرى لاحقًا.","emailOtp.sendTitle":"تحقّق من بريدك الإلكتروني","emailOtp.sendDescription":"سنرسل إليك عبر البريد الإلكتروني رمزًا يُستخدم مرة واحدة لتأكيد أن هذا العنوان يخصّك","emailOtp.prefilledNotice":"سنرسل رمز تحقّق إلى بريدك الإلكتروني المسجّل.","emailOtp.emailLabel":"البريد الإلكتروني","emailOtp.emailHelper":"سنرسل رمزًا يُستخدم مرة واحدة إلى هذا العنوان","emailOtp.emailPlaceholder":"عنوان بريدك الإلكتروني","emailOtp.emailInvalid":"أدخل عنوان بريد إلكتروني صالحًا","emailOtp.send":"أرسل لي رمزًا عبر البريد الإلكتروني","emailOtp.verifyTitle":"أدخل الرمز","emailOtp.verifyDescription":"أدخل الرمز المكوّن من 6 أرقام الذي أرسلناه إلى بريدك الإلكتروني لإتمام التحقّق من عنوانك","emailOtp.sentTo":"أرسلنا رمزًا مكوّنًا من 6 أرقام إلى {email}","emailOtp.codeLabel":"رمز التحقّق","emailOtp.codeHelper":"أدخل الرمز المكوّن من 6 أرقام الوارد في الرسالة","emailOtp.verify":"تحقّق من الرمز","emailOtp.resend":"إعادة إرسال الرمز","emailOtp.resendIn":"إعادة إرسال الرمز خلال {seconds} ثانية","emailOtp.expiresIn":"ينتهي الرمز خلال {time}","emailOtp.expired":"انتهت صلاحية الرمز. أعد إرسال رمز جديد","emailOtp.reason_otp_mismatch":"الرمز غير صحيح. تحقّق منه وأعد إدخاله","emailOtp.reason_otp_expired":"انتهت صلاحية الرمز. أعد إرسال رمز جديد للمتابعة","emailOtp.reason_otp_send_failed":"تعذّر إرسال الرسالة. أعد المحاولة بعد قليل","emailOtp.reason_otp_rate_limited":"طلبت رموزًا كثيرة. انتظر قليلًا ثم أعد المحاولة","emailOtp.reason_email_invalid":"لا يمكننا الإرسال إلى هذا العنوان. تحقّق منه أو أدخل عنوانًا آخر","emailOtp.reason_email_disposable":"استخدم بريدًا إلكترونيًا دائمًا، وليس عنوانًا مؤقتًا","emailOtp.changeEmail":"تغيير البريد الإلكتروني","emailOtp.backToCode":"العودة إلى الرمز","emailOtp.reason_otp_resend_limit":"لا يمكنك طلب رموز أخرى. أدخل آخر رمز وصلك"},b={"emailOtp.reason_otp_daily_cap_reached":"We can't email you a code today. Choose another way to verify if one is offered, or try again later.","emailOtp.sendTitle":"Verify your email address","emailOtp.sendDescription":"We'll email you a one-time code to confirm this address is yours","emailOtp.prefilledNotice":"We'll send a verification code to your registered email address.","emailOtp.emailLabel":"Email address","emailOtp.emailHelper":"We'll send a one-time code to this address","emailOtp.emailPlaceholder":"Your email address","emailOtp.emailInvalid":"Enter a valid email address","emailOtp.send":"Email me a code","emailOtp.verifyTitle":"Enter the code","emailOtp.verifyDescription":"Type the 6-digit code we emailed you to finish verifying your address","emailOtp.sentTo":"We sent a 6-digit code to {email}","emailOtp.codeLabel":"Verification code","emailOtp.codeHelper":"Enter the 6-digit code from the email","emailOtp.verify":"Verify code","emailOtp.resend":"Resend code","emailOtp.resendIn":"Resend code in {seconds}s","emailOtp.expiresIn":"Code expires in {time}","emailOtp.expired":"That code has expired. Resend a new one","emailOtp.reason_otp_mismatch":"That code was incorrect. Check it and enter it again","emailOtp.reason_otp_expired":"That code has expired. Resend a new code to continue","emailOtp.reason_otp_send_failed":"We couldn't send the email. Try again in a moment","emailOtp.reason_otp_rate_limited":"Too many codes requested. Wait a moment, then try again","emailOtp.reason_email_invalid":"We can't send to this address. Check it or enter another one","emailOtp.reason_email_disposable":"Use a permanent email address, not a temporary one","emailOtp.changeEmail":"Change email","emailOtp.backToCode":"Back to code","emailOtp.reason_otp_resend_limit":"You can't get more codes. Enter the last code you received"},ue={"emailOtp.reason_otp_daily_cap_reached":"Nous ne pouvons pas vous envoyer de code par e-mail aujourd'hui. Choisissez une autre méthode si elle est proposée, ou réessayez plus tard.","emailOtp.sendTitle":"Vérifiez votre e-mail","emailOtp.sendDescription":"Nous vous enverrons par e-mail un code à usage unique pour confirmer que cette adresse vous appartient","emailOtp.prefilledNotice":"Nous enverrons un code de vérification à votre adresse e-mail enregistrée.","emailOtp.emailLabel":"Adresse e-mail","emailOtp.emailHelper":"Nous enverrons un code à usage unique à cette adresse","emailOtp.emailPlaceholder":"Votre adresse e-mail","emailOtp.emailInvalid":"Saisissez une adresse e-mail valide","emailOtp.send":"M'envoyer un code par e-mail","emailOtp.verifyTitle":"Saisissez le code","emailOtp.verifyDescription":"Saisissez le code à 6 chiffres que nous vous avons envoyé par e-mail pour finaliser la vérification de votre adresse","emailOtp.sentTo":"Nous avons envoyé un code à 6 chiffres à {email}","emailOtp.codeLabel":"Code de vérification","emailOtp.codeHelper":"Saisissez le code à 6 chiffres reçu par e-mail","emailOtp.verify":"Vérifier le code","emailOtp.resend":"Renvoyer le code","emailOtp.resendIn":"Renvoyer le code dans {seconds} s","emailOtp.expiresIn":"Le code expire dans {time}","emailOtp.expired":"Ce code a expiré. Renvoyez-en un nouveau","emailOtp.reason_otp_mismatch":"Ce code est incorrect. Vérifiez-le et saisissez-le à nouveau","emailOtp.reason_otp_expired":"Ce code a expiré. Renvoyez un nouveau code pour continuer","emailOtp.reason_otp_send_failed":"Nous n'avons pas pu envoyer l'e-mail. Réessayez dans un instant","emailOtp.reason_otp_rate_limited":"Trop de codes demandés. Patientez un instant, puis réessayez","emailOtp.reason_email_invalid":"Nous ne pouvons pas envoyer à cette adresse. Vérifiez-la ou saisissez-en une autre","emailOtp.reason_email_disposable":"Utilisez une adresse e-mail permanente, pas une adresse temporaire","emailOtp.changeEmail":"Changer d'adresse e-mail","emailOtp.backToCode":"Retour au code","emailOtp.reason_otp_resend_limit":"Vous ne pouvez plus demander de code. Saisissez le dernier code reçu"},Oe={en:b,fr:ue,ar:ce,es:b,pt:b,de:b},X=n((a,o,O)=>{if(a===void 0)return 0;let h=Date.parse(a)-o;return Number.isFinite(h)?Math.min(O,Math.max(0,Math.ceil(h/1e3))):0},"secondsUntil"),he=600,ye=60,ve=n(a=>`${Math.floor(a/60)}:${String(a%60).padStart(2,"0")}`,"mmss"),Z=new Set(["otp_expired","otp_send_failed","otp_rate_limited","otp_resend_limit","email_invalid","email_disposable","otp_daily_cap_reached"]);function _e({step:a,i18n:o,className:O,defaultEmail:h="",onError:ee}){let i=n((l,s)=>G(o.strings[l]??Oe[o.locale][l],s),"t"),[C,ae]=(0,t.useState)(h),[y,T]=(0,t.useState)(""),[r,z]=(0,t.useState)(!1),[I,w]=(0,t.useState)(null),[k,c]=(0,t.useState)(!1),[R,ie]=(0,t.useState)(null),u=(0,t.useRef)(null),v=a.phase==="verify",m=v&&!k,V=Q(v),d=(0,t.useId)(),[le,te]=J(a.reason==="otp_mismatch",a.attemptsRemaining,()=>T("")),$=v?a.codeExpiresAt??"sent":null;(0,t.useEffect)(()=>{$!==null&&(c(!1),u.current!==null&&!Z.has(a.reason??"")&&ie(u.current),u.current=null)},[$]);let S=n(async l=>{z(!0),w(null);try{await l()}catch(s){w(s instanceof P&&s.field==="email"?i("emailOtp.emailInvalid"):o.t(B(s,o.strings))),ee?.(s)}finally{z(!1)}},"run"),D=n(l=>{let s=a.needsEmail?l?R:C.trim():null;u.current=s,S(async()=>{try{await a.send(s!==null?{email:s}:{})}catch(de){throw u.current=null,de}})},"send"),L=n(l=>{S(()=>a.verify(l))},"submitCode"),se=n(l=>{l.preventDefault(),m?L(y):D(!1)},"onSubmit"),g=X(a.codeExpiresAt,V,he),x=X(a.resendAvailableAt,V,ye),_=m&&a.codeExpiresAt!==void 0&&g===0,A=a.needsEmail&&!a.attemptsExhausted,H=v&&(a.codeExpiresAt===void 0||g>0),W=m&&A?()=>c(!0):k&&H?()=>c(!1):null;j(W===null?null:r?()=>{}:W);let[re,ne]=i("emailOtp.sentTo").split("{email}"),M=a.context.simulation?.otpCode,oe=a.reason==="otp_mismatch"?(0,e.jsxs)(f,{tone:"danger",children:[(0,e.jsx)("span",{children:i("emailOtp.reason_otp_mismatch")}),(0,e.jsx)("span",{children:Y(o,a.attemptsRemaining,a.attemptsExhausted)})]}):a.reason!==void 0&&Z.has(a.reason)?(0,e.jsx)(f,{tone:"warning",children:(0,e.jsx)("span",{children:i(`emailOtp.reason_${a.reason}`)})}):null;return(0,e.jsxs)("form",{className:`sekyro-step sekyro-otp${O?` ${O}`:""}`,"aria-labelledby":d,onSubmit:se,noValidate:!0,children:[(0,e.jsx)(F,{id:d,title:i(m?"emailOtp.verifyTitle":"emailOtp.sendTitle"),lead:m&&M!==void 0?(0,e.jsx)(U,{template:o.t("sandbox.otpHint"),code:M}):m?(0,e.jsxs)(e.Fragment,{children:[re,(0,e.jsx)("bdi",{dir:"ltr",className:"sekyro-mono",children:R??a.sentToMasked}),ne]}):i("emailOtp.sendDescription")}),oe,I!==null?(0,e.jsx)(f,{tone:"danger",children:(0,e.jsx)("span",{children:I})}):null,m?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("div",{className:"sekyro-field",children:[(0,e.jsx)("label",{className:"sekyro-label",htmlFor:`${d}-code`,children:i("emailOtp.codeLabel")}),(0,e.jsx)(K,{id:`${d}-code`,value:y,invalid:le,onChange:p(l=>{l!==""&&te(),T(l),l.length===6&&y.length!==6&&!r&&!a.attemptsExhausted&&L(l)},"onChange")}),(0,e.jsx)("span",{className:`sekyro-help sekyro-otp-expiry${_?" is-danger":""}`,"aria-hidden":!_||void 0,children:_?i("emailOtp.expired"):i("emailOtp.expiresIn",{time:ve(g)})})]}),(0,e.jsx)("span",{className:"sekyro-visually-hidden",role:"status","aria-live":"polite",children:_?i("emailOtp.expired"):""}),(0,e.jsxs)(E,{children:[(0,e.jsx)(N,{type:"submit",full:!0,disabled:r||y.length!==6,"aria-busy":r||void 0,children:i("emailOtp.verify")}),(0,e.jsxs)("div",{className:"sekyro-resend-row",children:[(0,e.jsx)("button",{type:"button",className:"sekyro-link sekyro-resend",disabled:r||x>0,onClick:p(()=>D(!0),"onClick"),children:x>0?i("emailOtp.resendIn",{seconds:x}):i("emailOtp.resend")}),A?(0,e.jsx)("button",{type:"button",className:"sekyro-link sekyro-resend",disabled:r,onClick:p(()=>c(!0),"onClick"),"data-testid":"sekyro-otp-change",children:i("emailOtp.changeEmail")}):null]})]})]}):(0,e.jsxs)(e.Fragment,{children:[a.needsEmail?(0,e.jsxs)("div",{className:"sekyro-field",children:[(0,e.jsx)("label",{className:"sekyro-label",htmlFor:`${d}-email`,children:i("emailOtp.emailLabel")}),(0,e.jsx)("input",{id:`${d}-email`,className:"sekyro-input",type:"email",dir:"ltr",inputMode:"email",autoComplete:"email",autoCapitalize:"none",spellCheck:!1,placeholder:i("emailOtp.emailPlaceholder"),value:C,"aria-describedby":`${d}-email-help`,onChange:p(l=>ae(l.target.value),"onChange")}),(0,e.jsx)("span",{id:`${d}-email-help`,className:"sekyro-help",children:i("emailOtp.emailHelper")})]}):(0,e.jsx)("p",{className:"sekyro-text-muted",children:i("emailOtp.prefilledNotice")}),(0,e.jsxs)(E,{children:[(0,e.jsx)(N,{type:"submit",full:!0,disabled:r,"aria-busy":r||void 0,children:i("emailOtp.send")}),k&&H?(0,e.jsx)("button",{type:"button",className:"sekyro-link sekyro-resend",disabled:r,onClick:p(()=>c(!1),"onClick"),"data-testid":"sekyro-otp-back-to-code",children:i("emailOtp.backToCode")}):null]})]})]})}p(_e,"Ae");n(_e,"EmailOtpView");export{_e as EmailOtpView};