@tscircuit/runframe 0.0.1431 → 0.0.1433

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.
@@ -5293,10 +5293,10 @@ svg { font-family: 'Inter', 'Helvetica Neue', Arial, sans-serif; }
5293
5293
  50% { opacity: 0.2; }
5294
5294
  100% { opacity: 0.6; }
5295
5295
  }
5296
- `,o.appendChild(u)}})}};n();const s=new MutationObserver(n);return s.observe(o,{childList:!0,subtree:!1,characterData:!1}),()=>{s.disconnect()}},[t,e,A,i])},n$A=["#8B0000","#2F4F4F","#191970","#006400","#FF4500","#800080","#2E8B57","#B8860B","#C71585","#008B8B"],pMt=t=>{const{svgDivRef:A,circuitJson:e,circuitJsonKey:i,showGroups:o}=t;AA.useEffect(()=>{if(A.current&&A.current.querySelectorAll(".schematic-group-overlay").forEach(r=>r.remove()),!A.current||!o||!e||e.length===0)return;const n=setTimeout(()=>{if(!A.current)return;const s=A.current.querySelector("svg");if(!s)return;s.querySelectorAll(".schematic-group-overlay").forEach(a=>a.remove());try{const a=Yp(e).source_group?.list().filter(u=>!u.is_subcircuit)||[],g=Yp(e).schematic_component?.list()||[],I=new Map;a.forEach(u=>{const d=u;if(d.parent_source_group_id){const f=I.get(d.parent_source_group_id)||[];f.push(u.source_group_id),I.set(d.parent_source_group_id,f)}});const c=u=>{const d=[],f=I.get(u)||[];for(const w of f)d.push(w),d.push(...c(w));return d},B=u=>{const d=a.find(f=>f.source_group_id===u);return d?.parent_source_group_id?1+B(d.parent_source_group_id):0},C=a.length>0&&a.some(u=>u.name&&u.name.trim()!=="");let l=[];if(C){const u=new Map;for(const d of g){const f=Yp(e).source_component.get(d.source_component_id);f?.source_group_id&&(u.has(f.source_group_id)||u.set(f.source_group_id,[]),u.get(f.source_group_id).push(d))}a.forEach((d,f)=>{let w=u.get(d.source_group_id)||[];const S=c(d.source_group_id);for(const D of S){const x=u.get(D)||[];w=[...w,...x]}if(w.length>0){const D=B(d.source_group_id),x=c(d.source_group_id).length>0;if(d.name?.startsWith("unnamed_board"))return;l.push({id:d.source_group_id,name:d.name||`Group ${f+1}`,components:w,color:n$A[f%n$A.length],depthLevel:D,hasChildren:x,sourceGroupId:d.source_group_id})}})}const Q=s.viewBox.baseVal,E=s.getBoundingClientRect(),h=Math.min(E.width/Q.width,E.height/Q.height)||1;l.sort((u,d)=>u.depthLevel-d.depthLevel),l.forEach(u=>{if(u.components.length===0)return;const d=fMt(u.components,s);if(!d)return;const f=Math.max(8,Math.min(25,15/Math.max(h,.3))),w=u.hasChildren?f*.6:0,S=f+w,D=Math.max(1,2/Math.max(h,.5)),x=u.depthLevel===0?D:D*.7,F=Math.max(4,8/Math.max(h,.5)),k=u.hasChildren?1.3:1,U=F*k,N=U*.5,Y=document.createElementNS("http://www.w3.org/2000/svg","rect");Y.setAttribute("class","schematic-group-overlay"),Y.setAttribute("x",(d.minX-S).toString()),Y.setAttribute("y",(d.minY-S).toString()),Y.setAttribute("width",(d.maxX-d.minX+S*2).toString()),Y.setAttribute("height",(d.maxY-d.minY+S*2).toString()),Y.setAttribute("fill","none"),Y.setAttribute("stroke",u.color),Y.setAttribute("stroke-width",x.toString()),Y.setAttribute("stroke-dasharray",`${U},${N}`),Y.setAttribute("opacity","0.8"),Y.setAttribute("rx","0"),Y.setAttribute("ry","0");const q=Math.max(6,Math.min(20,14/Math.max(h,.2))),K=u.depthLevel===0||u.depthLevel===1?0:u.depthLevel*.2,O=q*(1-K),W=Math.max(1,O*.2),$=u.name,oA=document.createElementNS("http://www.w3.org/2000/svg","text");oA.setAttribute("font-size",O.toString()),oA.setAttribute("font-family","Arial, sans-serif"),oA.textContent=$,s.appendChild(oA);const IA=oA.getBBox();s.removeChild(oA);const tA=IA.width+W*2,sA=O+W*2,gA=d.minX-S,pA=d.minY-S-sA,xA=document.createElementNS("http://www.w3.org/2000/svg","rect");xA.setAttribute("class","schematic-group-overlay"),xA.setAttribute("x",gA.toString()),xA.setAttribute("y",(pA-sA).toString()),xA.setAttribute("width",tA.toString()),xA.setAttribute("height",sA.toString()),xA.setAttribute("fill","transparent"),xA.setAttribute("rx","0"),xA.setAttribute("ry","0");const _A=document.createElementNS("http://www.w3.org/2000/svg","text");_A.setAttribute("class","schematic-group-overlay"),_A.setAttribute("x",(gA+W).toString()),_A.setAttribute("y",(pA+sA-W).toString()),_A.setAttribute("fill",u.color),_A.setAttribute("font-size",O.toString()),_A.setAttribute("font-family","Arial, sans-serif"),_A.setAttribute("font-weight",u.depthLevel===0?"600":"500"),_A.setAttribute("stroke",u.color),_A.setAttribute("stroke-width",Math.max(.2,O*.02).toString()),_A.textContent=$,s.appendChild(Y),s.appendChild(xA),s.appendChild(_A)})}catch(a){console.error("Error creating group overlays:",a)}},10);return()=>clearTimeout(n)},[A,i,o])};function fMt(t,A){let e=1/0,i=1/0,o=-1/0,n=-1/0;for(const r of t){let a=A.querySelector(`g[data-schematic-component-id="${r.schematic_component_id}"]`);if(a||(a=A.querySelector(`[data-schematic-component-id="${r.schematic_component_id}"]`)),a){const g=a.getBBox();e=Math.min(e,g.x),i=Math.min(i,g.y),o=Math.max(o,g.x+g.width),n=Math.max(n,g.y+g.height)}}return e===1/0?null:{minX:e,minY:i,maxX:o,maxY:n}}var yMt=lI("schematic-viewer"),mMt=()=>{lI.enable("schematic-viewer*")},wMt=yMt,s$A=t=>{const[A,e]=AA.useState(0),[i,o]=AA.useState(0);return AA.useEffect(()=>{if(!t.current)return;const n=()=>{const r=t.current?.getBoundingClientRect();e(r?.width||0),o(r?.height||0)};n();const s=new ResizeObserver(n);return s.observe(t.current),window.addEventListener("resize",n),()=>{s.disconnect(),window.removeEventListener("resize",n)}},[]),{containerWidth:A,containerHeight:i}},DMt=wMt.extend("useComponentDragging"),SMt=({onEditEvent:t,editEvents:A=[],circuitJson:e,cancelDrag:i,svgToScreenProjection:o,realToSvgProjection:n,enabled:s=!1,snapToGrid:r=!1})=>{const[a,g]=AA.useState(null),I=Ji(n,o),c=AA.useRef(null),B=AA.useRef(null),C=AA.useRef(new Map);AA.useEffect(()=>{A.forEach(D=>{"edit_event_type"in D&&D.edit_event_type==="edit_schematic_component_location"&&!D.in_progress&&C.current.set(D.schematic_component_id,{...D.new_center})})},[A]);const l=AA.useCallback((D,x,F)=>{if(!s)return!1;const k=F.closest('[data-circuit-json-type="schematic_component"]');if(!k)return!1;const U=k.getAttribute("data-schematic-component-id");if(!U)return!1;i&&i();const N=Yp(e).schematic_component.get(U);if(!N)return!1;c.current={x:D,y:x};let Y;const q=C.current.get(U);if(q)Y={...q};else{const O=o$A({editEvents:A,schematic_component_id:U});Y={x:N.center.x+O.x,y:N.center.y+O.y},C.current.set(U,{...Y})}const K={edit_event_id:Math.random().toString(36).substr(2,9),edit_event_type:"edit_schematic_component_location",schematic_component_id:U,original_center:Y,new_center:{...Y},in_progress:!0,created_at:Date.now(),_element:k};return B.current=K,g(K),!0},[i,s,e,A]),Q=AA.useCallback(D=>{l(D.clientX,D.clientY,D.target)},[l]),E=AA.useCallback(D=>{if(D.touches.length!==1)return;const x=D.touches[0];l(x.clientX,x.clientY,D.target)&&D.preventDefault()},[l]),h=AA.useCallback((D,x)=>{if(!B.current||!c.current)return;const F={x:D-c.current.x,y:x-c.current.y},k={x:F.x/I.a,y:F.y/I.d};let U={x:B.current.original_center.x+k.x,y:B.current.original_center.y+k.y};if(r){const Y=q=>Math.round(q*10)/10;U={x:Y(U.x),y:Y(U.y)}}const N={...B.current,new_center:U};B.current=N,g(N)},[I,r]),u=AA.useCallback(D=>h(D.clientX,D.clientY),[h]),d=AA.useCallback(D=>{if(D.touches.length!==1||!B.current)return;D.preventDefault();const x=D.touches[0];h(x.clientX,x.clientY)},[h]),f=AA.useCallback(()=>{if(!B.current)return;const D={...B.current,in_progress:!1};C.current.set(D.schematic_component_id,{...D.new_center}),DMt("endDrag calling onEditEvent with new edit event",{newEditEvent:D}),t&&t(D),B.current=null,c.current=null,g(null)},[t]),w=AA.useCallback(()=>f(),[f]),S=AA.useCallback(()=>f(),[f]);return AA.useEffect(()=>(window.addEventListener("mousemove",u),window.addEventListener("mouseup",w),window.addEventListener("touchmove",d,{passive:!1}),window.addEventListener("touchend",S),()=>{window.removeEventListener("mousemove",u),window.removeEventListener("mouseup",w),window.removeEventListener("touchmove",d),window.removeEventListener("touchend",S)}),[u,w,d,S]),{handleMouseDown:Q,handleTouchStart:E,isDragging:!!B.current,activeEditEvent:a}},vx={schematicEditIcon:50,schematicGridIcon:49,spiceSimulationIcon:50,viewMenuIcon:48,viewMenu:55,viewMenuBackdrop:54,clickToInteractOverlay:100,schematicComponentHoverOutline:47},bMt=({onClick:t,active:A})=>{const e=i=>{i.preventDefault(),t()};return Z.jsx("div",{onClick:e,onTouchEnd:e,title:A?"Disable edit mode":"Enable edit mode",style:{position:"absolute",top:"16px",right:"64px",backgroundColor:A?"#4CAF50":"#fff",color:A?"#fff":"#000",padding:"8px",borderRadius:"4px",cursor:"pointer",boxShadow:"0 2px 4px rgba(0,0,0,0.1)",display:"flex",alignItems:"center",gap:"4px",zIndex:vx.schematicEditIcon},children:Z.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[Z.jsx("path",{d:"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"}),Z.jsx("path",{d:"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"})]})})},xMt=({onClick:t,active:A})=>{const e=i=>{i.preventDefault(),t()};return Z.jsx("div",{onClick:e,onTouchEnd:e,title:A?"Hide grid":"Show grid",style:{position:"absolute",top:"56px",right:"64px",backgroundColor:A?"#4CAF50":"#fff",color:A?"#fff":"#000",padding:"8px",borderRadius:"4px",cursor:"pointer",boxShadow:"0 2px 4px rgba(0,0,0,0.1)",display:"flex",alignItems:"center",gap:"4px",zIndex:vx.schematicGridIcon},children:Z.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:Z.jsx("path",{d:"M3 3h7v7H3zM14 3h7v7h-7zM3 14h7v7H3zM14 14h7v7h-7z"})})})},kMt=({onClick:t,active:A})=>{const e=i=>{i.preventDefault(),t()};return Z.jsx("div",{onClick:e,onTouchEnd:e,title:A?"Hide view menu":"Show view menu",style:{position:"absolute",top:"16px",right:"16px",backgroundColor:A?"#4CAF50":"#fff",color:A?"#fff":"#000",padding:"8px",borderRadius:"4px",cursor:"pointer",boxShadow:"0 2px 4px rgba(0,0,0,0.1)",display:"flex",alignItems:"center",gap:"4px",zIndex:vx.viewMenuIcon},children:Z.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[Z.jsx("circle",{cx:"12",cy:"12",r:"1"}),Z.jsx("circle",{cx:"12",cy:"5",r:"1"}),Z.jsx("circle",{cx:"12",cy:"19",r:"1"})]})})},GMt={version:"2.0.49"},FMt=({circuitJson:t,circuitJsonKey:A,isVisible:e,onClose:i,showGroups:o,onToggleGroups:n})=>{const s=AA.useMemo(()=>{if(!t||t.length===0)return!1;try{if((Yp(t).source_group?.list()||[]).length>0)return!0;const a=Yp(t).schematic_component?.list()||[];if(a.length>1){const g=new Set;for(const I of a){const c=Yp(t).source_component.get(I.source_component_id);c?.ftype&&g.add(c.ftype)}return g.size>1}return!1}catch(r){return console.error("Error checking for groups:",r),!1}},[A]);return e?Z.jsxs(Z.Fragment,{children:[Z.jsx("div",{onClick:i,onTouchEnd:r=>{r.preventDefault(),i()},style:{position:"absolute",inset:0,backgroundColor:"transparent",zIndex:vx.viewMenuBackdrop}}),Z.jsxs("div",{style:{position:"absolute",top:"56px",right:"16px",backgroundColor:"#ffffff",color:"#000000",border:"1px solid #ccc",borderRadius:"4px",boxShadow:"0 4px 12px rgba(0,0,0,0.1)",minWidth:"200px",zIndex:vx.viewMenu},children:[Z.jsxs("div",{onClick:()=>{s&&n(!o)},onTouchEnd:r=>{r.preventDefault(),s&&n(!o)},style:{padding:"8px 12px",cursor:s?"pointer":"not-allowed",opacity:s?1:.5,fontSize:"13px",color:"#000000",fontFamily:"sans-serif",display:"flex",alignItems:"center",gap:"8px"},onMouseEnter:r=>{s&&(r.currentTarget.style.backgroundColor="#f0f0f0")},onMouseLeave:r=>{s&&(r.currentTarget.style.backgroundColor="transparent")},children:[Z.jsx("div",{style:{width:"16px",height:"16px",border:"2px solid #000",borderRadius:"2px",backgroundColor:"transparent",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"10px",fontWeight:"bold"},children:o&&"✓"}),"View Schematic Groups"]}),!s&&Z.jsx("div",{style:{padding:"8px 12px",fontSize:"11px",color:"#666",fontStyle:"italic"},children:"No groups found in this schematic"}),Z.jsxs("div",{style:{padding:"4px 8px",fontSize:"12px",color:"#999",borderTop:"1px solid #eee",textAlign:"center"},children:["v",String(GMt?.version)]})]})]}):null},_Mt=()=>Z.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:Z.jsx("path",{d:"M3 12h2.5l2.5-9 4 18 4-9h5.5"})}),RMt=({onClick:t})=>Z.jsx("div",{onClick:t,title:"Run SPICE simulation",style:{position:"absolute",top:"16px",right:"112px",backgroundColor:"#fff",color:"#000",padding:"8px",borderRadius:"4px",cursor:"pointer",boxShadow:"0 2px 4px rgba(0,0,0,0.1)",display:"flex",alignItems:"center",gap:"4px",zIndex:vx.spiceSimulationIcon},children:Z.jsx(_Mt,{})});w8.register(nMt,aMt,HNt,LNt,WNt,eMt,PNt);var x8=["#8884d8","#82ca9d","#ffc658","#ff7300","#387908"],r$A=t=>{if(t===0)return"0s";const A=Math.abs(t);let e="s",i=1;return A<1e-12?(e="fs",i=1e15):A<1e-9?(e="ps",i=1e12):A<1e-6?(e="ns",i=1e9):A<.001?(e="us",i=1e6):A<1&&(e="ms",i=1e3),`${parseFloat((t*i).toPrecision(3))}${e}`},NMt=({plotData:t,nodes:A,isLoading:e,error:i,hasRun:o})=>{const n=AA.useMemo(()=>{const a=A.some(I=>I.toLowerCase().startsWith("v(")),g=A.some(I=>I.toLowerCase().startsWith("i("));return a&&g?"Value":a?"Voltage (V)":g?"Current (A)":"Value"},[A]);if(e)return Z.jsx("div",{style:{height:"300px",width:"100%",display:"flex",alignItems:"center",justifyContent:"center"},children:"Running simulation..."});if(!o)return Z.jsx("div",{style:{height:"300px",width:"100%",display:"flex",alignItems:"center",justifyContent:"center"},children:'Click "Run" to start the simulation.'});if(i)return Z.jsxs("div",{style:{height:"300px",width:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"red"},children:["Error: ",i]});if(t.length===0)return Z.jsx("div",{style:{height:"300px",width:"100%",display:"flex",alignItems:"center",justifyContent:"center"},children:"No data to plot. Check simulation output or SPICE netlist."});const s={datasets:A.map((a,g)=>({label:a,data:t.map(I=>({x:Number(I.name),y:I[a]})),borderColor:x8[g%x8.length],backgroundColor:x8[g%x8.length],fill:!1,tension:.1}))},r={responsive:!0,maintainAspectRatio:!1,plugins:{legend:{position:"top",labels:{font:{family:"sans-serif"}}},title:{display:!1},tooltip:{callbacks:{title:a=>{if(a.length>0){const g=a[0];return r$A(g.parsed.x)}return""}}}},scales:{x:{type:"linear",title:{display:!0,text:"Time",font:{family:"sans-serif"}},ticks:{callback:a=>r$A(a),font:{family:"sans-serif"}}},y:{title:{display:!0,text:n,font:{family:"sans-serif"}},ticks:{font:{family:"sans-serif"}}}}};return Z.jsx("div",{style:{position:"relative",height:"300px",width:"100%"},children:Z.jsx(hMt,{options:r,data:s})})},MMt=({spiceString:t,onClose:A,plotData:e,nodes:i,isLoading:o,error:n,simOptions:s,onSimOptionsChange:r,hasRun:a})=>{const[g,I]=AA.useState(String(s.startTime)),[c,B]=AA.useState(String(s.duration));AA.useEffect(()=>{I(String(s.startTime)),B(String(s.duration))},[s.startTime,s.duration]);const C=()=>{r({...s,startTime:Number(g),duration:Number(c)})},l=i.filter(Q=>{const E=Q.toLowerCase().startsWith("v("),h=Q.toLowerCase().startsWith("i(");return!!(s.showVoltage&&E||s.showCurrent&&h)});return Z.jsx("div",{style:{position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"rgba(0, 0, 0, 0.5)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:1002,fontFamily:"sans-serif"},children:Z.jsxs("div",{style:{backgroundColor:"white",padding:"24px",borderRadius:"12px",width:"90%",maxWidth:"900px",boxShadow:"0 4px 20px rgba(0, 0, 0, 0.15)"},children:[Z.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"24px",borderBottom:"1px solid #eee",paddingBottom:"16px"},children:[Z.jsx("h2",{style:{margin:0,fontSize:"22px",fontWeight:600,color:"#333"},children:"SPICE Simulation"}),Z.jsx("button",{onClick:A,style:{background:"none",border:"none",fontSize:"28px",cursor:"pointer",color:"#888",padding:0,lineHeight:1},children:"×"})]}),Z.jsx("div",{children:Z.jsx(NMt,{plotData:e,nodes:l,isLoading:o,error:n,hasRun:a})}),Z.jsxs("div",{style:{marginTop:"16px",padding:"12px",backgroundColor:"#f7f7f7",borderRadius:"6px",display:"flex",flexWrap:"wrap",gap:"24px",alignItems:"center",fontSize:"14px"},children:[Z.jsxs("div",{style:{display:"flex",gap:"16px"},children:[Z.jsxs("label",{style:{display:"flex",alignItems:"center",gap:"6px"},children:[Z.jsx("input",{type:"checkbox",checked:s.showVoltage,onChange:Q=>r({...s,showVoltage:Q.target.checked})}),"Voltage"]}),Z.jsxs("label",{style:{display:"flex",alignItems:"center",gap:"6px"},children:[Z.jsx("input",{type:"checkbox",checked:s.showCurrent,onChange:Q=>r({...s,showCurrent:Q.target.checked})}),"Current"]})]}),Z.jsxs("div",{style:{display:"flex",gap:"16px",alignItems:"center"},children:[Z.jsx("label",{htmlFor:"startTime",children:"Start Time (ms):"}),Z.jsx("input",{id:"startTime",type:"number",value:g,onChange:Q=>I(Q.target.value),style:{width:"80px",padding:"4px 8px",borderRadius:"4px",border:"1px solid #ccc"}}),Z.jsx("label",{htmlFor:"duration",children:"Duration (ms):"}),Z.jsx("input",{id:"duration",type:"number",value:c,onChange:Q=>B(Q.target.value),style:{width:"80px",padding:"4px 8px",borderRadius:"4px",border:"1px solid #ccc"}}),Z.jsx("button",{onClick:C,style:{padding:"4px 12px",borderRadius:"4px",border:"1px solid #ccc",backgroundColor:"#f0f0f0",cursor:"pointer"},children:a?"Rerun":"Run"})]})]}),Z.jsxs("div",{style:{marginTop:"24px"},children:[Z.jsx("h3",{style:{marginTop:0,marginBottom:"12px",fontSize:"18px",fontWeight:600,color:"#333"},children:"SPICE Netlist"}),Z.jsx("pre",{style:{backgroundColor:"#fafafa",padding:"16px",borderRadius:"6px",maxHeight:"150px",overflowY:"auto",border:"1px solid #eee",color:"#333",fontSize:"13px",fontFamily:"monospace"},children:t})]})]})})},vMt="dmFyIGU9bnVsbCxzPWFzeW5jKCk9Pihhd2FpdCBpbXBvcnQoImh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vZWVjaXJjdWl0LWVuZ2luZUAxLjUuMi8rZXNtIikpLlNpbXVsYXRpb24sYz1hc3luYygpPT57aWYoZSYmZS5pc0luaXRpYWxpemVkKCkpcmV0dXJuO2xldCBpPWF3YWl0IHMoKTtlPW5ldyBpLGF3YWl0IGUuc3RhcnQoKX07c2VsZi5vbm1lc3NhZ2U9YXN5bmMgaT0+e3RyeXtpZihhd2FpdCBjKCksIWUpdGhyb3cgbmV3IEVycm9yKCJTaW11bGF0aW9uIG5vdCBpbml0aWFsaXplZCIpO2xldCB0PWkuZGF0YS5zcGljZVN0cmluZyxhPXQubWF0Y2goL3dyZGF0YVxzKyhcUyspXHMrKC4qKS9pKTtpZihhKXtsZXQgbz1gLnByb2JlICR7YVsyXS50cmltKCkuc3BsaXQoL1xzKy8pLmpvaW4oIiAiKX1gO3Q9dC5yZXBsYWNlKC93cmRhdGEuKi9pLG8pfWVsc2UgaWYoIXQubWF0Y2goL1wucHJvYmUvaSkpdGhyb3cgdC5tYXRjaCgvcGxvdFxzKyguKikvaSk/bmV3IEVycm9yKCJUaGUgJ3Bsb3QnIGNvbW1hbmQgaXMgbm90IHN1cHBvcnRlZCBmb3IgZGF0YSBleHRyYWN0aW9uLiBQbGVhc2UgdXNlICd3cmRhdGEgPGZpbGVuYW1lPiA8dmFyMT4gLi4uJyBvciAnLnByb2JlIDx2YXIxPiAuLi4nIGluc3RlYWQuIik6bmV3IEVycm9yKCJObyAnLnByb2JlJyBvciAnd3JkYXRhJyBjb21tYW5kIGZvdW5kIGluIFNQSUNFIGZpbGUuIFVzZSAnd3JkYXRhIDxmaWxlbmFtZT4gPHZhcjE+IC4uLicgdG8gc3BlY2lmeSBvdXRwdXQuIik7ZS5zZXROZXRMaXN0KHQpO2xldCBuPWF3YWl0IGUucnVuU2ltKCk7c2VsZi5wb3N0TWVzc2FnZSh7dHlwZToicmVzdWx0IixyZXN1bHQ6bn0pfWNhdGNoKHQpe3NlbGYucG9zdE1lc3NhZ2Uoe3R5cGU6ImVycm9yIixlcnJvcjp0Lm1lc3NhZ2V9KX19Owo=",k8=null,UMt=()=>{if(typeof window>"u")return null;if(k8)return k8;try{const t=new Blob([atob(vMt)],{type:"application/javascript"});return k8=URL.createObjectURL(t),k8}catch(t){return console.error("Failed to create blob URL for worker",t),null}},LMt=t=>{const A={};if(t.dataType==="real")t.data.forEach(r=>{A[r.name]=r.values});else if(t.dataType==="complex")t.data.forEach(r=>{A[r.name]=r.values.map(a=>a.real)});else throw new Error("Unsupported data type in simulation result");const e=Object.keys(A).find(r=>r.toLowerCase()==="time"||r.toLowerCase()==="frequency");if(!e)throw new Error("No time or frequency data in simulation result");const i=A[e],o=Object.keys(A).filter(r=>r!==e),n=o;return{plotData:i.map((r,a)=>{const g={name:r.toExponential(2)};return o.forEach(I=>{g[I]=A[I][a]}),g}),nodes:n}},HMt=t=>{const[A,e]=AA.useState([]),[i,o]=AA.useState([]),[n,s]=AA.useState(!0),[r,a]=AA.useState(null);return AA.useEffect(()=>{if(!t){s(!1),e([]),o([]),a(null);return}s(!0),a(null),e([]),o([]);const g=UMt();if(!g){a("Could not create SPICE simulation worker."),s(!1);return}const I=new Worker(g,{type:"module"});return I.onmessage=c=>{if(c.data.type==="result")try{const{plotData:B,nodes:C}=LMt(c.data.result);e(B),o(C)}catch(B){a(B.message||"Failed to parse simulation result"),console.error(B)}else c.data.type==="error"&&a(c.data.error);s(!1)},I.onerror=c=>{a(c.message),s(!1)},I.postMessage({spiceString:t}),()=>{I.terminate()}},[t]),{plotData:A,nodes:i,isLoading:n,error:r}},hQA=t=>{if(t===0)return"0";const A=Math.abs(t),e=i=>i.toPrecision(4);return A>=1?e(t):A>=.001?`${e(t*1e3)}m`:A>=1e-6?`${e(t*1e6)}u`:A>=1e-9?`${e(t*1e9)}n`:A>=1e-12?`${e(t*1e12)}p`:A>=1e-15?`${e(t*1e15)}f`:t.toExponential(3)},YMt=(t,A)=>{const i=WLA(t).toSpiceString(),n=i.split(`
5296
+ `,o.appendChild(u)}})}};n();const s=new MutationObserver(n);return s.observe(o,{childList:!0,subtree:!1,characterData:!1}),()=>{s.disconnect()}},[t,e,A,i])},n$A=["#8B0000","#2F4F4F","#191970","#006400","#FF4500","#800080","#2E8B57","#B8860B","#C71585","#008B8B"],pMt=t=>{const{svgDivRef:A,circuitJson:e,circuitJsonKey:i,showGroups:o}=t;AA.useEffect(()=>{if(A.current&&A.current.querySelectorAll(".schematic-group-overlay").forEach(r=>r.remove()),!A.current||!o||!e||e.length===0)return;const n=setTimeout(()=>{if(!A.current)return;const s=A.current.querySelector("svg");if(!s)return;s.querySelectorAll(".schematic-group-overlay").forEach(a=>a.remove());try{const a=Yp(e).source_group?.list().filter(u=>!u.is_subcircuit)||[],g=Yp(e).schematic_component?.list()||[],I=new Map;a.forEach(u=>{const d=u;if(d.parent_source_group_id){const f=I.get(d.parent_source_group_id)||[];f.push(u.source_group_id),I.set(d.parent_source_group_id,f)}});const c=u=>{const d=[],f=I.get(u)||[];for(const w of f)d.push(w),d.push(...c(w));return d},B=u=>{const d=a.find(f=>f.source_group_id===u);return d?.parent_source_group_id?1+B(d.parent_source_group_id):0},C=a.length>0&&a.some(u=>u.name&&u.name.trim()!=="");let l=[];if(C){const u=new Map;for(const d of g){const f=Yp(e).source_component.get(d.source_component_id);f?.source_group_id&&(u.has(f.source_group_id)||u.set(f.source_group_id,[]),u.get(f.source_group_id).push(d))}a.forEach((d,f)=>{let w=u.get(d.source_group_id)||[];const S=c(d.source_group_id);for(const D of S){const x=u.get(D)||[];w=[...w,...x]}if(w.length>0){const D=B(d.source_group_id),x=c(d.source_group_id).length>0;if(d.name?.startsWith("unnamed_board"))return;l.push({id:d.source_group_id,name:d.name||`Group ${f+1}`,components:w,color:n$A[f%n$A.length],depthLevel:D,hasChildren:x,sourceGroupId:d.source_group_id})}})}const Q=s.viewBox.baseVal,E=s.getBoundingClientRect(),h=Math.min(E.width/Q.width,E.height/Q.height)||1;l.sort((u,d)=>u.depthLevel-d.depthLevel),l.forEach(u=>{if(u.components.length===0)return;const d=fMt(u.components,s);if(!d)return;const f=Math.max(8,Math.min(25,15/Math.max(h,.3))),w=u.hasChildren?f*.6:0,S=f+w,D=Math.max(1,2/Math.max(h,.5)),x=u.depthLevel===0?D:D*.7,F=Math.max(4,8/Math.max(h,.5)),k=u.hasChildren?1.3:1,U=F*k,N=U*.5,Y=document.createElementNS("http://www.w3.org/2000/svg","rect");Y.setAttribute("class","schematic-group-overlay"),Y.setAttribute("x",(d.minX-S).toString()),Y.setAttribute("y",(d.minY-S).toString()),Y.setAttribute("width",(d.maxX-d.minX+S*2).toString()),Y.setAttribute("height",(d.maxY-d.minY+S*2).toString()),Y.setAttribute("fill","none"),Y.setAttribute("stroke",u.color),Y.setAttribute("stroke-width",x.toString()),Y.setAttribute("stroke-dasharray",`${U},${N}`),Y.setAttribute("opacity","0.8"),Y.setAttribute("rx","0"),Y.setAttribute("ry","0");const q=Math.max(6,Math.min(20,14/Math.max(h,.2))),K=u.depthLevel===0||u.depthLevel===1?0:u.depthLevel*.2,O=q*(1-K),W=Math.max(1,O*.2),$=u.name,oA=document.createElementNS("http://www.w3.org/2000/svg","text");oA.setAttribute("font-size",O.toString()),oA.setAttribute("font-family","Arial, sans-serif"),oA.textContent=$,s.appendChild(oA);const IA=oA.getBBox();s.removeChild(oA);const tA=IA.width+W*2,sA=O+W*2,gA=d.minX-S,pA=d.minY-S-sA,xA=document.createElementNS("http://www.w3.org/2000/svg","rect");xA.setAttribute("class","schematic-group-overlay"),xA.setAttribute("x",gA.toString()),xA.setAttribute("y",(pA-sA).toString()),xA.setAttribute("width",tA.toString()),xA.setAttribute("height",sA.toString()),xA.setAttribute("fill","transparent"),xA.setAttribute("rx","0"),xA.setAttribute("ry","0");const _A=document.createElementNS("http://www.w3.org/2000/svg","text");_A.setAttribute("class","schematic-group-overlay"),_A.setAttribute("x",(gA+W).toString()),_A.setAttribute("y",(pA+sA-W).toString()),_A.setAttribute("fill",u.color),_A.setAttribute("font-size",O.toString()),_A.setAttribute("font-family","Arial, sans-serif"),_A.setAttribute("font-weight",u.depthLevel===0?"600":"500"),_A.setAttribute("stroke",u.color),_A.setAttribute("stroke-width",Math.max(.2,O*.02).toString()),_A.textContent=$,s.appendChild(Y),s.appendChild(xA),s.appendChild(_A)})}catch(a){console.error("Error creating group overlays:",a)}},10);return()=>clearTimeout(n)},[A,i,o])};function fMt(t,A){let e=1/0,i=1/0,o=-1/0,n=-1/0;for(const r of t){let a=A.querySelector(`g[data-schematic-component-id="${r.schematic_component_id}"]`);if(a||(a=A.querySelector(`[data-schematic-component-id="${r.schematic_component_id}"]`)),a){const g=a.getBBox();e=Math.min(e,g.x),i=Math.min(i,g.y),o=Math.max(o,g.x+g.width),n=Math.max(n,g.y+g.height)}}return e===1/0?null:{minX:e,minY:i,maxX:o,maxY:n}}var yMt=lI("schematic-viewer"),mMt=()=>{lI.enable("schematic-viewer*")},wMt=yMt,s$A=t=>{const[A,e]=AA.useState(0),[i,o]=AA.useState(0);return AA.useEffect(()=>{if(!t.current)return;const n=()=>{const r=t.current?.getBoundingClientRect();e(r?.width||0),o(r?.height||0)};n();const s=new ResizeObserver(n);return s.observe(t.current),window.addEventListener("resize",n),()=>{s.disconnect(),window.removeEventListener("resize",n)}},[]),{containerWidth:A,containerHeight:i}},DMt=wMt.extend("useComponentDragging"),SMt=({onEditEvent:t,editEvents:A=[],circuitJson:e,cancelDrag:i,svgToScreenProjection:o,realToSvgProjection:n,enabled:s=!1,snapToGrid:r=!1})=>{const[a,g]=AA.useState(null),I=Ji(n,o),c=AA.useRef(null),B=AA.useRef(null),C=AA.useRef(new Map);AA.useEffect(()=>{A.forEach(D=>{"edit_event_type"in D&&D.edit_event_type==="edit_schematic_component_location"&&!D.in_progress&&C.current.set(D.schematic_component_id,{...D.new_center})})},[A]);const l=AA.useCallback((D,x,F)=>{if(!s)return!1;const k=F.closest('[data-circuit-json-type="schematic_component"]');if(!k)return!1;const U=k.getAttribute("data-schematic-component-id");if(!U)return!1;i&&i();const N=Yp(e).schematic_component.get(U);if(!N)return!1;c.current={x:D,y:x};let Y;const q=C.current.get(U);if(q)Y={...q};else{const O=o$A({editEvents:A,schematic_component_id:U});Y={x:N.center.x+O.x,y:N.center.y+O.y},C.current.set(U,{...Y})}const K={edit_event_id:Math.random().toString(36).substr(2,9),edit_event_type:"edit_schematic_component_location",schematic_component_id:U,original_center:Y,new_center:{...Y},in_progress:!0,created_at:Date.now(),_element:k};return B.current=K,g(K),!0},[i,s,e,A]),Q=AA.useCallback(D=>{l(D.clientX,D.clientY,D.target)},[l]),E=AA.useCallback(D=>{if(D.touches.length!==1)return;const x=D.touches[0];l(x.clientX,x.clientY,D.target)&&D.preventDefault()},[l]),h=AA.useCallback((D,x)=>{if(!B.current||!c.current)return;const F={x:D-c.current.x,y:x-c.current.y},k={x:F.x/I.a,y:F.y/I.d};let U={x:B.current.original_center.x+k.x,y:B.current.original_center.y+k.y};if(r){const Y=q=>Math.round(q*10)/10;U={x:Y(U.x),y:Y(U.y)}}const N={...B.current,new_center:U};B.current=N,g(N)},[I,r]),u=AA.useCallback(D=>h(D.clientX,D.clientY),[h]),d=AA.useCallback(D=>{if(D.touches.length!==1||!B.current)return;D.preventDefault();const x=D.touches[0];h(x.clientX,x.clientY)},[h]),f=AA.useCallback(()=>{if(!B.current)return;const D={...B.current,in_progress:!1};C.current.set(D.schematic_component_id,{...D.new_center}),DMt("endDrag calling onEditEvent with new edit event",{newEditEvent:D}),t&&t(D),B.current=null,c.current=null,g(null)},[t]),w=AA.useCallback(()=>f(),[f]),S=AA.useCallback(()=>f(),[f]);return AA.useEffect(()=>(window.addEventListener("mousemove",u),window.addEventListener("mouseup",w),window.addEventListener("touchmove",d,{passive:!1}),window.addEventListener("touchend",S),()=>{window.removeEventListener("mousemove",u),window.removeEventListener("mouseup",w),window.removeEventListener("touchmove",d),window.removeEventListener("touchend",S)}),[u,w,d,S]),{handleMouseDown:Q,handleTouchStart:E,isDragging:!!B.current,activeEditEvent:a}},vx={schematicEditIcon:50,schematicGridIcon:49,spiceSimulationIcon:50,viewMenuIcon:48,viewMenu:55,viewMenuBackdrop:54,clickToInteractOverlay:100,schematicComponentHoverOutline:47},bMt=({onClick:t,active:A})=>{const e=i=>{i.preventDefault(),t()};return Z.jsx("div",{onClick:e,onTouchEnd:e,title:A?"Disable edit mode":"Enable edit mode",style:{position:"absolute",top:"16px",right:"64px",backgroundColor:A?"#4CAF50":"#fff",color:A?"#fff":"#000",padding:"8px",borderRadius:"4px",cursor:"pointer",boxShadow:"0 2px 4px rgba(0,0,0,0.1)",display:"flex",alignItems:"center",gap:"4px",zIndex:vx.schematicEditIcon},children:Z.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[Z.jsx("path",{d:"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"}),Z.jsx("path",{d:"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"})]})})},xMt=({onClick:t,active:A})=>{const e=i=>{i.preventDefault(),t()};return Z.jsx("div",{onClick:e,onTouchEnd:e,title:A?"Hide grid":"Show grid",style:{position:"absolute",top:"56px",right:"64px",backgroundColor:A?"#4CAF50":"#fff",color:A?"#fff":"#000",padding:"8px",borderRadius:"4px",cursor:"pointer",boxShadow:"0 2px 4px rgba(0,0,0,0.1)",display:"flex",alignItems:"center",gap:"4px",zIndex:vx.schematicGridIcon},children:Z.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:Z.jsx("path",{d:"M3 3h7v7H3zM14 3h7v7h-7zM3 14h7v7H3zM14 14h7v7h-7z"})})})},kMt=({onClick:t,active:A})=>{const e=i=>{i.preventDefault(),t()};return Z.jsx("div",{onClick:e,onTouchEnd:e,title:A?"Hide view menu":"Show view menu",style:{position:"absolute",top:"16px",right:"16px",backgroundColor:A?"#4CAF50":"#fff",color:A?"#fff":"#000",padding:"8px",borderRadius:"4px",cursor:"pointer",boxShadow:"0 2px 4px rgba(0,0,0,0.1)",display:"flex",alignItems:"center",gap:"4px",zIndex:vx.viewMenuIcon},children:Z.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[Z.jsx("circle",{cx:"12",cy:"12",r:"1"}),Z.jsx("circle",{cx:"12",cy:"5",r:"1"}),Z.jsx("circle",{cx:"12",cy:"19",r:"1"})]})})},GMt={version:"2.0.50"},FMt=({circuitJson:t,circuitJsonKey:A,isVisible:e,onClose:i,showGroups:o,onToggleGroups:n})=>{const s=AA.useMemo(()=>{if(!t||t.length===0)return!1;try{if((Yp(t).source_group?.list()||[]).length>0)return!0;const a=Yp(t).schematic_component?.list()||[];if(a.length>1){const g=new Set;for(const I of a){const c=Yp(t).source_component.get(I.source_component_id);c?.ftype&&g.add(c.ftype)}return g.size>1}return!1}catch(r){return console.error("Error checking for groups:",r),!1}},[A]);return e?Z.jsxs(Z.Fragment,{children:[Z.jsx("div",{onClick:i,onTouchEnd:r=>{r.preventDefault(),i()},style:{position:"absolute",inset:0,backgroundColor:"transparent",zIndex:vx.viewMenuBackdrop}}),Z.jsxs("div",{style:{position:"absolute",top:"56px",right:"16px",backgroundColor:"#ffffff",color:"#000000",border:"1px solid #ccc",borderRadius:"4px",boxShadow:"0 4px 12px rgba(0,0,0,0.1)",minWidth:"200px",zIndex:vx.viewMenu},children:[Z.jsxs("div",{onClick:()=>{s&&n(!o)},onTouchEnd:r=>{r.preventDefault(),s&&n(!o)},style:{padding:"8px 12px",cursor:s?"pointer":"not-allowed",opacity:s?1:.5,fontSize:"13px",color:"#000000",fontFamily:"sans-serif",display:"flex",alignItems:"center",gap:"8px"},onMouseEnter:r=>{s&&(r.currentTarget.style.backgroundColor="#f0f0f0")},onMouseLeave:r=>{s&&(r.currentTarget.style.backgroundColor="transparent")},children:[Z.jsx("div",{style:{width:"16px",height:"16px",border:"2px solid #000",borderRadius:"2px",backgroundColor:"transparent",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"10px",fontWeight:"bold"},children:o&&"✓"}),"View Schematic Groups"]}),!s&&Z.jsx("div",{style:{padding:"8px 12px",fontSize:"11px",color:"#666",fontStyle:"italic"},children:"No groups found in this schematic"}),Z.jsxs("div",{style:{padding:"4px 8px",fontSize:"12px",color:"#999",borderTop:"1px solid #eee",textAlign:"center"},children:["v",String(GMt?.version)]})]})]}):null},_Mt=()=>Z.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:Z.jsx("path",{d:"M3 12h2.5l2.5-9 4 18 4-9h5.5"})}),RMt=({onClick:t})=>Z.jsx("div",{onClick:t,title:"Run SPICE simulation",style:{position:"absolute",top:"16px",right:"112px",backgroundColor:"#fff",color:"#000",padding:"8px",borderRadius:"4px",cursor:"pointer",boxShadow:"0 2px 4px rgba(0,0,0,0.1)",display:"flex",alignItems:"center",gap:"4px",zIndex:vx.spiceSimulationIcon},children:Z.jsx(_Mt,{})});w8.register(nMt,aMt,HNt,LNt,WNt,eMt,PNt);var x8=["#8884d8","#82ca9d","#ffc658","#ff7300","#387908"],r$A=t=>{if(t===0)return"0s";const A=Math.abs(t);let e="s",i=1;return A<1e-12?(e="fs",i=1e15):A<1e-9?(e="ps",i=1e12):A<1e-6?(e="ns",i=1e9):A<.001?(e="us",i=1e6):A<1&&(e="ms",i=1e3),`${parseFloat((t*i).toPrecision(3))}${e}`},NMt=({plotData:t,nodes:A,isLoading:e,error:i,hasRun:o})=>{const n=AA.useMemo(()=>{const a=A.some(I=>I.toLowerCase().startsWith("v(")),g=A.some(I=>I.toLowerCase().startsWith("i("));return a&&g?"Value":a?"Voltage (V)":g?"Current (A)":"Value"},[A]);if(e)return Z.jsx("div",{style:{height:"300px",width:"100%",display:"flex",alignItems:"center",justifyContent:"center"},children:"Running simulation..."});if(!o)return Z.jsx("div",{style:{height:"300px",width:"100%",display:"flex",alignItems:"center",justifyContent:"center"},children:'Click "Run" to start the simulation.'});if(i)return Z.jsxs("div",{style:{height:"300px",width:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"red"},children:["Error: ",i]});if(t.length===0)return Z.jsx("div",{style:{height:"300px",width:"100%",display:"flex",alignItems:"center",justifyContent:"center"},children:"No data to plot. Check simulation output or SPICE netlist."});const s={datasets:A.map((a,g)=>({label:a,data:t.map(I=>({x:Number(I.name),y:I[a]})),borderColor:x8[g%x8.length],backgroundColor:x8[g%x8.length],fill:!1,tension:.1}))},r={responsive:!0,maintainAspectRatio:!1,plugins:{legend:{position:"top",labels:{font:{family:"sans-serif"}}},title:{display:!1},tooltip:{callbacks:{title:a=>{if(a.length>0){const g=a[0];return r$A(g.parsed.x)}return""}}}},scales:{x:{type:"linear",title:{display:!0,text:"Time",font:{family:"sans-serif"}},ticks:{callback:a=>r$A(a),font:{family:"sans-serif"}}},y:{title:{display:!0,text:n,font:{family:"sans-serif"}},ticks:{font:{family:"sans-serif"}}}}};return Z.jsx("div",{style:{position:"relative",height:"300px",width:"100%"},children:Z.jsx(hMt,{options:r,data:s})})},MMt=({spiceString:t,onClose:A,plotData:e,nodes:i,isLoading:o,error:n,simOptions:s,onSimOptionsChange:r,hasRun:a})=>{const[g,I]=AA.useState(String(s.startTime)),[c,B]=AA.useState(String(s.duration));AA.useEffect(()=>{I(String(s.startTime)),B(String(s.duration))},[s.startTime,s.duration]);const C=()=>{r({...s,startTime:Number(g),duration:Number(c)})},l=i.filter(Q=>{const E=Q.toLowerCase().startsWith("v("),h=Q.toLowerCase().startsWith("i(");return!!(s.showVoltage&&E||s.showCurrent&&h)});return Z.jsx("div",{style:{position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"rgba(0, 0, 0, 0.5)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:1002,fontFamily:"sans-serif"},children:Z.jsxs("div",{style:{backgroundColor:"white",padding:"24px",borderRadius:"12px",width:"90%",maxWidth:"900px",boxShadow:"0 4px 20px rgba(0, 0, 0, 0.15)"},children:[Z.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"24px",borderBottom:"1px solid #eee",paddingBottom:"16px"},children:[Z.jsx("h2",{style:{margin:0,fontSize:"22px",fontWeight:600,color:"#333"},children:"SPICE Simulation"}),Z.jsx("button",{onClick:A,style:{background:"none",border:"none",fontSize:"28px",cursor:"pointer",color:"#888",padding:0,lineHeight:1},children:"×"})]}),Z.jsx("div",{children:Z.jsx(NMt,{plotData:e,nodes:l,isLoading:o,error:n,hasRun:a})}),Z.jsxs("div",{style:{marginTop:"16px",padding:"12px",backgroundColor:"#f7f7f7",borderRadius:"6px",display:"flex",flexWrap:"wrap",gap:"24px",alignItems:"center",fontSize:"14px"},children:[Z.jsxs("div",{style:{display:"flex",gap:"16px"},children:[Z.jsxs("label",{style:{display:"flex",alignItems:"center",gap:"6px"},children:[Z.jsx("input",{type:"checkbox",checked:s.showVoltage,onChange:Q=>r({...s,showVoltage:Q.target.checked})}),"Voltage"]}),Z.jsxs("label",{style:{display:"flex",alignItems:"center",gap:"6px"},children:[Z.jsx("input",{type:"checkbox",checked:s.showCurrent,onChange:Q=>r({...s,showCurrent:Q.target.checked})}),"Current"]})]}),Z.jsxs("div",{style:{display:"flex",gap:"16px",alignItems:"center"},children:[Z.jsx("label",{htmlFor:"startTime",children:"Start Time (ms):"}),Z.jsx("input",{id:"startTime",type:"number",value:g,onChange:Q=>I(Q.target.value),style:{width:"80px",padding:"4px 8px",borderRadius:"4px",border:"1px solid #ccc"}}),Z.jsx("label",{htmlFor:"duration",children:"Duration (ms):"}),Z.jsx("input",{id:"duration",type:"number",value:c,onChange:Q=>B(Q.target.value),style:{width:"80px",padding:"4px 8px",borderRadius:"4px",border:"1px solid #ccc"}}),Z.jsx("button",{onClick:C,style:{padding:"4px 12px",borderRadius:"4px",border:"1px solid #ccc",backgroundColor:"#f0f0f0",cursor:"pointer"},children:a?"Rerun":"Run"})]})]}),Z.jsxs("div",{style:{marginTop:"24px"},children:[Z.jsx("h3",{style:{marginTop:0,marginBottom:"12px",fontSize:"18px",fontWeight:600,color:"#333"},children:"SPICE Netlist"}),Z.jsx("pre",{style:{backgroundColor:"#fafafa",padding:"16px",borderRadius:"6px",maxHeight:"150px",overflowY:"auto",border:"1px solid #eee",color:"#333",fontSize:"13px",fontFamily:"monospace"},children:t})]})]})})},vMt="dmFyIGU9bnVsbCxzPWFzeW5jKCk9Pihhd2FpdCBpbXBvcnQoImh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vZWVjaXJjdWl0LWVuZ2luZUAxLjUuMi8rZXNtIikpLlNpbXVsYXRpb24sYz1hc3luYygpPT57aWYoZSYmZS5pc0luaXRpYWxpemVkKCkpcmV0dXJuO2xldCBpPWF3YWl0IHMoKTtlPW5ldyBpLGF3YWl0IGUuc3RhcnQoKX07c2VsZi5vbm1lc3NhZ2U9YXN5bmMgaT0+e3RyeXtpZihhd2FpdCBjKCksIWUpdGhyb3cgbmV3IEVycm9yKCJTaW11bGF0aW9uIG5vdCBpbml0aWFsaXplZCIpO2xldCB0PWkuZGF0YS5zcGljZVN0cmluZyxhPXQubWF0Y2goL3dyZGF0YVxzKyhcUyspXHMrKC4qKS9pKTtpZihhKXtsZXQgbz1gLnByb2JlICR7YVsyXS50cmltKCkuc3BsaXQoL1xzKy8pLmpvaW4oIiAiKX1gO3Q9dC5yZXBsYWNlKC93cmRhdGEuKi9pLG8pfWVsc2UgaWYoIXQubWF0Y2goL1wucHJvYmUvaSkpdGhyb3cgdC5tYXRjaCgvcGxvdFxzKyguKikvaSk/bmV3IEVycm9yKCJUaGUgJ3Bsb3QnIGNvbW1hbmQgaXMgbm90IHN1cHBvcnRlZCBmb3IgZGF0YSBleHRyYWN0aW9uLiBQbGVhc2UgdXNlICd3cmRhdGEgPGZpbGVuYW1lPiA8dmFyMT4gLi4uJyBvciAnLnByb2JlIDx2YXIxPiAuLi4nIGluc3RlYWQuIik6bmV3IEVycm9yKCJObyAnLnByb2JlJyBvciAnd3JkYXRhJyBjb21tYW5kIGZvdW5kIGluIFNQSUNFIGZpbGUuIFVzZSAnd3JkYXRhIDxmaWxlbmFtZT4gPHZhcjE+IC4uLicgdG8gc3BlY2lmeSBvdXRwdXQuIik7ZS5zZXROZXRMaXN0KHQpO2xldCBuPWF3YWl0IGUucnVuU2ltKCk7c2VsZi5wb3N0TWVzc2FnZSh7dHlwZToicmVzdWx0IixyZXN1bHQ6bn0pfWNhdGNoKHQpe3NlbGYucG9zdE1lc3NhZ2Uoe3R5cGU6ImVycm9yIixlcnJvcjp0Lm1lc3NhZ2V9KX19Owo=",k8=null,UMt=()=>{if(typeof window>"u")return null;if(k8)return k8;try{const t=new Blob([atob(vMt)],{type:"application/javascript"});return k8=URL.createObjectURL(t),k8}catch(t){return console.error("Failed to create blob URL for worker",t),null}},LMt=t=>{const A={};if(t.dataType==="real")t.data.forEach(r=>{A[r.name]=r.values});else if(t.dataType==="complex")t.data.forEach(r=>{A[r.name]=r.values.map(a=>a.real)});else throw new Error("Unsupported data type in simulation result");const e=Object.keys(A).find(r=>r.toLowerCase()==="time"||r.toLowerCase()==="frequency");if(!e)throw new Error("No time or frequency data in simulation result");const i=A[e],o=Object.keys(A).filter(r=>r!==e),n=o;return{plotData:i.map((r,a)=>{const g={name:r.toExponential(2)};return o.forEach(I=>{g[I]=A[I][a]}),g}),nodes:n}},HMt=t=>{const[A,e]=AA.useState([]),[i,o]=AA.useState([]),[n,s]=AA.useState(!0),[r,a]=AA.useState(null);return AA.useEffect(()=>{if(!t){s(!1),e([]),o([]),a(null);return}s(!0),a(null),e([]),o([]);const g=UMt();if(!g){a("Could not create SPICE simulation worker."),s(!1);return}const I=new Worker(g,{type:"module"});return I.onmessage=c=>{if(c.data.type==="result")try{const{plotData:B,nodes:C}=LMt(c.data.result);e(B),o(C)}catch(B){a(B.message||"Failed to parse simulation result"),console.error(B)}else c.data.type==="error"&&a(c.data.error);s(!1)},I.onerror=c=>{a(c.message),s(!1)},I.postMessage({spiceString:t}),()=>{I.terminate()}},[t]),{plotData:A,nodes:i,isLoading:n,error:r}},hQA=t=>{if(t===0)return"0";const A=Math.abs(t),e=i=>i.toPrecision(4);return A>=1?e(t):A>=.001?`${e(t*1e3)}m`:A>=1e-6?`${e(t*1e6)}u`:A>=1e-9?`${e(t*1e9)}n`:A>=1e-12?`${e(t*1e12)}p`:A>=1e-15?`${e(t*1e15)}f`:t.toExponential(3)},YMt=(t,A)=>{const i=WLA(t).toSpiceString(),n=i.split(`
5297
5297
  `).filter(k=>k.trim()!=="").filter(k=>!k.startsWith("*")&&!k.startsWith(".")&&k.trim()!==""),s=new Set,r=new Set,a=new Set;for(const k of n){const U=k.trim().split(/\s+/);if(U.length<3)continue;const N=U[0],Y=N[0].toUpperCase();let q=[];if(["R","C","L","V","I","D"].includes(Y))q=U.slice(1,3),Y==="V"&&a.add(N);else if(Y==="Q"&&U.length>=4)q=U.slice(1,4);else if(Y==="M"&&U.length>=5)q=U.slice(1,5);else if(Y==="X")q=U.slice(1,-1);else continue;q.forEach(K=>s.add(K)),Y==="C"&&q.forEach(K=>r.add(K))}s.delete("0"),r.delete("0");const g=Array.from(r).map(k=>`.ic V(${k})=0`),I=[],c=Array.from(s).map(k=>`V(${k})`);I.push(...c);const B=Array.from(a).map(k=>`I(${k})`);I.push(...B);const C=I.length>0?`.probe ${I.join(" ")}`:"",l=A?.startTime??0,Q=A?.duration??20,E=l*.001,h=Q*.001,u=E+h,d=h/50,f=`.tran ${hQA(d)} ${hQA(u)} ${hQA(E)} UIC`,w=".end",S=i.split(`
5298
5298
  `);let D=-1;for(let k=S.length-1;k>=0;k--)if(S[k].trim().toLowerCase().startsWith(w)){D=k;break}const x=[...g,C,f].filter(Boolean);let F;if(D!==-1){const k=S.slice(0,D),U=S.slice(D);F=[...k,...x,...U]}else F=[...S,...x,w];return F.join(`
5299
- `)},JMt=(t,A)=>{if(typeof window>"u")return A;try{const e=localStorage.getItem(t);return e!==null?JSON.parse(e):A}catch{return A}},KMt=(t,A)=>{if(!(typeof window>"u"))try{localStorage.setItem(t,JSON.stringify(A))}catch{}},uQA=AA.createContext(null),TMt=5,qMt=(t,A)=>!t&&!A?!0:!t||!A?!1:t.minX===A.minX&&t.maxX===A.maxX&&t.minY===A.minY&&t.maxY===A.maxY,PMt=({children:t})=>{if(AA.useContext(uQA))return Z.jsx(Z.Fragment,{children:t});const e=AA.useRef({pointer:null,boundingBoxes:new Map,hoveringIds:new Set,subscribers:new Set,mouseDownPosition:null}),i=AA.useCallback(()=>{for(const c of e.current.subscribers)c()},[]),o=AA.useCallback(()=>{const c=e.current.pointer,B=new Set;if(c)for(const[l,Q]of e.current.boundingBoxes){const E=Q.bounds;E&&c.x>=E.minX&&c.x<=E.maxX&&c.y>=E.minY&&c.y<=E.maxY&&B.add(l)}const C=e.current.hoveringIds;B.size===C.size&&[...B].every(l=>C.has(l))||(e.current.hoveringIds=B,i())},[i]),n=AA.useCallback((c,B)=>{e.current.boundingBoxes.set(c,B),o()},[o]),s=AA.useCallback((c,B)=>{const C=e.current.boundingBoxes.get(c);C&&qMt(C.bounds,B.bounds)&&C.onClick===B.onClick||(e.current.boundingBoxes.set(c,B),o())},[o]),r=AA.useCallback(c=>{e.current.boundingBoxes.delete(c)&&o()},[o]),a=AA.useCallback(c=>(e.current.subscribers.add(c),()=>{e.current.subscribers.delete(c)}),[]),g=AA.useCallback(c=>e.current.hoveringIds.has(c),[]);AA.useEffect(()=>{const c=Q=>{const{clientX:E,clientY:h}=Q,u=e.current.pointer;u&&u.x===E&&u.y===h||(e.current.pointer={x:E,y:h},o())},B=()=>{e.current.pointer!==null&&(e.current.pointer=null,e.current.mouseDownPosition=null,o())},C=Q=>{e.current.mouseDownPosition={x:Q.clientX,y:Q.clientY}},l=Q=>{const{clientX:E,clientY:h}=Q,u=e.current.mouseDownPosition;if(u&&Math.sqrt(Math.pow(E-u.x,2)+Math.pow(h-u.y,2))>TMt){e.current.mouseDownPosition=null;return}e.current.mouseDownPosition=null;for(const d of e.current.boundingBoxes.values()){const f=d.bounds;f&&E>=f.minX&&E<=f.maxX&&h>=f.minY&&h<=f.maxY&&d.onClick?.(Q)}};return window.addEventListener("pointermove",c,{passive:!0}),window.addEventListener("pointerdown",c,{passive:!0}),window.addEventListener("pointerup",c,{passive:!0}),window.addEventListener("pointerleave",B),window.addEventListener("pointercancel",B),window.addEventListener("blur",B),window.addEventListener("mousedown",C,{passive:!0}),window.addEventListener("click",l,{passive:!0}),()=>{window.removeEventListener("pointermove",c),window.removeEventListener("pointerdown",c),window.removeEventListener("pointerup",c),window.removeEventListener("pointerleave",B),window.removeEventListener("pointercancel",B),window.removeEventListener("blur",B),window.removeEventListener("mousedown",C),window.removeEventListener("click",l)}},[o]);const I=AA.useMemo(()=>({registerBoundingBox:n,updateBoundingBox:s,unregisterBoundingBox:r,subscribe:a,isHovering:g}),[n,s,r,a,g]);return Z.jsx(uQA.Provider,{value:I,children:t})},OMt=t=>{const A=AA.useContext(uQA);if(!A)throw new Error("useMouseEventsOverBoundingBox must be used within a MouseTracker");const e=AA.useId(),i=AA.useRef(t);i.current=t;const o=AA.useMemo(()=>s=>{i.current.onClick?.(s)},[]);return AA.useEffect(()=>(A.registerBoundingBox(e,{bounds:i.current.bounds,onClick:i.current.onClick?o:void 0}),()=>{A.unregisterBoundingBox(e)}),[A,o,e]),AA.useEffect(()=>{A.updateBoundingBox(e,{bounds:i.current.bounds,onClick:i.current.onClick?o:void 0})},[A,o,e,t.bounds?.minX,t.bounds?.maxX,t.bounds?.minY,t.bounds?.maxY,t.onClick]),{hovering:AA.useSyncExternalStore(A.subscribe,()=>A.isHovering(e),()=>!1)}},WMt=(t,A)=>!t&&!A?!0:!t||!A?!1:Math.abs(t.bounds.minX-A.bounds.minX)<.5&&Math.abs(t.bounds.maxX-A.bounds.maxX)<.5&&Math.abs(t.bounds.minY-A.bounds.minY)<.5&&Math.abs(t.bounds.maxY-A.bounds.maxY)<.5&&Math.abs(t.rect.left-A.rect.left)<.5&&Math.abs(t.rect.top-A.rect.top)<.5&&Math.abs(t.rect.width-A.rect.width)<.5&&Math.abs(t.rect.height-A.rect.height)<.5,ZMt=({componentId:t,svgDivRef:A,containerRef:e,onComponentClick:i,onHoverChange:o,showOutline:n,circuitJsonKey:s})=>{const[r,a]=AA.useState(null),g=AA.useRef(null),I=AA.useCallback(()=>{g.current=null;const E=A.current,h=e.current;if(!E||!h){a(S=>S&&null);return}const u=E.querySelector(`[data-schematic-component-id="${t}"]`);if(!u){a(S=>S&&null);return}const d=u.getBoundingClientRect(),f=h.getBoundingClientRect(),w={bounds:{minX:d.left,maxX:d.right,minY:d.top,maxY:d.bottom},rect:{left:d.left-f.left,top:d.top-f.top,width:d.width,height:d.height}};a(S=>WMt(S,w)?S:w)},[t,e,A]),c=AA.useCallback(()=>{g.current===null&&(g.current=window.requestAnimationFrame(I))},[I]);AA.useEffect(()=>{c()},[c,s]),AA.useEffect(()=>{c();const E=A.current,h=e.current;if(!E||!h)return;const u=typeof ResizeObserver<"u"?new ResizeObserver(()=>{c()}):null;u?.observe(h),u?.observe(E);const d=typeof MutationObserver<"u"?new MutationObserver(()=>{c()}):null;return d?.observe(E,{attributes:!0,attributeFilter:["style","transform"],subtree:!0,childList:!0}),window.addEventListener("scroll",c,!0),window.addEventListener("resize",c),()=>{u?.disconnect(),d?.disconnect(),window.removeEventListener("scroll",c,!0),window.removeEventListener("resize",c),g.current!==null&&(cancelAnimationFrame(g.current),g.current=null)}},[c,A,e]);const B=AA.useCallback(E=>{i&&i(t,E)},[t,i]),C=r?.bounds??null,{hovering:l}=OMt({bounds:C,onClick:i?B:void 0});if(AA.useEffect(()=>{o&&o(t,l)},[l,t,o]),!r||!l||!n)return null;const Q=r.rect;return Z.jsx("div",{style:{position:"absolute",left:Q.left,top:Q.top,width:Q.width,height:Q.height,border:"1.5px solid rgba(51, 153, 255, 0.9)",pointerEvents:"none",zIndex:vx.schematicComponentHoverOutline}})},VMt=({circuitJson:t,containerStyle:A,editEvents:e=[],onEditEvent:i,defaultEditMode:o=!1,debugGrid:n=!1,editingEnabled:s=!1,debug:r=!1,clickToInteractEnabled:a=!1,colorOverrides:g,spiceSimulationEnabled:I=!1,disableGroups:c=!1,onSchematicComponentClicked:B})=>{r&&mMt();const[C,l]=AA.useState(!1),[Q,E]=AA.useState({showVoltage:!0,showCurrent:!1,startTime:0,duration:20}),h=CA=>`${CA?.length||0}_${CA?.editCount||0}`,u=AA.useMemo(()=>h(t),[t]),d=AA.useMemo(()=>{if(!I)return null;try{return YMt(t,Q)}catch(CA){return console.error("Failed to generate SPICE string",CA),null}},[u,I,Q.startTime,Q.duration]),[f,w]=AA.useState(!1);AA.useEffect(()=>{w(!1)},[u]);const{plotData:S,nodes:D,isLoading:x,error:F}=HMt(f?d:null),[k,U]=AA.useState(o),[N,Y]=AA.useState(!0),[q,K]=AA.useState(!a),[O,W]=AA.useState(!1),[$,oA]=AA.useState(()=>c?!1:JMt("schematic_viewer_show_groups",!1)),[IA,tA]=AA.useState(!1),sA=AA.useRef(new Set),gA=AA.useCallback((CA,QA)=>{QA?sA.current.add(CA):sA.current.delete(CA),tA(sA.current.size>0)},[]),pA=AA.useRef(null),xA=AA.useRef(null),_A=AA.useMemo(()=>{try{return Yp(t).schematic_component?.list()?.map(CA=>CA.schematic_component_id)??[]}catch(CA){return console.error("Failed to derive schematic component ids",CA),[]}},[u,t]),MA=CA=>{const QA=CA.touches[0];xA.current={x:QA.clientX,y:QA.clientY}},PA=CA=>{const QA=CA.changedTouches[0],YA=xA.current;if(!YA)return;const se=Math.abs(QA.clientX-YA.x),he=Math.abs(QA.clientY-YA.y);se<10&&he<10&&(CA.preventDefault(),K(!0)),xA.current=null},[BA,yA]=AA.useState([]),uA=AA.useRef(t);AA.useEffect(()=>{const CA=h(t),QA=h(uA.current);CA!==QA&&(yA([]),uA.current=t)},[t]);const{ref:qA,cancelDrag:ee,transform:Be}=kL({onSetTransform(CA){pA.current&&(pA.current.style.transform=Ih(CA))},enabled:q&&!C}),{containerWidth:mA,containerHeight:WA}=s$A(qA),KA=AA.useMemo(()=>!mA||!WA?"":A8(t,{width:mA,height:WA||720,grid:n?{cellSize:1,labelCells:!0}:void 0,colorOverrides:g}),[u,mA,WA]),JA=AA.useMemo(()=>KA.match(/<svg[^>]*style="[^"]*background-color:\s*([^;\"]+)/i)?.[1]??"transparent",[KA]),jA=AA.useMemo(()=>{if(!KA)return pg();const CA=KA.match(/data-real-to-screen-transform="([^"]+)"/)?.[1];try{return BT(CA)}catch(QA){return console.error(QA),pg()}},[KA]),FA=CA=>{yA(QA=>[...QA,CA]),i&&i(CA)},SA=AA.useMemo(()=>[...e,...BA],[e,BA]),{handleMouseDown:LA,handleTouchStart:GA,isDragging:TA,activeEditEvent:OA}=SMt({onEditEvent:FA,cancelDrag:ee,realToSvgProjection:jA,svgToScreenProjection:Be,circuitJson:t,editEvents:SA,enabled:k&&q&&!C,snapToGrid:N});uMt({svgDivRef:pA,editEvents:SA,realToSvgProjection:jA,svgToScreenProjection:Be,activeEditEvent:OA}),dMt({svgDivRef:pA,circuitJson:t,activeEditEvent:OA,editEvents:SA}),pMt({svgDivRef:pA,circuitJson:t,circuitJsonKey:u,showGroups:$&&!c});const ie=AA.useRef(GA);AA.useEffect(()=>{ie.current=GA},[GA]);const DA=AA.useMemo(()=>Z.jsx("div",{ref:pA,style:{pointerEvents:a?q?"auto":"none":"auto",transformOrigin:"0 0"},className:B?"schematic-component-clickable":void 0,onTouchStart:CA=>{k&&q&&!C&&ie.current(CA)},dangerouslySetInnerHTML:{__html:KA}}),[KA,q,a,k,C]);return Z.jsxs(PMt,{children:[B&&Z.jsx("style",{children:".schematic-component-clickable [data-schematic-component-id]:hover { cursor: pointer !important; }"}),Z.jsxs("div",{ref:qA,style:{position:"relative",backgroundColor:JA,overflow:"hidden",cursor:C?"auto":TA?"grabbing":a&&!q||IA&&B?"pointer":"grab",minHeight:"300px",...A},onWheelCapture:CA=>{C&&CA.stopPropagation()},onMouseDown:CA=>{if(a&&!q){CA.preventDefault(),CA.stopPropagation();return}LA(CA)},onMouseDownCapture:CA=>{if(a&&!q){CA.preventDefault(),CA.stopPropagation();return}},onTouchStart:CA=>{C||MA(CA)},onTouchEnd:CA=>{C||PA(CA)},children:[!q&&a&&Z.jsx("div",{onClick:CA=>{CA.preventDefault(),CA.stopPropagation(),K(!0)},style:{position:"absolute",inset:0,cursor:"pointer",zIndex:vx.clickToInteractOverlay,display:"flex",alignItems:"center",justifyContent:"center",pointerEvents:"all",touchAction:"pan-x pan-y pinch-zoom"},children:Z.jsx("div",{style:{backgroundColor:"rgba(0, 0, 0, 0.8)",color:"white",padding:"12px 24px",borderRadius:"8px",fontSize:"16px",fontFamily:"sans-serif",pointerEvents:"none"},children:typeof window<"u"&&("ontouchstart"in window||navigator.maxTouchPoints>0)?"Touch to Interact":"Click to Interact"})}),Z.jsx(kMt,{active:O,onClick:()=>W(!O)}),s&&Z.jsx(bMt,{active:k,onClick:()=>U(!k)}),s&&k&&Z.jsx(xMt,{active:N,onClick:()=>Y(!N)}),Z.jsx(FMt,{circuitJson:t,circuitJsonKey:u,isVisible:O,onClose:()=>W(!1),showGroups:$,onToggleGroups:CA=>{c||(oA(CA),KMt("schematic_viewer_show_groups",CA))}}),I&&Z.jsx(RMt,{onClick:()=>l(!0)}),C&&Z.jsx(MMt,{spiceString:d,onClose:()=>l(!1),plotData:S,nodes:D,isLoading:x,error:F,simOptions:Q,onSimOptionsChange:CA=>{w(!0),E(CA)},hasRun:f}),B&&_A.map(CA=>Z.jsx(ZMt,{componentId:CA,svgDivRef:pA,containerRef:qA,showOutline:!0,circuitJsonKey:u,onHoverChange:gA,onComponentClick:(QA,YA)=>{B?.({schematicComponentId:QA,event:YA})}},CA)),DA]})]})},jMt=({circuitJson:t,containerStyle:A,colorOverrides:e,width:i,height:o,className:n})=>{const[s,r]=AA.useState(null),[a,g]=AA.useState(!0),[I,c]=AA.useState(null),[B,C]=AA.useState(null),l=AA.useRef(null),Q=AA.useRef(null),{containerWidth:E,containerHeight:h}=s$A(l),[u,d]=AA.useState(!1),{ref:f}=kL({onSetTransform(Y){Q.current&&(Q.current.style.transform=Ih(Y))}}),w=i||E||1e3,S=o||h||600;AA.useEffect(()=>{g(!0),c(null),r(t),g(!1)},[t]);const D=AA.useMemo(()=>s&&s.find(q=>q.type==="simulation_experiment")?.simulation_experiment_id||null,[s]),x=AA.useMemo(()=>s?s.filter(Y=>Y.type==="simulation_transient_voltage_graph").map(Y=>Y.simulation_transient_voltage_graph_id):[],[s]),F=AA.useMemo(()=>{if(!s||!w||!S||!D)return"";try{return XXA({circuitJson:s,simulation_experiment_id:D,simulation_transient_voltage_graph_ids:x,width:w,height:S,schematicOptions:{colorOverrides:e}})}catch(Y){return console.error("Failed to generate fallback schematic SVG:",Y),""}},[s,w,S,e,D,x]);AA.useEffect(()=>{if(!F){C(null);return}try{const Y=new Blob([F],{type:"image/svg+xml"}),q=URL.createObjectURL(Y);return C(q),()=>{URL.revokeObjectURL(q)}}catch(Y){console.error("Failed to create SVG object URL:",Y),C(null)}},[F]);const k=AA.useMemo(()=>F?F.match(/<svg[^>]*style="[^"]*background-color:\s*([^;\"]+)/i)?.[1]??"transparent":"transparent",[F]),U=Y=>{d(!0)},N=Y=>{d(!0)};return AA.useEffect(()=>{const Y=()=>{d(!1)},q=()=>{d(!1)};return window.addEventListener("mouseup",Y),window.addEventListener("touchend",q),()=>{window.removeEventListener("mouseup",Y),window.removeEventListener("touchend",q)}},[]),a?Z.jsx("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:"#f5f5f5",minHeight:"300px",fontFamily:"sans-serif",fontSize:"16px",color:"#666",...A},className:n,children:"Loading circuit..."}):I?Z.jsx("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:"#fef2f2",minHeight:"300px",fontFamily:"sans-serif",fontSize:"16px",color:"#dc2626",...A},className:n,children:Z.jsxs("div",{style:{textAlign:"center",padding:"20px"},children:[Z.jsx("div",{style:{fontWeight:"bold",marginBottom:"8px"},children:"Circuit Conversion Error"}),Z.jsx("div",{style:{fontSize:"14px"},children:I})]})}):F?Z.jsx("div",{ref:Y=>{l.current=Y,f.current=Y},style:{position:"relative",backgroundColor:k,overflow:"hidden",minHeight:"300px",cursor:u?"grabbing":"grab",...A},className:n,onMouseDown:U,onTouchStart:N,children:B?Z.jsx("img",{ref:Q,src:B,alt:"Circuit Simulation",style:{transformOrigin:"0 0",width:"100%",height:"100%",display:"block",objectFit:"contain"}}):Z.jsx("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%",minHeight:"300px",color:"#666",fontFamily:"sans-serif"},children:"Failed to render SVG"})}):Z.jsx("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:"#fef2f2",minHeight:"300px",fontFamily:"sans-serif",fontSize:"16px",color:"#dc2626",...A},className:n,children:"Failed to generate simulation SVG"})},a$A=t=>{const[A,e]=AA.useState(0),[i,o]=AA.useState(0);return AA.useEffect(()=>{if(!t.current)return;const n=()=>{const r=t.current?.getBoundingClientRect();e(r?.width||0),o(r?.height||0)};n();const s=new ResizeObserver(n);return s.observe(t.current),window.addEventListener("resize",n),()=>{s.disconnect(),window.removeEventListener("resize",n)}},[]),{containerWidth:A,containerHeight:i}};lI("assembly-viewer");var g$A=()=>{lI.enable("assembly-viewer*")},zMt=({circuitJson:t,containerStyle:A,debugGrid:e=!1,debug:i=!1})=>{i&&g$A();const o=AA.useRef(null),{ref:n}=kL({onSetTransform(I){o.current&&(o.current.style.transform=Ih(I))}}),{containerWidth:s,containerHeight:r}=a$A(n),a=AA.useMemo(()=>!s||!r?"":xXA(t,{width:s,height:r||720}),[t,s,r]);AA.useMemo(()=>{if(!a)return pg();const I=a.match(/data-real-to-screen-transform="([^"]+)"/)?.[1];try{return BT(I)}catch(c){return console.error(c),pg()}},[a]);const g=AA.useMemo(()=>Z.jsx("div",{ref:o,style:{pointerEvents:"auto",transformOrigin:"0 0"},dangerouslySetInnerHTML:{__html:a}}),[a]);return Z.jsx("div",{ref:n,style:{position:"relative",backgroundColor:"#FFFFFF",overflow:"hidden",minHeight:"300px",...A},children:g})},XMt=({circuitJson:t,containerStyle:A,debugGrid:e=!1,debug:i=!1})=>{i&&g$A();const o=AA.useRef(null),{ref:n}=kL({onSetTransform(I){o.current&&(o.current.style.transform=Ih(I))}}),{containerWidth:s,containerHeight:r}=a$A(n),a=AA.useMemo(()=>!s||!r?"":RlA(t,{width:s,height:r||720}),[t,s,r]);AA.useMemo(()=>{if(!a)return pg();const I=a.match(/data-real-to-screen-transform="([^"]+)"/)?.[1];try{return BT(I)}catch(c){return console.error(c),pg()}},[a]);const g=AA.useMemo(()=>Z.jsx("div",{ref:o,style:{pointerEvents:"auto",transformOrigin:"0 0"},dangerouslySetInnerHTML:{__html:a}}),[a]);return Z.jsx("div",{ref:n,style:{position:"relative",backgroundColor:"#FFFFFF",overflow:"hidden",minHeight:"300px",...A},children:g})};const I$A=["Initialize a tscircuit project using [tsci init](https://github.com/tscircuit/cli) before adding components.","Define reusable modules with cached routes using [<subcircuit />](https://docs.tscircuit.com/elements/subcircuit)","Run `tsci dev` on the command line to preview your boards before export",'Use units like mm or mils consistently across your designs (e.g. pcbX="10mm")',"Quickly set footprints with the [footprint prop](https://docs.tscircuit.com/footprints/footprinter-strings)","Check out the guide on [ordering prototypes](https://docs.tscircuit.com/building-electronics/ordering-prototypes)","Use [net labels](https://docs.tscircuit.com/elements/net) and [group elements](https://docs.tscircuit.com/elements/group) to organize complex schematics.","You can manually drag components on the PCB and Schematic using [manual edits](https://docs.tscircuit.com/guides/manual-edits)","Every tscircuit module can export to [Circuit JSON](https://github.com/tscircuit/circuit-json), Gerbers, Pick'n'Place CSV files, Bill of Materials CSV and more","You can import components from [JLCPCB](https://docs.tscircuit.com/guides/importing-modules-and-chips/importing-from-jlcpcb) or [KiCad](https://docs.tscircuit.com/guides/importing-modules-and-chips/importing-from-kicad)","Any module you push to the [registry](https://tscircuit.com/trending) will have [simple image urls](https://docs.tscircuit.com/web-apis/image-generation-api) you can use display images on a website","The default [Parts Engine](https://docs.tscircuit.com/guides/platform-configuration) will automatically find parts from common vendors for your BOM",'[Pin selectors](https://docs.tscircuit.com/guides/using-sel-references) are similar to CSS selectors, ".R1 > .pin1" means "connect to the first pin of the component R1"',"You can use the [sel](https://docs.tscircuit.com/guides/using-sel-references) object to select pins in a type-safe way","Publish modules via the [registry](https://tscircuit.com/trending) for working with a team or sharing your work","[Explore tutorials](https://docs.tscircuit.com/category/tutorials) for real-world circuit design examples.","Upload your Circuit JSON to [circuitjson.com](https://circuitjson.com) for a quick preview.","You can display Circuit JSON in 3D, PCB or Schematic mode with the [<CircuitJsonPreview />](https://docs.tscircuit.com/guides/running-tscircuit/displaying-circuit-json-on-a-webpage#react-display-all-available-previews-with-circuitjsonpreview-) React component","Use a [<group />](https://docs.tscircuit.com/elements/group) element to move multiple components at once in a schematic or PCB layout.","Check out the [GitHub Discussions page](https://github.com/tscircuit/tscircuit/discussions) to upvote features","You can customize the autorouter using the [autorouter prop](https://docs.tscircuit.com/elements/board#setting-the-autorouter)","Use the [<constraint />](https://docs.tscircuit.com/footprints/constraint) element to enforce geometric relationships in PCB designs.","When working on component placement and circuit design, autorouting can slow down your iteration cycle. Use [routingDisabled](https://docs.tscircuit.com/elements/board#disabling-routing-with-routingdisabled) on the <board /> element to disable autorouting temporarily.","Join the [Discord server](https://tscircuit.com/join) to discuss issues and get help directly from the community."],$Mt=(()=>{let t=I$A[Math.floor(Math.random()*I$A.length)];return t=t.replace(/</g,"&lt;"),t=t.replace(/>/g,"&gt;"),t=t.replace(new RegExp('(?<!href=")(?<!\\()(?<!\\]\\()(https?:\\/\\/[^\\s\\)\\]]+)',"g"),(A,e)=>`<a class="rf-text-blue-500 rf-underline" href="${A}" target="_blank">${A}</a>`),t=t.replace(/\[([^\]]+)\]\((https?:\/\/[^\)]+)\)/g,'<a class="rf-text-blue-500 rf-underline" href="$2" target="_blank">$1</a>'),t})(),fS=({onRunClicked:t})=>Z.jsxs("div",{className:"rf-flex rf-flex-col rf-items-center rf-justify-center rf-h-full rf-bg-gray-50 rf-text-gray-500 rf-p-4",children:[Z.jsx(zmt,{className:"rf-size-14 rf-mb-4"}),Z.jsxs("p",{className:"rf-text-md rf-break-words rf-max-w-xl rf-text-center",children:["Tip: ",Z.jsx("span",{dangerouslySetInnerHTML:{__html:$Mt}})]}),t&&Z.jsxs(uc,{className:"rf-mt-4 rf-bg-blue-600 rf-hover:bg-blue-500",onClick:t,children:["Run Code",Z.jsx(ewt,{className:"rf-w-3 rf-h-3 rf-ml-2"})]})]}),G8=({text:t,onClick:A})=>Z.jsx("span",{className:"rf-cursor-pointer rf-underline rf-text-blue-600 rf-mx-2",onClick:A,children:t}),F8=t=>Z.jsxs("div",{className:"rf-leading-5",children:[Z.jsx("div",{className:"rf-py-2 rf-font-bold",children:t.column.name}),Z.jsx("div",{children:t.field?.()??Z.jsx("input",{type:"text",className:"rf-border rf-rounded rf-p-1 rf-w-full",onChange:A=>{t.onTextChange?.(A.target.value)}})})]}),Avt=({open:t,children:A,title:e,onClose:i})=>t?Z.jsx("div",{className:"rf-fixed rf-inset-0 rf-bg-black rf-bg-opacity-50 rf-flex rf-justify-center rf-items-center rf-z-50",onClick:i,children:Z.jsxs("div",{className:"rf-bg-white rf-p-5 rf-rounded-lg rf-relative rf-w-11/12 rf-max-w-2xl",onClick:o=>{o.preventDefault(),o.stopPropagation()},children:[Z.jsx("h2",{className:"rf-mt-0 rf-text-md rf-pb-4",children:e}),Z.jsx("button",{type:"button",className:"rf-absolute rf-top-2 rf-right-4 rf-text-2xl rf-font-bold",onClick:i,children:"×"}),A]})}):null,evt=({elements:t})=>{const[A,e]=AA.useState({open:!1}),[i,o]=AA.useReducer((I,c)=>({...I,...c}),{}),n=[...new Set(t.map(I=>I.type))],s=t.map(I=>{const c=I[`${I.type}_id`],B=Object.fromEntries(Object.entries(I).filter(([l])=>!(l===`${I.type}_id`||!l.endsWith("_id")))),C=Object.fromEntries(Object.entries(I).filter(([l])=>!l.endsWith("_id")));return{primary_id:c,other_ids:B,...C,_og_elm:I}}),r=s.map(I=>{let c="";const B=C=>{const l=Object.keys(C.other_ids).find(h=>h.startsWith("source_"));if(!l)return`.${C.name}`;const Q=l.slice(0,-3),E=s.find(h=>h.type===Q&&h.primary_id===C.other_ids[l]);return E?"name"in E?`${B(E)} > .${C.name}`:`#${E.primary_id} > .${C.name}`:`??? > .${C.name}`};return"name"in I&&(c=B(I)),{...I,selector_path:c}}),a=[{key:"primary_id",name:"primary_id",renderCell:I=>Z.jsxs("div",{className:"rf-flex rf-items-center",children:[Z.jsx(G8,{text:I.primary_id,onClick:()=>o({focused_id:I.primary_id,id_search:void 0,selector_search:void 0})}),Z.jsx("span",{className:"rf-flex-grow"}),Z.jsx(G8,{text:"(JSON)",onClick:()=>e({open:!0,element:I._og_elm,title:I.primary_id})})]}),renderHeaderCell:I=>Z.jsx(F8,{column:I,onTextChange:c=>o({id_search:c}),field:i.focused_id?()=>Z.jsxs("div",{children:["Focus:"," ",Z.jsx("span",{className:"rf-underline",children:i.focused_id}),Z.jsx(G8,{text:"(unfocus)",onClick:()=>o({focused_id:void 0})})]}):void 0})},{key:"type",name:"type",renderHeaderCell:I=>Z.jsx(F8,{column:I,field:()=>Z.jsxs("select",{onChange:c=>o({component_type_filter:c.target.value}),className:"rf-border rf-rounded rf-p-1 rf-w-full",children:[Z.jsx("option",{value:"any",children:"any"},"any"),Z.jsx("option",{value:"source",children:"source"},"source"),Z.jsx("option",{value:"source/pcb",children:"source/pcb"},"source/pcb"),Z.jsx("option",{value:"source/schematic",children:"source/schematic"},"source/schematic"),n.map(c=>Z.jsx("option",{value:c,children:c},c))]})})},{key:"name",name:"name",renderHeaderCell:I=>Z.jsx(F8,{column:I,onTextChange:c=>o({name_search:c})})},{key:"selector_path",name:"selector_path",renderHeaderCell:I=>Z.jsx(F8,{column:I,onTextChange:c=>o({selector_search:c})})},{key:"other_ids",name:"other_ids",renderCell:I=>Z.jsx("div",{className:"rf-space-x-2",children:Object.entries(I.other_ids).map(([c,B])=>Z.jsx(G8,{text:B,onClick:()=>o({focused_id:B})},B))})}],g=r.filter(I=>i.name_search?I.name?.toLowerCase()?.includes(i.name_search.toLowerCase()):!0).filter(I=>!i.component_type_filter||i.component_type_filter==="any"?!0:i.component_type_filter==="source"?I.type.startsWith("source_"):i.component_type_filter==="source/pcb"?I.type.startsWith("source_")||I.type.startsWith("pcb_"):i.component_type_filter==="source/schematic"?I.type.startsWith("source_")||I.type.startsWith("schematic_"):I.type?.includes(i.component_type_filter)).filter(I=>i.selector_search?i.selector_search.split(" ").filter(B=>B.length>0).every(B=>I.selector_path?.includes(B)):!0).filter(I=>i.id_search?I.primary_id?.includes(i.id_search):!0).filter(I=>!!(!i.focused_id||I.primary_id===i.focused_id||Object.values(I.other_ids).includes(i.focused_id)));return Z.jsxs("div",{className:"rf-font-mono rf-text-xs rf-bg-white",children:[Z.jsx("div",{className:"rf-overflow-x-auto",children:Z.jsxs("table",{className:"rf-table-auto rf-w-full rf-text-left",children:[Z.jsx("thead",{children:Z.jsx("tr",{children:a.map(I=>Z.jsx("th",{className:"rf-px-4 rf-py-2 rf-border-b",children:I.renderHeaderCell?I.renderHeaderCell(I):I.name},I.key))})}),Z.jsx("tbody",{children:g.map((I,c)=>Z.jsx("tr",{className:"rf-hover:bg-gray-100",children:a.map(B=>Z.jsx("td",{className:"rf-px-4 rf-py-2 rf-border-b",children:B.renderCell?B.renderCell(I):I[B.key]},B.key))},c))})]})}),Z.jsx(Avt,{open:A.open,onClose:()=>e({open:!1}),title:A.open?A.title:"",children:Z.jsx("div",{className:"rf-bg-gray-800 rf-p-3 rf-text-white rf-rounded",children:Z.jsx("pre",{className:"rf-whitespace-pre-wrap",children:A.open?JSON.stringify(A.element,null,2):""})})})]})},tvt=(t,A)=>t==="jlcpcb"?Z.jsx("a",{className:"rf-underline rf-text-blue-500",target:"_blank",rel:"noreferrer",href:`https://jlcpcb.com/partdetail/${A}`,children:A}):A,ivt=({circuitJson:t})=>{const A=t.filter(i=>i.type==="source_component"),e=new Set;for(const i of A)if(i.supplier_part_numbers)for(const o of Object.keys(i.supplier_part_numbers))e.add(o);return Z.jsx("div",{className:"rf-overflow-x-auto",children:Z.jsxs("table",{className:"rf-w-full rf-text-left rf-text-sm",children:[Z.jsx("thead",{children:Z.jsxs("tr",{className:"rf-border-b",children:[Z.jsx("th",{className:"rf-p-2",children:"Name"}),Array.from(e).map(i=>Z.jsx("th",{className:"rf-p-2 rf-capitalize",children:i},i))]})}),Z.jsx("tbody",{children:A.map(i=>Z.jsxs("tr",{className:"rf-border-b",children:[Z.jsx("td",{className:"rf-p-2",children:i.name}),Array.from(e).map(o=>Z.jsx("td",{className:"rf-p-2",children:tvt(o,i.supplier_part_numbers?.[o]?.[0]||"")},o))]},i.source_component_id))})]})})},dQA=AA.forwardRef(({className:t,type:A,...e},i)=>Z.jsx("input",{type:A,className:En("rf-flex rf-h-9 rf-w-full rf-rounded-md rf-border rf-border-zinc-200 rf-bg-white rf-px-3 rf-py-1 rf-text-sm rf-shadow-sm rf-transition-colors file:rf-border-0 file:rf-bg-transparent file:rf-text-sm file:rf-font-medium placeholder:rf-text-zinc-500 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 dark:rf-border-zinc-800 dark:rf-bg-zinc-950 dark:rf-placeholder-zinc-400 dark:focus-visible:rf-ring-zinc-300",t),ref:i,...e}));dQA.displayName="Input";var c$A={Hz:{baseUnit:"Hz",variants:{MHz:1e6,kHz:1e3,Hz:1}},g:{baseUnit:"g",variants:{kg:1e3,g:1}},Ω:{baseUnit:"Ω",variants:{mΩ:.001,Ω:1,kΩ:1e3,KΩ:1e3,kohm:1e3,MΩ:1e6,GΩ:1e9,TΩ:1e12}},V:{baseUnit:"V",variants:{mV:.001,V:1,kV:1e3,KV:1e3,MV:1e6,GV:1e9,TV:1e12}},A:{baseUnit:"A",variants:{µA:1e-6,mA:.001,ma:.001,A:1,kA:1e3,MA:1e6}},F:{baseUnit:"F",variants:{pF:1e-12,nF:1e-9,µF:1e-6,uF:1e-6,mF:.001,F:1}},ml:{baseUnit:"ml",variants:{ml:1,mL:1,l:1e3,L:1e3}},deg:{baseUnit:"deg",variants:{rad:180/Math.PI}},ms:{baseUnit:"ms",variants:{fs:1e-12,ps:1e-9,ns:1e-6,us:.001,µs:.001,ms:1,s:1e3}},mm:{baseUnit:"mm",variants:{nm:1e-6,µm:.001,um:.001,mm:1,cm:10,dm:100,m:1e3,km:1e6,in:25.4,ft:304.8,IN:25.4,FT:304.8,yd:914.4,mi:1609344,mil:.0254}}},pQA=new Set;for(const[t,A]of Object.entries(c$A)){pQA.add(t);for(const e of Object.keys(A.variants))pQA.add(e)}function ovt(t){for(const[A,e]of Object.entries(c$A))if(t in e.variants)return{baseUnit:e.baseUnit,conversionFactor:e.variants[t]};return{baseUnit:t,conversionFactor:1}}var B$A={tera:1e12,T:1e12,giga:1e9,G:1e9,mega:1e6,M:1e6,kilo:1e3,k:1e3,deci:.1,d:.1,centi:.01,c:.01,milli:.001,m:.001,micro:1e-6,u:1e-6,µ:1e-6,nano:1e-9,n:1e-9,pico:1e-12,p:1e-12};function wm(t){if(t==null)return{parsedUnit:null,unitOfValue:null,value:null};if(typeof t=="string"&&t.match(/^-?[\d\.]+$/))return{value:Number.parseFloat(t),parsedUnit:null,unitOfValue:null};if(typeof t=="number")return{value:t,parsedUnit:null,unitOfValue:null};if(typeof t=="object"&&"x"in t&&"y"in t){const{parsedUnit:r,unitOfValue:a}=wm(t.x),g=wm(t.x),I=wm(t.y);return g.value===null||I.value===null?{parsedUnit:null,unitOfValue:null,value:null}:{parsedUnit:r,unitOfValue:a,value:{x:g.value,y:I.value}}}const e=t.toString().split("").reverse().join("").match(/[^\d\s]+/)?.[0];if(!e)throw new Error(`Could not determine unit: "${t}"`);const i=e.split("").reverse().join(""),o=t.slice(0,-i.length);if(i in B$A&&!pQA.has(i)){const r=B$A[i];return{parsedUnit:null,unitOfValue:null,value:Number.parseFloat(o)*r}}const{baseUnit:n,conversionFactor:s}=ovt(i);return{parsedUnit:i,unitOfValue:n,value:s*Number.parseFloat(o)}}var _8=v().or(NA()).transform(t=>wm(t).value),fQA=v().or(NA()).transform(t=>wm(t).value).transform(t=>Number.parseFloat(t.toPrecision(12))),C$A=v().or(NA()).transform(t=>wm(t).value),tF=v().or(NA()).transform(t=>wm(t).value),qi=v().or(NA()).transform(t=>wm(t).value),jL=v().or(NA()).transform(t=>wm(t).value),ut=qi,R8=v().or(NA()).transform(t=>wm(t).value),zL=v().or(NA()).transform(t=>wm(t).value),nvt=zL,iF=zL,l$A=v().datetime(),bd=v().or(NA()).transform(t=>typeof t=="number"?t:t.endsWith("deg")?Number.parseFloat(t.split("deg")[0]):t.endsWith("rad")?Number.parseFloat(t.split("rad")[0])*180/Math.PI:Number.parseFloat(t)),Q$A=NA().or(v().endsWith("mAh")).transform(t=>{if(typeof t=="string"){const A=t.replace("mAh",""),e=Number.parseFloat(A);if(Number.isNaN(e))throw new Error("Invalid capacity");return e}return t}).describe("Battery capacity in mAh"),So=bA({x:ut,y:ut}),svt=So,XL=bA({x:ut,y:ut,z:ut}),rvt=XL,yQA=bA({width:NA(),height:NA()}),avt=t=>{const A="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";return Array.from({length:t},()=>A[Math.floor(Math.random()*A.length)]).join("")},zt=t=>v().optional().default(()=>`${t}_${avt(10)}`),Ux=Ze(["top_left","top_center","top_right","center_left","center","center_right","bottom_left","bottom_center","bottom_right"]),E$A=Ze(["jlcpcb","macrofab","pcbway","digikey","mouser","lcsc"]),DB=bA({type:lA("source_component"),ftype:v().optional(),source_component_id:v(),name:v(),manufacturer_part_number:v().optional(),supplier_part_numbers:$r(E$A,fe(v())).optional(),display_value:v().optional(),are_pins_interchangeable:te().optional(),internally_connected_source_port_ids:fe(fe(v())).optional(),source_group_id:v().optional(),subcircuit_id:v().optional()}),mQA=DB.extend({ftype:lA("simple_capacitor"),capacitance:fQA,max_voltage_rating:tF.optional(),display_capacitance:v().optional(),max_decoupling_trace_length:ut.optional()}),wQA=DB.extend({ftype:lA("simple_resistor"),resistance:_8,display_resistance:v().optional()}),N8=DB.extend({ftype:lA("simple_diode")}),h$A=DB.extend({ftype:lA("simple_fiducial")}),DQA=N8.extend({ftype:lA("simple_led"),color:v().optional(),wavelength:v().optional()}),u$A=DB.extend({ftype:lA("simple_ground")}),SQA=DB.extend({ftype:lA("simple_chip")}),bQA=DB.extend({ftype:lA("simple_power_source"),voltage:tF}),gvt=DB.extend({ftype:lA("simple_fuse"),current_rating_amps:NA().describe("Nominal current in amps the fuse is rated for"),voltage_rating_volts:NA().describe("Voltage rating in volts, e.g. ±5V would be 5")}),xQA=DB.extend({ftype:lA("simple_battery"),capacity:Q$A}),kQA=DB.extend({ftype:lA("simple_inductor"),inductance:C$A,max_current_rating:NA().optional()}),GQA=DB.extend({ftype:lA("simple_push_button")}),FQA=DB.extend({ftype:lA("simple_potentiometer"),max_resistance:_8}),d$A=DB.extend({ftype:lA("simple_crystal"),frequency:NA().describe("Frequency in Hz"),load_capacitance:NA().optional().describe("Load capacitance in pF")}),_QA=DB.extend({ftype:lA("simple_pin_header"),pin_count:NA(),gender:Ze(["male","female"]).optional().default("male")}),RQA=DB.extend({ftype:lA("simple_pinout")}),NQA=DB.extend({ftype:lA("simple_resonator"),load_capacitance:fQA,equivalent_series_resistance:_8.optional(),frequency:jL}),MQA=DB.extend({ftype:lA("simple_transistor"),transistor_type:Ze(["npn","pnp"])}),vQA=DB.extend({ftype:lA("simple_test_point"),footprint_variant:Ze(["pad","through_hole"]).optional(),pad_shape:Ze(["rect","circle"]).optional(),pad_diameter:Wt([NA(),v()]).optional(),hole_diameter:Wt([NA(),v()]).optional(),width:Wt([NA(),v()]).optional(),height:Wt([NA(),v()]).optional()}),UQA=DB.extend({ftype:lA("simple_mosfet"),channel_type:Ze(["n","p"]),mosfet_mode:Ze(["enhancement","depletion"])}),LQA=DB.extend({ftype:lA("simple_switch")}),HQA=bA({type:lA("source_project_metadata"),name:v().optional(),software_used_string:v().optional(),project_url:v().optional(),created_at:l$A.optional()}),p$A=bA({type:lA("source_missing_property_error"),source_missing_property_error_id:zt("source_missing_property_error"),source_component_id:v(),property_name:v(),subcircuit_id:v().optional(),error_type:lA("source_missing_property_error").default("source_missing_property_error"),message:v()}).describe("The source code is missing a property"),f$A=bA({type:lA("source_failed_to_create_component_error"),source_failed_to_create_component_error_id:zt("source_failed_to_create_component_error"),error_type:lA("source_failed_to_create_component_error").default("source_failed_to_create_component_error"),component_name:v().optional(),subcircuit_id:v().optional(),parent_source_component_id:v().optional(),message:v(),pcb_center:bA({x:NA().optional(),y:NA().optional()}).optional(),schematic_center:bA({x:NA().optional(),y:NA().optional()}).optional()}).describe("Error emitted when a component fails to be constructed"),YQA=bA({type:lA("source_trace_not_connected_error"),source_trace_not_connected_error_id:zt("source_trace_not_connected_error"),error_type:lA("source_trace_not_connected_error").default("source_trace_not_connected_error"),message:v(),subcircuit_id:v().optional(),source_group_id:v().optional(),source_trace_id:v().optional(),connected_source_port_ids:fe(v()).optional(),selectors_not_found:fe(v()).optional()}).describe("Occurs when a source trace selector does not match any ports"),y$A=bA({type:lA("source_property_ignored_warning"),source_property_ignored_warning_id:zt("source_property_ignored_warning"),source_component_id:v(),property_name:v(),subcircuit_id:v().optional(),error_type:lA("source_property_ignored_warning").default("source_property_ignored_warning"),message:v()}).describe("The source property was ignored"),JQA=bA({type:lA("source_pin_missing_trace_warning"),source_pin_missing_trace_warning_id:zt("source_pin_missing_trace_warning"),warning_type:lA("source_pin_missing_trace_warning").default("source_pin_missing_trace_warning"),message:v(),source_component_id:v(),source_port_id:v(),subcircuit_id:v().optional()}).describe("Warning emitted when a source component pin is missing a trace connection"),m$A=DB.extend({ftype:lA("simple_voltage_probe")}),w$A=DB.extend({ftype:lA("interconnect")}),D$A=Wt([wQA,mQA,N8,h$A,DQA,u$A,SQA,bQA,xQA,kQA,GQA,FQA,d$A,_QA,RQA,NQA,LQA,MQA,vQA,UQA,gvt,m$A,w$A,HQA,p$A,f$A,YQA,y$A,JQA]),S$A=bA({type:lA("source_port"),pin_number:NA().optional(),port_hints:fe(v()).optional(),name:v(),source_port_id:v(),source_component_id:v().optional(),source_group_id:v().optional(),subcircuit_id:v().optional(),subcircuit_connectivity_map_key:v().optional(),must_be_connected:te().optional()}),b$A=bA({type:lA("source_component_internal_connection"),source_component_internal_connection_id:v(),source_component_id:v(),source_port_ids:fe(v()),subcircuit_id:v().optional()}),x$A=bA({type:lA("source_trace"),source_trace_id:v(),connected_source_port_ids:fe(v()),connected_source_net_ids:fe(v()),subcircuit_id:v().optional(),subcircuit_connectivity_map_key:v().optional(),max_length:NA().optional(),min_trace_thickness:NA().optional(),display_name:v().optional()}),k$A=bA({type:lA("source_group"),source_group_id:v(),subcircuit_id:v().optional(),parent_subcircuit_id:v().optional(),parent_source_group_id:v().optional(),is_subcircuit:te().optional(),show_as_schematic_box:te().optional(),name:v().optional(),was_automatically_named:te().optional()}),G$A=bA({type:lA("source_net"),source_net_id:v(),name:v(),member_source_group_ids:fe(v()),is_power:te().optional(),is_ground:te().optional(),is_digital_signal:te().optional(),is_analog_signal:te().optional(),is_positive_voltage_source:te().optional(),trace_width:NA().optional(),subcircuit_id:v().optional(),subcircuit_connectivity_map_key:v().optional()}),F$A=bA({type:lA("source_board"),source_board_id:v(),source_group_id:v(),title:v().optional()}).describe("Defines a board in the source domain"),_$A=bA({type:lA("source_pcb_ground_plane"),source_pcb_ground_plane_id:v(),source_group_id:v(),source_net_id:v(),subcircuit_id:v().optional()}).describe("Defines a ground plane in the source domain"),R$A=["top","bottom","inner1","inner2","inner3","inner4","inner5","inner6"],KQA=Ze(R$A),br=KQA.or(bA({name:KQA})).transform(t=>typeof t=="string"?t:t.name),Dm=Ze(["top","bottom"]),N$A=bA({type:lA("source_manually_placed_via"),source_manually_placed_via_id:v(),source_group_id:v(),source_net_id:v(),subcircuit_id:v().optional(),source_trace_id:v().optional()}).describe("Defines a via that is manually placed in the source domain"),M$A=bA({type:lA("source_pin_must_be_connected_error"),source_pin_must_be_connected_error_id:zt("source_pin_must_be_connected_error"),error_type:lA("source_pin_must_be_connected_error").default("source_pin_must_be_connected_error"),message:v(),source_component_id:v(),source_port_id:v(),subcircuit_id:v().optional()}).describe("Error emitted when a pin with mustBeConnected attribute is not connected to any trace"),v$A=bA({type:lA("unknown_error_finding_part"),unknown_error_finding_part_id:zt("unknown_error_finding_part"),error_type:lA("unknown_error_finding_part").default("unknown_error_finding_part"),message:v(),source_component_id:v().optional(),subcircuit_id:v().optional()}).describe("Error emitted when an unexpected error occurs while finding a part"),U$A=bA({type:lA("schematic_box"),schematic_component_id:v().optional(),width:ut,height:ut,is_dashed:te().default(!1),x:ut,y:ut,subcircuit_id:v().optional()}).describe("Draws a box on the schematic"),L$A=bA({type:lA("schematic_path"),schematic_component_id:v(),fill_color:Ze(["red","blue"]).optional(),is_filled:te().optional(),points:fe(So),subcircuit_id:v().optional()}),H$A=$r(bA({left_margin:qi.optional(),right_margin:qi.optional(),top_margin:qi.optional(),bottom_margin:qi.optional()})),Y$A=bA({left_size:NA(),right_size:NA(),top_size:NA().optional(),bottom_size:NA().optional()}),J$A=bA({left_side:bA({pins:fe(NA()),direction:Ze(["top-to-bottom","bottom-to-top"]).optional()}).optional(),right_side:bA({pins:fe(NA()),direction:Ze(["top-to-bottom","bottom-to-top"]).optional()}).optional(),top_side:bA({pins:fe(NA()),direction:Ze(["left-to-right","right-to-left"]).optional()}).optional(),bottom_side:bA({pins:fe(NA()),direction:Ze(["left-to-right","right-to-left"]).optional()}).optional()}),K$A=Wt([Y$A,J$A]),T$A=bA({type:lA("schematic_component"),size:yQA,center:So,source_component_id:v().optional(),schematic_component_id:v(),pin_spacing:qi.optional(),pin_styles:H$A.optional(),box_width:qi.optional(),symbol_name:v().optional(),port_arrangement:K$A.optional(),port_labels:$r(v()).optional(),symbol_display_value:v().optional(),subcircuit_id:v().optional(),schematic_group_id:v().optional(),is_schematic_group:te().optional(),source_group_id:v().optional(),is_box_with_pins:te().optional().default(!0)}),q$A=bA({type:lA("schematic_line"),schematic_line_id:zt("schematic_line"),schematic_component_id:v(),x1:ut,y1:ut,x2:ut,y2:ut,stroke_width:ut.nullable().optional(),color:v().default("#000000"),is_dashed:te().default(!1),subcircuit_id:v().optional()}).describe("Draws a styled line on the schematic"),P$A=bA({type:lA("schematic_rect"),schematic_rect_id:zt("schematic_rect"),schematic_component_id:v(),center:So,width:ut,height:ut,rotation:bd.default(0),stroke_width:ut.nullable().optional(),color:v().default("#000000"),is_filled:te().default(!1),fill_color:v().optional(),is_dashed:te().default(!1),subcircuit_id:v().optional()}).describe("Draws a styled rectangle on the schematic"),O$A=bA({type:lA("schematic_circle"),schematic_circle_id:zt("schematic_circle"),schematic_component_id:v(),center:So,radius:ut,stroke_width:ut.nullable().optional(),color:v().default("#000000"),is_filled:te().default(!1),fill_color:v().optional(),is_dashed:te().default(!1),subcircuit_id:v().optional()}).describe("Draws a styled circle on the schematic"),W$A=bA({type:lA("schematic_arc"),schematic_arc_id:zt("schematic_arc"),schematic_component_id:v(),center:So,radius:ut,start_angle_degrees:bd,end_angle_degrees:bd,direction:Ze(["clockwise","counterclockwise"]).default("counterclockwise"),stroke_width:ut.nullable().optional(),color:v().default("#000000"),is_dashed:te().default(!1),subcircuit_id:v().optional()}).describe("Draws a styled arc on the schematic"),Z$A=bA({type:lA("schematic_trace"),schematic_trace_id:v(),source_trace_id:v().optional(),junctions:fe(bA({x:NA(),y:NA()})),edges:fe(bA({from:bA({x:NA(),y:NA()}),to:bA({x:NA(),y:NA()}),is_crossing:te().optional(),from_schematic_port_id:v().optional(),to_schematic_port_id:v().optional()})),subcircuit_id:v().optional(),subcircuit_connectivity_map_key:v().optional()}),Ivt=Ze(["center","left","right","top","bottom"]),V$A=bA({type:lA("schematic_text"),schematic_component_id:v().optional(),schematic_text_id:v(),text:v(),font_size:NA().default(.18),position:bA({x:ut,y:ut}),rotation:NA().default(0),anchor:Wt([Ivt.describe("legacy"),Ux]).default("center"),color:v().default("#000000"),subcircuit_id:v().optional()}),j$A=bA({type:lA("schematic_port"),schematic_port_id:v(),source_port_id:v(),schematic_component_id:v().optional(),center:So,facing_direction:Ze(["up","down","left","right"]).optional(),distance_from_component_edge:NA().optional(),side_of_component:Ze(["top","bottom","left","right"]).optional(),true_ccw_index:NA().optional(),pin_number:NA().optional(),display_pin_label:v().optional(),subcircuit_id:v().optional(),is_connected:te().optional(),has_input_arrow:te().optional(),has_output_arrow:te().optional()}).describe("Defines a port on a schematic component"),z$A=bA({type:lA("schematic_net_label"),schematic_net_label_id:zt("schematic_net_label"),schematic_trace_id:v().optional(),source_trace_id:v().optional(),source_net_id:v(),center:So,anchor_position:So.optional(),anchor_side:Ze(["top","bottom","left","right"]),text:v(),symbol_name:v().optional(),is_movable:te().optional(),subcircuit_id:v().optional()}),X$A=bA({type:lA("schematic_error"),schematic_error_id:v(),error_type:lA("schematic_port_not_found").default("schematic_port_not_found"),message:v(),subcircuit_id:v().optional()}).describe("Defines a schematic error on the schematic"),$$A=bA({type:lA("schematic_layout_error"),schematic_layout_error_id:zt("schematic_layout_error"),error_type:lA("schematic_layout_error").default("schematic_layout_error"),message:v(),source_group_id:v(),schematic_group_id:v(),subcircuit_id:v().optional()}).describe("Error emitted when schematic layout fails for a group"),M8=bA({type:lA("schematic_debug_object"),label:v().optional(),subcircuit_id:v().optional()}),AAe=M8.extend({shape:lA("rect"),center:So,size:yQA}),eAe=M8.extend({shape:lA("line"),start:So,end:So}),tAe=M8.extend({shape:lA("point"),center:So}),iAe=rE("shape",[AAe,eAe,tAe]),oAe=bA({type:lA("schematic_voltage_probe"),schematic_voltage_probe_id:v(),source_component_id:v().optional(),name:v().optional(),position:So,schematic_trace_id:v(),voltage:tF.optional(),subcircuit_id:v().optional(),color:v().optional(),label_alignment:Ux.optional()}).describe("Defines a voltage probe measurement point on a schematic trace"),nAe=bA({type:lA("schematic_manual_edit_conflict_warning"),schematic_manual_edit_conflict_warning_id:zt("schematic_manual_edit_conflict_warning"),warning_type:lA("schematic_manual_edit_conflict_warning").default("schematic_manual_edit_conflict_warning"),message:v(),schematic_component_id:v(),schematic_group_id:v().optional(),subcircuit_id:v().optional(),source_component_id:v()}).describe("Warning emitted when a component has both manual placement and explicit schX/schY coordinates"),sAe=bA({type:lA("schematic_group"),schematic_group_id:zt("schematic_group"),source_group_id:v(),is_subcircuit:te().optional(),subcircuit_id:v().optional(),width:qi,height:qi,center:So,schematic_component_ids:fe(v()),show_as_schematic_box:te().optional(),name:v().optional(),description:v().optional()}).describe("Defines a group of components on the schematic"),rAe=bA({type:lA("schematic_table"),schematic_table_id:zt("schematic_table"),anchor_position:So,column_widths:fe(ut),row_heights:fe(ut),cell_padding:ut.optional(),border_width:ut.optional(),subcircuit_id:v().optional(),schematic_component_id:v().optional(),anchor:Ux.optional()}).describe("Defines a table on the schematic"),aAe=bA({type:lA("schematic_table_cell"),schematic_table_cell_id:zt("schematic_table_cell"),schematic_table_id:v(),start_row_index:NA(),end_row_index:NA(),start_column_index:NA(),end_column_index:NA(),text:v().optional(),center:So,width:ut,height:ut,horizontal_align:Ze(["left","center","right"]).optional(),vertical_align:Ze(["top","middle","bottom"]).optional(),font_size:ut.optional(),subcircuit_id:v().optional()}).describe("Defines a cell within a schematic_table"),gAe=bA({type:lA("schematic_sheet"),schematic_sheet_id:zt("schematic_sheet"),name:v().optional(),subcircuit_id:v().optional()}).describe("Defines a schematic sheet or page that components can be placed on"),IAe=bA({x:ut,y:ut,bulge:NA().optional()}),TQA=bA({vertices:fe(IAe)}),cAe=bA({outer_ring:TQA,inner_rings:fe(TQA).default([])}),BAe=bA({x:ut,y:ut,via:te().optional(),via_to_layer:br.optional()}),cvt=fe(BAe),CAe=bA({x:ut,y:ut,via:te().optional(),to_layer:br.optional(),trace_width:ut.optional()}),lAe=bA({type:lA("pcb_component"),pcb_component_id:zt("pcb_component"),source_component_id:v(),center:So,layer:br,rotation:bd,display_offset_x:v().optional().describe("How to display the x offset for this part, usually corresponding with how the user specified it"),display_offset_y:v().optional().describe("How to display the y offset for this part, usually corresponding with how the user specified it"),width:qi,height:qi,do_not_place:te().optional(),subcircuit_id:v().optional(),pcb_group_id:v().optional(),position_mode:Ze(["packed","relative_to_group_anchor","none"]).optional(),positioned_relative_to_pcb_group_id:v().optional(),positioned_relative_to_pcb_board_id:v().optional(),obstructs_within_bounds:te().default(!0).describe("Does this component take up all the space within its bounds on a layer. This is generally true except for when separated pin headers are being represented by a single component (in which case, chips can be placed between the pin headers) or for tall modules where chips fit underneath")}).describe("Defines a component on the PCB"),QAe=bA({type:lA("pcb_hole"),pcb_hole_id:zt("pcb_hole"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),pcb_component_id:v().optional(),hole_shape:lA("circle"),hole_diameter:NA(),x:ut,y:ut,is_covered_with_solder_mask:te().optional(),soldermask_margin:NA().optional()}),Bvt=QAe.describe("Defines a circular hole on the PCB"),EAe=bA({type:lA("pcb_hole"),pcb_hole_id:zt("pcb_hole"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),pcb_component_id:v().optional(),hole_shape:lA("rect"),hole_width:NA(),hole_height:NA(),x:ut,y:ut,is_covered_with_solder_mask:te().optional(),soldermask_margin:NA().optional()}),Cvt=EAe.describe("Defines a rectangular (square-capable) hole on the PCB. Use equal width/height for square."),hAe=bA({type:lA("pcb_hole"),pcb_hole_id:zt("pcb_hole"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),pcb_component_id:v().optional(),hole_shape:Ze(["circle","square"]),hole_diameter:NA(),x:ut,y:ut,is_covered_with_solder_mask:te().optional(),soldermask_margin:NA().optional()}),lvt=hAe.describe("Defines a circular or square hole on the PCB"),uAe=bA({type:lA("pcb_hole"),pcb_hole_id:zt("pcb_hole"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),pcb_component_id:v().optional(),hole_shape:lA("oval"),hole_width:NA(),hole_height:NA(),x:ut,y:ut,is_covered_with_solder_mask:te().optional(),soldermask_margin:NA().optional()}),Qvt=uAe.describe("Defines an oval hole on the PCB"),dAe=bA({type:lA("pcb_hole"),pcb_hole_id:zt("pcb_hole"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),pcb_component_id:v().optional(),hole_shape:lA("pill"),hole_width:NA(),hole_height:NA(),x:ut,y:ut,is_covered_with_solder_mask:te().optional(),soldermask_margin:NA().optional()}),Evt=dAe.describe("Defines a pill-shaped hole on the PCB"),pAe=bA({type:lA("pcb_hole"),pcb_hole_id:zt("pcb_hole"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),pcb_component_id:v().optional(),hole_shape:lA("rotated_pill"),hole_width:NA(),hole_height:NA(),x:ut,y:ut,ccw_rotation:bd,is_covered_with_solder_mask:te().optional(),soldermask_margin:NA().optional()}),hvt=pAe.describe("Defines a rotated pill-shaped hole on the PCB"),fAe=hAe.or(uAe).or(dAe).or(pAe).or(QAe).or(EAe),uvt=bA({type:lA("pcb_plated_hole"),shape:lA("circle"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),outer_diameter:NA(),hole_diameter:NA(),is_covered_with_solder_mask:te().optional(),x:ut,y:ut,layers:fe(br),port_hints:fe(v()).optional(),pcb_component_id:v().optional(),pcb_port_id:v().optional(),pcb_plated_hole_id:zt("pcb_plated_hole"),soldermask_margin:NA().optional()}),dvt=bA({type:lA("pcb_plated_hole"),shape:Ze(["oval","pill"]),pcb_group_id:v().optional(),subcircuit_id:v().optional(),outer_width:NA(),outer_height:NA(),hole_width:NA(),hole_height:NA(),is_covered_with_solder_mask:te().optional(),x:ut,y:ut,ccw_rotation:bd,layers:fe(br),port_hints:fe(v()).optional(),pcb_component_id:v().optional(),pcb_port_id:v().optional(),pcb_plated_hole_id:zt("pcb_plated_hole"),soldermask_margin:NA().optional()}),pvt=bA({type:lA("pcb_plated_hole"),shape:lA("circular_hole_with_rect_pad"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),hole_shape:lA("circle"),pad_shape:lA("rect"),hole_diameter:NA(),rect_pad_width:NA(),rect_pad_height:NA(),rect_border_radius:NA().optional(),hole_offset_x:ut.default(0),hole_offset_y:ut.default(0),is_covered_with_solder_mask:te().optional(),x:ut,y:ut,layers:fe(br),port_hints:fe(v()).optional(),pcb_component_id:v().optional(),pcb_port_id:v().optional(),pcb_plated_hole_id:zt("pcb_plated_hole"),soldermask_margin:NA().optional()}),fvt=bA({type:lA("pcb_plated_hole"),shape:lA("pill_hole_with_rect_pad"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),hole_shape:lA("pill"),pad_shape:lA("rect"),hole_width:NA(),hole_height:NA(),rect_pad_width:NA(),rect_pad_height:NA(),rect_border_radius:NA().optional(),hole_offset_x:ut.default(0),hole_offset_y:ut.default(0),is_covered_with_solder_mask:te().optional(),x:ut,y:ut,layers:fe(br),port_hints:fe(v()).optional(),pcb_component_id:v().optional(),pcb_port_id:v().optional(),pcb_plated_hole_id:zt("pcb_plated_hole"),soldermask_margin:NA().optional()}),yvt=bA({type:lA("pcb_plated_hole"),shape:lA("rotated_pill_hole_with_rect_pad"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),hole_shape:lA("rotated_pill"),pad_shape:lA("rect"),hole_width:NA(),hole_height:NA(),hole_ccw_rotation:bd,rect_pad_width:NA(),rect_pad_height:NA(),rect_border_radius:NA().optional(),rect_ccw_rotation:bd,hole_offset_x:ut.default(0),hole_offset_y:ut.default(0),is_covered_with_solder_mask:te().optional(),x:ut,y:ut,layers:fe(br),port_hints:fe(v()).optional(),pcb_component_id:v().optional(),pcb_port_id:v().optional(),pcb_plated_hole_id:zt("pcb_plated_hole"),soldermask_margin:NA().optional()}),mvt=bA({type:lA("pcb_plated_hole"),shape:lA("hole_with_polygon_pad"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),hole_shape:Ze(["circle","oval","pill","rotated_pill"]),hole_diameter:NA().optional(),hole_width:NA().optional(),hole_height:NA().optional(),pad_outline:fe(bA({x:ut,y:ut})).min(3),hole_offset_x:ut.default(0),hole_offset_y:ut.default(0),is_covered_with_solder_mask:te().optional(),x:ut,y:ut,layers:fe(br),port_hints:fe(v()).optional(),pcb_component_id:v().optional(),pcb_port_id:v().optional(),pcb_plated_hole_id:zt("pcb_plated_hole"),soldermask_margin:NA().optional()}),yAe=Wt([uvt,dvt,pvt,fvt,yvt,mvt]),mAe=bA({type:lA("pcb_port"),pcb_port_id:zt("pcb_port"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),source_port_id:v(),pcb_component_id:v().optional(),x:ut,y:ut,layers:fe(br),is_board_pinout:te().optional()}).describe("Defines a port on the PCB"),wvt=bA({type:lA("pcb_smtpad"),shape:lA("circle"),pcb_smtpad_id:zt("pcb_smtpad"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),x:ut,y:ut,radius:NA(),layer:br,port_hints:fe(v()).optional(),pcb_component_id:v().optional(),pcb_port_id:v().optional(),is_covered_with_solder_mask:te().optional(),soldermask_margin:NA().optional()}),Dvt=bA({type:lA("pcb_smtpad"),shape:lA("rect"),pcb_smtpad_id:zt("pcb_smtpad"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),x:ut,y:ut,width:NA(),height:NA(),rect_border_radius:NA().optional(),corner_radius:NA().optional(),layer:br,port_hints:fe(v()).optional(),pcb_component_id:v().optional(),pcb_port_id:v().optional(),is_covered_with_solder_mask:te().optional(),soldermask_margin:NA().optional()}),Svt=bA({type:lA("pcb_smtpad"),shape:lA("rotated_rect"),pcb_smtpad_id:zt("pcb_smtpad"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),x:ut,y:ut,width:NA(),height:NA(),rect_border_radius:NA().optional(),corner_radius:NA().optional(),ccw_rotation:bd,layer:br,port_hints:fe(v()).optional(),pcb_component_id:v().optional(),pcb_port_id:v().optional(),is_covered_with_solder_mask:te().optional(),soldermask_margin:NA().optional()}),wAe=bA({type:lA("pcb_smtpad"),shape:lA("pill"),pcb_smtpad_id:zt("pcb_smtpad"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),x:ut,y:ut,width:NA(),height:NA(),radius:NA(),layer:br,port_hints:fe(v()).optional(),pcb_component_id:v().optional(),pcb_port_id:v().optional(),is_covered_with_solder_mask:te().optional(),soldermask_margin:NA().optional()}),bvt=bA({type:lA("pcb_smtpad"),shape:lA("rotated_pill"),pcb_smtpad_id:zt("pcb_smtpad"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),x:ut,y:ut,width:NA(),height:NA(),radius:NA(),ccw_rotation:bd,layer:br,port_hints:fe(v()).optional(),pcb_component_id:v().optional(),pcb_port_id:v().optional(),is_covered_with_solder_mask:te().optional(),soldermask_margin:NA().optional()}),xvt=bA({type:lA("pcb_smtpad"),shape:lA("polygon"),pcb_smtpad_id:zt("pcb_smtpad"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),points:fe(So),layer:br,port_hints:fe(v()).optional(),pcb_component_id:v().optional(),pcb_port_id:v().optional(),is_covered_with_solder_mask:te().optional(),soldermask_margin:NA().optional()}),DAe=rE("shape",[wvt,Dvt,Svt,bvt,wAe,xvt]).describe("Defines an SMT pad on the PCB"),kvt=bA({type:lA("pcb_solder_paste"),shape:lA("circle"),pcb_solder_paste_id:zt("pcb_solder_paste"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),x:ut,y:ut,radius:NA(),layer:br,pcb_component_id:v().optional(),pcb_smtpad_id:v().optional()}),Gvt=bA({type:lA("pcb_solder_paste"),shape:lA("rect"),pcb_solder_paste_id:zt("pcb_solder_paste"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),x:ut,y:ut,width:NA(),height:NA(),layer:br,pcb_component_id:v().optional(),pcb_smtpad_id:v().optional()}),Fvt=bA({type:lA("pcb_solder_paste"),shape:lA("pill"),pcb_solder_paste_id:zt("pcb_solder_paste"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),x:ut,y:ut,width:NA(),height:NA(),radius:NA(),layer:br,pcb_component_id:v().optional(),pcb_smtpad_id:v().optional()}),_vt=bA({type:lA("pcb_solder_paste"),shape:lA("rotated_rect"),pcb_solder_paste_id:zt("pcb_solder_paste"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),x:ut,y:ut,width:NA(),height:NA(),ccw_rotation:ut,layer:br,pcb_component_id:v().optional(),pcb_smtpad_id:v().optional()}),Rvt=bA({type:lA("pcb_solder_paste"),shape:lA("oval"),pcb_solder_paste_id:zt("pcb_solder_paste"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),x:ut,y:ut,width:NA(),height:NA(),layer:br,pcb_component_id:v().optional(),pcb_smtpad_id:v().optional()}),SAe=Wt([kvt,Gvt,Fvt,_vt,Rvt]).describe("Defines solderpaste on the PCB"),bAe=bA({type:lA("pcb_text"),pcb_text_id:zt("pcb_text"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),text:v(),center:So,layer:br,width:qi,height:qi,lines:NA(),align:Ze(["bottom-left"])}).describe("Defines text on the PCB"),xAe=bA({route_type:lA("wire"),x:ut,y:ut,width:ut,start_pcb_port_id:v().optional(),end_pcb_port_id:v().optional(),layer:br}),kAe=bA({route_type:lA("via"),x:ut,y:ut,hole_diameter:ut.optional(),outer_diameter:ut.optional(),from_layer:v(),to_layer:v()}),GAe=Wt([xAe,kAe]),FAe=bA({type:lA("pcb_trace"),source_trace_id:v().optional(),pcb_component_id:v().optional(),pcb_trace_id:zt("pcb_trace"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),route_thickness_mode:Ze(["constant","interpolated"]).default("constant").optional(),route_order_index:NA().optional(),should_round_corners:te().optional(),trace_length:NA().optional(),highlight_color:v().optional(),route:fe(GAe)}).describe("Defines a trace on the PCB"),_Ae=bA({type:lA("pcb_trace_error"),pcb_trace_error_id:zt("pcb_trace_error"),error_type:lA("pcb_trace_error").default("pcb_trace_error"),message:v(),center:So.optional(),pcb_trace_id:v(),source_trace_id:v(),pcb_component_ids:fe(v()),pcb_port_ids:fe(v()),subcircuit_id:v().optional()}).describe("Defines a trace error on the PCB"),RAe=bA({type:lA("pcb_trace_missing_error"),pcb_trace_missing_error_id:zt("pcb_trace_missing_error"),error_type:lA("pcb_trace_missing_error").default("pcb_trace_missing_error"),message:v(),center:So.optional(),source_trace_id:v(),pcb_component_ids:fe(v()),pcb_port_ids:fe(v()),subcircuit_id:v().optional()}).describe("Defines an error when a source trace has no corresponding PCB trace"),NAe=bA({type:lA("pcb_port_not_matched_error"),pcb_error_id:zt("pcb_error"),error_type:lA("pcb_port_not_matched_error").default("pcb_port_not_matched_error"),message:v(),pcb_component_ids:fe(v()),subcircuit_id:v().optional()}).describe("Defines a trace error on the PCB where a port is not matched"),MAe=bA({type:lA("pcb_port_not_connected_error"),pcb_port_not_connected_error_id:zt("pcb_port_not_connected_error"),error_type:lA("pcb_port_not_connected_error").default("pcb_port_not_connected_error"),message:v(),pcb_port_ids:fe(v()),pcb_component_ids:fe(v()),subcircuit_id:v().optional()}).describe("Defines an error when a pcb port is not connected to any trace"),vAe=bA({type:lA("pcb_net"),pcb_net_id:zt("pcb_net"),source_net_id:v().optional(),highlight_color:v().optional()}).describe("Defines a net on the PCB"),UAe=bA({type:lA("pcb_via"),pcb_via_id:zt("pcb_via"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),subcircuit_connectivity_map_key:v().optional(),x:ut,y:ut,outer_diameter:ut.default("0.6mm"),hole_diameter:ut.default("0.25mm"),from_layer:br.optional(),to_layer:br.optional(),layers:fe(br),pcb_trace_id:v().optional(),net_is_assignable:te().optional(),net_assigned:te().optional(),is_tented:te().optional()}).describe("Defines a via on the PCB"),LAe=bA({type:lA("pcb_board"),pcb_board_id:zt("pcb_board"),pcb_panel_id:v().optional(),is_subcircuit:te().optional(),subcircuit_id:v().optional(),width:qi.optional(),height:qi.optional(),center:So,display_offset_x:v().optional().describe("How to display the x offset for this board, usually corresponding with how the user specified it"),display_offset_y:v().optional().describe("How to display the y offset for this board, usually corresponding with how the user specified it"),thickness:qi.optional().default(1.4),num_layers:NA().optional().default(4),outline:fe(So).optional(),shape:Ze(["rect","polygon"]).optional(),material:Ze(["fr4","fr1"]).default("fr4"),anchor_position:So.optional(),anchor_alignment:Ux.optional(),position_mode:Ze(["relative_to_panel_anchor","none"]).optional()}).describe("Defines the board outline of the PCB"),HAe=bA({type:lA("pcb_panel"),pcb_panel_id:zt("pcb_panel"),width:qi,height:qi,center:So,covered_with_solder_mask:te().optional().default(!0)}).describe("Defines a PCB panel that can contain multiple boards"),YAe=bA({type:lA("pcb_placement_error"),pcb_placement_error_id:zt("pcb_placement_error"),error_type:lA("pcb_placement_error").default("pcb_placement_error"),message:v(),subcircuit_id:v().optional()}).describe("Defines a placement error on the PCB"),JAe=bA({type:lA("pcb_trace_hint"),pcb_trace_hint_id:zt("pcb_trace_hint"),pcb_port_id:v(),pcb_component_id:v(),route:fe(CAe),subcircuit_id:v().optional()}).describe("A hint that can be used during generation of a PCB trace"),KAe=bA({type:lA("pcb_silkscreen_line"),pcb_silkscreen_line_id:zt("pcb_silkscreen_line"),pcb_component_id:v(),pcb_group_id:v().optional(),subcircuit_id:v().optional(),stroke_width:ut.default("0.1mm"),x1:ut,y1:ut,x2:ut,y2:ut,layer:Dm}).describe("Defines a silkscreen line on the PCB"),TAe=bA({type:lA("pcb_silkscreen_path"),pcb_silkscreen_path_id:zt("pcb_silkscreen_path"),pcb_component_id:v(),pcb_group_id:v().optional(),subcircuit_id:v().optional(),layer:Dm,route:fe(So),stroke_width:qi}).describe("Defines a silkscreen path on the PCB"),qAe=bA({type:lA("pcb_silkscreen_text"),pcb_silkscreen_text_id:zt("pcb_silkscreen_text"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),font:lA("tscircuit2024").default("tscircuit2024"),font_size:ut.default("0.2mm"),pcb_component_id:v(),text:v(),is_knockout:te().default(!1).optional(),knockout_padding:bA({left:qi,top:qi,bottom:qi,right:qi}).default({left:"0.2mm",top:"0.2mm",bottom:"0.2mm",right:"0.2mm"}).optional(),ccw_rotation:NA().optional(),layer:br,is_mirrored:te().default(!1).optional(),anchor_position:So.default({x:0,y:0}),anchor_alignment:Ux.default("center")}).describe("Defines silkscreen text on the PCB"),PAe=bA({type:lA("pcb_copper_text"),pcb_copper_text_id:zt("pcb_copper_text"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),font:lA("tscircuit2024").default("tscircuit2024"),font_size:ut.default("0.2mm"),pcb_component_id:v(),text:v(),is_knockout:te().default(!1).optional(),knockout_padding:bA({left:qi,top:qi,bottom:qi,right:qi}).default({left:"0.2mm",top:"0.2mm",bottom:"0.2mm",right:"0.2mm"}).optional(),ccw_rotation:NA().optional(),layer:br,is_mirrored:te().default(!1).optional(),anchor_position:So.default({x:0,y:0}),anchor_alignment:Ux.default("center")}).describe("Defines copper text on the PCB"),OAe=bA({type:lA("pcb_silkscreen_rect"),pcb_silkscreen_rect_id:zt("pcb_silkscreen_rect"),pcb_component_id:v(),pcb_group_id:v().optional(),subcircuit_id:v().optional(),center:So,width:qi,height:qi,layer:br,stroke_width:qi.default("1mm"),corner_radius:qi.optional(),is_filled:te().default(!0).optional(),has_stroke:te().optional(),is_stroke_dashed:te().optional()}).describe("Defines a silkscreen rect on the PCB"),WAe=bA({type:lA("pcb_silkscreen_circle"),pcb_silkscreen_circle_id:zt("pcb_silkscreen_circle"),pcb_component_id:v(),pcb_group_id:v().optional(),subcircuit_id:v().optional(),center:So,radius:qi,layer:Dm,stroke_width:qi.default("1mm")}).describe("Defines a silkscreen circle on the PCB"),ZAe=bA({type:lA("pcb_silkscreen_oval"),pcb_silkscreen_oval_id:zt("pcb_silkscreen_oval"),pcb_component_id:v(),pcb_group_id:v().optional(),subcircuit_id:v().optional(),center:So,radius_x:ut,radius_y:ut,layer:Dm}).describe("Defines a silkscreen oval on the PCB"),VAe=bA({type:lA("pcb_silkscreen_pill"),pcb_silkscreen_pill_id:zt("pcb_silkscreen_pill"),pcb_component_id:v(),pcb_group_id:v().optional(),subcircuit_id:v().optional(),center:So,width:qi,height:qi,layer:br}).describe("Defines a silkscreen pill on the PCB"),jAe=bA({type:lA("pcb_fabrication_note_text"),pcb_fabrication_note_text_id:zt("pcb_fabrication_note_text"),subcircuit_id:v().optional(),pcb_group_id:v().optional(),font:lA("tscircuit2024").default("tscircuit2024"),font_size:ut.default("1mm"),pcb_component_id:v(),text:v(),layer:Dm,anchor_position:So.default({x:0,y:0}),anchor_alignment:Ze(["center","top_left","top_right","bottom_left","bottom_right"]).default("center"),color:v().optional()}).describe("Defines a fabrication note in text on the PCB, useful for leaving notes for assemblers or fabricators"),zAe=bA({type:lA("pcb_fabrication_note_path"),pcb_fabrication_note_path_id:zt("pcb_fabrication_note_path"),pcb_component_id:v(),subcircuit_id:v().optional(),layer:br,route:fe(So),stroke_width:qi,color:v().optional()}).describe("Defines a fabrication path on the PCB for fabricators or assemblers"),XAe=bA({type:lA("pcb_fabrication_note_rect"),pcb_fabrication_note_rect_id:zt("pcb_fabrication_note_rect"),pcb_component_id:v(),pcb_group_id:v().optional(),subcircuit_id:v().optional(),center:So,width:qi,height:qi,layer:Dm,stroke_width:qi.default("0.1mm"),corner_radius:qi.optional(),is_filled:te().optional(),has_stroke:te().optional(),is_stroke_dashed:te().optional(),color:v().optional()}).describe("Defines a fabrication note rectangle on the PCB"),$Ae=bA({type:lA("pcb_fabrication_note_dimension"),pcb_fabrication_note_dimension_id:zt("pcb_fabrication_note_dimension"),pcb_component_id:v(),pcb_group_id:v().optional(),subcircuit_id:v().optional(),layer:Dm,from:So,to:So,text:v().optional(),text_ccw_rotation:NA().optional(),offset:qi.optional(),offset_distance:qi.optional(),offset_direction:bA({x:NA(),y:NA()}).optional(),font:lA("tscircuit2024").default("tscircuit2024"),font_size:qi.default("1mm"),color:v().optional(),arrow_size:qi.default("1mm")}).describe("Defines a measurement annotation within PCB fabrication notes"),Aee=bA({type:lA("pcb_note_text"),pcb_note_text_id:zt("pcb_note_text"),pcb_component_id:v().optional(),pcb_group_id:v().optional(),subcircuit_id:v().optional(),name:v().optional(),font:lA("tscircuit2024").default("tscircuit2024"),font_size:ut.default("1mm"),text:v().optional(),anchor_position:So.default({x:0,y:0}),anchor_alignment:Ze(["center","top_left","top_right","bottom_left","bottom_right"]).default("center"),color:v().optional()}).describe("Defines a documentation note in text on the PCB"),eee=bA({type:lA("pcb_note_rect"),pcb_note_rect_id:zt("pcb_note_rect"),pcb_component_id:v().optional(),pcb_group_id:v().optional(),subcircuit_id:v().optional(),name:v().optional(),text:v().optional(),center:So,width:qi,height:qi,stroke_width:qi.default("0.1mm"),corner_radius:qi.optional(),is_filled:te().optional(),has_stroke:te().optional(),is_stroke_dashed:te().optional(),color:v().optional()}).describe("Defines a rectangular documentation note on the PCB"),tee=bA({type:lA("pcb_note_path"),pcb_note_path_id:zt("pcb_note_path"),pcb_component_id:v().optional(),pcb_group_id:v().optional(),subcircuit_id:v().optional(),name:v().optional(),text:v().optional(),route:fe(So),stroke_width:qi.default("0.1mm"),color:v().optional()}).describe("Defines a polyline documentation note on the PCB"),iee=bA({type:lA("pcb_note_line"),pcb_note_line_id:zt("pcb_note_line"),pcb_component_id:v().optional(),pcb_group_id:v().optional(),subcircuit_id:v().optional(),name:v().optional(),text:v().optional(),x1:ut,y1:ut,x2:ut,y2:ut,stroke_width:ut.default("0.1mm"),color:v().optional(),is_dashed:te().optional()}).describe("Defines a straight documentation note line on the PCB"),oee=bA({type:lA("pcb_note_dimension"),pcb_note_dimension_id:zt("pcb_note_dimension"),pcb_component_id:v().optional(),pcb_group_id:v().optional(),subcircuit_id:v().optional(),name:v().optional(),from:So,to:So,text:v().optional(),text_ccw_rotation:NA().optional(),offset_distance:qi.optional(),offset_direction:bA({x:NA(),y:NA()}).optional(),font:lA("tscircuit2024").default("tscircuit2024"),font_size:qi.default("1mm"),color:v().optional(),arrow_size:qi.default("1mm")}).describe("Defines a measurement annotation within PCB documentation notes"),nee=bA({type:lA("pcb_footprint_overlap_error"),pcb_error_id:zt("pcb_error"),error_type:lA("pcb_footprint_overlap_error").default("pcb_footprint_overlap_error"),message:v(),pcb_smtpad_ids:fe(v()).optional(),pcb_plated_hole_ids:fe(v()).optional(),pcb_hole_ids:fe(v()).optional(),pcb_keepout_ids:fe(v()).optional()}).describe("Error emitted when a pcb footprint overlaps with another element"),see=bA({type:lA("pcb_keepout"),shape:lA("rect"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),center:So,width:ut,height:ut,pcb_keepout_id:v(),layers:fe(v()),description:v().optional()}).or(bA({type:lA("pcb_keepout"),shape:lA("circle"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),center:So,radius:ut,pcb_keepout_id:v(),layers:fe(v()),description:v().optional()})),v8=bA({type:lA("pcb_cutout"),pcb_cutout_id:zt("pcb_cutout"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),pcb_board_id:v().optional(),pcb_panel_id:v().optional()}),ree=v8.extend({shape:lA("rect"),center:So,width:qi,height:qi,rotation:bd.optional(),corner_radius:qi.optional()}),aee=v8.extend({shape:lA("circle"),center:So,radius:qi}),gee=v8.extend({shape:lA("polygon"),points:fe(So)}),Iee=v8.extend({shape:lA("path"),route:fe(So),slot_width:qi,slot_length:qi.optional(),space_between_slots:qi.optional(),slot_corner_radius:qi.optional()}),cee=rE("shape",[ree,aee,gee,Iee]).describe("Defines a cutout on the PCB, removing board material."),Bee=bA({type:lA("pcb_missing_footprint_error"),pcb_missing_footprint_error_id:zt("pcb_missing_footprint_error"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),error_type:lA("pcb_missing_footprint_error").default("pcb_missing_footprint_error"),source_component_id:v(),message:v()}).describe("Defines a missing footprint error on the PCB"),Cee=bA({type:lA("external_footprint_load_error"),external_footprint_load_error_id:zt("external_footprint_load_error"),pcb_component_id:v(),source_component_id:v(),pcb_group_id:v().optional(),subcircuit_id:v().optional(),footprinter_string:v().optional(),error_type:lA("external_footprint_load_error").default("external_footprint_load_error"),message:v()}).describe("Defines an error when an external footprint fails to load"),lee=bA({type:lA("circuit_json_footprint_load_error"),circuit_json_footprint_load_error_id:zt("circuit_json_footprint_load_error"),pcb_component_id:v(),source_component_id:v(),pcb_group_id:v().optional(),subcircuit_id:v().optional(),error_type:lA("circuit_json_footprint_load_error").default("circuit_json_footprint_load_error"),message:v(),circuit_json:fe(Yg()).optional()}).describe("Defines an error when a circuit JSON footprint fails to load"),Qee=bA({type:lA("pcb_group"),pcb_group_id:zt("pcb_group"),source_group_id:v(),is_subcircuit:te().optional(),subcircuit_id:v().optional(),width:qi.optional(),height:qi.optional(),center:So,display_offset_x:v().optional().describe("How to display the x offset for this group, usually corresponding with how the user specified it"),display_offset_y:v().optional().describe("How to display the y offset for this group, usually corresponding with how the user specified it"),outline:fe(So).optional(),anchor_position:So.optional(),anchor_alignment:Ux.default("center"),position_mode:Ze(["packed","relative_to_group_anchor","none"]).optional(),positioned_relative_to_pcb_group_id:v().optional(),positioned_relative_to_pcb_board_id:v().optional(),pcb_component_ids:fe(v()),child_layout_mode:Ze(["packed","none"]).optional(),name:v().optional(),description:v().optional(),layout_mode:v().optional(),autorouter_configuration:bA({trace_clearance:qi}).optional(),autorouter_used_string:v().optional()}).describe("Defines a group of components on the PCB"),Eee=bA({type:lA("pcb_autorouting_error"),pcb_error_id:zt("pcb_autorouting_error"),error_type:lA("pcb_autorouting_error").default("pcb_autorouting_error"),message:v(),subcircuit_id:v().optional()}).describe("The autorouting has failed to route a portion of the board"),hee=bA({type:lA("pcb_manual_edit_conflict_warning"),pcb_manual_edit_conflict_warning_id:zt("pcb_manual_edit_conflict_warning"),warning_type:lA("pcb_manual_edit_conflict_warning").default("pcb_manual_edit_conflict_warning"),message:v(),pcb_component_id:v(),pcb_group_id:v().optional(),subcircuit_id:v().optional(),source_component_id:v()}).describe("Warning emitted when a component has both manual placement and explicit pcbX/pcbY coordinates"),uee=bA({type:lA("pcb_breakout_point"),pcb_breakout_point_id:zt("pcb_breakout_point"),pcb_group_id:v(),subcircuit_id:v().optional(),source_trace_id:v().optional(),source_port_id:v().optional(),source_net_id:v().optional(),x:ut,y:ut}).describe("Defines a routing target within a pcb_group for a source_trace or source_net"),dee=bA({type:lA("pcb_ground_plane"),pcb_ground_plane_id:zt("pcb_ground_plane"),source_pcb_ground_plane_id:v(),source_net_id:v(),pcb_group_id:v().optional(),subcircuit_id:v().optional()}).describe("Defines a ground plane on the PCB"),pee=bA({type:lA("pcb_ground_plane_region"),pcb_ground_plane_region_id:zt("pcb_ground_plane_region"),pcb_ground_plane_id:v(),pcb_group_id:v().optional(),subcircuit_id:v().optional(),layer:br,points:fe(So)}).describe("Defines a polygon region of a ground plane"),fee=bA({type:lA("pcb_thermal_spoke"),pcb_thermal_spoke_id:zt("pcb_thermal_spoke"),pcb_ground_plane_id:v(),shape:v(),spoke_count:NA(),spoke_thickness:ut,spoke_inner_diameter:ut,spoke_outer_diameter:ut,pcb_plated_hole_id:v().optional(),subcircuit_id:v().optional()}).describe("Pattern for connecting a ground plane to a plated hole"),qQA=bA({type:lA("pcb_copper_pour"),pcb_copper_pour_id:zt("pcb_copper_pour"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),layer:br,source_net_id:v().optional(),covered_with_solder_mask:te().optional().default(!0)}),yee=qQA.extend({shape:lA("rect"),center:So,width:qi,height:qi,rotation:bd.optional()}),mee=qQA.extend({shape:lA("brep"),brep_shape:cAe}),wee=qQA.extend({shape:lA("polygon"),points:fe(So)}),Dee=rE("shape",[yee,mee,wee]).describe("Defines a copper pour on the PCB."),See=bA({type:lA("pcb_component_outside_board_error"),pcb_component_outside_board_error_id:zt("pcb_component_outside_board_error"),error_type:lA("pcb_component_outside_board_error").default("pcb_component_outside_board_error"),message:v(),pcb_component_id:v(),pcb_board_id:v(),component_center:So,component_bounds:bA({min_x:NA(),max_x:NA(),min_y:NA(),max_y:NA()}),subcircuit_id:v().optional(),source_component_id:v().optional()}).describe("Error emitted when a PCB component is placed outside the board boundaries"),bee=bA({type:lA("pcb_component_invalid_layer_error"),pcb_component_invalid_layer_error_id:zt("pcb_component_invalid_layer_error"),error_type:lA("pcb_component_invalid_layer_error").default("pcb_component_invalid_layer_error"),message:v(),pcb_component_id:v().optional(),source_component_id:v(),layer:br,subcircuit_id:v().optional()}).describe("Error emitted when a component is placed on an invalid layer (components can only be on 'top' or 'bottom' layers)"),xee=bA({type:lA("pcb_via_clearance_error"),pcb_error_id:zt("pcb_error"),error_type:lA("pcb_via_clearance_error").default("pcb_via_clearance_error"),message:v(),pcb_via_ids:fe(v()).min(2),minimum_clearance:ut.optional(),actual_clearance:ut.optional(),pcb_center:bA({x:NA().optional(),y:NA().optional()}).optional(),subcircuit_id:v().optional()}).describe("Error emitted when vias are closer than the allowed clearance"),kee=bA({type:lA("pcb_courtyard_rect"),pcb_courtyard_rect_id:zt("pcb_courtyard_rect"),pcb_component_id:v(),pcb_group_id:v().optional(),subcircuit_id:v().optional(),center:So,width:qi,height:qi,layer:Dm,color:v().optional()}).describe("Defines a courtyard rectangle on the PCB"),Gee=bA({type:lA("pcb_courtyard_outline"),pcb_courtyard_outline_id:zt("pcb_courtyard_outline"),pcb_component_id:v(),pcb_group_id:v().optional(),subcircuit_id:v().optional(),layer:Dm,outline:fe(So).min(2),stroke_width:qi.default("0.1mm"),is_closed:te().optional(),is_stroke_dashed:te().optional(),color:v().optional()}).describe("Defines a courtyard outline on the PCB"),Fee=bA({type:lA("pcb_courtyard_polygon"),pcb_courtyard_polygon_id:zt("pcb_courtyard_polygon"),pcb_component_id:v(),pcb_group_id:v().optional(),subcircuit_id:v().optional(),layer:Dm,points:fe(So).min(3),color:v().optional()}).describe("Defines a courtyard polygon on the PCB"),_ee=bA({type:lA("cad_component"),cad_component_id:v(),pcb_component_id:v(),source_component_id:v(),position:XL,rotation:XL.optional(),size:XL.optional(),layer:br.optional(),subcircuit_id:v().optional(),footprinter_string:v().optional(),model_obj_url:v().optional(),model_stl_url:v().optional(),model_3mf_url:v().optional(),model_gltf_url:v().optional(),model_glb_url:v().optional(),model_step_url:v().optional(),model_wrl_url:v().optional(),model_unit_to_mm_scale_factor:NA().optional(),model_jscad:Yg().optional(),show_as_translucent_model:te().optional()}).describe("Defines a component on the PCB"),PQA=Ze(["sinewave","square","triangle","sawtooth"]),Nvt=Wt([v(),NA()]).transform(t=>typeof t=="string"?t.endsWith("%")?parseFloat(t.slice(0,-1))/100:parseFloat(t):t).pipe(NA().min(0,"Duty cycle must be non-negative").max(1,"Duty cycle cannot be greater than 100%")),Ree=bA({type:lA("simulation_voltage_source"),simulation_voltage_source_id:zt("simulation_voltage_source"),is_dc_source:lA(!0).optional().default(!0),positive_source_port_id:v().optional(),negative_source_port_id:v().optional(),positive_source_net_id:v().optional(),negative_source_net_id:v().optional(),voltage:tF}).describe("Defines a DC voltage source for simulation"),Nee=bA({type:lA("simulation_voltage_source"),simulation_voltage_source_id:zt("simulation_voltage_source"),is_dc_source:lA(!1),terminal1_source_port_id:v().optional(),terminal2_source_port_id:v().optional(),terminal1_source_net_id:v().optional(),terminal2_source_net_id:v().optional(),voltage:tF.optional(),frequency:jL.optional(),peak_to_peak_voltage:tF.optional(),wave_shape:PQA.optional(),phase:bd.optional(),duty_cycle:Nvt.optional()}).describe("Defines an AC voltage source for simulation"),Mee=Wt([Ree,Nee]).describe("Defines a voltage source for simulation"),Mvt=Wt([v(),NA()]).transform(t=>typeof t=="string"?t.endsWith("%")?parseFloat(t.slice(0,-1))/100:parseFloat(t):t).pipe(NA().min(0,"Duty cycle must be non-negative").max(1,"Duty cycle cannot be greater than 100%")),vee=bA({type:lA("simulation_current_source"),simulation_current_source_id:zt("simulation_current_source"),is_dc_source:lA(!0).optional().default(!0),positive_source_port_id:v().optional(),negative_source_port_id:v().optional(),positive_source_net_id:v().optional(),negative_source_net_id:v().optional(),current:R8}).describe("Defines a DC current source for simulation"),Uee=bA({type:lA("simulation_current_source"),simulation_current_source_id:zt("simulation_current_source"),is_dc_source:lA(!1),terminal1_source_port_id:v().optional(),terminal2_source_port_id:v().optional(),terminal1_source_net_id:v().optional(),terminal2_source_net_id:v().optional(),current:R8.optional(),frequency:jL.optional(),peak_to_peak_current:R8.optional(),wave_shape:PQA.optional(),phase:bd.optional(),duty_cycle:Mvt.optional()}).describe("Defines an AC current source for simulation"),Lee=Wt([vee,Uee]).describe("Defines a current source for simulation"),Hee=Wt([lA("spice_dc_sweep"),lA("spice_dc_operating_point"),lA("spice_transient_analysis"),lA("spice_ac_analysis")]),Yee=bA({type:lA("simulation_experiment"),simulation_experiment_id:zt("simulation_experiment"),name:v(),experiment_type:Hee,time_per_step:zL.optional(),start_time_ms:iF.optional(),end_time_ms:iF.optional()}).describe("Defines a simulation experiment configuration"),Jee=bA({type:lA("simulation_transient_voltage_graph"),simulation_transient_voltage_graph_id:zt("simulation_transient_voltage_graph"),simulation_experiment_id:v(),timestamps_ms:fe(NA()).optional(),voltage_levels:fe(NA()),source_component_id:v().optional(),subcircuit_connectivity_map_key:v().optional(),time_per_step:zL,start_time_ms:iF,end_time_ms:iF,name:v().optional(),color:v().optional()}).describe("Stores voltage measurements over time for a simulation"),Kee=bA({type:lA("simulation_switch"),simulation_switch_id:zt("simulation_switch"),source_component_id:v().optional(),closes_at:iF.optional(),opens_at:iF.optional(),starts_closed:te().optional(),switching_frequency:jL.optional()}).describe("Defines a switch for simulation timing control"),Tee=bA({type:lA("simulation_voltage_probe"),simulation_voltage_probe_id:zt("simulation_voltage_probe"),source_component_id:v().optional(),name:v().optional(),signal_input_source_port_id:v().optional(),signal_input_source_net_id:v().optional(),reference_input_source_port_id:v().optional(),reference_input_source_net_id:v().optional(),subcircuit_id:v().optional(),color:v().optional()}).describe("Defines a voltage probe for simulation. If a reference input is not provided, it measures against ground. If a reference input is provided, it measures the differential voltage between two points.").superRefine((t,A)=>{if(t.reference_input_source_port_id||t.reference_input_source_net_id){const i=!!t.signal_input_source_port_id||!!t.reference_input_source_port_id,o=!!t.signal_input_source_net_id||!!t.reference_input_source_net_id;i&&o?A.addIssue({code:Zt.custom,message:"Cannot mix port and net connections in a differential probe."}):i?(!t.signal_input_source_port_id||!t.reference_input_source_port_id)&&A.addIssue({code:Zt.custom,message:"Differential port probe requires both signal_input_source_port_id and reference_input_source_port_id."}):o&&(!t.signal_input_source_net_id||!t.reference_input_source_net_id)&&A.addIssue({code:Zt.custom,message:"Differential net probe requires both signal_input_source_net_id and reference_input_source_net_id."})}else!!t.signal_input_source_port_id==!!t.signal_input_source_net_id&&A.addIssue({code:Zt.custom,message:"A voltage probe must have exactly one of signal_input_source_port_id or signal_input_source_net_id."})}),qee=bA({type:lA("simulation_unknown_experiment_error"),simulation_unknown_experiment_error_id:zt("simulation_unknown_experiment_error"),error_type:lA("simulation_unknown_experiment_error").default("simulation_unknown_experiment_error"),message:v(),simulation_experiment_id:v().optional(),subcircuit_id:v().optional()}).describe("An unknown error occurred during the simulation experiment."),Pee=Wt([x$A,S$A,b$A,D$A,G$A,k$A,SQA,mQA,N8,DQA,wQA,bQA,xQA,kQA,_QA,RQA,NQA,LQA,MQA,vQA,UQA,FQA,GQA,_$A,N$A,F$A,HQA,YQA,JQA,M$A,v$A,lAe,fAe,Bee,Cee,lee,hee,yAe,see,mAe,vAe,bAe,FAe,UAe,DAe,SAe,LAe,HAe,Qee,JAe,KAe,TAe,qAe,VAe,PAe,OAe,WAe,ZAe,_Ae,RAe,YAe,NAe,MAe,xee,zAe,jAe,XAe,$Ae,Aee,eee,tee,iee,oee,Eee,nee,uee,cee,dee,pee,fee,Dee,See,bee,kee,Gee,Fee,U$A,V$A,q$A,P$A,O$A,W$A,T$A,j$A,Z$A,L$A,X$A,$$A,z$A,iAe,oAe,nAe,sAe,gAe,rAe,aAe,_ee,Mee,Lee,Yee,Jee,Kee,Tee,qee]),OQA=Pee;const Oee=Object.freeze(Object.defineProperty({__proto__:null,all_layers:R$A,any_circuit_element:Pee,any_soup_element:OQA,any_source_component:D$A,battery_capacity:Q$A,brep_shape:cAe,cad_component:_ee,capacitance:fQA,circuit_json_footprint_load_error:lee,current:R8,distance:ut,duration_ms:zL,experiment_type:Hee,external_footprint_load_error:Cee,frequency:jL,getZodPrefixedIdWithDefault:zt,inductance:C$A,layer_ref:br,layer_string:KQA,length:qi,ms:iF,ninePointAnchor:Ux,pcb_autorouting_error:Eee,pcb_board:LAe,pcb_breakout_point:uee,pcb_component:lAe,pcb_component_invalid_layer_error:bee,pcb_component_outside_board_error:See,pcb_copper_pour:Dee,pcb_copper_pour_brep:mee,pcb_copper_pour_polygon:wee,pcb_copper_pour_rect:yee,pcb_copper_text:PAe,pcb_courtyard_outline:Gee,pcb_courtyard_polygon:Fee,pcb_courtyard_rect:kee,pcb_cutout:cee,pcb_cutout_circle:aee,pcb_cutout_path:Iee,pcb_cutout_polygon:gee,pcb_cutout_rect:ree,pcb_fabrication_note_dimension:$Ae,pcb_fabrication_note_path:zAe,pcb_fabrication_note_rect:XAe,pcb_fabrication_note_text:jAe,pcb_footprint_overlap_error:nee,pcb_ground_plane:dee,pcb_ground_plane_region:pee,pcb_group:Qee,pcb_hole:fAe,pcb_hole_circle_or_square_shape:lvt,pcb_hole_circle_shape:Bvt,pcb_hole_oval_shape:Qvt,pcb_hole_pill_shape:Evt,pcb_hole_rect_shape:Cvt,pcb_hole_rotated_pill_shape:hvt,pcb_keepout:see,pcb_manual_edit_conflict_warning:hee,pcb_missing_footprint_error:Bee,pcb_net:vAe,pcb_note_dimension:oee,pcb_note_line:iee,pcb_note_path:tee,pcb_note_rect:eee,pcb_note_text:Aee,pcb_panel:HAe,pcb_placement_error:YAe,pcb_plated_hole:yAe,pcb_port:mAe,pcb_port_not_connected_error:MAe,pcb_port_not_matched_error:NAe,pcb_route_hint:BAe,pcb_route_hints:cvt,pcb_silkscreen_circle:WAe,pcb_silkscreen_line:KAe,pcb_silkscreen_oval:ZAe,pcb_silkscreen_path:TAe,pcb_silkscreen_pill:VAe,pcb_silkscreen_rect:OAe,pcb_silkscreen_text:qAe,pcb_smtpad:DAe,pcb_smtpad_pill:wAe,pcb_solder_paste:SAe,pcb_text:bAe,pcb_thermal_spoke:fee,pcb_trace:FAe,pcb_trace_error:_Ae,pcb_trace_hint:JAe,pcb_trace_missing_error:RAe,pcb_trace_route_point:GAe,pcb_trace_route_point_via:kAe,pcb_trace_route_point_wire:xAe,pcb_via:UAe,pcb_via_clearance_error:xee,point:So,point3:XL,point_with_bulge:IAe,port_arrangement:K$A,position:svt,position3:rvt,resistance:_8,ring:TQA,rotation:bd,route_hint_point:CAe,schematic_arc:W$A,schematic_box:U$A,schematic_circle:O$A,schematic_component:T$A,schematic_component_port_arrangement_by_sides:J$A,schematic_component_port_arrangement_by_size:Y$A,schematic_debug_line:eAe,schematic_debug_object:iAe,schematic_debug_object_base:M8,schematic_debug_point:tAe,schematic_debug_rect:AAe,schematic_error:X$A,schematic_group:sAe,schematic_layout_error:$$A,schematic_line:q$A,schematic_manual_edit_conflict_warning:nAe,schematic_net_label:z$A,schematic_path:L$A,schematic_pin_styles:H$A,schematic_port:j$A,schematic_rect:P$A,schematic_sheet:gAe,schematic_table:rAe,schematic_table_cell:aAe,schematic_text:V$A,schematic_trace:Z$A,schematic_voltage_probe:oAe,simulation_ac_current_source:Uee,simulation_ac_voltage_source:Nee,simulation_current_source:Lee,simulation_dc_current_source:vee,simulation_dc_voltage_source:Ree,simulation_experiment:Yee,simulation_switch:Kee,simulation_transient_voltage_graph:Jee,simulation_unknown_experiment_error:qee,simulation_voltage_probe:Tee,simulation_voltage_source:Mee,size:yQA,source_board:F$A,source_component_base:DB,source_component_internal_connection:b$A,source_failed_to_create_component_error:f$A,source_group:k$A,source_interconnect:w$A,source_manually_placed_via:N$A,source_missing_property_error:p$A,source_net:G$A,source_pcb_ground_plane:_$A,source_pin_missing_trace_warning:JQA,source_pin_must_be_connected_error:M$A,source_port:S$A,source_project_metadata:HQA,source_property_ignored_warning:y$A,source_simple_battery:xQA,source_simple_capacitor:mQA,source_simple_chip:SQA,source_simple_crystal:d$A,source_simple_diode:N8,source_simple_fiducial:h$A,source_simple_ground:u$A,source_simple_inductor:kQA,source_simple_led:DQA,source_simple_mosfet:UQA,source_simple_pin_header:_QA,source_simple_pinout:RQA,source_simple_potentiometer:FQA,source_simple_power_source:bQA,source_simple_push_button:GQA,source_simple_resistor:wQA,source_simple_resonator:NQA,source_simple_switch:LQA,source_simple_test_point:vQA,source_simple_transistor:MQA,source_simple_voltage_probe:m$A,source_trace:x$A,source_trace_not_connected_error:YQA,supplier_name:E$A,time:nvt,timestamp:l$A,unknown_error_finding_part:v$A,visible_layer:Dm,voltage:tF,wave_shape:PQA},Symbol.toStringTag,{value:"Module"})),vvt={},Wee=t=>{let A;const e=new Set,i=(I,c)=>{const B=typeof I=="function"?I(A):I;if(!Object.is(B,A)){const C=A;A=c??(typeof B!="object"||B===null)?B:Object.assign({},A,B),e.forEach(l=>l(A,C))}},o=()=>A,a={setState:i,getState:o,getInitialState:()=>g,subscribe:I=>(e.add(I),()=>e.delete(I)),destroy:()=>{(vvt?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),e.clear()}},g=A=t(i,o,a);return a},Zee=t=>t?Wee(t):Wee;var U8={exports:{}},WQA={},L8={exports:{}},ZQA={};var Vee;function Uvt(){if(Vee)return ZQA;Vee=1;var t=Uf();function A(c,B){return c===B&&(c!==0||1/c===1/B)||c!==c&&B!==B}var e=typeof Object.is=="function"?Object.is:A,i=t.useState,o=t.useEffect,n=t.useLayoutEffect,s=t.useDebugValue;function r(c,B){var C=B(),l=i({inst:{value:C,getSnapshot:B}}),Q=l[0].inst,E=l[1];return n(function(){Q.value=C,Q.getSnapshot=B,a(Q)&&E({inst:Q})},[c,C,B]),o(function(){return a(Q)&&E({inst:Q}),c(function(){a(Q)&&E({inst:Q})})},[c]),s(C),C}function a(c){var B=c.getSnapshot;c=c.value;try{var C=B();return!e(c,C)}catch{return!0}}function g(c,B){return B()}var I=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?g:r;return ZQA.useSyncExternalStore=t.useSyncExternalStore!==void 0?t.useSyncExternalStore:I,ZQA}var VQA={},jee;function Lvt(){if(jee)return VQA;jee=1;var t={env:{}};return t.env.NODE_ENV!=="production"&&(function(){function A(l,Q){return l===Q&&(l!==0||1/l===1/Q)||l!==l&&Q!==Q}function e(l,Q){c||n.startTransition===void 0||(c=!0,console.error("You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release."));var E=Q();if(!B){var h=Q();s(E,h)||(console.error("The result of getSnapshot should be cached to avoid an infinite loop"),B=!0)}h=r({inst:{value:E,getSnapshot:Q}});var u=h[0].inst,d=h[1];return g(function(){u.value=E,u.getSnapshot=Q,i(u)&&d({inst:u})},[l,E,Q]),a(function(){return i(u)&&d({inst:u}),l(function(){i(u)&&d({inst:u})})},[l]),I(E),E}function i(l){var Q=l.getSnapshot;l=l.value;try{var E=Q();return!s(l,E)}catch{return!0}}function o(l,Q){return Q()}typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var n=Uf(),s=typeof Object.is=="function"?Object.is:A,r=n.useState,a=n.useEffect,g=n.useLayoutEffect,I=n.useDebugValue,c=!1,B=!1,C=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?o:e;VQA.useSyncExternalStore=n.useSyncExternalStore!==void 0?n.useSyncExternalStore:C,typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())})(),VQA}var zee;function Xee(){if(zee)return L8.exports;zee=1;var t={env:{}};return t.env.NODE_ENV==="production"?L8.exports=Uvt():L8.exports=Lvt(),L8.exports}var $ee;function Hvt(){if($ee)return WQA;$ee=1;var t=Uf(),A=Xee();function e(g,I){return g===I&&(g!==0||1/g===1/I)||g!==g&&I!==I}var i=typeof Object.is=="function"?Object.is:e,o=A.useSyncExternalStore,n=t.useRef,s=t.useEffect,r=t.useMemo,a=t.useDebugValue;return WQA.useSyncExternalStoreWithSelector=function(g,I,c,B,C){var l=n(null);if(l.current===null){var Q={hasValue:!1,value:null};l.current=Q}else Q=l.current;l=r(function(){function h(S){if(!u){if(u=!0,d=S,S=B(S),C!==void 0&&Q.hasValue){var D=Q.value;if(C(D,S))return f=D}return f=S}if(D=f,i(d,S))return D;var x=B(S);return C!==void 0&&C(D,x)?(d=S,D):(d=S,f=x)}var u=!1,d,f,w=c===void 0?null:c;return[function(){return h(I())},w===null?void 0:function(){return h(w())}]},[I,c,B,C]);var E=o(g,l[0],l[1]);return s(function(){Q.hasValue=!0,Q.value=E},[E]),a(E),E},WQA}var jQA={},Ate;function Yvt(){if(Ate)return jQA;Ate=1;var t={env:{}};return t.env.NODE_ENV!=="production"&&(function(){function A(I,c){return I===c&&(I!==0||1/I===1/c)||I!==I&&c!==c}typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var e=Uf(),i=Xee(),o=typeof Object.is=="function"?Object.is:A,n=i.useSyncExternalStore,s=e.useRef,r=e.useEffect,a=e.useMemo,g=e.useDebugValue;jQA.useSyncExternalStoreWithSelector=function(I,c,B,C,l){var Q=s(null);if(Q.current===null){var E={hasValue:!1,value:null};Q.current=E}else E=Q.current;Q=a(function(){function u(D){if(!d){if(d=!0,f=D,D=C(D),l!==void 0&&E.hasValue){var x=E.value;if(l(x,D))return w=x}return w=D}if(x=w,o(f,D))return x;var F=C(D);return l!==void 0&&l(x,F)?(f=D,x):(f=D,w=F)}var d=!1,f,w,S=B===void 0?null:B;return[function(){return u(c())},S===null?void 0:function(){return u(S())}]},[c,B,C,l]);var h=n(I,Q[0],Q[1]);return r(function(){E.hasValue=!0,E.value=h},[h]),g(h),h},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())})(),jQA}var ete;function Jvt(){if(ete)return U8.exports;ete=1;var t={env:{}};return t.env.NODE_ENV==="production"?U8.exports=Hvt():U8.exports=Yvt(),U8.exports}var Kvt=Jvt();const Tvt=_p(Kvt),tte={},{useDebugValue:qvt}=eo,{useSyncExternalStoreWithSelector:Pvt}=Tvt;let ite=!1;const Ovt=t=>t;function ote(t,A=Ovt,e){(tte?"production":void 0)!=="production"&&e&&!ite&&(console.warn("[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937"),ite=!0);const i=Pvt(t.subscribe,t.getState,t.getServerState||t.getInitialState,A,e);return qvt(i),i}const Wvt=t=>{(tte?"production":void 0)!=="production"&&typeof t!="function"&&console.warn("[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.");const A=typeof t=="function"?Zee(t):t,e=(i,o)=>ote(A,i,o);return Object.assign(e,A),e},nte=t=>Wvt,$L=t=>typeof t=="number"&&!isNaN(t),oF=t=>typeof t=="string",i0=t=>typeof t=="function",H8=t=>oF(t)||i0(t)?t:null,zQA=t=>AA.isValidElement(t)||oF(t)||i0(t)||$L(t);function Zvt(t,A,e){e===void 0&&(e=300);const{scrollHeight:i,style:o}=t;requestAnimationFrame(()=>{o.minHeight="initial",o.height=i+"px",o.transition=`all ${e}ms`,requestAnimationFrame(()=>{o.height="0",o.padding="0",o.margin="0",setTimeout(A,e)})})}function Y8(t){let{enter:A,exit:e,appendPosition:i=!1,collapse:o=!0,collapseDuration:n=300}=t;return function(s){let{children:r,position:a,preventExitTransition:g,done:I,nodeRef:c,isIn:B,playToast:C}=s;const l=i?`${A}--${a}`:A,Q=i?`${e}--${a}`:e,E=AA.useRef(0);return AA.useLayoutEffect(()=>{const h=c.current,u=l.split(" "),d=f=>{f.target===c.current&&(C(),h.removeEventListener("animationend",d),h.removeEventListener("animationcancel",d),E.current===0&&f.type!=="animationcancel"&&h.classList.remove(...u))};h.classList.add(...u),h.addEventListener("animationend",d),h.addEventListener("animationcancel",d)},[]),AA.useEffect(()=>{const h=c.current,u=()=>{h.removeEventListener("animationend",u),o?Zvt(h,I,n):I()};B||(g?u():(E.current=1,h.className+=` ${Q}`,h.addEventListener("animationend",u)))},[B]),eo.createElement(eo.Fragment,null,r)}}function ste(t,A){return t!=null?{content:t.content,containerId:t.props.containerId,id:t.props.toastId,theme:t.props.theme,type:t.props.type,data:t.props.data||{},isLoading:t.props.isLoading,icon:t.props.icon,status:A}:{}}const xd=new Map;let AH=[];const XQA=new Set,Vvt=t=>XQA.forEach(A=>A(t)),rte=()=>xd.size>0;function ate(t,A){var e;if(A)return!((e=xd.get(A))==null||!e.isToastActive(t));let i=!1;return xd.forEach(o=>{o.isToastActive(t)&&(i=!0)}),i}function gte(t,A){zQA(t)&&(rte()||AH.push({content:t,options:A}),xd.forEach(e=>{e.buildToast(t,A)}))}function Ite(t,A){xd.forEach(e=>{A!=null&&A!=null&&A.containerId?A?.containerId===e.id&&e.toggle(t,A?.id):e.toggle(t,A?.id)})}function jvt(t){const{subscribe:A,getSnapshot:e,setProps:i}=AA.useRef((function(n){const s=n.containerId||1;return{subscribe(r){const a=(function(I,c,B){let C=1,l=0,Q=[],E=[],h=[],u=c;const d=new Map,f=new Set,w=()=>{h=Array.from(d.values()),f.forEach(x=>x())},S=x=>{E=x==null?[]:E.filter(F=>F!==x),w()},D=x=>{const{toastId:F,onOpen:k,updateId:U,children:N}=x.props,Y=U==null;x.staleId&&d.delete(x.staleId),d.set(F,x),E=[...E,x.props.toastId].filter(q=>q!==x.staleId),w(),B(ste(x,Y?"added":"updated")),Y&&i0(k)&&k(AA.isValidElement(N)&&N.props)};return{id:I,props:u,observe:x=>(f.add(x),()=>f.delete(x)),toggle:(x,F)=>{d.forEach(k=>{F!=null&&F!==k.props.toastId||i0(k.toggle)&&k.toggle(x)})},removeToast:S,toasts:d,clearQueue:()=>{l-=Q.length,Q=[]},buildToast:(x,F)=>{if((sA=>{let{containerId:gA,toastId:pA,updateId:xA}=sA;const _A=gA?gA!==I:I!==1,MA=d.has(pA)&&xA==null;return _A||MA})(F))return;const{toastId:k,updateId:U,data:N,staleId:Y,delay:q}=F,K=()=>{S(k)},O=U==null;O&&l++;const W={...u,style:u.toastStyle,key:C++,...Object.fromEntries(Object.entries(F).filter(sA=>{let[gA,pA]=sA;return pA!=null})),toastId:k,updateId:U,data:N,closeToast:K,isIn:!1,className:H8(F.className||u.toastClassName),bodyClassName:H8(F.bodyClassName||u.bodyClassName),progressClassName:H8(F.progressClassName||u.progressClassName),autoClose:!F.isLoading&&($=F.autoClose,oA=u.autoClose,$===!1||$L($)&&$>0?$:oA),deleteToast(){const sA=d.get(k),{onClose:gA,children:pA}=sA.props;i0(gA)&&gA(AA.isValidElement(pA)&&pA.props),B(ste(sA,"removed")),d.delete(k),l--,l<0&&(l=0),Q.length>0?D(Q.shift()):w()}};var $,oA;W.closeButton=u.closeButton,F.closeButton===!1||zQA(F.closeButton)?W.closeButton=F.closeButton:F.closeButton===!0&&(W.closeButton=!zQA(u.closeButton)||u.closeButton);let IA=x;AA.isValidElement(x)&&!oF(x.type)?IA=AA.cloneElement(x,{closeToast:K,toastProps:W,data:N}):i0(x)&&(IA=x({closeToast:K,toastProps:W,data:N}));const tA={content:IA,props:W,staleId:Y};u.limit&&u.limit>0&&l>u.limit&&O?Q.push(tA):$L(q)?setTimeout(()=>{D(tA)},q):D(tA)},setProps(x){u=x},setToggle:(x,F)=>{d.get(x).toggle=F},isToastActive:x=>E.some(F=>F===x),getSnapshot:()=>h}})(s,n,Vvt);xd.set(s,a);const g=a.observe(r);return AH.forEach(I=>gte(I.content,I.options)),AH=[],()=>{g(),xd.delete(s)}},setProps(r){var a;(a=xd.get(s))==null||a.setProps(r)},getSnapshot(){var r;return(r=xd.get(s))==null?void 0:r.getSnapshot()}}})(t)).current;i(t);const o=AA.useSyncExternalStore(A,e,e);return{getToastToRender:function(n){if(!o)return[];const s=new Map;return t.newestOnTop&&o.reverse(),o.forEach(r=>{const{position:a}=r.props;s.has(a)||s.set(a,[]),s.get(a).push(r)}),Array.from(s,r=>n(r[0],r[1]))},isToastActive:ate,count:o?.length}}function zvt(t){const[A,e]=AA.useState(!1),[i,o]=AA.useState(!1),n=AA.useRef(null),s=AA.useRef({start:0,delta:0,removalDistance:0,canCloseOnClick:!0,canDrag:!1,didMove:!1}).current,{autoClose:r,pauseOnHover:a,closeToast:g,onClick:I,closeOnClick:c}=t;var B,C;function l(){e(!0)}function Q(){e(!1)}function E(d){const f=n.current;s.canDrag&&f&&(s.didMove=!0,A&&Q(),s.delta=t.draggableDirection==="x"?d.clientX-s.start:d.clientY-s.start,s.start!==d.clientX&&(s.canCloseOnClick=!1),f.style.transform=`translate3d(${t.draggableDirection==="x"?`${s.delta}px, var(--y)`:`0, calc(${s.delta}px + var(--y))`},0)`,f.style.opacity=""+(1-Math.abs(s.delta/s.removalDistance)))}function h(){document.removeEventListener("pointermove",E),document.removeEventListener("pointerup",h);const d=n.current;if(s.canDrag&&s.didMove&&d){if(s.canDrag=!1,Math.abs(s.delta)>s.removalDistance)return o(!0),t.closeToast(),void t.collapseAll();d.style.transition="transform 0.2s, opacity 0.2s",d.style.removeProperty("transform"),d.style.removeProperty("opacity")}}(C=xd.get((B={id:t.toastId,containerId:t.containerId,fn:e}).containerId||1))==null||C.setToggle(B.id,B.fn),AA.useEffect(()=>{if(t.pauseOnFocusLoss)return document.hasFocus()||Q(),window.addEventListener("focus",l),window.addEventListener("blur",Q),()=>{window.removeEventListener("focus",l),window.removeEventListener("blur",Q)}},[t.pauseOnFocusLoss]);const u={onPointerDown:function(d){if(t.draggable===!0||t.draggable===d.pointerType){s.didMove=!1,document.addEventListener("pointermove",E),document.addEventListener("pointerup",h);const f=n.current;s.canCloseOnClick=!0,s.canDrag=!0,f.style.transition="none",t.draggableDirection==="x"?(s.start=d.clientX,s.removalDistance=f.offsetWidth*(t.draggablePercent/100)):(s.start=d.clientY,s.removalDistance=f.offsetHeight*(t.draggablePercent===80?1.5*t.draggablePercent:t.draggablePercent)/100)}},onPointerUp:function(d){const{top:f,bottom:w,left:S,right:D}=n.current.getBoundingClientRect();d.nativeEvent.type!=="touchend"&&t.pauseOnHover&&d.clientX>=S&&d.clientX<=D&&d.clientY>=f&&d.clientY<=w?Q():l()}};return r&&a&&(u.onMouseEnter=Q,t.stacked||(u.onMouseLeave=l)),c&&(u.onClick=d=>{I&&I(d),s.canCloseOnClick&&g()}),{playToast:l,pauseToast:Q,isRunning:A,preventExitTransition:i,toastRef:n,eventHandlers:u}}function Xvt(t){let{delay:A,isRunning:e,closeToast:i,type:o="default",hide:n,className:s,style:r,controlledProgress:a,progress:g,rtl:I,isIn:c,theme:B}=t;const C=n||a&&g===0,l={...r,animationDuration:`${A}ms`,animationPlayState:e?"running":"paused"};a&&(l.transform=`scaleX(${g})`);const Q=Py("Toastify__progress-bar",a?"Toastify__progress-bar--controlled":"Toastify__progress-bar--animated",`Toastify__progress-bar-theme--${B}`,`Toastify__progress-bar--${o}`,{"Toastify__progress-bar--rtl":I}),E=i0(s)?s({rtl:I,type:o,defaultClassName:Q}):Py(Q,s),h={[a&&g>=1?"onTransitionEnd":"onAnimationEnd"]:a&&g<1?null:()=>{c&&i()}};return eo.createElement("div",{className:"Toastify__progress-bar--wrp","data-hidden":C},eo.createElement("div",{className:`Toastify__progress-bar--bg Toastify__progress-bar-theme--${B} Toastify__progress-bar--${o}`}),eo.createElement("div",{role:"progressbar","aria-hidden":C?"true":"false","aria-label":"notification timer",className:E,style:l,...h}))}let $vt=1;const cte=()=>""+$vt++;function A1t(t){return t&&(oF(t.toastId)||$L(t.toastId))?t.toastId:cte()}function eH(t,A){return gte(t,A),A.toastId}function J8(t,A){return{...A,type:A&&A.type||t,toastId:A1t(A)}}function K8(t){return(A,e)=>eH(A,J8(t,e))}function Og(t,A){return eH(t,J8("default",A))}Og.loading=(t,A)=>eH(t,J8("default",{isLoading:!0,autoClose:!1,closeOnClick:!1,closeButton:!1,draggable:!1,...A})),Og.promise=function(t,A,e){let i,{pending:o,error:n,success:s}=A;o&&(i=oF(o)?Og.loading(o,e):Og.loading(o.render,{...e,...o}));const r={isLoading:null,autoClose:null,closeOnClick:null,closeButton:null,draggable:null},a=(I,c,B)=>{if(c==null)return void Og.dismiss(i);const C={type:I,...r,...e,data:B},l=oF(c)?{render:c}:c;return i?Og.update(i,{...C,...l}):Og(l.render,{...C,...l}),B},g=i0(t)?t():t;return g.then(I=>a("success",s,I)).catch(I=>a("error",n,I)),g},Og.success=K8("success"),Og.info=K8("info"),Og.error=K8("error"),Og.warning=K8("warning"),Og.warn=Og.warning,Og.dark=(t,A)=>eH(t,J8("default",{theme:"dark",...A})),Og.dismiss=function(t){(function(A){var e;if(rte()){if(A==null||oF(e=A)||$L(e))xd.forEach(i=>{i.removeToast(A)});else if(A&&("containerId"in A||"id"in A)){const i=xd.get(A.containerId);i?i.removeToast(A.id):xd.forEach(o=>{o.removeToast(A.id)})}}else AH=AH.filter(i=>A!=null&&i.options.toastId!==A)})(t)},Og.clearWaitingQueue=function(t){t===void 0&&(t={}),xd.forEach(A=>{!A.props.limit||t.containerId&&A.id!==t.containerId||A.clearQueue()})},Og.isActive=ate,Og.update=function(t,A){A===void 0&&(A={});const e=((i,o)=>{var n;let{containerId:s}=o;return(n=xd.get(s||1))==null?void 0:n.toasts.get(i)})(t,A);if(e){const{props:i,content:o}=e,n={delay:100,...i,...A,toastId:A.toastId||t,updateId:cte()};n.toastId!==t&&(n.staleId=t);const s=n.render||o;delete n.render,eH(s,n)}},Og.done=t=>{Og.update(t,{progress:1})},Og.onChange=function(t){return XQA.add(t),()=>{XQA.delete(t)}},Og.play=t=>Ite(!0,t),Og.pause=t=>Ite(!1,t);const e1t=typeof window<"u"?AA.useLayoutEffect:AA.useEffect,T8=t=>{let{theme:A,type:e,isLoading:i,...o}=t;return eo.createElement("svg",{viewBox:"0 0 24 24",width:"100%",height:"100%",fill:A==="colored"?"currentColor":`var(--toastify-icon-color-${e})`,...o})},$QA={info:function(t){return eo.createElement(T8,{...t},eo.createElement("path",{d:"M12 0a12 12 0 1012 12A12.013 12.013 0 0012 0zm.25 5a1.5 1.5 0 11-1.5 1.5 1.5 1.5 0 011.5-1.5zm2.25 13.5h-4a1 1 0 010-2h.75a.25.25 0 00.25-.25v-4.5a.25.25 0 00-.25-.25h-.75a1 1 0 010-2h1a2 2 0 012 2v4.75a.25.25 0 00.25.25h.75a1 1 0 110 2z"}))},warning:function(t){return eo.createElement(T8,{...t},eo.createElement("path",{d:"M23.32 17.191L15.438 2.184C14.728.833 13.416 0 11.996 0c-1.42 0-2.733.833-3.443 2.184L.533 17.448a4.744 4.744 0 000 4.368C1.243 23.167 2.555 24 3.975 24h16.05C22.22 24 24 22.044 24 19.632c0-.904-.251-1.746-.68-2.44zm-9.622 1.46c0 1.033-.724 1.823-1.698 1.823s-1.698-.79-1.698-1.822v-.043c0-1.028.724-1.822 1.698-1.822s1.698.79 1.698 1.822v.043zm.039-12.285l-.84 8.06c-.057.581-.408.943-.897.943-.49 0-.84-.367-.896-.942l-.84-8.065c-.057-.624.25-1.095.779-1.095h1.91c.528.005.84.476.784 1.1z"}))},success:function(t){return eo.createElement(T8,{...t},eo.createElement("path",{d:"M12 0a12 12 0 1012 12A12.014 12.014 0 0012 0zm6.927 8.2l-6.845 9.289a1.011 1.011 0 01-1.43.188l-4.888-3.908a1 1 0 111.25-1.562l4.076 3.261 6.227-8.451a1 1 0 111.61 1.183z"}))},error:function(t){return eo.createElement(T8,{...t},eo.createElement("path",{d:"M11.983 0a12.206 12.206 0 00-8.51 3.653A11.8 11.8 0 000 12.207 11.779 11.779 0 0011.8 24h.214A12.111 12.111 0 0024 11.791 11.766 11.766 0 0011.983 0zM10.5 16.542a1.476 1.476 0 011.449-1.53h.027a1.527 1.527 0 011.523 1.47 1.475 1.475 0 01-1.449 1.53h-.027a1.529 1.529 0 01-1.523-1.47zM11 12.5v-6a1 1 0 012 0v6a1 1 0 11-2 0z"}))},spinner:function(){return eo.createElement("div",{className:"Toastify__spinner"})}},t1t=t=>{const{isRunning:A,preventExitTransition:e,toastRef:i,eventHandlers:o,playToast:n}=zvt(t),{closeButton:s,children:r,autoClose:a,onClick:g,type:I,hideProgressBar:c,closeToast:B,transition:C,position:l,className:Q,style:E,bodyClassName:h,bodyStyle:u,progressClassName:d,progressStyle:f,updateId:w,role:S,progress:D,rtl:x,toastId:F,deleteToast:k,isIn:U,isLoading:N,closeOnClick:Y,theme:q}=t,K=Py("Toastify__toast",`Toastify__toast-theme--${q}`,`Toastify__toast--${I}`,{"Toastify__toast--rtl":x},{"Toastify__toast--close-on-click":Y}),O=i0(Q)?Q({rtl:x,position:l,type:I,defaultClassName:K}):Py(K,Q),W=(function(tA){let{theme:sA,type:gA,isLoading:pA,icon:xA}=tA,_A=null;const MA={theme:sA,type:gA};return xA===!1||(i0(xA)?_A=xA({...MA,isLoading:pA}):AA.isValidElement(xA)?_A=AA.cloneElement(xA,MA):pA?_A=$QA.spinner():(PA=>PA in $QA)(gA)&&(_A=$QA[gA](MA))),_A})(t),$=!!D||!a,oA={closeToast:B,type:I,theme:q};let IA=null;return s===!1||(IA=i0(s)?s(oA):AA.isValidElement(s)?AA.cloneElement(s,oA):(function(tA){let{closeToast:sA,theme:gA,ariaLabel:pA="close"}=tA;return eo.createElement("button",{className:`Toastify__close-button Toastify__close-button--${gA}`,type:"button",onClick:xA=>{xA.stopPropagation(),sA(xA)},"aria-label":pA},eo.createElement("svg",{"aria-hidden":"true",viewBox:"0 0 14 16"},eo.createElement("path",{fillRule:"evenodd",d:"M7.71 8.23l3.75 3.75-1.48 1.48-3.75-3.75-3.75 3.75L1 11.98l3.75-3.75L1 4.48 2.48 3l3.75 3.75L9.98 3l1.48 1.48-3.75 3.75z"})))})(oA)),eo.createElement(C,{isIn:U,done:k,position:l,preventExitTransition:e,nodeRef:i,playToast:n},eo.createElement("div",{id:F,onClick:g,"data-in":U,className:O,...o,style:E,ref:i},eo.createElement("div",{...U&&{role:S},className:i0(h)?h({type:I}):Py("Toastify__toast-body",h),style:u},W!=null&&eo.createElement("div",{className:Py("Toastify__toast-icon",{"Toastify--animate-icon Toastify__zoom-enter":!N})},W),eo.createElement("div",null,r)),IA,eo.createElement(Xvt,{...w&&!$?{key:`pb-${w}`}:{},rtl:x,theme:q,delay:a,isRunning:A,isIn:U,closeToast:B,hide:c,type:I,style:f,className:d,controlledProgress:$,progress:D||0})))},q8=function(t,A){return A===void 0&&(A=!1),{enter:`Toastify--animate Toastify__${t}-enter`,exit:`Toastify--animate Toastify__${t}-exit`,appendPosition:A}},i1t=Y8(q8("bounce",!0));Y8(q8("slide",!0)),Y8(q8("zoom")),Y8(q8("flip"));const o1t={position:"top-right",transition:i1t,autoClose:5e3,closeButton:!0,pauseOnHover:!0,pauseOnFocusLoss:!0,draggable:"touch",draggablePercent:80,draggableDirection:"x",role:"alert",theme:"light"};function n1t(t){let A={...o1t,...t};const e=t.stacked,[i,o]=AA.useState(!0),n=AA.useRef(null),{getToastToRender:s,isToastActive:r,count:a}=jvt(A),{className:g,style:I,rtl:c,containerId:B}=A;function C(Q){const E=Py("Toastify__toast-container",`Toastify__toast-container--${Q}`,{"Toastify__toast-container--rtl":c});return i0(g)?g({position:Q,rtl:c,defaultClassName:E}):Py(E,H8(g))}function l(){e&&(o(!0),Og.play())}return e1t(()=>{if(e){var Q;const E=n.current.querySelectorAll('[data-in="true"]'),h=12,u=(Q=A.position)==null?void 0:Q.includes("top");let d=0,f=0;Array.from(E).reverse().forEach((w,S)=>{const D=w;D.classList.add("Toastify__toast--stacked"),S>0&&(D.dataset.collapsed=`${i}`),D.dataset.pos||(D.dataset.pos=u?"top":"bot");const x=d*(i?.2:1)+(i?0:h*S);D.style.setProperty("--y",`${u?x:-1*x}px`),D.style.setProperty("--g",`${h}`),D.style.setProperty("--s",""+(1-(i?f:0))),d+=D.offsetHeight,f+=.025})}},[i,a,e]),eo.createElement("div",{ref:n,className:"Toastify",id:B,onMouseEnter:()=>{e&&(o(!1),Og.pause())},onMouseLeave:l},s((Q,E)=>{const h=E.length?{...I}:{...I,pointerEvents:"none"};return eo.createElement("div",{className:C(Q),style:h,key:`container-${Q}`},E.map(u=>{let{content:d,props:f}=u;return eo.createElement(t1t,{...f,stacked:e,collapseAll:l,isIn:r(f.toastId,f.containerId),style:f.style,key:`toast-${f.key}`},d)}))}))}function s1t(){var t=':root{--toastify-color-light:#fff;--toastify-color-dark:#121212;--toastify-color-info:#3498db;--toastify-color-success:#07bc0c;--toastify-color-warning:#f1c40f;--toastify-color-error:#e74c3c;--toastify-color-transparent:hsla(0,0%,100%,.7);--toastify-icon-color-info:var(--toastify-color-info);--toastify-icon-color-success:var(--toastify-color-success);--toastify-icon-color-warning:var(--toastify-color-warning);--toastify-icon-color-error:var(--toastify-color-error);--toastify-toast-width:320px;--toastify-toast-offset:16px;--toastify-toast-top:max(var(--toastify-toast-offset),env(safe-area-inset-top));--toastify-toast-right:max(var(--toastify-toast-offset),env(safe-area-inset-right));--toastify-toast-left:max(var(--toastify-toast-offset),env(safe-area-inset-left));--toastify-toast-bottom:max(var(--toastify-toast-offset),env(safe-area-inset-bottom));--toastify-toast-background:#fff;--toastify-toast-min-height:64px;--toastify-toast-max-height:800px;--toastify-toast-bd-radius:6px;--toastify-font-family:sans-serif;--toastify-z-index:9999;--toastify-text-color-light:#757575;--toastify-text-color-dark:#fff;--toastify-text-color-info:#fff;--toastify-text-color-success:#fff;--toastify-text-color-warning:#fff;--toastify-text-color-error:#fff;--toastify-spinner-color:#616161;--toastify-spinner-color-empty-area:#e0e0e0;--toastify-color-progress-light:linear-gradient(90deg,#4cd964,#5ac8fa,#007aff,#34aadc,#5856d6,#ff2d55);--toastify-color-progress-dark:#bb86fc;--toastify-color-progress-info:var(--toastify-color-info);--toastify-color-progress-success:var(--toastify-color-success);--toastify-color-progress-warning:var(--toastify-color-warning);--toastify-color-progress-error:var(--toastify-color-error);--toastify-color-progress-bgo:0.2}.Toastify__toast-container{z-index:var(--toastify-z-index);-webkit-transform:translateZ(var(--toastify-z-index));position:fixed;padding:4px;width:var(--toastify-toast-width);box-sizing:border-box;color:#fff}.Toastify__toast-container--top-left{top:var(--toastify-toast-top);left:var(--toastify-toast-left)}.Toastify__toast-container--top-center{top:var(--toastify-toast-top);left:50%;transform:translateX(-50%)}.Toastify__toast-container--top-right{top:var(--toastify-toast-top);right:var(--toastify-toast-right)}.Toastify__toast-container--bottom-left{bottom:var(--toastify-toast-bottom);left:var(--toastify-toast-left)}.Toastify__toast-container--bottom-center{bottom:var(--toastify-toast-bottom);left:50%;transform:translateX(-50%)}.Toastify__toast-container--bottom-right{bottom:var(--toastify-toast-bottom);right:var(--toastify-toast-right)}@media only screen and (max-width:480px){.Toastify__toast-container{width:100vw;padding:0;left:env(safe-area-inset-left);margin:0}.Toastify__toast-container--top-center,.Toastify__toast-container--top-left,.Toastify__toast-container--top-right{top:env(safe-area-inset-top);transform:translateX(0)}.Toastify__toast-container--bottom-center,.Toastify__toast-container--bottom-left,.Toastify__toast-container--bottom-right{bottom:env(safe-area-inset-bottom);transform:translateX(0)}.Toastify__toast-container--rtl{right:env(safe-area-inset-right);left:auto}}.Toastify__toast{--y:0;position:relative;-ms-touch-action:none;touch-action:none;min-height:var(--toastify-toast-min-height);box-sizing:border-box;margin-bottom:1rem;padding:8px;border-radius:var(--toastify-toast-bd-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;max-height:var(--toastify-toast-max-height);font-family:var(--toastify-font-family);cursor:default;direction:ltr;z-index:0;overflow:hidden}.Toastify__toast--stacked{position:absolute;width:100%;transform:translate3d(0,var(--y),0) scale(var(--s));transition:transform .3s}.Toastify__toast--stacked[data-collapsed] .Toastify__close-button,.Toastify__toast--stacked[data-collapsed] .Toastify__toast-body{transition:opacity .1s}.Toastify__toast--stacked[data-collapsed=false]{overflow:visible}.Toastify__toast--stacked[data-collapsed=true]:not(:last-child)>*{opacity:0}.Toastify__toast--stacked:after{content:"";position:absolute;left:0;right:0;height:calc(var(--g) * 1px);bottom:100%}.Toastify__toast--stacked[data-pos=top]{top:0}.Toastify__toast--stacked[data-pos=bot]{bottom:0}.Toastify__toast--stacked[data-pos=bot].Toastify__toast--stacked:before{transform-origin:top}.Toastify__toast--stacked[data-pos=top].Toastify__toast--stacked:before{transform-origin:bottom}.Toastify__toast--stacked:before{content:"";position:absolute;left:0;right:0;bottom:0;height:100%;transform:scaleY(3);z-index:-1}.Toastify__toast--rtl{direction:rtl}.Toastify__toast--close-on-click{cursor:pointer}.Toastify__toast-body{margin:auto 0;-ms-flex:1 1 auto;flex:1 1 auto;padding:6px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.Toastify__toast-body>div:last-child{word-break:break-word;-ms-flex:1;flex:1}.Toastify__toast-icon{-webkit-margin-end:10px;margin-inline-end:10px;width:20px;-ms-flex-negative:0;flex-shrink:0;display:-ms-flexbox;display:flex}.Toastify--animate{animation-fill-mode:both;animation-duration:.5s}.Toastify--animate-icon{animation-fill-mode:both;animation-duration:.3s}@media only screen and (max-width:480px){.Toastify__toast{margin-bottom:0;border-radius:0}}.Toastify__toast-theme--dark{background:var(--toastify-color-dark);color:var(--toastify-text-color-dark)}.Toastify__toast-theme--colored.Toastify__toast--default,.Toastify__toast-theme--light{background:var(--toastify-color-light);color:var(--toastify-text-color-light)}.Toastify__toast-theme--colored.Toastify__toast--info{color:var(--toastify-text-color-info);background:var(--toastify-color-info)}.Toastify__toast-theme--colored.Toastify__toast--success{color:var(--toastify-text-color-success);background:var(--toastify-color-success)}.Toastify__toast-theme--colored.Toastify__toast--warning{color:var(--toastify-text-color-warning);background:var(--toastify-color-warning)}.Toastify__toast-theme--colored.Toastify__toast--error{color:var(--toastify-text-color-error);background:var(--toastify-color-error)}.Toastify__progress-bar-theme--light{background:var(--toastify-color-progress-light)}.Toastify__progress-bar-theme--dark{background:var(--toastify-color-progress-dark)}.Toastify__progress-bar--info{background:var(--toastify-color-progress-info)}.Toastify__progress-bar--success{background:var(--toastify-color-progress-success)}.Toastify__progress-bar--warning{background:var(--toastify-color-progress-warning)}.Toastify__progress-bar--error{background:var(--toastify-color-progress-error)}.Toastify__progress-bar-theme--colored.Toastify__progress-bar--error,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--info,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--success,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--warning{background:var(--toastify-color-transparent)}.Toastify__close-button{color:#fff;background:transparent;outline:none;border:none;padding:0;cursor:pointer;opacity:.7;transition:.3s ease;-ms-flex-item-align:start;align-self:flex-start;z-index:1}.Toastify__close-button--light{color:#000;opacity:.3}.Toastify__close-button>svg{fill:currentColor;height:16px;width:14px}.Toastify__close-button:focus,.Toastify__close-button:hover{opacity:1}@keyframes Toastify__trackProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.Toastify__progress-bar{position:absolute;bottom:0;left:0;width:100%;height:100%;z-index:var(--toastify-z-index);opacity:.7;transform-origin:left;border-bottom-left-radius:var(--toastify-toast-bd-radius)}.Toastify__progress-bar--animated{animation:Toastify__trackProgress linear 1 forwards}.Toastify__progress-bar--controlled{transition:transform .2s}.Toastify__progress-bar--rtl{right:0;left:auto;transform-origin:right;border-bottom-left-radius:0;border-bottom-right-radius:var(--toastify-toast-bd-radius)}.Toastify__progress-bar--wrp{position:absolute;bottom:0;left:0;width:100%;height:5px;border-bottom-left-radius:var(--toastify-toast-bd-radius)}.Toastify__progress-bar--wrp[data-hidden=true]{opacity:0}.Toastify__progress-bar--bg{opacity:var(--toastify-color-progress-bgo);width:100%;height:100%}.Toastify__spinner{width:20px;height:20px;box-sizing:border-box;border:2px solid;border-radius:100%;border-color:var(--toastify-spinner-color-empty-area);border-right-color:var(--toastify-spinner-color);animation:Toastify__spin .65s linear infinite}@keyframes Toastify__bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(3000px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutRight{20%{opacity:1;transform:translate3d(-20px,var(--y),0)}to{opacity:0;transform:translate3d(2000px,var(--y),0)}}@keyframes Toastify__bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(-3000px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutLeft{20%{opacity:1;transform:translate3d(20px,var(--y),0)}to{opacity:0;transform:translate3d(-2000px,var(--y),0)}}@keyframes Toastify__bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,3000px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@keyframes Toastify__bounceOutUp{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes Toastify__bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@keyframes Toastify__bounceOutDown{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,2000px,0)}}.Toastify__bounce-enter--bottom-left,.Toastify__bounce-enter--top-left{animation-name:Toastify__bounceInLeft}.Toastify__bounce-enter--bottom-right,.Toastify__bounce-enter--top-right{animation-name:Toastify__bounceInRight}.Toastify__bounce-enter--top-center{animation-name:Toastify__bounceInDown}.Toastify__bounce-enter--bottom-center{animation-name:Toastify__bounceInUp}.Toastify__bounce-exit--bottom-left,.Toastify__bounce-exit--top-left{animation-name:Toastify__bounceOutLeft}.Toastify__bounce-exit--bottom-right,.Toastify__bounce-exit--top-right{animation-name:Toastify__bounceOutRight}.Toastify__bounce-exit--top-center{animation-name:Toastify__bounceOutUp}.Toastify__bounce-exit--bottom-center{animation-name:Toastify__bounceOutDown}@keyframes Toastify__zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes Toastify__zoomOut{0%{opacity:1}50%{opacity:0;transform:translate3d(0,var(--y),0) scale3d(.3,.3,.3)}to{opacity:0}}.Toastify__zoom-enter{animation-name:Toastify__zoomIn}.Toastify__zoom-exit{animation-name:Toastify__zoomOut}@keyframes Toastify__flipIn{0%{transform:perspective(400px) rotateX(90deg);animation-timing-function:ease-in;opacity:0}40%{transform:perspective(400px) rotateX(-20deg);animation-timing-function:ease-in}60%{transform:perspective(400px) rotateX(10deg);opacity:1}80%{transform:perspective(400px) rotateX(-5deg)}to{transform:perspective(400px)}}@keyframes Toastify__flipOut{0%{transform:translate3d(0,var(--y),0) perspective(400px)}30%{transform:translate3d(0,var(--y),0) perspective(400px) rotateX(-20deg);opacity:1}to{transform:translate3d(0,var(--y),0) perspective(400px) rotateX(90deg);opacity:0}}.Toastify__flip-enter{animation-name:Toastify__flipIn}.Toastify__flip-exit{animation-name:Toastify__flipOut}@keyframes Toastify__slideInRight{0%{transform:translate3d(110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInLeft{0%{transform:translate3d(-110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInUp{0%{transform:translate3d(0,110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInDown{0%{transform:translate3d(0,-110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideOutRight{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(110%,var(--y),0)}}@keyframes Toastify__slideOutLeft{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(-110%,var(--y),0)}}@keyframes Toastify__slideOutDown{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(0,500px,0)}}@keyframes Toastify__slideOutUp{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(0,-500px,0)}}.Toastify__slide-enter--bottom-left,.Toastify__slide-enter--top-left{animation-name:Toastify__slideInLeft}.Toastify__slide-enter--bottom-right,.Toastify__slide-enter--top-right{animation-name:Toastify__slideInRight}.Toastify__slide-enter--top-center{animation-name:Toastify__slideInDown}.Toastify__slide-enter--bottom-center{animation-name:Toastify__slideInUp}.Toastify__slide-exit--bottom-left,.Toastify__slide-exit--top-left{animation-name:Toastify__slideOutLeft;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--bottom-right,.Toastify__slide-exit--top-right{animation-name:Toastify__slideOutRight;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--top-center{animation-name:Toastify__slideOutUp;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--bottom-center{animation-name:Toastify__slideOutDown;animation-timing-function:ease-in;animation-duration:.3s}@keyframes Toastify__spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}',A=document.createElement("style");A.innerText=t,document.head.appendChild(A)}const r1t=Bhe(mxe);var AEA,Bte;function a1t(){if(Bte)return AEA;Bte=1;var t=Object.defineProperty,A=Object.getOwnPropertyDescriptor,e=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,o=(E,h)=>{for(var u in h)t(E,u,{get:h[u],enumerable:!0})},n=(E,h,u,d)=>{if(h&&typeof h=="object"||typeof h=="function")for(let f of e(h))!i.call(E,f)&&f!==u&&t(E,f,{get:()=>h[f],enumerable:!(d=A(h,f))||d.enumerable});return E},s=E=>n(t({},"__esModule",{value:!0}),E),r={};o(r,{SuperGrid:()=>Q,toMMSI:()=>l,toMeterSI:()=>C}),AEA=s(r);var a=Uf(),g=r1t,I=ByA(),c=(E,h,u)=>{const d=[];if(h<E)for(let f=E;f>=h;f-=Math.abs(u))d.push(f);else for(let f=E;f<=h;f+=Math.abs(u))d.push(f);return d};function B(E,h){return{x:Math.round(h.x/E)*E,y:Math.round(h.y/E)*E}}function C(E,h=1){return E<0?"-"+C(-E):E<1e-6?"0m":E>1e3?Math.floor(E/1e3)+"km":E>1&&h>1?Math.round(E)+"m":E>1&&h<=1?E.toFixed(Math.ceil(-Math.log10(h)))+"m":E<1&&h>=1/1e3?Math.round(E*1e3)+"mm":E<1&&h<1/1e3?(E*1e3).toFixed(Math.ceil(-Math.log10(h*1e3)))+"mm":""}function l(E,h=1){return C(E/1e3,h/1e3)}var Q=E=>{var h;const u=(0,a.useRef)(null),[d,f]=(0,a.useState)({x:0,y:0}),{majorColor:w="rgba(0,0,0,0.2)",minorColor:S="rgba(0,0,0,0.1)",textColor:D=(h=E.majorColor)!=null?h:"rgba(0,0,0,0.5)",width:x,height:F,screenSpaceCellSize:k=200,stringifyCoord:U=(K,O,W)=>`${C(K,W)}, ${C(O,W)}`}=E,N=Math.ceil(x/k)+2,Y=Math.ceil(F/k)+2;(0,a.useEffect)(()=>{if(!u.current)return;const K=u.current.getContext("2d");if(!K)return;const O=k/10**Math.floor(Math.log10(E.transform.a)),W=E.transform.d<0?-1:1,oA=k/10**Math.log10(E.transform.a)/O;function IA(yA,uA,qA){const ee=yA;let Be,mA,WA;for(Be=uA.x;Be<=qA.x;Be+=ee)mA=(0,g.applyToPoint)(E.transform,{x:Be,y:uA.y}),WA=(0,g.applyToPoint)(E.transform,{x:Be,y:qA.y}),K.beginPath(),K.moveTo(mA.x,mA.y),K.lineTo(WA.x,WA.y),K.stroke();const KA=c(uA.y,qA.y,ee*W);for(const JA of KA)mA=(0,g.applyToPoint)(E.transform,{x:uA.x,y:JA}),WA=(0,g.applyToPoint)(E.transform,{x:qA.x,y:JA}),K.beginPath(),K.moveTo(mA.x,mA.y),K.lineTo(WA.x,WA.y),K.stroke()}function tA(yA,uA,qA){const ee=yA;let Be;for(Be=uA.x;Be<=qA.x;Be+=ee)for(const mA of c(uA.y,qA.y,ee*W)){const WA=(0,g.applyToPoint)(E.transform,{x:Be,y:mA});K.fillStyle=D,K.font="12px sans-serif",K.fillText(U(Be,mA,yA),WA.x+2,WA.y-2)}}K.clearRect(0,0,x,F);const sA=(0,g.applyToPoint)((0,g.inverse)(E.transform),{x:0,y:0}),gA={x:Math.floor((sA.x-O)/O)*O,y:Math.floor((sA.y-O)/O+(W==-1?2:0))*O},pA={x:gA.x+O*N,y:gA.y+O*Y*W},_A=O*5,MA={x:Math.floor((sA.x-_A)/_A)*_A,y:Math.floor((sA.y-_A)/_A+(W==-1?2:0))*_A},PA={x:MA.x+_A*N,y:MA.y+_A*Y*W};K.globalAlpha=1,K.strokeStyle=w,IA(O,gA,pA),tA(_A,MA,PA),K.globalAlpha=1-oA,IA(_A/10,MA,PA),K.globalAlpha=1-oA,K.strokeStyle=S,IA(O/10,gA,pA),K.globalAlpha=Math.max(((1-oA)*10-5)/5,0),tA(_A/10,MA,PA),K.globalAlpha=1;const BA=(0,g.applyToPoint)(E.transform,d);K.font="12px sans-serif",K.fillStyle=D,K.fillText(U(d.x,d.y,O),BA.x+2,BA.y-2),K.strokeStyle=w,K.strokeRect(BA.x-5,BA.y-5,10,10)},[u,E.transform,d,x,F]);const q=K=>{if(!u.current)return;const O=k/10/10**Math.floor(Math.log10(E.transform.a)),W=u.current.getBoundingClientRect(),$=(0,g.applyToPoint)((0,g.inverse)(E.transform),{x:K.clientX-W.left,y:K.clientY-W.top}),oA=B(O,$);f(oA)};return(0,I.jsx)("canvas",{onMouseUp:K=>{K.button===1&&q(K)},onDoubleClick:q,ref:u,width:E.width,height:E.height})};return AEA}var P8=a1t(),eEA={exports:{}},tEA,Cte;function lte(){return Cte||(Cte=1,tEA={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}),tEA}var iEA={exports:{}},oEA,Qte;function g1t(){return Qte||(Qte=1,oEA=function(A){return!A||typeof A=="string"?!1:A instanceof Array||Array.isArray(A)||A.length>=0&&(A.splice instanceof Function||Object.getOwnPropertyDescriptor(A,A.length-1)&&A.constructor.name!=="String")}),oEA}var Ete;function I1t(){if(Ete)return iEA.exports;Ete=1;var t=g1t(),A=Array.prototype.concat,e=Array.prototype.slice,i=iEA.exports=function(n){for(var s=[],r=0,a=n.length;r<a;r++){var g=n[r];t(g)?s=A.call(s,e.call(g)):s.push(g)}return s};return i.wrap=function(o){return function(){return o(i(arguments))}},iEA.exports}var hte;function c1t(){if(hte)return eEA.exports;hte=1;var t=lte(),A=I1t(),e=Object.hasOwnProperty,i=Object.create(null);for(var o in t)e.call(t,o)&&(i[t[o]]=o);var n=eEA.exports={to:{},get:{}};n.get=function(a){var g=a.substring(0,3).toLowerCase(),I,c;switch(g){case"hsl":I=n.get.hsl(a),c="hsl";break;case"hwb":I=n.get.hwb(a),c="hwb";break;default:I=n.get.rgb(a),c="rgb";break}return I?{model:c,value:I}:null},n.get.rgb=function(a){if(!a)return null;var g=/^#([a-f0-9]{3,4})$/i,I=/^#([a-f0-9]{6})([a-f0-9]{2})?$/i,c=/^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/,B=/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/,C=/^(\w+)$/,l=[0,0,0,1],Q,E,h;if(Q=a.match(I)){for(h=Q[2],Q=Q[1],E=0;E<3;E++){var u=E*2;l[E]=parseInt(Q.slice(u,u+2),16)}h&&(l[3]=parseInt(h,16)/255)}else if(Q=a.match(g)){for(Q=Q[1],h=Q[3],E=0;E<3;E++)l[E]=parseInt(Q[E]+Q[E],16);h&&(l[3]=parseInt(h+h,16)/255)}else if(Q=a.match(c)){for(E=0;E<3;E++)l[E]=parseInt(Q[E+1],0);Q[4]&&(Q[5]?l[3]=parseFloat(Q[4])*.01:l[3]=parseFloat(Q[4]))}else if(Q=a.match(B)){for(E=0;E<3;E++)l[E]=Math.round(parseFloat(Q[E+1])*2.55);Q[4]&&(Q[5]?l[3]=parseFloat(Q[4])*.01:l[3]=parseFloat(Q[4]))}else return(Q=a.match(C))?Q[1]==="transparent"?[0,0,0,0]:e.call(t,Q[1])?(l=t[Q[1]],l[3]=1,l):null:null;for(E=0;E<3;E++)l[E]=s(l[E],0,255);return l[3]=s(l[3],0,1),l},n.get.hsl=function(a){if(!a)return null;var g=/^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d\.]+)%\s*,?\s*([+-]?[\d\.]+)%\s*(?:[,|\/]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/,I=a.match(g);if(I){var c=parseFloat(I[4]),B=(parseFloat(I[1])%360+360)%360,C=s(parseFloat(I[2]),0,100),l=s(parseFloat(I[3]),0,100),Q=s(isNaN(c)?1:c,0,1);return[B,C,l,Q]}return null},n.get.hwb=function(a){if(!a)return null;var g=/^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/,I=a.match(g);if(I){var c=parseFloat(I[4]),B=(parseFloat(I[1])%360+360)%360,C=s(parseFloat(I[2]),0,100),l=s(parseFloat(I[3]),0,100),Q=s(isNaN(c)?1:c,0,1);return[B,C,l,Q]}return null},n.to.hex=function(){var a=A(arguments);return"#"+r(a[0])+r(a[1])+r(a[2])+(a[3]<1?r(Math.round(a[3]*255)):"")},n.to.rgb=function(){var a=A(arguments);return a.length<4||a[3]===1?"rgb("+Math.round(a[0])+", "+Math.round(a[1])+", "+Math.round(a[2])+")":"rgba("+Math.round(a[0])+", "+Math.round(a[1])+", "+Math.round(a[2])+", "+a[3]+")"},n.to.rgb.percent=function(){var a=A(arguments),g=Math.round(a[0]/255*100),I=Math.round(a[1]/255*100),c=Math.round(a[2]/255*100);return a.length<4||a[3]===1?"rgb("+g+"%, "+I+"%, "+c+"%)":"rgba("+g+"%, "+I+"%, "+c+"%, "+a[3]+")"},n.to.hsl=function(){var a=A(arguments);return a.length<4||a[3]===1?"hsl("+a[0]+", "+a[1]+"%, "+a[2]+"%)":"hsla("+a[0]+", "+a[1]+"%, "+a[2]+"%, "+a[3]+")"},n.to.hwb=function(){var a=A(arguments),g="";return a.length>=4&&a[3]!==1&&(g=", "+a[3]),"hwb("+a[0]+", "+a[1]+"%, "+a[2]+"%"+g+")"},n.to.keyword=function(a){return i[a.slice(0,3)]};function s(a,g,I){return Math.min(Math.max(g,a),I)}function r(a){var g=Math.round(a).toString(16).toUpperCase();return g.length<2?"0"+g:g}return eEA.exports}var nEA,ute;function dte(){if(ute)return nEA;ute=1;const t=lte(),A={};for(const o of Object.keys(t))A[t[o]]=o;const e={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};nEA=e;for(const o of Object.keys(e)){if(!("channels"in e[o]))throw new Error("missing channels property: "+o);if(!("labels"in e[o]))throw new Error("missing channel labels property: "+o);if(e[o].labels.length!==e[o].channels)throw new Error("channel and label counts mismatch: "+o);const{channels:n,labels:s}=e[o];delete e[o].channels,delete e[o].labels,Object.defineProperty(e[o],"channels",{value:n}),Object.defineProperty(e[o],"labels",{value:s})}e.rgb.hsl=function(o){const n=o[0]/255,s=o[1]/255,r=o[2]/255,a=Math.min(n,s,r),g=Math.max(n,s,r),I=g-a;let c,B;g===a?c=0:n===g?c=(s-r)/I:s===g?c=2+(r-n)/I:r===g&&(c=4+(n-s)/I),c=Math.min(c*60,360),c<0&&(c+=360);const C=(a+g)/2;return g===a?B=0:C<=.5?B=I/(g+a):B=I/(2-g-a),[c,B*100,C*100]},e.rgb.hsv=function(o){let n,s,r,a,g;const I=o[0]/255,c=o[1]/255,B=o[2]/255,C=Math.max(I,c,B),l=C-Math.min(I,c,B),Q=function(E){return(C-E)/6/l+1/2};return l===0?(a=0,g=0):(g=l/C,n=Q(I),s=Q(c),r=Q(B),I===C?a=r-s:c===C?a=1/3+n-r:B===C&&(a=2/3+s-n),a<0?a+=1:a>1&&(a-=1)),[a*360,g*100,C*100]},e.rgb.hwb=function(o){const n=o[0],s=o[1];let r=o[2];const a=e.rgb.hsl(o)[0],g=1/255*Math.min(n,Math.min(s,r));return r=1-1/255*Math.max(n,Math.max(s,r)),[a,g*100,r*100]},e.rgb.cmyk=function(o){const n=o[0]/255,s=o[1]/255,r=o[2]/255,a=Math.min(1-n,1-s,1-r),g=(1-n-a)/(1-a)||0,I=(1-s-a)/(1-a)||0,c=(1-r-a)/(1-a)||0;return[g*100,I*100,c*100,a*100]};function i(o,n){return(o[0]-n[0])**2+(o[1]-n[1])**2+(o[2]-n[2])**2}return e.rgb.keyword=function(o){const n=A[o];if(n)return n;let s=1/0,r;for(const a of Object.keys(t)){const g=t[a],I=i(o,g);I<s&&(s=I,r=a)}return r},e.keyword.rgb=function(o){return t[o]},e.rgb.xyz=function(o){let n=o[0]/255,s=o[1]/255,r=o[2]/255;n=n>.04045?((n+.055)/1.055)**2.4:n/12.92,s=s>.04045?((s+.055)/1.055)**2.4:s/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92;const a=n*.4124+s*.3576+r*.1805,g=n*.2126+s*.7152+r*.0722,I=n*.0193+s*.1192+r*.9505;return[a*100,g*100,I*100]},e.rgb.lab=function(o){const n=e.rgb.xyz(o);let s=n[0],r=n[1],a=n[2];s/=95.047,r/=100,a/=108.883,s=s>.008856?s**(1/3):7.787*s+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,a=a>.008856?a**(1/3):7.787*a+16/116;const g=116*r-16,I=500*(s-r),c=200*(r-a);return[g,I,c]},e.hsl.rgb=function(o){const n=o[0]/360,s=o[1]/100,r=o[2]/100;let a,g,I;if(s===0)return I=r*255,[I,I,I];r<.5?a=r*(1+s):a=r+s-r*s;const c=2*r-a,B=[0,0,0];for(let C=0;C<3;C++)g=n+1/3*-(C-1),g<0&&g++,g>1&&g--,6*g<1?I=c+(a-c)*6*g:2*g<1?I=a:3*g<2?I=c+(a-c)*(2/3-g)*6:I=c,B[C]=I*255;return B},e.hsl.hsv=function(o){const n=o[0];let s=o[1]/100,r=o[2]/100,a=s;const g=Math.max(r,.01);r*=2,s*=r<=1?r:2-r,a*=g<=1?g:2-g;const I=(r+s)/2,c=r===0?2*a/(g+a):2*s/(r+s);return[n,c*100,I*100]},e.hsv.rgb=function(o){const n=o[0]/60,s=o[1]/100;let r=o[2]/100;const a=Math.floor(n)%6,g=n-Math.floor(n),I=255*r*(1-s),c=255*r*(1-s*g),B=255*r*(1-s*(1-g));switch(r*=255,a){case 0:return[r,B,I];case 1:return[c,r,I];case 2:return[I,r,B];case 3:return[I,c,r];case 4:return[B,I,r];case 5:return[r,I,c]}},e.hsv.hsl=function(o){const n=o[0],s=o[1]/100,r=o[2]/100,a=Math.max(r,.01);let g,I;I=(2-s)*r;const c=(2-s)*a;return g=s*a,g/=c<=1?c:2-c,g=g||0,I/=2,[n,g*100,I*100]},e.hwb.rgb=function(o){const n=o[0]/360;let s=o[1]/100,r=o[2]/100;const a=s+r;let g;a>1&&(s/=a,r/=a);const I=Math.floor(6*n),c=1-r;g=6*n-I,(I&1)!==0&&(g=1-g);const B=s+g*(c-s);let C,l,Q;switch(I){default:case 6:case 0:C=c,l=B,Q=s;break;case 1:C=B,l=c,Q=s;break;case 2:C=s,l=c,Q=B;break;case 3:C=s,l=B,Q=c;break;case 4:C=B,l=s,Q=c;break;case 5:C=c,l=s,Q=B;break}return[C*255,l*255,Q*255]},e.cmyk.rgb=function(o){const n=o[0]/100,s=o[1]/100,r=o[2]/100,a=o[3]/100,g=1-Math.min(1,n*(1-a)+a),I=1-Math.min(1,s*(1-a)+a),c=1-Math.min(1,r*(1-a)+a);return[g*255,I*255,c*255]},e.xyz.rgb=function(o){const n=o[0]/100,s=o[1]/100,r=o[2]/100;let a,g,I;return a=n*3.2406+s*-1.5372+r*-.4986,g=n*-.9689+s*1.8758+r*.0415,I=n*.0557+s*-.204+r*1.057,a=a>.0031308?1.055*a**(1/2.4)-.055:a*12.92,g=g>.0031308?1.055*g**(1/2.4)-.055:g*12.92,I=I>.0031308?1.055*I**(1/2.4)-.055:I*12.92,a=Math.min(Math.max(0,a),1),g=Math.min(Math.max(0,g),1),I=Math.min(Math.max(0,I),1),[a*255,g*255,I*255]},e.xyz.lab=function(o){let n=o[0],s=o[1],r=o[2];n/=95.047,s/=100,r/=108.883,n=n>.008856?n**(1/3):7.787*n+16/116,s=s>.008856?s**(1/3):7.787*s+16/116,r=r>.008856?r**(1/3):7.787*r+16/116;const a=116*s-16,g=500*(n-s),I=200*(s-r);return[a,g,I]},e.lab.xyz=function(o){const n=o[0],s=o[1],r=o[2];let a,g,I;g=(n+16)/116,a=s/500+g,I=g-r/200;const c=g**3,B=a**3,C=I**3;return g=c>.008856?c:(g-16/116)/7.787,a=B>.008856?B:(a-16/116)/7.787,I=C>.008856?C:(I-16/116)/7.787,a*=95.047,g*=100,I*=108.883,[a,g,I]},e.lab.lch=function(o){const n=o[0],s=o[1],r=o[2];let a;a=Math.atan2(r,s)*360/2/Math.PI,a<0&&(a+=360);const I=Math.sqrt(s*s+r*r);return[n,I,a]},e.lch.lab=function(o){const n=o[0],s=o[1],a=o[2]/360*2*Math.PI,g=s*Math.cos(a),I=s*Math.sin(a);return[n,g,I]},e.rgb.ansi16=function(o,n=null){const[s,r,a]=o;let g=n===null?e.rgb.hsv(o)[2]:n;if(g=Math.round(g/50),g===0)return 30;let I=30+(Math.round(a/255)<<2|Math.round(r/255)<<1|Math.round(s/255));return g===2&&(I+=60),I},e.hsv.ansi16=function(o){return e.rgb.ansi16(e.hsv.rgb(o),o[2])},e.rgb.ansi256=function(o){const n=o[0],s=o[1],r=o[2];return n===s&&s===r?n<8?16:n>248?231:Math.round((n-8)/247*24)+232:16+36*Math.round(n/255*5)+6*Math.round(s/255*5)+Math.round(r/255*5)},e.ansi16.rgb=function(o){let n=o%10;if(n===0||n===7)return o>50&&(n+=3.5),n=n/10.5*255,[n,n,n];const s=(~~(o>50)+1)*.5,r=(n&1)*s*255,a=(n>>1&1)*s*255,g=(n>>2&1)*s*255;return[r,a,g]},e.ansi256.rgb=function(o){if(o>=232){const g=(o-232)*10+8;return[g,g,g]}o-=16;let n;const s=Math.floor(o/36)/5*255,r=Math.floor((n=o%36)/6)/5*255,a=n%6/5*255;return[s,r,a]},e.rgb.hex=function(o){const s=(((Math.round(o[0])&255)<<16)+((Math.round(o[1])&255)<<8)+(Math.round(o[2])&255)).toString(16).toUpperCase();return"000000".substring(s.length)+s},e.hex.rgb=function(o){const n=o.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!n)return[0,0,0];let s=n[0];n[0].length===3&&(s=s.split("").map(c=>c+c).join(""));const r=parseInt(s,16),a=r>>16&255,g=r>>8&255,I=r&255;return[a,g,I]},e.rgb.hcg=function(o){const n=o[0]/255,s=o[1]/255,r=o[2]/255,a=Math.max(Math.max(n,s),r),g=Math.min(Math.min(n,s),r),I=a-g;let c,B;return I<1?c=g/(1-I):c=0,I<=0?B=0:a===n?B=(s-r)/I%6:a===s?B=2+(r-n)/I:B=4+(n-s)/I,B/=6,B%=1,[B*360,I*100,c*100]},e.hsl.hcg=function(o){const n=o[1]/100,s=o[2]/100,r=s<.5?2*n*s:2*n*(1-s);let a=0;return r<1&&(a=(s-.5*r)/(1-r)),[o[0],r*100,a*100]},e.hsv.hcg=function(o){const n=o[1]/100,s=o[2]/100,r=n*s;let a=0;return r<1&&(a=(s-r)/(1-r)),[o[0],r*100,a*100]},e.hcg.rgb=function(o){const n=o[0]/360,s=o[1]/100,r=o[2]/100;if(s===0)return[r*255,r*255,r*255];const a=[0,0,0],g=n%1*6,I=g%1,c=1-I;let B=0;switch(Math.floor(g)){case 0:a[0]=1,a[1]=I,a[2]=0;break;case 1:a[0]=c,a[1]=1,a[2]=0;break;case 2:a[0]=0,a[1]=1,a[2]=I;break;case 3:a[0]=0,a[1]=c,a[2]=1;break;case 4:a[0]=I,a[1]=0,a[2]=1;break;default:a[0]=1,a[1]=0,a[2]=c}return B=(1-s)*r,[(s*a[0]+B)*255,(s*a[1]+B)*255,(s*a[2]+B)*255]},e.hcg.hsv=function(o){const n=o[1]/100,s=o[2]/100,r=n+s*(1-n);let a=0;return r>0&&(a=n/r),[o[0],a*100,r*100]},e.hcg.hsl=function(o){const n=o[1]/100,r=o[2]/100*(1-n)+.5*n;let a=0;return r>0&&r<.5?a=n/(2*r):r>=.5&&r<1&&(a=n/(2*(1-r))),[o[0],a*100,r*100]},e.hcg.hwb=function(o){const n=o[1]/100,s=o[2]/100,r=n+s*(1-n);return[o[0],(r-n)*100,(1-r)*100]},e.hwb.hcg=function(o){const n=o[1]/100,r=1-o[2]/100,a=r-n;let g=0;return a<1&&(g=(r-a)/(1-a)),[o[0],a*100,g*100]},e.apple.rgb=function(o){return[o[0]/65535*255,o[1]/65535*255,o[2]/65535*255]},e.rgb.apple=function(o){return[o[0]/255*65535,o[1]/255*65535,o[2]/255*65535]},e.gray.rgb=function(o){return[o[0]/100*255,o[0]/100*255,o[0]/100*255]},e.gray.hsl=function(o){return[0,0,o[0]]},e.gray.hsv=e.gray.hsl,e.gray.hwb=function(o){return[0,100,o[0]]},e.gray.cmyk=function(o){return[0,0,0,o[0]]},e.gray.lab=function(o){return[o[0],0,0]},e.gray.hex=function(o){const n=Math.round(o[0]/100*255)&255,r=((n<<16)+(n<<8)+n).toString(16).toUpperCase();return"000000".substring(r.length)+r},e.rgb.gray=function(o){return[(o[0]+o[1]+o[2])/3/255*100]},nEA}var sEA,pte;function B1t(){if(pte)return sEA;pte=1;const t=dte();function A(){const n={},s=Object.keys(t);for(let r=s.length,a=0;a<r;a++)n[s[a]]={distance:-1,parent:null};return n}function e(n){const s=A(),r=[n];for(s[n].distance=0;r.length;){const a=r.pop(),g=Object.keys(t[a]);for(let I=g.length,c=0;c<I;c++){const B=g[c],C=s[B];C.distance===-1&&(C.distance=s[a].distance+1,C.parent=a,r.unshift(B))}}return s}function i(n,s){return function(r){return s(n(r))}}function o(n,s){const r=[s[n].parent,n];let a=t[s[n].parent][n],g=s[n].parent;for(;s[g].parent;)r.unshift(s[g].parent),a=i(t[s[g].parent][g],a),g=s[g].parent;return a.conversion=r,a}return sEA=function(n){const s=e(n),r={},a=Object.keys(s);for(let g=a.length,I=0;I<g;I++){const c=a[I];s[c].parent!==null&&(r[c]=o(c,s))}return r},sEA}var rEA,fte;function C1t(){if(fte)return rEA;fte=1;const t=dte(),A=B1t(),e={},i=Object.keys(t);function o(s){const r=function(...a){const g=a[0];return g==null?g:(g.length>1&&(a=g),s(a))};return"conversion"in s&&(r.conversion=s.conversion),r}function n(s){const r=function(...a){const g=a[0];if(g==null)return g;g.length>1&&(a=g);const I=s(a);if(typeof I=="object")for(let c=I.length,B=0;B<c;B++)I[B]=Math.round(I[B]);return I};return"conversion"in s&&(r.conversion=s.conversion),r}return i.forEach(s=>{e[s]={},Object.defineProperty(e[s],"channels",{value:t[s].channels}),Object.defineProperty(e[s],"labels",{value:t[s].labels});const r=A(s);Object.keys(r).forEach(g=>{const I=r[g];e[s][g]=n(I),e[s][g].raw=o(I)})}),rEA=e,rEA}var aEA,yte;function l1t(){if(yte)return aEA;yte=1;const t=c1t(),A=C1t(),e=["keyword","gray","hex"],i={};for(const B of Object.keys(A))i[[...A[B].labels].sort().join("")]=B;const o={};function n(B,C){if(!(this instanceof n))return new n(B,C);if(C&&C in e&&(C=null),C&&!(C in A))throw new Error("Unknown model: "+C);let l,Q;if(B==null)this.model="rgb",this.color=[0,0,0],this.valpha=1;else if(B instanceof n)this.model=B.model,this.color=[...B.color],this.valpha=B.valpha;else if(typeof B=="string"){const E=t.get(B);if(E===null)throw new Error("Unable to parse color from string: "+B);this.model=E.model,Q=A[this.model].channels,this.color=E.value.slice(0,Q),this.valpha=typeof E.value[Q]=="number"?E.value[Q]:1}else if(B.length>0){this.model=C||"rgb",Q=A[this.model].channels;const E=Array.prototype.slice.call(B,0,Q);this.color=c(E,Q),this.valpha=typeof B[Q]=="number"?B[Q]:1}else if(typeof B=="number")this.model="rgb",this.color=[B>>16&255,B>>8&255,B&255],this.valpha=1;else{this.valpha=1;const E=Object.keys(B);"alpha"in B&&(E.splice(E.indexOf("alpha"),1),this.valpha=typeof B.alpha=="number"?B.alpha:0);const h=E.sort().join("");if(!(h in i))throw new Error("Unable to parse color from object: "+JSON.stringify(B));this.model=i[h];const{labels:u}=A[this.model],d=[];for(l=0;l<u.length;l++)d.push(B[u[l]]);this.color=c(d)}if(o[this.model])for(Q=A[this.model].channels,l=0;l<Q;l++){const E=o[this.model][l];E&&(this.color[l]=E(this.color[l]))}this.valpha=Math.max(0,Math.min(1,this.valpha)),Object.freeze&&Object.freeze(this)}n.prototype={toString(){return this.string()},toJSON(){return this[this.model]()},string(B){let C=this.model in t.to?this:this.rgb();C=C.round(typeof B=="number"?B:1);const l=C.valpha===1?C.color:[...C.color,this.valpha];return t.to[C.model](l)},percentString(B){const C=this.rgb().round(typeof B=="number"?B:1),l=C.valpha===1?C.color:[...C.color,this.valpha];return t.to.rgb.percent(l)},array(){return this.valpha===1?[...this.color]:[...this.color,this.valpha]},object(){const B={},{channels:C}=A[this.model],{labels:l}=A[this.model];for(let Q=0;Q<C;Q++)B[l[Q]]=this.color[Q];return this.valpha!==1&&(B.alpha=this.valpha),B},unitArray(){const B=this.rgb().color;return B[0]/=255,B[1]/=255,B[2]/=255,this.valpha!==1&&B.push(this.valpha),B},unitObject(){const B=this.rgb().object();return B.r/=255,B.g/=255,B.b/=255,this.valpha!==1&&(B.alpha=this.valpha),B},round(B){return B=Math.max(B||0,0),new n([...this.color.map(r(B)),this.valpha],this.model)},alpha(B){return B!==void 0?new n([...this.color,Math.max(0,Math.min(1,B))],this.model):this.valpha},red:a("rgb",0,g(255)),green:a("rgb",1,g(255)),blue:a("rgb",2,g(255)),hue:a(["hsl","hsv","hsl","hwb","hcg"],0,B=>(B%360+360)%360),saturationl:a("hsl",1,g(100)),lightness:a("hsl",2,g(100)),saturationv:a("hsv",1,g(100)),value:a("hsv",2,g(100)),chroma:a("hcg",1,g(100)),gray:a("hcg",2,g(100)),white:a("hwb",1,g(100)),wblack:a("hwb",2,g(100)),cyan:a("cmyk",0,g(100)),magenta:a("cmyk",1,g(100)),yellow:a("cmyk",2,g(100)),black:a("cmyk",3,g(100)),x:a("xyz",0,g(95.047)),y:a("xyz",1,g(100)),z:a("xyz",2,g(108.833)),l:a("lab",0,g(100)),a:a("lab",1),b:a("lab",2),keyword(B){return B!==void 0?new n(B):A[this.model].keyword(this.color)},hex(B){return B!==void 0?new n(B):t.to.hex(this.rgb().round().color)},hexa(B){if(B!==void 0)return new n(B);const C=this.rgb().round().color;let l=Math.round(this.valpha*255).toString(16).toUpperCase();return l.length===1&&(l="0"+l),t.to.hex(C)+l},rgbNumber(){const B=this.rgb().color;return(B[0]&255)<<16|(B[1]&255)<<8|B[2]&255},luminosity(){const B=this.rgb().color,C=[];for(const[l,Q]of B.entries()){const E=Q/255;C[l]=E<=.04045?E/12.92:((E+.055)/1.055)**2.4}return .2126*C[0]+.7152*C[1]+.0722*C[2]},contrast(B){const C=this.luminosity(),l=B.luminosity();return C>l?(C+.05)/(l+.05):(l+.05)/(C+.05)},level(B){const C=this.contrast(B);return C>=7?"AAA":C>=4.5?"AA":""},isDark(){const B=this.rgb().color;return(B[0]*2126+B[1]*7152+B[2]*722)/1e4<128},isLight(){return!this.isDark()},negate(){const B=this.rgb();for(let C=0;C<3;C++)B.color[C]=255-B.color[C];return B},lighten(B){const C=this.hsl();return C.color[2]+=C.color[2]*B,C},darken(B){const C=this.hsl();return C.color[2]-=C.color[2]*B,C},saturate(B){const C=this.hsl();return C.color[1]+=C.color[1]*B,C},desaturate(B){const C=this.hsl();return C.color[1]-=C.color[1]*B,C},whiten(B){const C=this.hwb();return C.color[1]+=C.color[1]*B,C},blacken(B){const C=this.hwb();return C.color[2]+=C.color[2]*B,C},grayscale(){const B=this.rgb().color,C=B[0]*.3+B[1]*.59+B[2]*.11;return n.rgb(C,C,C)},fade(B){return this.alpha(this.valpha-this.valpha*B)},opaquer(B){return this.alpha(this.valpha+this.valpha*B)},rotate(B){const C=this.hsl();let l=C.color[0];return l=(l+B)%360,l=l<0?360+l:l,C.color[0]=l,C},mix(B,C){if(!B||!B.rgb)throw new Error('Argument to "mix" was not a Color instance, but rather an instance of '+typeof B);const l=B.rgb(),Q=this.rgb(),E=C===void 0?.5:C,h=2*E-1,u=l.alpha()-Q.alpha(),d=((h*u===-1?h:(h+u)/(1+h*u))+1)/2,f=1-d;return n.rgb(d*l.red()+f*Q.red(),d*l.green()+f*Q.green(),d*l.blue()+f*Q.blue(),l.alpha()*E+Q.alpha()*(1-E))}};for(const B of Object.keys(A)){if(e.includes(B))continue;const{channels:C}=A[B];n.prototype[B]=function(...l){return this.model===B?new n(this):l.length>0?new n(l,B):new n([...I(A[this.model][B].raw(this.color)),this.valpha],B)},n[B]=function(...l){let Q=l[0];return typeof Q=="number"&&(Q=c(l,C)),new n(Q,B)}}function s(B,C){return Number(B.toFixed(C))}function r(B){return function(C){return s(C,B)}}function a(B,C,l){B=Array.isArray(B)?B:[B];for(const Q of B)(o[Q]||(o[Q]=[]))[C]=l;return B=B[0],function(Q){let E;return Q!==void 0?(l&&(Q=l(Q)),E=this[B](),E.color[C]=Q,E):(E=this[B]().color[C],l&&(E=l(E)),E)}}function g(B){return function(C){return Math.max(0,Math.min(B,C))}}function I(B){return Array.isArray(B)?B:[B]}function c(B,C){for(let l=0;l<C;l++)typeof B[l]!="number"&&(B[l]=0);return B}return aEA=n,aEA}var Q1t=l1t();const mte=_p(Q1t);function E1t(t){if(t.sheet)return t.sheet;for(var A=0;A<document.styleSheets.length;A++)if(document.styleSheets[A].ownerNode===t)return document.styleSheets[A]}function h1t(t){var A=document.createElement("style");return A.setAttribute("data-emotion",t.key),t.nonce!==void 0&&A.setAttribute("nonce",t.nonce),A.appendChild(document.createTextNode("")),A.setAttribute("data-s",""),A}var u1t=(function(){function t(e){var i=this;this._insertTag=function(o){var n;i.tags.length===0?i.insertionPoint?n=i.insertionPoint.nextSibling:i.prepend?n=i.container.firstChild:n=i.before:n=i.tags[i.tags.length-1].nextSibling,i.container.insertBefore(o,n),i.tags.push(o)},this.isSpeedy=e.speedy===void 0?!0:e.speedy,this.tags=[],this.ctr=0,this.nonce=e.nonce,this.key=e.key,this.container=e.container,this.prepend=e.prepend,this.insertionPoint=e.insertionPoint,this.before=null}var A=t.prototype;return A.hydrate=function(i){i.forEach(this._insertTag)},A.insert=function(i){this.ctr%(this.isSpeedy?65e3:1)===0&&this._insertTag(h1t(this));var o=this.tags[this.tags.length-1];if(this.isSpeedy){var n=E1t(o);try{n.insertRule(i,n.cssRules.length)}catch{}}else o.appendChild(document.createTextNode(i));this.ctr++},A.flush=function(){this.tags.forEach(function(i){var o;return(o=i.parentNode)==null?void 0:o.removeChild(i)}),this.tags=[],this.ctr=0},t})(),_u="-ms-",O8="-moz-",Ya="-webkit-",wte="comm",gEA="rule",IEA="decl",d1t="@import",Dte="@keyframes",p1t="@layer",f1t=Math.abs,W8=String.fromCharCode,y1t=Object.assign;function m1t(t,A){return ph(t,0)^45?(((A<<2^ph(t,0))<<2^ph(t,1))<<2^ph(t,2))<<2^ph(t,3):0}function Ste(t){return t.trim()}function w1t(t,A){return(t=A.exec(t))?t[0]:t}function Ja(t,A,e){return t.replace(A,e)}function cEA(t,A){return t.indexOf(A)}function ph(t,A){return t.charCodeAt(A)|0}function tH(t,A,e){return t.slice(A,e)}function Tw(t){return t.length}function BEA(t){return t.length}function Z8(t,A){return A.push(t),t}function D1t(t,A){return t.map(A).join("")}var V8=1,fM=1,bte=0,Vp=0,kl=0,yM="";function j8(t,A,e,i,o,n,s){return{value:t,root:A,parent:e,type:i,props:o,children:n,line:V8,column:fM,length:s,return:""}}function iH(t,A){return y1t(j8("",null,null,"",null,null,0),t,{length:-t.length},A)}function S1t(){return kl}function b1t(){return kl=Vp>0?ph(yM,--Vp):0,fM--,kl===10&&(fM=1,V8--),kl}function o0(){return kl=Vp<bte?ph(yM,Vp++):0,fM++,kl===10&&(fM=1,V8++),kl}function qw(){return ph(yM,Vp)}function z8(){return Vp}function oH(t,A){return tH(yM,t,A)}function nH(t){switch(t){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function xte(t){return V8=fM=1,bte=Tw(yM=t),Vp=0,[]}function kte(t){return yM="",t}function X8(t){return Ste(oH(Vp-1,CEA(t===91?t+2:t===40?t+1:t)))}function x1t(t){for(;(kl=qw())&&kl<33;)o0();return nH(t)>2||nH(kl)>3?"":" "}function k1t(t,A){for(;--A&&o0()&&!(kl<48||kl>102||kl>57&&kl<65||kl>70&&kl<97););return oH(t,z8()+(A<6&&qw()==32&&o0()==32))}function CEA(t){for(;o0();)switch(kl){case t:return Vp;case 34:case 39:t!==34&&t!==39&&CEA(kl);break;case 40:t===41&&CEA(t);break;case 92:o0();break}return Vp}function G1t(t,A){for(;o0()&&t+kl!==57;)if(t+kl===84&&qw()===47)break;return"/*"+oH(A,Vp-1)+"*"+W8(t===47?t:o0())}function F1t(t){for(;!nH(qw());)o0();return oH(t,Vp)}function _1t(t){return kte($8("",null,null,null,[""],t=xte(t),0,[0],t))}function $8(t,A,e,i,o,n,s,r,a){for(var g=0,I=0,c=s,B=0,C=0,l=0,Q=1,E=1,h=1,u=0,d="",f=o,w=n,S=i,D=d;E;)switch(l=u,u=o0()){case 40:if(l!=108&&ph(D,c-1)==58){cEA(D+=Ja(X8(u),"&","&\f"),"&\f")!=-1&&(h=-1);break}case 34:case 39:case 91:D+=X8(u);break;case 9:case 10:case 13:case 32:D+=x1t(l);break;case 92:D+=k1t(z8()-1,7);continue;case 47:switch(qw()){case 42:case 47:Z8(R1t(G1t(o0(),z8()),A,e),a);break;default:D+="/"}break;case 123*Q:r[g++]=Tw(D)*h;case 125*Q:case 59:case 0:switch(u){case 0:case 125:E=0;case 59+I:h==-1&&(D=Ja(D,/\f/g,"")),C>0&&Tw(D)-c&&Z8(C>32?Fte(D+";",i,e,c-1):Fte(Ja(D," ","")+";",i,e,c-2),a);break;case 59:D+=";";default:if(Z8(S=Gte(D,A,e,g,I,o,r,d,f=[],w=[],c),n),u===123)if(I===0)$8(D,A,S,S,f,n,c,r,w);else switch(B===99&&ph(D,3)===110?100:B){case 100:case 108:case 109:case 115:$8(t,S,S,i&&Z8(Gte(t,S,S,0,0,o,r,d,o,f=[],c),w),o,w,c,r,i?f:w);break;default:$8(D,S,S,S,[""],w,0,r,w)}}g=I=C=0,Q=h=1,d=D="",c=s;break;case 58:c=1+Tw(D),C=l;default:if(Q<1){if(u==123)--Q;else if(u==125&&Q++==0&&b1t()==125)continue}switch(D+=W8(u),u*Q){case 38:h=I>0?1:(D+="\f",-1);break;case 44:r[g++]=(Tw(D)-1)*h,h=1;break;case 64:qw()===45&&(D+=X8(o0())),B=qw(),I=c=Tw(d=D+=F1t(z8())),u++;break;case 45:l===45&&Tw(D)==2&&(Q=0)}}return n}function Gte(t,A,e,i,o,n,s,r,a,g,I){for(var c=o-1,B=o===0?n:[""],C=BEA(B),l=0,Q=0,E=0;l<i;++l)for(var h=0,u=tH(t,c+1,c=f1t(Q=s[l])),d=t;h<C;++h)(d=Ste(Q>0?B[h]+" "+u:Ja(u,/&\f/g,B[h])))&&(a[E++]=d);return j8(t,A,e,o===0?gEA:r,a,g,I)}function R1t(t,A,e){return j8(t,A,e,wte,W8(S1t()),tH(t,2,-2),0)}function Fte(t,A,e,i){return j8(t,A,e,IEA,tH(t,0,i),tH(t,i+1,-1),i)}function mM(t,A){for(var e="",i=BEA(t),o=0;o<i;o++)e+=A(t[o],o,t,A)||"";return e}function N1t(t,A,e,i){switch(t.type){case p1t:if(t.children.length)break;case d1t:case IEA:return t.return=t.return||t.value;case wte:return"";case Dte:return t.return=t.value+"{"+mM(t.children,i)+"}";case gEA:t.value=t.props.join(",")}return Tw(e=mM(t.children,i))?t.return=t.value+"{"+e+"}":""}function M1t(t){var A=BEA(t);return function(e,i,o,n){for(var s="",r=0;r<A;r++)s+=t[r](e,i,o,n)||"";return s}}function v1t(t){return function(A){A.root||(A=A.return)&&t(A)}}function U1t(t){var A=Object.create(null);return function(e){return A[e]===void 0&&(A[e]=t(e)),A[e]}}var L1t=function(A,e,i){for(var o=0,n=0;o=n,n=qw(),o===38&&n===12&&(e[i]=1),!nH(n);)o0();return oH(A,Vp)},H1t=function(A,e){var i=-1,o=44;do switch(nH(o)){case 0:o===38&&qw()===12&&(e[i]=1),A[i]+=L1t(Vp-1,e,i);break;case 2:A[i]+=X8(o);break;case 4:if(o===44){A[++i]=qw()===58?"&\f":"",e[i]=A[i].length;break}default:A[i]+=W8(o)}while(o=o0());return A},Y1t=function(A,e){return kte(H1t(xte(A),e))},_te=new WeakMap,J1t=function(A){if(!(A.type!=="rule"||!A.parent||A.length<1)){for(var e=A.value,i=A.parent,o=A.column===i.column&&A.line===i.line;i.type!=="rule";)if(i=i.parent,!i)return;if(!(A.props.length===1&&e.charCodeAt(0)!==58&&!_te.get(i))&&!o){_te.set(A,!0);for(var n=[],s=Y1t(e,n),r=i.props,a=0,g=0;a<s.length;a++)for(var I=0;I<r.length;I++,g++)A.props[g]=n[a]?s[a].replace(/&\f/g,r[I]):r[I]+" "+s[a]}}},K1t=function(A){if(A.type==="decl"){var e=A.value;e.charCodeAt(0)===108&&e.charCodeAt(2)===98&&(A.return="",A.value="")}};function Rte(t,A){switch(m1t(t,A)){case 5103:return Ya+"print-"+t+t;case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:return Ya+t+t;case 5349:case 4246:case 4810:case 6968:case 2756:return Ya+t+O8+t+_u+t+t;case 6828:case 4268:return Ya+t+_u+t+t;case 6165:return Ya+t+_u+"flex-"+t+t;case 5187:return Ya+t+Ja(t,/(\w+).+(:[^]+)/,Ya+"box-$1$2"+_u+"flex-$1$2")+t;case 5443:return Ya+t+_u+"flex-item-"+Ja(t,/flex-|-self/,"")+t;case 4675:return Ya+t+_u+"flex-line-pack"+Ja(t,/align-content|flex-|-self/,"")+t;case 5548:return Ya+t+_u+Ja(t,"shrink","negative")+t;case 5292:return Ya+t+_u+Ja(t,"basis","preferred-size")+t;case 6060:return Ya+"box-"+Ja(t,"-grow","")+Ya+t+_u+Ja(t,"grow","positive")+t;case 4554:return Ya+Ja(t,/([^-])(transform)/g,"$1"+Ya+"$2")+t;case 6187:return Ja(Ja(Ja(t,/(zoom-|grab)/,Ya+"$1"),/(image-set)/,Ya+"$1"),t,"")+t;case 5495:case 3959:return Ja(t,/(image-set\([^]*)/,Ya+"$1$`$1");case 4968:return Ja(Ja(t,/(.+:)(flex-)?(.*)/,Ya+"box-pack:$3"+_u+"flex-pack:$3"),/s.+-b[^;]+/,"justify")+Ya+t+t;case 4095:case 3583:case 4068:case 2532:return Ja(t,/(.+)-inline(.+)/,Ya+"$1$2")+t;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(Tw(t)-1-A>6)switch(ph(t,A+1)){case 109:if(ph(t,A+4)!==45)break;case 102:return Ja(t,/(.+:)(.+)-([^]+)/,"$1"+Ya+"$2-$3$1"+O8+(ph(t,A+3)==108?"$3":"$2-$3"))+t;case 115:return~cEA(t,"stretch")?Rte(Ja(t,"stretch","fill-available"),A)+t:t}break;case 4949:if(ph(t,A+1)!==115)break;case 6444:switch(ph(t,Tw(t)-3-(~cEA(t,"!important")&&10))){case 107:return Ja(t,":",":"+Ya)+t;case 101:return Ja(t,/(.+:)([^;!]+)(;|!.+)?/,"$1"+Ya+(ph(t,14)===45?"inline-":"")+"box$3$1"+Ya+"$2$3$1"+_u+"$2box$3")+t}break;case 5936:switch(ph(t,A+11)){case 114:return Ya+t+_u+Ja(t,/[svh]\w+-[tblr]{2}/,"tb")+t;case 108:return Ya+t+_u+Ja(t,/[svh]\w+-[tblr]{2}/,"tb-rl")+t;case 45:return Ya+t+_u+Ja(t,/[svh]\w+-[tblr]{2}/,"lr")+t}return Ya+t+_u+t+t}return t}var T1t=function(A,e,i,o){if(A.length>-1&&!A.return)switch(A.type){case IEA:A.return=Rte(A.value,A.length);break;case Dte:return mM([iH(A,{value:Ja(A.value,"@","@"+Ya)})],o);case gEA:if(A.length)return D1t(A.props,function(n){switch(w1t(n,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return mM([iH(A,{props:[Ja(n,/:(read-\w+)/,":"+O8+"$1")]})],o);case"::placeholder":return mM([iH(A,{props:[Ja(n,/:(plac\w+)/,":"+Ya+"input-$1")]}),iH(A,{props:[Ja(n,/:(plac\w+)/,":"+O8+"$1")]}),iH(A,{props:[Ja(n,/:(plac\w+)/,_u+"input-$1")]})],o)}return""})}},q1t=[T1t],P1t=function(A){var e=A.key;if(e==="css"){var i=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(i,function(Q){var E=Q.getAttribute("data-emotion");E.indexOf(" ")!==-1&&(document.head.appendChild(Q),Q.setAttribute("data-s",""))})}var o=A.stylisPlugins||q1t,n={},s,r=[];s=A.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+e+' "]'),function(Q){for(var E=Q.getAttribute("data-emotion").split(" "),h=1;h<E.length;h++)n[E[h]]=!0;r.push(Q)});var a,g=[J1t,K1t];{var I,c=[N1t,v1t(function(Q){I.insert(Q)})],B=M1t(g.concat(o,c)),C=function(E){return mM(_1t(E),B)};a=function(E,h,u,d){I=u,C(E?E+"{"+h.styles+"}":h.styles),d&&(l.inserted[h.name]=!0)}}var l={key:e,sheet:new u1t({key:e,container:s,nonce:A.nonce,speedy:A.speedy,prepend:A.prepend,insertionPoint:A.insertionPoint}),nonce:A.nonce,inserted:n,registered:{},insert:a};return l.sheet.hydrate(r),l};function O1t(t){for(var A=0,e,i=0,o=t.length;o>=4;++i,o-=4)e=t.charCodeAt(i)&255|(t.charCodeAt(++i)&255)<<8|(t.charCodeAt(++i)&255)<<16|(t.charCodeAt(++i)&255)<<24,e=(e&65535)*1540483477+((e>>>16)*59797<<16),e^=e>>>24,A=(e&65535)*1540483477+((e>>>16)*59797<<16)^(A&65535)*1540483477+((A>>>16)*59797<<16);switch(o){case 3:A^=(t.charCodeAt(i+2)&255)<<16;case 2:A^=(t.charCodeAt(i+1)&255)<<8;case 1:A^=t.charCodeAt(i)&255,A=(A&65535)*1540483477+((A>>>16)*59797<<16)}return A^=A>>>13,A=(A&65535)*1540483477+((A>>>16)*59797<<16),((A^A>>>15)>>>0).toString(36)}var W1t={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,scale:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},Z1t=/[A-Z]|^ms/g,V1t=/_EMO_([^_]+?)_([^]*?)_EMO_/g,Nte=function(A){return A.charCodeAt(1)===45},Mte=function(A){return A!=null&&typeof A!="boolean"},lEA=U1t(function(t){return Nte(t)?t:t.replace(Z1t,"-$&").toLowerCase()}),vte=function(A,e){switch(A){case"animation":case"animationName":if(typeof e=="string")return e.replace(V1t,function(i,o,n){return Lx={name:o,styles:n,next:Lx},o})}return W1t[A]!==1&&!Nte(A)&&typeof e=="number"&&e!==0?e+"px":e};function AW(t,A,e){if(e==null)return"";var i=e;if(i.__emotion_styles!==void 0)return i;switch(typeof e){case"boolean":return"";case"object":{var o=e;if(o.anim===1)return Lx={name:o.name,styles:o.styles,next:Lx},o.name;var n=e;if(n.styles!==void 0){var s=n.next;if(s!==void 0)for(;s!==void 0;)Lx={name:s.name,styles:s.styles,next:Lx},s=s.next;var r=n.styles+";";return r}return j1t(t,A,e)}}var a=e;if(A==null)return a;var g=A[a];return g!==void 0?g:a}function j1t(t,A,e){var i="";if(Array.isArray(e))for(var o=0;o<e.length;o++)i+=AW(t,A,e[o])+";";else for(var n in e){var s=e[n];if(typeof s!="object"){var r=s;A!=null&&A[r]!==void 0?i+=n+"{"+A[r]+"}":Mte(r)&&(i+=lEA(n)+":"+vte(n,r)+";")}else if(Array.isArray(s)&&typeof s[0]=="string"&&(A==null||A[s[0]]===void 0))for(var a=0;a<s.length;a++)Mte(s[a])&&(i+=lEA(n)+":"+vte(n,s[a])+";");else{var g=AW(t,A,s);switch(n){case"animation":case"animationName":{i+=lEA(n)+":"+g+";";break}default:i+=n+"{"+g+"}"}}}return i}var Ute=/label:\s*([^\s;{]+)\s*(;|$)/g,Lx;function QEA(t,A,e){if(t.length===1&&typeof t[0]=="object"&&t[0]!==null&&t[0].styles!==void 0)return t[0];var i=!0,o="";Lx=void 0;var n=t[0];if(n==null||n.raw===void 0)i=!1,o+=AW(e,A,n);else{var s=n;o+=s[0]}for(var r=1;r<t.length;r++)if(o+=AW(e,A,t[r]),i){var a=n;o+=a[r]}Ute.lastIndex=0;for(var g="",I;(I=Ute.exec(o))!==null;)g+="-"+I[1];var c=O1t(o)+g;return{name:c,styles:o,next:Lx}}function Lte(t,A,e){var i="";return e.split(" ").forEach(function(o){t[o]!==void 0?A.push(t[o]+";"):o&&(i+=o+" ")}),i}var z1t=function(A,e,i){var o=A.key+"-"+e.name;A.registered[o]===void 0&&(A.registered[o]=e.styles)},X1t=function(A,e,i){z1t(A,e);var o=A.key+"-"+e.name;if(A.inserted[e.name]===void 0){var n=e;do A.insert(e===n?"."+o:"",n,A.sheet,!0),n=n.next;while(n!==void 0)}};function Hte(t,A){if(t.inserted[A.name]===void 0)return t.insert("",A,t.sheet,!0)}function Yte(t,A,e){var i=[],o=Lte(t,i,e);return i.length<2?e:o+A(i)}var $1t=function(A){var e=P1t(A);e.sheet.speedy=function(r){this.isSpeedy=r},e.compat=!0;var i=function(){for(var a=arguments.length,g=new Array(a),I=0;I<a;I++)g[I]=arguments[I];var c=QEA(g,e.registered,void 0);return X1t(e,c),e.key+"-"+c.name},o=function(){for(var a=arguments.length,g=new Array(a),I=0;I<a;I++)g[I]=arguments[I];var c=QEA(g,e.registered),B="animation-"+c.name;return Hte(e,{name:c.name,styles:"@keyframes "+B+"{"+c.styles+"}"}),B},n=function(){for(var a=arguments.length,g=new Array(a),I=0;I<a;I++)g[I]=arguments[I];var c=QEA(g,e.registered);Hte(e,c)},s=function(){for(var a=arguments.length,g=new Array(a),I=0;I<a;I++)g[I]=arguments[I];return Yte(e.registered,i,A2t(g))};return{css:i,cx:s,injectGlobal:n,keyframes:o,hydrate:function(a){a.forEach(function(g){e.inserted[g]=!0})},flush:function(){e.registered={},e.inserted={},e.sheet.flush()},sheet:e.sheet,cache:e,getRegisteredStyles:Lte.bind(null,e.registered),merge:Yte.bind(null,e.registered,i)}},A2t=function t(A){for(var e="",i=0;i<A.length;i++){var o=A[i];if(o!=null){var n=void 0;switch(typeof o){case"boolean":break;case"object":{if(Array.isArray(o))n=t(o);else{n="";for(var s in o)o[s]&&s&&(n&&(n+=" "),n+=s)}break}default:n=o}n&&(e&&(e+=" "),e+=n)}}return e},e2t=$1t({key:"css"}),wM=e2t.css,t2t=Object.create,Jte=Object.defineProperty,i2t=Object.getOwnPropertyDescriptor,Kte=Object.getOwnPropertyNames,o2t=Object.getPrototypeOf,n2t=Object.prototype.hasOwnProperty,xa=(t,A)=>function(){return A||(0,t[Kte(t)[0]])((A={exports:{}}).exports,A),A.exports},s2t=(t,A,e,i)=>{if(A&&typeof A=="object"||typeof A=="function")for(let o of Kte(A))!n2t.call(t,o)&&o!==e&&Jte(t,o,{get:()=>A[o],enumerable:!(i=i2t(A,o))||i.enumerable});return t},Tte=(t,A,e)=>(e=t!=null?t2t(o2t(t)):{},s2t(Jte(e,"default",{value:t,enumerable:!0}),t)),r2t=xa({"node_modules/svgson/dist/svgson.umd.js"(t,A){(function(e,i){typeof t=="object"&&typeof A<"u"?A.exports=i():typeof define=="function"&&define.amd?define(i):(e=typeof globalThis<"u"?globalThis:e||self,e.svgson=i())})(t,function(){var e=function(tA){return tA!=null&&(i(tA)||o(tA)||!!tA._isBuffer)};function i(tA){return!!tA.constructor&&typeof tA.constructor.isBuffer=="function"&&tA.constructor.isBuffer(tA)}function o(tA){return typeof tA.readFloatLE=="function"&&typeof tA.slice=="function"&&i(tA.slice(0,0))}var n=Object.prototype.toString,s=function(sA){if(typeof sA>"u")return"undefined";if(sA===null)return"null";if(sA===!0||sA===!1||sA instanceof Boolean)return"boolean";if(typeof sA=="string"||sA instanceof String)return"string";if(typeof sA=="number"||sA instanceof Number)return"number";if(typeof sA=="function"||sA instanceof Function)return"function";if(typeof Array.isArray<"u"&&Array.isArray(sA))return"array";if(sA instanceof RegExp)return"regexp";if(sA instanceof Date)return"date";var gA=n.call(sA);return gA==="[object RegExp]"?"regexp":gA==="[object Date]"?"date":gA==="[object Arguments]"?"arguments":gA==="[object Error]"?"error":e(sA)?"buffer":gA==="[object Set]"?"set":gA==="[object WeakSet]"?"weakset":gA==="[object Map]"?"map":gA==="[object WeakMap]"?"weakmap":gA==="[object Symbol]"?"symbol":gA==="[object Int8Array]"?"int8array":gA==="[object Uint8Array]"?"uint8array":gA==="[object Uint8ClampedArray]"?"uint8clampedarray":gA==="[object Int16Array]"?"int16array":gA==="[object Uint16Array]"?"uint16array":gA==="[object Int32Array]"?"int32array":gA==="[object Uint32Array]"?"uint32array":gA==="[object Float32Array]"?"float32array":gA==="[object Float64Array]"?"float64array":"object"};function r(tA,sA){return sA={exports:{}},tA(sA,sA.exports),sA.exports}var a=r(function(tA){(function(){function sA(gA,pA){if(typeof pA!="function")return gA;var xA={};for(var _A in gA)Object.prototype.hasOwnProperty.call(gA,_A)&&(xA[pA(_A,gA[_A])||_A]=gA[_A]);return xA}tA.exports?tA.exports=sA:window.rename=sA})()}),g=function tA(sA,gA){var pA=s(sA);if(pA!=="object"&&pA!=="array")throw new Error("expected an object");var xA=[];pA==="object"&&(sA=a(sA,gA),xA={});for(var _A in sA)if(sA.hasOwnProperty(_A)){var MA=sA[_A];s(MA)==="object"||s(MA)==="array"?xA[_A]=tA(MA,gA):xA[_A]=MA}return xA},I=r(function(tA){var sA=Object.prototype.hasOwnProperty,gA="~";function pA(){}Object.create&&(pA.prototype=Object.create(null),new pA().__proto__||(gA=!1));function xA(MA,PA,BA){this.fn=MA,this.context=PA,this.once=BA||!1}function _A(){this._events=new pA,this._eventsCount=0}_A.prototype.eventNames=function(){var PA=[],BA,yA;if(this._eventsCount===0)return PA;for(yA in BA=this._events)sA.call(BA,yA)&&PA.push(gA?yA.slice(1):yA);return Object.getOwnPropertySymbols?PA.concat(Object.getOwnPropertySymbols(BA)):PA},_A.prototype.listeners=function(PA,BA){var yA=gA?gA+PA:PA,uA=this._events[yA];if(BA)return!!uA;if(!uA)return[];if(uA.fn)return[uA.fn];for(var qA=0,ee=uA.length,Be=new Array(ee);qA<ee;qA++)Be[qA]=uA[qA].fn;return Be},_A.prototype.emit=function(PA,BA,yA,uA,qA,ee){var Be=gA?gA+PA:PA;if(!this._events[Be])return!1;var mA=this._events[Be],WA=arguments.length,KA,JA;if(mA.fn){switch(mA.once&&this.removeListener(PA,mA.fn,void 0,!0),WA){case 1:return mA.fn.call(mA.context),!0;case 2:return mA.fn.call(mA.context,BA),!0;case 3:return mA.fn.call(mA.context,BA,yA),!0;case 4:return mA.fn.call(mA.context,BA,yA,uA),!0;case 5:return mA.fn.call(mA.context,BA,yA,uA,qA),!0;case 6:return mA.fn.call(mA.context,BA,yA,uA,qA,ee),!0}for(JA=1,KA=new Array(WA-1);JA<WA;JA++)KA[JA-1]=arguments[JA];mA.fn.apply(mA.context,KA)}else{var jA=mA.length,FA;for(JA=0;JA<jA;JA++)switch(mA[JA].once&&this.removeListener(PA,mA[JA].fn,void 0,!0),WA){case 1:mA[JA].fn.call(mA[JA].context);break;case 2:mA[JA].fn.call(mA[JA].context,BA);break;case 3:mA[JA].fn.call(mA[JA].context,BA,yA);break;case 4:mA[JA].fn.call(mA[JA].context,BA,yA,uA);break;default:if(!KA)for(FA=1,KA=new Array(WA-1);FA<WA;FA++)KA[FA-1]=arguments[FA];mA[JA].fn.apply(mA[JA].context,KA)}}return!0},_A.prototype.on=function(PA,BA,yA){var uA=new xA(BA,yA||this),qA=gA?gA+PA:PA;return this._events[qA]?this._events[qA].fn?this._events[qA]=[this._events[qA],uA]:this._events[qA].push(uA):(this._events[qA]=uA,this._eventsCount++),this},_A.prototype.once=function(PA,BA,yA){var uA=new xA(BA,yA||this,!0),qA=gA?gA+PA:PA;return this._events[qA]?this._events[qA].fn?this._events[qA]=[this._events[qA],uA]:this._events[qA].push(uA):(this._events[qA]=uA,this._eventsCount++),this},_A.prototype.removeListener=function(PA,BA,yA,uA){var qA=gA?gA+PA:PA;if(!this._events[qA])return this;if(!BA)return--this._eventsCount===0?this._events=new pA:delete this._events[qA],this;var ee=this._events[qA];if(ee.fn)ee.fn===BA&&(!uA||ee.once)&&(!yA||ee.context===yA)&&(--this._eventsCount===0?this._events=new pA:delete this._events[qA]);else{for(var Be=0,mA=[],WA=ee.length;Be<WA;Be++)(ee[Be].fn!==BA||uA&&!ee[Be].once||yA&&ee[Be].context!==yA)&&mA.push(ee[Be]);mA.length?this._events[qA]=mA.length===1?mA[0]:mA:--this._eventsCount===0?this._events=new pA:delete this._events[qA]}return this},_A.prototype.removeAllListeners=function(PA){var BA;return PA?(BA=gA?gA+PA:PA,this._events[BA]&&(--this._eventsCount===0?this._events=new pA:delete this._events[BA])):(this._events=new pA,this._eventsCount=0),this},_A.prototype.off=_A.prototype.removeListener,_A.prototype.addListener=_A.prototype.on,_A.prototype.setMaxListeners=function(){return this},_A.prefixed=gA,_A.EventEmitter=_A,tA.exports=_A});function c(tA,sA,gA){return sA in tA?Object.defineProperty(tA,sA,{value:gA,enumerable:!0,configurable:!0,writable:!0}):tA[sA]=gA,tA}var B=function(){},C={data:"state-data",cdata:"state-cdata",tagBegin:"state-tag-begin",tagName:"state-tag-name",tagEnd:"state-tag-end",attributeNameStart:"state-attribute-name-start",attributeName:"state-attribute-name",attributeNameEnd:"state-attribute-name-end",attributeValueBegin:"state-attribute-value-begin",attributeValue:"state-attribute-value"},l={lt:"action-lt",gt:"action-gt",space:"action-space",equal:"action-equal",quote:"action-quote",slash:"action-slash",char:"action-char",error:"action-error"},Q={text:"text",openTag:"open-tag",closeTag:"close-tag",attributeName:"attribute-name",attributeValue:"attribute-value"},E={" ":l.space," ":l.space,"\n":l.space,"\r":l.space,"<":l.lt,">":l.gt,'"':l.quote,"'":l.quote,"=":l.equal,"/":l.slash},h=function(sA){return E[sA]||l.char},u=function(sA){var gA,pA,xA,_A,MA,PA,BA,yA,uA,qA;sA=Object.assign({debug:!1},sA);var ee=new I,Be=C.data,mA="",WA="",KA="",JA="",jA="",FA="",SA=function(TA,OA){if(!(WA[0]==="?"||WA[0]==="!")){var ie={type:TA,value:OA};sA.debug&&console.log("emit:",ie),ee.emit("data",ie)}};ee.stateMachine=(qA={},c(qA,C.data,(gA={},c(gA,l.lt,function(){mA.trim()&&SA(Q.text,mA),WA="",jA=!1,Be=C.tagBegin}),c(gA,l.char,function(GA){mA+=GA}),gA)),c(qA,C.cdata,c({},l.char,function(GA){mA+=GA,mA.substr(-3)==="]]>"&&(SA(Q.text,mA.slice(0,-3)),mA="",Be=C.data)})),c(qA,C.tagBegin,(pA={},c(pA,l.space,B),c(pA,l.char,function(GA){WA=GA,Be=C.tagName}),c(pA,l.slash,function(){WA="",jA=!0}),pA)),c(qA,C.tagName,(xA={},c(xA,l.space,function(){jA?Be=C.tagEnd:(Be=C.attributeNameStart,SA(Q.openTag,WA))}),c(xA,l.gt,function(){SA(jA?Q.closeTag:Q.openTag,WA),mA="",Be=C.data}),c(xA,l.slash,function(){Be=C.tagEnd,SA(Q.openTag,WA)}),c(xA,l.char,function(GA){WA+=GA,WA==="![CDATA["&&(Be=C.cdata,mA="",WA="")}),xA)),c(qA,C.tagEnd,(_A={},c(_A,l.gt,function(){SA(Q.closeTag,WA),mA="",Be=C.data}),c(_A,l.char,B),_A)),c(qA,C.attributeNameStart,(MA={},c(MA,l.char,function(GA){KA=GA,Be=C.attributeName}),c(MA,l.gt,function(){mA="",Be=C.data}),c(MA,l.space,B),c(MA,l.slash,function(){jA=!0,Be=C.tagEnd}),MA)),c(qA,C.attributeName,(PA={},c(PA,l.space,function(){Be=C.attributeNameEnd}),c(PA,l.equal,function(){SA(Q.attributeName,KA),Be=C.attributeValueBegin}),c(PA,l.gt,function(){JA="",SA(Q.attributeName,KA),SA(Q.attributeValue,JA),mA="",Be=C.data}),c(PA,l.slash,function(){jA=!0,JA="",SA(Q.attributeName,KA),SA(Q.attributeValue,JA),Be=C.tagEnd}),c(PA,l.char,function(GA){KA+=GA}),PA)),c(qA,C.attributeNameEnd,(BA={},c(BA,l.space,B),c(BA,l.equal,function(){SA(Q.attributeName,KA),Be=C.attributeValueBegin}),c(BA,l.gt,function(){JA="",SA(Q.attributeName,KA),SA(Q.attributeValue,JA),mA="",Be=C.data}),c(BA,l.char,function(GA){JA="",SA(Q.attributeName,KA),SA(Q.attributeValue,JA),KA=GA,Be=C.attributeName}),BA)),c(qA,C.attributeValueBegin,(yA={},c(yA,l.space,B),c(yA,l.quote,function(GA){FA=GA,JA="",Be=C.attributeValue}),c(yA,l.gt,function(){JA="",SA(Q.attributeValue,JA),mA="",Be=C.data}),c(yA,l.char,function(GA){FA="",JA=GA,Be=C.attributeValue}),yA)),c(qA,C.attributeValue,(uA={},c(uA,l.space,function(GA){FA?JA+=GA:(SA(Q.attributeValue,JA),Be=C.attributeNameStart)}),c(uA,l.quote,function(GA){FA===GA?(SA(Q.attributeValue,JA),Be=C.attributeNameStart):JA+=GA}),c(uA,l.gt,function(GA){FA?JA+=GA:(SA(Q.attributeValue,JA),mA="",Be=C.data)}),c(uA,l.slash,function(GA){FA?JA+=GA:(SA(Q.attributeValue,JA),jA=!0,Be=C.tagEnd)}),c(uA,l.char,function(GA){JA+=GA}),uA)),qA);var LA=function(TA){sA.debug&&console.log(Be,TA);var OA=ee.stateMachine[Be],ie=OA[h(TA)]||OA[l.error]||OA[l.char];ie(TA)};return ee.write=function(GA){for(var TA=GA.length,OA=0;OA<TA;OA++)LA(GA[OA])},ee},d={State:C,Action:l,Type:Q,create:u},f=d.Type,w={element:"element",text:"text"},S=function(sA){return Object.assign({name:"",type:w.element,value:"",parent:null,attributes:{},children:[]},sA)},D=function(sA){sA=Object.assign({stream:!1,parentNodes:!0,doneEvent:"done",tagPrefix:"tag:",emitTopLevelOnly:!1,debug:!1},sA);var gA=void 0,pA=void 0,xA=void 0,_A=void 0,MA=new I,PA=function(yA){switch(yA.type){case f.openTag:if(xA===null)xA=pA,xA.name=yA.value;else{var uA=S({name:yA.value,parent:xA});xA.children.push(uA),xA=uA}break;case f.closeTag:var qA=xA.parent;if(sA.parentNodes||(xA.parent=null),xA.name!==yA.value)break;sA.stream&&qA===pA&&(pA.children=[],xA.parent=null),(!sA.emitTopLevelOnly||qA===pA)&&(MA.emit(sA.tagPrefix+xA.name,xA),MA.emit("tag",xA.name,xA)),xA===pA&&(gA.removeAllListeners("data"),MA.emit(sA.doneEvent,xA),pA=null),xA=qA;break;case f.text:xA&&xA.children.push(S({type:w.text,value:yA.value,parent:sA.parentNodes?xA:null}));break;case f.attributeName:_A=yA.value,xA.attributes[_A]="";break;case f.attributeValue:xA.attributes[_A]=yA.value;break}};return MA.reset=function(){gA=d.create({debug:sA.debug}),gA.on("data",PA),pA=S(),xA=null,_A="",MA.parse=gA.write},MA.reset(),MA},x=function(sA,gA){gA=Object.assign({},gA,{stream:!1,tagPrefix:":"});var pA=D(gA),xA=void 0;return pA.on("done",function(_A){xA=_A}),pA.parse(sA),xA},F={parseSync:x},k=F.parseSync,U=function(sA){var gA=k("<root>".concat(sA,"</root>"),{parentNodes:!1}),pA=gA.children&&gA.children.length>0&&gA.children.every(function(xA){return xA.name==="svg"});if(pA)return gA.children.length===1?gA.children[0]:gA.children;throw Error("nothing to parse")},N=function(sA){return g(sA,function(gA){return q(gA)?gA:Y(gA)})},Y=function(sA){return sA.replace(/[-|:]([a-z])/gi,function(gA,pA){return pA.toUpperCase()})},q=function(sA){return/^(data|aria)(-\w+)/.test(sA)},K=function(sA){if(sA){var gA=String(sA);return/[&<>]/.test(gA)?"<![CDATA[".concat(gA.replace(/]]>/,"]]]]><![CDATA[>"),"]]>"):gA}return""},O=function(sA){return String(sA).replace(/&/g,"&amp;").replace(/'/g,"&apos;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")},W=function(sA){var gA=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},pA=gA.transformNode,xA=pA===void 0?function(BA){return BA}:pA,_A=gA.camelcase,MA=_A===void 0?!1:_A,PA=function(yA){var uA;return uA=xA(yA),MA&&(uA=N(uA)),uA};return PA(U(sA))};function $(){for(var tA=arguments.length,sA=new Array(tA),gA=0;gA<tA;gA++)sA[gA]=arguments[gA];return new Promise(function(pA,xA){try{var _A=W.apply(void 0,sA);pA(_A)}catch(MA){xA(MA)}})}var oA=function tA(sA){var gA=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},pA=gA.transformAttr,xA=pA===void 0?function(Be,mA,WA){return"".concat(Be,'="').concat(WA(mA),'"')}:pA,_A=gA.transformNode,MA=_A===void 0?function(Be){return Be}:_A,PA=gA.selfClose,BA=PA===void 0?!0:PA;if(Array.isArray(sA))return sA.map(function(Be){return tA(Be,{transformAttr:xA,selfClose:BA,transformNode:MA})}).join("");var yA=MA(sA);if(yA.type==="text")return K(yA.value);var uA="";for(var qA in yA.attributes){var ee=xA(qA,yA.attributes[qA],O,yA.name);uA+=ee?" ".concat(ee):""}return yA.children&&yA.children.length>0||!BA?"<".concat(yA.name).concat(uA,">").concat(tA(yA.children,{transformAttr:xA,transformNode:MA,selfClose:BA}),"</").concat(yA.name,">"):"<".concat(yA.name).concat(uA,"/>")},IA=Object.assign({},{parse:$,parseSync:W,stringify:oA});return IA})}}),EEA=xa({"node_modules/js-beautify/js/src/core/output.js"(t,A){function e(n){this.__parent=n,this.__character_count=0,this.__indent_count=-1,this.__alignment_count=0,this.__wrap_point_index=0,this.__wrap_point_character_count=0,this.__wrap_point_indent_count=-1,this.__wrap_point_alignment_count=0,this.__items=[]}e.prototype.clone_empty=function(){var n=new e(this.__parent);return n.set_indent(this.__indent_count,this.__alignment_count),n},e.prototype.item=function(n){return n<0?this.__items[this.__items.length+n]:this.__items[n]},e.prototype.has_match=function(n){for(var s=this.__items.length-1;s>=0;s--)if(this.__items[s].match(n))return!0;return!1},e.prototype.set_indent=function(n,s){this.is_empty()&&(this.__indent_count=n||0,this.__alignment_count=s||0,this.__character_count=this.__parent.get_indent_size(this.__indent_count,this.__alignment_count))},e.prototype._set_wrap_point=function(){this.__parent.wrap_line_length&&(this.__wrap_point_index=this.__items.length,this.__wrap_point_character_count=this.__character_count,this.__wrap_point_indent_count=this.__parent.next_line.__indent_count,this.__wrap_point_alignment_count=this.__parent.next_line.__alignment_count)},e.prototype._should_wrap=function(){return this.__wrap_point_index&&this.__character_count>this.__parent.wrap_line_length&&this.__wrap_point_character_count>this.__parent.next_line.__character_count},e.prototype._allow_wrap=function(){if(this._should_wrap()){this.__parent.add_new_line();var n=this.__parent.current_line;return n.set_indent(this.__wrap_point_indent_count,this.__wrap_point_alignment_count),n.__items=this.__items.slice(this.__wrap_point_index),this.__items=this.__items.slice(0,this.__wrap_point_index),n.__character_count+=this.__character_count-this.__wrap_point_character_count,this.__character_count=this.__wrap_point_character_count,n.__items[0]===" "&&(n.__items.splice(0,1),n.__character_count-=1),!0}return!1},e.prototype.is_empty=function(){return this.__items.length===0},e.prototype.last=function(){return this.is_empty()?null:this.__items[this.__items.length-1]},e.prototype.push=function(n){this.__items.push(n);var s=n.lastIndexOf(`
5299
+ `)},JMt=(t,A)=>{if(typeof window>"u")return A;try{const e=localStorage.getItem(t);return e!==null?JSON.parse(e):A}catch{return A}},KMt=(t,A)=>{if(!(typeof window>"u"))try{localStorage.setItem(t,JSON.stringify(A))}catch{}},uQA=AA.createContext(null),TMt=5,qMt=(t,A)=>!t&&!A?!0:!t||!A?!1:t.minX===A.minX&&t.maxX===A.maxX&&t.minY===A.minY&&t.maxY===A.maxY,PMt=({children:t})=>{if(AA.useContext(uQA))return Z.jsx(Z.Fragment,{children:t});const e=AA.useRef({pointer:null,boundingBoxes:new Map,hoveringIds:new Set,subscribers:new Set,mouseDownPosition:null}),i=AA.useCallback(()=>{for(const c of e.current.subscribers)c()},[]),o=AA.useCallback(()=>{const c=e.current.pointer,B=new Set;if(c)for(const[l,Q]of e.current.boundingBoxes){const E=Q.bounds;E&&c.x>=E.minX&&c.x<=E.maxX&&c.y>=E.minY&&c.y<=E.maxY&&B.add(l)}const C=e.current.hoveringIds;B.size===C.size&&[...B].every(l=>C.has(l))||(e.current.hoveringIds=B,i())},[i]),n=AA.useCallback((c,B)=>{e.current.boundingBoxes.set(c,B),o()},[o]),s=AA.useCallback((c,B)=>{const C=e.current.boundingBoxes.get(c);C&&qMt(C.bounds,B.bounds)&&C.onClick===B.onClick||(e.current.boundingBoxes.set(c,B),o())},[o]),r=AA.useCallback(c=>{e.current.boundingBoxes.delete(c)&&o()},[o]),a=AA.useCallback(c=>(e.current.subscribers.add(c),()=>{e.current.subscribers.delete(c)}),[]),g=AA.useCallback(c=>e.current.hoveringIds.has(c),[]);AA.useEffect(()=>{const c=Q=>{const{clientX:E,clientY:h}=Q,u=e.current.pointer;u&&u.x===E&&u.y===h||(e.current.pointer={x:E,y:h},o())},B=()=>{e.current.pointer!==null&&(e.current.pointer=null,e.current.mouseDownPosition=null,o())},C=Q=>{e.current.mouseDownPosition={x:Q.clientX,y:Q.clientY}},l=Q=>{const{clientX:E,clientY:h}=Q,u=e.current.mouseDownPosition;if(u&&Math.sqrt(Math.pow(E-u.x,2)+Math.pow(h-u.y,2))>TMt){e.current.mouseDownPosition=null;return}e.current.mouseDownPosition=null;for(const d of e.current.boundingBoxes.values()){const f=d.bounds;f&&E>=f.minX&&E<=f.maxX&&h>=f.minY&&h<=f.maxY&&d.onClick?.(Q)}};return window.addEventListener("pointermove",c,{passive:!0}),window.addEventListener("pointerdown",c,{passive:!0}),window.addEventListener("pointerup",c,{passive:!0}),window.addEventListener("pointerleave",B),window.addEventListener("pointercancel",B),window.addEventListener("blur",B),window.addEventListener("mousedown",C,{passive:!0}),window.addEventListener("click",l,{passive:!0}),()=>{window.removeEventListener("pointermove",c),window.removeEventListener("pointerdown",c),window.removeEventListener("pointerup",c),window.removeEventListener("pointerleave",B),window.removeEventListener("pointercancel",B),window.removeEventListener("blur",B),window.removeEventListener("mousedown",C),window.removeEventListener("click",l)}},[o]);const I=AA.useMemo(()=>({registerBoundingBox:n,updateBoundingBox:s,unregisterBoundingBox:r,subscribe:a,isHovering:g}),[n,s,r,a,g]);return Z.jsx(uQA.Provider,{value:I,children:t})},OMt=t=>{const A=AA.useContext(uQA);if(!A)throw new Error("useMouseEventsOverBoundingBox must be used within a MouseTracker");const e=AA.useId(),i=AA.useRef(t);i.current=t;const o=AA.useMemo(()=>s=>{i.current.onClick?.(s)},[]);return AA.useEffect(()=>(A.registerBoundingBox(e,{bounds:i.current.bounds,onClick:i.current.onClick?o:void 0}),()=>{A.unregisterBoundingBox(e)}),[A,o,e]),AA.useEffect(()=>{A.updateBoundingBox(e,{bounds:i.current.bounds,onClick:i.current.onClick?o:void 0})},[A,o,e,t.bounds?.minX,t.bounds?.maxX,t.bounds?.minY,t.bounds?.maxY,t.onClick]),{hovering:AA.useSyncExternalStore(A.subscribe,()=>A.isHovering(e),()=>!1)}},WMt=(t,A)=>!t&&!A?!0:!t||!A?!1:Math.abs(t.bounds.minX-A.bounds.minX)<.5&&Math.abs(t.bounds.maxX-A.bounds.maxX)<.5&&Math.abs(t.bounds.minY-A.bounds.minY)<.5&&Math.abs(t.bounds.maxY-A.bounds.maxY)<.5&&Math.abs(t.rect.left-A.rect.left)<.5&&Math.abs(t.rect.top-A.rect.top)<.5&&Math.abs(t.rect.width-A.rect.width)<.5&&Math.abs(t.rect.height-A.rect.height)<.5,ZMt=({componentId:t,svgDivRef:A,containerRef:e,onComponentClick:i,onHoverChange:o,showOutline:n,circuitJsonKey:s})=>{const[r,a]=AA.useState(null),g=AA.useRef(null),I=AA.useCallback(()=>{g.current=null;const E=A.current,h=e.current;if(!E||!h){a(S=>S&&null);return}const u=E.querySelector(`[data-schematic-component-id="${t}"]`);if(!u){a(S=>S&&null);return}const d=u.getBoundingClientRect(),f=h.getBoundingClientRect(),w={bounds:{minX:d.left,maxX:d.right,minY:d.top,maxY:d.bottom},rect:{left:d.left-f.left,top:d.top-f.top,width:d.width,height:d.height}};a(S=>WMt(S,w)?S:w)},[t,e,A]),c=AA.useCallback(()=>{g.current===null&&(g.current=window.requestAnimationFrame(I))},[I]);AA.useEffect(()=>{c()},[c,s]),AA.useEffect(()=>{c();const E=A.current,h=e.current;if(!E||!h)return;const u=typeof ResizeObserver<"u"?new ResizeObserver(()=>{c()}):null;u?.observe(h),u?.observe(E);const d=typeof MutationObserver<"u"?new MutationObserver(()=>{c()}):null;return d?.observe(E,{attributes:!0,attributeFilter:["style","transform"],subtree:!0,childList:!0}),window.addEventListener("scroll",c,!0),window.addEventListener("resize",c),()=>{u?.disconnect(),d?.disconnect(),window.removeEventListener("scroll",c,!0),window.removeEventListener("resize",c),g.current!==null&&(cancelAnimationFrame(g.current),g.current=null)}},[c,A,e]);const B=AA.useCallback(E=>{i&&i(t,E)},[t,i]),C=r?.bounds??null,{hovering:l}=OMt({bounds:C,onClick:i?B:void 0});if(AA.useEffect(()=>{o&&o(t,l)},[l,t,o]),!r||!l||!n)return null;const Q=r.rect;return Z.jsx("div",{style:{position:"absolute",left:Q.left,top:Q.top,width:Q.width,height:Q.height,border:"1.5px solid rgba(51, 153, 255, 0.9)",pointerEvents:"none",zIndex:vx.schematicComponentHoverOutline}})},VMt=({circuitJson:t,containerStyle:A,editEvents:e=[],onEditEvent:i,defaultEditMode:o=!1,debugGrid:n=!1,editingEnabled:s=!1,debug:r=!1,clickToInteractEnabled:a=!1,colorOverrides:g,spiceSimulationEnabled:I=!1,disableGroups:c=!1,onSchematicComponentClicked:B})=>{r&&mMt();const[C,l]=AA.useState(!1),[Q,E]=AA.useState({showVoltage:!0,showCurrent:!1,startTime:0,duration:20}),h=CA=>`${CA?.length||0}_${CA?.editCount||0}`,u=AA.useMemo(()=>h(t),[t]),d=AA.useMemo(()=>{if(!I)return null;try{return YMt(t,Q)}catch(CA){return console.error("Failed to generate SPICE string",CA),null}},[u,I,Q.startTime,Q.duration]),[f,w]=AA.useState(!1);AA.useEffect(()=>{w(!1)},[u]);const{plotData:S,nodes:D,isLoading:x,error:F}=HMt(f?d:null),[k,U]=AA.useState(o),[N,Y]=AA.useState(!0),[q,K]=AA.useState(!a),[O,W]=AA.useState(!1),[$,oA]=AA.useState(()=>c?!1:JMt("schematic_viewer_show_groups",!1)),[IA,tA]=AA.useState(!1),sA=AA.useRef(new Set),gA=AA.useCallback((CA,QA)=>{QA?sA.current.add(CA):sA.current.delete(CA),tA(sA.current.size>0)},[]),pA=AA.useRef(null),xA=AA.useRef(null),_A=AA.useMemo(()=>{try{return Yp(t).schematic_component?.list()?.map(CA=>CA.schematic_component_id)??[]}catch(CA){return console.error("Failed to derive schematic component ids",CA),[]}},[u,t]),MA=CA=>{const QA=CA.touches[0];xA.current={x:QA.clientX,y:QA.clientY}},PA=CA=>{const QA=CA.changedTouches[0],YA=xA.current;if(!YA)return;const se=Math.abs(QA.clientX-YA.x),he=Math.abs(QA.clientY-YA.y);se<10&&he<10&&(CA.preventDefault(),K(!0)),xA.current=null},[BA,yA]=AA.useState([]),uA=AA.useRef(t);AA.useEffect(()=>{const CA=h(t),QA=h(uA.current);CA!==QA&&(yA([]),uA.current=t)},[t]);const{ref:qA,cancelDrag:ee,transform:Be}=kL({onSetTransform(CA){pA.current&&(pA.current.style.transform=Ih(CA))},enabled:q&&!C}),{containerWidth:mA,containerHeight:WA}=s$A(qA),KA=AA.useMemo(()=>!mA||!WA?"":A8(t,{width:mA,height:WA||720,grid:n?{cellSize:1,labelCells:!0}:void 0,colorOverrides:g}),[u,mA,WA]),JA=AA.useMemo(()=>KA.match(/<svg[^>]*style="[^"]*background-color:\s*([^;\"]+)/i)?.[1]??"transparent",[KA]),jA=AA.useMemo(()=>{if(!KA)return pg();const CA=KA.match(/data-real-to-screen-transform="([^"]+)"/)?.[1];try{return BT(CA)}catch(QA){return console.error(QA),pg()}},[KA]),FA=CA=>{yA(QA=>[...QA,CA]),i&&i(CA)},SA=AA.useMemo(()=>[...e,...BA],[e,BA]),{handleMouseDown:LA,handleTouchStart:GA,isDragging:TA,activeEditEvent:OA}=SMt({onEditEvent:FA,cancelDrag:ee,realToSvgProjection:jA,svgToScreenProjection:Be,circuitJson:t,editEvents:SA,enabled:k&&q&&!C,snapToGrid:N});uMt({svgDivRef:pA,editEvents:SA,realToSvgProjection:jA,svgToScreenProjection:Be,activeEditEvent:OA}),dMt({svgDivRef:pA,circuitJson:t,activeEditEvent:OA,editEvents:SA}),pMt({svgDivRef:pA,circuitJson:t,circuitJsonKey:u,showGroups:$&&!c});const ie=AA.useRef(GA);AA.useEffect(()=>{ie.current=GA},[GA]);const DA=AA.useMemo(()=>Z.jsx("div",{ref:pA,style:{pointerEvents:a?q?"auto":"none":"auto",transformOrigin:"0 0"},className:B?"schematic-component-clickable":void 0,onTouchStart:CA=>{k&&q&&!C&&ie.current(CA)},dangerouslySetInnerHTML:{__html:KA}}),[KA,q,a,k,C]);return Z.jsxs(PMt,{children:[B&&Z.jsx("style",{children:".schematic-component-clickable [data-schematic-component-id]:hover { cursor: pointer !important; }"}),Z.jsxs("div",{ref:qA,style:{position:"relative",backgroundColor:JA,overflow:"hidden",cursor:C?"auto":TA?"grabbing":a&&!q||IA&&B?"pointer":"grab",minHeight:"300px",...A},onWheelCapture:CA=>{C&&CA.stopPropagation()},onMouseDown:CA=>{if(a&&!q){CA.preventDefault(),CA.stopPropagation();return}LA(CA)},onMouseDownCapture:CA=>{if(a&&!q){CA.preventDefault(),CA.stopPropagation();return}},onTouchStart:CA=>{C||MA(CA)},onTouchEnd:CA=>{C||PA(CA)},children:[!q&&a&&Z.jsx("div",{onClick:CA=>{CA.preventDefault(),CA.stopPropagation(),K(!0)},style:{position:"absolute",inset:0,cursor:"pointer",zIndex:vx.clickToInteractOverlay,display:"flex",alignItems:"center",justifyContent:"center",pointerEvents:"all",touchAction:"pan-x pan-y pinch-zoom"},children:Z.jsx("div",{style:{backgroundColor:"rgba(0, 0, 0, 0.8)",color:"white",padding:"12px 24px",borderRadius:"8px",fontSize:"16px",fontFamily:"sans-serif",pointerEvents:"none"},children:typeof window<"u"&&("ontouchstart"in window||navigator.maxTouchPoints>0)?"Touch to Interact":"Click to Interact"})}),Z.jsx(kMt,{active:O,onClick:()=>W(!O)}),s&&Z.jsx(bMt,{active:k,onClick:()=>U(!k)}),s&&k&&Z.jsx(xMt,{active:N,onClick:()=>Y(!N)}),Z.jsx(FMt,{circuitJson:t,circuitJsonKey:u,isVisible:O,onClose:()=>W(!1),showGroups:$,onToggleGroups:CA=>{c||(oA(CA),KMt("schematic_viewer_show_groups",CA))}}),I&&Z.jsx(RMt,{onClick:()=>l(!0)}),C&&Z.jsx(MMt,{spiceString:d,onClose:()=>l(!1),plotData:S,nodes:D,isLoading:x,error:F,simOptions:Q,onSimOptionsChange:CA=>{w(!0),E(CA)},hasRun:f}),B&&_A.map(CA=>Z.jsx(ZMt,{componentId:CA,svgDivRef:pA,containerRef:qA,showOutline:!0,circuitJsonKey:u,onHoverChange:gA,onComponentClick:(QA,YA)=>{B?.({schematicComponentId:QA,event:YA})}},CA)),DA]})]})},jMt=({circuitJson:t,containerStyle:A,colorOverrides:e,width:i,height:o,className:n})=>{const[s,r]=AA.useState(null),[a,g]=AA.useState(!0),[I,c]=AA.useState(null),[B,C]=AA.useState(null),l=AA.useRef(null),Q=AA.useRef(null),{containerWidth:E,containerHeight:h}=s$A(l),[u,d]=AA.useState(!1),{ref:f}=kL({onSetTransform(Y){Q.current&&(Q.current.style.transform=Ih(Y))}}),w=i||E||1e3,S=o||h||600;AA.useEffect(()=>{g(!0),c(null),r(t),g(!1)},[t]);const D=AA.useMemo(()=>s&&s.find(q=>q.type==="simulation_experiment")?.simulation_experiment_id||null,[s]),x=AA.useMemo(()=>s?s.filter(Y=>Y.type==="simulation_transient_voltage_graph").map(Y=>Y.simulation_transient_voltage_graph_id):[],[s]),F=AA.useMemo(()=>{if(!s||!w||!S||!D)return"";try{return XXA({circuitJson:s,simulation_experiment_id:D,simulation_transient_voltage_graph_ids:x,width:w,height:S,schematicOptions:{colorOverrides:e}})}catch(Y){return console.error("Failed to generate fallback schematic SVG:",Y),""}},[s,w,S,e,D,x]);AA.useEffect(()=>{if(!F){C(null);return}try{const Y=new Blob([F],{type:"image/svg+xml"}),q=URL.createObjectURL(Y);return C(q),()=>{URL.revokeObjectURL(q)}}catch(Y){console.error("Failed to create SVG object URL:",Y),C(null)}},[F]);const k=AA.useMemo(()=>F?F.match(/<svg[^>]*style="[^"]*background-color:\s*([^;\"]+)/i)?.[1]??"transparent":"transparent",[F]),U=Y=>{d(!0)},N=Y=>{d(!0)};return AA.useEffect(()=>{const Y=()=>{d(!1)},q=()=>{d(!1)};return window.addEventListener("mouseup",Y),window.addEventListener("touchend",q),()=>{window.removeEventListener("mouseup",Y),window.removeEventListener("touchend",q)}},[]),a?Z.jsx("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:"#f5f5f5",minHeight:"300px",fontFamily:"sans-serif",fontSize:"16px",color:"#666",...A},className:n,children:"Loading circuit..."}):I?Z.jsx("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:"#fef2f2",minHeight:"300px",fontFamily:"sans-serif",fontSize:"16px",color:"#dc2626",...A},className:n,children:Z.jsxs("div",{style:{textAlign:"center",padding:"20px"},children:[Z.jsx("div",{style:{fontWeight:"bold",marginBottom:"8px"},children:"Circuit Conversion Error"}),Z.jsx("div",{style:{fontSize:"14px"},children:I})]})}):F?Z.jsx("div",{ref:Y=>{l.current=Y,f.current=Y},style:{position:"relative",backgroundColor:k,overflow:"hidden",minHeight:"300px",cursor:u?"grabbing":"grab",...A},className:n,onMouseDown:U,onTouchStart:N,children:B?Z.jsx("img",{ref:Q,src:B,alt:"Circuit Simulation",style:{transformOrigin:"0 0",width:"100%",height:"100%",display:"block",objectFit:"contain"}}):Z.jsx("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%",minHeight:"300px",color:"#666",fontFamily:"sans-serif"},children:"Failed to render SVG"})}):Z.jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",backgroundColor:"#f8fafc",minHeight:"300px",fontFamily:"sans-serif",gap:"12px",...A},className:n,children:[Z.jsx("div",{style:{fontSize:"16px",color:"#475569",fontWeight:500},children:"No Simulation Found"}),Z.jsxs("div",{style:{fontSize:"14px",color:"#64748b"},children:["Use"," ",Z.jsx("code",{style:{backgroundColor:"#e2e8f0",padding:"2px 6px",borderRadius:"4px",fontFamily:"monospace",fontSize:"13px"},children:"<analogsimulation />"})," ","to create simulations"]})]})},a$A=t=>{const[A,e]=AA.useState(0),[i,o]=AA.useState(0);return AA.useEffect(()=>{if(!t.current)return;const n=()=>{const r=t.current?.getBoundingClientRect();e(r?.width||0),o(r?.height||0)};n();const s=new ResizeObserver(n);return s.observe(t.current),window.addEventListener("resize",n),()=>{s.disconnect(),window.removeEventListener("resize",n)}},[]),{containerWidth:A,containerHeight:i}};lI("assembly-viewer");var g$A=()=>{lI.enable("assembly-viewer*")},zMt=({circuitJson:t,containerStyle:A,debugGrid:e=!1,debug:i=!1})=>{i&&g$A();const o=AA.useRef(null),{ref:n}=kL({onSetTransform(I){o.current&&(o.current.style.transform=Ih(I))}}),{containerWidth:s,containerHeight:r}=a$A(n),a=AA.useMemo(()=>!s||!r?"":xXA(t,{width:s,height:r||720}),[t,s,r]);AA.useMemo(()=>{if(!a)return pg();const I=a.match(/data-real-to-screen-transform="([^"]+)"/)?.[1];try{return BT(I)}catch(c){return console.error(c),pg()}},[a]);const g=AA.useMemo(()=>Z.jsx("div",{ref:o,style:{pointerEvents:"auto",transformOrigin:"0 0"},dangerouslySetInnerHTML:{__html:a}}),[a]);return Z.jsx("div",{ref:n,style:{position:"relative",backgroundColor:"#FFFFFF",overflow:"hidden",minHeight:"300px",...A},children:g})},XMt=({circuitJson:t,containerStyle:A,debugGrid:e=!1,debug:i=!1})=>{i&&g$A();const o=AA.useRef(null),{ref:n}=kL({onSetTransform(I){o.current&&(o.current.style.transform=Ih(I))}}),{containerWidth:s,containerHeight:r}=a$A(n),a=AA.useMemo(()=>!s||!r?"":RlA(t,{width:s,height:r||720}),[t,s,r]);AA.useMemo(()=>{if(!a)return pg();const I=a.match(/data-real-to-screen-transform="([^"]+)"/)?.[1];try{return BT(I)}catch(c){return console.error(c),pg()}},[a]);const g=AA.useMemo(()=>Z.jsx("div",{ref:o,style:{pointerEvents:"auto",transformOrigin:"0 0"},dangerouslySetInnerHTML:{__html:a}}),[a]);return Z.jsx("div",{ref:n,style:{position:"relative",backgroundColor:"#FFFFFF",overflow:"hidden",minHeight:"300px",...A},children:g})};const I$A=["Initialize a tscircuit project using [tsci init](https://github.com/tscircuit/cli) before adding components.","Define reusable modules with cached routes using [<subcircuit />](https://docs.tscircuit.com/elements/subcircuit)","Run `tsci dev` on the command line to preview your boards before export",'Use units like mm or mils consistently across your designs (e.g. pcbX="10mm")',"Quickly set footprints with the [footprint prop](https://docs.tscircuit.com/footprints/footprinter-strings)","Check out the guide on [ordering prototypes](https://docs.tscircuit.com/building-electronics/ordering-prototypes)","Use [net labels](https://docs.tscircuit.com/elements/net) and [group elements](https://docs.tscircuit.com/elements/group) to organize complex schematics.","You can manually drag components on the PCB and Schematic using [manual edits](https://docs.tscircuit.com/guides/manual-edits)","Every tscircuit module can export to [Circuit JSON](https://github.com/tscircuit/circuit-json), Gerbers, Pick'n'Place CSV files, Bill of Materials CSV and more","You can import components from [JLCPCB](https://docs.tscircuit.com/guides/importing-modules-and-chips/importing-from-jlcpcb) or [KiCad](https://docs.tscircuit.com/guides/importing-modules-and-chips/importing-from-kicad)","Any module you push to the [registry](https://tscircuit.com/trending) will have [simple image urls](https://docs.tscircuit.com/web-apis/image-generation-api) you can use display images on a website","The default [Parts Engine](https://docs.tscircuit.com/guides/platform-configuration) will automatically find parts from common vendors for your BOM",'[Pin selectors](https://docs.tscircuit.com/guides/using-sel-references) are similar to CSS selectors, ".R1 > .pin1" means "connect to the first pin of the component R1"',"You can use the [sel](https://docs.tscircuit.com/guides/using-sel-references) object to select pins in a type-safe way","Publish modules via the [registry](https://tscircuit.com/trending) for working with a team or sharing your work","[Explore tutorials](https://docs.tscircuit.com/category/tutorials) for real-world circuit design examples.","Upload your Circuit JSON to [circuitjson.com](https://circuitjson.com) for a quick preview.","You can display Circuit JSON in 3D, PCB or Schematic mode with the [<CircuitJsonPreview />](https://docs.tscircuit.com/guides/running-tscircuit/displaying-circuit-json-on-a-webpage#react-display-all-available-previews-with-circuitjsonpreview-) React component","Use a [<group />](https://docs.tscircuit.com/elements/group) element to move multiple components at once in a schematic or PCB layout.","Check out the [GitHub Discussions page](https://github.com/tscircuit/tscircuit/discussions) to upvote features","You can customize the autorouter using the [autorouter prop](https://docs.tscircuit.com/elements/board#setting-the-autorouter)","Use the [<constraint />](https://docs.tscircuit.com/footprints/constraint) element to enforce geometric relationships in PCB designs.","When working on component placement and circuit design, autorouting can slow down your iteration cycle. Use [routingDisabled](https://docs.tscircuit.com/elements/board#disabling-routing-with-routingdisabled) on the <board /> element to disable autorouting temporarily.","Join the [Discord server](https://tscircuit.com/join) to discuss issues and get help directly from the community."],$Mt=(()=>{let t=I$A[Math.floor(Math.random()*I$A.length)];return t=t.replace(/</g,"&lt;"),t=t.replace(/>/g,"&gt;"),t=t.replace(new RegExp('(?<!href=")(?<!\\()(?<!\\]\\()(https?:\\/\\/[^\\s\\)\\]]+)',"g"),(A,e)=>`<a class="rf-text-blue-500 rf-underline" href="${A}" target="_blank">${A}</a>`),t=t.replace(/\[([^\]]+)\]\((https?:\/\/[^\)]+)\)/g,'<a class="rf-text-blue-500 rf-underline" href="$2" target="_blank">$1</a>'),t})(),fS=({onRunClicked:t})=>Z.jsxs("div",{className:"rf-flex rf-flex-col rf-items-center rf-justify-center rf-h-full rf-bg-gray-50 rf-text-gray-500 rf-p-4",children:[Z.jsx(zmt,{className:"rf-size-14 rf-mb-4"}),Z.jsxs("p",{className:"rf-text-md rf-break-words rf-max-w-xl rf-text-center",children:["Tip: ",Z.jsx("span",{dangerouslySetInnerHTML:{__html:$Mt}})]}),t&&Z.jsxs(uc,{className:"rf-mt-4 rf-bg-blue-600 rf-hover:bg-blue-500",onClick:t,children:["Run Code",Z.jsx(ewt,{className:"rf-w-3 rf-h-3 rf-ml-2"})]})]}),G8=({text:t,onClick:A})=>Z.jsx("span",{className:"rf-cursor-pointer rf-underline rf-text-blue-600 rf-mx-2",onClick:A,children:t}),F8=t=>Z.jsxs("div",{className:"rf-leading-5",children:[Z.jsx("div",{className:"rf-py-2 rf-font-bold",children:t.column.name}),Z.jsx("div",{children:t.field?.()??Z.jsx("input",{type:"text",className:"rf-border rf-rounded rf-p-1 rf-w-full",onChange:A=>{t.onTextChange?.(A.target.value)}})})]}),Avt=({open:t,children:A,title:e,onClose:i})=>t?Z.jsx("div",{className:"rf-fixed rf-inset-0 rf-bg-black rf-bg-opacity-50 rf-flex rf-justify-center rf-items-center rf-z-50",onClick:i,children:Z.jsxs("div",{className:"rf-bg-white rf-p-5 rf-rounded-lg rf-relative rf-w-11/12 rf-max-w-2xl",onClick:o=>{o.preventDefault(),o.stopPropagation()},children:[Z.jsx("h2",{className:"rf-mt-0 rf-text-md rf-pb-4",children:e}),Z.jsx("button",{type:"button",className:"rf-absolute rf-top-2 rf-right-4 rf-text-2xl rf-font-bold",onClick:i,children:"×"}),A]})}):null,evt=({elements:t})=>{const[A,e]=AA.useState({open:!1}),[i,o]=AA.useReducer((I,c)=>({...I,...c}),{}),n=[...new Set(t.map(I=>I.type))],s=t.map(I=>{const c=I[`${I.type}_id`],B=Object.fromEntries(Object.entries(I).filter(([l])=>!(l===`${I.type}_id`||!l.endsWith("_id")))),C=Object.fromEntries(Object.entries(I).filter(([l])=>!l.endsWith("_id")));return{primary_id:c,other_ids:B,...C,_og_elm:I}}),r=s.map(I=>{let c="";const B=C=>{const l=Object.keys(C.other_ids).find(h=>h.startsWith("source_"));if(!l)return`.${C.name}`;const Q=l.slice(0,-3),E=s.find(h=>h.type===Q&&h.primary_id===C.other_ids[l]);return E?"name"in E?`${B(E)} > .${C.name}`:`#${E.primary_id} > .${C.name}`:`??? > .${C.name}`};return"name"in I&&(c=B(I)),{...I,selector_path:c}}),a=[{key:"primary_id",name:"primary_id",renderCell:I=>Z.jsxs("div",{className:"rf-flex rf-items-center",children:[Z.jsx(G8,{text:I.primary_id,onClick:()=>o({focused_id:I.primary_id,id_search:void 0,selector_search:void 0})}),Z.jsx("span",{className:"rf-flex-grow"}),Z.jsx(G8,{text:"(JSON)",onClick:()=>e({open:!0,element:I._og_elm,title:I.primary_id})})]}),renderHeaderCell:I=>Z.jsx(F8,{column:I,onTextChange:c=>o({id_search:c}),field:i.focused_id?()=>Z.jsxs("div",{children:["Focus:"," ",Z.jsx("span",{className:"rf-underline",children:i.focused_id}),Z.jsx(G8,{text:"(unfocus)",onClick:()=>o({focused_id:void 0})})]}):void 0})},{key:"type",name:"type",renderHeaderCell:I=>Z.jsx(F8,{column:I,field:()=>Z.jsxs("select",{onChange:c=>o({component_type_filter:c.target.value}),className:"rf-border rf-rounded rf-p-1 rf-w-full",children:[Z.jsx("option",{value:"any",children:"any"},"any"),Z.jsx("option",{value:"source",children:"source"},"source"),Z.jsx("option",{value:"source/pcb",children:"source/pcb"},"source/pcb"),Z.jsx("option",{value:"source/schematic",children:"source/schematic"},"source/schematic"),n.map(c=>Z.jsx("option",{value:c,children:c},c))]})})},{key:"name",name:"name",renderHeaderCell:I=>Z.jsx(F8,{column:I,onTextChange:c=>o({name_search:c})})},{key:"selector_path",name:"selector_path",renderHeaderCell:I=>Z.jsx(F8,{column:I,onTextChange:c=>o({selector_search:c})})},{key:"other_ids",name:"other_ids",renderCell:I=>Z.jsx("div",{className:"rf-space-x-2",children:Object.entries(I.other_ids).map(([c,B])=>Z.jsx(G8,{text:B,onClick:()=>o({focused_id:B})},B))})}],g=r.filter(I=>i.name_search?I.name?.toLowerCase()?.includes(i.name_search.toLowerCase()):!0).filter(I=>!i.component_type_filter||i.component_type_filter==="any"?!0:i.component_type_filter==="source"?I.type.startsWith("source_"):i.component_type_filter==="source/pcb"?I.type.startsWith("source_")||I.type.startsWith("pcb_"):i.component_type_filter==="source/schematic"?I.type.startsWith("source_")||I.type.startsWith("schematic_"):I.type?.includes(i.component_type_filter)).filter(I=>i.selector_search?i.selector_search.split(" ").filter(B=>B.length>0).every(B=>I.selector_path?.includes(B)):!0).filter(I=>i.id_search?I.primary_id?.includes(i.id_search):!0).filter(I=>!!(!i.focused_id||I.primary_id===i.focused_id||Object.values(I.other_ids).includes(i.focused_id)));return Z.jsxs("div",{className:"rf-font-mono rf-text-xs rf-bg-white",children:[Z.jsx("div",{className:"rf-overflow-x-auto",children:Z.jsxs("table",{className:"rf-table-auto rf-w-full rf-text-left",children:[Z.jsx("thead",{children:Z.jsx("tr",{children:a.map(I=>Z.jsx("th",{className:"rf-px-4 rf-py-2 rf-border-b",children:I.renderHeaderCell?I.renderHeaderCell(I):I.name},I.key))})}),Z.jsx("tbody",{children:g.map((I,c)=>Z.jsx("tr",{className:"rf-hover:bg-gray-100",children:a.map(B=>Z.jsx("td",{className:"rf-px-4 rf-py-2 rf-border-b",children:B.renderCell?B.renderCell(I):I[B.key]},B.key))},c))})]})}),Z.jsx(Avt,{open:A.open,onClose:()=>e({open:!1}),title:A.open?A.title:"",children:Z.jsx("div",{className:"rf-bg-gray-800 rf-p-3 rf-text-white rf-rounded",children:Z.jsx("pre",{className:"rf-whitespace-pre-wrap",children:A.open?JSON.stringify(A.element,null,2):""})})})]})},tvt=(t,A)=>t==="jlcpcb"?Z.jsx("a",{className:"rf-underline rf-text-blue-500",target:"_blank",rel:"noreferrer",href:`https://jlcpcb.com/partdetail/${A}`,children:A}):A,ivt=({circuitJson:t})=>{const A=t.filter(i=>i.type==="source_component"),e=new Set;for(const i of A)if(i.supplier_part_numbers)for(const o of Object.keys(i.supplier_part_numbers))e.add(o);return Z.jsx("div",{className:"rf-overflow-x-auto",children:Z.jsxs("table",{className:"rf-w-full rf-text-left rf-text-sm",children:[Z.jsx("thead",{children:Z.jsxs("tr",{className:"rf-border-b",children:[Z.jsx("th",{className:"rf-p-2",children:"Name"}),Array.from(e).map(i=>Z.jsx("th",{className:"rf-p-2 rf-capitalize",children:i},i))]})}),Z.jsx("tbody",{children:A.map(i=>Z.jsxs("tr",{className:"rf-border-b",children:[Z.jsx("td",{className:"rf-p-2",children:i.name}),Array.from(e).map(o=>Z.jsx("td",{className:"rf-p-2",children:tvt(o,i.supplier_part_numbers?.[o]?.[0]||"")},o))]},i.source_component_id))})]})})},dQA=AA.forwardRef(({className:t,type:A,...e},i)=>Z.jsx("input",{type:A,className:En("rf-flex rf-h-9 rf-w-full rf-rounded-md rf-border rf-border-zinc-200 rf-bg-white rf-px-3 rf-py-1 rf-text-sm rf-shadow-sm rf-transition-colors file:rf-border-0 file:rf-bg-transparent file:rf-text-sm file:rf-font-medium placeholder:rf-text-zinc-500 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 dark:rf-border-zinc-800 dark:rf-bg-zinc-950 dark:rf-placeholder-zinc-400 dark:focus-visible:rf-ring-zinc-300",t),ref:i,...e}));dQA.displayName="Input";var c$A={Hz:{baseUnit:"Hz",variants:{MHz:1e6,kHz:1e3,Hz:1}},g:{baseUnit:"g",variants:{kg:1e3,g:1}},Ω:{baseUnit:"Ω",variants:{mΩ:.001,Ω:1,kΩ:1e3,KΩ:1e3,kohm:1e3,MΩ:1e6,GΩ:1e9,TΩ:1e12}},V:{baseUnit:"V",variants:{mV:.001,V:1,kV:1e3,KV:1e3,MV:1e6,GV:1e9,TV:1e12}},A:{baseUnit:"A",variants:{µA:1e-6,mA:.001,ma:.001,A:1,kA:1e3,MA:1e6}},F:{baseUnit:"F",variants:{pF:1e-12,nF:1e-9,µF:1e-6,uF:1e-6,mF:.001,F:1}},ml:{baseUnit:"ml",variants:{ml:1,mL:1,l:1e3,L:1e3}},deg:{baseUnit:"deg",variants:{rad:180/Math.PI}},ms:{baseUnit:"ms",variants:{fs:1e-12,ps:1e-9,ns:1e-6,us:.001,µs:.001,ms:1,s:1e3}},mm:{baseUnit:"mm",variants:{nm:1e-6,µm:.001,um:.001,mm:1,cm:10,dm:100,m:1e3,km:1e6,in:25.4,ft:304.8,IN:25.4,FT:304.8,yd:914.4,mi:1609344,mil:.0254}}},pQA=new Set;for(const[t,A]of Object.entries(c$A)){pQA.add(t);for(const e of Object.keys(A.variants))pQA.add(e)}function ovt(t){for(const[A,e]of Object.entries(c$A))if(t in e.variants)return{baseUnit:e.baseUnit,conversionFactor:e.variants[t]};return{baseUnit:t,conversionFactor:1}}var B$A={tera:1e12,T:1e12,giga:1e9,G:1e9,mega:1e6,M:1e6,kilo:1e3,k:1e3,deci:.1,d:.1,centi:.01,c:.01,milli:.001,m:.001,micro:1e-6,u:1e-6,µ:1e-6,nano:1e-9,n:1e-9,pico:1e-12,p:1e-12};function wm(t){if(t==null)return{parsedUnit:null,unitOfValue:null,value:null};if(typeof t=="string"&&t.match(/^-?[\d\.]+$/))return{value:Number.parseFloat(t),parsedUnit:null,unitOfValue:null};if(typeof t=="number")return{value:t,parsedUnit:null,unitOfValue:null};if(typeof t=="object"&&"x"in t&&"y"in t){const{parsedUnit:r,unitOfValue:a}=wm(t.x),g=wm(t.x),I=wm(t.y);return g.value===null||I.value===null?{parsedUnit:null,unitOfValue:null,value:null}:{parsedUnit:r,unitOfValue:a,value:{x:g.value,y:I.value}}}const e=t.toString().split("").reverse().join("").match(/[^\d\s]+/)?.[0];if(!e)throw new Error(`Could not determine unit: "${t}"`);const i=e.split("").reverse().join(""),o=t.slice(0,-i.length);if(i in B$A&&!pQA.has(i)){const r=B$A[i];return{parsedUnit:null,unitOfValue:null,value:Number.parseFloat(o)*r}}const{baseUnit:n,conversionFactor:s}=ovt(i);return{parsedUnit:i,unitOfValue:n,value:s*Number.parseFloat(o)}}var _8=v().or(NA()).transform(t=>wm(t).value),fQA=v().or(NA()).transform(t=>wm(t).value).transform(t=>Number.parseFloat(t.toPrecision(12))),C$A=v().or(NA()).transform(t=>wm(t).value),tF=v().or(NA()).transform(t=>wm(t).value),qi=v().or(NA()).transform(t=>wm(t).value),jL=v().or(NA()).transform(t=>wm(t).value),ut=qi,R8=v().or(NA()).transform(t=>wm(t).value),zL=v().or(NA()).transform(t=>wm(t).value),nvt=zL,iF=zL,l$A=v().datetime(),bd=v().or(NA()).transform(t=>typeof t=="number"?t:t.endsWith("deg")?Number.parseFloat(t.split("deg")[0]):t.endsWith("rad")?Number.parseFloat(t.split("rad")[0])*180/Math.PI:Number.parseFloat(t)),Q$A=NA().or(v().endsWith("mAh")).transform(t=>{if(typeof t=="string"){const A=t.replace("mAh",""),e=Number.parseFloat(A);if(Number.isNaN(e))throw new Error("Invalid capacity");return e}return t}).describe("Battery capacity in mAh"),So=bA({x:ut,y:ut}),svt=So,XL=bA({x:ut,y:ut,z:ut}),rvt=XL,yQA=bA({width:NA(),height:NA()}),avt=t=>{const A="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";return Array.from({length:t},()=>A[Math.floor(Math.random()*A.length)]).join("")},zt=t=>v().optional().default(()=>`${t}_${avt(10)}`),Ux=Ze(["top_left","top_center","top_right","center_left","center","center_right","bottom_left","bottom_center","bottom_right"]),E$A=Ze(["jlcpcb","macrofab","pcbway","digikey","mouser","lcsc"]),DB=bA({type:lA("source_component"),ftype:v().optional(),source_component_id:v(),name:v(),manufacturer_part_number:v().optional(),supplier_part_numbers:$r(E$A,fe(v())).optional(),display_value:v().optional(),are_pins_interchangeable:te().optional(),internally_connected_source_port_ids:fe(fe(v())).optional(),source_group_id:v().optional(),subcircuit_id:v().optional()}),mQA=DB.extend({ftype:lA("simple_capacitor"),capacitance:fQA,max_voltage_rating:tF.optional(),display_capacitance:v().optional(),max_decoupling_trace_length:ut.optional()}),wQA=DB.extend({ftype:lA("simple_resistor"),resistance:_8,display_resistance:v().optional()}),N8=DB.extend({ftype:lA("simple_diode")}),h$A=DB.extend({ftype:lA("simple_fiducial")}),DQA=N8.extend({ftype:lA("simple_led"),color:v().optional(),wavelength:v().optional()}),u$A=DB.extend({ftype:lA("simple_ground")}),SQA=DB.extend({ftype:lA("simple_chip")}),bQA=DB.extend({ftype:lA("simple_power_source"),voltage:tF}),gvt=DB.extend({ftype:lA("simple_fuse"),current_rating_amps:NA().describe("Nominal current in amps the fuse is rated for"),voltage_rating_volts:NA().describe("Voltage rating in volts, e.g. ±5V would be 5")}),xQA=DB.extend({ftype:lA("simple_battery"),capacity:Q$A}),kQA=DB.extend({ftype:lA("simple_inductor"),inductance:C$A,max_current_rating:NA().optional()}),GQA=DB.extend({ftype:lA("simple_push_button")}),FQA=DB.extend({ftype:lA("simple_potentiometer"),max_resistance:_8}),d$A=DB.extend({ftype:lA("simple_crystal"),frequency:NA().describe("Frequency in Hz"),load_capacitance:NA().optional().describe("Load capacitance in pF")}),_QA=DB.extend({ftype:lA("simple_pin_header"),pin_count:NA(),gender:Ze(["male","female"]).optional().default("male")}),RQA=DB.extend({ftype:lA("simple_pinout")}),NQA=DB.extend({ftype:lA("simple_resonator"),load_capacitance:fQA,equivalent_series_resistance:_8.optional(),frequency:jL}),MQA=DB.extend({ftype:lA("simple_transistor"),transistor_type:Ze(["npn","pnp"])}),vQA=DB.extend({ftype:lA("simple_test_point"),footprint_variant:Ze(["pad","through_hole"]).optional(),pad_shape:Ze(["rect","circle"]).optional(),pad_diameter:Wt([NA(),v()]).optional(),hole_diameter:Wt([NA(),v()]).optional(),width:Wt([NA(),v()]).optional(),height:Wt([NA(),v()]).optional()}),UQA=DB.extend({ftype:lA("simple_mosfet"),channel_type:Ze(["n","p"]),mosfet_mode:Ze(["enhancement","depletion"])}),LQA=DB.extend({ftype:lA("simple_switch")}),HQA=bA({type:lA("source_project_metadata"),name:v().optional(),software_used_string:v().optional(),project_url:v().optional(),created_at:l$A.optional()}),p$A=bA({type:lA("source_missing_property_error"),source_missing_property_error_id:zt("source_missing_property_error"),source_component_id:v(),property_name:v(),subcircuit_id:v().optional(),error_type:lA("source_missing_property_error").default("source_missing_property_error"),message:v()}).describe("The source code is missing a property"),f$A=bA({type:lA("source_failed_to_create_component_error"),source_failed_to_create_component_error_id:zt("source_failed_to_create_component_error"),error_type:lA("source_failed_to_create_component_error").default("source_failed_to_create_component_error"),component_name:v().optional(),subcircuit_id:v().optional(),parent_source_component_id:v().optional(),message:v(),pcb_center:bA({x:NA().optional(),y:NA().optional()}).optional(),schematic_center:bA({x:NA().optional(),y:NA().optional()}).optional()}).describe("Error emitted when a component fails to be constructed"),YQA=bA({type:lA("source_trace_not_connected_error"),source_trace_not_connected_error_id:zt("source_trace_not_connected_error"),error_type:lA("source_trace_not_connected_error").default("source_trace_not_connected_error"),message:v(),subcircuit_id:v().optional(),source_group_id:v().optional(),source_trace_id:v().optional(),connected_source_port_ids:fe(v()).optional(),selectors_not_found:fe(v()).optional()}).describe("Occurs when a source trace selector does not match any ports"),y$A=bA({type:lA("source_property_ignored_warning"),source_property_ignored_warning_id:zt("source_property_ignored_warning"),source_component_id:v(),property_name:v(),subcircuit_id:v().optional(),error_type:lA("source_property_ignored_warning").default("source_property_ignored_warning"),message:v()}).describe("The source property was ignored"),JQA=bA({type:lA("source_pin_missing_trace_warning"),source_pin_missing_trace_warning_id:zt("source_pin_missing_trace_warning"),warning_type:lA("source_pin_missing_trace_warning").default("source_pin_missing_trace_warning"),message:v(),source_component_id:v(),source_port_id:v(),subcircuit_id:v().optional()}).describe("Warning emitted when a source component pin is missing a trace connection"),m$A=DB.extend({ftype:lA("simple_voltage_probe")}),w$A=DB.extend({ftype:lA("interconnect")}),D$A=Wt([wQA,mQA,N8,h$A,DQA,u$A,SQA,bQA,xQA,kQA,GQA,FQA,d$A,_QA,RQA,NQA,LQA,MQA,vQA,UQA,gvt,m$A,w$A,HQA,p$A,f$A,YQA,y$A,JQA]),S$A=bA({type:lA("source_port"),pin_number:NA().optional(),port_hints:fe(v()).optional(),name:v(),source_port_id:v(),source_component_id:v().optional(),source_group_id:v().optional(),subcircuit_id:v().optional(),subcircuit_connectivity_map_key:v().optional(),must_be_connected:te().optional()}),b$A=bA({type:lA("source_component_internal_connection"),source_component_internal_connection_id:v(),source_component_id:v(),source_port_ids:fe(v()),subcircuit_id:v().optional()}),x$A=bA({type:lA("source_trace"),source_trace_id:v(),connected_source_port_ids:fe(v()),connected_source_net_ids:fe(v()),subcircuit_id:v().optional(),subcircuit_connectivity_map_key:v().optional(),max_length:NA().optional(),min_trace_thickness:NA().optional(),display_name:v().optional()}),k$A=bA({type:lA("source_group"),source_group_id:v(),subcircuit_id:v().optional(),parent_subcircuit_id:v().optional(),parent_source_group_id:v().optional(),is_subcircuit:te().optional(),show_as_schematic_box:te().optional(),name:v().optional(),was_automatically_named:te().optional()}),G$A=bA({type:lA("source_net"),source_net_id:v(),name:v(),member_source_group_ids:fe(v()),is_power:te().optional(),is_ground:te().optional(),is_digital_signal:te().optional(),is_analog_signal:te().optional(),is_positive_voltage_source:te().optional(),trace_width:NA().optional(),subcircuit_id:v().optional(),subcircuit_connectivity_map_key:v().optional()}),F$A=bA({type:lA("source_board"),source_board_id:v(),source_group_id:v(),title:v().optional()}).describe("Defines a board in the source domain"),_$A=bA({type:lA("source_pcb_ground_plane"),source_pcb_ground_plane_id:v(),source_group_id:v(),source_net_id:v(),subcircuit_id:v().optional()}).describe("Defines a ground plane in the source domain"),R$A=["top","bottom","inner1","inner2","inner3","inner4","inner5","inner6"],KQA=Ze(R$A),br=KQA.or(bA({name:KQA})).transform(t=>typeof t=="string"?t:t.name),Dm=Ze(["top","bottom"]),N$A=bA({type:lA("source_manually_placed_via"),source_manually_placed_via_id:v(),source_group_id:v(),source_net_id:v(),subcircuit_id:v().optional(),source_trace_id:v().optional()}).describe("Defines a via that is manually placed in the source domain"),M$A=bA({type:lA("source_pin_must_be_connected_error"),source_pin_must_be_connected_error_id:zt("source_pin_must_be_connected_error"),error_type:lA("source_pin_must_be_connected_error").default("source_pin_must_be_connected_error"),message:v(),source_component_id:v(),source_port_id:v(),subcircuit_id:v().optional()}).describe("Error emitted when a pin with mustBeConnected attribute is not connected to any trace"),v$A=bA({type:lA("unknown_error_finding_part"),unknown_error_finding_part_id:zt("unknown_error_finding_part"),error_type:lA("unknown_error_finding_part").default("unknown_error_finding_part"),message:v(),source_component_id:v().optional(),subcircuit_id:v().optional()}).describe("Error emitted when an unexpected error occurs while finding a part"),U$A=bA({type:lA("schematic_box"),schematic_component_id:v().optional(),width:ut,height:ut,is_dashed:te().default(!1),x:ut,y:ut,subcircuit_id:v().optional()}).describe("Draws a box on the schematic"),L$A=bA({type:lA("schematic_path"),schematic_component_id:v(),fill_color:Ze(["red","blue"]).optional(),is_filled:te().optional(),points:fe(So),subcircuit_id:v().optional()}),H$A=$r(bA({left_margin:qi.optional(),right_margin:qi.optional(),top_margin:qi.optional(),bottom_margin:qi.optional()})),Y$A=bA({left_size:NA(),right_size:NA(),top_size:NA().optional(),bottom_size:NA().optional()}),J$A=bA({left_side:bA({pins:fe(NA()),direction:Ze(["top-to-bottom","bottom-to-top"]).optional()}).optional(),right_side:bA({pins:fe(NA()),direction:Ze(["top-to-bottom","bottom-to-top"]).optional()}).optional(),top_side:bA({pins:fe(NA()),direction:Ze(["left-to-right","right-to-left"]).optional()}).optional(),bottom_side:bA({pins:fe(NA()),direction:Ze(["left-to-right","right-to-left"]).optional()}).optional()}),K$A=Wt([Y$A,J$A]),T$A=bA({type:lA("schematic_component"),size:yQA,center:So,source_component_id:v().optional(),schematic_component_id:v(),pin_spacing:qi.optional(),pin_styles:H$A.optional(),box_width:qi.optional(),symbol_name:v().optional(),port_arrangement:K$A.optional(),port_labels:$r(v()).optional(),symbol_display_value:v().optional(),subcircuit_id:v().optional(),schematic_group_id:v().optional(),is_schematic_group:te().optional(),source_group_id:v().optional(),is_box_with_pins:te().optional().default(!0)}),q$A=bA({type:lA("schematic_line"),schematic_line_id:zt("schematic_line"),schematic_component_id:v(),x1:ut,y1:ut,x2:ut,y2:ut,stroke_width:ut.nullable().optional(),color:v().default("#000000"),is_dashed:te().default(!1),subcircuit_id:v().optional()}).describe("Draws a styled line on the schematic"),P$A=bA({type:lA("schematic_rect"),schematic_rect_id:zt("schematic_rect"),schematic_component_id:v(),center:So,width:ut,height:ut,rotation:bd.default(0),stroke_width:ut.nullable().optional(),color:v().default("#000000"),is_filled:te().default(!1),fill_color:v().optional(),is_dashed:te().default(!1),subcircuit_id:v().optional()}).describe("Draws a styled rectangle on the schematic"),O$A=bA({type:lA("schematic_circle"),schematic_circle_id:zt("schematic_circle"),schematic_component_id:v(),center:So,radius:ut,stroke_width:ut.nullable().optional(),color:v().default("#000000"),is_filled:te().default(!1),fill_color:v().optional(),is_dashed:te().default(!1),subcircuit_id:v().optional()}).describe("Draws a styled circle on the schematic"),W$A=bA({type:lA("schematic_arc"),schematic_arc_id:zt("schematic_arc"),schematic_component_id:v(),center:So,radius:ut,start_angle_degrees:bd,end_angle_degrees:bd,direction:Ze(["clockwise","counterclockwise"]).default("counterclockwise"),stroke_width:ut.nullable().optional(),color:v().default("#000000"),is_dashed:te().default(!1),subcircuit_id:v().optional()}).describe("Draws a styled arc on the schematic"),Z$A=bA({type:lA("schematic_trace"),schematic_trace_id:v(),source_trace_id:v().optional(),junctions:fe(bA({x:NA(),y:NA()})),edges:fe(bA({from:bA({x:NA(),y:NA()}),to:bA({x:NA(),y:NA()}),is_crossing:te().optional(),from_schematic_port_id:v().optional(),to_schematic_port_id:v().optional()})),subcircuit_id:v().optional(),subcircuit_connectivity_map_key:v().optional()}),Ivt=Ze(["center","left","right","top","bottom"]),V$A=bA({type:lA("schematic_text"),schematic_component_id:v().optional(),schematic_text_id:v(),text:v(),font_size:NA().default(.18),position:bA({x:ut,y:ut}),rotation:NA().default(0),anchor:Wt([Ivt.describe("legacy"),Ux]).default("center"),color:v().default("#000000"),subcircuit_id:v().optional()}),j$A=bA({type:lA("schematic_port"),schematic_port_id:v(),source_port_id:v(),schematic_component_id:v().optional(),center:So,facing_direction:Ze(["up","down","left","right"]).optional(),distance_from_component_edge:NA().optional(),side_of_component:Ze(["top","bottom","left","right"]).optional(),true_ccw_index:NA().optional(),pin_number:NA().optional(),display_pin_label:v().optional(),subcircuit_id:v().optional(),is_connected:te().optional(),has_input_arrow:te().optional(),has_output_arrow:te().optional()}).describe("Defines a port on a schematic component"),z$A=bA({type:lA("schematic_net_label"),schematic_net_label_id:zt("schematic_net_label"),schematic_trace_id:v().optional(),source_trace_id:v().optional(),source_net_id:v(),center:So,anchor_position:So.optional(),anchor_side:Ze(["top","bottom","left","right"]),text:v(),symbol_name:v().optional(),is_movable:te().optional(),subcircuit_id:v().optional()}),X$A=bA({type:lA("schematic_error"),schematic_error_id:v(),error_type:lA("schematic_port_not_found").default("schematic_port_not_found"),message:v(),subcircuit_id:v().optional()}).describe("Defines a schematic error on the schematic"),$$A=bA({type:lA("schematic_layout_error"),schematic_layout_error_id:zt("schematic_layout_error"),error_type:lA("schematic_layout_error").default("schematic_layout_error"),message:v(),source_group_id:v(),schematic_group_id:v(),subcircuit_id:v().optional()}).describe("Error emitted when schematic layout fails for a group"),M8=bA({type:lA("schematic_debug_object"),label:v().optional(),subcircuit_id:v().optional()}),AAe=M8.extend({shape:lA("rect"),center:So,size:yQA}),eAe=M8.extend({shape:lA("line"),start:So,end:So}),tAe=M8.extend({shape:lA("point"),center:So}),iAe=rE("shape",[AAe,eAe,tAe]),oAe=bA({type:lA("schematic_voltage_probe"),schematic_voltage_probe_id:v(),source_component_id:v().optional(),name:v().optional(),position:So,schematic_trace_id:v(),voltage:tF.optional(),subcircuit_id:v().optional(),color:v().optional(),label_alignment:Ux.optional()}).describe("Defines a voltage probe measurement point on a schematic trace"),nAe=bA({type:lA("schematic_manual_edit_conflict_warning"),schematic_manual_edit_conflict_warning_id:zt("schematic_manual_edit_conflict_warning"),warning_type:lA("schematic_manual_edit_conflict_warning").default("schematic_manual_edit_conflict_warning"),message:v(),schematic_component_id:v(),schematic_group_id:v().optional(),subcircuit_id:v().optional(),source_component_id:v()}).describe("Warning emitted when a component has both manual placement and explicit schX/schY coordinates"),sAe=bA({type:lA("schematic_group"),schematic_group_id:zt("schematic_group"),source_group_id:v(),is_subcircuit:te().optional(),subcircuit_id:v().optional(),width:qi,height:qi,center:So,schematic_component_ids:fe(v()),show_as_schematic_box:te().optional(),name:v().optional(),description:v().optional()}).describe("Defines a group of components on the schematic"),rAe=bA({type:lA("schematic_table"),schematic_table_id:zt("schematic_table"),anchor_position:So,column_widths:fe(ut),row_heights:fe(ut),cell_padding:ut.optional(),border_width:ut.optional(),subcircuit_id:v().optional(),schematic_component_id:v().optional(),anchor:Ux.optional()}).describe("Defines a table on the schematic"),aAe=bA({type:lA("schematic_table_cell"),schematic_table_cell_id:zt("schematic_table_cell"),schematic_table_id:v(),start_row_index:NA(),end_row_index:NA(),start_column_index:NA(),end_column_index:NA(),text:v().optional(),center:So,width:ut,height:ut,horizontal_align:Ze(["left","center","right"]).optional(),vertical_align:Ze(["top","middle","bottom"]).optional(),font_size:ut.optional(),subcircuit_id:v().optional()}).describe("Defines a cell within a schematic_table"),gAe=bA({type:lA("schematic_sheet"),schematic_sheet_id:zt("schematic_sheet"),name:v().optional(),subcircuit_id:v().optional()}).describe("Defines a schematic sheet or page that components can be placed on"),IAe=bA({x:ut,y:ut,bulge:NA().optional()}),TQA=bA({vertices:fe(IAe)}),cAe=bA({outer_ring:TQA,inner_rings:fe(TQA).default([])}),BAe=bA({x:ut,y:ut,via:te().optional(),via_to_layer:br.optional()}),cvt=fe(BAe),CAe=bA({x:ut,y:ut,via:te().optional(),to_layer:br.optional(),trace_width:ut.optional()}),lAe=bA({type:lA("pcb_component"),pcb_component_id:zt("pcb_component"),source_component_id:v(),center:So,layer:br,rotation:bd,display_offset_x:v().optional().describe("How to display the x offset for this part, usually corresponding with how the user specified it"),display_offset_y:v().optional().describe("How to display the y offset for this part, usually corresponding with how the user specified it"),width:qi,height:qi,do_not_place:te().optional(),subcircuit_id:v().optional(),pcb_group_id:v().optional(),position_mode:Ze(["packed","relative_to_group_anchor","none"]).optional(),positioned_relative_to_pcb_group_id:v().optional(),positioned_relative_to_pcb_board_id:v().optional(),obstructs_within_bounds:te().default(!0).describe("Does this component take up all the space within its bounds on a layer. This is generally true except for when separated pin headers are being represented by a single component (in which case, chips can be placed between the pin headers) or for tall modules where chips fit underneath")}).describe("Defines a component on the PCB"),QAe=bA({type:lA("pcb_hole"),pcb_hole_id:zt("pcb_hole"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),pcb_component_id:v().optional(),hole_shape:lA("circle"),hole_diameter:NA(),x:ut,y:ut,is_covered_with_solder_mask:te().optional(),soldermask_margin:NA().optional()}),Bvt=QAe.describe("Defines a circular hole on the PCB"),EAe=bA({type:lA("pcb_hole"),pcb_hole_id:zt("pcb_hole"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),pcb_component_id:v().optional(),hole_shape:lA("rect"),hole_width:NA(),hole_height:NA(),x:ut,y:ut,is_covered_with_solder_mask:te().optional(),soldermask_margin:NA().optional()}),Cvt=EAe.describe("Defines a rectangular (square-capable) hole on the PCB. Use equal width/height for square."),hAe=bA({type:lA("pcb_hole"),pcb_hole_id:zt("pcb_hole"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),pcb_component_id:v().optional(),hole_shape:Ze(["circle","square"]),hole_diameter:NA(),x:ut,y:ut,is_covered_with_solder_mask:te().optional(),soldermask_margin:NA().optional()}),lvt=hAe.describe("Defines a circular or square hole on the PCB"),uAe=bA({type:lA("pcb_hole"),pcb_hole_id:zt("pcb_hole"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),pcb_component_id:v().optional(),hole_shape:lA("oval"),hole_width:NA(),hole_height:NA(),x:ut,y:ut,is_covered_with_solder_mask:te().optional(),soldermask_margin:NA().optional()}),Qvt=uAe.describe("Defines an oval hole on the PCB"),dAe=bA({type:lA("pcb_hole"),pcb_hole_id:zt("pcb_hole"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),pcb_component_id:v().optional(),hole_shape:lA("pill"),hole_width:NA(),hole_height:NA(),x:ut,y:ut,is_covered_with_solder_mask:te().optional(),soldermask_margin:NA().optional()}),Evt=dAe.describe("Defines a pill-shaped hole on the PCB"),pAe=bA({type:lA("pcb_hole"),pcb_hole_id:zt("pcb_hole"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),pcb_component_id:v().optional(),hole_shape:lA("rotated_pill"),hole_width:NA(),hole_height:NA(),x:ut,y:ut,ccw_rotation:bd,is_covered_with_solder_mask:te().optional(),soldermask_margin:NA().optional()}),hvt=pAe.describe("Defines a rotated pill-shaped hole on the PCB"),fAe=hAe.or(uAe).or(dAe).or(pAe).or(QAe).or(EAe),uvt=bA({type:lA("pcb_plated_hole"),shape:lA("circle"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),outer_diameter:NA(),hole_diameter:NA(),is_covered_with_solder_mask:te().optional(),x:ut,y:ut,layers:fe(br),port_hints:fe(v()).optional(),pcb_component_id:v().optional(),pcb_port_id:v().optional(),pcb_plated_hole_id:zt("pcb_plated_hole"),soldermask_margin:NA().optional()}),dvt=bA({type:lA("pcb_plated_hole"),shape:Ze(["oval","pill"]),pcb_group_id:v().optional(),subcircuit_id:v().optional(),outer_width:NA(),outer_height:NA(),hole_width:NA(),hole_height:NA(),is_covered_with_solder_mask:te().optional(),x:ut,y:ut,ccw_rotation:bd,layers:fe(br),port_hints:fe(v()).optional(),pcb_component_id:v().optional(),pcb_port_id:v().optional(),pcb_plated_hole_id:zt("pcb_plated_hole"),soldermask_margin:NA().optional()}),pvt=bA({type:lA("pcb_plated_hole"),shape:lA("circular_hole_with_rect_pad"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),hole_shape:lA("circle"),pad_shape:lA("rect"),hole_diameter:NA(),rect_pad_width:NA(),rect_pad_height:NA(),rect_border_radius:NA().optional(),hole_offset_x:ut.default(0),hole_offset_y:ut.default(0),is_covered_with_solder_mask:te().optional(),x:ut,y:ut,layers:fe(br),port_hints:fe(v()).optional(),pcb_component_id:v().optional(),pcb_port_id:v().optional(),pcb_plated_hole_id:zt("pcb_plated_hole"),soldermask_margin:NA().optional()}),fvt=bA({type:lA("pcb_plated_hole"),shape:lA("pill_hole_with_rect_pad"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),hole_shape:lA("pill"),pad_shape:lA("rect"),hole_width:NA(),hole_height:NA(),rect_pad_width:NA(),rect_pad_height:NA(),rect_border_radius:NA().optional(),hole_offset_x:ut.default(0),hole_offset_y:ut.default(0),is_covered_with_solder_mask:te().optional(),x:ut,y:ut,layers:fe(br),port_hints:fe(v()).optional(),pcb_component_id:v().optional(),pcb_port_id:v().optional(),pcb_plated_hole_id:zt("pcb_plated_hole"),soldermask_margin:NA().optional()}),yvt=bA({type:lA("pcb_plated_hole"),shape:lA("rotated_pill_hole_with_rect_pad"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),hole_shape:lA("rotated_pill"),pad_shape:lA("rect"),hole_width:NA(),hole_height:NA(),hole_ccw_rotation:bd,rect_pad_width:NA(),rect_pad_height:NA(),rect_border_radius:NA().optional(),rect_ccw_rotation:bd,hole_offset_x:ut.default(0),hole_offset_y:ut.default(0),is_covered_with_solder_mask:te().optional(),x:ut,y:ut,layers:fe(br),port_hints:fe(v()).optional(),pcb_component_id:v().optional(),pcb_port_id:v().optional(),pcb_plated_hole_id:zt("pcb_plated_hole"),soldermask_margin:NA().optional()}),mvt=bA({type:lA("pcb_plated_hole"),shape:lA("hole_with_polygon_pad"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),hole_shape:Ze(["circle","oval","pill","rotated_pill"]),hole_diameter:NA().optional(),hole_width:NA().optional(),hole_height:NA().optional(),pad_outline:fe(bA({x:ut,y:ut})).min(3),hole_offset_x:ut.default(0),hole_offset_y:ut.default(0),is_covered_with_solder_mask:te().optional(),x:ut,y:ut,layers:fe(br),port_hints:fe(v()).optional(),pcb_component_id:v().optional(),pcb_port_id:v().optional(),pcb_plated_hole_id:zt("pcb_plated_hole"),soldermask_margin:NA().optional()}),yAe=Wt([uvt,dvt,pvt,fvt,yvt,mvt]),mAe=bA({type:lA("pcb_port"),pcb_port_id:zt("pcb_port"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),source_port_id:v(),pcb_component_id:v().optional(),x:ut,y:ut,layers:fe(br),is_board_pinout:te().optional()}).describe("Defines a port on the PCB"),wvt=bA({type:lA("pcb_smtpad"),shape:lA("circle"),pcb_smtpad_id:zt("pcb_smtpad"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),x:ut,y:ut,radius:NA(),layer:br,port_hints:fe(v()).optional(),pcb_component_id:v().optional(),pcb_port_id:v().optional(),is_covered_with_solder_mask:te().optional(),soldermask_margin:NA().optional()}),Dvt=bA({type:lA("pcb_smtpad"),shape:lA("rect"),pcb_smtpad_id:zt("pcb_smtpad"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),x:ut,y:ut,width:NA(),height:NA(),rect_border_radius:NA().optional(),corner_radius:NA().optional(),layer:br,port_hints:fe(v()).optional(),pcb_component_id:v().optional(),pcb_port_id:v().optional(),is_covered_with_solder_mask:te().optional(),soldermask_margin:NA().optional()}),Svt=bA({type:lA("pcb_smtpad"),shape:lA("rotated_rect"),pcb_smtpad_id:zt("pcb_smtpad"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),x:ut,y:ut,width:NA(),height:NA(),rect_border_radius:NA().optional(),corner_radius:NA().optional(),ccw_rotation:bd,layer:br,port_hints:fe(v()).optional(),pcb_component_id:v().optional(),pcb_port_id:v().optional(),is_covered_with_solder_mask:te().optional(),soldermask_margin:NA().optional()}),wAe=bA({type:lA("pcb_smtpad"),shape:lA("pill"),pcb_smtpad_id:zt("pcb_smtpad"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),x:ut,y:ut,width:NA(),height:NA(),radius:NA(),layer:br,port_hints:fe(v()).optional(),pcb_component_id:v().optional(),pcb_port_id:v().optional(),is_covered_with_solder_mask:te().optional(),soldermask_margin:NA().optional()}),bvt=bA({type:lA("pcb_smtpad"),shape:lA("rotated_pill"),pcb_smtpad_id:zt("pcb_smtpad"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),x:ut,y:ut,width:NA(),height:NA(),radius:NA(),ccw_rotation:bd,layer:br,port_hints:fe(v()).optional(),pcb_component_id:v().optional(),pcb_port_id:v().optional(),is_covered_with_solder_mask:te().optional(),soldermask_margin:NA().optional()}),xvt=bA({type:lA("pcb_smtpad"),shape:lA("polygon"),pcb_smtpad_id:zt("pcb_smtpad"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),points:fe(So),layer:br,port_hints:fe(v()).optional(),pcb_component_id:v().optional(),pcb_port_id:v().optional(),is_covered_with_solder_mask:te().optional(),soldermask_margin:NA().optional()}),DAe=rE("shape",[wvt,Dvt,Svt,bvt,wAe,xvt]).describe("Defines an SMT pad on the PCB"),kvt=bA({type:lA("pcb_solder_paste"),shape:lA("circle"),pcb_solder_paste_id:zt("pcb_solder_paste"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),x:ut,y:ut,radius:NA(),layer:br,pcb_component_id:v().optional(),pcb_smtpad_id:v().optional()}),Gvt=bA({type:lA("pcb_solder_paste"),shape:lA("rect"),pcb_solder_paste_id:zt("pcb_solder_paste"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),x:ut,y:ut,width:NA(),height:NA(),layer:br,pcb_component_id:v().optional(),pcb_smtpad_id:v().optional()}),Fvt=bA({type:lA("pcb_solder_paste"),shape:lA("pill"),pcb_solder_paste_id:zt("pcb_solder_paste"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),x:ut,y:ut,width:NA(),height:NA(),radius:NA(),layer:br,pcb_component_id:v().optional(),pcb_smtpad_id:v().optional()}),_vt=bA({type:lA("pcb_solder_paste"),shape:lA("rotated_rect"),pcb_solder_paste_id:zt("pcb_solder_paste"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),x:ut,y:ut,width:NA(),height:NA(),ccw_rotation:ut,layer:br,pcb_component_id:v().optional(),pcb_smtpad_id:v().optional()}),Rvt=bA({type:lA("pcb_solder_paste"),shape:lA("oval"),pcb_solder_paste_id:zt("pcb_solder_paste"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),x:ut,y:ut,width:NA(),height:NA(),layer:br,pcb_component_id:v().optional(),pcb_smtpad_id:v().optional()}),SAe=Wt([kvt,Gvt,Fvt,_vt,Rvt]).describe("Defines solderpaste on the PCB"),bAe=bA({type:lA("pcb_text"),pcb_text_id:zt("pcb_text"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),text:v(),center:So,layer:br,width:qi,height:qi,lines:NA(),align:Ze(["bottom-left"])}).describe("Defines text on the PCB"),xAe=bA({route_type:lA("wire"),x:ut,y:ut,width:ut,start_pcb_port_id:v().optional(),end_pcb_port_id:v().optional(),layer:br}),kAe=bA({route_type:lA("via"),x:ut,y:ut,hole_diameter:ut.optional(),outer_diameter:ut.optional(),from_layer:v(),to_layer:v()}),GAe=Wt([xAe,kAe]),FAe=bA({type:lA("pcb_trace"),source_trace_id:v().optional(),pcb_component_id:v().optional(),pcb_trace_id:zt("pcb_trace"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),route_thickness_mode:Ze(["constant","interpolated"]).default("constant").optional(),route_order_index:NA().optional(),should_round_corners:te().optional(),trace_length:NA().optional(),highlight_color:v().optional(),route:fe(GAe)}).describe("Defines a trace on the PCB"),_Ae=bA({type:lA("pcb_trace_error"),pcb_trace_error_id:zt("pcb_trace_error"),error_type:lA("pcb_trace_error").default("pcb_trace_error"),message:v(),center:So.optional(),pcb_trace_id:v(),source_trace_id:v(),pcb_component_ids:fe(v()),pcb_port_ids:fe(v()),subcircuit_id:v().optional()}).describe("Defines a trace error on the PCB"),RAe=bA({type:lA("pcb_trace_missing_error"),pcb_trace_missing_error_id:zt("pcb_trace_missing_error"),error_type:lA("pcb_trace_missing_error").default("pcb_trace_missing_error"),message:v(),center:So.optional(),source_trace_id:v(),pcb_component_ids:fe(v()),pcb_port_ids:fe(v()),subcircuit_id:v().optional()}).describe("Defines an error when a source trace has no corresponding PCB trace"),NAe=bA({type:lA("pcb_port_not_matched_error"),pcb_error_id:zt("pcb_error"),error_type:lA("pcb_port_not_matched_error").default("pcb_port_not_matched_error"),message:v(),pcb_component_ids:fe(v()),subcircuit_id:v().optional()}).describe("Defines a trace error on the PCB where a port is not matched"),MAe=bA({type:lA("pcb_port_not_connected_error"),pcb_port_not_connected_error_id:zt("pcb_port_not_connected_error"),error_type:lA("pcb_port_not_connected_error").default("pcb_port_not_connected_error"),message:v(),pcb_port_ids:fe(v()),pcb_component_ids:fe(v()),subcircuit_id:v().optional()}).describe("Defines an error when a pcb port is not connected to any trace"),vAe=bA({type:lA("pcb_net"),pcb_net_id:zt("pcb_net"),source_net_id:v().optional(),highlight_color:v().optional()}).describe("Defines a net on the PCB"),UAe=bA({type:lA("pcb_via"),pcb_via_id:zt("pcb_via"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),subcircuit_connectivity_map_key:v().optional(),x:ut,y:ut,outer_diameter:ut.default("0.6mm"),hole_diameter:ut.default("0.25mm"),from_layer:br.optional(),to_layer:br.optional(),layers:fe(br),pcb_trace_id:v().optional(),net_is_assignable:te().optional(),net_assigned:te().optional(),is_tented:te().optional()}).describe("Defines a via on the PCB"),LAe=bA({type:lA("pcb_board"),pcb_board_id:zt("pcb_board"),pcb_panel_id:v().optional(),is_subcircuit:te().optional(),subcircuit_id:v().optional(),width:qi.optional(),height:qi.optional(),center:So,display_offset_x:v().optional().describe("How to display the x offset for this board, usually corresponding with how the user specified it"),display_offset_y:v().optional().describe("How to display the y offset for this board, usually corresponding with how the user specified it"),thickness:qi.optional().default(1.4),num_layers:NA().optional().default(4),outline:fe(So).optional(),shape:Ze(["rect","polygon"]).optional(),material:Ze(["fr4","fr1"]).default("fr4"),anchor_position:So.optional(),anchor_alignment:Ux.optional(),position_mode:Ze(["relative_to_panel_anchor","none"]).optional()}).describe("Defines the board outline of the PCB"),HAe=bA({type:lA("pcb_panel"),pcb_panel_id:zt("pcb_panel"),width:qi,height:qi,center:So,covered_with_solder_mask:te().optional().default(!0)}).describe("Defines a PCB panel that can contain multiple boards"),YAe=bA({type:lA("pcb_placement_error"),pcb_placement_error_id:zt("pcb_placement_error"),error_type:lA("pcb_placement_error").default("pcb_placement_error"),message:v(),subcircuit_id:v().optional()}).describe("Defines a placement error on the PCB"),JAe=bA({type:lA("pcb_trace_hint"),pcb_trace_hint_id:zt("pcb_trace_hint"),pcb_port_id:v(),pcb_component_id:v(),route:fe(CAe),subcircuit_id:v().optional()}).describe("A hint that can be used during generation of a PCB trace"),KAe=bA({type:lA("pcb_silkscreen_line"),pcb_silkscreen_line_id:zt("pcb_silkscreen_line"),pcb_component_id:v(),pcb_group_id:v().optional(),subcircuit_id:v().optional(),stroke_width:ut.default("0.1mm"),x1:ut,y1:ut,x2:ut,y2:ut,layer:Dm}).describe("Defines a silkscreen line on the PCB"),TAe=bA({type:lA("pcb_silkscreen_path"),pcb_silkscreen_path_id:zt("pcb_silkscreen_path"),pcb_component_id:v(),pcb_group_id:v().optional(),subcircuit_id:v().optional(),layer:Dm,route:fe(So),stroke_width:qi}).describe("Defines a silkscreen path on the PCB"),qAe=bA({type:lA("pcb_silkscreen_text"),pcb_silkscreen_text_id:zt("pcb_silkscreen_text"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),font:lA("tscircuit2024").default("tscircuit2024"),font_size:ut.default("0.2mm"),pcb_component_id:v(),text:v(),is_knockout:te().default(!1).optional(),knockout_padding:bA({left:qi,top:qi,bottom:qi,right:qi}).default({left:"0.2mm",top:"0.2mm",bottom:"0.2mm",right:"0.2mm"}).optional(),ccw_rotation:NA().optional(),layer:br,is_mirrored:te().default(!1).optional(),anchor_position:So.default({x:0,y:0}),anchor_alignment:Ux.default("center")}).describe("Defines silkscreen text on the PCB"),PAe=bA({type:lA("pcb_copper_text"),pcb_copper_text_id:zt("pcb_copper_text"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),font:lA("tscircuit2024").default("tscircuit2024"),font_size:ut.default("0.2mm"),pcb_component_id:v(),text:v(),is_knockout:te().default(!1).optional(),knockout_padding:bA({left:qi,top:qi,bottom:qi,right:qi}).default({left:"0.2mm",top:"0.2mm",bottom:"0.2mm",right:"0.2mm"}).optional(),ccw_rotation:NA().optional(),layer:br,is_mirrored:te().default(!1).optional(),anchor_position:So.default({x:0,y:0}),anchor_alignment:Ux.default("center")}).describe("Defines copper text on the PCB"),OAe=bA({type:lA("pcb_silkscreen_rect"),pcb_silkscreen_rect_id:zt("pcb_silkscreen_rect"),pcb_component_id:v(),pcb_group_id:v().optional(),subcircuit_id:v().optional(),center:So,width:qi,height:qi,layer:br,stroke_width:qi.default("1mm"),corner_radius:qi.optional(),is_filled:te().default(!0).optional(),has_stroke:te().optional(),is_stroke_dashed:te().optional()}).describe("Defines a silkscreen rect on the PCB"),WAe=bA({type:lA("pcb_silkscreen_circle"),pcb_silkscreen_circle_id:zt("pcb_silkscreen_circle"),pcb_component_id:v(),pcb_group_id:v().optional(),subcircuit_id:v().optional(),center:So,radius:qi,layer:Dm,stroke_width:qi.default("1mm")}).describe("Defines a silkscreen circle on the PCB"),ZAe=bA({type:lA("pcb_silkscreen_oval"),pcb_silkscreen_oval_id:zt("pcb_silkscreen_oval"),pcb_component_id:v(),pcb_group_id:v().optional(),subcircuit_id:v().optional(),center:So,radius_x:ut,radius_y:ut,layer:Dm}).describe("Defines a silkscreen oval on the PCB"),VAe=bA({type:lA("pcb_silkscreen_pill"),pcb_silkscreen_pill_id:zt("pcb_silkscreen_pill"),pcb_component_id:v(),pcb_group_id:v().optional(),subcircuit_id:v().optional(),center:So,width:qi,height:qi,layer:br}).describe("Defines a silkscreen pill on the PCB"),jAe=bA({type:lA("pcb_fabrication_note_text"),pcb_fabrication_note_text_id:zt("pcb_fabrication_note_text"),subcircuit_id:v().optional(),pcb_group_id:v().optional(),font:lA("tscircuit2024").default("tscircuit2024"),font_size:ut.default("1mm"),pcb_component_id:v(),text:v(),layer:Dm,anchor_position:So.default({x:0,y:0}),anchor_alignment:Ze(["center","top_left","top_right","bottom_left","bottom_right"]).default("center"),color:v().optional()}).describe("Defines a fabrication note in text on the PCB, useful for leaving notes for assemblers or fabricators"),zAe=bA({type:lA("pcb_fabrication_note_path"),pcb_fabrication_note_path_id:zt("pcb_fabrication_note_path"),pcb_component_id:v(),subcircuit_id:v().optional(),layer:br,route:fe(So),stroke_width:qi,color:v().optional()}).describe("Defines a fabrication path on the PCB for fabricators or assemblers"),XAe=bA({type:lA("pcb_fabrication_note_rect"),pcb_fabrication_note_rect_id:zt("pcb_fabrication_note_rect"),pcb_component_id:v(),pcb_group_id:v().optional(),subcircuit_id:v().optional(),center:So,width:qi,height:qi,layer:Dm,stroke_width:qi.default("0.1mm"),corner_radius:qi.optional(),is_filled:te().optional(),has_stroke:te().optional(),is_stroke_dashed:te().optional(),color:v().optional()}).describe("Defines a fabrication note rectangle on the PCB"),$Ae=bA({type:lA("pcb_fabrication_note_dimension"),pcb_fabrication_note_dimension_id:zt("pcb_fabrication_note_dimension"),pcb_component_id:v(),pcb_group_id:v().optional(),subcircuit_id:v().optional(),layer:Dm,from:So,to:So,text:v().optional(),text_ccw_rotation:NA().optional(),offset:qi.optional(),offset_distance:qi.optional(),offset_direction:bA({x:NA(),y:NA()}).optional(),font:lA("tscircuit2024").default("tscircuit2024"),font_size:qi.default("1mm"),color:v().optional(),arrow_size:qi.default("1mm")}).describe("Defines a measurement annotation within PCB fabrication notes"),Aee=bA({type:lA("pcb_note_text"),pcb_note_text_id:zt("pcb_note_text"),pcb_component_id:v().optional(),pcb_group_id:v().optional(),subcircuit_id:v().optional(),name:v().optional(),font:lA("tscircuit2024").default("tscircuit2024"),font_size:ut.default("1mm"),text:v().optional(),anchor_position:So.default({x:0,y:0}),anchor_alignment:Ze(["center","top_left","top_right","bottom_left","bottom_right"]).default("center"),color:v().optional()}).describe("Defines a documentation note in text on the PCB"),eee=bA({type:lA("pcb_note_rect"),pcb_note_rect_id:zt("pcb_note_rect"),pcb_component_id:v().optional(),pcb_group_id:v().optional(),subcircuit_id:v().optional(),name:v().optional(),text:v().optional(),center:So,width:qi,height:qi,stroke_width:qi.default("0.1mm"),corner_radius:qi.optional(),is_filled:te().optional(),has_stroke:te().optional(),is_stroke_dashed:te().optional(),color:v().optional()}).describe("Defines a rectangular documentation note on the PCB"),tee=bA({type:lA("pcb_note_path"),pcb_note_path_id:zt("pcb_note_path"),pcb_component_id:v().optional(),pcb_group_id:v().optional(),subcircuit_id:v().optional(),name:v().optional(),text:v().optional(),route:fe(So),stroke_width:qi.default("0.1mm"),color:v().optional()}).describe("Defines a polyline documentation note on the PCB"),iee=bA({type:lA("pcb_note_line"),pcb_note_line_id:zt("pcb_note_line"),pcb_component_id:v().optional(),pcb_group_id:v().optional(),subcircuit_id:v().optional(),name:v().optional(),text:v().optional(),x1:ut,y1:ut,x2:ut,y2:ut,stroke_width:ut.default("0.1mm"),color:v().optional(),is_dashed:te().optional()}).describe("Defines a straight documentation note line on the PCB"),oee=bA({type:lA("pcb_note_dimension"),pcb_note_dimension_id:zt("pcb_note_dimension"),pcb_component_id:v().optional(),pcb_group_id:v().optional(),subcircuit_id:v().optional(),name:v().optional(),from:So,to:So,text:v().optional(),text_ccw_rotation:NA().optional(),offset_distance:qi.optional(),offset_direction:bA({x:NA(),y:NA()}).optional(),font:lA("tscircuit2024").default("tscircuit2024"),font_size:qi.default("1mm"),color:v().optional(),arrow_size:qi.default("1mm")}).describe("Defines a measurement annotation within PCB documentation notes"),nee=bA({type:lA("pcb_footprint_overlap_error"),pcb_error_id:zt("pcb_error"),error_type:lA("pcb_footprint_overlap_error").default("pcb_footprint_overlap_error"),message:v(),pcb_smtpad_ids:fe(v()).optional(),pcb_plated_hole_ids:fe(v()).optional(),pcb_hole_ids:fe(v()).optional(),pcb_keepout_ids:fe(v()).optional()}).describe("Error emitted when a pcb footprint overlaps with another element"),see=bA({type:lA("pcb_keepout"),shape:lA("rect"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),center:So,width:ut,height:ut,pcb_keepout_id:v(),layers:fe(v()),description:v().optional()}).or(bA({type:lA("pcb_keepout"),shape:lA("circle"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),center:So,radius:ut,pcb_keepout_id:v(),layers:fe(v()),description:v().optional()})),v8=bA({type:lA("pcb_cutout"),pcb_cutout_id:zt("pcb_cutout"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),pcb_board_id:v().optional(),pcb_panel_id:v().optional()}),ree=v8.extend({shape:lA("rect"),center:So,width:qi,height:qi,rotation:bd.optional(),corner_radius:qi.optional()}),aee=v8.extend({shape:lA("circle"),center:So,radius:qi}),gee=v8.extend({shape:lA("polygon"),points:fe(So)}),Iee=v8.extend({shape:lA("path"),route:fe(So),slot_width:qi,slot_length:qi.optional(),space_between_slots:qi.optional(),slot_corner_radius:qi.optional()}),cee=rE("shape",[ree,aee,gee,Iee]).describe("Defines a cutout on the PCB, removing board material."),Bee=bA({type:lA("pcb_missing_footprint_error"),pcb_missing_footprint_error_id:zt("pcb_missing_footprint_error"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),error_type:lA("pcb_missing_footprint_error").default("pcb_missing_footprint_error"),source_component_id:v(),message:v()}).describe("Defines a missing footprint error on the PCB"),Cee=bA({type:lA("external_footprint_load_error"),external_footprint_load_error_id:zt("external_footprint_load_error"),pcb_component_id:v(),source_component_id:v(),pcb_group_id:v().optional(),subcircuit_id:v().optional(),footprinter_string:v().optional(),error_type:lA("external_footprint_load_error").default("external_footprint_load_error"),message:v()}).describe("Defines an error when an external footprint fails to load"),lee=bA({type:lA("circuit_json_footprint_load_error"),circuit_json_footprint_load_error_id:zt("circuit_json_footprint_load_error"),pcb_component_id:v(),source_component_id:v(),pcb_group_id:v().optional(),subcircuit_id:v().optional(),error_type:lA("circuit_json_footprint_load_error").default("circuit_json_footprint_load_error"),message:v(),circuit_json:fe(Yg()).optional()}).describe("Defines an error when a circuit JSON footprint fails to load"),Qee=bA({type:lA("pcb_group"),pcb_group_id:zt("pcb_group"),source_group_id:v(),is_subcircuit:te().optional(),subcircuit_id:v().optional(),width:qi.optional(),height:qi.optional(),center:So,display_offset_x:v().optional().describe("How to display the x offset for this group, usually corresponding with how the user specified it"),display_offset_y:v().optional().describe("How to display the y offset for this group, usually corresponding with how the user specified it"),outline:fe(So).optional(),anchor_position:So.optional(),anchor_alignment:Ux.default("center"),position_mode:Ze(["packed","relative_to_group_anchor","none"]).optional(),positioned_relative_to_pcb_group_id:v().optional(),positioned_relative_to_pcb_board_id:v().optional(),pcb_component_ids:fe(v()),child_layout_mode:Ze(["packed","none"]).optional(),name:v().optional(),description:v().optional(),layout_mode:v().optional(),autorouter_configuration:bA({trace_clearance:qi}).optional(),autorouter_used_string:v().optional()}).describe("Defines a group of components on the PCB"),Eee=bA({type:lA("pcb_autorouting_error"),pcb_error_id:zt("pcb_autorouting_error"),error_type:lA("pcb_autorouting_error").default("pcb_autorouting_error"),message:v(),subcircuit_id:v().optional()}).describe("The autorouting has failed to route a portion of the board"),hee=bA({type:lA("pcb_manual_edit_conflict_warning"),pcb_manual_edit_conflict_warning_id:zt("pcb_manual_edit_conflict_warning"),warning_type:lA("pcb_manual_edit_conflict_warning").default("pcb_manual_edit_conflict_warning"),message:v(),pcb_component_id:v(),pcb_group_id:v().optional(),subcircuit_id:v().optional(),source_component_id:v()}).describe("Warning emitted when a component has both manual placement and explicit pcbX/pcbY coordinates"),uee=bA({type:lA("pcb_breakout_point"),pcb_breakout_point_id:zt("pcb_breakout_point"),pcb_group_id:v(),subcircuit_id:v().optional(),source_trace_id:v().optional(),source_port_id:v().optional(),source_net_id:v().optional(),x:ut,y:ut}).describe("Defines a routing target within a pcb_group for a source_trace or source_net"),dee=bA({type:lA("pcb_ground_plane"),pcb_ground_plane_id:zt("pcb_ground_plane"),source_pcb_ground_plane_id:v(),source_net_id:v(),pcb_group_id:v().optional(),subcircuit_id:v().optional()}).describe("Defines a ground plane on the PCB"),pee=bA({type:lA("pcb_ground_plane_region"),pcb_ground_plane_region_id:zt("pcb_ground_plane_region"),pcb_ground_plane_id:v(),pcb_group_id:v().optional(),subcircuit_id:v().optional(),layer:br,points:fe(So)}).describe("Defines a polygon region of a ground plane"),fee=bA({type:lA("pcb_thermal_spoke"),pcb_thermal_spoke_id:zt("pcb_thermal_spoke"),pcb_ground_plane_id:v(),shape:v(),spoke_count:NA(),spoke_thickness:ut,spoke_inner_diameter:ut,spoke_outer_diameter:ut,pcb_plated_hole_id:v().optional(),subcircuit_id:v().optional()}).describe("Pattern for connecting a ground plane to a plated hole"),qQA=bA({type:lA("pcb_copper_pour"),pcb_copper_pour_id:zt("pcb_copper_pour"),pcb_group_id:v().optional(),subcircuit_id:v().optional(),layer:br,source_net_id:v().optional(),covered_with_solder_mask:te().optional().default(!0)}),yee=qQA.extend({shape:lA("rect"),center:So,width:qi,height:qi,rotation:bd.optional()}),mee=qQA.extend({shape:lA("brep"),brep_shape:cAe}),wee=qQA.extend({shape:lA("polygon"),points:fe(So)}),Dee=rE("shape",[yee,mee,wee]).describe("Defines a copper pour on the PCB."),See=bA({type:lA("pcb_component_outside_board_error"),pcb_component_outside_board_error_id:zt("pcb_component_outside_board_error"),error_type:lA("pcb_component_outside_board_error").default("pcb_component_outside_board_error"),message:v(),pcb_component_id:v(),pcb_board_id:v(),component_center:So,component_bounds:bA({min_x:NA(),max_x:NA(),min_y:NA(),max_y:NA()}),subcircuit_id:v().optional(),source_component_id:v().optional()}).describe("Error emitted when a PCB component is placed outside the board boundaries"),bee=bA({type:lA("pcb_component_invalid_layer_error"),pcb_component_invalid_layer_error_id:zt("pcb_component_invalid_layer_error"),error_type:lA("pcb_component_invalid_layer_error").default("pcb_component_invalid_layer_error"),message:v(),pcb_component_id:v().optional(),source_component_id:v(),layer:br,subcircuit_id:v().optional()}).describe("Error emitted when a component is placed on an invalid layer (components can only be on 'top' or 'bottom' layers)"),xee=bA({type:lA("pcb_via_clearance_error"),pcb_error_id:zt("pcb_error"),error_type:lA("pcb_via_clearance_error").default("pcb_via_clearance_error"),message:v(),pcb_via_ids:fe(v()).min(2),minimum_clearance:ut.optional(),actual_clearance:ut.optional(),pcb_center:bA({x:NA().optional(),y:NA().optional()}).optional(),subcircuit_id:v().optional()}).describe("Error emitted when vias are closer than the allowed clearance"),kee=bA({type:lA("pcb_courtyard_rect"),pcb_courtyard_rect_id:zt("pcb_courtyard_rect"),pcb_component_id:v(),pcb_group_id:v().optional(),subcircuit_id:v().optional(),center:So,width:qi,height:qi,layer:Dm,color:v().optional()}).describe("Defines a courtyard rectangle on the PCB"),Gee=bA({type:lA("pcb_courtyard_outline"),pcb_courtyard_outline_id:zt("pcb_courtyard_outline"),pcb_component_id:v(),pcb_group_id:v().optional(),subcircuit_id:v().optional(),layer:Dm,outline:fe(So).min(2),stroke_width:qi.default("0.1mm"),is_closed:te().optional(),is_stroke_dashed:te().optional(),color:v().optional()}).describe("Defines a courtyard outline on the PCB"),Fee=bA({type:lA("pcb_courtyard_polygon"),pcb_courtyard_polygon_id:zt("pcb_courtyard_polygon"),pcb_component_id:v(),pcb_group_id:v().optional(),subcircuit_id:v().optional(),layer:Dm,points:fe(So).min(3),color:v().optional()}).describe("Defines a courtyard polygon on the PCB"),_ee=bA({type:lA("cad_component"),cad_component_id:v(),pcb_component_id:v(),source_component_id:v(),position:XL,rotation:XL.optional(),size:XL.optional(),layer:br.optional(),subcircuit_id:v().optional(),footprinter_string:v().optional(),model_obj_url:v().optional(),model_stl_url:v().optional(),model_3mf_url:v().optional(),model_gltf_url:v().optional(),model_glb_url:v().optional(),model_step_url:v().optional(),model_wrl_url:v().optional(),model_unit_to_mm_scale_factor:NA().optional(),model_jscad:Yg().optional(),show_as_translucent_model:te().optional()}).describe("Defines a component on the PCB"),PQA=Ze(["sinewave","square","triangle","sawtooth"]),Nvt=Wt([v(),NA()]).transform(t=>typeof t=="string"?t.endsWith("%")?parseFloat(t.slice(0,-1))/100:parseFloat(t):t).pipe(NA().min(0,"Duty cycle must be non-negative").max(1,"Duty cycle cannot be greater than 100%")),Ree=bA({type:lA("simulation_voltage_source"),simulation_voltage_source_id:zt("simulation_voltage_source"),is_dc_source:lA(!0).optional().default(!0),positive_source_port_id:v().optional(),negative_source_port_id:v().optional(),positive_source_net_id:v().optional(),negative_source_net_id:v().optional(),voltage:tF}).describe("Defines a DC voltage source for simulation"),Nee=bA({type:lA("simulation_voltage_source"),simulation_voltage_source_id:zt("simulation_voltage_source"),is_dc_source:lA(!1),terminal1_source_port_id:v().optional(),terminal2_source_port_id:v().optional(),terminal1_source_net_id:v().optional(),terminal2_source_net_id:v().optional(),voltage:tF.optional(),frequency:jL.optional(),peak_to_peak_voltage:tF.optional(),wave_shape:PQA.optional(),phase:bd.optional(),duty_cycle:Nvt.optional()}).describe("Defines an AC voltage source for simulation"),Mee=Wt([Ree,Nee]).describe("Defines a voltage source for simulation"),Mvt=Wt([v(),NA()]).transform(t=>typeof t=="string"?t.endsWith("%")?parseFloat(t.slice(0,-1))/100:parseFloat(t):t).pipe(NA().min(0,"Duty cycle must be non-negative").max(1,"Duty cycle cannot be greater than 100%")),vee=bA({type:lA("simulation_current_source"),simulation_current_source_id:zt("simulation_current_source"),is_dc_source:lA(!0).optional().default(!0),positive_source_port_id:v().optional(),negative_source_port_id:v().optional(),positive_source_net_id:v().optional(),negative_source_net_id:v().optional(),current:R8}).describe("Defines a DC current source for simulation"),Uee=bA({type:lA("simulation_current_source"),simulation_current_source_id:zt("simulation_current_source"),is_dc_source:lA(!1),terminal1_source_port_id:v().optional(),terminal2_source_port_id:v().optional(),terminal1_source_net_id:v().optional(),terminal2_source_net_id:v().optional(),current:R8.optional(),frequency:jL.optional(),peak_to_peak_current:R8.optional(),wave_shape:PQA.optional(),phase:bd.optional(),duty_cycle:Mvt.optional()}).describe("Defines an AC current source for simulation"),Lee=Wt([vee,Uee]).describe("Defines a current source for simulation"),Hee=Wt([lA("spice_dc_sweep"),lA("spice_dc_operating_point"),lA("spice_transient_analysis"),lA("spice_ac_analysis")]),Yee=bA({type:lA("simulation_experiment"),simulation_experiment_id:zt("simulation_experiment"),name:v(),experiment_type:Hee,time_per_step:zL.optional(),start_time_ms:iF.optional(),end_time_ms:iF.optional()}).describe("Defines a simulation experiment configuration"),Jee=bA({type:lA("simulation_transient_voltage_graph"),simulation_transient_voltage_graph_id:zt("simulation_transient_voltage_graph"),simulation_experiment_id:v(),timestamps_ms:fe(NA()).optional(),voltage_levels:fe(NA()),source_component_id:v().optional(),subcircuit_connectivity_map_key:v().optional(),time_per_step:zL,start_time_ms:iF,end_time_ms:iF,name:v().optional(),color:v().optional()}).describe("Stores voltage measurements over time for a simulation"),Kee=bA({type:lA("simulation_switch"),simulation_switch_id:zt("simulation_switch"),source_component_id:v().optional(),closes_at:iF.optional(),opens_at:iF.optional(),starts_closed:te().optional(),switching_frequency:jL.optional()}).describe("Defines a switch for simulation timing control"),Tee=bA({type:lA("simulation_voltage_probe"),simulation_voltage_probe_id:zt("simulation_voltage_probe"),source_component_id:v().optional(),name:v().optional(),signal_input_source_port_id:v().optional(),signal_input_source_net_id:v().optional(),reference_input_source_port_id:v().optional(),reference_input_source_net_id:v().optional(),subcircuit_id:v().optional(),color:v().optional()}).describe("Defines a voltage probe for simulation. If a reference input is not provided, it measures against ground. If a reference input is provided, it measures the differential voltage between two points.").superRefine((t,A)=>{if(t.reference_input_source_port_id||t.reference_input_source_net_id){const i=!!t.signal_input_source_port_id||!!t.reference_input_source_port_id,o=!!t.signal_input_source_net_id||!!t.reference_input_source_net_id;i&&o?A.addIssue({code:Zt.custom,message:"Cannot mix port and net connections in a differential probe."}):i?(!t.signal_input_source_port_id||!t.reference_input_source_port_id)&&A.addIssue({code:Zt.custom,message:"Differential port probe requires both signal_input_source_port_id and reference_input_source_port_id."}):o&&(!t.signal_input_source_net_id||!t.reference_input_source_net_id)&&A.addIssue({code:Zt.custom,message:"Differential net probe requires both signal_input_source_net_id and reference_input_source_net_id."})}else!!t.signal_input_source_port_id==!!t.signal_input_source_net_id&&A.addIssue({code:Zt.custom,message:"A voltage probe must have exactly one of signal_input_source_port_id or signal_input_source_net_id."})}),qee=bA({type:lA("simulation_unknown_experiment_error"),simulation_unknown_experiment_error_id:zt("simulation_unknown_experiment_error"),error_type:lA("simulation_unknown_experiment_error").default("simulation_unknown_experiment_error"),message:v(),simulation_experiment_id:v().optional(),subcircuit_id:v().optional()}).describe("An unknown error occurred during the simulation experiment."),Pee=Wt([x$A,S$A,b$A,D$A,G$A,k$A,SQA,mQA,N8,DQA,wQA,bQA,xQA,kQA,_QA,RQA,NQA,LQA,MQA,vQA,UQA,FQA,GQA,_$A,N$A,F$A,HQA,YQA,JQA,M$A,v$A,lAe,fAe,Bee,Cee,lee,hee,yAe,see,mAe,vAe,bAe,FAe,UAe,DAe,SAe,LAe,HAe,Qee,JAe,KAe,TAe,qAe,VAe,PAe,OAe,WAe,ZAe,_Ae,RAe,YAe,NAe,MAe,xee,zAe,jAe,XAe,$Ae,Aee,eee,tee,iee,oee,Eee,nee,uee,cee,dee,pee,fee,Dee,See,bee,kee,Gee,Fee,U$A,V$A,q$A,P$A,O$A,W$A,T$A,j$A,Z$A,L$A,X$A,$$A,z$A,iAe,oAe,nAe,sAe,gAe,rAe,aAe,_ee,Mee,Lee,Yee,Jee,Kee,Tee,qee]),OQA=Pee;const Oee=Object.freeze(Object.defineProperty({__proto__:null,all_layers:R$A,any_circuit_element:Pee,any_soup_element:OQA,any_source_component:D$A,battery_capacity:Q$A,brep_shape:cAe,cad_component:_ee,capacitance:fQA,circuit_json_footprint_load_error:lee,current:R8,distance:ut,duration_ms:zL,experiment_type:Hee,external_footprint_load_error:Cee,frequency:jL,getZodPrefixedIdWithDefault:zt,inductance:C$A,layer_ref:br,layer_string:KQA,length:qi,ms:iF,ninePointAnchor:Ux,pcb_autorouting_error:Eee,pcb_board:LAe,pcb_breakout_point:uee,pcb_component:lAe,pcb_component_invalid_layer_error:bee,pcb_component_outside_board_error:See,pcb_copper_pour:Dee,pcb_copper_pour_brep:mee,pcb_copper_pour_polygon:wee,pcb_copper_pour_rect:yee,pcb_copper_text:PAe,pcb_courtyard_outline:Gee,pcb_courtyard_polygon:Fee,pcb_courtyard_rect:kee,pcb_cutout:cee,pcb_cutout_circle:aee,pcb_cutout_path:Iee,pcb_cutout_polygon:gee,pcb_cutout_rect:ree,pcb_fabrication_note_dimension:$Ae,pcb_fabrication_note_path:zAe,pcb_fabrication_note_rect:XAe,pcb_fabrication_note_text:jAe,pcb_footprint_overlap_error:nee,pcb_ground_plane:dee,pcb_ground_plane_region:pee,pcb_group:Qee,pcb_hole:fAe,pcb_hole_circle_or_square_shape:lvt,pcb_hole_circle_shape:Bvt,pcb_hole_oval_shape:Qvt,pcb_hole_pill_shape:Evt,pcb_hole_rect_shape:Cvt,pcb_hole_rotated_pill_shape:hvt,pcb_keepout:see,pcb_manual_edit_conflict_warning:hee,pcb_missing_footprint_error:Bee,pcb_net:vAe,pcb_note_dimension:oee,pcb_note_line:iee,pcb_note_path:tee,pcb_note_rect:eee,pcb_note_text:Aee,pcb_panel:HAe,pcb_placement_error:YAe,pcb_plated_hole:yAe,pcb_port:mAe,pcb_port_not_connected_error:MAe,pcb_port_not_matched_error:NAe,pcb_route_hint:BAe,pcb_route_hints:cvt,pcb_silkscreen_circle:WAe,pcb_silkscreen_line:KAe,pcb_silkscreen_oval:ZAe,pcb_silkscreen_path:TAe,pcb_silkscreen_pill:VAe,pcb_silkscreen_rect:OAe,pcb_silkscreen_text:qAe,pcb_smtpad:DAe,pcb_smtpad_pill:wAe,pcb_solder_paste:SAe,pcb_text:bAe,pcb_thermal_spoke:fee,pcb_trace:FAe,pcb_trace_error:_Ae,pcb_trace_hint:JAe,pcb_trace_missing_error:RAe,pcb_trace_route_point:GAe,pcb_trace_route_point_via:kAe,pcb_trace_route_point_wire:xAe,pcb_via:UAe,pcb_via_clearance_error:xee,point:So,point3:XL,point_with_bulge:IAe,port_arrangement:K$A,position:svt,position3:rvt,resistance:_8,ring:TQA,rotation:bd,route_hint_point:CAe,schematic_arc:W$A,schematic_box:U$A,schematic_circle:O$A,schematic_component:T$A,schematic_component_port_arrangement_by_sides:J$A,schematic_component_port_arrangement_by_size:Y$A,schematic_debug_line:eAe,schematic_debug_object:iAe,schematic_debug_object_base:M8,schematic_debug_point:tAe,schematic_debug_rect:AAe,schematic_error:X$A,schematic_group:sAe,schematic_layout_error:$$A,schematic_line:q$A,schematic_manual_edit_conflict_warning:nAe,schematic_net_label:z$A,schematic_path:L$A,schematic_pin_styles:H$A,schematic_port:j$A,schematic_rect:P$A,schematic_sheet:gAe,schematic_table:rAe,schematic_table_cell:aAe,schematic_text:V$A,schematic_trace:Z$A,schematic_voltage_probe:oAe,simulation_ac_current_source:Uee,simulation_ac_voltage_source:Nee,simulation_current_source:Lee,simulation_dc_current_source:vee,simulation_dc_voltage_source:Ree,simulation_experiment:Yee,simulation_switch:Kee,simulation_transient_voltage_graph:Jee,simulation_unknown_experiment_error:qee,simulation_voltage_probe:Tee,simulation_voltage_source:Mee,size:yQA,source_board:F$A,source_component_base:DB,source_component_internal_connection:b$A,source_failed_to_create_component_error:f$A,source_group:k$A,source_interconnect:w$A,source_manually_placed_via:N$A,source_missing_property_error:p$A,source_net:G$A,source_pcb_ground_plane:_$A,source_pin_missing_trace_warning:JQA,source_pin_must_be_connected_error:M$A,source_port:S$A,source_project_metadata:HQA,source_property_ignored_warning:y$A,source_simple_battery:xQA,source_simple_capacitor:mQA,source_simple_chip:SQA,source_simple_crystal:d$A,source_simple_diode:N8,source_simple_fiducial:h$A,source_simple_ground:u$A,source_simple_inductor:kQA,source_simple_led:DQA,source_simple_mosfet:UQA,source_simple_pin_header:_QA,source_simple_pinout:RQA,source_simple_potentiometer:FQA,source_simple_power_source:bQA,source_simple_push_button:GQA,source_simple_resistor:wQA,source_simple_resonator:NQA,source_simple_switch:LQA,source_simple_test_point:vQA,source_simple_transistor:MQA,source_simple_voltage_probe:m$A,source_trace:x$A,source_trace_not_connected_error:YQA,supplier_name:E$A,time:nvt,timestamp:l$A,unknown_error_finding_part:v$A,visible_layer:Dm,voltage:tF,wave_shape:PQA},Symbol.toStringTag,{value:"Module"})),vvt={},Wee=t=>{let A;const e=new Set,i=(I,c)=>{const B=typeof I=="function"?I(A):I;if(!Object.is(B,A)){const C=A;A=c??(typeof B!="object"||B===null)?B:Object.assign({},A,B),e.forEach(l=>l(A,C))}},o=()=>A,a={setState:i,getState:o,getInitialState:()=>g,subscribe:I=>(e.add(I),()=>e.delete(I)),destroy:()=>{(vvt?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),e.clear()}},g=A=t(i,o,a);return a},Zee=t=>t?Wee(t):Wee;var U8={exports:{}},WQA={},L8={exports:{}},ZQA={};var Vee;function Uvt(){if(Vee)return ZQA;Vee=1;var t=Uf();function A(c,B){return c===B&&(c!==0||1/c===1/B)||c!==c&&B!==B}var e=typeof Object.is=="function"?Object.is:A,i=t.useState,o=t.useEffect,n=t.useLayoutEffect,s=t.useDebugValue;function r(c,B){var C=B(),l=i({inst:{value:C,getSnapshot:B}}),Q=l[0].inst,E=l[1];return n(function(){Q.value=C,Q.getSnapshot=B,a(Q)&&E({inst:Q})},[c,C,B]),o(function(){return a(Q)&&E({inst:Q}),c(function(){a(Q)&&E({inst:Q})})},[c]),s(C),C}function a(c){var B=c.getSnapshot;c=c.value;try{var C=B();return!e(c,C)}catch{return!0}}function g(c,B){return B()}var I=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?g:r;return ZQA.useSyncExternalStore=t.useSyncExternalStore!==void 0?t.useSyncExternalStore:I,ZQA}var VQA={},jee;function Lvt(){if(jee)return VQA;jee=1;var t={env:{}};return t.env.NODE_ENV!=="production"&&(function(){function A(l,Q){return l===Q&&(l!==0||1/l===1/Q)||l!==l&&Q!==Q}function e(l,Q){c||n.startTransition===void 0||(c=!0,console.error("You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release."));var E=Q();if(!B){var h=Q();s(E,h)||(console.error("The result of getSnapshot should be cached to avoid an infinite loop"),B=!0)}h=r({inst:{value:E,getSnapshot:Q}});var u=h[0].inst,d=h[1];return g(function(){u.value=E,u.getSnapshot=Q,i(u)&&d({inst:u})},[l,E,Q]),a(function(){return i(u)&&d({inst:u}),l(function(){i(u)&&d({inst:u})})},[l]),I(E),E}function i(l){var Q=l.getSnapshot;l=l.value;try{var E=Q();return!s(l,E)}catch{return!0}}function o(l,Q){return Q()}typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var n=Uf(),s=typeof Object.is=="function"?Object.is:A,r=n.useState,a=n.useEffect,g=n.useLayoutEffect,I=n.useDebugValue,c=!1,B=!1,C=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?o:e;VQA.useSyncExternalStore=n.useSyncExternalStore!==void 0?n.useSyncExternalStore:C,typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())})(),VQA}var zee;function Xee(){if(zee)return L8.exports;zee=1;var t={env:{}};return t.env.NODE_ENV==="production"?L8.exports=Uvt():L8.exports=Lvt(),L8.exports}var $ee;function Hvt(){if($ee)return WQA;$ee=1;var t=Uf(),A=Xee();function e(g,I){return g===I&&(g!==0||1/g===1/I)||g!==g&&I!==I}var i=typeof Object.is=="function"?Object.is:e,o=A.useSyncExternalStore,n=t.useRef,s=t.useEffect,r=t.useMemo,a=t.useDebugValue;return WQA.useSyncExternalStoreWithSelector=function(g,I,c,B,C){var l=n(null);if(l.current===null){var Q={hasValue:!1,value:null};l.current=Q}else Q=l.current;l=r(function(){function h(S){if(!u){if(u=!0,d=S,S=B(S),C!==void 0&&Q.hasValue){var D=Q.value;if(C(D,S))return f=D}return f=S}if(D=f,i(d,S))return D;var x=B(S);return C!==void 0&&C(D,x)?(d=S,D):(d=S,f=x)}var u=!1,d,f,w=c===void 0?null:c;return[function(){return h(I())},w===null?void 0:function(){return h(w())}]},[I,c,B,C]);var E=o(g,l[0],l[1]);return s(function(){Q.hasValue=!0,Q.value=E},[E]),a(E),E},WQA}var jQA={},Ate;function Yvt(){if(Ate)return jQA;Ate=1;var t={env:{}};return t.env.NODE_ENV!=="production"&&(function(){function A(I,c){return I===c&&(I!==0||1/I===1/c)||I!==I&&c!==c}typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var e=Uf(),i=Xee(),o=typeof Object.is=="function"?Object.is:A,n=i.useSyncExternalStore,s=e.useRef,r=e.useEffect,a=e.useMemo,g=e.useDebugValue;jQA.useSyncExternalStoreWithSelector=function(I,c,B,C,l){var Q=s(null);if(Q.current===null){var E={hasValue:!1,value:null};Q.current=E}else E=Q.current;Q=a(function(){function u(D){if(!d){if(d=!0,f=D,D=C(D),l!==void 0&&E.hasValue){var x=E.value;if(l(x,D))return w=x}return w=D}if(x=w,o(f,D))return x;var F=C(D);return l!==void 0&&l(x,F)?(f=D,x):(f=D,w=F)}var d=!1,f,w,S=B===void 0?null:B;return[function(){return u(c())},S===null?void 0:function(){return u(S())}]},[c,B,C,l]);var h=n(I,Q[0],Q[1]);return r(function(){E.hasValue=!0,E.value=h},[h]),g(h),h},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())})(),jQA}var ete;function Jvt(){if(ete)return U8.exports;ete=1;var t={env:{}};return t.env.NODE_ENV==="production"?U8.exports=Hvt():U8.exports=Yvt(),U8.exports}var Kvt=Jvt();const Tvt=_p(Kvt),tte={},{useDebugValue:qvt}=eo,{useSyncExternalStoreWithSelector:Pvt}=Tvt;let ite=!1;const Ovt=t=>t;function ote(t,A=Ovt,e){(tte?"production":void 0)!=="production"&&e&&!ite&&(console.warn("[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937"),ite=!0);const i=Pvt(t.subscribe,t.getState,t.getServerState||t.getInitialState,A,e);return qvt(i),i}const Wvt=t=>{(tte?"production":void 0)!=="production"&&typeof t!="function"&&console.warn("[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.");const A=typeof t=="function"?Zee(t):t,e=(i,o)=>ote(A,i,o);return Object.assign(e,A),e},nte=t=>Wvt,$L=t=>typeof t=="number"&&!isNaN(t),oF=t=>typeof t=="string",i0=t=>typeof t=="function",H8=t=>oF(t)||i0(t)?t:null,zQA=t=>AA.isValidElement(t)||oF(t)||i0(t)||$L(t);function Zvt(t,A,e){e===void 0&&(e=300);const{scrollHeight:i,style:o}=t;requestAnimationFrame(()=>{o.minHeight="initial",o.height=i+"px",o.transition=`all ${e}ms`,requestAnimationFrame(()=>{o.height="0",o.padding="0",o.margin="0",setTimeout(A,e)})})}function Y8(t){let{enter:A,exit:e,appendPosition:i=!1,collapse:o=!0,collapseDuration:n=300}=t;return function(s){let{children:r,position:a,preventExitTransition:g,done:I,nodeRef:c,isIn:B,playToast:C}=s;const l=i?`${A}--${a}`:A,Q=i?`${e}--${a}`:e,E=AA.useRef(0);return AA.useLayoutEffect(()=>{const h=c.current,u=l.split(" "),d=f=>{f.target===c.current&&(C(),h.removeEventListener("animationend",d),h.removeEventListener("animationcancel",d),E.current===0&&f.type!=="animationcancel"&&h.classList.remove(...u))};h.classList.add(...u),h.addEventListener("animationend",d),h.addEventListener("animationcancel",d)},[]),AA.useEffect(()=>{const h=c.current,u=()=>{h.removeEventListener("animationend",u),o?Zvt(h,I,n):I()};B||(g?u():(E.current=1,h.className+=` ${Q}`,h.addEventListener("animationend",u)))},[B]),eo.createElement(eo.Fragment,null,r)}}function ste(t,A){return t!=null?{content:t.content,containerId:t.props.containerId,id:t.props.toastId,theme:t.props.theme,type:t.props.type,data:t.props.data||{},isLoading:t.props.isLoading,icon:t.props.icon,status:A}:{}}const xd=new Map;let AH=[];const XQA=new Set,Vvt=t=>XQA.forEach(A=>A(t)),rte=()=>xd.size>0;function ate(t,A){var e;if(A)return!((e=xd.get(A))==null||!e.isToastActive(t));let i=!1;return xd.forEach(o=>{o.isToastActive(t)&&(i=!0)}),i}function gte(t,A){zQA(t)&&(rte()||AH.push({content:t,options:A}),xd.forEach(e=>{e.buildToast(t,A)}))}function Ite(t,A){xd.forEach(e=>{A!=null&&A!=null&&A.containerId?A?.containerId===e.id&&e.toggle(t,A?.id):e.toggle(t,A?.id)})}function jvt(t){const{subscribe:A,getSnapshot:e,setProps:i}=AA.useRef((function(n){const s=n.containerId||1;return{subscribe(r){const a=(function(I,c,B){let C=1,l=0,Q=[],E=[],h=[],u=c;const d=new Map,f=new Set,w=()=>{h=Array.from(d.values()),f.forEach(x=>x())},S=x=>{E=x==null?[]:E.filter(F=>F!==x),w()},D=x=>{const{toastId:F,onOpen:k,updateId:U,children:N}=x.props,Y=U==null;x.staleId&&d.delete(x.staleId),d.set(F,x),E=[...E,x.props.toastId].filter(q=>q!==x.staleId),w(),B(ste(x,Y?"added":"updated")),Y&&i0(k)&&k(AA.isValidElement(N)&&N.props)};return{id:I,props:u,observe:x=>(f.add(x),()=>f.delete(x)),toggle:(x,F)=>{d.forEach(k=>{F!=null&&F!==k.props.toastId||i0(k.toggle)&&k.toggle(x)})},removeToast:S,toasts:d,clearQueue:()=>{l-=Q.length,Q=[]},buildToast:(x,F)=>{if((sA=>{let{containerId:gA,toastId:pA,updateId:xA}=sA;const _A=gA?gA!==I:I!==1,MA=d.has(pA)&&xA==null;return _A||MA})(F))return;const{toastId:k,updateId:U,data:N,staleId:Y,delay:q}=F,K=()=>{S(k)},O=U==null;O&&l++;const W={...u,style:u.toastStyle,key:C++,...Object.fromEntries(Object.entries(F).filter(sA=>{let[gA,pA]=sA;return pA!=null})),toastId:k,updateId:U,data:N,closeToast:K,isIn:!1,className:H8(F.className||u.toastClassName),bodyClassName:H8(F.bodyClassName||u.bodyClassName),progressClassName:H8(F.progressClassName||u.progressClassName),autoClose:!F.isLoading&&($=F.autoClose,oA=u.autoClose,$===!1||$L($)&&$>0?$:oA),deleteToast(){const sA=d.get(k),{onClose:gA,children:pA}=sA.props;i0(gA)&&gA(AA.isValidElement(pA)&&pA.props),B(ste(sA,"removed")),d.delete(k),l--,l<0&&(l=0),Q.length>0?D(Q.shift()):w()}};var $,oA;W.closeButton=u.closeButton,F.closeButton===!1||zQA(F.closeButton)?W.closeButton=F.closeButton:F.closeButton===!0&&(W.closeButton=!zQA(u.closeButton)||u.closeButton);let IA=x;AA.isValidElement(x)&&!oF(x.type)?IA=AA.cloneElement(x,{closeToast:K,toastProps:W,data:N}):i0(x)&&(IA=x({closeToast:K,toastProps:W,data:N}));const tA={content:IA,props:W,staleId:Y};u.limit&&u.limit>0&&l>u.limit&&O?Q.push(tA):$L(q)?setTimeout(()=>{D(tA)},q):D(tA)},setProps(x){u=x},setToggle:(x,F)=>{d.get(x).toggle=F},isToastActive:x=>E.some(F=>F===x),getSnapshot:()=>h}})(s,n,Vvt);xd.set(s,a);const g=a.observe(r);return AH.forEach(I=>gte(I.content,I.options)),AH=[],()=>{g(),xd.delete(s)}},setProps(r){var a;(a=xd.get(s))==null||a.setProps(r)},getSnapshot(){var r;return(r=xd.get(s))==null?void 0:r.getSnapshot()}}})(t)).current;i(t);const o=AA.useSyncExternalStore(A,e,e);return{getToastToRender:function(n){if(!o)return[];const s=new Map;return t.newestOnTop&&o.reverse(),o.forEach(r=>{const{position:a}=r.props;s.has(a)||s.set(a,[]),s.get(a).push(r)}),Array.from(s,r=>n(r[0],r[1]))},isToastActive:ate,count:o?.length}}function zvt(t){const[A,e]=AA.useState(!1),[i,o]=AA.useState(!1),n=AA.useRef(null),s=AA.useRef({start:0,delta:0,removalDistance:0,canCloseOnClick:!0,canDrag:!1,didMove:!1}).current,{autoClose:r,pauseOnHover:a,closeToast:g,onClick:I,closeOnClick:c}=t;var B,C;function l(){e(!0)}function Q(){e(!1)}function E(d){const f=n.current;s.canDrag&&f&&(s.didMove=!0,A&&Q(),s.delta=t.draggableDirection==="x"?d.clientX-s.start:d.clientY-s.start,s.start!==d.clientX&&(s.canCloseOnClick=!1),f.style.transform=`translate3d(${t.draggableDirection==="x"?`${s.delta}px, var(--y)`:`0, calc(${s.delta}px + var(--y))`},0)`,f.style.opacity=""+(1-Math.abs(s.delta/s.removalDistance)))}function h(){document.removeEventListener("pointermove",E),document.removeEventListener("pointerup",h);const d=n.current;if(s.canDrag&&s.didMove&&d){if(s.canDrag=!1,Math.abs(s.delta)>s.removalDistance)return o(!0),t.closeToast(),void t.collapseAll();d.style.transition="transform 0.2s, opacity 0.2s",d.style.removeProperty("transform"),d.style.removeProperty("opacity")}}(C=xd.get((B={id:t.toastId,containerId:t.containerId,fn:e}).containerId||1))==null||C.setToggle(B.id,B.fn),AA.useEffect(()=>{if(t.pauseOnFocusLoss)return document.hasFocus()||Q(),window.addEventListener("focus",l),window.addEventListener("blur",Q),()=>{window.removeEventListener("focus",l),window.removeEventListener("blur",Q)}},[t.pauseOnFocusLoss]);const u={onPointerDown:function(d){if(t.draggable===!0||t.draggable===d.pointerType){s.didMove=!1,document.addEventListener("pointermove",E),document.addEventListener("pointerup",h);const f=n.current;s.canCloseOnClick=!0,s.canDrag=!0,f.style.transition="none",t.draggableDirection==="x"?(s.start=d.clientX,s.removalDistance=f.offsetWidth*(t.draggablePercent/100)):(s.start=d.clientY,s.removalDistance=f.offsetHeight*(t.draggablePercent===80?1.5*t.draggablePercent:t.draggablePercent)/100)}},onPointerUp:function(d){const{top:f,bottom:w,left:S,right:D}=n.current.getBoundingClientRect();d.nativeEvent.type!=="touchend"&&t.pauseOnHover&&d.clientX>=S&&d.clientX<=D&&d.clientY>=f&&d.clientY<=w?Q():l()}};return r&&a&&(u.onMouseEnter=Q,t.stacked||(u.onMouseLeave=l)),c&&(u.onClick=d=>{I&&I(d),s.canCloseOnClick&&g()}),{playToast:l,pauseToast:Q,isRunning:A,preventExitTransition:i,toastRef:n,eventHandlers:u}}function Xvt(t){let{delay:A,isRunning:e,closeToast:i,type:o="default",hide:n,className:s,style:r,controlledProgress:a,progress:g,rtl:I,isIn:c,theme:B}=t;const C=n||a&&g===0,l={...r,animationDuration:`${A}ms`,animationPlayState:e?"running":"paused"};a&&(l.transform=`scaleX(${g})`);const Q=Py("Toastify__progress-bar",a?"Toastify__progress-bar--controlled":"Toastify__progress-bar--animated",`Toastify__progress-bar-theme--${B}`,`Toastify__progress-bar--${o}`,{"Toastify__progress-bar--rtl":I}),E=i0(s)?s({rtl:I,type:o,defaultClassName:Q}):Py(Q,s),h={[a&&g>=1?"onTransitionEnd":"onAnimationEnd"]:a&&g<1?null:()=>{c&&i()}};return eo.createElement("div",{className:"Toastify__progress-bar--wrp","data-hidden":C},eo.createElement("div",{className:`Toastify__progress-bar--bg Toastify__progress-bar-theme--${B} Toastify__progress-bar--${o}`}),eo.createElement("div",{role:"progressbar","aria-hidden":C?"true":"false","aria-label":"notification timer",className:E,style:l,...h}))}let $vt=1;const cte=()=>""+$vt++;function A1t(t){return t&&(oF(t.toastId)||$L(t.toastId))?t.toastId:cte()}function eH(t,A){return gte(t,A),A.toastId}function J8(t,A){return{...A,type:A&&A.type||t,toastId:A1t(A)}}function K8(t){return(A,e)=>eH(A,J8(t,e))}function Og(t,A){return eH(t,J8("default",A))}Og.loading=(t,A)=>eH(t,J8("default",{isLoading:!0,autoClose:!1,closeOnClick:!1,closeButton:!1,draggable:!1,...A})),Og.promise=function(t,A,e){let i,{pending:o,error:n,success:s}=A;o&&(i=oF(o)?Og.loading(o,e):Og.loading(o.render,{...e,...o}));const r={isLoading:null,autoClose:null,closeOnClick:null,closeButton:null,draggable:null},a=(I,c,B)=>{if(c==null)return void Og.dismiss(i);const C={type:I,...r,...e,data:B},l=oF(c)?{render:c}:c;return i?Og.update(i,{...C,...l}):Og(l.render,{...C,...l}),B},g=i0(t)?t():t;return g.then(I=>a("success",s,I)).catch(I=>a("error",n,I)),g},Og.success=K8("success"),Og.info=K8("info"),Og.error=K8("error"),Og.warning=K8("warning"),Og.warn=Og.warning,Og.dark=(t,A)=>eH(t,J8("default",{theme:"dark",...A})),Og.dismiss=function(t){(function(A){var e;if(rte()){if(A==null||oF(e=A)||$L(e))xd.forEach(i=>{i.removeToast(A)});else if(A&&("containerId"in A||"id"in A)){const i=xd.get(A.containerId);i?i.removeToast(A.id):xd.forEach(o=>{o.removeToast(A.id)})}}else AH=AH.filter(i=>A!=null&&i.options.toastId!==A)})(t)},Og.clearWaitingQueue=function(t){t===void 0&&(t={}),xd.forEach(A=>{!A.props.limit||t.containerId&&A.id!==t.containerId||A.clearQueue()})},Og.isActive=ate,Og.update=function(t,A){A===void 0&&(A={});const e=((i,o)=>{var n;let{containerId:s}=o;return(n=xd.get(s||1))==null?void 0:n.toasts.get(i)})(t,A);if(e){const{props:i,content:o}=e,n={delay:100,...i,...A,toastId:A.toastId||t,updateId:cte()};n.toastId!==t&&(n.staleId=t);const s=n.render||o;delete n.render,eH(s,n)}},Og.done=t=>{Og.update(t,{progress:1})},Og.onChange=function(t){return XQA.add(t),()=>{XQA.delete(t)}},Og.play=t=>Ite(!0,t),Og.pause=t=>Ite(!1,t);const e1t=typeof window<"u"?AA.useLayoutEffect:AA.useEffect,T8=t=>{let{theme:A,type:e,isLoading:i,...o}=t;return eo.createElement("svg",{viewBox:"0 0 24 24",width:"100%",height:"100%",fill:A==="colored"?"currentColor":`var(--toastify-icon-color-${e})`,...o})},$QA={info:function(t){return eo.createElement(T8,{...t},eo.createElement("path",{d:"M12 0a12 12 0 1012 12A12.013 12.013 0 0012 0zm.25 5a1.5 1.5 0 11-1.5 1.5 1.5 1.5 0 011.5-1.5zm2.25 13.5h-4a1 1 0 010-2h.75a.25.25 0 00.25-.25v-4.5a.25.25 0 00-.25-.25h-.75a1 1 0 010-2h1a2 2 0 012 2v4.75a.25.25 0 00.25.25h.75a1 1 0 110 2z"}))},warning:function(t){return eo.createElement(T8,{...t},eo.createElement("path",{d:"M23.32 17.191L15.438 2.184C14.728.833 13.416 0 11.996 0c-1.42 0-2.733.833-3.443 2.184L.533 17.448a4.744 4.744 0 000 4.368C1.243 23.167 2.555 24 3.975 24h16.05C22.22 24 24 22.044 24 19.632c0-.904-.251-1.746-.68-2.44zm-9.622 1.46c0 1.033-.724 1.823-1.698 1.823s-1.698-.79-1.698-1.822v-.043c0-1.028.724-1.822 1.698-1.822s1.698.79 1.698 1.822v.043zm.039-12.285l-.84 8.06c-.057.581-.408.943-.897.943-.49 0-.84-.367-.896-.942l-.84-8.065c-.057-.624.25-1.095.779-1.095h1.91c.528.005.84.476.784 1.1z"}))},success:function(t){return eo.createElement(T8,{...t},eo.createElement("path",{d:"M12 0a12 12 0 1012 12A12.014 12.014 0 0012 0zm6.927 8.2l-6.845 9.289a1.011 1.011 0 01-1.43.188l-4.888-3.908a1 1 0 111.25-1.562l4.076 3.261 6.227-8.451a1 1 0 111.61 1.183z"}))},error:function(t){return eo.createElement(T8,{...t},eo.createElement("path",{d:"M11.983 0a12.206 12.206 0 00-8.51 3.653A11.8 11.8 0 000 12.207 11.779 11.779 0 0011.8 24h.214A12.111 12.111 0 0024 11.791 11.766 11.766 0 0011.983 0zM10.5 16.542a1.476 1.476 0 011.449-1.53h.027a1.527 1.527 0 011.523 1.47 1.475 1.475 0 01-1.449 1.53h-.027a1.529 1.529 0 01-1.523-1.47zM11 12.5v-6a1 1 0 012 0v6a1 1 0 11-2 0z"}))},spinner:function(){return eo.createElement("div",{className:"Toastify__spinner"})}},t1t=t=>{const{isRunning:A,preventExitTransition:e,toastRef:i,eventHandlers:o,playToast:n}=zvt(t),{closeButton:s,children:r,autoClose:a,onClick:g,type:I,hideProgressBar:c,closeToast:B,transition:C,position:l,className:Q,style:E,bodyClassName:h,bodyStyle:u,progressClassName:d,progressStyle:f,updateId:w,role:S,progress:D,rtl:x,toastId:F,deleteToast:k,isIn:U,isLoading:N,closeOnClick:Y,theme:q}=t,K=Py("Toastify__toast",`Toastify__toast-theme--${q}`,`Toastify__toast--${I}`,{"Toastify__toast--rtl":x},{"Toastify__toast--close-on-click":Y}),O=i0(Q)?Q({rtl:x,position:l,type:I,defaultClassName:K}):Py(K,Q),W=(function(tA){let{theme:sA,type:gA,isLoading:pA,icon:xA}=tA,_A=null;const MA={theme:sA,type:gA};return xA===!1||(i0(xA)?_A=xA({...MA,isLoading:pA}):AA.isValidElement(xA)?_A=AA.cloneElement(xA,MA):pA?_A=$QA.spinner():(PA=>PA in $QA)(gA)&&(_A=$QA[gA](MA))),_A})(t),$=!!D||!a,oA={closeToast:B,type:I,theme:q};let IA=null;return s===!1||(IA=i0(s)?s(oA):AA.isValidElement(s)?AA.cloneElement(s,oA):(function(tA){let{closeToast:sA,theme:gA,ariaLabel:pA="close"}=tA;return eo.createElement("button",{className:`Toastify__close-button Toastify__close-button--${gA}`,type:"button",onClick:xA=>{xA.stopPropagation(),sA(xA)},"aria-label":pA},eo.createElement("svg",{"aria-hidden":"true",viewBox:"0 0 14 16"},eo.createElement("path",{fillRule:"evenodd",d:"M7.71 8.23l3.75 3.75-1.48 1.48-3.75-3.75-3.75 3.75L1 11.98l3.75-3.75L1 4.48 2.48 3l3.75 3.75L9.98 3l1.48 1.48-3.75 3.75z"})))})(oA)),eo.createElement(C,{isIn:U,done:k,position:l,preventExitTransition:e,nodeRef:i,playToast:n},eo.createElement("div",{id:F,onClick:g,"data-in":U,className:O,...o,style:E,ref:i},eo.createElement("div",{...U&&{role:S},className:i0(h)?h({type:I}):Py("Toastify__toast-body",h),style:u},W!=null&&eo.createElement("div",{className:Py("Toastify__toast-icon",{"Toastify--animate-icon Toastify__zoom-enter":!N})},W),eo.createElement("div",null,r)),IA,eo.createElement(Xvt,{...w&&!$?{key:`pb-${w}`}:{},rtl:x,theme:q,delay:a,isRunning:A,isIn:U,closeToast:B,hide:c,type:I,style:f,className:d,controlledProgress:$,progress:D||0})))},q8=function(t,A){return A===void 0&&(A=!1),{enter:`Toastify--animate Toastify__${t}-enter`,exit:`Toastify--animate Toastify__${t}-exit`,appendPosition:A}},i1t=Y8(q8("bounce",!0));Y8(q8("slide",!0)),Y8(q8("zoom")),Y8(q8("flip"));const o1t={position:"top-right",transition:i1t,autoClose:5e3,closeButton:!0,pauseOnHover:!0,pauseOnFocusLoss:!0,draggable:"touch",draggablePercent:80,draggableDirection:"x",role:"alert",theme:"light"};function n1t(t){let A={...o1t,...t};const e=t.stacked,[i,o]=AA.useState(!0),n=AA.useRef(null),{getToastToRender:s,isToastActive:r,count:a}=jvt(A),{className:g,style:I,rtl:c,containerId:B}=A;function C(Q){const E=Py("Toastify__toast-container",`Toastify__toast-container--${Q}`,{"Toastify__toast-container--rtl":c});return i0(g)?g({position:Q,rtl:c,defaultClassName:E}):Py(E,H8(g))}function l(){e&&(o(!0),Og.play())}return e1t(()=>{if(e){var Q;const E=n.current.querySelectorAll('[data-in="true"]'),h=12,u=(Q=A.position)==null?void 0:Q.includes("top");let d=0,f=0;Array.from(E).reverse().forEach((w,S)=>{const D=w;D.classList.add("Toastify__toast--stacked"),S>0&&(D.dataset.collapsed=`${i}`),D.dataset.pos||(D.dataset.pos=u?"top":"bot");const x=d*(i?.2:1)+(i?0:h*S);D.style.setProperty("--y",`${u?x:-1*x}px`),D.style.setProperty("--g",`${h}`),D.style.setProperty("--s",""+(1-(i?f:0))),d+=D.offsetHeight,f+=.025})}},[i,a,e]),eo.createElement("div",{ref:n,className:"Toastify",id:B,onMouseEnter:()=>{e&&(o(!1),Og.pause())},onMouseLeave:l},s((Q,E)=>{const h=E.length?{...I}:{...I,pointerEvents:"none"};return eo.createElement("div",{className:C(Q),style:h,key:`container-${Q}`},E.map(u=>{let{content:d,props:f}=u;return eo.createElement(t1t,{...f,stacked:e,collapseAll:l,isIn:r(f.toastId,f.containerId),style:f.style,key:`toast-${f.key}`},d)}))}))}function s1t(){var t=':root{--toastify-color-light:#fff;--toastify-color-dark:#121212;--toastify-color-info:#3498db;--toastify-color-success:#07bc0c;--toastify-color-warning:#f1c40f;--toastify-color-error:#e74c3c;--toastify-color-transparent:hsla(0,0%,100%,.7);--toastify-icon-color-info:var(--toastify-color-info);--toastify-icon-color-success:var(--toastify-color-success);--toastify-icon-color-warning:var(--toastify-color-warning);--toastify-icon-color-error:var(--toastify-color-error);--toastify-toast-width:320px;--toastify-toast-offset:16px;--toastify-toast-top:max(var(--toastify-toast-offset),env(safe-area-inset-top));--toastify-toast-right:max(var(--toastify-toast-offset),env(safe-area-inset-right));--toastify-toast-left:max(var(--toastify-toast-offset),env(safe-area-inset-left));--toastify-toast-bottom:max(var(--toastify-toast-offset),env(safe-area-inset-bottom));--toastify-toast-background:#fff;--toastify-toast-min-height:64px;--toastify-toast-max-height:800px;--toastify-toast-bd-radius:6px;--toastify-font-family:sans-serif;--toastify-z-index:9999;--toastify-text-color-light:#757575;--toastify-text-color-dark:#fff;--toastify-text-color-info:#fff;--toastify-text-color-success:#fff;--toastify-text-color-warning:#fff;--toastify-text-color-error:#fff;--toastify-spinner-color:#616161;--toastify-spinner-color-empty-area:#e0e0e0;--toastify-color-progress-light:linear-gradient(90deg,#4cd964,#5ac8fa,#007aff,#34aadc,#5856d6,#ff2d55);--toastify-color-progress-dark:#bb86fc;--toastify-color-progress-info:var(--toastify-color-info);--toastify-color-progress-success:var(--toastify-color-success);--toastify-color-progress-warning:var(--toastify-color-warning);--toastify-color-progress-error:var(--toastify-color-error);--toastify-color-progress-bgo:0.2}.Toastify__toast-container{z-index:var(--toastify-z-index);-webkit-transform:translateZ(var(--toastify-z-index));position:fixed;padding:4px;width:var(--toastify-toast-width);box-sizing:border-box;color:#fff}.Toastify__toast-container--top-left{top:var(--toastify-toast-top);left:var(--toastify-toast-left)}.Toastify__toast-container--top-center{top:var(--toastify-toast-top);left:50%;transform:translateX(-50%)}.Toastify__toast-container--top-right{top:var(--toastify-toast-top);right:var(--toastify-toast-right)}.Toastify__toast-container--bottom-left{bottom:var(--toastify-toast-bottom);left:var(--toastify-toast-left)}.Toastify__toast-container--bottom-center{bottom:var(--toastify-toast-bottom);left:50%;transform:translateX(-50%)}.Toastify__toast-container--bottom-right{bottom:var(--toastify-toast-bottom);right:var(--toastify-toast-right)}@media only screen and (max-width:480px){.Toastify__toast-container{width:100vw;padding:0;left:env(safe-area-inset-left);margin:0}.Toastify__toast-container--top-center,.Toastify__toast-container--top-left,.Toastify__toast-container--top-right{top:env(safe-area-inset-top);transform:translateX(0)}.Toastify__toast-container--bottom-center,.Toastify__toast-container--bottom-left,.Toastify__toast-container--bottom-right{bottom:env(safe-area-inset-bottom);transform:translateX(0)}.Toastify__toast-container--rtl{right:env(safe-area-inset-right);left:auto}}.Toastify__toast{--y:0;position:relative;-ms-touch-action:none;touch-action:none;min-height:var(--toastify-toast-min-height);box-sizing:border-box;margin-bottom:1rem;padding:8px;border-radius:var(--toastify-toast-bd-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;max-height:var(--toastify-toast-max-height);font-family:var(--toastify-font-family);cursor:default;direction:ltr;z-index:0;overflow:hidden}.Toastify__toast--stacked{position:absolute;width:100%;transform:translate3d(0,var(--y),0) scale(var(--s));transition:transform .3s}.Toastify__toast--stacked[data-collapsed] .Toastify__close-button,.Toastify__toast--stacked[data-collapsed] .Toastify__toast-body{transition:opacity .1s}.Toastify__toast--stacked[data-collapsed=false]{overflow:visible}.Toastify__toast--stacked[data-collapsed=true]:not(:last-child)>*{opacity:0}.Toastify__toast--stacked:after{content:"";position:absolute;left:0;right:0;height:calc(var(--g) * 1px);bottom:100%}.Toastify__toast--stacked[data-pos=top]{top:0}.Toastify__toast--stacked[data-pos=bot]{bottom:0}.Toastify__toast--stacked[data-pos=bot].Toastify__toast--stacked:before{transform-origin:top}.Toastify__toast--stacked[data-pos=top].Toastify__toast--stacked:before{transform-origin:bottom}.Toastify__toast--stacked:before{content:"";position:absolute;left:0;right:0;bottom:0;height:100%;transform:scaleY(3);z-index:-1}.Toastify__toast--rtl{direction:rtl}.Toastify__toast--close-on-click{cursor:pointer}.Toastify__toast-body{margin:auto 0;-ms-flex:1 1 auto;flex:1 1 auto;padding:6px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.Toastify__toast-body>div:last-child{word-break:break-word;-ms-flex:1;flex:1}.Toastify__toast-icon{-webkit-margin-end:10px;margin-inline-end:10px;width:20px;-ms-flex-negative:0;flex-shrink:0;display:-ms-flexbox;display:flex}.Toastify--animate{animation-fill-mode:both;animation-duration:.5s}.Toastify--animate-icon{animation-fill-mode:both;animation-duration:.3s}@media only screen and (max-width:480px){.Toastify__toast{margin-bottom:0;border-radius:0}}.Toastify__toast-theme--dark{background:var(--toastify-color-dark);color:var(--toastify-text-color-dark)}.Toastify__toast-theme--colored.Toastify__toast--default,.Toastify__toast-theme--light{background:var(--toastify-color-light);color:var(--toastify-text-color-light)}.Toastify__toast-theme--colored.Toastify__toast--info{color:var(--toastify-text-color-info);background:var(--toastify-color-info)}.Toastify__toast-theme--colored.Toastify__toast--success{color:var(--toastify-text-color-success);background:var(--toastify-color-success)}.Toastify__toast-theme--colored.Toastify__toast--warning{color:var(--toastify-text-color-warning);background:var(--toastify-color-warning)}.Toastify__toast-theme--colored.Toastify__toast--error{color:var(--toastify-text-color-error);background:var(--toastify-color-error)}.Toastify__progress-bar-theme--light{background:var(--toastify-color-progress-light)}.Toastify__progress-bar-theme--dark{background:var(--toastify-color-progress-dark)}.Toastify__progress-bar--info{background:var(--toastify-color-progress-info)}.Toastify__progress-bar--success{background:var(--toastify-color-progress-success)}.Toastify__progress-bar--warning{background:var(--toastify-color-progress-warning)}.Toastify__progress-bar--error{background:var(--toastify-color-progress-error)}.Toastify__progress-bar-theme--colored.Toastify__progress-bar--error,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--info,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--success,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--warning{background:var(--toastify-color-transparent)}.Toastify__close-button{color:#fff;background:transparent;outline:none;border:none;padding:0;cursor:pointer;opacity:.7;transition:.3s ease;-ms-flex-item-align:start;align-self:flex-start;z-index:1}.Toastify__close-button--light{color:#000;opacity:.3}.Toastify__close-button>svg{fill:currentColor;height:16px;width:14px}.Toastify__close-button:focus,.Toastify__close-button:hover{opacity:1}@keyframes Toastify__trackProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.Toastify__progress-bar{position:absolute;bottom:0;left:0;width:100%;height:100%;z-index:var(--toastify-z-index);opacity:.7;transform-origin:left;border-bottom-left-radius:var(--toastify-toast-bd-radius)}.Toastify__progress-bar--animated{animation:Toastify__trackProgress linear 1 forwards}.Toastify__progress-bar--controlled{transition:transform .2s}.Toastify__progress-bar--rtl{right:0;left:auto;transform-origin:right;border-bottom-left-radius:0;border-bottom-right-radius:var(--toastify-toast-bd-radius)}.Toastify__progress-bar--wrp{position:absolute;bottom:0;left:0;width:100%;height:5px;border-bottom-left-radius:var(--toastify-toast-bd-radius)}.Toastify__progress-bar--wrp[data-hidden=true]{opacity:0}.Toastify__progress-bar--bg{opacity:var(--toastify-color-progress-bgo);width:100%;height:100%}.Toastify__spinner{width:20px;height:20px;box-sizing:border-box;border:2px solid;border-radius:100%;border-color:var(--toastify-spinner-color-empty-area);border-right-color:var(--toastify-spinner-color);animation:Toastify__spin .65s linear infinite}@keyframes Toastify__bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(3000px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutRight{20%{opacity:1;transform:translate3d(-20px,var(--y),0)}to{opacity:0;transform:translate3d(2000px,var(--y),0)}}@keyframes Toastify__bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(-3000px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutLeft{20%{opacity:1;transform:translate3d(20px,var(--y),0)}to{opacity:0;transform:translate3d(-2000px,var(--y),0)}}@keyframes Toastify__bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,3000px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@keyframes Toastify__bounceOutUp{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes Toastify__bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@keyframes Toastify__bounceOutDown{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,2000px,0)}}.Toastify__bounce-enter--bottom-left,.Toastify__bounce-enter--top-left{animation-name:Toastify__bounceInLeft}.Toastify__bounce-enter--bottom-right,.Toastify__bounce-enter--top-right{animation-name:Toastify__bounceInRight}.Toastify__bounce-enter--top-center{animation-name:Toastify__bounceInDown}.Toastify__bounce-enter--bottom-center{animation-name:Toastify__bounceInUp}.Toastify__bounce-exit--bottom-left,.Toastify__bounce-exit--top-left{animation-name:Toastify__bounceOutLeft}.Toastify__bounce-exit--bottom-right,.Toastify__bounce-exit--top-right{animation-name:Toastify__bounceOutRight}.Toastify__bounce-exit--top-center{animation-name:Toastify__bounceOutUp}.Toastify__bounce-exit--bottom-center{animation-name:Toastify__bounceOutDown}@keyframes Toastify__zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes Toastify__zoomOut{0%{opacity:1}50%{opacity:0;transform:translate3d(0,var(--y),0) scale3d(.3,.3,.3)}to{opacity:0}}.Toastify__zoom-enter{animation-name:Toastify__zoomIn}.Toastify__zoom-exit{animation-name:Toastify__zoomOut}@keyframes Toastify__flipIn{0%{transform:perspective(400px) rotateX(90deg);animation-timing-function:ease-in;opacity:0}40%{transform:perspective(400px) rotateX(-20deg);animation-timing-function:ease-in}60%{transform:perspective(400px) rotateX(10deg);opacity:1}80%{transform:perspective(400px) rotateX(-5deg)}to{transform:perspective(400px)}}@keyframes Toastify__flipOut{0%{transform:translate3d(0,var(--y),0) perspective(400px)}30%{transform:translate3d(0,var(--y),0) perspective(400px) rotateX(-20deg);opacity:1}to{transform:translate3d(0,var(--y),0) perspective(400px) rotateX(90deg);opacity:0}}.Toastify__flip-enter{animation-name:Toastify__flipIn}.Toastify__flip-exit{animation-name:Toastify__flipOut}@keyframes Toastify__slideInRight{0%{transform:translate3d(110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInLeft{0%{transform:translate3d(-110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInUp{0%{transform:translate3d(0,110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInDown{0%{transform:translate3d(0,-110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideOutRight{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(110%,var(--y),0)}}@keyframes Toastify__slideOutLeft{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(-110%,var(--y),0)}}@keyframes Toastify__slideOutDown{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(0,500px,0)}}@keyframes Toastify__slideOutUp{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(0,-500px,0)}}.Toastify__slide-enter--bottom-left,.Toastify__slide-enter--top-left{animation-name:Toastify__slideInLeft}.Toastify__slide-enter--bottom-right,.Toastify__slide-enter--top-right{animation-name:Toastify__slideInRight}.Toastify__slide-enter--top-center{animation-name:Toastify__slideInDown}.Toastify__slide-enter--bottom-center{animation-name:Toastify__slideInUp}.Toastify__slide-exit--bottom-left,.Toastify__slide-exit--top-left{animation-name:Toastify__slideOutLeft;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--bottom-right,.Toastify__slide-exit--top-right{animation-name:Toastify__slideOutRight;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--top-center{animation-name:Toastify__slideOutUp;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--bottom-center{animation-name:Toastify__slideOutDown;animation-timing-function:ease-in;animation-duration:.3s}@keyframes Toastify__spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}',A=document.createElement("style");A.innerText=t,document.head.appendChild(A)}const r1t=Bhe(mxe);var AEA,Bte;function a1t(){if(Bte)return AEA;Bte=1;var t=Object.defineProperty,A=Object.getOwnPropertyDescriptor,e=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,o=(E,h)=>{for(var u in h)t(E,u,{get:h[u],enumerable:!0})},n=(E,h,u,d)=>{if(h&&typeof h=="object"||typeof h=="function")for(let f of e(h))!i.call(E,f)&&f!==u&&t(E,f,{get:()=>h[f],enumerable:!(d=A(h,f))||d.enumerable});return E},s=E=>n(t({},"__esModule",{value:!0}),E),r={};o(r,{SuperGrid:()=>Q,toMMSI:()=>l,toMeterSI:()=>C}),AEA=s(r);var a=Uf(),g=r1t,I=ByA(),c=(E,h,u)=>{const d=[];if(h<E)for(let f=E;f>=h;f-=Math.abs(u))d.push(f);else for(let f=E;f<=h;f+=Math.abs(u))d.push(f);return d};function B(E,h){return{x:Math.round(h.x/E)*E,y:Math.round(h.y/E)*E}}function C(E,h=1){return E<0?"-"+C(-E):E<1e-6?"0m":E>1e3?Math.floor(E/1e3)+"km":E>1&&h>1?Math.round(E)+"m":E>1&&h<=1?E.toFixed(Math.ceil(-Math.log10(h)))+"m":E<1&&h>=1/1e3?Math.round(E*1e3)+"mm":E<1&&h<1/1e3?(E*1e3).toFixed(Math.ceil(-Math.log10(h*1e3)))+"mm":""}function l(E,h=1){return C(E/1e3,h/1e3)}var Q=E=>{var h;const u=(0,a.useRef)(null),[d,f]=(0,a.useState)({x:0,y:0}),{majorColor:w="rgba(0,0,0,0.2)",minorColor:S="rgba(0,0,0,0.1)",textColor:D=(h=E.majorColor)!=null?h:"rgba(0,0,0,0.5)",width:x,height:F,screenSpaceCellSize:k=200,stringifyCoord:U=(K,O,W)=>`${C(K,W)}, ${C(O,W)}`}=E,N=Math.ceil(x/k)+2,Y=Math.ceil(F/k)+2;(0,a.useEffect)(()=>{if(!u.current)return;const K=u.current.getContext("2d");if(!K)return;const O=k/10**Math.floor(Math.log10(E.transform.a)),W=E.transform.d<0?-1:1,oA=k/10**Math.log10(E.transform.a)/O;function IA(yA,uA,qA){const ee=yA;let Be,mA,WA;for(Be=uA.x;Be<=qA.x;Be+=ee)mA=(0,g.applyToPoint)(E.transform,{x:Be,y:uA.y}),WA=(0,g.applyToPoint)(E.transform,{x:Be,y:qA.y}),K.beginPath(),K.moveTo(mA.x,mA.y),K.lineTo(WA.x,WA.y),K.stroke();const KA=c(uA.y,qA.y,ee*W);for(const JA of KA)mA=(0,g.applyToPoint)(E.transform,{x:uA.x,y:JA}),WA=(0,g.applyToPoint)(E.transform,{x:qA.x,y:JA}),K.beginPath(),K.moveTo(mA.x,mA.y),K.lineTo(WA.x,WA.y),K.stroke()}function tA(yA,uA,qA){const ee=yA;let Be;for(Be=uA.x;Be<=qA.x;Be+=ee)for(const mA of c(uA.y,qA.y,ee*W)){const WA=(0,g.applyToPoint)(E.transform,{x:Be,y:mA});K.fillStyle=D,K.font="12px sans-serif",K.fillText(U(Be,mA,yA),WA.x+2,WA.y-2)}}K.clearRect(0,0,x,F);const sA=(0,g.applyToPoint)((0,g.inverse)(E.transform),{x:0,y:0}),gA={x:Math.floor((sA.x-O)/O)*O,y:Math.floor((sA.y-O)/O+(W==-1?2:0))*O},pA={x:gA.x+O*N,y:gA.y+O*Y*W},_A=O*5,MA={x:Math.floor((sA.x-_A)/_A)*_A,y:Math.floor((sA.y-_A)/_A+(W==-1?2:0))*_A},PA={x:MA.x+_A*N,y:MA.y+_A*Y*W};K.globalAlpha=1,K.strokeStyle=w,IA(O,gA,pA),tA(_A,MA,PA),K.globalAlpha=1-oA,IA(_A/10,MA,PA),K.globalAlpha=1-oA,K.strokeStyle=S,IA(O/10,gA,pA),K.globalAlpha=Math.max(((1-oA)*10-5)/5,0),tA(_A/10,MA,PA),K.globalAlpha=1;const BA=(0,g.applyToPoint)(E.transform,d);K.font="12px sans-serif",K.fillStyle=D,K.fillText(U(d.x,d.y,O),BA.x+2,BA.y-2),K.strokeStyle=w,K.strokeRect(BA.x-5,BA.y-5,10,10)},[u,E.transform,d,x,F]);const q=K=>{if(!u.current)return;const O=k/10/10**Math.floor(Math.log10(E.transform.a)),W=u.current.getBoundingClientRect(),$=(0,g.applyToPoint)((0,g.inverse)(E.transform),{x:K.clientX-W.left,y:K.clientY-W.top}),oA=B(O,$);f(oA)};return(0,I.jsx)("canvas",{onMouseUp:K=>{K.button===1&&q(K)},onDoubleClick:q,ref:u,width:E.width,height:E.height})};return AEA}var P8=a1t(),eEA={exports:{}},tEA,Cte;function lte(){return Cte||(Cte=1,tEA={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}),tEA}var iEA={exports:{}},oEA,Qte;function g1t(){return Qte||(Qte=1,oEA=function(A){return!A||typeof A=="string"?!1:A instanceof Array||Array.isArray(A)||A.length>=0&&(A.splice instanceof Function||Object.getOwnPropertyDescriptor(A,A.length-1)&&A.constructor.name!=="String")}),oEA}var Ete;function I1t(){if(Ete)return iEA.exports;Ete=1;var t=g1t(),A=Array.prototype.concat,e=Array.prototype.slice,i=iEA.exports=function(n){for(var s=[],r=0,a=n.length;r<a;r++){var g=n[r];t(g)?s=A.call(s,e.call(g)):s.push(g)}return s};return i.wrap=function(o){return function(){return o(i(arguments))}},iEA.exports}var hte;function c1t(){if(hte)return eEA.exports;hte=1;var t=lte(),A=I1t(),e=Object.hasOwnProperty,i=Object.create(null);for(var o in t)e.call(t,o)&&(i[t[o]]=o);var n=eEA.exports={to:{},get:{}};n.get=function(a){var g=a.substring(0,3).toLowerCase(),I,c;switch(g){case"hsl":I=n.get.hsl(a),c="hsl";break;case"hwb":I=n.get.hwb(a),c="hwb";break;default:I=n.get.rgb(a),c="rgb";break}return I?{model:c,value:I}:null},n.get.rgb=function(a){if(!a)return null;var g=/^#([a-f0-9]{3,4})$/i,I=/^#([a-f0-9]{6})([a-f0-9]{2})?$/i,c=/^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/,B=/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/,C=/^(\w+)$/,l=[0,0,0,1],Q,E,h;if(Q=a.match(I)){for(h=Q[2],Q=Q[1],E=0;E<3;E++){var u=E*2;l[E]=parseInt(Q.slice(u,u+2),16)}h&&(l[3]=parseInt(h,16)/255)}else if(Q=a.match(g)){for(Q=Q[1],h=Q[3],E=0;E<3;E++)l[E]=parseInt(Q[E]+Q[E],16);h&&(l[3]=parseInt(h+h,16)/255)}else if(Q=a.match(c)){for(E=0;E<3;E++)l[E]=parseInt(Q[E+1],0);Q[4]&&(Q[5]?l[3]=parseFloat(Q[4])*.01:l[3]=parseFloat(Q[4]))}else if(Q=a.match(B)){for(E=0;E<3;E++)l[E]=Math.round(parseFloat(Q[E+1])*2.55);Q[4]&&(Q[5]?l[3]=parseFloat(Q[4])*.01:l[3]=parseFloat(Q[4]))}else return(Q=a.match(C))?Q[1]==="transparent"?[0,0,0,0]:e.call(t,Q[1])?(l=t[Q[1]],l[3]=1,l):null:null;for(E=0;E<3;E++)l[E]=s(l[E],0,255);return l[3]=s(l[3],0,1),l},n.get.hsl=function(a){if(!a)return null;var g=/^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d\.]+)%\s*,?\s*([+-]?[\d\.]+)%\s*(?:[,|\/]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/,I=a.match(g);if(I){var c=parseFloat(I[4]),B=(parseFloat(I[1])%360+360)%360,C=s(parseFloat(I[2]),0,100),l=s(parseFloat(I[3]),0,100),Q=s(isNaN(c)?1:c,0,1);return[B,C,l,Q]}return null},n.get.hwb=function(a){if(!a)return null;var g=/^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/,I=a.match(g);if(I){var c=parseFloat(I[4]),B=(parseFloat(I[1])%360+360)%360,C=s(parseFloat(I[2]),0,100),l=s(parseFloat(I[3]),0,100),Q=s(isNaN(c)?1:c,0,1);return[B,C,l,Q]}return null},n.to.hex=function(){var a=A(arguments);return"#"+r(a[0])+r(a[1])+r(a[2])+(a[3]<1?r(Math.round(a[3]*255)):"")},n.to.rgb=function(){var a=A(arguments);return a.length<4||a[3]===1?"rgb("+Math.round(a[0])+", "+Math.round(a[1])+", "+Math.round(a[2])+")":"rgba("+Math.round(a[0])+", "+Math.round(a[1])+", "+Math.round(a[2])+", "+a[3]+")"},n.to.rgb.percent=function(){var a=A(arguments),g=Math.round(a[0]/255*100),I=Math.round(a[1]/255*100),c=Math.round(a[2]/255*100);return a.length<4||a[3]===1?"rgb("+g+"%, "+I+"%, "+c+"%)":"rgba("+g+"%, "+I+"%, "+c+"%, "+a[3]+")"},n.to.hsl=function(){var a=A(arguments);return a.length<4||a[3]===1?"hsl("+a[0]+", "+a[1]+"%, "+a[2]+"%)":"hsla("+a[0]+", "+a[1]+"%, "+a[2]+"%, "+a[3]+")"},n.to.hwb=function(){var a=A(arguments),g="";return a.length>=4&&a[3]!==1&&(g=", "+a[3]),"hwb("+a[0]+", "+a[1]+"%, "+a[2]+"%"+g+")"},n.to.keyword=function(a){return i[a.slice(0,3)]};function s(a,g,I){return Math.min(Math.max(g,a),I)}function r(a){var g=Math.round(a).toString(16).toUpperCase();return g.length<2?"0"+g:g}return eEA.exports}var nEA,ute;function dte(){if(ute)return nEA;ute=1;const t=lte(),A={};for(const o of Object.keys(t))A[t[o]]=o;const e={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};nEA=e;for(const o of Object.keys(e)){if(!("channels"in e[o]))throw new Error("missing channels property: "+o);if(!("labels"in e[o]))throw new Error("missing channel labels property: "+o);if(e[o].labels.length!==e[o].channels)throw new Error("channel and label counts mismatch: "+o);const{channels:n,labels:s}=e[o];delete e[o].channels,delete e[o].labels,Object.defineProperty(e[o],"channels",{value:n}),Object.defineProperty(e[o],"labels",{value:s})}e.rgb.hsl=function(o){const n=o[0]/255,s=o[1]/255,r=o[2]/255,a=Math.min(n,s,r),g=Math.max(n,s,r),I=g-a;let c,B;g===a?c=0:n===g?c=(s-r)/I:s===g?c=2+(r-n)/I:r===g&&(c=4+(n-s)/I),c=Math.min(c*60,360),c<0&&(c+=360);const C=(a+g)/2;return g===a?B=0:C<=.5?B=I/(g+a):B=I/(2-g-a),[c,B*100,C*100]},e.rgb.hsv=function(o){let n,s,r,a,g;const I=o[0]/255,c=o[1]/255,B=o[2]/255,C=Math.max(I,c,B),l=C-Math.min(I,c,B),Q=function(E){return(C-E)/6/l+1/2};return l===0?(a=0,g=0):(g=l/C,n=Q(I),s=Q(c),r=Q(B),I===C?a=r-s:c===C?a=1/3+n-r:B===C&&(a=2/3+s-n),a<0?a+=1:a>1&&(a-=1)),[a*360,g*100,C*100]},e.rgb.hwb=function(o){const n=o[0],s=o[1];let r=o[2];const a=e.rgb.hsl(o)[0],g=1/255*Math.min(n,Math.min(s,r));return r=1-1/255*Math.max(n,Math.max(s,r)),[a,g*100,r*100]},e.rgb.cmyk=function(o){const n=o[0]/255,s=o[1]/255,r=o[2]/255,a=Math.min(1-n,1-s,1-r),g=(1-n-a)/(1-a)||0,I=(1-s-a)/(1-a)||0,c=(1-r-a)/(1-a)||0;return[g*100,I*100,c*100,a*100]};function i(o,n){return(o[0]-n[0])**2+(o[1]-n[1])**2+(o[2]-n[2])**2}return e.rgb.keyword=function(o){const n=A[o];if(n)return n;let s=1/0,r;for(const a of Object.keys(t)){const g=t[a],I=i(o,g);I<s&&(s=I,r=a)}return r},e.keyword.rgb=function(o){return t[o]},e.rgb.xyz=function(o){let n=o[0]/255,s=o[1]/255,r=o[2]/255;n=n>.04045?((n+.055)/1.055)**2.4:n/12.92,s=s>.04045?((s+.055)/1.055)**2.4:s/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92;const a=n*.4124+s*.3576+r*.1805,g=n*.2126+s*.7152+r*.0722,I=n*.0193+s*.1192+r*.9505;return[a*100,g*100,I*100]},e.rgb.lab=function(o){const n=e.rgb.xyz(o);let s=n[0],r=n[1],a=n[2];s/=95.047,r/=100,a/=108.883,s=s>.008856?s**(1/3):7.787*s+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,a=a>.008856?a**(1/3):7.787*a+16/116;const g=116*r-16,I=500*(s-r),c=200*(r-a);return[g,I,c]},e.hsl.rgb=function(o){const n=o[0]/360,s=o[1]/100,r=o[2]/100;let a,g,I;if(s===0)return I=r*255,[I,I,I];r<.5?a=r*(1+s):a=r+s-r*s;const c=2*r-a,B=[0,0,0];for(let C=0;C<3;C++)g=n+1/3*-(C-1),g<0&&g++,g>1&&g--,6*g<1?I=c+(a-c)*6*g:2*g<1?I=a:3*g<2?I=c+(a-c)*(2/3-g)*6:I=c,B[C]=I*255;return B},e.hsl.hsv=function(o){const n=o[0];let s=o[1]/100,r=o[2]/100,a=s;const g=Math.max(r,.01);r*=2,s*=r<=1?r:2-r,a*=g<=1?g:2-g;const I=(r+s)/2,c=r===0?2*a/(g+a):2*s/(r+s);return[n,c*100,I*100]},e.hsv.rgb=function(o){const n=o[0]/60,s=o[1]/100;let r=o[2]/100;const a=Math.floor(n)%6,g=n-Math.floor(n),I=255*r*(1-s),c=255*r*(1-s*g),B=255*r*(1-s*(1-g));switch(r*=255,a){case 0:return[r,B,I];case 1:return[c,r,I];case 2:return[I,r,B];case 3:return[I,c,r];case 4:return[B,I,r];case 5:return[r,I,c]}},e.hsv.hsl=function(o){const n=o[0],s=o[1]/100,r=o[2]/100,a=Math.max(r,.01);let g,I;I=(2-s)*r;const c=(2-s)*a;return g=s*a,g/=c<=1?c:2-c,g=g||0,I/=2,[n,g*100,I*100]},e.hwb.rgb=function(o){const n=o[0]/360;let s=o[1]/100,r=o[2]/100;const a=s+r;let g;a>1&&(s/=a,r/=a);const I=Math.floor(6*n),c=1-r;g=6*n-I,(I&1)!==0&&(g=1-g);const B=s+g*(c-s);let C,l,Q;switch(I){default:case 6:case 0:C=c,l=B,Q=s;break;case 1:C=B,l=c,Q=s;break;case 2:C=s,l=c,Q=B;break;case 3:C=s,l=B,Q=c;break;case 4:C=B,l=s,Q=c;break;case 5:C=c,l=s,Q=B;break}return[C*255,l*255,Q*255]},e.cmyk.rgb=function(o){const n=o[0]/100,s=o[1]/100,r=o[2]/100,a=o[3]/100,g=1-Math.min(1,n*(1-a)+a),I=1-Math.min(1,s*(1-a)+a),c=1-Math.min(1,r*(1-a)+a);return[g*255,I*255,c*255]},e.xyz.rgb=function(o){const n=o[0]/100,s=o[1]/100,r=o[2]/100;let a,g,I;return a=n*3.2406+s*-1.5372+r*-.4986,g=n*-.9689+s*1.8758+r*.0415,I=n*.0557+s*-.204+r*1.057,a=a>.0031308?1.055*a**(1/2.4)-.055:a*12.92,g=g>.0031308?1.055*g**(1/2.4)-.055:g*12.92,I=I>.0031308?1.055*I**(1/2.4)-.055:I*12.92,a=Math.min(Math.max(0,a),1),g=Math.min(Math.max(0,g),1),I=Math.min(Math.max(0,I),1),[a*255,g*255,I*255]},e.xyz.lab=function(o){let n=o[0],s=o[1],r=o[2];n/=95.047,s/=100,r/=108.883,n=n>.008856?n**(1/3):7.787*n+16/116,s=s>.008856?s**(1/3):7.787*s+16/116,r=r>.008856?r**(1/3):7.787*r+16/116;const a=116*s-16,g=500*(n-s),I=200*(s-r);return[a,g,I]},e.lab.xyz=function(o){const n=o[0],s=o[1],r=o[2];let a,g,I;g=(n+16)/116,a=s/500+g,I=g-r/200;const c=g**3,B=a**3,C=I**3;return g=c>.008856?c:(g-16/116)/7.787,a=B>.008856?B:(a-16/116)/7.787,I=C>.008856?C:(I-16/116)/7.787,a*=95.047,g*=100,I*=108.883,[a,g,I]},e.lab.lch=function(o){const n=o[0],s=o[1],r=o[2];let a;a=Math.atan2(r,s)*360/2/Math.PI,a<0&&(a+=360);const I=Math.sqrt(s*s+r*r);return[n,I,a]},e.lch.lab=function(o){const n=o[0],s=o[1],a=o[2]/360*2*Math.PI,g=s*Math.cos(a),I=s*Math.sin(a);return[n,g,I]},e.rgb.ansi16=function(o,n=null){const[s,r,a]=o;let g=n===null?e.rgb.hsv(o)[2]:n;if(g=Math.round(g/50),g===0)return 30;let I=30+(Math.round(a/255)<<2|Math.round(r/255)<<1|Math.round(s/255));return g===2&&(I+=60),I},e.hsv.ansi16=function(o){return e.rgb.ansi16(e.hsv.rgb(o),o[2])},e.rgb.ansi256=function(o){const n=o[0],s=o[1],r=o[2];return n===s&&s===r?n<8?16:n>248?231:Math.round((n-8)/247*24)+232:16+36*Math.round(n/255*5)+6*Math.round(s/255*5)+Math.round(r/255*5)},e.ansi16.rgb=function(o){let n=o%10;if(n===0||n===7)return o>50&&(n+=3.5),n=n/10.5*255,[n,n,n];const s=(~~(o>50)+1)*.5,r=(n&1)*s*255,a=(n>>1&1)*s*255,g=(n>>2&1)*s*255;return[r,a,g]},e.ansi256.rgb=function(o){if(o>=232){const g=(o-232)*10+8;return[g,g,g]}o-=16;let n;const s=Math.floor(o/36)/5*255,r=Math.floor((n=o%36)/6)/5*255,a=n%6/5*255;return[s,r,a]},e.rgb.hex=function(o){const s=(((Math.round(o[0])&255)<<16)+((Math.round(o[1])&255)<<8)+(Math.round(o[2])&255)).toString(16).toUpperCase();return"000000".substring(s.length)+s},e.hex.rgb=function(o){const n=o.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!n)return[0,0,0];let s=n[0];n[0].length===3&&(s=s.split("").map(c=>c+c).join(""));const r=parseInt(s,16),a=r>>16&255,g=r>>8&255,I=r&255;return[a,g,I]},e.rgb.hcg=function(o){const n=o[0]/255,s=o[1]/255,r=o[2]/255,a=Math.max(Math.max(n,s),r),g=Math.min(Math.min(n,s),r),I=a-g;let c,B;return I<1?c=g/(1-I):c=0,I<=0?B=0:a===n?B=(s-r)/I%6:a===s?B=2+(r-n)/I:B=4+(n-s)/I,B/=6,B%=1,[B*360,I*100,c*100]},e.hsl.hcg=function(o){const n=o[1]/100,s=o[2]/100,r=s<.5?2*n*s:2*n*(1-s);let a=0;return r<1&&(a=(s-.5*r)/(1-r)),[o[0],r*100,a*100]},e.hsv.hcg=function(o){const n=o[1]/100,s=o[2]/100,r=n*s;let a=0;return r<1&&(a=(s-r)/(1-r)),[o[0],r*100,a*100]},e.hcg.rgb=function(o){const n=o[0]/360,s=o[1]/100,r=o[2]/100;if(s===0)return[r*255,r*255,r*255];const a=[0,0,0],g=n%1*6,I=g%1,c=1-I;let B=0;switch(Math.floor(g)){case 0:a[0]=1,a[1]=I,a[2]=0;break;case 1:a[0]=c,a[1]=1,a[2]=0;break;case 2:a[0]=0,a[1]=1,a[2]=I;break;case 3:a[0]=0,a[1]=c,a[2]=1;break;case 4:a[0]=I,a[1]=0,a[2]=1;break;default:a[0]=1,a[1]=0,a[2]=c}return B=(1-s)*r,[(s*a[0]+B)*255,(s*a[1]+B)*255,(s*a[2]+B)*255]},e.hcg.hsv=function(o){const n=o[1]/100,s=o[2]/100,r=n+s*(1-n);let a=0;return r>0&&(a=n/r),[o[0],a*100,r*100]},e.hcg.hsl=function(o){const n=o[1]/100,r=o[2]/100*(1-n)+.5*n;let a=0;return r>0&&r<.5?a=n/(2*r):r>=.5&&r<1&&(a=n/(2*(1-r))),[o[0],a*100,r*100]},e.hcg.hwb=function(o){const n=o[1]/100,s=o[2]/100,r=n+s*(1-n);return[o[0],(r-n)*100,(1-r)*100]},e.hwb.hcg=function(o){const n=o[1]/100,r=1-o[2]/100,a=r-n;let g=0;return a<1&&(g=(r-a)/(1-a)),[o[0],a*100,g*100]},e.apple.rgb=function(o){return[o[0]/65535*255,o[1]/65535*255,o[2]/65535*255]},e.rgb.apple=function(o){return[o[0]/255*65535,o[1]/255*65535,o[2]/255*65535]},e.gray.rgb=function(o){return[o[0]/100*255,o[0]/100*255,o[0]/100*255]},e.gray.hsl=function(o){return[0,0,o[0]]},e.gray.hsv=e.gray.hsl,e.gray.hwb=function(o){return[0,100,o[0]]},e.gray.cmyk=function(o){return[0,0,0,o[0]]},e.gray.lab=function(o){return[o[0],0,0]},e.gray.hex=function(o){const n=Math.round(o[0]/100*255)&255,r=((n<<16)+(n<<8)+n).toString(16).toUpperCase();return"000000".substring(r.length)+r},e.rgb.gray=function(o){return[(o[0]+o[1]+o[2])/3/255*100]},nEA}var sEA,pte;function B1t(){if(pte)return sEA;pte=1;const t=dte();function A(){const n={},s=Object.keys(t);for(let r=s.length,a=0;a<r;a++)n[s[a]]={distance:-1,parent:null};return n}function e(n){const s=A(),r=[n];for(s[n].distance=0;r.length;){const a=r.pop(),g=Object.keys(t[a]);for(let I=g.length,c=0;c<I;c++){const B=g[c],C=s[B];C.distance===-1&&(C.distance=s[a].distance+1,C.parent=a,r.unshift(B))}}return s}function i(n,s){return function(r){return s(n(r))}}function o(n,s){const r=[s[n].parent,n];let a=t[s[n].parent][n],g=s[n].parent;for(;s[g].parent;)r.unshift(s[g].parent),a=i(t[s[g].parent][g],a),g=s[g].parent;return a.conversion=r,a}return sEA=function(n){const s=e(n),r={},a=Object.keys(s);for(let g=a.length,I=0;I<g;I++){const c=a[I];s[c].parent!==null&&(r[c]=o(c,s))}return r},sEA}var rEA,fte;function C1t(){if(fte)return rEA;fte=1;const t=dte(),A=B1t(),e={},i=Object.keys(t);function o(s){const r=function(...a){const g=a[0];return g==null?g:(g.length>1&&(a=g),s(a))};return"conversion"in s&&(r.conversion=s.conversion),r}function n(s){const r=function(...a){const g=a[0];if(g==null)return g;g.length>1&&(a=g);const I=s(a);if(typeof I=="object")for(let c=I.length,B=0;B<c;B++)I[B]=Math.round(I[B]);return I};return"conversion"in s&&(r.conversion=s.conversion),r}return i.forEach(s=>{e[s]={},Object.defineProperty(e[s],"channels",{value:t[s].channels}),Object.defineProperty(e[s],"labels",{value:t[s].labels});const r=A(s);Object.keys(r).forEach(g=>{const I=r[g];e[s][g]=n(I),e[s][g].raw=o(I)})}),rEA=e,rEA}var aEA,yte;function l1t(){if(yte)return aEA;yte=1;const t=c1t(),A=C1t(),e=["keyword","gray","hex"],i={};for(const B of Object.keys(A))i[[...A[B].labels].sort().join("")]=B;const o={};function n(B,C){if(!(this instanceof n))return new n(B,C);if(C&&C in e&&(C=null),C&&!(C in A))throw new Error("Unknown model: "+C);let l,Q;if(B==null)this.model="rgb",this.color=[0,0,0],this.valpha=1;else if(B instanceof n)this.model=B.model,this.color=[...B.color],this.valpha=B.valpha;else if(typeof B=="string"){const E=t.get(B);if(E===null)throw new Error("Unable to parse color from string: "+B);this.model=E.model,Q=A[this.model].channels,this.color=E.value.slice(0,Q),this.valpha=typeof E.value[Q]=="number"?E.value[Q]:1}else if(B.length>0){this.model=C||"rgb",Q=A[this.model].channels;const E=Array.prototype.slice.call(B,0,Q);this.color=c(E,Q),this.valpha=typeof B[Q]=="number"?B[Q]:1}else if(typeof B=="number")this.model="rgb",this.color=[B>>16&255,B>>8&255,B&255],this.valpha=1;else{this.valpha=1;const E=Object.keys(B);"alpha"in B&&(E.splice(E.indexOf("alpha"),1),this.valpha=typeof B.alpha=="number"?B.alpha:0);const h=E.sort().join("");if(!(h in i))throw new Error("Unable to parse color from object: "+JSON.stringify(B));this.model=i[h];const{labels:u}=A[this.model],d=[];for(l=0;l<u.length;l++)d.push(B[u[l]]);this.color=c(d)}if(o[this.model])for(Q=A[this.model].channels,l=0;l<Q;l++){const E=o[this.model][l];E&&(this.color[l]=E(this.color[l]))}this.valpha=Math.max(0,Math.min(1,this.valpha)),Object.freeze&&Object.freeze(this)}n.prototype={toString(){return this.string()},toJSON(){return this[this.model]()},string(B){let C=this.model in t.to?this:this.rgb();C=C.round(typeof B=="number"?B:1);const l=C.valpha===1?C.color:[...C.color,this.valpha];return t.to[C.model](l)},percentString(B){const C=this.rgb().round(typeof B=="number"?B:1),l=C.valpha===1?C.color:[...C.color,this.valpha];return t.to.rgb.percent(l)},array(){return this.valpha===1?[...this.color]:[...this.color,this.valpha]},object(){const B={},{channels:C}=A[this.model],{labels:l}=A[this.model];for(let Q=0;Q<C;Q++)B[l[Q]]=this.color[Q];return this.valpha!==1&&(B.alpha=this.valpha),B},unitArray(){const B=this.rgb().color;return B[0]/=255,B[1]/=255,B[2]/=255,this.valpha!==1&&B.push(this.valpha),B},unitObject(){const B=this.rgb().object();return B.r/=255,B.g/=255,B.b/=255,this.valpha!==1&&(B.alpha=this.valpha),B},round(B){return B=Math.max(B||0,0),new n([...this.color.map(r(B)),this.valpha],this.model)},alpha(B){return B!==void 0?new n([...this.color,Math.max(0,Math.min(1,B))],this.model):this.valpha},red:a("rgb",0,g(255)),green:a("rgb",1,g(255)),blue:a("rgb",2,g(255)),hue:a(["hsl","hsv","hsl","hwb","hcg"],0,B=>(B%360+360)%360),saturationl:a("hsl",1,g(100)),lightness:a("hsl",2,g(100)),saturationv:a("hsv",1,g(100)),value:a("hsv",2,g(100)),chroma:a("hcg",1,g(100)),gray:a("hcg",2,g(100)),white:a("hwb",1,g(100)),wblack:a("hwb",2,g(100)),cyan:a("cmyk",0,g(100)),magenta:a("cmyk",1,g(100)),yellow:a("cmyk",2,g(100)),black:a("cmyk",3,g(100)),x:a("xyz",0,g(95.047)),y:a("xyz",1,g(100)),z:a("xyz",2,g(108.833)),l:a("lab",0,g(100)),a:a("lab",1),b:a("lab",2),keyword(B){return B!==void 0?new n(B):A[this.model].keyword(this.color)},hex(B){return B!==void 0?new n(B):t.to.hex(this.rgb().round().color)},hexa(B){if(B!==void 0)return new n(B);const C=this.rgb().round().color;let l=Math.round(this.valpha*255).toString(16).toUpperCase();return l.length===1&&(l="0"+l),t.to.hex(C)+l},rgbNumber(){const B=this.rgb().color;return(B[0]&255)<<16|(B[1]&255)<<8|B[2]&255},luminosity(){const B=this.rgb().color,C=[];for(const[l,Q]of B.entries()){const E=Q/255;C[l]=E<=.04045?E/12.92:((E+.055)/1.055)**2.4}return .2126*C[0]+.7152*C[1]+.0722*C[2]},contrast(B){const C=this.luminosity(),l=B.luminosity();return C>l?(C+.05)/(l+.05):(l+.05)/(C+.05)},level(B){const C=this.contrast(B);return C>=7?"AAA":C>=4.5?"AA":""},isDark(){const B=this.rgb().color;return(B[0]*2126+B[1]*7152+B[2]*722)/1e4<128},isLight(){return!this.isDark()},negate(){const B=this.rgb();for(let C=0;C<3;C++)B.color[C]=255-B.color[C];return B},lighten(B){const C=this.hsl();return C.color[2]+=C.color[2]*B,C},darken(B){const C=this.hsl();return C.color[2]-=C.color[2]*B,C},saturate(B){const C=this.hsl();return C.color[1]+=C.color[1]*B,C},desaturate(B){const C=this.hsl();return C.color[1]-=C.color[1]*B,C},whiten(B){const C=this.hwb();return C.color[1]+=C.color[1]*B,C},blacken(B){const C=this.hwb();return C.color[2]+=C.color[2]*B,C},grayscale(){const B=this.rgb().color,C=B[0]*.3+B[1]*.59+B[2]*.11;return n.rgb(C,C,C)},fade(B){return this.alpha(this.valpha-this.valpha*B)},opaquer(B){return this.alpha(this.valpha+this.valpha*B)},rotate(B){const C=this.hsl();let l=C.color[0];return l=(l+B)%360,l=l<0?360+l:l,C.color[0]=l,C},mix(B,C){if(!B||!B.rgb)throw new Error('Argument to "mix" was not a Color instance, but rather an instance of '+typeof B);const l=B.rgb(),Q=this.rgb(),E=C===void 0?.5:C,h=2*E-1,u=l.alpha()-Q.alpha(),d=((h*u===-1?h:(h+u)/(1+h*u))+1)/2,f=1-d;return n.rgb(d*l.red()+f*Q.red(),d*l.green()+f*Q.green(),d*l.blue()+f*Q.blue(),l.alpha()*E+Q.alpha()*(1-E))}};for(const B of Object.keys(A)){if(e.includes(B))continue;const{channels:C}=A[B];n.prototype[B]=function(...l){return this.model===B?new n(this):l.length>0?new n(l,B):new n([...I(A[this.model][B].raw(this.color)),this.valpha],B)},n[B]=function(...l){let Q=l[0];return typeof Q=="number"&&(Q=c(l,C)),new n(Q,B)}}function s(B,C){return Number(B.toFixed(C))}function r(B){return function(C){return s(C,B)}}function a(B,C,l){B=Array.isArray(B)?B:[B];for(const Q of B)(o[Q]||(o[Q]=[]))[C]=l;return B=B[0],function(Q){let E;return Q!==void 0?(l&&(Q=l(Q)),E=this[B](),E.color[C]=Q,E):(E=this[B]().color[C],l&&(E=l(E)),E)}}function g(B){return function(C){return Math.max(0,Math.min(B,C))}}function I(B){return Array.isArray(B)?B:[B]}function c(B,C){for(let l=0;l<C;l++)typeof B[l]!="number"&&(B[l]=0);return B}return aEA=n,aEA}var Q1t=l1t();const mte=_p(Q1t);function E1t(t){if(t.sheet)return t.sheet;for(var A=0;A<document.styleSheets.length;A++)if(document.styleSheets[A].ownerNode===t)return document.styleSheets[A]}function h1t(t){var A=document.createElement("style");return A.setAttribute("data-emotion",t.key),t.nonce!==void 0&&A.setAttribute("nonce",t.nonce),A.appendChild(document.createTextNode("")),A.setAttribute("data-s",""),A}var u1t=(function(){function t(e){var i=this;this._insertTag=function(o){var n;i.tags.length===0?i.insertionPoint?n=i.insertionPoint.nextSibling:i.prepend?n=i.container.firstChild:n=i.before:n=i.tags[i.tags.length-1].nextSibling,i.container.insertBefore(o,n),i.tags.push(o)},this.isSpeedy=e.speedy===void 0?!0:e.speedy,this.tags=[],this.ctr=0,this.nonce=e.nonce,this.key=e.key,this.container=e.container,this.prepend=e.prepend,this.insertionPoint=e.insertionPoint,this.before=null}var A=t.prototype;return A.hydrate=function(i){i.forEach(this._insertTag)},A.insert=function(i){this.ctr%(this.isSpeedy?65e3:1)===0&&this._insertTag(h1t(this));var o=this.tags[this.tags.length-1];if(this.isSpeedy){var n=E1t(o);try{n.insertRule(i,n.cssRules.length)}catch{}}else o.appendChild(document.createTextNode(i));this.ctr++},A.flush=function(){this.tags.forEach(function(i){var o;return(o=i.parentNode)==null?void 0:o.removeChild(i)}),this.tags=[],this.ctr=0},t})(),_u="-ms-",O8="-moz-",Ya="-webkit-",wte="comm",gEA="rule",IEA="decl",d1t="@import",Dte="@keyframes",p1t="@layer",f1t=Math.abs,W8=String.fromCharCode,y1t=Object.assign;function m1t(t,A){return ph(t,0)^45?(((A<<2^ph(t,0))<<2^ph(t,1))<<2^ph(t,2))<<2^ph(t,3):0}function Ste(t){return t.trim()}function w1t(t,A){return(t=A.exec(t))?t[0]:t}function Ja(t,A,e){return t.replace(A,e)}function cEA(t,A){return t.indexOf(A)}function ph(t,A){return t.charCodeAt(A)|0}function tH(t,A,e){return t.slice(A,e)}function Tw(t){return t.length}function BEA(t){return t.length}function Z8(t,A){return A.push(t),t}function D1t(t,A){return t.map(A).join("")}var V8=1,fM=1,bte=0,Vp=0,kl=0,yM="";function j8(t,A,e,i,o,n,s){return{value:t,root:A,parent:e,type:i,props:o,children:n,line:V8,column:fM,length:s,return:""}}function iH(t,A){return y1t(j8("",null,null,"",null,null,0),t,{length:-t.length},A)}function S1t(){return kl}function b1t(){return kl=Vp>0?ph(yM,--Vp):0,fM--,kl===10&&(fM=1,V8--),kl}function o0(){return kl=Vp<bte?ph(yM,Vp++):0,fM++,kl===10&&(fM=1,V8++),kl}function qw(){return ph(yM,Vp)}function z8(){return Vp}function oH(t,A){return tH(yM,t,A)}function nH(t){switch(t){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function xte(t){return V8=fM=1,bte=Tw(yM=t),Vp=0,[]}function kte(t){return yM="",t}function X8(t){return Ste(oH(Vp-1,CEA(t===91?t+2:t===40?t+1:t)))}function x1t(t){for(;(kl=qw())&&kl<33;)o0();return nH(t)>2||nH(kl)>3?"":" "}function k1t(t,A){for(;--A&&o0()&&!(kl<48||kl>102||kl>57&&kl<65||kl>70&&kl<97););return oH(t,z8()+(A<6&&qw()==32&&o0()==32))}function CEA(t){for(;o0();)switch(kl){case t:return Vp;case 34:case 39:t!==34&&t!==39&&CEA(kl);break;case 40:t===41&&CEA(t);break;case 92:o0();break}return Vp}function G1t(t,A){for(;o0()&&t+kl!==57;)if(t+kl===84&&qw()===47)break;return"/*"+oH(A,Vp-1)+"*"+W8(t===47?t:o0())}function F1t(t){for(;!nH(qw());)o0();return oH(t,Vp)}function _1t(t){return kte($8("",null,null,null,[""],t=xte(t),0,[0],t))}function $8(t,A,e,i,o,n,s,r,a){for(var g=0,I=0,c=s,B=0,C=0,l=0,Q=1,E=1,h=1,u=0,d="",f=o,w=n,S=i,D=d;E;)switch(l=u,u=o0()){case 40:if(l!=108&&ph(D,c-1)==58){cEA(D+=Ja(X8(u),"&","&\f"),"&\f")!=-1&&(h=-1);break}case 34:case 39:case 91:D+=X8(u);break;case 9:case 10:case 13:case 32:D+=x1t(l);break;case 92:D+=k1t(z8()-1,7);continue;case 47:switch(qw()){case 42:case 47:Z8(R1t(G1t(o0(),z8()),A,e),a);break;default:D+="/"}break;case 123*Q:r[g++]=Tw(D)*h;case 125*Q:case 59:case 0:switch(u){case 0:case 125:E=0;case 59+I:h==-1&&(D=Ja(D,/\f/g,"")),C>0&&Tw(D)-c&&Z8(C>32?Fte(D+";",i,e,c-1):Fte(Ja(D," ","")+";",i,e,c-2),a);break;case 59:D+=";";default:if(Z8(S=Gte(D,A,e,g,I,o,r,d,f=[],w=[],c),n),u===123)if(I===0)$8(D,A,S,S,f,n,c,r,w);else switch(B===99&&ph(D,3)===110?100:B){case 100:case 108:case 109:case 115:$8(t,S,S,i&&Z8(Gte(t,S,S,0,0,o,r,d,o,f=[],c),w),o,w,c,r,i?f:w);break;default:$8(D,S,S,S,[""],w,0,r,w)}}g=I=C=0,Q=h=1,d=D="",c=s;break;case 58:c=1+Tw(D),C=l;default:if(Q<1){if(u==123)--Q;else if(u==125&&Q++==0&&b1t()==125)continue}switch(D+=W8(u),u*Q){case 38:h=I>0?1:(D+="\f",-1);break;case 44:r[g++]=(Tw(D)-1)*h,h=1;break;case 64:qw()===45&&(D+=X8(o0())),B=qw(),I=c=Tw(d=D+=F1t(z8())),u++;break;case 45:l===45&&Tw(D)==2&&(Q=0)}}return n}function Gte(t,A,e,i,o,n,s,r,a,g,I){for(var c=o-1,B=o===0?n:[""],C=BEA(B),l=0,Q=0,E=0;l<i;++l)for(var h=0,u=tH(t,c+1,c=f1t(Q=s[l])),d=t;h<C;++h)(d=Ste(Q>0?B[h]+" "+u:Ja(u,/&\f/g,B[h])))&&(a[E++]=d);return j8(t,A,e,o===0?gEA:r,a,g,I)}function R1t(t,A,e){return j8(t,A,e,wte,W8(S1t()),tH(t,2,-2),0)}function Fte(t,A,e,i){return j8(t,A,e,IEA,tH(t,0,i),tH(t,i+1,-1),i)}function mM(t,A){for(var e="",i=BEA(t),o=0;o<i;o++)e+=A(t[o],o,t,A)||"";return e}function N1t(t,A,e,i){switch(t.type){case p1t:if(t.children.length)break;case d1t:case IEA:return t.return=t.return||t.value;case wte:return"";case Dte:return t.return=t.value+"{"+mM(t.children,i)+"}";case gEA:t.value=t.props.join(",")}return Tw(e=mM(t.children,i))?t.return=t.value+"{"+e+"}":""}function M1t(t){var A=BEA(t);return function(e,i,o,n){for(var s="",r=0;r<A;r++)s+=t[r](e,i,o,n)||"";return s}}function v1t(t){return function(A){A.root||(A=A.return)&&t(A)}}function U1t(t){var A=Object.create(null);return function(e){return A[e]===void 0&&(A[e]=t(e)),A[e]}}var L1t=function(A,e,i){for(var o=0,n=0;o=n,n=qw(),o===38&&n===12&&(e[i]=1),!nH(n);)o0();return oH(A,Vp)},H1t=function(A,e){var i=-1,o=44;do switch(nH(o)){case 0:o===38&&qw()===12&&(e[i]=1),A[i]+=L1t(Vp-1,e,i);break;case 2:A[i]+=X8(o);break;case 4:if(o===44){A[++i]=qw()===58?"&\f":"",e[i]=A[i].length;break}default:A[i]+=W8(o)}while(o=o0());return A},Y1t=function(A,e){return kte(H1t(xte(A),e))},_te=new WeakMap,J1t=function(A){if(!(A.type!=="rule"||!A.parent||A.length<1)){for(var e=A.value,i=A.parent,o=A.column===i.column&&A.line===i.line;i.type!=="rule";)if(i=i.parent,!i)return;if(!(A.props.length===1&&e.charCodeAt(0)!==58&&!_te.get(i))&&!o){_te.set(A,!0);for(var n=[],s=Y1t(e,n),r=i.props,a=0,g=0;a<s.length;a++)for(var I=0;I<r.length;I++,g++)A.props[g]=n[a]?s[a].replace(/&\f/g,r[I]):r[I]+" "+s[a]}}},K1t=function(A){if(A.type==="decl"){var e=A.value;e.charCodeAt(0)===108&&e.charCodeAt(2)===98&&(A.return="",A.value="")}};function Rte(t,A){switch(m1t(t,A)){case 5103:return Ya+"print-"+t+t;case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:return Ya+t+t;case 5349:case 4246:case 4810:case 6968:case 2756:return Ya+t+O8+t+_u+t+t;case 6828:case 4268:return Ya+t+_u+t+t;case 6165:return Ya+t+_u+"flex-"+t+t;case 5187:return Ya+t+Ja(t,/(\w+).+(:[^]+)/,Ya+"box-$1$2"+_u+"flex-$1$2")+t;case 5443:return Ya+t+_u+"flex-item-"+Ja(t,/flex-|-self/,"")+t;case 4675:return Ya+t+_u+"flex-line-pack"+Ja(t,/align-content|flex-|-self/,"")+t;case 5548:return Ya+t+_u+Ja(t,"shrink","negative")+t;case 5292:return Ya+t+_u+Ja(t,"basis","preferred-size")+t;case 6060:return Ya+"box-"+Ja(t,"-grow","")+Ya+t+_u+Ja(t,"grow","positive")+t;case 4554:return Ya+Ja(t,/([^-])(transform)/g,"$1"+Ya+"$2")+t;case 6187:return Ja(Ja(Ja(t,/(zoom-|grab)/,Ya+"$1"),/(image-set)/,Ya+"$1"),t,"")+t;case 5495:case 3959:return Ja(t,/(image-set\([^]*)/,Ya+"$1$`$1");case 4968:return Ja(Ja(t,/(.+:)(flex-)?(.*)/,Ya+"box-pack:$3"+_u+"flex-pack:$3"),/s.+-b[^;]+/,"justify")+Ya+t+t;case 4095:case 3583:case 4068:case 2532:return Ja(t,/(.+)-inline(.+)/,Ya+"$1$2")+t;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(Tw(t)-1-A>6)switch(ph(t,A+1)){case 109:if(ph(t,A+4)!==45)break;case 102:return Ja(t,/(.+:)(.+)-([^]+)/,"$1"+Ya+"$2-$3$1"+O8+(ph(t,A+3)==108?"$3":"$2-$3"))+t;case 115:return~cEA(t,"stretch")?Rte(Ja(t,"stretch","fill-available"),A)+t:t}break;case 4949:if(ph(t,A+1)!==115)break;case 6444:switch(ph(t,Tw(t)-3-(~cEA(t,"!important")&&10))){case 107:return Ja(t,":",":"+Ya)+t;case 101:return Ja(t,/(.+:)([^;!]+)(;|!.+)?/,"$1"+Ya+(ph(t,14)===45?"inline-":"")+"box$3$1"+Ya+"$2$3$1"+_u+"$2box$3")+t}break;case 5936:switch(ph(t,A+11)){case 114:return Ya+t+_u+Ja(t,/[svh]\w+-[tblr]{2}/,"tb")+t;case 108:return Ya+t+_u+Ja(t,/[svh]\w+-[tblr]{2}/,"tb-rl")+t;case 45:return Ya+t+_u+Ja(t,/[svh]\w+-[tblr]{2}/,"lr")+t}return Ya+t+_u+t+t}return t}var T1t=function(A,e,i,o){if(A.length>-1&&!A.return)switch(A.type){case IEA:A.return=Rte(A.value,A.length);break;case Dte:return mM([iH(A,{value:Ja(A.value,"@","@"+Ya)})],o);case gEA:if(A.length)return D1t(A.props,function(n){switch(w1t(n,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return mM([iH(A,{props:[Ja(n,/:(read-\w+)/,":"+O8+"$1")]})],o);case"::placeholder":return mM([iH(A,{props:[Ja(n,/:(plac\w+)/,":"+Ya+"input-$1")]}),iH(A,{props:[Ja(n,/:(plac\w+)/,":"+O8+"$1")]}),iH(A,{props:[Ja(n,/:(plac\w+)/,_u+"input-$1")]})],o)}return""})}},q1t=[T1t],P1t=function(A){var e=A.key;if(e==="css"){var i=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(i,function(Q){var E=Q.getAttribute("data-emotion");E.indexOf(" ")!==-1&&(document.head.appendChild(Q),Q.setAttribute("data-s",""))})}var o=A.stylisPlugins||q1t,n={},s,r=[];s=A.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+e+' "]'),function(Q){for(var E=Q.getAttribute("data-emotion").split(" "),h=1;h<E.length;h++)n[E[h]]=!0;r.push(Q)});var a,g=[J1t,K1t];{var I,c=[N1t,v1t(function(Q){I.insert(Q)})],B=M1t(g.concat(o,c)),C=function(E){return mM(_1t(E),B)};a=function(E,h,u,d){I=u,C(E?E+"{"+h.styles+"}":h.styles),d&&(l.inserted[h.name]=!0)}}var l={key:e,sheet:new u1t({key:e,container:s,nonce:A.nonce,speedy:A.speedy,prepend:A.prepend,insertionPoint:A.insertionPoint}),nonce:A.nonce,inserted:n,registered:{},insert:a};return l.sheet.hydrate(r),l};function O1t(t){for(var A=0,e,i=0,o=t.length;o>=4;++i,o-=4)e=t.charCodeAt(i)&255|(t.charCodeAt(++i)&255)<<8|(t.charCodeAt(++i)&255)<<16|(t.charCodeAt(++i)&255)<<24,e=(e&65535)*1540483477+((e>>>16)*59797<<16),e^=e>>>24,A=(e&65535)*1540483477+((e>>>16)*59797<<16)^(A&65535)*1540483477+((A>>>16)*59797<<16);switch(o){case 3:A^=(t.charCodeAt(i+2)&255)<<16;case 2:A^=(t.charCodeAt(i+1)&255)<<8;case 1:A^=t.charCodeAt(i)&255,A=(A&65535)*1540483477+((A>>>16)*59797<<16)}return A^=A>>>13,A=(A&65535)*1540483477+((A>>>16)*59797<<16),((A^A>>>15)>>>0).toString(36)}var W1t={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,scale:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},Z1t=/[A-Z]|^ms/g,V1t=/_EMO_([^_]+?)_([^]*?)_EMO_/g,Nte=function(A){return A.charCodeAt(1)===45},Mte=function(A){return A!=null&&typeof A!="boolean"},lEA=U1t(function(t){return Nte(t)?t:t.replace(Z1t,"-$&").toLowerCase()}),vte=function(A,e){switch(A){case"animation":case"animationName":if(typeof e=="string")return e.replace(V1t,function(i,o,n){return Lx={name:o,styles:n,next:Lx},o})}return W1t[A]!==1&&!Nte(A)&&typeof e=="number"&&e!==0?e+"px":e};function AW(t,A,e){if(e==null)return"";var i=e;if(i.__emotion_styles!==void 0)return i;switch(typeof e){case"boolean":return"";case"object":{var o=e;if(o.anim===1)return Lx={name:o.name,styles:o.styles,next:Lx},o.name;var n=e;if(n.styles!==void 0){var s=n.next;if(s!==void 0)for(;s!==void 0;)Lx={name:s.name,styles:s.styles,next:Lx},s=s.next;var r=n.styles+";";return r}return j1t(t,A,e)}}var a=e;if(A==null)return a;var g=A[a];return g!==void 0?g:a}function j1t(t,A,e){var i="";if(Array.isArray(e))for(var o=0;o<e.length;o++)i+=AW(t,A,e[o])+";";else for(var n in e){var s=e[n];if(typeof s!="object"){var r=s;A!=null&&A[r]!==void 0?i+=n+"{"+A[r]+"}":Mte(r)&&(i+=lEA(n)+":"+vte(n,r)+";")}else if(Array.isArray(s)&&typeof s[0]=="string"&&(A==null||A[s[0]]===void 0))for(var a=0;a<s.length;a++)Mte(s[a])&&(i+=lEA(n)+":"+vte(n,s[a])+";");else{var g=AW(t,A,s);switch(n){case"animation":case"animationName":{i+=lEA(n)+":"+g+";";break}default:i+=n+"{"+g+"}"}}}return i}var Ute=/label:\s*([^\s;{]+)\s*(;|$)/g,Lx;function QEA(t,A,e){if(t.length===1&&typeof t[0]=="object"&&t[0]!==null&&t[0].styles!==void 0)return t[0];var i=!0,o="";Lx=void 0;var n=t[0];if(n==null||n.raw===void 0)i=!1,o+=AW(e,A,n);else{var s=n;o+=s[0]}for(var r=1;r<t.length;r++)if(o+=AW(e,A,t[r]),i){var a=n;o+=a[r]}Ute.lastIndex=0;for(var g="",I;(I=Ute.exec(o))!==null;)g+="-"+I[1];var c=O1t(o)+g;return{name:c,styles:o,next:Lx}}function Lte(t,A,e){var i="";return e.split(" ").forEach(function(o){t[o]!==void 0?A.push(t[o]+";"):o&&(i+=o+" ")}),i}var z1t=function(A,e,i){var o=A.key+"-"+e.name;A.registered[o]===void 0&&(A.registered[o]=e.styles)},X1t=function(A,e,i){z1t(A,e);var o=A.key+"-"+e.name;if(A.inserted[e.name]===void 0){var n=e;do A.insert(e===n?"."+o:"",n,A.sheet,!0),n=n.next;while(n!==void 0)}};function Hte(t,A){if(t.inserted[A.name]===void 0)return t.insert("",A,t.sheet,!0)}function Yte(t,A,e){var i=[],o=Lte(t,i,e);return i.length<2?e:o+A(i)}var $1t=function(A){var e=P1t(A);e.sheet.speedy=function(r){this.isSpeedy=r},e.compat=!0;var i=function(){for(var a=arguments.length,g=new Array(a),I=0;I<a;I++)g[I]=arguments[I];var c=QEA(g,e.registered,void 0);return X1t(e,c),e.key+"-"+c.name},o=function(){for(var a=arguments.length,g=new Array(a),I=0;I<a;I++)g[I]=arguments[I];var c=QEA(g,e.registered),B="animation-"+c.name;return Hte(e,{name:c.name,styles:"@keyframes "+B+"{"+c.styles+"}"}),B},n=function(){for(var a=arguments.length,g=new Array(a),I=0;I<a;I++)g[I]=arguments[I];var c=QEA(g,e.registered);Hte(e,c)},s=function(){for(var a=arguments.length,g=new Array(a),I=0;I<a;I++)g[I]=arguments[I];return Yte(e.registered,i,A2t(g))};return{css:i,cx:s,injectGlobal:n,keyframes:o,hydrate:function(a){a.forEach(function(g){e.inserted[g]=!0})},flush:function(){e.registered={},e.inserted={},e.sheet.flush()},sheet:e.sheet,cache:e,getRegisteredStyles:Lte.bind(null,e.registered),merge:Yte.bind(null,e.registered,i)}},A2t=function t(A){for(var e="",i=0;i<A.length;i++){var o=A[i];if(o!=null){var n=void 0;switch(typeof o){case"boolean":break;case"object":{if(Array.isArray(o))n=t(o);else{n="";for(var s in o)o[s]&&s&&(n&&(n+=" "),n+=s)}break}default:n=o}n&&(e&&(e+=" "),e+=n)}}return e},e2t=$1t({key:"css"}),wM=e2t.css,t2t=Object.create,Jte=Object.defineProperty,i2t=Object.getOwnPropertyDescriptor,Kte=Object.getOwnPropertyNames,o2t=Object.getPrototypeOf,n2t=Object.prototype.hasOwnProperty,xa=(t,A)=>function(){return A||(0,t[Kte(t)[0]])((A={exports:{}}).exports,A),A.exports},s2t=(t,A,e,i)=>{if(A&&typeof A=="object"||typeof A=="function")for(let o of Kte(A))!n2t.call(t,o)&&o!==e&&Jte(t,o,{get:()=>A[o],enumerable:!(i=i2t(A,o))||i.enumerable});return t},Tte=(t,A,e)=>(e=t!=null?t2t(o2t(t)):{},s2t(Jte(e,"default",{value:t,enumerable:!0}),t)),r2t=xa({"node_modules/svgson/dist/svgson.umd.js"(t,A){(function(e,i){typeof t=="object"&&typeof A<"u"?A.exports=i():typeof define=="function"&&define.amd?define(i):(e=typeof globalThis<"u"?globalThis:e||self,e.svgson=i())})(t,function(){var e=function(tA){return tA!=null&&(i(tA)||o(tA)||!!tA._isBuffer)};function i(tA){return!!tA.constructor&&typeof tA.constructor.isBuffer=="function"&&tA.constructor.isBuffer(tA)}function o(tA){return typeof tA.readFloatLE=="function"&&typeof tA.slice=="function"&&i(tA.slice(0,0))}var n=Object.prototype.toString,s=function(sA){if(typeof sA>"u")return"undefined";if(sA===null)return"null";if(sA===!0||sA===!1||sA instanceof Boolean)return"boolean";if(typeof sA=="string"||sA instanceof String)return"string";if(typeof sA=="number"||sA instanceof Number)return"number";if(typeof sA=="function"||sA instanceof Function)return"function";if(typeof Array.isArray<"u"&&Array.isArray(sA))return"array";if(sA instanceof RegExp)return"regexp";if(sA instanceof Date)return"date";var gA=n.call(sA);return gA==="[object RegExp]"?"regexp":gA==="[object Date]"?"date":gA==="[object Arguments]"?"arguments":gA==="[object Error]"?"error":e(sA)?"buffer":gA==="[object Set]"?"set":gA==="[object WeakSet]"?"weakset":gA==="[object Map]"?"map":gA==="[object WeakMap]"?"weakmap":gA==="[object Symbol]"?"symbol":gA==="[object Int8Array]"?"int8array":gA==="[object Uint8Array]"?"uint8array":gA==="[object Uint8ClampedArray]"?"uint8clampedarray":gA==="[object Int16Array]"?"int16array":gA==="[object Uint16Array]"?"uint16array":gA==="[object Int32Array]"?"int32array":gA==="[object Uint32Array]"?"uint32array":gA==="[object Float32Array]"?"float32array":gA==="[object Float64Array]"?"float64array":"object"};function r(tA,sA){return sA={exports:{}},tA(sA,sA.exports),sA.exports}var a=r(function(tA){(function(){function sA(gA,pA){if(typeof pA!="function")return gA;var xA={};for(var _A in gA)Object.prototype.hasOwnProperty.call(gA,_A)&&(xA[pA(_A,gA[_A])||_A]=gA[_A]);return xA}tA.exports?tA.exports=sA:window.rename=sA})()}),g=function tA(sA,gA){var pA=s(sA);if(pA!=="object"&&pA!=="array")throw new Error("expected an object");var xA=[];pA==="object"&&(sA=a(sA,gA),xA={});for(var _A in sA)if(sA.hasOwnProperty(_A)){var MA=sA[_A];s(MA)==="object"||s(MA)==="array"?xA[_A]=tA(MA,gA):xA[_A]=MA}return xA},I=r(function(tA){var sA=Object.prototype.hasOwnProperty,gA="~";function pA(){}Object.create&&(pA.prototype=Object.create(null),new pA().__proto__||(gA=!1));function xA(MA,PA,BA){this.fn=MA,this.context=PA,this.once=BA||!1}function _A(){this._events=new pA,this._eventsCount=0}_A.prototype.eventNames=function(){var PA=[],BA,yA;if(this._eventsCount===0)return PA;for(yA in BA=this._events)sA.call(BA,yA)&&PA.push(gA?yA.slice(1):yA);return Object.getOwnPropertySymbols?PA.concat(Object.getOwnPropertySymbols(BA)):PA},_A.prototype.listeners=function(PA,BA){var yA=gA?gA+PA:PA,uA=this._events[yA];if(BA)return!!uA;if(!uA)return[];if(uA.fn)return[uA.fn];for(var qA=0,ee=uA.length,Be=new Array(ee);qA<ee;qA++)Be[qA]=uA[qA].fn;return Be},_A.prototype.emit=function(PA,BA,yA,uA,qA,ee){var Be=gA?gA+PA:PA;if(!this._events[Be])return!1;var mA=this._events[Be],WA=arguments.length,KA,JA;if(mA.fn){switch(mA.once&&this.removeListener(PA,mA.fn,void 0,!0),WA){case 1:return mA.fn.call(mA.context),!0;case 2:return mA.fn.call(mA.context,BA),!0;case 3:return mA.fn.call(mA.context,BA,yA),!0;case 4:return mA.fn.call(mA.context,BA,yA,uA),!0;case 5:return mA.fn.call(mA.context,BA,yA,uA,qA),!0;case 6:return mA.fn.call(mA.context,BA,yA,uA,qA,ee),!0}for(JA=1,KA=new Array(WA-1);JA<WA;JA++)KA[JA-1]=arguments[JA];mA.fn.apply(mA.context,KA)}else{var jA=mA.length,FA;for(JA=0;JA<jA;JA++)switch(mA[JA].once&&this.removeListener(PA,mA[JA].fn,void 0,!0),WA){case 1:mA[JA].fn.call(mA[JA].context);break;case 2:mA[JA].fn.call(mA[JA].context,BA);break;case 3:mA[JA].fn.call(mA[JA].context,BA,yA);break;case 4:mA[JA].fn.call(mA[JA].context,BA,yA,uA);break;default:if(!KA)for(FA=1,KA=new Array(WA-1);FA<WA;FA++)KA[FA-1]=arguments[FA];mA[JA].fn.apply(mA[JA].context,KA)}}return!0},_A.prototype.on=function(PA,BA,yA){var uA=new xA(BA,yA||this),qA=gA?gA+PA:PA;return this._events[qA]?this._events[qA].fn?this._events[qA]=[this._events[qA],uA]:this._events[qA].push(uA):(this._events[qA]=uA,this._eventsCount++),this},_A.prototype.once=function(PA,BA,yA){var uA=new xA(BA,yA||this,!0),qA=gA?gA+PA:PA;return this._events[qA]?this._events[qA].fn?this._events[qA]=[this._events[qA],uA]:this._events[qA].push(uA):(this._events[qA]=uA,this._eventsCount++),this},_A.prototype.removeListener=function(PA,BA,yA,uA){var qA=gA?gA+PA:PA;if(!this._events[qA])return this;if(!BA)return--this._eventsCount===0?this._events=new pA:delete this._events[qA],this;var ee=this._events[qA];if(ee.fn)ee.fn===BA&&(!uA||ee.once)&&(!yA||ee.context===yA)&&(--this._eventsCount===0?this._events=new pA:delete this._events[qA]);else{for(var Be=0,mA=[],WA=ee.length;Be<WA;Be++)(ee[Be].fn!==BA||uA&&!ee[Be].once||yA&&ee[Be].context!==yA)&&mA.push(ee[Be]);mA.length?this._events[qA]=mA.length===1?mA[0]:mA:--this._eventsCount===0?this._events=new pA:delete this._events[qA]}return this},_A.prototype.removeAllListeners=function(PA){var BA;return PA?(BA=gA?gA+PA:PA,this._events[BA]&&(--this._eventsCount===0?this._events=new pA:delete this._events[BA])):(this._events=new pA,this._eventsCount=0),this},_A.prototype.off=_A.prototype.removeListener,_A.prototype.addListener=_A.prototype.on,_A.prototype.setMaxListeners=function(){return this},_A.prefixed=gA,_A.EventEmitter=_A,tA.exports=_A});function c(tA,sA,gA){return sA in tA?Object.defineProperty(tA,sA,{value:gA,enumerable:!0,configurable:!0,writable:!0}):tA[sA]=gA,tA}var B=function(){},C={data:"state-data",cdata:"state-cdata",tagBegin:"state-tag-begin",tagName:"state-tag-name",tagEnd:"state-tag-end",attributeNameStart:"state-attribute-name-start",attributeName:"state-attribute-name",attributeNameEnd:"state-attribute-name-end",attributeValueBegin:"state-attribute-value-begin",attributeValue:"state-attribute-value"},l={lt:"action-lt",gt:"action-gt",space:"action-space",equal:"action-equal",quote:"action-quote",slash:"action-slash",char:"action-char",error:"action-error"},Q={text:"text",openTag:"open-tag",closeTag:"close-tag",attributeName:"attribute-name",attributeValue:"attribute-value"},E={" ":l.space," ":l.space,"\n":l.space,"\r":l.space,"<":l.lt,">":l.gt,'"':l.quote,"'":l.quote,"=":l.equal,"/":l.slash},h=function(sA){return E[sA]||l.char},u=function(sA){var gA,pA,xA,_A,MA,PA,BA,yA,uA,qA;sA=Object.assign({debug:!1},sA);var ee=new I,Be=C.data,mA="",WA="",KA="",JA="",jA="",FA="",SA=function(TA,OA){if(!(WA[0]==="?"||WA[0]==="!")){var ie={type:TA,value:OA};sA.debug&&console.log("emit:",ie),ee.emit("data",ie)}};ee.stateMachine=(qA={},c(qA,C.data,(gA={},c(gA,l.lt,function(){mA.trim()&&SA(Q.text,mA),WA="",jA=!1,Be=C.tagBegin}),c(gA,l.char,function(GA){mA+=GA}),gA)),c(qA,C.cdata,c({},l.char,function(GA){mA+=GA,mA.substr(-3)==="]]>"&&(SA(Q.text,mA.slice(0,-3)),mA="",Be=C.data)})),c(qA,C.tagBegin,(pA={},c(pA,l.space,B),c(pA,l.char,function(GA){WA=GA,Be=C.tagName}),c(pA,l.slash,function(){WA="",jA=!0}),pA)),c(qA,C.tagName,(xA={},c(xA,l.space,function(){jA?Be=C.tagEnd:(Be=C.attributeNameStart,SA(Q.openTag,WA))}),c(xA,l.gt,function(){SA(jA?Q.closeTag:Q.openTag,WA),mA="",Be=C.data}),c(xA,l.slash,function(){Be=C.tagEnd,SA(Q.openTag,WA)}),c(xA,l.char,function(GA){WA+=GA,WA==="![CDATA["&&(Be=C.cdata,mA="",WA="")}),xA)),c(qA,C.tagEnd,(_A={},c(_A,l.gt,function(){SA(Q.closeTag,WA),mA="",Be=C.data}),c(_A,l.char,B),_A)),c(qA,C.attributeNameStart,(MA={},c(MA,l.char,function(GA){KA=GA,Be=C.attributeName}),c(MA,l.gt,function(){mA="",Be=C.data}),c(MA,l.space,B),c(MA,l.slash,function(){jA=!0,Be=C.tagEnd}),MA)),c(qA,C.attributeName,(PA={},c(PA,l.space,function(){Be=C.attributeNameEnd}),c(PA,l.equal,function(){SA(Q.attributeName,KA),Be=C.attributeValueBegin}),c(PA,l.gt,function(){JA="",SA(Q.attributeName,KA),SA(Q.attributeValue,JA),mA="",Be=C.data}),c(PA,l.slash,function(){jA=!0,JA="",SA(Q.attributeName,KA),SA(Q.attributeValue,JA),Be=C.tagEnd}),c(PA,l.char,function(GA){KA+=GA}),PA)),c(qA,C.attributeNameEnd,(BA={},c(BA,l.space,B),c(BA,l.equal,function(){SA(Q.attributeName,KA),Be=C.attributeValueBegin}),c(BA,l.gt,function(){JA="",SA(Q.attributeName,KA),SA(Q.attributeValue,JA),mA="",Be=C.data}),c(BA,l.char,function(GA){JA="",SA(Q.attributeName,KA),SA(Q.attributeValue,JA),KA=GA,Be=C.attributeName}),BA)),c(qA,C.attributeValueBegin,(yA={},c(yA,l.space,B),c(yA,l.quote,function(GA){FA=GA,JA="",Be=C.attributeValue}),c(yA,l.gt,function(){JA="",SA(Q.attributeValue,JA),mA="",Be=C.data}),c(yA,l.char,function(GA){FA="",JA=GA,Be=C.attributeValue}),yA)),c(qA,C.attributeValue,(uA={},c(uA,l.space,function(GA){FA?JA+=GA:(SA(Q.attributeValue,JA),Be=C.attributeNameStart)}),c(uA,l.quote,function(GA){FA===GA?(SA(Q.attributeValue,JA),Be=C.attributeNameStart):JA+=GA}),c(uA,l.gt,function(GA){FA?JA+=GA:(SA(Q.attributeValue,JA),mA="",Be=C.data)}),c(uA,l.slash,function(GA){FA?JA+=GA:(SA(Q.attributeValue,JA),jA=!0,Be=C.tagEnd)}),c(uA,l.char,function(GA){JA+=GA}),uA)),qA);var LA=function(TA){sA.debug&&console.log(Be,TA);var OA=ee.stateMachine[Be],ie=OA[h(TA)]||OA[l.error]||OA[l.char];ie(TA)};return ee.write=function(GA){for(var TA=GA.length,OA=0;OA<TA;OA++)LA(GA[OA])},ee},d={State:C,Action:l,Type:Q,create:u},f=d.Type,w={element:"element",text:"text"},S=function(sA){return Object.assign({name:"",type:w.element,value:"",parent:null,attributes:{},children:[]},sA)},D=function(sA){sA=Object.assign({stream:!1,parentNodes:!0,doneEvent:"done",tagPrefix:"tag:",emitTopLevelOnly:!1,debug:!1},sA);var gA=void 0,pA=void 0,xA=void 0,_A=void 0,MA=new I,PA=function(yA){switch(yA.type){case f.openTag:if(xA===null)xA=pA,xA.name=yA.value;else{var uA=S({name:yA.value,parent:xA});xA.children.push(uA),xA=uA}break;case f.closeTag:var qA=xA.parent;if(sA.parentNodes||(xA.parent=null),xA.name!==yA.value)break;sA.stream&&qA===pA&&(pA.children=[],xA.parent=null),(!sA.emitTopLevelOnly||qA===pA)&&(MA.emit(sA.tagPrefix+xA.name,xA),MA.emit("tag",xA.name,xA)),xA===pA&&(gA.removeAllListeners("data"),MA.emit(sA.doneEvent,xA),pA=null),xA=qA;break;case f.text:xA&&xA.children.push(S({type:w.text,value:yA.value,parent:sA.parentNodes?xA:null}));break;case f.attributeName:_A=yA.value,xA.attributes[_A]="";break;case f.attributeValue:xA.attributes[_A]=yA.value;break}};return MA.reset=function(){gA=d.create({debug:sA.debug}),gA.on("data",PA),pA=S(),xA=null,_A="",MA.parse=gA.write},MA.reset(),MA},x=function(sA,gA){gA=Object.assign({},gA,{stream:!1,tagPrefix:":"});var pA=D(gA),xA=void 0;return pA.on("done",function(_A){xA=_A}),pA.parse(sA),xA},F={parseSync:x},k=F.parseSync,U=function(sA){var gA=k("<root>".concat(sA,"</root>"),{parentNodes:!1}),pA=gA.children&&gA.children.length>0&&gA.children.every(function(xA){return xA.name==="svg"});if(pA)return gA.children.length===1?gA.children[0]:gA.children;throw Error("nothing to parse")},N=function(sA){return g(sA,function(gA){return q(gA)?gA:Y(gA)})},Y=function(sA){return sA.replace(/[-|:]([a-z])/gi,function(gA,pA){return pA.toUpperCase()})},q=function(sA){return/^(data|aria)(-\w+)/.test(sA)},K=function(sA){if(sA){var gA=String(sA);return/[&<>]/.test(gA)?"<![CDATA[".concat(gA.replace(/]]>/,"]]]]><![CDATA[>"),"]]>"):gA}return""},O=function(sA){return String(sA).replace(/&/g,"&amp;").replace(/'/g,"&apos;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")},W=function(sA){var gA=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},pA=gA.transformNode,xA=pA===void 0?function(BA){return BA}:pA,_A=gA.camelcase,MA=_A===void 0?!1:_A,PA=function(yA){var uA;return uA=xA(yA),MA&&(uA=N(uA)),uA};return PA(U(sA))};function $(){for(var tA=arguments.length,sA=new Array(tA),gA=0;gA<tA;gA++)sA[gA]=arguments[gA];return new Promise(function(pA,xA){try{var _A=W.apply(void 0,sA);pA(_A)}catch(MA){xA(MA)}})}var oA=function tA(sA){var gA=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},pA=gA.transformAttr,xA=pA===void 0?function(Be,mA,WA){return"".concat(Be,'="').concat(WA(mA),'"')}:pA,_A=gA.transformNode,MA=_A===void 0?function(Be){return Be}:_A,PA=gA.selfClose,BA=PA===void 0?!0:PA;if(Array.isArray(sA))return sA.map(function(Be){return tA(Be,{transformAttr:xA,selfClose:BA,transformNode:MA})}).join("");var yA=MA(sA);if(yA.type==="text")return K(yA.value);var uA="";for(var qA in yA.attributes){var ee=xA(qA,yA.attributes[qA],O,yA.name);uA+=ee?" ".concat(ee):""}return yA.children&&yA.children.length>0||!BA?"<".concat(yA.name).concat(uA,">").concat(tA(yA.children,{transformAttr:xA,transformNode:MA,selfClose:BA}),"</").concat(yA.name,">"):"<".concat(yA.name).concat(uA,"/>")},IA=Object.assign({},{parse:$,parseSync:W,stringify:oA});return IA})}}),EEA=xa({"node_modules/js-beautify/js/src/core/output.js"(t,A){function e(n){this.__parent=n,this.__character_count=0,this.__indent_count=-1,this.__alignment_count=0,this.__wrap_point_index=0,this.__wrap_point_character_count=0,this.__wrap_point_indent_count=-1,this.__wrap_point_alignment_count=0,this.__items=[]}e.prototype.clone_empty=function(){var n=new e(this.__parent);return n.set_indent(this.__indent_count,this.__alignment_count),n},e.prototype.item=function(n){return n<0?this.__items[this.__items.length+n]:this.__items[n]},e.prototype.has_match=function(n){for(var s=this.__items.length-1;s>=0;s--)if(this.__items[s].match(n))return!0;return!1},e.prototype.set_indent=function(n,s){this.is_empty()&&(this.__indent_count=n||0,this.__alignment_count=s||0,this.__character_count=this.__parent.get_indent_size(this.__indent_count,this.__alignment_count))},e.prototype._set_wrap_point=function(){this.__parent.wrap_line_length&&(this.__wrap_point_index=this.__items.length,this.__wrap_point_character_count=this.__character_count,this.__wrap_point_indent_count=this.__parent.next_line.__indent_count,this.__wrap_point_alignment_count=this.__parent.next_line.__alignment_count)},e.prototype._should_wrap=function(){return this.__wrap_point_index&&this.__character_count>this.__parent.wrap_line_length&&this.__wrap_point_character_count>this.__parent.next_line.__character_count},e.prototype._allow_wrap=function(){if(this._should_wrap()){this.__parent.add_new_line();var n=this.__parent.current_line;return n.set_indent(this.__wrap_point_indent_count,this.__wrap_point_alignment_count),n.__items=this.__items.slice(this.__wrap_point_index),this.__items=this.__items.slice(0,this.__wrap_point_index),n.__character_count+=this.__character_count-this.__wrap_point_character_count,this.__character_count=this.__wrap_point_character_count,n.__items[0]===" "&&(n.__items.splice(0,1),n.__character_count-=1),!0}return!1},e.prototype.is_empty=function(){return this.__items.length===0},e.prototype.last=function(){return this.is_empty()?null:this.__items[this.__items.length-1]},e.prototype.push=function(n){this.__items.push(n);var s=n.lastIndexOf(`
5300
5300
  `);s!==-1?this.__character_count=n.length-s:this.__character_count+=n.length},e.prototype.pop=function(){var n=null;return this.is_empty()||(n=this.__items.pop(),this.__character_count-=n.length),n},e.prototype._remove_indent=function(){this.__indent_count>0&&(this.__indent_count-=1,this.__character_count-=this.__parent.indent_size)},e.prototype._remove_wrap_indent=function(){this.__wrap_point_indent_count>0&&(this.__wrap_point_indent_count-=1)},e.prototype.trim=function(){for(;this.last()===" ";)this.__items.pop(),this.__character_count-=1},e.prototype.toString=function(){var n="";return this.is_empty()?this.__parent.indent_empty_lines&&(n=this.__parent.get_indent_string(this.__indent_count)):(n=this.__parent.get_indent_string(this.__indent_count,this.__alignment_count),n+=this.__items.join("")),n};function i(n,s){this.__cache=[""],this.__indent_size=n.indent_size,this.__indent_string=n.indent_char,n.indent_with_tabs||(this.__indent_string=new Array(n.indent_size+1).join(n.indent_char)),s=s||"",n.indent_level>0&&(s=new Array(n.indent_level+1).join(this.__indent_string)),this.__base_string=s,this.__base_string_length=s.length}i.prototype.get_indent_size=function(n,s){var r=this.__base_string_length;return s=s||0,n<0&&(r=0),r+=n*this.__indent_size,r+=s,r},i.prototype.get_indent_string=function(n,s){var r=this.__base_string;return s=s||0,n<0&&(n=0,r=""),s+=n*this.__indent_size,this.__ensure_cache(s),r+=this.__cache[s],r},i.prototype.__ensure_cache=function(n){for(;n>=this.__cache.length;)this.__add_column()},i.prototype.__add_column=function(){var n=this.__cache.length,s=0,r="";this.__indent_size&&n>=this.__indent_size&&(s=Math.floor(n/this.__indent_size),n-=s*this.__indent_size,r=new Array(s+1).join(this.__indent_string)),n&&(r+=new Array(n+1).join(" ")),this.__cache.push(r)};function o(n,s){this.__indent_cache=new i(n,s),this.raw=!1,this._end_with_newline=n.end_with_newline,this.indent_size=n.indent_size,this.wrap_line_length=n.wrap_line_length,this.indent_empty_lines=n.indent_empty_lines,this.__lines=[],this.previous_line=null,this.current_line=null,this.next_line=new e(this),this.space_before_token=!1,this.non_breaking_space=!1,this.previous_token_wrapped=!1,this.__add_outputline()}o.prototype.__add_outputline=function(){this.previous_line=this.current_line,this.current_line=this.next_line.clone_empty(),this.__lines.push(this.current_line)},o.prototype.get_line_number=function(){return this.__lines.length},o.prototype.get_indent_string=function(n,s){return this.__indent_cache.get_indent_string(n,s)},o.prototype.get_indent_size=function(n,s){return this.__indent_cache.get_indent_size(n,s)},o.prototype.is_empty=function(){return!this.previous_line&&this.current_line.is_empty()},o.prototype.add_new_line=function(n){return this.is_empty()||!n&&this.just_added_newline()?!1:(this.raw||this.__add_outputline(),!0)},o.prototype.get_code=function(n){this.trim(!0);var s=this.current_line.pop();s&&(s[s.length-1]===`
5301
5301
  `&&(s=s.replace(/\n+$/g,"")),this.current_line.push(s)),this._end_with_newline&&this.__add_outputline();var r=this.__lines.join(`
5302
5302
  `);return n!==`
@@ -5381,7 +5381,7 @@ $1`).replace(/>(\s*)(?=<!--\s*\/)/g,"> ")}}});function Xte(t,A,e){if(!A||!e)retu
5381
5381
  transition: opacity 0.2s;
5382
5382
  margin-bottom: 10px;
5383
5383
  color: red;
5384
- `,YUt=({children:t,transform:A=pg(),elements:e})=>{const i=AA.useRef(null),{isShowingDRCErrors:o,hoveredErrorId:n}=Gl(g=>({isShowingDRCErrors:g.is_showing_drc_errors,hoveredErrorId:g.hovered_error_id}));if(!e)return Z.jsx("div",{style:{position:"relative"},ref:i,children:t});const s=e.filter(g=>g.type==="pcb_trace_error"),r=e.filter(g=>g.type==="pcb_trace_error"&&g.message?.includes("Multiple components found with name")),a=new Map;return e.forEach(g=>{g.type==="pcb_port"&&a.set(g.pcb_port_id,g)}),Z.jsxs("div",{style:{position:"relative"},ref:i,children:[t,s.map((g,I)=>{const{pcb_port_ids:c,pcb_trace_id:B}=g,C=c?.[0]?a.get(c[0]):void 0,l=c?.[1]?a.get(c[1]):void 0,Q=e?Hx(e).pcb_trace.get(B):void 0,E=g.pcb_trace_error_id||`error_${I}_${g.error_type}_${g.message?.slice(0,20)}`,h=n===E;if(C&&l){const u=ge(A,{x:C.x,y:C.y}),d=ge(A,{x:l.x,y:l.y}),f=!(isNaN(u.x)||isNaN(u.y)||isNaN(d.x)||isNaN(d.y)),w={x:(u.x+d.x)/2,y:(u.y+d.y)/2};if(isNaN(w.x)||isNaN(w.y))return null;const S=fEA(w,i);return Z.jsxs(AA.Fragment,{children:[Z.jsx(LUt,{screenPort1:u,screenPort2:d,errorCenter:w,canLineBeDrawn:f,isHighlighted:h}),Z.jsx("div",{style:{position:"absolute",left:w.x-15,top:w.y-15,width:30,height:30,zIndex:Wg.errorOverlay+5,cursor:"pointer",borderRadius:"50%"},onMouseEnter:D=>{const x=D.currentTarget.nextElementSibling;if(x){const F=x.querySelector(".error-message");F&&(F.style.opacity="1")}},onMouseLeave:D=>{if(!h){const x=D.currentTarget.nextElementSibling;if(x){const F=x.querySelector(".error-message");F&&(F.style.opacity="0")}}}}),Z.jsx("div",{style:{position:"absolute",zIndex:h?200:100,left:S.left,top:S.top,color:h?"#ff4444":"red",textAlign:"center",fontFamily:"sans-serif",fontSize:12,display:o||h?"flex":"none",flexDirection:"column",alignItems:"center",pointerEvents:"none",transform:S.transform},children:Z.jsx("div",{className:`error-message ${yEA}`,style:{opacity:h?1:0,border:`1px solid ${h?"#ff4444":"red"}`},children:g.message})})]},E)}if(Q?.route&&(o||h)){const u=Q.route.map(S=>ge(A,{x:S.x,y:S.y}));if(u.some(S=>isNaN(S.x)||isNaN(S.y)))return null;const d=Math.floor(u.length/2),f=u[d],w=fEA(f,i);return Z.jsxs(AA.Fragment,{children:[Z.jsx(HUt,{points:u,errorCenter:f,isHighlighted:h}),Z.jsx("div",{style:{position:"absolute",left:f.x-15,top:f.y-15,width:30,height:30,zIndex:Wg.errorOverlay+5,cursor:"pointer",borderRadius:"50%"},onMouseEnter:S=>{const D=S.currentTarget.nextElementSibling;if(D){const x=D.querySelector(".error-message");x&&(x.style.opacity="1")}},onMouseLeave:S=>{if(!h){const D=S.currentTarget.nextElementSibling;if(D){const x=D.querySelector(".error-message");x&&(x.style.opacity="0")}}}}),Z.jsx("div",{style:{position:"absolute",zIndex:h?Wg.errorOverlay+10:Wg.errorOverlay+1,left:w.left,top:w.top,color:h?"#ff4444":"red",textAlign:"center",fontFamily:"sans-serif",fontSize:12,display:"flex",flexDirection:"column",alignItems:"center",pointerEvents:"none",transform:w.transform},children:Z.jsx("div",{className:`error-message ${yEA}`,style:{opacity:h?1:0,border:`1px solid ${h?"#ff4444":"red"}`},children:g.message})})]},E)}return null}),r.map((g,I)=>{const c=g.component_name||g.message?.match(/name "([^"]+)"/)?.[1];if(!c)return null;const B=e?.filter(Q=>Q.type==="source_component"&&Q.name===c||Q.type==="pcb_component"&&e?.find(E=>E.type==="source_component"&&E.source_component_id===Q.source_component_id&&E.name===c))||[],C=g.pcb_trace_error_id||`error_${I}_${g.error_type}_${g.message?.slice(0,20)}`,l=n===C;return!l&&!o?null:B.map((Q,E)=>{let h={x:0,y:0};if(Q.type==="pcb_component")h=Q.center||{x:0,y:0};else if(Q.type==="source_component"){const F=e?.find(k=>k.type==="pcb_component"&&k.source_component_id===Q.source_component_id);F&&F.type==="pcb_component"&&(h=F.center||{x:0,y:0})}const u=ge(A,h);if(isNaN(u.x)||isNaN(u.y))return null;const d=Math.abs(A.a),D=Math.max(8,Math.min(30,.5*d)),x=fEA(u,i);return Z.jsxs(AA.Fragment,{children:[Z.jsx("svg",{style:{position:"absolute",left:0,top:0,pointerEvents:"none",mixBlendMode:"difference",zIndex:Wg.errorOverlay},width:"100%",height:"100%",children:l?Z.jsx("polygon",{points:`${u.x},${u.y-D*1.25} ${u.x+D},${u.y} ${u.x},${u.y+D*1.25} ${u.x-D},${u.y}`,fill:"#ff4444"}):Z.jsx("circle",{cx:u.x,cy:u.y,r:D,fill:"none",stroke:l?"#ff4444":"red",strokeWidth:l?Math.max(2,D*.15):Math.max(1,D*.1),opacity:1})}),Z.jsx("div",{style:{position:"absolute",left:u.x-(D+10),top:u.y-(D+10),width:(D+10)*2,height:(D+10)*2,zIndex:Wg.errorOverlay+5,cursor:"pointer",borderRadius:"50%"},onMouseEnter:F=>{const k=F.currentTarget.nextElementSibling;if(k){const U=k.querySelector(".error-message");U&&(U.style.opacity="1")}},onMouseLeave:F=>{if(!l){const k=F.currentTarget.nextElementSibling;if(k){const U=k.querySelector(".error-message");U&&(U.style.opacity="0")}}}}),Z.jsx("div",{style:{position:"absolute",zIndex:l?Wg.errorOverlay+20:Wg.errorOverlay+10,left:x.left,top:x.top,color:l?"#ff4444":"red",textAlign:"center",fontFamily:"sans-serif",fontSize:12,display:o||l?"flex":"none",flexDirection:"column",alignItems:"center",pointerEvents:"none",transform:x.transform},children:Z.jsx("div",{className:`error-message ${yEA}`,style:{opacity:l?1:0,border:`1px solid ${l?"#ff4444":"red"}`},children:g.message})})]},`${C}_${E}`)})})]})};function JUt(t,A){return t.size!==A.size?!1:Array.from(t).every(e=>A.has(e))}function KUt({primitiveElement:t,elements:A}){let e=t.trace_length?`${t.trace_length.toFixed(3)}`:"";const i=Hx(A).source_trace.get(t?.source_trace_id);if(i?.display_name&&(i?.max_length?e+=` / ${i.max_length}mm `:e+=" mm ",e+=`(${i.display_name})`),!e)return null;const o=t.trace_length&&i?.max_length&&t.trace_length>i.max_length;return{text:e,isOverLength:o}}function TUt(t){const{primitives:A,is_showing_multiple_traces_length:e,elements:i}=t,o=A.filter(a=>a._element.type==="pcb_trace"),n=i.filter(a=>a.type==="source_trace"),s=A.filter(a=>a._element.type!=="pcb_trace"),r=o.filter(a=>n.some(g=>a._element.type==="pcb_trace"&&a._element.source_trace_id===g.source_trace_id&&g.max_length!==void 0));if(!e)return[...s,...r];if(o.length>1){const a=o.reduce((g,I)=>{const c=g._element.trace_length;return I._element.trace_length<c?I:g},o[0]);return[...s,a]}return A}var qUt={position:"absolute",left:0,top:0,pointerEvents:"none",color:"red",fontFamily:"sans-serif",fontSize:12,textShadow:"0 0 2px black"},PUt=t=>{const{_element:A,_parent_pcb_component:e,_parent_source_component:i,_source_port:o}=t;switch(A.type){case"pcb_trace":return A.trace_length?`${A.trace_length.toFixed(3)}`:"";case"pcb_smtpad":case"pcb_plated_hole":{const n=[],s=Array.from(new Set((A.port_hints??[]).concat(o?.port_hints??[]))).filter(a=>!/^[0-9]+$/.test(a)).filter(a=>!a.includes("unnamed_")).sort((a,g)=>g.localeCompare(a)),r=i&&"name"in i&&i.name&&!i.name.includes("unnamed_")?i.name:null;return s.length>0?r?n.push(...s.map(a=>`${r}.${a}`)):n.push(...s):r&&n.push(r),n.join(", ")}default:return""}},OUt={top:"red",bottom:"aqua"},WUt=({primitive:t,mousePos:A,elements:e})=>{const[i,o]=AA.useState(!1),n=t._element;AA.useEffect(()=>{setTimeout(()=>{o(!0)},100)},[]);const[s,r,a,g]=[t.screen_x,t.screen_y,t.screen_w,t.screen_h],I=t.same_space_index??0,c=26,B=OUt[t?._element?.layer]??"red";let C=0;if(n.type==="pcb_smtpad"&&n?.shape==="rotated_rect"?C=n?.ccw_rotation??0:(n.type==="pcb_smtpad"&&(n?.shape==="pill"||n?.shape==="rotated_pill")&&"ccw_rotation"in t||n.type==="pcb_plated_hole"&&(n?.shape==="pill"||n?.shape==="oval")&&"ccw_rotation"in t)&&(C=n.ccw_rotation??0),n.type==="pcb_trace"){const E=KUt({primitiveElement:n,elements:e});if(!E)return null;const h=A.y-35;return Z.jsx("div",{style:{zIndex:Wg.elementOverlay,position:"absolute",left:A.x,top:h,color:B,pointerEvents:"none",transform:"translateX(-50%)"},children:Z.jsx("div",{style:{backgroundColor:"#f2efcc",color:E.isOverLength?"red":"black",textShadow:"none",WebkitFontSmoothing:"antialiased",MozOsxFontSmoothing:"grayscale",padding:"6px 6px",borderRadius:"6px",fontSize:"14px",minWidth:"45px",textAlign:"center",whiteSpace:"nowrap"},children:E.text})})}const l=PUt(t);return l.trim().length===0?null:Z.jsx("div",{style:{zIndex:Wg.elementOverlay,position:"absolute",left:s-a/2-8,top:r-g/2-8,width:a+16,height:g+16,color:B,transform:`rotate(${-C}deg)`,transformOrigin:"center center"},children:Z.jsx("div",{style:{width:i?`calc(100% + ${c*2*I}px)`:"100%",height:i?`calc(100% + ${c*2*I}px)`:"100%",marginLeft:i?`${-c*I}px`:0,marginTop:i?`${-c*I}px`:0,border:`1px solid ${B}`,opacity:i||I===0?1:0,transition:"width 0.2s, height 0.2s, margin-left 0.2s, margin-top 0.2s, opacity 0.2s"},children:Z.jsx("div",{style:{position:"absolute",bottom:g+20+c*I,marginRight:i?`${-c*I}px`:0,marginBottom:i?0:-c*I,transition:"margin-right 0.2s, margin-bottom 0.2s",backgroundColor:"#f2efcc",color:"black",textShadow:"none",WebkitFontSmoothing:"antialiased",MozOsxFontSmoothing:"grayscale",padding:"6px 6px",borderRadius:"6px",fontSize:"14px",transform:`rotate(${C}deg)`,minWidth:"45px",textAlign:"center"},children:l})})})},ZUt=({highlightedPrimitives:t,mousePos:A,elements:e})=>{const[i,o]=Gl(r=>[r.is_moving_component,r.is_showing_multiple_traces_length]),n=t.some(r=>r._element.type==="pcb_smtpad")&&t.some(r=>r._element.type==="pcb_trace");let s=t;return n&&(s=s.filter(r=>r._element.type==="pcb_smtpad")),s=TUt({primitives:s,is_showing_multiple_traces_length:o,elements:e}),Z.jsx("div",{style:qUt,children:!i&&s.map((r,a)=>Z.jsx(WUt,{primitive:r,mousePos:A,elements:e},a))})},zi={MIN_LINE_LENGTH_FOR_LABEL:40,LABEL_OFFSET_ABOVE:2,LABEL_OFFSET_BELOW:-18,LABEL_OFFSET_RIGHT:8,LABEL_OFFSET_LEFT:-120,Y_LABEL_MIN_WIDTH:110,LINE_STROKE_WIDTH:1.5,LINE_DASH_PATTERN:"4,4",COMPONENT_MARKER_RADIUS:3,LABEL_FONT_SIZE:11,ANCHOR_MARKER_SIZE:6,ANCHOR_MARKER_STROKE_WIDTH:1.5},fc={OFFSET_LINE:"white",COMPONENT_MARKER_FILL:"#66ccff",COMPONENT_MARKER_STROKE:"white",LABEL_TEXT:"white"},DM=t=>t?.type==="pcb_component",die=t=>t?.type==="pcb_group",VUt=t=>t?.type==="pcb_panel",mEA=t=>t?.type==="pcb_board",jUt=({elements:t,highlightedPrimitives:A,transform:e,containerWidth:i,containerHeight:o})=>{const n=t.filter(u=>mEA(u)),s=t.filter(u=>DM(u)),r=t.filter(u=>die(u)),a=A.map(u=>DM(u._parent_pcb_component)?u._parent_pcb_component.pcb_component_id:DM(u._element)?u._element.pcb_component_id:null).filter(u=>!!u),g=new Set;if(a.forEach(u=>{const d=s.find(f=>f.pcb_component_id===u);d?.pcb_group_id&&g.add(d.pcb_group_id)}),!Gl(u=>u.is_showing_group_anchor_offsets)&&a.length===0)return null;const c=s.map(u=>{const d=u.positioned_relative_to_pcb_board_id;if(!d)return null;const f=n.find(w=>w.pcb_board_id===d);return f?{component:u,board:f,type:"component"}:null}).filter(u=>!!u),B=r.map(u=>{const d=u.positioned_relative_to_pcb_board_id;if(!d||!u.center)return null;const f=n.find(w=>w.pcb_board_id===d);return f?{group:u,board:f,type:"group"}:null}).filter(u=>!!u),C=[...c,...B];if(C.length===0)return null;const l=a.length===0,Q={color:fc.LABEL_TEXT,mixBlendMode:"difference",pointerEvents:"none",fontSize:zi.LABEL_FONT_SIZE,fontFamily:"monospace",fontWeight:"bold"},E=C.filter(u=>u.type==="component"?l||a.includes(u.component.pcb_component_id):l||g.has(u.group.pcb_group_id));if(E.length===0)return null;const h=new Map;return Z.jsx("div",{style:{position:"absolute",left:0,top:0,width:i,height:o,overflow:"hidden",pointerEvents:"none",zIndex:Wg.dimensionOverlay},children:Z.jsxs("svg",{style:{position:"absolute",left:0,top:0,pointerEvents:"none"},width:i,height:o,children:[E.map(u=>{const d=u.board.center,f=u.board.pcb_board_id;let w,S,D,x;if(u.type==="component")w=u.component.center,S=u.component.pcb_component_id,D=u.component.display_offset_x,x=u.component.display_offset_y;else{if(!u.group.center)return null;w={x:u.group.anchor_position?.x??u.group.center.x,y:u.group.anchor_position?.y??u.group.center.y},S=u.group.pcb_group_id,D=u.group.display_offset_x,x=u.group.display_offset_y}if(!h.has(f)){const gA=ge(e,d);h.set(f,gA)}const F=h.get(f),k=ge(e,w),U=w.x-d.x,N=w.y-d.y,Y=Math.abs(k.x-F.x),q=Math.abs(k.y-F.y),K=k.y<F.y,O=k.x>F.x,W=K?zi.LABEL_OFFSET_ABOVE:zi.LABEL_OFFSET_BELOW,$=O?zi.LABEL_OFFSET_RIGHT:zi.LABEL_OFFSET_LEFT,oA=Y>zi.MIN_LINE_LENGTH_FOR_LABEL,IA=q>zi.MIN_LINE_LENGTH_FOR_LABEL,tA=`${D??U.toFixed(2)}mm`,sA=`${x??N.toFixed(2)}mm`;return Z.jsxs("g",{children:[Z.jsx("line",{x1:F.x,y1:F.y,x2:k.x,y2:F.y,stroke:fc.OFFSET_LINE,strokeWidth:zi.LINE_STROKE_WIDTH,strokeDasharray:zi.LINE_DASH_PATTERN}),Z.jsx("line",{x1:k.x,y1:F.y,x2:k.x,y2:k.y,stroke:fc.OFFSET_LINE,strokeWidth:zi.LINE_STROKE_WIDTH,strokeDasharray:zi.LINE_DASH_PATTERN}),u.type==="component"?Z.jsx("circle",{cx:k.x,cy:k.y,r:zi.COMPONENT_MARKER_RADIUS,fill:fc.COMPONENT_MARKER_FILL,stroke:fc.COMPONENT_MARKER_STROKE,strokeWidth:1}):Z.jsxs(Z.Fragment,{children:[Z.jsx("line",{x1:k.x-zi.ANCHOR_MARKER_SIZE,y1:k.y,x2:k.x+zi.ANCHOR_MARKER_SIZE,y2:k.y,stroke:fc.OFFSET_LINE,strokeWidth:zi.ANCHOR_MARKER_STROKE_WIDTH}),Z.jsx("line",{x1:k.x,y1:k.y-zi.ANCHOR_MARKER_SIZE,x2:k.x,y2:k.y+zi.ANCHOR_MARKER_SIZE,stroke:fc.OFFSET_LINE,strokeWidth:zi.ANCHOR_MARKER_STROKE_WIDTH})]}),oA&&Z.jsx("foreignObject",{x:Math.min(F.x,k.x),y:F.y+W,width:Math.abs(k.x-F.x),height:20,style:{overflow:"visible"},children:Z.jsx("div",{style:{...Q,textAlign:"center"},children:tA})}),IA&&Z.jsx("foreignObject",{x:k.x+$,y:Math.min(F.y,k.y),width:zi.Y_LABEL_MIN_WIDTH,height:Math.abs(k.y-F.y),style:{overflow:"visible"},children:Z.jsx("div",{style:{...Q,display:"flex",alignItems:"center",justifyContent:O?"flex-start":"flex-end",whiteSpace:"nowrap",padding:"0 4px",height:"100%"},children:sA})})]},`${u.board.pcb_board_id}-${S}-${u.type}`)}),Array.from(h.entries()).map(([u,d])=>Z.jsxs("g",{children:[Z.jsx("line",{x1:d.x-zi.ANCHOR_MARKER_SIZE,y1:d.y,x2:d.x+zi.ANCHOR_MARKER_SIZE,y2:d.y,stroke:fc.OFFSET_LINE,strokeWidth:zi.ANCHOR_MARKER_STROKE_WIDTH}),Z.jsx("line",{x1:d.x,y1:d.y-zi.ANCHOR_MARKER_SIZE,x2:d.x,y2:d.y+zi.ANCHOR_MARKER_SIZE,stroke:fc.OFFSET_LINE,strokeWidth:zi.ANCHOR_MARKER_STROKE_WIDTH})]},`anchor-${u}`))]})})},zUt=({elements:t,highlightedPrimitives:A,transform:e,containerWidth:i,containerHeight:o})=>{const n=t.filter(u=>die(u)),s=t.filter(u=>DM(u)),r=A.map(u=>DM(u._parent_pcb_component)?u._parent_pcb_component.pcb_component_id:DM(u._element)?u._element.pcb_component_id:null).filter(u=>!!u),a=(u,d)=>{if(d.has(u))return;d.add(u);const f=n.find(w=>w.pcb_group_id===u);f?.position_mode==="relative_to_group_anchor"&&f.positioned_relative_to_pcb_group_id&&a(f.positioned_relative_to_pcb_group_id,d)},g=new Set;if(r.forEach(u=>{const d=s.find(f=>f.pcb_component_id===u);d&&(d.position_mode==="relative_to_group_anchor"&&d.positioned_relative_to_pcb_group_id&&a(d.positioned_relative_to_pcb_group_id,g),d.pcb_group_id&&a(d.pcb_group_id,g))}),!Gl(u=>u.is_showing_group_anchor_offsets)&&r.length===0)return null;const c=s.map(u=>{if(u.position_mode==="relative_to_group_anchor"&&u.positioned_relative_to_pcb_group_id){const d=n.find(f=>f.pcb_group_id===u.positioned_relative_to_pcb_group_id);return d&&d.anchor_position?{component:u,parentGroup:d,type:"component"}:null}if(u.pcb_group_id){const d=n.find(f=>f.pcb_group_id===u.pcb_group_id);return d&&d.anchor_position?{component:u,parentGroup:d,type:"component"}:null}return null}).filter(u=>!!u),B=n.map(u=>{if(u.position_mode==="relative_to_group_anchor"&&u.positioned_relative_to_pcb_group_id){const d=n.find(f=>f.pcb_group_id===u.positioned_relative_to_pcb_group_id);if(d&&d.anchor_position&&u.center)return{group:u,parentGroup:d,type:"group"}}return null}).filter(u=>!!u),C=[...c,...B];if(C.length===0)return null;const l=r.length===0,Q={color:fc.LABEL_TEXT,mixBlendMode:"difference",pointerEvents:"none",fontSize:zi.LABEL_FONT_SIZE,fontFamily:"monospace",fontWeight:"bold"},E=C.filter(u=>u.type==="component"?l||r.includes(u.component.pcb_component_id):l||g.has(u.group.pcb_group_id)||g.has(u.parentGroup.pcb_group_id));if(E.length===0)return null;const h=new Map;return E.forEach(u=>{if(!u.parentGroup.anchor_position)return;const d=ge(e,u.parentGroup.anchor_position);h.set(u.parentGroup.pcb_group_id,d)}),Z.jsx("div",{style:{position:"absolute",left:0,top:0,width:i,height:o,overflow:"hidden",pointerEvents:"none",zIndex:Wg.dimensionOverlay},children:Z.jsxs("svg",{style:{position:"absolute",left:0,top:0,pointerEvents:"none"},width:i,height:o,children:[E.map(u=>{const d=u.parentGroup.anchor_position;if(!d)return null;const f={x:d.x,y:d.y};let w=null,S,D,x;if(u.type==="component"){const gA=u.component.center;if(!gA)return null;w={x:gA.x,y:gA.y},S=u.component.pcb_component_id,D=u.component.display_offset_x,x=u.component.display_offset_y}else{if(!u.group.center)return null;w={x:u.group.center.x,y:u.group.center.y},S=u.group.pcb_group_id,D=u.group.display_offset_x,x=u.group.display_offset_y}const F=w.x-f.x,k=w.y-f.y,U=ge(e,f),N=ge(e,w),Y=Math.abs(N.x-U.x),q=Math.abs(N.y-U.y),K=N.y<U.y,O=N.x>U.x,W=K?zi.LABEL_OFFSET_ABOVE:zi.LABEL_OFFSET_BELOW,$=O?zi.LABEL_OFFSET_RIGHT:zi.LABEL_OFFSET_LEFT,oA=Y>zi.MIN_LINE_LENGTH_FOR_LABEL,IA=q>zi.MIN_LINE_LENGTH_FOR_LABEL,tA=`Δx: ${D||F.toFixed(2)}mm`,sA=`Δy: ${x||k.toFixed(2)}mm`;return Z.jsxs("g",{children:[Z.jsx("line",{x1:U.x,y1:U.y,x2:N.x,y2:U.y,stroke:fc.OFFSET_LINE,strokeWidth:zi.LINE_STROKE_WIDTH,strokeDasharray:zi.LINE_DASH_PATTERN}),Z.jsx("line",{x1:N.x,y1:U.y,x2:N.x,y2:N.y,stroke:fc.OFFSET_LINE,strokeWidth:zi.LINE_STROKE_WIDTH,strokeDasharray:zi.LINE_DASH_PATTERN}),u.type==="component"?Z.jsx("circle",{cx:N.x,cy:N.y,r:zi.COMPONENT_MARKER_RADIUS,fill:fc.COMPONENT_MARKER_FILL,stroke:fc.COMPONENT_MARKER_STROKE,strokeWidth:1}):Z.jsxs(Z.Fragment,{children:[Z.jsx("line",{x1:N.x-zi.ANCHOR_MARKER_SIZE,y1:N.y,x2:N.x+zi.ANCHOR_MARKER_SIZE,y2:N.y,stroke:fc.OFFSET_LINE,strokeWidth:zi.ANCHOR_MARKER_STROKE_WIDTH}),Z.jsx("line",{x1:N.x,y1:N.y-zi.ANCHOR_MARKER_SIZE,x2:N.x,y2:N.y+zi.ANCHOR_MARKER_SIZE,stroke:fc.OFFSET_LINE,strokeWidth:zi.ANCHOR_MARKER_STROKE_WIDTH})]}),oA&&Z.jsx("foreignObject",{x:Math.min(U.x,N.x),y:U.y+W,width:Math.abs(N.x-U.x),height:20,style:{overflow:"visible"},children:Z.jsx("div",{style:{...Q,textAlign:"center"},children:tA})}),IA&&Z.jsx("foreignObject",{x:N.x+$,y:Math.min(U.y,N.y),width:20,height:Math.abs(N.y-U.y),style:{overflow:"visible"},children:Z.jsx("div",{style:{...Q,display:"flex",alignItems:"center",height:"100%"},children:sA})})]},`${u.parentGroup.pcb_group_id}-${S}-${u.type}`)}),Array.from(h.entries()).map(([u,d])=>Z.jsxs("g",{children:[Z.jsx("line",{x1:d.x-zi.ANCHOR_MARKER_SIZE,y1:d.y,x2:d.x+zi.ANCHOR_MARKER_SIZE,y2:d.y,stroke:fc.OFFSET_LINE,strokeWidth:zi.ANCHOR_MARKER_STROKE_WIDTH}),Z.jsx("line",{x1:d.x,y1:d.y-zi.ANCHOR_MARKER_SIZE,x2:d.x,y2:d.y+zi.ANCHOR_MARKER_SIZE,stroke:fc.OFFSET_LINE,strokeWidth:zi.ANCHOR_MARKER_STROKE_WIDTH})]},`anchor-${u}`))]})})},XUt=({elements:t,highlightedPrimitives:A,transform:e,containerWidth:i,containerHeight:o})=>{const n=t.filter(l=>VUt(l)),s=t.filter(l=>mEA(l)),r=A.map(l=>mEA(l._element)?l._element.pcb_board_id:null).filter(l=>!!l);if(!Gl(l=>l.is_showing_group_anchor_offsets)&&r.length===0)return null;const g=s.map(l=>{const Q=l.pcb_panel_id,E=l.position_mode;if(!Q||E!=="relative_to_panel_anchor")return null;const h=n.find(u=>u.pcb_panel_id===Q);return h?{board:l,panel:h,type:"board"}:null}).filter(l=>!!l);if(g.length===0)return null;const I=r.length===0,c={color:fc.LABEL_TEXT,mixBlendMode:"difference",pointerEvents:"none",fontSize:zi.LABEL_FONT_SIZE,fontFamily:"monospace",fontWeight:"bold"},B=g.filter(l=>I||r.includes(l.board.pcb_board_id));if(B.length===0)return null;const C=new Map;return Z.jsx("div",{style:{position:"absolute",left:0,top:0,width:i,height:o,overflow:"hidden",pointerEvents:"none",zIndex:Wg.dimensionOverlay},children:Z.jsxs("svg",{style:{position:"absolute",left:0,top:0,pointerEvents:"none"},width:i,height:o,children:[B.map(l=>{const Q=l.panel.center,E=l.panel.pcb_panel_id;let h,u,d,f;if(h=l.board.center,u=l.board.pcb_board_id,d=l.board.display_offset_x,f=l.board.display_offset_y,!C.has(E)){const oA=ge(e,Q);C.set(E,oA)}const w=C.get(E),S=ge(e,h),D=h.x-Q.x,x=h.y-Q.y,F=Math.abs(S.x-w.x),k=Math.abs(S.y-w.y),U=S.y<w.y,N=S.x>w.x,Y=U?zi.LABEL_OFFSET_ABOVE:zi.LABEL_OFFSET_BELOW,q=N?zi.LABEL_OFFSET_RIGHT:zi.LABEL_OFFSET_LEFT,K=F>zi.MIN_LINE_LENGTH_FOR_LABEL,O=k>zi.MIN_LINE_LENGTH_FOR_LABEL,W=`${d??D.toFixed(2)}mm`,$=`${f??x.toFixed(2)}mm`;return Z.jsxs("g",{children:[Z.jsx("line",{x1:w.x,y1:w.y,x2:S.x,y2:w.y,stroke:fc.OFFSET_LINE,strokeWidth:zi.LINE_STROKE_WIDTH,strokeDasharray:zi.LINE_DASH_PATTERN}),Z.jsx("line",{x1:S.x,y1:w.y,x2:S.x,y2:S.y,stroke:fc.OFFSET_LINE,strokeWidth:zi.LINE_STROKE_WIDTH,strokeDasharray:zi.LINE_DASH_PATTERN}),Z.jsx("circle",{cx:S.x,cy:S.y,r:zi.COMPONENT_MARKER_RADIUS,fill:fc.COMPONENT_MARKER_FILL,stroke:fc.COMPONENT_MARKER_STROKE,strokeWidth:1}),K&&Z.jsx("foreignObject",{x:Math.min(w.x,S.x),y:w.y+Y,width:Math.abs(S.x-w.x),height:20,style:{overflow:"visible"},children:Z.jsx("div",{style:{...c,textAlign:"center"},children:W})}),O&&Z.jsx("foreignObject",{x:S.x+q,y:Math.min(w.y,S.y),width:zi.Y_LABEL_MIN_WIDTH,height:Math.abs(S.y-w.y),style:{overflow:"visible"},children:Z.jsx("div",{style:{...c,display:"flex",alignItems:"center",justifyContent:N?"flex-start":"flex-end",whiteSpace:"nowrap",padding:"0 4px",height:"100%"},children:$})})]},`${l.panel.pcb_panel_id}-${u}-${l.type}`)}),Array.from(C.entries()).map(([l,Q])=>Z.jsxs("g",{children:[Z.jsx("line",{x1:Q.x-zi.ANCHOR_MARKER_SIZE,y1:Q.y,x2:Q.x+zi.ANCHOR_MARKER_SIZE,y2:Q.y,stroke:fc.OFFSET_LINE,strokeWidth:zi.ANCHOR_MARKER_STROKE_WIDTH}),Z.jsx("line",{x1:Q.x,y1:Q.y-zi.ANCHOR_MARKER_SIZE,x2:Q.x,y2:Q.y+zi.ANCHOR_MARKER_SIZE,stroke:fc.OFFSET_LINE,strokeWidth:zi.ANCHOR_MARKER_STROKE_WIDTH})]},`anchor-${l}`))]})})},IW=t=>{if(t.length===0)return null;let A=t[0].x,e=t[0].y,i=t[0].x,o=t[0].y;for(const n of t)n.x<A&&(A=n.x),n.y<e&&(e=n.y),n.x>i&&(i=n.x),n.y>o&&(o=n.y);return{center:{x:(A+i)/2,y:(e+o)/2},width:i-A,height:o-e}},pie=(t,A)=>{if(A.length<3)return!1;let e=!1;for(let i=0,o=A.length-1;i<A.length;o=i++){const n=A[i].x,s=A[i].y,r=A[o].x,a=A[o].y;s>t.y!=a>t.y&&t.x<(r-n)*(t.y-s)/(a-s||Number.EPSILON)+n&&(e=!e)}return e},$Ut=(t,A,e)=>{const i=[];for(const o of t){if(!o._element)continue;if("x1"in o&&o._element?.type==="pcb_trace"){const r=Bh({x:A.x,y:A.y},{x:o.x1,y:o.y1},{x:o.x2,y:o.y2}),a=o.width||.5,g=Math.max(a*25,2)/e.a;r<g&&i.push(o);continue}if(o.pcb_drawing_type==="polygon"){const r=o.points.map(g=>({x:ut.parse(g.x),y:ut.parse(g.y)})),a=IW(r);if(!a||A.x<a.center.x-a.width/2||A.x>a.center.x+a.width/2||A.y<a.center.y-a.height/2||A.y>a.center.y+a.height/2)continue;pie(A,r)&&i.push(o);continue}if(o.pcb_drawing_type==="polygon_with_arcs"){const r=o.brep_shape.outer_ring.vertices.map(g=>({x:ut.parse(g.x),y:ut.parse(g.y)})),a=IW(r);if(!a||A.x<a.center.x-a.width/2||A.x>a.center.x+a.width/2||A.y<a.center.y-a.height/2||A.y>a.center.y+a.height/2)continue;pie(A,r)&&i.push(o);continue}if(!("x"in o&&"y"in o))continue;let n=0,s=0;if("w"in o&&"h"in o)n=o.w,s=o.h;else if("r"in o)n=o.r*2,s=o.r*2;else if("rX"in o&&"rY"in o)n=o.rX*2,s=o.rY*2;else continue;Math.abs(o.x-A.x)<n/2&&Math.abs(o.y-A.y)<s/2&&i.push(o)}return i},ALt=({elements:t,children:A,transform:e,primitives:i,onMouseHoverOverPrimitives:o})=>{const[n,s]=AA.useState([]),[r,a]=AA.useState({x:0,y:0}),[g,{width:I,height:c}]=sH(),B=AA.useMemo(()=>{const l=[];for(const Q of n){if(Q._element?.type==="pcb_via"||Q._element?.type==="pcb_component"||Q?.layer==="drill")continue;let E=null,h=0,u=0;if(Q.pcb_drawing_type==="polygon"){const S=IW(Q.points);if(!S)continue;E=S.center,h=S.width,u=S.height}else if(Q.pcb_drawing_type==="polygon_with_arcs"){const S=Q.brep_shape.outer_ring.vertices.map(x=>({x:x.x,y:x.y})),D=IW(S);if(!D)continue;E=D.center,h=D.width,u=D.height}else"x"in Q&&"y"in Q&&(E={x:Q.x,y:Q.y},h="w"in Q?Q.w:"r"in Q?Q.r*2:"rX"in Q&&"rY"in Q?Q.rX*2:0,u="h"in Q?Q.h:"r"in Q?Q.r*2:"rX"in Q&&"rY"in Q?Q.rY*2:0);if(!E)continue;const d=ge(e,E),f={w:h*e.a,h:u*e.a},w=l.filter(S=>d.x===S.screen_x&&d.y===S.screen_y&&f.w===S.screen_w&&f.h===S.screen_h).length;l.push({...Q,x:E.x,y:E.y,w:h,h:u,screen_x:d.x,screen_y:d.y,screen_w:f.w,screen_h:f.h,same_space_index:w})}return l},[n,e]),C=(l,Q,E,h)=>{a({x:l,y:Q});const u=ge(Ay(E),{x:l,y:Q}),d=$Ut(h,u,E);JUt(new Set(d.map(f=>f._pcb_drawing_object_id)),new Set(n.map(f=>f._pcb_drawing_object_id)))||(s(d),o(d))};return Z.jsxs("div",{ref:g,style:{position:"relative",width:"100%",height:"100%"},onMouseMove:l=>{if(e){const Q=l.currentTarget.getBoundingClientRect(),E=l.clientX-Q.left,h=l.clientY-Q.top;C(E,h,e,i)}},onTouchStart:l=>{if(e){const Q=l.touches[0],E=l.currentTarget.getBoundingClientRect(),h=Q.clientX-E.left,u=Q.clientY-E.top;C(h,u,e,i)}},children:[A,Z.jsx(ZUt,{elements:t,mousePos:r,highlightedPrimitives:B}),e&&Z.jsxs(Z.Fragment,{children:[Z.jsx(jUt,{elements:t,highlightedPrimitives:B,transform:e,containerWidth:I,containerHeight:c}),Z.jsx(zUt,{elements:t,highlightedPrimitives:B,transform:e,containerWidth:I,containerHeight:c}),Z.jsx(XUt,{elements:t,highlightedPrimitives:B,transform:e,containerWidth:I,containerHeight:c})]})]})},fie=["rgb(255, 100, 100)","rgb(100, 255, 100)","rgb(100, 100, 255)","rgb(255, 255, 100)","rgb(255, 100, 255)","rgb(100, 255, 255)","rgb(255, 150, 100)","rgb(150, 100, 255)","rgb(100, 255, 150)","rgb(255, 100, 150)"],eLt=({children:t,transform:A=pg(),elements:e=[],hoveredComponentIds:i=[]})=>{const[o,{width:n,height:s}]=sH(),r=AA.useRef(null),{is_showing_pcb_groups:a,pcb_group_view_mode:g,is_showing_group_anchor_offsets:I}=Gl(c=>({is_showing_pcb_groups:c.is_showing_pcb_groups,pcb_group_view_mode:c.pcb_group_view_mode,is_showing_group_anchor_offsets:c.is_showing_group_anchor_offsets}));return AA.useEffect(()=>{const c=r.current;if(!c||!n||!s)return;c.width=n,c.height=s;const B=c.getContext("2d");if(!B||(B.clearRect(0,0,n,s),!a))return;const C=e.filter(S=>S.type==="pcb_group"),l=e.filter(S=>S.type==="pcb_component"),Q=e.filter(S=>S.type==="source_group"),E=new Map(Q.map(S=>[S.source_group_id,S])),h=C.filter(S=>{if(g==="all")return!0;if(!S.source_group_id)return!1;const D=E.get(S.source_group_id);return D?D.was_automatically_named!==!0:!1}),u=new Map;Q.forEach(S=>{const D=S;if(D.parent_source_group_id){const x=u.get(D.parent_source_group_id)||[];x.push(S.source_group_id),u.set(D.parent_source_group_id,x)}});const d=S=>{const D=[],x=u.get(S)||[];for(const F of x)D.push(F),D.push(...d(F));return D},f=S=>{const D=Q.find(x=>x.source_group_id===S);return D?.parent_source_group_id?1+f(D.parent_source_group_id):0},w=new Set;if(i.length>0)for(const S of l){if(!i.includes(S.pcb_component_id))continue;const D=S.positioned_relative_to_pcb_group_id??S.pcb_group_id;D&&w.add(D)}h.forEach((S,D)=>{let x=l.filter(JA=>JA.pcb_group_id===S.pcb_group_id);if(S.source_group_id){const JA=d(S.source_group_id),jA=C.filter(FA=>FA.source_group_id&&JA.includes(FA.source_group_id));for(const FA of jA){const SA=l.filter(LA=>LA.pcb_group_id===FA.pcb_group_id);x=[...x,...SA]}}let F,k,U,N,Y=!1;if(S.center&&S.width&&S.height){Y=!0;const JA=S.width/2,jA=S.height/2;F=S.center.x-JA,U=S.center.x+JA,k=S.center.y-jA,N=S.center.y+jA}else if(x.length===0||(F=1/0,k=1/0,U=-1/0,N=-1/0,x.forEach(JA=>{if(JA.center&&typeof JA.width=="number"&&typeof JA.height=="number"){const jA=JA.center.x-JA.width/2,FA=JA.center.x+JA.width/2,SA=JA.center.y+JA.height/2,LA=JA.center.y-JA.height/2;F=Math.min(F,jA),U=Math.max(U,FA),k=Math.min(k,LA),N=Math.max(N,SA)}}),F===1/0||U===-1/0))return;const q=S.source_group_id?f(S.source_group_id):0,K=S.source_group_id?d(S.source_group_id).length>0:!1;if(!Y){const FA=1+(K?.5:0);F-=FA,U+=FA,k-=FA,N+=FA}const O=ge(A,{x:F,y:N}),W=ge(A,{x:U,y:N}),$=ge(A,{x:F,y:k}),oA=ge(A,{x:U,y:k}),IA=fie[D%fie.length];B.strokeStyle=IA,B.lineWidth=2;const tA=Math.max(4,Math.min(12,8*Math.abs(A.a))),sA=Math.max(2,Math.min(6,4*Math.abs(A.a))),pA=tA*(K?1.3:1),xA=sA;B.setLineDash([pA,xA]),B.beginPath(),B.moveTo(O.x,O.y),B.lineTo(W.x,W.y),B.lineTo(oA.x,oA.y),B.lineTo($.x,$.y),B.closePath(),B.stroke();const _A=Math.max(8,Math.min(12,10*Math.abs(A.a))),MA=q==0||q==1?0:q*.11,PA=_A*(1-MA),BA=4,yA=S.name||`Group ${D+1}`;B.font=`${PA}px sans-serif`,B.setLineDash([]);const qA=B.measureText(yA).width+BA*2,ee=PA+BA*2,Be=O.x-5,mA=O.y-5,WA=3;if(B.fillStyle="rgba(0, 0, 0, 0.8)",B.beginPath(),B.roundRect(Be,mA-ee,qA,ee,WA),B.fill(),B.fillStyle=IA,B.textAlign="left",B.textBaseline="middle",B.fillText(yA,Be+BA,mA-ee/2),I&&w.has(S.pcb_group_id)&&!!S.anchor_position&&S.anchor_position){const JA=Array.isArray(S.anchor_position)?{x:S.anchor_position[0]??0,y:S.anchor_position[1]??0}:{x:S.anchor_position.x,y:S.anchor_position.y},jA=ge(A,JA);B.strokeStyle="white",B.lineWidth=1.5,B.setLineDash([]);const FA=Math.max(4,Math.min(8,6*Math.abs(A.a)));B.beginPath(),B.moveTo(jA.x-FA,jA.y),B.lineTo(jA.x+FA,jA.y),B.stroke(),B.beginPath(),B.moveTo(jA.x,jA.y-FA),B.lineTo(jA.x,jA.y+FA),B.stroke()}})},[e,A,n,s,a,g,I,i]),Z.jsxs("div",{ref:o,style:{position:"relative",width:"100%",height:"100%"},children:[t,Z.jsx("canvas",{ref:r,style:{position:"absolute",top:0,left:0,pointerEvents:"none",zIndex:Wg.pcbGroupOverlay,display:a?"block":"none"}})]})},tLt=({transform:t,soup:A,children:e})=>{const i=Gl(r=>r.is_showing_rats_nest),{netMap:o,idToNetMap:n}=AA.useMemo(()=>nie(A||[]),[A]),s=AA.useMemo(()=>{if(!A||!i)return[];const r=B=>{const C=Hx(A)[B.replace(/_\d+$/,"")].get(B);return C&&"x"in C&&"y"in C?{x:C.x,y:C.y}:null},a=(B,C)=>{const l=o[C]||[];let Q=null,E=1/0;return l.forEach(h=>{const u=r(h);if(u){const d=Math.sqrt((B.x-u.x)**2+(B.y-u.y)**2);d<E&&d>0&&(E=d,Q=u)}}),Q},g=Hx(A).pcb_port.list(),I=Hx(A).source_trace.list(),c=[];return g.forEach((B,C)=>{const l=n[B.pcb_port_id];let Q=!1;for(const u of I)u.connected_source_port_ids.includes(B.source_port_id)&&u.connected_source_net_ids.length>0&&(Q=!0);if(!l)return;const E={x:B.x,y:B.y},h=a(E,l);h&&c.push({key:`${B.pcb_port_id}-${C}`,startPoint:E,endPoint:h,isInNet:Q})}),c},[A,o,n,i]);return!A||!i?e:(t||(t=pg()),Z.jsxs("div",{style:{position:"relative"},children:[e,Z.jsx("svg",{style:{position:"absolute",left:0,top:0,width:"100%",height:"100%",pointerEvents:"none",opacity:.5,zIndex:Wg.ratsNestOverlay},children:s.map(({key:r,startPoint:a,endPoint:g,isInNet:I})=>{const c=ge(t,a),B=ge(t,g);return Z.jsx("line",{x1:c.x,y1:c.y,x2:B.x,y2:B.y,stroke:"white",strokeWidth:"1",strokeDasharray:I?"6,6":void 0},r)})})]}))},iLt={version:"1.11.290"},Yx=(t,A)=>{const e=Gl(i=>i.is_mouse_over_container);AA.useEffect(()=>{if(!t||typeof A!="function")return;const i=o=>{const n=t.split("+"),s=n.includes("ctrl"),r=n.includes("shift"),a=n.includes("alt"),g=n.includes("meta"),I=n[n.length-1];e&&(!s||o.ctrlKey)&&(!r||o.shiftKey)&&(!a||o.altKey)&&(!g||o.metaKey)&&o.key.toLowerCase()===I.toLowerCase()&&(o.preventDefault(),A())};return window.addEventListener("keydown",i),()=>{window.removeEventListener("keydown",i)}},[t,A])},oLt=()=>{const[t,A]=AA.useState(!1);return AA.useEffect(()=>{const e=()=>{A(window.innerWidth<=768)};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[]),t},nLt=({name:t,selected:A,onClick:e})=>Z.jsxs("div",{className:wM`
5384
+ `,YUt=({children:t,transform:A=pg(),elements:e})=>{const i=AA.useRef(null),{isShowingDRCErrors:o,hoveredErrorId:n}=Gl(g=>({isShowingDRCErrors:g.is_showing_drc_errors,hoveredErrorId:g.hovered_error_id}));if(!e)return Z.jsx("div",{style:{position:"relative"},ref:i,children:t});const s=e.filter(g=>g.type==="pcb_trace_error"),r=e.filter(g=>g.type==="pcb_trace_error"&&g.message?.includes("Multiple components found with name")),a=new Map;return e.forEach(g=>{g.type==="pcb_port"&&a.set(g.pcb_port_id,g)}),Z.jsxs("div",{style:{position:"relative"},ref:i,children:[t,s.map((g,I)=>{const{pcb_port_ids:c,pcb_trace_id:B}=g,C=c?.[0]?a.get(c[0]):void 0,l=c?.[1]?a.get(c[1]):void 0,Q=e?Hx(e).pcb_trace.get(B):void 0,E=g.pcb_trace_error_id||`error_${I}_${g.error_type}_${g.message?.slice(0,20)}`,h=n===E;if(C&&l){const u=ge(A,{x:C.x,y:C.y}),d=ge(A,{x:l.x,y:l.y}),f=!(isNaN(u.x)||isNaN(u.y)||isNaN(d.x)||isNaN(d.y)),w={x:(u.x+d.x)/2,y:(u.y+d.y)/2};if(isNaN(w.x)||isNaN(w.y))return null;const S=fEA(w,i);return Z.jsxs(AA.Fragment,{children:[Z.jsx(LUt,{screenPort1:u,screenPort2:d,errorCenter:w,canLineBeDrawn:f,isHighlighted:h}),Z.jsx("div",{style:{position:"absolute",left:w.x-15,top:w.y-15,width:30,height:30,zIndex:Wg.errorOverlay+5,cursor:"pointer",borderRadius:"50%"},onMouseEnter:D=>{const x=D.currentTarget.nextElementSibling;if(x){const F=x.querySelector(".error-message");F&&(F.style.opacity="1")}},onMouseLeave:D=>{if(!h){const x=D.currentTarget.nextElementSibling;if(x){const F=x.querySelector(".error-message");F&&(F.style.opacity="0")}}}}),Z.jsx("div",{style:{position:"absolute",zIndex:h?200:100,left:S.left,top:S.top,color:h?"#ff4444":"red",textAlign:"center",fontFamily:"sans-serif",fontSize:12,display:o||h?"flex":"none",flexDirection:"column",alignItems:"center",pointerEvents:"none",transform:S.transform},children:Z.jsx("div",{className:`error-message ${yEA}`,style:{opacity:h?1:0,border:`1px solid ${h?"#ff4444":"red"}`},children:g.message})})]},E)}if(Q?.route&&(o||h)){const u=Q.route.map(S=>ge(A,{x:S.x,y:S.y}));if(u.some(S=>isNaN(S.x)||isNaN(S.y)))return null;const d=Math.floor(u.length/2),f=u[d],w=fEA(f,i);return Z.jsxs(AA.Fragment,{children:[Z.jsx(HUt,{points:u,errorCenter:f,isHighlighted:h}),Z.jsx("div",{style:{position:"absolute",left:f.x-15,top:f.y-15,width:30,height:30,zIndex:Wg.errorOverlay+5,cursor:"pointer",borderRadius:"50%"},onMouseEnter:S=>{const D=S.currentTarget.nextElementSibling;if(D){const x=D.querySelector(".error-message");x&&(x.style.opacity="1")}},onMouseLeave:S=>{if(!h){const D=S.currentTarget.nextElementSibling;if(D){const x=D.querySelector(".error-message");x&&(x.style.opacity="0")}}}}),Z.jsx("div",{style:{position:"absolute",zIndex:h?Wg.errorOverlay+10:Wg.errorOverlay+1,left:w.left,top:w.top,color:h?"#ff4444":"red",textAlign:"center",fontFamily:"sans-serif",fontSize:12,display:"flex",flexDirection:"column",alignItems:"center",pointerEvents:"none",transform:w.transform},children:Z.jsx("div",{className:`error-message ${yEA}`,style:{opacity:h?1:0,border:`1px solid ${h?"#ff4444":"red"}`},children:g.message})})]},E)}return null}),r.map((g,I)=>{const c=g.component_name||g.message?.match(/name "([^"]+)"/)?.[1];if(!c)return null;const B=e?.filter(Q=>Q.type==="source_component"&&Q.name===c||Q.type==="pcb_component"&&e?.find(E=>E.type==="source_component"&&E.source_component_id===Q.source_component_id&&E.name===c))||[],C=g.pcb_trace_error_id||`error_${I}_${g.error_type}_${g.message?.slice(0,20)}`,l=n===C;return!l&&!o?null:B.map((Q,E)=>{let h={x:0,y:0};if(Q.type==="pcb_component")h=Q.center||{x:0,y:0};else if(Q.type==="source_component"){const F=e?.find(k=>k.type==="pcb_component"&&k.source_component_id===Q.source_component_id);F&&F.type==="pcb_component"&&(h=F.center||{x:0,y:0})}const u=ge(A,h);if(isNaN(u.x)||isNaN(u.y))return null;const d=Math.abs(A.a),D=Math.max(8,Math.min(30,.5*d)),x=fEA(u,i);return Z.jsxs(AA.Fragment,{children:[Z.jsx("svg",{style:{position:"absolute",left:0,top:0,pointerEvents:"none",mixBlendMode:"difference",zIndex:Wg.errorOverlay},width:"100%",height:"100%",children:l?Z.jsx("polygon",{points:`${u.x},${u.y-D*1.25} ${u.x+D},${u.y} ${u.x},${u.y+D*1.25} ${u.x-D},${u.y}`,fill:"#ff4444"}):Z.jsx("circle",{cx:u.x,cy:u.y,r:D,fill:"none",stroke:l?"#ff4444":"red",strokeWidth:l?Math.max(2,D*.15):Math.max(1,D*.1),opacity:1})}),Z.jsx("div",{style:{position:"absolute",left:u.x-(D+10),top:u.y-(D+10),width:(D+10)*2,height:(D+10)*2,zIndex:Wg.errorOverlay+5,cursor:"pointer",borderRadius:"50%"},onMouseEnter:F=>{const k=F.currentTarget.nextElementSibling;if(k){const U=k.querySelector(".error-message");U&&(U.style.opacity="1")}},onMouseLeave:F=>{if(!l){const k=F.currentTarget.nextElementSibling;if(k){const U=k.querySelector(".error-message");U&&(U.style.opacity="0")}}}}),Z.jsx("div",{style:{position:"absolute",zIndex:l?Wg.errorOverlay+20:Wg.errorOverlay+10,left:x.left,top:x.top,color:l?"#ff4444":"red",textAlign:"center",fontFamily:"sans-serif",fontSize:12,display:o||l?"flex":"none",flexDirection:"column",alignItems:"center",pointerEvents:"none",transform:x.transform},children:Z.jsx("div",{className:`error-message ${yEA}`,style:{opacity:l?1:0,border:`1px solid ${l?"#ff4444":"red"}`},children:g.message})})]},`${C}_${E}`)})})]})};function JUt(t,A){return t.size!==A.size?!1:Array.from(t).every(e=>A.has(e))}function KUt({primitiveElement:t,elements:A}){let e=t.trace_length?`${t.trace_length.toFixed(3)}`:"";const i=Hx(A).source_trace.get(t?.source_trace_id);if(i?.display_name&&(i?.max_length?e+=` / ${i.max_length}mm `:e+=" mm ",e+=`(${i.display_name})`),!e)return null;const o=t.trace_length&&i?.max_length&&t.trace_length>i.max_length;return{text:e,isOverLength:o}}function TUt(t){const{primitives:A,is_showing_multiple_traces_length:e,elements:i}=t,o=A.filter(a=>a._element.type==="pcb_trace"),n=i.filter(a=>a.type==="source_trace"),s=A.filter(a=>a._element.type!=="pcb_trace"),r=o.filter(a=>n.some(g=>a._element.type==="pcb_trace"&&a._element.source_trace_id===g.source_trace_id&&g.max_length!==void 0));if(!e)return[...s,...r];if(o.length>1){const a=o.reduce((g,I)=>{const c=g._element.trace_length;return I._element.trace_length<c?I:g},o[0]);return[...s,a]}return A}var qUt={position:"absolute",left:0,top:0,pointerEvents:"none",color:"red",fontFamily:"sans-serif",fontSize:12,textShadow:"0 0 2px black"},PUt=t=>{const{_element:A,_parent_pcb_component:e,_parent_source_component:i,_source_port:o}=t;switch(A.type){case"pcb_trace":return A.trace_length?`${A.trace_length.toFixed(3)}`:"";case"pcb_smtpad":case"pcb_plated_hole":{const n=[],s=Array.from(new Set((A.port_hints??[]).concat(o?.port_hints??[]))).filter(a=>!/^[0-9]+$/.test(a)).filter(a=>!a.includes("unnamed_")).sort((a,g)=>g.localeCompare(a)),r=i&&"name"in i&&i.name&&!i.name.includes("unnamed_")?i.name:null;return s.length>0?r?n.push(...s.map(a=>`${r}.${a}`)):n.push(...s):r&&n.push(r),n.join(", ")}default:return""}},OUt={top:"red",bottom:"aqua"},WUt=({primitive:t,mousePos:A,elements:e})=>{const[i,o]=AA.useState(!1),n=t._element;AA.useEffect(()=>{setTimeout(()=>{o(!0)},100)},[]);const[s,r,a,g]=[t.screen_x,t.screen_y,t.screen_w,t.screen_h],I=t.same_space_index??0,c=26,B=OUt[t?._element?.layer]??"red";let C=0;if(n.type==="pcb_smtpad"&&n?.shape==="rotated_rect"?C=n?.ccw_rotation??0:(n.type==="pcb_smtpad"&&(n?.shape==="pill"||n?.shape==="rotated_pill")&&"ccw_rotation"in t||n.type==="pcb_plated_hole"&&(n?.shape==="pill"||n?.shape==="oval")&&"ccw_rotation"in t)&&(C=n.ccw_rotation??0),n.type==="pcb_trace"){const E=KUt({primitiveElement:n,elements:e});if(!E)return null;const h=A.y-35;return Z.jsx("div",{style:{zIndex:Wg.elementOverlay,position:"absolute",left:A.x,top:h,color:B,pointerEvents:"none",transform:"translateX(-50%)"},children:Z.jsx("div",{style:{backgroundColor:"#f2efcc",color:E.isOverLength?"red":"black",textShadow:"none",WebkitFontSmoothing:"antialiased",MozOsxFontSmoothing:"grayscale",padding:"6px 6px",borderRadius:"6px",fontSize:"14px",minWidth:"45px",textAlign:"center",whiteSpace:"nowrap"},children:E.text})})}const l=PUt(t);return l.trim().length===0?null:Z.jsx("div",{style:{zIndex:Wg.elementOverlay,position:"absolute",left:s-a/2-8,top:r-g/2-8,width:a+16,height:g+16,color:B,transform:`rotate(${-C}deg)`,transformOrigin:"center center"},children:Z.jsx("div",{style:{width:i?`calc(100% + ${c*2*I}px)`:"100%",height:i?`calc(100% + ${c*2*I}px)`:"100%",marginLeft:i?`${-c*I}px`:0,marginTop:i?`${-c*I}px`:0,border:`1px solid ${B}`,opacity:i||I===0?1:0,transition:"width 0.2s, height 0.2s, margin-left 0.2s, margin-top 0.2s, opacity 0.2s"},children:Z.jsx("div",{style:{position:"absolute",bottom:g+20+c*I,marginRight:i?`${-c*I}px`:0,marginBottom:i?0:-c*I,transition:"margin-right 0.2s, margin-bottom 0.2s",backgroundColor:"#f2efcc",color:"black",textShadow:"none",WebkitFontSmoothing:"antialiased",MozOsxFontSmoothing:"grayscale",padding:"6px 6px",borderRadius:"6px",fontSize:"14px",transform:`rotate(${C}deg)`,minWidth:"45px",textAlign:"center"},children:l})})})},ZUt=({highlightedPrimitives:t,mousePos:A,elements:e})=>{const[i,o]=Gl(r=>[r.is_moving_component,r.is_showing_multiple_traces_length]),n=t.some(r=>r._element.type==="pcb_smtpad")&&t.some(r=>r._element.type==="pcb_trace");let s=t;return n&&(s=s.filter(r=>r._element.type==="pcb_smtpad")),s=TUt({primitives:s,is_showing_multiple_traces_length:o,elements:e}),Z.jsx("div",{style:qUt,children:!i&&s.map((r,a)=>Z.jsx(WUt,{primitive:r,mousePos:A,elements:e},a))})},zi={MIN_LINE_LENGTH_FOR_LABEL:40,LABEL_OFFSET_ABOVE:2,LABEL_OFFSET_BELOW:-18,LABEL_OFFSET_RIGHT:8,LABEL_OFFSET_LEFT:-120,Y_LABEL_MIN_WIDTH:110,LINE_STROKE_WIDTH:1.5,LINE_DASH_PATTERN:"4,4",COMPONENT_MARKER_RADIUS:3,LABEL_FONT_SIZE:11,ANCHOR_MARKER_SIZE:6,ANCHOR_MARKER_STROKE_WIDTH:1.5},fc={OFFSET_LINE:"white",COMPONENT_MARKER_FILL:"#66ccff",COMPONENT_MARKER_STROKE:"white",LABEL_TEXT:"white"},DM=t=>t?.type==="pcb_component",die=t=>t?.type==="pcb_group",VUt=t=>t?.type==="pcb_panel",mEA=t=>t?.type==="pcb_board",jUt=({elements:t,highlightedPrimitives:A,transform:e,containerWidth:i,containerHeight:o})=>{const n=t.filter(u=>mEA(u)),s=t.filter(u=>DM(u)),r=t.filter(u=>die(u)),a=A.map(u=>DM(u._parent_pcb_component)?u._parent_pcb_component.pcb_component_id:DM(u._element)?u._element.pcb_component_id:null).filter(u=>!!u),g=new Set;if(a.forEach(u=>{const d=s.find(f=>f.pcb_component_id===u);d?.pcb_group_id&&g.add(d.pcb_group_id)}),!Gl(u=>u.is_showing_group_anchor_offsets)&&a.length===0)return null;const c=s.map(u=>{const d=u.positioned_relative_to_pcb_board_id;if(!d)return null;const f=n.find(w=>w.pcb_board_id===d);return f?{component:u,board:f,type:"component"}:null}).filter(u=>!!u),B=r.map(u=>{const d=u.positioned_relative_to_pcb_board_id;if(!d||!u.center)return null;const f=n.find(w=>w.pcb_board_id===d);return f?{group:u,board:f,type:"group"}:null}).filter(u=>!!u),C=[...c,...B];if(C.length===0)return null;const l=a.length===0,Q={color:fc.LABEL_TEXT,mixBlendMode:"difference",pointerEvents:"none",fontSize:zi.LABEL_FONT_SIZE,fontFamily:"monospace",fontWeight:"bold"},E=C.filter(u=>u.type==="component"?l||a.includes(u.component.pcb_component_id):l||g.has(u.group.pcb_group_id));if(E.length===0)return null;const h=new Map;return Z.jsx("div",{style:{position:"absolute",left:0,top:0,width:i,height:o,overflow:"hidden",pointerEvents:"none",zIndex:Wg.dimensionOverlay},children:Z.jsxs("svg",{style:{position:"absolute",left:0,top:0,pointerEvents:"none"},width:i,height:o,children:[E.map(u=>{const d=u.board.center,f=u.board.pcb_board_id;let w,S,D,x;if(u.type==="component")w=u.component.center,S=u.component.pcb_component_id,D=u.component.display_offset_x,x=u.component.display_offset_y;else{if(!u.group.center)return null;w={x:u.group.anchor_position?.x??u.group.center.x,y:u.group.anchor_position?.y??u.group.center.y},S=u.group.pcb_group_id,D=u.group.display_offset_x,x=u.group.display_offset_y}if(!h.has(f)){const gA=ge(e,d);h.set(f,gA)}const F=h.get(f),k=ge(e,w),U=w.x-d.x,N=w.y-d.y,Y=Math.abs(k.x-F.x),q=Math.abs(k.y-F.y),K=k.y<F.y,O=k.x>F.x,W=K?zi.LABEL_OFFSET_ABOVE:zi.LABEL_OFFSET_BELOW,$=O?zi.LABEL_OFFSET_RIGHT:zi.LABEL_OFFSET_LEFT,oA=Y>zi.MIN_LINE_LENGTH_FOR_LABEL,IA=q>zi.MIN_LINE_LENGTH_FOR_LABEL,tA=`${D??U.toFixed(2)}mm`,sA=`${x??N.toFixed(2)}mm`;return Z.jsxs("g",{children:[Z.jsx("line",{x1:F.x,y1:F.y,x2:k.x,y2:F.y,stroke:fc.OFFSET_LINE,strokeWidth:zi.LINE_STROKE_WIDTH,strokeDasharray:zi.LINE_DASH_PATTERN}),Z.jsx("line",{x1:k.x,y1:F.y,x2:k.x,y2:k.y,stroke:fc.OFFSET_LINE,strokeWidth:zi.LINE_STROKE_WIDTH,strokeDasharray:zi.LINE_DASH_PATTERN}),u.type==="component"?Z.jsx("circle",{cx:k.x,cy:k.y,r:zi.COMPONENT_MARKER_RADIUS,fill:fc.COMPONENT_MARKER_FILL,stroke:fc.COMPONENT_MARKER_STROKE,strokeWidth:1}):Z.jsxs(Z.Fragment,{children:[Z.jsx("line",{x1:k.x-zi.ANCHOR_MARKER_SIZE,y1:k.y,x2:k.x+zi.ANCHOR_MARKER_SIZE,y2:k.y,stroke:fc.OFFSET_LINE,strokeWidth:zi.ANCHOR_MARKER_STROKE_WIDTH}),Z.jsx("line",{x1:k.x,y1:k.y-zi.ANCHOR_MARKER_SIZE,x2:k.x,y2:k.y+zi.ANCHOR_MARKER_SIZE,stroke:fc.OFFSET_LINE,strokeWidth:zi.ANCHOR_MARKER_STROKE_WIDTH})]}),oA&&Z.jsx("foreignObject",{x:Math.min(F.x,k.x),y:F.y+W,width:Math.abs(k.x-F.x),height:20,style:{overflow:"visible"},children:Z.jsx("div",{style:{...Q,textAlign:"center"},children:tA})}),IA&&Z.jsx("foreignObject",{x:k.x+$,y:Math.min(F.y,k.y),width:zi.Y_LABEL_MIN_WIDTH,height:Math.abs(k.y-F.y),style:{overflow:"visible"},children:Z.jsx("div",{style:{...Q,display:"flex",alignItems:"center",justifyContent:O?"flex-start":"flex-end",whiteSpace:"nowrap",padding:"0 4px",height:"100%"},children:sA})})]},`${u.board.pcb_board_id}-${S}-${u.type}`)}),Array.from(h.entries()).map(([u,d])=>Z.jsxs("g",{children:[Z.jsx("line",{x1:d.x-zi.ANCHOR_MARKER_SIZE,y1:d.y,x2:d.x+zi.ANCHOR_MARKER_SIZE,y2:d.y,stroke:fc.OFFSET_LINE,strokeWidth:zi.ANCHOR_MARKER_STROKE_WIDTH}),Z.jsx("line",{x1:d.x,y1:d.y-zi.ANCHOR_MARKER_SIZE,x2:d.x,y2:d.y+zi.ANCHOR_MARKER_SIZE,stroke:fc.OFFSET_LINE,strokeWidth:zi.ANCHOR_MARKER_STROKE_WIDTH})]},`anchor-${u}`))]})})},zUt=({elements:t,highlightedPrimitives:A,transform:e,containerWidth:i,containerHeight:o})=>{const n=t.filter(u=>die(u)),s=t.filter(u=>DM(u)),r=A.map(u=>DM(u._parent_pcb_component)?u._parent_pcb_component.pcb_component_id:DM(u._element)?u._element.pcb_component_id:null).filter(u=>!!u),a=(u,d)=>{if(d.has(u))return;d.add(u);const f=n.find(w=>w.pcb_group_id===u);f?.position_mode==="relative_to_group_anchor"&&f.positioned_relative_to_pcb_group_id&&a(f.positioned_relative_to_pcb_group_id,d)},g=new Set;if(r.forEach(u=>{const d=s.find(f=>f.pcb_component_id===u);d&&(d.position_mode==="relative_to_group_anchor"&&d.positioned_relative_to_pcb_group_id&&a(d.positioned_relative_to_pcb_group_id,g),d.pcb_group_id&&a(d.pcb_group_id,g))}),!Gl(u=>u.is_showing_group_anchor_offsets)&&r.length===0)return null;const c=s.map(u=>{if(u.position_mode==="relative_to_group_anchor"&&u.positioned_relative_to_pcb_group_id){const d=n.find(f=>f.pcb_group_id===u.positioned_relative_to_pcb_group_id);return d&&d.anchor_position?{component:u,parentGroup:d,type:"component"}:null}if(u.pcb_group_id){const d=n.find(f=>f.pcb_group_id===u.pcb_group_id);return d&&d.anchor_position?{component:u,parentGroup:d,type:"component"}:null}return null}).filter(u=>!!u),B=n.map(u=>{if(u.position_mode==="relative_to_group_anchor"&&u.positioned_relative_to_pcb_group_id){const d=n.find(f=>f.pcb_group_id===u.positioned_relative_to_pcb_group_id);if(d&&d.anchor_position&&u.center)return{group:u,parentGroup:d,type:"group"}}return null}).filter(u=>!!u),C=[...c,...B];if(C.length===0)return null;const l=r.length===0,Q={color:fc.LABEL_TEXT,mixBlendMode:"difference",pointerEvents:"none",fontSize:zi.LABEL_FONT_SIZE,fontFamily:"monospace",fontWeight:"bold"},E=C.filter(u=>u.type==="component"?l||r.includes(u.component.pcb_component_id):l||g.has(u.group.pcb_group_id)||g.has(u.parentGroup.pcb_group_id));if(E.length===0)return null;const h=new Map;return E.forEach(u=>{if(!u.parentGroup.anchor_position)return;const d=ge(e,u.parentGroup.anchor_position);h.set(u.parentGroup.pcb_group_id,d)}),Z.jsx("div",{style:{position:"absolute",left:0,top:0,width:i,height:o,overflow:"hidden",pointerEvents:"none",zIndex:Wg.dimensionOverlay},children:Z.jsxs("svg",{style:{position:"absolute",left:0,top:0,pointerEvents:"none"},width:i,height:o,children:[E.map(u=>{const d=u.parentGroup.anchor_position;if(!d)return null;const f={x:d.x,y:d.y};let w=null,S,D,x;if(u.type==="component"){const gA=u.component.center;if(!gA)return null;w={x:gA.x,y:gA.y},S=u.component.pcb_component_id,D=u.component.display_offset_x,x=u.component.display_offset_y}else{if(!u.group.center)return null;w={x:u.group.center.x,y:u.group.center.y},S=u.group.pcb_group_id,D=u.group.display_offset_x,x=u.group.display_offset_y}const F=w.x-f.x,k=w.y-f.y,U=ge(e,f),N=ge(e,w),Y=Math.abs(N.x-U.x),q=Math.abs(N.y-U.y),K=N.y<U.y,O=N.x>U.x,W=K?zi.LABEL_OFFSET_ABOVE:zi.LABEL_OFFSET_BELOW,$=O?zi.LABEL_OFFSET_RIGHT:zi.LABEL_OFFSET_LEFT,oA=Y>zi.MIN_LINE_LENGTH_FOR_LABEL,IA=q>zi.MIN_LINE_LENGTH_FOR_LABEL,tA=D||`${F.toFixed(2)}mm`,sA=x||`${k.toFixed(2)}mm`;return Z.jsxs("g",{children:[Z.jsx("line",{x1:U.x,y1:U.y,x2:N.x,y2:U.y,stroke:fc.OFFSET_LINE,strokeWidth:zi.LINE_STROKE_WIDTH,strokeDasharray:zi.LINE_DASH_PATTERN}),Z.jsx("line",{x1:N.x,y1:U.y,x2:N.x,y2:N.y,stroke:fc.OFFSET_LINE,strokeWidth:zi.LINE_STROKE_WIDTH,strokeDasharray:zi.LINE_DASH_PATTERN}),u.type==="component"?Z.jsx("circle",{cx:N.x,cy:N.y,r:zi.COMPONENT_MARKER_RADIUS,fill:fc.COMPONENT_MARKER_FILL,stroke:fc.COMPONENT_MARKER_STROKE,strokeWidth:1}):Z.jsxs(Z.Fragment,{children:[Z.jsx("line",{x1:N.x-zi.ANCHOR_MARKER_SIZE,y1:N.y,x2:N.x+zi.ANCHOR_MARKER_SIZE,y2:N.y,stroke:fc.OFFSET_LINE,strokeWidth:zi.ANCHOR_MARKER_STROKE_WIDTH}),Z.jsx("line",{x1:N.x,y1:N.y-zi.ANCHOR_MARKER_SIZE,x2:N.x,y2:N.y+zi.ANCHOR_MARKER_SIZE,stroke:fc.OFFSET_LINE,strokeWidth:zi.ANCHOR_MARKER_STROKE_WIDTH})]}),oA&&Z.jsx("foreignObject",{x:Math.min(U.x,N.x),y:U.y+W,width:Math.abs(N.x-U.x),height:20,style:{overflow:"visible"},children:Z.jsx("div",{style:{...Q,textAlign:"center"},children:tA})}),IA&&Z.jsx("foreignObject",{x:N.x+$,y:Math.min(U.y,N.y),width:20,height:Math.abs(N.y-U.y),style:{overflow:"visible"},children:Z.jsx("div",{style:{...Q,display:"flex",alignItems:"center",height:"100%"},children:sA})})]},`${u.parentGroup.pcb_group_id}-${S}-${u.type}`)}),Array.from(h.entries()).map(([u,d])=>Z.jsxs("g",{children:[Z.jsx("line",{x1:d.x-zi.ANCHOR_MARKER_SIZE,y1:d.y,x2:d.x+zi.ANCHOR_MARKER_SIZE,y2:d.y,stroke:fc.OFFSET_LINE,strokeWidth:zi.ANCHOR_MARKER_STROKE_WIDTH}),Z.jsx("line",{x1:d.x,y1:d.y-zi.ANCHOR_MARKER_SIZE,x2:d.x,y2:d.y+zi.ANCHOR_MARKER_SIZE,stroke:fc.OFFSET_LINE,strokeWidth:zi.ANCHOR_MARKER_STROKE_WIDTH})]},`anchor-${u}`))]})})},XUt=({elements:t,highlightedPrimitives:A,transform:e,containerWidth:i,containerHeight:o})=>{const n=t.filter(l=>VUt(l)),s=t.filter(l=>mEA(l)),r=A.map(l=>mEA(l._element)?l._element.pcb_board_id:null).filter(l=>!!l);if(!Gl(l=>l.is_showing_group_anchor_offsets)&&r.length===0)return null;const g=s.map(l=>{const Q=l.pcb_panel_id,E=l.position_mode;if(!Q||E!=="relative_to_panel_anchor")return null;const h=n.find(u=>u.pcb_panel_id===Q);return h?{board:l,panel:h,type:"board"}:null}).filter(l=>!!l);if(g.length===0)return null;const I=r.length===0,c={color:fc.LABEL_TEXT,mixBlendMode:"difference",pointerEvents:"none",fontSize:zi.LABEL_FONT_SIZE,fontFamily:"monospace",fontWeight:"bold"},B=g.filter(l=>I||r.includes(l.board.pcb_board_id));if(B.length===0)return null;const C=new Map;return Z.jsx("div",{style:{position:"absolute",left:0,top:0,width:i,height:o,overflow:"hidden",pointerEvents:"none",zIndex:Wg.dimensionOverlay},children:Z.jsxs("svg",{style:{position:"absolute",left:0,top:0,pointerEvents:"none"},width:i,height:o,children:[B.map(l=>{const Q=l.panel.center,E=l.panel.pcb_panel_id;let h,u,d,f;if(h=l.board.center,u=l.board.pcb_board_id,d=l.board.display_offset_x,f=l.board.display_offset_y,!C.has(E)){const oA=ge(e,Q);C.set(E,oA)}const w=C.get(E),S=ge(e,h),D=h.x-Q.x,x=h.y-Q.y,F=Math.abs(S.x-w.x),k=Math.abs(S.y-w.y),U=S.y<w.y,N=S.x>w.x,Y=U?zi.LABEL_OFFSET_ABOVE:zi.LABEL_OFFSET_BELOW,q=N?zi.LABEL_OFFSET_RIGHT:zi.LABEL_OFFSET_LEFT,K=F>zi.MIN_LINE_LENGTH_FOR_LABEL,O=k>zi.MIN_LINE_LENGTH_FOR_LABEL,W=`${d??D.toFixed(2)}mm`,$=`${f??x.toFixed(2)}mm`;return Z.jsxs("g",{children:[Z.jsx("line",{x1:w.x,y1:w.y,x2:S.x,y2:w.y,stroke:fc.OFFSET_LINE,strokeWidth:zi.LINE_STROKE_WIDTH,strokeDasharray:zi.LINE_DASH_PATTERN}),Z.jsx("line",{x1:S.x,y1:w.y,x2:S.x,y2:S.y,stroke:fc.OFFSET_LINE,strokeWidth:zi.LINE_STROKE_WIDTH,strokeDasharray:zi.LINE_DASH_PATTERN}),Z.jsx("circle",{cx:S.x,cy:S.y,r:zi.COMPONENT_MARKER_RADIUS,fill:fc.COMPONENT_MARKER_FILL,stroke:fc.COMPONENT_MARKER_STROKE,strokeWidth:1}),K&&Z.jsx("foreignObject",{x:Math.min(w.x,S.x),y:w.y+Y,width:Math.abs(S.x-w.x),height:20,style:{overflow:"visible"},children:Z.jsx("div",{style:{...c,textAlign:"center"},children:W})}),O&&Z.jsx("foreignObject",{x:S.x+q,y:Math.min(w.y,S.y),width:zi.Y_LABEL_MIN_WIDTH,height:Math.abs(S.y-w.y),style:{overflow:"visible"},children:Z.jsx("div",{style:{...c,display:"flex",alignItems:"center",justifyContent:N?"flex-start":"flex-end",whiteSpace:"nowrap",padding:"0 4px",height:"100%"},children:$})})]},`${l.panel.pcb_panel_id}-${u}-${l.type}`)}),Array.from(C.entries()).map(([l,Q])=>Z.jsxs("g",{children:[Z.jsx("line",{x1:Q.x-zi.ANCHOR_MARKER_SIZE,y1:Q.y,x2:Q.x+zi.ANCHOR_MARKER_SIZE,y2:Q.y,stroke:fc.OFFSET_LINE,strokeWidth:zi.ANCHOR_MARKER_STROKE_WIDTH}),Z.jsx("line",{x1:Q.x,y1:Q.y-zi.ANCHOR_MARKER_SIZE,x2:Q.x,y2:Q.y+zi.ANCHOR_MARKER_SIZE,stroke:fc.OFFSET_LINE,strokeWidth:zi.ANCHOR_MARKER_STROKE_WIDTH})]},`anchor-${l}`))]})})},IW=t=>{if(t.length===0)return null;let A=t[0].x,e=t[0].y,i=t[0].x,o=t[0].y;for(const n of t)n.x<A&&(A=n.x),n.y<e&&(e=n.y),n.x>i&&(i=n.x),n.y>o&&(o=n.y);return{center:{x:(A+i)/2,y:(e+o)/2},width:i-A,height:o-e}},pie=(t,A)=>{if(A.length<3)return!1;let e=!1;for(let i=0,o=A.length-1;i<A.length;o=i++){const n=A[i].x,s=A[i].y,r=A[o].x,a=A[o].y;s>t.y!=a>t.y&&t.x<(r-n)*(t.y-s)/(a-s||Number.EPSILON)+n&&(e=!e)}return e},$Ut=(t,A,e)=>{const i=[];for(const o of t){if(!o._element)continue;if("x1"in o&&o._element?.type==="pcb_trace"){const r=Bh({x:A.x,y:A.y},{x:o.x1,y:o.y1},{x:o.x2,y:o.y2}),a=o.width||.5,g=Math.max(a*25,2)/e.a;r<g&&i.push(o);continue}if(o.pcb_drawing_type==="polygon"){const r=o.points.map(g=>({x:ut.parse(g.x),y:ut.parse(g.y)})),a=IW(r);if(!a||A.x<a.center.x-a.width/2||A.x>a.center.x+a.width/2||A.y<a.center.y-a.height/2||A.y>a.center.y+a.height/2)continue;pie(A,r)&&i.push(o);continue}if(o.pcb_drawing_type==="polygon_with_arcs"){const r=o.brep_shape.outer_ring.vertices.map(g=>({x:ut.parse(g.x),y:ut.parse(g.y)})),a=IW(r);if(!a||A.x<a.center.x-a.width/2||A.x>a.center.x+a.width/2||A.y<a.center.y-a.height/2||A.y>a.center.y+a.height/2)continue;pie(A,r)&&i.push(o);continue}if(!("x"in o&&"y"in o))continue;let n=0,s=0;if("w"in o&&"h"in o)n=o.w,s=o.h;else if("r"in o)n=o.r*2,s=o.r*2;else if("rX"in o&&"rY"in o)n=o.rX*2,s=o.rY*2;else continue;Math.abs(o.x-A.x)<n/2&&Math.abs(o.y-A.y)<s/2&&i.push(o)}return i},ALt=({elements:t,children:A,transform:e,primitives:i,onMouseHoverOverPrimitives:o})=>{const[n,s]=AA.useState([]),[r,a]=AA.useState({x:0,y:0}),[g,{width:I,height:c}]=sH(),B=AA.useMemo(()=>{const l=[];for(const Q of n){if(Q._element?.type==="pcb_via"||Q._element?.type==="pcb_component"||Q?.layer==="drill")continue;let E=null,h=0,u=0;if(Q.pcb_drawing_type==="polygon"){const S=IW(Q.points);if(!S)continue;E=S.center,h=S.width,u=S.height}else if(Q.pcb_drawing_type==="polygon_with_arcs"){const S=Q.brep_shape.outer_ring.vertices.map(x=>({x:x.x,y:x.y})),D=IW(S);if(!D)continue;E=D.center,h=D.width,u=D.height}else"x"in Q&&"y"in Q&&(E={x:Q.x,y:Q.y},h="w"in Q?Q.w:"r"in Q?Q.r*2:"rX"in Q&&"rY"in Q?Q.rX*2:0,u="h"in Q?Q.h:"r"in Q?Q.r*2:"rX"in Q&&"rY"in Q?Q.rY*2:0);if(!E)continue;const d=ge(e,E),f={w:h*e.a,h:u*e.a},w=l.filter(S=>d.x===S.screen_x&&d.y===S.screen_y&&f.w===S.screen_w&&f.h===S.screen_h).length;l.push({...Q,x:E.x,y:E.y,w:h,h:u,screen_x:d.x,screen_y:d.y,screen_w:f.w,screen_h:f.h,same_space_index:w})}return l},[n,e]),C=(l,Q,E,h)=>{a({x:l,y:Q});const u=ge(Ay(E),{x:l,y:Q}),d=$Ut(h,u,E);JUt(new Set(d.map(f=>f._pcb_drawing_object_id)),new Set(n.map(f=>f._pcb_drawing_object_id)))||(s(d),o(d))};return Z.jsxs("div",{ref:g,style:{position:"relative",width:"100%",height:"100%"},onMouseMove:l=>{if(e){const Q=l.currentTarget.getBoundingClientRect(),E=l.clientX-Q.left,h=l.clientY-Q.top;C(E,h,e,i)}},onTouchStart:l=>{if(e){const Q=l.touches[0],E=l.currentTarget.getBoundingClientRect(),h=Q.clientX-E.left,u=Q.clientY-E.top;C(h,u,e,i)}},children:[A,Z.jsx(ZUt,{elements:t,mousePos:r,highlightedPrimitives:B}),e&&Z.jsxs(Z.Fragment,{children:[Z.jsx(jUt,{elements:t,highlightedPrimitives:B,transform:e,containerWidth:I,containerHeight:c}),Z.jsx(zUt,{elements:t,highlightedPrimitives:B,transform:e,containerWidth:I,containerHeight:c}),Z.jsx(XUt,{elements:t,highlightedPrimitives:B,transform:e,containerWidth:I,containerHeight:c})]})]})},fie=["rgb(255, 100, 100)","rgb(100, 255, 100)","rgb(100, 100, 255)","rgb(255, 255, 100)","rgb(255, 100, 255)","rgb(100, 255, 255)","rgb(255, 150, 100)","rgb(150, 100, 255)","rgb(100, 255, 150)","rgb(255, 100, 150)"],eLt=({children:t,transform:A=pg(),elements:e=[],hoveredComponentIds:i=[]})=>{const[o,{width:n,height:s}]=sH(),r=AA.useRef(null),{is_showing_pcb_groups:a,pcb_group_view_mode:g,is_showing_group_anchor_offsets:I}=Gl(c=>({is_showing_pcb_groups:c.is_showing_pcb_groups,pcb_group_view_mode:c.pcb_group_view_mode,is_showing_group_anchor_offsets:c.is_showing_group_anchor_offsets}));return AA.useEffect(()=>{const c=r.current;if(!c||!n||!s)return;c.width=n,c.height=s;const B=c.getContext("2d");if(!B||(B.clearRect(0,0,n,s),!a))return;const C=e.filter(S=>S.type==="pcb_group"),l=e.filter(S=>S.type==="pcb_component"),Q=e.filter(S=>S.type==="source_group"),E=new Map(Q.map(S=>[S.source_group_id,S])),h=C.filter(S=>{if(g==="all")return!0;if(!S.source_group_id)return!1;const D=E.get(S.source_group_id);return D?D.was_automatically_named!==!0:!1}),u=new Map;Q.forEach(S=>{const D=S;if(D.parent_source_group_id){const x=u.get(D.parent_source_group_id)||[];x.push(S.source_group_id),u.set(D.parent_source_group_id,x)}});const d=S=>{const D=[],x=u.get(S)||[];for(const F of x)D.push(F),D.push(...d(F));return D},f=S=>{const D=Q.find(x=>x.source_group_id===S);return D?.parent_source_group_id?1+f(D.parent_source_group_id):0},w=new Set;if(i.length>0)for(const S of l){if(!i.includes(S.pcb_component_id))continue;const D=S.positioned_relative_to_pcb_group_id??S.pcb_group_id;D&&w.add(D)}h.forEach((S,D)=>{let x=l.filter(JA=>JA.pcb_group_id===S.pcb_group_id);if(S.source_group_id){const JA=d(S.source_group_id),jA=C.filter(FA=>FA.source_group_id&&JA.includes(FA.source_group_id));for(const FA of jA){const SA=l.filter(LA=>LA.pcb_group_id===FA.pcb_group_id);x=[...x,...SA]}}let F,k,U,N,Y=!1;if(S.center&&S.width&&S.height){Y=!0;const JA=S.width/2,jA=S.height/2;F=S.center.x-JA,U=S.center.x+JA,k=S.center.y-jA,N=S.center.y+jA}else if(x.length===0||(F=1/0,k=1/0,U=-1/0,N=-1/0,x.forEach(JA=>{if(JA.center&&typeof JA.width=="number"&&typeof JA.height=="number"){const jA=JA.center.x-JA.width/2,FA=JA.center.x+JA.width/2,SA=JA.center.y+JA.height/2,LA=JA.center.y-JA.height/2;F=Math.min(F,jA),U=Math.max(U,FA),k=Math.min(k,LA),N=Math.max(N,SA)}}),F===1/0||U===-1/0))return;const q=S.source_group_id?f(S.source_group_id):0,K=S.source_group_id?d(S.source_group_id).length>0:!1;if(!Y){const FA=1+(K?.5:0);F-=FA,U+=FA,k-=FA,N+=FA}const O=ge(A,{x:F,y:N}),W=ge(A,{x:U,y:N}),$=ge(A,{x:F,y:k}),oA=ge(A,{x:U,y:k}),IA=fie[D%fie.length];B.strokeStyle=IA,B.lineWidth=2;const tA=Math.max(4,Math.min(12,8*Math.abs(A.a))),sA=Math.max(2,Math.min(6,4*Math.abs(A.a))),pA=tA*(K?1.3:1),xA=sA;B.setLineDash([pA,xA]),B.beginPath(),B.moveTo(O.x,O.y),B.lineTo(W.x,W.y),B.lineTo(oA.x,oA.y),B.lineTo($.x,$.y),B.closePath(),B.stroke();const _A=Math.max(8,Math.min(12,10*Math.abs(A.a))),MA=q==0||q==1?0:q*.11,PA=_A*(1-MA),BA=4,yA=S.name||`Group ${D+1}`;B.font=`${PA}px sans-serif`,B.setLineDash([]);const qA=B.measureText(yA).width+BA*2,ee=PA+BA*2,Be=O.x-5,mA=O.y-5,WA=3;if(B.fillStyle="rgba(0, 0, 0, 0.8)",B.beginPath(),B.roundRect(Be,mA-ee,qA,ee,WA),B.fill(),B.fillStyle=IA,B.textAlign="left",B.textBaseline="middle",B.fillText(yA,Be+BA,mA-ee/2),I&&w.has(S.pcb_group_id)&&!!S.anchor_position&&S.anchor_position){const JA=Array.isArray(S.anchor_position)?{x:S.anchor_position[0]??0,y:S.anchor_position[1]??0}:{x:S.anchor_position.x,y:S.anchor_position.y},jA=ge(A,JA);B.strokeStyle="white",B.lineWidth=1.5,B.setLineDash([]);const FA=Math.max(4,Math.min(8,6*Math.abs(A.a)));B.beginPath(),B.moveTo(jA.x-FA,jA.y),B.lineTo(jA.x+FA,jA.y),B.stroke(),B.beginPath(),B.moveTo(jA.x,jA.y-FA),B.lineTo(jA.x,jA.y+FA),B.stroke()}})},[e,A,n,s,a,g,I,i]),Z.jsxs("div",{ref:o,style:{position:"relative",width:"100%",height:"100%"},children:[t,Z.jsx("canvas",{ref:r,style:{position:"absolute",top:0,left:0,pointerEvents:"none",zIndex:Wg.pcbGroupOverlay,display:a?"block":"none"}})]})},tLt=({transform:t,soup:A,children:e})=>{const i=Gl(r=>r.is_showing_rats_nest),{netMap:o,idToNetMap:n}=AA.useMemo(()=>nie(A||[]),[A]),s=AA.useMemo(()=>{if(!A||!i)return[];const r=B=>{const C=Hx(A)[B.replace(/_\d+$/,"")].get(B);return C&&"x"in C&&"y"in C?{x:C.x,y:C.y}:null},a=(B,C)=>{const l=o[C]||[];let Q=null,E=1/0;return l.forEach(h=>{const u=r(h);if(u){const d=Math.sqrt((B.x-u.x)**2+(B.y-u.y)**2);d<E&&d>0&&(E=d,Q=u)}}),Q},g=Hx(A).pcb_port.list(),I=Hx(A).source_trace.list(),c=[];return g.forEach((B,C)=>{const l=n[B.pcb_port_id];let Q=!1;for(const u of I)u.connected_source_port_ids.includes(B.source_port_id)&&u.connected_source_net_ids.length>0&&(Q=!0);if(!l)return;const E={x:B.x,y:B.y},h=a(E,l);h&&c.push({key:`${B.pcb_port_id}-${C}`,startPoint:E,endPoint:h,isInNet:Q})}),c},[A,o,n,i]);return!A||!i?e:(t||(t=pg()),Z.jsxs("div",{style:{position:"relative"},children:[e,Z.jsx("svg",{style:{position:"absolute",left:0,top:0,width:"100%",height:"100%",pointerEvents:"none",opacity:.5,zIndex:Wg.ratsNestOverlay},children:s.map(({key:r,startPoint:a,endPoint:g,isInNet:I})=>{const c=ge(t,a),B=ge(t,g);return Z.jsx("line",{x1:c.x,y1:c.y,x2:B.x,y2:B.y,stroke:"white",strokeWidth:"1",strokeDasharray:I?"6,6":void 0},r)})})]}))},iLt={version:"1.11.291"},Yx=(t,A)=>{const e=Gl(i=>i.is_mouse_over_container);AA.useEffect(()=>{if(!t||typeof A!="function")return;const i=o=>{const n=t.split("+"),s=n.includes("ctrl"),r=n.includes("shift"),a=n.includes("alt"),g=n.includes("meta"),I=n[n.length-1];e&&(!s||o.ctrlKey)&&(!r||o.shiftKey)&&(!a||o.altKey)&&(!g||o.metaKey)&&o.key.toLowerCase()===I.toLowerCase()&&(o.preventDefault(),A())};return window.addEventListener("keydown",i),()=>{window.removeEventListener("keydown",i)}},[t,A])},oLt=()=>{const[t,A]=AA.useState(!1);return AA.useEffect(()=>{const e=()=>{A(window.innerWidth<=768)};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[]),t},nLt=({name:t,selected:A,onClick:e})=>Z.jsxs("div",{className:wM`
5385
5385
  margin-top: 2px;
5386
5386
  padding: 4px;
5387
5387
  padding-left: 8px;
@@ -5598,7 +5598,7 @@ test("${g} should solve problem correctly", () => {
5598
5598
  // Add more specific assertions based on expected output
5599
5599
  // expect(solver.netLabelPlacementSolver!.netLabelPlacements).toMatchInlineSnapshot()
5600
5600
  })
5601
- `,c=new Blob([I],{type:"text/plain"}),B=URL.createObjectURL(c),C=document.createElement("a");C.href=B,C.download=`${g}.test.ts`,C.click(),URL.revokeObjectURL(B)}catch(a){alert(`Error generating test.ts for ${t.constructor.name}: ${a instanceof Error?a.message:String(a)}`)}i(!1)};return Z.jsxs("div",{className:`relative ${A}`,ref:o,children:[Z.jsx("button",{className:"px-2 py-1 rounded text-xs cursor-pointer",onClick:()=>i(!e),title:`Download options for ${t.constructor.name}`,children:t.constructor.name}),e&&Z.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:[Z.jsx("button",{className:"w-full text-left px-3 py-2 hover:bg-gray-100 text-xs",onClick:n,children:"Download JSON"}),Z.jsx("button",{className:"w-full text-left px-3 py-2 hover:bg-gray-100 text-xs",onClick:s,children:"Download page.tsx"}),Z.jsx("button",{className:"w-full text-left px-3 py-2 hover:bg-gray-100 text-xs",onClick:r,children:"Download test.ts"})]})]})},Rie=t=>t.activeSubSolver?[t,...Rie(t.activeSubSolver)]:[t],_Ht=({solver:t})=>{const A=Rie(t);return Z.jsx("div",{className:"flex gap-1 items-center text-sm pt-1",children:A.map((e,i)=>Z.jsxs("div",{className:"flex items-center",children:[i>0&&Z.jsx("span",{className:"text-gray-400 mx-1",children:"→"}),Z.jsx(FHt,{solver:e})]},e.constructor.name))})},RHt=({solver:t,triggerRender:A,animationSpeed:e=25,onSolverStarted:i,onSolverCompleted:o})=>{const[n,s]=AA.useReducer(Q=>!Q,!1),r=AA.useRef(void 0),a=()=>{!t.solved&&!t.failed&&(t.step(),A())},g=()=>{!t.solved&&!t.failed&&(i&&i(t),t.solve(),A(),o&&o(t))},I=()=>{n?(r.current&&(clearInterval(r.current),r.current=void 0),s()):(s(),r.current=setInterval(()=>{if(t.solved||t.failed){r.current&&(clearInterval(r.current),r.current=void 0),s(),A(),o&&t.solved&&o(t);return}t.step(),A()},e))},c=()=>{const Q=t;if(Q.getCurrentPhase&&!t.solved&&!t.failed){const E=Q.getCurrentPhase();for(;Q.getCurrentPhase()===E&&!t.solved&&!t.failed;)t.step();A()}},B=()=>{if(t.solved||t.failed||n)return;const Q=window.prompt("Step until which iteration?",`${t.iterations}`);if(Q===null)return;const E=Number(Q);if(!Number.isFinite(E)){window.alert("Please enter a valid number for the iteration");return}for(;t.iterations<E&&!t.solved&&!t.failed;)t.step();A(),t.solved&&o&&o(t)};AA.useEffect(()=>()=>{r.current&&clearInterval(r.current)},[]),AA.useEffect(()=>{(t.solved||t.failed)&&n&&(r.current&&(clearInterval(r.current),r.current=void 0),s())},[t.solved,t.failed,n]);const C=t.getCurrentPhase!==void 0,l=C?t.getCurrentPhase():null;return Z.jsxs("div",{className:"space-y-2 p-2 border-b",children:[Z.jsx("div",{className:"flex items-center",children:Z.jsx(_Ht,{solver:t})}),Z.jsxs("div",{className:"flex gap-2 items-center flex-wrap",children:[Z.jsx("button",{onClick:a,disabled:t.solved||t.failed||n,className:"bg-blue-500 hover:bg-blue-600 disabled:bg-gray-300 text-white px-3 py-1 rounded text-sm",children:"Step"}),Z.jsx("button",{onClick:g,disabled:t.solved||t.failed||n,className:"bg-green-500 hover:bg-green-600 disabled:bg-gray-300 text-white px-3 py-1 rounded text-sm",children:"Solve"}),Z.jsx("button",{onClick:I,disabled:t.solved||t.failed,className:`px-3 py-1 rounded text-white text-sm ${n?"bg-red-500 hover:bg-red-600":"bg-yellow-500 hover:bg-yellow-600"} disabled:bg-gray-300`,children:n?"Stop":"Animate"}),Z.jsx("button",{onClick:B,disabled:t.solved||t.failed||n,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"}),C&&Z.jsx("button",{onClick:c,disabled:t.solved||t.failed||n,className:"bg-purple-500 hover:bg-purple-600 disabled:bg-gray-300 text-white px-3 py-1 rounded text-sm",children:"Next Stage"}),Z.jsxs("div",{className:"text-sm text-gray-600",children:["Iterations: ",t.iterations]}),t.timeToSolve!==void 0&&Z.jsxs("div",{className:"text-sm text-gray-600",children:["Time: ",(t.timeToSolve/1e3).toFixed(3),"s"]}),l&&Z.jsxs("div",{className:"text-sm text-gray-600",children:["Phase: ",Z.jsx("span",{className:"font-medium",children:l})]}),t.solved&&Z.jsx("div",{className:"px-2 py-1 bg-green-100 text-green-800 rounded text-sm",children:"Solved"}),t.failed&&Z.jsx("div",{className:"px-2 py-1 bg-red-100 text-red-800 rounded text-sm",children:"Failed"})]}),t.error&&Z.jsxs("div",{className:"text-red-600 text-sm",children:["Error: ",t.error]})]})},NHt=(t,A,e)=>{const i=t.currentPipelineStepIndex;return A<i?"Completed":A===i&&t.activeSubSolver?t.activeSubSolver.failed?"Failed":"In Progress":"Not Started"},MHt=(t,A)=>{const i=t.pipelineDef[A].solverName,o=NHt(t,A),n=t[i],s=t.firstIterationOfPhase?.[i]??null,r=t.iterations;let a=0;if(o==="Completed"){const B=t.pipelineDef[A+1],C=B?t.firstIterationOfPhase?.[B.solverName]:void 0;C!==void 0&&s!==null?a=C-s:s!==null&&(a=r-s)}else o==="In Progress"&&s!==null&&(a=r-s);const g=t.timeSpentOnPhase?.[i]??0;let I=0;o==="Completed"?I=1:o==="In Progress"&&n&&(I=n.progress??0);const c=n?.stats??null;return{index:A,name:i,status:o,firstIteration:s,iterations:a,progress:I,timeSpent:g,stats:c&&Object.keys(c).length>0?c:null,solverInstance:n??null}},vHt=({status:t})=>{const A={"Not Started":"text-blue-600","In Progress":"text-yellow-600",Completed:"text-green-600",Failed:"text-red-600"};return Z.jsx("span",{className:`font-medium ${A[t]}`,children:t})},UHt=({progress:t})=>{if(t===0)return null;const A=Math.round(t*100);return Z.jsxs("div",{className:"flex items-center gap-2",children:[Z.jsx("div",{className:"w-20 h-2 bg-gray-200 rounded overflow-hidden",children:Z.jsx("div",{className:"h-full bg-blue-500 transition-all duration-200",style:{width:`${A}%`}})}),Z.jsxs("span",{className:"text-xs text-gray-500",children:[A,"%"]})]})},LHt=t=>Object.entries(t).map(([A,e])=>`${A}: ${e}`).join(", "),HHt=({stats:t})=>{if(!t||Object.keys(t).length===0)return Z.jsx("span",{children:"-"});const A=Object.entries(t),e=LHt(t);return Z.jsxs("details",{className:"cursor-pointer",children:[Z.jsx("summary",{className:"whitespace-nowrap overflow-hidden text-ellipsis max-w-[200px]",children:e}),Z.jsx("div",{className:"mt-1 text-xs",children:A.map(([i,o])=>Z.jsxs("div",{children:[i,": ",String(o)]},i))})]})},FEA=t=>{if(t===null||typeof t!="object")return t;if(Array.isArray(t))return t.map(FEA);const A={};for(const[e,i]of Object.entries(t))e.startsWith("_")||(A[e]=FEA(i));return A},YHt=(t,A)=>{try{if(typeof t.getConstructorParams!="function"){alert(`getConstructorParams() is not implemented for ${A}`);return}const e=FEA(t.getConstructorParams()),i=new Blob([JSON.stringify(e,null,2)],{type:"application/json"}),o=URL.createObjectURL(i),n=document.createElement("a");n.href=o,n.download=`${A}_input.json`,n.click(),URL.revokeObjectURL(o)}catch(e){alert(`Error downloading input for ${A}: ${e instanceof Error?e.message:String(e)}`)}},JHt=({solver:t,onStepUntilPhase:A,onDownloadInput:e})=>{const i=t.pipelineDef.map((r,a)=>MHt(t,a)),o=r=>{A?.(r)},n=r=>{r.solverInstance&&(e?e(r.solverInstance,r.name):YHt(r.solverInstance,r.name))},s=r=>`${(r/1e3).toFixed(2)}s`;return Z.jsxs("div",{className:"border-t border-gray-200",children:[Z.jsx("div",{className:"px-4 py-2 bg-gray-50 border-b border-gray-200",children:Z.jsx("h3",{className:"text-sm font-semibold text-gray-700",children:"Pipeline Steps"})}),Z.jsx("div",{className:"overflow-x-auto",children:Z.jsxs("table",{className:"w-full text-sm",children:[Z.jsx("thead",{children:Z.jsxs("tr",{className:"bg-gray-50 border-b border-gray-200",children:[Z.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Step"}),Z.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Status"}),Z.jsxs("th",{className:"px-4 py-2 text-center font-semibold text-gray-700",children:["i",Z.jsx("sub",{children:"0"})]}),Z.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Iterations"}),Z.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Progress"}),Z.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Time"}),Z.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Stats"}),Z.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Input"})]})}),Z.jsx("tbody",{children:i.map(r=>Z.jsxs("tr",{className:`border-b border-gray-100 ${r.status==="In Progress"?"bg-yellow-50":""}`,children:[Z.jsx("td",{className:"px-4 py-2",children:Z.jsxs("div",{className:"flex items-center gap-2",children:[Z.jsx("span",{className:"text-gray-400 w-6",children:String(r.index+1).padStart(2,"0")}),Z.jsx("button",{onClick:()=>o(r.name),disabled:r.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 ${r.name} completes`,children:Z.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",className:"w-4 h-4",children:Z.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"})})}),Z.jsx("span",{className:"font-medium text-gray-900",children:r.name})]})}),Z.jsx("td",{className:"px-4 py-2",children:Z.jsx(vHt,{status:r.status})}),Z.jsx("td",{className:"px-4 py-2 text-center text-gray-600",children:r.firstIteration!==null?r.firstIteration:""}),Z.jsx("td",{className:"px-4 py-2 text-gray-600",children:r.iterations}),Z.jsx("td",{className:"px-4 py-2",children:Z.jsx(UHt,{progress:r.progress})}),Z.jsx("td",{className:"px-4 py-2 text-gray-600",children:s(r.timeSpent)}),Z.jsx("td",{className:"px-4 py-2 text-gray-500",children:Z.jsx(HHt,{stats:r.stats})}),Z.jsx("td",{className:"px-4 py-2",children:r.solverInstance?Z.jsxs("button",{onClick:()=>n(r),className:"flex items-center gap-1 text-blue-500 hover:text-blue-700",title:`Download input for ${r.name}`,children:[Z.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",className:"w-4 h-4",children:Z.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"})}),Z.jsx("span",{children:"Input"})]}):null})]},r.name))})]})})]})},KHt=class extends eo.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 THt({graphics:t}){const A=t.points??[],e=t.lines??[],i=t.rects??[],o=t.circles??[],n=t.texts??[];let s=Number.POSITIVE_INFINITY,r=Number.POSITIVE_INFINITY,a=Number.NEGATIVE_INFINITY,g=Number.NEGATIVE_INFINITY;const I=(E,h)=>{typeof E=="number"&&(E<s&&(s=E),E>a&&(a=E)),typeof h=="number"&&(h<r&&(r=h),h>g&&(g=h))};for(const E of A)I(E.x,E.y);for(const E of e){const h=E.points??[];for(const u of h)I(u.x,u.y)}for(const E of i){const h=E.x??0,u=E.y??0,d=E.width??0,f=E.height??0;I(h,u),I(h+d,u+f)}for(const E of o){const h=E.x??0,u=E.y??0,d=E.radius??1;I(h-d,u-d),I(h+d,u+d)}for(const E of n)I(E.x,E.y);(!isFinite(s)||!isFinite(r)||!isFinite(a)||!isFinite(g))&&(s=-20,r=-20,a=20,g=20);const c=10,B=s-c,C=r-c,l=Math.max(1,a-s+2*c),Q=Math.max(1,g-r+2*c);return Z.jsxs("svg",{className:"w-full h-[400px] bg-white",viewBox:`${B} ${C} ${l} ${Q}`,role:"img","aria-label":"Graphics fallback",children:[i.map((E,h)=>Z.jsx("rect",{x:E.x??0,y:E.y??0,width:E.width??0,height:E.height??0,fill:"none",stroke:E.strokeColor??"black",strokeWidth:E.strokeWidth??1},`rect-${h}`)),e.map((E,h)=>Z.jsx("polyline",{fill:"none",stroke:E.strokeColor??"black",strokeWidth:E.strokeWidth??1,points:(E.points??[]).map(u=>`${u.x??0},${u.y??0}`).join(" ")},`line-${h}`)),o.map((E,h)=>Z.jsx("circle",{cx:E.x??0,cy:E.y??0,r:E.radius??1.5,fill:E.fillColor??"none",stroke:E.strokeColor??"black",strokeWidth:E.strokeWidth??1},`circle-${h}`)),A.map((E,h)=>Z.jsx("circle",{cx:E.x??0,cy:E.y??0,r:E.radius??1.5,fill:E.color??"black"},`point-${h}`)),n.map((E,h)=>Z.jsx("text",{x:E.x??0,y:E.y??0,fontSize:E.fontSize??10,fill:E.color??"black",children:E.text??""},`text-${h}`))]})}var qHt=({solver:t,animationSpeed:A=25,onSolverStarted:e,onSolverCompleted:i})=>{const[o,n]=AA.useReducer(I=>I+1,0),s=AA.useMemo(()=>{try{return t.visualize()||{points:[],lines:[],rects:[],circles:[]}}catch(I){return console.error("Visualization error:",I),{points:[],lines:[],rects:[],circles:[]}}},[t,o]),r=AA.useMemo(()=>(s.rects?.length||0)===0&&(s.lines?.length||0)===0&&(s.points?.length||0)===0&&(s.circles?.length||0)===0,[s]);AA.useEffect(()=>{if(!(typeof document>"u")&&!document.querySelector('script[src="https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4"]')){const I=document.createElement("script");I.src="https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4",document.head.appendChild(I)}},[]);const a=t.pipelineDef!==void 0,g=I=>{const c=t;if(!t.solved&&!t.failed){for(;!t.solved&&!t.failed&&c.currentPipelineStepIndex<=c.pipelineDef.findIndex(B=>B.solverName===I);)t.step();n()}};return Z.jsxs("div",{children:[Z.jsx(RHt,{solver:t,triggerRender:n,animationSpeed:A,onSolverStarted:e,onSolverCompleted:i}),r?Z.jsx("div",{className:"p-4 text-gray-500",children:"No Graphics Yet"}):Z.jsx(KHt,{fallback:Z.jsx(THt,{graphics:s}),children:Z.jsx(GHt,{graphics:s})}),a&&Z.jsx(JHt,{solver:t,onStepUntilPhase:g})]})};const PHt=()=>{AA.useEffect(()=>{const t="tailwind-cdn-script";if(document.getElementById(t)||window.tailwind)return;const A=document.createElement("div");A.className="hidden",document.body.appendChild(A);const e=window.getComputedStyle(A).display==="none";if(document.body.removeChild(A),e)return;const i=document.createElement("script");i.id=t,i.src="https://cdn.tailwindcss.com",document.head.appendChild(i)},[])},OHt=t=>t.toLowerCase().includes("pack")?jmt:t.toLowerCase().includes("rout")?twt:Jmt,WHt=({solverEvents:t=[]})=>{const[A,e]=AA.useState(null);PHt();const i=AA.useMemo(()=>{const r=new Map;for(const a of t){const g=`${a.componentName}-${a.solverName}`;r.set(g,a)}return r},[t]),o=AA.useMemo(()=>Array.from(i.keys()),[i]),n=A?i.get(A):null,s=AA.useMemo(()=>{if(!n)return{instance:null,error:null,classFound:!1};const r=CiA[n.solverName];if(!r)return{instance:null,error:`Solver class "${n.solverName}" not found in SOLVERS registry. Available: ${Object.keys(CiA).join(", ")}`,classFound:!1};try{const a=n.solverParams,g=a?.input!==void 0?a.input:a;return{instance:new r(g),error:null,classFound:!0}}catch(a){const g=a instanceof Error?a.message:String(a);return console.error("Failed to reconstruct solver:",a),{instance:null,error:`Failed to instantiate solver: ${g}`,classFound:!0}}},[n]);return t.length===0?Z.jsx("div",{className:"rf-p-4",children:Z.jsx("div",{className:"rf-bg-gray-50 rf-rounded-md rf-border rf-border-gray-200",children:Z.jsxs("div",{className:"rf-p-4",children:[Z.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-text-gray-800 rf-mb-3",children:"No Solvers Detected"}),Z.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."})]})})}):Z.jsxs("div",{className:"rf-flex rf-h-full rf-overflow-hidden",children:[Z.jsxs("div",{className:"rf-w-64 rf-border-r rf-border-gray-200 rf-overflow-y-auto rf-flex-shrink-0",children:[Z.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:[o.length," ",o.length===1?"Solver":"Solvers"]}),o.map(r=>{const a=i.get(r),g=A===r;return Z.jsx("div",{className:`rf-px-3 rf-py-2 rf-cursor-pointer rf-border-b rf-border-gray-100 ${g?"rf-bg-blue-50 rf-border-l-2 rf-border-l-blue-500":"hover:rf-bg-gray-50"}`,onClick:()=>e(r),children:(()=>{const I=OHt(a.solverName);return Z.jsxs("div",{className:"rf-flex rf-items-center rf-gap-2",children:[Z.jsx(I,{className:"rf-w-4 rf-h-4 rf-text-blue-500 rf-flex-shrink-0"}),Z.jsxs("div",{className:"rf-flex-1 rf-min-w-0",children:[Z.jsx("div",{className:"rf-text-sm rf-font-medium rf-text-gray-800 rf-truncate",children:a.componentName}),Z.jsx("div",{className:"rf-text-xs rf-text-gray-500 rf-truncate",children:a.solverName})]})]})})()},r)})]}),Z.jsx("div",{className:"rf-flex-1 rf-overflow-hidden",children:n?s.instance?Z.jsx(Rw,{fallback:Z.jsx("div",{className:"rf-p-4",children:Z.jsxs("div",{className:"rf-bg-red-50 rf-rounded-md rf-border rf-border-red-200 rf-p-4",children:[Z.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-text-red-800 rf-mb-2",children:"Error Loading Solver Debugger"}),Z.jsxs("p",{className:"rf-text-sm rf-text-red-600",children:["Failed to render the solver debugger for"," ",n.solverName]})]})}),children:Z.jsx(qHt,{solver:s.instance})}):Z.jsxs("div",{className:"rf-p-4",children:[Z.jsxs("div",{className:"rf-mb-4",children:[Z.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-text-gray-800",children:n.solverName}),Z.jsxs("p",{className:"rf-text-sm rf-text-gray-500",children:["Component: ",n.componentName]})]}),s.error&&Z.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:Z.jsx("p",{className:`rf-text-sm ${s.classFound?"rf-text-red-700":"rf-text-yellow-700"}`,children:s.error})}),Z.jsxs("div",{className:"rf-border rf-border-gray-200 rf-rounded-md rf-overflow-hidden",children:[Z.jsx("div",{className:"rf-px-3 rf-py-2 rf-bg-gray-50",children:Z.jsx("span",{className:"rf-text-sm rf-font-medium rf-text-gray-700",children:"Solver Parameters"})}),Z.jsx("div",{className:"rf-p-3 rf-bg-white rf-border-t rf-border-gray-200",children:Z.jsx("pre",{className:"rf-text-xs rf-font-mono rf-text-gray-600 rf-whitespace-pre-wrap rf-overflow-x-auto",children:JSON.stringify(n.solverParams,null,2)})})]})]}):Z.jsx("div",{className:"rf-flex rf-items-center rf-justify-center rf-h-full",children:Z.jsx("p",{className:"rf-text-sm rf-text-gray-500",children:"Select a solver from the list to view details"})})})]})},Nie=({errorMessage:t,errorStack:A,circuitJsonErrors:e})=>{AA.useEffect(()=>{if(t){const i=new Error(t);A&&(i.stack=A);try{VJ.captureException(i)}catch{}}},[t,A]),AA.useEffect(()=>{if(e&&e.length>0)for(const i of e){const o=new Error(i.message||"Circuit JSON Error");i.stack&&(o.stack=i.stack);try{VJ.captureException(o,{error_type:i.type})}catch{}}},[e])},Mie="0.0.1430",ZHt={version:Mie},_EA={BASE_URL:"/",DEV:!1,MODE:"production",PROD:!0,SSR:!1},REA=new Map,QW=t=>{const A=REA.get(t);return A?Object.fromEntries(Object.entries(A.stores).map(([e,i])=>[e,i.getState()])):{}},VHt=(t,A,e)=>{if(t===void 0)return{type:"untracked",connection:A.connect(e)};const i=REA.get(e.name);if(i)return{type:"tracked",store:t,...i};const o={connection:A.connect(e),stores:{}};return REA.set(e.name,o),{type:"tracked",store:t,...o}},vie=(t,A={})=>(e,i,o)=>{const{enabled:n,anonymousActionType:s,store:r,...a}=A;let g;try{g=(n??(_EA?"production":void 0)!=="production")&&window.__REDUX_DEVTOOLS_EXTENSION__}catch{}if(!g)return(_EA?"production":void 0)!=="production"&&n&&console.warn("[zustand devtools middleware] Please install/enable Redux devtools extension"),t(e,i,o);const{connection:I,...c}=VHt(r,g,a);let B=!0;o.setState=(Q,E,h)=>{const u=e(Q,E);if(!B)return u;const d=h===void 0?{type:s||"anonymous"}:typeof h=="string"?{type:h}:h;return r===void 0?(I?.send(d,i()),u):(I?.send({...d,type:`${r}/${d.type}`},{...QW(a.name),[r]:o.getState()}),u)};const C=(...Q)=>{const E=B;B=!1,e(...Q),B=E},l=t(o.setState,i,o);if(c.type==="untracked"?I?.init(l):(c.stores[c.store]=o,I?.init(Object.fromEntries(Object.entries(c.stores).map(([Q,E])=>[Q,Q===c.store?l:E.getState()])))),o.dispatchFromDevtools&&typeof o.dispatch=="function"){let Q=!1;const E=o.dispatch;o.dispatch=(...h)=>{(_EA?"production":void 0)!=="production"&&h[0].type==="__setState"&&!Q&&(console.warn('[zustand devtools middleware] "__setState" action type is reserved to set state from the devtools. Avoid using it.'),Q=!0),E(...h)}}return I.subscribe(Q=>{var E;switch(Q.type){case"ACTION":if(typeof Q.payload!="string"){console.error("[zustand devtools middleware] Unsupported action format");return}return NEA(Q.payload,h=>{if(h.type==="__setState"){if(r===void 0){C(h.state);return}Object.keys(h.state).length!==1&&console.error(`
5601
+ `,c=new Blob([I],{type:"text/plain"}),B=URL.createObjectURL(c),C=document.createElement("a");C.href=B,C.download=`${g}.test.ts`,C.click(),URL.revokeObjectURL(B)}catch(a){alert(`Error generating test.ts for ${t.constructor.name}: ${a instanceof Error?a.message:String(a)}`)}i(!1)};return Z.jsxs("div",{className:`relative ${A}`,ref:o,children:[Z.jsx("button",{className:"px-2 py-1 rounded text-xs cursor-pointer",onClick:()=>i(!e),title:`Download options for ${t.constructor.name}`,children:t.constructor.name}),e&&Z.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:[Z.jsx("button",{className:"w-full text-left px-3 py-2 hover:bg-gray-100 text-xs",onClick:n,children:"Download JSON"}),Z.jsx("button",{className:"w-full text-left px-3 py-2 hover:bg-gray-100 text-xs",onClick:s,children:"Download page.tsx"}),Z.jsx("button",{className:"w-full text-left px-3 py-2 hover:bg-gray-100 text-xs",onClick:r,children:"Download test.ts"})]})]})},Rie=t=>t.activeSubSolver?[t,...Rie(t.activeSubSolver)]:[t],_Ht=({solver:t})=>{const A=Rie(t);return Z.jsx("div",{className:"flex gap-1 items-center text-sm pt-1",children:A.map((e,i)=>Z.jsxs("div",{className:"flex items-center",children:[i>0&&Z.jsx("span",{className:"text-gray-400 mx-1",children:"→"}),Z.jsx(FHt,{solver:e})]},e.constructor.name))})},RHt=({solver:t,triggerRender:A,animationSpeed:e=25,onSolverStarted:i,onSolverCompleted:o})=>{const[n,s]=AA.useReducer(Q=>!Q,!1),r=AA.useRef(void 0),a=()=>{!t.solved&&!t.failed&&(t.step(),A())},g=()=>{!t.solved&&!t.failed&&(i&&i(t),t.solve(),A(),o&&o(t))},I=()=>{n?(r.current&&(clearInterval(r.current),r.current=void 0),s()):(s(),r.current=setInterval(()=>{if(t.solved||t.failed){r.current&&(clearInterval(r.current),r.current=void 0),s(),A(),o&&t.solved&&o(t);return}t.step(),A()},e))},c=()=>{const Q=t;if(Q.getCurrentPhase&&!t.solved&&!t.failed){const E=Q.getCurrentPhase();for(;Q.getCurrentPhase()===E&&!t.solved&&!t.failed;)t.step();A()}},B=()=>{if(t.solved||t.failed||n)return;const Q=window.prompt("Step until which iteration?",`${t.iterations}`);if(Q===null)return;const E=Number(Q);if(!Number.isFinite(E)){window.alert("Please enter a valid number for the iteration");return}for(;t.iterations<E&&!t.solved&&!t.failed;)t.step();A(),t.solved&&o&&o(t)};AA.useEffect(()=>()=>{r.current&&clearInterval(r.current)},[]),AA.useEffect(()=>{(t.solved||t.failed)&&n&&(r.current&&(clearInterval(r.current),r.current=void 0),s())},[t.solved,t.failed,n]);const C=t.getCurrentPhase!==void 0,l=C?t.getCurrentPhase():null;return Z.jsxs("div",{className:"space-y-2 p-2 border-b",children:[Z.jsx("div",{className:"flex items-center",children:Z.jsx(_Ht,{solver:t})}),Z.jsxs("div",{className:"flex gap-2 items-center flex-wrap",children:[Z.jsx("button",{onClick:a,disabled:t.solved||t.failed||n,className:"bg-blue-500 hover:bg-blue-600 disabled:bg-gray-300 text-white px-3 py-1 rounded text-sm",children:"Step"}),Z.jsx("button",{onClick:g,disabled:t.solved||t.failed||n,className:"bg-green-500 hover:bg-green-600 disabled:bg-gray-300 text-white px-3 py-1 rounded text-sm",children:"Solve"}),Z.jsx("button",{onClick:I,disabled:t.solved||t.failed,className:`px-3 py-1 rounded text-white text-sm ${n?"bg-red-500 hover:bg-red-600":"bg-yellow-500 hover:bg-yellow-600"} disabled:bg-gray-300`,children:n?"Stop":"Animate"}),Z.jsx("button",{onClick:B,disabled:t.solved||t.failed||n,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"}),C&&Z.jsx("button",{onClick:c,disabled:t.solved||t.failed||n,className:"bg-purple-500 hover:bg-purple-600 disabled:bg-gray-300 text-white px-3 py-1 rounded text-sm",children:"Next Stage"}),Z.jsxs("div",{className:"text-sm text-gray-600",children:["Iterations: ",t.iterations]}),t.timeToSolve!==void 0&&Z.jsxs("div",{className:"text-sm text-gray-600",children:["Time: ",(t.timeToSolve/1e3).toFixed(3),"s"]}),l&&Z.jsxs("div",{className:"text-sm text-gray-600",children:["Phase: ",Z.jsx("span",{className:"font-medium",children:l})]}),t.solved&&Z.jsx("div",{className:"px-2 py-1 bg-green-100 text-green-800 rounded text-sm",children:"Solved"}),t.failed&&Z.jsx("div",{className:"px-2 py-1 bg-red-100 text-red-800 rounded text-sm",children:"Failed"})]}),t.error&&Z.jsxs("div",{className:"text-red-600 text-sm",children:["Error: ",t.error]})]})},NHt=(t,A,e)=>{const i=t.currentPipelineStepIndex;return A<i?"Completed":A===i&&t.activeSubSolver?t.activeSubSolver.failed?"Failed":"In Progress":"Not Started"},MHt=(t,A)=>{const i=t.pipelineDef[A].solverName,o=NHt(t,A),n=t[i],s=t.firstIterationOfPhase?.[i]??null,r=t.iterations;let a=0;if(o==="Completed"){const B=t.pipelineDef[A+1],C=B?t.firstIterationOfPhase?.[B.solverName]:void 0;C!==void 0&&s!==null?a=C-s:s!==null&&(a=r-s)}else o==="In Progress"&&s!==null&&(a=r-s);const g=t.timeSpentOnPhase?.[i]??0;let I=0;o==="Completed"?I=1:o==="In Progress"&&n&&(I=n.progress??0);const c=n?.stats??null;return{index:A,name:i,status:o,firstIteration:s,iterations:a,progress:I,timeSpent:g,stats:c&&Object.keys(c).length>0?c:null,solverInstance:n??null}},vHt=({status:t})=>{const A={"Not Started":"text-blue-600","In Progress":"text-yellow-600",Completed:"text-green-600",Failed:"text-red-600"};return Z.jsx("span",{className:`font-medium ${A[t]}`,children:t})},UHt=({progress:t})=>{if(t===0)return null;const A=Math.round(t*100);return Z.jsxs("div",{className:"flex items-center gap-2",children:[Z.jsx("div",{className:"w-20 h-2 bg-gray-200 rounded overflow-hidden",children:Z.jsx("div",{className:"h-full bg-blue-500 transition-all duration-200",style:{width:`${A}%`}})}),Z.jsxs("span",{className:"text-xs text-gray-500",children:[A,"%"]})]})},LHt=t=>Object.entries(t).map(([A,e])=>`${A}: ${e}`).join(", "),HHt=({stats:t})=>{if(!t||Object.keys(t).length===0)return Z.jsx("span",{children:"-"});const A=Object.entries(t),e=LHt(t);return Z.jsxs("details",{className:"cursor-pointer",children:[Z.jsx("summary",{className:"whitespace-nowrap overflow-hidden text-ellipsis max-w-[200px]",children:e}),Z.jsx("div",{className:"mt-1 text-xs",children:A.map(([i,o])=>Z.jsxs("div",{children:[i,": ",String(o)]},i))})]})},FEA=t=>{if(t===null||typeof t!="object")return t;if(Array.isArray(t))return t.map(FEA);const A={};for(const[e,i]of Object.entries(t))e.startsWith("_")||(A[e]=FEA(i));return A},YHt=(t,A)=>{try{if(typeof t.getConstructorParams!="function"){alert(`getConstructorParams() is not implemented for ${A}`);return}const e=FEA(t.getConstructorParams()),i=new Blob([JSON.stringify(e,null,2)],{type:"application/json"}),o=URL.createObjectURL(i),n=document.createElement("a");n.href=o,n.download=`${A}_input.json`,n.click(),URL.revokeObjectURL(o)}catch(e){alert(`Error downloading input for ${A}: ${e instanceof Error?e.message:String(e)}`)}},JHt=({solver:t,onStepUntilPhase:A,onDownloadInput:e})=>{const i=t.pipelineDef.map((r,a)=>MHt(t,a)),o=r=>{A?.(r)},n=r=>{r.solverInstance&&(e?e(r.solverInstance,r.name):YHt(r.solverInstance,r.name))},s=r=>`${(r/1e3).toFixed(2)}s`;return Z.jsxs("div",{className:"border-t border-gray-200",children:[Z.jsx("div",{className:"px-4 py-2 bg-gray-50 border-b border-gray-200",children:Z.jsx("h3",{className:"text-sm font-semibold text-gray-700",children:"Pipeline Steps"})}),Z.jsx("div",{className:"overflow-x-auto",children:Z.jsxs("table",{className:"w-full text-sm",children:[Z.jsx("thead",{children:Z.jsxs("tr",{className:"bg-gray-50 border-b border-gray-200",children:[Z.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Step"}),Z.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Status"}),Z.jsxs("th",{className:"px-4 py-2 text-center font-semibold text-gray-700",children:["i",Z.jsx("sub",{children:"0"})]}),Z.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Iterations"}),Z.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Progress"}),Z.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Time"}),Z.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Stats"}),Z.jsx("th",{className:"px-4 py-2 text-left font-semibold text-gray-700",children:"Input"})]})}),Z.jsx("tbody",{children:i.map(r=>Z.jsxs("tr",{className:`border-b border-gray-100 ${r.status==="In Progress"?"bg-yellow-50":""}`,children:[Z.jsx("td",{className:"px-4 py-2",children:Z.jsxs("div",{className:"flex items-center gap-2",children:[Z.jsx("span",{className:"text-gray-400 w-6",children:String(r.index+1).padStart(2,"0")}),Z.jsx("button",{onClick:()=>o(r.name),disabled:r.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 ${r.name} completes`,children:Z.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",className:"w-4 h-4",children:Z.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"})})}),Z.jsx("span",{className:"font-medium text-gray-900",children:r.name})]})}),Z.jsx("td",{className:"px-4 py-2",children:Z.jsx(vHt,{status:r.status})}),Z.jsx("td",{className:"px-4 py-2 text-center text-gray-600",children:r.firstIteration!==null?r.firstIteration:""}),Z.jsx("td",{className:"px-4 py-2 text-gray-600",children:r.iterations}),Z.jsx("td",{className:"px-4 py-2",children:Z.jsx(UHt,{progress:r.progress})}),Z.jsx("td",{className:"px-4 py-2 text-gray-600",children:s(r.timeSpent)}),Z.jsx("td",{className:"px-4 py-2 text-gray-500",children:Z.jsx(HHt,{stats:r.stats})}),Z.jsx("td",{className:"px-4 py-2",children:r.solverInstance?Z.jsxs("button",{onClick:()=>n(r),className:"flex items-center gap-1 text-blue-500 hover:text-blue-700",title:`Download input for ${r.name}`,children:[Z.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",className:"w-4 h-4",children:Z.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"})}),Z.jsx("span",{children:"Input"})]}):null})]},r.name))})]})})]})},KHt=class extends eo.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 THt({graphics:t}){const A=t.points??[],e=t.lines??[],i=t.rects??[],o=t.circles??[],n=t.texts??[];let s=Number.POSITIVE_INFINITY,r=Number.POSITIVE_INFINITY,a=Number.NEGATIVE_INFINITY,g=Number.NEGATIVE_INFINITY;const I=(E,h)=>{typeof E=="number"&&(E<s&&(s=E),E>a&&(a=E)),typeof h=="number"&&(h<r&&(r=h),h>g&&(g=h))};for(const E of A)I(E.x,E.y);for(const E of e){const h=E.points??[];for(const u of h)I(u.x,u.y)}for(const E of i){const h=E.x??0,u=E.y??0,d=E.width??0,f=E.height??0;I(h,u),I(h+d,u+f)}for(const E of o){const h=E.x??0,u=E.y??0,d=E.radius??1;I(h-d,u-d),I(h+d,u+d)}for(const E of n)I(E.x,E.y);(!isFinite(s)||!isFinite(r)||!isFinite(a)||!isFinite(g))&&(s=-20,r=-20,a=20,g=20);const c=10,B=s-c,C=r-c,l=Math.max(1,a-s+2*c),Q=Math.max(1,g-r+2*c);return Z.jsxs("svg",{className:"w-full h-[400px] bg-white",viewBox:`${B} ${C} ${l} ${Q}`,role:"img","aria-label":"Graphics fallback",children:[i.map((E,h)=>Z.jsx("rect",{x:E.x??0,y:E.y??0,width:E.width??0,height:E.height??0,fill:"none",stroke:E.strokeColor??"black",strokeWidth:E.strokeWidth??1},`rect-${h}`)),e.map((E,h)=>Z.jsx("polyline",{fill:"none",stroke:E.strokeColor??"black",strokeWidth:E.strokeWidth??1,points:(E.points??[]).map(u=>`${u.x??0},${u.y??0}`).join(" ")},`line-${h}`)),o.map((E,h)=>Z.jsx("circle",{cx:E.x??0,cy:E.y??0,r:E.radius??1.5,fill:E.fillColor??"none",stroke:E.strokeColor??"black",strokeWidth:E.strokeWidth??1},`circle-${h}`)),A.map((E,h)=>Z.jsx("circle",{cx:E.x??0,cy:E.y??0,r:E.radius??1.5,fill:E.color??"black"},`point-${h}`)),n.map((E,h)=>Z.jsx("text",{x:E.x??0,y:E.y??0,fontSize:E.fontSize??10,fill:E.color??"black",children:E.text??""},`text-${h}`))]})}var qHt=({solver:t,animationSpeed:A=25,onSolverStarted:e,onSolverCompleted:i})=>{const[o,n]=AA.useReducer(I=>I+1,0),s=AA.useMemo(()=>{try{return t.visualize()||{points:[],lines:[],rects:[],circles:[]}}catch(I){return console.error("Visualization error:",I),{points:[],lines:[],rects:[],circles:[]}}},[t,o]),r=AA.useMemo(()=>(s.rects?.length||0)===0&&(s.lines?.length||0)===0&&(s.points?.length||0)===0&&(s.circles?.length||0)===0,[s]);AA.useEffect(()=>{if(!(typeof document>"u")&&!document.querySelector('script[src="https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4"]')){const I=document.createElement("script");I.src="https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4",document.head.appendChild(I)}},[]);const a=t.pipelineDef!==void 0,g=I=>{const c=t;if(!t.solved&&!t.failed){for(;!t.solved&&!t.failed&&c.currentPipelineStepIndex<=c.pipelineDef.findIndex(B=>B.solverName===I);)t.step();n()}};return Z.jsxs("div",{children:[Z.jsx(RHt,{solver:t,triggerRender:n,animationSpeed:A,onSolverStarted:e,onSolverCompleted:i}),r?Z.jsx("div",{className:"p-4 text-gray-500",children:"No Graphics Yet"}):Z.jsx(KHt,{fallback:Z.jsx(THt,{graphics:s}),children:Z.jsx(GHt,{graphics:s})}),a&&Z.jsx(JHt,{solver:t,onStepUntilPhase:g})]})};const PHt=()=>{AA.useEffect(()=>{const t="tailwind-cdn-script";if(document.getElementById(t)||window.tailwind)return;const A=document.createElement("div");A.className="hidden",document.body.appendChild(A);const e=window.getComputedStyle(A).display==="none";if(document.body.removeChild(A),e)return;const i=document.createElement("script");i.id=t,i.src="https://cdn.tailwindcss.com",document.head.appendChild(i)},[])},OHt=t=>t.toLowerCase().includes("pack")?jmt:t.toLowerCase().includes("rout")?twt:Jmt,WHt=({solverEvents:t=[]})=>{const[A,e]=AA.useState(null);PHt();const i=AA.useMemo(()=>{const r=new Map;for(const a of t){const g=`${a.componentName}-${a.solverName}`;r.set(g,a)}return r},[t]),o=AA.useMemo(()=>Array.from(i.keys()),[i]),n=A?i.get(A):null,s=AA.useMemo(()=>{if(!n)return{instance:null,error:null,classFound:!1};const r=CiA[n.solverName];if(!r)return{instance:null,error:`Solver class "${n.solverName}" not found in SOLVERS registry. Available: ${Object.keys(CiA).join(", ")}`,classFound:!1};try{const a=n.solverParams,g=a?.input!==void 0?a.input:a;return{instance:new r(g),error:null,classFound:!0}}catch(a){const g=a instanceof Error?a.message:String(a);return console.error("Failed to reconstruct solver:",a),{instance:null,error:`Failed to instantiate solver: ${g}`,classFound:!0}}},[n]);return t.length===0?Z.jsx("div",{className:"rf-p-4",children:Z.jsx("div",{className:"rf-bg-gray-50 rf-rounded-md rf-border rf-border-gray-200",children:Z.jsxs("div",{className:"rf-p-4",children:[Z.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-text-gray-800 rf-mb-3",children:"No Solvers Detected"}),Z.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."})]})})}):Z.jsxs("div",{className:"rf-flex rf-h-full rf-overflow-hidden",children:[Z.jsxs("div",{className:"rf-w-64 rf-border-r rf-border-gray-200 rf-overflow-y-auto rf-flex-shrink-0",children:[Z.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:[o.length," ",o.length===1?"Solver":"Solvers"]}),o.map(r=>{const a=i.get(r),g=A===r;return Z.jsx("div",{className:`rf-px-3 rf-py-2 rf-cursor-pointer rf-border-b rf-border-gray-100 ${g?"rf-bg-blue-50 rf-border-l-2 rf-border-l-blue-500":"hover:rf-bg-gray-50"}`,onClick:()=>e(r),children:(()=>{const I=OHt(a.solverName);return Z.jsxs("div",{className:"rf-flex rf-items-center rf-gap-2",children:[Z.jsx(I,{className:"rf-w-4 rf-h-4 rf-text-blue-500 rf-flex-shrink-0"}),Z.jsxs("div",{className:"rf-flex-1 rf-min-w-0",children:[Z.jsx("div",{className:"rf-text-sm rf-font-medium rf-text-gray-800 rf-truncate",children:a.componentName}),Z.jsx("div",{className:"rf-text-xs rf-text-gray-500 rf-truncate",children:a.solverName})]})]})})()},r)})]}),Z.jsx("div",{className:"rf-flex-1 rf-overflow-hidden",children:n?s.instance?Z.jsx(Rw,{fallback:Z.jsx("div",{className:"rf-p-4",children:Z.jsxs("div",{className:"rf-bg-red-50 rf-rounded-md rf-border rf-border-red-200 rf-p-4",children:[Z.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-text-red-800 rf-mb-2",children:"Error Loading Solver Debugger"}),Z.jsxs("p",{className:"rf-text-sm rf-text-red-600",children:["Failed to render the solver debugger for"," ",n.solverName]})]})}),children:Z.jsx(qHt,{solver:s.instance})}):Z.jsxs("div",{className:"rf-p-4",children:[Z.jsxs("div",{className:"rf-mb-4",children:[Z.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-text-gray-800",children:n.solverName}),Z.jsxs("p",{className:"rf-text-sm rf-text-gray-500",children:["Component: ",n.componentName]})]}),s.error&&Z.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:Z.jsx("p",{className:`rf-text-sm ${s.classFound?"rf-text-red-700":"rf-text-yellow-700"}`,children:s.error})}),Z.jsxs("div",{className:"rf-border rf-border-gray-200 rf-rounded-md rf-overflow-hidden",children:[Z.jsx("div",{className:"rf-px-3 rf-py-2 rf-bg-gray-50",children:Z.jsx("span",{className:"rf-text-sm rf-font-medium rf-text-gray-700",children:"Solver Parameters"})}),Z.jsx("div",{className:"rf-p-3 rf-bg-white rf-border-t rf-border-gray-200",children:Z.jsx("pre",{className:"rf-text-xs rf-font-mono rf-text-gray-600 rf-whitespace-pre-wrap rf-overflow-x-auto",children:JSON.stringify(n.solverParams,null,2)})})]})]}):Z.jsx("div",{className:"rf-flex rf-items-center rf-justify-center rf-h-full",children:Z.jsx("p",{className:"rf-text-sm rf-text-gray-500",children:"Select a solver from the list to view details"})})})]})},Nie=({errorMessage:t,errorStack:A,circuitJsonErrors:e})=>{AA.useEffect(()=>{if(t){const i=new Error(t);A&&(i.stack=A);try{VJ.captureException(i)}catch{}}},[t,A]),AA.useEffect(()=>{if(e&&e.length>0)for(const i of e){const o=new Error(i.message||"Circuit JSON Error");i.stack&&(o.stack=i.stack);try{VJ.captureException(o,{error_type:i.type})}catch{}}},[e])},Mie="0.0.1432",ZHt={version:Mie},_EA={BASE_URL:"/",DEV:!1,MODE:"production",PROD:!0,SSR:!1},REA=new Map,QW=t=>{const A=REA.get(t);return A?Object.fromEntries(Object.entries(A.stores).map(([e,i])=>[e,i.getState()])):{}},VHt=(t,A,e)=>{if(t===void 0)return{type:"untracked",connection:A.connect(e)};const i=REA.get(e.name);if(i)return{type:"tracked",store:t,...i};const o={connection:A.connect(e),stores:{}};return REA.set(e.name,o),{type:"tracked",store:t,...o}},vie=(t,A={})=>(e,i,o)=>{const{enabled:n,anonymousActionType:s,store:r,...a}=A;let g;try{g=(n??(_EA?"production":void 0)!=="production")&&window.__REDUX_DEVTOOLS_EXTENSION__}catch{}if(!g)return(_EA?"production":void 0)!=="production"&&n&&console.warn("[zustand devtools middleware] Please install/enable Redux devtools extension"),t(e,i,o);const{connection:I,...c}=VHt(r,g,a);let B=!0;o.setState=(Q,E,h)=>{const u=e(Q,E);if(!B)return u;const d=h===void 0?{type:s||"anonymous"}:typeof h=="string"?{type:h}:h;return r===void 0?(I?.send(d,i()),u):(I?.send({...d,type:`${r}/${d.type}`},{...QW(a.name),[r]:o.getState()}),u)};const C=(...Q)=>{const E=B;B=!1,e(...Q),B=E},l=t(o.setState,i,o);if(c.type==="untracked"?I?.init(l):(c.stores[c.store]=o,I?.init(Object.fromEntries(Object.entries(c.stores).map(([Q,E])=>[Q,Q===c.store?l:E.getState()])))),o.dispatchFromDevtools&&typeof o.dispatch=="function"){let Q=!1;const E=o.dispatch;o.dispatch=(...h)=>{(_EA?"production":void 0)!=="production"&&h[0].type==="__setState"&&!Q&&(console.warn('[zustand devtools middleware] "__setState" action type is reserved to set state from the devtools. Avoid using it.'),Q=!0),E(...h)}}return I.subscribe(Q=>{var E;switch(Q.type){case"ACTION":if(typeof Q.payload!="string"){console.error("[zustand devtools middleware] Unsupported action format");return}return NEA(Q.payload,h=>{if(h.type==="__setState"){if(r===void 0){C(h.state);return}Object.keys(h.state).length!==1&&console.error(`
5602
5602
  [zustand devtools middleware] Unsupported __setState action format.
5603
5603
  When using 'store' option in devtools(), the 'state' should have only one key, which is a value of 'store' that was passed in devtools(),
5604
5604
  and value of this only key should be a state object. Example: { "type": "__setState", "state": { "abc123Store": { "foo": "bar" } } }