@tscircuit/runframe 0.0.2435 → 0.0.2436
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.
|
@@ -2183,7 +2183,7 @@ var usePostHogActivity = (properties) => {
|
|
|
2183
2183
|
};
|
|
2184
2184
|
|
|
2185
2185
|
// package.json
|
|
2186
|
-
var version = "0.0.
|
|
2186
|
+
var version = "0.0.2435";
|
|
2187
2187
|
var package_default = {
|
|
2188
2188
|
name: "@tscircuit/runframe",
|
|
2189
2189
|
main: "dist/preview.js",
|
|
@@ -2300,7 +2300,7 @@ var package_default = {
|
|
|
2300
2300
|
yargs: "^17.7.2"
|
|
2301
2301
|
},
|
|
2302
2302
|
dependencies: {
|
|
2303
|
-
"@tscircuit/eval": "^0.0.
|
|
2303
|
+
"@tscircuit/eval": "^0.0.1180",
|
|
2304
2304
|
"@tscircuit/solver-utils": "^0.0.7",
|
|
2305
2305
|
debug: "^4.4.0"
|
|
2306
2306
|
}
|
package/dist/preview.js
CHANGED
package/dist/runner.js
CHANGED
|
@@ -5793,7 +5793,7 @@ test("${c} should solve problem correctly", () => {
|
|
|
5793
5793
|
// Add more specific assertions based on expected output
|
|
5794
5794
|
// expect(solver.netLabelPlacementSolver!.netLabelPlacements).toMatchInlineSnapshot()
|
|
5795
5795
|
})
|
|
5796
|
-
`,g=new Blob([l],{type:"text/plain"}),u=URL.createObjectURL(g),d=document.createElement("a");d.href=u,d.download=`${c}.test.ts`,d.click(),URL.revokeObjectURL(u)}catch(A){alert(`Error generating test.ts for ${t.constructor.name}: ${A instanceof Error?A.message:String(A)}`)}o(!1)};return j.jsxs("div",{className:`relative ${e}`,ref:i,children:[j.jsx("button",{className:"px-2 py-1 rounded text-xs cursor-pointer",onClick:()=>o(!n),title:`Download options for ${t.constructor.name}`,children:t.constructor.name}),n&&j.jsxs("div",{className:"absolute top-full left-0 mt-1 bg-white border border-gray-300 rounded shadow-lg z-10 min-w-[150px]",children:[j.jsx("button",{className:"w-full text-left px-3 py-2 hover:bg-gray-100 text-xs",onClick:r,children:"Download JSON"}),j.jsx("button",{className:"w-full text-left px-3 py-2 hover:bg-gray-100 text-xs",onClick:s,children:"Download page.tsx"}),j.jsx("button",{className:"w-full text-left px-3 py-2 hover:bg-gray-100 text-xs",onClick:a,children:"Download test.ts"})]})]})},YHt=t=>t.activeSubSolver?[t,...YHt(t.activeSubSolver)]:[t],Sqo=({solver:t})=>{const e=YHt(t);return j.jsx("div",{className:"flex gap-1 items-center text-sm pt-1",children:e.map((n,o)=>j.jsxs("div",{className:"flex items-center",children:[o>0&&j.jsx("span",{className:"text-gray-400 mx-1",children:"→"}),j.jsx(Qqo,{solver:n})]},n.constructor.name))})},bqo=({solver:t,triggerRender:e,animationSpeed:n=25,onSolverStarted:o,onSolverCompleted:i})=>{const[r,s]=ne.useReducer(_=>!_,!1),a=ne.useRef(void 0),A=()=>{!t.solved&&!t.failed&&(t.step(),e())},c=()=>{!t.solved&&!t.failed&&(o&&o(t),t.solve(),e(),i&&i(t))},l=()=>{r?(a.current&&(clearInterval(a.current),a.current=void 0),s()):(s(),a.current=setInterval(()=>{if(t.solved||t.failed){a.current&&(clearInterval(a.current),a.current=void 0),s(),e(),i&&t.solved&&i(t);return}t.step(),e()},n))},g=()=>{const _=t;if(_.getCurrentPhase&&!t.solved&&!t.failed){const m=_.getCurrentPhase();for(;_.getCurrentPhase()===m&&!t.solved&&!t.failed;)t.step();e()}},u=()=>{if(t.solved||t.failed||r)return;const _=window.prompt("Step until which iteration?",`${t.iterations}`);if(_===null)return;const m=Number(_);if(!Number.isFinite(m)){window.alert("Please enter a valid number for the iteration");return}for(;t.iterations<m&&!t.solved&&!t.failed;)t.step();e(),t.solved&&i&&i(t)};ne.useEffect(()=>()=>{a.current&&clearInterval(a.current)},[]),ne.useEffect(()=>{(t.solved||t.failed)&&r&&(a.current&&(clearInterval(a.current),a.current=void 0),s())},[t.solved,t.failed,r]);const d=t.getCurrentPhase!==void 0,h=d?t.getCurrentPhase():null;return j.jsxs("div",{className:"space-y-2 p-2 border-b",children:[j.jsx("div",{className:"flex items-center",children:j.jsx(Sqo,{solver:t})}),j.jsxs("div",{className:"flex gap-2 items-center flex-wrap",children:[j.jsx("button",{onClick:A,disabled:t.solved||t.failed||r,className:"bg-blue-500 hover:bg-blue-600 disabled:bg-gray-300 text-white px-3 py-1 rounded text-sm",children:"Step"}),j.jsx("button",{onClick:c,disabled:t.solved||t.failed||r,className:"bg-green-500 hover:bg-green-600 disabled:bg-gray-300 text-white px-3 py-1 rounded text-sm",children:"Solve"}),j.jsx("button",{onClick:l,disabled:t.solved||t.failed,className:`px-3 py-1 rounded text-white text-sm ${r?"bg-red-500 hover:bg-red-600":"bg-yellow-500 hover:bg-yellow-600"} disabled:bg-gray-300`,children:r?"Stop":"Animate"}),j.jsx("button",{onClick:u,disabled:t.solved||t.failed||r,className:"bg-orange-500 hover:bg-orange-600 disabled:bg-gray-300 text-white px-3 py-1 rounded text-sm",children:"Step Until Iteration"}),d&&j.jsx("button",{onClick:g,disabled:t.solved||t.failed||r,className:"bg-purple-500 hover:bg-purple-600 disabled:bg-gray-300 text-white px-3 py-1 rounded text-sm",children:"Next Stage"}),j.jsxs("div",{className:"text-sm text-gray-600",children:["Iterations: ",t.iterations]}),t.timeToSolve!==void 0&&j.jsxs("div",{className:"text-sm text-gray-600",children:["Time: ",(t.timeToSolve/1e3).toFixed(3),"s"]}),h&&j.jsxs("div",{className:"text-sm text-gray-600",children:["Phase: ",j.jsx("span",{className:"font-medium",children:h})]}),t.solved&&j.jsx("div",{className:"px-2 py-1 bg-green-100 text-green-800 rounded text-sm",children:"Solved"}),t.failed&&j.jsx("div",{className:"px-2 py-1 bg-red-100 text-red-800 rounded text-sm",children:"Failed"})]}),t.error&&j.jsxs("div",{className:"text-red-600 text-sm",children:["Error: ",t.error]})]})},Dqo=(t,e,n)=>{const o=t.currentPipelineStepIndex;return e<o?"Completed":e===o&&t.activeSubSolver?t.activeSubSolver.failed?"Failed":"In Progress":"Not Started"},Pqo=(t,e)=>{const o=t.pipelineDef[e].solverName,i=Dqo(t,e),r=t[o],s=t.firstIterationOfPhase?.[o]??null,a=t.iterations;let A=0;if(i==="Completed"){const u=t.pipelineDef[e+1],d=u?t.firstIterationOfPhase?.[u.solverName]:void 0;d!==void 0&&s!==null?A=d-s:s!==null&&(A=a-s)}else i==="In Progress"&&s!==null&&(A=a-s);const c=t.timeSpentOnPhase?.[o]??0;let l=0;i==="Completed"?l=1:i==="In Progress"&&r&&(l=r.progress??0);const g=r?.stats??null;return{index:e,name:o,status:i,firstIteration:s,iterations:A,progress:l,timeSpent:c,stats:g&&Object.keys(g).length>0?g:null,solverInstance:r??null}},vqo=({status:t})=>{const e={"Not Started":"text-blue-600","In Progress":"text-yellow-600",Completed:"text-green-600",Failed:"text-red-600"};return j.jsx("span",{className:`font-medium ${e[t]}`,children:t})},Mqo=({progress:t})=>{if(t===0)return null;const e=Math.round(t*100);return j.jsxs("div",{className:"flex items-center gap-2",children:[j.jsx("div",{className:"w-20 h-2 bg-gray-200 rounded overflow-hidden",children:j.jsx("div",{className:"h-full bg-blue-500 transition-all duration-200",style:{width:`${e}%`}})}),j.jsxs("span",{className:"text-xs text-gray-500",children:[e,"%"]})]})},wqo=t=>Object.entries(t).map(([e,n])=>`${e}: ${n}`).join(", "),Nqo=({stats:t})=>{if(!t||Object.keys(t).length===0)return j.jsx("span",{children:"-"});const e=Object.entries(t),n=wqo(t);return j.jsxs("details",{className:"cursor-pointer",children:[j.jsx("summary",{className:"whitespace-nowrap overflow-hidden text-ellipsis max-w-[200px]",children:n}),j.jsx("div",{className:"mt-1 text-xs",children:e.map(([o,i])=>j.jsxs("div",{children:[o,": ",String(i)]},o))})]})},M9e=t=>{if(t===null||typeof t!="object")return t;if(Array.isArray(t))return t.map(M9e);const e={};for(const[n,o]of Object.entries(t))n.startsWith("_")||(e[n]=M9e(o));return e},Rqo=(t,e)=>{try{if(typeof t.getConstructorParams!="function"){alert(`getConstructorParams() is not implemented for ${e}`);return}const n=M9e(t.getConstructorParams()),o=new Blob([JSON.stringify(n,null,2)],{type:"application/json"}),i=URL.createObjectURL(o),r=document.createElement("a");r.href=i,r.download=`${e}_input.json`,r.click(),URL.revokeObjectURL(i)}catch(n){alert(`Error downloading input for ${e}: ${n instanceof Error?n.message:String(n)}`)}},Tqo=({solver:t,onStepUntilPhase:e,onDownloadInput:n})=>{const o=t.pipelineDef.map((a,A)=>Pqo(t,A)),i=a=>{e?.(a)},r=a=>{a.solverInstance&&(n?n(a.solverInstance,a.name):Rqo(a.solverInstance,a.name))},s=a=>`${(a/1e3).toFixed(2)}s`;return j.jsxs("div",{className:"border-t border-gray-200",children:[j.jsx("div",{className:"px-4 py-2 bg-gray-50 border-b border-gray-200",children:j.jsx("h3",{className:"text-sm font-semibold text-gray-700",children:"Pipeline Steps"})}),j.jsx("div",{className:"overflow-x-auto",children:j.jsxs("table",{className:"w-full text-sm",children:[j.jsx("thead",{children:j.jsxs("tr",{className:"bg-gray-50 border-b border-gray-200",children:[j.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Step"}),j.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Status"}),j.jsxs("th",{className:"px-4 py-2 text-center font-semibold text-gray-700",children:["i",j.jsx("sub",{children:"0"})]}),j.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Iterations"}),j.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Progress"}),j.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Time"}),j.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Stats"}),j.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Input"})]})}),j.jsx("tbody",{children:o.map(a=>j.jsxs("tr",{className:`border-b border-gray-100 ${a.status==="In Progress"?"bg-yellow-50":""}`,children:[j.jsx("td",{className:"px-4 py-2",children:j.jsxs("div",{className:"flex items-center gap-2",children:[j.jsx("span",{className:"text-gray-400 w-6",children:String(a.index+1).padStart(2,"0")}),j.jsx("button",{onClick:()=>i(a.name),disabled:a.status==="Completed"||t.solved||t.failed,className:"text-blue-500 hover:text-blue-700 disabled:text-gray-300 disabled:cursor-not-allowed",title:`Step until ${a.name} completes`,children:j.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",className:"w-4 h-4",children:j.jsx("path",{fillRule:"evenodd",d:"M4.5 5.653c0-1.426 1.529-2.33 2.779-1.643l11.54 6.348c1.295.712 1.295 2.573 0 3.285L7.28 19.991c-1.25.687-2.779-.217-2.779-1.643V5.653z",clipRule:"evenodd"})})}),j.jsx("span",{className:"font-medium text-gray-900",children:a.name})]})}),j.jsx("td",{className:"px-4 py-2",children:j.jsx(vqo,{status:a.status})}),j.jsx("td",{className:"px-4 py-2 text-center text-gray-600",children:a.firstIteration!==null?a.firstIteration:""}),j.jsx("td",{className:"px-4 py-2 text-gray-600",children:a.iterations}),j.jsx("td",{className:"px-4 py-2",children:j.jsx(Mqo,{progress:a.progress})}),j.jsx("td",{className:"px-4 py-2 text-gray-600",children:s(a.timeSpent)}),j.jsx("td",{className:"px-4 py-2 text-gray-500",children:j.jsx(Nqo,{stats:a.stats})}),j.jsx("td",{className:"px-4 py-2",children:a.solverInstance?j.jsxs("button",{onClick:()=>r(a),className:"flex items-center gap-1 text-blue-500 hover:text-blue-700",title:`Download input for ${a.name}`,children:[j.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",className:"w-4 h-4",children:j.jsx("path",{fillRule:"evenodd",d:"M12 2.25a.75.75 0 01.75.75v11.69l3.22-3.22a.75.75 0 111.06 1.06l-4.5 4.5a.75.75 0 01-1.06 0l-4.5-4.5a.75.75 0 111.06-1.06l3.22 3.22V3a.75.75 0 01.75-.75zm-9 13.5a.75.75 0 01.75.75v2.25a1.5 1.5 0 001.5 1.5h13.5a1.5 1.5 0 001.5-1.5V16.5a.75.75 0 011.5 0v2.25a3 3 0 01-3 3H5.25a3 3 0 01-3-3V16.5a.75.75 0 01.75-.75z",clipRule:"evenodd"})}),j.jsx("span",{children:"Input"})]}):null})]},a.name))})]})})]})},kqo=class extends Xr.Component{constructor(t){super(t),this.state={hasError:!1}}static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(t){console.error("InteractiveGraphics render error:",t)}render(){return this.state.hasError?this.props.fallback:this.props.children}};function Fqo({graphics:t}){const e=t.points??[],n=t.lines??[],o=t.rects??[],i=t.circles??[],r=t.texts??[];let s=Number.POSITIVE_INFINITY,a=Number.POSITIVE_INFINITY,A=Number.NEGATIVE_INFINITY,c=Number.NEGATIVE_INFINITY;const l=(m,p)=>{typeof m=="number"&&(m<s&&(s=m),m>A&&(A=m)),typeof p=="number"&&(p<a&&(a=p),p>c&&(c=p))};for(const m of e)l(m.x,m.y);for(const m of n){const p=m.points??[];for(const I of p)l(I.x,I.y)}for(const m of o){const p=m.x??0,I=m.y??0,f=m.width??0,C=m.height??0;l(p,I),l(p+f,I+C)}for(const m of i){const p=m.x??0,I=m.y??0,f=m.radius??1;l(p-f,I-f),l(p+f,I+f)}for(const m of r)l(m.x,m.y);(!isFinite(s)||!isFinite(a)||!isFinite(A)||!isFinite(c))&&(s=-20,a=-20,A=20,c=20);const g=10,u=s-g,d=a-g,h=Math.max(1,A-s+2*g),_=Math.max(1,c-a+2*g);return j.jsxs("svg",{className:"w-full h-[400px] bg-white",viewBox:`${u} ${d} ${h} ${_}`,role:"img","aria-label":"Graphics fallback",children:[o.map((m,p)=>j.jsx("rect",{x:m.x??0,y:m.y??0,width:m.width??0,height:m.height??0,fill:"none",stroke:m.strokeColor??"black",strokeWidth:m.strokeWidth??1},`rect-${p}`)),n.map((m,p)=>j.jsx("polyline",{fill:"none",stroke:m.strokeColor??"black",strokeWidth:m.strokeWidth??1,points:(m.points??[]).map(I=>`${I.x??0},${I.y??0}`).join(" ")},`line-${p}`)),i.map((m,p)=>j.jsx("circle",{cx:m.x??0,cy:m.y??0,r:m.radius??1.5,fill:m.fillColor??"none",stroke:m.strokeColor??"black",strokeWidth:m.strokeWidth??1},`circle-${p}`)),e.map((m,p)=>j.jsx("circle",{cx:m.x??0,cy:m.y??0,r:m.radius??1.5,fill:m.color??"black"},`point-${p}`)),r.map((m,p)=>j.jsx("text",{x:m.x??0,y:m.y??0,fontSize:m.fontSize??10,fill:m.color??"black",children:m.text??""},`text-${p}`))]})}var Lqo=({solver:t,animationSpeed:e=25,onSolverStarted:n,onSolverCompleted:o})=>{const[i,r]=ne.useReducer(l=>l+1,0),s=ne.useMemo(()=>{try{return t.visualize()||{points:[],lines:[],rects:[],circles:[]}}catch(l){return console.error("Visualization error:",l),{points:[],lines:[],rects:[],circles:[]}}},[t,i]),a=ne.useMemo(()=>(s.rects?.length||0)===0&&(s.lines?.length||0)===0&&(s.points?.length||0)===0&&(s.circles?.length||0)===0,[s]);ne.useEffect(()=>{if(!(typeof document>"u")&&!document.querySelector('script[src="https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4"]')){const l=document.createElement("script");l.src="https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4",document.head.appendChild(l)}},[]);const A=t.pipelineDef!==void 0,c=l=>{const g=t;if(!t.solved&&!t.failed){for(;!t.solved&&!t.failed&&g.currentPipelineStepIndex<=g.pipelineDef.findIndex(u=>u.solverName===l);)t.step();r()}};return j.jsxs("div",{children:[j.jsx(bqo,{solver:t,triggerRender:r,animationSpeed:e,onSolverStarted:n,onSolverCompleted:o}),a?j.jsx("div",{className:"p-4 text-gray-500",children:"No Graphics Yet"}):j.jsx(kqo,{fallback:j.jsx(Fqo,{graphics:s}),children:j.jsx(Bqo,{graphics:s})}),A&&j.jsx(Tqo,{solver:t,onStepUntilPhase:c})]})};const Hqo=()=>{ne.useEffect(()=>{const t="tailwind-cdn-script";if(document.getElementById(t)||window.tailwind)return;const e=document.createElement("div");e.className="hidden",document.body.appendChild(e);const n=window.getComputedStyle(e).display==="none";if(document.body.removeChild(e),n)return;const o=document.createElement("script");o.id=t,o.src="https://cdn.tailwindcss.com",document.head.appendChild(o)},[])},Gqo=1e3,ub=(t,e)=>{const{fileName:n,mimeType:o="text/plain"}=e,i=t instanceof Blob?t:new Blob([t],{type:o}),r=URL.createObjectURL(i),s=document.createElement("a");s.href=r,s.download=n,s.target="_blank",s.rel="noopener noreferrer",s.style.display="none",document.body.appendChild(s),s.click(),document.body.removeChild(s),setTimeout(()=>{URL.revokeObjectURL(r)},Gqo)},zHt=t=>{let e=t.trim().replace(/[\\/:*?"<>|]/g,"_").replace(/[\x00-\x1f]/g,"").replace(/^\.+/,"").replace(/\.+$/,"").replace(/\s+/g," ").replace(/_+/g,"_");return/^(con|prn|aux|nul|com[0-9]|lpt[0-9])$/i.test(e)&&(e=`_${e}`),e=e.slice(0,200),e||"untitled"},hb="https://github.com/tscircuit/tscircuit-autorouter/issues/new",VHt="https://github.com/tscircuit/copper-pour-solver/issues/new",JHt="https://github.com/tscircuit/calculate-packing/issues/new",Oqo="https://github.com/tscircuit/matchpack/issues/new",qHt="https://github.com/tscircuit/schematic-trace-solver/issues/new?template=json-bug-report.yml",Kqo={PackSolver2:JHt,LayoutPipelineSolver:Oqo,AutoroutingPipelineSolver:hb,AssignableAutoroutingPipeline2:hb,AssignableAutoroutingPipeline3:hb,AutoroutingPipeline1_OriginalUnravel:hb,AutoroutingPipelineSolver3_HgPortPointPathing:hb,AutoroutingPipelineSolver4:hb,AutoroutingPipelineSolver5:hb,AutoroutingPipelineSolver7_MultiGraph:hb,AutoroutingPipelineSolver8:hb,CopperPourPipelineSolver:VHt,SchematicTracePipelineSolver:qHt},Uqo=t=>t.toLowerCase().includes("pack")?hTo:t.toLowerCase().includes("rout")?CTo:sTo,WHt=t=>{const e=Kqo[t];if(e)return e;const n=t.toLowerCase();return n.includes("autorout")?hb:n.includes("schematic")&&n.includes("trace")?qHt:n.includes("copperpour")?VHt:n.includes("pack")?JHt:null},Yqo=t=>`${zHt(`${t.componentName}-${t.solverName}`)}-solver-input.json`,jHt=t=>{ub(JSON.stringify(t.solverParams,null,2),{fileName:Yqo(t),mimeType:"application/json"})},zqo=({solverEvent:t})=>{const e=WHt(t.solverName);return j.jsxs("div",{className:"rf-flex rf-items-center rf-justify-end rf-gap-2 rf-border-b rf-border-gray-200 rf-bg-gray-50 rf-px-4 rf-py-2",children:[j.jsxs(Sc,{type:"button",variant:"outline",size:"sm",onClick:()=>jHt(t),children:[j.jsx(l6e,{className:"rf-w-4 rf-h-4"}),"Download"]}),e?j.jsx(Sc,{asChild:!0,variant:"outline",size:"sm",children:j.jsxs("a",{href:e,target:"_blank",rel:"noopener noreferrer",children:[j.jsx(Pre,{className:"rf-w-4 rf-h-4"}),"Report"]})}):j.jsxs(Sc,{type:"button",variant:"outline",size:"sm",disabled:!0,title:"No report link configured for this solver",children:[j.jsx(Pre,{className:"rf-w-4 rf-h-4"}),"Report"]})]})},Vqo=({solverEvent:t})=>{const e=WHt(t.solverName);return e?j.jsx(Sc,{asChild:!0,variant:"ghost",size:"icon",className:"rf-h-8 rf-w-8",children:j.jsx("a",{href:e,target:"_blank",rel:"noopener noreferrer",title:"Report solver bug","aria-label":"Report solver bug",children:j.jsx(Pre,{className:"rf-w-4 rf-h-4"})})}):j.jsx(Sc,{type:"button",variant:"ghost",size:"icon",className:"rf-h-8 rf-w-8",disabled:!0,title:"No report link configured for this solver","aria-label":"Report solver bug",children:j.jsx(Pre,{className:"rf-w-4 rf-h-4"})})},Jqo=({solverEvents:t=[]})=>{const[e,n]=ne.useState(null);Hqo();const o=ne.useMemo(()=>{const a=new Map;for(const A of t){const c=`${A.componentName}-${A.solverName}`;a.set(c,A)}return a},[t]),i=ne.useMemo(()=>Array.from(o.keys()),[o]),r=e?o.get(e):null,s=ne.useMemo(()=>{if(!r)return{instance:null,error:null,classFound:!1};const a=TBe[r.solverName];if(!a)return{instance:null,error:`Solver class "${r.solverName}" not found in SOLVERS registry. Available: ${Object.keys(TBe).join(", ")}`,classFound:!1};try{const A=r.solverParams,c=A?.input!==void 0?A.input:A;return{instance:new a(c),error:null,classFound:!0}}catch(A){const c=A instanceof Error?A.message:String(A);return console.error("Failed to reconstruct solver:",A),{instance:null,error:`Failed to instantiate solver: ${c}`,classFound:!0}}},[r]);return t.length===0?j.jsx("div",{className:"rf-p-4",children:j.jsx("div",{className:"rf-bg-gray-50 rf-rounded-md rf-border rf-border-gray-200",children:j.jsxs("div",{className:"rf-p-4",children:[j.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-text-gray-800 rf-mb-3",children:"No Solvers Detected"}),j.jsx("p",{className:"rf-text-sm rf-text-gray-600",children:"Solvers will appear here when the circuit runs. Solvers are used for tasks like component packing and autorouting."})]})})}):j.jsxs("div",{className:"rf-flex rf-h-full rf-overflow-hidden",children:[j.jsxs("div",{className:"rf-w-64 rf-border-r rf-border-gray-200 rf-overflow-y-auto rf-flex-shrink-0",children:[j.jsxs("div",{className:"rf-text-xs rf-font-semibold rf-text-gray-500 rf-px-3 rf-py-2 rf-bg-gray-50 rf-border-b rf-border-gray-200",children:[i.length," ",i.length===1?"Solver":"Solvers"]}),i.map(a=>{const A=o.get(a),c=e===a;return j.jsx("div",{className:`rf-px-3 rf-py-2 rf-cursor-pointer rf-border-b rf-border-gray-100 ${c?"rf-bg-blue-50 rf-border-l-2 rf-border-l-blue-500":"hover:rf-bg-gray-50"}`,onClick:()=>n(a),children:(()=>{const l=Uqo(A.solverName);return j.jsxs("div",{className:"rf-flex rf-items-center rf-gap-2",children:[j.jsx(l,{className:"rf-w-4 rf-h-4 rf-text-blue-500 rf-flex-shrink-0"}),j.jsxs("div",{className:"rf-flex-1 rf-min-w-0",children:[j.jsx("div",{className:"rf-text-sm rf-font-medium rf-text-gray-800 rf-truncate",children:A.componentName}),j.jsx("div",{className:"rf-text-xs rf-text-gray-500 rf-truncate",children:A.solverName})]})]})})()},a)})]}),j.jsx("div",{className:"rf-flex-1 rf-overflow-hidden",children:r?s.instance?j.jsxs("div",{className:"rf-flex rf-h-full rf-flex-col rf-overflow-y-auto",children:[j.jsx(zqo,{solverEvent:r}),j.jsx("div",{className:"rf-min-h-0 rf-flex-1",children:j.jsx(tb,{fallback:j.jsx("div",{className:"rf-p-4",children:j.jsxs("div",{className:"rf-bg-red-50 rf-rounded-md rf-border rf-border-red-200 rf-p-4",children:[j.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-text-red-800 rf-mb-2",children:"Error Loading Solver Debugger"}),j.jsxs("p",{className:"rf-text-sm rf-text-red-600",children:["Failed to render the solver debugger for"," ",r.solverName]})]})}),children:j.jsx(Lqo,{solver:s.instance})})})]}):j.jsxs("div",{className:"rf-p-4",children:[j.jsxs("div",{className:"rf-mb-4",children:[j.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-text-gray-800",children:r.solverName}),j.jsxs("p",{className:"rf-text-sm rf-text-gray-500",children:["Component: ",r.componentName]})]}),s.error&&j.jsx("div",{className:`rf-rounded-md rf-border rf-p-4 rf-mb-4 ${s.classFound?"rf-bg-red-50 rf-border-red-200":"rf-bg-yellow-50 rf-border-yellow-200"}`,children:j.jsx("p",{className:`rf-text-sm ${s.classFound?"rf-text-red-700":"rf-text-yellow-700"}`,children:s.error})}),j.jsxs("div",{className:"rf-border rf-border-gray-200 rf-rounded-md rf-overflow-hidden",children:[j.jsxs("div",{className:"rf-px-3 rf-py-2 rf-bg-gray-50 rf-flex rf-items-center rf-justify-between rf-gap-2",children:[j.jsx("span",{className:"rf-text-sm rf-font-medium rf-text-gray-700",children:"Solver Parameters"}),j.jsxs("div",{className:"rf-flex rf-items-center rf-gap-1",children:[j.jsx(Vqo,{solverEvent:r}),j.jsx(Sc,{type:"button",variant:"ghost",size:"icon",className:"rf-h-8 rf-w-8","aria-label":"Download solver input JSON",title:"Download solver input JSON",onClick:()=>jHt(r),children:j.jsx(l6e,{className:"rf-w-4 rf-h-4"})})]})]}),j.jsx("div",{className:"rf-p-3 rf-bg-white rf-border-t rf-border-gray-200",children:j.jsx("pre",{className:"rf-text-xs rf-font-mono rf-text-gray-600 rf-whitespace-pre-wrap rf-overflow-x-auto",children:JSON.stringify(r.solverParams,null,2)})})]})]}):j.jsx("div",{className:"rf-flex rf-items-center rf-justify-center rf-h-full",children:j.jsx("p",{className:"rf-text-sm rf-text-gray-500",children:"Select a solver from the list to view details"})})})]})},XHt=({errorMessage:t,errorStack:e,circuitJsonErrors:n})=>{ne.useEffect(()=>{if(t){const o=new Error(t);e&&(o.stack=e);try{z8.captureException(o)}catch{}}},[t,e]),ne.useEffect(()=>{if(n&&n.length>0)for(const o of n){const i=new Error(o.message||"Circuit JSON Error");o.stack&&(i.stack=o.stack);try{z8.captureException(i,{error_type:o.type})}catch{}}},[n])},qqo=t=>{ne.useEffect(()=>{try{IWt(t)}catch{}},[t.source,t.component,t.isWebEmbedded,t.activeTab])},$Ht="0.0.2434",Wqo={version:$Ht},w9e={BASE_URL:"/",DEV:!1,MODE:"production",PROD:!0,SSR:!1},N9e=new Map,Xse=t=>{const e=N9e.get(t);return e?Object.fromEntries(Object.entries(e.stores).map(([n,o])=>[n,o.getState()])):{}},jqo=(t,e,n)=>{if(t===void 0)return{type:"untracked",connection:e.connect(n)};const o=N9e.get(n.name);if(o)return{type:"tracked",store:t,...o};const i={connection:e.connect(n),stores:{}};return N9e.set(n.name,i),{type:"tracked",store:t,...i}},ZHt=(t,e={})=>(n,o,i)=>{const{enabled:r,anonymousActionType:s,store:a,...A}=e;let c;try{c=(r??(w9e?"production":void 0)!=="production")&&window.__REDUX_DEVTOOLS_EXTENSION__}catch{}if(!c)return(w9e?"production":void 0)!=="production"&&r&&console.warn("[zustand devtools middleware] Please install/enable Redux devtools extension"),t(n,o,i);const{connection:l,...g}=jqo(a,c,A);let u=!0;i.setState=(_,m,p)=>{const I=n(_,m);if(!u)return I;const f=p===void 0?{type:s||"anonymous"}:typeof p=="string"?{type:p}:p;return a===void 0?(l?.send(f,o()),I):(l?.send({...f,type:`${a}/${f.type}`},{...Xse(A.name),[a]:i.getState()}),I)};const d=(..._)=>{const m=u;u=!1,n(..._),u=m},h=t(i.setState,o,i);if(g.type==="untracked"?l?.init(h):(g.stores[g.store]=i,l?.init(Object.fromEntries(Object.entries(g.stores).map(([_,m])=>[_,_===g.store?h:m.getState()])))),i.dispatchFromDevtools&&typeof i.dispatch=="function"){let _=!1;const m=i.dispatch;i.dispatch=(...p)=>{(w9e?"production":void 0)!=="production"&&p[0].type==="__setState"&&!_&&(console.warn('[zustand devtools middleware] "__setState" action type is reserved to set state from the devtools. Avoid using it.'),_=!0),m(...p)}}return l.subscribe(_=>{var m;switch(_.type){case"ACTION":if(typeof _.payload!="string"){console.error("[zustand devtools middleware] Unsupported action format");return}return R9e(_.payload,p=>{if(p.type==="__setState"){if(a===void 0){d(p.state);return}Object.keys(p.state).length!==1&&console.error(`
|
|
5796
|
+
`,g=new Blob([l],{type:"text/plain"}),u=URL.createObjectURL(g),d=document.createElement("a");d.href=u,d.download=`${c}.test.ts`,d.click(),URL.revokeObjectURL(u)}catch(A){alert(`Error generating test.ts for ${t.constructor.name}: ${A instanceof Error?A.message:String(A)}`)}o(!1)};return j.jsxs("div",{className:`relative ${e}`,ref:i,children:[j.jsx("button",{className:"px-2 py-1 rounded text-xs cursor-pointer",onClick:()=>o(!n),title:`Download options for ${t.constructor.name}`,children:t.constructor.name}),n&&j.jsxs("div",{className:"absolute top-full left-0 mt-1 bg-white border border-gray-300 rounded shadow-lg z-10 min-w-[150px]",children:[j.jsx("button",{className:"w-full text-left px-3 py-2 hover:bg-gray-100 text-xs",onClick:r,children:"Download JSON"}),j.jsx("button",{className:"w-full text-left px-3 py-2 hover:bg-gray-100 text-xs",onClick:s,children:"Download page.tsx"}),j.jsx("button",{className:"w-full text-left px-3 py-2 hover:bg-gray-100 text-xs",onClick:a,children:"Download test.ts"})]})]})},YHt=t=>t.activeSubSolver?[t,...YHt(t.activeSubSolver)]:[t],Sqo=({solver:t})=>{const e=YHt(t);return j.jsx("div",{className:"flex gap-1 items-center text-sm pt-1",children:e.map((n,o)=>j.jsxs("div",{className:"flex items-center",children:[o>0&&j.jsx("span",{className:"text-gray-400 mx-1",children:"→"}),j.jsx(Qqo,{solver:n})]},n.constructor.name))})},bqo=({solver:t,triggerRender:e,animationSpeed:n=25,onSolverStarted:o,onSolverCompleted:i})=>{const[r,s]=ne.useReducer(_=>!_,!1),a=ne.useRef(void 0),A=()=>{!t.solved&&!t.failed&&(t.step(),e())},c=()=>{!t.solved&&!t.failed&&(o&&o(t),t.solve(),e(),i&&i(t))},l=()=>{r?(a.current&&(clearInterval(a.current),a.current=void 0),s()):(s(),a.current=setInterval(()=>{if(t.solved||t.failed){a.current&&(clearInterval(a.current),a.current=void 0),s(),e(),i&&t.solved&&i(t);return}t.step(),e()},n))},g=()=>{const _=t;if(_.getCurrentPhase&&!t.solved&&!t.failed){const m=_.getCurrentPhase();for(;_.getCurrentPhase()===m&&!t.solved&&!t.failed;)t.step();e()}},u=()=>{if(t.solved||t.failed||r)return;const _=window.prompt("Step until which iteration?",`${t.iterations}`);if(_===null)return;const m=Number(_);if(!Number.isFinite(m)){window.alert("Please enter a valid number for the iteration");return}for(;t.iterations<m&&!t.solved&&!t.failed;)t.step();e(),t.solved&&i&&i(t)};ne.useEffect(()=>()=>{a.current&&clearInterval(a.current)},[]),ne.useEffect(()=>{(t.solved||t.failed)&&r&&(a.current&&(clearInterval(a.current),a.current=void 0),s())},[t.solved,t.failed,r]);const d=t.getCurrentPhase!==void 0,h=d?t.getCurrentPhase():null;return j.jsxs("div",{className:"space-y-2 p-2 border-b",children:[j.jsx("div",{className:"flex items-center",children:j.jsx(Sqo,{solver:t})}),j.jsxs("div",{className:"flex gap-2 items-center flex-wrap",children:[j.jsx("button",{onClick:A,disabled:t.solved||t.failed||r,className:"bg-blue-500 hover:bg-blue-600 disabled:bg-gray-300 text-white px-3 py-1 rounded text-sm",children:"Step"}),j.jsx("button",{onClick:c,disabled:t.solved||t.failed||r,className:"bg-green-500 hover:bg-green-600 disabled:bg-gray-300 text-white px-3 py-1 rounded text-sm",children:"Solve"}),j.jsx("button",{onClick:l,disabled:t.solved||t.failed,className:`px-3 py-1 rounded text-white text-sm ${r?"bg-red-500 hover:bg-red-600":"bg-yellow-500 hover:bg-yellow-600"} disabled:bg-gray-300`,children:r?"Stop":"Animate"}),j.jsx("button",{onClick:u,disabled:t.solved||t.failed||r,className:"bg-orange-500 hover:bg-orange-600 disabled:bg-gray-300 text-white px-3 py-1 rounded text-sm",children:"Step Until Iteration"}),d&&j.jsx("button",{onClick:g,disabled:t.solved||t.failed||r,className:"bg-purple-500 hover:bg-purple-600 disabled:bg-gray-300 text-white px-3 py-1 rounded text-sm",children:"Next Stage"}),j.jsxs("div",{className:"text-sm text-gray-600",children:["Iterations: ",t.iterations]}),t.timeToSolve!==void 0&&j.jsxs("div",{className:"text-sm text-gray-600",children:["Time: ",(t.timeToSolve/1e3).toFixed(3),"s"]}),h&&j.jsxs("div",{className:"text-sm text-gray-600",children:["Phase: ",j.jsx("span",{className:"font-medium",children:h})]}),t.solved&&j.jsx("div",{className:"px-2 py-1 bg-green-100 text-green-800 rounded text-sm",children:"Solved"}),t.failed&&j.jsx("div",{className:"px-2 py-1 bg-red-100 text-red-800 rounded text-sm",children:"Failed"})]}),t.error&&j.jsxs("div",{className:"text-red-600 text-sm",children:["Error: ",t.error]})]})},Dqo=(t,e,n)=>{const o=t.currentPipelineStepIndex;return e<o?"Completed":e===o&&t.activeSubSolver?t.activeSubSolver.failed?"Failed":"In Progress":"Not Started"},Pqo=(t,e)=>{const o=t.pipelineDef[e].solverName,i=Dqo(t,e),r=t[o],s=t.firstIterationOfPhase?.[o]??null,a=t.iterations;let A=0;if(i==="Completed"){const u=t.pipelineDef[e+1],d=u?t.firstIterationOfPhase?.[u.solverName]:void 0;d!==void 0&&s!==null?A=d-s:s!==null&&(A=a-s)}else i==="In Progress"&&s!==null&&(A=a-s);const c=t.timeSpentOnPhase?.[o]??0;let l=0;i==="Completed"?l=1:i==="In Progress"&&r&&(l=r.progress??0);const g=r?.stats??null;return{index:e,name:o,status:i,firstIteration:s,iterations:A,progress:l,timeSpent:c,stats:g&&Object.keys(g).length>0?g:null,solverInstance:r??null}},vqo=({status:t})=>{const e={"Not Started":"text-blue-600","In Progress":"text-yellow-600",Completed:"text-green-600",Failed:"text-red-600"};return j.jsx("span",{className:`font-medium ${e[t]}`,children:t})},Mqo=({progress:t})=>{if(t===0)return null;const e=Math.round(t*100);return j.jsxs("div",{className:"flex items-center gap-2",children:[j.jsx("div",{className:"w-20 h-2 bg-gray-200 rounded overflow-hidden",children:j.jsx("div",{className:"h-full bg-blue-500 transition-all duration-200",style:{width:`${e}%`}})}),j.jsxs("span",{className:"text-xs text-gray-500",children:[e,"%"]})]})},wqo=t=>Object.entries(t).map(([e,n])=>`${e}: ${n}`).join(", "),Nqo=({stats:t})=>{if(!t||Object.keys(t).length===0)return j.jsx("span",{children:"-"});const e=Object.entries(t),n=wqo(t);return j.jsxs("details",{className:"cursor-pointer",children:[j.jsx("summary",{className:"whitespace-nowrap overflow-hidden text-ellipsis max-w-[200px]",children:n}),j.jsx("div",{className:"mt-1 text-xs",children:e.map(([o,i])=>j.jsxs("div",{children:[o,": ",String(i)]},o))})]})},M9e=t=>{if(t===null||typeof t!="object")return t;if(Array.isArray(t))return t.map(M9e);const e={};for(const[n,o]of Object.entries(t))n.startsWith("_")||(e[n]=M9e(o));return e},Rqo=(t,e)=>{try{if(typeof t.getConstructorParams!="function"){alert(`getConstructorParams() is not implemented for ${e}`);return}const n=M9e(t.getConstructorParams()),o=new Blob([JSON.stringify(n,null,2)],{type:"application/json"}),i=URL.createObjectURL(o),r=document.createElement("a");r.href=i,r.download=`${e}_input.json`,r.click(),URL.revokeObjectURL(i)}catch(n){alert(`Error downloading input for ${e}: ${n instanceof Error?n.message:String(n)}`)}},Tqo=({solver:t,onStepUntilPhase:e,onDownloadInput:n})=>{const o=t.pipelineDef.map((a,A)=>Pqo(t,A)),i=a=>{e?.(a)},r=a=>{a.solverInstance&&(n?n(a.solverInstance,a.name):Rqo(a.solverInstance,a.name))},s=a=>`${(a/1e3).toFixed(2)}s`;return j.jsxs("div",{className:"border-t border-gray-200",children:[j.jsx("div",{className:"px-4 py-2 bg-gray-50 border-b border-gray-200",children:j.jsx("h3",{className:"text-sm font-semibold text-gray-700",children:"Pipeline Steps"})}),j.jsx("div",{className:"overflow-x-auto",children:j.jsxs("table",{className:"w-full text-sm",children:[j.jsx("thead",{children:j.jsxs("tr",{className:"bg-gray-50 border-b border-gray-200",children:[j.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Step"}),j.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Status"}),j.jsxs("th",{className:"px-4 py-2 text-center font-semibold text-gray-700",children:["i",j.jsx("sub",{children:"0"})]}),j.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Iterations"}),j.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Progress"}),j.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Time"}),j.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Stats"}),j.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Input"})]})}),j.jsx("tbody",{children:o.map(a=>j.jsxs("tr",{className:`border-b border-gray-100 ${a.status==="In Progress"?"bg-yellow-50":""}`,children:[j.jsx("td",{className:"px-4 py-2",children:j.jsxs("div",{className:"flex items-center gap-2",children:[j.jsx("span",{className:"text-gray-400 w-6",children:String(a.index+1).padStart(2,"0")}),j.jsx("button",{onClick:()=>i(a.name),disabled:a.status==="Completed"||t.solved||t.failed,className:"text-blue-500 hover:text-blue-700 disabled:text-gray-300 disabled:cursor-not-allowed",title:`Step until ${a.name} completes`,children:j.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",className:"w-4 h-4",children:j.jsx("path",{fillRule:"evenodd",d:"M4.5 5.653c0-1.426 1.529-2.33 2.779-1.643l11.54 6.348c1.295.712 1.295 2.573 0 3.285L7.28 19.991c-1.25.687-2.779-.217-2.779-1.643V5.653z",clipRule:"evenodd"})})}),j.jsx("span",{className:"font-medium text-gray-900",children:a.name})]})}),j.jsx("td",{className:"px-4 py-2",children:j.jsx(vqo,{status:a.status})}),j.jsx("td",{className:"px-4 py-2 text-center text-gray-600",children:a.firstIteration!==null?a.firstIteration:""}),j.jsx("td",{className:"px-4 py-2 text-gray-600",children:a.iterations}),j.jsx("td",{className:"px-4 py-2",children:j.jsx(Mqo,{progress:a.progress})}),j.jsx("td",{className:"px-4 py-2 text-gray-600",children:s(a.timeSpent)}),j.jsx("td",{className:"px-4 py-2 text-gray-500",children:j.jsx(Nqo,{stats:a.stats})}),j.jsx("td",{className:"px-4 py-2",children:a.solverInstance?j.jsxs("button",{onClick:()=>r(a),className:"flex items-center gap-1 text-blue-500 hover:text-blue-700",title:`Download input for ${a.name}`,children:[j.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",className:"w-4 h-4",children:j.jsx("path",{fillRule:"evenodd",d:"M12 2.25a.75.75 0 01.75.75v11.69l3.22-3.22a.75.75 0 111.06 1.06l-4.5 4.5a.75.75 0 01-1.06 0l-4.5-4.5a.75.75 0 111.06-1.06l3.22 3.22V3a.75.75 0 01.75-.75zm-9 13.5a.75.75 0 01.75.75v2.25a1.5 1.5 0 001.5 1.5h13.5a1.5 1.5 0 001.5-1.5V16.5a.75.75 0 011.5 0v2.25a3 3 0 01-3 3H5.25a3 3 0 01-3-3V16.5a.75.75 0 01.75-.75z",clipRule:"evenodd"})}),j.jsx("span",{children:"Input"})]}):null})]},a.name))})]})})]})},kqo=class extends Xr.Component{constructor(t){super(t),this.state={hasError:!1}}static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(t){console.error("InteractiveGraphics render error:",t)}render(){return this.state.hasError?this.props.fallback:this.props.children}};function Fqo({graphics:t}){const e=t.points??[],n=t.lines??[],o=t.rects??[],i=t.circles??[],r=t.texts??[];let s=Number.POSITIVE_INFINITY,a=Number.POSITIVE_INFINITY,A=Number.NEGATIVE_INFINITY,c=Number.NEGATIVE_INFINITY;const l=(m,p)=>{typeof m=="number"&&(m<s&&(s=m),m>A&&(A=m)),typeof p=="number"&&(p<a&&(a=p),p>c&&(c=p))};for(const m of e)l(m.x,m.y);for(const m of n){const p=m.points??[];for(const I of p)l(I.x,I.y)}for(const m of o){const p=m.x??0,I=m.y??0,f=m.width??0,C=m.height??0;l(p,I),l(p+f,I+C)}for(const m of i){const p=m.x??0,I=m.y??0,f=m.radius??1;l(p-f,I-f),l(p+f,I+f)}for(const m of r)l(m.x,m.y);(!isFinite(s)||!isFinite(a)||!isFinite(A)||!isFinite(c))&&(s=-20,a=-20,A=20,c=20);const g=10,u=s-g,d=a-g,h=Math.max(1,A-s+2*g),_=Math.max(1,c-a+2*g);return j.jsxs("svg",{className:"w-full h-[400px] bg-white",viewBox:`${u} ${d} ${h} ${_}`,role:"img","aria-label":"Graphics fallback",children:[o.map((m,p)=>j.jsx("rect",{x:m.x??0,y:m.y??0,width:m.width??0,height:m.height??0,fill:"none",stroke:m.strokeColor??"black",strokeWidth:m.strokeWidth??1},`rect-${p}`)),n.map((m,p)=>j.jsx("polyline",{fill:"none",stroke:m.strokeColor??"black",strokeWidth:m.strokeWidth??1,points:(m.points??[]).map(I=>`${I.x??0},${I.y??0}`).join(" ")},`line-${p}`)),i.map((m,p)=>j.jsx("circle",{cx:m.x??0,cy:m.y??0,r:m.radius??1.5,fill:m.fillColor??"none",stroke:m.strokeColor??"black",strokeWidth:m.strokeWidth??1},`circle-${p}`)),e.map((m,p)=>j.jsx("circle",{cx:m.x??0,cy:m.y??0,r:m.radius??1.5,fill:m.color??"black"},`point-${p}`)),r.map((m,p)=>j.jsx("text",{x:m.x??0,y:m.y??0,fontSize:m.fontSize??10,fill:m.color??"black",children:m.text??""},`text-${p}`))]})}var Lqo=({solver:t,animationSpeed:e=25,onSolverStarted:n,onSolverCompleted:o})=>{const[i,r]=ne.useReducer(l=>l+1,0),s=ne.useMemo(()=>{try{return t.visualize()||{points:[],lines:[],rects:[],circles:[]}}catch(l){return console.error("Visualization error:",l),{points:[],lines:[],rects:[],circles:[]}}},[t,i]),a=ne.useMemo(()=>(s.rects?.length||0)===0&&(s.lines?.length||0)===0&&(s.points?.length||0)===0&&(s.circles?.length||0)===0,[s]);ne.useEffect(()=>{if(!(typeof document>"u")&&!document.querySelector('script[src="https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4"]')){const l=document.createElement("script");l.src="https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4",document.head.appendChild(l)}},[]);const A=t.pipelineDef!==void 0,c=l=>{const g=t;if(!t.solved&&!t.failed){for(;!t.solved&&!t.failed&&g.currentPipelineStepIndex<=g.pipelineDef.findIndex(u=>u.solverName===l);)t.step();r()}};return j.jsxs("div",{children:[j.jsx(bqo,{solver:t,triggerRender:r,animationSpeed:e,onSolverStarted:n,onSolverCompleted:o}),a?j.jsx("div",{className:"p-4 text-gray-500",children:"No Graphics Yet"}):j.jsx(kqo,{fallback:j.jsx(Fqo,{graphics:s}),children:j.jsx(Bqo,{graphics:s})}),A&&j.jsx(Tqo,{solver:t,onStepUntilPhase:c})]})};const Hqo=()=>{ne.useEffect(()=>{const t="tailwind-cdn-script";if(document.getElementById(t)||window.tailwind)return;const e=document.createElement("div");e.className="hidden",document.body.appendChild(e);const n=window.getComputedStyle(e).display==="none";if(document.body.removeChild(e),n)return;const o=document.createElement("script");o.id=t,o.src="https://cdn.tailwindcss.com",document.head.appendChild(o)},[])},Gqo=1e3,ub=(t,e)=>{const{fileName:n,mimeType:o="text/plain"}=e,i=t instanceof Blob?t:new Blob([t],{type:o}),r=URL.createObjectURL(i),s=document.createElement("a");s.href=r,s.download=n,s.target="_blank",s.rel="noopener noreferrer",s.style.display="none",document.body.appendChild(s),s.click(),document.body.removeChild(s),setTimeout(()=>{URL.revokeObjectURL(r)},Gqo)},zHt=t=>{let e=t.trim().replace(/[\\/:*?"<>|]/g,"_").replace(/[\x00-\x1f]/g,"").replace(/^\.+/,"").replace(/\.+$/,"").replace(/\s+/g," ").replace(/_+/g,"_");return/^(con|prn|aux|nul|com[0-9]|lpt[0-9])$/i.test(e)&&(e=`_${e}`),e=e.slice(0,200),e||"untitled"},hb="https://github.com/tscircuit/tscircuit-autorouter/issues/new",VHt="https://github.com/tscircuit/copper-pour-solver/issues/new",JHt="https://github.com/tscircuit/calculate-packing/issues/new",Oqo="https://github.com/tscircuit/matchpack/issues/new",qHt="https://github.com/tscircuit/schematic-trace-solver/issues/new?template=json-bug-report.yml",Kqo={PackSolver2:JHt,LayoutPipelineSolver:Oqo,AutoroutingPipelineSolver:hb,AssignableAutoroutingPipeline2:hb,AssignableAutoroutingPipeline3:hb,AutoroutingPipeline1_OriginalUnravel:hb,AutoroutingPipelineSolver3_HgPortPointPathing:hb,AutoroutingPipelineSolver4:hb,AutoroutingPipelineSolver5:hb,AutoroutingPipelineSolver7_MultiGraph:hb,AutoroutingPipelineSolver8:hb,CopperPourPipelineSolver:VHt,SchematicTracePipelineSolver:qHt},Uqo=t=>t.toLowerCase().includes("pack")?hTo:t.toLowerCase().includes("rout")?CTo:sTo,WHt=t=>{const e=Kqo[t];if(e)return e;const n=t.toLowerCase();return n.includes("autorout")?hb:n.includes("schematic")&&n.includes("trace")?qHt:n.includes("copperpour")?VHt:n.includes("pack")?JHt:null},Yqo=t=>`${zHt(`${t.componentName}-${t.solverName}`)}-solver-input.json`,jHt=t=>{ub(JSON.stringify(t.solverParams,null,2),{fileName:Yqo(t),mimeType:"application/json"})},zqo=({solverEvent:t})=>{const e=WHt(t.solverName);return j.jsxs("div",{className:"rf-flex rf-items-center rf-justify-end rf-gap-2 rf-border-b rf-border-gray-200 rf-bg-gray-50 rf-px-4 rf-py-2",children:[j.jsxs(Sc,{type:"button",variant:"outline",size:"sm",onClick:()=>jHt(t),children:[j.jsx(l6e,{className:"rf-w-4 rf-h-4"}),"Download"]}),e?j.jsx(Sc,{asChild:!0,variant:"outline",size:"sm",children:j.jsxs("a",{href:e,target:"_blank",rel:"noopener noreferrer",children:[j.jsx(Pre,{className:"rf-w-4 rf-h-4"}),"Report"]})}):j.jsxs(Sc,{type:"button",variant:"outline",size:"sm",disabled:!0,title:"No report link configured for this solver",children:[j.jsx(Pre,{className:"rf-w-4 rf-h-4"}),"Report"]})]})},Vqo=({solverEvent:t})=>{const e=WHt(t.solverName);return e?j.jsx(Sc,{asChild:!0,variant:"ghost",size:"icon",className:"rf-h-8 rf-w-8",children:j.jsx("a",{href:e,target:"_blank",rel:"noopener noreferrer",title:"Report solver bug","aria-label":"Report solver bug",children:j.jsx(Pre,{className:"rf-w-4 rf-h-4"})})}):j.jsx(Sc,{type:"button",variant:"ghost",size:"icon",className:"rf-h-8 rf-w-8",disabled:!0,title:"No report link configured for this solver","aria-label":"Report solver bug",children:j.jsx(Pre,{className:"rf-w-4 rf-h-4"})})},Jqo=({solverEvents:t=[]})=>{const[e,n]=ne.useState(null);Hqo();const o=ne.useMemo(()=>{const a=new Map;for(const A of t){const c=`${A.componentName}-${A.solverName}`;a.set(c,A)}return a},[t]),i=ne.useMemo(()=>Array.from(o.keys()),[o]),r=e?o.get(e):null,s=ne.useMemo(()=>{if(!r)return{instance:null,error:null,classFound:!1};const a=TBe[r.solverName];if(!a)return{instance:null,error:`Solver class "${r.solverName}" not found in SOLVERS registry. Available: ${Object.keys(TBe).join(", ")}`,classFound:!1};try{const A=r.solverParams,c=A?.input!==void 0?A.input:A;return{instance:new a(c),error:null,classFound:!0}}catch(A){const c=A instanceof Error?A.message:String(A);return console.error("Failed to reconstruct solver:",A),{instance:null,error:`Failed to instantiate solver: ${c}`,classFound:!0}}},[r]);return t.length===0?j.jsx("div",{className:"rf-p-4",children:j.jsx("div",{className:"rf-bg-gray-50 rf-rounded-md rf-border rf-border-gray-200",children:j.jsxs("div",{className:"rf-p-4",children:[j.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-text-gray-800 rf-mb-3",children:"No Solvers Detected"}),j.jsx("p",{className:"rf-text-sm rf-text-gray-600",children:"Solvers will appear here when the circuit runs. Solvers are used for tasks like component packing and autorouting."})]})})}):j.jsxs("div",{className:"rf-flex rf-h-full rf-overflow-hidden",children:[j.jsxs("div",{className:"rf-w-64 rf-border-r rf-border-gray-200 rf-overflow-y-auto rf-flex-shrink-0",children:[j.jsxs("div",{className:"rf-text-xs rf-font-semibold rf-text-gray-500 rf-px-3 rf-py-2 rf-bg-gray-50 rf-border-b rf-border-gray-200",children:[i.length," ",i.length===1?"Solver":"Solvers"]}),i.map(a=>{const A=o.get(a),c=e===a;return j.jsx("div",{className:`rf-px-3 rf-py-2 rf-cursor-pointer rf-border-b rf-border-gray-100 ${c?"rf-bg-blue-50 rf-border-l-2 rf-border-l-blue-500":"hover:rf-bg-gray-50"}`,onClick:()=>n(a),children:(()=>{const l=Uqo(A.solverName);return j.jsxs("div",{className:"rf-flex rf-items-center rf-gap-2",children:[j.jsx(l,{className:"rf-w-4 rf-h-4 rf-text-blue-500 rf-flex-shrink-0"}),j.jsxs("div",{className:"rf-flex-1 rf-min-w-0",children:[j.jsx("div",{className:"rf-text-sm rf-font-medium rf-text-gray-800 rf-truncate",children:A.componentName}),j.jsx("div",{className:"rf-text-xs rf-text-gray-500 rf-truncate",children:A.solverName})]})]})})()},a)})]}),j.jsx("div",{className:"rf-flex-1 rf-overflow-hidden",children:r?s.instance?j.jsxs("div",{className:"rf-flex rf-h-full rf-flex-col rf-overflow-y-auto",children:[j.jsx(zqo,{solverEvent:r}),j.jsx("div",{className:"rf-min-h-0 rf-flex-1",children:j.jsx(tb,{fallback:j.jsx("div",{className:"rf-p-4",children:j.jsxs("div",{className:"rf-bg-red-50 rf-rounded-md rf-border rf-border-red-200 rf-p-4",children:[j.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-text-red-800 rf-mb-2",children:"Error Loading Solver Debugger"}),j.jsxs("p",{className:"rf-text-sm rf-text-red-600",children:["Failed to render the solver debugger for"," ",r.solverName]})]})}),children:j.jsx(Lqo,{solver:s.instance})})})]}):j.jsxs("div",{className:"rf-p-4",children:[j.jsxs("div",{className:"rf-mb-4",children:[j.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-text-gray-800",children:r.solverName}),j.jsxs("p",{className:"rf-text-sm rf-text-gray-500",children:["Component: ",r.componentName]})]}),s.error&&j.jsx("div",{className:`rf-rounded-md rf-border rf-p-4 rf-mb-4 ${s.classFound?"rf-bg-red-50 rf-border-red-200":"rf-bg-yellow-50 rf-border-yellow-200"}`,children:j.jsx("p",{className:`rf-text-sm ${s.classFound?"rf-text-red-700":"rf-text-yellow-700"}`,children:s.error})}),j.jsxs("div",{className:"rf-border rf-border-gray-200 rf-rounded-md rf-overflow-hidden",children:[j.jsxs("div",{className:"rf-px-3 rf-py-2 rf-bg-gray-50 rf-flex rf-items-center rf-justify-between rf-gap-2",children:[j.jsx("span",{className:"rf-text-sm rf-font-medium rf-text-gray-700",children:"Solver Parameters"}),j.jsxs("div",{className:"rf-flex rf-items-center rf-gap-1",children:[j.jsx(Vqo,{solverEvent:r}),j.jsx(Sc,{type:"button",variant:"ghost",size:"icon",className:"rf-h-8 rf-w-8","aria-label":"Download solver input JSON",title:"Download solver input JSON",onClick:()=>jHt(r),children:j.jsx(l6e,{className:"rf-w-4 rf-h-4"})})]})]}),j.jsx("div",{className:"rf-p-3 rf-bg-white rf-border-t rf-border-gray-200",children:j.jsx("pre",{className:"rf-text-xs rf-font-mono rf-text-gray-600 rf-whitespace-pre-wrap rf-overflow-x-auto",children:JSON.stringify(r.solverParams,null,2)})})]})]}):j.jsx("div",{className:"rf-flex rf-items-center rf-justify-center rf-h-full",children:j.jsx("p",{className:"rf-text-sm rf-text-gray-500",children:"Select a solver from the list to view details"})})})]})},XHt=({errorMessage:t,errorStack:e,circuitJsonErrors:n})=>{ne.useEffect(()=>{if(t){const o=new Error(t);e&&(o.stack=e);try{z8.captureException(o)}catch{}}},[t,e]),ne.useEffect(()=>{if(n&&n.length>0)for(const o of n){const i=new Error(o.message||"Circuit JSON Error");o.stack&&(i.stack=o.stack);try{z8.captureException(i,{error_type:o.type})}catch{}}},[n])},qqo=t=>{ne.useEffect(()=>{try{IWt(t)}catch{}},[t.source,t.component,t.isWebEmbedded,t.activeTab])},$Ht="0.0.2435",Wqo={version:$Ht},w9e={BASE_URL:"/",DEV:!1,MODE:"production",PROD:!0,SSR:!1},N9e=new Map,Xse=t=>{const e=N9e.get(t);return e?Object.fromEntries(Object.entries(e.stores).map(([n,o])=>[n,o.getState()])):{}},jqo=(t,e,n)=>{if(t===void 0)return{type:"untracked",connection:e.connect(n)};const o=N9e.get(n.name);if(o)return{type:"tracked",store:t,...o};const i={connection:e.connect(n),stores:{}};return N9e.set(n.name,i),{type:"tracked",store:t,...i}},ZHt=(t,e={})=>(n,o,i)=>{const{enabled:r,anonymousActionType:s,store:a,...A}=e;let c;try{c=(r??(w9e?"production":void 0)!=="production")&&window.__REDUX_DEVTOOLS_EXTENSION__}catch{}if(!c)return(w9e?"production":void 0)!=="production"&&r&&console.warn("[zustand devtools middleware] Please install/enable Redux devtools extension"),t(n,o,i);const{connection:l,...g}=jqo(a,c,A);let u=!0;i.setState=(_,m,p)=>{const I=n(_,m);if(!u)return I;const f=p===void 0?{type:s||"anonymous"}:typeof p=="string"?{type:p}:p;return a===void 0?(l?.send(f,o()),I):(l?.send({...f,type:`${a}/${f.type}`},{...Xse(A.name),[a]:i.getState()}),I)};const d=(..._)=>{const m=u;u=!1,n(..._),u=m},h=t(i.setState,o,i);if(g.type==="untracked"?l?.init(h):(g.stores[g.store]=i,l?.init(Object.fromEntries(Object.entries(g.stores).map(([_,m])=>[_,_===g.store?h:m.getState()])))),i.dispatchFromDevtools&&typeof i.dispatch=="function"){let _=!1;const m=i.dispatch;i.dispatch=(...p)=>{(w9e?"production":void 0)!=="production"&&p[0].type==="__setState"&&!_&&(console.warn('[zustand devtools middleware] "__setState" action type is reserved to set state from the devtools. Avoid using it.'),_=!0),m(...p)}}return l.subscribe(_=>{var m;switch(_.type){case"ACTION":if(typeof _.payload!="string"){console.error("[zustand devtools middleware] Unsupported action format");return}return R9e(_.payload,p=>{if(p.type==="__setState"){if(a===void 0){d(p.state);return}Object.keys(p.state).length!==1&&console.error(`
|
|
5797
5797
|
[zustand devtools middleware] Unsupported __setState action format.
|
|
5798
5798
|
When using 'store' option in devtools(), the 'state' should have only one key, which is a value of 'store' that was passed in devtools(),
|
|
5799
5799
|
and value of this only key should be a state object. Example: { "type": "__setState", "state": { "abc123Store": { "foo": "bar" } } }
|
package/dist/standalone.min.js
CHANGED
|
@@ -5797,7 +5797,7 @@ test("${c} should solve problem correctly", () => {
|
|
|
5797
5797
|
// Add more specific assertions based on expected output
|
|
5798
5798
|
// expect(solver.netLabelPlacementSolver!.netLabelPlacements).toMatchInlineSnapshot()
|
|
5799
5799
|
})
|
|
5800
|
-
`,g=new Blob([l],{type:"text/plain"}),u=URL.createObjectURL(g),d=document.createElement("a");d.href=u,d.download=`${c}.test.ts`,d.click(),URL.revokeObjectURL(u)}catch(A){alert(`Error generating test.ts for ${t.constructor.name}: ${A instanceof Error?A.message:String(A)}`)}o(!1)};return V.jsxs("div",{className:`relative ${e}`,ref:i,children:[V.jsx("button",{className:"px-2 py-1 rounded text-xs cursor-pointer",onClick:()=>o(!n),title:`Download options for ${t.constructor.name}`,children:t.constructor.name}),n&&V.jsxs("div",{className:"absolute top-full left-0 mt-1 bg-white border border-gray-300 rounded shadow-lg z-10 min-w-[150px]",children:[V.jsx("button",{className:"w-full text-left px-3 py-2 hover:bg-gray-100 text-xs",onClick:r,children:"Download JSON"}),V.jsx("button",{className:"w-full text-left px-3 py-2 hover:bg-gray-100 text-xs",onClick:s,children:"Download page.tsx"}),V.jsx("button",{className:"w-full text-left px-3 py-2 hover:bg-gray-100 text-xs",onClick:a,children:"Download test.ts"})]})]})},iOt=t=>t.activeSubSolver?[t,...iOt(t.activeSubSolver)]:[t],aXo=({solver:t})=>{const e=iOt(t);return V.jsx("div",{className:"flex gap-1 items-center text-sm pt-1",children:e.map((n,o)=>V.jsxs("div",{className:"flex items-center",children:[o>0&&V.jsx("span",{className:"text-gray-400 mx-1",children:"→"}),V.jsx(sXo,{solver:n})]},n.constructor.name))})},AXo=({solver:t,triggerRender:e,animationSpeed:n=25,onSolverStarted:o,onSolverCompleted:i})=>{const[r,s]=$.useReducer(_=>!_,!1),a=$.useRef(void 0),A=()=>{!t.solved&&!t.failed&&(t.step(),e())},c=()=>{!t.solved&&!t.failed&&(o&&o(t),t.solve(),e(),i&&i(t))},l=()=>{r?(a.current&&(clearInterval(a.current),a.current=void 0),s()):(s(),a.current=setInterval(()=>{if(t.solved||t.failed){a.current&&(clearInterval(a.current),a.current=void 0),s(),e(),i&&t.solved&&i(t);return}t.step(),e()},n))},g=()=>{const _=t;if(_.getCurrentPhase&&!t.solved&&!t.failed){const m=_.getCurrentPhase();for(;_.getCurrentPhase()===m&&!t.solved&&!t.failed;)t.step();e()}},u=()=>{if(t.solved||t.failed||r)return;const _=window.prompt("Step until which iteration?",`${t.iterations}`);if(_===null)return;const m=Number(_);if(!Number.isFinite(m)){window.alert("Please enter a valid number for the iteration");return}for(;t.iterations<m&&!t.solved&&!t.failed;)t.step();e(),t.solved&&i&&i(t)};$.useEffect(()=>()=>{a.current&&clearInterval(a.current)},[]),$.useEffect(()=>{(t.solved||t.failed)&&r&&(a.current&&(clearInterval(a.current),a.current=void 0),s())},[t.solved,t.failed,r]);const d=t.getCurrentPhase!==void 0,h=d?t.getCurrentPhase():null;return V.jsxs("div",{className:"space-y-2 p-2 border-b",children:[V.jsx("div",{className:"flex items-center",children:V.jsx(aXo,{solver:t})}),V.jsxs("div",{className:"flex gap-2 items-center flex-wrap",children:[V.jsx("button",{onClick:A,disabled:t.solved||t.failed||r,className:"bg-blue-500 hover:bg-blue-600 disabled:bg-gray-300 text-white px-3 py-1 rounded text-sm",children:"Step"}),V.jsx("button",{onClick:c,disabled:t.solved||t.failed||r,className:"bg-green-500 hover:bg-green-600 disabled:bg-gray-300 text-white px-3 py-1 rounded text-sm",children:"Solve"}),V.jsx("button",{onClick:l,disabled:t.solved||t.failed,className:`px-3 py-1 rounded text-white text-sm ${r?"bg-red-500 hover:bg-red-600":"bg-yellow-500 hover:bg-yellow-600"} disabled:bg-gray-300`,children:r?"Stop":"Animate"}),V.jsx("button",{onClick:u,disabled:t.solved||t.failed||r,className:"bg-orange-500 hover:bg-orange-600 disabled:bg-gray-300 text-white px-3 py-1 rounded text-sm",children:"Step Until Iteration"}),d&&V.jsx("button",{onClick:g,disabled:t.solved||t.failed||r,className:"bg-purple-500 hover:bg-purple-600 disabled:bg-gray-300 text-white px-3 py-1 rounded text-sm",children:"Next Stage"}),V.jsxs("div",{className:"text-sm text-gray-600",children:["Iterations: ",t.iterations]}),t.timeToSolve!==void 0&&V.jsxs("div",{className:"text-sm text-gray-600",children:["Time: ",(t.timeToSolve/1e3).toFixed(3),"s"]}),h&&V.jsxs("div",{className:"text-sm text-gray-600",children:["Phase: ",V.jsx("span",{className:"font-medium",children:h})]}),t.solved&&V.jsx("div",{className:"px-2 py-1 bg-green-100 text-green-800 rounded text-sm",children:"Solved"}),t.failed&&V.jsx("div",{className:"px-2 py-1 bg-red-100 text-red-800 rounded text-sm",children:"Failed"})]}),t.error&&V.jsxs("div",{className:"text-red-600 text-sm",children:["Error: ",t.error]})]})},cXo=(t,e,n)=>{const o=t.currentPipelineStepIndex;return e<o?"Completed":e===o&&t.activeSubSolver?t.activeSubSolver.failed?"Failed":"In Progress":"Not Started"},lXo=(t,e)=>{const o=t.pipelineDef[e].solverName,i=cXo(t,e),r=t[o],s=t.firstIterationOfPhase?.[o]??null,a=t.iterations;let A=0;if(i==="Completed"){const u=t.pipelineDef[e+1],d=u?t.firstIterationOfPhase?.[u.solverName]:void 0;d!==void 0&&s!==null?A=d-s:s!==null&&(A=a-s)}else i==="In Progress"&&s!==null&&(A=a-s);const c=t.timeSpentOnPhase?.[o]??0;let l=0;i==="Completed"?l=1:i==="In Progress"&&r&&(l=r.progress??0);const g=r?.stats??null;return{index:e,name:o,status:i,firstIteration:s,iterations:A,progress:l,timeSpent:c,stats:g&&Object.keys(g).length>0?g:null,solverInstance:r??null}},gXo=({status:t})=>{const e={"Not Started":"text-blue-600","In Progress":"text-yellow-600",Completed:"text-green-600",Failed:"text-red-600"};return V.jsx("span",{className:`font-medium ${e[t]}`,children:t})},uXo=({progress:t})=>{if(t===0)return null;const e=Math.round(t*100);return V.jsxs("div",{className:"flex items-center gap-2",children:[V.jsx("div",{className:"w-20 h-2 bg-gray-200 rounded overflow-hidden",children:V.jsx("div",{className:"h-full bg-blue-500 transition-all duration-200",style:{width:`${e}%`}})}),V.jsxs("span",{className:"text-xs text-gray-500",children:[e,"%"]})]})},hXo=t=>Object.entries(t).map(([e,n])=>`${e}: ${n}`).join(", "),dXo=({stats:t})=>{if(!t||Object.keys(t).length===0)return V.jsx("span",{children:"-"});const e=Object.entries(t),n=hXo(t);return V.jsxs("details",{className:"cursor-pointer",children:[V.jsx("summary",{className:"whitespace-nowrap overflow-hidden text-ellipsis max-w-[200px]",children:n}),V.jsx("div",{className:"mt-1 text-xs",children:e.map(([o,i])=>V.jsxs("div",{children:[o,": ",String(i)]},o))})]})},M7e=t=>{if(t===null||typeof t!="object")return t;if(Array.isArray(t))return t.map(M7e);const e={};for(const[n,o]of Object.entries(t))n.startsWith("_")||(e[n]=M7e(o));return e},_Xo=(t,e)=>{try{if(typeof t.getConstructorParams!="function"){alert(`getConstructorParams() is not implemented for ${e}`);return}const n=M7e(t.getConstructorParams()),o=new Blob([JSON.stringify(n,null,2)],{type:"application/json"}),i=URL.createObjectURL(o),r=document.createElement("a");r.href=i,r.download=`${e}_input.json`,r.click(),URL.revokeObjectURL(i)}catch(n){alert(`Error downloading input for ${e}: ${n instanceof Error?n.message:String(n)}`)}},mXo=({solver:t,onStepUntilPhase:e,onDownloadInput:n})=>{const o=t.pipelineDef.map((a,A)=>lXo(t,A)),i=a=>{e?.(a)},r=a=>{a.solverInstance&&(n?n(a.solverInstance,a.name):_Xo(a.solverInstance,a.name))},s=a=>`${(a/1e3).toFixed(2)}s`;return V.jsxs("div",{className:"border-t border-gray-200",children:[V.jsx("div",{className:"px-4 py-2 bg-gray-50 border-b border-gray-200",children:V.jsx("h3",{className:"text-sm font-semibold text-gray-700",children:"Pipeline Steps"})}),V.jsx("div",{className:"overflow-x-auto",children:V.jsxs("table",{className:"w-full text-sm",children:[V.jsx("thead",{children:V.jsxs("tr",{className:"bg-gray-50 border-b border-gray-200",children:[V.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Step"}),V.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Status"}),V.jsxs("th",{className:"px-4 py-2 text-center font-semibold text-gray-700",children:["i",V.jsx("sub",{children:"0"})]}),V.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Iterations"}),V.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Progress"}),V.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Time"}),V.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Stats"}),V.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Input"})]})}),V.jsx("tbody",{children:o.map(a=>V.jsxs("tr",{className:`border-b border-gray-100 ${a.status==="In Progress"?"bg-yellow-50":""}`,children:[V.jsx("td",{className:"px-4 py-2",children:V.jsxs("div",{className:"flex items-center gap-2",children:[V.jsx("span",{className:"text-gray-400 w-6",children:String(a.index+1).padStart(2,"0")}),V.jsx("button",{onClick:()=>i(a.name),disabled:a.status==="Completed"||t.solved||t.failed,className:"text-blue-500 hover:text-blue-700 disabled:text-gray-300 disabled:cursor-not-allowed",title:`Step until ${a.name} completes`,children:V.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",className:"w-4 h-4",children:V.jsx("path",{fillRule:"evenodd",d:"M4.5 5.653c0-1.426 1.529-2.33 2.779-1.643l11.54 6.348c1.295.712 1.295 2.573 0 3.285L7.28 19.991c-1.25.687-2.779-.217-2.779-1.643V5.653z",clipRule:"evenodd"})})}),V.jsx("span",{className:"font-medium text-gray-900",children:a.name})]})}),V.jsx("td",{className:"px-4 py-2",children:V.jsx(gXo,{status:a.status})}),V.jsx("td",{className:"px-4 py-2 text-center text-gray-600",children:a.firstIteration!==null?a.firstIteration:""}),V.jsx("td",{className:"px-4 py-2 text-gray-600",children:a.iterations}),V.jsx("td",{className:"px-4 py-2",children:V.jsx(uXo,{progress:a.progress})}),V.jsx("td",{className:"px-4 py-2 text-gray-600",children:s(a.timeSpent)}),V.jsx("td",{className:"px-4 py-2 text-gray-500",children:V.jsx(dXo,{stats:a.stats})}),V.jsx("td",{className:"px-4 py-2",children:a.solverInstance?V.jsxs("button",{onClick:()=>r(a),className:"flex items-center gap-1 text-blue-500 hover:text-blue-700",title:`Download input for ${a.name}`,children:[V.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",className:"w-4 h-4",children:V.jsx("path",{fillRule:"evenodd",d:"M12 2.25a.75.75 0 01.75.75v11.69l3.22-3.22a.75.75 0 111.06 1.06l-4.5 4.5a.75.75 0 01-1.06 0l-4.5-4.5a.75.75 0 111.06-1.06l3.22 3.22V3a.75.75 0 01.75-.75zm-9 13.5a.75.75 0 01.75.75v2.25a1.5 1.5 0 001.5 1.5h13.5a1.5 1.5 0 001.5-1.5V16.5a.75.75 0 011.5 0v2.25a3 3 0 01-3 3H5.25a3 3 0 01-3-3V16.5a.75.75 0 01.75-.75z",clipRule:"evenodd"})}),V.jsx("span",{children:"Input"})]}):null})]},a.name))})]})})]})},pXo=class extends $r.Component{constructor(t){super(t),this.state={hasError:!1}}static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(t){console.error("InteractiveGraphics render error:",t)}render(){return this.state.hasError?this.props.fallback:this.props.children}};function IXo({graphics:t}){const e=t.points??[],n=t.lines??[],o=t.rects??[],i=t.circles??[],r=t.texts??[];let s=Number.POSITIVE_INFINITY,a=Number.POSITIVE_INFINITY,A=Number.NEGATIVE_INFINITY,c=Number.NEGATIVE_INFINITY;const l=(m,p)=>{typeof m=="number"&&(m<s&&(s=m),m>A&&(A=m)),typeof p=="number"&&(p<a&&(a=p),p>c&&(c=p))};for(const m of e)l(m.x,m.y);for(const m of n){const p=m.points??[];for(const I of p)l(I.x,I.y)}for(const m of o){const p=m.x??0,I=m.y??0,f=m.width??0,C=m.height??0;l(p,I),l(p+f,I+C)}for(const m of i){const p=m.x??0,I=m.y??0,f=m.radius??1;l(p-f,I-f),l(p+f,I+f)}for(const m of r)l(m.x,m.y);(!isFinite(s)||!isFinite(a)||!isFinite(A)||!isFinite(c))&&(s=-20,a=-20,A=20,c=20);const g=10,u=s-g,d=a-g,h=Math.max(1,A-s+2*g),_=Math.max(1,c-a+2*g);return V.jsxs("svg",{className:"w-full h-[400px] bg-white",viewBox:`${u} ${d} ${h} ${_}`,role:"img","aria-label":"Graphics fallback",children:[o.map((m,p)=>V.jsx("rect",{x:m.x??0,y:m.y??0,width:m.width??0,height:m.height??0,fill:"none",stroke:m.strokeColor??"black",strokeWidth:m.strokeWidth??1},`rect-${p}`)),n.map((m,p)=>V.jsx("polyline",{fill:"none",stroke:m.strokeColor??"black",strokeWidth:m.strokeWidth??1,points:(m.points??[]).map(I=>`${I.x??0},${I.y??0}`).join(" ")},`line-${p}`)),i.map((m,p)=>V.jsx("circle",{cx:m.x??0,cy:m.y??0,r:m.radius??1.5,fill:m.fillColor??"none",stroke:m.strokeColor??"black",strokeWidth:m.strokeWidth??1},`circle-${p}`)),e.map((m,p)=>V.jsx("circle",{cx:m.x??0,cy:m.y??0,r:m.radius??1.5,fill:m.color??"black"},`point-${p}`)),r.map((m,p)=>V.jsx("text",{x:m.x??0,y:m.y??0,fontSize:m.fontSize??10,fill:m.color??"black",children:m.text??""},`text-${p}`))]})}var fXo=({solver:t,animationSpeed:e=25,onSolverStarted:n,onSolverCompleted:o})=>{const[i,r]=$.useReducer(l=>l+1,0),s=$.useMemo(()=>{try{return t.visualize()||{points:[],lines:[],rects:[],circles:[]}}catch(l){return console.error("Visualization error:",l),{points:[],lines:[],rects:[],circles:[]}}},[t,i]),a=$.useMemo(()=>(s.rects?.length||0)===0&&(s.lines?.length||0)===0&&(s.points?.length||0)===0&&(s.circles?.length||0)===0,[s]);$.useEffect(()=>{if(!(typeof document>"u")&&!document.querySelector('script[src="https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4"]')){const l=document.createElement("script");l.src="https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4",document.head.appendChild(l)}},[]);const A=t.pipelineDef!==void 0,c=l=>{const g=t;if(!t.solved&&!t.failed){for(;!t.solved&&!t.failed&&g.currentPipelineStepIndex<=g.pipelineDef.findIndex(u=>u.solverName===l);)t.step();r()}};return V.jsxs("div",{children:[V.jsx(AXo,{solver:t,triggerRender:r,animationSpeed:e,onSolverStarted:n,onSolverCompleted:o}),a?V.jsx("div",{className:"p-4 text-gray-500",children:"No Graphics Yet"}):V.jsx(pXo,{fallback:V.jsx(IXo,{graphics:s}),children:V.jsx(rXo,{graphics:s})}),A&&V.jsx(mXo,{solver:t,onStepUntilPhase:c})]})};const CXo=()=>{$.useEffect(()=>{const t="tailwind-cdn-script";if(document.getElementById(t)||window.tailwind)return;const e=document.createElement("div");e.className="hidden",document.body.appendChild(e);const n=window.getComputedStyle(e).display==="none";if(document.body.removeChild(e),n)return;const o=document.createElement("script");o.id=t,o.src="https://cdn.tailwindcss.com",document.head.appendChild(o)},[])},yXo=1e3,Eb=(t,e)=>{const{fileName:n,mimeType:o="text/plain"}=e,i=t instanceof Blob?t:new Blob([t],{type:o}),r=URL.createObjectURL(i),s=document.createElement("a");s.href=r,s.download=n,s.target="_blank",s.rel="noopener noreferrer",s.style.display="none",document.body.appendChild(s),s.click(),document.body.removeChild(s),setTimeout(()=>{URL.revokeObjectURL(r)},yXo)},rOt=t=>{let e=t.trim().replace(/[\\/:*?"<>|]/g,"_").replace(/[\x00-\x1f]/g,"").replace(/^\.+/,"").replace(/\.+$/,"").replace(/\s+/g," ").replace(/_+/g,"_");return/^(con|prn|aux|nul|com[0-9]|lpt[0-9])$/i.test(e)&&(e=`_${e}`),e=e.slice(0,200),e||"untitled"},xb="https://github.com/tscircuit/tscircuit-autorouter/issues/new",sOt="https://github.com/tscircuit/copper-pour-solver/issues/new",aOt="https://github.com/tscircuit/calculate-packing/issues/new",EXo="https://github.com/tscircuit/matchpack/issues/new",AOt="https://github.com/tscircuit/schematic-trace-solver/issues/new?template=json-bug-report.yml",xXo={PackSolver2:aOt,LayoutPipelineSolver:EXo,AutoroutingPipelineSolver:xb,AssignableAutoroutingPipeline2:xb,AssignableAutoroutingPipeline3:xb,AutoroutingPipeline1_OriginalUnravel:xb,AutoroutingPipelineSolver3_HgPortPointPathing:xb,AutoroutingPipelineSolver4:xb,AutoroutingPipelineSolver5:xb,AutoroutingPipelineSolver7_MultiGraph:xb,AutoroutingPipelineSolver8:xb,CopperPourPipelineSolver:sOt,SchematicTracePipelineSolver:AOt},BXo=t=>t.toLowerCase().includes("pack")?iLo:t.toLowerCase().includes("rout")?lLo:zFo,cOt=t=>{const e=xXo[t];if(e)return e;const n=t.toLowerCase();return n.includes("autorout")?xb:n.includes("schematic")&&n.includes("trace")?AOt:n.includes("copperpour")?sOt:n.includes("pack")?aOt:null},QXo=t=>`${rOt(`${t.componentName}-${t.solverName}`)}-solver-input.json`,lOt=t=>{Eb(JSON.stringify(t.solverParams,null,2),{fileName:QXo(t),mimeType:"application/json"})},SXo=({solverEvent:t})=>{const e=cOt(t.solverName);return V.jsxs("div",{className:"rf-flex rf-items-center rf-justify-end rf-gap-2 rf-border-b rf-border-gray-200 rf-bg-gray-50 rf-px-4 rf-py-2",children:[V.jsxs(rA,{type:"button",variant:"outline",size:"sm",onClick:()=>lOt(t),children:[V.jsx(g8e,{className:"rf-w-4 rf-h-4"}),"Download"]}),e?V.jsx(rA,{asChild:!0,variant:"outline",size:"sm",children:V.jsxs("a",{href:e,target:"_blank",rel:"noopener noreferrer",children:[V.jsx(Ase,{className:"rf-w-4 rf-h-4"}),"Report"]})}):V.jsxs(rA,{type:"button",variant:"outline",size:"sm",disabled:!0,title:"No report link configured for this solver",children:[V.jsx(Ase,{className:"rf-w-4 rf-h-4"}),"Report"]})]})},bXo=({solverEvent:t})=>{const e=cOt(t.solverName);return e?V.jsx(rA,{asChild:!0,variant:"ghost",size:"icon",className:"rf-h-8 rf-w-8",children:V.jsx("a",{href:e,target:"_blank",rel:"noopener noreferrer",title:"Report solver bug","aria-label":"Report solver bug",children:V.jsx(Ase,{className:"rf-w-4 rf-h-4"})})}):V.jsx(rA,{type:"button",variant:"ghost",size:"icon",className:"rf-h-8 rf-w-8",disabled:!0,title:"No report link configured for this solver","aria-label":"Report solver bug",children:V.jsx(Ase,{className:"rf-w-4 rf-h-4"})})},DXo=({solverEvents:t=[]})=>{const[e,n]=$.useState(null);CXo();const o=$.useMemo(()=>{const a=new Map;for(const A of t){const c=`${A.componentName}-${A.solverName}`;a.set(c,A)}return a},[t]),i=$.useMemo(()=>Array.from(o.keys()),[o]),r=e?o.get(e):null,s=$.useMemo(()=>{if(!r)return{instance:null,error:null,classFound:!1};const a=i2e[r.solverName];if(!a)return{instance:null,error:`Solver class "${r.solverName}" not found in SOLVERS registry. Available: ${Object.keys(i2e).join(", ")}`,classFound:!1};try{const A=r.solverParams,c=A?.input!==void 0?A.input:A;return{instance:new a(c),error:null,classFound:!0}}catch(A){const c=A instanceof Error?A.message:String(A);return console.error("Failed to reconstruct solver:",A),{instance:null,error:`Failed to instantiate solver: ${c}`,classFound:!0}}},[r]);return t.length===0?V.jsx("div",{className:"rf-p-4",children:V.jsx("div",{className:"rf-bg-gray-50 rf-rounded-md rf-border rf-border-gray-200",children:V.jsxs("div",{className:"rf-p-4",children:[V.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-text-gray-800 rf-mb-3",children:"No Solvers Detected"}),V.jsx("p",{className:"rf-text-sm rf-text-gray-600",children:"Solvers will appear here when the circuit runs. Solvers are used for tasks like component packing and autorouting."})]})})}):V.jsxs("div",{className:"rf-flex rf-h-full rf-overflow-hidden",children:[V.jsxs("div",{className:"rf-w-64 rf-border-r rf-border-gray-200 rf-overflow-y-auto rf-flex-shrink-0",children:[V.jsxs("div",{className:"rf-text-xs rf-font-semibold rf-text-gray-500 rf-px-3 rf-py-2 rf-bg-gray-50 rf-border-b rf-border-gray-200",children:[i.length," ",i.length===1?"Solver":"Solvers"]}),i.map(a=>{const A=o.get(a),c=e===a;return V.jsx("div",{className:`rf-px-3 rf-py-2 rf-cursor-pointer rf-border-b rf-border-gray-100 ${c?"rf-bg-blue-50 rf-border-l-2 rf-border-l-blue-500":"hover:rf-bg-gray-50"}`,onClick:()=>n(a),children:(()=>{const l=BXo(A.solverName);return V.jsxs("div",{className:"rf-flex rf-items-center rf-gap-2",children:[V.jsx(l,{className:"rf-w-4 rf-h-4 rf-text-blue-500 rf-flex-shrink-0"}),V.jsxs("div",{className:"rf-flex-1 rf-min-w-0",children:[V.jsx("div",{className:"rf-text-sm rf-font-medium rf-text-gray-800 rf-truncate",children:A.componentName}),V.jsx("div",{className:"rf-text-xs rf-text-gray-500 rf-truncate",children:A.solverName})]})]})})()},a)})]}),V.jsx("div",{className:"rf-flex-1 rf-overflow-hidden",children:r?s.instance?V.jsxs("div",{className:"rf-flex rf-h-full rf-flex-col rf-overflow-y-auto",children:[V.jsx(SXo,{solverEvent:r}),V.jsx("div",{className:"rf-min-h-0 rf-flex-1",children:V.jsx(Gx,{fallback:V.jsx("div",{className:"rf-p-4",children:V.jsxs("div",{className:"rf-bg-red-50 rf-rounded-md rf-border rf-border-red-200 rf-p-4",children:[V.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-text-red-800 rf-mb-2",children:"Error Loading Solver Debugger"}),V.jsxs("p",{className:"rf-text-sm rf-text-red-600",children:["Failed to render the solver debugger for"," ",r.solverName]})]})}),children:V.jsx(fXo,{solver:s.instance})})})]}):V.jsxs("div",{className:"rf-p-4",children:[V.jsxs("div",{className:"rf-mb-4",children:[V.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-text-gray-800",children:r.solverName}),V.jsxs("p",{className:"rf-text-sm rf-text-gray-500",children:["Component: ",r.componentName]})]}),s.error&&V.jsx("div",{className:`rf-rounded-md rf-border rf-p-4 rf-mb-4 ${s.classFound?"rf-bg-red-50 rf-border-red-200":"rf-bg-yellow-50 rf-border-yellow-200"}`,children:V.jsx("p",{className:`rf-text-sm ${s.classFound?"rf-text-red-700":"rf-text-yellow-700"}`,children:s.error})}),V.jsxs("div",{className:"rf-border rf-border-gray-200 rf-rounded-md rf-overflow-hidden",children:[V.jsxs("div",{className:"rf-px-3 rf-py-2 rf-bg-gray-50 rf-flex rf-items-center rf-justify-between rf-gap-2",children:[V.jsx("span",{className:"rf-text-sm rf-font-medium rf-text-gray-700",children:"Solver Parameters"}),V.jsxs("div",{className:"rf-flex rf-items-center rf-gap-1",children:[V.jsx(bXo,{solverEvent:r}),V.jsx(rA,{type:"button",variant:"ghost",size:"icon",className:"rf-h-8 rf-w-8","aria-label":"Download solver input JSON",title:"Download solver input JSON",onClick:()=>lOt(r),children:V.jsx(g8e,{className:"rf-w-4 rf-h-4"})})]})]}),V.jsx("div",{className:"rf-p-3 rf-bg-white rf-border-t rf-border-gray-200",children:V.jsx("pre",{className:"rf-text-xs rf-font-mono rf-text-gray-600 rf-whitespace-pre-wrap rf-overflow-x-auto",children:JSON.stringify(r.solverParams,null,2)})})]})]}):V.jsx("div",{className:"rf-flex rf-items-center rf-justify-center rf-h-full",children:V.jsx("p",{className:"rf-text-sm rf-text-gray-500",children:"Select a solver from the list to view details"})})})]})},gOt=({errorMessage:t,errorStack:e,circuitJsonErrors:n})=>{$.useEffect(()=>{if(t){const o=new Error(t);e&&(o.stack=e);try{RR.captureException(o)}catch{}}},[t,e]),$.useEffect(()=>{if(n&&n.length>0)for(const o of n){const i=new Error(o.message||"Circuit JSON Error");o.stack&&(i.stack=o.stack);try{RR.captureException(i,{error_type:o.type})}catch{}}},[n])},uOt=t=>{$.useEffect(()=>{try{Yro(t)}catch{}},[t.source,t.component,t.isWebEmbedded,t.activeTab])},hOt="0.0.2434",vXo={version:hOt},Pae=pIt()(IIt(t=>({lastRunEvalVersion:void 0,setLastRunEvalVersion:e=>{t({lastRunEvalVersion:e})}}),{name:"runframe-runner-store"})),PXo=t=>{const[e,n]=$.useState([]),[o,i]=$.useState(null),[r,s]=$.useState(""),[a,A]=lR("eval-version-selection",null),c=Pae(d=>d.setLastRunEvalVersion),l=Pae(d=>d.lastRunEvalVersion);return $.useEffect(()=>{t&&fetch("https://data.jsdelivr.com/v1/package/npm/@tscircuit/eval").then(d=>d.json()).then(d=>{if(Array.isArray(d?.versions)){let h=[...d.versions];d.tags?.latest&&(i(d.tags.latest),h=h.filter(_=>_!==d.tags.latest)),n(h)}}).catch(()=>{})},[t]),$.useEffect(()=>{t&&(a?(window.TSCIRCUIT_LATEST_EVAL_VERSION=a,c(a)):o&&(window.TSCIRCUIT_LATEST_EVAL_VERSION=o,c(o)))},[t,a,o]),{versions:$.useMemo(()=>e.filter(d=>d.includes(r)).slice(0,50),[e,r]),latestVersion:o,lastRunEvalVersion:l,search:r,setSearch:s,selectVersion:d=>{A(d),s("")}}},MXo=({snippetNames:t,onSelect:e,onCancel:n,isOpen:o})=>{const[i,r]=$.useState(""),[s,a]=$.useState("");if(!o)return null;const A=t.filter(g=>g.toLowerCase().includes(s.toLowerCase())),c=s&&!t.includes(s),l=g=>{g.key==="Enter"&&(A.length===1?r(A[0]):c&&r(s))};return V.jsx("div",{className:"rf-fixed rf-inset-0 rf-bg-black rf-bg-opacity-50 rf-flex rf-items-center rf-justify-center rf-z-[100]",children:V.jsxs("div",{className:"rf-bg-white rf-rounded-lg rf-p-6 rf-w-96",children:[V.jsx("h2",{className:"rf-text-lg rf-font-semibold rf-mb-4",children:"Select Snippet"}),V.jsx("input",{type:"text",className:"rf-w-full rf-px-4 rf-py-2 rf-border rf-rounded rf-mb-4",placeholder:"Search snippets or new snippet name...",value:s,onChange:g=>a(g.target.value),onKeyDown:l}),V.jsxs("div",{className:"rf-h-60 rf-overflow-y-auto",children:[A.map(g=>V.jsx("button",{type:"button",className:`w-full text-left px-4 py-2 rounded hover:bg-gray-100 ${i===g?"bg-blue-50":""}`,onClick:()=>r(g),children:g},g)),c&&V.jsxs("button",{type:"button",className:`w-full text-left px-4 py-2 rounded hover:bg-gray-100 text-blue-500 ${i===s?"bg-blue-50":""}`,onClick:()=>r(s),children:['Create new "',s,'"']})]}),V.jsxs("div",{className:"rf-mt-4 rf-flex rf-justify-end rf-gap-2",children:[V.jsx("button",{type:"button",className:"rf-px-4 rf-py-2 rf-text-gray-600 rf-hover:text-gray-800",onClick:n,children:"Cancel"}),V.jsx("button",{type:"button",className:"rf-px-4 rf-py-2 rf-bg-blue-500 rf-text-white rf-rounded rf-hover:bg-blue-600 rf-disabled:opacity-50",onClick:()=>i&&e(i),disabled:!i,children:i===s?`Create "${i}"`:`Save to ${i}`})]})]})})},wXo=t=>{const e=$.useRef(null),n=ju(o=>o.recentEvents);$.useEffect(()=>{if(n.length===0)return;const o=n[0];o.event_id!==e.current&&(t(o),e.current=o.event_id)},[n,t])};var NXo=Object.defineProperty,uE=(t,e)=>NXo(t,"name",{value:e,configurable:!0}),w7e="Dialog",[dOt,_Ot]=Y2(w7e),[RXo,gQ]=dOt(w7e),N7e=uE(t=>{const{__scopeDialog:e,children:n,open:o,defaultOpen:i,onOpenChange:r,modal:s=!0}=t,a=$.useRef(null),A=$.useRef(null),[c,l]=K4({prop:o,defaultProp:i??!1,onChange:r,caller:w7e}),[g,u]=$.useState(0),[d,h]=$.useState(0);return V.jsx(RXo,{scope:e,triggerRef:a,contentRef:A,contentId:Sp(),titleId:Sp(),descriptionId:Sp(),titlePresent:g>0,descriptionPresent:d>0,setTitleCount:u,setDescriptionCount:h,open:c,onOpenChange:l,onOpenToggle:$.useCallback(()=>l(_=>!_),[l]),modal:s,children:n})},"Dialog"),TXo="DialogTrigger",kXo=$.forwardRef(uE(function(e,n){const{__scopeDialog:o,...i}=e,r=gQ(TXo,o),s=Il(n,r.triggerRef);return V.jsx(qA.button,{type:"button","aria-haspopup":"dialog","aria-expanded":r.open,"aria-controls":r.open?r.contentId:void 0,"data-state":Nae(r.open),...i,ref:s,onClick:Pr(e.onClick,r.onOpenToggle)})},"DialogTrigger")),mOt="DialogPortal",[FXo,pOt]=dOt(mOt,{forceMount:void 0}),R7e=uE(t=>{const{__scopeDialog:e,forceMount:n,children:o,container:i}=t,r=gQ(mOt,e);return V.jsx(FXo,{scope:e,forceMount:n,children:$.Children.map(o,s=>V.jsx(bx,{present:n||r.open,children:V.jsx(L8e,{asChild:!0,container:i,children:s})}))})},"DialogPortal"),T7e="DialogOverlay",Mae=$.forwardRef(uE(function(e,n){const o=pOt(T7e,e.__scopeDialog),{forceMount:i=o.forceMount,...r}=e,s=gQ(T7e,e.__scopeDialog);return s.modal?V.jsx(bx,{present:i||s.open,children:V.jsx(HXo,{...r,ref:n})}):null},"DialogOverlay")),LXo=OS("DialogOverlay.RemoveScroll"),HXo=$.forwardRef(uE(function(e,n){const{__scopeDialog:o,...i}=e,r=gQ(T7e,o),s=RNt(),a=Il(n,s);return V.jsx(Mse,{as:LXo,allowPinchZoom:!0,shards:[r.contentRef],children:V.jsx(qA.div,{"data-state":Nae(r.open),...i,ref:a,style:{pointerEvents:"auto",...i.style}})})},"DialogOverlayImpl")),tz="DialogContent",wae=$.forwardRef(uE(function(e,n){const o=pOt(tz,e.__scopeDialog),{forceMount:i=o.forceMount,...r}=e,s=gQ(tz,e.__scopeDialog);return V.jsx(bx,{present:i||s.open,children:s.modal?V.jsx(GXo,{...r,ref:n}):V.jsx(OXo,{...r,ref:n})})},"DialogContent")),GXo=$.forwardRef(uE(function(e,n){const o=gQ(tz,e.__scopeDialog),i=$.useRef(null),r=Il(n,o.contentRef,i);return $.useEffect(()=>{const s=i.current;if(s)return G8e(s)},[]),V.jsx(IOt,{...e,ref:r,trapFocus:o.open,disableOutsidePointerEvents:o.open,onCloseAutoFocus:Pr(e.onCloseAutoFocus,s=>{s.preventDefault(),o.triggerRef.current?.focus()}),onPointerDownOutside:Pr(e.onPointerDownOutside,s=>{const a=s.detail.originalEvent,A=a.button===0&&a.ctrlKey===!0;(a.button===2||A)&&s.preventDefault()}),onFocusOutside:Pr(e.onFocusOutside,s=>s.preventDefault())})},"DialogContentModal")),OXo=$.forwardRef(uE(function(e,n){const o=gQ(tz,e.__scopeDialog),i=$.useRef(!1),r=$.useRef(!1);return V.jsx(IOt,{...e,ref:n,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:s=>{e.onCloseAutoFocus?.(s),s.defaultPrevented||(i.current||o.triggerRef.current?.focus(),s.preventDefault()),i.current=!1,r.current=!1},onInteractOutside:s=>{e.onInteractOutside?.(s),s.defaultPrevented||(i.current=!0,s.detail.originalEvent.type==="pointerdown"&&(r.current=!0));const a=s.target;o.triggerRef.current?.contains(a)&&s.preventDefault(),s.detail.originalEvent.type==="focusin"&&r.current&&s.preventDefault()}})},"DialogContentNonModal")),IOt=$.forwardRef(uE(function(e,n){const{__scopeDialog:o,trapFocus:i,onOpenAutoFocus:r,onCloseAutoFocus:s,...a}=e,A=gQ(tz,o);return bY(),V.jsx(V.Fragment,{children:V.jsx(C8e,{asChild:!0,loop:!0,trapped:i,onMountAutoFocus:r,onUnmountAutoFocus:s,children:V.jsx(cse,{role:"dialog",id:A.contentId,"aria-describedby":A.descriptionPresent?A.descriptionId:void 0,"aria-labelledby":A.titlePresent?A.titleId:void 0,"data-state":Nae(A.open),...a,ref:n,deferPointerDownOutside:!0,onDismiss:()=>A.onOpenChange(!1)})})})},"DialogContentImpl")),KXo="DialogTitle",k7e=$.forwardRef(uE(function(e,n){const{__scopeDialog:o,...i}=e,r=gQ(KXo,o),{setTitleCount:s}=r;return Ey(()=>(s(a=>a+1),()=>s(a=>a-1)),[s]),V.jsx(qA.h2,{id:r.titleId,...i,ref:n})},"DialogTitle")),UXo="DialogDescription",F7e=$.forwardRef(uE(function(e,n){const{__scopeDialog:o,...i}=e,r=gQ(UXo,o),{setDescriptionCount:s}=r;return Ey(()=>(s(a=>a+1),()=>s(a=>a-1)),[s]),V.jsx(qA.p,{id:r.descriptionId,...i,ref:n})},"DialogDescription")),YXo="DialogClose",fOt=$.forwardRef(uE(function(e,n){const{__scopeDialog:o,...i}=e,r=gQ(YXo,o);return V.jsx(qA.button,{type:"button",...i,ref:n,onClick:Pr(e.onClick,()=>r.onOpenChange(!1))})},"DialogClose"));function Nae(t){return t?"open":"closed"}uE(Nae,"getState");var zXo=Object.defineProperty,F5=(t,e)=>zXo(t,"name",{value:e,configurable:!0}),VXo="AlertDialog",[JXo,mAi]=Y2(VXo,[_Ot]),L5=_Ot(),qXo=F5(t=>{const{__scopeAlertDialog:e,...n}=t,o=L5(e);return V.jsx(N7e,{...o,...n,modal:!0})},"AlertDialog");$.forwardRef(F5(function(e,n){const{__scopeAlertDialog:o,...i}=e,r=L5(o);return V.jsx(kXo,{...r,...i,ref:n})},"AlertDialogTrigger"));var WXo=F5(t=>{const{__scopeAlertDialog:e,...n}=t,o=L5(e);return V.jsx(R7e,{...o,...n})},"AlertDialogPortal"),jXo=$.forwardRef(F5(function(e,n){const{__scopeAlertDialog:o,...i}=e,r=L5(o);return V.jsx(Mae,{...r,...i,ref:n})},"AlertDialogOverlay")),XXo="AlertDialogContent",[$Xo,ZXo]=JXo(XXo),e$o=$.forwardRef(F5(function(e,n){const{__scopeAlertDialog:o,children:i,...r}=e,s=L5(o),a=$.useRef(null),A=Il(n,a),c=$.useRef(null);return V.jsx($Xo,{scope:o,cancelRef:c,children:V.jsx(wae,{role:"alertdialog",...s,...r,ref:A,onOpenAutoFocus:Pr(r.onOpenAutoFocus,l=>{l.preventDefault(),c.current?.focus({preventScroll:!0})}),onPointerDownOutside:l=>l.preventDefault(),onInteractOutside:l=>l.preventDefault(),children:i})})},"AlertDialogContent")),t$o=$.forwardRef(F5(function(e,n){const{__scopeAlertDialog:o,...i}=e,r=L5(o);return V.jsx(k7e,{...r,...i,ref:n})},"AlertDialogTitle")),n$o=$.forwardRef(F5(function(e,n){const{__scopeAlertDialog:o,...i}=e,r=L5(o);return V.jsx(F7e,{...r,...i,ref:n})},"AlertDialogDescription")),o$o=$.forwardRef(F5(function(e,n){const{__scopeAlertDialog:o,...i}=e,r=L5(o);return V.jsx(fOt,{...r,...i,ref:n})},"AlertDialogAction")),i$o="AlertDialogCancel",r$o=$.forwardRef(F5(function(e,n){const{__scopeAlertDialog:o,...i}=e,{cancelRef:r}=ZXo(i$o,o),s=L5(o),a=Il(n,r);return V.jsx(fOt,{...s,...i,ref:a})},"AlertDialogCancel")),s$o=qXo,a$o=WXo,COt=jXo,yOt=e$o,EOt=o$o,xOt=r$o,BOt=t$o,QOt=n$o;const SOt=s$o,A$o=a$o,bOt=$.forwardRef(({className:t,...e},n)=>V.jsx(COt,{className:ji("rf-fixed rf-inset-0 rf-z-50 rf-bg-black/80 data-[state=open]:rf-animate-in data-[state=closed]:rf-animate-out data-[state=closed]:rf-fade-out-0 data-[state=open]:rf-fade-in-0",t),...e,ref:n}));bOt.displayName=COt.displayName;const L7e=$.forwardRef(({className:t,...e},n)=>V.jsxs(A$o,{children:[V.jsx(bOt,{}),V.jsx(yOt,{ref:n,className:ji("rf-fixed rf-left-[50%] rf-top-[50%] rf-z-50 rf-grid rf-w-full rf-max-w-lg rf-translate-x-[-50%] rf-translate-y-[-50%] rf-gap-4 rf-border rf-border-zinc-200 rf-bg-white rf-p-6 rf-shadow-lg rf-duration-200 data-[state=open]:rf-animate-in data-[state=closed]:rf-animate-out data-[state=closed]:rf-fade-out-0 data-[state=open]:rf-fade-in-0 data-[state=closed]:rf-zoom-out-95 data-[state=open]:rf-zoom-in-95 data-[state=closed]:rf-slide-out-to-left-1/2 data-[state=closed]:rf-slide-out-to-top-[48%] data-[state=open]:rf-slide-in-from-left-1/2 data-[state=open]:rf-slide-in-from-top-[48%] sm:rf-rounded-lg dark:rf-border-zinc-800 dark:rf-bg-zinc-950",t),...e})]}));L7e.displayName=yOt.displayName;const H7e=({className:t,...e})=>V.jsx("div",{className:ji("rf-flex rf-flex-col rf-space-y-2 rf-text-center sm:rf-text-left",t),...e});H7e.displayName="AlertDialogHeader";const G7e=({className:t,...e})=>V.jsx("div",{className:ji("rf-flex rf-flex-col-reverse sm:rf-flex-row sm:rf-justify-end sm:rf-space-x-2",t),...e});G7e.displayName="AlertDialogFooter";const O7e=$.forwardRef(({className:t,...e},n)=>V.jsx(BOt,{ref:n,className:ji("rf-text-lg rf-font-semibold",t),...e}));O7e.displayName=BOt.displayName;const K7e=$.forwardRef(({className:t,...e},n)=>V.jsx(QOt,{ref:n,className:ji("rf-text-sm rf-text-zinc-500 dark:rf-text-zinc-400",t),...e}));K7e.displayName=QOt.displayName;const c$o=$.forwardRef(({className:t,...e},n)=>V.jsx(EOt,{ref:n,className:ji(Qk(),t),...e}));c$o.displayName=EOt.displayName;const U7e=$.forwardRef(({className:t,...e},n)=>V.jsx(xOt,{ref:n,className:ji(Qk({variant:"outline"}),"rf-mt-2 sm:rf-mt-0",t),...e}));U7e.displayName=xOt.displayName;var l$o=Object.defineProperty,H5=(t,e)=>l$o(t,"name",{value:e,configurable:!0}),Y7e="Checkbox",[g$o,pAi]=Y2(Y7e),[u$o,z7e]=g$o(Y7e);function DOt(t){const{__scopeCheckbox:e,checked:n,children:o,defaultChecked:i,disabled:r,form:s,name:a,onCheckedChange:A,required:c,value:l="on",internal_do_not_use_render:g}=t,[u,d]=K4({prop:n,defaultProp:i??!1,onChange:A,caller:Y7e}),[h,_]=$.useState(null),[m,p]=$.useState(null),I=$.useRef(!1),[f,C]=$.useReducer(B=>B+1,0),y=h?!!s||!!h.closest("form"):!0,E={checked:u,disabled:r,setChecked:d,control:h,setControl:_,name:a,form:s,value:l,hasConsumerStoppedPropagationRef:I,userInteractionCount:f,onUserInteraction:C,required:c,defaultChecked:G5(i)?!1:i,isFormControl:y,bubbleInput:m,setBubbleInput:p};return V.jsx(u$o,{scope:e,...E,children:POt(g)?g(E):o})}H5(DOt,"CheckboxProvider");var h$o="CheckboxTrigger",d$o=$.forwardRef(H5(function({__scopeCheckbox:e,onKeyDown:n,onClick:o,...i},r){const{control:s,value:a,disabled:A,checked:c,required:l,setControl:g,setChecked:u,hasConsumerStoppedPropagationRef:d,onUserInteraction:h,isFormControl:_,bubbleInput:m}=z7e(h$o,e),p=Il(r,g),I=$.useRef(c);return $.useEffect(()=>{const f=s?.form;if(f){const C=H5(()=>u(I.current),"reset");return f.addEventListener("reset",C),()=>f.removeEventListener("reset",C)}},[s,u]),V.jsx(qA.button,{type:"button",role:"checkbox","aria-checked":G5(c)?"mixed":c,"aria-required":l,"data-state":V7e(c),"data-disabled":A?"":void 0,disabled:A,value:a,...i,ref:p,onKeyDown:Pr(n,f=>{f.key==="Enter"&&f.preventDefault()}),onClick:Pr(o,f=>{h(),u(C=>G5(C)?!0:!C),m&&_&&(d.current=f.isPropagationStopped(),d.current||f.stopPropagation())})})},"CheckboxTrigger")),vOt=$.forwardRef(H5(function(e,n){const{__scopeCheckbox:o,name:i,checked:r,defaultChecked:s,required:a,disabled:A,value:c,onCheckedChange:l,form:g,...u}=e;return V.jsx(DOt,{__scopeCheckbox:o,checked:r,defaultChecked:s,disabled:A,required:a,onCheckedChange:l,name:i,form:g,value:c,internal_do_not_use_render:({isFormControl:d})=>V.jsxs(V.Fragment,{children:[V.jsx(d$o,{...u,ref:n,__scopeCheckbox:o}),d&&V.jsx(I$o,{__scopeCheckbox:o})]})})},"Checkbox")),_$o="CheckboxIndicator",m$o=$.forwardRef(H5(function(e,n){const{__scopeCheckbox:o,forceMount:i,...r}=e,s=z7e(_$o,o);return V.jsx(bx,{present:i||G5(s.checked)||s.checked===!0,children:V.jsx(qA.span,{"data-state":V7e(s.checked),"data-disabled":s.disabled?"":void 0,...r,ref:n,style:{pointerEvents:"none",...e.style}})})},"CheckboxIndicator")),p$o="CheckboxBubbleInput",I$o=$.forwardRef(H5(function({__scopeCheckbox:e,onClick:n,...o},i){const{control:r,hasConsumerStoppedPropagationRef:s,userInteractionCount:a,checked:A,defaultChecked:c,required:l,disabled:g,name:u,value:d,form:h,bubbleInput:_,setBubbleInput:m}=z7e(p$o,e),p=Il(i,m),I=T8e(r),f=$.useRef(!1),C=$.useRef(A),y=$.useRef(a);$.useEffect(()=>{const B=_;if(!B)return;const Q=window.HTMLInputElement.prototype,D=Object.getOwnPropertyDescriptor(Q,"checked").set,R=a!==y.current;y.current=a;const w=C.current!==A;C.current=A;const H=!(R&&s.current);if(w&&D){f.current=!R;const G=new Event("click",{bubbles:H});B.indeterminate=G5(A),D.call(B,G5(A)?!1:A),B.dispatchEvent(G),f.current=!1}},[_,A,s,a]);const E=$.useRef(G5(A)?!1:A);return V.jsx(qA.input,{type:"checkbox","aria-hidden":!0,defaultChecked:c??E.current,required:l,disabled:g,name:u,value:d,form:h,...o,tabIndex:-1,ref:p,onClick:Pr(n,B=>{f.current&&B.stopPropagation()}),style:{...o.style,...I,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})},"CheckboxBubbleInput"));function POt(t){return typeof t=="function"}H5(POt,"isFunction");function G5(t){return t==="indeterminate"}H5(G5,"isIndeterminate");function V7e(t){return G5(t)?"indeterminate":t?"checked":"unchecked"}H5(V7e,"getState");const nz=$.forwardRef(({className:t,...e},n)=>V.jsx(vOt,{ref:n,className:ji("rf-peer rf-h-4 rf-w-4 rf-shrink-0 rf-rounded-sm rf-border rf-border-zinc-200 rf-border-zinc-900 rf-shadow focus-visible:rf-outline-none focus-visible:rf-ring-1 focus-visible:rf-ring-zinc-950 disabled:rf-cursor-not-allowed disabled:rf-opacity-50 data-[state=checked]:rf-bg-zinc-900 data-[state=checked]:rf-text-zinc-50 dark:rf-border-zinc-800 dark:rf-border-zinc-50 dark:focus-visible:rf-ring-zinc-300 dark:data-[state=checked]:rf-bg-zinc-50 dark:data-[state=checked]:rf-text-zinc-900",t),...e,children:V.jsx(m$o,{className:ji("rf-flex rf-items-center rf-justify-center rf-text-current"),children:V.jsx(W6,{className:"rf-h-4 rf-w-4"})})}));nz.displayName=vOt.displayName;const jk=N7e,f$o=R7e,MOt=$.forwardRef(({className:t,...e},n)=>V.jsx(Mae,{className:ji("rf-fixed rf-inset-0 rf-z-50 rf-bg-black/80 data-[state=open]:rf-animate-in data-[state=closed]:rf-animate-out data-[state=closed]:rf-fade-out-0 data-[state=open]:rf-fade-in-0",t),...e,ref:n}));MOt.displayName=Mae.displayName;const r8=$.forwardRef(({className:t,children:e,showOverlay:n=!0,...o},i)=>V.jsxs(f$o,{children:[V.jsx(MOt,{className:ji(n?"":"rf-hidden")}),V.jsx(wae,{ref:i,className:ji("rf-fixed rf-left-[50%] rf-top-[50%] rf-z-50 rf-grid rf-w-full rf-max-w-lg rf-translate-x-[-50%] rf-translate-y-[-50%] rf-gap-4 rf-border rf-border-zinc-200 rf-bg-white rf-p-6 rf-shadow-lg rf-duration-200 data-[state=open]:rf-animate-in data-[state=closed]:rf-animate-out data-[state=closed]:rf-fade-out-0 data-[state=open]:rf-fade-in-0 data-[state=closed]:rf-zoom-out-95 data-[state=open]:rf-zoom-in-95 data-[state=closed]:rf-slide-out-to-left-1/2 data-[state=closed]:rf-slide-out-to-top-[48%] data-[state=open]:rf-slide-in-from-left-1/2 data-[state=open]:rf-slide-in-from-top-[48%] sm:rf-rounded-lg dark:rf-border-zinc-800 dark:rf-bg-zinc-950",t),...o,children:e})]}));r8.displayName=wae.displayName;const s8=({className:t,...e})=>V.jsx("div",{className:ji("rf-flex rf-flex-col rf-space-y-2 rf-text-center sm:rf-text-left",t),...e});s8.displayName="DialogHeader";const oz=({className:t,...e})=>V.jsx("div",{className:ji("rf-flex rf-flex-col-reverse sm:rf-flex-row sm:rf-justify-end sm:rf-space-x-2",t),...e});oz.displayName="DialogFooter";const a8=$.forwardRef(({className:t,...e},n)=>V.jsx(k7e,{ref:n,className:ji("rf-text-lg rf-font-semibold",t),...e}));a8.displayName=k7e.displayName;const Xk=$.forwardRef(({className:t,...e},n)=>V.jsx(F7e,{ref:n,className:ji("rf-text-sm rf-text-zinc-500 dark:rf-text-zinc-400",t),...e}));Xk.displayName=F7e.displayName;const Rae={"tscircuit.com":{label:"tscircuit.com",placeholder:"Search tscircuit packages...",emptyMessage:"No packages found"},jlcpcb:{label:"JLCPCB Parts",placeholder:"Search JLCPCB parts (e.g. C14663)...",emptyMessage:"No parts found"},kicad:{label:"KiCad Footprints",placeholder:"Search KiCad footprints...",emptyMessage:"No footprints found"}},C$o="https://cdn.jsdelivr.net/npm/easyeda@latest/dist/browser/index.js";let J7e=null;const q7e=async()=>(J7e||(J7e=import(C$o)),J7e),y$o=t=>(e,n)=>{const o=new Headers(n?.headers),i={};return o.forEach((r,s)=>{i[s]=r}),fetch(`${t?.apiBase??Hf}/proxy`,{...n,headers:{...i,"X-Target-Url":e.toString(),"X-Sender-Origin":i.origin??"","X-Sender-Host":i.host??"https://easyeda.com","X-Sender-Referer":i.referer??"","X-Sender-User-Agent":i["user-agent"]??"","X-Sender-Cookie":i.cookie??"",authority:i.authority??"","content-type":i["content-type"]??"",...t?.headers}})},E$o=async(t,e=10)=>{const n=encodeURIComponent(t),o=await fetch(`https://jlcsearch.tscircuit.com/api/search?limit=${e}&q=${n}`);if(!o.ok)throw new Error(`JLCPCB API error: ${o.status}`);return(await o.json()).components??[]},x$o=t=>({lcscId:t.lcsc,manufacturer:t.mfr,description:t.description,partNumber:`C${t.lcsc}`,package:t.package,price:t.price,stock:t.stock,isBasic:t.is_basic}),wOt=async(t,e)=>{const{fetchEasyEDAComponent:n}=await q7e();return n(t,{fetch:y$o(e),includeModelMetadata:e?.includeModelMetadata})},B$o=async(t,e)=>{const{convertRawEasyToTsx:n}=await q7e(),o=await wOt(t,e);return n({rawEasy:o})},Q$o=async(t,e)=>{const{EasyEdaJsonSchema:n,convertEasyEdaJsonToCircuitJson:o}=await q7e(),i=await wOt(t,{...e,includeModelMetadata:!1}),r=n.parse(i);return o(r,{shouldRecenter:!0,showDesignator:!0,useModelCdn:!1})};function hM(t){return Array.isArray?Array.isArray(t):ROt(t)==="[object Array]"}function S$o(t){if(typeof t=="string")return t;if(typeof t=="bigint")return t.toString();const e=t+"";return e=="0"&&1/t==-1/0?"-0":e}function W7e(t){return t==null?"":S$o(t)}function $f(t){return typeof t=="string"}function Tae(t){return typeof t=="number"}function b$o(t){return t===!0||t===!1||D$o(t)&&ROt(t)=="[object Boolean]"}function NOt(t){return typeof t=="object"}function D$o(t){return NOt(t)&&t!==null}function hE(t){return t!=null}function kae(t){return!t.trim().length}function ROt(t){return t==null?t===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(t)}const v$o="Incorrect 'index' type",j7e="Invalid doc index: must be a non-negative integer within the bounds of the docs array",P$o=t=>`Invalid value for key ${t}`,M$o=t=>`Pattern length exceeds max of ${t}.`,w$o=t=>`Missing ${t} property in key`,N$o=t=>`Property 'weight' in key '${t}' must be a positive integer`,R$o="Fuse.match does not support useTokenSearch: token search requires corpus-level statistics (df, fieldCount) that a one-off string comparison does not have. Use new Fuse(...).search(...) instead.",TOt=Object.prototype.hasOwnProperty;var T$o=class{constructor(t){this._keys=[],this._keyMap={};let e=0;t.forEach(n=>{const o=kOt(n);this._keys.push(o),this._keyMap[o.id]=o,e+=o.weight}),this._keys.forEach(n=>{n.weight/=e})}get(t){return this._keyMap[t]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}};function kOt(t){let e=null,n=null,o=null,i=1,r=null;if($f(t)||hM(t))o=t,e=FOt(t),n=Fae(t);else{if(!TOt.call(t,"name"))throw new Error(w$o("name"));const s=t.name;if(o=s,TOt.call(t,"weight")&&t.weight!==void 0&&(i=t.weight,i<=0))throw new Error(N$o(Fae(s)));e=FOt(s),n=Fae(s),r=t.getFn??null}return{path:e,id:n,weight:i,src:o,getFn:r}}function FOt(t){return hM(t)?t:t.split(".")}function Fae(t){return hM(t)?t.join("."):t}function k$o(t,e){const n=[];let o=!1;const i=(r,s,a,A)=>{if(hE(r))if(!s[a])n.push(A!==void 0?{v:r,i:A}:r);else{const c=r[s[a]];if(!hE(c))return;if(a===s.length-1&&($f(c)||Tae(c)||b$o(c)||typeof c=="bigint"))n.push(A!==void 0?{v:W7e(c),i:A}:W7e(c));else if(hM(c)){o=!0;for(let l=0,g=c.length;l<g;l+=1)i(c[l],s,a+1,l)}else s.length&&i(c,s,a+1,A)}};return i(t,$f(e)?e.split("."):e,0),o?n:n[0]}const Ts=Object.freeze({...{isCaseSensitive:!1,ignoreDiacritics:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:(t,e)=>t.score===e.score?t.idx<e.idx?-1:1:t.score<e.score?-1:1},...{includeMatches:!1,findAllMatches:!1,minMatchCharLength:1},...{location:0,threshold:.6,distance:100},...{useExtendedSearch:!1,useTokenSearch:!1,tokenize:void 0,tokenMatch:"any",getFn:k$o,ignoreLocation:!1,ignoreFieldNorm:!1,fieldNormWeight:1}});function F$o(t){return t>=9&&t<=13||t===32||t===160}function L$o(t=1,e=3){const n=new Map,o=Math.pow(10,e);return{get(i){let r=0,s=!1;for(let A=0;A<i.length;A++)F$o(i.charCodeAt(A))?s=!1:s||(r++,s=!0);if(r===0&&(r=1),n.has(r))return n.get(r);const a=Math.round(o/Math.pow(r,.5*t))/o;return n.set(r,a),a},clear(){n.clear()}}}var X7e=class{constructor({getFn:t=Ts.getFn,fieldNormWeight:e=Ts.fieldNormWeight}={}){this.norm=L$o(e,3),this.getFn=t,this.isCreated=!1,this.docs=[],this.keys=[],this._keysMap={},this.setIndexRecords()}setSources(t=[]){this.docs=t}setIndexRecords(t=[]){this.records=t}setKeys(t=[]){this.keys=t,this._keysMap={},t.forEach((e,n)=>{this._keysMap[e.id]=n})}create(){if(this.isCreated||!this.docs.length)return;this.isCreated=!0;const t=this.docs.length;this.records=new Array(t);let e=0;if($f(this.docs[0]))for(let n=0;n<t;n++){const o=this._createStringRecord(this.docs[n],n);o&&(this.records[e++]=o)}else for(let n=0;n<t;n++)this.records[e++]=this._createObjectRecord(this.docs[n],n);this.records.length=e,this.norm.clear()}add(t,e){if(!Number.isInteger(e)||e<0)throw new Error(j7e);if($f(t)){const o=this._createStringRecord(t,e);return o&&this.records.push(o),o}const n=this._createObjectRecord(t,e);return this.records.push(n),n}removeAt(t){if(!Number.isInteger(t)||t<0)throw new Error(j7e);for(let e=0,n=this.records.length;e<n;e+=1)if(this.records[e].i===t){this.records.splice(e,1);break}for(let e=0,n=this.records.length;e<n;e+=1)this.records[e].i>t&&(this.records[e].i-=1)}removeAll(t){const e=new Set;for(const o of t)Number.isInteger(o)&&o>=0&&e.add(o);if(e.size===0)return;this.records=this.records.filter(o=>!e.has(o.i));const n=Array.from(e).sort((o,i)=>o-i);for(const o of this.records){let i=0,r=n.length;for(;i<r;){const s=i+r>>>1;n[s]<o.i?i=s+1:r=s}o.i-=i}}getValueForItemAtKeyId(t,e){return t[this._keysMap[e]]}size(){return this.records.length}_createStringRecord(t,e){return!hE(t)||kae(t)?null:{v:t,i:e,n:this.norm.get(t)}}_createObjectRecord(t,e){const n={i:e,$:{}};for(let o=0,i=this.keys.length;o<i;o++){const r=this.keys[o],s=r.getFn?r.getFn(t):this.getFn(t,r.path);if(hE(s)){if(hM(s)){const a=[];for(let A=0,c=s.length;A<c;A+=1){const l=s[A];if(hE(l)){if($f(l)){if(!kae(l)){const g={v:l,i:A,n:this.norm.get(l)};a.push(g)}}else if(hE(l.v)){const g=$f(l.v)?l.v:W7e(l.v);if(!kae(g)){const u={v:g,i:l.i,n:this.norm.get(g)};a.push(u)}}}}n.$[o]=a}else if($f(s)&&!kae(s)){const a={v:s,n:this.norm.get(s)};n.$[o]=a}}}return n}toJSON(){return{keys:this.keys.map(({getFn:t,...e})=>e),records:this.records}}};function LOt(t,e,{getFn:n=Ts.getFn,fieldNormWeight:o=Ts.fieldNormWeight}={}){const i=new X7e({getFn:n,fieldNormWeight:o});return i.setKeys(t.map(kOt)),i.setSources(e),i.create(),i}function H$o(t,{getFn:e=Ts.getFn,fieldNormWeight:n=Ts.fieldNormWeight}={}){const{keys:o,records:i}=t,r=new X7e({getFn:e,fieldNormWeight:n});return r.setKeys(o),r.setIndexRecords(i),r}function G$o(t=[],e=Ts.minMatchCharLength){const n=[];let o=-1,i=-1,r=0;for(let s=t.length;r<s;r+=1){const a=t[r];a&&o===-1?o=r:!a&&o!==-1&&(i=r-1,i-o+1>=e&&n.push([o,i]),o=-1)}return t[r-1]&&r-o>=e&&n.push([o,r-1]),n}function O$o(t,e,n,{location:o=Ts.location,distance:i=Ts.distance,threshold:r=Ts.threshold,findAllMatches:s=Ts.findAllMatches,minMatchCharLength:a=Ts.minMatchCharLength,includeMatches:A=Ts.includeMatches,ignoreLocation:c=Ts.ignoreLocation}={}){if(e.length>32)throw new Error(M$o(32));const l=e.length,g=t.length,u=Math.max(0,Math.min(o,g));let d=r,h=u;const _=(b,D)=>{const R=b/l;if(c)return R;const w=Math.abs(u-D);return i?R+w/i:w?1:R},m=a>1||A,p=m?Array(g):[];let I;for(;(I=t.indexOf(e,h))>-1;){const b=_(0,I);if(d=Math.min(b,d),h=I+l,m){let D=0;for(;D<l;)p[I+D]=1,D+=1}}h=-1;let f=[],C=1,y=0,E=l+g;const B=1<<l-1;for(let b=0;b<l;b+=1){let D=0,R=E;for(;D<R;)_(b,u+R)<=d?D=R:E=R,R=Math.floor((E-D)/2+D);E=R;let w=Math.max(1,u-R+1);const H=s?g:Math.min(u+R,g)+l,G=Array(H+2);G[H+1]=(1<<b)-1;for(let O=H;O>=w;O-=1){const U=O-1,W=n[t[U]];if(G[O]=(G[O+1]<<1|1)&W,b&&(G[O]|=(f[O+1]|f[O])<<1|1|f[O+1]),G[O]&B&&(C=_(b,U),C<=d)){if(d=C,h=U,y=b,h<=u)break;w=Math.max(1,2*u-h)}}if(_(b+1,u)>d)break;f=G}if(m&&h>=0){const b=Math.min(g-1,h+l-1+y);for(let D=h;D<=b;D+=1)n[t[D]]&&(p[D]=1)}const Q={isMatch:h>=0,score:Math.max(.001,C)};if(m){const b=G$o(p,a);b.length?A&&(Q.indices=b):Q.isMatch=!1}return Q}function K$o(t){const e={};for(let n=0,o=t.length;n<o;n+=1){const i=t.charAt(n);e[i]=(e[i]||0)|1<<o-n-1}return e}function $7e(t){if(t.length<=1)return t;t.sort((n,o)=>n[0]-o[0]||n[1]-o[1]);const e=[t[0]];for(let n=1,o=t.length;n<o;n+=1){const i=e[e.length-1],r=t[n];r[0]<=i[1]+1?i[1]=Math.max(i[1],r[1]):e.push(r)}return e}const HOt={ł:"l",Ł:"L",đ:"d",Đ:"D",ø:"o",Ø:"O",ħ:"h",Ħ:"H",ŧ:"t",Ŧ:"T",ı:"i",ß:"ss"},U$o=new RegExp("["+Object.keys(HOt).join("")+"]","g"),iz=typeof String.prototype.normalize=="function"?t=>t.normalize("NFD").replace(/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C04\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F]/g,"").replace(U$o,e=>HOt[e]):t=>t;var Z7e=class{constructor(t,{location:e=Ts.location,threshold:n=Ts.threshold,distance:o=Ts.distance,includeMatches:i=Ts.includeMatches,findAllMatches:r=Ts.findAllMatches,minMatchCharLength:s=Ts.minMatchCharLength,isCaseSensitive:a=Ts.isCaseSensitive,ignoreDiacritics:A=Ts.ignoreDiacritics,ignoreLocation:c=Ts.ignoreLocation}={}){if(this.options={location:e,threshold:n,distance:o,includeMatches:i,findAllMatches:r,minMatchCharLength:s,isCaseSensitive:a,ignoreDiacritics:A,ignoreLocation:c},t=a?t:t.toLowerCase(),t=A?iz(t):t,this.pattern=t,this.chunks=[],!this.pattern.length)return;const l=(u,d)=>{this.chunks.push({pattern:u,alphabet:K$o(u),startIndex:d})},g=this.pattern.length;if(g>32){let u=0;const d=g%32,h=g-d;for(;u<h;)l(this.pattern.substr(u,32),u),u+=32;if(d){const _=g-32;l(this.pattern.substr(_),_)}}else l(this.pattern,0)}searchIn(t){const{isCaseSensitive:e,ignoreDiacritics:n,includeMatches:o}=this.options;if(t=e?t:t.toLowerCase(),t=n?iz(t):t,this.pattern===t){if(t.length<this.options.minMatchCharLength)return{isMatch:!1,score:1};const h={isMatch:!0,score:0};return o&&(h.indices=[[0,t.length-1]]),h}const{location:i,distance:r,threshold:s,findAllMatches:a,minMatchCharLength:A,ignoreLocation:c}=this.options,l=[];let g=0,u=!1;this.chunks.forEach(({pattern:h,alphabet:_,startIndex:m})=>{const{isMatch:p,score:I,indices:f}=O$o(t,h,_,{location:i+m,distance:r,threshold:s,findAllMatches:a,minMatchCharLength:A,includeMatches:o,ignoreLocation:c});p&&(u=!0),g+=I,p&&f&&l.push(...f)});const d={isMatch:u,score:u?g/this.chunks.length:1};return u&&o&&(d.indices=$7e(l)),d}};const Y$o=new Set(["fuzzy","include"]);function z$o(t){return t.startsWith("inverse")}const eNe=[{type:"exact",multiRegex:/^="(.*)"$/,singleRegex:/^=(.*)$/,create:t=>({type:"exact",search(e){const n=e===t;return{isMatch:n,score:n?0:1,indices:[0,t.length-1]}}})},{type:"include",multiRegex:/^'"(.*)"$/,singleRegex:/^'(.*)$/,create:t=>({type:"include",search(e){let n=0,o;const i=[],r=t.length;for(;(o=e.indexOf(t,n))>-1;)n=o+r,i.push([o,n-1]);const s=!!i.length;return{isMatch:s,score:s?0:1,indices:i}}})},{type:"prefix-exact",multiRegex:/^\^"(.*)"$/,singleRegex:/^\^(.*)$/,create:t=>({type:"prefix-exact",search(e){const n=e.startsWith(t);return{isMatch:n,score:n?0:1,indices:[0,t.length-1]}}})},{type:"inverse-prefix-exact",multiRegex:/^!\^"(.*)"$/,singleRegex:/^!\^(.*)$/,create:t=>({type:"inverse-prefix-exact",search(e){const n=!e.startsWith(t);return{isMatch:n,score:n?0:1,indices:[0,e.length-1]}}})},{type:"inverse-suffix-exact",multiRegex:/^!"(.*)"\$$/,singleRegex:/^!(.*)\$$/,create:t=>({type:"inverse-suffix-exact",search(e){const n=!e.endsWith(t);return{isMatch:n,score:n?0:1,indices:[0,e.length-1]}}})},{type:"suffix-exact",multiRegex:/^"(.*)"\$$/,singleRegex:/^(.*)\$$/,create:t=>({type:"suffix-exact",search(e){const n=e.endsWith(t);return{isMatch:n,score:n?0:1,indices:[e.length-t.length,e.length-1]}}})},{type:"inverse-exact",multiRegex:/^!"(.*)"$/,singleRegex:/^!(.*)$/,create:t=>({type:"inverse-exact",search(e){const n=e.indexOf(t)===-1;return{isMatch:n,score:n?0:1,indices:[0,e.length-1]}}})},{type:"fuzzy",multiRegex:/^"(.*)"$/,singleRegex:/^(.*)$/,create:(t,e={})=>{const n=new Z7e(t,{location:e.location??Ts.location,threshold:e.threshold??Ts.threshold,distance:e.distance??Ts.distance,includeMatches:e.includeMatches??Ts.includeMatches,findAllMatches:e.findAllMatches??Ts.findAllMatches,minMatchCharLength:e.minMatchCharLength??Ts.minMatchCharLength,isCaseSensitive:e.isCaseSensitive??Ts.isCaseSensitive,ignoreDiacritics:e.ignoreDiacritics??Ts.ignoreDiacritics,ignoreLocation:e.ignoreLocation??Ts.ignoreLocation});return{type:"fuzzy",search(o){return n.searchIn(o)}}}}],GOt=eNe.length,V$o="\0",J$o="|";function q$o(t){const e=[],n=t.length;let o=0;for(;o<n;){for(;o<n&&t[o]===" ";)o++;if(o>=n)break;let i=o;for(;i<n&&t[i]!==" "&&t[i]!=='"';)i++;if(i<n&&t[i]==='"'){for(i++;i<n;){if(t[i]==='"'){const r=i+1;if(r>=n||t[r]===" "){i++;break}if(t[r]==="$"&&(r+1>=n||t[r+1]===" ")){i+=2;break}}i++}e.push(t.substring(o,i)),o=i}else{for(;i<n&&t[i]!==" ";)i++;e.push(t.substring(o,i)),o=i}}return e}function OOt(t,e){const n=t.match(e);return n?n[1]:null}function W$o(t,e={}){return t.replace(/\\\|/g,V$o).split(J$o).map(n=>{const o=q$o(n.replace(/\u0000/g,"|").trim()).filter(r=>r&&!!r.trim()),i=[];for(let r=0,s=o.length;r<s;r+=1){const a=o[r];let A=!1,c=-1;for(;!A&&++c<GOt;){const l=eNe[c],g=OOt(a,l.multiRegex);g&&(i.push(l.create(g,e)),A=!0)}if(!A)for(c=-1;++c<GOt;){const l=eNe[c],g=OOt(a,l.singleRegex);if(g){i.push(l.create(g,e));break}}}return i})}var j$o=class{constructor(t,{isCaseSensitive:e=Ts.isCaseSensitive,ignoreDiacritics:n=Ts.ignoreDiacritics,includeMatches:o=Ts.includeMatches,minMatchCharLength:i=Ts.minMatchCharLength,ignoreLocation:r=Ts.ignoreLocation,findAllMatches:s=Ts.findAllMatches,location:a=Ts.location,threshold:A=Ts.threshold,distance:c=Ts.distance}={}){this.query=null,this.options={isCaseSensitive:e,ignoreDiacritics:n,includeMatches:o,minMatchCharLength:i,findAllMatches:s,ignoreLocation:r,location:a,threshold:A,distance:c},t=e?t:t.toLowerCase(),t=n?iz(t):t,this.pattern=t,this.query=W$o(this.pattern,this.options)}static condition(t,e){return e.useExtendedSearch}searchIn(t){const e=this.query;if(!e)return{isMatch:!1,score:1};const{includeMatches:n,isCaseSensitive:o,ignoreDiacritics:i}=this.options;t=o?t:t.toLowerCase(),t=i?iz(t):t;let r=0;const s=[];let a=0,A=!1;for(let c=0,l=e.length;c<l;c+=1){const g=e[c];s.length=0,r=0,A=!1;for(let u=0,d=g.length;u<d;u+=1){const h=g[u],{isMatch:_,indices:m,score:p}=h.search(t);if(_)r+=1,a+=p,z$o(h.type)&&(A=!0),n&&(Y$o.has(h.type)?s.push(...m):s.push(m));else{a=0,r=0,s.length=0,A=!1;break}}if(r){const u={isMatch:!0,score:a/r};return A&&(u.hasInverse=!0),n&&(u.indices=$7e(s)),u}}return{isMatch:!1,score:1}}};const tNe=[];function nNe(...t){tNe.push(...t)}function Lae(t,e){for(let n=0,o=tNe.length;n<o;n+=1){const i=tNe[n];if(i.condition(t,e))return new i(t,e)}return new Z7e(t,e)}const Hae={AND:"$and",OR:"$or"},oNe={PATH:"$path",PATTERN:"$val"},iNe=t=>!!(t[Hae.AND]||t[Hae.OR]),X$o=t=>!!t[oNe.PATH],$$o=t=>!hM(t)&&NOt(t)&&!iNe(t),KOt=t=>({[Hae.AND]:Object.keys(t).map(e=>({[e]:t[e]}))});function UOt(t,e,{auto:n=!0}={}){const o=i=>{if($f(i)){const A={keyId:null,pattern:i};return n&&(A.searcher=Lae(i,e)),A}const r=Object.keys(i),s=X$o(i);if(!s&&r.length>1&&!iNe(i))return o(KOt(i));if($$o(i)){const A=s?i[oNe.PATH]:r[0],c=s?i[oNe.PATTERN]:i[A];if(!$f(c))throw new Error(P$o(A));const l={keyId:Fae(A),pattern:c};return n&&(l.searcher=Lae(c,e)),l}const a={children:[],operator:r[0]};return r.forEach(A=>{const c=i[A];hM(c)&&c.forEach(l=>{a.children.push(o(l))})}),a};return iNe(t)||(t=KOt(t)),o(t)}function rNe(t,{ignoreFieldNorm:e=Ts.ignoreFieldNorm}){let n=1;return t.forEach(({key:o,norm:i,score:r})=>{const s=o?o.weight:null;n*=Math.pow(r===0&&s?Number.EPSILON:r,(s||1)*(e?1:i))}),n}function Z$o(t,{ignoreFieldNorm:e=Ts.ignoreFieldNorm}){t.forEach(n=>{n.score=rNe(n.matches,{ignoreFieldNorm:e})})}var eZo=class{constructor(t,e){this.limit=t,this.heap=[],this.comparator=e}get size(){return this.heap.length}insert(t){this.size<this.limit?(this.heap.push(t),this._bubbleUp(this.size-1)):this.comparator(t,this.heap[0])<0&&(this.heap[0]=t,this._sinkDown(0))}extractSorted(){return this.heap.sort(this.comparator)}_bubbleUp(t){const e=this.heap;for(;t>0;){const n=t-1>>1;if(this.comparator(e[t],e[n])<=0)break;const o=e[t];e[t]=e[n],e[n]=o,t=n}}_sinkDown(t){const e=this.heap,n=e.length;let o=t;do{t=o;const i=2*t+1,r=2*t+2;if(i<n&&this.comparator(e[i],e[o])>0&&(o=i),r<n&&this.comparator(e[r],e[o])>0&&(o=r),o!==t){const s=e[t];e[t]=e[o],e[o]=s}}while(o!==t)}};function tZo(t){const e=[];return t.matches.forEach(n=>{if(!hE(n.indices)||!n.indices.length)return;const o={indices:n.indices,value:n.value};n.key&&(o.key=n.key.id),n.idx>-1&&(o.refIndex=n.idx),e.push(o)}),e}function nZo(t,e,{includeMatches:n=Ts.includeMatches,includeScore:o=Ts.includeScore}={}){return t.map(i=>{const{idx:r}=i,s={item:e[r],refIndex:r};return n&&(s.matches=tZo(i)),o&&(s.score=i.score),s})}const oZo=/[\p{L}\p{M}\p{N}_]+/gu,YOt=new WeakSet;function iZo(t){YOt.has(t)||(YOt.add(t),console.warn(`[Fuse] tokenize regex ${t} lacks the global flag; only the first match per text will be returned. Add the 'g' flag.`))}function rZo(t){if(typeof t=="function"){let e=!1;return n=>{const o=t(n);if(!e&&(e=!0,!Array.isArray(o)||o.some(i=>typeof i!="string")))throw new Error(`[Fuse] tokenize function must return string[]; received ${Array.isArray(o)?"array containing non-strings":typeof o}.`);return o}}return t instanceof RegExp?(t.global||iZo(t),e=>e.match(t)||[]):e=>e.match(oZo)||[]}function sNe({isCaseSensitive:t=!1,ignoreDiacritics:e=!1,tokenize:n}={}){const o=rZo(n);return{tokenize(i){return t||(i=i.toLowerCase()),e&&(i=iz(i)),o(i)}}}var sZo=class{static condition(t,e){return e.useTokenSearch}constructor(t,e){this.options=e,this.analyzer=sNe({isCaseSensitive:e.isCaseSensitive,ignoreDiacritics:e.ignoreDiacritics,tokenize:e.tokenize});const n=this.analyzer.tokenize(t),{df:o,fieldCount:i}=e._invertedIndex;this.termSearchers=[],this.idfWeights=[];for(const r of n){this.termSearchers.push(new Z7e(r,{location:e.location,threshold:e.threshold,distance:e.distance,includeMatches:e.includeMatches,findAllMatches:e.findAllMatches,minMatchCharLength:e.minMatchCharLength,isCaseSensitive:e.isCaseSensitive,ignoreDiacritics:e.ignoreDiacritics,ignoreLocation:!0}));const s=o.get(r)||0,a=Math.log(1+(i-s+.5)/(s+.5));this.idfWeights.push(a)}this.combineAll=e.tokenMatch==="all",this.numTerms=this.termSearchers.length,this.useMask=this.numTerms<=31}searchIn(t){if(!this.termSearchers.length)return{isMatch:!1,score:1};const e=[];let n=0,o=0,i=0,r=0;const s=this.combineAll&&!this.useMask?new Set:null;for(let c=0;c<this.termSearchers.length;c++){const l=this.termSearchers[c].searchIn(t),g=this.idfWeights[c];o+=g,l.isMatch&&(i++,n+=g*(1-l.score),l.indices&&e.push(...l.indices),this.combineAll&&(this.useMask?r|=1<<c:s.add(c)))}if(i===0)return{isMatch:!1,score:1};const a=o>0?1-n/o:0,A={isMatch:!0,score:Math.max(.001,a)};return this.options.includeMatches&&e.length&&(A.indices=$7e(e)),this.combineAll&&(this.useMask?A.matchedMask=r:A.matchedTerms=s,A.termCount=this.numTerms),A}};function aNe(t,e,n,o){const i=o.tokenize(e);if(!i.length)return;t.fieldCount++,t.docFieldCount.set(n,(t.docFieldCount.get(n)||0)+1);const r=new Set(i);let s=t.docTermFieldHits.get(n);s||(s=new Map,t.docTermFieldHits.set(n,s));for(const a of r)s.set(a,(s.get(a)||0)+1),t.df.set(a,(t.df.get(a)||0)+1)}function zOt(t,e,n,o){const{i,v:r,$:s}=e;if(r!==void 0){aNe(t,r,i,o);return}if(s)for(let a=0;a<n;a++){const A=s[a];if(A)if(Array.isArray(A))for(const c of A)aNe(t,c.v,i,o);else aNe(t,A.v,i,o)}}function aZo(t,e,n){const o={fieldCount:0,df:new Map,docFieldCount:new Map,docTermFieldHits:new Map};for(const i of t)zOt(o,i,e,n);return o}function AZo(t,e,n,o){zOt(t,e,n,o)}function cZo(t,e){const n=t.docFieldCount.get(e);if(n===void 0)return;t.fieldCount-=n,t.docFieldCount.delete(e);const o=t.docTermFieldHits.get(e);if(o){for(const[i,r]of o){const s=(t.df.get(i)||0)-r;s<=0?t.df.delete(i):t.df.set(i,s)}t.docTermFieldHits.delete(e)}}function VOt(t,e){if(e.length===0)return;const n=Array.from(new Set(e)).sort((a,A)=>a-A);for(const a of n)cZo(t,a);const o=a=>{let A=0,c=n.length;for(;A<c;){const l=A+c>>>1;n[l]<a?A=l+1:c=l}return a-A},i=n[0],r=new Map;for(const[a,A]of t.docFieldCount)r.set(a>i?o(a):a,A);t.docFieldCount=r;const s=new Map;for(const[a,A]of t.docTermFieldHits)s.set(a>i?o(a):a,A);t.docTermFieldHits=s}var dM=class{constructor(t,e,n){this.options={...Ts,...e},this.options.useExtendedSearch,this.options.useTokenSearch,this._keyStore=new T$o(this.options.keys),this._docs=t,this._myIndex=null,this._invertedIndex=null,this.setCollection(t,n),this._lastQuery=null,this._lastSearcher=null}_getSearcher(t){if(this._lastQuery===t)return this._lastSearcher;const e=Lae(t,this._invertedIndex?{...this.options,_invertedIndex:this._invertedIndex}:this.options);return this._lastQuery=t,this._lastSearcher=e,e}setCollection(t,e){if(this._docs=t,e&&!(e instanceof X7e))throw new Error(v$o);if(this._myIndex=e||LOt(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight}),this.options.useTokenSearch){const n=sNe({isCaseSensitive:this.options.isCaseSensitive,ignoreDiacritics:this.options.ignoreDiacritics,tokenize:this.options.tokenize});this._invertedIndex=aZo(this._myIndex.records,this._myIndex.keys.length,n)}this._invalidateSearcherCache()}add(t){if(!hE(t))return;this._docs.push(t);const e=this._myIndex.add(t,this._docs.length-1);if(this._invertedIndex&&e){const n=sNe({isCaseSensitive:this.options.isCaseSensitive,ignoreDiacritics:this.options.ignoreDiacritics,tokenize:this.options.tokenize});AZo(this._invertedIndex,e,this._myIndex.keys.length,n)}this._invalidateSearcherCache()}remove(t=()=>!1){const e=[],n=[];for(let o=0,i=this._docs.length;o<i;o+=1)t(this._docs[o],o)&&(e.push(this._docs[o]),n.push(o));if(n.length){this._invertedIndex&&VOt(this._invertedIndex,n);const o=new Set(n);this._docs=this._docs.filter((i,r)=>!o.has(r)),this._myIndex.removeAll(n),this._invalidateSearcherCache()}return e}removeAt(t){if(!Number.isInteger(t)||t<0||t>=this._docs.length)throw new Error(j7e);this._invertedIndex&&VOt(this._invertedIndex,[t]);const e=this._docs.splice(t,1)[0];return this._myIndex.removeAt(t),this._invalidateSearcherCache(),e}_invalidateSearcherCache(){this._lastQuery=null,this._lastSearcher=null}getIndex(){return this._myIndex}_normalizedKeys(){return this._myIndex.keys.map(t=>this._keyStore.get(t.id)||t)}search(t,e){const{limit:n=-1}=e||{},{includeMatches:o,includeScore:i,shouldSort:r,sortFn:s,ignoreFieldNorm:a}=this.options;if($f(t)&&!t.trim()){let u=this._docs.map((d,h)=>({item:d,refIndex:h}));return Tae(n)&&n>-1&&(u=u.slice(0,n)),u}const A=r&&Tae(n)&&n>0&&$f(t),c=s,l=(u,d)=>c(u,d)||u.idx-d.idx;let g;if(A){const u=new eZo(n,l);$f(this._docs[0])?this._searchStringList(t,{heap:u,ignoreFieldNorm:a}):this._searchObjectList(t,{heap:u,ignoreFieldNorm:a}),g=u.extractSorted()}else g=$f(t)?$f(this._docs[0])?this._searchStringList(t):this._searchObjectList(t):this._searchLogical(t),Z$o(g,{ignoreFieldNorm:a}),r&&g.sort($f(t)?l:c),Tae(n)&&n>-1&&(g=g.slice(0,n));return nZo(g,this._docs,{includeMatches:o,includeScore:i})}_searchStringList(t,{heap:e,ignoreFieldNorm:n}={}){const o=this._getSearcher(t),i=this.options.useTokenSearch&&this.options.tokenMatch==="all",{records:r}=this._myIndex,s=e?null:[];return r.forEach(({v:a,i:A,n:c})=>{if(!hE(a))return;const l=o.searchIn(a);if(l.isMatch){const g={score:l.score,value:a,norm:c,indices:l.indices};i&&(g.matchedMask=l.matchedMask,g.matchedTerms=l.matchedTerms,g.termCount=l.termCount);const u=[g];if(!i||this._coversAllTokens(u)){const d={item:a,idx:A,matches:u};e?(d.score=rNe(d.matches,{ignoreFieldNorm:n}),e.insert(d)):s.push(d)}}}),s}_searchLogical(t){const e=UOt(t,this.options),n=this._normalizedKeys(),o=(a,A,c)=>{if(!("children"in a)){const{keyId:d,searcher:h}=a;let _;return d===null?(_=[],n.forEach((m,p)=>{_.push(...this._findMatches({key:m,value:A[p],searcher:h}))})):_=this._findMatches({key:this._keyStore.get(d),value:this._myIndex.getValueForItemAtKeyId(A,d),searcher:h}),_&&_.length?[{idx:c,item:A,matches:_}]:[]}const{children:l,operator:g}=a,u=[];for(let d=0,h=l.length;d<h;d+=1){const _=l[d],m=o(_,A,c);if(m.length)u.push(...m);else if(g===Hae.AND)return[]}return u},i=this._myIndex.records,r=new Map,s=[];return i.forEach(({$:a,i:A})=>{if(hE(a)){const c=o(e,a,A);c.length&&(r.has(A)||(r.set(A,{idx:A,item:a,matches:[]}),s.push(r.get(A))),c.forEach(({matches:l})=>{r.get(A).matches.push(...l)}))}}),s}_searchObjectList(t,{heap:e,ignoreFieldNorm:n}={}){const o=this._getSearcher(t),i=this.options.useTokenSearch&&this.options.tokenMatch==="all",{records:r}=this._myIndex,s=this._normalizedKeys(),a=e?null:[];return r.forEach(({$:A,i:c})=>{if(!hE(A))return;const l=[];let g=!1,u=!1;if(s.forEach((d,h)=>{const _=this._findMatches({key:d,value:A[h],searcher:o});_.length?(l.push(..._),_[0].hasInverse&&(u=!0)):g=!0}),!(u&&g)&&l.length&&(!i||this._coversAllTokens(l))){const d={idx:c,item:A,matches:l};e?(d.score=rNe(d.matches,{ignoreFieldNorm:n}),e.insert(d)):a.push(d)}}),a}_findMatches({key:t,value:e,searcher:n}){if(!hE(e))return[];const o=[];if(hM(e))e.forEach(({v:i,i:r,n:s})=>{if(!hE(i))return;const a=n.searchIn(i);if(a.isMatch){const A={score:a.score,key:t,value:i,idx:r,norm:s,indices:a.indices,hasInverse:a.hasInverse};a.termCount!==void 0&&(A.matchedMask=a.matchedMask,A.matchedTerms=a.matchedTerms,A.termCount=a.termCount),o.push(A)}});else{const{v:i,n:r}=e,s=n.searchIn(i);if(s.isMatch){const a={score:s.score,key:t,value:i,norm:r,indices:s.indices,hasInverse:s.hasInverse};s.termCount!==void 0&&(a.matchedMask=s.matchedMask,a.matchedTerms=s.matchedTerms,a.termCount=s.termCount),o.push(a)}}return o}_coversAllTokens(t){const e=t.length?t[0].termCount:void 0;if(e===void 0)return!0;if(e<=31){let o=0;for(let i=0;i<t.length;i++)o|=t[i].matchedMask||0;return o===2**e-1}const n=new Set;for(let o=0;o<t.length;o++){const i=t[o].matchedTerms;if(i)for(const r of i)n.add(r)}return n.size===e}};dM.version="7.5.0",dM.createIndex=LOt,dM.parseIndex=H$o,dM.config=Ts,dM.match=function(t,e,n){if(n&&n.useTokenSearch)throw new Error(R$o);return Lae(t,{...Ts,...n}).searchIn(e)},dM.parseQuery=UOt,nNe(j$o),nNe(sZo),dM.use=function(...t){t.forEach(e=>nNe(e))};var lZo=dM;const gZo="https://kicad-mod-cache.tscircuit.com";let ANe=null,rz=null,cNe=null;const uZo=async()=>ANe||rz||(rz=fetch("https://kicad-mod-cache.tscircuit.com/kicad_files.json").then(t=>t.json()).then(t=>(ANe=t,rz=null,t)),rz),hZo=async(t,e=20)=>{const n=await uZo();return cNe||(cNe=new lZo(n)),cNe.search(t).slice(0,e).map(o=>o.item)},dZo=t=>{const e=t.replace(".pretty/","/").replace(".kicad_mod",""),n=`kicad:${e}`;return{path:t,qualifiedName:n,description:e}},_Zo=t=>t.replace(/^\/+/,"").split("/").map(e=>encodeURIComponent(e)).join("/"),mZo=async t=>{const e=await fetch(`${gZo}/${_Zo(t)}`);if(!e.ok)throw new Error(`KiCad footprint fetch failed: ${e.status}`);const n=await e.text(),{KicadFootprintToCircuitJsonConverter:o}=await sQ("kicad-to-circuit-json"),i=new o;return i.addFile(t.split("/").pop()??"selected-footprint.kicad_mod",n),i.runUntilFinished(),i.getOutput()},JOt=t=>t?.source==="jlcpcb"||t?.source==="kicad",pZo=async(t,e)=>{if(t.source==="jlcpcb")return Q$o(t.component.partNumber,e?.jlcpcb);if(t.source==="kicad")return mZo(t.footprint.path);throw new Error("Footprint preview is not available for this source")},IZo=({query:t,placeholder:e,isSearching:n,onQueryChange:o,onSubmit:i})=>{const r=$.useCallback(s=>{s.key==="Enter"&&(s.preventDefault(),i())},[i]);return V.jsxs("div",{className:"rf-flex rf-items-center rf-gap-2 rf-mt-4",children:[V.jsxs("div",{className:"rf-relative rf-flex-grow",children:[V.jsx(u8e,{className:"rf-absolute rf-left-2 rf-top-2.5 rf-h-4 rf-w-4 rf-text-muted-foreground"}),V.jsx(a9e,{placeholder:e,className:"rf-pl-8",spellCheck:!1,autoComplete:"off",value:t,onChange:s=>o(s.target.value),onKeyDown:r})]}),V.jsx(rA,{onClick:i,disabled:n||t.trim().length<1,className:"sm:rf-px-4 rf-px-3",children:n?V.jsx(iQ,{className:"rf-h-4 rf-w-4 rf-animate-spin"}):V.jsxs(V.Fragment,{children:[V.jsx(u8e,{className:"rf-h-4 rf-w-4 sm:rf-hidden"}),V.jsx("span",{className:"rf-hidden sm:rf-inline",children:"Search"})]})})]})},fZo=new Intl.NumberFormat("en-US",{style:"currency",currency:"USD"}),CZo=t=>fZo.format(t),qOt=t=>{switch(t.source){case"tscircuit.com":{const e=t.package;return`tscircuit-${e.package_id??`${e.org_owner_tscircuit_handle??"unknown"}-${e.unscoped_name??e.name??"package"}`}`}case"jlcpcb":return`jlc-${t.component.lcscId}`;case"kicad":return`kicad-${t.footprint.path}`;default:return"unknown"}},yZo=t=>{switch(t.source){case"tscircuit.com":return t.package.unscoped_name;case"jlcpcb":return t.component.isDirectLookup?t.component.partNumber:t.component.manufacturer;case"kicad":return t.footprint.qualifiedName}},EZo=t=>{switch(t.source){case"tscircuit.com":return t.package.description||(t.package.org_owner_tscircuit_handle?`Component by ${t.package.org_owner_tscircuit_handle}`:void 0);case"jlcpcb":return t.component.description;case"kicad":return t.footprint.description}},xZo=t=>{switch(t.source){case"tscircuit.com":return t.package.name;case"jlcpcb":return t.component.isDirectLookup?void 0:t.component.partNumber;case"kicad":return}},BZo=({results:t,selected:e,onSelect:n,onShowDetails:o})=>{const i=e?qOt(e):null;return V.jsx("div",{className:"rf-divide-y rf-w-full rf-overflow-hidden",children:t.map(r=>{const s=qOt(r),a=i===s,A=yZo(r),c=EZo(r),l=xZo(r),g=r.source==="jlcpcb"?r.component.stock:null,u=r.source==="jlcpcb"?r.component.price:null,d=r.source==="jlcpcb"?r.component.isBasic:null,h=r.source==="jlcpcb"?r.component.isDirectLookup:!1;return V.jsxs("div",{className:`rf-p-3 rf-flex rf-flex-col sm:rf-grid sm:rf-grid-cols-[minmax(0,1fr)_auto] rf-items-start sm:rf-items-center rf-cursor-pointer hover:rf-bg-zinc-100 rf-gap-2 rf-overflow-hidden ${a?"rf-bg-zinc-100":""}`,onClick:()=>n(r),children:[V.jsxs("div",{className:"rf-min-w-0 rf-overflow-hidden rf-w-full",children:[V.jsxs("div",{className:"rf-flex rf-items-start rf-gap-2 rf-min-w-0",children:[V.jsxs("div",{className:"rf-font-medium rf-text-sm rf-truncate rf-flex-1 rf-min-w-0 rf-flex rf-items-center rf-gap-1.5",children:[A,r.source==="jlcpcb"&&d!=null&&V.jsx("span",{className:`rf-text-xs rf-px-1.5 rf-py-0.5 rf-rounded rf-font-medium rf-flex-shrink-0 ${d?"rf-bg-green-100 rf-text-green-700":"rf-bg-orange-100 rf-text-orange-700"}`,children:d?"Basic":"Extended"}),h&&V.jsx("span",{className:"rf-text-xs rf-px-1.5 rf-py-0.5 rf-rounded rf-font-medium rf-flex-shrink-0 rf-bg-blue-100 rf-text-blue-700",children:"Direct lookup"}),r.source==="tscircuit.com"&&r.package.is_private&&V.jsx(sLo,{className:"rf-ml-1 rf-h-3 rf-w-3 rf-text-zinc-400 rf-flex-shrink-0"})]}),r.source==="jlcpcb"&&g!=null?V.jsxs("div",{className:"rf-text-xs rf-text-zinc-500 rf-font-medium rf-whitespace-nowrap rf-flex-shrink-0 sm:rf-hidden",children:[g.toLocaleString()," in stock"]}):null]}),V.jsxs("div",{className:"rf-text-xs rf-text-zinc-500 rf-truncate rf-w-full",children:[l?V.jsx("span",{className:"rf-mr-2",children:l}):null,c]})]}),V.jsxs("div",{children:[r.source==="tscircuit.com"&&o?V.jsx("div",{className:"rf-flex-shrink-0 rf-w-full sm:rf-w-auto",children:V.jsx(rA,{variant:"outline",size:"sm",className:"rf-text-xs rf-w-full sm:rf-w-auto",onClick:_=>{_.stopPropagation(),o(r)},children:"See Details"})}):r.source==="jlcpcb"&&g!=null?V.jsxs("div",{className:"rf-hidden sm:rf-block rf-text-xs rf-text-zinc-500 rf-font-medium rf-whitespace-nowrap rf-flex-shrink-0",children:[g.toLocaleString()," in stock"]}):null,u!=null&&V.jsx("div",{className:"rf-hidden sm:rf-block rf-text-xs rf-text-zinc-500 rf-font-medium rf-whitespace-nowrap rf-flex-shrink-0 rf-text-right",children:CZo(u)})]})]},s)})})},QZo=({circuitJson:t,error:e,isLoading:n,height:o})=>V.jsx("section",{className:"rf-flex rf-min-w-0 rf-items-center rf-justify-center",style:{height:o},children:n?V.jsxs("div",{className:"rf-flex rf-w-full rf-items-center rf-justify-center rf-gap-2 rf-bg-zinc-950 rf-text-sm rf-text-zinc-300",style:{height:o},children:[V.jsx(iQ,{className:"rf-h-4 rf-w-4 rf-animate-spin"}),"Loading preview..."]}):e?V.jsx("div",{className:"rf-flex rf-w-full rf-items-center rf-justify-center rf-bg-zinc-950 rf-p-4",style:{height:o},children:V.jsxs("div",{className:"rf-flex rf-max-w-[320px] rf-items-start rf-gap-2 rf-text-sm rf-text-zinc-300",children:[V.jsx(vNt,{className:"rf-mt-0.5 rf-h-4 rf-w-4 rf-flex-shrink-0"}),V.jsx("span",{children:e})]})}):t?V.jsx("div",{className:"rf-w-full rf-min-w-0 rf-overflow-hidden",children:V.jsx(tOt,{circuitJson:t,height:o,allowEditing:!1,clickToInteractEnabled:!1,focusOnHover:!1,disablePcbGroups:!0})}):V.jsx("div",{className:"rf-flex rf-w-full rf-items-center rf-justify-center rf-bg-zinc-950 rf-text-sm rf-text-zinc-300",style:{height:o},children:"No preview"})}),WOt={importComponentDialog:101,importComponentDetailsDialog:102},SZo=({packageResult:t,isOpen:e,onOpenChange:n,isLoading:o,details:i,previewTab:r,onPreviewTabChange:s,isSubmitting:a,onImport:A})=>{const c=t?.package??null,l=c?.latest_pcb_preview_image_url,g=c?.latest_sch_preview_image_url,u=c?.latest_cad_preview_image_url,d=c?.unscoped_name?.split("/").pop()??c?.unscoped_name,h=c?.org_owner_tscircuit_handle??void 0,_=h?`https://tscircuit.com/${h}`:void 0,m=h&&d?`https://tscircuit.com/${h}/${d}`:void 0;return V.jsx(jk,{open:e,onOpenChange:n,children:V.jsxs(r8,{showOverlay:!1,style:{width:"calc(100vw - 2rem)",zIndex:WOt.importComponentDetailsDialog},className:"rf-max-w-5xl no-scrollbar !rf-overflow-y-auto rf-max-h-[90vh] rf-overflow-hidden rf-flex rf-flex-col rf-rounded-sm",children:[V.jsx(s8,{className:"rf-pb-4 rf-border-b",children:V.jsx("div",{className:"rf-flex rf-items-start rf-justify-between rf-gap-4",children:V.jsxs("div",{className:"rf-flex-1 rf-min-w-0",children:[V.jsx(a8,{className:"rf-text-xl rf-font-semibold rf-truncate",children:d}),V.jsx(Xk,{children:c?.description})]})})}),V.jsxs("div",{className:"rf-flex-1 rf-overflow-y-auto rf-py-4 rf-space-y-6",children:[h?V.jsxs("div",{children:[V.jsx("span",{className:"rf-text-xs rf-font-medium rf-text-gray-500 rf-uppercase rf-tracking-wide",children:"Created by"}),V.jsx("div",{className:"rf-mt-1 rf-text-sm rf-font-medium",children:_?V.jsx("a",{href:_,target:"_blank",rel:"noopener noreferrer",className:"rf-text-black hover:rf-underline",children:h}):h})]}):null,(u||l||g)&&V.jsx(V.Fragment,{children:V.jsxs("div",{children:[V.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-mb-4",children:"Preview"}),V.jsxs(Vxe,{value:r,onValueChange:p=>s(p),children:[V.jsxs(zne,{className:"rf-inline-flex rf-h-9 rf-items-center rf-justify-center rf-rounded-lg rf-bg-zinc-100 rf-p-1 rf-text-zinc-500 dark:rf-bg-zinc-800 dark:rf-text-zinc-400",children:[l&&V.jsx(zS,{value:"pcb",children:"PCB"}),g&&V.jsx(zS,{value:"schematic",children:"Schematic"}),u&&V.jsx(zS,{value:"3d",children:"3D"})]}),V.jsxs("div",{className:"rf-mt-4",children:[V.jsx(Kf,{value:"pcb",className:"rf-border rf-rounded-lg rf-overflow-hidden rf-bg-gray-50",children:l?V.jsx("img",{src:l,alt:`${d??"package"} PCB preview`,className:"rf-w-full rf-h-full rf-object-contain rf-bg-white rf-p-4"}):null}),V.jsx(Kf,{value:"schematic",className:"rf-border rf-rounded-lg rf-overflow-hidden rf-bg-gray-50",children:g?V.jsx("img",{src:g,alt:`${d??"package"} schematic preview`,className:"rf-w-full rf-h-full rf-object-contain rf-bg-white rf-p-4"}):null}),V.jsx(Kf,{value:"3d",className:"rf-border rf-rounded-lg rf-overflow-hidden rf-bg-gray-50",children:u?V.jsx("img",{src:u,alt:`${d??"package"} 3D preview`,className:"rf-w-full rf-h-full rf-object-contain rf-bg-white rf-p-4"}):null})]})]})]})}),i?.ai_description?V.jsxs("section",{children:[V.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-mb-3",children:"AI Description"}),V.jsx("div",{className:"rf-bg-gray-50 rf-border rf-border-gray-200 rf-rounded-lg rf-p-4",children:V.jsx("p",{className:"rf-text-sm rf-text-gray-700 rf-leading-relaxed",children:i.ai_description})})]}):null,i?.ai_usage_instructions?V.jsxs("section",{children:[V.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-mb-3",children:"Usage Instructions"}),V.jsx("div",{className:"rf-bg-gray-50 rf-border rf-border-gray-200 rf-rounded-lg rf-p-4",children:V.jsx("p",{className:"rf-text-sm rf-text-gray-700 rf-leading-relaxed rf-whitespace-pre-wrap",children:i.ai_usage_instructions})})]}):null,o?V.jsxs("div",{className:"rf-flex rf-justify-center rf-items-center rf-gap-2 rf-text-gray-500",children:[V.jsx(iQ,{className:"rf-h-4 rf-w-4 rf-animate-spin"}),V.jsx("span",{className:"rf-text-sm",children:"Loading package details..."})]}):null]}),V.jsxs(oz,{className:"rf-pt-4 rf-border-t rf-flex rf-flex-col sm:rf-flex-row rf-justify-between rf-gap-2",children:[V.jsx("div",{className:"rf-flex-1",children:m?V.jsxs(rA,{variant:"outline",size:"sm",className:"rf-gap-2 rf-w-full sm:rf-w-auto",onClick:()=>window.open(m,"_blank"),children:[V.jsx(ZFo,{className:"rf-h-4 rf-w-4"}),"View on tscircuit.com"]}):null}),V.jsxs("div",{className:"rf-flex rf-flex-col sm:rf-flex-row rf-gap-2",children:[V.jsx(rA,{variant:"outline",onClick:()=>n(!1),className:"rf-order-2 sm:rf-order-1",children:"Close"}),V.jsx(rA,{onClick:A,disabled:a,className:"rf-bg-blue-600 hover:rf-bg-blue-700",children:a?V.jsx(iQ,{className:"rf-h-4 rf-w-4 rf-animate-spin"}):"Import Component"})]})]})]})})},bZo=()=>{const[t,e]=$.useState(null),[n,o]=$.useState(!1),i=$.useCallback(async(s,a)=>{o(!0);try{const A=await fetch(`https://api.tscircuit.com/packages/get?name=${encodeURIComponent(`${s}/${a}`)}`);if(!A.ok)throw new Error(`Failed to load package details: ${A.status}`);const c=await A.json();e(c.package??null)}catch(A){console.error("Failed to fetch package details",A),e(null)}finally{o(!1)}},[]),r=$.useCallback(()=>{e(null),o(!1)},[]);return{details:t,isLoading:n,fetchDetails:i,reset:r}},DZo=(t,e)=>{const[n,o]=$.useState({circuitJson:null,error:null,isLoading:!1});return $.useEffect(()=>{if(!t||!JOt(t)){o({circuitJson:null,error:null,isLoading:!1});return}let i=!1;return o({circuitJson:null,error:null,isLoading:!0}),pZo(t,e).then(r=>{i||o({circuitJson:r,error:null,isLoading:!1})}).catch(r=>{i||o({circuitJson:null,error:r instanceof Error?r.message:"Failed to load footprint preview",isLoading:!1})}),()=>{i=!0}},[t,e]),n},vZo=async(t,e)=>{const n={"Content-Type":"application/json"};e&&(n.Authorization=`Bearer ${e}`);const o=await fetch("https://registry-api.tscircuit.com/packages/search",{method:"POST",headers:n,body:JSON.stringify({query:t})});if(!o.ok)throw new Error(`tscircuit registry error: ${o.status}`);return(await o.json()).packages??[]},PZo=({sessionToken:t})=>{const[e,n]=$.useState([]),[o,i]=$.useState(!1),[r,s]=$.useState(null),[a,A]=$.useState(!1),c=$.useCallback(async g=>{const u=g.trim();if(!u)return[];i(!0),s(null);try{const h=(await vZo(u,t)).map(_=>({source:"tscircuit.com",package:_}));return n(h),h}catch(d){return console.error("Error searching tscircuit packages",d),n([]),s(d instanceof Error?d.message:"Failed to search tscircuit packages"),[]}finally{i(!1),A(!0)}},[t]),l=$.useCallback(()=>{n([]),i(!1),s(null),A(!1)},[]);return{results:e,isSearching:o,error:r,hasSearched:a,search:c,reset:l}},MZo=t=>{const e=/^C(\d+)$/i.exec(t.trim());if(!e)return null;const n=Number(e[1]);if(!Number.isSafeInteger(n))return null;const o=`C${e[1]}`;return{source:"jlcpcb",component:{lcscId:n,manufacturer:o,partNumber:o,description:"Import directly from EasyEDA; stock and availability are unknown",package:"",isDirectLookup:!0}}},jOt=(t,e)=>{const n=MZo(t);return n?e.some(i=>i.component.partNumber.toUpperCase()===n.component.partNumber)?e:[n,...e]:e},wZo=t=>{const e=t.trim();return/^C\d+/i.test(e)?e.replace(/^C/i,""):e},NZo=()=>{const[t,e]=$.useState([]),[n,o]=$.useState(!1),[i,r]=$.useState(null),[s,a]=$.useState(!1),A=$.useCallback(async l=>{const g=wZo(l);if(!g)return[];o(!0),r(null);try{const u=await E$o(g,10),d=jOt(l,u.map(h=>({source:"jlcpcb",component:x$o(h)})));return e(d),d}catch(u){console.error("Error searching JLCPCB components",u);const d=jOt(l,[]);return e(d),r(d.length>0?null:u instanceof Error?u.message:"Failed to search JLCPCB components"),d}finally{o(!1),a(!0)}},[]),c=$.useCallback(()=>{e([]),o(!1),r(null),a(!1)},[]);return{results:t,isSearching:n,error:i,hasSearched:s,search:A,reset:c}},RZo=()=>{const[t,e]=$.useState([]),[n,o]=$.useState(!1),[i,r]=$.useState(null),[s,a]=$.useState(!1),A=$.useCallback(async l=>{const g=l.trim();if(!g)return[];o(!0),r(null);try{const d=(await hZo(g,20)).map(h=>({source:"kicad",footprint:dZo(h)}));return e(d),d}catch(u){return console.error("Error searching KiCad footprints",u),e([]),r(u instanceof Error?u.message:"Failed to search KiCad footprints"),[]}finally{o(!1),a(!0)}},[]),c=$.useCallback(()=>{e([]),o(!1),r(null),a(!1)},[]);return{results:t,isSearching:n,error:i,hasSearched:s,search:A,reset:c}},TZo=({onTscircuitPackageSelected:t,onJlcpcbComponentTsxLoaded:e,onKicadStringSelected:n})=>{const o=[];return t&&o.push("tscircuit.com"),e&&o.push("jlcpcb"),n&&o.push("kicad"),o},kZo=({isOpen:t,onClose:e,jlcpcbProxyRequestHeaders:n,onKicadStringSelected:o,onTscircuitPackageSelected:i,onJlcpcbComponentTsxLoaded:r,jlcpcbProxyApiBase:s,tscircuitSessionToken:a})=>{vae();const A=$.useMemo(()=>TZo({onKicadStringSelected:o,onTscircuitPackageSelected:i,onJlcpcbComponentTsxLoaded:r}),[o,i,r]),c=A.length>0,l=A.length===1,[g,u]=$.useState(A[0]??"tscircuit.com"),[d,h]=$.useState(""),[_,m]=$.useState(null),{results:p,isSearching:I,error:f,hasSearched:C,search:y,reset:E}=PZo({sessionToken:a}),{results:B,isSearching:Q,error:b,hasSearched:D,search:R,reset:w}=NZo(),{results:H,isSearching:G,error:O,hasSearched:U,search:W,reset:j}=RZo(),{details:te,isLoading:re,fetchDetails:X,reset:Z}=bZo(),[se,ae]=$.useState(null),[ge,fe]=$.useState(!1),[Ce,Ee]=$.useState("pcb"),[he,xe]=$.useState(null),[_e,we]=$.useState(!1),He=$.useMemo(()=>({jlcpcb:{headers:n,apiBase:s}}),[s,n]),{circuitJson:ze,error:Ie,isLoading:qe}=DZo(_,He),Me=JOt(_);$.useEffect(()=>{xe(null)},[_]);const Te=$.useCallback(()=>{E(),w(),j(),m(null)},[w,j,E]);$.useEffect(()=>{t||(Te(),h(""),fe(!1),ae(null),xe(null))},[t,Te]),$.useEffect(()=>{h(""),m(null),g==="tscircuit.com"?E():g==="jlcpcb"?w():g==="kicad"&&j()},[g,w,j,E]);const Ye=gt=>{m(gt),ae(gt),Ee("pcb"),fe(!0),Z();const nt=gt.package.org_owner_tscircuit_handle,xt=gt.package.unscoped_name;if(nt&&xt){const mt=xt.split("/").pop()??xt;X(nt,mt)}},Ne=async()=>{d.trim()&&(m(null),g==="tscircuit.com"?await y(d):g==="jlcpcb"?await R(d):g==="kicad"&&await W(d))},be=async gt=>{try{if(xe(null),we(!0),gt.source==="kicad"){if(!o)throw new Error("KiCad handler not provided");await o({result:gt,footprint:gt.footprint.qualifiedName})}else if(gt.source==="jlcpcb"){if(!r)throw new Error("JLCPCB handler not provided");const nt=await B$o(gt.component.partNumber,{headers:n,apiBase:s});await r({result:gt,tsx:nt})}else if(gt.source==="tscircuit.com"){if(!i)throw new Error("tscircuit package handler not provided");const nt=gt.package.org_owner_tscircuit_handle,xt=gt.package.unscoped_name;if(!nt||!xt)throw new Error("Missing package metadata");const mt=xt.split("/").pop()??xt,vt=`@tsci/${nt}.${mt}`;await i({result:gt,fullPackageName:vt})}return!0}catch(nt){return console.error("Failed to import component",nt),xe(nt instanceof Error?nt.message:"Failed to import component"),!1}finally{we(!1)}};let Oe=[],ve=!1,Je=null,$e=!1;g==="tscircuit.com"?(Oe=p,ve=I,Je=f,$e=C):g==="jlcpcb"?(Oe=B,ve=Q,Je=b,$e=D):g==="kicad"&&(Oe=H,ve=G,Je=O,$e=U);const at=async()=>{if(!_)return;await be(_)&&(e(),Te(),h(""))},ct=gt=>{gt||e()},ht=gt=>{fe(gt),gt||ae(null)};return V.jsxs(jk,{open:t,onOpenChange:ct,children:[V.jsxs(r8,{style:{width:"calc(100vw - 2rem)",maxWidth:Me?"min(1120px, calc(100vw - 2rem))":"min(672px, calc(100vw - 2rem))",zIndex:WOt.importComponentDialog},className:"rf-rounded-sm rf-max-h-[90vh] rf-overflow-y-auto rf-overflow-x-hidden rf-flex rf-flex-col",children:[V.jsxs(s8,{children:[V.jsxs(a8,{className:"rf-text-lg sm:rf-text-xl",children:["Import ",l?Rae[g].label:""," ","Component"]}),V.jsx(Xk,{className:"rf-text-sm",children:c?"Search for components from available sources.":"Import options are disabled because no handlers were provided."})]}),c?V.jsxs(Vxe,{value:g,onValueChange:gt=>u(gt),className:"rf-min-w-0 rf-w-full",children:[!l&&V.jsx(zne,{className:"rf-flex rf-w-full rf-gap-2",children:A.map(gt=>V.jsx(zS,{value:gt,className:"rf-flex-1 rf-text-xs sm:rf-text-sm",children:Rae[gt].label},gt))}),V.jsxs("div",{className:"rf-min-w-0",style:Me?{display:"grid",gridTemplateColumns:"minmax(0, 1fr) minmax(360px, 0.95fr)",gap:"1.5rem",alignItems:"start"}:void 0,children:[V.jsxs("div",{className:"rf-min-w-0",children:[V.jsx(IZo,{query:d,placeholder:Rae[g].placeholder,isSearching:ve,onQueryChange:h,onSubmit:Ne}),V.jsx("div",{className:"no-scrollbar rf-mt-4 rf-flex-1 rf-min-h-[200px] !rf-max-h-[40vh] !rf-overflow-y-auto rf-overflow-x-hidden rf-border rf-rounded-md rf-min-w-0",children:ve?V.jsxs("div",{className:"rf-p-8 rf-text-center rf-text-zinc-500",children:[V.jsx(iQ,{className:"rf-h-8 rf-w-8 rf-animate-spin rf-mx-auto rf-mb-2"}),V.jsx("p",{children:"Searching..."})]}):Oe.length>0?V.jsx(BZo,{results:Oe,selected:_,onSelect:m,onShowDetails:g==="tscircuit.com"?Ye:void 0}):V.jsx("div",{className:"rf-p-8 rf-text-center rf-text-zinc-500",children:Je?`Error: ${Je}`:$e?Rae[g].emptyMessage:"Enter a search term to find components"})})]}),Me?V.jsx("div",{className:"rf-mt-4",children:V.jsx(QZo,{circuitJson:ze,error:Ie,isLoading:qe,height:325})}):null]})]}):null,he?V.jsx("div",{className:"rf-text-sm rf-text-red-600 rf-mt-2",children:he}):null,V.jsxs(oz,{className:"rf-flex rf-flex-col sm:rf-flex-row rf-gap-2",children:[V.jsx(rA,{variant:"outline",onClick:e,className:"rf-order-2 sm:rf-order-1",children:"Cancel"}),V.jsx(rA,{onClick:at,disabled:!_||_e,className:"rf-order-1 sm:rf-order-2",children:_e?V.jsx(iQ,{className:"rf-h-4 rf-w-4 rf-animate-spin"}):"Import"})]})]}),V.jsx(SZo,{packageResult:se,isOpen:ge,onOpenChange:ht,isLoading:re,details:te,previewTab:Ce,onPreviewTabChange:gt=>Ee(gt),isSubmitting:_e,onImport:()=>{se&&be(se).then(gt=>{gt&&(fe(!1),e(),Te(),h(""))})}})]})},FZo=t=>{const e=t.match(/export const (\w+) =/);if(!e)throw new Error("Could not determine component name from TSX contents");return e[1]},XOt=t=>{const e=ju(s=>s.pushEvent),n=ju(s=>s.upsertFile),o=async({result:s,fullPackageName:a})=>{const c=s.package.unscoped_name??s.package.name;await Vs.promise(e({event_type:"INSTALL_PACKAGE",full_package_name:a}),{loading:`Requesting install for "${c}"`,success:`Install requested for "${c}"`,error:l=>`Failed to request install: ${l instanceof Error?l.message:String(l)}`})},i=async({footprint:s})=>{await Vs.promise(navigator.clipboard.writeText(s),{loading:`Copying "${s}"`,success:`Copied "${s}" to clipboard`,error:a=>`Failed to copy footprint: ${a instanceof Error?a.message:String(a)}`})},r=async({result:s,tsx:a})=>{const c=`imports/${FZo(a)}.tsx`;await Vs.promise(n(c,a),{loading:`Importing ${s.component.partNumber}`,success:`Imported to "${c}"`,error:l=>`Failed to import component: ${l instanceof Error?l.message:String(l)}`})};return V.jsx(kZo,{...t,onTscircuitPackageSelected:o,onKicadStringSelected:i,onJlcpcbComponentTsxLoaded:r})};XOt.displayName="ImportComponentDialogForCli";var lNe={exports:{}},$Ot;function LZo(){return $Ot||($Ot=1,(function(t,e){var n={env:{},version:""};(function(o){t.exports=o()})(function(){return(function o(i,r,s){function a(l,g){if(!r[l]){if(!i[l]){var u=typeof FD=="function"&&FD;if(!g&&u)return u(l,!0);if(A)return A(l,!0);var d=new Error("Cannot find module '"+l+"'");throw d.code="MODULE_NOT_FOUND",d}var h=r[l]={exports:{}};i[l][0].call(h.exports,function(_){var m=i[l][1][_];return a(m||_)},h,h.exports,o,i,r,s)}return r[l].exports}for(var A=typeof FD=="function"&&FD,c=0;c<s.length;c++)a(s[c]);return a})({1:[function(o,i,r){var s=o("./utils"),a=o("./support"),A="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";r.encode=function(c){for(var l,g,u,d,h,_,m,p=[],I=0,f=c.length,C=f,y=s.getTypeOf(c)!=="string";I<c.length;)C=f-I,u=y?(l=c[I++],g=I<f?c[I++]:0,I<f?c[I++]:0):(l=c.charCodeAt(I++),g=I<f?c.charCodeAt(I++):0,I<f?c.charCodeAt(I++):0),d=l>>2,h=(3&l)<<4|g>>4,_=1<C?(15&g)<<2|u>>6:64,m=2<C?63&u:64,p.push(A.charAt(d)+A.charAt(h)+A.charAt(_)+A.charAt(m));return p.join("")},r.decode=function(c){var l,g,u,d,h,_,m=0,p=0,I="data:";if(c.substr(0,I.length)===I)throw new Error("Invalid base64 input, it looks like a data url.");var f,C=3*(c=c.replace(/[^A-Za-z0-9+/=]/g,"")).length/4;if(c.charAt(c.length-1)===A.charAt(64)&&C--,c.charAt(c.length-2)===A.charAt(64)&&C--,C%1!=0)throw new Error("Invalid base64 input, bad content length.");for(f=a.uint8array?new Uint8Array(0|C):new Array(0|C);m<c.length;)l=A.indexOf(c.charAt(m++))<<2|(d=A.indexOf(c.charAt(m++)))>>4,g=(15&d)<<4|(h=A.indexOf(c.charAt(m++)))>>2,u=(3&h)<<6|(_=A.indexOf(c.charAt(m++))),f[p++]=l,h!==64&&(f[p++]=g),_!==64&&(f[p++]=u);return f}},{"./support":30,"./utils":32}],2:[function(o,i,r){var s=o("./external"),a=o("./stream/DataWorker"),A=o("./stream/Crc32Probe"),c=o("./stream/DataLengthProbe");function l(g,u,d,h,_){this.compressedSize=g,this.uncompressedSize=u,this.crc32=d,this.compression=h,this.compressedContent=_}l.prototype={getContentWorker:function(){var g=new a(s.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new c("data_length")),u=this;return g.on("end",function(){if(this.streamInfo.data_length!==u.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),g},getCompressedWorker:function(){return new a(s.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},l.createWorkerFrom=function(g,u,d){return g.pipe(new A).pipe(new c("uncompressedSize")).pipe(u.compressWorker(d)).pipe(new c("compressedSize")).withStreamInfo("compression",u)},i.exports=l},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(o,i,r){var s=o("./stream/GenericWorker");r.STORE={magic:"\0\0",compressWorker:function(){return new s("STORE compression")},uncompressWorker:function(){return new s("STORE decompression")}},r.DEFLATE=o("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(o,i,r){var s=o("./utils"),a=(function(){for(var A,c=[],l=0;l<256;l++){A=l;for(var g=0;g<8;g++)A=1&A?3988292384^A>>>1:A>>>1;c[l]=A}return c})();i.exports=function(A,c){return A!==void 0&&A.length?s.getTypeOf(A)!=="string"?(function(l,g,u,d){var h=a,_=d+u;l^=-1;for(var m=d;m<_;m++)l=l>>>8^h[255&(l^g[m])];return-1^l})(0|c,A,A.length,0):(function(l,g,u,d){var h=a,_=d+u;l^=-1;for(var m=d;m<_;m++)l=l>>>8^h[255&(l^g.charCodeAt(m))];return-1^l})(0|c,A,A.length,0):0}},{"./utils":32}],5:[function(o,i,r){r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(o,i,r){var s=null;s=typeof Promise<"u"?Promise:o("lie"),i.exports={Promise:s}},{lie:37}],7:[function(o,i,r){var s=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Uint32Array<"u",a=o("pako"),A=o("./utils"),c=o("./stream/GenericWorker"),l=s?"uint8array":"array";function g(u,d){c.call(this,"FlateWorker/"+u),this._pako=null,this._pakoAction=u,this._pakoOptions=d,this.meta={}}r.magic="\b\0",A.inherits(g,c),g.prototype.processChunk=function(u){this.meta=u.meta,this._pako===null&&this._createPako(),this._pako.push(A.transformTo(l,u.data),!1)},g.prototype.flush=function(){c.prototype.flush.call(this),this._pako===null&&this._createPako(),this._pako.push([],!0)},g.prototype.cleanUp=function(){c.prototype.cleanUp.call(this),this._pako=null},g.prototype._createPako=function(){this._pako=new a[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var u=this;this._pako.onData=function(d){u.push({data:d,meta:u.meta})}},r.compressWorker=function(u){return new g("Deflate",u)},r.uncompressWorker=function(){return new g("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(o,i,r){function s(h,_){var m,p="";for(m=0;m<_;m++)p+=String.fromCharCode(255&h),h>>>=8;return p}function a(h,_,m,p,I,f){var C,y,E=h.file,B=h.compression,Q=f!==l.utf8encode,b=A.transformTo("string",f(E.name)),D=A.transformTo("string",l.utf8encode(E.name)),R=E.comment,w=A.transformTo("string",f(R)),H=A.transformTo("string",l.utf8encode(R)),G=D.length!==E.name.length,O=H.length!==R.length,U="",W="",j="",te=E.dir,re=E.date,X={crc32:0,compressedSize:0,uncompressedSize:0};_&&!m||(X.crc32=h.crc32,X.compressedSize=h.compressedSize,X.uncompressedSize=h.uncompressedSize);var Z=0;_&&(Z|=8),Q||!G&&!O||(Z|=2048);var se=0,ae=0;te&&(se|=16),I==="UNIX"?(ae=798,se|=(function(fe,Ce){var Ee=fe;return fe||(Ee=Ce?16893:33204),(65535&Ee)<<16})(E.unixPermissions,te)):(ae=20,se|=(function(fe){return 63&(fe||0)})(E.dosPermissions)),C=re.getUTCHours(),C<<=6,C|=re.getUTCMinutes(),C<<=5,C|=re.getUTCSeconds()/2,y=re.getUTCFullYear()-1980,y<<=4,y|=re.getUTCMonth()+1,y<<=5,y|=re.getUTCDate(),G&&(W=s(1,1)+s(g(b),4)+D,U+="up"+s(W.length,2)+W),O&&(j=s(1,1)+s(g(w),4)+H,U+="uc"+s(j.length,2)+j);var ge="";return ge+=`
|
|
5800
|
+
`,g=new Blob([l],{type:"text/plain"}),u=URL.createObjectURL(g),d=document.createElement("a");d.href=u,d.download=`${c}.test.ts`,d.click(),URL.revokeObjectURL(u)}catch(A){alert(`Error generating test.ts for ${t.constructor.name}: ${A instanceof Error?A.message:String(A)}`)}o(!1)};return V.jsxs("div",{className:`relative ${e}`,ref:i,children:[V.jsx("button",{className:"px-2 py-1 rounded text-xs cursor-pointer",onClick:()=>o(!n),title:`Download options for ${t.constructor.name}`,children:t.constructor.name}),n&&V.jsxs("div",{className:"absolute top-full left-0 mt-1 bg-white border border-gray-300 rounded shadow-lg z-10 min-w-[150px]",children:[V.jsx("button",{className:"w-full text-left px-3 py-2 hover:bg-gray-100 text-xs",onClick:r,children:"Download JSON"}),V.jsx("button",{className:"w-full text-left px-3 py-2 hover:bg-gray-100 text-xs",onClick:s,children:"Download page.tsx"}),V.jsx("button",{className:"w-full text-left px-3 py-2 hover:bg-gray-100 text-xs",onClick:a,children:"Download test.ts"})]})]})},iOt=t=>t.activeSubSolver?[t,...iOt(t.activeSubSolver)]:[t],aXo=({solver:t})=>{const e=iOt(t);return V.jsx("div",{className:"flex gap-1 items-center text-sm pt-1",children:e.map((n,o)=>V.jsxs("div",{className:"flex items-center",children:[o>0&&V.jsx("span",{className:"text-gray-400 mx-1",children:"→"}),V.jsx(sXo,{solver:n})]},n.constructor.name))})},AXo=({solver:t,triggerRender:e,animationSpeed:n=25,onSolverStarted:o,onSolverCompleted:i})=>{const[r,s]=$.useReducer(_=>!_,!1),a=$.useRef(void 0),A=()=>{!t.solved&&!t.failed&&(t.step(),e())},c=()=>{!t.solved&&!t.failed&&(o&&o(t),t.solve(),e(),i&&i(t))},l=()=>{r?(a.current&&(clearInterval(a.current),a.current=void 0),s()):(s(),a.current=setInterval(()=>{if(t.solved||t.failed){a.current&&(clearInterval(a.current),a.current=void 0),s(),e(),i&&t.solved&&i(t);return}t.step(),e()},n))},g=()=>{const _=t;if(_.getCurrentPhase&&!t.solved&&!t.failed){const m=_.getCurrentPhase();for(;_.getCurrentPhase()===m&&!t.solved&&!t.failed;)t.step();e()}},u=()=>{if(t.solved||t.failed||r)return;const _=window.prompt("Step until which iteration?",`${t.iterations}`);if(_===null)return;const m=Number(_);if(!Number.isFinite(m)){window.alert("Please enter a valid number for the iteration");return}for(;t.iterations<m&&!t.solved&&!t.failed;)t.step();e(),t.solved&&i&&i(t)};$.useEffect(()=>()=>{a.current&&clearInterval(a.current)},[]),$.useEffect(()=>{(t.solved||t.failed)&&r&&(a.current&&(clearInterval(a.current),a.current=void 0),s())},[t.solved,t.failed,r]);const d=t.getCurrentPhase!==void 0,h=d?t.getCurrentPhase():null;return V.jsxs("div",{className:"space-y-2 p-2 border-b",children:[V.jsx("div",{className:"flex items-center",children:V.jsx(aXo,{solver:t})}),V.jsxs("div",{className:"flex gap-2 items-center flex-wrap",children:[V.jsx("button",{onClick:A,disabled:t.solved||t.failed||r,className:"bg-blue-500 hover:bg-blue-600 disabled:bg-gray-300 text-white px-3 py-1 rounded text-sm",children:"Step"}),V.jsx("button",{onClick:c,disabled:t.solved||t.failed||r,className:"bg-green-500 hover:bg-green-600 disabled:bg-gray-300 text-white px-3 py-1 rounded text-sm",children:"Solve"}),V.jsx("button",{onClick:l,disabled:t.solved||t.failed,className:`px-3 py-1 rounded text-white text-sm ${r?"bg-red-500 hover:bg-red-600":"bg-yellow-500 hover:bg-yellow-600"} disabled:bg-gray-300`,children:r?"Stop":"Animate"}),V.jsx("button",{onClick:u,disabled:t.solved||t.failed||r,className:"bg-orange-500 hover:bg-orange-600 disabled:bg-gray-300 text-white px-3 py-1 rounded text-sm",children:"Step Until Iteration"}),d&&V.jsx("button",{onClick:g,disabled:t.solved||t.failed||r,className:"bg-purple-500 hover:bg-purple-600 disabled:bg-gray-300 text-white px-3 py-1 rounded text-sm",children:"Next Stage"}),V.jsxs("div",{className:"text-sm text-gray-600",children:["Iterations: ",t.iterations]}),t.timeToSolve!==void 0&&V.jsxs("div",{className:"text-sm text-gray-600",children:["Time: ",(t.timeToSolve/1e3).toFixed(3),"s"]}),h&&V.jsxs("div",{className:"text-sm text-gray-600",children:["Phase: ",V.jsx("span",{className:"font-medium",children:h})]}),t.solved&&V.jsx("div",{className:"px-2 py-1 bg-green-100 text-green-800 rounded text-sm",children:"Solved"}),t.failed&&V.jsx("div",{className:"px-2 py-1 bg-red-100 text-red-800 rounded text-sm",children:"Failed"})]}),t.error&&V.jsxs("div",{className:"text-red-600 text-sm",children:["Error: ",t.error]})]})},cXo=(t,e,n)=>{const o=t.currentPipelineStepIndex;return e<o?"Completed":e===o&&t.activeSubSolver?t.activeSubSolver.failed?"Failed":"In Progress":"Not Started"},lXo=(t,e)=>{const o=t.pipelineDef[e].solverName,i=cXo(t,e),r=t[o],s=t.firstIterationOfPhase?.[o]??null,a=t.iterations;let A=0;if(i==="Completed"){const u=t.pipelineDef[e+1],d=u?t.firstIterationOfPhase?.[u.solverName]:void 0;d!==void 0&&s!==null?A=d-s:s!==null&&(A=a-s)}else i==="In Progress"&&s!==null&&(A=a-s);const c=t.timeSpentOnPhase?.[o]??0;let l=0;i==="Completed"?l=1:i==="In Progress"&&r&&(l=r.progress??0);const g=r?.stats??null;return{index:e,name:o,status:i,firstIteration:s,iterations:A,progress:l,timeSpent:c,stats:g&&Object.keys(g).length>0?g:null,solverInstance:r??null}},gXo=({status:t})=>{const e={"Not Started":"text-blue-600","In Progress":"text-yellow-600",Completed:"text-green-600",Failed:"text-red-600"};return V.jsx("span",{className:`font-medium ${e[t]}`,children:t})},uXo=({progress:t})=>{if(t===0)return null;const e=Math.round(t*100);return V.jsxs("div",{className:"flex items-center gap-2",children:[V.jsx("div",{className:"w-20 h-2 bg-gray-200 rounded overflow-hidden",children:V.jsx("div",{className:"h-full bg-blue-500 transition-all duration-200",style:{width:`${e}%`}})}),V.jsxs("span",{className:"text-xs text-gray-500",children:[e,"%"]})]})},hXo=t=>Object.entries(t).map(([e,n])=>`${e}: ${n}`).join(", "),dXo=({stats:t})=>{if(!t||Object.keys(t).length===0)return V.jsx("span",{children:"-"});const e=Object.entries(t),n=hXo(t);return V.jsxs("details",{className:"cursor-pointer",children:[V.jsx("summary",{className:"whitespace-nowrap overflow-hidden text-ellipsis max-w-[200px]",children:n}),V.jsx("div",{className:"mt-1 text-xs",children:e.map(([o,i])=>V.jsxs("div",{children:[o,": ",String(i)]},o))})]})},M7e=t=>{if(t===null||typeof t!="object")return t;if(Array.isArray(t))return t.map(M7e);const e={};for(const[n,o]of Object.entries(t))n.startsWith("_")||(e[n]=M7e(o));return e},_Xo=(t,e)=>{try{if(typeof t.getConstructorParams!="function"){alert(`getConstructorParams() is not implemented for ${e}`);return}const n=M7e(t.getConstructorParams()),o=new Blob([JSON.stringify(n,null,2)],{type:"application/json"}),i=URL.createObjectURL(o),r=document.createElement("a");r.href=i,r.download=`${e}_input.json`,r.click(),URL.revokeObjectURL(i)}catch(n){alert(`Error downloading input for ${e}: ${n instanceof Error?n.message:String(n)}`)}},mXo=({solver:t,onStepUntilPhase:e,onDownloadInput:n})=>{const o=t.pipelineDef.map((a,A)=>lXo(t,A)),i=a=>{e?.(a)},r=a=>{a.solverInstance&&(n?n(a.solverInstance,a.name):_Xo(a.solverInstance,a.name))},s=a=>`${(a/1e3).toFixed(2)}s`;return V.jsxs("div",{className:"border-t border-gray-200",children:[V.jsx("div",{className:"px-4 py-2 bg-gray-50 border-b border-gray-200",children:V.jsx("h3",{className:"text-sm font-semibold text-gray-700",children:"Pipeline Steps"})}),V.jsx("div",{className:"overflow-x-auto",children:V.jsxs("table",{className:"w-full text-sm",children:[V.jsx("thead",{children:V.jsxs("tr",{className:"bg-gray-50 border-b border-gray-200",children:[V.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Step"}),V.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Status"}),V.jsxs("th",{className:"px-4 py-2 text-center font-semibold text-gray-700",children:["i",V.jsx("sub",{children:"0"})]}),V.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Iterations"}),V.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Progress"}),V.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Time"}),V.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Stats"}),V.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Input"})]})}),V.jsx("tbody",{children:o.map(a=>V.jsxs("tr",{className:`border-b border-gray-100 ${a.status==="In Progress"?"bg-yellow-50":""}`,children:[V.jsx("td",{className:"px-4 py-2",children:V.jsxs("div",{className:"flex items-center gap-2",children:[V.jsx("span",{className:"text-gray-400 w-6",children:String(a.index+1).padStart(2,"0")}),V.jsx("button",{onClick:()=>i(a.name),disabled:a.status==="Completed"||t.solved||t.failed,className:"text-blue-500 hover:text-blue-700 disabled:text-gray-300 disabled:cursor-not-allowed",title:`Step until ${a.name} completes`,children:V.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",className:"w-4 h-4",children:V.jsx("path",{fillRule:"evenodd",d:"M4.5 5.653c0-1.426 1.529-2.33 2.779-1.643l11.54 6.348c1.295.712 1.295 2.573 0 3.285L7.28 19.991c-1.25.687-2.779-.217-2.779-1.643V5.653z",clipRule:"evenodd"})})}),V.jsx("span",{className:"font-medium text-gray-900",children:a.name})]})}),V.jsx("td",{className:"px-4 py-2",children:V.jsx(gXo,{status:a.status})}),V.jsx("td",{className:"px-4 py-2 text-center text-gray-600",children:a.firstIteration!==null?a.firstIteration:""}),V.jsx("td",{className:"px-4 py-2 text-gray-600",children:a.iterations}),V.jsx("td",{className:"px-4 py-2",children:V.jsx(uXo,{progress:a.progress})}),V.jsx("td",{className:"px-4 py-2 text-gray-600",children:s(a.timeSpent)}),V.jsx("td",{className:"px-4 py-2 text-gray-500",children:V.jsx(dXo,{stats:a.stats})}),V.jsx("td",{className:"px-4 py-2",children:a.solverInstance?V.jsxs("button",{onClick:()=>r(a),className:"flex items-center gap-1 text-blue-500 hover:text-blue-700",title:`Download input for ${a.name}`,children:[V.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",className:"w-4 h-4",children:V.jsx("path",{fillRule:"evenodd",d:"M12 2.25a.75.75 0 01.75.75v11.69l3.22-3.22a.75.75 0 111.06 1.06l-4.5 4.5a.75.75 0 01-1.06 0l-4.5-4.5a.75.75 0 111.06-1.06l3.22 3.22V3a.75.75 0 01.75-.75zm-9 13.5a.75.75 0 01.75.75v2.25a1.5 1.5 0 001.5 1.5h13.5a1.5 1.5 0 001.5-1.5V16.5a.75.75 0 011.5 0v2.25a3 3 0 01-3 3H5.25a3 3 0 01-3-3V16.5a.75.75 0 01.75-.75z",clipRule:"evenodd"})}),V.jsx("span",{children:"Input"})]}):null})]},a.name))})]})})]})},pXo=class extends $r.Component{constructor(t){super(t),this.state={hasError:!1}}static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(t){console.error("InteractiveGraphics render error:",t)}render(){return this.state.hasError?this.props.fallback:this.props.children}};function IXo({graphics:t}){const e=t.points??[],n=t.lines??[],o=t.rects??[],i=t.circles??[],r=t.texts??[];let s=Number.POSITIVE_INFINITY,a=Number.POSITIVE_INFINITY,A=Number.NEGATIVE_INFINITY,c=Number.NEGATIVE_INFINITY;const l=(m,p)=>{typeof m=="number"&&(m<s&&(s=m),m>A&&(A=m)),typeof p=="number"&&(p<a&&(a=p),p>c&&(c=p))};for(const m of e)l(m.x,m.y);for(const m of n){const p=m.points??[];for(const I of p)l(I.x,I.y)}for(const m of o){const p=m.x??0,I=m.y??0,f=m.width??0,C=m.height??0;l(p,I),l(p+f,I+C)}for(const m of i){const p=m.x??0,I=m.y??0,f=m.radius??1;l(p-f,I-f),l(p+f,I+f)}for(const m of r)l(m.x,m.y);(!isFinite(s)||!isFinite(a)||!isFinite(A)||!isFinite(c))&&(s=-20,a=-20,A=20,c=20);const g=10,u=s-g,d=a-g,h=Math.max(1,A-s+2*g),_=Math.max(1,c-a+2*g);return V.jsxs("svg",{className:"w-full h-[400px] bg-white",viewBox:`${u} ${d} ${h} ${_}`,role:"img","aria-label":"Graphics fallback",children:[o.map((m,p)=>V.jsx("rect",{x:m.x??0,y:m.y??0,width:m.width??0,height:m.height??0,fill:"none",stroke:m.strokeColor??"black",strokeWidth:m.strokeWidth??1},`rect-${p}`)),n.map((m,p)=>V.jsx("polyline",{fill:"none",stroke:m.strokeColor??"black",strokeWidth:m.strokeWidth??1,points:(m.points??[]).map(I=>`${I.x??0},${I.y??0}`).join(" ")},`line-${p}`)),i.map((m,p)=>V.jsx("circle",{cx:m.x??0,cy:m.y??0,r:m.radius??1.5,fill:m.fillColor??"none",stroke:m.strokeColor??"black",strokeWidth:m.strokeWidth??1},`circle-${p}`)),e.map((m,p)=>V.jsx("circle",{cx:m.x??0,cy:m.y??0,r:m.radius??1.5,fill:m.color??"black"},`point-${p}`)),r.map((m,p)=>V.jsx("text",{x:m.x??0,y:m.y??0,fontSize:m.fontSize??10,fill:m.color??"black",children:m.text??""},`text-${p}`))]})}var fXo=({solver:t,animationSpeed:e=25,onSolverStarted:n,onSolverCompleted:o})=>{const[i,r]=$.useReducer(l=>l+1,0),s=$.useMemo(()=>{try{return t.visualize()||{points:[],lines:[],rects:[],circles:[]}}catch(l){return console.error("Visualization error:",l),{points:[],lines:[],rects:[],circles:[]}}},[t,i]),a=$.useMemo(()=>(s.rects?.length||0)===0&&(s.lines?.length||0)===0&&(s.points?.length||0)===0&&(s.circles?.length||0)===0,[s]);$.useEffect(()=>{if(!(typeof document>"u")&&!document.querySelector('script[src="https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4"]')){const l=document.createElement("script");l.src="https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4",document.head.appendChild(l)}},[]);const A=t.pipelineDef!==void 0,c=l=>{const g=t;if(!t.solved&&!t.failed){for(;!t.solved&&!t.failed&&g.currentPipelineStepIndex<=g.pipelineDef.findIndex(u=>u.solverName===l);)t.step();r()}};return V.jsxs("div",{children:[V.jsx(AXo,{solver:t,triggerRender:r,animationSpeed:e,onSolverStarted:n,onSolverCompleted:o}),a?V.jsx("div",{className:"p-4 text-gray-500",children:"No Graphics Yet"}):V.jsx(pXo,{fallback:V.jsx(IXo,{graphics:s}),children:V.jsx(rXo,{graphics:s})}),A&&V.jsx(mXo,{solver:t,onStepUntilPhase:c})]})};const CXo=()=>{$.useEffect(()=>{const t="tailwind-cdn-script";if(document.getElementById(t)||window.tailwind)return;const e=document.createElement("div");e.className="hidden",document.body.appendChild(e);const n=window.getComputedStyle(e).display==="none";if(document.body.removeChild(e),n)return;const o=document.createElement("script");o.id=t,o.src="https://cdn.tailwindcss.com",document.head.appendChild(o)},[])},yXo=1e3,Eb=(t,e)=>{const{fileName:n,mimeType:o="text/plain"}=e,i=t instanceof Blob?t:new Blob([t],{type:o}),r=URL.createObjectURL(i),s=document.createElement("a");s.href=r,s.download=n,s.target="_blank",s.rel="noopener noreferrer",s.style.display="none",document.body.appendChild(s),s.click(),document.body.removeChild(s),setTimeout(()=>{URL.revokeObjectURL(r)},yXo)},rOt=t=>{let e=t.trim().replace(/[\\/:*?"<>|]/g,"_").replace(/[\x00-\x1f]/g,"").replace(/^\.+/,"").replace(/\.+$/,"").replace(/\s+/g," ").replace(/_+/g,"_");return/^(con|prn|aux|nul|com[0-9]|lpt[0-9])$/i.test(e)&&(e=`_${e}`),e=e.slice(0,200),e||"untitled"},xb="https://github.com/tscircuit/tscircuit-autorouter/issues/new",sOt="https://github.com/tscircuit/copper-pour-solver/issues/new",aOt="https://github.com/tscircuit/calculate-packing/issues/new",EXo="https://github.com/tscircuit/matchpack/issues/new",AOt="https://github.com/tscircuit/schematic-trace-solver/issues/new?template=json-bug-report.yml",xXo={PackSolver2:aOt,LayoutPipelineSolver:EXo,AutoroutingPipelineSolver:xb,AssignableAutoroutingPipeline2:xb,AssignableAutoroutingPipeline3:xb,AutoroutingPipeline1_OriginalUnravel:xb,AutoroutingPipelineSolver3_HgPortPointPathing:xb,AutoroutingPipelineSolver4:xb,AutoroutingPipelineSolver5:xb,AutoroutingPipelineSolver7_MultiGraph:xb,AutoroutingPipelineSolver8:xb,CopperPourPipelineSolver:sOt,SchematicTracePipelineSolver:AOt},BXo=t=>t.toLowerCase().includes("pack")?iLo:t.toLowerCase().includes("rout")?lLo:zFo,cOt=t=>{const e=xXo[t];if(e)return e;const n=t.toLowerCase();return n.includes("autorout")?xb:n.includes("schematic")&&n.includes("trace")?AOt:n.includes("copperpour")?sOt:n.includes("pack")?aOt:null},QXo=t=>`${rOt(`${t.componentName}-${t.solverName}`)}-solver-input.json`,lOt=t=>{Eb(JSON.stringify(t.solverParams,null,2),{fileName:QXo(t),mimeType:"application/json"})},SXo=({solverEvent:t})=>{const e=cOt(t.solverName);return V.jsxs("div",{className:"rf-flex rf-items-center rf-justify-end rf-gap-2 rf-border-b rf-border-gray-200 rf-bg-gray-50 rf-px-4 rf-py-2",children:[V.jsxs(rA,{type:"button",variant:"outline",size:"sm",onClick:()=>lOt(t),children:[V.jsx(g8e,{className:"rf-w-4 rf-h-4"}),"Download"]}),e?V.jsx(rA,{asChild:!0,variant:"outline",size:"sm",children:V.jsxs("a",{href:e,target:"_blank",rel:"noopener noreferrer",children:[V.jsx(Ase,{className:"rf-w-4 rf-h-4"}),"Report"]})}):V.jsxs(rA,{type:"button",variant:"outline",size:"sm",disabled:!0,title:"No report link configured for this solver",children:[V.jsx(Ase,{className:"rf-w-4 rf-h-4"}),"Report"]})]})},bXo=({solverEvent:t})=>{const e=cOt(t.solverName);return e?V.jsx(rA,{asChild:!0,variant:"ghost",size:"icon",className:"rf-h-8 rf-w-8",children:V.jsx("a",{href:e,target:"_blank",rel:"noopener noreferrer",title:"Report solver bug","aria-label":"Report solver bug",children:V.jsx(Ase,{className:"rf-w-4 rf-h-4"})})}):V.jsx(rA,{type:"button",variant:"ghost",size:"icon",className:"rf-h-8 rf-w-8",disabled:!0,title:"No report link configured for this solver","aria-label":"Report solver bug",children:V.jsx(Ase,{className:"rf-w-4 rf-h-4"})})},DXo=({solverEvents:t=[]})=>{const[e,n]=$.useState(null);CXo();const o=$.useMemo(()=>{const a=new Map;for(const A of t){const c=`${A.componentName}-${A.solverName}`;a.set(c,A)}return a},[t]),i=$.useMemo(()=>Array.from(o.keys()),[o]),r=e?o.get(e):null,s=$.useMemo(()=>{if(!r)return{instance:null,error:null,classFound:!1};const a=i2e[r.solverName];if(!a)return{instance:null,error:`Solver class "${r.solverName}" not found in SOLVERS registry. Available: ${Object.keys(i2e).join(", ")}`,classFound:!1};try{const A=r.solverParams,c=A?.input!==void 0?A.input:A;return{instance:new a(c),error:null,classFound:!0}}catch(A){const c=A instanceof Error?A.message:String(A);return console.error("Failed to reconstruct solver:",A),{instance:null,error:`Failed to instantiate solver: ${c}`,classFound:!0}}},[r]);return t.length===0?V.jsx("div",{className:"rf-p-4",children:V.jsx("div",{className:"rf-bg-gray-50 rf-rounded-md rf-border rf-border-gray-200",children:V.jsxs("div",{className:"rf-p-4",children:[V.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-text-gray-800 rf-mb-3",children:"No Solvers Detected"}),V.jsx("p",{className:"rf-text-sm rf-text-gray-600",children:"Solvers will appear here when the circuit runs. Solvers are used for tasks like component packing and autorouting."})]})})}):V.jsxs("div",{className:"rf-flex rf-h-full rf-overflow-hidden",children:[V.jsxs("div",{className:"rf-w-64 rf-border-r rf-border-gray-200 rf-overflow-y-auto rf-flex-shrink-0",children:[V.jsxs("div",{className:"rf-text-xs rf-font-semibold rf-text-gray-500 rf-px-3 rf-py-2 rf-bg-gray-50 rf-border-b rf-border-gray-200",children:[i.length," ",i.length===1?"Solver":"Solvers"]}),i.map(a=>{const A=o.get(a),c=e===a;return V.jsx("div",{className:`rf-px-3 rf-py-2 rf-cursor-pointer rf-border-b rf-border-gray-100 ${c?"rf-bg-blue-50 rf-border-l-2 rf-border-l-blue-500":"hover:rf-bg-gray-50"}`,onClick:()=>n(a),children:(()=>{const l=BXo(A.solverName);return V.jsxs("div",{className:"rf-flex rf-items-center rf-gap-2",children:[V.jsx(l,{className:"rf-w-4 rf-h-4 rf-text-blue-500 rf-flex-shrink-0"}),V.jsxs("div",{className:"rf-flex-1 rf-min-w-0",children:[V.jsx("div",{className:"rf-text-sm rf-font-medium rf-text-gray-800 rf-truncate",children:A.componentName}),V.jsx("div",{className:"rf-text-xs rf-text-gray-500 rf-truncate",children:A.solverName})]})]})})()},a)})]}),V.jsx("div",{className:"rf-flex-1 rf-overflow-hidden",children:r?s.instance?V.jsxs("div",{className:"rf-flex rf-h-full rf-flex-col rf-overflow-y-auto",children:[V.jsx(SXo,{solverEvent:r}),V.jsx("div",{className:"rf-min-h-0 rf-flex-1",children:V.jsx(Gx,{fallback:V.jsx("div",{className:"rf-p-4",children:V.jsxs("div",{className:"rf-bg-red-50 rf-rounded-md rf-border rf-border-red-200 rf-p-4",children:[V.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-text-red-800 rf-mb-2",children:"Error Loading Solver Debugger"}),V.jsxs("p",{className:"rf-text-sm rf-text-red-600",children:["Failed to render the solver debugger for"," ",r.solverName]})]})}),children:V.jsx(fXo,{solver:s.instance})})})]}):V.jsxs("div",{className:"rf-p-4",children:[V.jsxs("div",{className:"rf-mb-4",children:[V.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-text-gray-800",children:r.solverName}),V.jsxs("p",{className:"rf-text-sm rf-text-gray-500",children:["Component: ",r.componentName]})]}),s.error&&V.jsx("div",{className:`rf-rounded-md rf-border rf-p-4 rf-mb-4 ${s.classFound?"rf-bg-red-50 rf-border-red-200":"rf-bg-yellow-50 rf-border-yellow-200"}`,children:V.jsx("p",{className:`rf-text-sm ${s.classFound?"rf-text-red-700":"rf-text-yellow-700"}`,children:s.error})}),V.jsxs("div",{className:"rf-border rf-border-gray-200 rf-rounded-md rf-overflow-hidden",children:[V.jsxs("div",{className:"rf-px-3 rf-py-2 rf-bg-gray-50 rf-flex rf-items-center rf-justify-between rf-gap-2",children:[V.jsx("span",{className:"rf-text-sm rf-font-medium rf-text-gray-700",children:"Solver Parameters"}),V.jsxs("div",{className:"rf-flex rf-items-center rf-gap-1",children:[V.jsx(bXo,{solverEvent:r}),V.jsx(rA,{type:"button",variant:"ghost",size:"icon",className:"rf-h-8 rf-w-8","aria-label":"Download solver input JSON",title:"Download solver input JSON",onClick:()=>lOt(r),children:V.jsx(g8e,{className:"rf-w-4 rf-h-4"})})]})]}),V.jsx("div",{className:"rf-p-3 rf-bg-white rf-border-t rf-border-gray-200",children:V.jsx("pre",{className:"rf-text-xs rf-font-mono rf-text-gray-600 rf-whitespace-pre-wrap rf-overflow-x-auto",children:JSON.stringify(r.solverParams,null,2)})})]})]}):V.jsx("div",{className:"rf-flex rf-items-center rf-justify-center rf-h-full",children:V.jsx("p",{className:"rf-text-sm rf-text-gray-500",children:"Select a solver from the list to view details"})})})]})},gOt=({errorMessage:t,errorStack:e,circuitJsonErrors:n})=>{$.useEffect(()=>{if(t){const o=new Error(t);e&&(o.stack=e);try{RR.captureException(o)}catch{}}},[t,e]),$.useEffect(()=>{if(n&&n.length>0)for(const o of n){const i=new Error(o.message||"Circuit JSON Error");o.stack&&(i.stack=o.stack);try{RR.captureException(i,{error_type:o.type})}catch{}}},[n])},uOt=t=>{$.useEffect(()=>{try{Yro(t)}catch{}},[t.source,t.component,t.isWebEmbedded,t.activeTab])},hOt="0.0.2435",vXo={version:hOt},Pae=pIt()(IIt(t=>({lastRunEvalVersion:void 0,setLastRunEvalVersion:e=>{t({lastRunEvalVersion:e})}}),{name:"runframe-runner-store"})),PXo=t=>{const[e,n]=$.useState([]),[o,i]=$.useState(null),[r,s]=$.useState(""),[a,A]=lR("eval-version-selection",null),c=Pae(d=>d.setLastRunEvalVersion),l=Pae(d=>d.lastRunEvalVersion);return $.useEffect(()=>{t&&fetch("https://data.jsdelivr.com/v1/package/npm/@tscircuit/eval").then(d=>d.json()).then(d=>{if(Array.isArray(d?.versions)){let h=[...d.versions];d.tags?.latest&&(i(d.tags.latest),h=h.filter(_=>_!==d.tags.latest)),n(h)}}).catch(()=>{})},[t]),$.useEffect(()=>{t&&(a?(window.TSCIRCUIT_LATEST_EVAL_VERSION=a,c(a)):o&&(window.TSCIRCUIT_LATEST_EVAL_VERSION=o,c(o)))},[t,a,o]),{versions:$.useMemo(()=>e.filter(d=>d.includes(r)).slice(0,50),[e,r]),latestVersion:o,lastRunEvalVersion:l,search:r,setSearch:s,selectVersion:d=>{A(d),s("")}}},MXo=({snippetNames:t,onSelect:e,onCancel:n,isOpen:o})=>{const[i,r]=$.useState(""),[s,a]=$.useState("");if(!o)return null;const A=t.filter(g=>g.toLowerCase().includes(s.toLowerCase())),c=s&&!t.includes(s),l=g=>{g.key==="Enter"&&(A.length===1?r(A[0]):c&&r(s))};return V.jsx("div",{className:"rf-fixed rf-inset-0 rf-bg-black rf-bg-opacity-50 rf-flex rf-items-center rf-justify-center rf-z-[100]",children:V.jsxs("div",{className:"rf-bg-white rf-rounded-lg rf-p-6 rf-w-96",children:[V.jsx("h2",{className:"rf-text-lg rf-font-semibold rf-mb-4",children:"Select Snippet"}),V.jsx("input",{type:"text",className:"rf-w-full rf-px-4 rf-py-2 rf-border rf-rounded rf-mb-4",placeholder:"Search snippets or new snippet name...",value:s,onChange:g=>a(g.target.value),onKeyDown:l}),V.jsxs("div",{className:"rf-h-60 rf-overflow-y-auto",children:[A.map(g=>V.jsx("button",{type:"button",className:`w-full text-left px-4 py-2 rounded hover:bg-gray-100 ${i===g?"bg-blue-50":""}`,onClick:()=>r(g),children:g},g)),c&&V.jsxs("button",{type:"button",className:`w-full text-left px-4 py-2 rounded hover:bg-gray-100 text-blue-500 ${i===s?"bg-blue-50":""}`,onClick:()=>r(s),children:['Create new "',s,'"']})]}),V.jsxs("div",{className:"rf-mt-4 rf-flex rf-justify-end rf-gap-2",children:[V.jsx("button",{type:"button",className:"rf-px-4 rf-py-2 rf-text-gray-600 rf-hover:text-gray-800",onClick:n,children:"Cancel"}),V.jsx("button",{type:"button",className:"rf-px-4 rf-py-2 rf-bg-blue-500 rf-text-white rf-rounded rf-hover:bg-blue-600 rf-disabled:opacity-50",onClick:()=>i&&e(i),disabled:!i,children:i===s?`Create "${i}"`:`Save to ${i}`})]})]})})},wXo=t=>{const e=$.useRef(null),n=ju(o=>o.recentEvents);$.useEffect(()=>{if(n.length===0)return;const o=n[0];o.event_id!==e.current&&(t(o),e.current=o.event_id)},[n,t])};var NXo=Object.defineProperty,uE=(t,e)=>NXo(t,"name",{value:e,configurable:!0}),w7e="Dialog",[dOt,_Ot]=Y2(w7e),[RXo,gQ]=dOt(w7e),N7e=uE(t=>{const{__scopeDialog:e,children:n,open:o,defaultOpen:i,onOpenChange:r,modal:s=!0}=t,a=$.useRef(null),A=$.useRef(null),[c,l]=K4({prop:o,defaultProp:i??!1,onChange:r,caller:w7e}),[g,u]=$.useState(0),[d,h]=$.useState(0);return V.jsx(RXo,{scope:e,triggerRef:a,contentRef:A,contentId:Sp(),titleId:Sp(),descriptionId:Sp(),titlePresent:g>0,descriptionPresent:d>0,setTitleCount:u,setDescriptionCount:h,open:c,onOpenChange:l,onOpenToggle:$.useCallback(()=>l(_=>!_),[l]),modal:s,children:n})},"Dialog"),TXo="DialogTrigger",kXo=$.forwardRef(uE(function(e,n){const{__scopeDialog:o,...i}=e,r=gQ(TXo,o),s=Il(n,r.triggerRef);return V.jsx(qA.button,{type:"button","aria-haspopup":"dialog","aria-expanded":r.open,"aria-controls":r.open?r.contentId:void 0,"data-state":Nae(r.open),...i,ref:s,onClick:Pr(e.onClick,r.onOpenToggle)})},"DialogTrigger")),mOt="DialogPortal",[FXo,pOt]=dOt(mOt,{forceMount:void 0}),R7e=uE(t=>{const{__scopeDialog:e,forceMount:n,children:o,container:i}=t,r=gQ(mOt,e);return V.jsx(FXo,{scope:e,forceMount:n,children:$.Children.map(o,s=>V.jsx(bx,{present:n||r.open,children:V.jsx(L8e,{asChild:!0,container:i,children:s})}))})},"DialogPortal"),T7e="DialogOverlay",Mae=$.forwardRef(uE(function(e,n){const o=pOt(T7e,e.__scopeDialog),{forceMount:i=o.forceMount,...r}=e,s=gQ(T7e,e.__scopeDialog);return s.modal?V.jsx(bx,{present:i||s.open,children:V.jsx(HXo,{...r,ref:n})}):null},"DialogOverlay")),LXo=OS("DialogOverlay.RemoveScroll"),HXo=$.forwardRef(uE(function(e,n){const{__scopeDialog:o,...i}=e,r=gQ(T7e,o),s=RNt(),a=Il(n,s);return V.jsx(Mse,{as:LXo,allowPinchZoom:!0,shards:[r.contentRef],children:V.jsx(qA.div,{"data-state":Nae(r.open),...i,ref:a,style:{pointerEvents:"auto",...i.style}})})},"DialogOverlayImpl")),tz="DialogContent",wae=$.forwardRef(uE(function(e,n){const o=pOt(tz,e.__scopeDialog),{forceMount:i=o.forceMount,...r}=e,s=gQ(tz,e.__scopeDialog);return V.jsx(bx,{present:i||s.open,children:s.modal?V.jsx(GXo,{...r,ref:n}):V.jsx(OXo,{...r,ref:n})})},"DialogContent")),GXo=$.forwardRef(uE(function(e,n){const o=gQ(tz,e.__scopeDialog),i=$.useRef(null),r=Il(n,o.contentRef,i);return $.useEffect(()=>{const s=i.current;if(s)return G8e(s)},[]),V.jsx(IOt,{...e,ref:r,trapFocus:o.open,disableOutsidePointerEvents:o.open,onCloseAutoFocus:Pr(e.onCloseAutoFocus,s=>{s.preventDefault(),o.triggerRef.current?.focus()}),onPointerDownOutside:Pr(e.onPointerDownOutside,s=>{const a=s.detail.originalEvent,A=a.button===0&&a.ctrlKey===!0;(a.button===2||A)&&s.preventDefault()}),onFocusOutside:Pr(e.onFocusOutside,s=>s.preventDefault())})},"DialogContentModal")),OXo=$.forwardRef(uE(function(e,n){const o=gQ(tz,e.__scopeDialog),i=$.useRef(!1),r=$.useRef(!1);return V.jsx(IOt,{...e,ref:n,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:s=>{e.onCloseAutoFocus?.(s),s.defaultPrevented||(i.current||o.triggerRef.current?.focus(),s.preventDefault()),i.current=!1,r.current=!1},onInteractOutside:s=>{e.onInteractOutside?.(s),s.defaultPrevented||(i.current=!0,s.detail.originalEvent.type==="pointerdown"&&(r.current=!0));const a=s.target;o.triggerRef.current?.contains(a)&&s.preventDefault(),s.detail.originalEvent.type==="focusin"&&r.current&&s.preventDefault()}})},"DialogContentNonModal")),IOt=$.forwardRef(uE(function(e,n){const{__scopeDialog:o,trapFocus:i,onOpenAutoFocus:r,onCloseAutoFocus:s,...a}=e,A=gQ(tz,o);return bY(),V.jsx(V.Fragment,{children:V.jsx(C8e,{asChild:!0,loop:!0,trapped:i,onMountAutoFocus:r,onUnmountAutoFocus:s,children:V.jsx(cse,{role:"dialog",id:A.contentId,"aria-describedby":A.descriptionPresent?A.descriptionId:void 0,"aria-labelledby":A.titlePresent?A.titleId:void 0,"data-state":Nae(A.open),...a,ref:n,deferPointerDownOutside:!0,onDismiss:()=>A.onOpenChange(!1)})})})},"DialogContentImpl")),KXo="DialogTitle",k7e=$.forwardRef(uE(function(e,n){const{__scopeDialog:o,...i}=e,r=gQ(KXo,o),{setTitleCount:s}=r;return Ey(()=>(s(a=>a+1),()=>s(a=>a-1)),[s]),V.jsx(qA.h2,{id:r.titleId,...i,ref:n})},"DialogTitle")),UXo="DialogDescription",F7e=$.forwardRef(uE(function(e,n){const{__scopeDialog:o,...i}=e,r=gQ(UXo,o),{setDescriptionCount:s}=r;return Ey(()=>(s(a=>a+1),()=>s(a=>a-1)),[s]),V.jsx(qA.p,{id:r.descriptionId,...i,ref:n})},"DialogDescription")),YXo="DialogClose",fOt=$.forwardRef(uE(function(e,n){const{__scopeDialog:o,...i}=e,r=gQ(YXo,o);return V.jsx(qA.button,{type:"button",...i,ref:n,onClick:Pr(e.onClick,()=>r.onOpenChange(!1))})},"DialogClose"));function Nae(t){return t?"open":"closed"}uE(Nae,"getState");var zXo=Object.defineProperty,F5=(t,e)=>zXo(t,"name",{value:e,configurable:!0}),VXo="AlertDialog",[JXo,mAi]=Y2(VXo,[_Ot]),L5=_Ot(),qXo=F5(t=>{const{__scopeAlertDialog:e,...n}=t,o=L5(e);return V.jsx(N7e,{...o,...n,modal:!0})},"AlertDialog");$.forwardRef(F5(function(e,n){const{__scopeAlertDialog:o,...i}=e,r=L5(o);return V.jsx(kXo,{...r,...i,ref:n})},"AlertDialogTrigger"));var WXo=F5(t=>{const{__scopeAlertDialog:e,...n}=t,o=L5(e);return V.jsx(R7e,{...o,...n})},"AlertDialogPortal"),jXo=$.forwardRef(F5(function(e,n){const{__scopeAlertDialog:o,...i}=e,r=L5(o);return V.jsx(Mae,{...r,...i,ref:n})},"AlertDialogOverlay")),XXo="AlertDialogContent",[$Xo,ZXo]=JXo(XXo),e$o=$.forwardRef(F5(function(e,n){const{__scopeAlertDialog:o,children:i,...r}=e,s=L5(o),a=$.useRef(null),A=Il(n,a),c=$.useRef(null);return V.jsx($Xo,{scope:o,cancelRef:c,children:V.jsx(wae,{role:"alertdialog",...s,...r,ref:A,onOpenAutoFocus:Pr(r.onOpenAutoFocus,l=>{l.preventDefault(),c.current?.focus({preventScroll:!0})}),onPointerDownOutside:l=>l.preventDefault(),onInteractOutside:l=>l.preventDefault(),children:i})})},"AlertDialogContent")),t$o=$.forwardRef(F5(function(e,n){const{__scopeAlertDialog:o,...i}=e,r=L5(o);return V.jsx(k7e,{...r,...i,ref:n})},"AlertDialogTitle")),n$o=$.forwardRef(F5(function(e,n){const{__scopeAlertDialog:o,...i}=e,r=L5(o);return V.jsx(F7e,{...r,...i,ref:n})},"AlertDialogDescription")),o$o=$.forwardRef(F5(function(e,n){const{__scopeAlertDialog:o,...i}=e,r=L5(o);return V.jsx(fOt,{...r,...i,ref:n})},"AlertDialogAction")),i$o="AlertDialogCancel",r$o=$.forwardRef(F5(function(e,n){const{__scopeAlertDialog:o,...i}=e,{cancelRef:r}=ZXo(i$o,o),s=L5(o),a=Il(n,r);return V.jsx(fOt,{...s,...i,ref:a})},"AlertDialogCancel")),s$o=qXo,a$o=WXo,COt=jXo,yOt=e$o,EOt=o$o,xOt=r$o,BOt=t$o,QOt=n$o;const SOt=s$o,A$o=a$o,bOt=$.forwardRef(({className:t,...e},n)=>V.jsx(COt,{className:ji("rf-fixed rf-inset-0 rf-z-50 rf-bg-black/80 data-[state=open]:rf-animate-in data-[state=closed]:rf-animate-out data-[state=closed]:rf-fade-out-0 data-[state=open]:rf-fade-in-0",t),...e,ref:n}));bOt.displayName=COt.displayName;const L7e=$.forwardRef(({className:t,...e},n)=>V.jsxs(A$o,{children:[V.jsx(bOt,{}),V.jsx(yOt,{ref:n,className:ji("rf-fixed rf-left-[50%] rf-top-[50%] rf-z-50 rf-grid rf-w-full rf-max-w-lg rf-translate-x-[-50%] rf-translate-y-[-50%] rf-gap-4 rf-border rf-border-zinc-200 rf-bg-white rf-p-6 rf-shadow-lg rf-duration-200 data-[state=open]:rf-animate-in data-[state=closed]:rf-animate-out data-[state=closed]:rf-fade-out-0 data-[state=open]:rf-fade-in-0 data-[state=closed]:rf-zoom-out-95 data-[state=open]:rf-zoom-in-95 data-[state=closed]:rf-slide-out-to-left-1/2 data-[state=closed]:rf-slide-out-to-top-[48%] data-[state=open]:rf-slide-in-from-left-1/2 data-[state=open]:rf-slide-in-from-top-[48%] sm:rf-rounded-lg dark:rf-border-zinc-800 dark:rf-bg-zinc-950",t),...e})]}));L7e.displayName=yOt.displayName;const H7e=({className:t,...e})=>V.jsx("div",{className:ji("rf-flex rf-flex-col rf-space-y-2 rf-text-center sm:rf-text-left",t),...e});H7e.displayName="AlertDialogHeader";const G7e=({className:t,...e})=>V.jsx("div",{className:ji("rf-flex rf-flex-col-reverse sm:rf-flex-row sm:rf-justify-end sm:rf-space-x-2",t),...e});G7e.displayName="AlertDialogFooter";const O7e=$.forwardRef(({className:t,...e},n)=>V.jsx(BOt,{ref:n,className:ji("rf-text-lg rf-font-semibold",t),...e}));O7e.displayName=BOt.displayName;const K7e=$.forwardRef(({className:t,...e},n)=>V.jsx(QOt,{ref:n,className:ji("rf-text-sm rf-text-zinc-500 dark:rf-text-zinc-400",t),...e}));K7e.displayName=QOt.displayName;const c$o=$.forwardRef(({className:t,...e},n)=>V.jsx(EOt,{ref:n,className:ji(Qk(),t),...e}));c$o.displayName=EOt.displayName;const U7e=$.forwardRef(({className:t,...e},n)=>V.jsx(xOt,{ref:n,className:ji(Qk({variant:"outline"}),"rf-mt-2 sm:rf-mt-0",t),...e}));U7e.displayName=xOt.displayName;var l$o=Object.defineProperty,H5=(t,e)=>l$o(t,"name",{value:e,configurable:!0}),Y7e="Checkbox",[g$o,pAi]=Y2(Y7e),[u$o,z7e]=g$o(Y7e);function DOt(t){const{__scopeCheckbox:e,checked:n,children:o,defaultChecked:i,disabled:r,form:s,name:a,onCheckedChange:A,required:c,value:l="on",internal_do_not_use_render:g}=t,[u,d]=K4({prop:n,defaultProp:i??!1,onChange:A,caller:Y7e}),[h,_]=$.useState(null),[m,p]=$.useState(null),I=$.useRef(!1),[f,C]=$.useReducer(B=>B+1,0),y=h?!!s||!!h.closest("form"):!0,E={checked:u,disabled:r,setChecked:d,control:h,setControl:_,name:a,form:s,value:l,hasConsumerStoppedPropagationRef:I,userInteractionCount:f,onUserInteraction:C,required:c,defaultChecked:G5(i)?!1:i,isFormControl:y,bubbleInput:m,setBubbleInput:p};return V.jsx(u$o,{scope:e,...E,children:POt(g)?g(E):o})}H5(DOt,"CheckboxProvider");var h$o="CheckboxTrigger",d$o=$.forwardRef(H5(function({__scopeCheckbox:e,onKeyDown:n,onClick:o,...i},r){const{control:s,value:a,disabled:A,checked:c,required:l,setControl:g,setChecked:u,hasConsumerStoppedPropagationRef:d,onUserInteraction:h,isFormControl:_,bubbleInput:m}=z7e(h$o,e),p=Il(r,g),I=$.useRef(c);return $.useEffect(()=>{const f=s?.form;if(f){const C=H5(()=>u(I.current),"reset");return f.addEventListener("reset",C),()=>f.removeEventListener("reset",C)}},[s,u]),V.jsx(qA.button,{type:"button",role:"checkbox","aria-checked":G5(c)?"mixed":c,"aria-required":l,"data-state":V7e(c),"data-disabled":A?"":void 0,disabled:A,value:a,...i,ref:p,onKeyDown:Pr(n,f=>{f.key==="Enter"&&f.preventDefault()}),onClick:Pr(o,f=>{h(),u(C=>G5(C)?!0:!C),m&&_&&(d.current=f.isPropagationStopped(),d.current||f.stopPropagation())})})},"CheckboxTrigger")),vOt=$.forwardRef(H5(function(e,n){const{__scopeCheckbox:o,name:i,checked:r,defaultChecked:s,required:a,disabled:A,value:c,onCheckedChange:l,form:g,...u}=e;return V.jsx(DOt,{__scopeCheckbox:o,checked:r,defaultChecked:s,disabled:A,required:a,onCheckedChange:l,name:i,form:g,value:c,internal_do_not_use_render:({isFormControl:d})=>V.jsxs(V.Fragment,{children:[V.jsx(d$o,{...u,ref:n,__scopeCheckbox:o}),d&&V.jsx(I$o,{__scopeCheckbox:o})]})})},"Checkbox")),_$o="CheckboxIndicator",m$o=$.forwardRef(H5(function(e,n){const{__scopeCheckbox:o,forceMount:i,...r}=e,s=z7e(_$o,o);return V.jsx(bx,{present:i||G5(s.checked)||s.checked===!0,children:V.jsx(qA.span,{"data-state":V7e(s.checked),"data-disabled":s.disabled?"":void 0,...r,ref:n,style:{pointerEvents:"none",...e.style}})})},"CheckboxIndicator")),p$o="CheckboxBubbleInput",I$o=$.forwardRef(H5(function({__scopeCheckbox:e,onClick:n,...o},i){const{control:r,hasConsumerStoppedPropagationRef:s,userInteractionCount:a,checked:A,defaultChecked:c,required:l,disabled:g,name:u,value:d,form:h,bubbleInput:_,setBubbleInput:m}=z7e(p$o,e),p=Il(i,m),I=T8e(r),f=$.useRef(!1),C=$.useRef(A),y=$.useRef(a);$.useEffect(()=>{const B=_;if(!B)return;const Q=window.HTMLInputElement.prototype,D=Object.getOwnPropertyDescriptor(Q,"checked").set,R=a!==y.current;y.current=a;const w=C.current!==A;C.current=A;const H=!(R&&s.current);if(w&&D){f.current=!R;const G=new Event("click",{bubbles:H});B.indeterminate=G5(A),D.call(B,G5(A)?!1:A),B.dispatchEvent(G),f.current=!1}},[_,A,s,a]);const E=$.useRef(G5(A)?!1:A);return V.jsx(qA.input,{type:"checkbox","aria-hidden":!0,defaultChecked:c??E.current,required:l,disabled:g,name:u,value:d,form:h,...o,tabIndex:-1,ref:p,onClick:Pr(n,B=>{f.current&&B.stopPropagation()}),style:{...o.style,...I,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})},"CheckboxBubbleInput"));function POt(t){return typeof t=="function"}H5(POt,"isFunction");function G5(t){return t==="indeterminate"}H5(G5,"isIndeterminate");function V7e(t){return G5(t)?"indeterminate":t?"checked":"unchecked"}H5(V7e,"getState");const nz=$.forwardRef(({className:t,...e},n)=>V.jsx(vOt,{ref:n,className:ji("rf-peer rf-h-4 rf-w-4 rf-shrink-0 rf-rounded-sm rf-border rf-border-zinc-200 rf-border-zinc-900 rf-shadow focus-visible:rf-outline-none focus-visible:rf-ring-1 focus-visible:rf-ring-zinc-950 disabled:rf-cursor-not-allowed disabled:rf-opacity-50 data-[state=checked]:rf-bg-zinc-900 data-[state=checked]:rf-text-zinc-50 dark:rf-border-zinc-800 dark:rf-border-zinc-50 dark:focus-visible:rf-ring-zinc-300 dark:data-[state=checked]:rf-bg-zinc-50 dark:data-[state=checked]:rf-text-zinc-900",t),...e,children:V.jsx(m$o,{className:ji("rf-flex rf-items-center rf-justify-center rf-text-current"),children:V.jsx(W6,{className:"rf-h-4 rf-w-4"})})}));nz.displayName=vOt.displayName;const jk=N7e,f$o=R7e,MOt=$.forwardRef(({className:t,...e},n)=>V.jsx(Mae,{className:ji("rf-fixed rf-inset-0 rf-z-50 rf-bg-black/80 data-[state=open]:rf-animate-in data-[state=closed]:rf-animate-out data-[state=closed]:rf-fade-out-0 data-[state=open]:rf-fade-in-0",t),...e,ref:n}));MOt.displayName=Mae.displayName;const r8=$.forwardRef(({className:t,children:e,showOverlay:n=!0,...o},i)=>V.jsxs(f$o,{children:[V.jsx(MOt,{className:ji(n?"":"rf-hidden")}),V.jsx(wae,{ref:i,className:ji("rf-fixed rf-left-[50%] rf-top-[50%] rf-z-50 rf-grid rf-w-full rf-max-w-lg rf-translate-x-[-50%] rf-translate-y-[-50%] rf-gap-4 rf-border rf-border-zinc-200 rf-bg-white rf-p-6 rf-shadow-lg rf-duration-200 data-[state=open]:rf-animate-in data-[state=closed]:rf-animate-out data-[state=closed]:rf-fade-out-0 data-[state=open]:rf-fade-in-0 data-[state=closed]:rf-zoom-out-95 data-[state=open]:rf-zoom-in-95 data-[state=closed]:rf-slide-out-to-left-1/2 data-[state=closed]:rf-slide-out-to-top-[48%] data-[state=open]:rf-slide-in-from-left-1/2 data-[state=open]:rf-slide-in-from-top-[48%] sm:rf-rounded-lg dark:rf-border-zinc-800 dark:rf-bg-zinc-950",t),...o,children:e})]}));r8.displayName=wae.displayName;const s8=({className:t,...e})=>V.jsx("div",{className:ji("rf-flex rf-flex-col rf-space-y-2 rf-text-center sm:rf-text-left",t),...e});s8.displayName="DialogHeader";const oz=({className:t,...e})=>V.jsx("div",{className:ji("rf-flex rf-flex-col-reverse sm:rf-flex-row sm:rf-justify-end sm:rf-space-x-2",t),...e});oz.displayName="DialogFooter";const a8=$.forwardRef(({className:t,...e},n)=>V.jsx(k7e,{ref:n,className:ji("rf-text-lg rf-font-semibold",t),...e}));a8.displayName=k7e.displayName;const Xk=$.forwardRef(({className:t,...e},n)=>V.jsx(F7e,{ref:n,className:ji("rf-text-sm rf-text-zinc-500 dark:rf-text-zinc-400",t),...e}));Xk.displayName=F7e.displayName;const Rae={"tscircuit.com":{label:"tscircuit.com",placeholder:"Search tscircuit packages...",emptyMessage:"No packages found"},jlcpcb:{label:"JLCPCB Parts",placeholder:"Search JLCPCB parts (e.g. C14663)...",emptyMessage:"No parts found"},kicad:{label:"KiCad Footprints",placeholder:"Search KiCad footprints...",emptyMessage:"No footprints found"}},C$o="https://cdn.jsdelivr.net/npm/easyeda@latest/dist/browser/index.js";let J7e=null;const q7e=async()=>(J7e||(J7e=import(C$o)),J7e),y$o=t=>(e,n)=>{const o=new Headers(n?.headers),i={};return o.forEach((r,s)=>{i[s]=r}),fetch(`${t?.apiBase??Hf}/proxy`,{...n,headers:{...i,"X-Target-Url":e.toString(),"X-Sender-Origin":i.origin??"","X-Sender-Host":i.host??"https://easyeda.com","X-Sender-Referer":i.referer??"","X-Sender-User-Agent":i["user-agent"]??"","X-Sender-Cookie":i.cookie??"",authority:i.authority??"","content-type":i["content-type"]??"",...t?.headers}})},E$o=async(t,e=10)=>{const n=encodeURIComponent(t),o=await fetch(`https://jlcsearch.tscircuit.com/api/search?limit=${e}&q=${n}`);if(!o.ok)throw new Error(`JLCPCB API error: ${o.status}`);return(await o.json()).components??[]},x$o=t=>({lcscId:t.lcsc,manufacturer:t.mfr,description:t.description,partNumber:`C${t.lcsc}`,package:t.package,price:t.price,stock:t.stock,isBasic:t.is_basic}),wOt=async(t,e)=>{const{fetchEasyEDAComponent:n}=await q7e();return n(t,{fetch:y$o(e),includeModelMetadata:e?.includeModelMetadata})},B$o=async(t,e)=>{const{convertRawEasyToTsx:n}=await q7e(),o=await wOt(t,e);return n({rawEasy:o})},Q$o=async(t,e)=>{const{EasyEdaJsonSchema:n,convertEasyEdaJsonToCircuitJson:o}=await q7e(),i=await wOt(t,{...e,includeModelMetadata:!1}),r=n.parse(i);return o(r,{shouldRecenter:!0,showDesignator:!0,useModelCdn:!1})};function hM(t){return Array.isArray?Array.isArray(t):ROt(t)==="[object Array]"}function S$o(t){if(typeof t=="string")return t;if(typeof t=="bigint")return t.toString();const e=t+"";return e=="0"&&1/t==-1/0?"-0":e}function W7e(t){return t==null?"":S$o(t)}function $f(t){return typeof t=="string"}function Tae(t){return typeof t=="number"}function b$o(t){return t===!0||t===!1||D$o(t)&&ROt(t)=="[object Boolean]"}function NOt(t){return typeof t=="object"}function D$o(t){return NOt(t)&&t!==null}function hE(t){return t!=null}function kae(t){return!t.trim().length}function ROt(t){return t==null?t===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(t)}const v$o="Incorrect 'index' type",j7e="Invalid doc index: must be a non-negative integer within the bounds of the docs array",P$o=t=>`Invalid value for key ${t}`,M$o=t=>`Pattern length exceeds max of ${t}.`,w$o=t=>`Missing ${t} property in key`,N$o=t=>`Property 'weight' in key '${t}' must be a positive integer`,R$o="Fuse.match does not support useTokenSearch: token search requires corpus-level statistics (df, fieldCount) that a one-off string comparison does not have. Use new Fuse(...).search(...) instead.",TOt=Object.prototype.hasOwnProperty;var T$o=class{constructor(t){this._keys=[],this._keyMap={};let e=0;t.forEach(n=>{const o=kOt(n);this._keys.push(o),this._keyMap[o.id]=o,e+=o.weight}),this._keys.forEach(n=>{n.weight/=e})}get(t){return this._keyMap[t]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}};function kOt(t){let e=null,n=null,o=null,i=1,r=null;if($f(t)||hM(t))o=t,e=FOt(t),n=Fae(t);else{if(!TOt.call(t,"name"))throw new Error(w$o("name"));const s=t.name;if(o=s,TOt.call(t,"weight")&&t.weight!==void 0&&(i=t.weight,i<=0))throw new Error(N$o(Fae(s)));e=FOt(s),n=Fae(s),r=t.getFn??null}return{path:e,id:n,weight:i,src:o,getFn:r}}function FOt(t){return hM(t)?t:t.split(".")}function Fae(t){return hM(t)?t.join("."):t}function k$o(t,e){const n=[];let o=!1;const i=(r,s,a,A)=>{if(hE(r))if(!s[a])n.push(A!==void 0?{v:r,i:A}:r);else{const c=r[s[a]];if(!hE(c))return;if(a===s.length-1&&($f(c)||Tae(c)||b$o(c)||typeof c=="bigint"))n.push(A!==void 0?{v:W7e(c),i:A}:W7e(c));else if(hM(c)){o=!0;for(let l=0,g=c.length;l<g;l+=1)i(c[l],s,a+1,l)}else s.length&&i(c,s,a+1,A)}};return i(t,$f(e)?e.split("."):e,0),o?n:n[0]}const Ts=Object.freeze({...{isCaseSensitive:!1,ignoreDiacritics:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:(t,e)=>t.score===e.score?t.idx<e.idx?-1:1:t.score<e.score?-1:1},...{includeMatches:!1,findAllMatches:!1,minMatchCharLength:1},...{location:0,threshold:.6,distance:100},...{useExtendedSearch:!1,useTokenSearch:!1,tokenize:void 0,tokenMatch:"any",getFn:k$o,ignoreLocation:!1,ignoreFieldNorm:!1,fieldNormWeight:1}});function F$o(t){return t>=9&&t<=13||t===32||t===160}function L$o(t=1,e=3){const n=new Map,o=Math.pow(10,e);return{get(i){let r=0,s=!1;for(let A=0;A<i.length;A++)F$o(i.charCodeAt(A))?s=!1:s||(r++,s=!0);if(r===0&&(r=1),n.has(r))return n.get(r);const a=Math.round(o/Math.pow(r,.5*t))/o;return n.set(r,a),a},clear(){n.clear()}}}var X7e=class{constructor({getFn:t=Ts.getFn,fieldNormWeight:e=Ts.fieldNormWeight}={}){this.norm=L$o(e,3),this.getFn=t,this.isCreated=!1,this.docs=[],this.keys=[],this._keysMap={},this.setIndexRecords()}setSources(t=[]){this.docs=t}setIndexRecords(t=[]){this.records=t}setKeys(t=[]){this.keys=t,this._keysMap={},t.forEach((e,n)=>{this._keysMap[e.id]=n})}create(){if(this.isCreated||!this.docs.length)return;this.isCreated=!0;const t=this.docs.length;this.records=new Array(t);let e=0;if($f(this.docs[0]))for(let n=0;n<t;n++){const o=this._createStringRecord(this.docs[n],n);o&&(this.records[e++]=o)}else for(let n=0;n<t;n++)this.records[e++]=this._createObjectRecord(this.docs[n],n);this.records.length=e,this.norm.clear()}add(t,e){if(!Number.isInteger(e)||e<0)throw new Error(j7e);if($f(t)){const o=this._createStringRecord(t,e);return o&&this.records.push(o),o}const n=this._createObjectRecord(t,e);return this.records.push(n),n}removeAt(t){if(!Number.isInteger(t)||t<0)throw new Error(j7e);for(let e=0,n=this.records.length;e<n;e+=1)if(this.records[e].i===t){this.records.splice(e,1);break}for(let e=0,n=this.records.length;e<n;e+=1)this.records[e].i>t&&(this.records[e].i-=1)}removeAll(t){const e=new Set;for(const o of t)Number.isInteger(o)&&o>=0&&e.add(o);if(e.size===0)return;this.records=this.records.filter(o=>!e.has(o.i));const n=Array.from(e).sort((o,i)=>o-i);for(const o of this.records){let i=0,r=n.length;for(;i<r;){const s=i+r>>>1;n[s]<o.i?i=s+1:r=s}o.i-=i}}getValueForItemAtKeyId(t,e){return t[this._keysMap[e]]}size(){return this.records.length}_createStringRecord(t,e){return!hE(t)||kae(t)?null:{v:t,i:e,n:this.norm.get(t)}}_createObjectRecord(t,e){const n={i:e,$:{}};for(let o=0,i=this.keys.length;o<i;o++){const r=this.keys[o],s=r.getFn?r.getFn(t):this.getFn(t,r.path);if(hE(s)){if(hM(s)){const a=[];for(let A=0,c=s.length;A<c;A+=1){const l=s[A];if(hE(l)){if($f(l)){if(!kae(l)){const g={v:l,i:A,n:this.norm.get(l)};a.push(g)}}else if(hE(l.v)){const g=$f(l.v)?l.v:W7e(l.v);if(!kae(g)){const u={v:g,i:l.i,n:this.norm.get(g)};a.push(u)}}}}n.$[o]=a}else if($f(s)&&!kae(s)){const a={v:s,n:this.norm.get(s)};n.$[o]=a}}}return n}toJSON(){return{keys:this.keys.map(({getFn:t,...e})=>e),records:this.records}}};function LOt(t,e,{getFn:n=Ts.getFn,fieldNormWeight:o=Ts.fieldNormWeight}={}){const i=new X7e({getFn:n,fieldNormWeight:o});return i.setKeys(t.map(kOt)),i.setSources(e),i.create(),i}function H$o(t,{getFn:e=Ts.getFn,fieldNormWeight:n=Ts.fieldNormWeight}={}){const{keys:o,records:i}=t,r=new X7e({getFn:e,fieldNormWeight:n});return r.setKeys(o),r.setIndexRecords(i),r}function G$o(t=[],e=Ts.minMatchCharLength){const n=[];let o=-1,i=-1,r=0;for(let s=t.length;r<s;r+=1){const a=t[r];a&&o===-1?o=r:!a&&o!==-1&&(i=r-1,i-o+1>=e&&n.push([o,i]),o=-1)}return t[r-1]&&r-o>=e&&n.push([o,r-1]),n}function O$o(t,e,n,{location:o=Ts.location,distance:i=Ts.distance,threshold:r=Ts.threshold,findAllMatches:s=Ts.findAllMatches,minMatchCharLength:a=Ts.minMatchCharLength,includeMatches:A=Ts.includeMatches,ignoreLocation:c=Ts.ignoreLocation}={}){if(e.length>32)throw new Error(M$o(32));const l=e.length,g=t.length,u=Math.max(0,Math.min(o,g));let d=r,h=u;const _=(b,D)=>{const R=b/l;if(c)return R;const w=Math.abs(u-D);return i?R+w/i:w?1:R},m=a>1||A,p=m?Array(g):[];let I;for(;(I=t.indexOf(e,h))>-1;){const b=_(0,I);if(d=Math.min(b,d),h=I+l,m){let D=0;for(;D<l;)p[I+D]=1,D+=1}}h=-1;let f=[],C=1,y=0,E=l+g;const B=1<<l-1;for(let b=0;b<l;b+=1){let D=0,R=E;for(;D<R;)_(b,u+R)<=d?D=R:E=R,R=Math.floor((E-D)/2+D);E=R;let w=Math.max(1,u-R+1);const H=s?g:Math.min(u+R,g)+l,G=Array(H+2);G[H+1]=(1<<b)-1;for(let O=H;O>=w;O-=1){const U=O-1,W=n[t[U]];if(G[O]=(G[O+1]<<1|1)&W,b&&(G[O]|=(f[O+1]|f[O])<<1|1|f[O+1]),G[O]&B&&(C=_(b,U),C<=d)){if(d=C,h=U,y=b,h<=u)break;w=Math.max(1,2*u-h)}}if(_(b+1,u)>d)break;f=G}if(m&&h>=0){const b=Math.min(g-1,h+l-1+y);for(let D=h;D<=b;D+=1)n[t[D]]&&(p[D]=1)}const Q={isMatch:h>=0,score:Math.max(.001,C)};if(m){const b=G$o(p,a);b.length?A&&(Q.indices=b):Q.isMatch=!1}return Q}function K$o(t){const e={};for(let n=0,o=t.length;n<o;n+=1){const i=t.charAt(n);e[i]=(e[i]||0)|1<<o-n-1}return e}function $7e(t){if(t.length<=1)return t;t.sort((n,o)=>n[0]-o[0]||n[1]-o[1]);const e=[t[0]];for(let n=1,o=t.length;n<o;n+=1){const i=e[e.length-1],r=t[n];r[0]<=i[1]+1?i[1]=Math.max(i[1],r[1]):e.push(r)}return e}const HOt={ł:"l",Ł:"L",đ:"d",Đ:"D",ø:"o",Ø:"O",ħ:"h",Ħ:"H",ŧ:"t",Ŧ:"T",ı:"i",ß:"ss"},U$o=new RegExp("["+Object.keys(HOt).join("")+"]","g"),iz=typeof String.prototype.normalize=="function"?t=>t.normalize("NFD").replace(/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C04\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F]/g,"").replace(U$o,e=>HOt[e]):t=>t;var Z7e=class{constructor(t,{location:e=Ts.location,threshold:n=Ts.threshold,distance:o=Ts.distance,includeMatches:i=Ts.includeMatches,findAllMatches:r=Ts.findAllMatches,minMatchCharLength:s=Ts.minMatchCharLength,isCaseSensitive:a=Ts.isCaseSensitive,ignoreDiacritics:A=Ts.ignoreDiacritics,ignoreLocation:c=Ts.ignoreLocation}={}){if(this.options={location:e,threshold:n,distance:o,includeMatches:i,findAllMatches:r,minMatchCharLength:s,isCaseSensitive:a,ignoreDiacritics:A,ignoreLocation:c},t=a?t:t.toLowerCase(),t=A?iz(t):t,this.pattern=t,this.chunks=[],!this.pattern.length)return;const l=(u,d)=>{this.chunks.push({pattern:u,alphabet:K$o(u),startIndex:d})},g=this.pattern.length;if(g>32){let u=0;const d=g%32,h=g-d;for(;u<h;)l(this.pattern.substr(u,32),u),u+=32;if(d){const _=g-32;l(this.pattern.substr(_),_)}}else l(this.pattern,0)}searchIn(t){const{isCaseSensitive:e,ignoreDiacritics:n,includeMatches:o}=this.options;if(t=e?t:t.toLowerCase(),t=n?iz(t):t,this.pattern===t){if(t.length<this.options.minMatchCharLength)return{isMatch:!1,score:1};const h={isMatch:!0,score:0};return o&&(h.indices=[[0,t.length-1]]),h}const{location:i,distance:r,threshold:s,findAllMatches:a,minMatchCharLength:A,ignoreLocation:c}=this.options,l=[];let g=0,u=!1;this.chunks.forEach(({pattern:h,alphabet:_,startIndex:m})=>{const{isMatch:p,score:I,indices:f}=O$o(t,h,_,{location:i+m,distance:r,threshold:s,findAllMatches:a,minMatchCharLength:A,includeMatches:o,ignoreLocation:c});p&&(u=!0),g+=I,p&&f&&l.push(...f)});const d={isMatch:u,score:u?g/this.chunks.length:1};return u&&o&&(d.indices=$7e(l)),d}};const Y$o=new Set(["fuzzy","include"]);function z$o(t){return t.startsWith("inverse")}const eNe=[{type:"exact",multiRegex:/^="(.*)"$/,singleRegex:/^=(.*)$/,create:t=>({type:"exact",search(e){const n=e===t;return{isMatch:n,score:n?0:1,indices:[0,t.length-1]}}})},{type:"include",multiRegex:/^'"(.*)"$/,singleRegex:/^'(.*)$/,create:t=>({type:"include",search(e){let n=0,o;const i=[],r=t.length;for(;(o=e.indexOf(t,n))>-1;)n=o+r,i.push([o,n-1]);const s=!!i.length;return{isMatch:s,score:s?0:1,indices:i}}})},{type:"prefix-exact",multiRegex:/^\^"(.*)"$/,singleRegex:/^\^(.*)$/,create:t=>({type:"prefix-exact",search(e){const n=e.startsWith(t);return{isMatch:n,score:n?0:1,indices:[0,t.length-1]}}})},{type:"inverse-prefix-exact",multiRegex:/^!\^"(.*)"$/,singleRegex:/^!\^(.*)$/,create:t=>({type:"inverse-prefix-exact",search(e){const n=!e.startsWith(t);return{isMatch:n,score:n?0:1,indices:[0,e.length-1]}}})},{type:"inverse-suffix-exact",multiRegex:/^!"(.*)"\$$/,singleRegex:/^!(.*)\$$/,create:t=>({type:"inverse-suffix-exact",search(e){const n=!e.endsWith(t);return{isMatch:n,score:n?0:1,indices:[0,e.length-1]}}})},{type:"suffix-exact",multiRegex:/^"(.*)"\$$/,singleRegex:/^(.*)\$$/,create:t=>({type:"suffix-exact",search(e){const n=e.endsWith(t);return{isMatch:n,score:n?0:1,indices:[e.length-t.length,e.length-1]}}})},{type:"inverse-exact",multiRegex:/^!"(.*)"$/,singleRegex:/^!(.*)$/,create:t=>({type:"inverse-exact",search(e){const n=e.indexOf(t)===-1;return{isMatch:n,score:n?0:1,indices:[0,e.length-1]}}})},{type:"fuzzy",multiRegex:/^"(.*)"$/,singleRegex:/^(.*)$/,create:(t,e={})=>{const n=new Z7e(t,{location:e.location??Ts.location,threshold:e.threshold??Ts.threshold,distance:e.distance??Ts.distance,includeMatches:e.includeMatches??Ts.includeMatches,findAllMatches:e.findAllMatches??Ts.findAllMatches,minMatchCharLength:e.minMatchCharLength??Ts.minMatchCharLength,isCaseSensitive:e.isCaseSensitive??Ts.isCaseSensitive,ignoreDiacritics:e.ignoreDiacritics??Ts.ignoreDiacritics,ignoreLocation:e.ignoreLocation??Ts.ignoreLocation});return{type:"fuzzy",search(o){return n.searchIn(o)}}}}],GOt=eNe.length,V$o="\0",J$o="|";function q$o(t){const e=[],n=t.length;let o=0;for(;o<n;){for(;o<n&&t[o]===" ";)o++;if(o>=n)break;let i=o;for(;i<n&&t[i]!==" "&&t[i]!=='"';)i++;if(i<n&&t[i]==='"'){for(i++;i<n;){if(t[i]==='"'){const r=i+1;if(r>=n||t[r]===" "){i++;break}if(t[r]==="$"&&(r+1>=n||t[r+1]===" ")){i+=2;break}}i++}e.push(t.substring(o,i)),o=i}else{for(;i<n&&t[i]!==" ";)i++;e.push(t.substring(o,i)),o=i}}return e}function OOt(t,e){const n=t.match(e);return n?n[1]:null}function W$o(t,e={}){return t.replace(/\\\|/g,V$o).split(J$o).map(n=>{const o=q$o(n.replace(/\u0000/g,"|").trim()).filter(r=>r&&!!r.trim()),i=[];for(let r=0,s=o.length;r<s;r+=1){const a=o[r];let A=!1,c=-1;for(;!A&&++c<GOt;){const l=eNe[c],g=OOt(a,l.multiRegex);g&&(i.push(l.create(g,e)),A=!0)}if(!A)for(c=-1;++c<GOt;){const l=eNe[c],g=OOt(a,l.singleRegex);if(g){i.push(l.create(g,e));break}}}return i})}var j$o=class{constructor(t,{isCaseSensitive:e=Ts.isCaseSensitive,ignoreDiacritics:n=Ts.ignoreDiacritics,includeMatches:o=Ts.includeMatches,minMatchCharLength:i=Ts.minMatchCharLength,ignoreLocation:r=Ts.ignoreLocation,findAllMatches:s=Ts.findAllMatches,location:a=Ts.location,threshold:A=Ts.threshold,distance:c=Ts.distance}={}){this.query=null,this.options={isCaseSensitive:e,ignoreDiacritics:n,includeMatches:o,minMatchCharLength:i,findAllMatches:s,ignoreLocation:r,location:a,threshold:A,distance:c},t=e?t:t.toLowerCase(),t=n?iz(t):t,this.pattern=t,this.query=W$o(this.pattern,this.options)}static condition(t,e){return e.useExtendedSearch}searchIn(t){const e=this.query;if(!e)return{isMatch:!1,score:1};const{includeMatches:n,isCaseSensitive:o,ignoreDiacritics:i}=this.options;t=o?t:t.toLowerCase(),t=i?iz(t):t;let r=0;const s=[];let a=0,A=!1;for(let c=0,l=e.length;c<l;c+=1){const g=e[c];s.length=0,r=0,A=!1;for(let u=0,d=g.length;u<d;u+=1){const h=g[u],{isMatch:_,indices:m,score:p}=h.search(t);if(_)r+=1,a+=p,z$o(h.type)&&(A=!0),n&&(Y$o.has(h.type)?s.push(...m):s.push(m));else{a=0,r=0,s.length=0,A=!1;break}}if(r){const u={isMatch:!0,score:a/r};return A&&(u.hasInverse=!0),n&&(u.indices=$7e(s)),u}}return{isMatch:!1,score:1}}};const tNe=[];function nNe(...t){tNe.push(...t)}function Lae(t,e){for(let n=0,o=tNe.length;n<o;n+=1){const i=tNe[n];if(i.condition(t,e))return new i(t,e)}return new Z7e(t,e)}const Hae={AND:"$and",OR:"$or"},oNe={PATH:"$path",PATTERN:"$val"},iNe=t=>!!(t[Hae.AND]||t[Hae.OR]),X$o=t=>!!t[oNe.PATH],$$o=t=>!hM(t)&&NOt(t)&&!iNe(t),KOt=t=>({[Hae.AND]:Object.keys(t).map(e=>({[e]:t[e]}))});function UOt(t,e,{auto:n=!0}={}){const o=i=>{if($f(i)){const A={keyId:null,pattern:i};return n&&(A.searcher=Lae(i,e)),A}const r=Object.keys(i),s=X$o(i);if(!s&&r.length>1&&!iNe(i))return o(KOt(i));if($$o(i)){const A=s?i[oNe.PATH]:r[0],c=s?i[oNe.PATTERN]:i[A];if(!$f(c))throw new Error(P$o(A));const l={keyId:Fae(A),pattern:c};return n&&(l.searcher=Lae(c,e)),l}const a={children:[],operator:r[0]};return r.forEach(A=>{const c=i[A];hM(c)&&c.forEach(l=>{a.children.push(o(l))})}),a};return iNe(t)||(t=KOt(t)),o(t)}function rNe(t,{ignoreFieldNorm:e=Ts.ignoreFieldNorm}){let n=1;return t.forEach(({key:o,norm:i,score:r})=>{const s=o?o.weight:null;n*=Math.pow(r===0&&s?Number.EPSILON:r,(s||1)*(e?1:i))}),n}function Z$o(t,{ignoreFieldNorm:e=Ts.ignoreFieldNorm}){t.forEach(n=>{n.score=rNe(n.matches,{ignoreFieldNorm:e})})}var eZo=class{constructor(t,e){this.limit=t,this.heap=[],this.comparator=e}get size(){return this.heap.length}insert(t){this.size<this.limit?(this.heap.push(t),this._bubbleUp(this.size-1)):this.comparator(t,this.heap[0])<0&&(this.heap[0]=t,this._sinkDown(0))}extractSorted(){return this.heap.sort(this.comparator)}_bubbleUp(t){const e=this.heap;for(;t>0;){const n=t-1>>1;if(this.comparator(e[t],e[n])<=0)break;const o=e[t];e[t]=e[n],e[n]=o,t=n}}_sinkDown(t){const e=this.heap,n=e.length;let o=t;do{t=o;const i=2*t+1,r=2*t+2;if(i<n&&this.comparator(e[i],e[o])>0&&(o=i),r<n&&this.comparator(e[r],e[o])>0&&(o=r),o!==t){const s=e[t];e[t]=e[o],e[o]=s}}while(o!==t)}};function tZo(t){const e=[];return t.matches.forEach(n=>{if(!hE(n.indices)||!n.indices.length)return;const o={indices:n.indices,value:n.value};n.key&&(o.key=n.key.id),n.idx>-1&&(o.refIndex=n.idx),e.push(o)}),e}function nZo(t,e,{includeMatches:n=Ts.includeMatches,includeScore:o=Ts.includeScore}={}){return t.map(i=>{const{idx:r}=i,s={item:e[r],refIndex:r};return n&&(s.matches=tZo(i)),o&&(s.score=i.score),s})}const oZo=/[\p{L}\p{M}\p{N}_]+/gu,YOt=new WeakSet;function iZo(t){YOt.has(t)||(YOt.add(t),console.warn(`[Fuse] tokenize regex ${t} lacks the global flag; only the first match per text will be returned. Add the 'g' flag.`))}function rZo(t){if(typeof t=="function"){let e=!1;return n=>{const o=t(n);if(!e&&(e=!0,!Array.isArray(o)||o.some(i=>typeof i!="string")))throw new Error(`[Fuse] tokenize function must return string[]; received ${Array.isArray(o)?"array containing non-strings":typeof o}.`);return o}}return t instanceof RegExp?(t.global||iZo(t),e=>e.match(t)||[]):e=>e.match(oZo)||[]}function sNe({isCaseSensitive:t=!1,ignoreDiacritics:e=!1,tokenize:n}={}){const o=rZo(n);return{tokenize(i){return t||(i=i.toLowerCase()),e&&(i=iz(i)),o(i)}}}var sZo=class{static condition(t,e){return e.useTokenSearch}constructor(t,e){this.options=e,this.analyzer=sNe({isCaseSensitive:e.isCaseSensitive,ignoreDiacritics:e.ignoreDiacritics,tokenize:e.tokenize});const n=this.analyzer.tokenize(t),{df:o,fieldCount:i}=e._invertedIndex;this.termSearchers=[],this.idfWeights=[];for(const r of n){this.termSearchers.push(new Z7e(r,{location:e.location,threshold:e.threshold,distance:e.distance,includeMatches:e.includeMatches,findAllMatches:e.findAllMatches,minMatchCharLength:e.minMatchCharLength,isCaseSensitive:e.isCaseSensitive,ignoreDiacritics:e.ignoreDiacritics,ignoreLocation:!0}));const s=o.get(r)||0,a=Math.log(1+(i-s+.5)/(s+.5));this.idfWeights.push(a)}this.combineAll=e.tokenMatch==="all",this.numTerms=this.termSearchers.length,this.useMask=this.numTerms<=31}searchIn(t){if(!this.termSearchers.length)return{isMatch:!1,score:1};const e=[];let n=0,o=0,i=0,r=0;const s=this.combineAll&&!this.useMask?new Set:null;for(let c=0;c<this.termSearchers.length;c++){const l=this.termSearchers[c].searchIn(t),g=this.idfWeights[c];o+=g,l.isMatch&&(i++,n+=g*(1-l.score),l.indices&&e.push(...l.indices),this.combineAll&&(this.useMask?r|=1<<c:s.add(c)))}if(i===0)return{isMatch:!1,score:1};const a=o>0?1-n/o:0,A={isMatch:!0,score:Math.max(.001,a)};return this.options.includeMatches&&e.length&&(A.indices=$7e(e)),this.combineAll&&(this.useMask?A.matchedMask=r:A.matchedTerms=s,A.termCount=this.numTerms),A}};function aNe(t,e,n,o){const i=o.tokenize(e);if(!i.length)return;t.fieldCount++,t.docFieldCount.set(n,(t.docFieldCount.get(n)||0)+1);const r=new Set(i);let s=t.docTermFieldHits.get(n);s||(s=new Map,t.docTermFieldHits.set(n,s));for(const a of r)s.set(a,(s.get(a)||0)+1),t.df.set(a,(t.df.get(a)||0)+1)}function zOt(t,e,n,o){const{i,v:r,$:s}=e;if(r!==void 0){aNe(t,r,i,o);return}if(s)for(let a=0;a<n;a++){const A=s[a];if(A)if(Array.isArray(A))for(const c of A)aNe(t,c.v,i,o);else aNe(t,A.v,i,o)}}function aZo(t,e,n){const o={fieldCount:0,df:new Map,docFieldCount:new Map,docTermFieldHits:new Map};for(const i of t)zOt(o,i,e,n);return o}function AZo(t,e,n,o){zOt(t,e,n,o)}function cZo(t,e){const n=t.docFieldCount.get(e);if(n===void 0)return;t.fieldCount-=n,t.docFieldCount.delete(e);const o=t.docTermFieldHits.get(e);if(o){for(const[i,r]of o){const s=(t.df.get(i)||0)-r;s<=0?t.df.delete(i):t.df.set(i,s)}t.docTermFieldHits.delete(e)}}function VOt(t,e){if(e.length===0)return;const n=Array.from(new Set(e)).sort((a,A)=>a-A);for(const a of n)cZo(t,a);const o=a=>{let A=0,c=n.length;for(;A<c;){const l=A+c>>>1;n[l]<a?A=l+1:c=l}return a-A},i=n[0],r=new Map;for(const[a,A]of t.docFieldCount)r.set(a>i?o(a):a,A);t.docFieldCount=r;const s=new Map;for(const[a,A]of t.docTermFieldHits)s.set(a>i?o(a):a,A);t.docTermFieldHits=s}var dM=class{constructor(t,e,n){this.options={...Ts,...e},this.options.useExtendedSearch,this.options.useTokenSearch,this._keyStore=new T$o(this.options.keys),this._docs=t,this._myIndex=null,this._invertedIndex=null,this.setCollection(t,n),this._lastQuery=null,this._lastSearcher=null}_getSearcher(t){if(this._lastQuery===t)return this._lastSearcher;const e=Lae(t,this._invertedIndex?{...this.options,_invertedIndex:this._invertedIndex}:this.options);return this._lastQuery=t,this._lastSearcher=e,e}setCollection(t,e){if(this._docs=t,e&&!(e instanceof X7e))throw new Error(v$o);if(this._myIndex=e||LOt(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight}),this.options.useTokenSearch){const n=sNe({isCaseSensitive:this.options.isCaseSensitive,ignoreDiacritics:this.options.ignoreDiacritics,tokenize:this.options.tokenize});this._invertedIndex=aZo(this._myIndex.records,this._myIndex.keys.length,n)}this._invalidateSearcherCache()}add(t){if(!hE(t))return;this._docs.push(t);const e=this._myIndex.add(t,this._docs.length-1);if(this._invertedIndex&&e){const n=sNe({isCaseSensitive:this.options.isCaseSensitive,ignoreDiacritics:this.options.ignoreDiacritics,tokenize:this.options.tokenize});AZo(this._invertedIndex,e,this._myIndex.keys.length,n)}this._invalidateSearcherCache()}remove(t=()=>!1){const e=[],n=[];for(let o=0,i=this._docs.length;o<i;o+=1)t(this._docs[o],o)&&(e.push(this._docs[o]),n.push(o));if(n.length){this._invertedIndex&&VOt(this._invertedIndex,n);const o=new Set(n);this._docs=this._docs.filter((i,r)=>!o.has(r)),this._myIndex.removeAll(n),this._invalidateSearcherCache()}return e}removeAt(t){if(!Number.isInteger(t)||t<0||t>=this._docs.length)throw new Error(j7e);this._invertedIndex&&VOt(this._invertedIndex,[t]);const e=this._docs.splice(t,1)[0];return this._myIndex.removeAt(t),this._invalidateSearcherCache(),e}_invalidateSearcherCache(){this._lastQuery=null,this._lastSearcher=null}getIndex(){return this._myIndex}_normalizedKeys(){return this._myIndex.keys.map(t=>this._keyStore.get(t.id)||t)}search(t,e){const{limit:n=-1}=e||{},{includeMatches:o,includeScore:i,shouldSort:r,sortFn:s,ignoreFieldNorm:a}=this.options;if($f(t)&&!t.trim()){let u=this._docs.map((d,h)=>({item:d,refIndex:h}));return Tae(n)&&n>-1&&(u=u.slice(0,n)),u}const A=r&&Tae(n)&&n>0&&$f(t),c=s,l=(u,d)=>c(u,d)||u.idx-d.idx;let g;if(A){const u=new eZo(n,l);$f(this._docs[0])?this._searchStringList(t,{heap:u,ignoreFieldNorm:a}):this._searchObjectList(t,{heap:u,ignoreFieldNorm:a}),g=u.extractSorted()}else g=$f(t)?$f(this._docs[0])?this._searchStringList(t):this._searchObjectList(t):this._searchLogical(t),Z$o(g,{ignoreFieldNorm:a}),r&&g.sort($f(t)?l:c),Tae(n)&&n>-1&&(g=g.slice(0,n));return nZo(g,this._docs,{includeMatches:o,includeScore:i})}_searchStringList(t,{heap:e,ignoreFieldNorm:n}={}){const o=this._getSearcher(t),i=this.options.useTokenSearch&&this.options.tokenMatch==="all",{records:r}=this._myIndex,s=e?null:[];return r.forEach(({v:a,i:A,n:c})=>{if(!hE(a))return;const l=o.searchIn(a);if(l.isMatch){const g={score:l.score,value:a,norm:c,indices:l.indices};i&&(g.matchedMask=l.matchedMask,g.matchedTerms=l.matchedTerms,g.termCount=l.termCount);const u=[g];if(!i||this._coversAllTokens(u)){const d={item:a,idx:A,matches:u};e?(d.score=rNe(d.matches,{ignoreFieldNorm:n}),e.insert(d)):s.push(d)}}}),s}_searchLogical(t){const e=UOt(t,this.options),n=this._normalizedKeys(),o=(a,A,c)=>{if(!("children"in a)){const{keyId:d,searcher:h}=a;let _;return d===null?(_=[],n.forEach((m,p)=>{_.push(...this._findMatches({key:m,value:A[p],searcher:h}))})):_=this._findMatches({key:this._keyStore.get(d),value:this._myIndex.getValueForItemAtKeyId(A,d),searcher:h}),_&&_.length?[{idx:c,item:A,matches:_}]:[]}const{children:l,operator:g}=a,u=[];for(let d=0,h=l.length;d<h;d+=1){const _=l[d],m=o(_,A,c);if(m.length)u.push(...m);else if(g===Hae.AND)return[]}return u},i=this._myIndex.records,r=new Map,s=[];return i.forEach(({$:a,i:A})=>{if(hE(a)){const c=o(e,a,A);c.length&&(r.has(A)||(r.set(A,{idx:A,item:a,matches:[]}),s.push(r.get(A))),c.forEach(({matches:l})=>{r.get(A).matches.push(...l)}))}}),s}_searchObjectList(t,{heap:e,ignoreFieldNorm:n}={}){const o=this._getSearcher(t),i=this.options.useTokenSearch&&this.options.tokenMatch==="all",{records:r}=this._myIndex,s=this._normalizedKeys(),a=e?null:[];return r.forEach(({$:A,i:c})=>{if(!hE(A))return;const l=[];let g=!1,u=!1;if(s.forEach((d,h)=>{const _=this._findMatches({key:d,value:A[h],searcher:o});_.length?(l.push(..._),_[0].hasInverse&&(u=!0)):g=!0}),!(u&&g)&&l.length&&(!i||this._coversAllTokens(l))){const d={idx:c,item:A,matches:l};e?(d.score=rNe(d.matches,{ignoreFieldNorm:n}),e.insert(d)):a.push(d)}}),a}_findMatches({key:t,value:e,searcher:n}){if(!hE(e))return[];const o=[];if(hM(e))e.forEach(({v:i,i:r,n:s})=>{if(!hE(i))return;const a=n.searchIn(i);if(a.isMatch){const A={score:a.score,key:t,value:i,idx:r,norm:s,indices:a.indices,hasInverse:a.hasInverse};a.termCount!==void 0&&(A.matchedMask=a.matchedMask,A.matchedTerms=a.matchedTerms,A.termCount=a.termCount),o.push(A)}});else{const{v:i,n:r}=e,s=n.searchIn(i);if(s.isMatch){const a={score:s.score,key:t,value:i,norm:r,indices:s.indices,hasInverse:s.hasInverse};s.termCount!==void 0&&(a.matchedMask=s.matchedMask,a.matchedTerms=s.matchedTerms,a.termCount=s.termCount),o.push(a)}}return o}_coversAllTokens(t){const e=t.length?t[0].termCount:void 0;if(e===void 0)return!0;if(e<=31){let o=0;for(let i=0;i<t.length;i++)o|=t[i].matchedMask||0;return o===2**e-1}const n=new Set;for(let o=0;o<t.length;o++){const i=t[o].matchedTerms;if(i)for(const r of i)n.add(r)}return n.size===e}};dM.version="7.5.0",dM.createIndex=LOt,dM.parseIndex=H$o,dM.config=Ts,dM.match=function(t,e,n){if(n&&n.useTokenSearch)throw new Error(R$o);return Lae(t,{...Ts,...n}).searchIn(e)},dM.parseQuery=UOt,nNe(j$o),nNe(sZo),dM.use=function(...t){t.forEach(e=>nNe(e))};var lZo=dM;const gZo="https://kicad-mod-cache.tscircuit.com";let ANe=null,rz=null,cNe=null;const uZo=async()=>ANe||rz||(rz=fetch("https://kicad-mod-cache.tscircuit.com/kicad_files.json").then(t=>t.json()).then(t=>(ANe=t,rz=null,t)),rz),hZo=async(t,e=20)=>{const n=await uZo();return cNe||(cNe=new lZo(n)),cNe.search(t).slice(0,e).map(o=>o.item)},dZo=t=>{const e=t.replace(".pretty/","/").replace(".kicad_mod",""),n=`kicad:${e}`;return{path:t,qualifiedName:n,description:e}},_Zo=t=>t.replace(/^\/+/,"").split("/").map(e=>encodeURIComponent(e)).join("/"),mZo=async t=>{const e=await fetch(`${gZo}/${_Zo(t)}`);if(!e.ok)throw new Error(`KiCad footprint fetch failed: ${e.status}`);const n=await e.text(),{KicadFootprintToCircuitJsonConverter:o}=await sQ("kicad-to-circuit-json"),i=new o;return i.addFile(t.split("/").pop()??"selected-footprint.kicad_mod",n),i.runUntilFinished(),i.getOutput()},JOt=t=>t?.source==="jlcpcb"||t?.source==="kicad",pZo=async(t,e)=>{if(t.source==="jlcpcb")return Q$o(t.component.partNumber,e?.jlcpcb);if(t.source==="kicad")return mZo(t.footprint.path);throw new Error("Footprint preview is not available for this source")},IZo=({query:t,placeholder:e,isSearching:n,onQueryChange:o,onSubmit:i})=>{const r=$.useCallback(s=>{s.key==="Enter"&&(s.preventDefault(),i())},[i]);return V.jsxs("div",{className:"rf-flex rf-items-center rf-gap-2 rf-mt-4",children:[V.jsxs("div",{className:"rf-relative rf-flex-grow",children:[V.jsx(u8e,{className:"rf-absolute rf-left-2 rf-top-2.5 rf-h-4 rf-w-4 rf-text-muted-foreground"}),V.jsx(a9e,{placeholder:e,className:"rf-pl-8",spellCheck:!1,autoComplete:"off",value:t,onChange:s=>o(s.target.value),onKeyDown:r})]}),V.jsx(rA,{onClick:i,disabled:n||t.trim().length<1,className:"sm:rf-px-4 rf-px-3",children:n?V.jsx(iQ,{className:"rf-h-4 rf-w-4 rf-animate-spin"}):V.jsxs(V.Fragment,{children:[V.jsx(u8e,{className:"rf-h-4 rf-w-4 sm:rf-hidden"}),V.jsx("span",{className:"rf-hidden sm:rf-inline",children:"Search"})]})})]})},fZo=new Intl.NumberFormat("en-US",{style:"currency",currency:"USD"}),CZo=t=>fZo.format(t),qOt=t=>{switch(t.source){case"tscircuit.com":{const e=t.package;return`tscircuit-${e.package_id??`${e.org_owner_tscircuit_handle??"unknown"}-${e.unscoped_name??e.name??"package"}`}`}case"jlcpcb":return`jlc-${t.component.lcscId}`;case"kicad":return`kicad-${t.footprint.path}`;default:return"unknown"}},yZo=t=>{switch(t.source){case"tscircuit.com":return t.package.unscoped_name;case"jlcpcb":return t.component.isDirectLookup?t.component.partNumber:t.component.manufacturer;case"kicad":return t.footprint.qualifiedName}},EZo=t=>{switch(t.source){case"tscircuit.com":return t.package.description||(t.package.org_owner_tscircuit_handle?`Component by ${t.package.org_owner_tscircuit_handle}`:void 0);case"jlcpcb":return t.component.description;case"kicad":return t.footprint.description}},xZo=t=>{switch(t.source){case"tscircuit.com":return t.package.name;case"jlcpcb":return t.component.isDirectLookup?void 0:t.component.partNumber;case"kicad":return}},BZo=({results:t,selected:e,onSelect:n,onShowDetails:o})=>{const i=e?qOt(e):null;return V.jsx("div",{className:"rf-divide-y rf-w-full rf-overflow-hidden",children:t.map(r=>{const s=qOt(r),a=i===s,A=yZo(r),c=EZo(r),l=xZo(r),g=r.source==="jlcpcb"?r.component.stock:null,u=r.source==="jlcpcb"?r.component.price:null,d=r.source==="jlcpcb"?r.component.isBasic:null,h=r.source==="jlcpcb"?r.component.isDirectLookup:!1;return V.jsxs("div",{className:`rf-p-3 rf-flex rf-flex-col sm:rf-grid sm:rf-grid-cols-[minmax(0,1fr)_auto] rf-items-start sm:rf-items-center rf-cursor-pointer hover:rf-bg-zinc-100 rf-gap-2 rf-overflow-hidden ${a?"rf-bg-zinc-100":""}`,onClick:()=>n(r),children:[V.jsxs("div",{className:"rf-min-w-0 rf-overflow-hidden rf-w-full",children:[V.jsxs("div",{className:"rf-flex rf-items-start rf-gap-2 rf-min-w-0",children:[V.jsxs("div",{className:"rf-font-medium rf-text-sm rf-truncate rf-flex-1 rf-min-w-0 rf-flex rf-items-center rf-gap-1.5",children:[A,r.source==="jlcpcb"&&d!=null&&V.jsx("span",{className:`rf-text-xs rf-px-1.5 rf-py-0.5 rf-rounded rf-font-medium rf-flex-shrink-0 ${d?"rf-bg-green-100 rf-text-green-700":"rf-bg-orange-100 rf-text-orange-700"}`,children:d?"Basic":"Extended"}),h&&V.jsx("span",{className:"rf-text-xs rf-px-1.5 rf-py-0.5 rf-rounded rf-font-medium rf-flex-shrink-0 rf-bg-blue-100 rf-text-blue-700",children:"Direct lookup"}),r.source==="tscircuit.com"&&r.package.is_private&&V.jsx(sLo,{className:"rf-ml-1 rf-h-3 rf-w-3 rf-text-zinc-400 rf-flex-shrink-0"})]}),r.source==="jlcpcb"&&g!=null?V.jsxs("div",{className:"rf-text-xs rf-text-zinc-500 rf-font-medium rf-whitespace-nowrap rf-flex-shrink-0 sm:rf-hidden",children:[g.toLocaleString()," in stock"]}):null]}),V.jsxs("div",{className:"rf-text-xs rf-text-zinc-500 rf-truncate rf-w-full",children:[l?V.jsx("span",{className:"rf-mr-2",children:l}):null,c]})]}),V.jsxs("div",{children:[r.source==="tscircuit.com"&&o?V.jsx("div",{className:"rf-flex-shrink-0 rf-w-full sm:rf-w-auto",children:V.jsx(rA,{variant:"outline",size:"sm",className:"rf-text-xs rf-w-full sm:rf-w-auto",onClick:_=>{_.stopPropagation(),o(r)},children:"See Details"})}):r.source==="jlcpcb"&&g!=null?V.jsxs("div",{className:"rf-hidden sm:rf-block rf-text-xs rf-text-zinc-500 rf-font-medium rf-whitespace-nowrap rf-flex-shrink-0",children:[g.toLocaleString()," in stock"]}):null,u!=null&&V.jsx("div",{className:"rf-hidden sm:rf-block rf-text-xs rf-text-zinc-500 rf-font-medium rf-whitespace-nowrap rf-flex-shrink-0 rf-text-right",children:CZo(u)})]})]},s)})})},QZo=({circuitJson:t,error:e,isLoading:n,height:o})=>V.jsx("section",{className:"rf-flex rf-min-w-0 rf-items-center rf-justify-center",style:{height:o},children:n?V.jsxs("div",{className:"rf-flex rf-w-full rf-items-center rf-justify-center rf-gap-2 rf-bg-zinc-950 rf-text-sm rf-text-zinc-300",style:{height:o},children:[V.jsx(iQ,{className:"rf-h-4 rf-w-4 rf-animate-spin"}),"Loading preview..."]}):e?V.jsx("div",{className:"rf-flex rf-w-full rf-items-center rf-justify-center rf-bg-zinc-950 rf-p-4",style:{height:o},children:V.jsxs("div",{className:"rf-flex rf-max-w-[320px] rf-items-start rf-gap-2 rf-text-sm rf-text-zinc-300",children:[V.jsx(vNt,{className:"rf-mt-0.5 rf-h-4 rf-w-4 rf-flex-shrink-0"}),V.jsx("span",{children:e})]})}):t?V.jsx("div",{className:"rf-w-full rf-min-w-0 rf-overflow-hidden",children:V.jsx(tOt,{circuitJson:t,height:o,allowEditing:!1,clickToInteractEnabled:!1,focusOnHover:!1,disablePcbGroups:!0})}):V.jsx("div",{className:"rf-flex rf-w-full rf-items-center rf-justify-center rf-bg-zinc-950 rf-text-sm rf-text-zinc-300",style:{height:o},children:"No preview"})}),WOt={importComponentDialog:101,importComponentDetailsDialog:102},SZo=({packageResult:t,isOpen:e,onOpenChange:n,isLoading:o,details:i,previewTab:r,onPreviewTabChange:s,isSubmitting:a,onImport:A})=>{const c=t?.package??null,l=c?.latest_pcb_preview_image_url,g=c?.latest_sch_preview_image_url,u=c?.latest_cad_preview_image_url,d=c?.unscoped_name?.split("/").pop()??c?.unscoped_name,h=c?.org_owner_tscircuit_handle??void 0,_=h?`https://tscircuit.com/${h}`:void 0,m=h&&d?`https://tscircuit.com/${h}/${d}`:void 0;return V.jsx(jk,{open:e,onOpenChange:n,children:V.jsxs(r8,{showOverlay:!1,style:{width:"calc(100vw - 2rem)",zIndex:WOt.importComponentDetailsDialog},className:"rf-max-w-5xl no-scrollbar !rf-overflow-y-auto rf-max-h-[90vh] rf-overflow-hidden rf-flex rf-flex-col rf-rounded-sm",children:[V.jsx(s8,{className:"rf-pb-4 rf-border-b",children:V.jsx("div",{className:"rf-flex rf-items-start rf-justify-between rf-gap-4",children:V.jsxs("div",{className:"rf-flex-1 rf-min-w-0",children:[V.jsx(a8,{className:"rf-text-xl rf-font-semibold rf-truncate",children:d}),V.jsx(Xk,{children:c?.description})]})})}),V.jsxs("div",{className:"rf-flex-1 rf-overflow-y-auto rf-py-4 rf-space-y-6",children:[h?V.jsxs("div",{children:[V.jsx("span",{className:"rf-text-xs rf-font-medium rf-text-gray-500 rf-uppercase rf-tracking-wide",children:"Created by"}),V.jsx("div",{className:"rf-mt-1 rf-text-sm rf-font-medium",children:_?V.jsx("a",{href:_,target:"_blank",rel:"noopener noreferrer",className:"rf-text-black hover:rf-underline",children:h}):h})]}):null,(u||l||g)&&V.jsx(V.Fragment,{children:V.jsxs("div",{children:[V.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-mb-4",children:"Preview"}),V.jsxs(Vxe,{value:r,onValueChange:p=>s(p),children:[V.jsxs(zne,{className:"rf-inline-flex rf-h-9 rf-items-center rf-justify-center rf-rounded-lg rf-bg-zinc-100 rf-p-1 rf-text-zinc-500 dark:rf-bg-zinc-800 dark:rf-text-zinc-400",children:[l&&V.jsx(zS,{value:"pcb",children:"PCB"}),g&&V.jsx(zS,{value:"schematic",children:"Schematic"}),u&&V.jsx(zS,{value:"3d",children:"3D"})]}),V.jsxs("div",{className:"rf-mt-4",children:[V.jsx(Kf,{value:"pcb",className:"rf-border rf-rounded-lg rf-overflow-hidden rf-bg-gray-50",children:l?V.jsx("img",{src:l,alt:`${d??"package"} PCB preview`,className:"rf-w-full rf-h-full rf-object-contain rf-bg-white rf-p-4"}):null}),V.jsx(Kf,{value:"schematic",className:"rf-border rf-rounded-lg rf-overflow-hidden rf-bg-gray-50",children:g?V.jsx("img",{src:g,alt:`${d??"package"} schematic preview`,className:"rf-w-full rf-h-full rf-object-contain rf-bg-white rf-p-4"}):null}),V.jsx(Kf,{value:"3d",className:"rf-border rf-rounded-lg rf-overflow-hidden rf-bg-gray-50",children:u?V.jsx("img",{src:u,alt:`${d??"package"} 3D preview`,className:"rf-w-full rf-h-full rf-object-contain rf-bg-white rf-p-4"}):null})]})]})]})}),i?.ai_description?V.jsxs("section",{children:[V.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-mb-3",children:"AI Description"}),V.jsx("div",{className:"rf-bg-gray-50 rf-border rf-border-gray-200 rf-rounded-lg rf-p-4",children:V.jsx("p",{className:"rf-text-sm rf-text-gray-700 rf-leading-relaxed",children:i.ai_description})})]}):null,i?.ai_usage_instructions?V.jsxs("section",{children:[V.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-mb-3",children:"Usage Instructions"}),V.jsx("div",{className:"rf-bg-gray-50 rf-border rf-border-gray-200 rf-rounded-lg rf-p-4",children:V.jsx("p",{className:"rf-text-sm rf-text-gray-700 rf-leading-relaxed rf-whitespace-pre-wrap",children:i.ai_usage_instructions})})]}):null,o?V.jsxs("div",{className:"rf-flex rf-justify-center rf-items-center rf-gap-2 rf-text-gray-500",children:[V.jsx(iQ,{className:"rf-h-4 rf-w-4 rf-animate-spin"}),V.jsx("span",{className:"rf-text-sm",children:"Loading package details..."})]}):null]}),V.jsxs(oz,{className:"rf-pt-4 rf-border-t rf-flex rf-flex-col sm:rf-flex-row rf-justify-between rf-gap-2",children:[V.jsx("div",{className:"rf-flex-1",children:m?V.jsxs(rA,{variant:"outline",size:"sm",className:"rf-gap-2 rf-w-full sm:rf-w-auto",onClick:()=>window.open(m,"_blank"),children:[V.jsx(ZFo,{className:"rf-h-4 rf-w-4"}),"View on tscircuit.com"]}):null}),V.jsxs("div",{className:"rf-flex rf-flex-col sm:rf-flex-row rf-gap-2",children:[V.jsx(rA,{variant:"outline",onClick:()=>n(!1),className:"rf-order-2 sm:rf-order-1",children:"Close"}),V.jsx(rA,{onClick:A,disabled:a,className:"rf-bg-blue-600 hover:rf-bg-blue-700",children:a?V.jsx(iQ,{className:"rf-h-4 rf-w-4 rf-animate-spin"}):"Import Component"})]})]})]})})},bZo=()=>{const[t,e]=$.useState(null),[n,o]=$.useState(!1),i=$.useCallback(async(s,a)=>{o(!0);try{const A=await fetch(`https://api.tscircuit.com/packages/get?name=${encodeURIComponent(`${s}/${a}`)}`);if(!A.ok)throw new Error(`Failed to load package details: ${A.status}`);const c=await A.json();e(c.package??null)}catch(A){console.error("Failed to fetch package details",A),e(null)}finally{o(!1)}},[]),r=$.useCallback(()=>{e(null),o(!1)},[]);return{details:t,isLoading:n,fetchDetails:i,reset:r}},DZo=(t,e)=>{const[n,o]=$.useState({circuitJson:null,error:null,isLoading:!1});return $.useEffect(()=>{if(!t||!JOt(t)){o({circuitJson:null,error:null,isLoading:!1});return}let i=!1;return o({circuitJson:null,error:null,isLoading:!0}),pZo(t,e).then(r=>{i||o({circuitJson:r,error:null,isLoading:!1})}).catch(r=>{i||o({circuitJson:null,error:r instanceof Error?r.message:"Failed to load footprint preview",isLoading:!1})}),()=>{i=!0}},[t,e]),n},vZo=async(t,e)=>{const n={"Content-Type":"application/json"};e&&(n.Authorization=`Bearer ${e}`);const o=await fetch("https://registry-api.tscircuit.com/packages/search",{method:"POST",headers:n,body:JSON.stringify({query:t})});if(!o.ok)throw new Error(`tscircuit registry error: ${o.status}`);return(await o.json()).packages??[]},PZo=({sessionToken:t})=>{const[e,n]=$.useState([]),[o,i]=$.useState(!1),[r,s]=$.useState(null),[a,A]=$.useState(!1),c=$.useCallback(async g=>{const u=g.trim();if(!u)return[];i(!0),s(null);try{const h=(await vZo(u,t)).map(_=>({source:"tscircuit.com",package:_}));return n(h),h}catch(d){return console.error("Error searching tscircuit packages",d),n([]),s(d instanceof Error?d.message:"Failed to search tscircuit packages"),[]}finally{i(!1),A(!0)}},[t]),l=$.useCallback(()=>{n([]),i(!1),s(null),A(!1)},[]);return{results:e,isSearching:o,error:r,hasSearched:a,search:c,reset:l}},MZo=t=>{const e=/^C(\d+)$/i.exec(t.trim());if(!e)return null;const n=Number(e[1]);if(!Number.isSafeInteger(n))return null;const o=`C${e[1]}`;return{source:"jlcpcb",component:{lcscId:n,manufacturer:o,partNumber:o,description:"Import directly from EasyEDA; stock and availability are unknown",package:"",isDirectLookup:!0}}},jOt=(t,e)=>{const n=MZo(t);return n?e.some(i=>i.component.partNumber.toUpperCase()===n.component.partNumber)?e:[n,...e]:e},wZo=t=>{const e=t.trim();return/^C\d+/i.test(e)?e.replace(/^C/i,""):e},NZo=()=>{const[t,e]=$.useState([]),[n,o]=$.useState(!1),[i,r]=$.useState(null),[s,a]=$.useState(!1),A=$.useCallback(async l=>{const g=wZo(l);if(!g)return[];o(!0),r(null);try{const u=await E$o(g,10),d=jOt(l,u.map(h=>({source:"jlcpcb",component:x$o(h)})));return e(d),d}catch(u){console.error("Error searching JLCPCB components",u);const d=jOt(l,[]);return e(d),r(d.length>0?null:u instanceof Error?u.message:"Failed to search JLCPCB components"),d}finally{o(!1),a(!0)}},[]),c=$.useCallback(()=>{e([]),o(!1),r(null),a(!1)},[]);return{results:t,isSearching:n,error:i,hasSearched:s,search:A,reset:c}},RZo=()=>{const[t,e]=$.useState([]),[n,o]=$.useState(!1),[i,r]=$.useState(null),[s,a]=$.useState(!1),A=$.useCallback(async l=>{const g=l.trim();if(!g)return[];o(!0),r(null);try{const d=(await hZo(g,20)).map(h=>({source:"kicad",footprint:dZo(h)}));return e(d),d}catch(u){return console.error("Error searching KiCad footprints",u),e([]),r(u instanceof Error?u.message:"Failed to search KiCad footprints"),[]}finally{o(!1),a(!0)}},[]),c=$.useCallback(()=>{e([]),o(!1),r(null),a(!1)},[]);return{results:t,isSearching:n,error:i,hasSearched:s,search:A,reset:c}},TZo=({onTscircuitPackageSelected:t,onJlcpcbComponentTsxLoaded:e,onKicadStringSelected:n})=>{const o=[];return t&&o.push("tscircuit.com"),e&&o.push("jlcpcb"),n&&o.push("kicad"),o},kZo=({isOpen:t,onClose:e,jlcpcbProxyRequestHeaders:n,onKicadStringSelected:o,onTscircuitPackageSelected:i,onJlcpcbComponentTsxLoaded:r,jlcpcbProxyApiBase:s,tscircuitSessionToken:a})=>{vae();const A=$.useMemo(()=>TZo({onKicadStringSelected:o,onTscircuitPackageSelected:i,onJlcpcbComponentTsxLoaded:r}),[o,i,r]),c=A.length>0,l=A.length===1,[g,u]=$.useState(A[0]??"tscircuit.com"),[d,h]=$.useState(""),[_,m]=$.useState(null),{results:p,isSearching:I,error:f,hasSearched:C,search:y,reset:E}=PZo({sessionToken:a}),{results:B,isSearching:Q,error:b,hasSearched:D,search:R,reset:w}=NZo(),{results:H,isSearching:G,error:O,hasSearched:U,search:W,reset:j}=RZo(),{details:te,isLoading:re,fetchDetails:X,reset:Z}=bZo(),[se,ae]=$.useState(null),[ge,fe]=$.useState(!1),[Ce,Ee]=$.useState("pcb"),[he,xe]=$.useState(null),[_e,we]=$.useState(!1),He=$.useMemo(()=>({jlcpcb:{headers:n,apiBase:s}}),[s,n]),{circuitJson:ze,error:Ie,isLoading:qe}=DZo(_,He),Me=JOt(_);$.useEffect(()=>{xe(null)},[_]);const Te=$.useCallback(()=>{E(),w(),j(),m(null)},[w,j,E]);$.useEffect(()=>{t||(Te(),h(""),fe(!1),ae(null),xe(null))},[t,Te]),$.useEffect(()=>{h(""),m(null),g==="tscircuit.com"?E():g==="jlcpcb"?w():g==="kicad"&&j()},[g,w,j,E]);const Ye=gt=>{m(gt),ae(gt),Ee("pcb"),fe(!0),Z();const nt=gt.package.org_owner_tscircuit_handle,xt=gt.package.unscoped_name;if(nt&&xt){const mt=xt.split("/").pop()??xt;X(nt,mt)}},Ne=async()=>{d.trim()&&(m(null),g==="tscircuit.com"?await y(d):g==="jlcpcb"?await R(d):g==="kicad"&&await W(d))},be=async gt=>{try{if(xe(null),we(!0),gt.source==="kicad"){if(!o)throw new Error("KiCad handler not provided");await o({result:gt,footprint:gt.footprint.qualifiedName})}else if(gt.source==="jlcpcb"){if(!r)throw new Error("JLCPCB handler not provided");const nt=await B$o(gt.component.partNumber,{headers:n,apiBase:s});await r({result:gt,tsx:nt})}else if(gt.source==="tscircuit.com"){if(!i)throw new Error("tscircuit package handler not provided");const nt=gt.package.org_owner_tscircuit_handle,xt=gt.package.unscoped_name;if(!nt||!xt)throw new Error("Missing package metadata");const mt=xt.split("/").pop()??xt,vt=`@tsci/${nt}.${mt}`;await i({result:gt,fullPackageName:vt})}return!0}catch(nt){return console.error("Failed to import component",nt),xe(nt instanceof Error?nt.message:"Failed to import component"),!1}finally{we(!1)}};let Oe=[],ve=!1,Je=null,$e=!1;g==="tscircuit.com"?(Oe=p,ve=I,Je=f,$e=C):g==="jlcpcb"?(Oe=B,ve=Q,Je=b,$e=D):g==="kicad"&&(Oe=H,ve=G,Je=O,$e=U);const at=async()=>{if(!_)return;await be(_)&&(e(),Te(),h(""))},ct=gt=>{gt||e()},ht=gt=>{fe(gt),gt||ae(null)};return V.jsxs(jk,{open:t,onOpenChange:ct,children:[V.jsxs(r8,{style:{width:"calc(100vw - 2rem)",maxWidth:Me?"min(1120px, calc(100vw - 2rem))":"min(672px, calc(100vw - 2rem))",zIndex:WOt.importComponentDialog},className:"rf-rounded-sm rf-max-h-[90vh] rf-overflow-y-auto rf-overflow-x-hidden rf-flex rf-flex-col",children:[V.jsxs(s8,{children:[V.jsxs(a8,{className:"rf-text-lg sm:rf-text-xl",children:["Import ",l?Rae[g].label:""," ","Component"]}),V.jsx(Xk,{className:"rf-text-sm",children:c?"Search for components from available sources.":"Import options are disabled because no handlers were provided."})]}),c?V.jsxs(Vxe,{value:g,onValueChange:gt=>u(gt),className:"rf-min-w-0 rf-w-full",children:[!l&&V.jsx(zne,{className:"rf-flex rf-w-full rf-gap-2",children:A.map(gt=>V.jsx(zS,{value:gt,className:"rf-flex-1 rf-text-xs sm:rf-text-sm",children:Rae[gt].label},gt))}),V.jsxs("div",{className:"rf-min-w-0",style:Me?{display:"grid",gridTemplateColumns:"minmax(0, 1fr) minmax(360px, 0.95fr)",gap:"1.5rem",alignItems:"start"}:void 0,children:[V.jsxs("div",{className:"rf-min-w-0",children:[V.jsx(IZo,{query:d,placeholder:Rae[g].placeholder,isSearching:ve,onQueryChange:h,onSubmit:Ne}),V.jsx("div",{className:"no-scrollbar rf-mt-4 rf-flex-1 rf-min-h-[200px] !rf-max-h-[40vh] !rf-overflow-y-auto rf-overflow-x-hidden rf-border rf-rounded-md rf-min-w-0",children:ve?V.jsxs("div",{className:"rf-p-8 rf-text-center rf-text-zinc-500",children:[V.jsx(iQ,{className:"rf-h-8 rf-w-8 rf-animate-spin rf-mx-auto rf-mb-2"}),V.jsx("p",{children:"Searching..."})]}):Oe.length>0?V.jsx(BZo,{results:Oe,selected:_,onSelect:m,onShowDetails:g==="tscircuit.com"?Ye:void 0}):V.jsx("div",{className:"rf-p-8 rf-text-center rf-text-zinc-500",children:Je?`Error: ${Je}`:$e?Rae[g].emptyMessage:"Enter a search term to find components"})})]}),Me?V.jsx("div",{className:"rf-mt-4",children:V.jsx(QZo,{circuitJson:ze,error:Ie,isLoading:qe,height:325})}):null]})]}):null,he?V.jsx("div",{className:"rf-text-sm rf-text-red-600 rf-mt-2",children:he}):null,V.jsxs(oz,{className:"rf-flex rf-flex-col sm:rf-flex-row rf-gap-2",children:[V.jsx(rA,{variant:"outline",onClick:e,className:"rf-order-2 sm:rf-order-1",children:"Cancel"}),V.jsx(rA,{onClick:at,disabled:!_||_e,className:"rf-order-1 sm:rf-order-2",children:_e?V.jsx(iQ,{className:"rf-h-4 rf-w-4 rf-animate-spin"}):"Import"})]})]}),V.jsx(SZo,{packageResult:se,isOpen:ge,onOpenChange:ht,isLoading:re,details:te,previewTab:Ce,onPreviewTabChange:gt=>Ee(gt),isSubmitting:_e,onImport:()=>{se&&be(se).then(gt=>{gt&&(fe(!1),e(),Te(),h(""))})}})]})},FZo=t=>{const e=t.match(/export const (\w+) =/);if(!e)throw new Error("Could not determine component name from TSX contents");return e[1]},XOt=t=>{const e=ju(s=>s.pushEvent),n=ju(s=>s.upsertFile),o=async({result:s,fullPackageName:a})=>{const c=s.package.unscoped_name??s.package.name;await Vs.promise(e({event_type:"INSTALL_PACKAGE",full_package_name:a}),{loading:`Requesting install for "${c}"`,success:`Install requested for "${c}"`,error:l=>`Failed to request install: ${l instanceof Error?l.message:String(l)}`})},i=async({footprint:s})=>{await Vs.promise(navigator.clipboard.writeText(s),{loading:`Copying "${s}"`,success:`Copied "${s}" to clipboard`,error:a=>`Failed to copy footprint: ${a instanceof Error?a.message:String(a)}`})},r=async({result:s,tsx:a})=>{const c=`imports/${FZo(a)}.tsx`;await Vs.promise(n(c,a),{loading:`Importing ${s.component.partNumber}`,success:`Imported to "${c}"`,error:l=>`Failed to import component: ${l instanceof Error?l.message:String(l)}`})};return V.jsx(kZo,{...t,onTscircuitPackageSelected:o,onKicadStringSelected:i,onJlcpcbComponentTsxLoaded:r})};XOt.displayName="ImportComponentDialogForCli";var lNe={exports:{}},$Ot;function LZo(){return $Ot||($Ot=1,(function(t,e){var n={env:{},version:""};(function(o){t.exports=o()})(function(){return(function o(i,r,s){function a(l,g){if(!r[l]){if(!i[l]){var u=typeof FD=="function"&&FD;if(!g&&u)return u(l,!0);if(A)return A(l,!0);var d=new Error("Cannot find module '"+l+"'");throw d.code="MODULE_NOT_FOUND",d}var h=r[l]={exports:{}};i[l][0].call(h.exports,function(_){var m=i[l][1][_];return a(m||_)},h,h.exports,o,i,r,s)}return r[l].exports}for(var A=typeof FD=="function"&&FD,c=0;c<s.length;c++)a(s[c]);return a})({1:[function(o,i,r){var s=o("./utils"),a=o("./support"),A="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";r.encode=function(c){for(var l,g,u,d,h,_,m,p=[],I=0,f=c.length,C=f,y=s.getTypeOf(c)!=="string";I<c.length;)C=f-I,u=y?(l=c[I++],g=I<f?c[I++]:0,I<f?c[I++]:0):(l=c.charCodeAt(I++),g=I<f?c.charCodeAt(I++):0,I<f?c.charCodeAt(I++):0),d=l>>2,h=(3&l)<<4|g>>4,_=1<C?(15&g)<<2|u>>6:64,m=2<C?63&u:64,p.push(A.charAt(d)+A.charAt(h)+A.charAt(_)+A.charAt(m));return p.join("")},r.decode=function(c){var l,g,u,d,h,_,m=0,p=0,I="data:";if(c.substr(0,I.length)===I)throw new Error("Invalid base64 input, it looks like a data url.");var f,C=3*(c=c.replace(/[^A-Za-z0-9+/=]/g,"")).length/4;if(c.charAt(c.length-1)===A.charAt(64)&&C--,c.charAt(c.length-2)===A.charAt(64)&&C--,C%1!=0)throw new Error("Invalid base64 input, bad content length.");for(f=a.uint8array?new Uint8Array(0|C):new Array(0|C);m<c.length;)l=A.indexOf(c.charAt(m++))<<2|(d=A.indexOf(c.charAt(m++)))>>4,g=(15&d)<<4|(h=A.indexOf(c.charAt(m++)))>>2,u=(3&h)<<6|(_=A.indexOf(c.charAt(m++))),f[p++]=l,h!==64&&(f[p++]=g),_!==64&&(f[p++]=u);return f}},{"./support":30,"./utils":32}],2:[function(o,i,r){var s=o("./external"),a=o("./stream/DataWorker"),A=o("./stream/Crc32Probe"),c=o("./stream/DataLengthProbe");function l(g,u,d,h,_){this.compressedSize=g,this.uncompressedSize=u,this.crc32=d,this.compression=h,this.compressedContent=_}l.prototype={getContentWorker:function(){var g=new a(s.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new c("data_length")),u=this;return g.on("end",function(){if(this.streamInfo.data_length!==u.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),g},getCompressedWorker:function(){return new a(s.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},l.createWorkerFrom=function(g,u,d){return g.pipe(new A).pipe(new c("uncompressedSize")).pipe(u.compressWorker(d)).pipe(new c("compressedSize")).withStreamInfo("compression",u)},i.exports=l},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(o,i,r){var s=o("./stream/GenericWorker");r.STORE={magic:"\0\0",compressWorker:function(){return new s("STORE compression")},uncompressWorker:function(){return new s("STORE decompression")}},r.DEFLATE=o("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(o,i,r){var s=o("./utils"),a=(function(){for(var A,c=[],l=0;l<256;l++){A=l;for(var g=0;g<8;g++)A=1&A?3988292384^A>>>1:A>>>1;c[l]=A}return c})();i.exports=function(A,c){return A!==void 0&&A.length?s.getTypeOf(A)!=="string"?(function(l,g,u,d){var h=a,_=d+u;l^=-1;for(var m=d;m<_;m++)l=l>>>8^h[255&(l^g[m])];return-1^l})(0|c,A,A.length,0):(function(l,g,u,d){var h=a,_=d+u;l^=-1;for(var m=d;m<_;m++)l=l>>>8^h[255&(l^g.charCodeAt(m))];return-1^l})(0|c,A,A.length,0):0}},{"./utils":32}],5:[function(o,i,r){r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(o,i,r){var s=null;s=typeof Promise<"u"?Promise:o("lie"),i.exports={Promise:s}},{lie:37}],7:[function(o,i,r){var s=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Uint32Array<"u",a=o("pako"),A=o("./utils"),c=o("./stream/GenericWorker"),l=s?"uint8array":"array";function g(u,d){c.call(this,"FlateWorker/"+u),this._pako=null,this._pakoAction=u,this._pakoOptions=d,this.meta={}}r.magic="\b\0",A.inherits(g,c),g.prototype.processChunk=function(u){this.meta=u.meta,this._pako===null&&this._createPako(),this._pako.push(A.transformTo(l,u.data),!1)},g.prototype.flush=function(){c.prototype.flush.call(this),this._pako===null&&this._createPako(),this._pako.push([],!0)},g.prototype.cleanUp=function(){c.prototype.cleanUp.call(this),this._pako=null},g.prototype._createPako=function(){this._pako=new a[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var u=this;this._pako.onData=function(d){u.push({data:d,meta:u.meta})}},r.compressWorker=function(u){return new g("Deflate",u)},r.uncompressWorker=function(){return new g("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(o,i,r){function s(h,_){var m,p="";for(m=0;m<_;m++)p+=String.fromCharCode(255&h),h>>>=8;return p}function a(h,_,m,p,I,f){var C,y,E=h.file,B=h.compression,Q=f!==l.utf8encode,b=A.transformTo("string",f(E.name)),D=A.transformTo("string",l.utf8encode(E.name)),R=E.comment,w=A.transformTo("string",f(R)),H=A.transformTo("string",l.utf8encode(R)),G=D.length!==E.name.length,O=H.length!==R.length,U="",W="",j="",te=E.dir,re=E.date,X={crc32:0,compressedSize:0,uncompressedSize:0};_&&!m||(X.crc32=h.crc32,X.compressedSize=h.compressedSize,X.uncompressedSize=h.uncompressedSize);var Z=0;_&&(Z|=8),Q||!G&&!O||(Z|=2048);var se=0,ae=0;te&&(se|=16),I==="UNIX"?(ae=798,se|=(function(fe,Ce){var Ee=fe;return fe||(Ee=Ce?16893:33204),(65535&Ee)<<16})(E.unixPermissions,te)):(ae=20,se|=(function(fe){return 63&(fe||0)})(E.dosPermissions)),C=re.getUTCHours(),C<<=6,C|=re.getUTCMinutes(),C<<=5,C|=re.getUTCSeconds()/2,y=re.getUTCFullYear()-1980,y<<=4,y|=re.getUTCMonth()+1,y<<=5,y|=re.getUTCDate(),G&&(W=s(1,1)+s(g(b),4)+D,U+="up"+s(W.length,2)+W),O&&(j=s(1,1)+s(g(w),4)+H,U+="uc"+s(j.length,2)+j);var ge="";return ge+=`
|
|
5801
5801
|
\0`,ge+=s(Z,2),ge+=B.magic,ge+=s(C,2),ge+=s(y,2),ge+=s(X.crc32,4),ge+=s(X.compressedSize,4),ge+=s(X.uncompressedSize,4),ge+=s(b.length,2),ge+=s(U.length,2),{fileRecord:u.LOCAL_FILE_HEADER+ge+b+U,dirRecord:u.CENTRAL_FILE_HEADER+s(ae,2)+ge+s(w.length,2)+"\0\0\0\0"+s(se,4)+s(p,4)+b+U+w}}var A=o("../utils"),c=o("../stream/GenericWorker"),l=o("../utf8"),g=o("../crc32"),u=o("../signature");function d(h,_,m,p){c.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=_,this.zipPlatform=m,this.encodeFileName=p,this.streamFiles=h,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}A.inherits(d,c),d.prototype.push=function(h){var _=h.meta.percent||0,m=this.entriesCount,p=this._sources.length;this.accumulate?this.contentBuffer.push(h):(this.bytesWritten+=h.data.length,c.prototype.push.call(this,{data:h.data,meta:{currentFile:this.currentFile,percent:m?(_+100*(m-p-1))/m:100}}))},d.prototype.openedSource=function(h){this.currentSourceOffset=this.bytesWritten,this.currentFile=h.file.name;var _=this.streamFiles&&!h.file.dir;if(_){var m=a(h,_,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:m.fileRecord,meta:{percent:0}})}else this.accumulate=!0},d.prototype.closedSource=function(h){this.accumulate=!1;var _=this.streamFiles&&!h.file.dir,m=a(h,_,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(m.dirRecord),_)this.push({data:(function(p){return u.DATA_DESCRIPTOR+s(p.crc32,4)+s(p.compressedSize,4)+s(p.uncompressedSize,4)})(h),meta:{percent:100}});else for(this.push({data:m.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},d.prototype.flush=function(){for(var h=this.bytesWritten,_=0;_<this.dirRecords.length;_++)this.push({data:this.dirRecords[_],meta:{percent:100}});var m=this.bytesWritten-h,p=(function(I,f,C,y,E){var B=A.transformTo("string",E(y));return u.CENTRAL_DIRECTORY_END+"\0\0\0\0"+s(I,2)+s(I,2)+s(f,4)+s(C,4)+s(B.length,2)+B})(this.dirRecords.length,m,h,this.zipComment,this.encodeFileName);this.push({data:p,meta:{percent:100}})},d.prototype.prepareNextSource=function(){this.previous=this._sources.shift(),this.openedSource(this.previous.streamInfo),this.isPaused?this.previous.pause():this.previous.resume()},d.prototype.registerPrevious=function(h){this._sources.push(h);var _=this;return h.on("data",function(m){_.processChunk(m)}),h.on("end",function(){_.closedSource(_.previous.streamInfo),_._sources.length?_.prepareNextSource():_.end()}),h.on("error",function(m){_.error(m)}),this},d.prototype.resume=function(){return!!c.prototype.resume.call(this)&&(!this.previous&&this._sources.length?(this.prepareNextSource(),!0):this.previous||this._sources.length||this.generatedError?void 0:(this.end(),!0))},d.prototype.error=function(h){var _=this._sources;if(!c.prototype.error.call(this,h))return!1;for(var m=0;m<_.length;m++)try{_[m].error(h)}catch{}return!0},d.prototype.lock=function(){c.prototype.lock.call(this);for(var h=this._sources,_=0;_<h.length;_++)h[_].lock()},i.exports=d},{"../crc32":4,"../signature":23,"../stream/GenericWorker":28,"../utf8":31,"../utils":32}],9:[function(o,i,r){var s=o("../compressions"),a=o("./ZipFileWorker");r.generateWorker=function(A,c,l){var g=new a(c.streamFiles,l,c.platform,c.encodeFileName),u=0;try{A.forEach(function(d,h){u++;var _=(function(f,C){var y=f||C,E=s[y];if(!E)throw new Error(y+" is not a valid compression method !");return E})(h.options.compression,c.compression),m=h.options.compressionOptions||c.compressionOptions||{},p=h.dir,I=h.date;h._compressWorker(_,m).withStreamInfo("file",{name:d,dir:p,date:I,comment:h.comment||"",unixPermissions:h.unixPermissions,dosPermissions:h.dosPermissions}).pipe(g)}),g.entriesCount=u}catch(d){g.error(d)}return g}},{"../compressions":3,"./ZipFileWorker":8}],10:[function(o,i,r){function s(){if(!(this instanceof s))return new s;if(arguments.length)throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.");this.files=Object.create(null),this.comment=null,this.root="",this.clone=function(){var a=new s;for(var A in this)typeof this[A]!="function"&&(a[A]=this[A]);return a}}(s.prototype=o("./object")).loadAsync=o("./load"),s.support=o("./support"),s.defaults=o("./defaults"),s.version="3.10.1",s.loadAsync=function(a,A){return new s().loadAsync(a,A)},s.external=o("./external"),i.exports=s},{"./defaults":5,"./external":6,"./load":11,"./object":15,"./support":30}],11:[function(o,i,r){var s=o("./utils"),a=o("./external"),A=o("./utf8"),c=o("./zipEntries"),l=o("./stream/Crc32Probe"),g=o("./nodejsUtils");function u(d){return new a.Promise(function(h,_){var m=d.decompressed.getContentWorker().pipe(new l);m.on("error",function(p){_(p)}).on("end",function(){m.streamInfo.crc32!==d.decompressed.crc32?_(new Error("Corrupted zip : CRC32 mismatch")):h()}).resume()})}i.exports=function(d,h){var _=this;return h=s.extend(h||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:A.utf8decode}),g.isNode&&g.isStream(d)?a.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file.")):s.prepareContent("the loaded zip file",d,!0,h.optimizedBinaryString,h.base64).then(function(m){var p=new c(h);return p.load(m),p}).then(function(m){var p=[a.Promise.resolve(m)],I=m.files;if(h.checkCRC32)for(var f=0;f<I.length;f++)p.push(u(I[f]));return a.Promise.all(p)}).then(function(m){for(var p=m.shift(),I=p.files,f=0;f<I.length;f++){var C=I[f],y=C.fileNameStr,E=s.resolve(C.fileNameStr);_.file(E,C.decompressed,{binary:!0,optimizedBinaryString:!0,date:C.date,dir:C.dir,comment:C.fileCommentStr.length?C.fileCommentStr:null,unixPermissions:C.unixPermissions,dosPermissions:C.dosPermissions,createFolders:h.createFolders}),C.dir||(_.file(E).unsafeOriginalName=y)}return p.zipComment.length&&(_.comment=p.zipComment),_})}},{"./external":6,"./nodejsUtils":14,"./stream/Crc32Probe":25,"./utf8":31,"./utils":32,"./zipEntries":33}],12:[function(o,i,r){var s=o("../utils"),a=o("../stream/GenericWorker");function A(c,l){a.call(this,"Nodejs stream input adapter for "+c),this._upstreamEnded=!1,this._bindStream(l)}s.inherits(A,a),A.prototype._bindStream=function(c){var l=this;(this._stream=c).pause(),c.on("data",function(g){l.push({data:g,meta:{percent:0}})}).on("error",function(g){l.isPaused?this.generatedError=g:l.error(g)}).on("end",function(){l.isPaused?l._upstreamEnded=!0:l.end()})},A.prototype.pause=function(){return!!a.prototype.pause.call(this)&&(this._stream.pause(),!0)},A.prototype.resume=function(){return!!a.prototype.resume.call(this)&&(this._upstreamEnded?this.end():this._stream.resume(),!0)},i.exports=A},{"../stream/GenericWorker":28,"../utils":32}],13:[function(o,i,r){var s=o("readable-stream").Readable;function a(A,c,l){s.call(this,c),this._helper=A;var g=this;A.on("data",function(u,d){g.push(u)||g._helper.pause(),l&&l(d)}).on("error",function(u){g.emit("error",u)}).on("end",function(){g.push(null)})}o("../utils").inherits(a,s),a.prototype._read=function(){this._helper.resume()},i.exports=a},{"../utils":32,"readable-stream":16}],14:[function(o,i,r){i.exports={isNode:typeof Buffer<"u",newBufferFrom:function(s,a){if(Buffer.from&&Buffer.from!==Uint8Array.from)return Buffer.from(s,a);if(typeof s=="number")throw new Error('The "data" argument must not be a number');return new Buffer(s,a)},allocBuffer:function(s){if(Buffer.alloc)return Buffer.alloc(s);var a=new Buffer(s);return a.fill(0),a},isBuffer:function(s){return Buffer.isBuffer(s)},isStream:function(s){return s&&typeof s.on=="function"&&typeof s.pause=="function"&&typeof s.resume=="function"}}},{}],15:[function(o,i,r){function s(E,B,Q){var b,D=A.getTypeOf(B),R=A.extend(Q||{},g);R.date=R.date||new Date,R.compression!==null&&(R.compression=R.compression.toUpperCase()),typeof R.unixPermissions=="string"&&(R.unixPermissions=parseInt(R.unixPermissions,8)),R.unixPermissions&&16384&R.unixPermissions&&(R.dir=!0),R.dosPermissions&&16&R.dosPermissions&&(R.dir=!0),R.dir&&(E=I(E)),R.createFolders&&(b=p(E))&&f.call(this,b,!0);var w=D==="string"&&R.binary===!1&&R.base64===!1;Q&&Q.binary!==void 0||(R.binary=!w),(B instanceof u&&B.uncompressedSize===0||R.dir||!B||B.length===0)&&(R.base64=!1,R.binary=!0,B="",R.compression="STORE",D="string");var H=null;H=B instanceof u||B instanceof c?B:_.isNode&&_.isStream(B)?new m(E,B):A.prepareContent(E,B,R.binary,R.optimizedBinaryString,R.base64);var G=new d(E,H,R);this.files[E]=G}var a=o("./utf8"),A=o("./utils"),c=o("./stream/GenericWorker"),l=o("./stream/StreamHelper"),g=o("./defaults"),u=o("./compressedObject"),d=o("./zipObject"),h=o("./generate"),_=o("./nodejsUtils"),m=o("./nodejs/NodejsStreamInputAdapter"),p=function(E){E.slice(-1)==="/"&&(E=E.substring(0,E.length-1));var B=E.lastIndexOf("/");return 0<B?E.substring(0,B):""},I=function(E){return E.slice(-1)!=="/"&&(E+="/"),E},f=function(E,B){return B=B!==void 0?B:g.createFolders,E=I(E),this.files[E]||s.call(this,E,null,{dir:!0,createFolders:B}),this.files[E]};function C(E){return Object.prototype.toString.call(E)==="[object RegExp]"}var y={load:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},forEach:function(E){var B,Q,b;for(B in this.files)b=this.files[B],(Q=B.slice(this.root.length,B.length))&&B.slice(0,this.root.length)===this.root&&E(Q,b)},filter:function(E){var B=[];return this.forEach(function(Q,b){E(Q,b)&&B.push(b)}),B},file:function(E,B,Q){if(arguments.length!==1)return E=this.root+E,s.call(this,E,B,Q),this;if(C(E)){var b=E;return this.filter(function(R,w){return!w.dir&&b.test(R)})}var D=this.files[this.root+E];return D&&!D.dir?D:null},folder:function(E){if(!E)return this;if(C(E))return this.filter(function(D,R){return R.dir&&E.test(D)});var B=this.root+E,Q=f.call(this,B),b=this.clone();return b.root=Q.name,b},remove:function(E){E=this.root+E;var B=this.files[E];if(B||(E.slice(-1)!=="/"&&(E+="/"),B=this.files[E]),B&&!B.dir)delete this.files[E];else for(var Q=this.filter(function(D,R){return R.name.slice(0,E.length)===E}),b=0;b<Q.length;b++)delete this.files[Q[b].name];return this},generate:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},generateInternalStream:function(E){var B,Q={};try{if((Q=A.extend(E||{},{streamFiles:!1,compression:"STORE",compressionOptions:null,type:"",platform:"DOS",comment:null,mimeType:"application/zip",encodeFileName:a.utf8encode})).type=Q.type.toLowerCase(),Q.compression=Q.compression.toUpperCase(),Q.type==="binarystring"&&(Q.type="string"),!Q.type)throw new Error("No output type specified.");A.checkSupport(Q.type),Q.platform!=="darwin"&&Q.platform!=="freebsd"&&Q.platform!=="linux"&&Q.platform!=="sunos"||(Q.platform="UNIX"),Q.platform==="win32"&&(Q.platform="DOS");var b=Q.comment||this.comment||"";B=h.generateWorker(this,Q,b)}catch(D){(B=new c("error")).error(D)}return new l(B,Q.type||"string",Q.mimeType)},generateAsync:function(E,B){return this.generateInternalStream(E).accumulate(B)},generateNodeStream:function(E,B){return(E=E||{}).type||(E.type="nodebuffer"),this.generateInternalStream(E).toNodejsStream(B)}};i.exports=y},{"./compressedObject":2,"./defaults":5,"./generate":9,"./nodejs/NodejsStreamInputAdapter":12,"./nodejsUtils":14,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31,"./utils":32,"./zipObject":35}],16:[function(o,i,r){i.exports=o("stream")},{stream:void 0}],17:[function(o,i,r){var s=o("./DataReader");function a(A){s.call(this,A);for(var c=0;c<this.data.length;c++)A[c]=255&A[c]}o("../utils").inherits(a,s),a.prototype.byteAt=function(A){return this.data[this.zero+A]},a.prototype.lastIndexOfSignature=function(A){for(var c=A.charCodeAt(0),l=A.charCodeAt(1),g=A.charCodeAt(2),u=A.charCodeAt(3),d=this.length-4;0<=d;--d)if(this.data[d]===c&&this.data[d+1]===l&&this.data[d+2]===g&&this.data[d+3]===u)return d-this.zero;return-1},a.prototype.readAndCheckSignature=function(A){var c=A.charCodeAt(0),l=A.charCodeAt(1),g=A.charCodeAt(2),u=A.charCodeAt(3),d=this.readData(4);return c===d[0]&&l===d[1]&&g===d[2]&&u===d[3]},a.prototype.readData=function(A){if(this.checkOffset(A),A===0)return[];var c=this.data.slice(this.zero+this.index,this.zero+this.index+A);return this.index+=A,c},i.exports=a},{"../utils":32,"./DataReader":18}],18:[function(o,i,r){var s=o("../utils");function a(A){this.data=A,this.length=A.length,this.index=0,this.zero=0}a.prototype={checkOffset:function(A){this.checkIndex(this.index+A)},checkIndex:function(A){if(this.length<this.zero+A||A<0)throw new Error("End of data reached (data length = "+this.length+", asked index = "+A+"). Corrupted zip ?")},setIndex:function(A){this.checkIndex(A),this.index=A},skip:function(A){this.setIndex(this.index+A)},byteAt:function(){},readInt:function(A){var c,l=0;for(this.checkOffset(A),c=this.index+A-1;c>=this.index;c--)l=(l<<8)+this.byteAt(c);return this.index+=A,l},readString:function(A){return s.transformTo("string",this.readData(A))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var A=this.readInt(4);return new Date(Date.UTC(1980+(A>>25&127),(A>>21&15)-1,A>>16&31,A>>11&31,A>>5&63,(31&A)<<1))}},i.exports=a},{"../utils":32}],19:[function(o,i,r){var s=o("./Uint8ArrayReader");function a(A){s.call(this,A)}o("../utils").inherits(a,s),a.prototype.readData=function(A){this.checkOffset(A);var c=this.data.slice(this.zero+this.index,this.zero+this.index+A);return this.index+=A,c},i.exports=a},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(o,i,r){var s=o("./DataReader");function a(A){s.call(this,A)}o("../utils").inherits(a,s),a.prototype.byteAt=function(A){return this.data.charCodeAt(this.zero+A)},a.prototype.lastIndexOfSignature=function(A){return this.data.lastIndexOf(A)-this.zero},a.prototype.readAndCheckSignature=function(A){return A===this.readData(4)},a.prototype.readData=function(A){this.checkOffset(A);var c=this.data.slice(this.zero+this.index,this.zero+this.index+A);return this.index+=A,c},i.exports=a},{"../utils":32,"./DataReader":18}],21:[function(o,i,r){var s=o("./ArrayReader");function a(A){s.call(this,A)}o("../utils").inherits(a,s),a.prototype.readData=function(A){if(this.checkOffset(A),A===0)return new Uint8Array(0);var c=this.data.subarray(this.zero+this.index,this.zero+this.index+A);return this.index+=A,c},i.exports=a},{"../utils":32,"./ArrayReader":17}],22:[function(o,i,r){var s=o("../utils"),a=o("../support"),A=o("./ArrayReader"),c=o("./StringReader"),l=o("./NodeBufferReader"),g=o("./Uint8ArrayReader");i.exports=function(u){var d=s.getTypeOf(u);return s.checkSupport(d),d!=="string"||a.uint8array?d==="nodebuffer"?new l(u):a.uint8array?new g(s.transformTo("uint8array",u)):new A(s.transformTo("array",u)):new c(u)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(o,i,r){r.LOCAL_FILE_HEADER="PK",r.CENTRAL_FILE_HEADER="PK",r.CENTRAL_DIRECTORY_END="PK",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x07",r.ZIP64_CENTRAL_DIRECTORY_END="PK",r.DATA_DESCRIPTOR="PK\x07\b"},{}],24:[function(o,i,r){var s=o("./GenericWorker"),a=o("../utils");function A(c){s.call(this,"ConvertWorker to "+c),this.destType=c}a.inherits(A,s),A.prototype.processChunk=function(c){this.push({data:a.transformTo(this.destType,c.data),meta:c.meta})},i.exports=A},{"../utils":32,"./GenericWorker":28}],25:[function(o,i,r){var s=o("./GenericWorker"),a=o("../crc32");function A(){s.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}o("../utils").inherits(A,s),A.prototype.processChunk=function(c){this.streamInfo.crc32=a(c.data,this.streamInfo.crc32||0),this.push(c)},i.exports=A},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(o,i,r){var s=o("../utils"),a=o("./GenericWorker");function A(c){a.call(this,"DataLengthProbe for "+c),this.propName=c,this.withStreamInfo(c,0)}s.inherits(A,a),A.prototype.processChunk=function(c){if(c){var l=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=l+c.data.length}a.prototype.processChunk.call(this,c)},i.exports=A},{"../utils":32,"./GenericWorker":28}],27:[function(o,i,r){var s=o("../utils"),a=o("./GenericWorker");function A(c){a.call(this,"DataWorker");var l=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,c.then(function(g){l.dataIsReady=!0,l.data=g,l.max=g&&g.length||0,l.type=s.getTypeOf(g),l.isPaused||l._tickAndRepeat()},function(g){l.error(g)})}s.inherits(A,a),A.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this.data=null},A.prototype.resume=function(){return!!a.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,s.delay(this._tickAndRepeat,[],this)),!0)},A.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(s.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},A.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var c=null,l=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":c=this.data.substring(this.index,l);break;case"uint8array":c=this.data.subarray(this.index,l);break;case"array":case"nodebuffer":c=this.data.slice(this.index,l)}return this.index=l,this.push({data:c,meta:{percent:this.max?this.index/this.max*100:0}})},i.exports=A},{"../utils":32,"./GenericWorker":28}],28:[function(o,i,r){function s(a){this.name=a||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}s.prototype={push:function(a){this.emit("data",a)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(a){this.emit("error",a)}return!0},error:function(a){return!this.isFinished&&(this.isPaused?this.generatedError=a:(this.isFinished=!0,this.emit("error",a),this.previous&&this.previous.error(a),this.cleanUp()),!0)},on:function(a,A){return this._listeners[a].push(A),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(a,A){if(this._listeners[a])for(var c=0;c<this._listeners[a].length;c++)this._listeners[a][c].call(this,A)},pipe:function(a){return a.registerPrevious(this)},registerPrevious:function(a){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.streamInfo=a.streamInfo,this.mergeStreamInfo(),this.previous=a;var A=this;return a.on("data",function(c){A.processChunk(c)}),a.on("end",function(){A.end()}),a.on("error",function(c){A.error(c)}),this},pause:function(){return!this.isPaused&&!this.isFinished&&(this.isPaused=!0,this.previous&&this.previous.pause(),!0)},resume:function(){if(!this.isPaused||this.isFinished)return!1;var a=this.isPaused=!1;return this.generatedError&&(this.error(this.generatedError),a=!0),this.previous&&this.previous.resume(),!a},flush:function(){},processChunk:function(a){this.push(a)},withStreamInfo:function(a,A){return this.extraStreamInfo[a]=A,this.mergeStreamInfo(),this},mergeStreamInfo:function(){for(var a in this.extraStreamInfo)Object.prototype.hasOwnProperty.call(this.extraStreamInfo,a)&&(this.streamInfo[a]=this.extraStreamInfo[a])},lock:function(){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.isLocked=!0,this.previous&&this.previous.lock()},toString:function(){var a="Worker "+this.name;return this.previous?this.previous+" -> "+a:a}},i.exports=s},{}],29:[function(o,i,r){var s=o("../utils"),a=o("./ConvertWorker"),A=o("./GenericWorker"),c=o("../base64"),l=o("../support"),g=o("../external"),u=null;if(l.nodestream)try{u=o("../nodejs/NodejsStreamOutputAdapter")}catch{}function d(_,m){return new g.Promise(function(p,I){var f=[],C=_._internalType,y=_._outputType,E=_._mimeType;_.on("data",function(B,Q){f.push(B),m&&m(Q)}).on("error",function(B){f=[],I(B)}).on("end",function(){try{var B=(function(Q,b,D){switch(Q){case"blob":return s.newBlob(s.transformTo("arraybuffer",b),D);case"base64":return c.encode(b);default:return s.transformTo(Q,b)}})(y,(function(Q,b){var D,R=0,w=null,H=0;for(D=0;D<b.length;D++)H+=b[D].length;switch(Q){case"string":return b.join("");case"array":return Array.prototype.concat.apply([],b);case"uint8array":for(w=new Uint8Array(H),D=0;D<b.length;D++)w.set(b[D],R),R+=b[D].length;return w;case"nodebuffer":return Buffer.concat(b);default:throw new Error("concat : unsupported type '"+Q+"'")}})(C,f),E);p(B)}catch(Q){I(Q)}f=[]}).resume()})}function h(_,m,p){var I=m;switch(m){case"blob":case"arraybuffer":I="uint8array";break;case"base64":I="string"}try{this._internalType=I,this._outputType=m,this._mimeType=p,s.checkSupport(I),this._worker=_.pipe(new a(I)),_.lock()}catch(f){this._worker=new A("error"),this._worker.error(f)}}h.prototype={accumulate:function(_){return d(this,_)},on:function(_,m){var p=this;return _==="data"?this._worker.on(_,function(I){m.call(p,I.data,I.meta)}):this._worker.on(_,function(){s.delay(m,arguments,p)}),this},resume:function(){return s.delay(this._worker.resume,[],this._worker),this},pause:function(){return this._worker.pause(),this},toNodejsStream:function(_){if(s.checkSupport("nodestream"),this._outputType!=="nodebuffer")throw new Error(this._outputType+" is not supported by this method");return new u(this,{objectMode:this._outputType!=="nodebuffer"},_)}},i.exports=h},{"../base64":1,"../external":6,"../nodejs/NodejsStreamOutputAdapter":13,"../support":30,"../utils":32,"./ConvertWorker":24,"./GenericWorker":28}],30:[function(o,i,r){if(r.base64=!0,r.array=!0,r.string=!0,r.arraybuffer=typeof ArrayBuffer<"u"&&typeof Uint8Array<"u",r.nodebuffer=typeof Buffer<"u",r.uint8array=typeof Uint8Array<"u",typeof ArrayBuffer>"u")r.blob=!1;else{var s=new ArrayBuffer(0);try{r.blob=new Blob([s],{type:"application/zip"}).size===0}catch{try{var a=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);a.append(s),r.blob=a.getBlob("application/zip").size===0}catch{r.blob=!1}}}try{r.nodestream=!!o("readable-stream").Readable}catch{r.nodestream=!1}},{"readable-stream":16}],31:[function(o,i,r){for(var s=o("./utils"),a=o("./support"),A=o("./nodejsUtils"),c=o("./stream/GenericWorker"),l=new Array(256),g=0;g<256;g++)l[g]=252<=g?6:248<=g?5:240<=g?4:224<=g?3:192<=g?2:1;l[254]=l[254]=1;function u(){c.call(this,"utf-8 decode"),this.leftOver=null}function d(){c.call(this,"utf-8 encode")}r.utf8encode=function(h){return a.nodebuffer?A.newBufferFrom(h,"utf-8"):(function(_){var m,p,I,f,C,y=_.length,E=0;for(f=0;f<y;f++)(64512&(p=_.charCodeAt(f)))==55296&&f+1<y&&(64512&(I=_.charCodeAt(f+1)))==56320&&(p=65536+(p-55296<<10)+(I-56320),f++),E+=p<128?1:p<2048?2:p<65536?3:4;for(m=a.uint8array?new Uint8Array(E):new Array(E),f=C=0;C<E;f++)(64512&(p=_.charCodeAt(f)))==55296&&f+1<y&&(64512&(I=_.charCodeAt(f+1)))==56320&&(p=65536+(p-55296<<10)+(I-56320),f++),p<128?m[C++]=p:(p<2048?m[C++]=192|p>>>6:(p<65536?m[C++]=224|p>>>12:(m[C++]=240|p>>>18,m[C++]=128|p>>>12&63),m[C++]=128|p>>>6&63),m[C++]=128|63&p);return m})(h)},r.utf8decode=function(h){return a.nodebuffer?s.transformTo("nodebuffer",h).toString("utf-8"):(function(_){var m,p,I,f,C=_.length,y=new Array(2*C);for(m=p=0;m<C;)if((I=_[m++])<128)y[p++]=I;else if(4<(f=l[I]))y[p++]=65533,m+=f-1;else{for(I&=f===2?31:f===3?15:7;1<f&&m<C;)I=I<<6|63&_[m++],f--;1<f?y[p++]=65533:I<65536?y[p++]=I:(I-=65536,y[p++]=55296|I>>10&1023,y[p++]=56320|1023&I)}return y.length!==p&&(y.subarray?y=y.subarray(0,p):y.length=p),s.applyFromCharCode(y)})(h=s.transformTo(a.uint8array?"uint8array":"array",h))},s.inherits(u,c),u.prototype.processChunk=function(h){var _=s.transformTo(a.uint8array?"uint8array":"array",h.data);if(this.leftOver&&this.leftOver.length){if(a.uint8array){var m=_;(_=new Uint8Array(m.length+this.leftOver.length)).set(this.leftOver,0),_.set(m,this.leftOver.length)}else _=this.leftOver.concat(_);this.leftOver=null}var p=(function(f,C){var y;for((C=C||f.length)>f.length&&(C=f.length),y=C-1;0<=y&&(192&f[y])==128;)y--;return y<0||y===0?C:y+l[f[y]]>C?y:C})(_),I=_;p!==_.length&&(a.uint8array?(I=_.subarray(0,p),this.leftOver=_.subarray(p,_.length)):(I=_.slice(0,p),this.leftOver=_.slice(p,_.length))),this.push({data:r.utf8decode(I),meta:h.meta})},u.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:r.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},r.Utf8DecodeWorker=u,s.inherits(d,c),d.prototype.processChunk=function(h){this.push({data:r.utf8encode(h.data),meta:h.meta})},r.Utf8EncodeWorker=d},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(o,i,r){var s=o("./support"),a=o("./base64"),A=o("./nodejsUtils"),c=o("./external");function l(m){return m}function g(m,p){for(var I=0;I<m.length;++I)p[I]=255&m.charCodeAt(I);return p}o("setimmediate"),r.newBlob=function(m,p){r.checkSupport("blob");try{return new Blob([m],{type:p})}catch{try{var I=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);return I.append(m),I.getBlob(p)}catch{throw new Error("Bug : can't construct the Blob.")}}};var u={stringifyByChunk:function(m,p,I){var f=[],C=0,y=m.length;if(y<=I)return String.fromCharCode.apply(null,m);for(;C<y;)p==="array"||p==="nodebuffer"?f.push(String.fromCharCode.apply(null,m.slice(C,Math.min(C+I,y)))):f.push(String.fromCharCode.apply(null,m.subarray(C,Math.min(C+I,y)))),C+=I;return f.join("")},stringifyByChar:function(m){for(var p="",I=0;I<m.length;I++)p+=String.fromCharCode(m[I]);return p},applyCanBeUsed:{uint8array:(function(){try{return s.uint8array&&String.fromCharCode.apply(null,new Uint8Array(1)).length===1}catch{return!1}})(),nodebuffer:(function(){try{return s.nodebuffer&&String.fromCharCode.apply(null,A.allocBuffer(1)).length===1}catch{return!1}})()}};function d(m){var p=65536,I=r.getTypeOf(m),f=!0;if(I==="uint8array"?f=u.applyCanBeUsed.uint8array:I==="nodebuffer"&&(f=u.applyCanBeUsed.nodebuffer),f)for(;1<p;)try{return u.stringifyByChunk(m,I,p)}catch{p=Math.floor(p/2)}return u.stringifyByChar(m)}function h(m,p){for(var I=0;I<m.length;I++)p[I]=m[I];return p}r.applyFromCharCode=d;var _={};_.string={string:l,array:function(m){return g(m,new Array(m.length))},arraybuffer:function(m){return _.string.uint8array(m).buffer},uint8array:function(m){return g(m,new Uint8Array(m.length))},nodebuffer:function(m){return g(m,A.allocBuffer(m.length))}},_.array={string:d,array:l,arraybuffer:function(m){return new Uint8Array(m).buffer},uint8array:function(m){return new Uint8Array(m)},nodebuffer:function(m){return A.newBufferFrom(m)}},_.arraybuffer={string:function(m){return d(new Uint8Array(m))},array:function(m){return h(new Uint8Array(m),new Array(m.byteLength))},arraybuffer:l,uint8array:function(m){return new Uint8Array(m)},nodebuffer:function(m){return A.newBufferFrom(new Uint8Array(m))}},_.uint8array={string:d,array:function(m){return h(m,new Array(m.length))},arraybuffer:function(m){return m.buffer},uint8array:l,nodebuffer:function(m){return A.newBufferFrom(m)}},_.nodebuffer={string:d,array:function(m){return h(m,new Array(m.length))},arraybuffer:function(m){return _.nodebuffer.uint8array(m).buffer},uint8array:function(m){return h(m,new Uint8Array(m.length))},nodebuffer:l},r.transformTo=function(m,p){if(p=p||"",!m)return p;r.checkSupport(m);var I=r.getTypeOf(p);return _[I][m](p)},r.resolve=function(m){for(var p=m.split("/"),I=[],f=0;f<p.length;f++){var C=p[f];C==="."||C===""&&f!==0&&f!==p.length-1||(C===".."?I.pop():I.push(C))}return I.join("/")},r.getTypeOf=function(m){return typeof m=="string"?"string":Object.prototype.toString.call(m)==="[object Array]"?"array":s.nodebuffer&&A.isBuffer(m)?"nodebuffer":s.uint8array&&m instanceof Uint8Array?"uint8array":s.arraybuffer&&m instanceof ArrayBuffer?"arraybuffer":void 0},r.checkSupport=function(m){if(!s[m.toLowerCase()])throw new Error(m+" is not supported by this platform")},r.MAX_VALUE_16BITS=65535,r.MAX_VALUE_32BITS=-1,r.pretty=function(m){var p,I,f="";for(I=0;I<(m||"").length;I++)f+="\\x"+((p=m.charCodeAt(I))<16?"0":"")+p.toString(16).toUpperCase();return f},r.delay=function(m,p,I){setImmediate(function(){m.apply(I||null,p||[])})},r.inherits=function(m,p){function I(){}I.prototype=p.prototype,m.prototype=new I},r.extend=function(){var m,p,I={};for(m=0;m<arguments.length;m++)for(p in arguments[m])Object.prototype.hasOwnProperty.call(arguments[m],p)&&I[p]===void 0&&(I[p]=arguments[m][p]);return I},r.prepareContent=function(m,p,I,f,C){return c.Promise.resolve(p).then(function(y){return s.blob&&(y instanceof Blob||["[object File]","[object Blob]"].indexOf(Object.prototype.toString.call(y))!==-1)&&typeof FileReader<"u"?new c.Promise(function(E,B){var Q=new FileReader;Q.onload=function(b){E(b.target.result)},Q.onerror=function(b){B(b.target.error)},Q.readAsArrayBuffer(y)}):y}).then(function(y){var E=r.getTypeOf(y);return E?(E==="arraybuffer"?y=r.transformTo("uint8array",y):E==="string"&&(C?y=a.decode(y):I&&f!==!0&&(y=(function(B){return g(B,s.uint8array?new Uint8Array(B.length):new Array(B.length))})(y))),y):c.Promise.reject(new Error("Can't read the data of '"+m+"'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?"))})}},{"./base64":1,"./external":6,"./nodejsUtils":14,"./support":30,setimmediate:54}],33:[function(o,i,r){var s=o("./reader/readerFor"),a=o("./utils"),A=o("./signature"),c=o("./zipEntry"),l=o("./support");function g(u){this.files=[],this.loadOptions=u}g.prototype={checkSignature:function(u){if(!this.reader.readAndCheckSignature(u)){this.reader.index-=4;var d=this.reader.readString(4);throw new Error("Corrupted zip or bug: unexpected signature ("+a.pretty(d)+", expected "+a.pretty(u)+")")}},isSignature:function(u,d){var h=this.reader.index;this.reader.setIndex(u);var _=this.reader.readString(4)===d;return this.reader.setIndex(h),_},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2);var u=this.reader.readData(this.zipCommentLength),d=l.uint8array?"uint8array":"array",h=a.transformTo(d,u);this.zipComment=this.loadOptions.decodeFileName(h)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.reader.skip(4),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var u,d,h,_=this.zip64EndOfCentralSize-44;0<_;)u=this.reader.readInt(2),d=this.reader.readInt(4),h=this.reader.readData(d),this.zip64ExtensibleData[u]={id:u,length:d,value:h}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),1<this.disksCount)throw new Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var u,d;for(u=0;u<this.files.length;u++)d=this.files[u],this.reader.setIndex(d.localHeaderOffset),this.checkSignature(A.LOCAL_FILE_HEADER),d.readLocalPart(this.reader),d.handleUTF8(),d.processAttributes()},readCentralDir:function(){var u;for(this.reader.setIndex(this.centralDirOffset);this.reader.readAndCheckSignature(A.CENTRAL_FILE_HEADER);)(u=new c({zip64:this.zip64},this.loadOptions)).readCentralPart(this.reader),this.files.push(u);if(this.centralDirRecords!==this.files.length&&this.centralDirRecords!==0&&this.files.length===0)throw new Error("Corrupted zip or bug: expected "+this.centralDirRecords+" records in central dir, got "+this.files.length)},readEndOfCentral:function(){var u=this.reader.lastIndexOfSignature(A.CENTRAL_DIRECTORY_END);if(u<0)throw this.isSignature(0,A.LOCAL_FILE_HEADER)?new Error("Corrupted zip: can't find end of central directory"):new Error("Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html");this.reader.setIndex(u);var d=u;if(this.checkSignature(A.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===a.MAX_VALUE_16BITS||this.diskWithCentralDirStart===a.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===a.MAX_VALUE_16BITS||this.centralDirRecords===a.MAX_VALUE_16BITS||this.centralDirSize===a.MAX_VALUE_32BITS||this.centralDirOffset===a.MAX_VALUE_32BITS){if(this.zip64=!0,(u=this.reader.lastIndexOfSignature(A.ZIP64_CENTRAL_DIRECTORY_LOCATOR))<0)throw new Error("Corrupted zip: can't find the ZIP64 end of central directory locator");if(this.reader.setIndex(u),this.checkSignature(A.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,A.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(A.ZIP64_CENTRAL_DIRECTORY_END),this.relativeOffsetEndOfZip64CentralDir<0))throw new Error("Corrupted zip: can't find the ZIP64 end of central directory");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(A.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}var h=this.centralDirOffset+this.centralDirSize;this.zip64&&(h+=20,h+=12+this.zip64EndOfCentralSize);var _=d-h;if(0<_)this.isSignature(d,A.CENTRAL_FILE_HEADER)||(this.reader.zero=_);else if(_<0)throw new Error("Corrupted zip: missing "+Math.abs(_)+" bytes.")},prepareReader:function(u){this.reader=s(u)},load:function(u){this.prepareReader(u),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},i.exports=g},{"./reader/readerFor":22,"./signature":23,"./support":30,"./utils":32,"./zipEntry":34}],34:[function(o,i,r){var s=o("./reader/readerFor"),a=o("./utils"),A=o("./compressedObject"),c=o("./crc32"),l=o("./utf8"),g=o("./compressions"),u=o("./support");function d(h,_){this.options=h,this.loadOptions=_}d.prototype={isEncrypted:function(){return(1&this.bitFlag)==1},useUTF8:function(){return(2048&this.bitFlag)==2048},readLocalPart:function(h){var _,m;if(h.skip(22),this.fileNameLength=h.readInt(2),m=h.readInt(2),this.fileName=h.readData(this.fileNameLength),h.skip(m),this.compressedSize===-1||this.uncompressedSize===-1)throw new Error("Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)");if((_=(function(p){for(var I in g)if(Object.prototype.hasOwnProperty.call(g,I)&&g[I].magic===p)return g[I];return null})(this.compressionMethod))===null)throw new Error("Corrupted zip : compression "+a.pretty(this.compressionMethod)+" unknown (inner file : "+a.transformTo("string",this.fileName)+")");this.decompressed=new A(this.compressedSize,this.uncompressedSize,this.crc32,_,h.readData(this.compressedSize))},readCentralPart:function(h){this.versionMadeBy=h.readInt(2),h.skip(2),this.bitFlag=h.readInt(2),this.compressionMethod=h.readString(2),this.date=h.readDate(),this.crc32=h.readInt(4),this.compressedSize=h.readInt(4),this.uncompressedSize=h.readInt(4);var _=h.readInt(2);if(this.extraFieldsLength=h.readInt(2),this.fileCommentLength=h.readInt(2),this.diskNumberStart=h.readInt(2),this.internalFileAttributes=h.readInt(2),this.externalFileAttributes=h.readInt(4),this.localHeaderOffset=h.readInt(4),this.isEncrypted())throw new Error("Encrypted zip are not supported");h.skip(_),this.readExtraFields(h),this.parseZIP64ExtraField(h),this.fileComment=h.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var h=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),h==0&&(this.dosPermissions=63&this.externalFileAttributes),h==3&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||this.fileNameStr.slice(-1)!=="/"||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var h=s(this.extraFields[1].value);this.uncompressedSize===a.MAX_VALUE_32BITS&&(this.uncompressedSize=h.readInt(8)),this.compressedSize===a.MAX_VALUE_32BITS&&(this.compressedSize=h.readInt(8)),this.localHeaderOffset===a.MAX_VALUE_32BITS&&(this.localHeaderOffset=h.readInt(8)),this.diskNumberStart===a.MAX_VALUE_32BITS&&(this.diskNumberStart=h.readInt(4))}},readExtraFields:function(h){var _,m,p,I=h.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});h.index+4<I;)_=h.readInt(2),m=h.readInt(2),p=h.readData(m),this.extraFields[_]={id:_,length:m,value:p};h.setIndex(I)},handleUTF8:function(){var h=u.uint8array?"uint8array":"array";if(this.useUTF8())this.fileNameStr=l.utf8decode(this.fileName),this.fileCommentStr=l.utf8decode(this.fileComment);else{var _=this.findExtraFieldUnicodePath();if(_!==null)this.fileNameStr=_;else{var m=a.transformTo(h,this.fileName);this.fileNameStr=this.loadOptions.decodeFileName(m)}var p=this.findExtraFieldUnicodeComment();if(p!==null)this.fileCommentStr=p;else{var I=a.transformTo(h,this.fileComment);this.fileCommentStr=this.loadOptions.decodeFileName(I)}}},findExtraFieldUnicodePath:function(){var h=this.extraFields[28789];if(h){var _=s(h.value);return _.readInt(1)!==1||c(this.fileName)!==_.readInt(4)?null:l.utf8decode(_.readData(h.length-5))}return null},findExtraFieldUnicodeComment:function(){var h=this.extraFields[25461];if(h){var _=s(h.value);return _.readInt(1)!==1||c(this.fileComment)!==_.readInt(4)?null:l.utf8decode(_.readData(h.length-5))}return null}},i.exports=d},{"./compressedObject":2,"./compressions":3,"./crc32":4,"./reader/readerFor":22,"./support":30,"./utf8":31,"./utils":32}],35:[function(o,i,r){function s(_,m,p){this.name=_,this.dir=p.dir,this.date=p.date,this.comment=p.comment,this.unixPermissions=p.unixPermissions,this.dosPermissions=p.dosPermissions,this._data=m,this._dataBinary=p.binary,this.options={compression:p.compression,compressionOptions:p.compressionOptions}}var a=o("./stream/StreamHelper"),A=o("./stream/DataWorker"),c=o("./utf8"),l=o("./compressedObject"),g=o("./stream/GenericWorker");s.prototype={internalStream:function(_){var m=null,p="string";try{if(!_)throw new Error("No output type specified.");var I=(p=_.toLowerCase())==="string"||p==="text";p!=="binarystring"&&p!=="text"||(p="string"),m=this._decompressWorker();var f=!this._dataBinary;f&&!I&&(m=m.pipe(new c.Utf8EncodeWorker)),!f&&I&&(m=m.pipe(new c.Utf8DecodeWorker))}catch(C){(m=new g("error")).error(C)}return new a(m,p,"")},async:function(_,m){return this.internalStream(_).accumulate(m)},nodeStream:function(_,m){return this.internalStream(_||"nodebuffer").toNodejsStream(m)},_compressWorker:function(_,m){if(this._data instanceof l&&this._data.compression.magic===_.magic)return this._data.getCompressedWorker();var p=this._decompressWorker();return this._dataBinary||(p=p.pipe(new c.Utf8EncodeWorker)),l.createWorkerFrom(p,_,m)},_decompressWorker:function(){return this._data instanceof l?this._data.getContentWorker():this._data instanceof g?this._data:new A(this._data)}};for(var u=["asText","asBinary","asNodeBuffer","asUint8Array","asArrayBuffer"],d=function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},h=0;h<u.length;h++)s.prototype[u[h]]=d;i.exports=s},{"./compressedObject":2,"./stream/DataWorker":27,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31}],36:[function(o,i,r){(function(s){var a,A,c=s.MutationObserver||s.WebKitMutationObserver;if(c){var l=0,g=new c(_),u=s.document.createTextNode("");g.observe(u,{characterData:!0}),a=function(){u.data=l=++l%2}}else if(s.setImmediate||s.MessageChannel===void 0)a="document"in s&&"onreadystatechange"in s.document.createElement("script")?function(){var m=s.document.createElement("script");m.onreadystatechange=function(){_(),m.onreadystatechange=null,m.parentNode.removeChild(m),m=null},s.document.documentElement.appendChild(m)}:function(){setTimeout(_,0)};else{var d=new s.MessageChannel;d.port1.onmessage=_,a=function(){d.port2.postMessage(0)}}var h=[];function _(){var m,p;A=!0;for(var I=h.length;I;){for(p=h,h=[],m=-1;++m<I;)p[m]();I=h.length}A=!1}i.exports=function(m){h.push(m)!==1||A||a()}}).call(this,typeof NC<"u"?NC:typeof self<"u"?self:typeof window<"u"?window:{})},{}],37:[function(o,i,r){var s=o("immediate");function a(){}var A={},c=["REJECTED"],l=["FULFILLED"],g=["PENDING"];function u(I){if(typeof I!="function")throw new TypeError("resolver must be a function");this.state=g,this.queue=[],this.outcome=void 0,I!==a&&m(this,I)}function d(I,f,C){this.promise=I,typeof f=="function"&&(this.onFulfilled=f,this.callFulfilled=this.otherCallFulfilled),typeof C=="function"&&(this.onRejected=C,this.callRejected=this.otherCallRejected)}function h(I,f,C){s(function(){var y;try{y=f(C)}catch(E){return A.reject(I,E)}y===I?A.reject(I,new TypeError("Cannot resolve promise with itself")):A.resolve(I,y)})}function _(I){var f=I&&I.then;if(I&&(typeof I=="object"||typeof I=="function")&&typeof f=="function")return function(){f.apply(I,arguments)}}function m(I,f){var C=!1;function y(Q){C||(C=!0,A.reject(I,Q))}function E(Q){C||(C=!0,A.resolve(I,Q))}var B=p(function(){f(E,y)});B.status==="error"&&y(B.value)}function p(I,f){var C={};try{C.value=I(f),C.status="success"}catch(y){C.status="error",C.value=y}return C}(i.exports=u).prototype.finally=function(I){if(typeof I!="function")return this;var f=this.constructor;return this.then(function(C){return f.resolve(I()).then(function(){return C})},function(C){return f.resolve(I()).then(function(){throw C})})},u.prototype.catch=function(I){return this.then(null,I)},u.prototype.then=function(I,f){if(typeof I!="function"&&this.state===l||typeof f!="function"&&this.state===c)return this;var C=new this.constructor(a);return this.state!==g?h(C,this.state===l?I:f,this.outcome):this.queue.push(new d(C,I,f)),C},d.prototype.callFulfilled=function(I){A.resolve(this.promise,I)},d.prototype.otherCallFulfilled=function(I){h(this.promise,this.onFulfilled,I)},d.prototype.callRejected=function(I){A.reject(this.promise,I)},d.prototype.otherCallRejected=function(I){h(this.promise,this.onRejected,I)},A.resolve=function(I,f){var C=p(_,f);if(C.status==="error")return A.reject(I,C.value);var y=C.value;if(y)m(I,y);else{I.state=l,I.outcome=f;for(var E=-1,B=I.queue.length;++E<B;)I.queue[E].callFulfilled(f)}return I},A.reject=function(I,f){I.state=c,I.outcome=f;for(var C=-1,y=I.queue.length;++C<y;)I.queue[C].callRejected(f);return I},u.resolve=function(I){return I instanceof this?I:A.resolve(new this(a),I)},u.reject=function(I){var f=new this(a);return A.reject(f,I)},u.all=function(I){var f=this;if(Object.prototype.toString.call(I)!=="[object Array]")return this.reject(new TypeError("must be an array"));var C=I.length,y=!1;if(!C)return this.resolve([]);for(var E=new Array(C),B=0,Q=-1,b=new this(a);++Q<C;)D(I[Q],Q);return b;function D(R,w){f.resolve(R).then(function(H){E[w]=H,++B!==C||y||(y=!0,A.resolve(b,E))},function(H){y||(y=!0,A.reject(b,H))})}},u.race=function(I){var f=this;if(Object.prototype.toString.call(I)!=="[object Array]")return this.reject(new TypeError("must be an array"));var C=I.length,y=!1;if(!C)return this.resolve([]);for(var E=-1,B=new this(a);++E<C;)Q=I[E],f.resolve(Q).then(function(b){y||(y=!0,A.resolve(B,b))},function(b){y||(y=!0,A.reject(B,b))});var Q;return B}},{immediate:36}],38:[function(o,i,r){var s={};(0,o("./lib/utils/common").assign)(s,o("./lib/deflate"),o("./lib/inflate"),o("./lib/zlib/constants")),i.exports=s},{"./lib/deflate":39,"./lib/inflate":40,"./lib/utils/common":41,"./lib/zlib/constants":44}],39:[function(o,i,r){var s=o("./zlib/deflate"),a=o("./utils/common"),A=o("./utils/strings"),c=o("./zlib/messages"),l=o("./zlib/zstream"),g=Object.prototype.toString,u=0,d=-1,h=0,_=8;function m(I){if(!(this instanceof m))return new m(I);this.options=a.assign({level:d,method:_,chunkSize:16384,windowBits:15,memLevel:8,strategy:h,to:""},I||{});var f=this.options;f.raw&&0<f.windowBits?f.windowBits=-f.windowBits:f.gzip&&0<f.windowBits&&f.windowBits<16&&(f.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new l,this.strm.avail_out=0;var C=s.deflateInit2(this.strm,f.level,f.method,f.windowBits,f.memLevel,f.strategy);if(C!==u)throw new Error(c[C]);if(f.header&&s.deflateSetHeader(this.strm,f.header),f.dictionary){var y;if(y=typeof f.dictionary=="string"?A.string2buf(f.dictionary):g.call(f.dictionary)==="[object ArrayBuffer]"?new Uint8Array(f.dictionary):f.dictionary,(C=s.deflateSetDictionary(this.strm,y))!==u)throw new Error(c[C]);this._dict_set=!0}}function p(I,f){var C=new m(f);if(C.push(I,!0),C.err)throw C.msg||c[C.err];return C.result}m.prototype.push=function(I,f){var C,y,E=this.strm,B=this.options.chunkSize;if(this.ended)return!1;y=f===~~f?f:f===!0?4:0,typeof I=="string"?E.input=A.string2buf(I):g.call(I)==="[object ArrayBuffer]"?E.input=new Uint8Array(I):E.input=I,E.next_in=0,E.avail_in=E.input.length;do{if(E.avail_out===0&&(E.output=new a.Buf8(B),E.next_out=0,E.avail_out=B),(C=s.deflate(E,y))!==1&&C!==u)return this.onEnd(C),!(this.ended=!0);E.avail_out!==0&&(E.avail_in!==0||y!==4&&y!==2)||(this.options.to==="string"?this.onData(A.buf2binstring(a.shrinkBuf(E.output,E.next_out))):this.onData(a.shrinkBuf(E.output,E.next_out)))}while((0<E.avail_in||E.avail_out===0)&&C!==1);return y===4?(C=s.deflateEnd(this.strm),this.onEnd(C),this.ended=!0,C===u):y!==2||(this.onEnd(u),!(E.avail_out=0))},m.prototype.onData=function(I){this.chunks.push(I)},m.prototype.onEnd=function(I){I===u&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=a.flattenChunks(this.chunks)),this.chunks=[],this.err=I,this.msg=this.strm.msg},r.Deflate=m,r.deflate=p,r.deflateRaw=function(I,f){return(f=f||{}).raw=!0,p(I,f)},r.gzip=function(I,f){return(f=f||{}).gzip=!0,p(I,f)}},{"./utils/common":41,"./utils/strings":42,"./zlib/deflate":46,"./zlib/messages":51,"./zlib/zstream":53}],40:[function(o,i,r){var s=o("./zlib/inflate"),a=o("./utils/common"),A=o("./utils/strings"),c=o("./zlib/constants"),l=o("./zlib/messages"),g=o("./zlib/zstream"),u=o("./zlib/gzheader"),d=Object.prototype.toString;function h(m){if(!(this instanceof h))return new h(m);this.options=a.assign({chunkSize:16384,windowBits:0,to:""},m||{});var p=this.options;p.raw&&0<=p.windowBits&&p.windowBits<16&&(p.windowBits=-p.windowBits,p.windowBits===0&&(p.windowBits=-15)),!(0<=p.windowBits&&p.windowBits<16)||m&&m.windowBits||(p.windowBits+=32),15<p.windowBits&&p.windowBits<48&&(15&p.windowBits)==0&&(p.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new g,this.strm.avail_out=0;var I=s.inflateInit2(this.strm,p.windowBits);if(I!==c.Z_OK)throw new Error(l[I]);this.header=new u,s.inflateGetHeader(this.strm,this.header)}function _(m,p){var I=new h(p);if(I.push(m,!0),I.err)throw I.msg||l[I.err];return I.result}h.prototype.push=function(m,p){var I,f,C,y,E,B,Q=this.strm,b=this.options.chunkSize,D=this.options.dictionary,R=!1;if(this.ended)return!1;f=p===~~p?p:p===!0?c.Z_FINISH:c.Z_NO_FLUSH,typeof m=="string"?Q.input=A.binstring2buf(m):d.call(m)==="[object ArrayBuffer]"?Q.input=new Uint8Array(m):Q.input=m,Q.next_in=0,Q.avail_in=Q.input.length;do{if(Q.avail_out===0&&(Q.output=new a.Buf8(b),Q.next_out=0,Q.avail_out=b),(I=s.inflate(Q,c.Z_NO_FLUSH))===c.Z_NEED_DICT&&D&&(B=typeof D=="string"?A.string2buf(D):d.call(D)==="[object ArrayBuffer]"?new Uint8Array(D):D,I=s.inflateSetDictionary(this.strm,B)),I===c.Z_BUF_ERROR&&R===!0&&(I=c.Z_OK,R=!1),I!==c.Z_STREAM_END&&I!==c.Z_OK)return this.onEnd(I),!(this.ended=!0);Q.next_out&&(Q.avail_out!==0&&I!==c.Z_STREAM_END&&(Q.avail_in!==0||f!==c.Z_FINISH&&f!==c.Z_SYNC_FLUSH)||(this.options.to==="string"?(C=A.utf8border(Q.output,Q.next_out),y=Q.next_out-C,E=A.buf2string(Q.output,C),Q.next_out=y,Q.avail_out=b-y,y&&a.arraySet(Q.output,Q.output,C,y,0),this.onData(E)):this.onData(a.shrinkBuf(Q.output,Q.next_out)))),Q.avail_in===0&&Q.avail_out===0&&(R=!0)}while((0<Q.avail_in||Q.avail_out===0)&&I!==c.Z_STREAM_END);return I===c.Z_STREAM_END&&(f=c.Z_FINISH),f===c.Z_FINISH?(I=s.inflateEnd(this.strm),this.onEnd(I),this.ended=!0,I===c.Z_OK):f!==c.Z_SYNC_FLUSH||(this.onEnd(c.Z_OK),!(Q.avail_out=0))},h.prototype.onData=function(m){this.chunks.push(m)},h.prototype.onEnd=function(m){m===c.Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=a.flattenChunks(this.chunks)),this.chunks=[],this.err=m,this.msg=this.strm.msg},r.Inflate=h,r.inflate=_,r.inflateRaw=function(m,p){return(p=p||{}).raw=!0,_(m,p)},r.ungzip=_},{"./utils/common":41,"./utils/strings":42,"./zlib/constants":44,"./zlib/gzheader":47,"./zlib/inflate":49,"./zlib/messages":51,"./zlib/zstream":53}],41:[function(o,i,r){var s=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Int32Array<"u";r.assign=function(c){for(var l=Array.prototype.slice.call(arguments,1);l.length;){var g=l.shift();if(g){if(typeof g!="object")throw new TypeError(g+"must be non-object");for(var u in g)g.hasOwnProperty(u)&&(c[u]=g[u])}}return c},r.shrinkBuf=function(c,l){return c.length===l?c:c.subarray?c.subarray(0,l):(c.length=l,c)};var a={arraySet:function(c,l,g,u,d){if(l.subarray&&c.subarray)c.set(l.subarray(g,g+u),d);else for(var h=0;h<u;h++)c[d+h]=l[g+h]},flattenChunks:function(c){var l,g,u,d,h,_;for(l=u=0,g=c.length;l<g;l++)u+=c[l].length;for(_=new Uint8Array(u),l=d=0,g=c.length;l<g;l++)h=c[l],_.set(h,d),d+=h.length;return _}},A={arraySet:function(c,l,g,u,d){for(var h=0;h<u;h++)c[d+h]=l[g+h]},flattenChunks:function(c){return[].concat.apply([],c)}};r.setTyped=function(c){c?(r.Buf8=Uint8Array,r.Buf16=Uint16Array,r.Buf32=Int32Array,r.assign(r,a)):(r.Buf8=Array,r.Buf16=Array,r.Buf32=Array,r.assign(r,A))},r.setTyped(s)},{}],42:[function(o,i,r){var s=o("./common"),a=!0,A=!0;try{String.fromCharCode.apply(null,[0])}catch{a=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{A=!1}for(var c=new s.Buf8(256),l=0;l<256;l++)c[l]=252<=l?6:248<=l?5:240<=l?4:224<=l?3:192<=l?2:1;function g(u,d){if(d<65537&&(u.subarray&&A||!u.subarray&&a))return String.fromCharCode.apply(null,s.shrinkBuf(u,d));for(var h="",_=0;_<d;_++)h+=String.fromCharCode(u[_]);return h}c[254]=c[254]=1,r.string2buf=function(u){var d,h,_,m,p,I=u.length,f=0;for(m=0;m<I;m++)(64512&(h=u.charCodeAt(m)))==55296&&m+1<I&&(64512&(_=u.charCodeAt(m+1)))==56320&&(h=65536+(h-55296<<10)+(_-56320),m++),f+=h<128?1:h<2048?2:h<65536?3:4;for(d=new s.Buf8(f),m=p=0;p<f;m++)(64512&(h=u.charCodeAt(m)))==55296&&m+1<I&&(64512&(_=u.charCodeAt(m+1)))==56320&&(h=65536+(h-55296<<10)+(_-56320),m++),h<128?d[p++]=h:(h<2048?d[p++]=192|h>>>6:(h<65536?d[p++]=224|h>>>12:(d[p++]=240|h>>>18,d[p++]=128|h>>>12&63),d[p++]=128|h>>>6&63),d[p++]=128|63&h);return d},r.buf2binstring=function(u){return g(u,u.length)},r.binstring2buf=function(u){for(var d=new s.Buf8(u.length),h=0,_=d.length;h<_;h++)d[h]=u.charCodeAt(h);return d},r.buf2string=function(u,d){var h,_,m,p,I=d||u.length,f=new Array(2*I);for(h=_=0;h<I;)if((m=u[h++])<128)f[_++]=m;else if(4<(p=c[m]))f[_++]=65533,h+=p-1;else{for(m&=p===2?31:p===3?15:7;1<p&&h<I;)m=m<<6|63&u[h++],p--;1<p?f[_++]=65533:m<65536?f[_++]=m:(m-=65536,f[_++]=55296|m>>10&1023,f[_++]=56320|1023&m)}return g(f,_)},r.utf8border=function(u,d){var h;for((d=d||u.length)>u.length&&(d=u.length),h=d-1;0<=h&&(192&u[h])==128;)h--;return h<0||h===0?d:h+c[u[h]]>d?h:d}},{"./common":41}],43:[function(o,i,r){i.exports=function(s,a,A,c){for(var l=65535&s|0,g=s>>>16&65535|0,u=0;A!==0;){for(A-=u=2e3<A?2e3:A;g=g+(l=l+a[c++]|0)|0,--u;);l%=65521,g%=65521}return l|g<<16|0}},{}],44:[function(o,i,r){i.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],45:[function(o,i,r){var s=(function(){for(var a,A=[],c=0;c<256;c++){a=c;for(var l=0;l<8;l++)a=1&a?3988292384^a>>>1:a>>>1;A[c]=a}return A})();i.exports=function(a,A,c,l){var g=s,u=l+c;a^=-1;for(var d=l;d<u;d++)a=a>>>8^g[255&(a^A[d])];return-1^a}},{}],46:[function(o,i,r){var s,a=o("../utils/common"),A=o("./trees"),c=o("./adler32"),l=o("./crc32"),g=o("./messages"),u=0,d=4,h=0,_=-2,m=-1,p=4,I=2,f=8,C=9,y=286,E=30,B=19,Q=2*y+1,b=15,D=3,R=258,w=R+D+1,H=42,G=113,O=1,U=2,W=3,j=4;function te(Ie,qe){return Ie.msg=g[qe],qe}function re(Ie){return(Ie<<1)-(4<Ie?9:0)}function X(Ie){for(var qe=Ie.length;0<=--qe;)Ie[qe]=0}function Z(Ie){var qe=Ie.state,Me=qe.pending;Me>Ie.avail_out&&(Me=Ie.avail_out),Me!==0&&(a.arraySet(Ie.output,qe.pending_buf,qe.pending_out,Me,Ie.next_out),Ie.next_out+=Me,qe.pending_out+=Me,Ie.total_out+=Me,Ie.avail_out-=Me,qe.pending-=Me,qe.pending===0&&(qe.pending_out=0))}function se(Ie,qe){A._tr_flush_block(Ie,0<=Ie.block_start?Ie.block_start:-1,Ie.strstart-Ie.block_start,qe),Ie.block_start=Ie.strstart,Z(Ie.strm)}function ae(Ie,qe){Ie.pending_buf[Ie.pending++]=qe}function ge(Ie,qe){Ie.pending_buf[Ie.pending++]=qe>>>8&255,Ie.pending_buf[Ie.pending++]=255&qe}function fe(Ie,qe){var Me,Te,Ye=Ie.max_chain_length,Ne=Ie.strstart,be=Ie.prev_length,Oe=Ie.nice_match,ve=Ie.strstart>Ie.w_size-w?Ie.strstart-(Ie.w_size-w):0,Je=Ie.window,$e=Ie.w_mask,at=Ie.prev,ct=Ie.strstart+R,ht=Je[Ne+be-1],gt=Je[Ne+be];Ie.prev_length>=Ie.good_match&&(Ye>>=2),Oe>Ie.lookahead&&(Oe=Ie.lookahead);do if(Je[(Me=qe)+be]===gt&&Je[Me+be-1]===ht&&Je[Me]===Je[Ne]&&Je[++Me]===Je[Ne+1]){Ne+=2,Me++;do;while(Je[++Ne]===Je[++Me]&&Je[++Ne]===Je[++Me]&&Je[++Ne]===Je[++Me]&&Je[++Ne]===Je[++Me]&&Je[++Ne]===Je[++Me]&&Je[++Ne]===Je[++Me]&&Je[++Ne]===Je[++Me]&&Je[++Ne]===Je[++Me]&&Ne<ct);if(Te=R-(ct-Ne),Ne=ct-R,be<Te){if(Ie.match_start=qe,Oe<=(be=Te))break;ht=Je[Ne+be-1],gt=Je[Ne+be]}}while((qe=at[qe&$e])>ve&&--Ye!=0);return be<=Ie.lookahead?be:Ie.lookahead}function Ce(Ie){var qe,Me,Te,Ye,Ne,be,Oe,ve,Je,$e,at=Ie.w_size;do{if(Ye=Ie.window_size-Ie.lookahead-Ie.strstart,Ie.strstart>=at+(at-w)){for(a.arraySet(Ie.window,Ie.window,at,at,0),Ie.match_start-=at,Ie.strstart-=at,Ie.block_start-=at,qe=Me=Ie.hash_size;Te=Ie.head[--qe],Ie.head[qe]=at<=Te?Te-at:0,--Me;);for(qe=Me=at;Te=Ie.prev[--qe],Ie.prev[qe]=at<=Te?Te-at:0,--Me;);Ye+=at}if(Ie.strm.avail_in===0)break;if(be=Ie.strm,Oe=Ie.window,ve=Ie.strstart+Ie.lookahead,Je=Ye,$e=void 0,$e=be.avail_in,Je<$e&&($e=Je),Me=$e===0?0:(be.avail_in-=$e,a.arraySet(Oe,be.input,be.next_in,$e,ve),be.state.wrap===1?be.adler=c(be.adler,Oe,$e,ve):be.state.wrap===2&&(be.adler=l(be.adler,Oe,$e,ve)),be.next_in+=$e,be.total_in+=$e,$e),Ie.lookahead+=Me,Ie.lookahead+Ie.insert>=D)for(Ne=Ie.strstart-Ie.insert,Ie.ins_h=Ie.window[Ne],Ie.ins_h=(Ie.ins_h<<Ie.hash_shift^Ie.window[Ne+1])&Ie.hash_mask;Ie.insert&&(Ie.ins_h=(Ie.ins_h<<Ie.hash_shift^Ie.window[Ne+D-1])&Ie.hash_mask,Ie.prev[Ne&Ie.w_mask]=Ie.head[Ie.ins_h],Ie.head[Ie.ins_h]=Ne,Ne++,Ie.insert--,!(Ie.lookahead+Ie.insert<D)););}while(Ie.lookahead<w&&Ie.strm.avail_in!==0)}function Ee(Ie,qe){for(var Me,Te;;){if(Ie.lookahead<w){if(Ce(Ie),Ie.lookahead<w&&qe===u)return O;if(Ie.lookahead===0)break}if(Me=0,Ie.lookahead>=D&&(Ie.ins_h=(Ie.ins_h<<Ie.hash_shift^Ie.window[Ie.strstart+D-1])&Ie.hash_mask,Me=Ie.prev[Ie.strstart&Ie.w_mask]=Ie.head[Ie.ins_h],Ie.head[Ie.ins_h]=Ie.strstart),Me!==0&&Ie.strstart-Me<=Ie.w_size-w&&(Ie.match_length=fe(Ie,Me)),Ie.match_length>=D)if(Te=A._tr_tally(Ie,Ie.strstart-Ie.match_start,Ie.match_length-D),Ie.lookahead-=Ie.match_length,Ie.match_length<=Ie.max_lazy_match&&Ie.lookahead>=D){for(Ie.match_length--;Ie.strstart++,Ie.ins_h=(Ie.ins_h<<Ie.hash_shift^Ie.window[Ie.strstart+D-1])&Ie.hash_mask,Me=Ie.prev[Ie.strstart&Ie.w_mask]=Ie.head[Ie.ins_h],Ie.head[Ie.ins_h]=Ie.strstart,--Ie.match_length!=0;);Ie.strstart++}else Ie.strstart+=Ie.match_length,Ie.match_length=0,Ie.ins_h=Ie.window[Ie.strstart],Ie.ins_h=(Ie.ins_h<<Ie.hash_shift^Ie.window[Ie.strstart+1])&Ie.hash_mask;else Te=A._tr_tally(Ie,0,Ie.window[Ie.strstart]),Ie.lookahead--,Ie.strstart++;if(Te&&(se(Ie,!1),Ie.strm.avail_out===0))return O}return Ie.insert=Ie.strstart<D-1?Ie.strstart:D-1,qe===d?(se(Ie,!0),Ie.strm.avail_out===0?W:j):Ie.last_lit&&(se(Ie,!1),Ie.strm.avail_out===0)?O:U}function he(Ie,qe){for(var Me,Te,Ye;;){if(Ie.lookahead<w){if(Ce(Ie),Ie.lookahead<w&&qe===u)return O;if(Ie.lookahead===0)break}if(Me=0,Ie.lookahead>=D&&(Ie.ins_h=(Ie.ins_h<<Ie.hash_shift^Ie.window[Ie.strstart+D-1])&Ie.hash_mask,Me=Ie.prev[Ie.strstart&Ie.w_mask]=Ie.head[Ie.ins_h],Ie.head[Ie.ins_h]=Ie.strstart),Ie.prev_length=Ie.match_length,Ie.prev_match=Ie.match_start,Ie.match_length=D-1,Me!==0&&Ie.prev_length<Ie.max_lazy_match&&Ie.strstart-Me<=Ie.w_size-w&&(Ie.match_length=fe(Ie,Me),Ie.match_length<=5&&(Ie.strategy===1||Ie.match_length===D&&4096<Ie.strstart-Ie.match_start)&&(Ie.match_length=D-1)),Ie.prev_length>=D&&Ie.match_length<=Ie.prev_length){for(Ye=Ie.strstart+Ie.lookahead-D,Te=A._tr_tally(Ie,Ie.strstart-1-Ie.prev_match,Ie.prev_length-D),Ie.lookahead-=Ie.prev_length-1,Ie.prev_length-=2;++Ie.strstart<=Ye&&(Ie.ins_h=(Ie.ins_h<<Ie.hash_shift^Ie.window[Ie.strstart+D-1])&Ie.hash_mask,Me=Ie.prev[Ie.strstart&Ie.w_mask]=Ie.head[Ie.ins_h],Ie.head[Ie.ins_h]=Ie.strstart),--Ie.prev_length!=0;);if(Ie.match_available=0,Ie.match_length=D-1,Ie.strstart++,Te&&(se(Ie,!1),Ie.strm.avail_out===0))return O}else if(Ie.match_available){if((Te=A._tr_tally(Ie,0,Ie.window[Ie.strstart-1]))&&se(Ie,!1),Ie.strstart++,Ie.lookahead--,Ie.strm.avail_out===0)return O}else Ie.match_available=1,Ie.strstart++,Ie.lookahead--}return Ie.match_available&&(Te=A._tr_tally(Ie,0,Ie.window[Ie.strstart-1]),Ie.match_available=0),Ie.insert=Ie.strstart<D-1?Ie.strstart:D-1,qe===d?(se(Ie,!0),Ie.strm.avail_out===0?W:j):Ie.last_lit&&(se(Ie,!1),Ie.strm.avail_out===0)?O:U}function xe(Ie,qe,Me,Te,Ye){this.good_length=Ie,this.max_lazy=qe,this.nice_length=Me,this.max_chain=Te,this.func=Ye}function _e(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=f,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new a.Buf16(2*Q),this.dyn_dtree=new a.Buf16(2*(2*E+1)),this.bl_tree=new a.Buf16(2*(2*B+1)),X(this.dyn_ltree),X(this.dyn_dtree),X(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new a.Buf16(b+1),this.heap=new a.Buf16(2*y+1),X(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new a.Buf16(2*y+1),X(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function we(Ie){var qe;return Ie&&Ie.state?(Ie.total_in=Ie.total_out=0,Ie.data_type=I,(qe=Ie.state).pending=0,qe.pending_out=0,qe.wrap<0&&(qe.wrap=-qe.wrap),qe.status=qe.wrap?H:G,Ie.adler=qe.wrap===2?0:1,qe.last_flush=u,A._tr_init(qe),h):te(Ie,_)}function He(Ie){var qe=we(Ie);return qe===h&&(function(Me){Me.window_size=2*Me.w_size,X(Me.head),Me.max_lazy_match=s[Me.level].max_lazy,Me.good_match=s[Me.level].good_length,Me.nice_match=s[Me.level].nice_length,Me.max_chain_length=s[Me.level].max_chain,Me.strstart=0,Me.block_start=0,Me.lookahead=0,Me.insert=0,Me.match_length=Me.prev_length=D-1,Me.match_available=0,Me.ins_h=0})(Ie.state),qe}function ze(Ie,qe,Me,Te,Ye,Ne){if(!Ie)return _;var be=1;if(qe===m&&(qe=6),Te<0?(be=0,Te=-Te):15<Te&&(be=2,Te-=16),Ye<1||C<Ye||Me!==f||Te<8||15<Te||qe<0||9<qe||Ne<0||p<Ne)return te(Ie,_);Te===8&&(Te=9);var Oe=new _e;return(Ie.state=Oe).strm=Ie,Oe.wrap=be,Oe.gzhead=null,Oe.w_bits=Te,Oe.w_size=1<<Oe.w_bits,Oe.w_mask=Oe.w_size-1,Oe.hash_bits=Ye+7,Oe.hash_size=1<<Oe.hash_bits,Oe.hash_mask=Oe.hash_size-1,Oe.hash_shift=~~((Oe.hash_bits+D-1)/D),Oe.window=new a.Buf8(2*Oe.w_size),Oe.head=new a.Buf16(Oe.hash_size),Oe.prev=new a.Buf16(Oe.w_size),Oe.lit_bufsize=1<<Ye+6,Oe.pending_buf_size=4*Oe.lit_bufsize,Oe.pending_buf=new a.Buf8(Oe.pending_buf_size),Oe.d_buf=1*Oe.lit_bufsize,Oe.l_buf=3*Oe.lit_bufsize,Oe.level=qe,Oe.strategy=Ne,Oe.method=Me,He(Ie)}s=[new xe(0,0,0,0,function(Ie,qe){var Me=65535;for(Me>Ie.pending_buf_size-5&&(Me=Ie.pending_buf_size-5);;){if(Ie.lookahead<=1){if(Ce(Ie),Ie.lookahead===0&&qe===u)return O;if(Ie.lookahead===0)break}Ie.strstart+=Ie.lookahead,Ie.lookahead=0;var Te=Ie.block_start+Me;if((Ie.strstart===0||Ie.strstart>=Te)&&(Ie.lookahead=Ie.strstart-Te,Ie.strstart=Te,se(Ie,!1),Ie.strm.avail_out===0)||Ie.strstart-Ie.block_start>=Ie.w_size-w&&(se(Ie,!1),Ie.strm.avail_out===0))return O}return Ie.insert=0,qe===d?(se(Ie,!0),Ie.strm.avail_out===0?W:j):(Ie.strstart>Ie.block_start&&(se(Ie,!1),Ie.strm.avail_out),O)}),new xe(4,4,8,4,Ee),new xe(4,5,16,8,Ee),new xe(4,6,32,32,Ee),new xe(4,4,16,16,he),new xe(8,16,32,32,he),new xe(8,16,128,128,he),new xe(8,32,128,256,he),new xe(32,128,258,1024,he),new xe(32,258,258,4096,he)],r.deflateInit=function(Ie,qe){return ze(Ie,qe,f,15,8,0)},r.deflateInit2=ze,r.deflateReset=He,r.deflateResetKeep=we,r.deflateSetHeader=function(Ie,qe){return Ie&&Ie.state?Ie.state.wrap!==2?_:(Ie.state.gzhead=qe,h):_},r.deflate=function(Ie,qe){var Me,Te,Ye,Ne;if(!Ie||!Ie.state||5<qe||qe<0)return Ie?te(Ie,_):_;if(Te=Ie.state,!Ie.output||!Ie.input&&Ie.avail_in!==0||Te.status===666&&qe!==d)return te(Ie,Ie.avail_out===0?-5:_);if(Te.strm=Ie,Me=Te.last_flush,Te.last_flush=qe,Te.status===H)if(Te.wrap===2)Ie.adler=0,ae(Te,31),ae(Te,139),ae(Te,8),Te.gzhead?(ae(Te,(Te.gzhead.text?1:0)+(Te.gzhead.hcrc?2:0)+(Te.gzhead.extra?4:0)+(Te.gzhead.name?8:0)+(Te.gzhead.comment?16:0)),ae(Te,255&Te.gzhead.time),ae(Te,Te.gzhead.time>>8&255),ae(Te,Te.gzhead.time>>16&255),ae(Te,Te.gzhead.time>>24&255),ae(Te,Te.level===9?2:2<=Te.strategy||Te.level<2?4:0),ae(Te,255&Te.gzhead.os),Te.gzhead.extra&&Te.gzhead.extra.length&&(ae(Te,255&Te.gzhead.extra.length),ae(Te,Te.gzhead.extra.length>>8&255)),Te.gzhead.hcrc&&(Ie.adler=l(Ie.adler,Te.pending_buf,Te.pending,0)),Te.gzindex=0,Te.status=69):(ae(Te,0),ae(Te,0),ae(Te,0),ae(Te,0),ae(Te,0),ae(Te,Te.level===9?2:2<=Te.strategy||Te.level<2?4:0),ae(Te,3),Te.status=G);else{var be=f+(Te.w_bits-8<<4)<<8;be|=(2<=Te.strategy||Te.level<2?0:Te.level<6?1:Te.level===6?2:3)<<6,Te.strstart!==0&&(be|=32),be+=31-be%31,Te.status=G,ge(Te,be),Te.strstart!==0&&(ge(Te,Ie.adler>>>16),ge(Te,65535&Ie.adler)),Ie.adler=1}if(Te.status===69)if(Te.gzhead.extra){for(Ye=Te.pending;Te.gzindex<(65535&Te.gzhead.extra.length)&&(Te.pending!==Te.pending_buf_size||(Te.gzhead.hcrc&&Te.pending>Ye&&(Ie.adler=l(Ie.adler,Te.pending_buf,Te.pending-Ye,Ye)),Z(Ie),Ye=Te.pending,Te.pending!==Te.pending_buf_size));)ae(Te,255&Te.gzhead.extra[Te.gzindex]),Te.gzindex++;Te.gzhead.hcrc&&Te.pending>Ye&&(Ie.adler=l(Ie.adler,Te.pending_buf,Te.pending-Ye,Ye)),Te.gzindex===Te.gzhead.extra.length&&(Te.gzindex=0,Te.status=73)}else Te.status=73;if(Te.status===73)if(Te.gzhead.name){Ye=Te.pending;do{if(Te.pending===Te.pending_buf_size&&(Te.gzhead.hcrc&&Te.pending>Ye&&(Ie.adler=l(Ie.adler,Te.pending_buf,Te.pending-Ye,Ye)),Z(Ie),Ye=Te.pending,Te.pending===Te.pending_buf_size)){Ne=1;break}Ne=Te.gzindex<Te.gzhead.name.length?255&Te.gzhead.name.charCodeAt(Te.gzindex++):0,ae(Te,Ne)}while(Ne!==0);Te.gzhead.hcrc&&Te.pending>Ye&&(Ie.adler=l(Ie.adler,Te.pending_buf,Te.pending-Ye,Ye)),Ne===0&&(Te.gzindex=0,Te.status=91)}else Te.status=91;if(Te.status===91)if(Te.gzhead.comment){Ye=Te.pending;do{if(Te.pending===Te.pending_buf_size&&(Te.gzhead.hcrc&&Te.pending>Ye&&(Ie.adler=l(Ie.adler,Te.pending_buf,Te.pending-Ye,Ye)),Z(Ie),Ye=Te.pending,Te.pending===Te.pending_buf_size)){Ne=1;break}Ne=Te.gzindex<Te.gzhead.comment.length?255&Te.gzhead.comment.charCodeAt(Te.gzindex++):0,ae(Te,Ne)}while(Ne!==0);Te.gzhead.hcrc&&Te.pending>Ye&&(Ie.adler=l(Ie.adler,Te.pending_buf,Te.pending-Ye,Ye)),Ne===0&&(Te.status=103)}else Te.status=103;if(Te.status===103&&(Te.gzhead.hcrc?(Te.pending+2>Te.pending_buf_size&&Z(Ie),Te.pending+2<=Te.pending_buf_size&&(ae(Te,255&Ie.adler),ae(Te,Ie.adler>>8&255),Ie.adler=0,Te.status=G)):Te.status=G),Te.pending!==0){if(Z(Ie),Ie.avail_out===0)return Te.last_flush=-1,h}else if(Ie.avail_in===0&&re(qe)<=re(Me)&&qe!==d)return te(Ie,-5);if(Te.status===666&&Ie.avail_in!==0)return te(Ie,-5);if(Ie.avail_in!==0||Te.lookahead!==0||qe!==u&&Te.status!==666){var Oe=Te.strategy===2?(function(ve,Je){for(var $e;;){if(ve.lookahead===0&&(Ce(ve),ve.lookahead===0)){if(Je===u)return O;break}if(ve.match_length=0,$e=A._tr_tally(ve,0,ve.window[ve.strstart]),ve.lookahead--,ve.strstart++,$e&&(se(ve,!1),ve.strm.avail_out===0))return O}return ve.insert=0,Je===d?(se(ve,!0),ve.strm.avail_out===0?W:j):ve.last_lit&&(se(ve,!1),ve.strm.avail_out===0)?O:U})(Te,qe):Te.strategy===3?(function(ve,Je){for(var $e,at,ct,ht,gt=ve.window;;){if(ve.lookahead<=R){if(Ce(ve),ve.lookahead<=R&&Je===u)return O;if(ve.lookahead===0)break}if(ve.match_length=0,ve.lookahead>=D&&0<ve.strstart&&(at=gt[ct=ve.strstart-1])===gt[++ct]&&at===gt[++ct]&&at===gt[++ct]){ht=ve.strstart+R;do;while(at===gt[++ct]&&at===gt[++ct]&&at===gt[++ct]&&at===gt[++ct]&&at===gt[++ct]&&at===gt[++ct]&&at===gt[++ct]&&at===gt[++ct]&&ct<ht);ve.match_length=R-(ht-ct),ve.match_length>ve.lookahead&&(ve.match_length=ve.lookahead)}if(ve.match_length>=D?($e=A._tr_tally(ve,1,ve.match_length-D),ve.lookahead-=ve.match_length,ve.strstart+=ve.match_length,ve.match_length=0):($e=A._tr_tally(ve,0,ve.window[ve.strstart]),ve.lookahead--,ve.strstart++),$e&&(se(ve,!1),ve.strm.avail_out===0))return O}return ve.insert=0,Je===d?(se(ve,!0),ve.strm.avail_out===0?W:j):ve.last_lit&&(se(ve,!1),ve.strm.avail_out===0)?O:U})(Te,qe):s[Te.level].func(Te,qe);if(Oe!==W&&Oe!==j||(Te.status=666),Oe===O||Oe===W)return Ie.avail_out===0&&(Te.last_flush=-1),h;if(Oe===U&&(qe===1?A._tr_align(Te):qe!==5&&(A._tr_stored_block(Te,0,0,!1),qe===3&&(X(Te.head),Te.lookahead===0&&(Te.strstart=0,Te.block_start=0,Te.insert=0))),Z(Ie),Ie.avail_out===0))return Te.last_flush=-1,h}return qe!==d?h:Te.wrap<=0?1:(Te.wrap===2?(ae(Te,255&Ie.adler),ae(Te,Ie.adler>>8&255),ae(Te,Ie.adler>>16&255),ae(Te,Ie.adler>>24&255),ae(Te,255&Ie.total_in),ae(Te,Ie.total_in>>8&255),ae(Te,Ie.total_in>>16&255),ae(Te,Ie.total_in>>24&255)):(ge(Te,Ie.adler>>>16),ge(Te,65535&Ie.adler)),Z(Ie),0<Te.wrap&&(Te.wrap=-Te.wrap),Te.pending!==0?h:1)},r.deflateEnd=function(Ie){var qe;return Ie&&Ie.state?(qe=Ie.state.status)!==H&&qe!==69&&qe!==73&&qe!==91&&qe!==103&&qe!==G&&qe!==666?te(Ie,_):(Ie.state=null,qe===G?te(Ie,-3):h):_},r.deflateSetDictionary=function(Ie,qe){var Me,Te,Ye,Ne,be,Oe,ve,Je,$e=qe.length;if(!Ie||!Ie.state||(Ne=(Me=Ie.state).wrap)===2||Ne===1&&Me.status!==H||Me.lookahead)return _;for(Ne===1&&(Ie.adler=c(Ie.adler,qe,$e,0)),Me.wrap=0,$e>=Me.w_size&&(Ne===0&&(X(Me.head),Me.strstart=0,Me.block_start=0,Me.insert=0),Je=new a.Buf8(Me.w_size),a.arraySet(Je,qe,$e-Me.w_size,Me.w_size,0),qe=Je,$e=Me.w_size),be=Ie.avail_in,Oe=Ie.next_in,ve=Ie.input,Ie.avail_in=$e,Ie.next_in=0,Ie.input=qe,Ce(Me);Me.lookahead>=D;){for(Te=Me.strstart,Ye=Me.lookahead-(D-1);Me.ins_h=(Me.ins_h<<Me.hash_shift^Me.window[Te+D-1])&Me.hash_mask,Me.prev[Te&Me.w_mask]=Me.head[Me.ins_h],Me.head[Me.ins_h]=Te,Te++,--Ye;);Me.strstart=Te,Me.lookahead=D-1,Ce(Me)}return Me.strstart+=Me.lookahead,Me.block_start=Me.strstart,Me.insert=Me.lookahead,Me.lookahead=0,Me.match_length=Me.prev_length=D-1,Me.match_available=0,Ie.next_in=Oe,Ie.input=ve,Ie.avail_in=be,Me.wrap=Ne,h},r.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":41,"./adler32":43,"./crc32":45,"./messages":51,"./trees":52}],47:[function(o,i,r){i.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}},{}],48:[function(o,i,r){i.exports=function(s,a){var A,c,l,g,u,d,h,_,m,p,I,f,C,y,E,B,Q,b,D,R,w,H,G,O,U;A=s.state,c=s.next_in,O=s.input,l=c+(s.avail_in-5),g=s.next_out,U=s.output,u=g-(a-s.avail_out),d=g+(s.avail_out-257),h=A.dmax,_=A.wsize,m=A.whave,p=A.wnext,I=A.window,f=A.hold,C=A.bits,y=A.lencode,E=A.distcode,B=(1<<A.lenbits)-1,Q=(1<<A.distbits)-1;e:do{C<15&&(f+=O[c++]<<C,C+=8,f+=O[c++]<<C,C+=8),b=y[f&B];t:for(;;){if(f>>>=D=b>>>24,C-=D,(D=b>>>16&255)===0)U[g++]=65535&b;else{if(!(16&D)){if((64&D)==0){b=y[(65535&b)+(f&(1<<D)-1)];continue t}if(32&D){A.mode=12;break e}s.msg="invalid literal/length code",A.mode=30;break e}R=65535&b,(D&=15)&&(C<D&&(f+=O[c++]<<C,C+=8),R+=f&(1<<D)-1,f>>>=D,C-=D),C<15&&(f+=O[c++]<<C,C+=8,f+=O[c++]<<C,C+=8),b=E[f&Q];n:for(;;){if(f>>>=D=b>>>24,C-=D,!(16&(D=b>>>16&255))){if((64&D)==0){b=E[(65535&b)+(f&(1<<D)-1)];continue n}s.msg="invalid distance code",A.mode=30;break e}if(w=65535&b,C<(D&=15)&&(f+=O[c++]<<C,(C+=8)<D&&(f+=O[c++]<<C,C+=8)),h<(w+=f&(1<<D)-1)){s.msg="invalid distance too far back",A.mode=30;break e}if(f>>>=D,C-=D,(D=g-u)<w){if(m<(D=w-D)&&A.sane){s.msg="invalid distance too far back",A.mode=30;break e}if(G=I,(H=0)===p){if(H+=_-D,D<R){for(R-=D;U[g++]=I[H++],--D;);H=g-w,G=U}}else if(p<D){if(H+=_+p-D,(D-=p)<R){for(R-=D;U[g++]=I[H++],--D;);if(H=0,p<R){for(R-=D=p;U[g++]=I[H++],--D;);H=g-w,G=U}}}else if(H+=p-D,D<R){for(R-=D;U[g++]=I[H++],--D;);H=g-w,G=U}for(;2<R;)U[g++]=G[H++],U[g++]=G[H++],U[g++]=G[H++],R-=3;R&&(U[g++]=G[H++],1<R&&(U[g++]=G[H++]))}else{for(H=g-w;U[g++]=U[H++],U[g++]=U[H++],U[g++]=U[H++],2<(R-=3););R&&(U[g++]=U[H++],1<R&&(U[g++]=U[H++]))}break}}break}}while(c<l&&g<d);c-=R=C>>3,f&=(1<<(C-=R<<3))-1,s.next_in=c,s.next_out=g,s.avail_in=c<l?l-c+5:5-(c-l),s.avail_out=g<d?d-g+257:257-(g-d),A.hold=f,A.bits=C}},{}],49:[function(o,i,r){var s=o("../utils/common"),a=o("./adler32"),A=o("./crc32"),c=o("./inffast"),l=o("./inftrees"),g=1,u=2,d=0,h=-2,_=1,m=852,p=592;function I(H){return(H>>>24&255)+(H>>>8&65280)+((65280&H)<<8)+((255&H)<<24)}function f(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new s.Buf16(320),this.work=new s.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function C(H){var G;return H&&H.state?(G=H.state,H.total_in=H.total_out=G.total=0,H.msg="",G.wrap&&(H.adler=1&G.wrap),G.mode=_,G.last=0,G.havedict=0,G.dmax=32768,G.head=null,G.hold=0,G.bits=0,G.lencode=G.lendyn=new s.Buf32(m),G.distcode=G.distdyn=new s.Buf32(p),G.sane=1,G.back=-1,d):h}function y(H){var G;return H&&H.state?((G=H.state).wsize=0,G.whave=0,G.wnext=0,C(H)):h}function E(H,G){var O,U;return H&&H.state?(U=H.state,G<0?(O=0,G=-G):(O=1+(G>>4),G<48&&(G&=15)),G&&(G<8||15<G)?h:(U.window!==null&&U.wbits!==G&&(U.window=null),U.wrap=O,U.wbits=G,y(H))):h}function B(H,G){var O,U;return H?(U=new f,(H.state=U).window=null,(O=E(H,G))!==d&&(H.state=null),O):h}var Q,b,D=!0;function R(H){if(D){var G;for(Q=new s.Buf32(512),b=new s.Buf32(32),G=0;G<144;)H.lens[G++]=8;for(;G<256;)H.lens[G++]=9;for(;G<280;)H.lens[G++]=7;for(;G<288;)H.lens[G++]=8;for(l(g,H.lens,0,288,Q,0,H.work,{bits:9}),G=0;G<32;)H.lens[G++]=5;l(u,H.lens,0,32,b,0,H.work,{bits:5}),D=!1}H.lencode=Q,H.lenbits=9,H.distcode=b,H.distbits=5}function w(H,G,O,U){var W,j=H.state;return j.window===null&&(j.wsize=1<<j.wbits,j.wnext=0,j.whave=0,j.window=new s.Buf8(j.wsize)),U>=j.wsize?(s.arraySet(j.window,G,O-j.wsize,j.wsize,0),j.wnext=0,j.whave=j.wsize):(U<(W=j.wsize-j.wnext)&&(W=U),s.arraySet(j.window,G,O-U,W,j.wnext),(U-=W)?(s.arraySet(j.window,G,O-U,U,0),j.wnext=U,j.whave=j.wsize):(j.wnext+=W,j.wnext===j.wsize&&(j.wnext=0),j.whave<j.wsize&&(j.whave+=W))),0}r.inflateReset=y,r.inflateReset2=E,r.inflateResetKeep=C,r.inflateInit=function(H){return B(H,15)},r.inflateInit2=B,r.inflate=function(H,G){var O,U,W,j,te,re,X,Z,se,ae,ge,fe,Ce,Ee,he,xe,_e,we,He,ze,Ie,qe,Me,Te,Ye=0,Ne=new s.Buf8(4),be=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!H||!H.state||!H.output||!H.input&&H.avail_in!==0)return h;(O=H.state).mode===12&&(O.mode=13),te=H.next_out,W=H.output,X=H.avail_out,j=H.next_in,U=H.input,re=H.avail_in,Z=O.hold,se=O.bits,ae=re,ge=X,qe=d;e:for(;;)switch(O.mode){case _:if(O.wrap===0){O.mode=13;break}for(;se<16;){if(re===0)break e;re--,Z+=U[j++]<<se,se+=8}if(2&O.wrap&&Z===35615){Ne[O.check=0]=255&Z,Ne[1]=Z>>>8&255,O.check=A(O.check,Ne,2,0),se=Z=0,O.mode=2;break}if(O.flags=0,O.head&&(O.head.done=!1),!(1&O.wrap)||(((255&Z)<<8)+(Z>>8))%31){H.msg="incorrect header check",O.mode=30;break}if((15&Z)!=8){H.msg="unknown compression method",O.mode=30;break}if(se-=4,Ie=8+(15&(Z>>>=4)),O.wbits===0)O.wbits=Ie;else if(Ie>O.wbits){H.msg="invalid window size",O.mode=30;break}O.dmax=1<<Ie,H.adler=O.check=1,O.mode=512&Z?10:12,se=Z=0;break;case 2:for(;se<16;){if(re===0)break e;re--,Z+=U[j++]<<se,se+=8}if(O.flags=Z,(255&O.flags)!=8){H.msg="unknown compression method",O.mode=30;break}if(57344&O.flags){H.msg="unknown header flags set",O.mode=30;break}O.head&&(O.head.text=Z>>8&1),512&O.flags&&(Ne[0]=255&Z,Ne[1]=Z>>>8&255,O.check=A(O.check,Ne,2,0)),se=Z=0,O.mode=3;case 3:for(;se<32;){if(re===0)break e;re--,Z+=U[j++]<<se,se+=8}O.head&&(O.head.time=Z),512&O.flags&&(Ne[0]=255&Z,Ne[1]=Z>>>8&255,Ne[2]=Z>>>16&255,Ne[3]=Z>>>24&255,O.check=A(O.check,Ne,4,0)),se=Z=0,O.mode=4;case 4:for(;se<16;){if(re===0)break e;re--,Z+=U[j++]<<se,se+=8}O.head&&(O.head.xflags=255&Z,O.head.os=Z>>8),512&O.flags&&(Ne[0]=255&Z,Ne[1]=Z>>>8&255,O.check=A(O.check,Ne,2,0)),se=Z=0,O.mode=5;case 5:if(1024&O.flags){for(;se<16;){if(re===0)break e;re--,Z+=U[j++]<<se,se+=8}O.length=Z,O.head&&(O.head.extra_len=Z),512&O.flags&&(Ne[0]=255&Z,Ne[1]=Z>>>8&255,O.check=A(O.check,Ne,2,0)),se=Z=0}else O.head&&(O.head.extra=null);O.mode=6;case 6:if(1024&O.flags&&(re<(fe=O.length)&&(fe=re),fe&&(O.head&&(Ie=O.head.extra_len-O.length,O.head.extra||(O.head.extra=new Array(O.head.extra_len)),s.arraySet(O.head.extra,U,j,fe,Ie)),512&O.flags&&(O.check=A(O.check,U,fe,j)),re-=fe,j+=fe,O.length-=fe),O.length))break e;O.length=0,O.mode=7;case 7:if(2048&O.flags){if(re===0)break e;for(fe=0;Ie=U[j+fe++],O.head&&Ie&&O.length<65536&&(O.head.name+=String.fromCharCode(Ie)),Ie&&fe<re;);if(512&O.flags&&(O.check=A(O.check,U,fe,j)),re-=fe,j+=fe,Ie)break e}else O.head&&(O.head.name=null);O.length=0,O.mode=8;case 8:if(4096&O.flags){if(re===0)break e;for(fe=0;Ie=U[j+fe++],O.head&&Ie&&O.length<65536&&(O.head.comment+=String.fromCharCode(Ie)),Ie&&fe<re;);if(512&O.flags&&(O.check=A(O.check,U,fe,j)),re-=fe,j+=fe,Ie)break e}else O.head&&(O.head.comment=null);O.mode=9;case 9:if(512&O.flags){for(;se<16;){if(re===0)break e;re--,Z+=U[j++]<<se,se+=8}if(Z!==(65535&O.check)){H.msg="header crc mismatch",O.mode=30;break}se=Z=0}O.head&&(O.head.hcrc=O.flags>>9&1,O.head.done=!0),H.adler=O.check=0,O.mode=12;break;case 10:for(;se<32;){if(re===0)break e;re--,Z+=U[j++]<<se,se+=8}H.adler=O.check=I(Z),se=Z=0,O.mode=11;case 11:if(O.havedict===0)return H.next_out=te,H.avail_out=X,H.next_in=j,H.avail_in=re,O.hold=Z,O.bits=se,2;H.adler=O.check=1,O.mode=12;case 12:if(G===5||G===6)break e;case 13:if(O.last){Z>>>=7&se,se-=7&se,O.mode=27;break}for(;se<3;){if(re===0)break e;re--,Z+=U[j++]<<se,se+=8}switch(O.last=1&Z,se-=1,3&(Z>>>=1)){case 0:O.mode=14;break;case 1:if(R(O),O.mode=20,G!==6)break;Z>>>=2,se-=2;break e;case 2:O.mode=17;break;case 3:H.msg="invalid block type",O.mode=30}Z>>>=2,se-=2;break;case 14:for(Z>>>=7&se,se-=7&se;se<32;){if(re===0)break e;re--,Z+=U[j++]<<se,se+=8}if((65535&Z)!=(Z>>>16^65535)){H.msg="invalid stored block lengths",O.mode=30;break}if(O.length=65535&Z,se=Z=0,O.mode=15,G===6)break e;case 15:O.mode=16;case 16:if(fe=O.length){if(re<fe&&(fe=re),X<fe&&(fe=X),fe===0)break e;s.arraySet(W,U,j,fe,te),re-=fe,j+=fe,X-=fe,te+=fe,O.length-=fe;break}O.mode=12;break;case 17:for(;se<14;){if(re===0)break e;re--,Z+=U[j++]<<se,se+=8}if(O.nlen=257+(31&Z),Z>>>=5,se-=5,O.ndist=1+(31&Z),Z>>>=5,se-=5,O.ncode=4+(15&Z),Z>>>=4,se-=4,286<O.nlen||30<O.ndist){H.msg="too many length or distance symbols",O.mode=30;break}O.have=0,O.mode=18;case 18:for(;O.have<O.ncode;){for(;se<3;){if(re===0)break e;re--,Z+=U[j++]<<se,se+=8}O.lens[be[O.have++]]=7&Z,Z>>>=3,se-=3}for(;O.have<19;)O.lens[be[O.have++]]=0;if(O.lencode=O.lendyn,O.lenbits=7,Me={bits:O.lenbits},qe=l(0,O.lens,0,19,O.lencode,0,O.work,Me),O.lenbits=Me.bits,qe){H.msg="invalid code lengths set",O.mode=30;break}O.have=0,O.mode=19;case 19:for(;O.have<O.nlen+O.ndist;){for(;xe=(Ye=O.lencode[Z&(1<<O.lenbits)-1])>>>16&255,_e=65535&Ye,!((he=Ye>>>24)<=se);){if(re===0)break e;re--,Z+=U[j++]<<se,se+=8}if(_e<16)Z>>>=he,se-=he,O.lens[O.have++]=_e;else{if(_e===16){for(Te=he+2;se<Te;){if(re===0)break e;re--,Z+=U[j++]<<se,se+=8}if(Z>>>=he,se-=he,O.have===0){H.msg="invalid bit length repeat",O.mode=30;break}Ie=O.lens[O.have-1],fe=3+(3&Z),Z>>>=2,se-=2}else if(_e===17){for(Te=he+3;se<Te;){if(re===0)break e;re--,Z+=U[j++]<<se,se+=8}se-=he,Ie=0,fe=3+(7&(Z>>>=he)),Z>>>=3,se-=3}else{for(Te=he+7;se<Te;){if(re===0)break e;re--,Z+=U[j++]<<se,se+=8}se-=he,Ie=0,fe=11+(127&(Z>>>=he)),Z>>>=7,se-=7}if(O.have+fe>O.nlen+O.ndist){H.msg="invalid bit length repeat",O.mode=30;break}for(;fe--;)O.lens[O.have++]=Ie}}if(O.mode===30)break;if(O.lens[256]===0){H.msg="invalid code -- missing end-of-block",O.mode=30;break}if(O.lenbits=9,Me={bits:O.lenbits},qe=l(g,O.lens,0,O.nlen,O.lencode,0,O.work,Me),O.lenbits=Me.bits,qe){H.msg="invalid literal/lengths set",O.mode=30;break}if(O.distbits=6,O.distcode=O.distdyn,Me={bits:O.distbits},qe=l(u,O.lens,O.nlen,O.ndist,O.distcode,0,O.work,Me),O.distbits=Me.bits,qe){H.msg="invalid distances set",O.mode=30;break}if(O.mode=20,G===6)break e;case 20:O.mode=21;case 21:if(6<=re&&258<=X){H.next_out=te,H.avail_out=X,H.next_in=j,H.avail_in=re,O.hold=Z,O.bits=se,c(H,ge),te=H.next_out,W=H.output,X=H.avail_out,j=H.next_in,U=H.input,re=H.avail_in,Z=O.hold,se=O.bits,O.mode===12&&(O.back=-1);break}for(O.back=0;xe=(Ye=O.lencode[Z&(1<<O.lenbits)-1])>>>16&255,_e=65535&Ye,!((he=Ye>>>24)<=se);){if(re===0)break e;re--,Z+=U[j++]<<se,se+=8}if(xe&&(240&xe)==0){for(we=he,He=xe,ze=_e;xe=(Ye=O.lencode[ze+((Z&(1<<we+He)-1)>>we)])>>>16&255,_e=65535&Ye,!(we+(he=Ye>>>24)<=se);){if(re===0)break e;re--,Z+=U[j++]<<se,se+=8}Z>>>=we,se-=we,O.back+=we}if(Z>>>=he,se-=he,O.back+=he,O.length=_e,xe===0){O.mode=26;break}if(32&xe){O.back=-1,O.mode=12;break}if(64&xe){H.msg="invalid literal/length code",O.mode=30;break}O.extra=15&xe,O.mode=22;case 22:if(O.extra){for(Te=O.extra;se<Te;){if(re===0)break e;re--,Z+=U[j++]<<se,se+=8}O.length+=Z&(1<<O.extra)-1,Z>>>=O.extra,se-=O.extra,O.back+=O.extra}O.was=O.length,O.mode=23;case 23:for(;xe=(Ye=O.distcode[Z&(1<<O.distbits)-1])>>>16&255,_e=65535&Ye,!((he=Ye>>>24)<=se);){if(re===0)break e;re--,Z+=U[j++]<<se,se+=8}if((240&xe)==0){for(we=he,He=xe,ze=_e;xe=(Ye=O.distcode[ze+((Z&(1<<we+He)-1)>>we)])>>>16&255,_e=65535&Ye,!(we+(he=Ye>>>24)<=se);){if(re===0)break e;re--,Z+=U[j++]<<se,se+=8}Z>>>=we,se-=we,O.back+=we}if(Z>>>=he,se-=he,O.back+=he,64&xe){H.msg="invalid distance code",O.mode=30;break}O.offset=_e,O.extra=15&xe,O.mode=24;case 24:if(O.extra){for(Te=O.extra;se<Te;){if(re===0)break e;re--,Z+=U[j++]<<se,se+=8}O.offset+=Z&(1<<O.extra)-1,Z>>>=O.extra,se-=O.extra,O.back+=O.extra}if(O.offset>O.dmax){H.msg="invalid distance too far back",O.mode=30;break}O.mode=25;case 25:if(X===0)break e;if(fe=ge-X,O.offset>fe){if((fe=O.offset-fe)>O.whave&&O.sane){H.msg="invalid distance too far back",O.mode=30;break}Ce=fe>O.wnext?(fe-=O.wnext,O.wsize-fe):O.wnext-fe,fe>O.length&&(fe=O.length),Ee=O.window}else Ee=W,Ce=te-O.offset,fe=O.length;for(X<fe&&(fe=X),X-=fe,O.length-=fe;W[te++]=Ee[Ce++],--fe;);O.length===0&&(O.mode=21);break;case 26:if(X===0)break e;W[te++]=O.length,X--,O.mode=21;break;case 27:if(O.wrap){for(;se<32;){if(re===0)break e;re--,Z|=U[j++]<<se,se+=8}if(ge-=X,H.total_out+=ge,O.total+=ge,ge&&(H.adler=O.check=O.flags?A(O.check,W,ge,te-ge):a(O.check,W,ge,te-ge)),ge=X,(O.flags?Z:I(Z))!==O.check){H.msg="incorrect data check",O.mode=30;break}se=Z=0}O.mode=28;case 28:if(O.wrap&&O.flags){for(;se<32;){if(re===0)break e;re--,Z+=U[j++]<<se,se+=8}if(Z!==(4294967295&O.total)){H.msg="incorrect length check",O.mode=30;break}se=Z=0}O.mode=29;case 29:qe=1;break e;case 30:qe=-3;break e;case 31:return-4;default:return h}return H.next_out=te,H.avail_out=X,H.next_in=j,H.avail_in=re,O.hold=Z,O.bits=se,(O.wsize||ge!==H.avail_out&&O.mode<30&&(O.mode<27||G!==4))&&w(H,H.output,H.next_out,ge-H.avail_out)?(O.mode=31,-4):(ae-=H.avail_in,ge-=H.avail_out,H.total_in+=ae,H.total_out+=ge,O.total+=ge,O.wrap&&ge&&(H.adler=O.check=O.flags?A(O.check,W,ge,H.next_out-ge):a(O.check,W,ge,H.next_out-ge)),H.data_type=O.bits+(O.last?64:0)+(O.mode===12?128:0)+(O.mode===20||O.mode===15?256:0),(ae==0&&ge===0||G===4)&&qe===d&&(qe=-5),qe)},r.inflateEnd=function(H){if(!H||!H.state)return h;var G=H.state;return G.window&&(G.window=null),H.state=null,d},r.inflateGetHeader=function(H,G){var O;return H&&H.state?(2&(O=H.state).wrap)==0?h:((O.head=G).done=!1,d):h},r.inflateSetDictionary=function(H,G){var O,U=G.length;return H&&H.state?(O=H.state).wrap!==0&&O.mode!==11?h:O.mode===11&&a(1,G,U,0)!==O.check?-3:w(H,G,U,U)?(O.mode=31,-4):(O.havedict=1,d):h},r.inflateInfo="pako inflate (from Nodeca project)"},{"../utils/common":41,"./adler32":43,"./crc32":45,"./inffast":48,"./inftrees":50}],50:[function(o,i,r){var s=o("../utils/common"),a=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],A=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],c=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],l=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];i.exports=function(g,u,d,h,_,m,p,I){var f,C,y,E,B,Q,b,D,R,w=I.bits,H=0,G=0,O=0,U=0,W=0,j=0,te=0,re=0,X=0,Z=0,se=null,ae=0,ge=new s.Buf16(16),fe=new s.Buf16(16),Ce=null,Ee=0;for(H=0;H<=15;H++)ge[H]=0;for(G=0;G<h;G++)ge[u[d+G]]++;for(W=w,U=15;1<=U&&ge[U]===0;U--);if(U<W&&(W=U),U===0)return _[m++]=20971520,_[m++]=20971520,I.bits=1,0;for(O=1;O<U&&ge[O]===0;O++);for(W<O&&(W=O),H=re=1;H<=15;H++)if(re<<=1,(re-=ge[H])<0)return-1;if(0<re&&(g===0||U!==1))return-1;for(fe[1]=0,H=1;H<15;H++)fe[H+1]=fe[H]+ge[H];for(G=0;G<h;G++)u[d+G]!==0&&(p[fe[u[d+G]]++]=G);if(Q=g===0?(se=Ce=p,19):g===1?(se=a,ae-=257,Ce=A,Ee-=257,256):(se=c,Ce=l,-1),H=O,B=m,te=G=Z=0,y=-1,E=(X=1<<(j=W))-1,g===1&&852<X||g===2&&592<X)return 1;for(;;){for(b=H-te,R=p[G]<Q?(D=0,p[G]):p[G]>Q?(D=Ce[Ee+p[G]],se[ae+p[G]]):(D=96,0),f=1<<H-te,O=C=1<<j;_[B+(Z>>te)+(C-=f)]=b<<24|D<<16|R|0,C!==0;);for(f=1<<H-1;Z&f;)f>>=1;if(f!==0?(Z&=f-1,Z+=f):Z=0,G++,--ge[H]==0){if(H===U)break;H=u[d+p[G]]}if(W<H&&(Z&E)!==y){for(te===0&&(te=W),B+=O,re=1<<(j=H-te);j+te<U&&!((re-=ge[j+te])<=0);)j++,re<<=1;if(X+=1<<j,g===1&&852<X||g===2&&592<X)return 1;_[y=Z&E]=W<<24|j<<16|B-m|0}}return Z!==0&&(_[B+Z]=H-te<<24|64<<16|0),I.bits=W,0}},{"../utils/common":41}],51:[function(o,i,r){i.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],52:[function(o,i,r){var s=o("../utils/common"),a=0,A=1;function c(Ye){for(var Ne=Ye.length;0<=--Ne;)Ye[Ne]=0}var l=0,g=29,u=256,d=u+1+g,h=30,_=19,m=2*d+1,p=15,I=16,f=7,C=256,y=16,E=17,B=18,Q=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],b=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],D=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],R=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],w=new Array(2*(d+2));c(w);var H=new Array(2*h);c(H);var G=new Array(512);c(G);var O=new Array(256);c(O);var U=new Array(g);c(U);var W,j,te,re=new Array(h);function X(Ye,Ne,be,Oe,ve){this.static_tree=Ye,this.extra_bits=Ne,this.extra_base=be,this.elems=Oe,this.max_length=ve,this.has_stree=Ye&&Ye.length}function Z(Ye,Ne){this.dyn_tree=Ye,this.max_code=0,this.stat_desc=Ne}function se(Ye){return Ye<256?G[Ye]:G[256+(Ye>>>7)]}function ae(Ye,Ne){Ye.pending_buf[Ye.pending++]=255&Ne,Ye.pending_buf[Ye.pending++]=Ne>>>8&255}function ge(Ye,Ne,be){Ye.bi_valid>I-be?(Ye.bi_buf|=Ne<<Ye.bi_valid&65535,ae(Ye,Ye.bi_buf),Ye.bi_buf=Ne>>I-Ye.bi_valid,Ye.bi_valid+=be-I):(Ye.bi_buf|=Ne<<Ye.bi_valid&65535,Ye.bi_valid+=be)}function fe(Ye,Ne,be){ge(Ye,be[2*Ne],be[2*Ne+1])}function Ce(Ye,Ne){for(var be=0;be|=1&Ye,Ye>>>=1,be<<=1,0<--Ne;);return be>>>1}function Ee(Ye,Ne,be){var Oe,ve,Je=new Array(p+1),$e=0;for(Oe=1;Oe<=p;Oe++)Je[Oe]=$e=$e+be[Oe-1]<<1;for(ve=0;ve<=Ne;ve++){var at=Ye[2*ve+1];at!==0&&(Ye[2*ve]=Ce(Je[at]++,at))}}function he(Ye){var Ne;for(Ne=0;Ne<d;Ne++)Ye.dyn_ltree[2*Ne]=0;for(Ne=0;Ne<h;Ne++)Ye.dyn_dtree[2*Ne]=0;for(Ne=0;Ne<_;Ne++)Ye.bl_tree[2*Ne]=0;Ye.dyn_ltree[2*C]=1,Ye.opt_len=Ye.static_len=0,Ye.last_lit=Ye.matches=0}function xe(Ye){8<Ye.bi_valid?ae(Ye,Ye.bi_buf):0<Ye.bi_valid&&(Ye.pending_buf[Ye.pending++]=Ye.bi_buf),Ye.bi_buf=0,Ye.bi_valid=0}function _e(Ye,Ne,be,Oe){var ve=2*Ne,Je=2*be;return Ye[ve]<Ye[Je]||Ye[ve]===Ye[Je]&&Oe[Ne]<=Oe[be]}function we(Ye,Ne,be){for(var Oe=Ye.heap[be],ve=be<<1;ve<=Ye.heap_len&&(ve<Ye.heap_len&&_e(Ne,Ye.heap[ve+1],Ye.heap[ve],Ye.depth)&&ve++,!_e(Ne,Oe,Ye.heap[ve],Ye.depth));)Ye.heap[be]=Ye.heap[ve],be=ve,ve<<=1;Ye.heap[be]=Oe}function He(Ye,Ne,be){var Oe,ve,Je,$e,at=0;if(Ye.last_lit!==0)for(;Oe=Ye.pending_buf[Ye.d_buf+2*at]<<8|Ye.pending_buf[Ye.d_buf+2*at+1],ve=Ye.pending_buf[Ye.l_buf+at],at++,Oe===0?fe(Ye,ve,Ne):(fe(Ye,(Je=O[ve])+u+1,Ne),($e=Q[Je])!==0&&ge(Ye,ve-=U[Je],$e),fe(Ye,Je=se(--Oe),be),($e=b[Je])!==0&&ge(Ye,Oe-=re[Je],$e)),at<Ye.last_lit;);fe(Ye,C,Ne)}function ze(Ye,Ne){var be,Oe,ve,Je=Ne.dyn_tree,$e=Ne.stat_desc.static_tree,at=Ne.stat_desc.has_stree,ct=Ne.stat_desc.elems,ht=-1;for(Ye.heap_len=0,Ye.heap_max=m,be=0;be<ct;be++)Je[2*be]!==0?(Ye.heap[++Ye.heap_len]=ht=be,Ye.depth[be]=0):Je[2*be+1]=0;for(;Ye.heap_len<2;)Je[2*(ve=Ye.heap[++Ye.heap_len]=ht<2?++ht:0)]=1,Ye.depth[ve]=0,Ye.opt_len--,at&&(Ye.static_len-=$e[2*ve+1]);for(Ne.max_code=ht,be=Ye.heap_len>>1;1<=be;be--)we(Ye,Je,be);for(ve=ct;be=Ye.heap[1],Ye.heap[1]=Ye.heap[Ye.heap_len--],we(Ye,Je,1),Oe=Ye.heap[1],Ye.heap[--Ye.heap_max]=be,Ye.heap[--Ye.heap_max]=Oe,Je[2*ve]=Je[2*be]+Je[2*Oe],Ye.depth[ve]=(Ye.depth[be]>=Ye.depth[Oe]?Ye.depth[be]:Ye.depth[Oe])+1,Je[2*be+1]=Je[2*Oe+1]=ve,Ye.heap[1]=ve++,we(Ye,Je,1),2<=Ye.heap_len;);Ye.heap[--Ye.heap_max]=Ye.heap[1],(function(gt,nt){var xt,mt,vt,Ft,Zt,en,Ut=nt.dyn_tree,ye=nt.max_code,st=nt.stat_desc.static_tree,lt=nt.stat_desc.has_stree,dt=nt.stat_desc.extra_bits,Tt=nt.stat_desc.extra_base,Ht=nt.stat_desc.max_length,ln=0;for(Ft=0;Ft<=p;Ft++)gt.bl_count[Ft]=0;for(Ut[2*gt.heap[gt.heap_max]+1]=0,xt=gt.heap_max+1;xt<m;xt++)Ht<(Ft=Ut[2*Ut[2*(mt=gt.heap[xt])+1]+1]+1)&&(Ft=Ht,ln++),Ut[2*mt+1]=Ft,ye<mt||(gt.bl_count[Ft]++,Zt=0,Tt<=mt&&(Zt=dt[mt-Tt]),en=Ut[2*mt],gt.opt_len+=en*(Ft+Zt),lt&&(gt.static_len+=en*(st[2*mt+1]+Zt)));if(ln!==0){do{for(Ft=Ht-1;gt.bl_count[Ft]===0;)Ft--;gt.bl_count[Ft]--,gt.bl_count[Ft+1]+=2,gt.bl_count[Ht]--,ln-=2}while(0<ln);for(Ft=Ht;Ft!==0;Ft--)for(mt=gt.bl_count[Ft];mt!==0;)ye<(vt=gt.heap[--xt])||(Ut[2*vt+1]!==Ft&&(gt.opt_len+=(Ft-Ut[2*vt+1])*Ut[2*vt],Ut[2*vt+1]=Ft),mt--)}})(Ye,Ne),Ee(Je,ht,Ye.bl_count)}function Ie(Ye,Ne,be){var Oe,ve,Je=-1,$e=Ne[1],at=0,ct=7,ht=4;for($e===0&&(ct=138,ht=3),Ne[2*(be+1)+1]=65535,Oe=0;Oe<=be;Oe++)ve=$e,$e=Ne[2*(Oe+1)+1],++at<ct&&ve===$e||(at<ht?Ye.bl_tree[2*ve]+=at:ve!==0?(ve!==Je&&Ye.bl_tree[2*ve]++,Ye.bl_tree[2*y]++):at<=10?Ye.bl_tree[2*E]++:Ye.bl_tree[2*B]++,Je=ve,ht=(at=0)===$e?(ct=138,3):ve===$e?(ct=6,3):(ct=7,4))}function qe(Ye,Ne,be){var Oe,ve,Je=-1,$e=Ne[1],at=0,ct=7,ht=4;for($e===0&&(ct=138,ht=3),Oe=0;Oe<=be;Oe++)if(ve=$e,$e=Ne[2*(Oe+1)+1],!(++at<ct&&ve===$e)){if(at<ht)for(;fe(Ye,ve,Ye.bl_tree),--at!=0;);else ve!==0?(ve!==Je&&(fe(Ye,ve,Ye.bl_tree),at--),fe(Ye,y,Ye.bl_tree),ge(Ye,at-3,2)):at<=10?(fe(Ye,E,Ye.bl_tree),ge(Ye,at-3,3)):(fe(Ye,B,Ye.bl_tree),ge(Ye,at-11,7));Je=ve,ht=(at=0)===$e?(ct=138,3):ve===$e?(ct=6,3):(ct=7,4)}}c(re);var Me=!1;function Te(Ye,Ne,be,Oe){ge(Ye,(l<<1)+(Oe?1:0),3),(function(ve,Je,$e,at){xe(ve),ae(ve,$e),ae(ve,~$e),s.arraySet(ve.pending_buf,ve.window,Je,$e,ve.pending),ve.pending+=$e})(Ye,Ne,be)}r._tr_init=function(Ye){Me||((function(){var Ne,be,Oe,ve,Je,$e=new Array(p+1);for(ve=Oe=0;ve<g-1;ve++)for(U[ve]=Oe,Ne=0;Ne<1<<Q[ve];Ne++)O[Oe++]=ve;for(O[Oe-1]=ve,ve=Je=0;ve<16;ve++)for(re[ve]=Je,Ne=0;Ne<1<<b[ve];Ne++)G[Je++]=ve;for(Je>>=7;ve<h;ve++)for(re[ve]=Je<<7,Ne=0;Ne<1<<b[ve]-7;Ne++)G[256+Je++]=ve;for(be=0;be<=p;be++)$e[be]=0;for(Ne=0;Ne<=143;)w[2*Ne+1]=8,Ne++,$e[8]++;for(;Ne<=255;)w[2*Ne+1]=9,Ne++,$e[9]++;for(;Ne<=279;)w[2*Ne+1]=7,Ne++,$e[7]++;for(;Ne<=287;)w[2*Ne+1]=8,Ne++,$e[8]++;for(Ee(w,d+1,$e),Ne=0;Ne<h;Ne++)H[2*Ne+1]=5,H[2*Ne]=Ce(Ne,5);W=new X(w,Q,u+1,d,p),j=new X(H,b,0,h,p),te=new X(new Array(0),D,0,_,f)})(),Me=!0),Ye.l_desc=new Z(Ye.dyn_ltree,W),Ye.d_desc=new Z(Ye.dyn_dtree,j),Ye.bl_desc=new Z(Ye.bl_tree,te),Ye.bi_buf=0,Ye.bi_valid=0,he(Ye)},r._tr_stored_block=Te,r._tr_flush_block=function(Ye,Ne,be,Oe){var ve,Je,$e=0;0<Ye.level?(Ye.strm.data_type===2&&(Ye.strm.data_type=(function(at){var ct,ht=4093624447;for(ct=0;ct<=31;ct++,ht>>>=1)if(1&ht&&at.dyn_ltree[2*ct]!==0)return a;if(at.dyn_ltree[18]!==0||at.dyn_ltree[20]!==0||at.dyn_ltree[26]!==0)return A;for(ct=32;ct<u;ct++)if(at.dyn_ltree[2*ct]!==0)return A;return a})(Ye)),ze(Ye,Ye.l_desc),ze(Ye,Ye.d_desc),$e=(function(at){var ct;for(Ie(at,at.dyn_ltree,at.l_desc.max_code),Ie(at,at.dyn_dtree,at.d_desc.max_code),ze(at,at.bl_desc),ct=_-1;3<=ct&&at.bl_tree[2*R[ct]+1]===0;ct--);return at.opt_len+=3*(ct+1)+5+5+4,ct})(Ye),ve=Ye.opt_len+3+7>>>3,(Je=Ye.static_len+3+7>>>3)<=ve&&(ve=Je)):ve=Je=be+5,be+4<=ve&&Ne!==-1?Te(Ye,Ne,be,Oe):Ye.strategy===4||Je===ve?(ge(Ye,2+(Oe?1:0),3),He(Ye,w,H)):(ge(Ye,4+(Oe?1:0),3),(function(at,ct,ht,gt){var nt;for(ge(at,ct-257,5),ge(at,ht-1,5),ge(at,gt-4,4),nt=0;nt<gt;nt++)ge(at,at.bl_tree[2*R[nt]+1],3);qe(at,at.dyn_ltree,ct-1),qe(at,at.dyn_dtree,ht-1)})(Ye,Ye.l_desc.max_code+1,Ye.d_desc.max_code+1,$e+1),He(Ye,Ye.dyn_ltree,Ye.dyn_dtree)),he(Ye),Oe&&xe(Ye)},r._tr_tally=function(Ye,Ne,be){return Ye.pending_buf[Ye.d_buf+2*Ye.last_lit]=Ne>>>8&255,Ye.pending_buf[Ye.d_buf+2*Ye.last_lit+1]=255&Ne,Ye.pending_buf[Ye.l_buf+Ye.last_lit]=255&be,Ye.last_lit++,Ne===0?Ye.dyn_ltree[2*be]++:(Ye.matches++,Ne--,Ye.dyn_ltree[2*(O[be]+u+1)]++,Ye.dyn_dtree[2*se(Ne)]++),Ye.last_lit===Ye.lit_bufsize-1},r._tr_align=function(Ye){ge(Ye,2,3),fe(Ye,C,w),(function(Ne){Ne.bi_valid===16?(ae(Ne,Ne.bi_buf),Ne.bi_buf=0,Ne.bi_valid=0):8<=Ne.bi_valid&&(Ne.pending_buf[Ne.pending++]=255&Ne.bi_buf,Ne.bi_buf>>=8,Ne.bi_valid-=8)})(Ye)}},{"../utils/common":41}],53:[function(o,i,r){i.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(o,i,r){(function(s){(function(a,A){if(!a.setImmediate){var c,l,g,u,d=1,h={},_=!1,m=a.document,p=Object.getPrototypeOf&&Object.getPrototypeOf(a);p=p&&p.setTimeout?p:a,c={}.toString.call(a.process)==="[object process]"?function(y){n.nextTick(function(){f(y)})}:(function(){if(a.postMessage&&!a.importScripts){var y=!0,E=a.onmessage;return a.onmessage=function(){y=!1},a.postMessage("","*"),a.onmessage=E,y}})()?(u="setImmediate$"+Math.random()+"$",a.addEventListener?a.addEventListener("message",C,!1):a.attachEvent("onmessage",C),function(y){a.postMessage(u+y,"*")}):a.MessageChannel?((g=new MessageChannel).port1.onmessage=function(y){f(y.data)},function(y){g.port2.postMessage(y)}):m&&"onreadystatechange"in m.createElement("script")?(l=m.documentElement,function(y){var E=m.createElement("script");E.onreadystatechange=function(){f(y),E.onreadystatechange=null,l.removeChild(E),E=null},l.appendChild(E)}):function(y){setTimeout(f,0,y)},p.setImmediate=function(y){typeof y!="function"&&(y=new Function(""+y));for(var E=new Array(arguments.length-1),B=0;B<E.length;B++)E[B]=arguments[B+1];var Q={callback:y,args:E};return h[d]=Q,c(d),d++},p.clearImmediate=I}function I(y){delete h[y]}function f(y){if(_)setTimeout(f,0,y);else{var E=h[y];if(E){_=!0;try{(function(B){var Q=B.callback,b=B.args;switch(b.length){case 0:Q();break;case 1:Q(b[0]);break;case 2:Q(b[0],b[1]);break;case 3:Q(b[0],b[1],b[2]);break;default:Q.apply(A,b)}})(E)}finally{I(y),_=!1}}}}function C(y){y.source===a&&typeof y.data=="string"&&y.data.indexOf(u)===0&&f(+y.data.slice(u.length))}})(typeof self>"u"?s===void 0?this:s:self)}).call(this,typeof NC<"u"?NC:typeof self<"u"?self:typeof window<"u"?window:{})},{}]},{},[10])(10)})})(lNe)),lNe.exports}var HZo=LZo();const gNe=oy(HZo),GZo=async({circuitJson:t,projectName:e})=>{await Vs.promise((async()=>{const n=new gNe,[{stringifyGerberCommandLayers:o,convertSoupToGerberCommands:i,convertSoupToExcellonDrillCommands:r,stringifyExcellonDrill:s},{convertCircuitJsonToBomRows:a,convertBomRowsToCsv:A},{convertCircuitJsonToPickAndPlaceCsv:c}]=await Promise.all([sQ("circuit-json-to-gerber"),sQ("circuit-json-to-bom-csv"),sQ("circuit-json-to-pnp-csv")]),l=t.filter(f=>!("error_type"in f)&&!("warning_type"in f)),g=i(l,{flip_y_axis:!1}),u=o(g);for(const[f,C]of Object.entries(u))n.file(`gerber/${f}.gbr`,C);const d=r({circuitJson:l,is_plated:!0,flip_y_axis:!1}),h=s(d);n.file("gerber/drill.drl",h);const _=await a({circuitJson:t}),m=await A(_);n.file("bom.csv",m);const p=await c(t,{supplier:"jlcpcb"});n.file("pick_and_place.csv",p);const I=await n.generateAsync({type:"blob"});Eb(I,{fileName:`${e}_fabrication_files.zip`})})(),{loading:"Generating fabrication files...",success:"Fabrication ZIP ready",error:n=>`Failed to generate fabrication files: ${n instanceof Error?n.message:String(n)}`})},OZo=async({circuitJson:t,projectName:e})=>{let n;try{const{convertCircuitJsonToGltf:o}=await sQ("circuit-json-to-gltf");console.log("convertCircuitJsonToGltf",o);const i=await o(t,{format:"glb",boardTextureResolution:1024});if(!i||!(i instanceof ArrayBuffer))throw new Error("Invalid GLB data returned from converter");n=new Blob([i],{type:"model/gltf-binary"})}catch(o){console.error("GLB Export Error:",o);return}Eb(n,{fileName:`${e}.glb`})},KZo=async({circuitJson:t,libraryName:e})=>{const{CircuitJsonToKicadLibraryConverter:n}=await sQ("circuit-json-to-kicad"),o=new n(t,{libraryName:e,footprintLibraryName:e});o.runUntilFinished();const i=o.getOutput(),r=new gNe;r.file(`${e}.kicad_sym`,i.kicadSymString);for(const s of i.footprints){const a=r.folder(`${e}.pretty`);a&&a.file(`${s.footprintName}.kicad_mod`,`${s.kicadModString}
|
|
5802
5802
|
`)}if(i.model3dSourcePaths.length>0){const s=r.folder(`${e}.3dshapes`);if(s)for(const a of i.model3dSourcePaths)try{const A=a.split("/").pop()||a,c=await fetch(a);if(c.ok){const l=await c.arrayBuffer();s.file(A,l)}}catch{}}return r.file("fp-lib-table",i.fpLibTableString),r.file("sym-lib-table",i.symLibTableString),r},UZo=async({circuitJson:t,projectName:e})=>{await Vs.promise((async()=>{const o=await(await KZo({circuitJson:t,libraryName:e})).generateAsync({type:"blob"});Eb(o,{fileName:`${e}_kicad_library.zip`})})(),{loading:"Generating KiCad library...",success:"KiCad library ZIP ready",error:n=>`Failed to generate KiCad library: ${n instanceof Error?n.message:String(n)}`})},YZo=async({circuitJson:t,projectName:e})=>{const{CircuitJsonToKicadPcbConverter:n,CircuitJsonToKicadSchConverter:o,CircuitJsonToKicadProConverter:i,resolveAndLoadKicad3dModelFiles:r}=await sQ("circuit-json-to-kicad"),s=new o(t);s.runUntilFinished();const a=s.getOutputString(),A=new n(t,{includeBuiltin3dModels:!0,projectName:e});A.runUntilFinished();const c=A.getOutputString(),l=new i(t,{projectName:e,schematicFilename:`${e}.kicad_sch`,pcbFilename:`${e}.kicad_pcb`});l.runUntilFinished();const g=l.getOutputString(),u=new gNe;return u.file(`${e}.kicad_sch`,a),u.file(`${e}.kicad_pcb`,c),u.file(`${e}.kicad_pro`,g),await r({projectName:e,model3dSourcePaths:A.getModel3dSourcePaths(),fetch,onModelFile:({outputPath:d,content:h})=>{u.file(d,h)},onError:({sourcePath:d})=>{console.warn(`Failed to load 3D model from ${d}`)}}),u},zZo=async({circuitJson:t,projectName:e})=>{await Vs.promise((async()=>{const o=await(await YZo({circuitJson:t,projectName:e})).generateAsync({type:"blob"});Eb(o,{fileName:`${e}_kicad_project.zip`})})(),{loading:"Generating KiCad project...",success:"KiCad project ZIP ready",error:n=>`Failed to generate KiCad project: ${n instanceof Error?n.message:String(n)}`})},ZOt=async({circuitJson:t,projectName:e,options:n={}})=>{try{const{convertCircuitJsonToLbrn:o}=await sQ("circuit-json-to-lbrn"),r=(await o(t,{includeSilkscreen:n.includeSilkscreen??!1,includeOxidationCleaningLayer:n.includeOxidationCleaningLayer??!0})).toXml(),s=new Blob([r],{type:"application/lbrn"});Eb(s,{fileName:`${e}.lbrn2`})}catch(o){const i=o instanceof Error?o.message:"Unknown error";Vs.error(`Failed to export to LBRN format: ${i}`)}},VZo=async({circuitJson:t,projectName:e})=>{const{convertCircuitJsonToPinoutSvg:n}=await sQ("circuit-to-svg"),o=n(t);Eb(o,{fileName:`${e}-pinout.svg`,mimeType:"image/svg+xml"})},JZo=async({circuitJson:t,projectName:e})=>{const{circuitJsonToStep:n}=await sQ("circuit-json-to-step"),o=t.find(c=>c.type==="pcb_board"),i=o&&"width"in o?o.width:void 0,r=o&&"height"in o?o.height:void 0,s=o&&"thickness"in o?o.thickness:void 0;if(i===void 0||r===void 0||s===void 0){Vs.error("Board dimensions not found. Please add a pcb_board with width, height, and thickness to your circuit.");return}let a;try{a=await n(t,{boardWidth:i,boardHeight:r,boardThickness:s,productName:e,includeComponents:!0,includeExternalMeshes:!0})}catch(c){const l=c instanceof Error?c.message:"Unknown error";Vs.error(`Failed to convert circuit to STEP format: ${l}`);return}const A=new Blob([a],{type:"application/step"});try{Eb(A,{fileName:`${e}.step`})}catch(c){const l=c instanceof Error?c.message:"Unknown error";Vs.error(`Failed to download STEP file: ${l}`)}},qZo=[{extension:"json",name:"Circuit JSON"},{extension:"json",name:"Simple Route JSON"},{extension:"zip",name:"Fabrication Files"},{extension:"zip",name:"KiCad Project"},{extension:"zip",name:"KiCad Library"},{extension:"glb",name:"GLB (Binary GLTF)"},{extension:"svg",name:"Pinout SVG"},{extension:"step",name:"STEP"},{extension:"lbrn2",name:"LightBurn"}],WZo=async({exportName:t,circuitJson:e,simpleRouteJson:n,projectName:o})=>{const i=rOt(o);if(t==="Fabrication Files"){await GZo({circuitJson:e,projectName:i});return}if(t==="KiCad Project"){await zZo({circuitJson:e,projectName:i});return}if(t==="KiCad Library"){await UZo({circuitJson:e,projectName:i});return}if(t==="Circuit JSON"){Eb(JSON.stringify(e,null,2),{fileName:`${i}.circuit.json`,mimeType:"application/json"});return}if(t==="Simple Route JSON"){if(!n)throw new Error("No Simple Route JSON available to export");Eb(JSON.stringify(n,null,2),{fileName:`${i}.simple-route.json`,mimeType:"application/json"});return}if(t==="GLB (Binary GLTF)"){await OZo({circuitJson:e,projectName:i});return}if(t==="Pinout SVG"){VZo({circuitJson:e,projectName:i});return}if(t==="STEP"){await JZo({circuitJson:e,projectName:i});return}if(t==="LightBurn"){await ZOt({circuitJson:e,projectName:i});return}throw new Error(`Unsupported export type: "${t}"`)},jZo=({packageName:t,onSelectReview:e})=>{const n=ju(g=>g.fsMap),o=ju(g=>g.circuitJson),[i,r]=$.useState([]),[s,a]=$.useState(!1),[A,c]=$.useState(!1);$.useEffect(()=>{!t||!Yne()||(a(!0),MK.get("ai_reviews/list",{searchParams:{package_name:t}}).json().then(g=>r(g.ai_reviews)).catch(g=>{console.error("Failed to load AI reviews",g),Vs.error("Failed to load AI reviews")}).finally(()=>a(!1)))},[t]);const l=async()=>{if(!o){Vs.error("Need Circuit JSON to Request AI Review");return}if(!Yne()){Vs.error("Missing registry token");return}c(!0);try{const{ai_review:g}=await MK.post("ai_reviews/create",{json:{package_name:t??"unknown",fs_map:Object.fromEntries(n),circuit_json:o}}).json();r(u=>[g,...u]),e(g),Vs.success("AI review requested")}catch(g){console.error("Failed to create AI review",g),Vs.error("Failed to request AI review")}finally{c(!1)}};return V.jsxs(V.Fragment,{children:[V.jsxs(s8,{children:[V.jsx(a8,{children:"AI Review"}),V.jsx(Xk,{children:"Select an AI review or request a new one."})]}),V.jsx("div",{className:"rf-flex rf-gap-4 rf-mt-4",children:V.jsx("div",{className:"rf-w-48 rf-h-64 rf-overflow-y-auto rf-border rf-rounded rf-p-2 rf-flex-shrink-0",children:s?V.jsx("div",{className:"rf-text-sm",children:"Loading..."}):i.length>0?i.map(g=>V.jsx("div",{className:"rf-text-sm rf-p-2 rf-cursor-pointer rf-rounded hover:rf-bg-zinc-100",onClick:()=>e(g),children:new Date(g.created_at||"").toLocaleString()},g.ai_review_id)):V.jsx("div",{className:"rf-text-sm rf-text-muted-foreground",children:"No AI reviews found."})})}),V.jsx(oz,{className:"rf-mt-4",children:V.jsx(rA,{onClick:l,disabled:A,children:A?"Requesting...":"Review my Board"})})]})};function uNe(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var A8=uNe();function eKt(t){A8=t}var sz={exec:()=>null};function El(t,e=""){let n=typeof t=="string"?t:t.source;const o={replace:(i,r)=>{let s=typeof r=="string"?r:r.source;return s=s.replace(c1.caret,"$1"),n=n.replace(i,s),o},getRegex:()=>new RegExp(n,e)};return o}var c1={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:t=>new RegExp(`^( {0,3}${t})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}#`),htmlBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}<(?:[a-z].*>|!--)`,"i")},XZo=/^(?:[ \t]*(?:\n|$))+/,$Zo=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,ZZo=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,az=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,eei=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,hNe=/(?:[*+-]|\d{1,9}[.)])/,tKt=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,nKt=El(tKt).replace(/bull/g,hNe).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),tei=El(tKt).replace(/bull/g,hNe).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),dNe=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,nei=/^[^\n]+/,_Ne=/(?!\s*\])(?:\\.|[^\[\]\\])+/,oei=El(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",_Ne).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),iei=El(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,hNe).getRegex(),Gae="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",mNe=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,rei=El("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",mNe).replace("tag",Gae).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),oKt=El(dNe).replace("hr",az).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Gae).getRegex(),sei=El(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",oKt).getRegex(),pNe={blockquote:sei,code:$Zo,def:oei,fences:ZZo,heading:eei,hr:az,html:rei,lheading:nKt,list:iei,newline:XZo,paragraph:oKt,table:sz,text:nei},iKt=El("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",az).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Gae).getRegex(),aei={...pNe,lheading:tei,table:iKt,paragraph:El(dNe).replace("hr",az).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",iKt).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Gae).getRegex()},Aei={...pNe,html:El(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",mNe).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:sz,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:El(dNe).replace("hr",az).replace("heading",` *#{1,6} *[^
|
|
5803
5803
|
]`).replace("lheading",nKt).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},cei=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,lei=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,rKt=/^( {2,}|\\)\n(?!\s*$)/,gei=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,Oae=/[\p{P}\p{S}]/u,INe=/[\s\p{P}\p{S}]/u,sKt=/[^\s\p{P}\p{S}]/u,uei=El(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,INe).getRegex(),aKt=/(?!~)[\p{P}\p{S}]/u,hei=/(?!~)[\s\p{P}\p{S}]/u,dei=/(?:[^\s\p{P}\p{S}]|~)/u,_ei=/\[[^[\]]*?\]\((?:\\.|[^\\\(\)]|\((?:\\.|[^\\\(\)])*\))*\)|`[^`]*?`|<[^<>]*?>/g,AKt=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,mei=El(AKt,"u").replace(/punct/g,Oae).getRegex(),pei=El(AKt,"u").replace(/punct/g,aKt).getRegex(),cKt="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",Iei=El(cKt,"gu").replace(/notPunctSpace/g,sKt).replace(/punctSpace/g,INe).replace(/punct/g,Oae).getRegex(),fei=El(cKt,"gu").replace(/notPunctSpace/g,dei).replace(/punctSpace/g,hei).replace(/punct/g,aKt).getRegex(),Cei=El("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,sKt).replace(/punctSpace/g,INe).replace(/punct/g,Oae).getRegex(),yei=El(/\\(punct)/,"gu").replace(/punct/g,Oae).getRegex(),Eei=El(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),xei=El(mNe).replace("(?:-->|$)","-->").getRegex(),Bei=El("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",xei).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),Kae=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,Qei=El(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",Kae).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),lKt=El(/^!?\[(label)\]\[(ref)\]/).replace("label",Kae).replace("ref",_Ne).getRegex(),gKt=El(/^!?\[(ref)\](?:\[\])?/).replace("ref",_Ne).getRegex(),Sei=El("reflink|nolink(?!\\()","g").replace("reflink",lKt).replace("nolink",gKt).getRegex(),fNe={_backpedal:sz,anyPunctuation:yei,autolink:Eei,blockSkip:_ei,br:rKt,code:lei,del:sz,emStrongLDelim:mei,emStrongRDelimAst:Iei,emStrongRDelimUnd:Cei,escape:cei,link:Qei,nolink:gKt,punctuation:uei,reflink:lKt,reflinkSearch:Sei,tag:Bei,text:gei,url:sz},bei={...fNe,link:El(/^!?\[(label)\]\((.*?)\)/).replace("label",Kae).getRegex(),reflink:El(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Kae).getRegex()},CNe={...fNe,emStrongRDelimAst:fei,emStrongLDelim:pei,url:El(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\.|[^\\])*?(?:\\.|[^\s~\\]))\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/},Dei={...CNe,br:El(rKt).replace("{2,}","*").getRegex(),text:El(CNe.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},Uae={normal:pNe,gfm:aei,pedantic:Aei},Az={normal:fNe,gfm:CNe,breaks:Dei,pedantic:bei},vei={"&":"&","<":"<",">":">",'"':""","'":"'"},uKt=t=>vei[t];function Bb(t,e){if(e){if(c1.escapeTest.test(t))return t.replace(c1.escapeReplace,uKt)}else if(c1.escapeTestNoEncode.test(t))return t.replace(c1.escapeReplaceNoEncode,uKt);return t}function hKt(t){try{t=encodeURI(t).replace(c1.percentDecode,"%")}catch{return null}return t}function dKt(t,e){const n=t.replace(c1.findPipe,(r,s,a)=>{let A=!1,c=s;for(;--c>=0&&a[c]==="\\";)A=!A;return A?"|":" |"}),o=n.split(c1.splitPipe);let i=0;if(o[0].trim()||o.shift(),o.length>0&&!o.at(-1)?.trim()&&o.pop(),e)if(o.length>e)o.splice(e);else for(;o.length<e;)o.push("");for(;i<o.length;i++)o[i]=o[i].trim().replace(c1.slashPipe,"|");return o}function cz(t,e,n){const o=t.length;if(o===0)return"";let i=0;for(;i<o&&t.charAt(o-i-1)===e;)i++;return t.slice(0,o-i)}function Pei(t,e){if(t.indexOf(e[1])===-1)return-1;let n=0;for(let o=0;o<t.length;o++)if(t[o]==="\\")o++;else if(t[o]===e[0])n++;else if(t[o]===e[1]&&(n--,n<0))return o;return n>0?-2:-1}function _Kt(t,e,n,o,i){const r=e.href,s=e.title||null,a=t[1].replace(i.other.outputLinkReplace,"$1");o.state.inLink=!0;const A={type:t[0].charAt(0)==="!"?"image":"link",raw:n,href:r,title:s,text:a,tokens:o.inlineTokens(a)};return o.state.inLink=!1,A}function Mei(t,e,n){const o=t.match(n.other.indentCodeCompensation);if(o===null)return e;const i=o[1];return e.split(`
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@tscircuit/runframe",
|
|
3
3
|
"main": "dist/preview.js",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"version": "0.0.
|
|
5
|
+
"version": "0.0.2436",
|
|
6
6
|
"exports": {
|
|
7
7
|
".": "./dist/preview.js",
|
|
8
8
|
"./preview": "./dist/preview.js",
|
|
@@ -114,7 +114,7 @@
|
|
|
114
114
|
"yargs": "^17.7.2"
|
|
115
115
|
},
|
|
116
116
|
"dependencies": {
|
|
117
|
-
"@tscircuit/eval": "^0.0.
|
|
117
|
+
"@tscircuit/eval": "^0.0.1180",
|
|
118
118
|
"@tscircuit/solver-utils": "^0.0.7",
|
|
119
119
|
"debug": "^4.4.0"
|
|
120
120
|
}
|