@pie-players/pie-section-player 1.0.0-beta.0 → 1.0.0-beta.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.
@@ -1 +1 @@
1
- import{t as l}from"./defineProperty-a20a667d.js";import{r as W,t as N}from"./logger-8b07fb72.js";var A=e=>{const t=Number(e);return Number.isFinite(t)?t:null},I=e=>[...e].sort((t,r)=>t.time!==r.time?t.time-r.time:t.start!==r.start?t.start-r.start:t.end-r.end),H=e=>{const t=[];let r=0;for(const i of e.split(/\r?\n/)){const n=i.trim();if(n)try{const s=JSON.parse(n);if(s.type&&s.type!=="word")continue;const o=A(s.time);if(o===null)continue;const h=typeof s.value=="string"?s.value:"",a=A(s.start)??r,d=A(s.end)??a+Math.max(1,h.length);r=Math.max(d+1,r),t.push({time:o,type:"word",start:a,end:d,value:h})}catch{}}return I(t)},D=e=>{if(e.length<2)return e;const t=e.map(s=>s.time).filter(s=>s>=0),r=t.length?Math.max(...t):0,i=[];for(let s=1;s<t.length;s+=1){const o=t[s]-t[s-1];o>0&&Number.isFinite(o)&&i.push(o)}const n=i.length>0?[...i].sort((s,o)=>s-o)[Math.floor(i.length/2)]:0;return r>0&&r<100&&e.length>3||n>0&&n<10?e.map(s=>({...s,time:s.time*1e3})):e},M=e=>{const t=e.toLowerCase();return t.length===e.length?t:e},F=(e,t,r,i,n)=>{let s=-1;for(let o=e.indexOf(t,r);o>=0&&o<=i+n;o=e.indexOf(t,o+1))(s<0||Math.abs(o-i)<Math.abs(s-i))&&(s=o);return s>=0&&Math.abs(s-i)<=n?s:-1};function L(e,t){if(!e.length||!t.length)return e;const r=M(t),i=new Map;return I(e).map(n=>{const s=i.get(n.type)??{cursor:0,shift:null};i.set(n.type,s);const o=n.value.trim(),h=n.end-n.start,a=n.start-(s.shift??0),d=o?s.shift===null?r.indexOf(M(o),s.cursor):F(r,M(o),s.cursor,a,Math.max(8,o.length)):-1;return d<0?{...n,start:a,end:a+h}:(s.shift=n.start-d,s.cursor=d+o.length,{...n,start:d,end:d+o.length})})}var $=(e,t)=>{if(!t.length)return e;const r=t.length;return I(e.map(i=>{const n=Math.max(0,Math.min(r,Math.floor(i.start))),s=Math.max(n+1,Math.min(r,Math.floor(i.end)));return{...i,start:n,end:s}}))};function j(e,t){const r=H(e),i=L(D(r),t);return $(i,t)}function U(e,t="medium"){const r=Number(e??1);return Number.isFinite(r)?r<=.95?"slow":r>=1.5?"fast":t:t}var f=N("server-tts-provider",W),V="textToSpeech",q=50,G=5e3,J=500,K=120;function R(e,t){if(typeof e!="string"||e.length===0)return null;try{const r=typeof t.apiEndpoint=="string"&&/^https?:\/\//i.test(t.apiEndpoint)?t.apiEndpoint:void 0,i=r?new URL(e,r):new URL(e);return i.protocol!=="http:"&&i.protocol!=="https:"?null:i}catch{return null}}function x(e,t){const r=Array.isArray(t.assetOrigins)?t.assetOrigins.filter(i=>typeof i=="string"&&i.length>0).map(i=>{try{return new URL(i).origin}catch{return i}}):[];if(r.length===0){if(typeof t.apiEndpoint=="string"&&/^https?:\/\//i.test(t.apiEndpoint))try{return new URL(t.apiEndpoint).origin===e.origin}catch{return!1}return typeof window<"u"&&typeof window.location?.origin=="string"&&window.location.origin===e.origin}return r.includes(e.origin)}function P(e){const t={};for(const[r,i]of Object.entries(e)){const n=r.toLowerCase();n==="authorization"||n==="proxy-authorization"||n==="cookie"||n.startsWith("x-auth-")||(t[r]=i)}return t}function S(e,t=!0){return e.credentials?!t&&e.credentials==="include"?{}:{credentials:e.credentials}:{}}function _(e,t){const r={};if(!t.includeAuthOnAssetFetch)return r;for(const[i,n]of Object.entries(e))i.toLowerCase()==="authorization"&&(r[i]=n);return r}var z=e=>{const t=e.providerOptions?.__pieTelemetry;return typeof t=="function"?t:void 0},p=(e,t,r)=>({toolId:V,backend:e.provider||"server",operation:t,...r}),X={pie:3e3,custom:3e3},Y=new Set(["polly","google"]),Q=e=>{if(!e||k(e)!=="pie")return!1;const t=(e.provider||"polly").toLowerCase();return Y.has(t)},E=e=>e.replace(/\/+$/,""),Z=e=>{const t=E(e.apiEndpoint),r=(e.provider||"").toLowerCase();return r==="polly"||r==="google"?[`${t}/${r}/voices`,`${t}/voices`]:[`${t}/voices`]},k=e=>e.transportMode==="custom"?"custom":e.transportMode==="pie"?"pie":e.provider==="custom"?"custom":"pie",O=(e,t)=>e.endpointMode?e.endpointMode:t==="custom"?"rootPost":"synthesizePath",tt=e=>e.endpointValidationMode==="voices"||e.endpointValidationMode==="endpoint"?e.endpointValidationMode:"none",et=new Set(["slow","medium","fast"]),rt=e=>{const t=e.providerOptions?.speedRate;return et.has(t)?t:U(e.rate)},C=e=>{const t=e.providerOptions?.contentLanguage;return typeof t=="string"&&t.trim()?t.trim():void 0},it=e=>{if(!Array.isArray(e))return[];const t=[];let r=0;for(const i of e){if(!i||typeof i!="object")continue;const n=typeof i.type=="string"?i.type:"word",s=typeof i.time=="number"&&Number.isFinite(i.time)?i.time:0,o=typeof i.value=="string"?i.value:"",h=typeof i.start=="number"&&Number.isFinite(i.start)?i.start:null,a=typeof i.end=="number"&&Number.isFinite(i.end)?i.end:null,d=h??r,g=a??d+Math.max(1,o.length||1);r=Math.max(r,g+1),t.push({time:s,type:n,start:d,end:g,value:o})}return t.sort((i,n)=>i.time!==n.time?i.time-n.time:i.start!==n.start?i.start-n.start:i.end-n.end)},st={pie:{id:"pie",resolveSynthesisUrl:e=>{const t=O(e,"pie"),r=E(e.apiEndpoint);return t==="rootPost"?r:`${r}/synthesize`},buildRequestBody:(e,t)=>{const r=t.providerOptions||{},i=typeof t.engine=="string"?t.engine:typeof r.engine=="string"?r.engine:void 0,n=typeof r.sampleRate=="number"&&Number.isFinite(r.sampleRate)?r.sampleRate:void 0,s=r.format==="mp3"||r.format==="ogg"||r.format==="pcm"?r.format:void 0,o=Array.isArray(r.speechMarkTypes)?r.speechMarkTypes.filter(h=>h==="word"||h==="sentence"||h==="ssml"):void 0;return{text:e,provider:t.provider||"polly",voice:t.voice,language:C(t)??t.language,rate:t.rate,engine:i,sampleRate:n,format:s,speechMarkTypes:o,includeSpeechMarks:!0}},parseResponse:async(e,t,r,i,n)=>{const s=await e.json();return{audio:{kind:"base64",data:s.audio,contentType:s.contentType},speechMarks:Array.isArray(s.speechMarks)?L(s.speechMarks,n):[]}}},custom:{id:"custom",resolveSynthesisUrl:e=>{const t=O(e,"custom"),r=E(e.apiEndpoint);return t==="synthesizePath"?`${r}/synthesize`:r},buildRequestBody:(e,t)=>{const r=t.providerOptions||{},i=(typeof r.lang_id=="string"&&r.lang_id.trim()?r.lang_id:void 0)??C(t)??(t.language||"en-US"),n=typeof r.cache=="boolean"?r.cache:!0;return{text:e,speedRate:rt(t),lang_id:i,langId:i,cache:n}},parseResponse:async(e,t,r,i,n)=>{const s=await e.json(),o=_(r,t);let h=[];const a=it(s.speechMarks);if(a.length>0)h=a;else if(typeof s.word=="string"&&s.word.length>0){const g=R(s.word,t);if(g!==null){const y=x(g,t),c=y?o:P(o),u=await fetch(g.toString(),{headers:c,...S(t,y),signal:i,redirect:"error"});if(u.ok){const m=await u.text();h=j(m,n)}}}const d=R(s.audioContent,t);if(d===null)throw new Error("TTS server returned an invalid audio URL");return{audio:{kind:"url",url:d.toString()},speechMarks:h}}}},nt=class{constructor(e,t){l(this,"config",void 0),l(this,"adapter",void 0),l(this,"currentAudio",null),l(this,"pausedState",!1),l(this,"wordTimings",[]),l(this,"highlightInterval",null),l(this,"highlightCursor",-1),l(this,"intentionallyStopped",!1),l(this,"activeSynthesisController",null),l(this,"startCurrentAudio",null),l(this,"synthesisRunId",0),l(this,"telemetryReporter",void 0),l(this,"onPlaybackStart",void 0),l(this,"onWordBoundary",void 0),this.config=e,this.adapter=t,this.telemetryReporter=z(e)}async emitTelemetry(e,t){try{await this.telemetryReporter?.(e,t)}catch(r){f.warn("telemetry callback failed:",r)}}async speak(e){this.stop(),this.intentionallyStopped=!1;const t=++this.synthesisRunId,r=new AbortController;this.activeSynthesisController=r;let i;try{i=await this.synthesizeSpeech(e,r.signal,t)}catch(o){if(t!==this.synthesisRunId||r.signal.aborted)return;throw o}finally{this.activeSynthesisController===r&&(this.activeSynthesisController=null)}const{audioUrl:n,wordTimings:s}=i;if(t!==this.synthesisRunId){URL.revokeObjectURL(n);return}return this.wordTimings=s,this.highlightCursor=-1,new Promise((o,h)=>{const a=new Audio(n);this.currentAudio=a,this.config.volume!==void 0&&(a.volume=Math.max(0,Math.min(1,this.config.volume)));const d=()=>t!==this.synthesisRunId||this.currentAudio!==a;a.onplaying=()=>{if(!d()){this.pausedState=!1;try{this.onPlaybackStart?.({wordBoundaries:this.wordTimings.length>0})}catch(y){f.warn("playback-start callback failed:",y)}this.onWordBoundary&&this.wordTimings.length>0&&this.startWordHighlighting()}},a.onended=()=>{URL.revokeObjectURL(n),d()||this.clearCurrentAudio(),o()},a.onerror=()=>{if(URL.revokeObjectURL(n),d()||this.intentionallyStopped){o();return}this.clearCurrentAudio(),h(new Error("Failed to play audio from server"))},a.onpause=()=>{d()||(this.stopWordHighlighting(),this.pausedState=!0)};const g=()=>{a.play().catch(y=>{y?.name==="AbortError"&&this.pausedState&&this.currentAudio===a||h(y)})};this.startCurrentAudio=g,this.pausedState||g()})}async synthesizeSpeech(e,t,r){const i=Date.now();await this.emitTelemetry("pie-tool-backend-call-start",p(this.config,"synthesize-speech"));const n={"Content-Type":"application/json",...this.config.headers};this.config.authToken&&(n.Authorization=`Bearer ${this.config.authToken}`);const s=this.adapter.resolveSynthesisUrl(this.config),o=this.adapter.buildRequestBody(e,this.config),h=await(async()=>{try{return await fetch(s,{method:"POST",headers:n,body:JSON.stringify(o),signal:t,...S(this.config)})}catch(c){throw t.aborted||await this.emitTelemetry("pie-tool-backend-call-error",p(this.config,"synthesize-speech",{duration:Date.now()-i,errorType:"TTSBackendNetworkError",message:c instanceof Error?c.message:String(c)})),c}})();if(!h.ok){const c=await h.text().catch(()=>"");let u={};if(c)try{u=JSON.parse(c)}catch(w){f.warn("non-OK response body was not JSON",{status:h.status,url:s,bodyLength:c.length,parseError:w instanceof Error?w.message:String(w)}),f.debug("non-OK response body",{rawBodyPreview:c.slice(0,J)})}const m=typeof u.message=="string"&&u.message||(typeof u.error?.message=="string"?u.error.message:void 0)||`Server returned ${h.status}`;await this.emitTelemetry("pie-tool-backend-call-error",p(this.config,"synthesize-speech",{duration:Date.now()-i,statusCode:h.status,errorType:"TTSBackendRequestError",message:m})),f.error("synthesize request failed",{status:h.status,url:s,backend:this.config.provider||"server",message:m,textLength:e.length});const v=e.replace(/\s+/g," ").trim().slice(0,K);throw f.debug("synthesize request failed for text",{responseBody:u,textPreview:v.length<e.length?`${v}…`:v}),new Error(m)}const a=await this.adapter.parseResponse(h,this.config,n,t,e);if(r!==this.synthesisRunId||t.aborted)throw new Error("Synthesis superseded by a newer request");let d;if(a.audio.kind==="base64")d=this.base64ToBlob(a.audio.data,a.audio.contentType);else{const c=a.audio.url,u=Date.now();await this.emitTelemetry("pie-tool-backend-call-start",p(this.config,"fetch-synthesized-audio-asset"));const m=_(n,this.config),v=R(c,this.config);if(v===null)throw await this.emitTelemetry("pie-tool-backend-call-error",p(this.config,"fetch-synthesized-audio-asset",{duration:Date.now()-u,errorType:"TTSAssetInvalidUrl",message:"TTS asset URL rejected (non-http(s) or malformed)"})),new Error("TTS asset URL rejected (non-http(s) or malformed)");const w=x(v,this.config),B=w?m:P(m),T=await(async()=>{try{return await fetch(v.toString(),{headers:B,signal:t,...S(this.config,w),redirect:"error"})}catch(b){throw t.aborted||await this.emitTelemetry("pie-tool-backend-call-error",p(this.config,"fetch-synthesized-audio-asset",{duration:Date.now()-u,errorType:"TTSAssetNetworkError",message:b instanceof Error?b.message:String(b)})),b}})();if(!T.ok)throw await this.emitTelemetry("pie-tool-backend-call-error",p(this.config,"fetch-synthesized-audio-asset",{duration:Date.now()-u,statusCode:T.status,errorType:"TTSAssetFetchError",message:`Failed to download synthesized audio (${T.status})`})),new Error(`Failed to download synthesized audio (${T.status})`);d=await T.blob(),await this.emitTelemetry("pie-tool-backend-call-success",p(this.config,"fetch-synthesized-audio-asset",{duration:Date.now()-u}))}const g=URL.createObjectURL(d),y=this.parseSpeechMarks(a.speechMarks);return await this.emitTelemetry("pie-tool-backend-call-success",p(this.config,"synthesize-speech",{duration:Date.now()-i})),{audioUrl:g,wordTimings:y}}base64ToBlob(e,t){const r=atob(e),i=new Array(r.length);for(let s=0;s<r.length;s++)i[s]=r.charCodeAt(s);const n=new Uint8Array(i);return new Blob([n],{type:t})}parseSpeechMarks(e){return e.filter(t=>t.type==="word").map((t,r)=>({time:t.time,wordIndex:r,charIndex:t.start,length:t.end-t.start,word:t.value}))}startWordHighlighting(){if(this.stopWordHighlighting(),!this.currentAudio||!this.onWordBoundary||this.wordTimings.length===0){f.debug("cannot start word highlighting",{hasAudio:!!this.currentAudio,hasCallback:!!this.onWordBoundary,wordTimingsCount:this.wordTimings.length});return}f.debug("starting word highlighting",{wordTimingsCount:this.wordTimings.length,playbackRate:this.currentAudio.playbackRate}),this.highlightInterval=window.setInterval(()=>{if(!this.currentAudio){this.stopWordHighlighting();return}const e=this.currentAudio.currentTime*1e3,t=this.resolveCurrentWordIndex(e,this.highlightCursor);if(t<0||t===this.highlightCursor)return;this.highlightCursor=t;const r=this.wordTimings[t];f.debug("word boundary",{wordIndex:r.wordIndex,charIndex:r.charIndex,length:r.length,timingMs:r.time,currentTimeMs:e}),this.onWordBoundary?.(r.word,r.charIndex,r.length)},q)}resolveCurrentWordIndex(e,t){const r=this.wordTimings;let i=t<r.length?t:-1;for(i>=0&&e<r[i].time&&(i=-1);i+1<r.length&&r[i+1].time<=e;)i++;return i}stopWordHighlighting(){this.highlightInterval!==null&&(clearInterval(this.highlightInterval),this.highlightInterval=null)}pause(){if(!this.pausedState){if(this.currentAudio)this.currentAudio.pause(),this.stopWordHighlighting();else if(!this.activeSynthesisController)return;this.pausedState=!0}}resume(){this.pausedState&&(this.pausedState=!1,this.currentAudio&&(this.startCurrentAudio?.(),this.onWordBoundary&&this.wordTimings.length>0&&this.startWordHighlighting()))}clearCurrentAudio(){this.stopWordHighlighting(),this.currentAudio=null,this.wordTimings=[],this.highlightCursor=-1}stop(){this.synthesisRunId+=1,this.startCurrentAudio=null,this.activeSynthesisController&&(this.activeSynthesisController.abort(),this.activeSynthesisController=null),this.stopWordHighlighting(),this.currentAudio&&(this.intentionallyStopped=!0,this.currentAudio.pause(),this.currentAudio.src&&URL.revokeObjectURL(this.currentAudio.src),this.currentAudio.src="",this.currentAudio=null),this.pausedState=!1,this.wordTimings=[],this.highlightCursor=-1}updateSettings(e){e.rate!==void 0&&(this.config.rate=e.rate,this.config.providerOptions={...this.config.providerOptions||{},speedRate:U(e.rate)}),e.pitch!==void 0&&(this.config.pitch=e.pitch),e.voice!==void 0&&(this.config.voice=e.voice),e.providerOptions&&"contentLanguage"in e.providerOptions&&(this.config.providerOptions={...this.config.providerOptions,contentLanguage:e.providerOptions.contentLanguage})}},ht=class{constructor(){l(this,"providerId","server-tts"),l(this,"config",null),l(this,"adapter",null),l(this,"telemetryReporter",void 0)}async emitTelemetry(e,t){try{await this.telemetryReporter?.(e,t)}catch(r){f.warn("telemetry callback failed:",r)}}async initialize(e){const t=e;if(!t.apiEndpoint)throw new Error("apiEndpoint is required for ServerTTSProvider");this.config=t,this.telemetryReporter=z(t);const r=k(t);this.adapter=st[r];const i=tt(t);if(i!=="none"){const n=Date.now();if(await this.emitTelemetry("pie-tool-backend-call-start",p(t,"validate-endpoint")),!await this.testAPIAvailability(i))throw await this.emitTelemetry("pie-tool-backend-call-error",p(t,"validate-endpoint",{duration:Date.now()-n,errorType:"TTSEndpointValidationError",message:`Server TTS API not available at ${t.apiEndpoint}`})),new Error(`Server TTS API not available at ${t.apiEndpoint}`);await this.emitTelemetry("pie-tool-backend-call-success",p(t,"validate-endpoint",{duration:Date.now()-n}))}return new nt(t,this.adapter)}async testAPIAvailability(e){if(!this.config||!this.adapter)return!1;try{const t={...this.config.headers};this.config.authToken&&(t.Authorization=`Bearer ${this.config.authToken}`);const r=new AbortController,i=setTimeout(()=>r.abort(),G),n=e==="voices"?Z(this.config):[this.adapter.resolveSynthesisUrl(this.config)],s=e==="voices"?"GET":"OPTIONS";try{let o=!1;for(const h of n){const a=await fetch(h,{method:s,headers:t,signal:r.signal,...S(this.config)});if(o=a.ok||a.status===405,o||a.status!==404)break}return clearTimeout(i),o}catch{return clearTimeout(i),!1}}catch{return!1}}getCapabilities(){const e=this.config?k(this.config):"pie";return{supportsWordBoundary:!0,supportsSSML:Q(this.config),maxTextLength:X[e]}}destroy(){this.config=null,this.adapter=null,this.telemetryReporter=void 0}};export{ht as ServerTTSProvider};
1
+ import{t as l}from"./defineProperty-a20a667d.js";import{r as W,t as N}from"./logger-8b07fb72.js";var A=e=>{const t=Number(e);return Number.isFinite(t)?t:null},I=e=>[...e].sort((t,r)=>t.time!==r.time?t.time-r.time:t.start!==r.start?t.start-r.start:t.end-r.end),H=e=>{const t=[];let r=0;for(const i of e.split(/\r?\n/)){const n=i.trim();if(n)try{const s=JSON.parse(n);if(s.type&&s.type!=="word")continue;const o=A(s.time);if(o===null)continue;const h=typeof s.value=="string"?s.value:"",a=A(s.start)??r,d=A(s.end)??a+Math.max(1,h.length);r=Math.max(d+1,r),t.push({time:o,type:"word",start:a,end:d,value:h})}catch{}}return I(t)},D=e=>{if(e.length<2)return e;const t=e.map(s=>s.time).filter(s=>s>=0),r=t.length?Math.max(...t):0,i=[];for(let s=1;s<t.length;s+=1){const o=t[s]-t[s-1];o>0&&Number.isFinite(o)&&i.push(o)}const n=i.length>0?[...i].sort((s,o)=>s-o)[Math.floor(i.length/2)]:0;return r>0&&r<100&&e.length>3||n>0&&n<10?e.map(s=>({...s,time:s.time*1e3})):e},M=e=>{const t=e.toLowerCase();return t.length===e.length?t:e},F=(e,t,r,i,n)=>{let s=-1;for(let o=e.indexOf(t,r);o>=0&&o<=i+n;o=e.indexOf(t,o+1))(s<0||Math.abs(o-i)<Math.abs(s-i))&&(s=o);return s>=0&&Math.abs(s-i)<=n?s:-1};function L(e,t){if(!e.length||!t.length)return e;const r=M(t),i=new Map;return I(e).map(n=>{const s=i.get(n.type)??{cursor:0,shift:null};i.set(n.type,s);const o=n.value.trim(),h=n.end-n.start,a=n.start-(s.shift??0),d=o?s.shift===null?r.indexOf(M(o),s.cursor):F(r,M(o),s.cursor,a,Math.max(8,o.length)):-1;return d<0?{...n,start:a,end:a+h}:(s.shift=n.start-d,s.cursor=d+o.length,{...n,start:d,end:d+o.length})})}var $=(e,t)=>{if(!t.length)return e;const r=t.length;return I(e.map(i=>{const n=Math.max(0,Math.min(r,Math.floor(i.start))),s=Math.max(n+1,Math.min(r,Math.floor(i.end)));return{...i,start:n,end:s}}))};function j(e,t){const r=H(e),i=L(D(r),t);return $(i,t)}function U(e,t="medium"){const r=Number(e??1);return Number.isFinite(r)?r<=.95?"slow":r>=1.5?"fast":t:t}var f=N("server-tts-provider",W),V="textToSpeech",q=50,G=5e3,J=500,K=120;function R(e,t){if(typeof e!="string"||e.length===0)return null;try{const r=typeof t.apiEndpoint=="string"&&/^https?:\/\//i.test(t.apiEndpoint)?t.apiEndpoint:void 0,i=r?new URL(e,r):new URL(e);return i.protocol!=="http:"&&i.protocol!=="https:"?null:i}catch{return null}}function x(e,t){const r=Array.isArray(t.assetOrigins)?t.assetOrigins.filter(i=>typeof i=="string"&&i.length>0).map(i=>{try{return new URL(i).origin}catch{return i}}):[];if(r.length===0){if(typeof t.apiEndpoint=="string"&&/^https?:\/\//i.test(t.apiEndpoint))try{return new URL(t.apiEndpoint).origin===e.origin}catch{return!1}return typeof window<"u"&&typeof window.location?.origin=="string"&&window.location.origin===e.origin}return r.includes(e.origin)}function P(e){const t={};for(const[r,i]of Object.entries(e)){const n=r.toLowerCase();n==="authorization"||n==="proxy-authorization"||n==="cookie"||n.startsWith("x-auth-")||(t[r]=i)}return t}function S(e,t=!0){return e.credentials?!t&&e.credentials==="include"?{}:{credentials:e.credentials}:{}}function _(e,t){const r={};if(!t.includeAuthOnAssetFetch)return r;for(const[i,n]of Object.entries(e))i.toLowerCase()==="authorization"&&(r[i]=n);return r}var z=e=>{const t=e.providerOptions?.__pieTelemetry;return typeof t=="function"?t:void 0},p=(e,t,r)=>({toolId:V,backend:e.provider||"server",operation:t,...r}),X={pie:3e3,custom:3e3},Y=new Set(["polly","google"]),Q=e=>{if(!e||k(e)!=="pie")return!1;const t=(e.provider||"polly").toLowerCase();return Y.has(t)},E=e=>e.replace(/\/+$/,""),Z=e=>{const t=E(e.apiEndpoint),r=(e.provider||"").toLowerCase();return r==="polly"||r==="google"?[`${t}/${r}/voices`,`${t}/voices`]:[`${t}/voices`]},k=e=>e.transportMode==="custom"?"custom":e.transportMode==="pie"?"pie":e.provider==="custom"?"custom":"pie",O=(e,t)=>e.endpointMode?e.endpointMode:t==="custom"?"rootPost":"synthesizePath",tt=e=>e.endpointValidationMode==="voices"||e.endpointValidationMode==="endpoint"?e.endpointValidationMode:"none",et=new Set(["slow","medium","fast"]),rt=e=>{const t=e.providerOptions?.speedRate;return et.has(t)?t:U(e.rate)},C=e=>{const t=e.providerOptions?.contentLanguage;return typeof t=="string"&&t.trim()?t.trim():void 0},it=e=>{if(!Array.isArray(e))return[];const t=[];let r=0;for(const i of e){if(!i||typeof i!="object")continue;const n=typeof i.type=="string"?i.type:"word",s=typeof i.time=="number"&&Number.isFinite(i.time)?i.time:0,o=typeof i.value=="string"?i.value:"",h=typeof i.start=="number"&&Number.isFinite(i.start)?i.start:null,a=typeof i.end=="number"&&Number.isFinite(i.end)?i.end:null,d=h??r,g=a??d+Math.max(1,o.length||1);r=Math.max(r,g+1),t.push({time:s,type:n,start:d,end:g,value:o})}return t.sort((i,n)=>i.time!==n.time?i.time-n.time:i.start!==n.start?i.start-n.start:i.end-n.end)},st={pie:{id:"pie",resolveSynthesisUrl:e=>{const t=O(e,"pie"),r=E(e.apiEndpoint);return t==="rootPost"?r:`${r}/synthesize`},buildRequestBody:(e,t)=>{const r=t.providerOptions||{},i=typeof t.engine=="string"?t.engine:typeof r.engine=="string"?r.engine:void 0,n=typeof r.sampleRate=="number"&&Number.isFinite(r.sampleRate)?r.sampleRate:void 0,s=r.format==="mp3"||r.format==="ogg"||r.format==="pcm"?r.format:void 0,o=Array.isArray(r.speechMarkTypes)?r.speechMarkTypes.filter(h=>h==="word"||h==="sentence"||h==="ssml"):void 0;return{text:e,provider:t.provider||"polly",voice:t.voice,language:C(t)??t.language,rate:t.rate,...t.pitch!==void 0?{pitch:t.pitch}:{},engine:i,sampleRate:n,format:s,speechMarkTypes:o,includeSpeechMarks:!0}},parseResponse:async(e,t,r,i,n)=>{const s=await e.json();return{audio:{kind:"base64",data:s.audio,contentType:s.contentType},speechMarks:Array.isArray(s.speechMarks)?L(s.speechMarks,n):[]}}},custom:{id:"custom",resolveSynthesisUrl:e=>{const t=O(e,"custom"),r=E(e.apiEndpoint);return t==="synthesizePath"?`${r}/synthesize`:r},buildRequestBody:(e,t)=>{const r=t.providerOptions||{},i=(typeof r.lang_id=="string"&&r.lang_id.trim()?r.lang_id:void 0)??C(t)??(t.language||"en-US"),n=typeof r.cache=="boolean"?r.cache:!0;return{text:e,speedRate:rt(t),lang_id:i,langId:i,cache:n}},parseResponse:async(e,t,r,i,n)=>{const s=await e.json(),o=_(r,t);let h=[];const a=it(s.speechMarks);if(a.length>0)h=a;else if(typeof s.word=="string"&&s.word.length>0){const g=R(s.word,t);if(g!==null){const y=x(g,t),c=y?o:P(o),u=await fetch(g.toString(),{headers:c,...S(t,y),signal:i,redirect:"error"});if(u.ok){const m=await u.text();h=j(m,n)}}}const d=R(s.audioContent,t);if(d===null)throw new Error("TTS server returned an invalid audio URL");return{audio:{kind:"url",url:d.toString()},speechMarks:h}}}},nt=class{constructor(e,t){l(this,"config",void 0),l(this,"adapter",void 0),l(this,"currentAudio",null),l(this,"pausedState",!1),l(this,"wordTimings",[]),l(this,"highlightInterval",null),l(this,"highlightCursor",-1),l(this,"intentionallyStopped",!1),l(this,"activeSynthesisController",null),l(this,"startCurrentAudio",null),l(this,"synthesisRunId",0),l(this,"telemetryReporter",void 0),l(this,"onPlaybackStart",void 0),l(this,"onWordBoundary",void 0),this.config=e,this.adapter=t,this.telemetryReporter=z(e)}async emitTelemetry(e,t){try{await this.telemetryReporter?.(e,t)}catch(r){f.warn("telemetry callback failed:",r)}}async speak(e){this.stop(),this.intentionallyStopped=!1;const t=++this.synthesisRunId,r=new AbortController;this.activeSynthesisController=r;let i;try{i=await this.synthesizeSpeech(e,r.signal,t)}catch(o){if(t!==this.synthesisRunId||r.signal.aborted)return;throw o}finally{this.activeSynthesisController===r&&(this.activeSynthesisController=null)}const{audioUrl:n,wordTimings:s}=i;if(t!==this.synthesisRunId){URL.revokeObjectURL(n);return}return this.wordTimings=s,this.highlightCursor=-1,new Promise((o,h)=>{const a=new Audio(n);this.currentAudio=a,this.config.volume!==void 0&&(a.volume=Math.max(0,Math.min(1,this.config.volume)));const d=()=>t!==this.synthesisRunId||this.currentAudio!==a;a.onplaying=()=>{if(!d()){this.pausedState=!1;try{this.onPlaybackStart?.({wordBoundaries:this.wordTimings.length>0})}catch(y){f.warn("playback-start callback failed:",y)}this.onWordBoundary&&this.wordTimings.length>0&&this.startWordHighlighting()}},a.onended=()=>{URL.revokeObjectURL(n),d()||this.clearCurrentAudio(),o()},a.onerror=()=>{if(URL.revokeObjectURL(n),d()||this.intentionallyStopped){o();return}this.clearCurrentAudio(),h(new Error("Failed to play audio from server"))},a.onpause=()=>{d()||(this.stopWordHighlighting(),this.pausedState=!0)};const g=()=>{a.play().catch(y=>{y?.name==="AbortError"&&this.pausedState&&this.currentAudio===a||h(y)})};this.startCurrentAudio=g,this.pausedState||g()})}async synthesizeSpeech(e,t,r){const i=Date.now();await this.emitTelemetry("pie-tool-backend-call-start",p(this.config,"synthesize-speech"));const n={"Content-Type":"application/json",...this.config.headers};this.config.authToken&&(n.Authorization=`Bearer ${this.config.authToken}`);const s=this.adapter.resolveSynthesisUrl(this.config),o=this.adapter.buildRequestBody(e,this.config),h=await(async()=>{try{return await fetch(s,{method:"POST",headers:n,body:JSON.stringify(o),signal:t,...S(this.config)})}catch(c){throw t.aborted||await this.emitTelemetry("pie-tool-backend-call-error",p(this.config,"synthesize-speech",{duration:Date.now()-i,errorType:"TTSBackendNetworkError",message:c instanceof Error?c.message:String(c)})),c}})();if(!h.ok){const c=await h.text().catch(()=>"");let u={};if(c)try{u=JSON.parse(c)}catch(w){f.warn("non-OK response body was not JSON",{status:h.status,url:s,bodyLength:c.length,parseError:w instanceof Error?w.message:String(w)}),f.debug("non-OK response body",{rawBodyPreview:c.slice(0,J)})}const m=typeof u.message=="string"&&u.message||(typeof u.error?.message=="string"?u.error.message:void 0)||`Server returned ${h.status}`;await this.emitTelemetry("pie-tool-backend-call-error",p(this.config,"synthesize-speech",{duration:Date.now()-i,statusCode:h.status,errorType:"TTSBackendRequestError",message:m})),f.error("synthesize request failed",{status:h.status,url:s,backend:this.config.provider||"server",message:m,textLength:e.length});const v=e.replace(/\s+/g," ").trim().slice(0,K);throw f.debug("synthesize request failed for text",{responseBody:u,textPreview:v.length<e.length?`${v}…`:v}),new Error(m)}const a=await this.adapter.parseResponse(h,this.config,n,t,e);if(r!==this.synthesisRunId||t.aborted)throw new Error("Synthesis superseded by a newer request");let d;if(a.audio.kind==="base64")d=this.base64ToBlob(a.audio.data,a.audio.contentType);else{const c=a.audio.url,u=Date.now();await this.emitTelemetry("pie-tool-backend-call-start",p(this.config,"fetch-synthesized-audio-asset"));const m=_(n,this.config),v=R(c,this.config);if(v===null)throw await this.emitTelemetry("pie-tool-backend-call-error",p(this.config,"fetch-synthesized-audio-asset",{duration:Date.now()-u,errorType:"TTSAssetInvalidUrl",message:"TTS asset URL rejected (non-http(s) or malformed)"})),new Error("TTS asset URL rejected (non-http(s) or malformed)");const w=x(v,this.config),B=w?m:P(m),T=await(async()=>{try{return await fetch(v.toString(),{headers:B,signal:t,...S(this.config,w),redirect:"error"})}catch(b){throw t.aborted||await this.emitTelemetry("pie-tool-backend-call-error",p(this.config,"fetch-synthesized-audio-asset",{duration:Date.now()-u,errorType:"TTSAssetNetworkError",message:b instanceof Error?b.message:String(b)})),b}})();if(!T.ok)throw await this.emitTelemetry("pie-tool-backend-call-error",p(this.config,"fetch-synthesized-audio-asset",{duration:Date.now()-u,statusCode:T.status,errorType:"TTSAssetFetchError",message:`Failed to download synthesized audio (${T.status})`})),new Error(`Failed to download synthesized audio (${T.status})`);d=await T.blob(),await this.emitTelemetry("pie-tool-backend-call-success",p(this.config,"fetch-synthesized-audio-asset",{duration:Date.now()-u}))}const g=URL.createObjectURL(d),y=this.parseSpeechMarks(a.speechMarks);return await this.emitTelemetry("pie-tool-backend-call-success",p(this.config,"synthesize-speech",{duration:Date.now()-i})),{audioUrl:g,wordTimings:y}}base64ToBlob(e,t){const r=atob(e),i=new Array(r.length);for(let s=0;s<r.length;s++)i[s]=r.charCodeAt(s);const n=new Uint8Array(i);return new Blob([n],{type:t})}parseSpeechMarks(e){return e.filter(t=>t.type==="word").map((t,r)=>({time:t.time,wordIndex:r,charIndex:t.start,length:t.end-t.start,word:t.value}))}startWordHighlighting(){if(this.stopWordHighlighting(),!this.currentAudio||!this.onWordBoundary||this.wordTimings.length===0){f.debug("cannot start word highlighting",{hasAudio:!!this.currentAudio,hasCallback:!!this.onWordBoundary,wordTimingsCount:this.wordTimings.length});return}f.debug("starting word highlighting",{wordTimingsCount:this.wordTimings.length,playbackRate:this.currentAudio.playbackRate}),this.highlightInterval=window.setInterval(()=>{if(!this.currentAudio){this.stopWordHighlighting();return}const e=this.currentAudio.currentTime*1e3,t=this.resolveCurrentWordIndex(e,this.highlightCursor);if(t<0||t===this.highlightCursor)return;this.highlightCursor=t;const r=this.wordTimings[t];f.debug("word boundary",{wordIndex:r.wordIndex,charIndex:r.charIndex,length:r.length,timingMs:r.time,currentTimeMs:e}),this.onWordBoundary?.(r.word,r.charIndex,r.length)},q)}resolveCurrentWordIndex(e,t){const r=this.wordTimings;let i=t<r.length?t:-1;for(i>=0&&e<r[i].time&&(i=-1);i+1<r.length&&r[i+1].time<=e;)i++;return i}stopWordHighlighting(){this.highlightInterval!==null&&(clearInterval(this.highlightInterval),this.highlightInterval=null)}pause(){if(!this.pausedState){if(this.currentAudio)this.currentAudio.pause(),this.stopWordHighlighting();else if(!this.activeSynthesisController)return;this.pausedState=!0}}resume(){this.pausedState&&(this.pausedState=!1,this.currentAudio&&(this.startCurrentAudio?.(),this.onWordBoundary&&this.wordTimings.length>0&&this.startWordHighlighting()))}clearCurrentAudio(){this.stopWordHighlighting(),this.currentAudio=null,this.wordTimings=[],this.highlightCursor=-1}stop(){this.synthesisRunId+=1,this.startCurrentAudio=null,this.activeSynthesisController&&(this.activeSynthesisController.abort(),this.activeSynthesisController=null),this.stopWordHighlighting(),this.currentAudio&&(this.intentionallyStopped=!0,this.currentAudio.pause(),this.currentAudio.src&&URL.revokeObjectURL(this.currentAudio.src),this.currentAudio.src="",this.currentAudio=null),this.pausedState=!1,this.wordTimings=[],this.highlightCursor=-1}updateSettings(e){e.rate!==void 0&&(this.config.rate=e.rate,this.config.providerOptions={...this.config.providerOptions||{},speedRate:U(e.rate)}),e.pitch!==void 0&&(this.config.pitch=e.pitch),e.volume!==void 0&&(this.config.volume=e.volume),e.voice!==void 0&&(this.config.voice=e.voice),e.providerOptions&&"contentLanguage"in e.providerOptions&&(this.config.providerOptions={...this.config.providerOptions,contentLanguage:e.providerOptions.contentLanguage})}},ht=class{constructor(){l(this,"providerId","server-tts"),l(this,"config",null),l(this,"adapter",null),l(this,"telemetryReporter",void 0)}async emitTelemetry(e,t){try{await this.telemetryReporter?.(e,t)}catch(r){f.warn("telemetry callback failed:",r)}}async initialize(e){const t=e;if(!t.apiEndpoint)throw new Error("apiEndpoint is required for ServerTTSProvider");this.config=t,this.telemetryReporter=z(t);const r=k(t);this.adapter=st[r];const i=tt(t);if(i!=="none"){const n=Date.now();if(await this.emitTelemetry("pie-tool-backend-call-start",p(t,"validate-endpoint")),!await this.testAPIAvailability(i))throw await this.emitTelemetry("pie-tool-backend-call-error",p(t,"validate-endpoint",{duration:Date.now()-n,errorType:"TTSEndpointValidationError",message:`Server TTS API not available at ${t.apiEndpoint}`})),new Error(`Server TTS API not available at ${t.apiEndpoint}`);await this.emitTelemetry("pie-tool-backend-call-success",p(t,"validate-endpoint",{duration:Date.now()-n}))}return new nt(t,this.adapter)}async testAPIAvailability(e){if(!this.config||!this.adapter)return!1;try{const t={...this.config.headers};this.config.authToken&&(t.Authorization=`Bearer ${this.config.authToken}`);const r=new AbortController,i=setTimeout(()=>r.abort(),G),n=e==="voices"?Z(this.config):[this.adapter.resolveSynthesisUrl(this.config)],s=e==="voices"?"GET":"OPTIONS";try{let o=!1;for(const h of n){const a=await fetch(h,{method:s,headers:t,signal:r.signal,...S(this.config)});if(o=a.ok||a.status===405,o||a.status!==404)break}return clearTimeout(i),o}catch{return clearTimeout(i),!1}}catch{return!1}}getCapabilities(){const e=this.config?k(this.config):"pie";return{supportsWordBoundary:!0,supportsSSML:Q(this.config),maxTextLength:X[e]}}destroy(){this.config=null,this.adapter=null,this.telemetryReporter=void 0}};export{ht as ServerTTSProvider};
@@ -1,13 +1,13 @@
1
- import{t as kn}from"./attribute-coercion-b93b482c.js";import{t as In}from"./versioned-tag-54a76be9.js";import{i as Ln,r as Rn}from"./tool-host-contract-fae1c415.js";if(typeof window<"u"){var ur,hr;((ur=(hr=window).__svelte??(hr.__svelte={})).v??(ur.v=new Set)).add("5")}var pe={},R=Symbol("uninitialized"),Mn=Array.isArray,On=Array.prototype.indexOf,Ge=Array.prototype.includes,Hn=Array.from,me=Object.keys,Vt=Object.defineProperty,wt=Object.getOwnPropertyDescriptor,xn=Object.prototype,Nn=Array.prototype,Kn=Object.getPrototypeOf,cr=Object.isExtensible,Wn=()=>{};function Gn(e){for(var t=0;t<e.length;t++)e[t]()}function Bn(){var e,t;return{promise:new Promise((r,n)=>{e=r,t=n}),resolve:e,reject:t}}function Yt(e){"@babel/helpers - typeof";return Yt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Yt(e)}function Pn(e,t){if(Yt(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t||"default");if(Yt(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Fn(e){var t=Pn(e,"string");return Yt(t)=="symbol"?t:t+""}function l(e,t,r){return(t=Fn(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var et=1024,ot=2048,kt=4096,Ir=8192,Dn=16384,Lr=32768,fr=1<<25,Rr=65536,te=1<<19,qn=1<<20,dr=1<<21,Mr=1<<23,jt=Symbol("$state"),Or=Symbol("component"),Hr=Symbol("legacy props"),jn=Symbol("attributes"),Xn=Symbol("class"),zn=Symbol("style"),Vn=Symbol("text"),Te=new class extends Error{constructor(...e){super(...e),l(this,"name","StaleReactionError"),l(this,"message","The reaction that called `getAbortSignal()` was re-run or destroyed")}};globalThis.document?.contentType;function Yn(){console.warn("https://svelte.dev/e/derived_inert")}function xr(e){console.warn("https://svelte.dev/e/hydration_mismatch")}function Un(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}var U=!1;function ne(e){U=e}var W;function Ut(e){if(e===null)throw xr(),pe;return W=e}function Nr(){return Ut(Ft(W))}function Jn(e=1){if(U){for(var t=e,r=W;t--;)r=Ft(r);W=r}}function Qn(e=!0){for(var t=0,r=W;;){if(r.nodeType===8){var n=r.data;if(n==="]"){if(t===0)return r;t-=1}else(n==="["||n==="[!"||n[0]==="["&&!isNaN(Number(n.slice(1))))&&(t+=1)}var i=Ft(r);e&&r.remove(),r=i}}function Kr(e){return e===this.v}function Zn(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function Wr(e){return!Zn(e,this.v)}function ti(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function ei(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function ri(e){throw new Error("https://svelte.dev/e/effect_orphan")}function ni(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function ii(){throw new Error("https://svelte.dev/e/hydration_failed")}function si(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function ai(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function oi(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function li(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function ui(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}var Je=!1,Ce=!1,L=null;function ge(e){L=e}function Gr(e,t=!1,r){L={p:L,i:!1,c:null,e:null,s:e,x:null,r:T,l:Ce&&!t?{s:null,u:null,$:[]}:null}}function Br(e){var t=L,r=t.e;if(r!==null){t.e=null;for(var n of r)on(n)}return e!==void 0&&(t.x=e),t.i=!0,L=t.p,Qe(e)}function Qe(e={}){return Vt(e,Or,{value:!0}),e}function ke(){return!Ce||L!==null&&L.l===null}var At=[];function Pr(){var e=At;At=[],Gn(e)}function Tt(e){if(At.length===0&&!Xt){var t=At;queueMicrotask(()=>{t===At&&Pr()})}At.push(e)}function hi(){for(;At.length>0;)Pr()}var ci=~(ot|kt|et);function M(e,t){e.f=e.f&ci|t}function Ze(e){(e.f&512)!==0||e.deps===null?M(e,et):M(e,kt)}function Fr(e,t,r){(e.f&2048)!==0?t.add(e):e.f&4096&&r.add(e),M(e,et)}function Ie(e){var t=w,r=T;at(null),pt(null);try{return e()}finally{at(t),pt(r)}}function ye(e){var t=2|ot;return T!==null&&(T.f|=te),{ctx:L,deps:null,effects:null,equals:Kr,f:t,fn:e,reactions:null,rv:0,v:R,wv:0,parent:T,ac:null}}var fi=Symbol("obsolete");function vr(e){const t=ye(e);return cn(t),t}function di(e){const t=ye(e);return t.equals=Wr,t}function vi(e){var t=e.effects;if(t!==null){e.effects=null;for(var r=0;r<t.length;r+=1)J(t[r])}}function tr(e){var t,r=T,n=e.parent;if(!ct&&n!==null&&e.v!==R&&(n.f&24576)!==0)return Yn(),e.v;pt(n);try{vi(e),t=pn(e)}finally{pt(r)}return t}function Dr(e){var t=tr(e);if(!e.equals(t)&&(e.wv=dn(),(!_?.is_fork||e.deps===null)&&(_!==null?(_.capture(e,t,!0),Pe?.capture(e,t,!0)):e.v=t,e.deps===null))){M(e,et);return}ct||(K!==null?(rr()||_?.is_fork)&&K.set(e,t):Ze(e))}function pi(e){if(e.effects!==null)for(const t of e.effects)(t.teardown||t.ac)&&(t.teardown?.(),t.ac!==null&&Ie(()=>{t.ac.abort(Te),t.ac=null}),t.fn!==null&&(t.teardown=Wn),Qt(t,0),ir(t))}function qr(e){if(e.effects!==null)for(const t of e.effects)t.teardown&&t.fn!==null&&Bt(t)}function jr(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}function er(e,t){jr(e,t),t.add(e)}function A(e,t,r){jr(e,t),t.set(e,r)}function g(e,t,r){if(typeof e=="function"?e===t:e.has(t))return arguments.length<3?t:r;throw new TypeError("Private element is not present on this object")}function v(e,t,r){return e.set(g(e,t),r),r}function a(e,t){return e.get(g(e,t))}var Xr,Be=null,Mt=null,_=null,Pe=null,K=null,Fe=null,Xt=!1,Oe=!1,Jt=null,be=null,zr=0,mi=1,De=new WeakMap,Et=new WeakMap,Kt=new WeakMap,Ae=new WeakMap,ie=new WeakMap,Ot=new WeakMap,yt=new WeakMap,qt=new WeakMap,nt=new WeakMap,pr=new WeakMap,Gt=new WeakMap,ht=new WeakMap,ft=new WeakMap,He=new WeakMap,se=new WeakMap,k=new WeakSet,Pt=class Vr{constructor(){er(this,k),l(this,"id",mi++),A(this,De,!1),l(this,"linked",!0),A(this,Et,null),A(this,Kt,null),l(this,"async_deriveds",new Map),l(this,"current",new Map),l(this,"previous",new Map),A(this,Ae,new Set),A(this,ie,new Set),A(this,Ot,0),A(this,yt,new Map),A(this,qt,null),A(this,nt,[]),A(this,pr,[]),A(this,Gt,new Set),A(this,ht,new Set),A(this,ft,new Map),A(this,He,new Set),l(this,"is_fork",!1),A(this,se,!1),Mt===null?Be=Mt=this:(v(Kt,Mt,this),v(Et,this,Mt)),Mt=this}skip_effect(t){a(ft,this).has(t)||a(ft,this).set(t,{d:[],m:[]}),a(He,this).delete(t)}unskip_effect(t,r=n=>this.schedule(n)){var n=a(ft,this).get(t);if(n){a(ft,this).delete(t);for(var i of n.d)M(i,ot),r(i);for(i of n.m)M(i,kt),r(i)}a(He,this).add(t)}capture(t,r,n=!1){t.v!==R&&!this.previous.has(t)&&this.previous.set(t,t.v),!(t.f&8388608)&&(this.current.set(t,[r,n]),K?.set(t,r)),this.is_fork||(t.v=r)}activate(){_=this}deactivate(){_=null,K=null}flush(){try{Oe=!0,_=this,g(k,this,Se).call(this)}finally{zr=0,Fe=null,Jt=null,be=null,Oe=!1,_=null,K=null,st.clear()}}discard(){for(const t of a(ie,this))t(this);a(ie,this).clear();for(const t of this.async_deriveds.values())t.reject(fi);g(k,this,we).call(this),a(qt,this)?.resolve()}register_created_effect(t){a(pr,this).push(t)}increment(t,r){if(v(Ot,this,a(Ot,this)+1),t){let n=a(yt,this).get(r)??0;a(yt,this).set(r,n+1)}}decrement(t,r){if(v(Ot,this,a(Ot,this)-1),t){let n=a(yt,this).get(r)??0;n===1?a(yt,this).delete(r):a(yt,this).set(r,n-1)}a(se,this)||(v(se,this,!0),Tt(()=>{v(se,this,!1),this.linked&&this.flush()}))}transfer_effects(t,r){for(const n of t)a(Gt,this).add(n);for(const n of r)a(ht,this).add(n);t.clear(),r.clear()}oncommit(t){a(Ae,this).add(t)}ondiscard(t){a(ie,this).add(t)}settled(){return(a(qt,this)??v(qt,this,Bn())).promise}static ensure(){if(_===null){const t=_=new Vr;!Oe&&!Xt&&Tt(()=>{a(De,t)||t.flush()})}return _}apply(){if(!Je||!this.is_fork&&a(Et,this)===null&&a(Kt,this)===null){K=null;return}K=new Map;for(const[r,[n]]of this.current)K.set(r,n);for(let r=Be;r!==null;r=a(Kt,r))if(!(r===this||r.is_fork)){var t=!1;if(r.id<this.id){for(const[n,[,i]]of r.current)if(!i&&this.current.has(n)){t=!0;break}}if(!t)for(const[n,i]of r.previous)K.has(n)||K.set(n,i)}}schedule(t){if(Fe=t,t.b?.is_pending&&(t.f&16777228)!==0&&(t.f&32768)===0){t.b.defer_effect(t);return}a(nt,this).push(t)}};Xr=Pt;function mr(){if(this.is_fork)return!0;for(const r of a(yt,this).keys()){for(var e=r,t=!1;e.parent!==null;){if(a(ft,this).has(e)){t=!0;break}e=e.parent}if(!t)return!0}return!1}function gi(){var e=[];for(const i of a(nt,this))if(!((i.f&16384)!==0||(i.f&6144)===0)){for(var t=i,r=!1;t.parent!==null;){t=t.parent;var n=t.f;if((n&96)!==0){if((n&1024)===0){r=!0;break}t.f^=et}}r||e.push(t)}return v(nt,this,[]),e}function Se(){v(De,this,!0);for(const o of a(Gt,this))a(ht,this).delete(o),M(o,ot),this.schedule(o);for(const o of a(ht,this))M(o,kt),this.schedule(o);this.apply();for(var e=Jt=[],t=[],r=be=[];a(nt,this).length>0;){zr++>1e3&&(g(k,this,we).call(this),Si());for(const o of g(k,this,gi).call(this))try{g(k,this,yi).call(this,o,e,t)}catch(u){throw Jr(o),g(k,this,mr).call(this)||this.discard(),u}}if(_=null,r.length>0){var n=Xr.ensure();for(const o of r)n.schedule(o)}if(Jt=null,be=null,g(k,this,mr).call(this)){g(k,this,ae).call(this,t),g(k,this,ae).call(this,e);for(const[o,u]of a(ft,this))Ur(o,u);r.length>0&&g(k,_,Se).call(_);return}const i=g(k,this,bi).call(this);if(i){g(k,this,ae).call(this,t),g(k,this,ae).call(this,e),g(k,i,Ai).call(i,this);return}a(Gt,this).clear(),a(ht,this).clear();for(const o of a(Ae,this))o(this);a(Ae,this).clear(),Pe=this,gr(t),gr(e),Pe=null,a(qt,this)?.resolve();var s=_;if(a(Ot,this)===0&&(a(nt,this).length===0||s!==null)&&g(k,this,we).call(this),a(nt,this).length>0)if(s!==null){for(const o of a(nt,this))a(nt,s).push(o);v(nt,this,[])}else s=this;s!==null&&(st.clear(),g(k,s,Se).call(s))}function yi(e,t,r){e.f^=et;for(var n=e.first;n!==null;){var i=n.f,s=(i&96)!==0;if(!(s&&(i&1024)!==0||(i&8192)!==0||a(ft,this).has(n))&&n.fn!==null){s?n.f^=et:(i&4)!==0?t.push(n):Je&&(i&16777224)!==0?r.push(n):ee(n)&&(i&16&&a(ht,this).add(n),Bt(n));var o=n.first;if(o!==null){n=o;continue}}for(;n!==null;){var u=n.next;if(u!==null){n=u;break}n=n.parent}}}function bi(){for(var e=a(Et,this);e!==null;){if(!e.is_fork){for(const[t,[,r]]of this.current)if(e.current.has(t)&&!r)return e}e=a(Et,e)}return null}function Ai(e){for(const[r,n]of e.current)!this.previous.has(r)&&e.previous.has(r)&&this.previous.set(r,e.previous.get(r)),this.current.set(r,n);for(const[r,n]of e.async_deriveds){const i=this.async_deriveds.get(r);i&&n.promise.then(i.resolve).catch(i.reject)}e.async_deriveds.clear(),this.transfer_effects(a(Gt,e),a(ht,e));const t=r=>{var n=r.reactions;if(n!==null&&!((r.f&2)!==0&&(r.f&6144)===0))for(const o of n){var i=o.f;if((i&2)!==0)t(o);else{var s=o;i&4194320&&!this.async_deriveds.has(s)&&(a(ht,this).delete(s),M(s,ot),this.schedule(s))}}};for(const r of this.current.keys())t(r);this.oncommit(()=>e.discard()),g(k,e,we).call(e),_=this,g(k,this,Se).call(this)}function ae(e){for(var t=0;t<e.length;t+=1)Fr(e[t],a(Gt,this),a(ht,this))}function we(){if(this.linked){var e=a(Et,this),t=a(Kt,this);e===null?Be=t:v(Kt,e,t),t===null?Mt=e:v(Et,t,e),this.linked=!1}}function Ht(e){var t=Xt;Xt=!0;try{var r;for(e&&(_!==null&&!_.is_fork&&_.flush(),r=e());;){if(hi(),_===null)return r;_.flush()}}finally{Xt=t}}function Si(){try{ni()}catch(e){dt(e,Fe)}}var ut=null;function gr(e){var t=e.length;if(t!==0){for(var r=0;r<t;){var n=e[r++];if((n.f&24576)===0&&ee(n)&&(ut=new Set,Bt(n),n.deps===null&&n.first===null&&n.nodes===null&&n.teardown===null&&n.ac===null&&un(n),ut?.size>0)){st.clear();for(const i of ut){if((i.f&24576)!==0)continue;const s=[i];let o=i.parent;for(;o!==null;)ut.has(o)&&(ut.delete(o),s.push(o)),o=o.parent;for(let u=s.length-1;u>=0;u--){const h=s[u];!(h.f&24576)&&Bt(h)}}ut.clear()}}ut=null}}function Yr(e){_.schedule(e)}function Ur(e,t){if(!((e.f&32)!==0&&(e.f&1024)!==0)){(e.f&2048)!==0?t.d.push(e):e.f&4096&&t.m.push(e),M(e,et);for(var r=e.first;r!==null;)Ur(r,t),r=r.next}}function Jr(e){M(e,et);for(var t=e.first;t!==null;)Jr(t),t=t.next}var Ee=new Set,st=new Map,Qr=!1;function Le(e,t){return{f:0,v:e,reactions:null,equals:Kr,rv:0,wv:0}}function F(e,t){const r=Le(e,t);return cn(r),r}function wi(e,t=!1,r=!0){const n=Le(e);if(t||(n.equals=Wr),Ce&&r&&L!==null&&L.l!==null){var i;((i=L.l).s??(i.s=[])).push(n)}return n}function O(e,t,r=!1){return w!==null&&(!V||w.f&131072)&&ke()&&w.f&4325394&&(Q===null||!Q.has(e))&&li(),Zr(e,r?Wt(t):t,be)}var bt=null,qe=0;function Zr(e,t,r=null){if(!e.equals(t)){ct?st.set(e,t):st.has(e)||st.set(e,e.v);var n=Pt.ensure();if(n.capture(e,t),(e.f&2)!==0){const i=e;e.f&2048&&tr(i),K===null&&Ze(i)}e.wv=dn(),bt=null,qe=0,tn(e,ot,r),bt=null,ke()&&T!==null&&T.f&1024&&!(T.f&96)&&(X===null?Ni([e]):X.push(e)),!n.is_fork&&Ee.size>0&&!Qr&&Ei()}return t}function Ei(){Qr=!1;for(const e of Ee){e.f&1024&&M(e,kt);let t;try{t=ee(e)}catch{t=!0}t&&Bt(e)}Ee.clear()}function zt(e){O(e,e.v+1)}function tn(e,t,r){var n=e.reactions;if(n!==null){var i=ke(),s=n.length;if(qe+=s,qe>1e5&&bt===null&&(bt=new Set),bt!==null){if(bt.has(e))return;bt.add(e)}for(var o=0;o<s;o++){var u=n[o],h=u.f;if(!(!i&&u===T)){var c=(h&ot)===0;if(c&&M(u,t),(h&131072)!==0)Ee.add(u);else if((h&2)!==0){var f=u;K?.delete(f),tn(f,kt,r)}else if(c){var d=u;h&16&&ut!==null&&ut.add(d),r!==null?r.push(d):Yr(d)}}}}}function Wt(e){if(typeof e!="object"||e===null||jt in e||Or in e)return e;const t=Kn(e);if(t!==xn&&t!==Nn)return e;var r=new Map,n=Mn(e),i=F(0),s=null,o=_t,u=h=>{if(_t===o)return h();var c=w,f=_t;at(null),Ar(o);var d=h();return at(c),Ar(f),d};return n&&r.set("length",F(e.length,s)),new Proxy(e,{defineProperty(h,c,f){(!("value"in f)||f.configurable===!1||f.enumerable===!1||f.writable===!1)&&ai();var d=r.get(c);return d===void 0?u(()=>{var y=F(f.value,s);return r.set(c,y),y}):O(d,f.value,!0),!0},deleteProperty(h,c){var f=r.get(c);if(f===void 0){if(c in h){const d=u(()=>F(R,s));r.set(c,d),zt(i)}}else O(f,R),zt(i);return!0},get(h,c,f){if(c===jt)return e;var d=r.get(c),y=c in h;if(d===void 0&&(!y||wt(h,c)?.writable)&&(d=u(()=>F(Wt(y?h[c]:R),s)),r.set(c,d)),d!==void 0){var b=S(d);return b===R?void 0:b}return Reflect.get(h,c,f)},getOwnPropertyDescriptor(h,c){this.has?.(h,c);var f=Reflect.getOwnPropertyDescriptor(h,c),d=r.get(c);if(d!==void 0){var y=S(d);if(y===R)return;if(f&&"value"in f)f.value=y;else return{enumerable:!0,configurable:!0,value:y,writable:!0}}return f},has(h,c){if(c===jt)return!0;var f=r.get(c),d=f!==void 0&&f.v!==R||Reflect.has(h,c);return(f!==void 0||T!==null&&(!d||wt(h,c)?.writable))&&(f===void 0&&(f=u(()=>F(d?Wt(h[c]):R,s)),r.set(c,f)),S(f)===R)?!1:d},set(h,c,f,d){var y=r.get(c),b=c in h;if(n&&c==="length")for(var E=f;E<y.v;E+=1){var $=r.get(E+"");$!==void 0?O($,R):E in h&&($=u(()=>F(R,s)),r.set(E+"",$))}if(y===void 0)(!b||wt(h,c)?.writable)&&(y=u(()=>F(void 0,s)),O(y,Wt(f)),r.set(c,y));else{b=y.v!==R;var z=u(()=>Wt(f));O(y,z)}var H=Reflect.getOwnPropertyDescriptor(h,c);if(H?.set&&H.set.call(d,f),!b){if(n&&typeof c=="string"){var G=r.get("length"),m=Number(c);Number.isInteger(m)&&m>=G.v&&O(G,m+1)}zt(i)}return!0},ownKeys(h){S(i);var c=Reflect.ownKeys(h).filter(y=>{var b=r.get(y);return b===void 0||b.v!==R});for(var[f,d]of r)d.v!==R&&!(f in h)&&c.push(f);return c},setPrototypeOf(){oi()}})}var yr,en,rn,nn;function je(){if(yr===void 0){yr=window,en=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,r=Text.prototype;rn=wt(t,"firstChild").get,nn=wt(t,"nextSibling").get,cr(e)&&(e[Xn]=void 0,e[jn]=null,e[zn]=void 0,e.__e=void 0),cr(r)&&(r[Vn]=void 0)}}function sn(e=""){return document.createTextNode(e)}function Xe(e){return rn.call(e)}function Ft(e){return nn.call(e)}function _i(e){e.textContent=""}function an(e,t,r){return t==null||t==="http://www.w3.org/1999/xhtml"?r?document.createElement(e,{is:r}):document.createElement(e):r?document.createElementNS(t,e,{is:r}):document.createElementNS(t,e)}function $i(e){var t=T;if(t===null)return w.f|=Mr,e;if((t.f&32768)===0&&(t.f&4)===0)throw e;dt(e,t)}function dt(e,t){if(!(t!==null&&(t.f&16384)!==0)){for(;t!==null;){if((t.f&128)!==0&&(t.f&33570816)===0){if((t.f&32768)===0)throw e;try{t.b.error(e);return}catch(r){e=r}}t=t.parent}throw e}}function Ti(e){T===null&&(w===null&&ri(e),ei()),ct&&ti(e)}function Ci(e,t){var r=t.last;r===null?t.last=t.first=e:(r.next=e,e.prev=r,t.last=e)}function It(e,t){var r=T;r!==null&&r.f&8192&&(e|=Ir);var n={ctx:L,deps:null,nodes:null,f:e|ot|512,first:null,fn:t,last:null,next:null,parent:r,b:r&&r.b,prev:null,teardown:null,wv:0,ac:null};_?.register_created_effect(n);var i=n;if((e&4)!==0)Jt!==null?Jt.push(n):Pt.ensure().schedule(n);else if(t!==null){try{Bt(n)}catch(o){throw J(n),o}i.deps===null&&i.teardown===null&&i.nodes===null&&i.first===i.last&&!(i.f&524288)&&(i=i.first,e&16&&e&65536&&i!==null&&(i.f|=Rr))}if(i!==null&&(i.parent=r,r!==null&&Ci(i,r),w!==null&&(w.f&2)!==0&&(e&64)===0)){var s=w;(s.effects??(s.effects=[])).push(i)}return n}function rr(){return w!==null&&!V}function Rt(e){Ti("$effect");var t=T.f;if(!w&&(t&32)!==0&&L!==null&&!L.i){var r=L;(r.e??(r.e=[])).push(e)}else return on(e)}function on(e){return It(4|qn,e)}function ki(e){Pt.ensure();const t=It(64|te,e);return()=>{J(t)}}function Ii(e){Pt.ensure();const t=It(64|te,e);return(r={})=>new Promise(n=>{r.outro?Re(t,()=>{J(t),n(void 0)}):(J(t),n(void 0))})}function Li(e){return It(4,e)}function nr(e,t=0){return It(8|t,e)}function Ri(e,t=0){return It(16|t,e)}function Ct(e){return It(32|te,e)}function ln(e){var t=e.teardown;if(t!==null){const r=ct,n=w;br(!0),at(null);try{t.call(null)}catch(i){dt(i,e.parent)}finally{br(r),at(n)}}}function ir(e,t=!1){var r=e.first;for(e.first=e.last=null;r!==null;){const i=r.ac;i!==null&&Ie(()=>{i.abort(Te)});var n=r.next;(r.f&64)!==0?r.parent=null:J(r,t),r=n}}function Mi(e){for(var t=e.first;t!==null;){var r=t.next;!(t.f&32)&&J(t),t=r}}function J(e,t=!0){var r=!1;(t||e.f&262144)&&e.nodes!==null&&e.nodes.end!==null&&(Oi(e.nodes.start,e.nodes.end),r=!0),e.f|=fr,ir(e,t&&!r),Qt(e,0);var n=e.nodes&&e.nodes.t;if(n!==null)for(const s of n)s.stop();ln(e),e.f^=fr,e.f|=Dn;var i=e.parent;i!==null&&i.first!==null&&un(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function Oi(e,t){for(;e!==null;){var r=e===t?null:Ft(e);e.remove(),e=r}}function un(e){var t=e.parent,r=e.prev,n=e.next;r!==null&&(r.next=n),n!==null&&(n.prev=r),t!==null&&(t.first===e&&(t.first=n),t.last===e&&(t.last=r))}function Re(e,t,r=!0){var n=[];e.f|=256,hn(e,n,!0);var i=()=>{r&&J(e),t&&t()},s=n.length;if(s>0){var o=()=>--s||i();for(var u of n)u.out(o)}else i()}function hn(e,t,r){if((e.f&8192)===0){e.f^=Ir;var n=e.nodes&&e.nodes.t;if(n!==null)for(const u of n)(u.is_global||r)&&t.push(u);for(var i=e.first;i!==null;){var s=i.next;if((i.f&64)===0){var o=(i.f&65536)!==0||(i.f&32)!==0&&(e.f&16)!==0;hn(i,t,o?r:!1)}i=s}}}function Hi(e,t){if(e.nodes)for(var r=e.nodes.start,n=e.nodes.end;r!==null;){var i=r===n?null:Ft(r);t.append(r),r=i}}var xi=null,ce=!1,ct=!1;function br(e){ct=e}var w=null,V=!1;function at(e){w=e}var T=null;function pt(e){T=e}var Q=null;function cn(e){w!==null&&(w.f&2097152||w.f&2)&&(Q??(Q=new Set)).add(e)}var B=null,D=0,X=null;function Ni(e){X=e}var fn=1,St=0,_t=St;function Ar(e){_t=e}function dn(){return++fn}function ee(e){var t=e.f;if((t&2048)!==0)return!0;if((t&4096)!==0){for(var r=e.deps,n=r.length,i=0;i<n;i++){var s=r[i];if(ee(s)&&Dr(s),s.wv>e.wv)return!0}t&512&&K===null&&M(e,et)}return!1}function vn(e,t,r=!0){var n=e.reactions;if(n!==null&&!(!Je&&Q!==null&&Q.has(e)))for(var i=0;i<n.length;i++){var s=n[i];(s.f&2)!==0?vn(s,t,!1):t===s&&(r?M(s,ot):s.f&1024&&M(s,kt),Yr(s))}}function pn(e){var t=B,r=D,n=X,i=w,s=Q,o=L,u=V,h=_t,c=e.f;B=null,D=0,X=null,w=(c&96)===0?e:null,Q=null,ge(e.ctx),V=!1,_t=++St,e.ac!==null&&(Ie(()=>{e.ac.abort(Te)}),e.ac=null);try{e.f|=dr;var f=e.fn,d=f();e.f|=Lr;var y=Sr(e);if(ke()&&X!==null&&!V&&y!==null&&(e.f&6146)===0)for(var b=0;b<X.length;b++)vn(X[b],e);if(i!==null&&i!==e){if(St++,i.deps!==null)for(let E=0;E<r;E+=1)i.deps[E].rv=St;if(t!==null)for(const E of t)E.rv=St;X!==null&&(n===null?n=X:n.push(...X))}return e.f&8388608&&(e.f^=Mr),d}catch(E){return Sr(e),$i(E)}finally{e.f^=dr,B=t,D=r,X=n,w=i,Q=s,ge(o),V=u,_t=h}}function Sr(e){var t=e.deps,r=_?.is_fork;if(B!==null){var n;if(r||Qt(e,D),t!==null&&D>0)for(t.length=D+B.length,n=0;n<B.length;n++)t[D+n]=B[n];else e.deps=t=B;if(rr()&&(e.f&512)!==0)for(n=D;n<t.length;n++){var i;((i=t[n]).reactions??(i.reactions=[])).push(e)}}else!r&&t!==null&&D<t.length&&(Qt(e,D),t.length=D);return t}function Ki(e,t){let r=t.reactions;if(r!==null){var n=On.call(r,e);if(n!==-1){var i=r.length-1;i===0?r=t.reactions=null:(r[n]=r[i],r.pop())}}if(r===null&&(t.f&2)!==0&&(B===null||!Ge.call(B,t))){var s=t;s.f&512&&(s.f^=512),s.v!==R&&Ze(s),s.ac!==null&&Ie(()=>{s.ac.abort(Te),s.ac=null,M(s,ot)}),pi(s),Qt(s,0)}}function Qt(e,t){var r=e.deps;if(r!==null)for(var n=t;n<r.length;n++)Ki(e,r[n])}function Bt(e){var t=e.f;if((t&16384)===0){M(e,et);var r=T,n=ce;T=e,ce=(t&96)===0;try{(t&16777232)!==0?Mi(e):ir(e),ln(e);var i=pn(e);e.teardown=typeof i=="function"?i:null,e.wv=fn}finally{ce=n,T=r}}}function S(e){var t=(e.f&2)!==0;if(xi?.add(e),w!==null&&!V&&!(T!==null&&(T.f&16384)!==0)&&(Q===null||!Q.has(e))){var r=w.deps;if((w.f&2097152)!==0)e.rv<St&&(e.rv=St,B===null&&r!==null&&r[D]===e?D++:B===null?B=[e]:B.push(e));else{var n;(n=w).deps??(n.deps=[]),Ge.call(w.deps,e)||w.deps.push(e);var i=e.reactions;i===null?e.reactions=[w]:Ge.call(i,w)||i.push(w)}}if(ct&&st.has(e))return st.get(e);if(t){var s=e;if(ct){var o=s.v;return(!(s.f&1024)&&s.reactions!==null||gn(s))&&(o=tr(s)),st.set(s,o),o}var u=(s.f&512)===0&&!V&&w!==null&&(ce||(w.f&512)!==0),h=(s.f&Lr)===0;ee(s)&&(u&&(s.f|=512),Dr(s)),u&&!h&&(qr(s),mn(s))}if(K?.has(e))return K.get(e);if((e.f&8388608)!==0)throw e.v;return e.v}function mn(e){if(e.f|=512,e.deps!==null)for(const t of e.deps)(t.reactions??(t.reactions=[])).push(e),t.f&2&&!(t.f&512)&&(qr(t),mn(t))}function gn(e){if(e.v===R)return!0;if(e.deps===null)return!1;for(const t of e.deps)if(st.has(t)||(t.f&2)!==0&&gn(t))return!0;return!1}function Me(e){var t=V;try{return V=!0,e()}finally{V=t}}var oe=Symbol("events"),Wi=new Set,wr=new Set,xe=null,Ne=!1;function Er(e){var t=this,r=t.ownerDocument,n=e.type,i=e.composedPath?.()||[],s=i[0]||e.target;xe=e,Ne||(Ne=!0,setTimeout(()=>{Ne=!1,xe=null}));var o=0,u=xe===e&&e[oe];if(u){var h=i.indexOf(u);if(h!==-1&&(t===document||t===window)){e[oe]=t;return}var c=i.indexOf(t);if(c===-1)return;h<=c&&(o=h)}if(s=i[o]||e.target,s!==t){Vt(e,"currentTarget",{configurable:!0,get(){return s||r}});var f=w,d=T;at(null),pt(null);try{for(var y,b=[];s!==null&&s!==t;){try{var E=s[oe]?.[n];E!=null&&(!s.disabled||e.target===s)&&E.call(s,e)}catch($){y?b.push($):y=$}if(e.cancelBubble)break;o++,s=o<i.length?i[o]:null}if(y){for(let $ of b)queueMicrotask(()=>{throw $});throw y}}finally{e[oe]=t,delete e.currentTarget,at(f),pt(d)}}}var Gi=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function Bi(e){return Gi?.createHTML(e)??e}function Pi(e){var t=an("template");return t.innerHTML=Bi(e.replaceAll("<!>","<!---->")),t.content}function fe(e,t){var r=T;r.nodes===null&&(r.nodes={start:e,end:t,a:null,t:null})}function Fi(e,t){var r=(t&1)!==0,n=(t&2)!==0,i,s=!e.startsWith("<!>");return()=>{if(U)return fe(W,null),W;i===void 0&&(i=Pi(s?e:"<!>"+e),r||(i=Xe(i)));var o=n||en?document.importNode(i,!0):i.cloneNode(!0);if(r){var u=Xe(o),h=o.lastChild;fe(u,h)}else fe(o,o);return o}}function yn(e,t){if(U){var r=T;(!(r.f&32768)||r.nodes.end===null)&&(r.nodes.end=W),Nr();return}e!==null&&e.before(t)}var Di=["touchstart","touchmove"];function qi(e){return Di.includes(e)}function ji(e){let t=0,r=Le(0),n;return()=>{rr()&&(S(r),nr(()=>(t===0&&(n=Me(()=>e(()=>zt(r)))),t+=1,()=>{Tt(()=>{t-=1,t===0&&(n?.(),n=void 0,zt(r))})})))}}var Xi=Rr|te;function zi(e,t,r,n){new Vi(e,t,r,n)}var Z=new WeakMap,ze=new WeakMap,it=new WeakMap,Zt=new WeakMap,q=new WeakMap,tt=new WeakMap,j=new WeakMap,Y=new WeakMap,vt=new WeakMap,xt=new WeakMap,$t=new WeakMap,le=new WeakMap,Ve=new WeakMap,Ye=new WeakMap,mt=new WeakMap,_r=new WeakMap,I=new WeakSet,Vi=class{constructor(e,t,r,n){er(this,I),l(this,"parent",void 0),l(this,"is_pending",!1),l(this,"transform_error",void 0),A(this,Z,void 0),A(this,ze,U?W:null),A(this,it,void 0),A(this,Zt,void 0),A(this,q,void 0),A(this,tt,null),A(this,j,null),A(this,Y,null),A(this,vt,null),A(this,xt,0),A(this,$t,0),A(this,le,!1),A(this,Ve,new Set),A(this,Ye,new Set),A(this,mt,null),A(this,_r,ji(()=>(v(mt,this,Le(a(xt,this))),()=>{v(mt,this,null)}))),v(Z,this,e),v(it,this,t),v(Zt,this,i=>{var s=T;s.b=this,s.f|=128,r(i)}),this.parent=T.b,this.transform_error=n??this.parent?.transform_error??(i=>i),v(q,this,Ri(()=>{if(U){const i=a(ze,this);Nr();const s=i.data==="[!";if(i.data.startsWith("[?")){const o=JSON.parse(i.data.slice(2));g(I,this,Ui).call(this,o)}else s?g(I,this,Ji).call(this):g(I,this,Yi).call(this)}else g(I,this,An).call(this)},Xi)),U&&v(Z,this,W)}defer_effect(e){Fr(e,a(Ve,this),a(Ye,this))}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!a(it,this).pending}update_pending_count(e,t){g(I,this,Sn).call(this,e,t),v(xt,this,a(xt,this)+e),a(mt,this)&&!a(le,this)&&(v(le,this,!0),Tt(()=>{v(le,this,!1),a(mt,this)&&Zr(a(mt,this),a(xt,this))}))}get_effect_pending(){return a(_r,this).call(this),S(a(mt,this))}error(e){if(!a(it,this).onerror&&!a(it,this).failed)throw e;_?.is_fork?(a(tt,this)&&_.skip_effect(a(tt,this)),a(j,this)&&_.skip_effect(a(j,this)),a(Y,this)&&_.skip_effect(a(Y,this)),_.oncommit(()=>{g(I,this,$r).call(this,e)})):g(I,this,$r).call(this,e)}};function Yi(){try{v(tt,this,Ct(()=>a(Zt,this).call(this,a(Z,this))))}catch(e){this.error(e)}}function Ui(e){const t=a(it,this).failed,{reset:r,invoke_onerror:n}=g(I,this,bn).call(this,e);Tt(n),t&&v(Y,this,Ct(()=>{t(a(Z,this),()=>e,()=>r)}))}function bn(e){var t=!1,r=!1;const n=()=>{if(t){Un();return}t=!0,r&&ui(),a(Y,this)!==null&&Re(a(Y,this),()=>{v(Y,this,null)}),g(I,this,sr).call(this,()=>{g(I,this,An).call(this)})};return{reset:n,invoke_onerror:()=>{try{r=!0,a(it,this).onerror?.(e,n),r=!1}catch(i){dt(i,a(q,this)&&a(q,this).parent)}}}}function Ji(){const e=a(it,this).pending;e&&(this.is_pending=!0,v(j,this,Ct(()=>e(a(Z,this)))),Tt(()=>{var t=v(vt,this,document.createDocumentFragment()),r=sn(),n=!1;if(t.append(r),v(tt,this,g(I,this,sr).call(this,()=>{try{return Ct(()=>a(Zt,this).call(this,r))}catch(i){try{this.error(i),n=!0}catch(s){dt(s,a(q,this).parent)}return null}})),a(tt,this)===null){v(vt,this,null),n&&g(I,this,_e).call(this,_);return}a($t,this)===0&&(a(Z,this).before(t),v(vt,this,null),Re(a(j,this),()=>{v(j,this,null)}),g(I,this,_e).call(this,_))}))}function An(){try{if(this.is_pending=this.has_pending_snippet(),v($t,this,0),v(xt,this,0),v(tt,this,Ct(()=>{a(Zt,this).call(this,a(Z,this))})),a($t,this)>0){var e=v(vt,this,document.createDocumentFragment());Hi(a(tt,this),e);const t=a(it,this).pending;v(j,this,Ct(()=>t(a(Z,this))))}else g(I,this,_e).call(this,_)}catch(t){this.error(t)}}function _e(e){this.is_pending=!1,e.transfer_effects(a(Ve,this),a(Ye,this))}function sr(e){var t=T,r=w,n=L;pt(a(q,this)),at(a(q,this)),ge(a(q,this).ctx);try{return Pt.ensure(),e()}finally{pt(t),at(r),ge(n)}}function Sn(e,t){if(!this.has_pending_snippet()){if(this.parent){var r;g(I,r=this.parent,Sn).call(r,e,t)}return}v($t,this,a($t,this)+e),a($t,this)===0&&(g(I,this,_e).call(this,t),a(j,this)&&Re(a(j,this),()=>{v(j,this,null)}),a(vt,this)&&(a(Z,this).before(a(vt,this)),v(vt,this,null)))}function $r(e){a(tt,this)&&(J(a(tt,this)),v(tt,this,null)),a(j,this)&&(J(a(j,this)),v(j,this,null)),a(Y,this)&&(J(a(Y,this)),v(Y,this,null)),U&&(Ut(a(ze,this)),Jn(),Ut(Qn()));let t=a(it,this).failed;const r=n=>{const{reset:i,invoke_onerror:s}=g(I,this,bn).call(this,n);s(),t&&v(Y,this,g(I,this,sr).call(this,()=>{try{return Ct(()=>{var o=T;o.b=this,o.f|=128,t(a(Z,this),()=>n,()=>i)})}catch(o){return dt(o,a(q,this).parent),null}}))};Tt(()=>{var n;try{n=this.transform_error(e)}catch(i){dt(i,a(q,this)&&a(q,this).parent);return}n!==null&&typeof n=="object"&&typeof n.then=="function"?n.then(r,i=>dt(i,a(q,this)&&a(q,this).parent)):r(n)})}function wn(e,t){return En(e,t)}function Qi(e,t){je(),t.intro=t.intro??!1;const r=t.target,n=U,i=W;try{for(var s=Xe(r);s&&(s.nodeType!==8||s.data!=="[");)s=Ft(s);if(!s)throw pe;ne(!0),Ut(s);const o=En(e,{...t,anchor:s});return ne(!1),o}catch(o){if(o instanceof Error&&o.message.split(`
2
- `).some(u=>u.startsWith("https://svelte.dev/e/")))throw o;return o!==pe&&console.warn("Failed to hydrate: ",o),t.recover===!1&&ii(),je(),_i(r),ne(!1),wn(e,t)}finally{ne(n),Ut(i)}}var ue=new Map;function En(e,{target:t,anchor:r,props:n={},events:i,context:s,intro:o=!0,transformError:u}){je();var h=void 0,c=Ii(()=>{var f=r??t.appendChild(sn());zi(f,{pending:()=>{}},b=>{Gr({});var E=L;if(s&&(E.c=s),i&&(n.$$events=i),U&&fe(b,null),h=e(b,n)||Qe(),U&&(T.nodes.end=W,W===null||W.nodeType!==8||W.data!=="]"))throw xr(),pe;Br()},u);var d=new Set,y=b=>{for(var E=0;E<b.length;E++){var $=b[E];if(!d.has($)){d.add($);var z=qi($);for(const m of[t,document]){var H=ue.get(m);H===void 0&&(H=new Map,ue.set(m,H));var G=H.get($);G===void 0?(m.addEventListener($,Er,{passive:z}),H.set($,1)):H.set($,G+1)}}}};return y(Hn(Wi)),wr.add(y),()=>{for(var b of d)for(const z of[t,document]){var E=ue.get(z),$=E.get(b);--$==0?(z.removeEventListener(b,Er),E.delete(b),E.size===0&&ue.delete(z)):E.set(b,$)}wr.delete(y),f!==r&&f.parentNode?.removeChild(f)}});return Ue.set(h,c),h}var Ue=new WeakMap;function Zi(e,t){const r=Ue.get(e);return r?(Ue.delete(e),r(t)):Promise.resolve()}var _n,Nt=new WeakMap,$e=new WeakMap,Ke=new WeakMap,Tr=new WeakSet,$n=class{constructor(e){er(this,Tr),A(this,Nt,new WeakMap),A(this,$e,void 0),A(this,Ke,void 0),v(Ke,this,e)}observe(e,t){var r=a(Nt,this).get(e)||new Set;return r.add(t),a(Nt,this).set(e,r),g(Tr,this,ts).call(this).observe(e,a(Ke,this)),()=>{var n=a(Nt,this).get(e);n.delete(t),n.size===0&&(a(Nt,this).delete(e),a($e,this).unobserve(e))}}};_n=$n;function ts(){return a($e,this)??v($e,this,new ResizeObserver(e=>{for(var t of e){_n.entries.set(t.target,t);for(var r of a(Nt,this).get(t.target)||[])r(t)}}))}l($n,"entries",new WeakMap);function We(e,t){return e===t||e?.[jt]===t}function es(e=Qe(),t,r,n){var i=L.r,s=T;return Li(()=>{var o,u;return nr(()=>{o=u,u=n?.()||[],Me(()=>{We(r(...u),e)||(t(e,...u),o&&We(r(...o),e)&&t(null,...o))})}),()=>{let h=s;for(;h!==i&&h.parent!==null&&h.parent.f&33554432;)h=h.parent;const c=()=>{u&&We(r(...u),e)&&t(null,...u)},f=h.teardown;h.teardown=()=>{c(),f?.()}}}),e}var he=!1;function rs(e){var t=he;try{return he=!1,[e(),he]}finally{he=t}}function Dt(e,t,r,n){var i=!Ce||(r&2)!==0,s=(r&8)!==0,o=(r&16)!==0,u=n,h=!0,c=void 0,f=()=>o&&i?(c??(c=ye(n)),S(c)):(h&&(h=!1,u=o?Me(n):n),u);let d;if(s){var y=jt in e||Hr in e;d=wt(e,t)?.set??(y&&t in e?x=>e[t]=x:void 0)}var b,E=!1;s?[b,E]=rs(()=>e[t]):b=e[t],b===void 0&&n!==void 0&&(b=f(),d&&(i&&si(t),d(b)));var $;if(i?$=()=>{var x=e[t];return x===void 0?f():(h=!0,x)}:$=()=>{var x=e[t];return x!==void 0&&(u=void 0),x===void 0?u:x},i&&(r&4)===0)return $;if(d){var z=e.$$legacy;return(function(x,re){return arguments.length>0?((!i||!re||z||E)&&d(re?$():x),x):$()})}var H=!1,G=((r&1)!==0?ye:di)(()=>(H=!1,$()));s&&S(G);var m=T;return(function(x,re){if(arguments.length>0){const lr=re?S(G):i&&s?Wt(x):x;return O(G,lr),H=!0,u!==void 0&&(u=lr),x}return ct&&H||(m.f&16384)!==0?G.v:S(G)})}function ns(e){return new is(e)}var gt=new WeakMap,rt=new WeakMap,is=class{constructor(e){A(this,gt,void 0),A(this,rt,void 0);var t=new Map,r=(i,s)=>{var o=wi(s,!1,!1);return t.set(i,o),o};const n=new Proxy({...e.props||{},$$events:{}},{get(i,s){return S(t.get(s)??r(s,Reflect.get(i,s)))},has(i,s){return s===Hr?!0:(S(t.get(s)??r(s,Reflect.get(i,s))),Reflect.has(i,s))},set(i,s,o){return O(t.get(s)??r(s,o),o),Reflect.set(i,s,o)}});v(rt,this,(e.hydrate?Qi:wn)(e.component,{target:e.target,anchor:e.anchor,props:n,context:e.context,intro:e.intro??!1,recover:e.recover,transformError:e.transformError})),(!e?.props?.$$host||e.sync===!1)&&Ht(),v(gt,this,n.$$events);for(const i of Object.keys(a(rt,this)))i==="$set"||i==="$destroy"||i==="$on"||Vt(this,i,{get(){return a(rt,this)[i]},set(s){a(rt,this)[i]=s},enumerable:!0});a(rt,this).$set=i=>{Object.assign(n,i)},a(rt,this).$destroy=()=>{Zi(a(rt,this))}}$set(e){a(rt,this).$set(e)}$on(e,t){a(gt,this)[e]=a(gt,this)[e]||[];const r=(...n)=>t.call(this,...n);return a(gt,this)[e].push(r),()=>{a(gt,this)[e]=a(gt,this)[e].filter(n=>n!==r)}}$destroy(){a(rt,this).$destroy()}},Tn;typeof HTMLElement=="function"&&(Tn=class extends HTMLElement{constructor(e,t,r){super(),l(this,"$$ctor",void 0),l(this,"$$s",void 0),l(this,"$$c",void 0),l(this,"$$cn",!1),l(this,"$$d",{}),l(this,"$$r",!1),l(this,"$$p_d",{}),l(this,"$$l",{}),l(this,"$$l_u",new Map),l(this,"$$me",void 0),l(this,"$$shadowRoot",null),this.$$ctor=e,this.$$s=t,r&&(this.$$shadowRoot=this.attachShadow(r))}addEventListener(e,t,r){if(this.$$l[e]=this.$$l[e]||[],this.$$l[e].push(t),this.$$c){const n=this.$$c.$on(e,t);this.$$l_u.set(t,n)}super.addEventListener(e,t,r)}removeEventListener(e,t,r){if(super.removeEventListener(e,t,r),this.$$c){const n=this.$$l_u.get(t);n&&(n(),this.$$l_u.delete(t))}}async connectedCallback(){if(this.$$cn=!0,!this.$$c){let e=function(n){return i=>{const s=an("slot");n!=="default"&&(s.name=n),yn(i,s)}};if(await Promise.resolve(),!this.$$cn||this.$$c)return;const t={},r=ss(this);for(const n of this.$$s)n in r&&(n==="default"&&!this.$$d.children?(this.$$d.children=e(n),t.default=!0):t[n]=e(n));for(const n of this.attributes){const i=this.$$g_p(n.name);i in this.$$d||(this.$$d[i]=de(i,n.value,this.$$p_d,"toProp"))}for(const n in this.$$p_d)!(n in this.$$d)&&this[n]!==void 0&&(this.$$d[n]=this[n],delete this[n]);this.$$c=ns({component:this.$$ctor,target:this.$$shadowRoot||this,props:{...this.$$d,$$slots:t,$$host:this}}),this.$$me=ki(()=>{nr(()=>{this.$$r=!0;for(const n of me(this.$$c)){if(!this.$$p_d[n]?.reflect)continue;this.$$d[n]=this.$$c[n];const i=de(n,this.$$d[n],this.$$p_d,"toAttribute");i==null?this.removeAttribute(this.$$p_d[n].attribute||n):this.setAttribute(this.$$p_d[n].attribute||n,i)}this.$$r=!1})});for(const n in this.$$l)for(const i of this.$$l[n]){const s=this.$$c.$on(n,i);this.$$l_u.set(i,s)}this.$$l={}}}attributeChangedCallback(e,t,r){this.$$r||(e=this.$$g_p(e),this.$$d[e]=de(e,r,this.$$p_d,"toProp"),this.$$c?.$set({[e]:this.$$d[e]}))}disconnectedCallback(){this.$$cn=!1,Promise.resolve().then(()=>{!this.$$cn&&this.$$c&&(this.$$c.$destroy(),this.$$me(),this.$$c=void 0)})}$$g_p(e){return me(this.$$p_d).find(t=>this.$$p_d[t].attribute===e||!this.$$p_d[t].attribute&&t.toLowerCase()===e)||e}});function de(e,t,r,n){const i=r[e]?.type;if(t=i==="Boolean"&&typeof t!="boolean"?t!=null:t,!n||!r[e])return t;if(n==="toAttribute")switch(i){case"Object":case"Array":return t==null?null:JSON.stringify(t);case"Boolean":return t?"":null;case"Number":return t??null;default:return t}else switch(i){case"Object":case"Array":return t&&JSON.parse(t);case"Boolean":return t;case"Number":return t!=null?+t:t;default:return t}}function ss(e){const t={};return e.childNodes.forEach(r=>{t[r.slot||"default"]=!0}),t}function as(e,t,r,n,i,s){let o=class extends Tn{constructor(){super(e,r,i),this.$$p_d=t}static get observedAttributes(){return me(t).map(u=>(t[u].attribute||u).toLowerCase())}};return me(t).forEach(u=>{Vt(o.prototype,u,{get(){return this.$$c&&u in this.$$c?this.$$c[u]:this.$$d[u]},set(h){h=de(u,h,t),this.$$d[u]=h;var c=this.$$c;c&&(wt(c,u)?.get?c[u]=h:c.$set({[u]:h}))}})}),n.forEach(u=>{Vt(o.prototype,u,{get(){return this.$$c?.[u]}})}),s&&(o=s(o)),e.element=o,o}var Cn,lt=class P{constructor(){l(this,"elementType","multiple-choice"),l(this,"priority",100)}canHandle(t){return t.tagName.toLowerCase()==="multiple-choice"||t.classList.contains("multiple-choice")}findChoices(t){t.setAttribute(P.ROOT_HOOK_ATTR,"true");const r=Array.from(t.querySelectorAll(P.CHOICE_SELECTOR));for(const n of r)this.annotateChoice(n);return this.annotateFeedbackTicks(t),r}createChoiceRange(t){const r=this.resolveLabelElement(t);if(!r)return null;const n=document.createRange();return n.selectNodeContents(r),n}getChoiceId(t){const r=t.querySelector('input[type="checkbox"], input[type="radio"]');return r?.getAttribute("value")||r?.id||this.generateFallbackId(t)}getChoiceLabel(t){return this.resolveLabelElement(t)?.textContent?.trim()||"Unlabeled choice"}isSelected(t){const r=t.querySelector('input[type="checkbox"], input[type="radio"]');return r?r.checked||r.getAttribute("aria-checked")==="true":!1}canEliminate(t){const r=t.querySelector('input[type="checkbox"], input[type="radio"]');return!(!r||this.isSelected(t)||r.disabled||(t.closest(`[${P.ROOT_HOOK_ATTR}="true"]`)||t.closest("multiple-choice"))?.querySelector(`[${P.FEEDBACK_HOOK_ATTR}="true"]`))}setSelectable(t,r){const n=t.querySelector('input[type="checkbox"], input[type="radio"]');if(!n)return;n.disabled=!r,r?n.removeAttribute("aria-disabled"):n.setAttribute("aria-disabled","true");const i=n.closest(P.MUI_BUTTON_SELECTOR);i&&i.classList.toggle(P.MUI_DISABLED_CLASS,!r)}getButtonContainer(t){return t}generateFallbackId(t){const r=(t.closest(`[${P.ROOT_HOOK_ATTR}="true"]`)||t.closest("multiple-choice"))?.querySelectorAll(`[${P.CHOICE_HOOK_ATTR}="true"]`)||[];return`choice-${Array.from(r).indexOf(t)}`}annotateChoice(t){t.setAttribute(P.CHOICE_HOOK_ATTR,"true");const r=this.resolveLabelElement(t);r&&r.setAttribute(P.LABEL_HOOK_ATTR,"true")}resolveLabelElement(t){return t.querySelector(`[${P.LABEL_HOOK_ATTR}="true"]`)||t.querySelector("label")||t.querySelector("span")}annotateFeedbackTicks(t){for(const r of t.querySelectorAll(".feedback-tick"))r.setAttribute(P.FEEDBACK_HOOK_ATTR,"true")}};Cn=lt;l(lt,"CHOICE_HOOK_ATTR","data-pie-answer-eliminator-choice");l(lt,"LABEL_HOOK_ATTR","data-pie-answer-eliminator-label");l(lt,"ROOT_HOOK_ATTR","data-pie-answer-eliminator-root");l(lt,"FEEDBACK_HOOK_ATTR","data-pie-answer-eliminator-feedback-tick");l(lt,"CHOICE_SELECTOR",`[${Cn.CHOICE_HOOK_ATTR}="true"], .corespring-checkbox, .corespring-radio-button`);l(lt,"MUI_BUTTON_SELECTOR",".MuiButtonBase-root, .MuiRadio-root, .MuiCheckbox-root");l(lt,"MUI_DISABLED_CLASS","Mui-disabled");var os="ebsr-multiple-choice",ar=e=>e instanceof HTMLElement&&In(e.tagName.toLowerCase()).baseName===os,Cr=(e,t)=>Array.from(e.querySelectorAll(`[id="${t}"]`)).find(ar)??null,ls=e=>{let t=e.parentElement;for(;t!==null;){if(ar(t))return t;t=t.parentElement}return null},us=class{constructor(){l(this,"elementType","ebsr"),l(this,"priority",110),l(this,"mcAdapter",new lt)}canHandle(e){return e.tagName.toLowerCase()==="ebsr"||Array.from(e.querySelectorAll("*")).some(ar)}findChoices(e){const t=Cr(e,"a"),r=Cr(e,"b"),n=[];return t&&n.push(...this.mcAdapter.findChoices(t)),r&&n.push(...this.mcAdapter.findChoices(r)),n}createChoiceRange(e){return this.mcAdapter.createChoiceRange(e)}getChoiceId(e){return`${ls(e)?.id||"unknown"}-${this.mcAdapter.getChoiceId(e)}`}getChoiceLabel(e){return this.mcAdapter.getChoiceLabel(e)}isSelected(e){return this.mcAdapter.isSelected(e)}canEliminate(e){return this.mcAdapter.canEliminate(e)}setSelectable(e,t){this.mcAdapter.setSelectable(e,t)}getButtonContainer(e){return this.mcAdapter.getButtonContainer(e)}},hs=class{constructor(){l(this,"elementType","inline-dropdown"),l(this,"priority",90)}canHandle(e){return e.tagName.toLowerCase()==="inline-dropdown"||e.querySelector('[role="combobox"]')!==null}findChoices(e){return Array.from(e.querySelectorAll('[role="option"]'))}createChoiceRange(e){const t=document.createRange();return t.selectNodeContents(e),t}getChoiceId(e){return e.id||e.getAttribute("data-value")||""}getChoiceLabel(e){return e.textContent?.trim()||"Unlabeled option"}canEliminate(e){return e.getAttribute("aria-selected")!=="true"}getButtonContainer(e){return e}},cs=class{constructor(){l(this,"adapters",void 0),this.adapters=[new lt,new us,new hs].sort((e,t)=>t.priority-e.priority)}findAdapter(e){return this.adapters.find(t=>t.canHandle(e))||null}findAllChoicesWithAdapters(e){const t=[],r=new Set;for(const n of this.adapters){const i=n.findChoices(e);for(const s of i)r.has(s)||(r.add(s),t.push({choice:s,adapter:n}))}return t}registerAdapter(e){this.adapters.push(e),this.adapters.sort((t,r)=>r.priority-t.priority)}},Lt=class N{constructor(){l(this,"name","mask"),l(this,"highlights",new Map),l(this,"ranges",new Map),l(this,"fallbackContainers",new Map)}initialize(){}destroy(){this.clearAll()}apply(t,r){if(!this.isSupported()){this.applyFallback(t,r);return}this.injectHighlightCSS(t);const n=new Highlight(r);CSS.highlights.set(`${N.HIGHLIGHT_NAME_PREFIX}${t}`,n),this.highlights.set(t,n),this.ranges.set(t,r),this.addAriaAttributes(r)}remove(t){if(!this.isSupported()){this.removeFallback(t);return}CSS.highlights.delete(`${N.HIGHLIGHT_NAME_PREFIX}${t}`),this.removeHighlightCSS(t);const r=this.ranges.get(t);r&&this.removeAriaAttributes(r),this.highlights.delete(t),this.ranges.delete(t),this.fallbackContainers.delete(t)}isEliminated(t){return this.highlights.has(t)||this.fallbackContainers.has(t)}clearAll(){for(const t of this.getEliminatedIds())this.remove(t);this.fallbackContainers.clear()}getEliminatedIds(){return Array.from(new Set([...this.highlights.keys(),...this.fallbackContainers.keys()]))}isSupported(){return typeof CSS<"u"&&"highlights"in CSS}injectHighlightCSS(t){const r=`${N.HIGHLIGHT_STYLE_PREFIX}${t}`;if(document.getElementById(r))return;const n=document.createElement("style");n.id=r,n.textContent=`
1
+ import{t as Or}from"./attribute-coercion-b93b482c.js";import{t as Hr}from"./versioned-tag-54a76be9.js";import{i as xr,r as Nr}from"./tool-host-contract-fae1c415.js";if(typeof window<"u"){var un,hn;((un=(hn=window).__svelte??(hn.__svelte={})).v??(un.v=new Set)).add("5")}var me={},R=Symbol("uninitialized"),Kr=Array.isArray,Wr=Array.prototype.indexOf,Pe=Array.prototype.includes,Gr=Array.from,ge=Object.keys,Vt=Object.defineProperty,wt=Object.getOwnPropertyDescriptor,Pr=Object.prototype,Fr=Array.prototype,Br=Object.getPrototypeOf,fn=Object.isExtensible,Dr=()=>{};function qr(e){for(var t=0;t<e.length;t++)e[t]()}function jr(){var e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}function Yt(e){"@babel/helpers - typeof";return Yt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Yt(e)}function Xr(e,t){if(Yt(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||"default");if(Yt(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function zr(e){var t=Xr(e,"string");return Yt(t)=="symbol"?t:t+""}function u(e,t,n){return(t=zr(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var et=1024,ot=2048,kt=4096,On=8192,Vr=16384,Hn=32768,dn=1<<25,xn=65536,te=1<<19,Yr=1<<20,vn=1<<21,Nn=1<<23,jt=Symbol("$state"),Kn=Symbol("component"),Wn=Symbol("legacy props"),Ur=Symbol("attributes"),Jr=Symbol("class"),Qr=Symbol("style"),Zr=Symbol("text"),Ce=new class extends Error{constructor(...e){super(...e),u(this,"name","StaleReactionError"),u(this,"message","The reaction that called `getAbortSignal()` was re-run or destroyed")}};globalThis.document?.contentType;function ti(){console.warn("https://svelte.dev/e/derived_inert")}function Gn(e){console.warn("https://svelte.dev/e/hydration_mismatch")}function ei(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}var U=!1;function re(e){U=e}var W;function Ut(e){if(e===null)throw Gn(),me;return W=e}function Pn(){return Ut(Bt(W))}function ni(e=1){if(U){for(var t=e,n=W;t--;)n=Bt(n);W=n}}function ri(e=!0){for(var t=0,n=W;;){if(n.nodeType===8){var r=n.data;if(r==="]"){if(t===0)return n;t-=1}else(r==="["||r==="[!"||r[0]==="["&&!isNaN(Number(r.slice(1))))&&(t+=1)}var i=Bt(n);e&&n.remove(),n=i}}function Fn(e){return e===this.v}function ii(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function Bn(e){return!ii(e,this.v)}function si(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function ai(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function oi(e){throw new Error("https://svelte.dev/e/effect_orphan")}function li(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function ci(){throw new Error("https://svelte.dev/e/hydration_failed")}function ui(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function hi(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function fi(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function di(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function vi(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}var Qe=!1,ke=!1,L=null;function ye(e){L=e}function Dn(e,t=!1,n){L={p:L,i:!1,c:null,e:null,s:e,x:null,r:T,l:ke&&!t?{s:null,u:null,$:[]}:null}}function qn(e){var t=L,n=t.e;if(n!==null){t.e=null;for(var r of n)ur(r)}return e!==void 0&&(t.x=e),t.i=!0,L=t.p,Ze(e)}function Ze(e={}){return Vt(e,Kn,{value:!0}),e}function Ie(){return!ke||L!==null&&L.l===null}var St=[];function jn(){var e=St;St=[],qr(e)}function Tt(e){if(St.length===0&&!Xt){var t=St;queueMicrotask(()=>{t===St&&jn()})}St.push(e)}function pi(){for(;St.length>0;)jn()}var mi=~(ot|kt|et);function M(e,t){e.f=e.f&mi|t}function tn(e){(e.f&512)!==0||e.deps===null?M(e,et):M(e,kt)}function Xn(e,t,n){(e.f&2048)!==0?t.add(e):e.f&4096&&n.add(e),M(e,et)}function Le(e){var t=w,n=T;at(null),pt(null);try{return e()}finally{at(t),pt(n)}}function be(e){var t=2|ot;return T!==null&&(T.f|=te),{ctx:L,deps:null,effects:null,equals:Fn,f:t,fn:e,reactions:null,rv:0,v:R,wv:0,parent:T,ac:null}}var gi=Symbol("obsolete");function pn(e){const t=be(e);return vr(t),t}function yi(e){const t=be(e);return t.equals=Bn,t}function bi(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n<t.length;n+=1)J(t[n])}}function en(e){var t,n=T,r=e.parent;if(!ht&&r!==null&&e.v!==R&&(r.f&24576)!==0)return ti(),e.v;pt(r);try{bi(e),t=yr(e)}finally{pt(n)}return t}function zn(e){var t=en(e);if(!e.equals(t)&&(e.wv=mr(),(!$?.is_fork||e.deps===null)&&($!==null?($.capture(e,t,!0),Be?.capture(e,t,!0)):e.v=t,e.deps===null))){M(e,et);return}ht||(K!==null?(rn()||$?.is_fork)&&K.set(e,t):tn(e))}function Si(e){if(e.effects!==null)for(const t of e.effects)(t.teardown||t.ac)&&(t.teardown?.(),t.ac!==null&&Le(()=>{t.ac.abort(Ce),t.ac=null}),t.fn!==null&&(t.teardown=Dr),Qt(t,0),an(t))}function Vn(e){if(e.effects!==null)for(const t of e.effects)t.teardown&&t.fn!==null&&Pt(t)}function Yn(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}function nn(e,t){Yn(e,t),t.add(e)}function S(e,t,n){Yn(e,t),t.set(e,n)}function g(e,t,n){if(typeof e=="function"?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}function v(e,t,n){return e.set(g(e,t),n),n}function a(e,t){return e.get(g(e,t))}var Un,Fe=null,Mt=null,$=null,Be=null,K=null,De=null,Xt=!1,He=!1,Jt=null,Se=null,Jn=0,Ai=1,qe=new WeakMap,Et=new WeakMap,Kt=new WeakMap,Ae=new WeakMap,ie=new WeakMap,Ot=new WeakMap,yt=new WeakMap,qt=new WeakMap,rt=new WeakMap,mn=new WeakMap,Gt=new WeakMap,ut=new WeakMap,ft=new WeakMap,xe=new WeakMap,se=new WeakMap,k=new WeakSet,Ft=class Qn{constructor(){nn(this,k),u(this,"id",Ai++),S(this,qe,!1),u(this,"linked",!0),S(this,Et,null),S(this,Kt,null),u(this,"async_deriveds",new Map),u(this,"current",new Map),u(this,"previous",new Map),S(this,Ae,new Set),S(this,ie,new Set),S(this,Ot,0),S(this,yt,new Map),S(this,qt,null),S(this,rt,[]),S(this,mn,[]),S(this,Gt,new Set),S(this,ut,new Set),S(this,ft,new Map),S(this,xe,new Set),u(this,"is_fork",!1),S(this,se,!1),Mt===null?Fe=Mt=this:(v(Kt,Mt,this),v(Et,this,Mt)),Mt=this}skip_effect(t){a(ft,this).has(t)||a(ft,this).set(t,{d:[],m:[]}),a(xe,this).delete(t)}unskip_effect(t,n=r=>this.schedule(r)){var r=a(ft,this).get(t);if(r){a(ft,this).delete(t);for(var i of r.d)M(i,ot),n(i);for(i of r.m)M(i,kt),n(i)}a(xe,this).add(t)}capture(t,n,r=!1){t.v!==R&&!this.previous.has(t)&&this.previous.set(t,t.v),!(t.f&8388608)&&(this.current.set(t,[n,r]),K?.set(t,n)),this.is_fork||(t.v=n)}activate(){$=this}deactivate(){$=null,K=null}flush(){try{He=!0,$=this,g(k,this,we).call(this)}finally{Jn=0,De=null,Jt=null,Se=null,He=!1,$=null,K=null,st.clear()}}discard(){for(const t of a(ie,this))t(this);a(ie,this).clear();for(const t of this.async_deriveds.values())t.reject(gi);g(k,this,Ee).call(this),a(qt,this)?.resolve()}register_created_effect(t){a(mn,this).push(t)}increment(t,n){if(v(Ot,this,a(Ot,this)+1),t){let r=a(yt,this).get(n)??0;a(yt,this).set(n,r+1)}}decrement(t,n){if(v(Ot,this,a(Ot,this)-1),t){let r=a(yt,this).get(n)??0;r===1?a(yt,this).delete(n):a(yt,this).set(n,r-1)}a(se,this)||(v(se,this,!0),Tt(()=>{v(se,this,!1),this.linked&&this.flush()}))}transfer_effects(t,n){for(const r of t)a(Gt,this).add(r);for(const r of n)a(ut,this).add(r);t.clear(),n.clear()}oncommit(t){a(Ae,this).add(t)}ondiscard(t){a(ie,this).add(t)}settled(){return(a(qt,this)??v(qt,this,jr())).promise}static ensure(){if($===null){const t=$=new Qn;!He&&!Xt&&Tt(()=>{a(qe,t)||t.flush()})}return $}apply(){if(!Qe||!this.is_fork&&a(Et,this)===null&&a(Kt,this)===null){K=null;return}K=new Map;for(const[n,[r]]of this.current)K.set(n,r);for(let n=Fe;n!==null;n=a(Kt,n))if(!(n===this||n.is_fork)){var t=!1;if(n.id<this.id){for(const[r,[,i]]of n.current)if(!i&&this.current.has(r)){t=!0;break}}if(!t)for(const[r,i]of n.previous)K.has(r)||K.set(r,i)}}schedule(t){if(De=t,t.b?.is_pending&&(t.f&16777228)!==0&&(t.f&32768)===0){t.b.defer_effect(t);return}a(rt,this).push(t)}};Un=Ft;function gn(){if(this.is_fork)return!0;for(const n of a(yt,this).keys()){for(var e=n,t=!1;e.parent!==null;){if(a(ft,this).has(e)){t=!0;break}e=e.parent}if(!t)return!0}return!1}function wi(){var e=[];for(const i of a(rt,this))if(!((i.f&16384)!==0||(i.f&6144)===0)){for(var t=i,n=!1;t.parent!==null;){t=t.parent;var r=t.f;if((r&96)!==0){if((r&1024)===0){n=!0;break}t.f^=et}}n||e.push(t)}return v(rt,this,[]),e}function we(){v(qe,this,!0);for(const o of a(Gt,this))a(ut,this).delete(o),M(o,ot),this.schedule(o);for(const o of a(ut,this))M(o,kt),this.schedule(o);this.apply();for(var e=Jt=[],t=[],n=Se=[];a(rt,this).length>0;){Jn++>1e3&&(g(k,this,Ee).call(this),Ti());for(const o of g(k,this,wi).call(this))try{g(k,this,Ei).call(this,o,e,t)}catch(l){throw er(o),g(k,this,gn).call(this)||this.discard(),l}}if($=null,n.length>0){var r=Un.ensure();for(const o of n)r.schedule(o)}if(Jt=null,Se=null,g(k,this,gn).call(this)){g(k,this,ae).call(this,t),g(k,this,ae).call(this,e);for(const[o,l]of a(ft,this))tr(o,l);n.length>0&&g(k,$,we).call($);return}const i=g(k,this,$i).call(this);if(i){g(k,this,ae).call(this,t),g(k,this,ae).call(this,e),g(k,i,_i).call(i,this);return}a(Gt,this).clear(),a(ut,this).clear();for(const o of a(Ae,this))o(this);a(Ae,this).clear(),Be=this,yn(t),yn(e),Be=null,a(qt,this)?.resolve();var s=$;if(a(Ot,this)===0&&(a(rt,this).length===0||s!==null)&&g(k,this,Ee).call(this),a(rt,this).length>0)if(s!==null){for(const o of a(rt,this))a(rt,s).push(o);v(rt,this,[])}else s=this;s!==null&&(st.clear(),g(k,s,we).call(s))}function Ei(e,t,n){e.f^=et;for(var r=e.first;r!==null;){var i=r.f,s=(i&96)!==0;if(!(s&&(i&1024)!==0||(i&8192)!==0||a(ft,this).has(r))&&r.fn!==null){s?r.f^=et:(i&4)!==0?t.push(r):Qe&&(i&16777224)!==0?n.push(r):ee(r)&&(i&16&&a(ut,this).add(r),Pt(r));var o=r.first;if(o!==null){r=o;continue}}for(;r!==null;){var l=r.next;if(l!==null){r=l;break}r=r.parent}}}function $i(){for(var e=a(Et,this);e!==null;){if(!e.is_fork){for(const[t,[,n]]of this.current)if(e.current.has(t)&&!n)return e}e=a(Et,e)}return null}function _i(e){for(const[n,r]of e.current)!this.previous.has(n)&&e.previous.has(n)&&this.previous.set(n,e.previous.get(n)),this.current.set(n,r);for(const[n,r]of e.async_deriveds){const i=this.async_deriveds.get(n);i&&r.promise.then(i.resolve).catch(i.reject)}e.async_deriveds.clear(),this.transfer_effects(a(Gt,e),a(ut,e));const t=n=>{var r=n.reactions;if(r!==null&&!((n.f&2)!==0&&(n.f&6144)===0))for(const o of r){var i=o.f;if((i&2)!==0)t(o);else{var s=o;i&4194320&&!this.async_deriveds.has(s)&&(a(ut,this).delete(s),M(s,ot),this.schedule(s))}}};for(const n of this.current.keys())t(n);this.oncommit(()=>e.discard()),g(k,e,Ee).call(e),$=this,g(k,this,we).call(this)}function ae(e){for(var t=0;t<e.length;t+=1)Xn(e[t],a(Gt,this),a(ut,this))}function Ee(){if(this.linked){var e=a(Et,this),t=a(Kt,this);e===null?Fe=t:v(Kt,e,t),t===null?Mt=e:v(Et,t,e),this.linked=!1}}function Ht(e){var t=Xt;Xt=!0;try{var n;for(e&&($!==null&&!$.is_fork&&$.flush(),n=e());;){if(pi(),$===null)return n;$.flush()}}finally{Xt=t}}function Ti(){try{li()}catch(e){dt(e,De)}}var ct=null;function yn(e){var t=e.length;if(t!==0){for(var n=0;n<t;){var r=e[n++];if((r.f&24576)===0&&ee(r)&&(ct=new Set,Pt(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&fr(r),ct?.size>0)){st.clear();for(const i of ct){if((i.f&24576)!==0)continue;const s=[i];let o=i.parent;for(;o!==null;)ct.has(o)&&(ct.delete(o),s.push(o)),o=o.parent;for(let l=s.length-1;l>=0;l--){const c=s[l];!(c.f&24576)&&Pt(c)}}ct.clear()}}ct=null}}function Zn(e){$.schedule(e)}function tr(e,t){if(!((e.f&32)!==0&&(e.f&1024)!==0)){(e.f&2048)!==0?t.d.push(e):e.f&4096&&t.m.push(e),M(e,et);for(var n=e.first;n!==null;)tr(n,t),n=n.next}}function er(e){M(e,et);for(var t=e.first;t!==null;)er(t),t=t.next}var $e=new Set,st=new Map,nr=!1;function Re(e,t){return{f:0,v:e,reactions:null,equals:Fn,rv:0,wv:0}}function B(e,t){const n=Re(e,t);return vr(n),n}function Ci(e,t=!1,n=!0){const r=Re(e);if(t||(r.equals=Bn),ke&&n&&L!==null&&L.l!==null){var i;((i=L.l).s??(i.s=[])).push(r)}return r}function O(e,t,n=!1){return w!==null&&(!V||w.f&131072)&&Ie()&&w.f&4325394&&(Q===null||!Q.has(e))&&di(),rr(e,n?Wt(t):t,Se)}var bt=null,je=0;function rr(e,t,n=null){if(!e.equals(t)){ht?st.set(e,t):st.has(e)||st.set(e,e.v);var r=Ft.ensure();if(r.capture(e,t),(e.f&2)!==0){const i=e;e.f&2048&&en(i),K===null&&tn(i)}e.wv=mr(),bt=null,je=0,ir(e,ot,n),bt=null,Ie()&&T!==null&&T.f&1024&&!(T.f&96)&&(X===null?Fi([e]):X.push(e)),!r.is_fork&&$e.size>0&&!nr&&ki()}return t}function ki(){nr=!1;for(const e of $e){e.f&1024&&M(e,kt);let t;try{t=ee(e)}catch{t=!0}t&&Pt(e)}$e.clear()}function zt(e){O(e,e.v+1)}function ir(e,t,n){var r=e.reactions;if(r!==null){var i=Ie(),s=r.length;if(je+=s,je>1e5&&bt===null&&(bt=new Set),bt!==null){if(bt.has(e))return;bt.add(e)}for(var o=0;o<s;o++){var l=r[o],c=l.f;if(!(!i&&l===T)){var h=(c&ot)===0;if(h&&M(l,t),(c&131072)!==0)$e.add(l);else if((c&2)!==0){var f=l;K?.delete(f),ir(f,kt,n)}else if(h){var d=l;c&16&&ct!==null&&ct.add(d),n!==null?n.push(d):Zn(d)}}}}}function Wt(e){if(typeof e!="object"||e===null||jt in e||Kn in e)return e;const t=Br(e);if(t!==Pr&&t!==Fr)return e;var n=new Map,r=Kr(e),i=B(0),s=null,o=$t,l=c=>{if($t===o)return c();var h=w,f=$t;at(null),An(o);var d=c();return at(h),An(f),d};return r&&n.set("length",B(e.length,s)),new Proxy(e,{defineProperty(c,h,f){(!("value"in f)||f.configurable===!1||f.enumerable===!1||f.writable===!1)&&hi();var d=n.get(h);return d===void 0?l(()=>{var y=B(f.value,s);return n.set(h,y),y}):O(d,f.value,!0),!0},deleteProperty(c,h){var f=n.get(h);if(f===void 0){if(h in c){const d=l(()=>B(R,s));n.set(h,d),zt(i)}}else O(f,R),zt(i);return!0},get(c,h,f){if(h===jt)return e;var d=n.get(h),y=h in c;if(d===void 0&&(!y||wt(c,h)?.writable)&&(d=l(()=>B(Wt(y?c[h]:R),s)),n.set(h,d)),d!==void 0){var b=A(d);return b===R?void 0:b}return Reflect.get(c,h,f)},getOwnPropertyDescriptor(c,h){this.has?.(c,h);var f=Reflect.getOwnPropertyDescriptor(c,h),d=n.get(h);if(d!==void 0){var y=A(d);if(y===R)return;if(f&&"value"in f)f.value=y;else return{enumerable:!0,configurable:!0,value:y,writable:!0}}return f},has(c,h){if(h===jt)return!0;var f=n.get(h),d=f!==void 0&&f.v!==R||Reflect.has(c,h);return(f!==void 0||T!==null&&(!d||wt(c,h)?.writable))&&(f===void 0&&(f=l(()=>B(d?Wt(c[h]):R,s)),n.set(h,f)),A(f)===R)?!1:d},set(c,h,f,d){var y=n.get(h),b=h in c;if(r&&h==="length")for(var E=f;E<y.v;E+=1){var _=n.get(E+"");_!==void 0?O(_,R):E in c&&(_=l(()=>B(R,s)),n.set(E+"",_))}if(y===void 0)(!b||wt(c,h)?.writable)&&(y=l(()=>B(void 0,s)),O(y,Wt(f)),n.set(h,y));else{b=y.v!==R;var z=l(()=>Wt(f));O(y,z)}var H=Reflect.getOwnPropertyDescriptor(c,h);if(H?.set&&H.set.call(d,f),!b){if(r&&typeof h=="string"){var G=n.get("length"),m=Number(h);Number.isInteger(m)&&m>=G.v&&O(G,m+1)}zt(i)}return!0},ownKeys(c){A(i);var h=Reflect.ownKeys(c).filter(y=>{var b=n.get(y);return b===void 0||b.v!==R});for(var[f,d]of n)d.v!==R&&!(f in c)&&h.push(f);return h},setPrototypeOf(){fi()}})}var bn,sr,ar,or;function Xe(){if(bn===void 0){bn=window,sr=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;ar=wt(t,"firstChild").get,or=wt(t,"nextSibling").get,fn(e)&&(e[Jr]=void 0,e[Ur]=null,e[Qr]=void 0,e.__e=void 0),fn(n)&&(n[Zr]=void 0)}}function lr(e=""){return document.createTextNode(e)}function ze(e){return ar.call(e)}function Bt(e){return or.call(e)}function Ii(e){e.textContent=""}function cr(e,t,n){return t==null||t==="http://www.w3.org/1999/xhtml"?n?document.createElement(e,{is:n}):document.createElement(e):n?document.createElementNS(t,e,{is:n}):document.createElementNS(t,e)}function Li(e){var t=T;if(t===null)return w.f|=Nn,e;if((t.f&32768)===0&&(t.f&4)===0)throw e;dt(e,t)}function dt(e,t){if(!(t!==null&&(t.f&16384)!==0)){for(;t!==null;){if((t.f&128)!==0&&(t.f&33570816)===0){if((t.f&32768)===0)throw e;try{t.b.error(e);return}catch(n){e=n}}t=t.parent}throw e}}function Ri(e){T===null&&(w===null&&oi(e),ai()),ht&&si(e)}function Mi(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function It(e,t){var n=T;n!==null&&n.f&8192&&(e|=On);var r={ctx:L,deps:null,nodes:null,f:e|ot|512,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};$?.register_created_effect(r);var i=r;if((e&4)!==0)Jt!==null?Jt.push(r):Ft.ensure().schedule(r);else if(t!==null){try{Pt(r)}catch(o){throw J(r),o}i.deps===null&&i.teardown===null&&i.nodes===null&&i.first===i.last&&!(i.f&524288)&&(i=i.first,e&16&&e&65536&&i!==null&&(i.f|=xn))}if(i!==null&&(i.parent=n,n!==null&&Mi(i,n),w!==null&&(w.f&2)!==0&&(e&64)===0)){var s=w;(s.effects??(s.effects=[])).push(i)}return r}function rn(){return w!==null&&!V}function Rt(e){Ri("$effect");var t=T.f;if(!w&&(t&32)!==0&&L!==null&&!L.i){var n=L;(n.e??(n.e=[])).push(e)}else return ur(e)}function ur(e){return It(4|Yr,e)}function Oi(e){Ft.ensure();const t=It(64|te,e);return()=>{J(t)}}function Hi(e){Ft.ensure();const t=It(64|te,e);return(n={})=>new Promise(r=>{n.outro?Me(t,()=>{J(t),r(void 0)}):(J(t),r(void 0))})}function xi(e){return It(4,e)}function sn(e,t=0){return It(8|t,e)}function Ni(e,t=0){return It(16|t,e)}function Ct(e){return It(32|te,e)}function hr(e){var t=e.teardown;if(t!==null){const n=ht,r=w;Sn(!0),at(null);try{t.call(null)}catch(i){dt(i,e.parent)}finally{Sn(n),at(r)}}}function an(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){const i=n.ac;i!==null&&Le(()=>{i.abort(Ce)});var r=n.next;(n.f&64)!==0?n.parent=null:J(n,t),n=r}}function Ki(e){for(var t=e.first;t!==null;){var n=t.next;!(t.f&32)&&J(t),t=n}}function J(e,t=!0){var n=!1;(t||e.f&262144)&&e.nodes!==null&&e.nodes.end!==null&&(Wi(e.nodes.start,e.nodes.end),n=!0),e.f|=dn,an(e,t&&!n),Qt(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(const s of r)s.stop();hr(e),e.f^=dn,e.f|=Vr;var i=e.parent;i!==null&&i.first!==null&&fr(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function Wi(e,t){for(;e!==null;){var n=e===t?null:Bt(e);e.remove(),e=n}}function fr(e){var t=e.parent,n=e.prev,r=e.next;n!==null&&(n.next=r),r!==null&&(r.prev=n),t!==null&&(t.first===e&&(t.first=r),t.last===e&&(t.last=n))}function Me(e,t,n=!0){var r=[];e.f|=256,dr(e,r,!0);var i=()=>{n&&J(e),t&&t()},s=r.length;if(s>0){var o=()=>--s||i();for(var l of r)l.out(o)}else i()}function dr(e,t,n){if((e.f&8192)===0){e.f^=On;var r=e.nodes&&e.nodes.t;if(r!==null)for(const l of r)(l.is_global||n)&&t.push(l);for(var i=e.first;i!==null;){var s=i.next;if((i.f&64)===0){var o=(i.f&65536)!==0||(i.f&32)!==0&&(e.f&16)!==0;dr(i,t,o?n:!1)}i=s}}}function Gi(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var i=n===r?null:Bt(n);t.append(n),n=i}}var Pi=null,he=!1,ht=!1;function Sn(e){ht=e}var w=null,V=!1;function at(e){w=e}var T=null;function pt(e){T=e}var Q=null;function vr(e){w!==null&&(w.f&2097152||w.f&2)&&(Q??(Q=new Set)).add(e)}var P=null,D=0,X=null;function Fi(e){X=e}var pr=1,At=0,$t=At;function An(e){$t=e}function mr(){return++pr}function ee(e){var t=e.f;if((t&2048)!==0)return!0;if((t&4096)!==0){for(var n=e.deps,r=n.length,i=0;i<r;i++){var s=n[i];if(ee(s)&&zn(s),s.wv>e.wv)return!0}t&512&&K===null&&M(e,et)}return!1}function gr(e,t,n=!0){var r=e.reactions;if(r!==null&&!(!Qe&&Q!==null&&Q.has(e)))for(var i=0;i<r.length;i++){var s=r[i];(s.f&2)!==0?gr(s,t,!1):t===s&&(n?M(s,ot):s.f&1024&&M(s,kt),Zn(s))}}function yr(e){var t=P,n=D,r=X,i=w,s=Q,o=L,l=V,c=$t,h=e.f;P=null,D=0,X=null,w=(h&96)===0?e:null,Q=null,ye(e.ctx),V=!1,$t=++At,e.ac!==null&&(Le(()=>{e.ac.abort(Ce)}),e.ac=null);try{e.f|=vn;var f=e.fn,d=f();e.f|=Hn;var y=wn(e);if(Ie()&&X!==null&&!V&&y!==null&&(e.f&6146)===0)for(var b=0;b<X.length;b++)gr(X[b],e);if(i!==null&&i!==e){if(At++,i.deps!==null)for(let E=0;E<n;E+=1)i.deps[E].rv=At;if(t!==null)for(const E of t)E.rv=At;X!==null&&(r===null?r=X:r.push(...X))}return e.f&8388608&&(e.f^=Nn),d}catch(E){return wn(e),Li(E)}finally{e.f^=vn,P=t,D=n,X=r,w=i,Q=s,ye(o),V=l,$t=c}}function wn(e){var t=e.deps,n=$?.is_fork;if(P!==null){var r;if(n||Qt(e,D),t!==null&&D>0)for(t.length=D+P.length,r=0;r<P.length;r++)t[D+r]=P[r];else e.deps=t=P;if(rn()&&(e.f&512)!==0)for(r=D;r<t.length;r++){var i;((i=t[r]).reactions??(i.reactions=[])).push(e)}}else!n&&t!==null&&D<t.length&&(Qt(e,D),t.length=D);return t}function Bi(e,t){let n=t.reactions;if(n!==null){var r=Wr.call(n,e);if(r!==-1){var i=n.length-1;i===0?n=t.reactions=null:(n[r]=n[i],n.pop())}}if(n===null&&(t.f&2)!==0&&(P===null||!Pe.call(P,t))){var s=t;s.f&512&&(s.f^=512),s.v!==R&&tn(s),s.ac!==null&&Le(()=>{s.ac.abort(Ce),s.ac=null,M(s,ot)}),Si(s),Qt(s,0)}}function Qt(e,t){var n=e.deps;if(n!==null)for(var r=t;r<n.length;r++)Bi(e,n[r])}function Pt(e){var t=e.f;if((t&16384)===0){M(e,et);var n=T,r=he;T=e,he=(t&96)===0;try{(t&16777232)!==0?Ki(e):an(e),hr(e);var i=yr(e);e.teardown=typeof i=="function"?i:null,e.wv=pr}finally{he=r,T=n}}}function A(e){var t=(e.f&2)!==0;if(Pi?.add(e),w!==null&&!V&&!(T!==null&&(T.f&16384)!==0)&&(Q===null||!Q.has(e))){var n=w.deps;if((w.f&2097152)!==0)e.rv<At&&(e.rv=At,P===null&&n!==null&&n[D]===e?D++:P===null?P=[e]:P.push(e));else{var r;(r=w).deps??(r.deps=[]),Pe.call(w.deps,e)||w.deps.push(e);var i=e.reactions;i===null?e.reactions=[w]:Pe.call(i,w)||i.push(w)}}if(ht&&st.has(e))return st.get(e);if(t){var s=e;if(ht){var o=s.v;return(!(s.f&1024)&&s.reactions!==null||Sr(s))&&(o=en(s)),st.set(s,o),o}var l=(s.f&512)===0&&!V&&w!==null&&(he||(w.f&512)!==0),c=(s.f&Hn)===0;ee(s)&&(l&&(s.f|=512),zn(s)),l&&!c&&(Vn(s),br(s))}if(K?.has(e))return K.get(e);if((e.f&8388608)!==0)throw e.v;return e.v}function br(e){if(e.f|=512,e.deps!==null)for(const t of e.deps)(t.reactions??(t.reactions=[])).push(e),t.f&2&&!(t.f&512)&&(Vn(t),br(t))}function Sr(e){if(e.v===R)return!0;if(e.deps===null)return!1;for(const t of e.deps)if(st.has(t)||(t.f&2)!==0&&Sr(t))return!0;return!1}function Oe(e){var t=V;try{return V=!0,e()}finally{V=t}}var oe=Symbol("events"),Di=new Set,En=new Set,Ne=null,Ke=!1;function $n(e){var t=this,n=t.ownerDocument,r=e.type,i=e.composedPath?.()||[],s=i[0]||e.target;Ne=e,Ke||(Ke=!0,setTimeout(()=>{Ke=!1,Ne=null}));var o=0,l=Ne===e&&e[oe];if(l){var c=i.indexOf(l);if(c!==-1&&(t===document||t===window)){e[oe]=t;return}var h=i.indexOf(t);if(h===-1)return;c<=h&&(o=c)}if(s=i[o]||e.target,s!==t){Vt(e,"currentTarget",{configurable:!0,get(){return s||n}});var f=w,d=T;at(null),pt(null);try{for(var y,b=[];s!==null&&s!==t;){try{var E=s[oe]?.[r];E!=null&&(!s.disabled||e.target===s)&&E.call(s,e)}catch(_){y?b.push(_):y=_}if(e.cancelBubble)break;o++,s=o<i.length?i[o]:null}if(y){for(let _ of b)queueMicrotask(()=>{throw _});throw y}}finally{e[oe]=t,delete e.currentTarget,at(f),pt(d)}}}var qi=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function ji(e){return qi?.createHTML(e)??e}function Xi(e){var t=cr("template");return t.innerHTML=ji(e.replaceAll("<!>","<!---->")),t.content}function fe(e,t){var n=T;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function zi(e,t){var n=(t&1)!==0,r=(t&2)!==0,i,s=!e.startsWith("<!>");return()=>{if(U)return fe(W,null),W;i===void 0&&(i=Xi(s?e:"<!>"+e),n||(i=ze(i)));var o=r||sr?document.importNode(i,!0):i.cloneNode(!0);if(n){var l=ze(o),c=o.lastChild;fe(l,c)}else fe(o,o);return o}}function Ar(e,t){if(U){var n=T;(!(n.f&32768)||n.nodes.end===null)&&(n.nodes.end=W),Pn();return}e!==null&&e.before(t)}var Vi=["touchstart","touchmove"];function Yi(e){return Vi.includes(e)}function Ui(e){let t=0,n=Re(0),r;return()=>{rn()&&(A(n),sn(()=>(t===0&&(r=Oe(()=>e(()=>zt(n)))),t+=1,()=>{Tt(()=>{t-=1,t===0&&(r?.(),r=void 0,zt(n))})})))}}var Ji=xn|te;function Qi(e,t,n,r){new Zi(e,t,n,r)}var Z=new WeakMap,Ve=new WeakMap,it=new WeakMap,Zt=new WeakMap,q=new WeakMap,tt=new WeakMap,j=new WeakMap,Y=new WeakMap,vt=new WeakMap,xt=new WeakMap,_t=new WeakMap,le=new WeakMap,Ye=new WeakMap,Ue=new WeakMap,mt=new WeakMap,_n=new WeakMap,I=new WeakSet,Zi=class{constructor(e,t,n,r){nn(this,I),u(this,"parent",void 0),u(this,"is_pending",!1),u(this,"transform_error",void 0),S(this,Z,void 0),S(this,Ve,U?W:null),S(this,it,void 0),S(this,Zt,void 0),S(this,q,void 0),S(this,tt,null),S(this,j,null),S(this,Y,null),S(this,vt,null),S(this,xt,0),S(this,_t,0),S(this,le,!1),S(this,Ye,new Set),S(this,Ue,new Set),S(this,mt,null),S(this,_n,Ui(()=>(v(mt,this,Re(a(xt,this))),()=>{v(mt,this,null)}))),v(Z,this,e),v(it,this,t),v(Zt,this,i=>{var s=T;s.b=this,s.f|=128,n(i)}),this.parent=T.b,this.transform_error=r??this.parent?.transform_error??(i=>i),v(q,this,Ni(()=>{if(U){const i=a(Ve,this);Pn();const s=i.data==="[!";if(i.data.startsWith("[?")){const o=JSON.parse(i.data.slice(2));g(I,this,es).call(this,o)}else s?g(I,this,ns).call(this):g(I,this,ts).call(this)}else g(I,this,Er).call(this)},Ji)),U&&v(Z,this,W)}defer_effect(e){Xn(e,a(Ye,this),a(Ue,this))}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!a(it,this).pending}update_pending_count(e,t){g(I,this,$r).call(this,e,t),v(xt,this,a(xt,this)+e),a(mt,this)&&!a(le,this)&&(v(le,this,!0),Tt(()=>{v(le,this,!1),a(mt,this)&&rr(a(mt,this),a(xt,this))}))}get_effect_pending(){return a(_n,this).call(this),A(a(mt,this))}error(e){if(!a(it,this).onerror&&!a(it,this).failed)throw e;$?.is_fork?(a(tt,this)&&$.skip_effect(a(tt,this)),a(j,this)&&$.skip_effect(a(j,this)),a(Y,this)&&$.skip_effect(a(Y,this)),$.oncommit(()=>{g(I,this,Tn).call(this,e)})):g(I,this,Tn).call(this,e)}};function ts(){try{v(tt,this,Ct(()=>a(Zt,this).call(this,a(Z,this))))}catch(e){this.error(e)}}function es(e){const t=a(it,this).failed,{reset:n,invoke_onerror:r}=g(I,this,wr).call(this,e);Tt(r),t&&v(Y,this,Ct(()=>{t(a(Z,this),()=>e,()=>n)}))}function wr(e){var t=!1,n=!1;const r=()=>{if(t){ei();return}t=!0,n&&vi(),a(Y,this)!==null&&Me(a(Y,this),()=>{v(Y,this,null)}),g(I,this,on).call(this,()=>{g(I,this,Er).call(this)})};return{reset:r,invoke_onerror:()=>{try{n=!0,a(it,this).onerror?.(e,r),n=!1}catch(i){dt(i,a(q,this)&&a(q,this).parent)}}}}function ns(){const e=a(it,this).pending;e&&(this.is_pending=!0,v(j,this,Ct(()=>e(a(Z,this)))),Tt(()=>{var t=v(vt,this,document.createDocumentFragment()),n=lr(),r=!1;if(t.append(n),v(tt,this,g(I,this,on).call(this,()=>{try{return Ct(()=>a(Zt,this).call(this,n))}catch(i){try{this.error(i),r=!0}catch(s){dt(s,a(q,this).parent)}return null}})),a(tt,this)===null){v(vt,this,null),r&&g(I,this,_e).call(this,$);return}a(_t,this)===0&&(a(Z,this).before(t),v(vt,this,null),Me(a(j,this),()=>{v(j,this,null)}),g(I,this,_e).call(this,$))}))}function Er(){try{if(this.is_pending=this.has_pending_snippet(),v(_t,this,0),v(xt,this,0),v(tt,this,Ct(()=>{a(Zt,this).call(this,a(Z,this))})),a(_t,this)>0){var e=v(vt,this,document.createDocumentFragment());Gi(a(tt,this),e);const t=a(it,this).pending;v(j,this,Ct(()=>t(a(Z,this))))}else g(I,this,_e).call(this,$)}catch(t){this.error(t)}}function _e(e){this.is_pending=!1,e.transfer_effects(a(Ye,this),a(Ue,this))}function on(e){var t=T,n=w,r=L;pt(a(q,this)),at(a(q,this)),ye(a(q,this).ctx);try{return Ft.ensure(),e()}finally{pt(t),at(n),ye(r)}}function $r(e,t){if(!this.has_pending_snippet()){if(this.parent){var n;g(I,n=this.parent,$r).call(n,e,t)}return}v(_t,this,a(_t,this)+e),a(_t,this)===0&&(g(I,this,_e).call(this,t),a(j,this)&&Me(a(j,this),()=>{v(j,this,null)}),a(vt,this)&&(a(Z,this).before(a(vt,this)),v(vt,this,null)))}function Tn(e){a(tt,this)&&(J(a(tt,this)),v(tt,this,null)),a(j,this)&&(J(a(j,this)),v(j,this,null)),a(Y,this)&&(J(a(Y,this)),v(Y,this,null)),U&&(Ut(a(Ve,this)),ni(),Ut(ri()));let t=a(it,this).failed;const n=r=>{const{reset:i,invoke_onerror:s}=g(I,this,wr).call(this,r);s(),t&&v(Y,this,g(I,this,on).call(this,()=>{try{return Ct(()=>{var o=T;o.b=this,o.f|=128,t(a(Z,this),()=>r,()=>i)})}catch(o){return dt(o,a(q,this).parent),null}}))};Tt(()=>{var r;try{r=this.transform_error(e)}catch(i){dt(i,a(q,this)&&a(q,this).parent);return}r!==null&&typeof r=="object"&&typeof r.then=="function"?r.then(n,i=>dt(i,a(q,this)&&a(q,this).parent)):n(r)})}function _r(e,t){return Tr(e,t)}function rs(e,t){Xe(),t.intro=t.intro??!1;const n=t.target,r=U,i=W;try{for(var s=ze(n);s&&(s.nodeType!==8||s.data!=="[");)s=Bt(s);if(!s)throw me;re(!0),Ut(s);const o=Tr(e,{...t,anchor:s});return re(!1),o}catch(o){if(o instanceof Error&&o.message.split(`
2
+ `).some(l=>l.startsWith("https://svelte.dev/e/")))throw o;return o!==me&&console.warn("Failed to hydrate: ",o),t.recover===!1&&ci(),Xe(),Ii(n),re(!1),_r(e,t)}finally{re(r),Ut(i)}}var ce=new Map;function Tr(e,{target:t,anchor:n,props:r={},events:i,context:s,intro:o=!0,transformError:l}){Xe();var c=void 0,h=Hi(()=>{var f=n??t.appendChild(lr());Qi(f,{pending:()=>{}},b=>{Dn({});var E=L;if(s&&(E.c=s),i&&(r.$$events=i),U&&fe(b,null),c=e(b,r)||Ze(),U&&(T.nodes.end=W,W===null||W.nodeType!==8||W.data!=="]"))throw Gn(),me;qn()},l);var d=new Set,y=b=>{for(var E=0;E<b.length;E++){var _=b[E];if(!d.has(_)){d.add(_);var z=Yi(_);for(const m of[t,document]){var H=ce.get(m);H===void 0&&(H=new Map,ce.set(m,H));var G=H.get(_);G===void 0?(m.addEventListener(_,$n,{passive:z}),H.set(_,1)):H.set(_,G+1)}}}};return y(Gr(Di)),En.add(y),()=>{for(var b of d)for(const z of[t,document]){var E=ce.get(z),_=E.get(b);--_==0?(z.removeEventListener(b,$n),E.delete(b),E.size===0&&ce.delete(z)):E.set(b,_)}En.delete(y),f!==n&&f.parentNode?.removeChild(f)}});return Je.set(c,h),c}var Je=new WeakMap;function is(e,t){const n=Je.get(e);return n?(Je.delete(e),n(t)):Promise.resolve()}var Cr,Nt=new WeakMap,Te=new WeakMap,We=new WeakMap,Cn=new WeakSet,kr=class{constructor(e){nn(this,Cn),S(this,Nt,new WeakMap),S(this,Te,void 0),S(this,We,void 0),v(We,this,e)}observe(e,t){var n=a(Nt,this).get(e)||new Set;return n.add(t),a(Nt,this).set(e,n),g(Cn,this,ss).call(this).observe(e,a(We,this)),()=>{var r=a(Nt,this).get(e);r.delete(t),r.size===0&&(a(Nt,this).delete(e),a(Te,this).unobserve(e))}}};Cr=kr;function ss(){return a(Te,this)??v(Te,this,new ResizeObserver(e=>{for(var t of e){Cr.entries.set(t.target,t);for(var n of a(Nt,this).get(t.target)||[])n(t)}}))}u(kr,"entries",new WeakMap);function Ge(e,t){return e===t||e?.[jt]===t}function as(e=Ze(),t,n,r){var i=L.r,s=T;return xi(()=>{var o,l;return sn(()=>{o=l,l=r?.()||[],Oe(()=>{Ge(n(...l),e)||(t(e,...l),o&&Ge(n(...o),e)&&t(null,...o))})}),()=>{let c=s;for(;c!==i&&c.parent!==null&&c.parent.f&33554432;)c=c.parent;const h=()=>{l&&Ge(n(...l),e)&&t(null,...l)},f=c.teardown;c.teardown=()=>{h(),f?.()}}}),e}var ue=!1;function os(e){var t=ue;try{return ue=!1,[e(),ue]}finally{ue=t}}function Dt(e,t,n,r){var i=!ke||(n&2)!==0,s=(n&8)!==0,o=(n&16)!==0,l=r,c=!0,h=void 0,f=()=>o&&i?(h??(h=be(r)),A(h)):(c&&(c=!1,l=o?Oe(r):r),l);let d;if(s){var y=jt in e||Wn in e;d=wt(e,t)?.set??(y&&t in e?x=>e[t]=x:void 0)}var b,E=!1;s?[b,E]=os(()=>e[t]):b=e[t],b===void 0&&r!==void 0&&(b=f(),d&&(i&&ui(t),d(b)));var _;if(i?_=()=>{var x=e[t];return x===void 0?f():(c=!0,x)}:_=()=>{var x=e[t];return x!==void 0&&(l=void 0),x===void 0?l:x},i&&(n&4)===0)return _;if(d){var z=e.$$legacy;return(function(x,ne){return arguments.length>0?((!i||!ne||z||E)&&d(ne?_():x),x):_()})}var H=!1,G=((n&1)!==0?be:yi)(()=>(H=!1,_()));s&&A(G);var m=T;return(function(x,ne){if(arguments.length>0){const cn=ne?A(G):i&&s?Wt(x):x;return O(G,cn),H=!0,l!==void 0&&(l=cn),x}return ht&&H||(m.f&16384)!==0?G.v:A(G)})}function ls(e){return new cs(e)}var gt=new WeakMap,nt=new WeakMap,cs=class{constructor(e){S(this,gt,void 0),S(this,nt,void 0);var t=new Map,n=(i,s)=>{var o=Ci(s,!1,!1);return t.set(i,o),o};const r=new Proxy({...e.props||{},$$events:{}},{get(i,s){return A(t.get(s)??n(s,Reflect.get(i,s)))},has(i,s){return s===Wn?!0:(A(t.get(s)??n(s,Reflect.get(i,s))),Reflect.has(i,s))},set(i,s,o){return O(t.get(s)??n(s,o),o),Reflect.set(i,s,o)}});v(nt,this,(e.hydrate?rs:_r)(e.component,{target:e.target,anchor:e.anchor,props:r,context:e.context,intro:e.intro??!1,recover:e.recover,transformError:e.transformError})),(!e?.props?.$$host||e.sync===!1)&&Ht(),v(gt,this,r.$$events);for(const i of Object.keys(a(nt,this)))i==="$set"||i==="$destroy"||i==="$on"||Vt(this,i,{get(){return a(nt,this)[i]},set(s){a(nt,this)[i]=s},enumerable:!0});a(nt,this).$set=i=>{Object.assign(r,i)},a(nt,this).$destroy=()=>{is(a(nt,this))}}$set(e){a(nt,this).$set(e)}$on(e,t){a(gt,this)[e]=a(gt,this)[e]||[];const n=(...r)=>t.call(this,...r);return a(gt,this)[e].push(n),()=>{a(gt,this)[e]=a(gt,this)[e].filter(r=>r!==n)}}$destroy(){a(nt,this).$destroy()}},Ir;typeof HTMLElement=="function"&&(Ir=class extends HTMLElement{constructor(e,t,n){super(),u(this,"$$ctor",void 0),u(this,"$$s",void 0),u(this,"$$c",void 0),u(this,"$$cn",!1),u(this,"$$d",{}),u(this,"$$r",!1),u(this,"$$p_d",{}),u(this,"$$l",{}),u(this,"$$l_u",new Map),u(this,"$$me",void 0),u(this,"$$shadowRoot",null),this.$$ctor=e,this.$$s=t,n&&(this.$$shadowRoot=this.attachShadow(n))}addEventListener(e,t,n){if(this.$$l[e]=this.$$l[e]||[],this.$$l[e].push(t),this.$$c){const r=this.$$c.$on(e,t);this.$$l_u.set(t,r)}super.addEventListener(e,t,n)}removeEventListener(e,t,n){if(super.removeEventListener(e,t,n),this.$$c){const r=this.$$l_u.get(t);r&&(r(),this.$$l_u.delete(t))}}async connectedCallback(){if(this.$$cn=!0,!this.$$c){let e=function(r){return i=>{const s=cr("slot");r!=="default"&&(s.name=r),Ar(i,s)}};if(await Promise.resolve(),!this.$$cn||this.$$c)return;const t={},n=us(this);for(const r of this.$$s)r in n&&(r==="default"&&!this.$$d.children?(this.$$d.children=e(r),t.default=!0):t[r]=e(r));for(const r of this.attributes){const i=this.$$g_p(r.name);i in this.$$d||(this.$$d[i]=de(i,r.value,this.$$p_d,"toProp"))}for(const r in this.$$p_d)!(r in this.$$d)&&this[r]!==void 0&&(this.$$d[r]=this[r],delete this[r]);this.$$c=ls({component:this.$$ctor,target:this.$$shadowRoot||this,props:{...this.$$d,$$slots:t,$$host:this}}),this.$$me=Oi(()=>{sn(()=>{this.$$r=!0;for(const r of ge(this.$$c)){if(!this.$$p_d[r]?.reflect)continue;this.$$d[r]=this.$$c[r];const i=de(r,this.$$d[r],this.$$p_d,"toAttribute");i==null?this.removeAttribute(this.$$p_d[r].attribute||r):this.setAttribute(this.$$p_d[r].attribute||r,i)}this.$$r=!1})});for(const r in this.$$l)for(const i of this.$$l[r]){const s=this.$$c.$on(r,i);this.$$l_u.set(i,s)}this.$$l={}}}attributeChangedCallback(e,t,n){this.$$r||(e=this.$$g_p(e),this.$$d[e]=de(e,n,this.$$p_d,"toProp"),this.$$c?.$set({[e]:this.$$d[e]}))}disconnectedCallback(){this.$$cn=!1,Promise.resolve().then(()=>{!this.$$cn&&this.$$c&&(this.$$c.$destroy(),this.$$me(),this.$$c=void 0)})}$$g_p(e){return ge(this.$$p_d).find(t=>this.$$p_d[t].attribute===e||!this.$$p_d[t].attribute&&t.toLowerCase()===e)||e}});function de(e,t,n,r){const i=n[e]?.type;if(t=i==="Boolean"&&typeof t!="boolean"?t!=null:t,!r||!n[e])return t;if(r==="toAttribute")switch(i){case"Object":case"Array":return t==null?null:JSON.stringify(t);case"Boolean":return t?"":null;case"Number":return t??null;default:return t}else switch(i){case"Object":case"Array":return t&&JSON.parse(t);case"Boolean":return t;case"Number":return t!=null?+t:t;default:return t}}function us(e){const t={};return e.childNodes.forEach(n=>{t[n.slot||"default"]=!0}),t}function hs(e,t,n,r,i,s){let o=class extends Ir{constructor(){super(e,n,i),this.$$p_d=t}static get observedAttributes(){return ge(t).map(l=>(t[l].attribute||l).toLowerCase())}};return ge(t).forEach(l=>{Vt(o.prototype,l,{get(){return this.$$c&&l in this.$$c?this.$$c[l]:this.$$d[l]},set(c){c=de(l,c,t),this.$$d[l]=c;var h=this.$$c;h&&(wt(h,l)?.get?h[l]=c:h.$set({[l]:c}))}})}),r.forEach(l=>{Vt(o.prototype,l,{get(){return this.$$c?.[l]}})}),s&&(o=s(o)),e.element=o,o}var Lr,lt=class F{findChoices(t){t.setAttribute(F.ROOT_HOOK_ATTR,"true");const n=Array.from(t.querySelectorAll(F.CHOICE_SELECTOR));for(const r of n)this.annotateChoice(r);return this.annotateFeedbackTicks(t),n}createChoiceRange(t){const n=this.resolveLabelElement(t);if(!n)return null;const r=document.createRange();return r.selectNodeContents(n),r}getChoiceId(t){const n=t.querySelector('input[type="checkbox"], input[type="radio"]');return n?.getAttribute("value")||n?.id||this.generateFallbackId(t)}getChoiceLabel(t){return this.resolveLabelElement(t)?.textContent?.trim()||"Unlabeled choice"}isSelected(t){const n=t.querySelector('input[type="checkbox"], input[type="radio"]');return n?n.checked||n.getAttribute("aria-checked")==="true":!1}canEliminate(t){const n=t.querySelector('input[type="checkbox"], input[type="radio"]');return!(!n||this.isSelected(t)||n.disabled||(t.closest(`[${F.ROOT_HOOK_ATTR}="true"]`)||t.closest("multiple-choice"))?.querySelector(`[${F.FEEDBACK_HOOK_ATTR}="true"]`))}setSelectable(t,n){const r=t.querySelector('input[type="checkbox"], input[type="radio"]');if(!r)return;r.disabled=!n,n?r.removeAttribute("aria-disabled"):r.setAttribute("aria-disabled","true");const i=r.closest(F.MUI_BUTTON_SELECTOR);i&&i.classList.toggle(F.MUI_DISABLED_CLASS,!n)}generateFallbackId(t){const n=(t.closest(`[${F.ROOT_HOOK_ATTR}="true"]`)||t.closest("multiple-choice"))?.querySelectorAll(`[${F.CHOICE_HOOK_ATTR}="true"]`)||[];return`choice-${Array.from(n).indexOf(t)}`}annotateChoice(t){t.setAttribute(F.CHOICE_HOOK_ATTR,"true");const n=this.resolveLabelElement(t);n&&n.setAttribute(F.LABEL_HOOK_ATTR,"true")}resolveLabelElement(t){return t.querySelector(`[${F.LABEL_HOOK_ATTR}="true"]`)||t.querySelector("label")||t.querySelector("span")}annotateFeedbackTicks(t){for(const n of t.querySelectorAll(".feedback-tick"))n.setAttribute(F.FEEDBACK_HOOK_ATTR,"true")}};Lr=lt;u(lt,"CHOICE_HOOK_ATTR","data-pie-answer-eliminator-choice");u(lt,"LABEL_HOOK_ATTR","data-pie-answer-eliminator-label");u(lt,"ROOT_HOOK_ATTR","data-pie-answer-eliminator-root");u(lt,"FEEDBACK_HOOK_ATTR","data-pie-answer-eliminator-feedback-tick");u(lt,"CHOICE_SELECTOR",`[${Lr.CHOICE_HOOK_ATTR}="true"], .corespring-checkbox, .corespring-radio-button`);u(lt,"MUI_BUTTON_SELECTOR",".MuiButtonBase-root, .MuiRadio-root, .MuiCheckbox-root");u(lt,"MUI_DISABLED_CLASS","Mui-disabled");var fs="ebsr-multiple-choice",Rr=e=>e instanceof HTMLElement&&Hr(e.tagName.toLowerCase()).baseName===fs,kn=(e,t)=>Array.from(e.querySelectorAll(`[id="${t}"]`)).find(Rr)??null,ds=e=>{let t=e.parentElement;for(;t!==null;){if(Rr(t))return t;t=t.parentElement}return null},vs=class{constructor(){u(this,"mcAdapter",new lt)}findChoices(e){const t=kn(e,"a"),n=kn(e,"b"),r=[];return t&&r.push(...this.mcAdapter.findChoices(t)),n&&r.push(...this.mcAdapter.findChoices(n)),r}createChoiceRange(e){return this.mcAdapter.createChoiceRange(e)}getChoiceId(e){return`${ds(e)?.id||"unknown"}-${this.mcAdapter.getChoiceId(e)}`}getChoiceLabel(e){return this.mcAdapter.getChoiceLabel(e)}isSelected(e){return this.mcAdapter.isSelected(e)}canEliminate(e){return this.mcAdapter.canEliminate(e)}setSelectable(e,t){this.mcAdapter.setSelectable(e,t)}},In="answer-masking",ps="data-pie-answer-eliminator-choice",ms="data-pie-answer-eliminator-label";function Mr(e){if(!e.localName.includes("-"))return null;try{const t=e.constructor.pieSupports;return Array.isArray(t)?t:null}catch{return null}}function gs(e){const t=[];for(const n of[e,...e.querySelectorAll("*")])Mr(n)&&(t.some(r=>r.contains(n))||t.push(n));return t}function ve(e,t,n){try{return e()}catch(r){return console.error(`[AnswerEliminator] ${n} threw:`,r),t}}function ys(e){if(!e||typeof e!="object")return null;const t=e,{id:n,label:r,container:i,content:s}=t,{isSelected:o,isEliminable:l,setEliminated:c}=t;return typeof n!="string"||!n||typeof r!="string"||!(i instanceof HTMLElement)||!(s instanceof Element)||!i.contains(s)||typeof o!="function"||typeof l!="function"||typeof c!="function"?null:{target:{id:n,label:r.trim()||s.textContent?.trim()||"Unlabeled choice",container:i,createRange(){const h=document.createRange();return h.selectNodeContents(s),h},isSelected:()=>ve(()=>o.call(e)===!0,!1,"isSelected"),canEliminate:()=>ve(()=>l.call(e)===!0,!1,"isEliminable"),setEliminated:h=>ve(()=>c.call(e,h),void 0,"setEliminated")},content:s}}function Ln(e,t){e.getAttribute(t)!=="true"&&e.setAttribute(t,"true")}function bs(e){if(!Mr(e)?.includes("answer-masking"))return[];const t=e.pieSupportTargets;if(typeof t!="function")return console.warn(`[AnswerEliminator] <${e.localName}> declares ${In} but has no pieSupportTargets()`),[];const n=ve(()=>t.call(e,In),[],`<${e.localName}>.pieSupportTargets`);if(!Array.isArray(n))return[];const r=[],i=new Set;for(const s of n){const o=ys(s);if(!o||i.has(o.target.id)){console.warn(`[AnswerEliminator] <${e.localName}> supplied a choice that is malformed or repeats an id`,s);continue}const{target:l,content:c}=o;i.add(l.id),Ln(l.container,ps),Ln(c,ms),r.push({target:l,owner:e})}return r}var Ss=[new vs,new lt];function As(e,t){return{id:t.getChoiceId(e),label:t.getChoiceLabel(e),container:e,createRange:()=>t.createChoiceRange(e),isSelected:()=>t.isSelected(e),canEliminate:()=>t.canEliminate(e),setEliminated:n=>t.setSelectable(e,!n)}}function ws(e,t,n){const r=[],i=new Set(n.map(({target:s})=>s.container));for(const s of Ss)for(const o of s.findChoices(e))i.has(o)||(i.add(o),!t.some(l=>l.contains(o))&&r.push({target:As(o,s),owner:null}));return r}function Rn(e){const t=gs(e),n=t.flatMap(bs);return[...n,...ws(e,t,n)]}var Lt=class N{constructor(){u(this,"name","mask"),u(this,"highlights",new Map),u(this,"ranges",new Map),u(this,"fallbackContainers",new Map)}initialize(){}destroy(){this.clearAll()}apply(t,n){if(!this.isSupported()){this.applyFallback(t,n);return}this.injectHighlightCSS(t);const r=new Highlight(n);CSS.highlights.set(`${N.HIGHLIGHT_NAME_PREFIX}${t}`,r),this.highlights.set(t,r),this.ranges.set(t,n),this.addAriaAttributes(n)}remove(t){if(!this.isSupported()){this.removeFallback(t);return}CSS.highlights.delete(`${N.HIGHLIGHT_NAME_PREFIX}${t}`),this.removeHighlightCSS(t);const n=this.ranges.get(t);n&&this.removeAriaAttributes(n),this.highlights.delete(t),this.ranges.delete(t),this.fallbackContainers.delete(t)}isEliminated(t){return this.highlights.has(t)||this.fallbackContainers.has(t)}clearAll(){for(const t of this.getEliminatedIds())this.remove(t);this.fallbackContainers.clear()}getEliminatedIds(){return Array.from(new Set([...this.highlights.keys(),...this.fallbackContainers.keys()]))}isSupported(){return typeof CSS<"u"&&"highlights"in CSS}injectHighlightCSS(t){const n=`${N.HIGHLIGHT_STYLE_PREFIX}${t}`;if(document.getElementById(n))return;const r=document.createElement("style");r.id=n,r.textContent=`
3
3
  ::highlight(${N.HIGHLIGHT_NAME_PREFIX}${t}) {
4
4
  opacity: 0.2;
5
5
  filter: blur(2px);
6
6
  }
7
- `,document.head.appendChild(n)}removeHighlightCSS(t){document.getElementById(`${N.HIGHLIGHT_STYLE_PREFIX}${t}`)?.remove()}addAriaAttributes(t){const r=this.findChoiceContainer(t);r&&(r.setAttribute(N.ELIMINATED_ATTR,"true"),r.setAttribute("aria-hidden","true"))}removeAriaAttributes(t){const r=this.findChoiceContainer(t);r&&(r.removeAttribute(N.ELIMINATED_ATTR),r.removeAttribute("aria-hidden"))}findChoiceContainer(t){let r=t.startContainer;for(r.nodeType===Node.TEXT_NODE&&(r=r.parentElement);r&&r!==document.body;){if(r.getAttribute(N.CHOICE_HOOK_ATTR)==="true")return r;r=r.parentElement}return null}applyFallback(t,r){const n=this.findChoiceContainer(r);n&&(n.classList.add(N.FALLBACK_CLASS),n.setAttribute(N.ELIMINATED_ATTR,"true"),n.setAttribute(N.ELIMINATED_ID_ATTR,t),this.fallbackContainers.set(t,n),this.addAriaAttributes(r))}removeFallback(t){const r=this.fallbackContainers.get(t);if(!r)return;r.classList.remove(N.FALLBACK_CLASS),r.removeAttribute(N.ELIMINATED_ATTR),r.removeAttribute(N.ELIMINATED_ID_ATTR);const n=document.createRange();n.selectNodeContents(r),this.removeAriaAttributes(n),this.fallbackContainers.delete(t)}};l(Lt,"HIGHLIGHT_STYLE_PREFIX","pie-answer-eliminator-mask-highlight-");l(Lt,"HIGHLIGHT_NAME_PREFIX","pie-answer-masked-");l(Lt,"FALLBACK_CLASS","pie-answer-masked-fallback");l(Lt,"CHOICE_HOOK_ATTR","data-pie-answer-eliminator-choice");l(Lt,"ELIMINATED_ATTR","data-pie-answer-eliminated");l(Lt,"ELIMINATED_ID_ATTR","data-pie-answer-eliminated-id");var C=class p{constructor(){l(this,"name","strikethrough"),l(this,"highlights",new Map),l(this,"ranges",new Map),l(this,"fallbackContainers",new Map),l(this,"imageWrappers",new Map),l(this,"mathTargets",new Map)}initialize(){this.isSupported()||console.warn("CSS Custom Highlight API not supported, using fallback")}destroy(){this.clearAll()}apply(t,r){if(this.isSupported()){this.injectHighlightCSS(t);const n=new Highlight(r);CSS.highlights.set(`${p.HIGHLIGHT_NAME_PREFIX}${t}`,n),this.highlights.set(t,n),this.ranges.set(t,r),this.addAriaAttributes(r)}else this.applyFallback(t,r);this.strikeImages(t,r),this.strikeMath(t,r)}remove(t){if(this.unstrikeImages(t),this.unstrikeMath(t),!this.isSupported()){this.removeFallback(t);return}CSS.highlights.delete(`${p.HIGHLIGHT_NAME_PREFIX}${t}`),this.removeHighlightCSS(t);const r=this.ranges.get(t);r&&this.removeAriaAttributes(r),this.highlights.delete(t),this.ranges.delete(t),this.fallbackContainers.delete(t)}isEliminated(t){return this.highlights.has(t)||this.fallbackContainers.has(t)}clearAll(){const t=new Set([...this.highlights.keys(),...this.fallbackContainers.keys(),...this.imageWrappers.keys(),...this.mathTargets.keys()]);for(const r of t)this.remove(r);this.fallbackContainers.clear(),this.imageWrappers.clear(),this.mathTargets.clear()}getEliminatedIds(){return Array.from(new Set([...this.highlights.keys(),...this.fallbackContainers.keys()]))}isSupported(){return typeof CSS<"u"&&"highlights"in CSS}injectHighlightCSS(t){const r=`${p.HIGHLIGHT_STYLE_PREFIX}${t}`;if(document.getElementById(r))return;const n=document.createElement("style");n.id=r,n.textContent=`
7
+ `,document.head.appendChild(r)}removeHighlightCSS(t){document.getElementById(`${N.HIGHLIGHT_STYLE_PREFIX}${t}`)?.remove()}addAriaAttributes(t){const n=this.findChoiceContainer(t);n&&(n.setAttribute(N.ELIMINATED_ATTR,"true"),n.setAttribute("aria-hidden","true"))}removeAriaAttributes(t){const n=this.findChoiceContainer(t);n&&(n.removeAttribute(N.ELIMINATED_ATTR),n.removeAttribute("aria-hidden"))}findChoiceContainer(t){let n=t.startContainer;for(n.nodeType===Node.TEXT_NODE&&(n=n.parentElement);n&&n!==document.body;){if(n.getAttribute(N.CHOICE_HOOK_ATTR)==="true")return n;n=n.parentElement}return null}applyFallback(t,n){const r=this.findChoiceContainer(n);r&&(r.classList.add(N.FALLBACK_CLASS),r.setAttribute(N.ELIMINATED_ATTR,"true"),r.setAttribute(N.ELIMINATED_ID_ATTR,t),this.fallbackContainers.set(t,r),this.addAriaAttributes(n))}removeFallback(t){const n=this.fallbackContainers.get(t);if(!n)return;n.classList.remove(N.FALLBACK_CLASS),n.removeAttribute(N.ELIMINATED_ATTR),n.removeAttribute(N.ELIMINATED_ID_ATTR);const r=document.createRange();r.selectNodeContents(n),this.removeAriaAttributes(r),this.fallbackContainers.delete(t)}};u(Lt,"HIGHLIGHT_STYLE_PREFIX","pie-answer-eliminator-mask-highlight-");u(Lt,"HIGHLIGHT_NAME_PREFIX","pie-answer-masked-");u(Lt,"FALLBACK_CLASS","pie-answer-masked-fallback");u(Lt,"CHOICE_HOOK_ATTR","data-pie-answer-eliminator-choice");u(Lt,"ELIMINATED_ATTR","data-pie-answer-eliminated");u(Lt,"ELIMINATED_ID_ATTR","data-pie-answer-eliminated-id");var C=class p{constructor(){u(this,"name","strikethrough"),u(this,"highlights",new Map),u(this,"ranges",new Map),u(this,"fallbackContainers",new Map),u(this,"imageWrappers",new Map),u(this,"mathTargets",new Map)}initialize(){this.isSupported()||console.warn("CSS Custom Highlight API not supported, using fallback")}destroy(){this.clearAll()}apply(t,n){if(this.isSupported()){this.injectHighlightCSS(t);const r=new Highlight(n);CSS.highlights.set(`${p.HIGHLIGHT_NAME_PREFIX}${t}`,r),this.highlights.set(t,r),this.ranges.set(t,n),this.addAriaAttributes(n)}else this.applyFallback(t,n);this.strikeImages(t,n),this.strikeMath(t,n)}remove(t){if(this.unstrikeImages(t),this.unstrikeMath(t),!this.isSupported()){this.removeFallback(t);return}CSS.highlights.delete(`${p.HIGHLIGHT_NAME_PREFIX}${t}`),this.removeHighlightCSS(t);const n=this.ranges.get(t);n&&this.removeAriaAttributes(n),this.highlights.delete(t),this.ranges.delete(t),this.fallbackContainers.delete(t)}isEliminated(t){return this.highlights.has(t)||this.fallbackContainers.has(t)}clearAll(){const t=new Set([...this.highlights.keys(),...this.fallbackContainers.keys(),...this.imageWrappers.keys(),...this.mathTargets.keys()]);for(const n of t)this.remove(n);this.fallbackContainers.clear(),this.imageWrappers.clear(),this.mathTargets.clear()}getEliminatedIds(){return Array.from(new Set([...this.highlights.keys(),...this.fallbackContainers.keys()]))}isSupported(){return typeof CSS<"u"&&"highlights"in CSS}injectHighlightCSS(t){const n=`${p.HIGHLIGHT_STYLE_PREFIX}${t}`;if(document.getElementById(n))return;const r=document.createElement("style");r.id=n,r.textContent=`
8
8
  ::highlight(${p.HIGHLIGHT_NAME_PREFIX}${t}) {
9
9
  text-decoration: line-through;
10
10
  text-decoration-thickness: 2px;
11
11
  text-decoration-color: var(--pie-answer-eliminator-strike-color, var(--pie-incorrect, #ff9800));
12
12
  }
13
- `,document.head.appendChild(n)}removeHighlightCSS(t){document.getElementById(`${p.HIGHLIGHT_STYLE_PREFIX}${t}`)?.remove()}addAriaAttributes(t){const r=this.findChoiceContainer(t);if(!r)return;r.setAttribute(p.ELIMINATED_ATTR,"true"),r.setAttribute("aria-disabled","true");const n=this.resolveLabelElement(r);if(n&&!n.querySelector(`.${p.SR_CLASS}`)){const i=document.createElement("span");i.className=p.SR_CLASS,i.textContent=" (eliminated)",n.appendChild(i)}}removeAriaAttributes(t){const r=this.findChoiceContainer(t);r&&(r.removeAttribute(p.ELIMINATED_ATTR),r.removeAttribute("aria-disabled"),r.querySelector(`.${p.SR_CLASS}`)?.remove())}findChoiceContainer(t){let r=t.startContainer;for(r.nodeType===Node.TEXT_NODE&&(r=r.parentElement);r&&r!==document.body;){if(r.getAttribute(p.CHOICE_HOOK_ATTR)==="true")return r;r=r.parentElement}return null}applyFallback(t,r){const n=this.findChoiceContainer(r);n&&(n.classList.add(p.FALLBACK_CLASS),n.setAttribute(p.ELIMINATED_ATTR,"true"),n.setAttribute(p.ELIMINATED_ID_ATTR,t),this.fallbackContainers.set(t,n),this.addAriaAttributes(r))}removeFallback(t){const r=this.fallbackContainers.get(t);if(!r)return;r.classList.remove(p.FALLBACK_CLASS),r.removeAttribute(p.ELIMINATED_ATTR),r.removeAttribute(p.ELIMINATED_ID_ATTR);const n=document.createRange();n.selectNodeContents(r),this.removeAriaAttributes(n),this.fallbackContainers.delete(t)}strikeImages(t,r){const n=this.resolveImageScope(r);if(!n)return;const i=[];for(const s of Array.from(n.querySelectorAll("img"))){const o=this.wrapImage(s);o&&i.push(o)}i.length>0&&this.imageWrappers.set(t,i)}unstrikeImages(t){const r=this.imageWrappers.get(t);if(r){for(const n of r)this.unwrapImage(n);this.imageWrappers.delete(t)}}strikeMath(t,r){const n=this.resolveImageScope(r);if(!n)return;const i=[];for(const s of n.querySelectorAll(p.MATH_SELECTOR)){const o=s.querySelector(p.MATH_BOX_SELECTOR)??s,u=!!o.querySelector(p.MATH_STACKED_SELECTOR);o.classList.add(p.MATH_STRIKE_CLASS,u?p.MATH_STRIKE_CROSS_CLASS:p.MATH_STRIKE_LINE_CLASS),o.setAttribute(p.MATH_STRIKE_ATTR,u?"cross":"line"),i.push(o)}i.length>0&&this.mathTargets.set(t,i)}unstrikeMath(t){const r=this.mathTargets.get(t);if(r){for(const n of r)n.classList.remove(p.MATH_STRIKE_CLASS,p.MATH_STRIKE_LINE_CLASS,p.MATH_STRIKE_CROSS_CLASS),n.removeAttribute(p.MATH_STRIKE_ATTR);this.mathTargets.delete(t)}}resolveImageScope(t){const r=t.commonAncestorContainer;return(r.nodeType===Node.TEXT_NODE?r.parentElement:r)??this.findChoiceContainer(t)}wrapImage(t){const r=t.parentElement;if(!r)return null;if(r.classList.contains(p.IMAGE_WRAPPER_CLASS)||r.hasAttribute(p.IMAGE_WRAPPER_ATTR))return r;const n=document.createElement("span");return n.className=p.IMAGE_WRAPPER_CLASS,n.setAttribute(p.IMAGE_WRAPPER_ATTR,"true"),this.fillsParentWidth(t,r)?n.style.display="block":p.BLOCK_DISPLAYS.has(getComputedStyle(t).display)&&(n.style.display="block",n.style.width="fit-content"),r.insertBefore(n,t),n.appendChild(t),n.appendChild(this.createImageStrikeOverlay()),n}fillsParentWidth(t,r){const n=t.getBoundingClientRect().width,i=r.clientWidth;return n===0||i===0?!1:n>=i-1}unwrapImage(t){t.querySelector(`.${p.IMAGE_OVERLAY_CLASS}`)?.remove();const r=t.parentElement;if(r){for(;t.firstChild;)r.insertBefore(t.firstChild,t);t.remove()}}createImageStrikeOverlay(){const t=document.createElementNS(p.SVG_NS,"svg");t.setAttribute("class",p.IMAGE_OVERLAY_CLASS),t.setAttribute("viewBox","0 0 100 100"),t.setAttribute("preserveAspectRatio","none"),t.setAttribute("aria-hidden","true"),t.setAttribute("focusable","false");const r=[{x1:"0",y1:"0",x2:"100",y2:"100"},{x1:"0",y1:"100",x2:"100",y2:"0"}];for(const n of[p.IMAGE_CASING_CLASS,p.IMAGE_LINE_CLASS])for(const{x1:i,y1:s,x2:o,y2:u}of r){const h=document.createElementNS(p.SVG_NS,"line");h.setAttribute("class",n),h.setAttribute("x1",i),h.setAttribute("y1",s),h.setAttribute("x2",o),h.setAttribute("y2",u),h.setAttribute("vector-effect","non-scaling-stroke"),t.appendChild(h)}return t}resolveLabelElement(t){return t.querySelector(`[${p.LABEL_HOOK_ATTR}="true"]`)||t.querySelector("label")}};l(C,"HIGHLIGHT_STYLE_PREFIX","pie-answer-eliminator-highlight-");l(C,"HIGHLIGHT_NAME_PREFIX","pie-answer-eliminated-");l(C,"FALLBACK_CLASS","pie-answer-eliminator-eliminated-fallback");l(C,"SR_CLASS","pie-answer-eliminator-sr-announcement");l(C,"CHOICE_HOOK_ATTR","data-pie-answer-eliminator-choice");l(C,"LABEL_HOOK_ATTR","data-pie-answer-eliminator-label");l(C,"ELIMINATED_ATTR","data-pie-answer-eliminated");l(C,"ELIMINATED_ID_ATTR","data-pie-answer-eliminated-id");l(C,"IMAGE_WRAPPER_CLASS","pie-answer-eliminator-image-strike");l(C,"IMAGE_WRAPPER_ATTR","data-pie-answer-eliminator-image-strike");l(C,"IMAGE_OVERLAY_CLASS","pie-answer-eliminator-image-strike-overlay");l(C,"IMAGE_LINE_CLASS","pie-answer-eliminator-image-strike-line");l(C,"IMAGE_CASING_CLASS","pie-answer-eliminator-image-strike-casing");l(C,"MATH_STRIKE_CLASS","pie-answer-eliminator-math-strike");l(C,"MATH_STRIKE_LINE_CLASS","pie-answer-eliminator-math-strike--line");l(C,"MATH_STRIKE_CROSS_CLASS","pie-answer-eliminator-math-strike--cross");l(C,"MATH_STRIKE_ATTR","data-pie-answer-eliminator-math-strike");l(C,"MATH_STACKED_SELECTOR","mjx-mfrac, mjx-mtable");l(C,"MATH_BOX_SELECTOR","mjx-math");l(C,"MATH_SELECTOR","mjx-container");l(C,"SVG_NS","http://www.w3.org/2000/svg");l(C,"BLOCK_DISPLAYS",new Set(["block","flex","grid","table","flow-root","list-item"]));var kr="answerEliminator",or=class ve{constructor(t="strikethrough",r="right"){l(this,"registry",void 0),l(this,"strategy",void 0),l(this,"choices",new Map),l(this,"eliminated",new Set),l(this,"strategyKeys",new Map),l(this,"anonymousGroups",new WeakMap),l(this,"nextToken",0),l(this,"buttonAlignment","right"),l(this,"shouldRestoreState",!0),l(this,"active",!0),l(this,"questionRoot",null),l(this,"selectionChangeHandler",null),l(this,"selectionObserver",null),l(this,"selectionRefreshFrame",null),l(this,"store",null),l(this,"elementStateKeys",{}),this.registry=new cs,this.strategy=this.createStrategy(t),this.strategy.initialize(),this.buttonAlignment=r}createStrategy(t){return t==="mask"?new Lt:new C}initializeForQuestion(t){this.active=!0;const r=new Set(this.eliminated);this.restoreAllSelectable(),this.strategy.clearAll(),this.eliminated.clear(),this.cleanupButtons();const n=this.registry.findAllChoicesWithAdapters(t);for(const{choice:s,adapter:o}of n)this.initializeChoice(s,o,t);const i=this.readPersistedEliminations();for(const[s,o]of this.choices)(i.has(o.group)?i.get(o.group)?.has(o.choiceId):r.has(s))&&this.applyElimination(s,o);this.attachSelectionListener(t)}trackingKey(t,r){return`${t}\0${r}`}resolveGroup(t,r){let n=null;for(let o=t.parentElement;o!==null;o=o===r?null:o.parentElement){if(o.id&&Object.hasOwn(this.elementStateKeys,o.id))return o.id;n===null&&o.localName.includes("-")&&(n=o)}const i=n??r;let s=this.anonymousGroups.get(i);return s||(s=`\0anonymous-${this.nextToken++}`,this.anonymousGroups.set(i,s)),s}strategyKeyFor(t){let r=this.strategyKeys.get(t);return r||(r=`choice-${this.nextToken++}`,this.strategyKeys.set(t,r)),r}initializeChoice(t,r,n){const i=r.getChoiceId(t),s=this.resolveGroup(t,n),o=this.trackingKey(s,i),u={choiceId:i,group:s,strategyKey:this.strategyKeyFor(o),element:t,adapter:r,button:null};this.choices.set(o,u);const h=this.createToggleButton(o,u);u.button=h,this.updateButtonVisibility(o);const c=r.getButtonContainer(t);c&&(c.style.position="relative",c.appendChild(h))}createToggleButton(t,r){const n=r.adapter.getChoiceLabel(r.element),i=document.createElement("button");i.type="button",i.className=ve.TOGGLE_CLASS,i.setAttribute("aria-label",`Toggle elimination for ${n}`),i.setAttribute("aria-pressed","false"),i.setAttribute("data-choice-id",r.choiceId);const s=document.createElement("span");return s.setAttribute("aria-hidden","true"),s.textContent="⊗",i.appendChild(s),this.applyButtonAlignment(i),i.dataset.pieShownDisplay=i.style.display,i.addEventListener("click",o=>{o.preventDefault(),o.stopPropagation(),this.toggleElimination(t)}),i}toggleElimination(t){const r=this.choices.get(t);if(r){if(this.eliminated.has(t))this.restoreChoice(t);else{if(!r.adapter.canEliminate(r.element)){console.warn("Cannot eliminate this choice (already selected or in evaluate mode)");return}if(!this.applyElimination(t,r)){console.error("Failed to create range for choice");return}}this.saveState(r.group)}}applyElimination(t,r){if(r.adapter.isSelected?.(r.element))return!1;const n=r.adapter.createChoiceRange(r.element);return n?(this.strategy.apply(r.strategyKey,n),this.eliminated.add(t),r.adapter.setSelectable?.(r.element,!1),r.button&&(r.button.classList.add(ve.TOGGLE_ACTIVE_CLASS),r.button.setAttribute("aria-pressed","true")),this.updateButtonVisibility(t),!0):!1}restoreChoice(t){const r=this.choices.get(t);this.eliminated.delete(t),r&&(this.strategy.remove(r.strategyKey),r.adapter.setSelectable?.(r.element,!0),r.button&&(r.button.classList.remove(ve.TOGGLE_ACTIVE_CLASS),r.button.setAttribute("aria-pressed","false")),this.updateButtonVisibility(t))}resetAll(){if(this.eliminated.size===0)return;const t=new Set;for(const r of Array.from(this.eliminated)){const n=this.choices.get(r)?.group;n!==void 0&&t.add(n),this.restoreChoice(r)}for(const r of t)this.saveState(r)}getEliminatedCount(){return this.eliminated.size}setStoreIntegration(t,r){this.store=t,this.elementStateKeys=r}saveState(t){if(!this.store||!Object.hasOwn(this.elementStateKeys,t))return;const r=[];for(const n of this.eliminated){const i=this.choices.get(n);i?.group===t&&r.push(i.choiceId)}this.store.setState(this.elementStateKeys[t],kr,{eliminatedChoices:r})}readPersistedEliminations(){const t=new Map;if(!this.store||!this.shouldRestoreState)return t;for(const{group:r}of this.choices.values())if(!(t.has(r)||!Object.hasOwn(this.elementStateKeys,r)))try{const n=this.store.getState(this.elementStateKeys[r],kr),i=Array.isArray(n?.eliminatedChoices)?n.eliminatedChoices.filter(s=>typeof s=="string"):[];t.set(r,new Set(i))}catch(n){console.error("Failed to restore eliminator state:",n)}return t}restoreAllSelectable(){for(const t of this.eliminated){const r=this.choices.get(t);r?.adapter.setSelectable?.(r.element,!0)}}setButtonHidden(t,r){const n=r?"none":t.dataset.pieShownDisplay??"";t.style.display!==n&&(t.style.display=n)}shouldHideButton(t,r){return this.eliminated.has(t)?!1:this.active?r.adapter.isSelected?.(r.element)??!1:!0}updateButtonVisibility(t){const r=this.choices.get(t);r?.button&&this.setButtonHidden(r.button,this.shouldHideButton(t,r))}refreshSelectionState(){for(const t of this.choices.keys())this.updateButtonVisibility(t)}scheduleSelectionRefresh(){this.selectionRefreshFrame===null&&(this.selectionRefreshFrame=requestAnimationFrame(()=>{this.selectionRefreshFrame=null,this.refreshSelectionState()}))}attachSelectionListener(t){this.detachSelectionListener(),this.questionRoot=t,this.selectionChangeHandler=()=>this.scheduleSelectionRefresh(),t.addEventListener("change",this.selectionChangeHandler),typeof MutationObserver<"u"&&(this.selectionObserver=new MutationObserver(r=>{const n=new Set;for(const{button:i}of this.choices.values())i&&n.add(i);r.some(i=>!n.has(i.target))&&this.scheduleSelectionRefresh()}),this.selectionObserver.observe(t,{subtree:!0,childList:!0,attributes:!0}))}detachSelectionListener(){this.selectionRefreshFrame!==null&&(cancelAnimationFrame(this.selectionRefreshFrame),this.selectionRefreshFrame=null),this.selectionObserver&&(this.selectionObserver.disconnect(),this.selectionObserver=null),this.questionRoot&&this.selectionChangeHandler&&this.questionRoot.removeEventListener("change",this.selectionChangeHandler),this.questionRoot=null,this.selectionChangeHandler=null}cleanupButtons(){this.detachSelectionListener();for(const{button:t}of this.choices.values())t?.remove();this.choices.clear()}applyButtonAlignment(t){switch(this.buttonAlignment){case"right":Object.assign(t.style,{position:"absolute",right:"8px",top:"50%",transform:"translateY(-50%)"});break;case"left":Object.assign(t.style,{position:"absolute",left:"8px",top:"50%",transform:"translateY(-50%)"});break;case"inline":Object.assign(t.style,{position:"relative",marginLeft:"8px",marginRight:"8px",display:"inline-flex",verticalAlign:"middle"})}}enableStateRestoration(){this.shouldRestoreState=!0}disableStateRestoration(){this.shouldRestoreState=!1}cleanup(){this.active=!1,this.refreshSelectionState()}destroy(){this.restoreAllSelectable(),this.eliminated.clear(),this.cleanupButtons(),this.strategy.destroy()}};l(or,"TOGGLE_CLASS","pie-answer-eliminator-toggle");l(or,"TOGGLE_ACTIVE_CLASS","pie-answer-eliminator-toggle--active");var fs=Fi('<div style="display: none;" aria-hidden="true"></div>');function ds(e,t){Gr(t,!0);let r=Dt(t,"visible",7,!1),n=Dt(t,"strategy",7,"strikethrough"),i=Dt(t,"alwaysOn",7,!1),s=Dt(t,"buttonAlignment",7,"right"),o=Dt(t,"elementStateKeys",23,()=>({})),u=F(null),h=F(null),c=F(null);const f=vr(()=>S(h)?.elementToolStateStore??null);let d=F(null),y=F(null),b=vr(()=>i()||r());Rt(()=>{if(S(u))return Rn(S(u),m=>{O(h,m,!0)})}),Rt(()=>{if(S(u))return Ln(S(u),m=>{O(c,m,!0)})});function E(){return S(c)?.scopeElement||null}function $(){if(!S(b)||!S(d))return;const m=E();if(!m){console.warn("[AnswerEliminator] Missing shell scope context for question root");return}S(d).initializeForQuestion(m)}function z(){requestAnimationFrame(()=>{requestAnimationFrame(()=>{$()})})}Rt(()=>{S(d)?.setStoreIntegration(S(f),o()??{})}),Rt(()=>{const m=new or(n(),s());return Me(()=>{m.setStoreIntegration(S(f),o()??{}),O(d,m,!0),S(b)?$():m.cleanup()}),()=>{m.destroy(),S(d)===m&&O(d,null)}}),Rt(()=>{const m=S(c)?.contextVersion??null;if(m!==null){if(S(y)===null){O(y,m,!0);return}m!==S(y)&&(O(y,m,!0),z())}}),Rt(()=>{S(d)&&(S(b)?(S(d).enableStateRestoration(),$()):S(d).cleanup())});var H={get visible(){return r()},set visible(m=!1){r(m),Ht()},get strategy(){return n()},set strategy(m="strikethrough"){n(m),Ht()},get alwaysOn(){return i()},set alwaysOn(m=!1){i(m),Ht()},get buttonAlignment(){return s()},set buttonAlignment(m="right"){s(m),Ht()},get elementStateKeys(){return o()},set elementStateKeys(m={}){o(m),Ht()}},G=fs();return es(G,m=>O(u,m),()=>S(u)),yn(e,G),Br(H)}vs("pie-tool-answer-eliminator",as(ds,{visible:{attribute:"visible",type:"Boolean"},strategy:{attribute:"strategy",type:"String"},alwaysOn:{attribute:"always-on",type:"Boolean"},buttonAlignment:{attribute:"button-alignment",type:"String"},elementStateKeys:{type:"Object"}},[],[],{mode:"open"},kn));function vs(e,t){customElements.get(e)||customElements.define(e,t)}export{ds as default};
13
+ `,document.head.appendChild(r)}removeHighlightCSS(t){document.getElementById(`${p.HIGHLIGHT_STYLE_PREFIX}${t}`)?.remove()}addAriaAttributes(t){const n=this.findChoiceContainer(t);if(!n)return;n.setAttribute(p.ELIMINATED_ATTR,"true"),n.setAttribute("aria-disabled","true");const r=this.resolveLabelElement(n);if(r&&!r.querySelector(`.${p.SR_CLASS}`)){const i=document.createElement("span");i.className=p.SR_CLASS,i.textContent=" (eliminated)",r.appendChild(i)}}removeAriaAttributes(t){const n=this.findChoiceContainer(t);n&&(n.removeAttribute(p.ELIMINATED_ATTR),n.removeAttribute("aria-disabled"),n.querySelector(`.${p.SR_CLASS}`)?.remove())}findChoiceContainer(t){let n=t.startContainer;for(n.nodeType===Node.TEXT_NODE&&(n=n.parentElement);n&&n!==document.body;){if(n.getAttribute(p.CHOICE_HOOK_ATTR)==="true")return n;n=n.parentElement}return null}applyFallback(t,n){const r=this.findChoiceContainer(n);r&&(r.classList.add(p.FALLBACK_CLASS),r.setAttribute(p.ELIMINATED_ATTR,"true"),r.setAttribute(p.ELIMINATED_ID_ATTR,t),this.fallbackContainers.set(t,r),this.addAriaAttributes(n))}removeFallback(t){const n=this.fallbackContainers.get(t);if(!n)return;n.classList.remove(p.FALLBACK_CLASS),n.removeAttribute(p.ELIMINATED_ATTR),n.removeAttribute(p.ELIMINATED_ID_ATTR);const r=document.createRange();r.selectNodeContents(n),this.removeAriaAttributes(r),this.fallbackContainers.delete(t)}strikeImages(t,n){const r=this.resolveImageScope(n);if(!r)return;const i=[];for(const s of Array.from(r.querySelectorAll("img"))){const o=this.wrapImage(s);o&&i.push(o)}i.length>0&&this.imageWrappers.set(t,i)}unstrikeImages(t){const n=this.imageWrappers.get(t);if(n){for(const r of n)this.unwrapImage(r);this.imageWrappers.delete(t)}}strikeMath(t,n){const r=this.resolveImageScope(n);if(!r)return;const i=[];for(const s of r.querySelectorAll(p.MATH_SELECTOR)){const o=s.querySelector(p.MATH_BOX_SELECTOR)??s,l=!!o.querySelector(p.MATH_STACKED_SELECTOR);o.classList.add(p.MATH_STRIKE_CLASS,l?p.MATH_STRIKE_CROSS_CLASS:p.MATH_STRIKE_LINE_CLASS),o.setAttribute(p.MATH_STRIKE_ATTR,l?"cross":"line"),i.push(o)}i.length>0&&this.mathTargets.set(t,i)}unstrikeMath(t){const n=this.mathTargets.get(t);if(n){for(const r of n)r.classList.remove(p.MATH_STRIKE_CLASS,p.MATH_STRIKE_LINE_CLASS,p.MATH_STRIKE_CROSS_CLASS),r.removeAttribute(p.MATH_STRIKE_ATTR);this.mathTargets.delete(t)}}resolveImageScope(t){const n=t.commonAncestorContainer;return(n.nodeType===Node.TEXT_NODE?n.parentElement:n)??this.findChoiceContainer(t)}wrapImage(t){const n=t.parentElement;if(!n)return null;if(n.classList.contains(p.IMAGE_WRAPPER_CLASS)||n.hasAttribute(p.IMAGE_WRAPPER_ATTR))return n;const r=document.createElement("span");return r.className=p.IMAGE_WRAPPER_CLASS,r.setAttribute(p.IMAGE_WRAPPER_ATTR,"true"),this.fillsParentWidth(t,n)?r.style.display="block":p.BLOCK_DISPLAYS.has(getComputedStyle(t).display)&&(r.style.display="block",r.style.width="fit-content"),n.insertBefore(r,t),r.appendChild(t),r.appendChild(this.createImageStrikeOverlay()),r}fillsParentWidth(t,n){const r=t.getBoundingClientRect().width,i=n.clientWidth;return r===0||i===0?!1:r>=i-1}unwrapImage(t){t.querySelector(`.${p.IMAGE_OVERLAY_CLASS}`)?.remove();const n=t.parentElement;if(n){for(;t.firstChild;)n.insertBefore(t.firstChild,t);t.remove()}}createImageStrikeOverlay(){const t=document.createElementNS(p.SVG_NS,"svg");t.setAttribute("class",p.IMAGE_OVERLAY_CLASS),t.setAttribute("viewBox","0 0 100 100"),t.setAttribute("preserveAspectRatio","none"),t.setAttribute("aria-hidden","true"),t.setAttribute("focusable","false");const n=[{x1:"0",y1:"0",x2:"100",y2:"100"},{x1:"0",y1:"100",x2:"100",y2:"0"}];for(const r of[p.IMAGE_CASING_CLASS,p.IMAGE_LINE_CLASS])for(const{x1:i,y1:s,x2:o,y2:l}of n){const c=document.createElementNS(p.SVG_NS,"line");c.setAttribute("class",r),c.setAttribute("x1",i),c.setAttribute("y1",s),c.setAttribute("x2",o),c.setAttribute("y2",l),c.setAttribute("vector-effect","non-scaling-stroke"),t.appendChild(c)}return t}resolveLabelElement(t){return t.querySelector(`[${p.LABEL_HOOK_ATTR}="true"]`)||t.querySelector("label")}};u(C,"HIGHLIGHT_STYLE_PREFIX","pie-answer-eliminator-highlight-");u(C,"HIGHLIGHT_NAME_PREFIX","pie-answer-eliminated-");u(C,"FALLBACK_CLASS","pie-answer-eliminator-eliminated-fallback");u(C,"SR_CLASS","pie-answer-eliminator-sr-announcement");u(C,"CHOICE_HOOK_ATTR","data-pie-answer-eliminator-choice");u(C,"LABEL_HOOK_ATTR","data-pie-answer-eliminator-label");u(C,"ELIMINATED_ATTR","data-pie-answer-eliminated");u(C,"ELIMINATED_ID_ATTR","data-pie-answer-eliminated-id");u(C,"IMAGE_WRAPPER_CLASS","pie-answer-eliminator-image-strike");u(C,"IMAGE_WRAPPER_ATTR","data-pie-answer-eliminator-image-strike");u(C,"IMAGE_OVERLAY_CLASS","pie-answer-eliminator-image-strike-overlay");u(C,"IMAGE_LINE_CLASS","pie-answer-eliminator-image-strike-line");u(C,"IMAGE_CASING_CLASS","pie-answer-eliminator-image-strike-casing");u(C,"MATH_STRIKE_CLASS","pie-answer-eliminator-math-strike");u(C,"MATH_STRIKE_LINE_CLASS","pie-answer-eliminator-math-strike--line");u(C,"MATH_STRIKE_CROSS_CLASS","pie-answer-eliminator-math-strike--cross");u(C,"MATH_STRIKE_ATTR","data-pie-answer-eliminator-math-strike");u(C,"MATH_STACKED_SELECTOR","mjx-mfrac, mjx-mtable");u(C,"MATH_BOX_SELECTOR","mjx-math");u(C,"MATH_SELECTOR","mjx-container");u(C,"SVG_NS","http://www.w3.org/2000/svg");u(C,"BLOCK_DISPLAYS",new Set(["block","flex","grid","table","flow-root","list-item"]));var Mn="answerEliminator",ln=class pe{constructor(t="strikethrough",n="right"){u(this,"strategy",void 0),u(this,"choices",new Map),u(this,"eliminated",new Set),u(this,"strategyKeys",new Map),u(this,"anonymousGroups",new WeakMap),u(this,"nextToken",0),u(this,"buttonAlignment","right"),u(this,"shouldRestoreState",!0),u(this,"active",!0),u(this,"questionRoot",null),u(this,"selectionChangeHandler",null),u(this,"selectionObserver",null),u(this,"selectionRefreshFrame",null),u(this,"focusedKey",null),u(this,"store",null),u(this,"elementStateKeys",{}),this.strategy=this.createStrategy(t),this.strategy.initialize(),this.buttonAlignment=n}createStrategy(t){return t==="mask"?new Lt:new C}initializeForQuestion(t){this.active=!0;const n=new Set(this.eliminated);this.restoreAllSelectable(),this.strategy.clearAll(),this.eliminated.clear(),this.cleanupButtons();for(const i of Rn(t))this.initializeChoice(i,t);const r=this.readPersistedEliminations();for(const[i,s]of this.choices)(r.has(s.group)?r.get(s.group)?.has(s.choiceId):n.has(i))&&this.applyElimination(i,s);this.attachSelectionListener(t)}trackingKey(t,n){return`${t}\0${n}`}resolveGroup({target:t,owner:n},r){let i=n;for(let l=n??t.container.parentElement;l!==null;l=l===r?null:l.parentElement){if(l.id&&Object.hasOwn(this.elementStateKeys,l.id))return l.id;i===null&&l.localName.includes("-")&&(i=l)}const s=i??r;let o=this.anonymousGroups.get(s);return o||(o=`\0anonymous-${this.nextToken++}`,this.anonymousGroups.set(s,o)),o}strategyKeyFor(t){let n=this.strategyKeys.get(t);return n||(n=`choice-${this.nextToken++}`,this.strategyKeys.set(t,n)),n}initializeChoice(t,n){const{target:r,owner:i}=t,s=r.id,o=this.resolveGroup(t,n),l=this.trackingKey(o,s),c={choiceId:s,group:o,strategyKey:this.strategyKeyFor(l),target:r,owner:i,button:null};this.choices.set(l,c);const h=this.createToggleButton(l,c,this.alignmentFor(r.container));c.button=h,this.updateButtonVisibility(l),r.container.style.position="relative",r.container.appendChild(h)}alignmentFor(t){return this.buttonAlignment==="inline"||getComputedStyle(t).display==="inline"?"inline":this.buttonAlignment}createToggleButton(t,n,r){const i=n.target.label,s=document.createElement("button");s.type="button",s.className=pe.TOGGLE_CLASS,s.setAttribute("aria-label",`Toggle elimination for ${i}`),s.setAttribute("aria-pressed","false"),s.setAttribute("data-choice-id",n.choiceId);const o=document.createElement("span");return o.setAttribute("aria-hidden","true"),o.textContent="⊗",s.appendChild(o),this.applyButtonAlignment(s,r),s.dataset.pieShownDisplay=s.style.display,s.addEventListener("click",l=>{l.preventDefault(),l.stopPropagation(),this.toggleElimination(t)}),s.addEventListener("focus",()=>{this.focusedKey=t}),s.addEventListener("blur",()=>{queueMicrotask(()=>{s.isConnected&&this.focusedKey===t&&(this.focusedKey=null)})}),s}toggleElimination(t){const n=this.choices.get(t);if(n){if(this.eliminated.has(t))this.restoreChoice(t);else{if(!n.target.canEliminate()){console.warn("Cannot eliminate this choice (already selected or in evaluate mode)");return}if(!this.applyElimination(t,n)){console.error("Failed to create range for choice");return}}this.saveState(n.group)}}applyElimination(t,n,r=!0){if(n.target.isSelected())return!1;const i=n.target.createRange();return i?(this.strategy.apply(n.strategyKey,i),this.eliminated.add(t),r&&n.target.setEliminated(!0),n.button&&(n.button.classList.add(pe.TOGGLE_ACTIVE_CLASS),n.button.setAttribute("aria-pressed","true")),this.updateButtonVisibility(t),!0):!1}restoreChoice(t){const n=this.choices.get(t);this.eliminated.delete(t),n&&(this.strategy.remove(n.strategyKey),n.target.setEliminated(!1),n.button&&(n.button.classList.remove(pe.TOGGLE_ACTIVE_CLASS),n.button.setAttribute("aria-pressed","false")),this.updateButtonVisibility(t))}resetAll(){if(this.eliminated.size===0)return;const t=new Set;for(const n of Array.from(this.eliminated)){const r=this.choices.get(n)?.group;r!==void 0&&t.add(r),this.restoreChoice(n)}for(const n of t)this.saveState(n)}getEliminatedCount(){return this.eliminated.size}setStoreIntegration(t,n){this.store=t,this.elementStateKeys=n}saveState(t){if(!this.store||!Object.hasOwn(this.elementStateKeys,t))return;const n=[];for(const r of this.eliminated){const i=this.choices.get(r);i?.group===t&&n.push(i.choiceId)}this.store.setState(this.elementStateKeys[t],Mn,{eliminatedChoices:n})}readPersistedEliminations(){const t=new Map;if(!this.store||!this.shouldRestoreState)return t;for(const{group:n}of this.choices.values())if(!(t.has(n)||!Object.hasOwn(this.elementStateKeys,n)))try{const r=this.store.getState(this.elementStateKeys[n],Mn),i=Array.isArray(r?.eliminatedChoices)?r.eliminatedChoices.filter(s=>typeof s=="string"):[];t.set(n,new Set(i))}catch(r){console.error("Failed to restore eliminator state:",r)}return t}restoreAllSelectable(){for(const t of this.eliminated)this.choices.get(t)?.target.setEliminated(!1)}setButtonHidden(t,n){const r=n?"none":t.dataset.pieShownDisplay??"";t.style.display!==r&&(t.style.display=r)}shouldHideButton(t,n){return this.eliminated.has(t)?!1:this.active?n.target.isSelected():!0}updateButtonVisibility(t){const n=this.choices.get(t);n?.button&&this.setButtonHidden(n.button,this.shouldHideButton(t,n))}refreshSelectionState(){for(const t of this.choices.keys())this.updateButtonVisibility(t)}hasDetachedChoice(){for(const{target:t}of this.choices.values())if(!t.container.isConnected)return!0;return!1}rescan(){const t=this.questionRoot;if(!t)return;const n=this.focusedKey!==null&&!this.choices.get(this.focusedKey)?.button?.isConnected&&(document.activeElement===null||document.activeElement===document.body)?this.focusedKey:null,r=this.choices,i=new Set(this.eliminated);this.strategy.clearAll(),this.eliminated.clear();for(const{button:s}of r.values())s?.remove();this.choices=new Map;for(const s of Rn(t))this.initializeChoice(s,t);for(const s of i){const o=r.get(s),l=this.choices.get(s),c=!!o?.owner&&l?.owner===o.owner;l&&this.applyElimination(s,l,!c)||(l??o)?.target.setEliminated(!1)}n&&this.choices.get(n)?.button?.focus({preventScroll:!0})}scheduleSelectionRefresh(){this.selectionRefreshFrame===null&&(this.selectionRefreshFrame=requestAnimationFrame(()=>{this.selectionRefreshFrame=null,this.refreshSelectionState()}))}attachSelectionListener(t){this.detachSelectionListener(),this.questionRoot=t,this.selectionChangeHandler=()=>this.scheduleSelectionRefresh(),t.addEventListener("change",this.selectionChangeHandler),typeof MutationObserver<"u"&&(this.selectionObserver=new MutationObserver(n=>{const r=new Set;for(const{button:i}of this.choices.values())i&&r.add(i);n.some(i=>!r.has(i.target))&&(this.hasDetachedChoice()?this.rescan():this.scheduleSelectionRefresh())}),this.selectionObserver.observe(t,{subtree:!0,childList:!0,attributes:!0}))}detachSelectionListener(){this.selectionRefreshFrame!==null&&(cancelAnimationFrame(this.selectionRefreshFrame),this.selectionRefreshFrame=null),this.selectionObserver&&(this.selectionObserver.disconnect(),this.selectionObserver=null),this.questionRoot&&this.selectionChangeHandler&&this.questionRoot.removeEventListener("change",this.selectionChangeHandler),this.questionRoot=null,this.selectionChangeHandler=null}cleanupButtons(){this.detachSelectionListener(),this.focusedKey=null;for(const{button:t}of this.choices.values())t?.remove();this.choices.clear()}applyButtonAlignment(t,n){switch(n){case"right":Object.assign(t.style,{position:"absolute",right:"8px",top:"50%",transform:"translateY(-50%)"});break;case"left":Object.assign(t.style,{position:"absolute",left:"8px",top:"50%",transform:"translateY(-50%)"});break;case"inline":Object.assign(t.style,{position:"relative",marginLeft:"8px",marginRight:"8px",display:"inline-flex",verticalAlign:"middle"})}}enableStateRestoration(){this.shouldRestoreState=!0}disableStateRestoration(){this.shouldRestoreState=!1}cleanup(){this.active=!1,this.refreshSelectionState()}destroy(){this.restoreAllSelectable(),this.eliminated.clear(),this.cleanupButtons(),this.strategy.destroy()}};u(ln,"TOGGLE_CLASS","pie-answer-eliminator-toggle");u(ln,"TOGGLE_ACTIVE_CLASS","pie-answer-eliminator-toggle--active");var Es=zi('<div style="display: none;" aria-hidden="true"></div>');function $s(e,t){Dn(t,!0);let n=Dt(t,"visible",7,!1),r=Dt(t,"strategy",7,"strikethrough"),i=Dt(t,"alwaysOn",7,!1),s=Dt(t,"buttonAlignment",7,"right"),o=Dt(t,"elementStateKeys",23,()=>({})),l=B(null),c=B(null),h=B(null);const f=pn(()=>A(c)?.elementToolStateStore??null);let d=B(null),y=B(null),b=pn(()=>i()||n());Rt(()=>{if(A(l))return Nr(A(l),m=>{O(c,m,!0)})}),Rt(()=>{if(A(l))return xr(A(l),m=>{O(h,m,!0)})});function E(){return A(h)?.scopeElement||null}function _(){if(!A(b)||!A(d))return;const m=E();if(!m){console.warn("[AnswerEliminator] Missing shell scope context for question root");return}A(d).initializeForQuestion(m)}function z(){requestAnimationFrame(()=>{requestAnimationFrame(()=>{_()})})}Rt(()=>{A(d)?.setStoreIntegration(A(f),o()??{})}),Rt(()=>{const m=new ln(r(),s());return Oe(()=>{m.setStoreIntegration(A(f),o()??{}),O(d,m,!0),A(b)?_():m.cleanup()}),()=>{m.destroy(),A(d)===m&&O(d,null)}}),Rt(()=>{const m=A(h)?.contextVersion??null;if(m!==null){if(A(y)===null){O(y,m,!0);return}m!==A(y)&&(O(y,m,!0),z())}}),Rt(()=>{A(d)&&(A(b)?(A(d).enableStateRestoration(),_()):A(d).cleanup())});var H={get visible(){return n()},set visible(m=!1){n(m),Ht()},get strategy(){return r()},set strategy(m="strikethrough"){r(m),Ht()},get alwaysOn(){return i()},set alwaysOn(m=!1){i(m),Ht()},get buttonAlignment(){return s()},set buttonAlignment(m="right"){s(m),Ht()},get elementStateKeys(){return o()},set elementStateKeys(m={}){o(m),Ht()}},G=Es();return as(G,m=>O(l,m),()=>A(l)),Ar(e,G),qn(H)}_s("pie-tool-answer-eliminator",hs($s,{visible:{attribute:"visible",type:"Boolean"},strategy:{attribute:"strategy",type:"String"},alwaysOn:{attribute:"always-on",type:"Boolean"},buttonAlignment:{attribute:"button-alignment",type:"String"},elementStateKeys:{type:"Object"}},[],[],{mode:"open"},Or));function _s(e,t){customElements.get(e)||customElements.define(e,t)}export{$s as default};