tscircuit 0.0.780 → 0.0.781

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.
@@ -5461,7 +5461,7 @@ ${R.type}: ${O}
5461
5461
  `,r.appendChild(v)}})}};o();const s=new MutationObserver(o);return s.observe(r,{childList:!0,subtree:!1,characterData:!1}),()=>{s.disconnect()}},[n,t,e,i])},Lht=["#8B0000","#2F4F4F","#191970","#006400","#FF4500","#800080","#2E8B57","#B8860B","#C71585","#008B8B"],uHn=n=>{const{svgDivRef:e,circuitJson:t,circuitJsonKey:i,showGroups:r}=n;be.useEffect(()=>{if(e.current&&e.current.querySelectorAll(".schematic-group-overlay").forEach(a=>a.remove()),!e.current||!r||!t||t.length===0)return;const o=setTimeout(()=>{if(!e.current)return;const s=e.current.querySelector("svg");if(!s)return;s.querySelectorAll(".schematic-group-overlay").forEach(c=>c.remove());try{const c=my(t).source_group?.list().filter(v=>!v.is_subcircuit)||[],l=my(t).schematic_component?.list()||[],u=new Map;c.forEach(v=>{const b=v;if(b.parent_source_group_id){const S=u.get(b.parent_source_group_id)||[];S.push(v.source_group_id),u.set(b.parent_source_group_id,S)}});const d=v=>{const b=[],S=u.get(v)||[];for(const P of S)b.push(P),b.push(...d(P));return b},h=v=>{const b=c.find(S=>S.source_group_id===v);return b?.parent_source_group_id?1+h(b.parent_source_group_id):0},p=c.length>0&&c.some(v=>v.name&&v.name.trim()!=="");let f=[];if(p){const v=new Map;for(const b of l){const S=my(t).source_component.get(b.source_component_id);S?.source_group_id&&(v.has(S.source_group_id)||v.set(S.source_group_id,[]),v.get(S.source_group_id).push(b))}c.forEach((b,S)=>{let P=v.get(b.source_group_id)||[];const A=d(b.source_group_id);for(const R of A){const T=v.get(R)||[];P=[...P,...T]}if(P.length>0){const R=h(b.source_group_id),T=d(b.source_group_id).length>0;if(b.name?.startsWith("unnamed_board"))return;f.push({id:b.source_group_id,name:b.name||`Group ${S+1}`,components:P,color:Lht[S%Lht.length],depthLevel:R,hasChildren:T,sourceGroupId:b.source_group_id})}})}const _=s.viewBox.baseVal,g=s.getBoundingClientRect(),x=Math.min(g.width/_.width,g.height/_.height)||1;f.sort((v,b)=>v.depthLevel-b.depthLevel),f.forEach(v=>{if(v.components.length===0)return;const b=dHn(v.components,s);if(!b)return;const S=Math.max(8,Math.min(25,15/Math.max(x,.3))),P=v.hasChildren?S*.6:0,A=S+P,R=Math.max(1,2/Math.max(x,.5)),T=v.depthLevel===0?R:R*.7,I=Math.max(4,8/Math.max(x,.5)),C=v.hasChildren?1.3:1,z=I*C,O=z*.5,j=document.createElementNS("http://www.w3.org/2000/svg","rect");j.setAttribute("class","schematic-group-overlay"),j.setAttribute("x",(b.minX-A).toString()),j.setAttribute("y",(b.minY-A).toString()),j.setAttribute("width",(b.maxX-b.minX+A*2).toString()),j.setAttribute("height",(b.maxY-b.minY+A*2).toString()),j.setAttribute("fill","none"),j.setAttribute("stroke",v.color),j.setAttribute("stroke-width",T.toString()),j.setAttribute("stroke-dasharray",`${z},${O}`),j.setAttribute("opacity","0.8"),j.setAttribute("rx","0"),j.setAttribute("ry","0");const V=Math.max(6,Math.min(20,14/Math.max(x,.2))),G=v.depthLevel===0||v.depthLevel===1?0:v.depthLevel*.2,Z=V*(1-G),K=Math.max(1,Z*.2),oe=v.name,ce=document.createElementNS("http://www.w3.org/2000/svg","text");ce.setAttribute("font-size",Z.toString()),ce.setAttribute("font-family","Arial, sans-serif"),ce.textContent=oe,s.appendChild(ce);const me=ce.getBBox();s.removeChild(ce);const te=me.width+K*2,se=Z+K*2,he=b.minX-A,Me=b.minY-A-se,Ee=document.createElementNS("http://www.w3.org/2000/svg","rect");Ee.setAttribute("class","schematic-group-overlay"),Ee.setAttribute("x",he.toString()),Ee.setAttribute("y",(Me-se).toString()),Ee.setAttribute("width",te.toString()),Ee.setAttribute("height",se.toString()),Ee.setAttribute("fill","transparent"),Ee.setAttribute("rx","0"),Ee.setAttribute("ry","0");const Pe=document.createElementNS("http://www.w3.org/2000/svg","text");Pe.setAttribute("class","schematic-group-overlay"),Pe.setAttribute("x",(he+K).toString()),Pe.setAttribute("y",(Me+se-K).toString()),Pe.setAttribute("fill",v.color),Pe.setAttribute("font-size",Z.toString()),Pe.setAttribute("font-family","Arial, sans-serif"),Pe.setAttribute("font-weight",v.depthLevel===0?"600":"500"),Pe.setAttribute("stroke",v.color),Pe.setAttribute("stroke-width",Math.max(.2,Z*.02).toString()),Pe.textContent=oe,s.appendChild(j),s.appendChild(Ee),s.appendChild(Pe)})}catch(c){console.error("Error creating group overlays:",c)}},10);return()=>clearTimeout(o)},[e,i,r])};function dHn(n,e){let t=1/0,i=1/0,r=-1/0,o=-1/0;for(const a of n){let c=e.querySelector(`g[data-schematic-component-id="${a.schematic_component_id}"]`);if(c||(c=e.querySelector(`[data-schematic-component-id="${a.schematic_component_id}"]`)),c){const l=c.getBBox();t=Math.min(t,l.x),i=Math.min(i,l.y),r=Math.max(r,l.x+l.width),o=Math.max(o,l.y+l.height)}}return t===1/0?null:{minX:t,minY:i,maxX:r,maxY:o}}var hHn=qh("schematic-viewer"),pHn=()=>{qh.enable("schematic-viewer*")},fHn=hHn,mHn=n=>{const[e,t]=be.useState(0),[i,r]=be.useState(0);return be.useEffect(()=>{if(!n.current)return;const o=()=>{const a=n.current?.getBoundingClientRect();t(a?.width||0),r(a?.height||0)};o();const s=new ResizeObserver(o);return s.observe(n.current),window.addEventListener("resize",o),()=>{s.disconnect(),window.removeEventListener("resize",o)}},[]),{containerWidth:e,containerHeight:i}},_Hn=fHn.extend("useComponentDragging"),gHn=({onEditEvent:n,editEvents:e=[],circuitJson:t,cancelDrag:i,svgToScreenProjection:r,realToSvgProjection:o,enabled:s=!1,snapToGrid:a=!1})=>{const[c,l]=be.useState(null),u=Io(o,r),d=be.useRef(null),h=be.useRef(null),p=be.useRef(new Map);be.useEffect(()=>{e.forEach(R=>{"edit_event_type"in R&&R.edit_event_type==="edit_schematic_component_location"&&!R.in_progress&&p.current.set(R.schematic_component_id,{...R.new_center})})},[e]);const f=be.useCallback((R,T,I)=>{if(!s)return!1;const C=I.closest('[data-circuit-json-type="schematic_component"]');if(!C)return!1;const z=C.getAttribute("data-schematic-component-id");if(!z)return!1;i&&i();const O=my(t).schematic_component.get(z);if(!O)return!1;d.current={x:R,y:T};let j;const V=p.current.get(z);if(V)j={...V};else{const Z=Oht({editEvents:e,schematic_component_id:z});j={x:O.center.x+Z.x,y:O.center.y+Z.y},p.current.set(z,{...j})}const G={edit_event_id:Math.random().toString(36).substr(2,9),edit_event_type:"edit_schematic_component_location",schematic_component_id:z,original_center:j,new_center:{...j},in_progress:!0,created_at:Date.now(),_element:C};return h.current=G,l(G),!0},[i,s,t,e]),_=be.useCallback(R=>{f(R.clientX,R.clientY,R.target)},[f]),g=be.useCallback(R=>{if(R.touches.length!==1)return;const T=R.touches[0];f(T.clientX,T.clientY,R.target)&&R.preventDefault()},[f]),x=be.useCallback((R,T)=>{if(!h.current||!d.current)return;const I={x:R-d.current.x,y:T-d.current.y},C={x:I.x/u.a,y:I.y/u.d};let z={x:h.current.original_center.x+C.x,y:h.current.original_center.y+C.y};if(a){const j=V=>Math.round(V*10)/10;z={x:j(z.x),y:j(z.y)}}const O={...h.current,new_center:z};h.current=O,l(O)},[u,a]),v=be.useCallback(R=>x(R.clientX,R.clientY),[x]),b=be.useCallback(R=>{if(R.touches.length!==1||!h.current)return;R.preventDefault();const T=R.touches[0];x(T.clientX,T.clientY)},[x]),S=be.useCallback(()=>{if(!h.current)return;const R={...h.current,in_progress:!1};p.current.set(R.schematic_component_id,{...R.new_center}),_Hn("endDrag calling onEditEvent with new edit event",{newEditEvent:R}),n&&n(R),h.current=null,d.current=null,l(null)},[n]),P=be.useCallback(()=>S(),[S]),A=be.useCallback(()=>S(),[S]);return be.useEffect(()=>(window.addEventListener("mousemove",v),window.addEventListener("mouseup",P),window.addEventListener("touchmove",b,{passive:!1}),window.addEventListener("touchend",A),()=>{window.removeEventListener("mousemove",v),window.removeEventListener("mouseup",P),window.removeEventListener("touchmove",b),window.removeEventListener("touchend",A)}),[v,P,b,A]),{handleMouseDown:_,handleTouchStart:g,isDragging:!!h.current,activeEditEvent:c}},JM={schematicEditIcon:50,schematicGridIcon:49,spiceSimulationIcon:50,viewMenuIcon:48,viewMenu:55,viewMenuBackdrop:54,clickToInteractOverlay:100,schematicComponentHoverOutline:47},yHn=({onClick:n,active:e})=>{const t=i=>{i.preventDefault(),n()};return de.jsx("div",{onClick:t,onTouchEnd:t,style:{position:"absolute",top:"16px",right:"64px",backgroundColor:e?"#4CAF50":"#fff",color:e?"#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:JM.schematicEditIcon},children:de.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[de.jsx("path",{d:"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"}),de.jsx("path",{d:"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"})]})})},xHn=({onClick:n,active:e})=>{const t=i=>{i.preventDefault(),n()};return de.jsx("div",{onClick:t,onTouchEnd:t,style:{position:"absolute",top:"56px",right:"64px",backgroundColor:e?"#4CAF50":"#fff",color:e?"#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:JM.schematicGridIcon},children:de.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:de.jsx("path",{d:"M3 3h7v7H3zM14 3h7v7h-7zM3 14h7v7H3zM14 14h7v7h-7z"})})})},vHn=({onClick:n,active:e})=>{const t=i=>{i.preventDefault(),n()};return de.jsx("div",{onClick:t,onTouchEnd:t,style:{position:"absolute",top:"16px",right:"16px",backgroundColor:e?"#4CAF50":"#fff",color:e?"#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:JM.viewMenuIcon},children:de.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[de.jsx("circle",{cx:"12",cy:"12",r:"1"}),de.jsx("circle",{cx:"12",cy:"5",r:"1"}),de.jsx("circle",{cx:"12",cy:"19",r:"1"})]})})},bHn={version:"2.0.44"},wHn=({circuitJson:n,circuitJsonKey:e,isVisible:t,onClose:i,showGroups:r,onToggleGroups:o})=>{const s=be.useMemo(()=>{if(!n||n.length===0)return!1;try{if((my(n).source_group?.list()||[]).length>0)return!0;const c=my(n).schematic_component?.list()||[];if(c.length>1){const l=new Set;for(const u of c){const d=my(n).source_component.get(u.source_component_id);d?.ftype&&l.add(d.ftype)}return l.size>1}return!1}catch(a){return console.error("Error checking for groups:",a),!1}},[e]);return t?de.jsxs(de.Fragment,{children:[de.jsx("div",{onClick:i,onTouchEnd:a=>{a.preventDefault(),i()},style:{position:"absolute",inset:0,backgroundColor:"transparent",zIndex:JM.viewMenuBackdrop}}),de.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:JM.viewMenu},children:[de.jsxs("div",{onClick:()=>{s&&o(!r)},onTouchEnd:a=>{a.preventDefault(),s&&o(!r)},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:a=>{s&&(a.currentTarget.style.backgroundColor="#f0f0f0")},onMouseLeave:a=>{s&&(a.currentTarget.style.backgroundColor="transparent")},children:[de.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:r&&"✓"}),"View Schematic Groups"]}),!s&&de.jsx("div",{style:{padding:"8px 12px",fontSize:"11px",color:"#666",fontStyle:"italic"},children:"No groups found in this schematic"}),de.jsxs("div",{style:{padding:"4px 8px",fontSize:"12px",color:"#999",borderTop:"1px solid #eee",textAlign:"center"},children:["v",String(bHn?.version)]})]})]}):null},SHn=()=>de.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:de.jsx("path",{d:"M3 12h2.5l2.5-9 4 18 4-9h5.5"})}),EHn=({onClick:n})=>de.jsx("div",{onClick:n,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:JM.spiceSimulationIcon},children:de.jsx(SHn,{})});xq.register(zjn,Ujn,yjn,gjn,Mjn,Ojn,Ejn);var Sq=["#8884d8","#82ca9d","#ffc658","#ff7300","#387908"],Dht=n=>{if(n===0)return"0s";const e=Math.abs(n);let t="s",i=1;return e<1e-12?(t="fs",i=1e15):e<1e-9?(t="ps",i=1e12):e<1e-6?(t="ns",i=1e9):e<.001?(t="us",i=1e6):e<1&&(t="ms",i=1e3),`${parseFloat((n*i).toPrecision(3))}${t}`},THn=({plotData:n,nodes:e,isLoading:t,error:i,hasRun:r})=>{const o=be.useMemo(()=>{const c=e.some(u=>u.toLowerCase().startsWith("v(")),l=e.some(u=>u.toLowerCase().startsWith("i("));return c&&l?"Value":c?"Voltage (V)":l?"Current (A)":"Value"},[e]);if(t)return de.jsx("div",{style:{height:"300px",width:"100%",display:"flex",alignItems:"center",justifyContent:"center"},children:"Running simulation..."});if(!r)return de.jsx("div",{style:{height:"300px",width:"100%",display:"flex",alignItems:"center",justifyContent:"center"},children:'Click "Run" to start the simulation.'});if(i)return de.jsxs("div",{style:{height:"300px",width:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"red"},children:["Error: ",i]});if(n.length===0)return de.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:e.map((c,l)=>({label:c,data:n.map(u=>({x:Number(u.name),y:u[c]})),borderColor:Sq[l%Sq.length],backgroundColor:Sq[l%Sq.length],fill:!1,tension:.1}))},a={responsive:!0,maintainAspectRatio:!1,plugins:{legend:{position:"top",labels:{font:{family:"sans-serif"}}},title:{display:!1},tooltip:{callbacks:{title:c=>{if(c.length>0){const l=c[0];return Dht(l.parsed.x)}return""}}}},scales:{x:{type:"linear",title:{display:!0,text:"Time",font:{family:"sans-serif"}},ticks:{callback:c=>Dht(c),font:{family:"sans-serif"}}},y:{title:{display:!0,text:o,font:{family:"sans-serif"}},ticks:{font:{family:"sans-serif"}}}}};return de.jsx("div",{style:{position:"relative",height:"300px",width:"100%"},children:de.jsx(Zjn,{options:a,data:s})})},MHn=({spiceString:n,onClose:e,plotData:t,nodes:i,isLoading:r,error:o,simOptions:s,onSimOptionsChange:a,hasRun:c})=>{const[l,u]=be.useState(String(s.startTime)),[d,h]=be.useState(String(s.duration));be.useEffect(()=>{u(String(s.startTime)),h(String(s.duration))},[s.startTime,s.duration]);const p=()=>{a({...s,startTime:Number(l),duration:Number(d)})},f=i.filter(_=>{const g=_.toLowerCase().startsWith("v("),x=_.toLowerCase().startsWith("i(");return!!(s.showVoltage&&g||s.showCurrent&&x)});return de.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:de.jsxs("div",{style:{backgroundColor:"white",padding:"24px",borderRadius:"12px",width:"90%",maxWidth:"900px",boxShadow:"0 4px 20px rgba(0, 0, 0, 0.15)"},children:[de.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"24px",borderBottom:"1px solid #eee",paddingBottom:"16px"},children:[de.jsx("h2",{style:{margin:0,fontSize:"22px",fontWeight:600,color:"#333"},children:"SPICE Simulation"}),de.jsx("button",{onClick:e,style:{background:"none",border:"none",fontSize:"28px",cursor:"pointer",color:"#888",padding:0,lineHeight:1},children:"×"})]}),de.jsx("div",{children:de.jsx(THn,{plotData:t,nodes:f,isLoading:r,error:o,hasRun:c})}),de.jsxs("div",{style:{marginTop:"16px",padding:"12px",backgroundColor:"#f7f7f7",borderRadius:"6px",display:"flex",flexWrap:"wrap",gap:"24px",alignItems:"center",fontSize:"14px"},children:[de.jsxs("div",{style:{display:"flex",gap:"16px"},children:[de.jsxs("label",{style:{display:"flex",alignItems:"center",gap:"6px"},children:[de.jsx("input",{type:"checkbox",checked:s.showVoltage,onChange:_=>a({...s,showVoltage:_.target.checked})}),"Voltage"]}),de.jsxs("label",{style:{display:"flex",alignItems:"center",gap:"6px"},children:[de.jsx("input",{type:"checkbox",checked:s.showCurrent,onChange:_=>a({...s,showCurrent:_.target.checked})}),"Current"]})]}),de.jsxs("div",{style:{display:"flex",gap:"16px",alignItems:"center"},children:[de.jsx("label",{htmlFor:"startTime",children:"Start Time (ms):"}),de.jsx("input",{id:"startTime",type:"number",value:l,onChange:_=>u(_.target.value),style:{width:"80px",padding:"4px 8px",borderRadius:"4px",border:"1px solid #ccc"}}),de.jsx("label",{htmlFor:"duration",children:"Duration (ms):"}),de.jsx("input",{id:"duration",type:"number",value:d,onChange:_=>h(_.target.value),style:{width:"80px",padding:"4px 8px",borderRadius:"4px",border:"1px solid #ccc"}}),de.jsx("button",{onClick:p,style:{padding:"4px 12px",borderRadius:"4px",border:"1px solid #ccc",backgroundColor:"#f0f0f0",cursor:"pointer"},children:c?"Rerun":"Run"})]})]}),de.jsxs("div",{style:{marginTop:"24px"},children:[de.jsx("h3",{style:{marginTop:0,marginBottom:"12px",fontSize:"18px",fontWeight:600,color:"#333"},children:"SPICE Netlist"}),de.jsx("pre",{style:{backgroundColor:"#fafafa",padding:"16px",borderRadius:"6px",maxHeight:"150px",overflowY:"auto",border:"1px solid #eee",color:"#333",fontSize:"13px",fontFamily:"monospace"},children:n})]})]})})},AHn="dmFyIGU9bnVsbCxzPWFzeW5jKCk9Pihhd2FpdCBpbXBvcnQoImh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vZWVjaXJjdWl0LWVuZ2luZUAxLjUuMi8rZXNtIikpLlNpbXVsYXRpb24sYz1hc3luYygpPT57aWYoZSYmZS5pc0luaXRpYWxpemVkKCkpcmV0dXJuO2xldCBpPWF3YWl0IHMoKTtlPW5ldyBpLGF3YWl0IGUuc3RhcnQoKX07c2VsZi5vbm1lc3NhZ2U9YXN5bmMgaT0+e3RyeXtpZihhd2FpdCBjKCksIWUpdGhyb3cgbmV3IEVycm9yKCJTaW11bGF0aW9uIG5vdCBpbml0aWFsaXplZCIpO2xldCB0PWkuZGF0YS5zcGljZVN0cmluZyxhPXQubWF0Y2goL3dyZGF0YVxzKyhcUyspXHMrKC4qKS9pKTtpZihhKXtsZXQgbz1gLnByb2JlICR7YVsyXS50cmltKCkuc3BsaXQoL1xzKy8pLmpvaW4oIiAiKX1gO3Q9dC5yZXBsYWNlKC93cmRhdGEuKi9pLG8pfWVsc2UgaWYoIXQubWF0Y2goL1wucHJvYmUvaSkpdGhyb3cgdC5tYXRjaCgvcGxvdFxzKyguKikvaSk/bmV3IEVycm9yKCJUaGUgJ3Bsb3QnIGNvbW1hbmQgaXMgbm90IHN1cHBvcnRlZCBmb3IgZGF0YSBleHRyYWN0aW9uLiBQbGVhc2UgdXNlICd3cmRhdGEgPGZpbGVuYW1lPiA8dmFyMT4gLi4uJyBvciAnLnByb2JlIDx2YXIxPiAuLi4nIGluc3RlYWQuIik6bmV3IEVycm9yKCJObyAnLnByb2JlJyBvciAnd3JkYXRhJyBjb21tYW5kIGZvdW5kIGluIFNQSUNFIGZpbGUuIFVzZSAnd3JkYXRhIDxmaWxlbmFtZT4gPHZhcjE+IC4uLicgdG8gc3BlY2lmeSBvdXRwdXQuIik7ZS5zZXROZXRMaXN0KHQpO2xldCBuPWF3YWl0IGUucnVuU2ltKCk7c2VsZi5wb3N0TWVzc2FnZSh7dHlwZToicmVzdWx0IixyZXN1bHQ6bn0pfWNhdGNoKHQpe3NlbGYucG9zdE1lc3NhZ2Uoe3R5cGU6ImVycm9yIixlcnJvcjp0Lm1lc3NhZ2V9KX19Owo=",Eq=null,CHn=()=>{if(typeof window>"u")return null;if(Eq)return Eq;try{const n=new Blob([atob(AHn)],{type:"application/javascript"});return Eq=URL.createObjectURL(n),Eq}catch(n){return console.error("Failed to create blob URL for worker",n),null}},PHn=n=>{const e={};if(n.dataType==="real")n.data.forEach(a=>{e[a.name]=a.values});else if(n.dataType==="complex")n.data.forEach(a=>{e[a.name]=a.values.map(c=>c.real)});else throw new Error("Unsupported data type in simulation result");const t=Object.keys(e).find(a=>a.toLowerCase()==="time"||a.toLowerCase()==="frequency");if(!t)throw new Error("No time or frequency data in simulation result");const i=e[t],r=Object.keys(e).filter(a=>a!==t),o=r;return{plotData:i.map((a,c)=>{const l={name:a.toExponential(2)};return r.forEach(u=>{l[u]=e[u][c]}),l}),nodes:o}},RHn=n=>{const[e,t]=be.useState([]),[i,r]=be.useState([]),[o,s]=be.useState(!0),[a,c]=be.useState(null);return be.useEffect(()=>{if(!n){s(!1),t([]),r([]),c(null);return}s(!0),c(null),t([]),r([]);const l=CHn();if(!l){c("Could not create SPICE simulation worker."),s(!1);return}const u=new Worker(l,{type:"module"});return u.onmessage=d=>{if(d.data.type==="result")try{const{plotData:h,nodes:p}=PHn(d.data.result);t(h),r(p)}catch(h){c(h.message||"Failed to parse simulation result"),console.error(h)}else d.data.type==="error"&&c(d.data.error);s(!1)},u.onerror=d=>{c(d.message),s(!1)},u.postMessage({spiceString:n}),()=>{u.terminate()}},[n]),{plotData:e,nodes:i,isLoading:o,error:a}},Y1e=n=>{if(n===0)return"0";const e=Math.abs(n),t=i=>i.toPrecision(4);return e>=1?t(n):e>=.001?`${t(n*1e3)}m`:e>=1e-6?`${t(n*1e6)}u`:e>=1e-9?`${t(n*1e9)}n`:e>=1e-12?`${t(n*1e12)}p`:e>=1e-15?`${t(n*1e15)}f`:n.toExponential(3)},IHn=(n,e)=>{const i=rHn(n).toSpiceString(),o=i.split(`
5462
5462
  `).filter(C=>C.trim()!=="").filter(C=>!C.startsWith("*")&&!C.startsWith(".")&&C.trim()!==""),s=new Set,a=new Set,c=new Set;for(const C of o){const z=C.trim().split(/\s+/);if(z.length<3)continue;const O=z[0],j=O[0].toUpperCase();let V=[];if(["R","C","L","V","I","D"].includes(j))V=z.slice(1,3),j==="V"&&c.add(O);else if(j==="Q"&&z.length>=4)V=z.slice(1,4);else if(j==="M"&&z.length>=5)V=z.slice(1,5);else if(j==="X")V=z.slice(1,-1);else continue;V.forEach(G=>s.add(G)),j==="C"&&V.forEach(G=>a.add(G))}s.delete("0"),a.delete("0");const l=Array.from(a).map(C=>`.ic V(${C})=0`),u=[],d=Array.from(s).map(C=>`V(${C})`);u.push(...d);const h=Array.from(c).map(C=>`I(${C})`);u.push(...h);const p=u.length>0?`.probe ${u.join(" ")}`:"",f=e?.startTime??0,_=e?.duration??20,g=f*.001,x=_*.001,v=g+x,b=x/50,S=`.tran ${Y1e(b)} ${Y1e(v)} ${Y1e(g)} UIC`,P=".end",A=i.split(`
5463
5463
  `);let R=-1;for(let C=A.length-1;C>=0;C--)if(A[C].trim().toLowerCase().startsWith(P)){R=C;break}const T=[...l,p,S].filter(Boolean);let I;if(R!==-1){const C=A.slice(0,R),z=A.slice(R);I=[...C,...T,...z]}else I=[...A,...T,P];return I.join(`
5464
- `)},NHn=(n,e)=>{if(typeof window>"u")return e;try{const t=localStorage.getItem(n);return t!==null?JSON.parse(t):e}catch{return e}},kHn=(n,e)=>{if(!(typeof window>"u"))try{localStorage.setItem(n,JSON.stringify(e))}catch{}},X1e=be.createContext(null),OHn=(n,e)=>!n&&!e?!0:!n||!e?!1:n.minX===e.minX&&n.maxX===e.maxX&&n.minY===e.minY&&n.maxY===e.maxY,LHn=({children:n})=>{if(be.useContext(X1e))return de.jsx(de.Fragment,{children:n});const t=be.useRef({pointer:null,boundingBoxes:new Map,hoveringIds:new Set,subscribers:new Set}),i=be.useCallback(()=>{for(const d of t.current.subscribers)d()},[]),r=be.useCallback(()=>{const d=t.current.pointer,h=new Set;if(d)for(const[f,_]of t.current.boundingBoxes){const g=_.bounds;g&&d.x>=g.minX&&d.x<=g.maxX&&d.y>=g.minY&&d.y<=g.maxY&&h.add(f)}const p=t.current.hoveringIds;h.size===p.size&&[...h].every(f=>p.has(f))||(t.current.hoveringIds=h,i())},[i]),o=be.useCallback((d,h)=>{t.current.boundingBoxes.set(d,h),r()},[r]),s=be.useCallback((d,h)=>{const p=t.current.boundingBoxes.get(d);p&&OHn(p.bounds,h.bounds)&&p.onClick===h.onClick||(t.current.boundingBoxes.set(d,h),r())},[r]),a=be.useCallback(d=>{t.current.boundingBoxes.delete(d)&&r()},[r]),c=be.useCallback(d=>(t.current.subscribers.add(d),()=>{t.current.subscribers.delete(d)}),[]),l=be.useCallback(d=>t.current.hoveringIds.has(d),[]);be.useEffect(()=>{const d=f=>{const{clientX:_,clientY:g}=f,x=t.current.pointer;x&&x.x===_&&x.y===g||(t.current.pointer={x:_,y:g},r())},h=()=>{t.current.pointer!==null&&(t.current.pointer=null,r())},p=f=>{const{clientX:_,clientY:g}=f;for(const x of t.current.boundingBoxes.values()){const v=x.bounds;v&&_>=v.minX&&_<=v.maxX&&g>=v.minY&&g<=v.maxY&&x.onClick?.(f)}};return window.addEventListener("pointermove",d,{passive:!0}),window.addEventListener("pointerdown",d,{passive:!0}),window.addEventListener("pointerup",d,{passive:!0}),window.addEventListener("pointerleave",h),window.addEventListener("pointercancel",h),window.addEventListener("blur",h),window.addEventListener("click",p,{passive:!0}),()=>{window.removeEventListener("pointermove",d),window.removeEventListener("pointerdown",d),window.removeEventListener("pointerup",d),window.removeEventListener("pointerleave",h),window.removeEventListener("pointercancel",h),window.removeEventListener("blur",h),window.removeEventListener("click",p)}},[r]);const u=be.useMemo(()=>({registerBoundingBox:o,updateBoundingBox:s,unregisterBoundingBox:a,subscribe:c,isHovering:l}),[o,s,a,c,l]);return de.jsx(X1e.Provider,{value:u,children:n})},DHn=n=>{const e=be.useContext(X1e);if(!e)throw new Error("useMouseEventsOverBoundingBox must be used within a MouseTracker");const t=be.useId(),i=be.useRef(n);i.current=n;const r=be.useMemo(()=>s=>{i.current.onClick?.(s)},[]);return be.useEffect(()=>(e.registerBoundingBox(t,{bounds:i.current.bounds,onClick:i.current.onClick?r:void 0}),()=>{e.unregisterBoundingBox(t)}),[e,r,t]),be.useEffect(()=>{e.updateBoundingBox(t,{bounds:i.current.bounds,onClick:i.current.onClick?r:void 0})},[e,r,t,n.bounds?.minX,n.bounds?.maxX,n.bounds?.minY,n.bounds?.maxY,n.onClick]),{hovering:be.useSyncExternalStore(e.subscribe,()=>e.isHovering(t),()=>!1)}},$Hn=(n,e)=>!n&&!e?!0:!n||!e?!1:Math.abs(n.bounds.minX-e.bounds.minX)<.5&&Math.abs(n.bounds.maxX-e.bounds.maxX)<.5&&Math.abs(n.bounds.minY-e.bounds.minY)<.5&&Math.abs(n.bounds.maxY-e.bounds.maxY)<.5&&Math.abs(n.rect.left-e.rect.left)<.5&&Math.abs(n.rect.top-e.rect.top)<.5&&Math.abs(n.rect.width-e.rect.width)<.5&&Math.abs(n.rect.height-e.rect.height)<.5,zHn=({componentId:n,svgDivRef:e,containerRef:t,onComponentClick:i,onHoverChange:r,showOutline:o,circuitJsonKey:s})=>{const[a,c]=be.useState(null),l=be.useRef(null),u=be.useCallback(()=>{l.current=null;const g=e.current,x=t.current;if(!g||!x){c(A=>A&&null);return}const v=g.querySelector(`[data-schematic-component-id="${n}"]`);if(!v){c(A=>A&&null);return}const b=v.getBoundingClientRect(),S=x.getBoundingClientRect(),P={bounds:{minX:b.left,maxX:b.right,minY:b.top,maxY:b.bottom},rect:{left:b.left-S.left,top:b.top-S.top,width:b.width,height:b.height}};c(A=>$Hn(A,P)?A:P)},[n,t,e]),d=be.useCallback(()=>{l.current===null&&(l.current=window.requestAnimationFrame(u))},[u]);be.useEffect(()=>{d()},[d,s]),be.useEffect(()=>{d();const g=e.current,x=t.current;if(!g||!x)return;const v=typeof ResizeObserver<"u"?new ResizeObserver(()=>{d()}):null;v?.observe(x),v?.observe(g);const b=typeof MutationObserver<"u"?new MutationObserver(()=>{d()}):null;return b?.observe(g,{attributes:!0,attributeFilter:["style","transform"],subtree:!0,childList:!0}),window.addEventListener("scroll",d,!0),window.addEventListener("resize",d),()=>{v?.disconnect(),b?.disconnect(),window.removeEventListener("scroll",d,!0),window.removeEventListener("resize",d),l.current!==null&&(cancelAnimationFrame(l.current),l.current=null)}},[d,e,t]);const h=be.useCallback(g=>{i&&i(n,g)},[n,i]),p=a?.bounds??null,{hovering:f}=DHn({bounds:p,onClick:i?h:void 0});if(be.useEffect(()=>{r&&r(n,f)},[f,n,r]),!a||!f||!o)return null;const _=a.rect;return de.jsx("div",{style:{position:"absolute",left:_.left,top:_.top,width:_.width,height:_.height,border:"1.5px solid rgba(51, 153, 255, 0.9)",pointerEvents:"none",zIndex:JM.schematicComponentHoverOutline}})},FHn=({circuitJson:n,containerStyle:e,editEvents:t=[],onEditEvent:i,defaultEditMode:r=!1,debugGrid:o=!1,editingEnabled:s=!1,debug:a=!1,clickToInteractEnabled:c=!1,colorOverrides:l,spiceSimulationEnabled:u=!1,disableGroups:d=!1,onSchematicComponentClicked:h})=>{a&&pHn();const[p,f]=be.useState(!1),[_,g]=be.useState({showVoltage:!0,showCurrent:!1,startTime:0,duration:20}),x=_t=>`${_t?.length||0}_${_t?.editCount||0}`,v=be.useMemo(()=>x(n),[n]),b=be.useMemo(()=>{if(!u)return null;try{return IHn(n,_)}catch(_t){return console.error("Failed to generate SPICE string",_t),null}},[v,u,_.startTime,_.duration]),[S,P]=be.useState(!1);be.useEffect(()=>{P(!1)},[v]);const{plotData:A,nodes:R,isLoading:T,error:I}=RHn(S?b:null),[C,z]=be.useState(r),[O,j]=be.useState(!0),[V,G]=be.useState(!c),[Z,K]=be.useState(!1),[oe,ce]=be.useState(()=>d?!1:NHn("schematic_viewer_show_groups",!1)),[me,te]=be.useState(!1),se=be.useRef(new Set),he=be.useCallback((_t,Ct)=>{Ct?se.current.add(_t):se.current.delete(_t),te(se.current.size>0)},[]),Me=be.useRef(null),Ee=be.useRef(null),Pe=be.useMemo(()=>{try{return my(n).schematic_component?.list()?.map(_t=>_t.schematic_component_id)??[]}catch(_t){return console.error("Failed to derive schematic component ids",_t),[]}},[v,n]),Le=_t=>{const Ct=_t.touches[0];Ee.current={x:Ct.clientX,y:Ct.clientY}},ke=_t=>{const Ct=_t.changedTouches[0],bt=Ee.current;if(!bt)return;const Ut=Math.abs(Ct.clientX-bt.x),Zt=Math.abs(Ct.clientY-bt.y);Ut<10&&Zt<10&&(_t.preventDefault(),G(!0)),Ee.current=null},[ae,we]=be.useState([]),xe=be.useRef(n);be.useEffect(()=>{const _t=x(n),Ct=x(xe.current);_t!==Ct&&(we([]),xe.current=n)},[n]);const{ref:je,cancelDrag:nt,transform:ct}=f1e({onSetTransform(_t){Me.current&&(Me.current.style.transform=pw(_t))},enabled:V&&!p}),{containerWidth:Ce,containerHeight:We}=mHn(je),Ze=be.useMemo(()=>!Ce||!We?"":d1e(n,{width:Ce,height:We||720,grid:o?{cellSize:1,labelCells:!0}:void 0,colorOverrides:l}),[v,Ce,We]),qe=be.useMemo(()=>Ze.match(/<svg[^>]*style="[^"]*background-color:\s*([^;\"]+)/i)?.[1]??"transparent",[Ze]),Xe=be.useMemo(()=>{if(!Ze)return Gh();const _t=Ze.match(/data-real-to-screen-transform="([^"]+)"/)?.[1];try{return _$(_t)}catch(Ct){return console.error(Ct),Gh()}},[Ze]),$e=_t=>{we(Ct=>[...Ct,_t]),i&&i(_t)},Ae=be.useMemo(()=>[...t,...ae],[t,ae]),{handleMouseDown:Ge,handleTouchStart:De,isDragging:Ke,activeEditEvent:et}=gHn({onEditEvent:$e,cancelDrag:nt,realToSvgProjection:Xe,svgToScreenProjection:ct,circuitJson:n,editEvents:Ae,enabled:C&&V&&!p,snapToGrid:O});cHn({svgDivRef:Me,editEvents:Ae,realToSvgProjection:Xe,svgToScreenProjection:ct,activeEditEvent:et}),lHn({svgDivRef:Me,circuitJson:n,activeEditEvent:et,editEvents:Ae}),uHn({svgDivRef:Me,circuitJson:n,circuitJsonKey:v,showGroups:oe&&!d});const pt=be.useRef(De);be.useEffect(()=>{pt.current=De},[De]);const xt=be.useMemo(()=>de.jsx("div",{ref:Me,style:{pointerEvents:c?V?"auto":"none":"auto",transformOrigin:"0 0"},className:h?"schematic-component-clickable":void 0,onTouchStart:_t=>{C&&V&&!p&&pt.current(_t)},dangerouslySetInnerHTML:{__html:Ze}}),[Ze,V,c,C,p]);return de.jsxs(LHn,{children:[h&&de.jsx("style",{children:".schematic-component-clickable [data-schematic-component-id]:hover { cursor: pointer !important; }"}),de.jsxs("div",{ref:je,style:{position:"relative",backgroundColor:qe,overflow:"hidden",cursor:p?"auto":Ke?"grabbing":c&&!V||me&&h?"pointer":"grab",minHeight:"300px",...e},onWheelCapture:_t=>{p&&_t.stopPropagation()},onMouseDown:_t=>{if(c&&!V){_t.preventDefault(),_t.stopPropagation();return}Ge(_t)},onMouseDownCapture:_t=>{if(c&&!V){_t.preventDefault(),_t.stopPropagation();return}},onTouchStart:_t=>{p||Le(_t)},onTouchEnd:_t=>{p||ke(_t)},children:[!V&&c&&de.jsx("div",{onClick:_t=>{_t.preventDefault(),_t.stopPropagation(),G(!0)},style:{position:"absolute",inset:0,cursor:"pointer",zIndex:JM.clickToInteractOverlay,display:"flex",alignItems:"center",justifyContent:"center",pointerEvents:"all",touchAction:"pan-x pan-y pinch-zoom"},children:de.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"})}),de.jsx(vHn,{active:Z,onClick:()=>K(!Z)}),s&&de.jsx(yHn,{active:C,onClick:()=>z(!C)}),s&&C&&de.jsx(xHn,{active:O,onClick:()=>j(!O)}),de.jsx(wHn,{circuitJson:n,circuitJsonKey:v,isVisible:Z,onClose:()=>K(!1),showGroups:oe,onToggleGroups:_t=>{d||(ce(_t),kHn("schematic_viewer_show_groups",_t))}}),u&&de.jsx(EHn,{onClick:()=>f(!0)}),p&&de.jsx(MHn,{spiceString:b,onClose:()=>f(!1),plotData:A,nodes:R,isLoading:T,error:I,simOptions:_,onSimOptionsChange:_t=>{P(!0),g(_t)},hasRun:S}),h&&Pe.map(_t=>de.jsx(zHn,{componentId:_t,svgDivRef:Me,containerRef:je,showOutline:!0,circuitJsonKey:v,onHoverChange:he,onComponentClick:(Ct,bt)=>{h?.({schematicComponentId:Ct,event:bt})}},_t)),xt]})]})},$ht=n=>{const[e,t]=be.useState(0),[i,r]=be.useState(0);return be.useEffect(()=>{if(!n.current)return;const o=()=>{const a=n.current?.getBoundingClientRect();t(a?.width||0),r(a?.height||0)};o();const s=new ResizeObserver(o);return s.observe(n.current),window.addEventListener("resize",o),()=>{s.disconnect(),window.removeEventListener("resize",o)}},[]),{containerWidth:e,containerHeight:i}};qh("assembly-viewer");var zht=()=>{qh.enable("assembly-viewer*")},BHn=({circuitJson:n,containerStyle:e,debugGrid:t=!1,debug:i=!1})=>{i&&zht();const r=be.useRef(null),{ref:o}=f1e({onSetTransform(u){r.current&&(r.current.style.transform=pw(u))}}),{containerWidth:s,containerHeight:a}=$ht(o),c=be.useMemo(()=>!s||!a?"":put(n,{width:s,height:a||720}),[n,s,a]);be.useMemo(()=>{if(!c)return Gh();const u=c.match(/data-real-to-screen-transform="([^"]+)"/)?.[1];try{return _$(u)}catch(d){return console.error(d),Gh()}},[c]);const l=be.useMemo(()=>de.jsx("div",{ref:r,style:{pointerEvents:"auto",transformOrigin:"0 0"},dangerouslySetInnerHTML:{__html:c}}),[c]);return de.jsx("div",{ref:o,style:{position:"relative",backgroundColor:"#FFFFFF",overflow:"hidden",minHeight:"300px",...e},children:l})},UHn=({circuitJson:n,containerStyle:e,debugGrid:t=!1,debug:i=!1})=>{i&&zht();const r=be.useRef(null),{ref:o}=f1e({onSetTransform(u){r.current&&(r.current.style.transform=pw(u))}}),{containerWidth:s,containerHeight:a}=$ht(o),c=be.useMemo(()=>!s||!a?"":l1e(n,{width:s,height:a||720}),[n,s,a]);be.useMemo(()=>{if(!c)return Gh();const u=c.match(/data-real-to-screen-transform="([^"]+)"/)?.[1];try{return _$(u)}catch(d){return console.error(d),Gh()}},[c]);const l=be.useMemo(()=>de.jsx("div",{ref:r,style:{pointerEvents:"auto",transformOrigin:"0 0"},dangerouslySetInnerHTML:{__html:c}}),[c]);return de.jsx("div",{ref:o,style:{position:"relative",backgroundColor:"#FFFFFF",overflow:"hidden",minHeight:"300px",...e},children:l})};const Fht=["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.","Join the [Discord server](https://tscircuit.com/join) to discuss issues and get help directly from the community."],jHn=(()=>{let n=Fht[Math.floor(Math.random()*Fht.length)];return n=n.replace(/</g,"&lt;"),n=n.replace(/>/g,"&gt;"),n=n.replace(new RegExp('(?<!href=")(?<!\\()(?<!\\]\\()(https?:\\/\\/[^\\s\\)\\]]+)',"g"),(e,t)=>`<a class="rf-text-blue-500 rf-underline" href="${e}" target="_blank">${e}</a>`),n=n.replace(/\[([^\]]+)\]\((https?:\/\/[^\)]+)\)/g,'<a class="rf-text-blue-500 rf-underline" href="$2" target="_blank">$1</a>'),n})(),eA=({onRunClicked:n})=>de.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:[de.jsx(h8n,{className:"rf-size-14 rf-mb-4"}),de.jsxs("p",{className:"rf-text-md rf-break-words rf-max-w-xl rf-text-center",children:["Tip: ",de.jsx("span",{dangerouslySetInnerHTML:{__html:jHn}})]}),n&&de.jsxs(L0,{className:"rf-mt-4 rf-bg-blue-600 rf-hover:bg-blue-500",onClick:n,children:["Run Code",de.jsx(ict,{className:"rf-w-3 rf-h-3 rf-ml-2"})]})]}),Tq=({text:n,onClick:e})=>de.jsx("span",{className:"rf-cursor-pointer rf-underline rf-text-blue-600 rf-mx-2",onClick:e,children:n}),Mq=n=>de.jsxs("div",{className:"rf-leading-5",children:[de.jsx("div",{className:"rf-py-2 rf-font-bold",children:n.column.name}),de.jsx("div",{children:n.field?.()??de.jsx("input",{type:"text",className:"rf-border rf-rounded rf-p-1 rf-w-full",onChange:e=>{n.onTextChange?.(e.target.value)}})})]}),HHn=({open:n,children:e,title:t,onClose:i})=>n?de.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:de.jsxs("div",{className:"rf-bg-white rf-p-5 rf-rounded-lg rf-relative rf-w-11/12 rf-max-w-2xl",onClick:r=>{r.preventDefault(),r.stopPropagation()},children:[de.jsx("h2",{className:"rf-mt-0 rf-text-md rf-pb-4",children:t}),de.jsx("button",{type:"button",className:"rf-absolute rf-top-2 rf-right-4 rf-text-2xl rf-font-bold",onClick:i,children:"×"}),e]})}):null,VHn=({elements:n})=>{const[e,t]=be.useState({open:!1}),[i,r]=be.useReducer((u,d)=>({...u,...d}),{}),o=[...new Set(n.map(u=>u.type))],s=n.map(u=>{const d=u[`${u.type}_id`],h=Object.fromEntries(Object.entries(u).filter(([f])=>!(f===`${u.type}_id`||!f.endsWith("_id")))),p=Object.fromEntries(Object.entries(u).filter(([f])=>!f.endsWith("_id")));return{primary_id:d,other_ids:h,...p,_og_elm:u}}),a=s.map(u=>{let d="";const h=p=>{const f=Object.keys(p.other_ids).find(x=>x.startsWith("source_"));if(!f)return`.${p.name}`;const _=f.slice(0,-3),g=s.find(x=>x.type===_&&x.primary_id===p.other_ids[f]);return g?"name"in g?`${h(g)} > .${p.name}`:`#${g.primary_id} > .${p.name}`:`??? > .${p.name}`};return"name"in u&&(d=h(u)),{...u,selector_path:d}}),c=[{key:"primary_id",name:"primary_id",renderCell:u=>de.jsxs("div",{className:"rf-flex rf-items-center",children:[de.jsx(Tq,{text:u.primary_id,onClick:()=>r({focused_id:u.primary_id,id_search:void 0,selector_search:void 0})}),de.jsx("span",{className:"rf-flex-grow"}),de.jsx(Tq,{text:"(JSON)",onClick:()=>t({open:!0,element:u._og_elm,title:u.primary_id})})]}),renderHeaderCell:u=>de.jsx(Mq,{column:u,onTextChange:d=>r({id_search:d}),field:i.focused_id?()=>de.jsxs("div",{children:["Focus:"," ",de.jsx("span",{className:"rf-underline",children:i.focused_id}),de.jsx(Tq,{text:"(unfocus)",onClick:()=>r({focused_id:void 0})})]}):void 0})},{key:"type",name:"type",renderHeaderCell:u=>de.jsx(Mq,{column:u,field:()=>de.jsxs("select",{onChange:d=>r({component_type_filter:d.target.value}),className:"rf-border rf-rounded rf-p-1 rf-w-full",children:[de.jsx("option",{value:"any",children:"any"},"any"),de.jsx("option",{value:"source",children:"source"},"source"),de.jsx("option",{value:"source/pcb",children:"source/pcb"},"source/pcb"),de.jsx("option",{value:"source/schematic",children:"source/schematic"},"source/schematic"),o.map(d=>de.jsx("option",{value:d,children:d},d))]})})},{key:"name",name:"name",renderHeaderCell:u=>de.jsx(Mq,{column:u,onTextChange:d=>r({name_search:d})})},{key:"selector_path",name:"selector_path",renderHeaderCell:u=>de.jsx(Mq,{column:u,onTextChange:d=>r({selector_search:d})})},{key:"other_ids",name:"other_ids",renderCell:u=>de.jsx("div",{className:"rf-space-x-2",children:Object.entries(u.other_ids).map(([d,h])=>de.jsx(Tq,{text:h,onClick:()=>r({focused_id:h})},h))})}],l=a.filter(u=>i.name_search?u.name?.toLowerCase()?.includes(i.name_search.toLowerCase()):!0).filter(u=>!i.component_type_filter||i.component_type_filter==="any"?!0:i.component_type_filter==="source"?u.type.startsWith("source_"):i.component_type_filter==="source/pcb"?u.type.startsWith("source_")||u.type.startsWith("pcb_"):i.component_type_filter==="source/schematic"?u.type.startsWith("source_")||u.type.startsWith("schematic_"):u.type?.includes(i.component_type_filter)).filter(u=>i.selector_search?i.selector_search.split(" ").filter(h=>h.length>0).every(h=>u.selector_path?.includes(h)):!0).filter(u=>i.id_search?u.primary_id?.includes(i.id_search):!0).filter(u=>!!(!i.focused_id||u.primary_id===i.focused_id||Object.values(u.other_ids).includes(i.focused_id)));return de.jsxs("div",{className:"rf-font-mono rf-text-xs rf-bg-white",children:[de.jsx("div",{className:"rf-overflow-x-auto",children:de.jsxs("table",{className:"rf-table-auto rf-w-full rf-text-left",children:[de.jsx("thead",{children:de.jsx("tr",{children:c.map(u=>de.jsx("th",{className:"rf-px-4 rf-py-2 rf-border-b",children:u.renderHeaderCell?u.renderHeaderCell(u):u.name},u.key))})}),de.jsx("tbody",{children:l.map((u,d)=>de.jsx("tr",{className:"rf-hover:bg-gray-100",children:c.map(h=>de.jsx("td",{className:"rf-px-4 rf-py-2 rf-border-b",children:h.renderCell?h.renderCell(u):u[h.key]},h.key))},d))})]})}),de.jsx(HHn,{open:e.open,onClose:()=>t({open:!1}),title:e.open?e.title:"",children:de.jsx("div",{className:"rf-bg-gray-800 rf-p-3 rf-text-white rf-rounded",children:de.jsx("pre",{className:"rf-whitespace-pre-wrap",children:e.open?JSON.stringify(e.element,null,2):""})})})]})},qHn=(n,e)=>n==="jlcpcb"?de.jsx("a",{className:"rf-underline rf-text-blue-500",target:"_blank",rel:"noreferrer",href:`https://jlcpcb.com/partdetail/${e}`,children:e}):e,GHn=({circuitJson:n})=>{const e=n.filter(i=>i.type==="source_component"),t=new Set;for(const i of e)if(i.supplier_part_numbers)for(const r of Object.keys(i.supplier_part_numbers))t.add(r);return de.jsx("div",{className:"rf-overflow-x-auto",children:de.jsxs("table",{className:"rf-w-full rf-text-left rf-text-sm",children:[de.jsx("thead",{children:de.jsxs("tr",{className:"rf-border-b",children:[de.jsx("th",{className:"rf-p-2",children:"Name"}),Array.from(t).map(i=>de.jsx("th",{className:"rf-p-2 rf-capitalize",children:i},i))]})}),de.jsx("tbody",{children:e.map(i=>de.jsxs("tr",{className:"rf-border-b",children:[de.jsx("td",{className:"rf-p-2",children:i.name}),Array.from(t).map(r=>de.jsx("td",{className:"rf-p-2",children:qHn(r,i.supplier_part_numbers?.[r]?.[0]||"")},r))]},i.source_component_id))})]})})},W1e=be.forwardRef(({className:n,type:e,...t},i)=>de.jsx("input",{type:e,className:$o("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",n),ref:i,...t}));W1e.displayName="Input";var Bht={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}}},Z1e=new Set;for(const[n,e]of Object.entries(Bht)){Z1e.add(n);for(const t of Object.keys(e.variants))Z1e.add(t)}function YHn(n){for(const[e,t]of Object.entries(Bht))if(n in t.variants)return{baseUnit:t.baseUnit,conversionFactor:t.variants[n]};return{baseUnit:n,conversionFactor:1}}var Uht={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 hE(n){if(n==null)return{parsedUnit:null,unitOfValue:null,value:null};if(typeof n=="string"&&n.match(/^-?[\d\.]+$/))return{value:Number.parseFloat(n),parsedUnit:null,unitOfValue:null};if(typeof n=="number")return{value:n,parsedUnit:null,unitOfValue:null};if(typeof n=="object"&&"x"in n&&"y"in n){const{parsedUnit:a,unitOfValue:c}=hE(n.x),l=hE(n.x),u=hE(n.y);return l.value===null||u.value===null?{parsedUnit:null,unitOfValue:null,value:null}:{parsedUnit:a,unitOfValue:c,value:{x:l.value,y:u.value}}}const t=n.toString().split("").reverse().join("").match(/[^\d\s]+/)?.[0];if(!t)throw new Error(`Could not determine unit: "${n}"`);const i=t.split("").reverse().join(""),r=n.slice(0,-i.length);if(i in Uht&&!Z1e.has(i)){const a=Uht[i];return{parsedUnit:null,unitOfValue:null,value:Number.parseFloat(r)*a}}const{baseUnit:o,conversionFactor:s}=YHn(i);return{parsedUnit:i,unitOfValue:o,value:s*Number.parseFloat(r)}}var Aq=k().or(Ne()).transform(n=>hE(n).value),K1e=k().or(Ne()).transform(n=>hE(n).value).transform(n=>Number.parseFloat(n.toPrecision(12))),jht=k().or(Ne()).transform(n=>hE(n).value),P4=k().or(Ne()).transform(n=>hE(n).value),qs=k().or(Ne()).transform(n=>hE(n).value),Cq=k().or(Ne()).transform(n=>hE(n).value),xi=qs,XHn=k().or(Ne()).transform(n=>hE(n).value),G8=k().or(Ne()).transform(n=>hE(n).value),WHn=G8,R4=G8,Hht=k().datetime(),Tw=k().or(Ne()).transform(n=>typeof n=="number"?n:n.endsWith("deg")?Number.parseFloat(n.split("deg")[0]):n.endsWith("rad")?Number.parseFloat(n.split("rad")[0])*180/Math.PI:Number.parseFloat(n)),Vht=Ne().or(k().endsWith("mAh")).transform(n=>{if(typeof n=="string"){const e=n.replace("mAh",""),t=Number.parseFloat(e);if(Number.isNaN(t))throw new Error("Invalid capacity");return t}return n}).describe("Battery capacity in mAh"),zs=Te({x:xi,y:xi}),ZHn=zs,Y8=Te({x:xi,y:xi,z:xi}),KHn=Y8,Q1e=Te({width:Ne(),height:Ne()}),QHn=n=>{const e="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";return Array.from({length:n},()=>e[Math.floor(Math.random()*e.length)]).join("")},ir=n=>k().optional().default(()=>`${n}_${QHn(10)}`),Pq=Xt(["top_left","top_center","top_right","center_left","center","center_right","bottom_left","bottom_center","bottom_right"]),qht=Xt(["jlcpcb","macrofab","pcbway","digikey","mouser","lcsc"]),s1=Te({type:fe("source_component"),ftype:k().optional(),source_component_id:k(),name:k(),manufacturer_part_number:k().optional(),supplier_part_numbers:os(qht,dt(k())).optional(),display_value:k().optional(),are_pins_interchangeable:tt().optional(),internally_connected_source_port_ids:dt(dt(k())).optional(),source_group_id:k().optional(),subcircuit_id:k().optional()}),J1e=s1.extend({ftype:fe("simple_capacitor"),capacitance:K1e,max_voltage_rating:P4.optional(),display_capacitance:k().optional(),max_decoupling_trace_length:xi.optional()}),exe=s1.extend({ftype:fe("simple_resistor"),resistance:Aq,display_resistance:k().optional()}),Rq=s1.extend({ftype:fe("simple_diode")}),txe=Rq.extend({ftype:fe("simple_led"),color:k().optional(),wavelength:k().optional()}),Ght=s1.extend({ftype:fe("simple_ground")}),nxe=s1.extend({ftype:fe("simple_chip")}),ixe=s1.extend({ftype:fe("simple_power_source"),voltage:P4}),JHn=s1.extend({ftype:fe("simple_fuse"),current_rating_amps:Ne().describe("Nominal current in amps the fuse is rated for"),voltage_rating_volts:Ne().describe("Voltage rating in volts, e.g. ±5V would be 5")}),rxe=s1.extend({ftype:fe("simple_battery"),capacity:Vht}),oxe=s1.extend({ftype:fe("simple_inductor"),inductance:jht,max_current_rating:Ne().optional()}),sxe=s1.extend({ftype:fe("simple_push_button")}),axe=s1.extend({ftype:fe("simple_potentiometer"),max_resistance:Aq}),Yht=s1.extend({ftype:fe("simple_crystal"),frequency:Ne().describe("Frequency in Hz"),load_capacitance:Ne().optional().describe("Load capacitance in pF")}),cxe=s1.extend({ftype:fe("simple_pin_header"),pin_count:Ne(),gender:Xt(["male","female"]).optional().default("male")}),lxe=s1.extend({ftype:fe("simple_pinout")}),uxe=s1.extend({ftype:fe("simple_resonator"),load_capacitance:K1e,equivalent_series_resistance:Aq.optional(),frequency:Cq}),dxe=s1.extend({ftype:fe("simple_transistor"),transistor_type:Xt(["npn","pnp"])}),hxe=s1.extend({ftype:fe("simple_test_point"),footprint_variant:Xt(["pad","through_hole"]).optional(),pad_shape:Xt(["rect","circle"]).optional(),pad_diameter:Un([Ne(),k()]).optional(),hole_diameter:Un([Ne(),k()]).optional(),width:Un([Ne(),k()]).optional(),height:Un([Ne(),k()]).optional()}),pxe=s1.extend({ftype:fe("simple_mosfet"),channel_type:Xt(["n","p"]),mosfet_mode:Xt(["enhancement","depletion"])}),fxe=s1.extend({ftype:fe("simple_switch")}),mxe=Te({type:fe("source_project_metadata"),name:k().optional(),software_used_string:k().optional(),project_url:k().optional(),created_at:Hht.optional()}),Xht=Te({type:fe("source_missing_property_error"),source_missing_property_error_id:ir("source_missing_property_error"),source_component_id:k(),property_name:k(),subcircuit_id:k().optional(),error_type:fe("source_missing_property_error").default("source_missing_property_error"),message:k()}).describe("The source code is missing a property"),Wht=Te({type:fe("source_failed_to_create_component_error"),source_failed_to_create_component_error_id:ir("source_failed_to_create_component_error"),error_type:fe("source_failed_to_create_component_error").default("source_failed_to_create_component_error"),component_name:k().optional(),subcircuit_id:k().optional(),parent_source_component_id:k().optional(),message:k(),pcb_center:Te({x:Ne().optional(),y:Ne().optional()}).optional(),schematic_center:Te({x:Ne().optional(),y:Ne().optional()}).optional()}).describe("Error emitted when a component fails to be constructed"),_xe=Te({type:fe("source_trace_not_connected_error"),source_trace_not_connected_error_id:ir("source_trace_not_connected_error"),error_type:fe("source_trace_not_connected_error").default("source_trace_not_connected_error"),message:k(),subcircuit_id:k().optional(),source_group_id:k().optional(),source_trace_id:k().optional(),connected_source_port_ids:dt(k()).optional(),selectors_not_found:dt(k()).optional()}).describe("Occurs when a source trace selector does not match any ports"),Zht=Te({type:fe("source_property_ignored_warning"),source_property_ignored_warning_id:ir("source_property_ignored_warning"),source_component_id:k(),property_name:k(),subcircuit_id:k().optional(),error_type:fe("source_property_ignored_warning").default("source_property_ignored_warning"),message:k()}).describe("The source property was ignored"),gxe=Te({type:fe("source_pin_missing_trace_warning"),source_pin_missing_trace_warning_id:ir("source_pin_missing_trace_warning"),warning_type:fe("source_pin_missing_trace_warning").default("source_pin_missing_trace_warning"),message:k(),source_component_id:k(),source_port_id:k(),subcircuit_id:k().optional()}).describe("Warning emitted when a source component pin is missing a trace connection"),Kht=Un([exe,J1e,Rq,txe,Ght,nxe,ixe,rxe,oxe,sxe,axe,Yht,cxe,lxe,uxe,fxe,dxe,hxe,pxe,JHn,mxe,Xht,Wht,_xe,Zht,gxe]),Qht=Te({type:fe("source_port"),pin_number:Ne().optional(),port_hints:dt(k()).optional(),name:k(),source_port_id:k(),source_component_id:k(),subcircuit_id:k().optional(),subcircuit_connectivity_map_key:k().optional()}),Jht=Te({type:fe("source_trace"),source_trace_id:k(),connected_source_port_ids:dt(k()),connected_source_net_ids:dt(k()),subcircuit_id:k().optional(),subcircuit_connectivity_map_key:k().optional(),max_length:Ne().optional(),min_trace_thickness:Ne().optional(),display_name:k().optional()}),ept=Te({type:fe("source_group"),source_group_id:k(),subcircuit_id:k().optional(),parent_subcircuit_id:k().optional(),parent_source_group_id:k().optional(),is_subcircuit:tt().optional(),show_as_schematic_box:tt().optional(),name:k().optional(),was_automatically_named:tt().optional()}),tpt=Te({type:fe("source_net"),source_net_id:k(),name:k(),member_source_group_ids:dt(k()),is_power:tt().optional(),is_ground:tt().optional(),is_digital_signal:tt().optional(),is_analog_signal:tt().optional(),is_positive_voltage_source:tt().optional(),trace_width:Ne().optional(),subcircuit_id:k().optional(),subcircuit_connectivity_map_key:k().optional()}),npt=Te({type:fe("source_board"),source_board_id:k(),source_group_id:k(),title:k().optional()}).describe("Defines a board in the source domain"),ipt=Te({type:fe("source_pcb_ground_plane"),source_pcb_ground_plane_id:k(),source_group_id:k(),source_net_id:k(),subcircuit_id:k().optional()}).describe("Defines a ground plane in the source domain"),rpt=["top","bottom","inner1","inner2","inner3","inner4","inner5","inner6"],yxe=Xt(rpt),bh=yxe.or(Te({name:yxe})).transform(n=>typeof n=="string"?n:n.name),IT=Xt(["top","bottom"]),opt=Te({type:fe("source_manually_placed_via"),source_manually_placed_via_id:k(),source_group_id:k(),source_net_id:k(),subcircuit_id:k().optional(),source_trace_id:k().optional()}).describe("Defines a via that is manually placed in the source domain"),spt=Te({type:fe("schematic_box"),schematic_component_id:k().optional(),width:xi,height:xi,is_dashed:tt().default(!1),x:xi,y:xi,subcircuit_id:k().optional()}).describe("Draws a box on the schematic"),apt=Te({type:fe("schematic_path"),schematic_component_id:k(),fill_color:Xt(["red","blue"]).optional(),is_filled:tt().optional(),points:dt(zs),subcircuit_id:k().optional()}),cpt=os(Te({left_margin:qs.optional(),right_margin:qs.optional(),top_margin:qs.optional(),bottom_margin:qs.optional()})),lpt=Te({left_size:Ne(),right_size:Ne(),top_size:Ne().optional(),bottom_size:Ne().optional()}),upt=Te({left_side:Te({pins:dt(Ne()),direction:Xt(["top-to-bottom","bottom-to-top"]).optional()}).optional(),right_side:Te({pins:dt(Ne()),direction:Xt(["top-to-bottom","bottom-to-top"]).optional()}).optional(),top_side:Te({pins:dt(Ne()),direction:Xt(["left-to-right","right-to-left"]).optional()}).optional(),bottom_side:Te({pins:dt(Ne()),direction:Xt(["left-to-right","right-to-left"]).optional()}).optional()}),dpt=Un([lpt,upt]),hpt=Te({type:fe("schematic_component"),size:Q1e,center:zs,source_component_id:k().optional(),schematic_component_id:k(),pin_spacing:qs.optional(),pin_styles:cpt.optional(),box_width:qs.optional(),symbol_name:k().optional(),port_arrangement:dpt.optional(),port_labels:os(k()).optional(),symbol_display_value:k().optional(),subcircuit_id:k().optional(),schematic_group_id:k().optional(),is_schematic_group:tt().optional(),source_group_id:k().optional(),is_box_with_pins:tt().optional().default(!0)}),ppt=Te({type:fe("schematic_line"),schematic_line_id:ir("schematic_line"),schematic_component_id:k(),x1:xi,y1:xi,x2:xi,y2:xi,stroke_width:xi.nullable().optional(),color:k().default("#000000"),is_dashed:tt().default(!1),subcircuit_id:k().optional()}).describe("Draws a styled line on the schematic"),fpt=Te({type:fe("schematic_rect"),schematic_rect_id:ir("schematic_rect"),schematic_component_id:k(),center:zs,width:xi,height:xi,rotation:Tw.default(0),stroke_width:xi.nullable().optional(),color:k().default("#000000"),is_filled:tt().default(!1),fill_color:k().optional(),is_dashed:tt().default(!1),subcircuit_id:k().optional()}).describe("Draws a styled rectangle on the schematic"),mpt=Te({type:fe("schematic_circle"),schematic_circle_id:ir("schematic_circle"),schematic_component_id:k(),center:zs,radius:xi,stroke_width:xi.nullable().optional(),color:k().default("#000000"),is_filled:tt().default(!1),fill_color:k().optional(),is_dashed:tt().default(!1),subcircuit_id:k().optional()}).describe("Draws a styled circle on the schematic"),_pt=Te({type:fe("schematic_arc"),schematic_arc_id:ir("schematic_arc"),schematic_component_id:k(),center:zs,radius:xi,start_angle_degrees:Tw,end_angle_degrees:Tw,direction:Xt(["clockwise","counterclockwise"]).default("counterclockwise"),stroke_width:xi.nullable().optional(),color:k().default("#000000"),is_dashed:tt().default(!1),subcircuit_id:k().optional()}).describe("Draws a styled arc on the schematic"),gpt=Te({type:fe("schematic_trace"),schematic_trace_id:k(),source_trace_id:k().optional(),junctions:dt(Te({x:Ne(),y:Ne()})),edges:dt(Te({from:Te({x:Ne(),y:Ne()}),to:Te({x:Ne(),y:Ne()}),is_crossing:tt().optional(),from_schematic_port_id:k().optional(),to_schematic_port_id:k().optional()})),subcircuit_id:k().optional(),subcircuit_connectivity_map_key:k().optional()}),eVn=Xt(["center","left","right","top","bottom"]),ypt=Te({type:fe("schematic_text"),schematic_component_id:k().optional(),schematic_text_id:k(),text:k(),font_size:Ne().default(.18),position:Te({x:xi,y:xi}),rotation:Ne().default(0),anchor:Un([eVn.describe("legacy"),Pq]).default("center"),color:k().default("#000000"),subcircuit_id:k().optional()}),xpt=Te({type:fe("schematic_port"),schematic_port_id:k(),source_port_id:k(),schematic_component_id:k().optional(),center:zs,facing_direction:Xt(["up","down","left","right"]).optional(),distance_from_component_edge:Ne().optional(),side_of_component:Xt(["top","bottom","left","right"]).optional(),true_ccw_index:Ne().optional(),pin_number:Ne().optional(),display_pin_label:k().optional(),subcircuit_id:k().optional(),is_connected:tt().optional(),has_input_arrow:tt().optional(),has_output_arrow:tt().optional()}).describe("Defines a port on a schematic component"),vpt=Te({type:fe("schematic_net_label"),schematic_net_label_id:ir("schematic_net_label"),schematic_trace_id:k().optional(),source_trace_id:k().optional(),source_net_id:k(),center:zs,anchor_position:zs.optional(),anchor_side:Xt(["top","bottom","left","right"]),text:k(),symbol_name:k().optional(),is_movable:tt().optional(),subcircuit_id:k().optional()}),bpt=Te({type:fe("schematic_error"),schematic_error_id:k(),error_type:fe("schematic_port_not_found").default("schematic_port_not_found"),message:k(),subcircuit_id:k().optional()}).describe("Defines a schematic error on the schematic"),wpt=Te({type:fe("schematic_layout_error"),schematic_layout_error_id:ir("schematic_layout_error"),error_type:fe("schematic_layout_error").default("schematic_layout_error"),message:k(),source_group_id:k(),schematic_group_id:k(),subcircuit_id:k().optional()}).describe("Error emitted when schematic layout fails for a group"),Iq=Te({type:fe("schematic_debug_object"),label:k().optional(),subcircuit_id:k().optional()}),Spt=Iq.extend({shape:fe("rect"),center:zs,size:Q1e}),Ept=Iq.extend({shape:fe("line"),start:zs,end:zs}),Tpt=Iq.extend({shape:fe("point"),center:zs}),Mpt=bm("shape",[Spt,Ept,Tpt]),Apt=Te({type:fe("schematic_voltage_probe"),schematic_voltage_probe_id:k(),position:zs,schematic_trace_id:k(),voltage:P4.optional(),subcircuit_id:k().optional()}).describe("Defines a voltage probe measurement point on a schematic trace"),Cpt=Te({type:fe("schematic_manual_edit_conflict_warning"),schematic_manual_edit_conflict_warning_id:ir("schematic_manual_edit_conflict_warning"),warning_type:fe("schematic_manual_edit_conflict_warning").default("schematic_manual_edit_conflict_warning"),message:k(),schematic_component_id:k(),schematic_group_id:k().optional(),subcircuit_id:k().optional(),source_component_id:k()}).describe("Warning emitted when a component has both manual placement and explicit schX/schY coordinates"),Ppt=Te({type:fe("schematic_group"),schematic_group_id:ir("schematic_group"),source_group_id:k(),is_subcircuit:tt().optional(),subcircuit_id:k().optional(),width:qs,height:qs,center:zs,schematic_component_ids:dt(k()),show_as_schematic_box:tt().optional(),name:k().optional(),description:k().optional()}).describe("Defines a group of components on the schematic"),Rpt=Te({type:fe("schematic_table"),schematic_table_id:ir("schematic_table"),anchor_position:zs,column_widths:dt(xi),row_heights:dt(xi),cell_padding:xi.optional(),border_width:xi.optional(),subcircuit_id:k().optional(),schematic_component_id:k().optional(),anchor:Pq.optional()}).describe("Defines a table on the schematic"),Ipt=Te({type:fe("schematic_table_cell"),schematic_table_cell_id:ir("schematic_table_cell"),schematic_table_id:k(),start_row_index:Ne(),end_row_index:Ne(),start_column_index:Ne(),end_column_index:Ne(),text:k().optional(),center:zs,width:xi,height:xi,horizontal_align:Xt(["left","center","right"]).optional(),vertical_align:Xt(["top","middle","bottom"]).optional(),font_size:xi.optional(),subcircuit_id:k().optional()}).describe("Defines a cell within a schematic_table"),Npt=Te({x:xi,y:xi,bulge:Ne().optional()}),xxe=Te({vertices:dt(Npt)}),kpt=Te({outer_ring:xxe,inner_rings:dt(xxe).default([])}),Opt=Te({x:xi,y:xi,via:tt().optional(),via_to_layer:bh.optional()}),tVn=dt(Opt),Lpt=Te({x:xi,y:xi,via:tt().optional(),to_layer:bh.optional(),trace_width:xi.optional()}),Dpt=Te({type:fe("pcb_component"),pcb_component_id:ir("pcb_component"),source_component_id:k(),center:zs,layer:bh,rotation:Tw,width:qs,height:qs,do_not_place:tt().optional(),subcircuit_id:k().optional(),pcb_group_id:k().optional(),obstructs_within_bounds:tt().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"),$pt=Te({type:fe("pcb_hole"),pcb_hole_id:ir("pcb_hole"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),hole_shape:Xt(["circle","square"]),hole_diameter:Ne(),x:xi,y:xi}),nVn=$pt.describe("Defines a circular or square hole on the PCB"),zpt=Te({type:fe("pcb_hole"),pcb_hole_id:ir("pcb_hole"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),hole_shape:fe("oval"),hole_width:Ne(),hole_height:Ne(),x:xi,y:xi}),iVn=zpt.describe("Defines an oval hole on the PCB"),Fpt=Te({type:fe("pcb_hole"),pcb_hole_id:ir("pcb_hole"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),hole_shape:fe("pill"),hole_width:Ne(),hole_height:Ne(),x:xi,y:xi}),rVn=Fpt.describe("Defines a pill-shaped hole on the PCB"),Bpt=Te({type:fe("pcb_hole"),pcb_hole_id:ir("pcb_hole"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),hole_shape:fe("rotated_pill"),hole_width:Ne(),hole_height:Ne(),x:xi,y:xi,ccw_rotation:Tw}),oVn=Bpt.describe("Defines a rotated pill-shaped hole on the PCB"),Upt=$pt.or(zpt).or(Fpt).or(Bpt),sVn=Te({type:fe("pcb_plated_hole"),shape:fe("circle"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),outer_diameter:Ne(),hole_diameter:Ne(),x:xi,y:xi,layers:dt(bh),port_hints:dt(k()).optional(),pcb_component_id:k().optional(),pcb_port_id:k().optional(),pcb_plated_hole_id:ir("pcb_plated_hole")}),aVn=Te({type:fe("pcb_plated_hole"),shape:Xt(["oval","pill"]),pcb_group_id:k().optional(),subcircuit_id:k().optional(),outer_width:Ne(),outer_height:Ne(),hole_width:Ne(),hole_height:Ne(),x:xi,y:xi,ccw_rotation:Tw,layers:dt(bh),port_hints:dt(k()).optional(),pcb_component_id:k().optional(),pcb_port_id:k().optional(),pcb_plated_hole_id:ir("pcb_plated_hole")}),cVn=Te({type:fe("pcb_plated_hole"),shape:fe("circular_hole_with_rect_pad"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),hole_shape:fe("circle"),pad_shape:fe("rect"),hole_diameter:Ne(),rect_pad_width:Ne(),rect_pad_height:Ne(),rect_border_radius:Ne().optional(),hole_offset_x:xi.default(0),hole_offset_y:xi.default(0),x:xi,y:xi,layers:dt(bh),port_hints:dt(k()).optional(),pcb_component_id:k().optional(),pcb_port_id:k().optional(),pcb_plated_hole_id:ir("pcb_plated_hole")}),lVn=Te({type:fe("pcb_plated_hole"),shape:fe("pill_hole_with_rect_pad"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),hole_shape:fe("pill"),pad_shape:fe("rect"),hole_width:Ne(),hole_height:Ne(),rect_pad_width:Ne(),rect_pad_height:Ne(),rect_border_radius:Ne().optional(),hole_offset_x:xi.default(0),hole_offset_y:xi.default(0),x:xi,y:xi,layers:dt(bh),port_hints:dt(k()).optional(),pcb_component_id:k().optional(),pcb_port_id:k().optional(),pcb_plated_hole_id:ir("pcb_plated_hole")}),uVn=Te({type:fe("pcb_plated_hole"),shape:fe("rotated_pill_hole_with_rect_pad"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),hole_shape:fe("rotated_pill"),pad_shape:fe("rect"),hole_width:Ne(),hole_height:Ne(),hole_ccw_rotation:Tw,rect_pad_width:Ne(),rect_pad_height:Ne(),rect_border_radius:Ne().optional(),rect_ccw_rotation:Tw,hole_offset_x:xi.default(0),hole_offset_y:xi.default(0),x:xi,y:xi,layers:dt(bh),port_hints:dt(k()).optional(),pcb_component_id:k().optional(),pcb_port_id:k().optional(),pcb_plated_hole_id:ir("pcb_plated_hole")}),jpt=Un([sVn,aVn,cVn,lVn,uVn]),Hpt=Te({type:fe("pcb_port"),pcb_port_id:ir("pcb_port"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),source_port_id:k(),pcb_component_id:k(),x:xi,y:xi,layers:dt(bh),is_board_pinout:tt().optional()}).describe("Defines a port on the PCB"),dVn=Te({type:fe("pcb_smtpad"),shape:fe("circle"),pcb_smtpad_id:ir("pcb_smtpad"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),x:xi,y:xi,radius:Ne(),layer:bh,port_hints:dt(k()).optional(),pcb_component_id:k().optional(),pcb_port_id:k().optional(),is_covered_with_solder_mask:tt().optional()}),hVn=Te({type:fe("pcb_smtpad"),shape:fe("rect"),pcb_smtpad_id:ir("pcb_smtpad"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),x:xi,y:xi,width:Ne(),height:Ne(),rect_border_radius:Ne().optional(),layer:bh,port_hints:dt(k()).optional(),pcb_component_id:k().optional(),pcb_port_id:k().optional(),is_covered_with_solder_mask:tt().optional()}),pVn=Te({type:fe("pcb_smtpad"),shape:fe("rotated_rect"),pcb_smtpad_id:ir("pcb_smtpad"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),x:xi,y:xi,width:Ne(),height:Ne(),rect_border_radius:Ne().optional(),ccw_rotation:Tw,layer:bh,port_hints:dt(k()).optional(),pcb_component_id:k().optional(),pcb_port_id:k().optional(),is_covered_with_solder_mask:tt().optional()}),Vpt=Te({type:fe("pcb_smtpad"),shape:fe("pill"),pcb_smtpad_id:ir("pcb_smtpad"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),x:xi,y:xi,width:Ne(),height:Ne(),radius:Ne(),layer:bh,port_hints:dt(k()).optional(),pcb_component_id:k().optional(),pcb_port_id:k().optional(),is_covered_with_solder_mask:tt().optional()}),fVn=Te({type:fe("pcb_smtpad"),shape:fe("rotated_pill"),pcb_smtpad_id:ir("pcb_smtpad"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),x:xi,y:xi,width:Ne(),height:Ne(),radius:Ne(),ccw_rotation:Tw,layer:bh,port_hints:dt(k()).optional(),pcb_component_id:k().optional(),pcb_port_id:k().optional(),is_covered_with_solder_mask:tt().optional()}),mVn=Te({type:fe("pcb_smtpad"),shape:fe("polygon"),pcb_smtpad_id:ir("pcb_smtpad"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),points:dt(zs),layer:bh,port_hints:dt(k()).optional(),pcb_component_id:k().optional(),pcb_port_id:k().optional(),is_covered_with_solder_mask:tt().optional()}),qpt=bm("shape",[dVn,hVn,pVn,fVn,Vpt,mVn]).describe("Defines an SMT pad on the PCB"),_Vn=Te({type:fe("pcb_solder_paste"),shape:fe("circle"),pcb_solder_paste_id:ir("pcb_solder_paste"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),x:xi,y:xi,radius:Ne(),layer:bh,pcb_component_id:k().optional(),pcb_smtpad_id:k().optional()}),gVn=Te({type:fe("pcb_solder_paste"),shape:fe("rect"),pcb_solder_paste_id:ir("pcb_solder_paste"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),x:xi,y:xi,width:Ne(),height:Ne(),layer:bh,pcb_component_id:k().optional(),pcb_smtpad_id:k().optional()}),yVn=Te({type:fe("pcb_solder_paste"),shape:fe("pill"),pcb_solder_paste_id:ir("pcb_solder_paste"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),x:xi,y:xi,width:Ne(),height:Ne(),radius:Ne(),layer:bh,pcb_component_id:k().optional(),pcb_smtpad_id:k().optional()}),xVn=Te({type:fe("pcb_solder_paste"),shape:fe("rotated_rect"),pcb_solder_paste_id:ir("pcb_solder_paste"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),x:xi,y:xi,width:Ne(),height:Ne(),ccw_rotation:xi,layer:bh,pcb_component_id:k().optional(),pcb_smtpad_id:k().optional()}),vVn=Te({type:fe("pcb_solder_paste"),shape:fe("oval"),pcb_solder_paste_id:ir("pcb_solder_paste"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),x:xi,y:xi,width:Ne(),height:Ne(),layer:bh,pcb_component_id:k().optional(),pcb_smtpad_id:k().optional()}),Gpt=Un([_Vn,gVn,yVn,xVn,vVn]).describe("Defines solderpaste on the PCB"),Ypt=Te({type:fe("pcb_text"),pcb_text_id:ir("pcb_text"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),text:k(),center:zs,layer:bh,width:qs,height:qs,lines:Ne(),align:Xt(["bottom-left"])}).describe("Defines text on the PCB"),Xpt=Te({route_type:fe("wire"),x:xi,y:xi,width:xi,start_pcb_port_id:k().optional(),end_pcb_port_id:k().optional(),layer:bh}),Wpt=Te({route_type:fe("via"),x:xi,y:xi,hole_diameter:xi.optional(),outer_diameter:xi.optional(),from_layer:k(),to_layer:k()}),Zpt=Un([Xpt,Wpt]),Kpt=Te({type:fe("pcb_trace"),source_trace_id:k().optional(),pcb_component_id:k().optional(),pcb_trace_id:ir("pcb_trace"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),route_thickness_mode:Xt(["constant","interpolated"]).default("constant").optional(),route_order_index:Ne().optional(),should_round_corners:tt().optional(),trace_length:Ne().optional(),highlight_color:k().optional(),route:dt(Zpt)}).describe("Defines a trace on the PCB"),Qpt=Te({type:fe("pcb_trace_error"),pcb_trace_error_id:ir("pcb_trace_error"),error_type:fe("pcb_trace_error").default("pcb_trace_error"),message:k(),center:zs.optional(),pcb_trace_id:k(),source_trace_id:k(),pcb_component_ids:dt(k()),pcb_port_ids:dt(k()),subcircuit_id:k().optional()}).describe("Defines a trace error on the PCB"),Jpt=Te({type:fe("pcb_trace_missing_error"),pcb_trace_missing_error_id:ir("pcb_trace_missing_error"),error_type:fe("pcb_trace_missing_error").default("pcb_trace_missing_error"),message:k(),center:zs.optional(),source_trace_id:k(),pcb_component_ids:dt(k()),pcb_port_ids:dt(k()),subcircuit_id:k().optional()}).describe("Defines an error when a source trace has no corresponding PCB trace"),eft=Te({type:fe("pcb_port_not_matched_error"),pcb_error_id:ir("pcb_error"),error_type:fe("pcb_port_not_matched_error").default("pcb_port_not_matched_error"),message:k(),pcb_component_ids:dt(k()),subcircuit_id:k().optional()}).describe("Defines a trace error on the PCB where a port is not matched"),tft=Te({type:fe("pcb_port_not_connected_error"),pcb_port_not_connected_error_id:ir("pcb_port_not_connected_error"),error_type:fe("pcb_port_not_connected_error").default("pcb_port_not_connected_error"),message:k(),pcb_port_ids:dt(k()),pcb_component_ids:dt(k()),subcircuit_id:k().optional()}).describe("Defines an error when a pcb port is not connected to any trace"),nft=Te({type:fe("pcb_net"),pcb_net_id:ir("pcb_net"),source_net_id:k().optional(),highlight_color:k().optional()}).describe("Defines a net on the PCB"),ift=Te({type:fe("pcb_via"),pcb_via_id:ir("pcb_via"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),x:xi,y:xi,outer_diameter:xi.default("0.6mm"),hole_diameter:xi.default("0.25mm"),from_layer:bh.optional(),to_layer:bh.optional(),layers:dt(bh),pcb_trace_id:k().optional()}).describe("Defines a via on the PCB"),rft=Te({type:fe("pcb_board"),pcb_board_id:ir("pcb_board"),is_subcircuit:tt().optional(),subcircuit_id:k().optional(),width:qs,height:qs,center:zs,thickness:qs.optional().default(1.4),num_layers:Ne().optional().default(4),outline:dt(zs).optional(),material:Xt(["fr4","fr1"]).default("fr4")}).describe("Defines the board outline of the PCB"),oft=Te({type:fe("pcb_placement_error"),pcb_placement_error_id:ir("pcb_placement_error"),error_type:fe("pcb_placement_error").default("pcb_placement_error"),message:k(),subcircuit_id:k().optional()}).describe("Defines a placement error on the PCB"),sft=Te({type:fe("pcb_trace_hint"),pcb_trace_hint_id:ir("pcb_trace_hint"),pcb_port_id:k(),pcb_component_id:k(),route:dt(Lpt),subcircuit_id:k().optional()}).describe("A hint that can be used during generation of a PCB trace"),aft=Te({type:fe("pcb_silkscreen_line"),pcb_silkscreen_line_id:ir("pcb_silkscreen_line"),pcb_component_id:k(),pcb_group_id:k().optional(),subcircuit_id:k().optional(),stroke_width:xi.default("0.1mm"),x1:xi,y1:xi,x2:xi,y2:xi,layer:IT}).describe("Defines a silkscreen line on the PCB"),cft=Te({type:fe("pcb_silkscreen_path"),pcb_silkscreen_path_id:ir("pcb_silkscreen_path"),pcb_component_id:k(),pcb_group_id:k().optional(),subcircuit_id:k().optional(),layer:IT,route:dt(zs),stroke_width:qs}).describe("Defines a silkscreen path on the PCB"),lft=Te({type:fe("pcb_silkscreen_text"),pcb_silkscreen_text_id:ir("pcb_silkscreen_text"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),font:fe("tscircuit2024").default("tscircuit2024"),font_size:xi.default("0.2mm"),pcb_component_id:k(),text:k(),is_knockout:tt().default(!1).optional(),knockout_padding:Te({left:qs,top:qs,bottom:qs,right:qs}).default({left:"0.2mm",top:"0.2mm",bottom:"0.2mm",right:"0.2mm"}).optional(),ccw_rotation:Ne().optional(),layer:bh,is_mirrored:tt().default(!1).optional(),anchor_position:zs.default({x:0,y:0}),anchor_alignment:Pq.default("center")}).describe("Defines silkscreen text on the PCB"),uft=Te({type:fe("pcb_silkscreen_rect"),pcb_silkscreen_rect_id:ir("pcb_silkscreen_rect"),pcb_component_id:k(),pcb_group_id:k().optional(),subcircuit_id:k().optional(),center:zs,width:qs,height:qs,layer:bh,stroke_width:qs.default("1mm"),is_filled:tt().default(!0).optional(),has_stroke:tt().optional(),is_stroke_dashed:tt().optional()}).describe("Defines a silkscreen rect on the PCB"),dft=Te({type:fe("pcb_silkscreen_circle"),pcb_silkscreen_circle_id:ir("pcb_silkscreen_circle"),pcb_component_id:k(),pcb_group_id:k().optional(),subcircuit_id:k().optional(),center:zs,radius:qs,layer:IT,stroke_width:qs.default("1mm")}).describe("Defines a silkscreen circle on the PCB"),hft=Te({type:fe("pcb_silkscreen_oval"),pcb_silkscreen_oval_id:ir("pcb_silkscreen_oval"),pcb_component_id:k(),pcb_group_id:k().optional(),subcircuit_id:k().optional(),center:zs,radius_x:xi,radius_y:xi,layer:IT}).describe("Defines a silkscreen oval on the PCB"),pft=Te({type:fe("pcb_fabrication_note_text"),pcb_fabrication_note_text_id:ir("pcb_fabrication_note_text"),subcircuit_id:k().optional(),pcb_group_id:k().optional(),font:fe("tscircuit2024").default("tscircuit2024"),font_size:xi.default("1mm"),pcb_component_id:k(),text:k(),layer:IT,anchor_position:zs.default({x:0,y:0}),anchor_alignment:Xt(["center","top_left","top_right","bottom_left","bottom_right"]).default("center"),color:k().optional()}).describe("Defines a fabrication note in text on the PCB, useful for leaving notes for assemblers or fabricators"),fft=Te({type:fe("pcb_fabrication_note_path"),pcb_fabrication_note_path_id:ir("pcb_fabrication_note_path"),pcb_component_id:k(),subcircuit_id:k().optional(),layer:bh,route:dt(zs),stroke_width:qs,color:k().optional()}).describe("Defines a fabrication path on the PCB for fabricators or assemblers"),mft=Te({type:fe("pcb_fabrication_note_rect"),pcb_fabrication_note_rect_id:ir("pcb_fabrication_note_rect"),pcb_component_id:k(),pcb_group_id:k().optional(),subcircuit_id:k().optional(),center:zs,width:qs,height:qs,layer:IT,stroke_width:qs.default("0.1mm"),is_filled:tt().optional(),has_stroke:tt().optional(),is_stroke_dashed:tt().optional(),color:k().optional()}).describe("Defines a fabrication note rectangle on the PCB"),_ft=Te({type:fe("pcb_fabrication_note_dimension"),pcb_fabrication_note_dimension_id:ir("pcb_fabrication_note_dimension"),pcb_component_id:k(),pcb_group_id:k().optional(),subcircuit_id:k().optional(),layer:IT,from:zs,to:zs,text:k().optional(),offset:qs.optional(),font:fe("tscircuit2024").default("tscircuit2024"),font_size:qs.default("1mm"),color:k().optional(),arrow_size:qs.default("1mm")}).describe("Defines a measurement annotation within PCB fabrication notes"),gft=Te({type:fe("pcb_note_text"),pcb_note_text_id:ir("pcb_note_text"),pcb_component_id:k().optional(),pcb_group_id:k().optional(),subcircuit_id:k().optional(),font:fe("tscircuit2024").default("tscircuit2024"),font_size:xi.default("1mm"),text:k(),anchor_position:zs.default({x:0,y:0}),anchor_alignment:Xt(["center","top_left","top_right","bottom_left","bottom_right"]).default("center"),color:k().optional()}).describe("Defines a documentation note in text on the PCB"),yft=Te({type:fe("pcb_note_rect"),pcb_note_rect_id:ir("pcb_note_rect"),pcb_component_id:k().optional(),pcb_group_id:k().optional(),subcircuit_id:k().optional(),center:zs,width:qs,height:qs,stroke_width:qs.default("0.1mm"),is_filled:tt().optional(),has_stroke:tt().optional(),is_stroke_dashed:tt().optional(),color:k().optional()}).describe("Defines a rectangular documentation note on the PCB"),xft=Te({type:fe("pcb_note_path"),pcb_note_path_id:ir("pcb_note_path"),pcb_component_id:k().optional(),pcb_group_id:k().optional(),subcircuit_id:k().optional(),route:dt(zs),stroke_width:qs.default("0.1mm"),color:k().optional()}).describe("Defines a polyline documentation note on the PCB"),vft=Te({type:fe("pcb_note_line"),pcb_note_line_id:ir("pcb_note_line"),pcb_component_id:k().optional(),pcb_group_id:k().optional(),subcircuit_id:k().optional(),x1:xi,y1:xi,x2:xi,y2:xi,stroke_width:xi.default("0.1mm"),color:k().optional(),is_dashed:tt().optional()}).describe("Defines a straight documentation note line on the PCB"),bft=Te({type:fe("pcb_note_dimension"),pcb_note_dimension_id:ir("pcb_note_dimension"),pcb_component_id:k().optional(),pcb_group_id:k().optional(),subcircuit_id:k().optional(),from:zs,to:zs,text:k().optional(),font:fe("tscircuit2024").default("tscircuit2024"),font_size:qs.default("1mm"),color:k().optional(),arrow_size:qs.default("1mm")}).describe("Defines a measurement annotation within PCB documentation notes"),wft=Te({type:fe("pcb_footprint_overlap_error"),pcb_error_id:ir("pcb_error"),error_type:fe("pcb_footprint_overlap_error").default("pcb_footprint_overlap_error"),message:k(),pcb_smtpad_ids:dt(k()).optional(),pcb_plated_hole_ids:dt(k()).optional(),pcb_hole_ids:dt(k()).optional(),pcb_keepout_ids:dt(k()).optional()}).describe("Error emitted when a pcb footprint overlaps with another element"),Sft=Te({type:fe("pcb_keepout"),shape:fe("rect"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),center:zs,width:xi,height:xi,pcb_keepout_id:k(),layers:dt(k()),description:k().optional()}).or(Te({type:fe("pcb_keepout"),shape:fe("circle"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),center:zs,radius:xi,pcb_keepout_id:k(),layers:dt(k()),description:k().optional()})),vxe=Te({type:fe("pcb_cutout"),pcb_cutout_id:ir("pcb_cutout"),pcb_group_id:k().optional(),subcircuit_id:k().optional()}),Eft=vxe.extend({shape:fe("rect"),center:zs,width:qs,height:qs,rotation:Tw.optional()}),Tft=vxe.extend({shape:fe("circle"),center:zs,radius:qs}),Mft=vxe.extend({shape:fe("polygon"),points:dt(zs)}),Aft=bm("shape",[Eft,Tft,Mft]).describe("Defines a cutout on the PCB, removing board material."),Cft=Te({type:fe("pcb_missing_footprint_error"),pcb_missing_footprint_error_id:ir("pcb_missing_footprint_error"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),error_type:fe("pcb_missing_footprint_error").default("pcb_missing_footprint_error"),source_component_id:k(),message:k()}).describe("Defines a missing footprint error on the PCB"),Pft=Te({type:fe("external_footprint_load_error"),external_footprint_load_error_id:ir("external_footprint_load_error"),pcb_component_id:k(),source_component_id:k(),pcb_group_id:k().optional(),subcircuit_id:k().optional(),footprinter_string:k().optional(),error_type:fe("external_footprint_load_error").default("external_footprint_load_error"),message:k()}).describe("Defines an error when an external footprint fails to load"),Rft=Te({type:fe("circuit_json_footprint_load_error"),circuit_json_footprint_load_error_id:ir("circuit_json_footprint_load_error"),pcb_component_id:k(),source_component_id:k(),pcb_group_id:k().optional(),subcircuit_id:k().optional(),error_type:fe("circuit_json_footprint_load_error").default("circuit_json_footprint_load_error"),message:k(),circuit_json:dt(fl()).optional()}).describe("Defines an error when a circuit JSON footprint fails to load"),Ift=Te({type:fe("pcb_group"),pcb_group_id:ir("pcb_group"),source_group_id:k(),is_subcircuit:tt().optional(),subcircuit_id:k().optional(),width:qs,height:qs,center:zs,anchor_position:zs.optional(),anchor_alignment:Xt(["center","top_left","top_right","bottom_left","bottom_right"]).optional(),pcb_component_ids:dt(k()),name:k().optional(),description:k().optional(),layout_mode:k().optional(),autorouter_configuration:Te({trace_clearance:qs}).optional(),autorouter_used_string:k().optional()}).describe("Defines a group of components on the PCB"),Nft=Te({type:fe("pcb_autorouting_error"),pcb_error_id:ir("pcb_autorouting_error"),error_type:fe("pcb_autorouting_error").default("pcb_autorouting_error"),message:k(),subcircuit_id:k().optional()}).describe("The autorouting has failed to route a portion of the board"),kft=Te({type:fe("pcb_manual_edit_conflict_warning"),pcb_manual_edit_conflict_warning_id:ir("pcb_manual_edit_conflict_warning"),warning_type:fe("pcb_manual_edit_conflict_warning").default("pcb_manual_edit_conflict_warning"),message:k(),pcb_component_id:k(),pcb_group_id:k().optional(),subcircuit_id:k().optional(),source_component_id:k()}).describe("Warning emitted when a component has both manual placement and explicit pcbX/pcbY coordinates"),Oft=Te({type:fe("pcb_breakout_point"),pcb_breakout_point_id:ir("pcb_breakout_point"),pcb_group_id:k(),subcircuit_id:k().optional(),source_trace_id:k().optional(),source_port_id:k().optional(),source_net_id:k().optional(),x:xi,y:xi}).describe("Defines a routing target within a pcb_group for a source_trace or source_net"),Lft=Te({type:fe("pcb_ground_plane"),pcb_ground_plane_id:ir("pcb_ground_plane"),source_pcb_ground_plane_id:k(),source_net_id:k(),pcb_group_id:k().optional(),subcircuit_id:k().optional()}).describe("Defines a ground plane on the PCB"),Dft=Te({type:fe("pcb_ground_plane_region"),pcb_ground_plane_region_id:ir("pcb_ground_plane_region"),pcb_ground_plane_id:k(),pcb_group_id:k().optional(),subcircuit_id:k().optional(),layer:bh,points:dt(zs)}).describe("Defines a polygon region of a ground plane"),$ft=Te({type:fe("pcb_thermal_spoke"),pcb_thermal_spoke_id:ir("pcb_thermal_spoke"),pcb_ground_plane_id:k(),shape:k(),spoke_count:Ne(),spoke_thickness:xi,spoke_inner_diameter:xi,spoke_outer_diameter:xi,pcb_plated_hole_id:k().optional(),subcircuit_id:k().optional()}).describe("Pattern for connecting a ground plane to a plated hole"),bxe=Te({type:fe("pcb_copper_pour"),pcb_copper_pour_id:ir("pcb_copper_pour"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),layer:bh,source_net_id:k().optional()}),zft=bxe.extend({shape:fe("rect"),center:zs,width:qs,height:qs,rotation:Tw.optional()}),Fft=bxe.extend({shape:fe("brep"),brep_shape:kpt}),Bft=bxe.extend({shape:fe("polygon"),points:dt(zs)}),Uft=bm("shape",[zft,Fft,Bft]).describe("Defines a copper pour on the PCB."),jft=Te({type:fe("pcb_component_outside_board_error"),pcb_component_outside_board_error_id:ir("pcb_component_outside_board_error"),error_type:fe("pcb_component_outside_board_error").default("pcb_component_outside_board_error"),message:k(),pcb_component_id:k(),pcb_board_id:k(),component_center:zs,component_bounds:Te({min_x:Ne(),max_x:Ne(),min_y:Ne(),max_y:Ne()}),subcircuit_id:k().optional(),source_component_id:k().optional()}).describe("Error emitted when a PCB component is placed outside the board boundaries"),Hft=Te({type:fe("pcb_via_clearance_error"),pcb_error_id:ir("pcb_error"),error_type:fe("pcb_via_clearance_error").default("pcb_via_clearance_error"),message:k(),pcb_via_ids:dt(k()).min(2),minimum_clearance:xi.optional(),actual_clearance:xi.optional(),pcb_center:Te({x:Ne().optional(),y:Ne().optional()}).optional(),subcircuit_id:k().optional()}).describe("Error emitted when vias are closer than the allowed clearance"),Vft=Te({type:fe("pcb_courtyard_rect"),pcb_courtyard_rect_id:ir("pcb_courtyard_rect"),pcb_component_id:k(),pcb_group_id:k().optional(),subcircuit_id:k().optional(),center:zs,width:qs,height:qs,layer:IT,stroke_width:qs.default("0.1mm"),is_filled:tt().optional(),has_stroke:tt().optional(),is_stroke_dashed:tt().optional(),color:k().optional()}).describe("Defines a courtyard rectangle on the PCB"),qft=Te({type:fe("pcb_courtyard_outline"),pcb_courtyard_outline_id:ir("pcb_courtyard_outline"),pcb_component_id:k(),pcb_group_id:k().optional(),subcircuit_id:k().optional(),layer:IT,outline:dt(zs).min(2),stroke_width:qs.default("0.1mm"),is_closed:tt().optional(),is_stroke_dashed:tt().optional(),color:k().optional()}).describe("Defines a courtyard outline on the PCB"),Gft=Te({type:fe("cad_component"),cad_component_id:k(),pcb_component_id:k(),source_component_id:k(),position:Y8,rotation:Y8.optional(),size:Y8.optional(),layer:bh.optional(),subcircuit_id:k().optional(),footprinter_string:k().optional(),model_obj_url:k().optional(),model_stl_url:k().optional(),model_3mf_url:k().optional(),model_gltf_url:k().optional(),model_glb_url:k().optional(),model_step_url:k().optional(),model_wrl_url:k().optional(),model_unit_to_mm_scale_factor:Ne().optional(),model_jscad:fl().optional()}).describe("Defines a component on the PCB"),Yft=Xt(["sinewave","square","triangle","sawtooth"]),bVn=Un([k(),Ne()]).transform(n=>typeof n=="string"?n.endsWith("%")?parseFloat(n.slice(0,-1))/100:parseFloat(n):n).pipe(Ne().min(0,"Duty cycle must be non-negative").max(1,"Duty cycle cannot be greater than 100%")),Xft=Te({type:fe("simulation_voltage_source"),simulation_voltage_source_id:ir("simulation_voltage_source"),is_dc_source:fe(!0).optional().default(!0),positive_source_port_id:k().optional(),negative_source_port_id:k().optional(),positive_source_net_id:k().optional(),negative_source_net_id:k().optional(),voltage:P4}).describe("Defines a DC voltage source for simulation"),Wft=Te({type:fe("simulation_voltage_source"),simulation_voltage_source_id:ir("simulation_voltage_source"),is_dc_source:fe(!1),terminal1_source_port_id:k().optional(),terminal2_source_port_id:k().optional(),terminal1_source_net_id:k().optional(),terminal2_source_net_id:k().optional(),voltage:P4.optional(),frequency:Cq.optional(),peak_to_peak_voltage:P4.optional(),wave_shape:Yft.optional(),phase:Tw.optional(),duty_cycle:bVn.optional()}).describe("Defines an AC voltage source for simulation"),Zft=Un([Xft,Wft]).describe("Defines a voltage source for simulation"),Kft=Un([fe("spice_dc_sweep"),fe("spice_dc_operating_point"),fe("spice_transient_analysis"),fe("spice_ac_analysis")]),Qft=Te({type:fe("simulation_experiment"),simulation_experiment_id:ir("simulation_experiment"),name:k(),experiment_type:Kft,time_per_step:G8.optional(),start_time_ms:R4.optional(),end_time_ms:R4.optional()}).describe("Defines a simulation experiment configuration"),Jft=Te({type:fe("simulation_transient_voltage_graph"),simulation_transient_voltage_graph_id:ir("simulation_transient_voltage_graph"),simulation_experiment_id:k(),timestamps_ms:dt(Ne()).optional(),voltage_levels:dt(Ne()),schematic_voltage_probe_id:k().optional(),subcircuit_connectivity_map_key:k().optional(),time_per_step:G8,start_time_ms:R4,end_time_ms:R4,name:k().optional()}).describe("Stores voltage measurements over time for a simulation"),emt=Te({type:fe("simulation_switch"),simulation_switch_id:ir("simulation_switch"),closes_at:R4.optional(),opens_at:R4.optional(),starts_closed:tt().optional(),switching_frequency:Cq.optional()}).describe("Defines a switch for simulation timing control"),tmt=Te({type:fe("simulation_voltage_probe"),simulation_voltage_probe_id:ir("simulation_voltage_probe"),source_port_id:k().optional(),source_net_id:k().optional(),name:k().optional(),subcircuit_id:k().optional()}).describe("Defines a voltage probe for simulation, connected to a port or a net").refine(n=>!!n.source_port_id!=!!n.source_net_id,{message:"Exactly one of source_port_id or source_net_id must be provided to simulation_voltage_probe"}),nmt=Un([Jht,Qht,Kht,tpt,ept,nxe,J1e,Rq,txe,exe,ixe,rxe,oxe,cxe,lxe,uxe,fxe,dxe,hxe,pxe,axe,sxe,ipt,opt,npt,mxe,_xe,gxe,Dpt,Upt,Cft,Pft,Rft,kft,jpt,Sft,Hpt,nft,Ypt,Kpt,ift,qpt,Gpt,rft,Ift,sft,aft,cft,lft,uft,dft,hft,Qpt,Jpt,oft,eft,tft,Hft,fft,pft,mft,_ft,gft,yft,xft,vft,bft,Nft,wft,Oft,Aft,Lft,Dft,$ft,Uft,jft,Vft,qft,spt,ypt,ppt,fpt,mpt,_pt,hpt,xpt,gpt,apt,bpt,wpt,vpt,Mpt,Apt,Cpt,Ppt,Rpt,Ipt,Gft,Zft,Qft,Jft,emt,tmt]),wxe=nmt;const imt=Object.freeze(Object.defineProperty({__proto__:null,all_layers:rpt,any_circuit_element:nmt,any_soup_element:wxe,any_source_component:Kht,battery_capacity:Vht,brep_shape:kpt,cad_component:Gft,capacitance:K1e,circuit_json_footprint_load_error:Rft,current:XHn,distance:xi,duration_ms:G8,experiment_type:Kft,external_footprint_load_error:Pft,frequency:Cq,getZodPrefixedIdWithDefault:ir,inductance:jht,layer_ref:bh,layer_string:yxe,length:qs,ms:R4,ninePointAnchor:Pq,pcb_autorouting_error:Nft,pcb_board:rft,pcb_breakout_point:Oft,pcb_component:Dpt,pcb_component_outside_board_error:jft,pcb_copper_pour:Uft,pcb_copper_pour_brep:Fft,pcb_copper_pour_polygon:Bft,pcb_copper_pour_rect:zft,pcb_courtyard_outline:qft,pcb_courtyard_rect:Vft,pcb_cutout:Aft,pcb_cutout_circle:Tft,pcb_cutout_polygon:Mft,pcb_cutout_rect:Eft,pcb_fabrication_note_dimension:_ft,pcb_fabrication_note_path:fft,pcb_fabrication_note_rect:mft,pcb_fabrication_note_text:pft,pcb_footprint_overlap_error:wft,pcb_ground_plane:Lft,pcb_ground_plane_region:Dft,pcb_group:Ift,pcb_hole:Upt,pcb_hole_circle_or_square_shape:nVn,pcb_hole_oval_shape:iVn,pcb_hole_pill_shape:rVn,pcb_hole_rotated_pill_shape:oVn,pcb_keepout:Sft,pcb_manual_edit_conflict_warning:kft,pcb_missing_footprint_error:Cft,pcb_net:nft,pcb_note_dimension:bft,pcb_note_line:vft,pcb_note_path:xft,pcb_note_rect:yft,pcb_note_text:gft,pcb_placement_error:oft,pcb_plated_hole:jpt,pcb_port:Hpt,pcb_port_not_connected_error:tft,pcb_port_not_matched_error:eft,pcb_route_hint:Opt,pcb_route_hints:tVn,pcb_silkscreen_circle:dft,pcb_silkscreen_line:aft,pcb_silkscreen_oval:hft,pcb_silkscreen_path:cft,pcb_silkscreen_rect:uft,pcb_silkscreen_text:lft,pcb_smtpad:qpt,pcb_smtpad_pill:Vpt,pcb_solder_paste:Gpt,pcb_text:Ypt,pcb_thermal_spoke:$ft,pcb_trace:Kpt,pcb_trace_error:Qpt,pcb_trace_hint:sft,pcb_trace_missing_error:Jpt,pcb_trace_route_point:Zpt,pcb_trace_route_point_via:Wpt,pcb_trace_route_point_wire:Xpt,pcb_via:ift,pcb_via_clearance_error:Hft,point:zs,point3:Y8,point_with_bulge:Npt,port_arrangement:dpt,position:ZHn,position3:KHn,resistance:Aq,ring:xxe,rotation:Tw,route_hint_point:Lpt,schematic_arc:_pt,schematic_box:spt,schematic_circle:mpt,schematic_component:hpt,schematic_component_port_arrangement_by_sides:upt,schematic_component_port_arrangement_by_size:lpt,schematic_debug_line:Ept,schematic_debug_object:Mpt,schematic_debug_object_base:Iq,schematic_debug_point:Tpt,schematic_debug_rect:Spt,schematic_error:bpt,schematic_group:Ppt,schematic_layout_error:wpt,schematic_line:ppt,schematic_manual_edit_conflict_warning:Cpt,schematic_net_label:vpt,schematic_path:apt,schematic_pin_styles:cpt,schematic_port:xpt,schematic_rect:fpt,schematic_table:Rpt,schematic_table_cell:Ipt,schematic_text:ypt,schematic_trace:gpt,schematic_voltage_probe:Apt,simulation_ac_voltage_source:Wft,simulation_dc_voltage_source:Xft,simulation_experiment:Qft,simulation_switch:emt,simulation_transient_voltage_graph:Jft,simulation_voltage_probe:tmt,simulation_voltage_source:Zft,size:Q1e,source_board:npt,source_component_base:s1,source_failed_to_create_component_error:Wht,source_group:ept,source_manually_placed_via:opt,source_missing_property_error:Xht,source_net:tpt,source_pcb_ground_plane:ipt,source_pin_missing_trace_warning:gxe,source_port:Qht,source_project_metadata:mxe,source_property_ignored_warning:Zht,source_simple_battery:rxe,source_simple_capacitor:J1e,source_simple_chip:nxe,source_simple_crystal:Yht,source_simple_diode:Rq,source_simple_ground:Ght,source_simple_inductor:oxe,source_simple_led:txe,source_simple_mosfet:pxe,source_simple_pin_header:cxe,source_simple_pinout:lxe,source_simple_potentiometer:axe,source_simple_power_source:ixe,source_simple_push_button:sxe,source_simple_resistor:exe,source_simple_resonator:uxe,source_simple_switch:fxe,source_simple_test_point:hxe,source_simple_transistor:dxe,source_trace:Jht,source_trace_not_connected_error:_xe,supplier_name:qht,time:WHn,timestamp:Hht,visible_layer:IT,voltage:P4,wave_shape:Yft},Symbol.toStringTag,{value:"Module"})),X8=n=>typeof n=="number"&&!isNaN(n),I4=n=>typeof n=="string",yS=n=>typeof n=="function",Nq=n=>I4(n)||yS(n)?n:null,Sxe=n=>be.isValidElement(n)||I4(n)||yS(n)||X8(n);function wVn(n,e,t){t===void 0&&(t=300);const{scrollHeight:i,style:r}=n;requestAnimationFrame(()=>{r.minHeight="initial",r.height=i+"px",r.transition=`all ${t}ms`,requestAnimationFrame(()=>{r.height="0",r.padding="0",r.margin="0",setTimeout(e,t)})})}function kq(n){let{enter:e,exit:t,appendPosition:i=!1,collapse:r=!0,collapseDuration:o=300}=n;return function(s){let{children:a,position:c,preventExitTransition:l,done:u,nodeRef:d,isIn:h,playToast:p}=s;const f=i?`${e}--${c}`:e,_=i?`${t}--${c}`:t,g=be.useRef(0);return be.useLayoutEffect(()=>{const x=d.current,v=f.split(" "),b=S=>{S.target===d.current&&(p(),x.removeEventListener("animationend",b),x.removeEventListener("animationcancel",b),g.current===0&&S.type!=="animationcancel"&&x.classList.remove(...v))};x.classList.add(...v),x.addEventListener("animationend",b),x.addEventListener("animationcancel",b)},[]),be.useEffect(()=>{const x=d.current,v=()=>{x.removeEventListener("animationend",v),r?wVn(x,u,o):u()};h||(l?v():(g.current=1,x.className+=` ${_}`,x.addEventListener("animationend",v)))},[h]),rs.createElement(rs.Fragment,null,a)}}function rmt(n,e){return n!=null?{content:n.content,containerId:n.props.containerId,id:n.props.toastId,theme:n.props.theme,type:n.props.type,data:n.props.data||{},isLoading:n.props.isLoading,icon:n.props.icon,status:e}:{}}const Hb=new Map;let W8=[];const Exe=new Set,SVn=n=>Exe.forEach(e=>e(n)),omt=()=>Hb.size>0;function smt(n,e){var t;if(e)return!((t=Hb.get(e))==null||!t.isToastActive(n));let i=!1;return Hb.forEach(r=>{r.isToastActive(n)&&(i=!0)}),i}function amt(n,e){Sxe(n)&&(omt()||W8.push({content:n,options:e}),Hb.forEach(t=>{t.buildToast(n,e)}))}function cmt(n,e){Hb.forEach(t=>{e!=null&&e!=null&&e.containerId?e?.containerId===t.id&&t.toggle(n,e?.id):t.toggle(n,e?.id)})}function EVn(n){const{subscribe:e,getSnapshot:t,setProps:i}=be.useRef((function(o){const s=o.containerId||1;return{subscribe(a){const c=(function(u,d,h){let p=1,f=0,_=[],g=[],x=[],v=d;const b=new Map,S=new Set,P=()=>{x=Array.from(b.values()),S.forEach(T=>T())},A=T=>{g=T==null?[]:g.filter(I=>I!==T),P()},R=T=>{const{toastId:I,onOpen:C,updateId:z,children:O}=T.props,j=z==null;T.staleId&&b.delete(T.staleId),b.set(I,T),g=[...g,T.props.toastId].filter(V=>V!==T.staleId),P(),h(rmt(T,j?"added":"updated")),j&&yS(C)&&C(be.isValidElement(O)&&O.props)};return{id:u,props:v,observe:T=>(S.add(T),()=>S.delete(T)),toggle:(T,I)=>{b.forEach(C=>{I!=null&&I!==C.props.toastId||yS(C.toggle)&&C.toggle(T)})},removeToast:A,toasts:b,clearQueue:()=>{f-=_.length,_=[]},buildToast:(T,I)=>{if((se=>{let{containerId:he,toastId:Me,updateId:Ee}=se;const Pe=he?he!==u:u!==1,Le=b.has(Me)&&Ee==null;return Pe||Le})(I))return;const{toastId:C,updateId:z,data:O,staleId:j,delay:V}=I,G=()=>{A(C)},Z=z==null;Z&&f++;const K={...v,style:v.toastStyle,key:p++,...Object.fromEntries(Object.entries(I).filter(se=>{let[he,Me]=se;return Me!=null})),toastId:C,updateId:z,data:O,closeToast:G,isIn:!1,className:Nq(I.className||v.toastClassName),bodyClassName:Nq(I.bodyClassName||v.bodyClassName),progressClassName:Nq(I.progressClassName||v.progressClassName),autoClose:!I.isLoading&&(oe=I.autoClose,ce=v.autoClose,oe===!1||X8(oe)&&oe>0?oe:ce),deleteToast(){const se=b.get(C),{onClose:he,children:Me}=se.props;yS(he)&&he(be.isValidElement(Me)&&Me.props),h(rmt(se,"removed")),b.delete(C),f--,f<0&&(f=0),_.length>0?R(_.shift()):P()}};var oe,ce;K.closeButton=v.closeButton,I.closeButton===!1||Sxe(I.closeButton)?K.closeButton=I.closeButton:I.closeButton===!0&&(K.closeButton=!Sxe(v.closeButton)||v.closeButton);let me=T;be.isValidElement(T)&&!I4(T.type)?me=be.cloneElement(T,{closeToast:G,toastProps:K,data:O}):yS(T)&&(me=T({closeToast:G,toastProps:K,data:O}));const te={content:me,props:K,staleId:j};v.limit&&v.limit>0&&f>v.limit&&Z?_.push(te):X8(V)?setTimeout(()=>{R(te)},V):R(te)},setProps(T){v=T},setToggle:(T,I)=>{b.get(T).toggle=I},isToastActive:T=>g.some(I=>I===T),getSnapshot:()=>x}})(s,o,SVn);Hb.set(s,c);const l=c.observe(a);return W8.forEach(u=>amt(u.content,u.options)),W8=[],()=>{l(),Hb.delete(s)}},setProps(a){var c;(c=Hb.get(s))==null||c.setProps(a)},getSnapshot(){var a;return(a=Hb.get(s))==null?void 0:a.getSnapshot()}}})(n)).current;i(n);const r=be.useSyncExternalStore(e,t,t);return{getToastToRender:function(o){if(!r)return[];const s=new Map;return n.newestOnTop&&r.reverse(),r.forEach(a=>{const{position:c}=a.props;s.has(c)||s.set(c,[]),s.get(c).push(a)}),Array.from(s,a=>o(a[0],a[1]))},isToastActive:smt,count:r?.length}}function TVn(n){const[e,t]=be.useState(!1),[i,r]=be.useState(!1),o=be.useRef(null),s=be.useRef({start:0,delta:0,removalDistance:0,canCloseOnClick:!0,canDrag:!1,didMove:!1}).current,{autoClose:a,pauseOnHover:c,closeToast:l,onClick:u,closeOnClick:d}=n;var h,p;function f(){t(!0)}function _(){t(!1)}function g(b){const S=o.current;s.canDrag&&S&&(s.didMove=!0,e&&_(),s.delta=n.draggableDirection==="x"?b.clientX-s.start:b.clientY-s.start,s.start!==b.clientX&&(s.canCloseOnClick=!1),S.style.transform=`translate3d(${n.draggableDirection==="x"?`${s.delta}px, var(--y)`:`0, calc(${s.delta}px + var(--y))`},0)`,S.style.opacity=""+(1-Math.abs(s.delta/s.removalDistance)))}function x(){document.removeEventListener("pointermove",g),document.removeEventListener("pointerup",x);const b=o.current;if(s.canDrag&&s.didMove&&b){if(s.canDrag=!1,Math.abs(s.delta)>s.removalDistance)return r(!0),n.closeToast(),void n.collapseAll();b.style.transition="transform 0.2s, opacity 0.2s",b.style.removeProperty("transform"),b.style.removeProperty("opacity")}}(p=Hb.get((h={id:n.toastId,containerId:n.containerId,fn:t}).containerId||1))==null||p.setToggle(h.id,h.fn),be.useEffect(()=>{if(n.pauseOnFocusLoss)return document.hasFocus()||_(),window.addEventListener("focus",f),window.addEventListener("blur",_),()=>{window.removeEventListener("focus",f),window.removeEventListener("blur",_)}},[n.pauseOnFocusLoss]);const v={onPointerDown:function(b){if(n.draggable===!0||n.draggable===b.pointerType){s.didMove=!1,document.addEventListener("pointermove",g),document.addEventListener("pointerup",x);const S=o.current;s.canCloseOnClick=!0,s.canDrag=!0,S.style.transition="none",n.draggableDirection==="x"?(s.start=b.clientX,s.removalDistance=S.offsetWidth*(n.draggablePercent/100)):(s.start=b.clientY,s.removalDistance=S.offsetHeight*(n.draggablePercent===80?1.5*n.draggablePercent:n.draggablePercent)/100)}},onPointerUp:function(b){const{top:S,bottom:P,left:A,right:R}=o.current.getBoundingClientRect();b.nativeEvent.type!=="touchend"&&n.pauseOnHover&&b.clientX>=A&&b.clientX<=R&&b.clientY>=S&&b.clientY<=P?_():f()}};return a&&c&&(v.onMouseEnter=_,n.stacked||(v.onMouseLeave=f)),d&&(v.onClick=b=>{u&&u(b),s.canCloseOnClick&&l()}),{playToast:f,pauseToast:_,isRunning:e,preventExitTransition:i,toastRef:o,eventHandlers:v}}function MVn(n){let{delay:e,isRunning:t,closeToast:i,type:r="default",hide:o,className:s,style:a,controlledProgress:c,progress:l,rtl:u,isIn:d,theme:h}=n;const p=o||c&&l===0,f={...a,animationDuration:`${e}ms`,animationPlayState:t?"running":"paused"};c&&(f.transform=`scaleX(${l})`);const _=iT("Toastify__progress-bar",c?"Toastify__progress-bar--controlled":"Toastify__progress-bar--animated",`Toastify__progress-bar-theme--${h}`,`Toastify__progress-bar--${r}`,{"Toastify__progress-bar--rtl":u}),g=yS(s)?s({rtl:u,type:r,defaultClassName:_}):iT(_,s),x={[c&&l>=1?"onTransitionEnd":"onAnimationEnd"]:c&&l<1?null:()=>{d&&i()}};return rs.createElement("div",{className:"Toastify__progress-bar--wrp","data-hidden":p},rs.createElement("div",{className:`Toastify__progress-bar--bg Toastify__progress-bar-theme--${h} Toastify__progress-bar--${r}`}),rs.createElement("div",{role:"progressbar","aria-hidden":p?"true":"false","aria-label":"notification timer",className:g,style:f,...x}))}let AVn=1;const lmt=()=>""+AVn++;function CVn(n){return n&&(I4(n.toastId)||X8(n.toastId))?n.toastId:lmt()}function Z8(n,e){return amt(n,e),e.toastId}function Oq(n,e){return{...e,type:e&&e.type||n,toastId:CVn(e)}}function Lq(n){return(e,t)=>Z8(e,Oq(n,t))}function Bf(n,e){return Z8(n,Oq("default",e))}Bf.loading=(n,e)=>Z8(n,Oq("default",{isLoading:!0,autoClose:!1,closeOnClick:!1,closeButton:!1,draggable:!1,...e})),Bf.promise=function(n,e,t){let i,{pending:r,error:o,success:s}=e;r&&(i=I4(r)?Bf.loading(r,t):Bf.loading(r.render,{...t,...r}));const a={isLoading:null,autoClose:null,closeOnClick:null,closeButton:null,draggable:null},c=(u,d,h)=>{if(d==null)return void Bf.dismiss(i);const p={type:u,...a,...t,data:h},f=I4(d)?{render:d}:d;return i?Bf.update(i,{...p,...f}):Bf(f.render,{...p,...f}),h},l=yS(n)?n():n;return l.then(u=>c("success",s,u)).catch(u=>c("error",o,u)),l},Bf.success=Lq("success"),Bf.info=Lq("info"),Bf.error=Lq("error"),Bf.warning=Lq("warning"),Bf.warn=Bf.warning,Bf.dark=(n,e)=>Z8(n,Oq("default",{theme:"dark",...e})),Bf.dismiss=function(n){(function(e){var t;if(omt()){if(e==null||I4(t=e)||X8(t))Hb.forEach(i=>{i.removeToast(e)});else if(e&&("containerId"in e||"id"in e)){const i=Hb.get(e.containerId);i?i.removeToast(e.id):Hb.forEach(r=>{r.removeToast(e.id)})}}else W8=W8.filter(i=>e!=null&&i.options.toastId!==e)})(n)},Bf.clearWaitingQueue=function(n){n===void 0&&(n={}),Hb.forEach(e=>{!e.props.limit||n.containerId&&e.id!==n.containerId||e.clearQueue()})},Bf.isActive=smt,Bf.update=function(n,e){e===void 0&&(e={});const t=((i,r)=>{var o;let{containerId:s}=r;return(o=Hb.get(s||1))==null?void 0:o.toasts.get(i)})(n,e);if(t){const{props:i,content:r}=t,o={delay:100,...i,...e,toastId:e.toastId||n,updateId:lmt()};o.toastId!==n&&(o.staleId=n);const s=o.render||r;delete o.render,Z8(s,o)}},Bf.done=n=>{Bf.update(n,{progress:1})},Bf.onChange=function(n){return Exe.add(n),()=>{Exe.delete(n)}},Bf.play=n=>cmt(!0,n),Bf.pause=n=>cmt(!1,n);const PVn=typeof window<"u"?be.useLayoutEffect:be.useEffect,Dq=n=>{let{theme:e,type:t,isLoading:i,...r}=n;return rs.createElement("svg",{viewBox:"0 0 24 24",width:"100%",height:"100%",fill:e==="colored"?"currentColor":`var(--toastify-icon-color-${t})`,...r})},Txe={info:function(n){return rs.createElement(Dq,{...n},rs.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(n){return rs.createElement(Dq,{...n},rs.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(n){return rs.createElement(Dq,{...n},rs.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(n){return rs.createElement(Dq,{...n},rs.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 rs.createElement("div",{className:"Toastify__spinner"})}},RVn=n=>{const{isRunning:e,preventExitTransition:t,toastRef:i,eventHandlers:r,playToast:o}=TVn(n),{closeButton:s,children:a,autoClose:c,onClick:l,type:u,hideProgressBar:d,closeToast:h,transition:p,position:f,className:_,style:g,bodyClassName:x,bodyStyle:v,progressClassName:b,progressStyle:S,updateId:P,role:A,progress:R,rtl:T,toastId:I,deleteToast:C,isIn:z,isLoading:O,closeOnClick:j,theme:V}=n,G=iT("Toastify__toast",`Toastify__toast-theme--${V}`,`Toastify__toast--${u}`,{"Toastify__toast--rtl":T},{"Toastify__toast--close-on-click":j}),Z=yS(_)?_({rtl:T,position:f,type:u,defaultClassName:G}):iT(G,_),K=(function(te){let{theme:se,type:he,isLoading:Me,icon:Ee}=te,Pe=null;const Le={theme:se,type:he};return Ee===!1||(yS(Ee)?Pe=Ee({...Le,isLoading:Me}):be.isValidElement(Ee)?Pe=be.cloneElement(Ee,Le):Me?Pe=Txe.spinner():(ke=>ke in Txe)(he)&&(Pe=Txe[he](Le))),Pe})(n),oe=!!R||!c,ce={closeToast:h,type:u,theme:V};let me=null;return s===!1||(me=yS(s)?s(ce):be.isValidElement(s)?be.cloneElement(s,ce):(function(te){let{closeToast:se,theme:he,ariaLabel:Me="close"}=te;return rs.createElement("button",{className:`Toastify__close-button Toastify__close-button--${he}`,type:"button",onClick:Ee=>{Ee.stopPropagation(),se(Ee)},"aria-label":Me},rs.createElement("svg",{"aria-hidden":"true",viewBox:"0 0 14 16"},rs.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"})))})(ce)),rs.createElement(p,{isIn:z,done:C,position:f,preventExitTransition:t,nodeRef:i,playToast:o},rs.createElement("div",{id:I,onClick:l,"data-in":z,className:Z,...r,style:g,ref:i},rs.createElement("div",{...z&&{role:A},className:yS(x)?x({type:u}):iT("Toastify__toast-body",x),style:v},K!=null&&rs.createElement("div",{className:iT("Toastify__toast-icon",{"Toastify--animate-icon Toastify__zoom-enter":!O})},K),rs.createElement("div",null,a)),me,rs.createElement(MVn,{...P&&!oe?{key:`pb-${P}`}:{},rtl:T,theme:V,delay:c,isRunning:e,isIn:z,closeToast:h,hide:d,type:u,style:S,className:b,controlledProgress:oe,progress:R||0})))},$q=function(n,e){return e===void 0&&(e=!1),{enter:`Toastify--animate Toastify__${n}-enter`,exit:`Toastify--animate Toastify__${n}-exit`,appendPosition:e}},IVn=kq($q("bounce",!0));kq($q("slide",!0)),kq($q("zoom")),kq($q("flip"));const NVn={position:"top-right",transition:IVn,autoClose:5e3,closeButton:!0,pauseOnHover:!0,pauseOnFocusLoss:!0,draggable:"touch",draggablePercent:80,draggableDirection:"x",role:"alert",theme:"light"};function kVn(n){let e={...NVn,...n};const t=n.stacked,[i,r]=be.useState(!0),o=be.useRef(null),{getToastToRender:s,isToastActive:a,count:c}=EVn(e),{className:l,style:u,rtl:d,containerId:h}=e;function p(_){const g=iT("Toastify__toast-container",`Toastify__toast-container--${_}`,{"Toastify__toast-container--rtl":d});return yS(l)?l({position:_,rtl:d,defaultClassName:g}):iT(g,Nq(l))}function f(){t&&(r(!0),Bf.play())}return PVn(()=>{if(t){var _;const g=o.current.querySelectorAll('[data-in="true"]'),x=12,v=(_=e.position)==null?void 0:_.includes("top");let b=0,S=0;Array.from(g).reverse().forEach((P,A)=>{const R=P;R.classList.add("Toastify__toast--stacked"),A>0&&(R.dataset.collapsed=`${i}`),R.dataset.pos||(R.dataset.pos=v?"top":"bot");const T=b*(i?.2:1)+(i?0:x*A);R.style.setProperty("--y",`${v?T:-1*T}px`),R.style.setProperty("--g",`${x}`),R.style.setProperty("--s",""+(1-(i?S:0))),b+=R.offsetHeight,S+=.025})}},[i,c,t]),rs.createElement("div",{ref:o,className:"Toastify",id:h,onMouseEnter:()=>{t&&(r(!1),Bf.pause())},onMouseLeave:f},s((_,g)=>{const x=g.length?{...u}:{...u,pointerEvents:"none"};return rs.createElement("div",{className:p(_),style:x,key:`container-${_}`},g.map(v=>{let{content:b,props:S}=v;return rs.createElement(RVn,{...S,stacked:t,collapseAll:f,isIn:a(S.toastId,S.containerId),style:S.style,key:`toast-${S.key}`},b)}))}))}function OVn(){var n=':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)}}',e=document.createElement("style");e.innerText=n,document.head.appendChild(e)}const LVn=TNe(MBt);var Mxe,umt;function DVn(){if(umt)return Mxe;umt=1;var n=Object.defineProperty,e=Object.getOwnPropertyDescriptor,t=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,r=(g,x)=>{for(var v in x)n(g,v,{get:x[v],enumerable:!0})},o=(g,x,v,b)=>{if(x&&typeof x=="object"||typeof x=="function")for(let S of t(x))!i.call(g,S)&&S!==v&&n(g,S,{get:()=>x[S],enumerable:!(b=e(x,S))||b.enumerable});return g},s=g=>o(n({},"__esModule",{value:!0}),g),a={};r(a,{SuperGrid:()=>_,toMMSI:()=>f,toMeterSI:()=>p}),Mxe=s(a);var c=Jw(),l=LVn,u=NNe(),d=(g,x,v)=>{const b=[];if(x<g)for(let S=g;S>=x;S-=Math.abs(v))b.push(S);else for(let S=g;S<=x;S+=Math.abs(v))b.push(S);return b};function h(g,x){return{x:Math.round(x.x/g)*g,y:Math.round(x.y/g)*g}}function p(g,x=1){return g<0?"-"+p(-g):g<1e-6?"0m":g>1e3?Math.floor(g/1e3)+"km":g>1&&x>1?Math.round(g)+"m":g>1&&x<=1?g.toFixed(Math.ceil(-Math.log10(x)))+"m":g<1&&x>=1/1e3?Math.round(g*1e3)+"mm":g<1&&x<1/1e3?(g*1e3).toFixed(Math.ceil(-Math.log10(x*1e3)))+"mm":""}function f(g,x=1){return p(g/1e3,x/1e3)}var _=g=>{var x;const v=(0,c.useRef)(null),[b,S]=(0,c.useState)({x:0,y:0}),{majorColor:P="rgba(0,0,0,0.2)",minorColor:A="rgba(0,0,0,0.1)",textColor:R=(x=g.majorColor)!=null?x:"rgba(0,0,0,0.5)",width:T,height:I,screenSpaceCellSize:C=200,stringifyCoord:z=(G,Z,K)=>`${p(G,K)}, ${p(Z,K)}`}=g,O=Math.ceil(T/C)+2,j=Math.ceil(I/C)+2;(0,c.useEffect)(()=>{if(!v.current)return;const G=v.current.getContext("2d");if(!G)return;const Z=C/10**Math.floor(Math.log10(g.transform.a)),K=g.transform.d<0?-1:1,ce=C/10**Math.log10(g.transform.a)/Z;function me(we,xe,je){const nt=we;let ct,Ce,We;for(ct=xe.x;ct<=je.x;ct+=nt)Ce=(0,l.applyToPoint)(g.transform,{x:ct,y:xe.y}),We=(0,l.applyToPoint)(g.transform,{x:ct,y:je.y}),G.beginPath(),G.moveTo(Ce.x,Ce.y),G.lineTo(We.x,We.y),G.stroke();const Ze=d(xe.y,je.y,nt*K);for(const qe of Ze)Ce=(0,l.applyToPoint)(g.transform,{x:xe.x,y:qe}),We=(0,l.applyToPoint)(g.transform,{x:je.x,y:qe}),G.beginPath(),G.moveTo(Ce.x,Ce.y),G.lineTo(We.x,We.y),G.stroke()}function te(we,xe,je){const nt=we;let ct;for(ct=xe.x;ct<=je.x;ct+=nt)for(const Ce of d(xe.y,je.y,nt*K)){const We=(0,l.applyToPoint)(g.transform,{x:ct,y:Ce});G.fillStyle=R,G.font="12px sans-serif",G.fillText(z(ct,Ce,we),We.x+2,We.y-2)}}G.clearRect(0,0,T,I);const se=(0,l.applyToPoint)((0,l.inverse)(g.transform),{x:0,y:0}),he={x:Math.floor((se.x-Z)/Z)*Z,y:Math.floor((se.y-Z)/Z+(K==-1?2:0))*Z},Me={x:he.x+Z*O,y:he.y+Z*j*K},Pe=Z*5,Le={x:Math.floor((se.x-Pe)/Pe)*Pe,y:Math.floor((se.y-Pe)/Pe+(K==-1?2:0))*Pe},ke={x:Le.x+Pe*O,y:Le.y+Pe*j*K};G.globalAlpha=1,G.strokeStyle=P,me(Z,he,Me),te(Pe,Le,ke),G.globalAlpha=1-ce,me(Pe/10,Le,ke),G.globalAlpha=1-ce,G.strokeStyle=A,me(Z/10,he,Me),G.globalAlpha=Math.max(((1-ce)*10-5)/5,0),te(Pe/10,Le,ke),G.globalAlpha=1;const ae=(0,l.applyToPoint)(g.transform,b);G.font="12px sans-serif",G.fillStyle=R,G.fillText(z(b.x,b.y,Z),ae.x+2,ae.y-2),G.strokeStyle=P,G.strokeRect(ae.x-5,ae.y-5,10,10)},[v,g.transform,b,T,I]);const V=G=>{if(!v.current)return;const Z=C/10/10**Math.floor(Math.log10(g.transform.a)),K=v.current.getBoundingClientRect(),oe=(0,l.applyToPoint)((0,l.inverse)(g.transform),{x:G.clientX-K.left,y:G.clientY-K.top}),ce=h(Z,oe);S(ce)};return(0,u.jsx)("canvas",{onMouseUp:G=>{G.button===1&&V(G)},onDoubleClick:V,ref:v,width:g.width,height:g.height})};return Mxe}var Axe=DVn(),Cxe={exports:{}},Pxe,dmt;function hmt(){return dmt||(dmt=1,Pxe={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]}),Pxe}var Rxe={exports:{}},Ixe,pmt;function $Vn(){return pmt||(pmt=1,Ixe=function(e){return!e||typeof e=="string"?!1:e instanceof Array||Array.isArray(e)||e.length>=0&&(e.splice instanceof Function||Object.getOwnPropertyDescriptor(e,e.length-1)&&e.constructor.name!=="String")}),Ixe}var fmt;function zVn(){if(fmt)return Rxe.exports;fmt=1;var n=$Vn(),e=Array.prototype.concat,t=Array.prototype.slice,i=Rxe.exports=function(o){for(var s=[],a=0,c=o.length;a<c;a++){var l=o[a];n(l)?s=e.call(s,t.call(l)):s.push(l)}return s};return i.wrap=function(r){return function(){return r(i(arguments))}},Rxe.exports}var mmt;function FVn(){if(mmt)return Cxe.exports;mmt=1;var n=hmt(),e=zVn(),t=Object.hasOwnProperty,i=Object.create(null);for(var r in n)t.call(n,r)&&(i[n[r]]=r);var o=Cxe.exports={to:{},get:{}};o.get=function(c){var l=c.substring(0,3).toLowerCase(),u,d;switch(l){case"hsl":u=o.get.hsl(c),d="hsl";break;case"hwb":u=o.get.hwb(c),d="hwb";break;default:u=o.get.rgb(c),d="rgb";break}return u?{model:d,value:u}:null},o.get.rgb=function(c){if(!c)return null;var l=/^#([a-f0-9]{3,4})$/i,u=/^#([a-f0-9]{6})([a-f0-9]{2})?$/i,d=/^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/,h=/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/,p=/^(\w+)$/,f=[0,0,0,1],_,g,x;if(_=c.match(u)){for(x=_[2],_=_[1],g=0;g<3;g++){var v=g*2;f[g]=parseInt(_.slice(v,v+2),16)}x&&(f[3]=parseInt(x,16)/255)}else if(_=c.match(l)){for(_=_[1],x=_[3],g=0;g<3;g++)f[g]=parseInt(_[g]+_[g],16);x&&(f[3]=parseInt(x+x,16)/255)}else if(_=c.match(d)){for(g=0;g<3;g++)f[g]=parseInt(_[g+1],0);_[4]&&(_[5]?f[3]=parseFloat(_[4])*.01:f[3]=parseFloat(_[4]))}else if(_=c.match(h)){for(g=0;g<3;g++)f[g]=Math.round(parseFloat(_[g+1])*2.55);_[4]&&(_[5]?f[3]=parseFloat(_[4])*.01:f[3]=parseFloat(_[4]))}else return(_=c.match(p))?_[1]==="transparent"?[0,0,0,0]:t.call(n,_[1])?(f=n[_[1]],f[3]=1,f):null:null;for(g=0;g<3;g++)f[g]=s(f[g],0,255);return f[3]=s(f[3],0,1),f},o.get.hsl=function(c){if(!c)return null;var l=/^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*)?\)$/,u=c.match(l);if(u){var d=parseFloat(u[4]),h=(parseFloat(u[1])%360+360)%360,p=s(parseFloat(u[2]),0,100),f=s(parseFloat(u[3]),0,100),_=s(isNaN(d)?1:d,0,1);return[h,p,f,_]}return null},o.get.hwb=function(c){if(!c)return null;var l=/^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*)?\)$/,u=c.match(l);if(u){var d=parseFloat(u[4]),h=(parseFloat(u[1])%360+360)%360,p=s(parseFloat(u[2]),0,100),f=s(parseFloat(u[3]),0,100),_=s(isNaN(d)?1:d,0,1);return[h,p,f,_]}return null},o.to.hex=function(){var c=e(arguments);return"#"+a(c[0])+a(c[1])+a(c[2])+(c[3]<1?a(Math.round(c[3]*255)):"")},o.to.rgb=function(){var c=e(arguments);return c.length<4||c[3]===1?"rgb("+Math.round(c[0])+", "+Math.round(c[1])+", "+Math.round(c[2])+")":"rgba("+Math.round(c[0])+", "+Math.round(c[1])+", "+Math.round(c[2])+", "+c[3]+")"},o.to.rgb.percent=function(){var c=e(arguments),l=Math.round(c[0]/255*100),u=Math.round(c[1]/255*100),d=Math.round(c[2]/255*100);return c.length<4||c[3]===1?"rgb("+l+"%, "+u+"%, "+d+"%)":"rgba("+l+"%, "+u+"%, "+d+"%, "+c[3]+")"},o.to.hsl=function(){var c=e(arguments);return c.length<4||c[3]===1?"hsl("+c[0]+", "+c[1]+"%, "+c[2]+"%)":"hsla("+c[0]+", "+c[1]+"%, "+c[2]+"%, "+c[3]+")"},o.to.hwb=function(){var c=e(arguments),l="";return c.length>=4&&c[3]!==1&&(l=", "+c[3]),"hwb("+c[0]+", "+c[1]+"%, "+c[2]+"%"+l+")"},o.to.keyword=function(c){return i[c.slice(0,3)]};function s(c,l,u){return Math.min(Math.max(l,c),u)}function a(c){var l=Math.round(c).toString(16).toUpperCase();return l.length<2?"0"+l:l}return Cxe.exports}var Nxe,_mt;function gmt(){if(_mt)return Nxe;_mt=1;const n=hmt(),e={};for(const r of Object.keys(n))e[n[r]]=r;const t={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"]}};Nxe=t;for(const r of Object.keys(t)){if(!("channels"in t[r]))throw new Error("missing channels property: "+r);if(!("labels"in t[r]))throw new Error("missing channel labels property: "+r);if(t[r].labels.length!==t[r].channels)throw new Error("channel and label counts mismatch: "+r);const{channels:o,labels:s}=t[r];delete t[r].channels,delete t[r].labels,Object.defineProperty(t[r],"channels",{value:o}),Object.defineProperty(t[r],"labels",{value:s})}t.rgb.hsl=function(r){const o=r[0]/255,s=r[1]/255,a=r[2]/255,c=Math.min(o,s,a),l=Math.max(o,s,a),u=l-c;let d,h;l===c?d=0:o===l?d=(s-a)/u:s===l?d=2+(a-o)/u:a===l&&(d=4+(o-s)/u),d=Math.min(d*60,360),d<0&&(d+=360);const p=(c+l)/2;return l===c?h=0:p<=.5?h=u/(l+c):h=u/(2-l-c),[d,h*100,p*100]},t.rgb.hsv=function(r){let o,s,a,c,l;const u=r[0]/255,d=r[1]/255,h=r[2]/255,p=Math.max(u,d,h),f=p-Math.min(u,d,h),_=function(g){return(p-g)/6/f+1/2};return f===0?(c=0,l=0):(l=f/p,o=_(u),s=_(d),a=_(h),u===p?c=a-s:d===p?c=1/3+o-a:h===p&&(c=2/3+s-o),c<0?c+=1:c>1&&(c-=1)),[c*360,l*100,p*100]},t.rgb.hwb=function(r){const o=r[0],s=r[1];let a=r[2];const c=t.rgb.hsl(r)[0],l=1/255*Math.min(o,Math.min(s,a));return a=1-1/255*Math.max(o,Math.max(s,a)),[c,l*100,a*100]},t.rgb.cmyk=function(r){const o=r[0]/255,s=r[1]/255,a=r[2]/255,c=Math.min(1-o,1-s,1-a),l=(1-o-c)/(1-c)||0,u=(1-s-c)/(1-c)||0,d=(1-a-c)/(1-c)||0;return[l*100,u*100,d*100,c*100]};function i(r,o){return(r[0]-o[0])**2+(r[1]-o[1])**2+(r[2]-o[2])**2}return t.rgb.keyword=function(r){const o=e[r];if(o)return o;let s=1/0,a;for(const c of Object.keys(n)){const l=n[c],u=i(r,l);u<s&&(s=u,a=c)}return a},t.keyword.rgb=function(r){return n[r]},t.rgb.xyz=function(r){let o=r[0]/255,s=r[1]/255,a=r[2]/255;o=o>.04045?((o+.055)/1.055)**2.4:o/12.92,s=s>.04045?((s+.055)/1.055)**2.4:s/12.92,a=a>.04045?((a+.055)/1.055)**2.4:a/12.92;const c=o*.4124+s*.3576+a*.1805,l=o*.2126+s*.7152+a*.0722,u=o*.0193+s*.1192+a*.9505;return[c*100,l*100,u*100]},t.rgb.lab=function(r){const o=t.rgb.xyz(r);let s=o[0],a=o[1],c=o[2];s/=95.047,a/=100,c/=108.883,s=s>.008856?s**(1/3):7.787*s+16/116,a=a>.008856?a**(1/3):7.787*a+16/116,c=c>.008856?c**(1/3):7.787*c+16/116;const l=116*a-16,u=500*(s-a),d=200*(a-c);return[l,u,d]},t.hsl.rgb=function(r){const o=r[0]/360,s=r[1]/100,a=r[2]/100;let c,l,u;if(s===0)return u=a*255,[u,u,u];a<.5?c=a*(1+s):c=a+s-a*s;const d=2*a-c,h=[0,0,0];for(let p=0;p<3;p++)l=o+1/3*-(p-1),l<0&&l++,l>1&&l--,6*l<1?u=d+(c-d)*6*l:2*l<1?u=c:3*l<2?u=d+(c-d)*(2/3-l)*6:u=d,h[p]=u*255;return h},t.hsl.hsv=function(r){const o=r[0];let s=r[1]/100,a=r[2]/100,c=s;const l=Math.max(a,.01);a*=2,s*=a<=1?a:2-a,c*=l<=1?l:2-l;const u=(a+s)/2,d=a===0?2*c/(l+c):2*s/(a+s);return[o,d*100,u*100]},t.hsv.rgb=function(r){const o=r[0]/60,s=r[1]/100;let a=r[2]/100;const c=Math.floor(o)%6,l=o-Math.floor(o),u=255*a*(1-s),d=255*a*(1-s*l),h=255*a*(1-s*(1-l));switch(a*=255,c){case 0:return[a,h,u];case 1:return[d,a,u];case 2:return[u,a,h];case 3:return[u,d,a];case 4:return[h,u,a];case 5:return[a,u,d]}},t.hsv.hsl=function(r){const o=r[0],s=r[1]/100,a=r[2]/100,c=Math.max(a,.01);let l,u;u=(2-s)*a;const d=(2-s)*c;return l=s*c,l/=d<=1?d:2-d,l=l||0,u/=2,[o,l*100,u*100]},t.hwb.rgb=function(r){const o=r[0]/360;let s=r[1]/100,a=r[2]/100;const c=s+a;let l;c>1&&(s/=c,a/=c);const u=Math.floor(6*o),d=1-a;l=6*o-u,(u&1)!==0&&(l=1-l);const h=s+l*(d-s);let p,f,_;switch(u){default:case 6:case 0:p=d,f=h,_=s;break;case 1:p=h,f=d,_=s;break;case 2:p=s,f=d,_=h;break;case 3:p=s,f=h,_=d;break;case 4:p=h,f=s,_=d;break;case 5:p=d,f=s,_=h;break}return[p*255,f*255,_*255]},t.cmyk.rgb=function(r){const o=r[0]/100,s=r[1]/100,a=r[2]/100,c=r[3]/100,l=1-Math.min(1,o*(1-c)+c),u=1-Math.min(1,s*(1-c)+c),d=1-Math.min(1,a*(1-c)+c);return[l*255,u*255,d*255]},t.xyz.rgb=function(r){const o=r[0]/100,s=r[1]/100,a=r[2]/100;let c,l,u;return c=o*3.2406+s*-1.5372+a*-.4986,l=o*-.9689+s*1.8758+a*.0415,u=o*.0557+s*-.204+a*1.057,c=c>.0031308?1.055*c**(1/2.4)-.055:c*12.92,l=l>.0031308?1.055*l**(1/2.4)-.055:l*12.92,u=u>.0031308?1.055*u**(1/2.4)-.055:u*12.92,c=Math.min(Math.max(0,c),1),l=Math.min(Math.max(0,l),1),u=Math.min(Math.max(0,u),1),[c*255,l*255,u*255]},t.xyz.lab=function(r){let o=r[0],s=r[1],a=r[2];o/=95.047,s/=100,a/=108.883,o=o>.008856?o**(1/3):7.787*o+16/116,s=s>.008856?s**(1/3):7.787*s+16/116,a=a>.008856?a**(1/3):7.787*a+16/116;const c=116*s-16,l=500*(o-s),u=200*(s-a);return[c,l,u]},t.lab.xyz=function(r){const o=r[0],s=r[1],a=r[2];let c,l,u;l=(o+16)/116,c=s/500+l,u=l-a/200;const d=l**3,h=c**3,p=u**3;return l=d>.008856?d:(l-16/116)/7.787,c=h>.008856?h:(c-16/116)/7.787,u=p>.008856?p:(u-16/116)/7.787,c*=95.047,l*=100,u*=108.883,[c,l,u]},t.lab.lch=function(r){const o=r[0],s=r[1],a=r[2];let c;c=Math.atan2(a,s)*360/2/Math.PI,c<0&&(c+=360);const u=Math.sqrt(s*s+a*a);return[o,u,c]},t.lch.lab=function(r){const o=r[0],s=r[1],c=r[2]/360*2*Math.PI,l=s*Math.cos(c),u=s*Math.sin(c);return[o,l,u]},t.rgb.ansi16=function(r,o=null){const[s,a,c]=r;let l=o===null?t.rgb.hsv(r)[2]:o;if(l=Math.round(l/50),l===0)return 30;let u=30+(Math.round(c/255)<<2|Math.round(a/255)<<1|Math.round(s/255));return l===2&&(u+=60),u},t.hsv.ansi16=function(r){return t.rgb.ansi16(t.hsv.rgb(r),r[2])},t.rgb.ansi256=function(r){const o=r[0],s=r[1],a=r[2];return o===s&&s===a?o<8?16:o>248?231:Math.round((o-8)/247*24)+232:16+36*Math.round(o/255*5)+6*Math.round(s/255*5)+Math.round(a/255*5)},t.ansi16.rgb=function(r){let o=r%10;if(o===0||o===7)return r>50&&(o+=3.5),o=o/10.5*255,[o,o,o];const s=(~~(r>50)+1)*.5,a=(o&1)*s*255,c=(o>>1&1)*s*255,l=(o>>2&1)*s*255;return[a,c,l]},t.ansi256.rgb=function(r){if(r>=232){const l=(r-232)*10+8;return[l,l,l]}r-=16;let o;const s=Math.floor(r/36)/5*255,a=Math.floor((o=r%36)/6)/5*255,c=o%6/5*255;return[s,a,c]},t.rgb.hex=function(r){const s=(((Math.round(r[0])&255)<<16)+((Math.round(r[1])&255)<<8)+(Math.round(r[2])&255)).toString(16).toUpperCase();return"000000".substring(s.length)+s},t.hex.rgb=function(r){const o=r.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!o)return[0,0,0];let s=o[0];o[0].length===3&&(s=s.split("").map(d=>d+d).join(""));const a=parseInt(s,16),c=a>>16&255,l=a>>8&255,u=a&255;return[c,l,u]},t.rgb.hcg=function(r){const o=r[0]/255,s=r[1]/255,a=r[2]/255,c=Math.max(Math.max(o,s),a),l=Math.min(Math.min(o,s),a),u=c-l;let d,h;return u<1?d=l/(1-u):d=0,u<=0?h=0:c===o?h=(s-a)/u%6:c===s?h=2+(a-o)/u:h=4+(o-s)/u,h/=6,h%=1,[h*360,u*100,d*100]},t.hsl.hcg=function(r){const o=r[1]/100,s=r[2]/100,a=s<.5?2*o*s:2*o*(1-s);let c=0;return a<1&&(c=(s-.5*a)/(1-a)),[r[0],a*100,c*100]},t.hsv.hcg=function(r){const o=r[1]/100,s=r[2]/100,a=o*s;let c=0;return a<1&&(c=(s-a)/(1-a)),[r[0],a*100,c*100]},t.hcg.rgb=function(r){const o=r[0]/360,s=r[1]/100,a=r[2]/100;if(s===0)return[a*255,a*255,a*255];const c=[0,0,0],l=o%1*6,u=l%1,d=1-u;let h=0;switch(Math.floor(l)){case 0:c[0]=1,c[1]=u,c[2]=0;break;case 1:c[0]=d,c[1]=1,c[2]=0;break;case 2:c[0]=0,c[1]=1,c[2]=u;break;case 3:c[0]=0,c[1]=d,c[2]=1;break;case 4:c[0]=u,c[1]=0,c[2]=1;break;default:c[0]=1,c[1]=0,c[2]=d}return h=(1-s)*a,[(s*c[0]+h)*255,(s*c[1]+h)*255,(s*c[2]+h)*255]},t.hcg.hsv=function(r){const o=r[1]/100,s=r[2]/100,a=o+s*(1-o);let c=0;return a>0&&(c=o/a),[r[0],c*100,a*100]},t.hcg.hsl=function(r){const o=r[1]/100,a=r[2]/100*(1-o)+.5*o;let c=0;return a>0&&a<.5?c=o/(2*a):a>=.5&&a<1&&(c=o/(2*(1-a))),[r[0],c*100,a*100]},t.hcg.hwb=function(r){const o=r[1]/100,s=r[2]/100,a=o+s*(1-o);return[r[0],(a-o)*100,(1-a)*100]},t.hwb.hcg=function(r){const o=r[1]/100,a=1-r[2]/100,c=a-o;let l=0;return c<1&&(l=(a-c)/(1-c)),[r[0],c*100,l*100]},t.apple.rgb=function(r){return[r[0]/65535*255,r[1]/65535*255,r[2]/65535*255]},t.rgb.apple=function(r){return[r[0]/255*65535,r[1]/255*65535,r[2]/255*65535]},t.gray.rgb=function(r){return[r[0]/100*255,r[0]/100*255,r[0]/100*255]},t.gray.hsl=function(r){return[0,0,r[0]]},t.gray.hsv=t.gray.hsl,t.gray.hwb=function(r){return[0,100,r[0]]},t.gray.cmyk=function(r){return[0,0,0,r[0]]},t.gray.lab=function(r){return[r[0],0,0]},t.gray.hex=function(r){const o=Math.round(r[0]/100*255)&255,a=((o<<16)+(o<<8)+o).toString(16).toUpperCase();return"000000".substring(a.length)+a},t.rgb.gray=function(r){return[(r[0]+r[1]+r[2])/3/255*100]},Nxe}var kxe,ymt;function BVn(){if(ymt)return kxe;ymt=1;const n=gmt();function e(){const o={},s=Object.keys(n);for(let a=s.length,c=0;c<a;c++)o[s[c]]={distance:-1,parent:null};return o}function t(o){const s=e(),a=[o];for(s[o].distance=0;a.length;){const c=a.pop(),l=Object.keys(n[c]);for(let u=l.length,d=0;d<u;d++){const h=l[d],p=s[h];p.distance===-1&&(p.distance=s[c].distance+1,p.parent=c,a.unshift(h))}}return s}function i(o,s){return function(a){return s(o(a))}}function r(o,s){const a=[s[o].parent,o];let c=n[s[o].parent][o],l=s[o].parent;for(;s[l].parent;)a.unshift(s[l].parent),c=i(n[s[l].parent][l],c),l=s[l].parent;return c.conversion=a,c}return kxe=function(o){const s=t(o),a={},c=Object.keys(s);for(let l=c.length,u=0;u<l;u++){const d=c[u];s[d].parent!==null&&(a[d]=r(d,s))}return a},kxe}var Oxe,xmt;function UVn(){if(xmt)return Oxe;xmt=1;const n=gmt(),e=BVn(),t={},i=Object.keys(n);function r(s){const a=function(...c){const l=c[0];return l==null?l:(l.length>1&&(c=l),s(c))};return"conversion"in s&&(a.conversion=s.conversion),a}function o(s){const a=function(...c){const l=c[0];if(l==null)return l;l.length>1&&(c=l);const u=s(c);if(typeof u=="object")for(let d=u.length,h=0;h<d;h++)u[h]=Math.round(u[h]);return u};return"conversion"in s&&(a.conversion=s.conversion),a}return i.forEach(s=>{t[s]={},Object.defineProperty(t[s],"channels",{value:n[s].channels}),Object.defineProperty(t[s],"labels",{value:n[s].labels});const a=e(s);Object.keys(a).forEach(l=>{const u=a[l];t[s][l]=o(u),t[s][l].raw=r(u)})}),Oxe=t,Oxe}var Lxe,vmt;function jVn(){if(vmt)return Lxe;vmt=1;const n=FVn(),e=UVn(),t=["keyword","gray","hex"],i={};for(const h of Object.keys(e))i[[...e[h].labels].sort().join("")]=h;const r={};function o(h,p){if(!(this instanceof o))return new o(h,p);if(p&&p in t&&(p=null),p&&!(p in e))throw new Error("Unknown model: "+p);let f,_;if(h==null)this.model="rgb",this.color=[0,0,0],this.valpha=1;else if(h instanceof o)this.model=h.model,this.color=[...h.color],this.valpha=h.valpha;else if(typeof h=="string"){const g=n.get(h);if(g===null)throw new Error("Unable to parse color from string: "+h);this.model=g.model,_=e[this.model].channels,this.color=g.value.slice(0,_),this.valpha=typeof g.value[_]=="number"?g.value[_]:1}else if(h.length>0){this.model=p||"rgb",_=e[this.model].channels;const g=Array.prototype.slice.call(h,0,_);this.color=d(g,_),this.valpha=typeof h[_]=="number"?h[_]:1}else if(typeof h=="number")this.model="rgb",this.color=[h>>16&255,h>>8&255,h&255],this.valpha=1;else{this.valpha=1;const g=Object.keys(h);"alpha"in h&&(g.splice(g.indexOf("alpha"),1),this.valpha=typeof h.alpha=="number"?h.alpha:0);const x=g.sort().join("");if(!(x in i))throw new Error("Unable to parse color from object: "+JSON.stringify(h));this.model=i[x];const{labels:v}=e[this.model],b=[];for(f=0;f<v.length;f++)b.push(h[v[f]]);this.color=d(b)}if(r[this.model])for(_=e[this.model].channels,f=0;f<_;f++){const g=r[this.model][f];g&&(this.color[f]=g(this.color[f]))}this.valpha=Math.max(0,Math.min(1,this.valpha)),Object.freeze&&Object.freeze(this)}o.prototype={toString(){return this.string()},toJSON(){return this[this.model]()},string(h){let p=this.model in n.to?this:this.rgb();p=p.round(typeof h=="number"?h:1);const f=p.valpha===1?p.color:[...p.color,this.valpha];return n.to[p.model](f)},percentString(h){const p=this.rgb().round(typeof h=="number"?h:1),f=p.valpha===1?p.color:[...p.color,this.valpha];return n.to.rgb.percent(f)},array(){return this.valpha===1?[...this.color]:[...this.color,this.valpha]},object(){const h={},{channels:p}=e[this.model],{labels:f}=e[this.model];for(let _=0;_<p;_++)h[f[_]]=this.color[_];return this.valpha!==1&&(h.alpha=this.valpha),h},unitArray(){const h=this.rgb().color;return h[0]/=255,h[1]/=255,h[2]/=255,this.valpha!==1&&h.push(this.valpha),h},unitObject(){const h=this.rgb().object();return h.r/=255,h.g/=255,h.b/=255,this.valpha!==1&&(h.alpha=this.valpha),h},round(h){return h=Math.max(h||0,0),new o([...this.color.map(a(h)),this.valpha],this.model)},alpha(h){return h!==void 0?new o([...this.color,Math.max(0,Math.min(1,h))],this.model):this.valpha},red:c("rgb",0,l(255)),green:c("rgb",1,l(255)),blue:c("rgb",2,l(255)),hue:c(["hsl","hsv","hsl","hwb","hcg"],0,h=>(h%360+360)%360),saturationl:c("hsl",1,l(100)),lightness:c("hsl",2,l(100)),saturationv:c("hsv",1,l(100)),value:c("hsv",2,l(100)),chroma:c("hcg",1,l(100)),gray:c("hcg",2,l(100)),white:c("hwb",1,l(100)),wblack:c("hwb",2,l(100)),cyan:c("cmyk",0,l(100)),magenta:c("cmyk",1,l(100)),yellow:c("cmyk",2,l(100)),black:c("cmyk",3,l(100)),x:c("xyz",0,l(95.047)),y:c("xyz",1,l(100)),z:c("xyz",2,l(108.833)),l:c("lab",0,l(100)),a:c("lab",1),b:c("lab",2),keyword(h){return h!==void 0?new o(h):e[this.model].keyword(this.color)},hex(h){return h!==void 0?new o(h):n.to.hex(this.rgb().round().color)},hexa(h){if(h!==void 0)return new o(h);const p=this.rgb().round().color;let f=Math.round(this.valpha*255).toString(16).toUpperCase();return f.length===1&&(f="0"+f),n.to.hex(p)+f},rgbNumber(){const h=this.rgb().color;return(h[0]&255)<<16|(h[1]&255)<<8|h[2]&255},luminosity(){const h=this.rgb().color,p=[];for(const[f,_]of h.entries()){const g=_/255;p[f]=g<=.04045?g/12.92:((g+.055)/1.055)**2.4}return .2126*p[0]+.7152*p[1]+.0722*p[2]},contrast(h){const p=this.luminosity(),f=h.luminosity();return p>f?(p+.05)/(f+.05):(f+.05)/(p+.05)},level(h){const p=this.contrast(h);return p>=7?"AAA":p>=4.5?"AA":""},isDark(){const h=this.rgb().color;return(h[0]*2126+h[1]*7152+h[2]*722)/1e4<128},isLight(){return!this.isDark()},negate(){const h=this.rgb();for(let p=0;p<3;p++)h.color[p]=255-h.color[p];return h},lighten(h){const p=this.hsl();return p.color[2]+=p.color[2]*h,p},darken(h){const p=this.hsl();return p.color[2]-=p.color[2]*h,p},saturate(h){const p=this.hsl();return p.color[1]+=p.color[1]*h,p},desaturate(h){const p=this.hsl();return p.color[1]-=p.color[1]*h,p},whiten(h){const p=this.hwb();return p.color[1]+=p.color[1]*h,p},blacken(h){const p=this.hwb();return p.color[2]+=p.color[2]*h,p},grayscale(){const h=this.rgb().color,p=h[0]*.3+h[1]*.59+h[2]*.11;return o.rgb(p,p,p)},fade(h){return this.alpha(this.valpha-this.valpha*h)},opaquer(h){return this.alpha(this.valpha+this.valpha*h)},rotate(h){const p=this.hsl();let f=p.color[0];return f=(f+h)%360,f=f<0?360+f:f,p.color[0]=f,p},mix(h,p){if(!h||!h.rgb)throw new Error('Argument to "mix" was not a Color instance, but rather an instance of '+typeof h);const f=h.rgb(),_=this.rgb(),g=p===void 0?.5:p,x=2*g-1,v=f.alpha()-_.alpha(),b=((x*v===-1?x:(x+v)/(1+x*v))+1)/2,S=1-b;return o.rgb(b*f.red()+S*_.red(),b*f.green()+S*_.green(),b*f.blue()+S*_.blue(),f.alpha()*g+_.alpha()*(1-g))}};for(const h of Object.keys(e)){if(t.includes(h))continue;const{channels:p}=e[h];o.prototype[h]=function(...f){return this.model===h?new o(this):f.length>0?new o(f,h):new o([...u(e[this.model][h].raw(this.color)),this.valpha],h)},o[h]=function(...f){let _=f[0];return typeof _=="number"&&(_=d(f,p)),new o(_,h)}}function s(h,p){return Number(h.toFixed(p))}function a(h){return function(p){return s(p,h)}}function c(h,p,f){h=Array.isArray(h)?h:[h];for(const _ of h)(r[_]||(r[_]=[]))[p]=f;return h=h[0],function(_){let g;return _!==void 0?(f&&(_=f(_)),g=this[h](),g.color[p]=_,g):(g=this[h]().color[p],f&&(g=f(g)),g)}}function l(h){return function(p){return Math.max(0,Math.min(h,p))}}function u(h){return Array.isArray(h)?h:[h]}function d(h,p){for(let f=0;f<p;f++)typeof h[f]!="number"&&(h[f]=0);return h}return Lxe=o,Lxe}var HVn=jVn();const VVn=uw(HVn);function qVn(n){if(n.sheet)return n.sheet;for(var e=0;e<document.styleSheets.length;e++)if(document.styleSheets[e].ownerNode===n)return document.styleSheets[e]}function GVn(n){var e=document.createElement("style");return e.setAttribute("data-emotion",n.key),n.nonce!==void 0&&e.setAttribute("nonce",n.nonce),e.appendChild(document.createTextNode("")),e.setAttribute("data-s",""),e}var YVn=(function(){function n(t){var i=this;this._insertTag=function(r){var o;i.tags.length===0?i.insertionPoint?o=i.insertionPoint.nextSibling:i.prepend?o=i.container.firstChild:o=i.before:o=i.tags[i.tags.length-1].nextSibling,i.container.insertBefore(r,o),i.tags.push(r)},this.isSpeedy=t.speedy===void 0?!0:t.speedy,this.tags=[],this.ctr=0,this.nonce=t.nonce,this.key=t.key,this.container=t.container,this.prepend=t.prepend,this.insertionPoint=t.insertionPoint,this.before=null}var e=n.prototype;return e.hydrate=function(i){i.forEach(this._insertTag)},e.insert=function(i){this.ctr%(this.isSpeedy?65e3:1)===0&&this._insertTag(GVn(this));var r=this.tags[this.tags.length-1];if(this.isSpeedy){var o=qVn(r);try{o.insertRule(i,o.cssRules.length)}catch{}}else r.appendChild(document.createTextNode(i));this.ctr++},e.flush=function(){this.tags.forEach(function(i){var r;return(r=i.parentNode)==null?void 0:r.removeChild(i)}),this.tags=[],this.ctr=0},n})(),fb="-ms-",zq="-moz-",Zh="-webkit-",bmt="comm",Dxe="rule",$xe="decl",XVn="@import",wmt="@keyframes",WVn="@layer",ZVn=Math.abs,Fq=String.fromCharCode,KVn=Object.assign;function QVn(n,e){return Av(n,0)^45?(((e<<2^Av(n,0))<<2^Av(n,1))<<2^Av(n,2))<<2^Av(n,3):0}function Smt(n){return n.trim()}function JVn(n,e){return(n=e.exec(n))?n[0]:n}function Kh(n,e,t){return n.replace(e,t)}function zxe(n,e){return n.indexOf(e)}function Av(n,e){return n.charCodeAt(e)|0}function K8(n,e,t){return n.slice(e,t)}function NT(n){return n.length}function Fxe(n){return n.length}function Bq(n,e){return e.push(n),n}function eqn(n,e){return n.map(e).join("")}var Uq=1,TI=1,Emt=0,Mw=0,a1=0,MI="";function jq(n,e,t,i,r,o,s){return{value:n,root:e,parent:t,type:i,props:r,children:o,line:Uq,column:TI,length:s,return:""}}function Q8(n,e){return KVn(jq("",null,null,"",null,null,0),n,{length:-n.length},e)}function tqn(){return a1}function nqn(){return a1=Mw>0?Av(MI,--Mw):0,TI--,a1===10&&(TI=1,Uq--),a1}function xS(){return a1=Mw<Emt?Av(MI,Mw++):0,TI++,a1===10&&(TI=1,Uq++),a1}function kT(){return Av(MI,Mw)}function Hq(){return Mw}function J8(n,e){return K8(MI,n,e)}function eL(n){switch(n){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 Tmt(n){return Uq=TI=1,Emt=NT(MI=n),Mw=0,[]}function Mmt(n){return MI="",n}function Vq(n){return Smt(J8(Mw-1,Bxe(n===91?n+2:n===40?n+1:n)))}function iqn(n){for(;(a1=kT())&&a1<33;)xS();return eL(n)>2||eL(a1)>3?"":" "}function rqn(n,e){for(;--e&&xS()&&!(a1<48||a1>102||a1>57&&a1<65||a1>70&&a1<97););return J8(n,Hq()+(e<6&&kT()==32&&xS()==32))}function Bxe(n){for(;xS();)switch(a1){case n:return Mw;case 34:case 39:n!==34&&n!==39&&Bxe(a1);break;case 40:n===41&&Bxe(n);break;case 92:xS();break}return Mw}function oqn(n,e){for(;xS()&&n+a1!==57;)if(n+a1===84&&kT()===47)break;return"/*"+J8(e,Mw-1)+"*"+Fq(n===47?n:xS())}function sqn(n){for(;!eL(kT());)xS();return J8(n,Mw)}function aqn(n){return Mmt(qq("",null,null,null,[""],n=Tmt(n),0,[0],n))}function qq(n,e,t,i,r,o,s,a,c){for(var l=0,u=0,d=s,h=0,p=0,f=0,_=1,g=1,x=1,v=0,b="",S=r,P=o,A=i,R=b;g;)switch(f=v,v=xS()){case 40:if(f!=108&&Av(R,d-1)==58){zxe(R+=Kh(Vq(v),"&","&\f"),"&\f")!=-1&&(x=-1);break}case 34:case 39:case 91:R+=Vq(v);break;case 9:case 10:case 13:case 32:R+=iqn(f);break;case 92:R+=rqn(Hq()-1,7);continue;case 47:switch(kT()){case 42:case 47:Bq(cqn(oqn(xS(),Hq()),e,t),c);break;default:R+="/"}break;case 123*_:a[l++]=NT(R)*x;case 125*_:case 59:case 0:switch(v){case 0:case 125:g=0;case 59+u:x==-1&&(R=Kh(R,/\f/g,"")),p>0&&NT(R)-d&&Bq(p>32?Cmt(R+";",i,t,d-1):Cmt(Kh(R," ","")+";",i,t,d-2),c);break;case 59:R+=";";default:if(Bq(A=Amt(R,e,t,l,u,r,a,b,S=[],P=[],d),o),v===123)if(u===0)qq(R,e,A,A,S,o,d,a,P);else switch(h===99&&Av(R,3)===110?100:h){case 100:case 108:case 109:case 115:qq(n,A,A,i&&Bq(Amt(n,A,A,0,0,r,a,b,r,S=[],d),P),r,P,d,a,i?S:P);break;default:qq(R,A,A,A,[""],P,0,a,P)}}l=u=p=0,_=x=1,b=R="",d=s;break;case 58:d=1+NT(R),p=f;default:if(_<1){if(v==123)--_;else if(v==125&&_++==0&&nqn()==125)continue}switch(R+=Fq(v),v*_){case 38:x=u>0?1:(R+="\f",-1);break;case 44:a[l++]=(NT(R)-1)*x,x=1;break;case 64:kT()===45&&(R+=Vq(xS())),h=kT(),u=d=NT(b=R+=sqn(Hq())),v++;break;case 45:f===45&&NT(R)==2&&(_=0)}}return o}function Amt(n,e,t,i,r,o,s,a,c,l,u){for(var d=r-1,h=r===0?o:[""],p=Fxe(h),f=0,_=0,g=0;f<i;++f)for(var x=0,v=K8(n,d+1,d=ZVn(_=s[f])),b=n;x<p;++x)(b=Smt(_>0?h[x]+" "+v:Kh(v,/&\f/g,h[x])))&&(c[g++]=b);return jq(n,e,t,r===0?Dxe:a,c,l,u)}function cqn(n,e,t){return jq(n,e,t,bmt,Fq(tqn()),K8(n,2,-2),0)}function Cmt(n,e,t,i){return jq(n,e,t,$xe,K8(n,0,i),K8(n,i+1,-1),i)}function AI(n,e){for(var t="",i=Fxe(n),r=0;r<i;r++)t+=e(n[r],r,n,e)||"";return t}function lqn(n,e,t,i){switch(n.type){case WVn:if(n.children.length)break;case XVn:case $xe:return n.return=n.return||n.value;case bmt:return"";case wmt:return n.return=n.value+"{"+AI(n.children,i)+"}";case Dxe:n.value=n.props.join(",")}return NT(t=AI(n.children,i))?n.return=n.value+"{"+t+"}":""}function uqn(n){var e=Fxe(n);return function(t,i,r,o){for(var s="",a=0;a<e;a++)s+=n[a](t,i,r,o)||"";return s}}function dqn(n){return function(e){e.root||(e=e.return)&&n(e)}}function hqn(n){var e=Object.create(null);return function(t){return e[t]===void 0&&(e[t]=n(t)),e[t]}}var pqn=function(e,t,i){for(var r=0,o=0;r=o,o=kT(),r===38&&o===12&&(t[i]=1),!eL(o);)xS();return J8(e,Mw)},fqn=function(e,t){var i=-1,r=44;do switch(eL(r)){case 0:r===38&&kT()===12&&(t[i]=1),e[i]+=pqn(Mw-1,t,i);break;case 2:e[i]+=Vq(r);break;case 4:if(r===44){e[++i]=kT()===58?"&\f":"",t[i]=e[i].length;break}default:e[i]+=Fq(r)}while(r=xS());return e},mqn=function(e,t){return Mmt(fqn(Tmt(e),t))},Pmt=new WeakMap,_qn=function(e){if(!(e.type!=="rule"||!e.parent||e.length<1)){for(var t=e.value,i=e.parent,r=e.column===i.column&&e.line===i.line;i.type!=="rule";)if(i=i.parent,!i)return;if(!(e.props.length===1&&t.charCodeAt(0)!==58&&!Pmt.get(i))&&!r){Pmt.set(e,!0);for(var o=[],s=mqn(t,o),a=i.props,c=0,l=0;c<s.length;c++)for(var u=0;u<a.length;u++,l++)e.props[l]=o[c]?s[c].replace(/&\f/g,a[u]):a[u]+" "+s[c]}}},gqn=function(e){if(e.type==="decl"){var t=e.value;t.charCodeAt(0)===108&&t.charCodeAt(2)===98&&(e.return="",e.value="")}};function Rmt(n,e){switch(QVn(n,e)){case 5103:return Zh+"print-"+n+n;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 Zh+n+n;case 5349:case 4246:case 4810:case 6968:case 2756:return Zh+n+zq+n+fb+n+n;case 6828:case 4268:return Zh+n+fb+n+n;case 6165:return Zh+n+fb+"flex-"+n+n;case 5187:return Zh+n+Kh(n,/(\w+).+(:[^]+)/,Zh+"box-$1$2"+fb+"flex-$1$2")+n;case 5443:return Zh+n+fb+"flex-item-"+Kh(n,/flex-|-self/,"")+n;case 4675:return Zh+n+fb+"flex-line-pack"+Kh(n,/align-content|flex-|-self/,"")+n;case 5548:return Zh+n+fb+Kh(n,"shrink","negative")+n;case 5292:return Zh+n+fb+Kh(n,"basis","preferred-size")+n;case 6060:return Zh+"box-"+Kh(n,"-grow","")+Zh+n+fb+Kh(n,"grow","positive")+n;case 4554:return Zh+Kh(n,/([^-])(transform)/g,"$1"+Zh+"$2")+n;case 6187:return Kh(Kh(Kh(n,/(zoom-|grab)/,Zh+"$1"),/(image-set)/,Zh+"$1"),n,"")+n;case 5495:case 3959:return Kh(n,/(image-set\([^]*)/,Zh+"$1$`$1");case 4968:return Kh(Kh(n,/(.+:)(flex-)?(.*)/,Zh+"box-pack:$3"+fb+"flex-pack:$3"),/s.+-b[^;]+/,"justify")+Zh+n+n;case 4095:case 3583:case 4068:case 2532:return Kh(n,/(.+)-inline(.+)/,Zh+"$1$2")+n;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(NT(n)-1-e>6)switch(Av(n,e+1)){case 109:if(Av(n,e+4)!==45)break;case 102:return Kh(n,/(.+:)(.+)-([^]+)/,"$1"+Zh+"$2-$3$1"+zq+(Av(n,e+3)==108?"$3":"$2-$3"))+n;case 115:return~zxe(n,"stretch")?Rmt(Kh(n,"stretch","fill-available"),e)+n:n}break;case 4949:if(Av(n,e+1)!==115)break;case 6444:switch(Av(n,NT(n)-3-(~zxe(n,"!important")&&10))){case 107:return Kh(n,":",":"+Zh)+n;case 101:return Kh(n,/(.+:)([^;!]+)(;|!.+)?/,"$1"+Zh+(Av(n,14)===45?"inline-":"")+"box$3$1"+Zh+"$2$3$1"+fb+"$2box$3")+n}break;case 5936:switch(Av(n,e+11)){case 114:return Zh+n+fb+Kh(n,/[svh]\w+-[tblr]{2}/,"tb")+n;case 108:return Zh+n+fb+Kh(n,/[svh]\w+-[tblr]{2}/,"tb-rl")+n;case 45:return Zh+n+fb+Kh(n,/[svh]\w+-[tblr]{2}/,"lr")+n}return Zh+n+fb+n+n}return n}var yqn=function(e,t,i,r){if(e.length>-1&&!e.return)switch(e.type){case $xe:e.return=Rmt(e.value,e.length);break;case wmt:return AI([Q8(e,{value:Kh(e.value,"@","@"+Zh)})],r);case Dxe:if(e.length)return eqn(e.props,function(o){switch(JVn(o,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return AI([Q8(e,{props:[Kh(o,/:(read-\w+)/,":"+zq+"$1")]})],r);case"::placeholder":return AI([Q8(e,{props:[Kh(o,/:(plac\w+)/,":"+Zh+"input-$1")]}),Q8(e,{props:[Kh(o,/:(plac\w+)/,":"+zq+"$1")]}),Q8(e,{props:[Kh(o,/:(plac\w+)/,fb+"input-$1")]})],r)}return""})}},xqn=[yqn],vqn=function(e){var t=e.key;if(t==="css"){var i=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(i,function(_){var g=_.getAttribute("data-emotion");g.indexOf(" ")!==-1&&(document.head.appendChild(_),_.setAttribute("data-s",""))})}var r=e.stylisPlugins||xqn,o={},s,a=[];s=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+t+' "]'),function(_){for(var g=_.getAttribute("data-emotion").split(" "),x=1;x<g.length;x++)o[g[x]]=!0;a.push(_)});var c,l=[_qn,gqn];{var u,d=[lqn,dqn(function(_){u.insert(_)})],h=uqn(l.concat(r,d)),p=function(g){return AI(aqn(g),h)};c=function(g,x,v,b){u=v,p(g?g+"{"+x.styles+"}":x.styles),b&&(f.inserted[x.name]=!0)}}var f={key:t,sheet:new YVn({key:t,container:s,nonce:e.nonce,speedy:e.speedy,prepend:e.prepend,insertionPoint:e.insertionPoint}),nonce:e.nonce,inserted:o,registered:{},insert:c};return f.sheet.hydrate(a),f};function bqn(n){for(var e=0,t,i=0,r=n.length;r>=4;++i,r-=4)t=n.charCodeAt(i)&255|(n.charCodeAt(++i)&255)<<8|(n.charCodeAt(++i)&255)<<16|(n.charCodeAt(++i)&255)<<24,t=(t&65535)*1540483477+((t>>>16)*59797<<16),t^=t>>>24,e=(t&65535)*1540483477+((t>>>16)*59797<<16)^(e&65535)*1540483477+((e>>>16)*59797<<16);switch(r){case 3:e^=(n.charCodeAt(i+2)&255)<<16;case 2:e^=(n.charCodeAt(i+1)&255)<<8;case 1:e^=n.charCodeAt(i)&255,e=(e&65535)*1540483477+((e>>>16)*59797<<16)}return e^=e>>>13,e=(e&65535)*1540483477+((e>>>16)*59797<<16),((e^e>>>15)>>>0).toString(36)}var wqn={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},Sqn=/[A-Z]|^ms/g,Eqn=/_EMO_([^_]+?)_([^]*?)_EMO_/g,Imt=function(e){return e.charCodeAt(1)===45},Nmt=function(e){return e!=null&&typeof e!="boolean"},Uxe=hqn(function(n){return Imt(n)?n:n.replace(Sqn,"-$&").toLowerCase()}),kmt=function(e,t){switch(e){case"animation":case"animationName":if(typeof t=="string")return t.replace(Eqn,function(i,r,o){return tA={name:r,styles:o,next:tA},r})}return wqn[e]!==1&&!Imt(e)&&typeof t=="number"&&t!==0?t+"px":t};function Gq(n,e,t){if(t==null)return"";var i=t;if(i.__emotion_styles!==void 0)return i;switch(typeof t){case"boolean":return"";case"object":{var r=t;if(r.anim===1)return tA={name:r.name,styles:r.styles,next:tA},r.name;var o=t;if(o.styles!==void 0){var s=o.next;if(s!==void 0)for(;s!==void 0;)tA={name:s.name,styles:s.styles,next:tA},s=s.next;var a=o.styles+";";return a}return Tqn(n,e,t)}}var c=t;if(e==null)return c;var l=e[c];return l!==void 0?l:c}function Tqn(n,e,t){var i="";if(Array.isArray(t))for(var r=0;r<t.length;r++)i+=Gq(n,e,t[r])+";";else for(var o in t){var s=t[o];if(typeof s!="object"){var a=s;e!=null&&e[a]!==void 0?i+=o+"{"+e[a]+"}":Nmt(a)&&(i+=Uxe(o)+":"+kmt(o,a)+";")}else if(Array.isArray(s)&&typeof s[0]=="string"&&(e==null||e[s[0]]===void 0))for(var c=0;c<s.length;c++)Nmt(s[c])&&(i+=Uxe(o)+":"+kmt(o,s[c])+";");else{var l=Gq(n,e,s);switch(o){case"animation":case"animationName":{i+=Uxe(o)+":"+l+";";break}default:i+=o+"{"+l+"}"}}}return i}var Omt=/label:\s*([^\s;{]+)\s*(;|$)/g,tA;function jxe(n,e,t){if(n.length===1&&typeof n[0]=="object"&&n[0]!==null&&n[0].styles!==void 0)return n[0];var i=!0,r="";tA=void 0;var o=n[0];if(o==null||o.raw===void 0)i=!1,r+=Gq(t,e,o);else{var s=o;r+=s[0]}for(var a=1;a<n.length;a++)if(r+=Gq(t,e,n[a]),i){var c=o;r+=c[a]}Omt.lastIndex=0;for(var l="",u;(u=Omt.exec(r))!==null;)l+="-"+u[1];var d=bqn(r)+l;return{name:d,styles:r,next:tA}}function Lmt(n,e,t){var i="";return t.split(" ").forEach(function(r){n[r]!==void 0?e.push(n[r]+";"):r&&(i+=r+" ")}),i}var Mqn=function(e,t,i){var r=e.key+"-"+t.name;e.registered[r]===void 0&&(e.registered[r]=t.styles)},Aqn=function(e,t,i){Mqn(e,t);var r=e.key+"-"+t.name;if(e.inserted[t.name]===void 0){var o=t;do e.insert(t===o?"."+r:"",o,e.sheet,!0),o=o.next;while(o!==void 0)}};function Dmt(n,e){if(n.inserted[e.name]===void 0)return n.insert("",e,n.sheet,!0)}function $mt(n,e,t){var i=[],r=Lmt(n,i,t);return i.length<2?t:r+e(i)}var Cqn=function(e){var t=vqn(e);t.sheet.speedy=function(a){this.isSpeedy=a},t.compat=!0;var i=function(){for(var c=arguments.length,l=new Array(c),u=0;u<c;u++)l[u]=arguments[u];var d=jxe(l,t.registered,void 0);return Aqn(t,d),t.key+"-"+d.name},r=function(){for(var c=arguments.length,l=new Array(c),u=0;u<c;u++)l[u]=arguments[u];var d=jxe(l,t.registered),h="animation-"+d.name;return Dmt(t,{name:d.name,styles:"@keyframes "+h+"{"+d.styles+"}"}),h},o=function(){for(var c=arguments.length,l=new Array(c),u=0;u<c;u++)l[u]=arguments[u];var d=jxe(l,t.registered);Dmt(t,d)},s=function(){for(var c=arguments.length,l=new Array(c),u=0;u<c;u++)l[u]=arguments[u];return $mt(t.registered,i,Pqn(l))};return{css:i,cx:s,injectGlobal:o,keyframes:r,hydrate:function(c){c.forEach(function(l){t.inserted[l]=!0})},flush:function(){t.registered={},t.inserted={},t.sheet.flush()},sheet:t.sheet,cache:t,getRegisteredStyles:Lmt.bind(null,t.registered),merge:$mt.bind(null,t.registered,i)}},Pqn=function n(e){for(var t="",i=0;i<e.length;i++){var r=e[i];if(r!=null){var o=void 0;switch(typeof r){case"boolean":break;case"object":{if(Array.isArray(r))o=n(r);else{o="";for(var s in r)r[s]&&s&&(o&&(o+=" "),o+=s)}break}default:o=r}o&&(t&&(t+=" "),t+=o)}}return t},Rqn=Cqn({key:"css"}),CI=Rqn.css,Iqn=Object.create,zmt=Object.defineProperty,Nqn=Object.getOwnPropertyDescriptor,Fmt=Object.getOwnPropertyNames,kqn=Object.getPrototypeOf,Oqn=Object.prototype.hasOwnProperty,wh=(n,e)=>function(){return e||(0,n[Fmt(n)[0]])((e={exports:{}}).exports,e),e.exports},Lqn=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Fmt(e))!Oqn.call(n,r)&&r!==t&&zmt(n,r,{get:()=>e[r],enumerable:!(i=Nqn(e,r))||i.enumerable});return n},Bmt=(n,e,t)=>(t=n!=null?Iqn(kqn(n)):{},Lqn(zmt(t,"default",{value:n,enumerable:!0}),n)),Dqn=wh({"node_modules/svgson/dist/svgson.umd.js"(n,e){(function(t,i){typeof n=="object"&&typeof e<"u"?e.exports=i():typeof define=="function"&&define.amd?define(i):(t=typeof globalThis<"u"?globalThis:t||self,t.svgson=i())})(n,function(){var t=function(te){return te!=null&&(i(te)||r(te)||!!te._isBuffer)};function i(te){return!!te.constructor&&typeof te.constructor.isBuffer=="function"&&te.constructor.isBuffer(te)}function r(te){return typeof te.readFloatLE=="function"&&typeof te.slice=="function"&&i(te.slice(0,0))}var o=Object.prototype.toString,s=function(se){if(typeof se>"u")return"undefined";if(se===null)return"null";if(se===!0||se===!1||se instanceof Boolean)return"boolean";if(typeof se=="string"||se instanceof String)return"string";if(typeof se=="number"||se instanceof Number)return"number";if(typeof se=="function"||se instanceof Function)return"function";if(typeof Array.isArray<"u"&&Array.isArray(se))return"array";if(se instanceof RegExp)return"regexp";if(se instanceof Date)return"date";var he=o.call(se);return he==="[object RegExp]"?"regexp":he==="[object Date]"?"date":he==="[object Arguments]"?"arguments":he==="[object Error]"?"error":t(se)?"buffer":he==="[object Set]"?"set":he==="[object WeakSet]"?"weakset":he==="[object Map]"?"map":he==="[object WeakMap]"?"weakmap":he==="[object Symbol]"?"symbol":he==="[object Int8Array]"?"int8array":he==="[object Uint8Array]"?"uint8array":he==="[object Uint8ClampedArray]"?"uint8clampedarray":he==="[object Int16Array]"?"int16array":he==="[object Uint16Array]"?"uint16array":he==="[object Int32Array]"?"int32array":he==="[object Uint32Array]"?"uint32array":he==="[object Float32Array]"?"float32array":he==="[object Float64Array]"?"float64array":"object"};function a(te,se){return se={exports:{}},te(se,se.exports),se.exports}var c=a(function(te){(function(){function se(he,Me){if(typeof Me!="function")return he;var Ee={};for(var Pe in he)Object.prototype.hasOwnProperty.call(he,Pe)&&(Ee[Me(Pe,he[Pe])||Pe]=he[Pe]);return Ee}te.exports?te.exports=se:window.rename=se})()}),l=function te(se,he){var Me=s(se);if(Me!=="object"&&Me!=="array")throw new Error("expected an object");var Ee=[];Me==="object"&&(se=c(se,he),Ee={});for(var Pe in se)if(se.hasOwnProperty(Pe)){var Le=se[Pe];s(Le)==="object"||s(Le)==="array"?Ee[Pe]=te(Le,he):Ee[Pe]=Le}return Ee},u=a(function(te){var se=Object.prototype.hasOwnProperty,he="~";function Me(){}Object.create&&(Me.prototype=Object.create(null),new Me().__proto__||(he=!1));function Ee(Le,ke,ae){this.fn=Le,this.context=ke,this.once=ae||!1}function Pe(){this._events=new Me,this._eventsCount=0}Pe.prototype.eventNames=function(){var ke=[],ae,we;if(this._eventsCount===0)return ke;for(we in ae=this._events)se.call(ae,we)&&ke.push(he?we.slice(1):we);return Object.getOwnPropertySymbols?ke.concat(Object.getOwnPropertySymbols(ae)):ke},Pe.prototype.listeners=function(ke,ae){var we=he?he+ke:ke,xe=this._events[we];if(ae)return!!xe;if(!xe)return[];if(xe.fn)return[xe.fn];for(var je=0,nt=xe.length,ct=new Array(nt);je<nt;je++)ct[je]=xe[je].fn;return ct},Pe.prototype.emit=function(ke,ae,we,xe,je,nt){var ct=he?he+ke:ke;if(!this._events[ct])return!1;var Ce=this._events[ct],We=arguments.length,Ze,qe;if(Ce.fn){switch(Ce.once&&this.removeListener(ke,Ce.fn,void 0,!0),We){case 1:return Ce.fn.call(Ce.context),!0;case 2:return Ce.fn.call(Ce.context,ae),!0;case 3:return Ce.fn.call(Ce.context,ae,we),!0;case 4:return Ce.fn.call(Ce.context,ae,we,xe),!0;case 5:return Ce.fn.call(Ce.context,ae,we,xe,je),!0;case 6:return Ce.fn.call(Ce.context,ae,we,xe,je,nt),!0}for(qe=1,Ze=new Array(We-1);qe<We;qe++)Ze[qe-1]=arguments[qe];Ce.fn.apply(Ce.context,Ze)}else{var Xe=Ce.length,$e;for(qe=0;qe<Xe;qe++)switch(Ce[qe].once&&this.removeListener(ke,Ce[qe].fn,void 0,!0),We){case 1:Ce[qe].fn.call(Ce[qe].context);break;case 2:Ce[qe].fn.call(Ce[qe].context,ae);break;case 3:Ce[qe].fn.call(Ce[qe].context,ae,we);break;case 4:Ce[qe].fn.call(Ce[qe].context,ae,we,xe);break;default:if(!Ze)for($e=1,Ze=new Array(We-1);$e<We;$e++)Ze[$e-1]=arguments[$e];Ce[qe].fn.apply(Ce[qe].context,Ze)}}return!0},Pe.prototype.on=function(ke,ae,we){var xe=new Ee(ae,we||this),je=he?he+ke:ke;return this._events[je]?this._events[je].fn?this._events[je]=[this._events[je],xe]:this._events[je].push(xe):(this._events[je]=xe,this._eventsCount++),this},Pe.prototype.once=function(ke,ae,we){var xe=new Ee(ae,we||this,!0),je=he?he+ke:ke;return this._events[je]?this._events[je].fn?this._events[je]=[this._events[je],xe]:this._events[je].push(xe):(this._events[je]=xe,this._eventsCount++),this},Pe.prototype.removeListener=function(ke,ae,we,xe){var je=he?he+ke:ke;if(!this._events[je])return this;if(!ae)return--this._eventsCount===0?this._events=new Me:delete this._events[je],this;var nt=this._events[je];if(nt.fn)nt.fn===ae&&(!xe||nt.once)&&(!we||nt.context===we)&&(--this._eventsCount===0?this._events=new Me:delete this._events[je]);else{for(var ct=0,Ce=[],We=nt.length;ct<We;ct++)(nt[ct].fn!==ae||xe&&!nt[ct].once||we&&nt[ct].context!==we)&&Ce.push(nt[ct]);Ce.length?this._events[je]=Ce.length===1?Ce[0]:Ce:--this._eventsCount===0?this._events=new Me:delete this._events[je]}return this},Pe.prototype.removeAllListeners=function(ke){var ae;return ke?(ae=he?he+ke:ke,this._events[ae]&&(--this._eventsCount===0?this._events=new Me:delete this._events[ae])):(this._events=new Me,this._eventsCount=0),this},Pe.prototype.off=Pe.prototype.removeListener,Pe.prototype.addListener=Pe.prototype.on,Pe.prototype.setMaxListeners=function(){return this},Pe.prefixed=he,Pe.EventEmitter=Pe,te.exports=Pe});function d(te,se,he){return se in te?Object.defineProperty(te,se,{value:he,enumerable:!0,configurable:!0,writable:!0}):te[se]=he,te}var h=function(){},p={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"},f={lt:"action-lt",gt:"action-gt",space:"action-space",equal:"action-equal",quote:"action-quote",slash:"action-slash",char:"action-char",error:"action-error"},_={text:"text",openTag:"open-tag",closeTag:"close-tag",attributeName:"attribute-name",attributeValue:"attribute-value"},g={" ":f.space," ":f.space,"\n":f.space,"\r":f.space,"<":f.lt,">":f.gt,'"':f.quote,"'":f.quote,"=":f.equal,"/":f.slash},x=function(se){return g[se]||f.char},v=function(se){var he,Me,Ee,Pe,Le,ke,ae,we,xe,je;se=Object.assign({debug:!1},se);var nt=new u,ct=p.data,Ce="",We="",Ze="",qe="",Xe="",$e="",Ae=function(Ke,et){if(!(We[0]==="?"||We[0]==="!")){var pt={type:Ke,value:et};se.debug&&console.log("emit:",pt),nt.emit("data",pt)}};nt.stateMachine=(je={},d(je,p.data,(he={},d(he,f.lt,function(){Ce.trim()&&Ae(_.text,Ce),We="",Xe=!1,ct=p.tagBegin}),d(he,f.char,function(De){Ce+=De}),he)),d(je,p.cdata,d({},f.char,function(De){Ce+=De,Ce.substr(-3)==="]]>"&&(Ae(_.text,Ce.slice(0,-3)),Ce="",ct=p.data)})),d(je,p.tagBegin,(Me={},d(Me,f.space,h),d(Me,f.char,function(De){We=De,ct=p.tagName}),d(Me,f.slash,function(){We="",Xe=!0}),Me)),d(je,p.tagName,(Ee={},d(Ee,f.space,function(){Xe?ct=p.tagEnd:(ct=p.attributeNameStart,Ae(_.openTag,We))}),d(Ee,f.gt,function(){Ae(Xe?_.closeTag:_.openTag,We),Ce="",ct=p.data}),d(Ee,f.slash,function(){ct=p.tagEnd,Ae(_.openTag,We)}),d(Ee,f.char,function(De){We+=De,We==="![CDATA["&&(ct=p.cdata,Ce="",We="")}),Ee)),d(je,p.tagEnd,(Pe={},d(Pe,f.gt,function(){Ae(_.closeTag,We),Ce="",ct=p.data}),d(Pe,f.char,h),Pe)),d(je,p.attributeNameStart,(Le={},d(Le,f.char,function(De){Ze=De,ct=p.attributeName}),d(Le,f.gt,function(){Ce="",ct=p.data}),d(Le,f.space,h),d(Le,f.slash,function(){Xe=!0,ct=p.tagEnd}),Le)),d(je,p.attributeName,(ke={},d(ke,f.space,function(){ct=p.attributeNameEnd}),d(ke,f.equal,function(){Ae(_.attributeName,Ze),ct=p.attributeValueBegin}),d(ke,f.gt,function(){qe="",Ae(_.attributeName,Ze),Ae(_.attributeValue,qe),Ce="",ct=p.data}),d(ke,f.slash,function(){Xe=!0,qe="",Ae(_.attributeName,Ze),Ae(_.attributeValue,qe),ct=p.tagEnd}),d(ke,f.char,function(De){Ze+=De}),ke)),d(je,p.attributeNameEnd,(ae={},d(ae,f.space,h),d(ae,f.equal,function(){Ae(_.attributeName,Ze),ct=p.attributeValueBegin}),d(ae,f.gt,function(){qe="",Ae(_.attributeName,Ze),Ae(_.attributeValue,qe),Ce="",ct=p.data}),d(ae,f.char,function(De){qe="",Ae(_.attributeName,Ze),Ae(_.attributeValue,qe),Ze=De,ct=p.attributeName}),ae)),d(je,p.attributeValueBegin,(we={},d(we,f.space,h),d(we,f.quote,function(De){$e=De,qe="",ct=p.attributeValue}),d(we,f.gt,function(){qe="",Ae(_.attributeValue,qe),Ce="",ct=p.data}),d(we,f.char,function(De){$e="",qe=De,ct=p.attributeValue}),we)),d(je,p.attributeValue,(xe={},d(xe,f.space,function(De){$e?qe+=De:(Ae(_.attributeValue,qe),ct=p.attributeNameStart)}),d(xe,f.quote,function(De){$e===De?(Ae(_.attributeValue,qe),ct=p.attributeNameStart):qe+=De}),d(xe,f.gt,function(De){$e?qe+=De:(Ae(_.attributeValue,qe),Ce="",ct=p.data)}),d(xe,f.slash,function(De){$e?qe+=De:(Ae(_.attributeValue,qe),Xe=!0,ct=p.tagEnd)}),d(xe,f.char,function(De){qe+=De}),xe)),je);var Ge=function(Ke){se.debug&&console.log(ct,Ke);var et=nt.stateMachine[ct],pt=et[x(Ke)]||et[f.error]||et[f.char];pt(Ke)};return nt.write=function(De){for(var Ke=De.length,et=0;et<Ke;et++)Ge(De[et])},nt},b={State:p,Action:f,Type:_,create:v},S=b.Type,P={element:"element",text:"text"},A=function(se){return Object.assign({name:"",type:P.element,value:"",parent:null,attributes:{},children:[]},se)},R=function(se){se=Object.assign({stream:!1,parentNodes:!0,doneEvent:"done",tagPrefix:"tag:",emitTopLevelOnly:!1,debug:!1},se);var he=void 0,Me=void 0,Ee=void 0,Pe=void 0,Le=new u,ke=function(we){switch(we.type){case S.openTag:if(Ee===null)Ee=Me,Ee.name=we.value;else{var xe=A({name:we.value,parent:Ee});Ee.children.push(xe),Ee=xe}break;case S.closeTag:var je=Ee.parent;if(se.parentNodes||(Ee.parent=null),Ee.name!==we.value)break;se.stream&&je===Me&&(Me.children=[],Ee.parent=null),(!se.emitTopLevelOnly||je===Me)&&(Le.emit(se.tagPrefix+Ee.name,Ee),Le.emit("tag",Ee.name,Ee)),Ee===Me&&(he.removeAllListeners("data"),Le.emit(se.doneEvent,Ee),Me=null),Ee=je;break;case S.text:Ee&&Ee.children.push(A({type:P.text,value:we.value,parent:se.parentNodes?Ee:null}));break;case S.attributeName:Pe=we.value,Ee.attributes[Pe]="";break;case S.attributeValue:Ee.attributes[Pe]=we.value;break}};return Le.reset=function(){he=b.create({debug:se.debug}),he.on("data",ke),Me=A(),Ee=null,Pe="",Le.parse=he.write},Le.reset(),Le},T=function(se,he){he=Object.assign({},he,{stream:!1,tagPrefix:":"});var Me=R(he),Ee=void 0;return Me.on("done",function(Pe){Ee=Pe}),Me.parse(se),Ee},I={parseSync:T},C=I.parseSync,z=function(se){var he=C("<root>".concat(se,"</root>"),{parentNodes:!1}),Me=he.children&&he.children.length>0&&he.children.every(function(Ee){return Ee.name==="svg"});if(Me)return he.children.length===1?he.children[0]:he.children;throw Error("nothing to parse")},O=function(se){return l(se,function(he){return V(he)?he:j(he)})},j=function(se){return se.replace(/[-|:]([a-z])/gi,function(he,Me){return Me.toUpperCase()})},V=function(se){return/^(data|aria)(-\w+)/.test(se)},G=function(se){if(se){var he=String(se);return/[&<>]/.test(he)?"<![CDATA[".concat(he.replace(/]]>/,"]]]]><![CDATA[>"),"]]>"):he}return""},Z=function(se){return String(se).replace(/&/g,"&amp;").replace(/'/g,"&apos;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")},K=function(se){var he=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},Me=he.transformNode,Ee=Me===void 0?function(ae){return ae}:Me,Pe=he.camelcase,Le=Pe===void 0?!1:Pe,ke=function(we){var xe;return xe=Ee(we),Le&&(xe=O(xe)),xe};return ke(z(se))};function oe(){for(var te=arguments.length,se=new Array(te),he=0;he<te;he++)se[he]=arguments[he];return new Promise(function(Me,Ee){try{var Pe=K.apply(void 0,se);Me(Pe)}catch(Le){Ee(Le)}})}var ce=function te(se){var he=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},Me=he.transformAttr,Ee=Me===void 0?function(ct,Ce,We){return"".concat(ct,'="').concat(We(Ce),'"')}:Me,Pe=he.transformNode,Le=Pe===void 0?function(ct){return ct}:Pe,ke=he.selfClose,ae=ke===void 0?!0:ke;if(Array.isArray(se))return se.map(function(ct){return te(ct,{transformAttr:Ee,selfClose:ae,transformNode:Le})}).join("");var we=Le(se);if(we.type==="text")return G(we.value);var xe="";for(var je in we.attributes){var nt=Ee(je,we.attributes[je],Z,we.name);xe+=nt?" ".concat(nt):""}return we.children&&we.children.length>0||!ae?"<".concat(we.name).concat(xe,">").concat(te(we.children,{transformAttr:Ee,transformNode:Le,selfClose:ae}),"</").concat(we.name,">"):"<".concat(we.name).concat(xe,"/>")},me=Object.assign({},{parse:oe,parseSync:K,stringify:ce});return me})}}),Hxe=wh({"node_modules/js-beautify/js/src/core/output.js"(n,e){function t(o){this.__parent=o,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=[]}t.prototype.clone_empty=function(){var o=new t(this.__parent);return o.set_indent(this.__indent_count,this.__alignment_count),o},t.prototype.item=function(o){return o<0?this.__items[this.__items.length+o]:this.__items[o]},t.prototype.has_match=function(o){for(var s=this.__items.length-1;s>=0;s--)if(this.__items[s].match(o))return!0;return!1},t.prototype.set_indent=function(o,s){this.is_empty()&&(this.__indent_count=o||0,this.__alignment_count=s||0,this.__character_count=this.__parent.get_indent_size(this.__indent_count,this.__alignment_count))},t.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)},t.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},t.prototype._allow_wrap=function(){if(this._should_wrap()){this.__parent.add_new_line();var o=this.__parent.current_line;return o.set_indent(this.__wrap_point_indent_count,this.__wrap_point_alignment_count),o.__items=this.__items.slice(this.__wrap_point_index),this.__items=this.__items.slice(0,this.__wrap_point_index),o.__character_count+=this.__character_count-this.__wrap_point_character_count,this.__character_count=this.__wrap_point_character_count,o.__items[0]===" "&&(o.__items.splice(0,1),o.__character_count-=1),!0}return!1},t.prototype.is_empty=function(){return this.__items.length===0},t.prototype.last=function(){return this.is_empty()?null:this.__items[this.__items.length-1]},t.prototype.push=function(o){this.__items.push(o);var s=o.lastIndexOf(`
5464
+ `)},NHn=(n,e)=>{if(typeof window>"u")return e;try{const t=localStorage.getItem(n);return t!==null?JSON.parse(t):e}catch{return e}},kHn=(n,e)=>{if(!(typeof window>"u"))try{localStorage.setItem(n,JSON.stringify(e))}catch{}},X1e=be.createContext(null),OHn=(n,e)=>!n&&!e?!0:!n||!e?!1:n.minX===e.minX&&n.maxX===e.maxX&&n.minY===e.minY&&n.maxY===e.maxY,LHn=({children:n})=>{if(be.useContext(X1e))return de.jsx(de.Fragment,{children:n});const t=be.useRef({pointer:null,boundingBoxes:new Map,hoveringIds:new Set,subscribers:new Set}),i=be.useCallback(()=>{for(const d of t.current.subscribers)d()},[]),r=be.useCallback(()=>{const d=t.current.pointer,h=new Set;if(d)for(const[f,_]of t.current.boundingBoxes){const g=_.bounds;g&&d.x>=g.minX&&d.x<=g.maxX&&d.y>=g.minY&&d.y<=g.maxY&&h.add(f)}const p=t.current.hoveringIds;h.size===p.size&&[...h].every(f=>p.has(f))||(t.current.hoveringIds=h,i())},[i]),o=be.useCallback((d,h)=>{t.current.boundingBoxes.set(d,h),r()},[r]),s=be.useCallback((d,h)=>{const p=t.current.boundingBoxes.get(d);p&&OHn(p.bounds,h.bounds)&&p.onClick===h.onClick||(t.current.boundingBoxes.set(d,h),r())},[r]),a=be.useCallback(d=>{t.current.boundingBoxes.delete(d)&&r()},[r]),c=be.useCallback(d=>(t.current.subscribers.add(d),()=>{t.current.subscribers.delete(d)}),[]),l=be.useCallback(d=>t.current.hoveringIds.has(d),[]);be.useEffect(()=>{const d=f=>{const{clientX:_,clientY:g}=f,x=t.current.pointer;x&&x.x===_&&x.y===g||(t.current.pointer={x:_,y:g},r())},h=()=>{t.current.pointer!==null&&(t.current.pointer=null,r())},p=f=>{const{clientX:_,clientY:g}=f;for(const x of t.current.boundingBoxes.values()){const v=x.bounds;v&&_>=v.minX&&_<=v.maxX&&g>=v.minY&&g<=v.maxY&&x.onClick?.(f)}};return window.addEventListener("pointermove",d,{passive:!0}),window.addEventListener("pointerdown",d,{passive:!0}),window.addEventListener("pointerup",d,{passive:!0}),window.addEventListener("pointerleave",h),window.addEventListener("pointercancel",h),window.addEventListener("blur",h),window.addEventListener("click",p,{passive:!0}),()=>{window.removeEventListener("pointermove",d),window.removeEventListener("pointerdown",d),window.removeEventListener("pointerup",d),window.removeEventListener("pointerleave",h),window.removeEventListener("pointercancel",h),window.removeEventListener("blur",h),window.removeEventListener("click",p)}},[r]);const u=be.useMemo(()=>({registerBoundingBox:o,updateBoundingBox:s,unregisterBoundingBox:a,subscribe:c,isHovering:l}),[o,s,a,c,l]);return de.jsx(X1e.Provider,{value:u,children:n})},DHn=n=>{const e=be.useContext(X1e);if(!e)throw new Error("useMouseEventsOverBoundingBox must be used within a MouseTracker");const t=be.useId(),i=be.useRef(n);i.current=n;const r=be.useMemo(()=>s=>{i.current.onClick?.(s)},[]);return be.useEffect(()=>(e.registerBoundingBox(t,{bounds:i.current.bounds,onClick:i.current.onClick?r:void 0}),()=>{e.unregisterBoundingBox(t)}),[e,r,t]),be.useEffect(()=>{e.updateBoundingBox(t,{bounds:i.current.bounds,onClick:i.current.onClick?r:void 0})},[e,r,t,n.bounds?.minX,n.bounds?.maxX,n.bounds?.minY,n.bounds?.maxY,n.onClick]),{hovering:be.useSyncExternalStore(e.subscribe,()=>e.isHovering(t),()=>!1)}},$Hn=(n,e)=>!n&&!e?!0:!n||!e?!1:Math.abs(n.bounds.minX-e.bounds.minX)<.5&&Math.abs(n.bounds.maxX-e.bounds.maxX)<.5&&Math.abs(n.bounds.minY-e.bounds.minY)<.5&&Math.abs(n.bounds.maxY-e.bounds.maxY)<.5&&Math.abs(n.rect.left-e.rect.left)<.5&&Math.abs(n.rect.top-e.rect.top)<.5&&Math.abs(n.rect.width-e.rect.width)<.5&&Math.abs(n.rect.height-e.rect.height)<.5,zHn=({componentId:n,svgDivRef:e,containerRef:t,onComponentClick:i,onHoverChange:r,showOutline:o,circuitJsonKey:s})=>{const[a,c]=be.useState(null),l=be.useRef(null),u=be.useCallback(()=>{l.current=null;const g=e.current,x=t.current;if(!g||!x){c(A=>A&&null);return}const v=g.querySelector(`[data-schematic-component-id="${n}"]`);if(!v){c(A=>A&&null);return}const b=v.getBoundingClientRect(),S=x.getBoundingClientRect(),P={bounds:{minX:b.left,maxX:b.right,minY:b.top,maxY:b.bottom},rect:{left:b.left-S.left,top:b.top-S.top,width:b.width,height:b.height}};c(A=>$Hn(A,P)?A:P)},[n,t,e]),d=be.useCallback(()=>{l.current===null&&(l.current=window.requestAnimationFrame(u))},[u]);be.useEffect(()=>{d()},[d,s]),be.useEffect(()=>{d();const g=e.current,x=t.current;if(!g||!x)return;const v=typeof ResizeObserver<"u"?new ResizeObserver(()=>{d()}):null;v?.observe(x),v?.observe(g);const b=typeof MutationObserver<"u"?new MutationObserver(()=>{d()}):null;return b?.observe(g,{attributes:!0,attributeFilter:["style","transform"],subtree:!0,childList:!0}),window.addEventListener("scroll",d,!0),window.addEventListener("resize",d),()=>{v?.disconnect(),b?.disconnect(),window.removeEventListener("scroll",d,!0),window.removeEventListener("resize",d),l.current!==null&&(cancelAnimationFrame(l.current),l.current=null)}},[d,e,t]);const h=be.useCallback(g=>{i&&i(n,g)},[n,i]),p=a?.bounds??null,{hovering:f}=DHn({bounds:p,onClick:i?h:void 0});if(be.useEffect(()=>{r&&r(n,f)},[f,n,r]),!a||!f||!o)return null;const _=a.rect;return de.jsx("div",{style:{position:"absolute",left:_.left,top:_.top,width:_.width,height:_.height,border:"1.5px solid rgba(51, 153, 255, 0.9)",pointerEvents:"none",zIndex:JM.schematicComponentHoverOutline}})},FHn=({circuitJson:n,containerStyle:e,editEvents:t=[],onEditEvent:i,defaultEditMode:r=!1,debugGrid:o=!1,editingEnabled:s=!1,debug:a=!1,clickToInteractEnabled:c=!1,colorOverrides:l,spiceSimulationEnabled:u=!1,disableGroups:d=!1,onSchematicComponentClicked:h})=>{a&&pHn();const[p,f]=be.useState(!1),[_,g]=be.useState({showVoltage:!0,showCurrent:!1,startTime:0,duration:20}),x=_t=>`${_t?.length||0}_${_t?.editCount||0}`,v=be.useMemo(()=>x(n),[n]),b=be.useMemo(()=>{if(!u)return null;try{return IHn(n,_)}catch(_t){return console.error("Failed to generate SPICE string",_t),null}},[v,u,_.startTime,_.duration]),[S,P]=be.useState(!1);be.useEffect(()=>{P(!1)},[v]);const{plotData:A,nodes:R,isLoading:T,error:I}=RHn(S?b:null),[C,z]=be.useState(r),[O,j]=be.useState(!0),[V,G]=be.useState(!c),[Z,K]=be.useState(!1),[oe,ce]=be.useState(()=>d?!1:NHn("schematic_viewer_show_groups",!1)),[me,te]=be.useState(!1),se=be.useRef(new Set),he=be.useCallback((_t,Ct)=>{Ct?se.current.add(_t):se.current.delete(_t),te(se.current.size>0)},[]),Me=be.useRef(null),Ee=be.useRef(null),Pe=be.useMemo(()=>{try{return my(n).schematic_component?.list()?.map(_t=>_t.schematic_component_id)??[]}catch(_t){return console.error("Failed to derive schematic component ids",_t),[]}},[v,n]),Le=_t=>{const Ct=_t.touches[0];Ee.current={x:Ct.clientX,y:Ct.clientY}},ke=_t=>{const Ct=_t.changedTouches[0],bt=Ee.current;if(!bt)return;const Ut=Math.abs(Ct.clientX-bt.x),Zt=Math.abs(Ct.clientY-bt.y);Ut<10&&Zt<10&&(_t.preventDefault(),G(!0)),Ee.current=null},[ae,we]=be.useState([]),xe=be.useRef(n);be.useEffect(()=>{const _t=x(n),Ct=x(xe.current);_t!==Ct&&(we([]),xe.current=n)},[n]);const{ref:je,cancelDrag:nt,transform:ct}=f1e({onSetTransform(_t){Me.current&&(Me.current.style.transform=pw(_t))},enabled:V&&!p}),{containerWidth:Ce,containerHeight:We}=mHn(je),Ze=be.useMemo(()=>!Ce||!We?"":d1e(n,{width:Ce,height:We||720,grid:o?{cellSize:1,labelCells:!0}:void 0,colorOverrides:l}),[v,Ce,We]),qe=be.useMemo(()=>Ze.match(/<svg[^>]*style="[^"]*background-color:\s*([^;\"]+)/i)?.[1]??"transparent",[Ze]),Xe=be.useMemo(()=>{if(!Ze)return Gh();const _t=Ze.match(/data-real-to-screen-transform="([^"]+)"/)?.[1];try{return _$(_t)}catch(Ct){return console.error(Ct),Gh()}},[Ze]),$e=_t=>{we(Ct=>[...Ct,_t]),i&&i(_t)},Ae=be.useMemo(()=>[...t,...ae],[t,ae]),{handleMouseDown:Ge,handleTouchStart:De,isDragging:Ke,activeEditEvent:et}=gHn({onEditEvent:$e,cancelDrag:nt,realToSvgProjection:Xe,svgToScreenProjection:ct,circuitJson:n,editEvents:Ae,enabled:C&&V&&!p,snapToGrid:O});cHn({svgDivRef:Me,editEvents:Ae,realToSvgProjection:Xe,svgToScreenProjection:ct,activeEditEvent:et}),lHn({svgDivRef:Me,circuitJson:n,activeEditEvent:et,editEvents:Ae}),uHn({svgDivRef:Me,circuitJson:n,circuitJsonKey:v,showGroups:oe&&!d});const pt=be.useRef(De);be.useEffect(()=>{pt.current=De},[De]);const xt=be.useMemo(()=>de.jsx("div",{ref:Me,style:{pointerEvents:c?V?"auto":"none":"auto",transformOrigin:"0 0"},className:h?"schematic-component-clickable":void 0,onTouchStart:_t=>{C&&V&&!p&&pt.current(_t)},dangerouslySetInnerHTML:{__html:Ze}}),[Ze,V,c,C,p]);return de.jsxs(LHn,{children:[h&&de.jsx("style",{children:".schematic-component-clickable [data-schematic-component-id]:hover { cursor: pointer !important; }"}),de.jsxs("div",{ref:je,style:{position:"relative",backgroundColor:qe,overflow:"hidden",cursor:p?"auto":Ke?"grabbing":c&&!V||me&&h?"pointer":"grab",minHeight:"300px",...e},onWheelCapture:_t=>{p&&_t.stopPropagation()},onMouseDown:_t=>{if(c&&!V){_t.preventDefault(),_t.stopPropagation();return}Ge(_t)},onMouseDownCapture:_t=>{if(c&&!V){_t.preventDefault(),_t.stopPropagation();return}},onTouchStart:_t=>{p||Le(_t)},onTouchEnd:_t=>{p||ke(_t)},children:[!V&&c&&de.jsx("div",{onClick:_t=>{_t.preventDefault(),_t.stopPropagation(),G(!0)},style:{position:"absolute",inset:0,cursor:"pointer",zIndex:JM.clickToInteractOverlay,display:"flex",alignItems:"center",justifyContent:"center",pointerEvents:"all",touchAction:"pan-x pan-y pinch-zoom"},children:de.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"})}),de.jsx(vHn,{active:Z,onClick:()=>K(!Z)}),s&&de.jsx(yHn,{active:C,onClick:()=>z(!C)}),s&&C&&de.jsx(xHn,{active:O,onClick:()=>j(!O)}),de.jsx(wHn,{circuitJson:n,circuitJsonKey:v,isVisible:Z,onClose:()=>K(!1),showGroups:oe,onToggleGroups:_t=>{d||(ce(_t),kHn("schematic_viewer_show_groups",_t))}}),u&&de.jsx(EHn,{onClick:()=>f(!0)}),p&&de.jsx(MHn,{spiceString:b,onClose:()=>f(!1),plotData:A,nodes:R,isLoading:T,error:I,simOptions:_,onSimOptionsChange:_t=>{P(!0),g(_t)},hasRun:S}),h&&Pe.map(_t=>de.jsx(zHn,{componentId:_t,svgDivRef:Me,containerRef:je,showOutline:!0,circuitJsonKey:v,onHoverChange:he,onComponentClick:(Ct,bt)=>{h?.({schematicComponentId:Ct,event:bt})}},_t)),xt]})]})},$ht=n=>{const[e,t]=be.useState(0),[i,r]=be.useState(0);return be.useEffect(()=>{if(!n.current)return;const o=()=>{const a=n.current?.getBoundingClientRect();t(a?.width||0),r(a?.height||0)};o();const s=new ResizeObserver(o);return s.observe(n.current),window.addEventListener("resize",o),()=>{s.disconnect(),window.removeEventListener("resize",o)}},[]),{containerWidth:e,containerHeight:i}};qh("assembly-viewer");var zht=()=>{qh.enable("assembly-viewer*")},BHn=({circuitJson:n,containerStyle:e,debugGrid:t=!1,debug:i=!1})=>{i&&zht();const r=be.useRef(null),{ref:o}=f1e({onSetTransform(u){r.current&&(r.current.style.transform=pw(u))}}),{containerWidth:s,containerHeight:a}=$ht(o),c=be.useMemo(()=>!s||!a?"":put(n,{width:s,height:a||720}),[n,s,a]);be.useMemo(()=>{if(!c)return Gh();const u=c.match(/data-real-to-screen-transform="([^"]+)"/)?.[1];try{return _$(u)}catch(d){return console.error(d),Gh()}},[c]);const l=be.useMemo(()=>de.jsx("div",{ref:r,style:{pointerEvents:"auto",transformOrigin:"0 0"},dangerouslySetInnerHTML:{__html:c}}),[c]);return de.jsx("div",{ref:o,style:{position:"relative",backgroundColor:"#FFFFFF",overflow:"hidden",minHeight:"300px",...e},children:l})},UHn=({circuitJson:n,containerStyle:e,debugGrid:t=!1,debug:i=!1})=>{i&&zht();const r=be.useRef(null),{ref:o}=f1e({onSetTransform(u){r.current&&(r.current.style.transform=pw(u))}}),{containerWidth:s,containerHeight:a}=$ht(o),c=be.useMemo(()=>!s||!a?"":l1e(n,{width:s,height:a||720}),[n,s,a]);be.useMemo(()=>{if(!c)return Gh();const u=c.match(/data-real-to-screen-transform="([^"]+)"/)?.[1];try{return _$(u)}catch(d){return console.error(d),Gh()}},[c]);const l=be.useMemo(()=>de.jsx("div",{ref:r,style:{pointerEvents:"auto",transformOrigin:"0 0"},dangerouslySetInnerHTML:{__html:c}}),[c]);return de.jsx("div",{ref:o,style:{position:"relative",backgroundColor:"#FFFFFF",overflow:"hidden",minHeight:"300px",...e},children:l})};const Fht=["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.","Join the [Discord server](https://tscircuit.com/join) to discuss issues and get help directly from the community."],jHn=(()=>{let n=Fht[Math.floor(Math.random()*Fht.length)];return n=n.replace(/</g,"&lt;"),n=n.replace(/>/g,"&gt;"),n=n.replace(new RegExp('(?<!href=")(?<!\\()(?<!\\]\\()(https?:\\/\\/[^\\s\\)\\]]+)',"g"),(e,t)=>`<a class="rf-text-blue-500 rf-underline" href="${e}" target="_blank">${e}</a>`),n=n.replace(/\[([^\]]+)\]\((https?:\/\/[^\)]+)\)/g,'<a class="rf-text-blue-500 rf-underline" href="$2" target="_blank">$1</a>'),n})(),eA=({onRunClicked:n})=>de.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:[de.jsx(h8n,{className:"rf-size-14 rf-mb-4"}),de.jsxs("p",{className:"rf-text-md rf-break-words rf-max-w-xl rf-text-center",children:["Tip: ",de.jsx("span",{dangerouslySetInnerHTML:{__html:jHn}})]}),n&&de.jsxs(L0,{className:"rf-mt-4 rf-bg-blue-600 rf-hover:bg-blue-500",onClick:n,children:["Run Code",de.jsx(ict,{className:"rf-w-3 rf-h-3 rf-ml-2"})]})]}),Tq=({text:n,onClick:e})=>de.jsx("span",{className:"rf-cursor-pointer rf-underline rf-text-blue-600 rf-mx-2",onClick:e,children:n}),Mq=n=>de.jsxs("div",{className:"rf-leading-5",children:[de.jsx("div",{className:"rf-py-2 rf-font-bold",children:n.column.name}),de.jsx("div",{children:n.field?.()??de.jsx("input",{type:"text",className:"rf-border rf-rounded rf-p-1 rf-w-full",onChange:e=>{n.onTextChange?.(e.target.value)}})})]}),HHn=({open:n,children:e,title:t,onClose:i})=>n?de.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:de.jsxs("div",{className:"rf-bg-white rf-p-5 rf-rounded-lg rf-relative rf-w-11/12 rf-max-w-2xl",onClick:r=>{r.preventDefault(),r.stopPropagation()},children:[de.jsx("h2",{className:"rf-mt-0 rf-text-md rf-pb-4",children:t}),de.jsx("button",{type:"button",className:"rf-absolute rf-top-2 rf-right-4 rf-text-2xl rf-font-bold",onClick:i,children:"×"}),e]})}):null,VHn=({elements:n})=>{const[e,t]=be.useState({open:!1}),[i,r]=be.useReducer((u,d)=>({...u,...d}),{}),o=[...new Set(n.map(u=>u.type))],s=n.map(u=>{const d=u[`${u.type}_id`],h=Object.fromEntries(Object.entries(u).filter(([f])=>!(f===`${u.type}_id`||!f.endsWith("_id")))),p=Object.fromEntries(Object.entries(u).filter(([f])=>!f.endsWith("_id")));return{primary_id:d,other_ids:h,...p,_og_elm:u}}),a=s.map(u=>{let d="";const h=p=>{const f=Object.keys(p.other_ids).find(x=>x.startsWith("source_"));if(!f)return`.${p.name}`;const _=f.slice(0,-3),g=s.find(x=>x.type===_&&x.primary_id===p.other_ids[f]);return g?"name"in g?`${h(g)} > .${p.name}`:`#${g.primary_id} > .${p.name}`:`??? > .${p.name}`};return"name"in u&&(d=h(u)),{...u,selector_path:d}}),c=[{key:"primary_id",name:"primary_id",renderCell:u=>de.jsxs("div",{className:"rf-flex rf-items-center",children:[de.jsx(Tq,{text:u.primary_id,onClick:()=>r({focused_id:u.primary_id,id_search:void 0,selector_search:void 0})}),de.jsx("span",{className:"rf-flex-grow"}),de.jsx(Tq,{text:"(JSON)",onClick:()=>t({open:!0,element:u._og_elm,title:u.primary_id})})]}),renderHeaderCell:u=>de.jsx(Mq,{column:u,onTextChange:d=>r({id_search:d}),field:i.focused_id?()=>de.jsxs("div",{children:["Focus:"," ",de.jsx("span",{className:"rf-underline",children:i.focused_id}),de.jsx(Tq,{text:"(unfocus)",onClick:()=>r({focused_id:void 0})})]}):void 0})},{key:"type",name:"type",renderHeaderCell:u=>de.jsx(Mq,{column:u,field:()=>de.jsxs("select",{onChange:d=>r({component_type_filter:d.target.value}),className:"rf-border rf-rounded rf-p-1 rf-w-full",children:[de.jsx("option",{value:"any",children:"any"},"any"),de.jsx("option",{value:"source",children:"source"},"source"),de.jsx("option",{value:"source/pcb",children:"source/pcb"},"source/pcb"),de.jsx("option",{value:"source/schematic",children:"source/schematic"},"source/schematic"),o.map(d=>de.jsx("option",{value:d,children:d},d))]})})},{key:"name",name:"name",renderHeaderCell:u=>de.jsx(Mq,{column:u,onTextChange:d=>r({name_search:d})})},{key:"selector_path",name:"selector_path",renderHeaderCell:u=>de.jsx(Mq,{column:u,onTextChange:d=>r({selector_search:d})})},{key:"other_ids",name:"other_ids",renderCell:u=>de.jsx("div",{className:"rf-space-x-2",children:Object.entries(u.other_ids).map(([d,h])=>de.jsx(Tq,{text:h,onClick:()=>r({focused_id:h})},h))})}],l=a.filter(u=>i.name_search?u.name?.toLowerCase()?.includes(i.name_search.toLowerCase()):!0).filter(u=>!i.component_type_filter||i.component_type_filter==="any"?!0:i.component_type_filter==="source"?u.type.startsWith("source_"):i.component_type_filter==="source/pcb"?u.type.startsWith("source_")||u.type.startsWith("pcb_"):i.component_type_filter==="source/schematic"?u.type.startsWith("source_")||u.type.startsWith("schematic_"):u.type?.includes(i.component_type_filter)).filter(u=>i.selector_search?i.selector_search.split(" ").filter(h=>h.length>0).every(h=>u.selector_path?.includes(h)):!0).filter(u=>i.id_search?u.primary_id?.includes(i.id_search):!0).filter(u=>!!(!i.focused_id||u.primary_id===i.focused_id||Object.values(u.other_ids).includes(i.focused_id)));return de.jsxs("div",{className:"rf-font-mono rf-text-xs rf-bg-white",children:[de.jsx("div",{className:"rf-overflow-x-auto",children:de.jsxs("table",{className:"rf-table-auto rf-w-full rf-text-left",children:[de.jsx("thead",{children:de.jsx("tr",{children:c.map(u=>de.jsx("th",{className:"rf-px-4 rf-py-2 rf-border-b",children:u.renderHeaderCell?u.renderHeaderCell(u):u.name},u.key))})}),de.jsx("tbody",{children:l.map((u,d)=>de.jsx("tr",{className:"rf-hover:bg-gray-100",children:c.map(h=>de.jsx("td",{className:"rf-px-4 rf-py-2 rf-border-b",children:h.renderCell?h.renderCell(u):u[h.key]},h.key))},d))})]})}),de.jsx(HHn,{open:e.open,onClose:()=>t({open:!1}),title:e.open?e.title:"",children:de.jsx("div",{className:"rf-bg-gray-800 rf-p-3 rf-text-white rf-rounded",children:de.jsx("pre",{className:"rf-whitespace-pre-wrap",children:e.open?JSON.stringify(e.element,null,2):""})})})]})},qHn=(n,e)=>n==="jlcpcb"?de.jsx("a",{className:"rf-underline rf-text-blue-500",target:"_blank",rel:"noreferrer",href:`https://jlcpcb.com/partdetail/${e}`,children:e}):e,GHn=({circuitJson:n})=>{const e=n.filter(i=>i.type==="source_component"),t=new Set;for(const i of e)if(i.supplier_part_numbers)for(const r of Object.keys(i.supplier_part_numbers))t.add(r);return de.jsx("div",{className:"rf-overflow-x-auto",children:de.jsxs("table",{className:"rf-w-full rf-text-left rf-text-sm",children:[de.jsx("thead",{children:de.jsxs("tr",{className:"rf-border-b",children:[de.jsx("th",{className:"rf-p-2",children:"Name"}),Array.from(t).map(i=>de.jsx("th",{className:"rf-p-2 rf-capitalize",children:i},i))]})}),de.jsx("tbody",{children:e.map(i=>de.jsxs("tr",{className:"rf-border-b",children:[de.jsx("td",{className:"rf-p-2",children:i.name}),Array.from(t).map(r=>de.jsx("td",{className:"rf-p-2",children:qHn(r,i.supplier_part_numbers?.[r]?.[0]||"")},r))]},i.source_component_id))})]})})},W1e=be.forwardRef(({className:n,type:e,...t},i)=>de.jsx("input",{type:e,className:$o("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",n),ref:i,...t}));W1e.displayName="Input";var Bht={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}}},Z1e=new Set;for(const[n,e]of Object.entries(Bht)){Z1e.add(n);for(const t of Object.keys(e.variants))Z1e.add(t)}function YHn(n){for(const[e,t]of Object.entries(Bht))if(n in t.variants)return{baseUnit:t.baseUnit,conversionFactor:t.variants[n]};return{baseUnit:n,conversionFactor:1}}var Uht={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 hE(n){if(n==null)return{parsedUnit:null,unitOfValue:null,value:null};if(typeof n=="string"&&n.match(/^-?[\d\.]+$/))return{value:Number.parseFloat(n),parsedUnit:null,unitOfValue:null};if(typeof n=="number")return{value:n,parsedUnit:null,unitOfValue:null};if(typeof n=="object"&&"x"in n&&"y"in n){const{parsedUnit:a,unitOfValue:c}=hE(n.x),l=hE(n.x),u=hE(n.y);return l.value===null||u.value===null?{parsedUnit:null,unitOfValue:null,value:null}:{parsedUnit:a,unitOfValue:c,value:{x:l.value,y:u.value}}}const t=n.toString().split("").reverse().join("").match(/[^\d\s]+/)?.[0];if(!t)throw new Error(`Could not determine unit: "${n}"`);const i=t.split("").reverse().join(""),r=n.slice(0,-i.length);if(i in Uht&&!Z1e.has(i)){const a=Uht[i];return{parsedUnit:null,unitOfValue:null,value:Number.parseFloat(r)*a}}const{baseUnit:o,conversionFactor:s}=YHn(i);return{parsedUnit:i,unitOfValue:o,value:s*Number.parseFloat(r)}}var Aq=k().or(Ne()).transform(n=>hE(n).value),K1e=k().or(Ne()).transform(n=>hE(n).value).transform(n=>Number.parseFloat(n.toPrecision(12))),jht=k().or(Ne()).transform(n=>hE(n).value),P4=k().or(Ne()).transform(n=>hE(n).value),qs=k().or(Ne()).transform(n=>hE(n).value),Cq=k().or(Ne()).transform(n=>hE(n).value),xi=qs,XHn=k().or(Ne()).transform(n=>hE(n).value),G8=k().or(Ne()).transform(n=>hE(n).value),WHn=G8,R4=G8,Hht=k().datetime(),Tw=k().or(Ne()).transform(n=>typeof n=="number"?n:n.endsWith("deg")?Number.parseFloat(n.split("deg")[0]):n.endsWith("rad")?Number.parseFloat(n.split("rad")[0])*180/Math.PI:Number.parseFloat(n)),Vht=Ne().or(k().endsWith("mAh")).transform(n=>{if(typeof n=="string"){const e=n.replace("mAh",""),t=Number.parseFloat(e);if(Number.isNaN(t))throw new Error("Invalid capacity");return t}return n}).describe("Battery capacity in mAh"),zs=Te({x:xi,y:xi}),ZHn=zs,Y8=Te({x:xi,y:xi,z:xi}),KHn=Y8,Q1e=Te({width:Ne(),height:Ne()}),QHn=n=>{const e="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";return Array.from({length:n},()=>e[Math.floor(Math.random()*e.length)]).join("")},ir=n=>k().optional().default(()=>`${n}_${QHn(10)}`),Pq=Xt(["top_left","top_center","top_right","center_left","center","center_right","bottom_left","bottom_center","bottom_right"]),qht=Xt(["jlcpcb","macrofab","pcbway","digikey","mouser","lcsc"]),s1=Te({type:fe("source_component"),ftype:k().optional(),source_component_id:k(),name:k(),manufacturer_part_number:k().optional(),supplier_part_numbers:os(qht,dt(k())).optional(),display_value:k().optional(),are_pins_interchangeable:tt().optional(),internally_connected_source_port_ids:dt(dt(k())).optional(),source_group_id:k().optional(),subcircuit_id:k().optional()}),J1e=s1.extend({ftype:fe("simple_capacitor"),capacitance:K1e,max_voltage_rating:P4.optional(),display_capacitance:k().optional(),max_decoupling_trace_length:xi.optional()}),exe=s1.extend({ftype:fe("simple_resistor"),resistance:Aq,display_resistance:k().optional()}),Rq=s1.extend({ftype:fe("simple_diode")}),txe=Rq.extend({ftype:fe("simple_led"),color:k().optional(),wavelength:k().optional()}),Ght=s1.extend({ftype:fe("simple_ground")}),nxe=s1.extend({ftype:fe("simple_chip")}),ixe=s1.extend({ftype:fe("simple_power_source"),voltage:P4}),JHn=s1.extend({ftype:fe("simple_fuse"),current_rating_amps:Ne().describe("Nominal current in amps the fuse is rated for"),voltage_rating_volts:Ne().describe("Voltage rating in volts, e.g. ±5V would be 5")}),rxe=s1.extend({ftype:fe("simple_battery"),capacity:Vht}),oxe=s1.extend({ftype:fe("simple_inductor"),inductance:jht,max_current_rating:Ne().optional()}),sxe=s1.extend({ftype:fe("simple_push_button")}),axe=s1.extend({ftype:fe("simple_potentiometer"),max_resistance:Aq}),Yht=s1.extend({ftype:fe("simple_crystal"),frequency:Ne().describe("Frequency in Hz"),load_capacitance:Ne().optional().describe("Load capacitance in pF")}),cxe=s1.extend({ftype:fe("simple_pin_header"),pin_count:Ne(),gender:Xt(["male","female"]).optional().default("male")}),lxe=s1.extend({ftype:fe("simple_pinout")}),uxe=s1.extend({ftype:fe("simple_resonator"),load_capacitance:K1e,equivalent_series_resistance:Aq.optional(),frequency:Cq}),dxe=s1.extend({ftype:fe("simple_transistor"),transistor_type:Xt(["npn","pnp"])}),hxe=s1.extend({ftype:fe("simple_test_point"),footprint_variant:Xt(["pad","through_hole"]).optional(),pad_shape:Xt(["rect","circle"]).optional(),pad_diameter:Un([Ne(),k()]).optional(),hole_diameter:Un([Ne(),k()]).optional(),width:Un([Ne(),k()]).optional(),height:Un([Ne(),k()]).optional()}),pxe=s1.extend({ftype:fe("simple_mosfet"),channel_type:Xt(["n","p"]),mosfet_mode:Xt(["enhancement","depletion"])}),fxe=s1.extend({ftype:fe("simple_switch")}),mxe=Te({type:fe("source_project_metadata"),name:k().optional(),software_used_string:k().optional(),project_url:k().optional(),created_at:Hht.optional()}),Xht=Te({type:fe("source_missing_property_error"),source_missing_property_error_id:ir("source_missing_property_error"),source_component_id:k(),property_name:k(),subcircuit_id:k().optional(),error_type:fe("source_missing_property_error").default("source_missing_property_error"),message:k()}).describe("The source code is missing a property"),Wht=Te({type:fe("source_failed_to_create_component_error"),source_failed_to_create_component_error_id:ir("source_failed_to_create_component_error"),error_type:fe("source_failed_to_create_component_error").default("source_failed_to_create_component_error"),component_name:k().optional(),subcircuit_id:k().optional(),parent_source_component_id:k().optional(),message:k(),pcb_center:Te({x:Ne().optional(),y:Ne().optional()}).optional(),schematic_center:Te({x:Ne().optional(),y:Ne().optional()}).optional()}).describe("Error emitted when a component fails to be constructed"),_xe=Te({type:fe("source_trace_not_connected_error"),source_trace_not_connected_error_id:ir("source_trace_not_connected_error"),error_type:fe("source_trace_not_connected_error").default("source_trace_not_connected_error"),message:k(),subcircuit_id:k().optional(),source_group_id:k().optional(),source_trace_id:k().optional(),connected_source_port_ids:dt(k()).optional(),selectors_not_found:dt(k()).optional()}).describe("Occurs when a source trace selector does not match any ports"),Zht=Te({type:fe("source_property_ignored_warning"),source_property_ignored_warning_id:ir("source_property_ignored_warning"),source_component_id:k(),property_name:k(),subcircuit_id:k().optional(),error_type:fe("source_property_ignored_warning").default("source_property_ignored_warning"),message:k()}).describe("The source property was ignored"),gxe=Te({type:fe("source_pin_missing_trace_warning"),source_pin_missing_trace_warning_id:ir("source_pin_missing_trace_warning"),warning_type:fe("source_pin_missing_trace_warning").default("source_pin_missing_trace_warning"),message:k(),source_component_id:k(),source_port_id:k(),subcircuit_id:k().optional()}).describe("Warning emitted when a source component pin is missing a trace connection"),Kht=Un([exe,J1e,Rq,txe,Ght,nxe,ixe,rxe,oxe,sxe,axe,Yht,cxe,lxe,uxe,fxe,dxe,hxe,pxe,JHn,mxe,Xht,Wht,_xe,Zht,gxe]),Qht=Te({type:fe("source_port"),pin_number:Ne().optional(),port_hints:dt(k()).optional(),name:k(),source_port_id:k(),source_component_id:k(),subcircuit_id:k().optional(),subcircuit_connectivity_map_key:k().optional()}),Jht=Te({type:fe("source_trace"),source_trace_id:k(),connected_source_port_ids:dt(k()),connected_source_net_ids:dt(k()),subcircuit_id:k().optional(),subcircuit_connectivity_map_key:k().optional(),max_length:Ne().optional(),min_trace_thickness:Ne().optional(),display_name:k().optional()}),ept=Te({type:fe("source_group"),source_group_id:k(),subcircuit_id:k().optional(),parent_subcircuit_id:k().optional(),parent_source_group_id:k().optional(),is_subcircuit:tt().optional(),show_as_schematic_box:tt().optional(),name:k().optional(),was_automatically_named:tt().optional()}),tpt=Te({type:fe("source_net"),source_net_id:k(),name:k(),member_source_group_ids:dt(k()),is_power:tt().optional(),is_ground:tt().optional(),is_digital_signal:tt().optional(),is_analog_signal:tt().optional(),is_positive_voltage_source:tt().optional(),trace_width:Ne().optional(),subcircuit_id:k().optional(),subcircuit_connectivity_map_key:k().optional()}),npt=Te({type:fe("source_board"),source_board_id:k(),source_group_id:k(),title:k().optional()}).describe("Defines a board in the source domain"),ipt=Te({type:fe("source_pcb_ground_plane"),source_pcb_ground_plane_id:k(),source_group_id:k(),source_net_id:k(),subcircuit_id:k().optional()}).describe("Defines a ground plane in the source domain"),rpt=["top","bottom","inner1","inner2","inner3","inner4","inner5","inner6"],yxe=Xt(rpt),bh=yxe.or(Te({name:yxe})).transform(n=>typeof n=="string"?n:n.name),IT=Xt(["top","bottom"]),opt=Te({type:fe("source_manually_placed_via"),source_manually_placed_via_id:k(),source_group_id:k(),source_net_id:k(),subcircuit_id:k().optional(),source_trace_id:k().optional()}).describe("Defines a via that is manually placed in the source domain"),spt=Te({type:fe("schematic_box"),schematic_component_id:k().optional(),width:xi,height:xi,is_dashed:tt().default(!1),x:xi,y:xi,subcircuit_id:k().optional()}).describe("Draws a box on the schematic"),apt=Te({type:fe("schematic_path"),schematic_component_id:k(),fill_color:Xt(["red","blue"]).optional(),is_filled:tt().optional(),points:dt(zs),subcircuit_id:k().optional()}),cpt=os(Te({left_margin:qs.optional(),right_margin:qs.optional(),top_margin:qs.optional(),bottom_margin:qs.optional()})),lpt=Te({left_size:Ne(),right_size:Ne(),top_size:Ne().optional(),bottom_size:Ne().optional()}),upt=Te({left_side:Te({pins:dt(Ne()),direction:Xt(["top-to-bottom","bottom-to-top"]).optional()}).optional(),right_side:Te({pins:dt(Ne()),direction:Xt(["top-to-bottom","bottom-to-top"]).optional()}).optional(),top_side:Te({pins:dt(Ne()),direction:Xt(["left-to-right","right-to-left"]).optional()}).optional(),bottom_side:Te({pins:dt(Ne()),direction:Xt(["left-to-right","right-to-left"]).optional()}).optional()}),dpt=Un([lpt,upt]),hpt=Te({type:fe("schematic_component"),size:Q1e,center:zs,source_component_id:k().optional(),schematic_component_id:k(),pin_spacing:qs.optional(),pin_styles:cpt.optional(),box_width:qs.optional(),symbol_name:k().optional(),port_arrangement:dpt.optional(),port_labels:os(k()).optional(),symbol_display_value:k().optional(),subcircuit_id:k().optional(),schematic_group_id:k().optional(),is_schematic_group:tt().optional(),source_group_id:k().optional(),is_box_with_pins:tt().optional().default(!0)}),ppt=Te({type:fe("schematic_line"),schematic_line_id:ir("schematic_line"),schematic_component_id:k(),x1:xi,y1:xi,x2:xi,y2:xi,stroke_width:xi.nullable().optional(),color:k().default("#000000"),is_dashed:tt().default(!1),subcircuit_id:k().optional()}).describe("Draws a styled line on the schematic"),fpt=Te({type:fe("schematic_rect"),schematic_rect_id:ir("schematic_rect"),schematic_component_id:k(),center:zs,width:xi,height:xi,rotation:Tw.default(0),stroke_width:xi.nullable().optional(),color:k().default("#000000"),is_filled:tt().default(!1),fill_color:k().optional(),is_dashed:tt().default(!1),subcircuit_id:k().optional()}).describe("Draws a styled rectangle on the schematic"),mpt=Te({type:fe("schematic_circle"),schematic_circle_id:ir("schematic_circle"),schematic_component_id:k(),center:zs,radius:xi,stroke_width:xi.nullable().optional(),color:k().default("#000000"),is_filled:tt().default(!1),fill_color:k().optional(),is_dashed:tt().default(!1),subcircuit_id:k().optional()}).describe("Draws a styled circle on the schematic"),_pt=Te({type:fe("schematic_arc"),schematic_arc_id:ir("schematic_arc"),schematic_component_id:k(),center:zs,radius:xi,start_angle_degrees:Tw,end_angle_degrees:Tw,direction:Xt(["clockwise","counterclockwise"]).default("counterclockwise"),stroke_width:xi.nullable().optional(),color:k().default("#000000"),is_dashed:tt().default(!1),subcircuit_id:k().optional()}).describe("Draws a styled arc on the schematic"),gpt=Te({type:fe("schematic_trace"),schematic_trace_id:k(),source_trace_id:k().optional(),junctions:dt(Te({x:Ne(),y:Ne()})),edges:dt(Te({from:Te({x:Ne(),y:Ne()}),to:Te({x:Ne(),y:Ne()}),is_crossing:tt().optional(),from_schematic_port_id:k().optional(),to_schematic_port_id:k().optional()})),subcircuit_id:k().optional(),subcircuit_connectivity_map_key:k().optional()}),eVn=Xt(["center","left","right","top","bottom"]),ypt=Te({type:fe("schematic_text"),schematic_component_id:k().optional(),schematic_text_id:k(),text:k(),font_size:Ne().default(.18),position:Te({x:xi,y:xi}),rotation:Ne().default(0),anchor:Un([eVn.describe("legacy"),Pq]).default("center"),color:k().default("#000000"),subcircuit_id:k().optional()}),xpt=Te({type:fe("schematic_port"),schematic_port_id:k(),source_port_id:k(),schematic_component_id:k().optional(),center:zs,facing_direction:Xt(["up","down","left","right"]).optional(),distance_from_component_edge:Ne().optional(),side_of_component:Xt(["top","bottom","left","right"]).optional(),true_ccw_index:Ne().optional(),pin_number:Ne().optional(),display_pin_label:k().optional(),subcircuit_id:k().optional(),is_connected:tt().optional(),has_input_arrow:tt().optional(),has_output_arrow:tt().optional()}).describe("Defines a port on a schematic component"),vpt=Te({type:fe("schematic_net_label"),schematic_net_label_id:ir("schematic_net_label"),schematic_trace_id:k().optional(),source_trace_id:k().optional(),source_net_id:k(),center:zs,anchor_position:zs.optional(),anchor_side:Xt(["top","bottom","left","right"]),text:k(),symbol_name:k().optional(),is_movable:tt().optional(),subcircuit_id:k().optional()}),bpt=Te({type:fe("schematic_error"),schematic_error_id:k(),error_type:fe("schematic_port_not_found").default("schematic_port_not_found"),message:k(),subcircuit_id:k().optional()}).describe("Defines a schematic error on the schematic"),wpt=Te({type:fe("schematic_layout_error"),schematic_layout_error_id:ir("schematic_layout_error"),error_type:fe("schematic_layout_error").default("schematic_layout_error"),message:k(),source_group_id:k(),schematic_group_id:k(),subcircuit_id:k().optional()}).describe("Error emitted when schematic layout fails for a group"),Iq=Te({type:fe("schematic_debug_object"),label:k().optional(),subcircuit_id:k().optional()}),Spt=Iq.extend({shape:fe("rect"),center:zs,size:Q1e}),Ept=Iq.extend({shape:fe("line"),start:zs,end:zs}),Tpt=Iq.extend({shape:fe("point"),center:zs}),Mpt=bm("shape",[Spt,Ept,Tpt]),Apt=Te({type:fe("schematic_voltage_probe"),schematic_voltage_probe_id:k(),position:zs,schematic_trace_id:k(),voltage:P4.optional(),subcircuit_id:k().optional()}).describe("Defines a voltage probe measurement point on a schematic trace"),Cpt=Te({type:fe("schematic_manual_edit_conflict_warning"),schematic_manual_edit_conflict_warning_id:ir("schematic_manual_edit_conflict_warning"),warning_type:fe("schematic_manual_edit_conflict_warning").default("schematic_manual_edit_conflict_warning"),message:k(),schematic_component_id:k(),schematic_group_id:k().optional(),subcircuit_id:k().optional(),source_component_id:k()}).describe("Warning emitted when a component has both manual placement and explicit schX/schY coordinates"),Ppt=Te({type:fe("schematic_group"),schematic_group_id:ir("schematic_group"),source_group_id:k(),is_subcircuit:tt().optional(),subcircuit_id:k().optional(),width:qs,height:qs,center:zs,schematic_component_ids:dt(k()),show_as_schematic_box:tt().optional(),name:k().optional(),description:k().optional()}).describe("Defines a group of components on the schematic"),Rpt=Te({type:fe("schematic_table"),schematic_table_id:ir("schematic_table"),anchor_position:zs,column_widths:dt(xi),row_heights:dt(xi),cell_padding:xi.optional(),border_width:xi.optional(),subcircuit_id:k().optional(),schematic_component_id:k().optional(),anchor:Pq.optional()}).describe("Defines a table on the schematic"),Ipt=Te({type:fe("schematic_table_cell"),schematic_table_cell_id:ir("schematic_table_cell"),schematic_table_id:k(),start_row_index:Ne(),end_row_index:Ne(),start_column_index:Ne(),end_column_index:Ne(),text:k().optional(),center:zs,width:xi,height:xi,horizontal_align:Xt(["left","center","right"]).optional(),vertical_align:Xt(["top","middle","bottom"]).optional(),font_size:xi.optional(),subcircuit_id:k().optional()}).describe("Defines a cell within a schematic_table"),Npt=Te({x:xi,y:xi,bulge:Ne().optional()}),xxe=Te({vertices:dt(Npt)}),kpt=Te({outer_ring:xxe,inner_rings:dt(xxe).default([])}),Opt=Te({x:xi,y:xi,via:tt().optional(),via_to_layer:bh.optional()}),tVn=dt(Opt),Lpt=Te({x:xi,y:xi,via:tt().optional(),to_layer:bh.optional(),trace_width:xi.optional()}),Dpt=Te({type:fe("pcb_component"),pcb_component_id:ir("pcb_component"),source_component_id:k(),center:zs,layer:bh,rotation:Tw,width:qs,height:qs,do_not_place:tt().optional(),subcircuit_id:k().optional(),pcb_group_id:k().optional(),obstructs_within_bounds:tt().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"),$pt=Te({type:fe("pcb_hole"),pcb_hole_id:ir("pcb_hole"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),hole_shape:Xt(["circle","square"]),hole_diameter:Ne(),x:xi,y:xi}),nVn=$pt.describe("Defines a circular or square hole on the PCB"),zpt=Te({type:fe("pcb_hole"),pcb_hole_id:ir("pcb_hole"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),hole_shape:fe("oval"),hole_width:Ne(),hole_height:Ne(),x:xi,y:xi}),iVn=zpt.describe("Defines an oval hole on the PCB"),Fpt=Te({type:fe("pcb_hole"),pcb_hole_id:ir("pcb_hole"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),hole_shape:fe("pill"),hole_width:Ne(),hole_height:Ne(),x:xi,y:xi}),rVn=Fpt.describe("Defines a pill-shaped hole on the PCB"),Bpt=Te({type:fe("pcb_hole"),pcb_hole_id:ir("pcb_hole"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),hole_shape:fe("rotated_pill"),hole_width:Ne(),hole_height:Ne(),x:xi,y:xi,ccw_rotation:Tw}),oVn=Bpt.describe("Defines a rotated pill-shaped hole on the PCB"),Upt=$pt.or(zpt).or(Fpt).or(Bpt),sVn=Te({type:fe("pcb_plated_hole"),shape:fe("circle"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),outer_diameter:Ne(),hole_diameter:Ne(),x:xi,y:xi,layers:dt(bh),port_hints:dt(k()).optional(),pcb_component_id:k().optional(),pcb_port_id:k().optional(),pcb_plated_hole_id:ir("pcb_plated_hole")}),aVn=Te({type:fe("pcb_plated_hole"),shape:Xt(["oval","pill"]),pcb_group_id:k().optional(),subcircuit_id:k().optional(),outer_width:Ne(),outer_height:Ne(),hole_width:Ne(),hole_height:Ne(),x:xi,y:xi,ccw_rotation:Tw,layers:dt(bh),port_hints:dt(k()).optional(),pcb_component_id:k().optional(),pcb_port_id:k().optional(),pcb_plated_hole_id:ir("pcb_plated_hole")}),cVn=Te({type:fe("pcb_plated_hole"),shape:fe("circular_hole_with_rect_pad"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),hole_shape:fe("circle"),pad_shape:fe("rect"),hole_diameter:Ne(),rect_pad_width:Ne(),rect_pad_height:Ne(),rect_border_radius:Ne().optional(),hole_offset_x:xi.default(0),hole_offset_y:xi.default(0),x:xi,y:xi,layers:dt(bh),port_hints:dt(k()).optional(),pcb_component_id:k().optional(),pcb_port_id:k().optional(),pcb_plated_hole_id:ir("pcb_plated_hole")}),lVn=Te({type:fe("pcb_plated_hole"),shape:fe("pill_hole_with_rect_pad"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),hole_shape:fe("pill"),pad_shape:fe("rect"),hole_width:Ne(),hole_height:Ne(),rect_pad_width:Ne(),rect_pad_height:Ne(),rect_border_radius:Ne().optional(),hole_offset_x:xi.default(0),hole_offset_y:xi.default(0),x:xi,y:xi,layers:dt(bh),port_hints:dt(k()).optional(),pcb_component_id:k().optional(),pcb_port_id:k().optional(),pcb_plated_hole_id:ir("pcb_plated_hole")}),uVn=Te({type:fe("pcb_plated_hole"),shape:fe("rotated_pill_hole_with_rect_pad"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),hole_shape:fe("rotated_pill"),pad_shape:fe("rect"),hole_width:Ne(),hole_height:Ne(),hole_ccw_rotation:Tw,rect_pad_width:Ne(),rect_pad_height:Ne(),rect_border_radius:Ne().optional(),rect_ccw_rotation:Tw,hole_offset_x:xi.default(0),hole_offset_y:xi.default(0),x:xi,y:xi,layers:dt(bh),port_hints:dt(k()).optional(),pcb_component_id:k().optional(),pcb_port_id:k().optional(),pcb_plated_hole_id:ir("pcb_plated_hole")}),jpt=Un([sVn,aVn,cVn,lVn,uVn]),Hpt=Te({type:fe("pcb_port"),pcb_port_id:ir("pcb_port"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),source_port_id:k(),pcb_component_id:k(),x:xi,y:xi,layers:dt(bh),is_board_pinout:tt().optional()}).describe("Defines a port on the PCB"),dVn=Te({type:fe("pcb_smtpad"),shape:fe("circle"),pcb_smtpad_id:ir("pcb_smtpad"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),x:xi,y:xi,radius:Ne(),layer:bh,port_hints:dt(k()).optional(),pcb_component_id:k().optional(),pcb_port_id:k().optional(),is_covered_with_solder_mask:tt().optional()}),hVn=Te({type:fe("pcb_smtpad"),shape:fe("rect"),pcb_smtpad_id:ir("pcb_smtpad"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),x:xi,y:xi,width:Ne(),height:Ne(),rect_border_radius:Ne().optional(),corner_radius:Ne().optional(),layer:bh,port_hints:dt(k()).optional(),pcb_component_id:k().optional(),pcb_port_id:k().optional(),is_covered_with_solder_mask:tt().optional()}),pVn=Te({type:fe("pcb_smtpad"),shape:fe("rotated_rect"),pcb_smtpad_id:ir("pcb_smtpad"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),x:xi,y:xi,width:Ne(),height:Ne(),rect_border_radius:Ne().optional(),corner_radius:Ne().optional(),ccw_rotation:Tw,layer:bh,port_hints:dt(k()).optional(),pcb_component_id:k().optional(),pcb_port_id:k().optional(),is_covered_with_solder_mask:tt().optional()}),Vpt=Te({type:fe("pcb_smtpad"),shape:fe("pill"),pcb_smtpad_id:ir("pcb_smtpad"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),x:xi,y:xi,width:Ne(),height:Ne(),radius:Ne(),layer:bh,port_hints:dt(k()).optional(),pcb_component_id:k().optional(),pcb_port_id:k().optional(),is_covered_with_solder_mask:tt().optional()}),fVn=Te({type:fe("pcb_smtpad"),shape:fe("rotated_pill"),pcb_smtpad_id:ir("pcb_smtpad"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),x:xi,y:xi,width:Ne(),height:Ne(),radius:Ne(),ccw_rotation:Tw,layer:bh,port_hints:dt(k()).optional(),pcb_component_id:k().optional(),pcb_port_id:k().optional(),is_covered_with_solder_mask:tt().optional()}),mVn=Te({type:fe("pcb_smtpad"),shape:fe("polygon"),pcb_smtpad_id:ir("pcb_smtpad"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),points:dt(zs),layer:bh,port_hints:dt(k()).optional(),pcb_component_id:k().optional(),pcb_port_id:k().optional(),is_covered_with_solder_mask:tt().optional()}),qpt=bm("shape",[dVn,hVn,pVn,fVn,Vpt,mVn]).describe("Defines an SMT pad on the PCB"),_Vn=Te({type:fe("pcb_solder_paste"),shape:fe("circle"),pcb_solder_paste_id:ir("pcb_solder_paste"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),x:xi,y:xi,radius:Ne(),layer:bh,pcb_component_id:k().optional(),pcb_smtpad_id:k().optional()}),gVn=Te({type:fe("pcb_solder_paste"),shape:fe("rect"),pcb_solder_paste_id:ir("pcb_solder_paste"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),x:xi,y:xi,width:Ne(),height:Ne(),layer:bh,pcb_component_id:k().optional(),pcb_smtpad_id:k().optional()}),yVn=Te({type:fe("pcb_solder_paste"),shape:fe("pill"),pcb_solder_paste_id:ir("pcb_solder_paste"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),x:xi,y:xi,width:Ne(),height:Ne(),radius:Ne(),layer:bh,pcb_component_id:k().optional(),pcb_smtpad_id:k().optional()}),xVn=Te({type:fe("pcb_solder_paste"),shape:fe("rotated_rect"),pcb_solder_paste_id:ir("pcb_solder_paste"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),x:xi,y:xi,width:Ne(),height:Ne(),ccw_rotation:xi,layer:bh,pcb_component_id:k().optional(),pcb_smtpad_id:k().optional()}),vVn=Te({type:fe("pcb_solder_paste"),shape:fe("oval"),pcb_solder_paste_id:ir("pcb_solder_paste"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),x:xi,y:xi,width:Ne(),height:Ne(),layer:bh,pcb_component_id:k().optional(),pcb_smtpad_id:k().optional()}),Gpt=Un([_Vn,gVn,yVn,xVn,vVn]).describe("Defines solderpaste on the PCB"),Ypt=Te({type:fe("pcb_text"),pcb_text_id:ir("pcb_text"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),text:k(),center:zs,layer:bh,width:qs,height:qs,lines:Ne(),align:Xt(["bottom-left"])}).describe("Defines text on the PCB"),Xpt=Te({route_type:fe("wire"),x:xi,y:xi,width:xi,start_pcb_port_id:k().optional(),end_pcb_port_id:k().optional(),layer:bh}),Wpt=Te({route_type:fe("via"),x:xi,y:xi,hole_diameter:xi.optional(),outer_diameter:xi.optional(),from_layer:k(),to_layer:k()}),Zpt=Un([Xpt,Wpt]),Kpt=Te({type:fe("pcb_trace"),source_trace_id:k().optional(),pcb_component_id:k().optional(),pcb_trace_id:ir("pcb_trace"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),route_thickness_mode:Xt(["constant","interpolated"]).default("constant").optional(),route_order_index:Ne().optional(),should_round_corners:tt().optional(),trace_length:Ne().optional(),highlight_color:k().optional(),route:dt(Zpt)}).describe("Defines a trace on the PCB"),Qpt=Te({type:fe("pcb_trace_error"),pcb_trace_error_id:ir("pcb_trace_error"),error_type:fe("pcb_trace_error").default("pcb_trace_error"),message:k(),center:zs.optional(),pcb_trace_id:k(),source_trace_id:k(),pcb_component_ids:dt(k()),pcb_port_ids:dt(k()),subcircuit_id:k().optional()}).describe("Defines a trace error on the PCB"),Jpt=Te({type:fe("pcb_trace_missing_error"),pcb_trace_missing_error_id:ir("pcb_trace_missing_error"),error_type:fe("pcb_trace_missing_error").default("pcb_trace_missing_error"),message:k(),center:zs.optional(),source_trace_id:k(),pcb_component_ids:dt(k()),pcb_port_ids:dt(k()),subcircuit_id:k().optional()}).describe("Defines an error when a source trace has no corresponding PCB trace"),eft=Te({type:fe("pcb_port_not_matched_error"),pcb_error_id:ir("pcb_error"),error_type:fe("pcb_port_not_matched_error").default("pcb_port_not_matched_error"),message:k(),pcb_component_ids:dt(k()),subcircuit_id:k().optional()}).describe("Defines a trace error on the PCB where a port is not matched"),tft=Te({type:fe("pcb_port_not_connected_error"),pcb_port_not_connected_error_id:ir("pcb_port_not_connected_error"),error_type:fe("pcb_port_not_connected_error").default("pcb_port_not_connected_error"),message:k(),pcb_port_ids:dt(k()),pcb_component_ids:dt(k()),subcircuit_id:k().optional()}).describe("Defines an error when a pcb port is not connected to any trace"),nft=Te({type:fe("pcb_net"),pcb_net_id:ir("pcb_net"),source_net_id:k().optional(),highlight_color:k().optional()}).describe("Defines a net on the PCB"),ift=Te({type:fe("pcb_via"),pcb_via_id:ir("pcb_via"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),x:xi,y:xi,outer_diameter:xi.default("0.6mm"),hole_diameter:xi.default("0.25mm"),from_layer:bh.optional(),to_layer:bh.optional(),layers:dt(bh),pcb_trace_id:k().optional()}).describe("Defines a via on the PCB"),rft=Te({type:fe("pcb_board"),pcb_board_id:ir("pcb_board"),is_subcircuit:tt().optional(),subcircuit_id:k().optional(),width:qs,height:qs,center:zs,thickness:qs.optional().default(1.4),num_layers:Ne().optional().default(4),outline:dt(zs).optional(),material:Xt(["fr4","fr1"]).default("fr4")}).describe("Defines the board outline of the PCB"),oft=Te({type:fe("pcb_placement_error"),pcb_placement_error_id:ir("pcb_placement_error"),error_type:fe("pcb_placement_error").default("pcb_placement_error"),message:k(),subcircuit_id:k().optional()}).describe("Defines a placement error on the PCB"),sft=Te({type:fe("pcb_trace_hint"),pcb_trace_hint_id:ir("pcb_trace_hint"),pcb_port_id:k(),pcb_component_id:k(),route:dt(Lpt),subcircuit_id:k().optional()}).describe("A hint that can be used during generation of a PCB trace"),aft=Te({type:fe("pcb_silkscreen_line"),pcb_silkscreen_line_id:ir("pcb_silkscreen_line"),pcb_component_id:k(),pcb_group_id:k().optional(),subcircuit_id:k().optional(),stroke_width:xi.default("0.1mm"),x1:xi,y1:xi,x2:xi,y2:xi,layer:IT}).describe("Defines a silkscreen line on the PCB"),cft=Te({type:fe("pcb_silkscreen_path"),pcb_silkscreen_path_id:ir("pcb_silkscreen_path"),pcb_component_id:k(),pcb_group_id:k().optional(),subcircuit_id:k().optional(),layer:IT,route:dt(zs),stroke_width:qs}).describe("Defines a silkscreen path on the PCB"),lft=Te({type:fe("pcb_silkscreen_text"),pcb_silkscreen_text_id:ir("pcb_silkscreen_text"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),font:fe("tscircuit2024").default("tscircuit2024"),font_size:xi.default("0.2mm"),pcb_component_id:k(),text:k(),is_knockout:tt().default(!1).optional(),knockout_padding:Te({left:qs,top:qs,bottom:qs,right:qs}).default({left:"0.2mm",top:"0.2mm",bottom:"0.2mm",right:"0.2mm"}).optional(),ccw_rotation:Ne().optional(),layer:bh,is_mirrored:tt().default(!1).optional(),anchor_position:zs.default({x:0,y:0}),anchor_alignment:Pq.default("center")}).describe("Defines silkscreen text on the PCB"),uft=Te({type:fe("pcb_silkscreen_rect"),pcb_silkscreen_rect_id:ir("pcb_silkscreen_rect"),pcb_component_id:k(),pcb_group_id:k().optional(),subcircuit_id:k().optional(),center:zs,width:qs,height:qs,layer:bh,stroke_width:qs.default("1mm"),is_filled:tt().default(!0).optional(),has_stroke:tt().optional(),is_stroke_dashed:tt().optional()}).describe("Defines a silkscreen rect on the PCB"),dft=Te({type:fe("pcb_silkscreen_circle"),pcb_silkscreen_circle_id:ir("pcb_silkscreen_circle"),pcb_component_id:k(),pcb_group_id:k().optional(),subcircuit_id:k().optional(),center:zs,radius:qs,layer:IT,stroke_width:qs.default("1mm")}).describe("Defines a silkscreen circle on the PCB"),hft=Te({type:fe("pcb_silkscreen_oval"),pcb_silkscreen_oval_id:ir("pcb_silkscreen_oval"),pcb_component_id:k(),pcb_group_id:k().optional(),subcircuit_id:k().optional(),center:zs,radius_x:xi,radius_y:xi,layer:IT}).describe("Defines a silkscreen oval on the PCB"),pft=Te({type:fe("pcb_fabrication_note_text"),pcb_fabrication_note_text_id:ir("pcb_fabrication_note_text"),subcircuit_id:k().optional(),pcb_group_id:k().optional(),font:fe("tscircuit2024").default("tscircuit2024"),font_size:xi.default("1mm"),pcb_component_id:k(),text:k(),layer:IT,anchor_position:zs.default({x:0,y:0}),anchor_alignment:Xt(["center","top_left","top_right","bottom_left","bottom_right"]).default("center"),color:k().optional()}).describe("Defines a fabrication note in text on the PCB, useful for leaving notes for assemblers or fabricators"),fft=Te({type:fe("pcb_fabrication_note_path"),pcb_fabrication_note_path_id:ir("pcb_fabrication_note_path"),pcb_component_id:k(),subcircuit_id:k().optional(),layer:bh,route:dt(zs),stroke_width:qs,color:k().optional()}).describe("Defines a fabrication path on the PCB for fabricators or assemblers"),mft=Te({type:fe("pcb_fabrication_note_rect"),pcb_fabrication_note_rect_id:ir("pcb_fabrication_note_rect"),pcb_component_id:k(),pcb_group_id:k().optional(),subcircuit_id:k().optional(),center:zs,width:qs,height:qs,layer:IT,stroke_width:qs.default("0.1mm"),is_filled:tt().optional(),has_stroke:tt().optional(),is_stroke_dashed:tt().optional(),color:k().optional()}).describe("Defines a fabrication note rectangle on the PCB"),_ft=Te({type:fe("pcb_fabrication_note_dimension"),pcb_fabrication_note_dimension_id:ir("pcb_fabrication_note_dimension"),pcb_component_id:k(),pcb_group_id:k().optional(),subcircuit_id:k().optional(),layer:IT,from:zs,to:zs,text:k().optional(),offset:qs.optional(),font:fe("tscircuit2024").default("tscircuit2024"),font_size:qs.default("1mm"),color:k().optional(),arrow_size:qs.default("1mm")}).describe("Defines a measurement annotation within PCB fabrication notes"),gft=Te({type:fe("pcb_note_text"),pcb_note_text_id:ir("pcb_note_text"),pcb_component_id:k().optional(),pcb_group_id:k().optional(),subcircuit_id:k().optional(),font:fe("tscircuit2024").default("tscircuit2024"),font_size:xi.default("1mm"),text:k(),anchor_position:zs.default({x:0,y:0}),anchor_alignment:Xt(["center","top_left","top_right","bottom_left","bottom_right"]).default("center"),color:k().optional()}).describe("Defines a documentation note in text on the PCB"),yft=Te({type:fe("pcb_note_rect"),pcb_note_rect_id:ir("pcb_note_rect"),pcb_component_id:k().optional(),pcb_group_id:k().optional(),subcircuit_id:k().optional(),center:zs,width:qs,height:qs,stroke_width:qs.default("0.1mm"),is_filled:tt().optional(),has_stroke:tt().optional(),is_stroke_dashed:tt().optional(),color:k().optional()}).describe("Defines a rectangular documentation note on the PCB"),xft=Te({type:fe("pcb_note_path"),pcb_note_path_id:ir("pcb_note_path"),pcb_component_id:k().optional(),pcb_group_id:k().optional(),subcircuit_id:k().optional(),route:dt(zs),stroke_width:qs.default("0.1mm"),color:k().optional()}).describe("Defines a polyline documentation note on the PCB"),vft=Te({type:fe("pcb_note_line"),pcb_note_line_id:ir("pcb_note_line"),pcb_component_id:k().optional(),pcb_group_id:k().optional(),subcircuit_id:k().optional(),x1:xi,y1:xi,x2:xi,y2:xi,stroke_width:xi.default("0.1mm"),color:k().optional(),is_dashed:tt().optional()}).describe("Defines a straight documentation note line on the PCB"),bft=Te({type:fe("pcb_note_dimension"),pcb_note_dimension_id:ir("pcb_note_dimension"),pcb_component_id:k().optional(),pcb_group_id:k().optional(),subcircuit_id:k().optional(),from:zs,to:zs,text:k().optional(),font:fe("tscircuit2024").default("tscircuit2024"),font_size:qs.default("1mm"),color:k().optional(),arrow_size:qs.default("1mm")}).describe("Defines a measurement annotation within PCB documentation notes"),wft=Te({type:fe("pcb_footprint_overlap_error"),pcb_error_id:ir("pcb_error"),error_type:fe("pcb_footprint_overlap_error").default("pcb_footprint_overlap_error"),message:k(),pcb_smtpad_ids:dt(k()).optional(),pcb_plated_hole_ids:dt(k()).optional(),pcb_hole_ids:dt(k()).optional(),pcb_keepout_ids:dt(k()).optional()}).describe("Error emitted when a pcb footprint overlaps with another element"),Sft=Te({type:fe("pcb_keepout"),shape:fe("rect"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),center:zs,width:xi,height:xi,pcb_keepout_id:k(),layers:dt(k()),description:k().optional()}).or(Te({type:fe("pcb_keepout"),shape:fe("circle"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),center:zs,radius:xi,pcb_keepout_id:k(),layers:dt(k()),description:k().optional()})),vxe=Te({type:fe("pcb_cutout"),pcb_cutout_id:ir("pcb_cutout"),pcb_group_id:k().optional(),subcircuit_id:k().optional()}),Eft=vxe.extend({shape:fe("rect"),center:zs,width:qs,height:qs,rotation:Tw.optional()}),Tft=vxe.extend({shape:fe("circle"),center:zs,radius:qs}),Mft=vxe.extend({shape:fe("polygon"),points:dt(zs)}),Aft=bm("shape",[Eft,Tft,Mft]).describe("Defines a cutout on the PCB, removing board material."),Cft=Te({type:fe("pcb_missing_footprint_error"),pcb_missing_footprint_error_id:ir("pcb_missing_footprint_error"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),error_type:fe("pcb_missing_footprint_error").default("pcb_missing_footprint_error"),source_component_id:k(),message:k()}).describe("Defines a missing footprint error on the PCB"),Pft=Te({type:fe("external_footprint_load_error"),external_footprint_load_error_id:ir("external_footprint_load_error"),pcb_component_id:k(),source_component_id:k(),pcb_group_id:k().optional(),subcircuit_id:k().optional(),footprinter_string:k().optional(),error_type:fe("external_footprint_load_error").default("external_footprint_load_error"),message:k()}).describe("Defines an error when an external footprint fails to load"),Rft=Te({type:fe("circuit_json_footprint_load_error"),circuit_json_footprint_load_error_id:ir("circuit_json_footprint_load_error"),pcb_component_id:k(),source_component_id:k(),pcb_group_id:k().optional(),subcircuit_id:k().optional(),error_type:fe("circuit_json_footprint_load_error").default("circuit_json_footprint_load_error"),message:k(),circuit_json:dt(fl()).optional()}).describe("Defines an error when a circuit JSON footprint fails to load"),Ift=Te({type:fe("pcb_group"),pcb_group_id:ir("pcb_group"),source_group_id:k(),is_subcircuit:tt().optional(),subcircuit_id:k().optional(),width:qs,height:qs,center:zs,anchor_position:zs.optional(),anchor_alignment:Xt(["center","top_left","top_right","bottom_left","bottom_right"]).optional(),pcb_component_ids:dt(k()),name:k().optional(),description:k().optional(),layout_mode:k().optional(),autorouter_configuration:Te({trace_clearance:qs}).optional(),autorouter_used_string:k().optional()}).describe("Defines a group of components on the PCB"),Nft=Te({type:fe("pcb_autorouting_error"),pcb_error_id:ir("pcb_autorouting_error"),error_type:fe("pcb_autorouting_error").default("pcb_autorouting_error"),message:k(),subcircuit_id:k().optional()}).describe("The autorouting has failed to route a portion of the board"),kft=Te({type:fe("pcb_manual_edit_conflict_warning"),pcb_manual_edit_conflict_warning_id:ir("pcb_manual_edit_conflict_warning"),warning_type:fe("pcb_manual_edit_conflict_warning").default("pcb_manual_edit_conflict_warning"),message:k(),pcb_component_id:k(),pcb_group_id:k().optional(),subcircuit_id:k().optional(),source_component_id:k()}).describe("Warning emitted when a component has both manual placement and explicit pcbX/pcbY coordinates"),Oft=Te({type:fe("pcb_breakout_point"),pcb_breakout_point_id:ir("pcb_breakout_point"),pcb_group_id:k(),subcircuit_id:k().optional(),source_trace_id:k().optional(),source_port_id:k().optional(),source_net_id:k().optional(),x:xi,y:xi}).describe("Defines a routing target within a pcb_group for a source_trace or source_net"),Lft=Te({type:fe("pcb_ground_plane"),pcb_ground_plane_id:ir("pcb_ground_plane"),source_pcb_ground_plane_id:k(),source_net_id:k(),pcb_group_id:k().optional(),subcircuit_id:k().optional()}).describe("Defines a ground plane on the PCB"),Dft=Te({type:fe("pcb_ground_plane_region"),pcb_ground_plane_region_id:ir("pcb_ground_plane_region"),pcb_ground_plane_id:k(),pcb_group_id:k().optional(),subcircuit_id:k().optional(),layer:bh,points:dt(zs)}).describe("Defines a polygon region of a ground plane"),$ft=Te({type:fe("pcb_thermal_spoke"),pcb_thermal_spoke_id:ir("pcb_thermal_spoke"),pcb_ground_plane_id:k(),shape:k(),spoke_count:Ne(),spoke_thickness:xi,spoke_inner_diameter:xi,spoke_outer_diameter:xi,pcb_plated_hole_id:k().optional(),subcircuit_id:k().optional()}).describe("Pattern for connecting a ground plane to a plated hole"),bxe=Te({type:fe("pcb_copper_pour"),pcb_copper_pour_id:ir("pcb_copper_pour"),pcb_group_id:k().optional(),subcircuit_id:k().optional(),layer:bh,source_net_id:k().optional()}),zft=bxe.extend({shape:fe("rect"),center:zs,width:qs,height:qs,rotation:Tw.optional()}),Fft=bxe.extend({shape:fe("brep"),brep_shape:kpt}),Bft=bxe.extend({shape:fe("polygon"),points:dt(zs)}),Uft=bm("shape",[zft,Fft,Bft]).describe("Defines a copper pour on the PCB."),jft=Te({type:fe("pcb_component_outside_board_error"),pcb_component_outside_board_error_id:ir("pcb_component_outside_board_error"),error_type:fe("pcb_component_outside_board_error").default("pcb_component_outside_board_error"),message:k(),pcb_component_id:k(),pcb_board_id:k(),component_center:zs,component_bounds:Te({min_x:Ne(),max_x:Ne(),min_y:Ne(),max_y:Ne()}),subcircuit_id:k().optional(),source_component_id:k().optional()}).describe("Error emitted when a PCB component is placed outside the board boundaries"),Hft=Te({type:fe("pcb_via_clearance_error"),pcb_error_id:ir("pcb_error"),error_type:fe("pcb_via_clearance_error").default("pcb_via_clearance_error"),message:k(),pcb_via_ids:dt(k()).min(2),minimum_clearance:xi.optional(),actual_clearance:xi.optional(),pcb_center:Te({x:Ne().optional(),y:Ne().optional()}).optional(),subcircuit_id:k().optional()}).describe("Error emitted when vias are closer than the allowed clearance"),Vft=Te({type:fe("pcb_courtyard_rect"),pcb_courtyard_rect_id:ir("pcb_courtyard_rect"),pcb_component_id:k(),pcb_group_id:k().optional(),subcircuit_id:k().optional(),center:zs,width:qs,height:qs,layer:IT,stroke_width:qs.default("0.1mm"),is_filled:tt().optional(),has_stroke:tt().optional(),is_stroke_dashed:tt().optional(),color:k().optional()}).describe("Defines a courtyard rectangle on the PCB"),qft=Te({type:fe("pcb_courtyard_outline"),pcb_courtyard_outline_id:ir("pcb_courtyard_outline"),pcb_component_id:k(),pcb_group_id:k().optional(),subcircuit_id:k().optional(),layer:IT,outline:dt(zs).min(2),stroke_width:qs.default("0.1mm"),is_closed:tt().optional(),is_stroke_dashed:tt().optional(),color:k().optional()}).describe("Defines a courtyard outline on the PCB"),Gft=Te({type:fe("cad_component"),cad_component_id:k(),pcb_component_id:k(),source_component_id:k(),position:Y8,rotation:Y8.optional(),size:Y8.optional(),layer:bh.optional(),subcircuit_id:k().optional(),footprinter_string:k().optional(),model_obj_url:k().optional(),model_stl_url:k().optional(),model_3mf_url:k().optional(),model_gltf_url:k().optional(),model_glb_url:k().optional(),model_step_url:k().optional(),model_wrl_url:k().optional(),model_unit_to_mm_scale_factor:Ne().optional(),model_jscad:fl().optional()}).describe("Defines a component on the PCB"),Yft=Xt(["sinewave","square","triangle","sawtooth"]),bVn=Un([k(),Ne()]).transform(n=>typeof n=="string"?n.endsWith("%")?parseFloat(n.slice(0,-1))/100:parseFloat(n):n).pipe(Ne().min(0,"Duty cycle must be non-negative").max(1,"Duty cycle cannot be greater than 100%")),Xft=Te({type:fe("simulation_voltage_source"),simulation_voltage_source_id:ir("simulation_voltage_source"),is_dc_source:fe(!0).optional().default(!0),positive_source_port_id:k().optional(),negative_source_port_id:k().optional(),positive_source_net_id:k().optional(),negative_source_net_id:k().optional(),voltage:P4}).describe("Defines a DC voltage source for simulation"),Wft=Te({type:fe("simulation_voltage_source"),simulation_voltage_source_id:ir("simulation_voltage_source"),is_dc_source:fe(!1),terminal1_source_port_id:k().optional(),terminal2_source_port_id:k().optional(),terminal1_source_net_id:k().optional(),terminal2_source_net_id:k().optional(),voltage:P4.optional(),frequency:Cq.optional(),peak_to_peak_voltage:P4.optional(),wave_shape:Yft.optional(),phase:Tw.optional(),duty_cycle:bVn.optional()}).describe("Defines an AC voltage source for simulation"),Zft=Un([Xft,Wft]).describe("Defines a voltage source for simulation"),Kft=Un([fe("spice_dc_sweep"),fe("spice_dc_operating_point"),fe("spice_transient_analysis"),fe("spice_ac_analysis")]),Qft=Te({type:fe("simulation_experiment"),simulation_experiment_id:ir("simulation_experiment"),name:k(),experiment_type:Kft,time_per_step:G8.optional(),start_time_ms:R4.optional(),end_time_ms:R4.optional()}).describe("Defines a simulation experiment configuration"),Jft=Te({type:fe("simulation_transient_voltage_graph"),simulation_transient_voltage_graph_id:ir("simulation_transient_voltage_graph"),simulation_experiment_id:k(),timestamps_ms:dt(Ne()).optional(),voltage_levels:dt(Ne()),schematic_voltage_probe_id:k().optional(),simulation_voltage_probe_id:k().optional(),subcircuit_connectivity_map_key:k().optional(),time_per_step:G8,start_time_ms:R4,end_time_ms:R4,name:k().optional()}).describe("Stores voltage measurements over time for a simulation"),emt=Te({type:fe("simulation_switch"),simulation_switch_id:ir("simulation_switch"),closes_at:R4.optional(),opens_at:R4.optional(),starts_closed:tt().optional(),switching_frequency:Cq.optional()}).describe("Defines a switch for simulation timing control"),tmt=Te({type:fe("simulation_voltage_probe"),simulation_voltage_probe_id:ir("simulation_voltage_probe"),source_port_id:k().optional(),source_net_id:k().optional(),name:k().optional(),subcircuit_id:k().optional()}).describe("Defines a voltage probe for simulation, connected to a port or a net").refine(n=>!!n.source_port_id!=!!n.source_net_id,{message:"Exactly one of source_port_id or source_net_id must be provided to simulation_voltage_probe"}),nmt=Un([Jht,Qht,Kht,tpt,ept,nxe,J1e,Rq,txe,exe,ixe,rxe,oxe,cxe,lxe,uxe,fxe,dxe,hxe,pxe,axe,sxe,ipt,opt,npt,mxe,_xe,gxe,Dpt,Upt,Cft,Pft,Rft,kft,jpt,Sft,Hpt,nft,Ypt,Kpt,ift,qpt,Gpt,rft,Ift,sft,aft,cft,lft,uft,dft,hft,Qpt,Jpt,oft,eft,tft,Hft,fft,pft,mft,_ft,gft,yft,xft,vft,bft,Nft,wft,Oft,Aft,Lft,Dft,$ft,Uft,jft,Vft,qft,spt,ypt,ppt,fpt,mpt,_pt,hpt,xpt,gpt,apt,bpt,wpt,vpt,Mpt,Apt,Cpt,Ppt,Rpt,Ipt,Gft,Zft,Qft,Jft,emt,tmt]),wxe=nmt;const imt=Object.freeze(Object.defineProperty({__proto__:null,all_layers:rpt,any_circuit_element:nmt,any_soup_element:wxe,any_source_component:Kht,battery_capacity:Vht,brep_shape:kpt,cad_component:Gft,capacitance:K1e,circuit_json_footprint_load_error:Rft,current:XHn,distance:xi,duration_ms:G8,experiment_type:Kft,external_footprint_load_error:Pft,frequency:Cq,getZodPrefixedIdWithDefault:ir,inductance:jht,layer_ref:bh,layer_string:yxe,length:qs,ms:R4,ninePointAnchor:Pq,pcb_autorouting_error:Nft,pcb_board:rft,pcb_breakout_point:Oft,pcb_component:Dpt,pcb_component_outside_board_error:jft,pcb_copper_pour:Uft,pcb_copper_pour_brep:Fft,pcb_copper_pour_polygon:Bft,pcb_copper_pour_rect:zft,pcb_courtyard_outline:qft,pcb_courtyard_rect:Vft,pcb_cutout:Aft,pcb_cutout_circle:Tft,pcb_cutout_polygon:Mft,pcb_cutout_rect:Eft,pcb_fabrication_note_dimension:_ft,pcb_fabrication_note_path:fft,pcb_fabrication_note_rect:mft,pcb_fabrication_note_text:pft,pcb_footprint_overlap_error:wft,pcb_ground_plane:Lft,pcb_ground_plane_region:Dft,pcb_group:Ift,pcb_hole:Upt,pcb_hole_circle_or_square_shape:nVn,pcb_hole_oval_shape:iVn,pcb_hole_pill_shape:rVn,pcb_hole_rotated_pill_shape:oVn,pcb_keepout:Sft,pcb_manual_edit_conflict_warning:kft,pcb_missing_footprint_error:Cft,pcb_net:nft,pcb_note_dimension:bft,pcb_note_line:vft,pcb_note_path:xft,pcb_note_rect:yft,pcb_note_text:gft,pcb_placement_error:oft,pcb_plated_hole:jpt,pcb_port:Hpt,pcb_port_not_connected_error:tft,pcb_port_not_matched_error:eft,pcb_route_hint:Opt,pcb_route_hints:tVn,pcb_silkscreen_circle:dft,pcb_silkscreen_line:aft,pcb_silkscreen_oval:hft,pcb_silkscreen_path:cft,pcb_silkscreen_rect:uft,pcb_silkscreen_text:lft,pcb_smtpad:qpt,pcb_smtpad_pill:Vpt,pcb_solder_paste:Gpt,pcb_text:Ypt,pcb_thermal_spoke:$ft,pcb_trace:Kpt,pcb_trace_error:Qpt,pcb_trace_hint:sft,pcb_trace_missing_error:Jpt,pcb_trace_route_point:Zpt,pcb_trace_route_point_via:Wpt,pcb_trace_route_point_wire:Xpt,pcb_via:ift,pcb_via_clearance_error:Hft,point:zs,point3:Y8,point_with_bulge:Npt,port_arrangement:dpt,position:ZHn,position3:KHn,resistance:Aq,ring:xxe,rotation:Tw,route_hint_point:Lpt,schematic_arc:_pt,schematic_box:spt,schematic_circle:mpt,schematic_component:hpt,schematic_component_port_arrangement_by_sides:upt,schematic_component_port_arrangement_by_size:lpt,schematic_debug_line:Ept,schematic_debug_object:Mpt,schematic_debug_object_base:Iq,schematic_debug_point:Tpt,schematic_debug_rect:Spt,schematic_error:bpt,schematic_group:Ppt,schematic_layout_error:wpt,schematic_line:ppt,schematic_manual_edit_conflict_warning:Cpt,schematic_net_label:vpt,schematic_path:apt,schematic_pin_styles:cpt,schematic_port:xpt,schematic_rect:fpt,schematic_table:Rpt,schematic_table_cell:Ipt,schematic_text:ypt,schematic_trace:gpt,schematic_voltage_probe:Apt,simulation_ac_voltage_source:Wft,simulation_dc_voltage_source:Xft,simulation_experiment:Qft,simulation_switch:emt,simulation_transient_voltage_graph:Jft,simulation_voltage_probe:tmt,simulation_voltage_source:Zft,size:Q1e,source_board:npt,source_component_base:s1,source_failed_to_create_component_error:Wht,source_group:ept,source_manually_placed_via:opt,source_missing_property_error:Xht,source_net:tpt,source_pcb_ground_plane:ipt,source_pin_missing_trace_warning:gxe,source_port:Qht,source_project_metadata:mxe,source_property_ignored_warning:Zht,source_simple_battery:rxe,source_simple_capacitor:J1e,source_simple_chip:nxe,source_simple_crystal:Yht,source_simple_diode:Rq,source_simple_ground:Ght,source_simple_inductor:oxe,source_simple_led:txe,source_simple_mosfet:pxe,source_simple_pin_header:cxe,source_simple_pinout:lxe,source_simple_potentiometer:axe,source_simple_power_source:ixe,source_simple_push_button:sxe,source_simple_resistor:exe,source_simple_resonator:uxe,source_simple_switch:fxe,source_simple_test_point:hxe,source_simple_transistor:dxe,source_trace:Jht,source_trace_not_connected_error:_xe,supplier_name:qht,time:WHn,timestamp:Hht,visible_layer:IT,voltage:P4,wave_shape:Yft},Symbol.toStringTag,{value:"Module"})),X8=n=>typeof n=="number"&&!isNaN(n),I4=n=>typeof n=="string",yS=n=>typeof n=="function",Nq=n=>I4(n)||yS(n)?n:null,Sxe=n=>be.isValidElement(n)||I4(n)||yS(n)||X8(n);function wVn(n,e,t){t===void 0&&(t=300);const{scrollHeight:i,style:r}=n;requestAnimationFrame(()=>{r.minHeight="initial",r.height=i+"px",r.transition=`all ${t}ms`,requestAnimationFrame(()=>{r.height="0",r.padding="0",r.margin="0",setTimeout(e,t)})})}function kq(n){let{enter:e,exit:t,appendPosition:i=!1,collapse:r=!0,collapseDuration:o=300}=n;return function(s){let{children:a,position:c,preventExitTransition:l,done:u,nodeRef:d,isIn:h,playToast:p}=s;const f=i?`${e}--${c}`:e,_=i?`${t}--${c}`:t,g=be.useRef(0);return be.useLayoutEffect(()=>{const x=d.current,v=f.split(" "),b=S=>{S.target===d.current&&(p(),x.removeEventListener("animationend",b),x.removeEventListener("animationcancel",b),g.current===0&&S.type!=="animationcancel"&&x.classList.remove(...v))};x.classList.add(...v),x.addEventListener("animationend",b),x.addEventListener("animationcancel",b)},[]),be.useEffect(()=>{const x=d.current,v=()=>{x.removeEventListener("animationend",v),r?wVn(x,u,o):u()};h||(l?v():(g.current=1,x.className+=` ${_}`,x.addEventListener("animationend",v)))},[h]),rs.createElement(rs.Fragment,null,a)}}function rmt(n,e){return n!=null?{content:n.content,containerId:n.props.containerId,id:n.props.toastId,theme:n.props.theme,type:n.props.type,data:n.props.data||{},isLoading:n.props.isLoading,icon:n.props.icon,status:e}:{}}const Hb=new Map;let W8=[];const Exe=new Set,SVn=n=>Exe.forEach(e=>e(n)),omt=()=>Hb.size>0;function smt(n,e){var t;if(e)return!((t=Hb.get(e))==null||!t.isToastActive(n));let i=!1;return Hb.forEach(r=>{r.isToastActive(n)&&(i=!0)}),i}function amt(n,e){Sxe(n)&&(omt()||W8.push({content:n,options:e}),Hb.forEach(t=>{t.buildToast(n,e)}))}function cmt(n,e){Hb.forEach(t=>{e!=null&&e!=null&&e.containerId?e?.containerId===t.id&&t.toggle(n,e?.id):t.toggle(n,e?.id)})}function EVn(n){const{subscribe:e,getSnapshot:t,setProps:i}=be.useRef((function(o){const s=o.containerId||1;return{subscribe(a){const c=(function(u,d,h){let p=1,f=0,_=[],g=[],x=[],v=d;const b=new Map,S=new Set,P=()=>{x=Array.from(b.values()),S.forEach(T=>T())},A=T=>{g=T==null?[]:g.filter(I=>I!==T),P()},R=T=>{const{toastId:I,onOpen:C,updateId:z,children:O}=T.props,j=z==null;T.staleId&&b.delete(T.staleId),b.set(I,T),g=[...g,T.props.toastId].filter(V=>V!==T.staleId),P(),h(rmt(T,j?"added":"updated")),j&&yS(C)&&C(be.isValidElement(O)&&O.props)};return{id:u,props:v,observe:T=>(S.add(T),()=>S.delete(T)),toggle:(T,I)=>{b.forEach(C=>{I!=null&&I!==C.props.toastId||yS(C.toggle)&&C.toggle(T)})},removeToast:A,toasts:b,clearQueue:()=>{f-=_.length,_=[]},buildToast:(T,I)=>{if((se=>{let{containerId:he,toastId:Me,updateId:Ee}=se;const Pe=he?he!==u:u!==1,Le=b.has(Me)&&Ee==null;return Pe||Le})(I))return;const{toastId:C,updateId:z,data:O,staleId:j,delay:V}=I,G=()=>{A(C)},Z=z==null;Z&&f++;const K={...v,style:v.toastStyle,key:p++,...Object.fromEntries(Object.entries(I).filter(se=>{let[he,Me]=se;return Me!=null})),toastId:C,updateId:z,data:O,closeToast:G,isIn:!1,className:Nq(I.className||v.toastClassName),bodyClassName:Nq(I.bodyClassName||v.bodyClassName),progressClassName:Nq(I.progressClassName||v.progressClassName),autoClose:!I.isLoading&&(oe=I.autoClose,ce=v.autoClose,oe===!1||X8(oe)&&oe>0?oe:ce),deleteToast(){const se=b.get(C),{onClose:he,children:Me}=se.props;yS(he)&&he(be.isValidElement(Me)&&Me.props),h(rmt(se,"removed")),b.delete(C),f--,f<0&&(f=0),_.length>0?R(_.shift()):P()}};var oe,ce;K.closeButton=v.closeButton,I.closeButton===!1||Sxe(I.closeButton)?K.closeButton=I.closeButton:I.closeButton===!0&&(K.closeButton=!Sxe(v.closeButton)||v.closeButton);let me=T;be.isValidElement(T)&&!I4(T.type)?me=be.cloneElement(T,{closeToast:G,toastProps:K,data:O}):yS(T)&&(me=T({closeToast:G,toastProps:K,data:O}));const te={content:me,props:K,staleId:j};v.limit&&v.limit>0&&f>v.limit&&Z?_.push(te):X8(V)?setTimeout(()=>{R(te)},V):R(te)},setProps(T){v=T},setToggle:(T,I)=>{b.get(T).toggle=I},isToastActive:T=>g.some(I=>I===T),getSnapshot:()=>x}})(s,o,SVn);Hb.set(s,c);const l=c.observe(a);return W8.forEach(u=>amt(u.content,u.options)),W8=[],()=>{l(),Hb.delete(s)}},setProps(a){var c;(c=Hb.get(s))==null||c.setProps(a)},getSnapshot(){var a;return(a=Hb.get(s))==null?void 0:a.getSnapshot()}}})(n)).current;i(n);const r=be.useSyncExternalStore(e,t,t);return{getToastToRender:function(o){if(!r)return[];const s=new Map;return n.newestOnTop&&r.reverse(),r.forEach(a=>{const{position:c}=a.props;s.has(c)||s.set(c,[]),s.get(c).push(a)}),Array.from(s,a=>o(a[0],a[1]))},isToastActive:smt,count:r?.length}}function TVn(n){const[e,t]=be.useState(!1),[i,r]=be.useState(!1),o=be.useRef(null),s=be.useRef({start:0,delta:0,removalDistance:0,canCloseOnClick:!0,canDrag:!1,didMove:!1}).current,{autoClose:a,pauseOnHover:c,closeToast:l,onClick:u,closeOnClick:d}=n;var h,p;function f(){t(!0)}function _(){t(!1)}function g(b){const S=o.current;s.canDrag&&S&&(s.didMove=!0,e&&_(),s.delta=n.draggableDirection==="x"?b.clientX-s.start:b.clientY-s.start,s.start!==b.clientX&&(s.canCloseOnClick=!1),S.style.transform=`translate3d(${n.draggableDirection==="x"?`${s.delta}px, var(--y)`:`0, calc(${s.delta}px + var(--y))`},0)`,S.style.opacity=""+(1-Math.abs(s.delta/s.removalDistance)))}function x(){document.removeEventListener("pointermove",g),document.removeEventListener("pointerup",x);const b=o.current;if(s.canDrag&&s.didMove&&b){if(s.canDrag=!1,Math.abs(s.delta)>s.removalDistance)return r(!0),n.closeToast(),void n.collapseAll();b.style.transition="transform 0.2s, opacity 0.2s",b.style.removeProperty("transform"),b.style.removeProperty("opacity")}}(p=Hb.get((h={id:n.toastId,containerId:n.containerId,fn:t}).containerId||1))==null||p.setToggle(h.id,h.fn),be.useEffect(()=>{if(n.pauseOnFocusLoss)return document.hasFocus()||_(),window.addEventListener("focus",f),window.addEventListener("blur",_),()=>{window.removeEventListener("focus",f),window.removeEventListener("blur",_)}},[n.pauseOnFocusLoss]);const v={onPointerDown:function(b){if(n.draggable===!0||n.draggable===b.pointerType){s.didMove=!1,document.addEventListener("pointermove",g),document.addEventListener("pointerup",x);const S=o.current;s.canCloseOnClick=!0,s.canDrag=!0,S.style.transition="none",n.draggableDirection==="x"?(s.start=b.clientX,s.removalDistance=S.offsetWidth*(n.draggablePercent/100)):(s.start=b.clientY,s.removalDistance=S.offsetHeight*(n.draggablePercent===80?1.5*n.draggablePercent:n.draggablePercent)/100)}},onPointerUp:function(b){const{top:S,bottom:P,left:A,right:R}=o.current.getBoundingClientRect();b.nativeEvent.type!=="touchend"&&n.pauseOnHover&&b.clientX>=A&&b.clientX<=R&&b.clientY>=S&&b.clientY<=P?_():f()}};return a&&c&&(v.onMouseEnter=_,n.stacked||(v.onMouseLeave=f)),d&&(v.onClick=b=>{u&&u(b),s.canCloseOnClick&&l()}),{playToast:f,pauseToast:_,isRunning:e,preventExitTransition:i,toastRef:o,eventHandlers:v}}function MVn(n){let{delay:e,isRunning:t,closeToast:i,type:r="default",hide:o,className:s,style:a,controlledProgress:c,progress:l,rtl:u,isIn:d,theme:h}=n;const p=o||c&&l===0,f={...a,animationDuration:`${e}ms`,animationPlayState:t?"running":"paused"};c&&(f.transform=`scaleX(${l})`);const _=iT("Toastify__progress-bar",c?"Toastify__progress-bar--controlled":"Toastify__progress-bar--animated",`Toastify__progress-bar-theme--${h}`,`Toastify__progress-bar--${r}`,{"Toastify__progress-bar--rtl":u}),g=yS(s)?s({rtl:u,type:r,defaultClassName:_}):iT(_,s),x={[c&&l>=1?"onTransitionEnd":"onAnimationEnd"]:c&&l<1?null:()=>{d&&i()}};return rs.createElement("div",{className:"Toastify__progress-bar--wrp","data-hidden":p},rs.createElement("div",{className:`Toastify__progress-bar--bg Toastify__progress-bar-theme--${h} Toastify__progress-bar--${r}`}),rs.createElement("div",{role:"progressbar","aria-hidden":p?"true":"false","aria-label":"notification timer",className:g,style:f,...x}))}let AVn=1;const lmt=()=>""+AVn++;function CVn(n){return n&&(I4(n.toastId)||X8(n.toastId))?n.toastId:lmt()}function Z8(n,e){return amt(n,e),e.toastId}function Oq(n,e){return{...e,type:e&&e.type||n,toastId:CVn(e)}}function Lq(n){return(e,t)=>Z8(e,Oq(n,t))}function Bf(n,e){return Z8(n,Oq("default",e))}Bf.loading=(n,e)=>Z8(n,Oq("default",{isLoading:!0,autoClose:!1,closeOnClick:!1,closeButton:!1,draggable:!1,...e})),Bf.promise=function(n,e,t){let i,{pending:r,error:o,success:s}=e;r&&(i=I4(r)?Bf.loading(r,t):Bf.loading(r.render,{...t,...r}));const a={isLoading:null,autoClose:null,closeOnClick:null,closeButton:null,draggable:null},c=(u,d,h)=>{if(d==null)return void Bf.dismiss(i);const p={type:u,...a,...t,data:h},f=I4(d)?{render:d}:d;return i?Bf.update(i,{...p,...f}):Bf(f.render,{...p,...f}),h},l=yS(n)?n():n;return l.then(u=>c("success",s,u)).catch(u=>c("error",o,u)),l},Bf.success=Lq("success"),Bf.info=Lq("info"),Bf.error=Lq("error"),Bf.warning=Lq("warning"),Bf.warn=Bf.warning,Bf.dark=(n,e)=>Z8(n,Oq("default",{theme:"dark",...e})),Bf.dismiss=function(n){(function(e){var t;if(omt()){if(e==null||I4(t=e)||X8(t))Hb.forEach(i=>{i.removeToast(e)});else if(e&&("containerId"in e||"id"in e)){const i=Hb.get(e.containerId);i?i.removeToast(e.id):Hb.forEach(r=>{r.removeToast(e.id)})}}else W8=W8.filter(i=>e!=null&&i.options.toastId!==e)})(n)},Bf.clearWaitingQueue=function(n){n===void 0&&(n={}),Hb.forEach(e=>{!e.props.limit||n.containerId&&e.id!==n.containerId||e.clearQueue()})},Bf.isActive=smt,Bf.update=function(n,e){e===void 0&&(e={});const t=((i,r)=>{var o;let{containerId:s}=r;return(o=Hb.get(s||1))==null?void 0:o.toasts.get(i)})(n,e);if(t){const{props:i,content:r}=t,o={delay:100,...i,...e,toastId:e.toastId||n,updateId:lmt()};o.toastId!==n&&(o.staleId=n);const s=o.render||r;delete o.render,Z8(s,o)}},Bf.done=n=>{Bf.update(n,{progress:1})},Bf.onChange=function(n){return Exe.add(n),()=>{Exe.delete(n)}},Bf.play=n=>cmt(!0,n),Bf.pause=n=>cmt(!1,n);const PVn=typeof window<"u"?be.useLayoutEffect:be.useEffect,Dq=n=>{let{theme:e,type:t,isLoading:i,...r}=n;return rs.createElement("svg",{viewBox:"0 0 24 24",width:"100%",height:"100%",fill:e==="colored"?"currentColor":`var(--toastify-icon-color-${t})`,...r})},Txe={info:function(n){return rs.createElement(Dq,{...n},rs.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(n){return rs.createElement(Dq,{...n},rs.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(n){return rs.createElement(Dq,{...n},rs.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(n){return rs.createElement(Dq,{...n},rs.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 rs.createElement("div",{className:"Toastify__spinner"})}},RVn=n=>{const{isRunning:e,preventExitTransition:t,toastRef:i,eventHandlers:r,playToast:o}=TVn(n),{closeButton:s,children:a,autoClose:c,onClick:l,type:u,hideProgressBar:d,closeToast:h,transition:p,position:f,className:_,style:g,bodyClassName:x,bodyStyle:v,progressClassName:b,progressStyle:S,updateId:P,role:A,progress:R,rtl:T,toastId:I,deleteToast:C,isIn:z,isLoading:O,closeOnClick:j,theme:V}=n,G=iT("Toastify__toast",`Toastify__toast-theme--${V}`,`Toastify__toast--${u}`,{"Toastify__toast--rtl":T},{"Toastify__toast--close-on-click":j}),Z=yS(_)?_({rtl:T,position:f,type:u,defaultClassName:G}):iT(G,_),K=(function(te){let{theme:se,type:he,isLoading:Me,icon:Ee}=te,Pe=null;const Le={theme:se,type:he};return Ee===!1||(yS(Ee)?Pe=Ee({...Le,isLoading:Me}):be.isValidElement(Ee)?Pe=be.cloneElement(Ee,Le):Me?Pe=Txe.spinner():(ke=>ke in Txe)(he)&&(Pe=Txe[he](Le))),Pe})(n),oe=!!R||!c,ce={closeToast:h,type:u,theme:V};let me=null;return s===!1||(me=yS(s)?s(ce):be.isValidElement(s)?be.cloneElement(s,ce):(function(te){let{closeToast:se,theme:he,ariaLabel:Me="close"}=te;return rs.createElement("button",{className:`Toastify__close-button Toastify__close-button--${he}`,type:"button",onClick:Ee=>{Ee.stopPropagation(),se(Ee)},"aria-label":Me},rs.createElement("svg",{"aria-hidden":"true",viewBox:"0 0 14 16"},rs.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"})))})(ce)),rs.createElement(p,{isIn:z,done:C,position:f,preventExitTransition:t,nodeRef:i,playToast:o},rs.createElement("div",{id:I,onClick:l,"data-in":z,className:Z,...r,style:g,ref:i},rs.createElement("div",{...z&&{role:A},className:yS(x)?x({type:u}):iT("Toastify__toast-body",x),style:v},K!=null&&rs.createElement("div",{className:iT("Toastify__toast-icon",{"Toastify--animate-icon Toastify__zoom-enter":!O})},K),rs.createElement("div",null,a)),me,rs.createElement(MVn,{...P&&!oe?{key:`pb-${P}`}:{},rtl:T,theme:V,delay:c,isRunning:e,isIn:z,closeToast:h,hide:d,type:u,style:S,className:b,controlledProgress:oe,progress:R||0})))},$q=function(n,e){return e===void 0&&(e=!1),{enter:`Toastify--animate Toastify__${n}-enter`,exit:`Toastify--animate Toastify__${n}-exit`,appendPosition:e}},IVn=kq($q("bounce",!0));kq($q("slide",!0)),kq($q("zoom")),kq($q("flip"));const NVn={position:"top-right",transition:IVn,autoClose:5e3,closeButton:!0,pauseOnHover:!0,pauseOnFocusLoss:!0,draggable:"touch",draggablePercent:80,draggableDirection:"x",role:"alert",theme:"light"};function kVn(n){let e={...NVn,...n};const t=n.stacked,[i,r]=be.useState(!0),o=be.useRef(null),{getToastToRender:s,isToastActive:a,count:c}=EVn(e),{className:l,style:u,rtl:d,containerId:h}=e;function p(_){const g=iT("Toastify__toast-container",`Toastify__toast-container--${_}`,{"Toastify__toast-container--rtl":d});return yS(l)?l({position:_,rtl:d,defaultClassName:g}):iT(g,Nq(l))}function f(){t&&(r(!0),Bf.play())}return PVn(()=>{if(t){var _;const g=o.current.querySelectorAll('[data-in="true"]'),x=12,v=(_=e.position)==null?void 0:_.includes("top");let b=0,S=0;Array.from(g).reverse().forEach((P,A)=>{const R=P;R.classList.add("Toastify__toast--stacked"),A>0&&(R.dataset.collapsed=`${i}`),R.dataset.pos||(R.dataset.pos=v?"top":"bot");const T=b*(i?.2:1)+(i?0:x*A);R.style.setProperty("--y",`${v?T:-1*T}px`),R.style.setProperty("--g",`${x}`),R.style.setProperty("--s",""+(1-(i?S:0))),b+=R.offsetHeight,S+=.025})}},[i,c,t]),rs.createElement("div",{ref:o,className:"Toastify",id:h,onMouseEnter:()=>{t&&(r(!1),Bf.pause())},onMouseLeave:f},s((_,g)=>{const x=g.length?{...u}:{...u,pointerEvents:"none"};return rs.createElement("div",{className:p(_),style:x,key:`container-${_}`},g.map(v=>{let{content:b,props:S}=v;return rs.createElement(RVn,{...S,stacked:t,collapseAll:f,isIn:a(S.toastId,S.containerId),style:S.style,key:`toast-${S.key}`},b)}))}))}function OVn(){var n=':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)}}',e=document.createElement("style");e.innerText=n,document.head.appendChild(e)}const LVn=TNe(MBt);var Mxe,umt;function DVn(){if(umt)return Mxe;umt=1;var n=Object.defineProperty,e=Object.getOwnPropertyDescriptor,t=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,r=(g,x)=>{for(var v in x)n(g,v,{get:x[v],enumerable:!0})},o=(g,x,v,b)=>{if(x&&typeof x=="object"||typeof x=="function")for(let S of t(x))!i.call(g,S)&&S!==v&&n(g,S,{get:()=>x[S],enumerable:!(b=e(x,S))||b.enumerable});return g},s=g=>o(n({},"__esModule",{value:!0}),g),a={};r(a,{SuperGrid:()=>_,toMMSI:()=>f,toMeterSI:()=>p}),Mxe=s(a);var c=Jw(),l=LVn,u=NNe(),d=(g,x,v)=>{const b=[];if(x<g)for(let S=g;S>=x;S-=Math.abs(v))b.push(S);else for(let S=g;S<=x;S+=Math.abs(v))b.push(S);return b};function h(g,x){return{x:Math.round(x.x/g)*g,y:Math.round(x.y/g)*g}}function p(g,x=1){return g<0?"-"+p(-g):g<1e-6?"0m":g>1e3?Math.floor(g/1e3)+"km":g>1&&x>1?Math.round(g)+"m":g>1&&x<=1?g.toFixed(Math.ceil(-Math.log10(x)))+"m":g<1&&x>=1/1e3?Math.round(g*1e3)+"mm":g<1&&x<1/1e3?(g*1e3).toFixed(Math.ceil(-Math.log10(x*1e3)))+"mm":""}function f(g,x=1){return p(g/1e3,x/1e3)}var _=g=>{var x;const v=(0,c.useRef)(null),[b,S]=(0,c.useState)({x:0,y:0}),{majorColor:P="rgba(0,0,0,0.2)",minorColor:A="rgba(0,0,0,0.1)",textColor:R=(x=g.majorColor)!=null?x:"rgba(0,0,0,0.5)",width:T,height:I,screenSpaceCellSize:C=200,stringifyCoord:z=(G,Z,K)=>`${p(G,K)}, ${p(Z,K)}`}=g,O=Math.ceil(T/C)+2,j=Math.ceil(I/C)+2;(0,c.useEffect)(()=>{if(!v.current)return;const G=v.current.getContext("2d");if(!G)return;const Z=C/10**Math.floor(Math.log10(g.transform.a)),K=g.transform.d<0?-1:1,ce=C/10**Math.log10(g.transform.a)/Z;function me(we,xe,je){const nt=we;let ct,Ce,We;for(ct=xe.x;ct<=je.x;ct+=nt)Ce=(0,l.applyToPoint)(g.transform,{x:ct,y:xe.y}),We=(0,l.applyToPoint)(g.transform,{x:ct,y:je.y}),G.beginPath(),G.moveTo(Ce.x,Ce.y),G.lineTo(We.x,We.y),G.stroke();const Ze=d(xe.y,je.y,nt*K);for(const qe of Ze)Ce=(0,l.applyToPoint)(g.transform,{x:xe.x,y:qe}),We=(0,l.applyToPoint)(g.transform,{x:je.x,y:qe}),G.beginPath(),G.moveTo(Ce.x,Ce.y),G.lineTo(We.x,We.y),G.stroke()}function te(we,xe,je){const nt=we;let ct;for(ct=xe.x;ct<=je.x;ct+=nt)for(const Ce of d(xe.y,je.y,nt*K)){const We=(0,l.applyToPoint)(g.transform,{x:ct,y:Ce});G.fillStyle=R,G.font="12px sans-serif",G.fillText(z(ct,Ce,we),We.x+2,We.y-2)}}G.clearRect(0,0,T,I);const se=(0,l.applyToPoint)((0,l.inverse)(g.transform),{x:0,y:0}),he={x:Math.floor((se.x-Z)/Z)*Z,y:Math.floor((se.y-Z)/Z+(K==-1?2:0))*Z},Me={x:he.x+Z*O,y:he.y+Z*j*K},Pe=Z*5,Le={x:Math.floor((se.x-Pe)/Pe)*Pe,y:Math.floor((se.y-Pe)/Pe+(K==-1?2:0))*Pe},ke={x:Le.x+Pe*O,y:Le.y+Pe*j*K};G.globalAlpha=1,G.strokeStyle=P,me(Z,he,Me),te(Pe,Le,ke),G.globalAlpha=1-ce,me(Pe/10,Le,ke),G.globalAlpha=1-ce,G.strokeStyle=A,me(Z/10,he,Me),G.globalAlpha=Math.max(((1-ce)*10-5)/5,0),te(Pe/10,Le,ke),G.globalAlpha=1;const ae=(0,l.applyToPoint)(g.transform,b);G.font="12px sans-serif",G.fillStyle=R,G.fillText(z(b.x,b.y,Z),ae.x+2,ae.y-2),G.strokeStyle=P,G.strokeRect(ae.x-5,ae.y-5,10,10)},[v,g.transform,b,T,I]);const V=G=>{if(!v.current)return;const Z=C/10/10**Math.floor(Math.log10(g.transform.a)),K=v.current.getBoundingClientRect(),oe=(0,l.applyToPoint)((0,l.inverse)(g.transform),{x:G.clientX-K.left,y:G.clientY-K.top}),ce=h(Z,oe);S(ce)};return(0,u.jsx)("canvas",{onMouseUp:G=>{G.button===1&&V(G)},onDoubleClick:V,ref:v,width:g.width,height:g.height})};return Mxe}var Axe=DVn(),Cxe={exports:{}},Pxe,dmt;function hmt(){return dmt||(dmt=1,Pxe={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]}),Pxe}var Rxe={exports:{}},Ixe,pmt;function $Vn(){return pmt||(pmt=1,Ixe=function(e){return!e||typeof e=="string"?!1:e instanceof Array||Array.isArray(e)||e.length>=0&&(e.splice instanceof Function||Object.getOwnPropertyDescriptor(e,e.length-1)&&e.constructor.name!=="String")}),Ixe}var fmt;function zVn(){if(fmt)return Rxe.exports;fmt=1;var n=$Vn(),e=Array.prototype.concat,t=Array.prototype.slice,i=Rxe.exports=function(o){for(var s=[],a=0,c=o.length;a<c;a++){var l=o[a];n(l)?s=e.call(s,t.call(l)):s.push(l)}return s};return i.wrap=function(r){return function(){return r(i(arguments))}},Rxe.exports}var mmt;function FVn(){if(mmt)return Cxe.exports;mmt=1;var n=hmt(),e=zVn(),t=Object.hasOwnProperty,i=Object.create(null);for(var r in n)t.call(n,r)&&(i[n[r]]=r);var o=Cxe.exports={to:{},get:{}};o.get=function(c){var l=c.substring(0,3).toLowerCase(),u,d;switch(l){case"hsl":u=o.get.hsl(c),d="hsl";break;case"hwb":u=o.get.hwb(c),d="hwb";break;default:u=o.get.rgb(c),d="rgb";break}return u?{model:d,value:u}:null},o.get.rgb=function(c){if(!c)return null;var l=/^#([a-f0-9]{3,4})$/i,u=/^#([a-f0-9]{6})([a-f0-9]{2})?$/i,d=/^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/,h=/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/,p=/^(\w+)$/,f=[0,0,0,1],_,g,x;if(_=c.match(u)){for(x=_[2],_=_[1],g=0;g<3;g++){var v=g*2;f[g]=parseInt(_.slice(v,v+2),16)}x&&(f[3]=parseInt(x,16)/255)}else if(_=c.match(l)){for(_=_[1],x=_[3],g=0;g<3;g++)f[g]=parseInt(_[g]+_[g],16);x&&(f[3]=parseInt(x+x,16)/255)}else if(_=c.match(d)){for(g=0;g<3;g++)f[g]=parseInt(_[g+1],0);_[4]&&(_[5]?f[3]=parseFloat(_[4])*.01:f[3]=parseFloat(_[4]))}else if(_=c.match(h)){for(g=0;g<3;g++)f[g]=Math.round(parseFloat(_[g+1])*2.55);_[4]&&(_[5]?f[3]=parseFloat(_[4])*.01:f[3]=parseFloat(_[4]))}else return(_=c.match(p))?_[1]==="transparent"?[0,0,0,0]:t.call(n,_[1])?(f=n[_[1]],f[3]=1,f):null:null;for(g=0;g<3;g++)f[g]=s(f[g],0,255);return f[3]=s(f[3],0,1),f},o.get.hsl=function(c){if(!c)return null;var l=/^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*)?\)$/,u=c.match(l);if(u){var d=parseFloat(u[4]),h=(parseFloat(u[1])%360+360)%360,p=s(parseFloat(u[2]),0,100),f=s(parseFloat(u[3]),0,100),_=s(isNaN(d)?1:d,0,1);return[h,p,f,_]}return null},o.get.hwb=function(c){if(!c)return null;var l=/^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*)?\)$/,u=c.match(l);if(u){var d=parseFloat(u[4]),h=(parseFloat(u[1])%360+360)%360,p=s(parseFloat(u[2]),0,100),f=s(parseFloat(u[3]),0,100),_=s(isNaN(d)?1:d,0,1);return[h,p,f,_]}return null},o.to.hex=function(){var c=e(arguments);return"#"+a(c[0])+a(c[1])+a(c[2])+(c[3]<1?a(Math.round(c[3]*255)):"")},o.to.rgb=function(){var c=e(arguments);return c.length<4||c[3]===1?"rgb("+Math.round(c[0])+", "+Math.round(c[1])+", "+Math.round(c[2])+")":"rgba("+Math.round(c[0])+", "+Math.round(c[1])+", "+Math.round(c[2])+", "+c[3]+")"},o.to.rgb.percent=function(){var c=e(arguments),l=Math.round(c[0]/255*100),u=Math.round(c[1]/255*100),d=Math.round(c[2]/255*100);return c.length<4||c[3]===1?"rgb("+l+"%, "+u+"%, "+d+"%)":"rgba("+l+"%, "+u+"%, "+d+"%, "+c[3]+")"},o.to.hsl=function(){var c=e(arguments);return c.length<4||c[3]===1?"hsl("+c[0]+", "+c[1]+"%, "+c[2]+"%)":"hsla("+c[0]+", "+c[1]+"%, "+c[2]+"%, "+c[3]+")"},o.to.hwb=function(){var c=e(arguments),l="";return c.length>=4&&c[3]!==1&&(l=", "+c[3]),"hwb("+c[0]+", "+c[1]+"%, "+c[2]+"%"+l+")"},o.to.keyword=function(c){return i[c.slice(0,3)]};function s(c,l,u){return Math.min(Math.max(l,c),u)}function a(c){var l=Math.round(c).toString(16).toUpperCase();return l.length<2?"0"+l:l}return Cxe.exports}var Nxe,_mt;function gmt(){if(_mt)return Nxe;_mt=1;const n=hmt(),e={};for(const r of Object.keys(n))e[n[r]]=r;const t={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"]}};Nxe=t;for(const r of Object.keys(t)){if(!("channels"in t[r]))throw new Error("missing channels property: "+r);if(!("labels"in t[r]))throw new Error("missing channel labels property: "+r);if(t[r].labels.length!==t[r].channels)throw new Error("channel and label counts mismatch: "+r);const{channels:o,labels:s}=t[r];delete t[r].channels,delete t[r].labels,Object.defineProperty(t[r],"channels",{value:o}),Object.defineProperty(t[r],"labels",{value:s})}t.rgb.hsl=function(r){const o=r[0]/255,s=r[1]/255,a=r[2]/255,c=Math.min(o,s,a),l=Math.max(o,s,a),u=l-c;let d,h;l===c?d=0:o===l?d=(s-a)/u:s===l?d=2+(a-o)/u:a===l&&(d=4+(o-s)/u),d=Math.min(d*60,360),d<0&&(d+=360);const p=(c+l)/2;return l===c?h=0:p<=.5?h=u/(l+c):h=u/(2-l-c),[d,h*100,p*100]},t.rgb.hsv=function(r){let o,s,a,c,l;const u=r[0]/255,d=r[1]/255,h=r[2]/255,p=Math.max(u,d,h),f=p-Math.min(u,d,h),_=function(g){return(p-g)/6/f+1/2};return f===0?(c=0,l=0):(l=f/p,o=_(u),s=_(d),a=_(h),u===p?c=a-s:d===p?c=1/3+o-a:h===p&&(c=2/3+s-o),c<0?c+=1:c>1&&(c-=1)),[c*360,l*100,p*100]},t.rgb.hwb=function(r){const o=r[0],s=r[1];let a=r[2];const c=t.rgb.hsl(r)[0],l=1/255*Math.min(o,Math.min(s,a));return a=1-1/255*Math.max(o,Math.max(s,a)),[c,l*100,a*100]},t.rgb.cmyk=function(r){const o=r[0]/255,s=r[1]/255,a=r[2]/255,c=Math.min(1-o,1-s,1-a),l=(1-o-c)/(1-c)||0,u=(1-s-c)/(1-c)||0,d=(1-a-c)/(1-c)||0;return[l*100,u*100,d*100,c*100]};function i(r,o){return(r[0]-o[0])**2+(r[1]-o[1])**2+(r[2]-o[2])**2}return t.rgb.keyword=function(r){const o=e[r];if(o)return o;let s=1/0,a;for(const c of Object.keys(n)){const l=n[c],u=i(r,l);u<s&&(s=u,a=c)}return a},t.keyword.rgb=function(r){return n[r]},t.rgb.xyz=function(r){let o=r[0]/255,s=r[1]/255,a=r[2]/255;o=o>.04045?((o+.055)/1.055)**2.4:o/12.92,s=s>.04045?((s+.055)/1.055)**2.4:s/12.92,a=a>.04045?((a+.055)/1.055)**2.4:a/12.92;const c=o*.4124+s*.3576+a*.1805,l=o*.2126+s*.7152+a*.0722,u=o*.0193+s*.1192+a*.9505;return[c*100,l*100,u*100]},t.rgb.lab=function(r){const o=t.rgb.xyz(r);let s=o[0],a=o[1],c=o[2];s/=95.047,a/=100,c/=108.883,s=s>.008856?s**(1/3):7.787*s+16/116,a=a>.008856?a**(1/3):7.787*a+16/116,c=c>.008856?c**(1/3):7.787*c+16/116;const l=116*a-16,u=500*(s-a),d=200*(a-c);return[l,u,d]},t.hsl.rgb=function(r){const o=r[0]/360,s=r[1]/100,a=r[2]/100;let c,l,u;if(s===0)return u=a*255,[u,u,u];a<.5?c=a*(1+s):c=a+s-a*s;const d=2*a-c,h=[0,0,0];for(let p=0;p<3;p++)l=o+1/3*-(p-1),l<0&&l++,l>1&&l--,6*l<1?u=d+(c-d)*6*l:2*l<1?u=c:3*l<2?u=d+(c-d)*(2/3-l)*6:u=d,h[p]=u*255;return h},t.hsl.hsv=function(r){const o=r[0];let s=r[1]/100,a=r[2]/100,c=s;const l=Math.max(a,.01);a*=2,s*=a<=1?a:2-a,c*=l<=1?l:2-l;const u=(a+s)/2,d=a===0?2*c/(l+c):2*s/(a+s);return[o,d*100,u*100]},t.hsv.rgb=function(r){const o=r[0]/60,s=r[1]/100;let a=r[2]/100;const c=Math.floor(o)%6,l=o-Math.floor(o),u=255*a*(1-s),d=255*a*(1-s*l),h=255*a*(1-s*(1-l));switch(a*=255,c){case 0:return[a,h,u];case 1:return[d,a,u];case 2:return[u,a,h];case 3:return[u,d,a];case 4:return[h,u,a];case 5:return[a,u,d]}},t.hsv.hsl=function(r){const o=r[0],s=r[1]/100,a=r[2]/100,c=Math.max(a,.01);let l,u;u=(2-s)*a;const d=(2-s)*c;return l=s*c,l/=d<=1?d:2-d,l=l||0,u/=2,[o,l*100,u*100]},t.hwb.rgb=function(r){const o=r[0]/360;let s=r[1]/100,a=r[2]/100;const c=s+a;let l;c>1&&(s/=c,a/=c);const u=Math.floor(6*o),d=1-a;l=6*o-u,(u&1)!==0&&(l=1-l);const h=s+l*(d-s);let p,f,_;switch(u){default:case 6:case 0:p=d,f=h,_=s;break;case 1:p=h,f=d,_=s;break;case 2:p=s,f=d,_=h;break;case 3:p=s,f=h,_=d;break;case 4:p=h,f=s,_=d;break;case 5:p=d,f=s,_=h;break}return[p*255,f*255,_*255]},t.cmyk.rgb=function(r){const o=r[0]/100,s=r[1]/100,a=r[2]/100,c=r[3]/100,l=1-Math.min(1,o*(1-c)+c),u=1-Math.min(1,s*(1-c)+c),d=1-Math.min(1,a*(1-c)+c);return[l*255,u*255,d*255]},t.xyz.rgb=function(r){const o=r[0]/100,s=r[1]/100,a=r[2]/100;let c,l,u;return c=o*3.2406+s*-1.5372+a*-.4986,l=o*-.9689+s*1.8758+a*.0415,u=o*.0557+s*-.204+a*1.057,c=c>.0031308?1.055*c**(1/2.4)-.055:c*12.92,l=l>.0031308?1.055*l**(1/2.4)-.055:l*12.92,u=u>.0031308?1.055*u**(1/2.4)-.055:u*12.92,c=Math.min(Math.max(0,c),1),l=Math.min(Math.max(0,l),1),u=Math.min(Math.max(0,u),1),[c*255,l*255,u*255]},t.xyz.lab=function(r){let o=r[0],s=r[1],a=r[2];o/=95.047,s/=100,a/=108.883,o=o>.008856?o**(1/3):7.787*o+16/116,s=s>.008856?s**(1/3):7.787*s+16/116,a=a>.008856?a**(1/3):7.787*a+16/116;const c=116*s-16,l=500*(o-s),u=200*(s-a);return[c,l,u]},t.lab.xyz=function(r){const o=r[0],s=r[1],a=r[2];let c,l,u;l=(o+16)/116,c=s/500+l,u=l-a/200;const d=l**3,h=c**3,p=u**3;return l=d>.008856?d:(l-16/116)/7.787,c=h>.008856?h:(c-16/116)/7.787,u=p>.008856?p:(u-16/116)/7.787,c*=95.047,l*=100,u*=108.883,[c,l,u]},t.lab.lch=function(r){const o=r[0],s=r[1],a=r[2];let c;c=Math.atan2(a,s)*360/2/Math.PI,c<0&&(c+=360);const u=Math.sqrt(s*s+a*a);return[o,u,c]},t.lch.lab=function(r){const o=r[0],s=r[1],c=r[2]/360*2*Math.PI,l=s*Math.cos(c),u=s*Math.sin(c);return[o,l,u]},t.rgb.ansi16=function(r,o=null){const[s,a,c]=r;let l=o===null?t.rgb.hsv(r)[2]:o;if(l=Math.round(l/50),l===0)return 30;let u=30+(Math.round(c/255)<<2|Math.round(a/255)<<1|Math.round(s/255));return l===2&&(u+=60),u},t.hsv.ansi16=function(r){return t.rgb.ansi16(t.hsv.rgb(r),r[2])},t.rgb.ansi256=function(r){const o=r[0],s=r[1],a=r[2];return o===s&&s===a?o<8?16:o>248?231:Math.round((o-8)/247*24)+232:16+36*Math.round(o/255*5)+6*Math.round(s/255*5)+Math.round(a/255*5)},t.ansi16.rgb=function(r){let o=r%10;if(o===0||o===7)return r>50&&(o+=3.5),o=o/10.5*255,[o,o,o];const s=(~~(r>50)+1)*.5,a=(o&1)*s*255,c=(o>>1&1)*s*255,l=(o>>2&1)*s*255;return[a,c,l]},t.ansi256.rgb=function(r){if(r>=232){const l=(r-232)*10+8;return[l,l,l]}r-=16;let o;const s=Math.floor(r/36)/5*255,a=Math.floor((o=r%36)/6)/5*255,c=o%6/5*255;return[s,a,c]},t.rgb.hex=function(r){const s=(((Math.round(r[0])&255)<<16)+((Math.round(r[1])&255)<<8)+(Math.round(r[2])&255)).toString(16).toUpperCase();return"000000".substring(s.length)+s},t.hex.rgb=function(r){const o=r.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!o)return[0,0,0];let s=o[0];o[0].length===3&&(s=s.split("").map(d=>d+d).join(""));const a=parseInt(s,16),c=a>>16&255,l=a>>8&255,u=a&255;return[c,l,u]},t.rgb.hcg=function(r){const o=r[0]/255,s=r[1]/255,a=r[2]/255,c=Math.max(Math.max(o,s),a),l=Math.min(Math.min(o,s),a),u=c-l;let d,h;return u<1?d=l/(1-u):d=0,u<=0?h=0:c===o?h=(s-a)/u%6:c===s?h=2+(a-o)/u:h=4+(o-s)/u,h/=6,h%=1,[h*360,u*100,d*100]},t.hsl.hcg=function(r){const o=r[1]/100,s=r[2]/100,a=s<.5?2*o*s:2*o*(1-s);let c=0;return a<1&&(c=(s-.5*a)/(1-a)),[r[0],a*100,c*100]},t.hsv.hcg=function(r){const o=r[1]/100,s=r[2]/100,a=o*s;let c=0;return a<1&&(c=(s-a)/(1-a)),[r[0],a*100,c*100]},t.hcg.rgb=function(r){const o=r[0]/360,s=r[1]/100,a=r[2]/100;if(s===0)return[a*255,a*255,a*255];const c=[0,0,0],l=o%1*6,u=l%1,d=1-u;let h=0;switch(Math.floor(l)){case 0:c[0]=1,c[1]=u,c[2]=0;break;case 1:c[0]=d,c[1]=1,c[2]=0;break;case 2:c[0]=0,c[1]=1,c[2]=u;break;case 3:c[0]=0,c[1]=d,c[2]=1;break;case 4:c[0]=u,c[1]=0,c[2]=1;break;default:c[0]=1,c[1]=0,c[2]=d}return h=(1-s)*a,[(s*c[0]+h)*255,(s*c[1]+h)*255,(s*c[2]+h)*255]},t.hcg.hsv=function(r){const o=r[1]/100,s=r[2]/100,a=o+s*(1-o);let c=0;return a>0&&(c=o/a),[r[0],c*100,a*100]},t.hcg.hsl=function(r){const o=r[1]/100,a=r[2]/100*(1-o)+.5*o;let c=0;return a>0&&a<.5?c=o/(2*a):a>=.5&&a<1&&(c=o/(2*(1-a))),[r[0],c*100,a*100]},t.hcg.hwb=function(r){const o=r[1]/100,s=r[2]/100,a=o+s*(1-o);return[r[0],(a-o)*100,(1-a)*100]},t.hwb.hcg=function(r){const o=r[1]/100,a=1-r[2]/100,c=a-o;let l=0;return c<1&&(l=(a-c)/(1-c)),[r[0],c*100,l*100]},t.apple.rgb=function(r){return[r[0]/65535*255,r[1]/65535*255,r[2]/65535*255]},t.rgb.apple=function(r){return[r[0]/255*65535,r[1]/255*65535,r[2]/255*65535]},t.gray.rgb=function(r){return[r[0]/100*255,r[0]/100*255,r[0]/100*255]},t.gray.hsl=function(r){return[0,0,r[0]]},t.gray.hsv=t.gray.hsl,t.gray.hwb=function(r){return[0,100,r[0]]},t.gray.cmyk=function(r){return[0,0,0,r[0]]},t.gray.lab=function(r){return[r[0],0,0]},t.gray.hex=function(r){const o=Math.round(r[0]/100*255)&255,a=((o<<16)+(o<<8)+o).toString(16).toUpperCase();return"000000".substring(a.length)+a},t.rgb.gray=function(r){return[(r[0]+r[1]+r[2])/3/255*100]},Nxe}var kxe,ymt;function BVn(){if(ymt)return kxe;ymt=1;const n=gmt();function e(){const o={},s=Object.keys(n);for(let a=s.length,c=0;c<a;c++)o[s[c]]={distance:-1,parent:null};return o}function t(o){const s=e(),a=[o];for(s[o].distance=0;a.length;){const c=a.pop(),l=Object.keys(n[c]);for(let u=l.length,d=0;d<u;d++){const h=l[d],p=s[h];p.distance===-1&&(p.distance=s[c].distance+1,p.parent=c,a.unshift(h))}}return s}function i(o,s){return function(a){return s(o(a))}}function r(o,s){const a=[s[o].parent,o];let c=n[s[o].parent][o],l=s[o].parent;for(;s[l].parent;)a.unshift(s[l].parent),c=i(n[s[l].parent][l],c),l=s[l].parent;return c.conversion=a,c}return kxe=function(o){const s=t(o),a={},c=Object.keys(s);for(let l=c.length,u=0;u<l;u++){const d=c[u];s[d].parent!==null&&(a[d]=r(d,s))}return a},kxe}var Oxe,xmt;function UVn(){if(xmt)return Oxe;xmt=1;const n=gmt(),e=BVn(),t={},i=Object.keys(n);function r(s){const a=function(...c){const l=c[0];return l==null?l:(l.length>1&&(c=l),s(c))};return"conversion"in s&&(a.conversion=s.conversion),a}function o(s){const a=function(...c){const l=c[0];if(l==null)return l;l.length>1&&(c=l);const u=s(c);if(typeof u=="object")for(let d=u.length,h=0;h<d;h++)u[h]=Math.round(u[h]);return u};return"conversion"in s&&(a.conversion=s.conversion),a}return i.forEach(s=>{t[s]={},Object.defineProperty(t[s],"channels",{value:n[s].channels}),Object.defineProperty(t[s],"labels",{value:n[s].labels});const a=e(s);Object.keys(a).forEach(l=>{const u=a[l];t[s][l]=o(u),t[s][l].raw=r(u)})}),Oxe=t,Oxe}var Lxe,vmt;function jVn(){if(vmt)return Lxe;vmt=1;const n=FVn(),e=UVn(),t=["keyword","gray","hex"],i={};for(const h of Object.keys(e))i[[...e[h].labels].sort().join("")]=h;const r={};function o(h,p){if(!(this instanceof o))return new o(h,p);if(p&&p in t&&(p=null),p&&!(p in e))throw new Error("Unknown model: "+p);let f,_;if(h==null)this.model="rgb",this.color=[0,0,0],this.valpha=1;else if(h instanceof o)this.model=h.model,this.color=[...h.color],this.valpha=h.valpha;else if(typeof h=="string"){const g=n.get(h);if(g===null)throw new Error("Unable to parse color from string: "+h);this.model=g.model,_=e[this.model].channels,this.color=g.value.slice(0,_),this.valpha=typeof g.value[_]=="number"?g.value[_]:1}else if(h.length>0){this.model=p||"rgb",_=e[this.model].channels;const g=Array.prototype.slice.call(h,0,_);this.color=d(g,_),this.valpha=typeof h[_]=="number"?h[_]:1}else if(typeof h=="number")this.model="rgb",this.color=[h>>16&255,h>>8&255,h&255],this.valpha=1;else{this.valpha=1;const g=Object.keys(h);"alpha"in h&&(g.splice(g.indexOf("alpha"),1),this.valpha=typeof h.alpha=="number"?h.alpha:0);const x=g.sort().join("");if(!(x in i))throw new Error("Unable to parse color from object: "+JSON.stringify(h));this.model=i[x];const{labels:v}=e[this.model],b=[];for(f=0;f<v.length;f++)b.push(h[v[f]]);this.color=d(b)}if(r[this.model])for(_=e[this.model].channels,f=0;f<_;f++){const g=r[this.model][f];g&&(this.color[f]=g(this.color[f]))}this.valpha=Math.max(0,Math.min(1,this.valpha)),Object.freeze&&Object.freeze(this)}o.prototype={toString(){return this.string()},toJSON(){return this[this.model]()},string(h){let p=this.model in n.to?this:this.rgb();p=p.round(typeof h=="number"?h:1);const f=p.valpha===1?p.color:[...p.color,this.valpha];return n.to[p.model](f)},percentString(h){const p=this.rgb().round(typeof h=="number"?h:1),f=p.valpha===1?p.color:[...p.color,this.valpha];return n.to.rgb.percent(f)},array(){return this.valpha===1?[...this.color]:[...this.color,this.valpha]},object(){const h={},{channels:p}=e[this.model],{labels:f}=e[this.model];for(let _=0;_<p;_++)h[f[_]]=this.color[_];return this.valpha!==1&&(h.alpha=this.valpha),h},unitArray(){const h=this.rgb().color;return h[0]/=255,h[1]/=255,h[2]/=255,this.valpha!==1&&h.push(this.valpha),h},unitObject(){const h=this.rgb().object();return h.r/=255,h.g/=255,h.b/=255,this.valpha!==1&&(h.alpha=this.valpha),h},round(h){return h=Math.max(h||0,0),new o([...this.color.map(a(h)),this.valpha],this.model)},alpha(h){return h!==void 0?new o([...this.color,Math.max(0,Math.min(1,h))],this.model):this.valpha},red:c("rgb",0,l(255)),green:c("rgb",1,l(255)),blue:c("rgb",2,l(255)),hue:c(["hsl","hsv","hsl","hwb","hcg"],0,h=>(h%360+360)%360),saturationl:c("hsl",1,l(100)),lightness:c("hsl",2,l(100)),saturationv:c("hsv",1,l(100)),value:c("hsv",2,l(100)),chroma:c("hcg",1,l(100)),gray:c("hcg",2,l(100)),white:c("hwb",1,l(100)),wblack:c("hwb",2,l(100)),cyan:c("cmyk",0,l(100)),magenta:c("cmyk",1,l(100)),yellow:c("cmyk",2,l(100)),black:c("cmyk",3,l(100)),x:c("xyz",0,l(95.047)),y:c("xyz",1,l(100)),z:c("xyz",2,l(108.833)),l:c("lab",0,l(100)),a:c("lab",1),b:c("lab",2),keyword(h){return h!==void 0?new o(h):e[this.model].keyword(this.color)},hex(h){return h!==void 0?new o(h):n.to.hex(this.rgb().round().color)},hexa(h){if(h!==void 0)return new o(h);const p=this.rgb().round().color;let f=Math.round(this.valpha*255).toString(16).toUpperCase();return f.length===1&&(f="0"+f),n.to.hex(p)+f},rgbNumber(){const h=this.rgb().color;return(h[0]&255)<<16|(h[1]&255)<<8|h[2]&255},luminosity(){const h=this.rgb().color,p=[];for(const[f,_]of h.entries()){const g=_/255;p[f]=g<=.04045?g/12.92:((g+.055)/1.055)**2.4}return .2126*p[0]+.7152*p[1]+.0722*p[2]},contrast(h){const p=this.luminosity(),f=h.luminosity();return p>f?(p+.05)/(f+.05):(f+.05)/(p+.05)},level(h){const p=this.contrast(h);return p>=7?"AAA":p>=4.5?"AA":""},isDark(){const h=this.rgb().color;return(h[0]*2126+h[1]*7152+h[2]*722)/1e4<128},isLight(){return!this.isDark()},negate(){const h=this.rgb();for(let p=0;p<3;p++)h.color[p]=255-h.color[p];return h},lighten(h){const p=this.hsl();return p.color[2]+=p.color[2]*h,p},darken(h){const p=this.hsl();return p.color[2]-=p.color[2]*h,p},saturate(h){const p=this.hsl();return p.color[1]+=p.color[1]*h,p},desaturate(h){const p=this.hsl();return p.color[1]-=p.color[1]*h,p},whiten(h){const p=this.hwb();return p.color[1]+=p.color[1]*h,p},blacken(h){const p=this.hwb();return p.color[2]+=p.color[2]*h,p},grayscale(){const h=this.rgb().color,p=h[0]*.3+h[1]*.59+h[2]*.11;return o.rgb(p,p,p)},fade(h){return this.alpha(this.valpha-this.valpha*h)},opaquer(h){return this.alpha(this.valpha+this.valpha*h)},rotate(h){const p=this.hsl();let f=p.color[0];return f=(f+h)%360,f=f<0?360+f:f,p.color[0]=f,p},mix(h,p){if(!h||!h.rgb)throw new Error('Argument to "mix" was not a Color instance, but rather an instance of '+typeof h);const f=h.rgb(),_=this.rgb(),g=p===void 0?.5:p,x=2*g-1,v=f.alpha()-_.alpha(),b=((x*v===-1?x:(x+v)/(1+x*v))+1)/2,S=1-b;return o.rgb(b*f.red()+S*_.red(),b*f.green()+S*_.green(),b*f.blue()+S*_.blue(),f.alpha()*g+_.alpha()*(1-g))}};for(const h of Object.keys(e)){if(t.includes(h))continue;const{channels:p}=e[h];o.prototype[h]=function(...f){return this.model===h?new o(this):f.length>0?new o(f,h):new o([...u(e[this.model][h].raw(this.color)),this.valpha],h)},o[h]=function(...f){let _=f[0];return typeof _=="number"&&(_=d(f,p)),new o(_,h)}}function s(h,p){return Number(h.toFixed(p))}function a(h){return function(p){return s(p,h)}}function c(h,p,f){h=Array.isArray(h)?h:[h];for(const _ of h)(r[_]||(r[_]=[]))[p]=f;return h=h[0],function(_){let g;return _!==void 0?(f&&(_=f(_)),g=this[h](),g.color[p]=_,g):(g=this[h]().color[p],f&&(g=f(g)),g)}}function l(h){return function(p){return Math.max(0,Math.min(h,p))}}function u(h){return Array.isArray(h)?h:[h]}function d(h,p){for(let f=0;f<p;f++)typeof h[f]!="number"&&(h[f]=0);return h}return Lxe=o,Lxe}var HVn=jVn();const VVn=uw(HVn);function qVn(n){if(n.sheet)return n.sheet;for(var e=0;e<document.styleSheets.length;e++)if(document.styleSheets[e].ownerNode===n)return document.styleSheets[e]}function GVn(n){var e=document.createElement("style");return e.setAttribute("data-emotion",n.key),n.nonce!==void 0&&e.setAttribute("nonce",n.nonce),e.appendChild(document.createTextNode("")),e.setAttribute("data-s",""),e}var YVn=(function(){function n(t){var i=this;this._insertTag=function(r){var o;i.tags.length===0?i.insertionPoint?o=i.insertionPoint.nextSibling:i.prepend?o=i.container.firstChild:o=i.before:o=i.tags[i.tags.length-1].nextSibling,i.container.insertBefore(r,o),i.tags.push(r)},this.isSpeedy=t.speedy===void 0?!0:t.speedy,this.tags=[],this.ctr=0,this.nonce=t.nonce,this.key=t.key,this.container=t.container,this.prepend=t.prepend,this.insertionPoint=t.insertionPoint,this.before=null}var e=n.prototype;return e.hydrate=function(i){i.forEach(this._insertTag)},e.insert=function(i){this.ctr%(this.isSpeedy?65e3:1)===0&&this._insertTag(GVn(this));var r=this.tags[this.tags.length-1];if(this.isSpeedy){var o=qVn(r);try{o.insertRule(i,o.cssRules.length)}catch{}}else r.appendChild(document.createTextNode(i));this.ctr++},e.flush=function(){this.tags.forEach(function(i){var r;return(r=i.parentNode)==null?void 0:r.removeChild(i)}),this.tags=[],this.ctr=0},n})(),fb="-ms-",zq="-moz-",Zh="-webkit-",bmt="comm",Dxe="rule",$xe="decl",XVn="@import",wmt="@keyframes",WVn="@layer",ZVn=Math.abs,Fq=String.fromCharCode,KVn=Object.assign;function QVn(n,e){return Av(n,0)^45?(((e<<2^Av(n,0))<<2^Av(n,1))<<2^Av(n,2))<<2^Av(n,3):0}function Smt(n){return n.trim()}function JVn(n,e){return(n=e.exec(n))?n[0]:n}function Kh(n,e,t){return n.replace(e,t)}function zxe(n,e){return n.indexOf(e)}function Av(n,e){return n.charCodeAt(e)|0}function K8(n,e,t){return n.slice(e,t)}function NT(n){return n.length}function Fxe(n){return n.length}function Bq(n,e){return e.push(n),n}function eqn(n,e){return n.map(e).join("")}var Uq=1,TI=1,Emt=0,Mw=0,a1=0,MI="";function jq(n,e,t,i,r,o,s){return{value:n,root:e,parent:t,type:i,props:r,children:o,line:Uq,column:TI,length:s,return:""}}function Q8(n,e){return KVn(jq("",null,null,"",null,null,0),n,{length:-n.length},e)}function tqn(){return a1}function nqn(){return a1=Mw>0?Av(MI,--Mw):0,TI--,a1===10&&(TI=1,Uq--),a1}function xS(){return a1=Mw<Emt?Av(MI,Mw++):0,TI++,a1===10&&(TI=1,Uq++),a1}function kT(){return Av(MI,Mw)}function Hq(){return Mw}function J8(n,e){return K8(MI,n,e)}function eL(n){switch(n){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 Tmt(n){return Uq=TI=1,Emt=NT(MI=n),Mw=0,[]}function Mmt(n){return MI="",n}function Vq(n){return Smt(J8(Mw-1,Bxe(n===91?n+2:n===40?n+1:n)))}function iqn(n){for(;(a1=kT())&&a1<33;)xS();return eL(n)>2||eL(a1)>3?"":" "}function rqn(n,e){for(;--e&&xS()&&!(a1<48||a1>102||a1>57&&a1<65||a1>70&&a1<97););return J8(n,Hq()+(e<6&&kT()==32&&xS()==32))}function Bxe(n){for(;xS();)switch(a1){case n:return Mw;case 34:case 39:n!==34&&n!==39&&Bxe(a1);break;case 40:n===41&&Bxe(n);break;case 92:xS();break}return Mw}function oqn(n,e){for(;xS()&&n+a1!==57;)if(n+a1===84&&kT()===47)break;return"/*"+J8(e,Mw-1)+"*"+Fq(n===47?n:xS())}function sqn(n){for(;!eL(kT());)xS();return J8(n,Mw)}function aqn(n){return Mmt(qq("",null,null,null,[""],n=Tmt(n),0,[0],n))}function qq(n,e,t,i,r,o,s,a,c){for(var l=0,u=0,d=s,h=0,p=0,f=0,_=1,g=1,x=1,v=0,b="",S=r,P=o,A=i,R=b;g;)switch(f=v,v=xS()){case 40:if(f!=108&&Av(R,d-1)==58){zxe(R+=Kh(Vq(v),"&","&\f"),"&\f")!=-1&&(x=-1);break}case 34:case 39:case 91:R+=Vq(v);break;case 9:case 10:case 13:case 32:R+=iqn(f);break;case 92:R+=rqn(Hq()-1,7);continue;case 47:switch(kT()){case 42:case 47:Bq(cqn(oqn(xS(),Hq()),e,t),c);break;default:R+="/"}break;case 123*_:a[l++]=NT(R)*x;case 125*_:case 59:case 0:switch(v){case 0:case 125:g=0;case 59+u:x==-1&&(R=Kh(R,/\f/g,"")),p>0&&NT(R)-d&&Bq(p>32?Cmt(R+";",i,t,d-1):Cmt(Kh(R," ","")+";",i,t,d-2),c);break;case 59:R+=";";default:if(Bq(A=Amt(R,e,t,l,u,r,a,b,S=[],P=[],d),o),v===123)if(u===0)qq(R,e,A,A,S,o,d,a,P);else switch(h===99&&Av(R,3)===110?100:h){case 100:case 108:case 109:case 115:qq(n,A,A,i&&Bq(Amt(n,A,A,0,0,r,a,b,r,S=[],d),P),r,P,d,a,i?S:P);break;default:qq(R,A,A,A,[""],P,0,a,P)}}l=u=p=0,_=x=1,b=R="",d=s;break;case 58:d=1+NT(R),p=f;default:if(_<1){if(v==123)--_;else if(v==125&&_++==0&&nqn()==125)continue}switch(R+=Fq(v),v*_){case 38:x=u>0?1:(R+="\f",-1);break;case 44:a[l++]=(NT(R)-1)*x,x=1;break;case 64:kT()===45&&(R+=Vq(xS())),h=kT(),u=d=NT(b=R+=sqn(Hq())),v++;break;case 45:f===45&&NT(R)==2&&(_=0)}}return o}function Amt(n,e,t,i,r,o,s,a,c,l,u){for(var d=r-1,h=r===0?o:[""],p=Fxe(h),f=0,_=0,g=0;f<i;++f)for(var x=0,v=K8(n,d+1,d=ZVn(_=s[f])),b=n;x<p;++x)(b=Smt(_>0?h[x]+" "+v:Kh(v,/&\f/g,h[x])))&&(c[g++]=b);return jq(n,e,t,r===0?Dxe:a,c,l,u)}function cqn(n,e,t){return jq(n,e,t,bmt,Fq(tqn()),K8(n,2,-2),0)}function Cmt(n,e,t,i){return jq(n,e,t,$xe,K8(n,0,i),K8(n,i+1,-1),i)}function AI(n,e){for(var t="",i=Fxe(n),r=0;r<i;r++)t+=e(n[r],r,n,e)||"";return t}function lqn(n,e,t,i){switch(n.type){case WVn:if(n.children.length)break;case XVn:case $xe:return n.return=n.return||n.value;case bmt:return"";case wmt:return n.return=n.value+"{"+AI(n.children,i)+"}";case Dxe:n.value=n.props.join(",")}return NT(t=AI(n.children,i))?n.return=n.value+"{"+t+"}":""}function uqn(n){var e=Fxe(n);return function(t,i,r,o){for(var s="",a=0;a<e;a++)s+=n[a](t,i,r,o)||"";return s}}function dqn(n){return function(e){e.root||(e=e.return)&&n(e)}}function hqn(n){var e=Object.create(null);return function(t){return e[t]===void 0&&(e[t]=n(t)),e[t]}}var pqn=function(e,t,i){for(var r=0,o=0;r=o,o=kT(),r===38&&o===12&&(t[i]=1),!eL(o);)xS();return J8(e,Mw)},fqn=function(e,t){var i=-1,r=44;do switch(eL(r)){case 0:r===38&&kT()===12&&(t[i]=1),e[i]+=pqn(Mw-1,t,i);break;case 2:e[i]+=Vq(r);break;case 4:if(r===44){e[++i]=kT()===58?"&\f":"",t[i]=e[i].length;break}default:e[i]+=Fq(r)}while(r=xS());return e},mqn=function(e,t){return Mmt(fqn(Tmt(e),t))},Pmt=new WeakMap,_qn=function(e){if(!(e.type!=="rule"||!e.parent||e.length<1)){for(var t=e.value,i=e.parent,r=e.column===i.column&&e.line===i.line;i.type!=="rule";)if(i=i.parent,!i)return;if(!(e.props.length===1&&t.charCodeAt(0)!==58&&!Pmt.get(i))&&!r){Pmt.set(e,!0);for(var o=[],s=mqn(t,o),a=i.props,c=0,l=0;c<s.length;c++)for(var u=0;u<a.length;u++,l++)e.props[l]=o[c]?s[c].replace(/&\f/g,a[u]):a[u]+" "+s[c]}}},gqn=function(e){if(e.type==="decl"){var t=e.value;t.charCodeAt(0)===108&&t.charCodeAt(2)===98&&(e.return="",e.value="")}};function Rmt(n,e){switch(QVn(n,e)){case 5103:return Zh+"print-"+n+n;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 Zh+n+n;case 5349:case 4246:case 4810:case 6968:case 2756:return Zh+n+zq+n+fb+n+n;case 6828:case 4268:return Zh+n+fb+n+n;case 6165:return Zh+n+fb+"flex-"+n+n;case 5187:return Zh+n+Kh(n,/(\w+).+(:[^]+)/,Zh+"box-$1$2"+fb+"flex-$1$2")+n;case 5443:return Zh+n+fb+"flex-item-"+Kh(n,/flex-|-self/,"")+n;case 4675:return Zh+n+fb+"flex-line-pack"+Kh(n,/align-content|flex-|-self/,"")+n;case 5548:return Zh+n+fb+Kh(n,"shrink","negative")+n;case 5292:return Zh+n+fb+Kh(n,"basis","preferred-size")+n;case 6060:return Zh+"box-"+Kh(n,"-grow","")+Zh+n+fb+Kh(n,"grow","positive")+n;case 4554:return Zh+Kh(n,/([^-])(transform)/g,"$1"+Zh+"$2")+n;case 6187:return Kh(Kh(Kh(n,/(zoom-|grab)/,Zh+"$1"),/(image-set)/,Zh+"$1"),n,"")+n;case 5495:case 3959:return Kh(n,/(image-set\([^]*)/,Zh+"$1$`$1");case 4968:return Kh(Kh(n,/(.+:)(flex-)?(.*)/,Zh+"box-pack:$3"+fb+"flex-pack:$3"),/s.+-b[^;]+/,"justify")+Zh+n+n;case 4095:case 3583:case 4068:case 2532:return Kh(n,/(.+)-inline(.+)/,Zh+"$1$2")+n;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(NT(n)-1-e>6)switch(Av(n,e+1)){case 109:if(Av(n,e+4)!==45)break;case 102:return Kh(n,/(.+:)(.+)-([^]+)/,"$1"+Zh+"$2-$3$1"+zq+(Av(n,e+3)==108?"$3":"$2-$3"))+n;case 115:return~zxe(n,"stretch")?Rmt(Kh(n,"stretch","fill-available"),e)+n:n}break;case 4949:if(Av(n,e+1)!==115)break;case 6444:switch(Av(n,NT(n)-3-(~zxe(n,"!important")&&10))){case 107:return Kh(n,":",":"+Zh)+n;case 101:return Kh(n,/(.+:)([^;!]+)(;|!.+)?/,"$1"+Zh+(Av(n,14)===45?"inline-":"")+"box$3$1"+Zh+"$2$3$1"+fb+"$2box$3")+n}break;case 5936:switch(Av(n,e+11)){case 114:return Zh+n+fb+Kh(n,/[svh]\w+-[tblr]{2}/,"tb")+n;case 108:return Zh+n+fb+Kh(n,/[svh]\w+-[tblr]{2}/,"tb-rl")+n;case 45:return Zh+n+fb+Kh(n,/[svh]\w+-[tblr]{2}/,"lr")+n}return Zh+n+fb+n+n}return n}var yqn=function(e,t,i,r){if(e.length>-1&&!e.return)switch(e.type){case $xe:e.return=Rmt(e.value,e.length);break;case wmt:return AI([Q8(e,{value:Kh(e.value,"@","@"+Zh)})],r);case Dxe:if(e.length)return eqn(e.props,function(o){switch(JVn(o,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return AI([Q8(e,{props:[Kh(o,/:(read-\w+)/,":"+zq+"$1")]})],r);case"::placeholder":return AI([Q8(e,{props:[Kh(o,/:(plac\w+)/,":"+Zh+"input-$1")]}),Q8(e,{props:[Kh(o,/:(plac\w+)/,":"+zq+"$1")]}),Q8(e,{props:[Kh(o,/:(plac\w+)/,fb+"input-$1")]})],r)}return""})}},xqn=[yqn],vqn=function(e){var t=e.key;if(t==="css"){var i=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(i,function(_){var g=_.getAttribute("data-emotion");g.indexOf(" ")!==-1&&(document.head.appendChild(_),_.setAttribute("data-s",""))})}var r=e.stylisPlugins||xqn,o={},s,a=[];s=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+t+' "]'),function(_){for(var g=_.getAttribute("data-emotion").split(" "),x=1;x<g.length;x++)o[g[x]]=!0;a.push(_)});var c,l=[_qn,gqn];{var u,d=[lqn,dqn(function(_){u.insert(_)})],h=uqn(l.concat(r,d)),p=function(g){return AI(aqn(g),h)};c=function(g,x,v,b){u=v,p(g?g+"{"+x.styles+"}":x.styles),b&&(f.inserted[x.name]=!0)}}var f={key:t,sheet:new YVn({key:t,container:s,nonce:e.nonce,speedy:e.speedy,prepend:e.prepend,insertionPoint:e.insertionPoint}),nonce:e.nonce,inserted:o,registered:{},insert:c};return f.sheet.hydrate(a),f};function bqn(n){for(var e=0,t,i=0,r=n.length;r>=4;++i,r-=4)t=n.charCodeAt(i)&255|(n.charCodeAt(++i)&255)<<8|(n.charCodeAt(++i)&255)<<16|(n.charCodeAt(++i)&255)<<24,t=(t&65535)*1540483477+((t>>>16)*59797<<16),t^=t>>>24,e=(t&65535)*1540483477+((t>>>16)*59797<<16)^(e&65535)*1540483477+((e>>>16)*59797<<16);switch(r){case 3:e^=(n.charCodeAt(i+2)&255)<<16;case 2:e^=(n.charCodeAt(i+1)&255)<<8;case 1:e^=n.charCodeAt(i)&255,e=(e&65535)*1540483477+((e>>>16)*59797<<16)}return e^=e>>>13,e=(e&65535)*1540483477+((e>>>16)*59797<<16),((e^e>>>15)>>>0).toString(36)}var wqn={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},Sqn=/[A-Z]|^ms/g,Eqn=/_EMO_([^_]+?)_([^]*?)_EMO_/g,Imt=function(e){return e.charCodeAt(1)===45},Nmt=function(e){return e!=null&&typeof e!="boolean"},Uxe=hqn(function(n){return Imt(n)?n:n.replace(Sqn,"-$&").toLowerCase()}),kmt=function(e,t){switch(e){case"animation":case"animationName":if(typeof t=="string")return t.replace(Eqn,function(i,r,o){return tA={name:r,styles:o,next:tA},r})}return wqn[e]!==1&&!Imt(e)&&typeof t=="number"&&t!==0?t+"px":t};function Gq(n,e,t){if(t==null)return"";var i=t;if(i.__emotion_styles!==void 0)return i;switch(typeof t){case"boolean":return"";case"object":{var r=t;if(r.anim===1)return tA={name:r.name,styles:r.styles,next:tA},r.name;var o=t;if(o.styles!==void 0){var s=o.next;if(s!==void 0)for(;s!==void 0;)tA={name:s.name,styles:s.styles,next:tA},s=s.next;var a=o.styles+";";return a}return Tqn(n,e,t)}}var c=t;if(e==null)return c;var l=e[c];return l!==void 0?l:c}function Tqn(n,e,t){var i="";if(Array.isArray(t))for(var r=0;r<t.length;r++)i+=Gq(n,e,t[r])+";";else for(var o in t){var s=t[o];if(typeof s!="object"){var a=s;e!=null&&e[a]!==void 0?i+=o+"{"+e[a]+"}":Nmt(a)&&(i+=Uxe(o)+":"+kmt(o,a)+";")}else if(Array.isArray(s)&&typeof s[0]=="string"&&(e==null||e[s[0]]===void 0))for(var c=0;c<s.length;c++)Nmt(s[c])&&(i+=Uxe(o)+":"+kmt(o,s[c])+";");else{var l=Gq(n,e,s);switch(o){case"animation":case"animationName":{i+=Uxe(o)+":"+l+";";break}default:i+=o+"{"+l+"}"}}}return i}var Omt=/label:\s*([^\s;{]+)\s*(;|$)/g,tA;function jxe(n,e,t){if(n.length===1&&typeof n[0]=="object"&&n[0]!==null&&n[0].styles!==void 0)return n[0];var i=!0,r="";tA=void 0;var o=n[0];if(o==null||o.raw===void 0)i=!1,r+=Gq(t,e,o);else{var s=o;r+=s[0]}for(var a=1;a<n.length;a++)if(r+=Gq(t,e,n[a]),i){var c=o;r+=c[a]}Omt.lastIndex=0;for(var l="",u;(u=Omt.exec(r))!==null;)l+="-"+u[1];var d=bqn(r)+l;return{name:d,styles:r,next:tA}}function Lmt(n,e,t){var i="";return t.split(" ").forEach(function(r){n[r]!==void 0?e.push(n[r]+";"):r&&(i+=r+" ")}),i}var Mqn=function(e,t,i){var r=e.key+"-"+t.name;e.registered[r]===void 0&&(e.registered[r]=t.styles)},Aqn=function(e,t,i){Mqn(e,t);var r=e.key+"-"+t.name;if(e.inserted[t.name]===void 0){var o=t;do e.insert(t===o?"."+r:"",o,e.sheet,!0),o=o.next;while(o!==void 0)}};function Dmt(n,e){if(n.inserted[e.name]===void 0)return n.insert("",e,n.sheet,!0)}function $mt(n,e,t){var i=[],r=Lmt(n,i,t);return i.length<2?t:r+e(i)}var Cqn=function(e){var t=vqn(e);t.sheet.speedy=function(a){this.isSpeedy=a},t.compat=!0;var i=function(){for(var c=arguments.length,l=new Array(c),u=0;u<c;u++)l[u]=arguments[u];var d=jxe(l,t.registered,void 0);return Aqn(t,d),t.key+"-"+d.name},r=function(){for(var c=arguments.length,l=new Array(c),u=0;u<c;u++)l[u]=arguments[u];var d=jxe(l,t.registered),h="animation-"+d.name;return Dmt(t,{name:d.name,styles:"@keyframes "+h+"{"+d.styles+"}"}),h},o=function(){for(var c=arguments.length,l=new Array(c),u=0;u<c;u++)l[u]=arguments[u];var d=jxe(l,t.registered);Dmt(t,d)},s=function(){for(var c=arguments.length,l=new Array(c),u=0;u<c;u++)l[u]=arguments[u];return $mt(t.registered,i,Pqn(l))};return{css:i,cx:s,injectGlobal:o,keyframes:r,hydrate:function(c){c.forEach(function(l){t.inserted[l]=!0})},flush:function(){t.registered={},t.inserted={},t.sheet.flush()},sheet:t.sheet,cache:t,getRegisteredStyles:Lmt.bind(null,t.registered),merge:$mt.bind(null,t.registered,i)}},Pqn=function n(e){for(var t="",i=0;i<e.length;i++){var r=e[i];if(r!=null){var o=void 0;switch(typeof r){case"boolean":break;case"object":{if(Array.isArray(r))o=n(r);else{o="";for(var s in r)r[s]&&s&&(o&&(o+=" "),o+=s)}break}default:o=r}o&&(t&&(t+=" "),t+=o)}}return t},Rqn=Cqn({key:"css"}),CI=Rqn.css,Iqn=Object.create,zmt=Object.defineProperty,Nqn=Object.getOwnPropertyDescriptor,Fmt=Object.getOwnPropertyNames,kqn=Object.getPrototypeOf,Oqn=Object.prototype.hasOwnProperty,wh=(n,e)=>function(){return e||(0,n[Fmt(n)[0]])((e={exports:{}}).exports,e),e.exports},Lqn=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Fmt(e))!Oqn.call(n,r)&&r!==t&&zmt(n,r,{get:()=>e[r],enumerable:!(i=Nqn(e,r))||i.enumerable});return n},Bmt=(n,e,t)=>(t=n!=null?Iqn(kqn(n)):{},Lqn(zmt(t,"default",{value:n,enumerable:!0}),n)),Dqn=wh({"node_modules/svgson/dist/svgson.umd.js"(n,e){(function(t,i){typeof n=="object"&&typeof e<"u"?e.exports=i():typeof define=="function"&&define.amd?define(i):(t=typeof globalThis<"u"?globalThis:t||self,t.svgson=i())})(n,function(){var t=function(te){return te!=null&&(i(te)||r(te)||!!te._isBuffer)};function i(te){return!!te.constructor&&typeof te.constructor.isBuffer=="function"&&te.constructor.isBuffer(te)}function r(te){return typeof te.readFloatLE=="function"&&typeof te.slice=="function"&&i(te.slice(0,0))}var o=Object.prototype.toString,s=function(se){if(typeof se>"u")return"undefined";if(se===null)return"null";if(se===!0||se===!1||se instanceof Boolean)return"boolean";if(typeof se=="string"||se instanceof String)return"string";if(typeof se=="number"||se instanceof Number)return"number";if(typeof se=="function"||se instanceof Function)return"function";if(typeof Array.isArray<"u"&&Array.isArray(se))return"array";if(se instanceof RegExp)return"regexp";if(se instanceof Date)return"date";var he=o.call(se);return he==="[object RegExp]"?"regexp":he==="[object Date]"?"date":he==="[object Arguments]"?"arguments":he==="[object Error]"?"error":t(se)?"buffer":he==="[object Set]"?"set":he==="[object WeakSet]"?"weakset":he==="[object Map]"?"map":he==="[object WeakMap]"?"weakmap":he==="[object Symbol]"?"symbol":he==="[object Int8Array]"?"int8array":he==="[object Uint8Array]"?"uint8array":he==="[object Uint8ClampedArray]"?"uint8clampedarray":he==="[object Int16Array]"?"int16array":he==="[object Uint16Array]"?"uint16array":he==="[object Int32Array]"?"int32array":he==="[object Uint32Array]"?"uint32array":he==="[object Float32Array]"?"float32array":he==="[object Float64Array]"?"float64array":"object"};function a(te,se){return se={exports:{}},te(se,se.exports),se.exports}var c=a(function(te){(function(){function se(he,Me){if(typeof Me!="function")return he;var Ee={};for(var Pe in he)Object.prototype.hasOwnProperty.call(he,Pe)&&(Ee[Me(Pe,he[Pe])||Pe]=he[Pe]);return Ee}te.exports?te.exports=se:window.rename=se})()}),l=function te(se,he){var Me=s(se);if(Me!=="object"&&Me!=="array")throw new Error("expected an object");var Ee=[];Me==="object"&&(se=c(se,he),Ee={});for(var Pe in se)if(se.hasOwnProperty(Pe)){var Le=se[Pe];s(Le)==="object"||s(Le)==="array"?Ee[Pe]=te(Le,he):Ee[Pe]=Le}return Ee},u=a(function(te){var se=Object.prototype.hasOwnProperty,he="~";function Me(){}Object.create&&(Me.prototype=Object.create(null),new Me().__proto__||(he=!1));function Ee(Le,ke,ae){this.fn=Le,this.context=ke,this.once=ae||!1}function Pe(){this._events=new Me,this._eventsCount=0}Pe.prototype.eventNames=function(){var ke=[],ae,we;if(this._eventsCount===0)return ke;for(we in ae=this._events)se.call(ae,we)&&ke.push(he?we.slice(1):we);return Object.getOwnPropertySymbols?ke.concat(Object.getOwnPropertySymbols(ae)):ke},Pe.prototype.listeners=function(ke,ae){var we=he?he+ke:ke,xe=this._events[we];if(ae)return!!xe;if(!xe)return[];if(xe.fn)return[xe.fn];for(var je=0,nt=xe.length,ct=new Array(nt);je<nt;je++)ct[je]=xe[je].fn;return ct},Pe.prototype.emit=function(ke,ae,we,xe,je,nt){var ct=he?he+ke:ke;if(!this._events[ct])return!1;var Ce=this._events[ct],We=arguments.length,Ze,qe;if(Ce.fn){switch(Ce.once&&this.removeListener(ke,Ce.fn,void 0,!0),We){case 1:return Ce.fn.call(Ce.context),!0;case 2:return Ce.fn.call(Ce.context,ae),!0;case 3:return Ce.fn.call(Ce.context,ae,we),!0;case 4:return Ce.fn.call(Ce.context,ae,we,xe),!0;case 5:return Ce.fn.call(Ce.context,ae,we,xe,je),!0;case 6:return Ce.fn.call(Ce.context,ae,we,xe,je,nt),!0}for(qe=1,Ze=new Array(We-1);qe<We;qe++)Ze[qe-1]=arguments[qe];Ce.fn.apply(Ce.context,Ze)}else{var Xe=Ce.length,$e;for(qe=0;qe<Xe;qe++)switch(Ce[qe].once&&this.removeListener(ke,Ce[qe].fn,void 0,!0),We){case 1:Ce[qe].fn.call(Ce[qe].context);break;case 2:Ce[qe].fn.call(Ce[qe].context,ae);break;case 3:Ce[qe].fn.call(Ce[qe].context,ae,we);break;case 4:Ce[qe].fn.call(Ce[qe].context,ae,we,xe);break;default:if(!Ze)for($e=1,Ze=new Array(We-1);$e<We;$e++)Ze[$e-1]=arguments[$e];Ce[qe].fn.apply(Ce[qe].context,Ze)}}return!0},Pe.prototype.on=function(ke,ae,we){var xe=new Ee(ae,we||this),je=he?he+ke:ke;return this._events[je]?this._events[je].fn?this._events[je]=[this._events[je],xe]:this._events[je].push(xe):(this._events[je]=xe,this._eventsCount++),this},Pe.prototype.once=function(ke,ae,we){var xe=new Ee(ae,we||this,!0),je=he?he+ke:ke;return this._events[je]?this._events[je].fn?this._events[je]=[this._events[je],xe]:this._events[je].push(xe):(this._events[je]=xe,this._eventsCount++),this},Pe.prototype.removeListener=function(ke,ae,we,xe){var je=he?he+ke:ke;if(!this._events[je])return this;if(!ae)return--this._eventsCount===0?this._events=new Me:delete this._events[je],this;var nt=this._events[je];if(nt.fn)nt.fn===ae&&(!xe||nt.once)&&(!we||nt.context===we)&&(--this._eventsCount===0?this._events=new Me:delete this._events[je]);else{for(var ct=0,Ce=[],We=nt.length;ct<We;ct++)(nt[ct].fn!==ae||xe&&!nt[ct].once||we&&nt[ct].context!==we)&&Ce.push(nt[ct]);Ce.length?this._events[je]=Ce.length===1?Ce[0]:Ce:--this._eventsCount===0?this._events=new Me:delete this._events[je]}return this},Pe.prototype.removeAllListeners=function(ke){var ae;return ke?(ae=he?he+ke:ke,this._events[ae]&&(--this._eventsCount===0?this._events=new Me:delete this._events[ae])):(this._events=new Me,this._eventsCount=0),this},Pe.prototype.off=Pe.prototype.removeListener,Pe.prototype.addListener=Pe.prototype.on,Pe.prototype.setMaxListeners=function(){return this},Pe.prefixed=he,Pe.EventEmitter=Pe,te.exports=Pe});function d(te,se,he){return se in te?Object.defineProperty(te,se,{value:he,enumerable:!0,configurable:!0,writable:!0}):te[se]=he,te}var h=function(){},p={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"},f={lt:"action-lt",gt:"action-gt",space:"action-space",equal:"action-equal",quote:"action-quote",slash:"action-slash",char:"action-char",error:"action-error"},_={text:"text",openTag:"open-tag",closeTag:"close-tag",attributeName:"attribute-name",attributeValue:"attribute-value"},g={" ":f.space," ":f.space,"\n":f.space,"\r":f.space,"<":f.lt,">":f.gt,'"':f.quote,"'":f.quote,"=":f.equal,"/":f.slash},x=function(se){return g[se]||f.char},v=function(se){var he,Me,Ee,Pe,Le,ke,ae,we,xe,je;se=Object.assign({debug:!1},se);var nt=new u,ct=p.data,Ce="",We="",Ze="",qe="",Xe="",$e="",Ae=function(Ke,et){if(!(We[0]==="?"||We[0]==="!")){var pt={type:Ke,value:et};se.debug&&console.log("emit:",pt),nt.emit("data",pt)}};nt.stateMachine=(je={},d(je,p.data,(he={},d(he,f.lt,function(){Ce.trim()&&Ae(_.text,Ce),We="",Xe=!1,ct=p.tagBegin}),d(he,f.char,function(De){Ce+=De}),he)),d(je,p.cdata,d({},f.char,function(De){Ce+=De,Ce.substr(-3)==="]]>"&&(Ae(_.text,Ce.slice(0,-3)),Ce="",ct=p.data)})),d(je,p.tagBegin,(Me={},d(Me,f.space,h),d(Me,f.char,function(De){We=De,ct=p.tagName}),d(Me,f.slash,function(){We="",Xe=!0}),Me)),d(je,p.tagName,(Ee={},d(Ee,f.space,function(){Xe?ct=p.tagEnd:(ct=p.attributeNameStart,Ae(_.openTag,We))}),d(Ee,f.gt,function(){Ae(Xe?_.closeTag:_.openTag,We),Ce="",ct=p.data}),d(Ee,f.slash,function(){ct=p.tagEnd,Ae(_.openTag,We)}),d(Ee,f.char,function(De){We+=De,We==="![CDATA["&&(ct=p.cdata,Ce="",We="")}),Ee)),d(je,p.tagEnd,(Pe={},d(Pe,f.gt,function(){Ae(_.closeTag,We),Ce="",ct=p.data}),d(Pe,f.char,h),Pe)),d(je,p.attributeNameStart,(Le={},d(Le,f.char,function(De){Ze=De,ct=p.attributeName}),d(Le,f.gt,function(){Ce="",ct=p.data}),d(Le,f.space,h),d(Le,f.slash,function(){Xe=!0,ct=p.tagEnd}),Le)),d(je,p.attributeName,(ke={},d(ke,f.space,function(){ct=p.attributeNameEnd}),d(ke,f.equal,function(){Ae(_.attributeName,Ze),ct=p.attributeValueBegin}),d(ke,f.gt,function(){qe="",Ae(_.attributeName,Ze),Ae(_.attributeValue,qe),Ce="",ct=p.data}),d(ke,f.slash,function(){Xe=!0,qe="",Ae(_.attributeName,Ze),Ae(_.attributeValue,qe),ct=p.tagEnd}),d(ke,f.char,function(De){Ze+=De}),ke)),d(je,p.attributeNameEnd,(ae={},d(ae,f.space,h),d(ae,f.equal,function(){Ae(_.attributeName,Ze),ct=p.attributeValueBegin}),d(ae,f.gt,function(){qe="",Ae(_.attributeName,Ze),Ae(_.attributeValue,qe),Ce="",ct=p.data}),d(ae,f.char,function(De){qe="",Ae(_.attributeName,Ze),Ae(_.attributeValue,qe),Ze=De,ct=p.attributeName}),ae)),d(je,p.attributeValueBegin,(we={},d(we,f.space,h),d(we,f.quote,function(De){$e=De,qe="",ct=p.attributeValue}),d(we,f.gt,function(){qe="",Ae(_.attributeValue,qe),Ce="",ct=p.data}),d(we,f.char,function(De){$e="",qe=De,ct=p.attributeValue}),we)),d(je,p.attributeValue,(xe={},d(xe,f.space,function(De){$e?qe+=De:(Ae(_.attributeValue,qe),ct=p.attributeNameStart)}),d(xe,f.quote,function(De){$e===De?(Ae(_.attributeValue,qe),ct=p.attributeNameStart):qe+=De}),d(xe,f.gt,function(De){$e?qe+=De:(Ae(_.attributeValue,qe),Ce="",ct=p.data)}),d(xe,f.slash,function(De){$e?qe+=De:(Ae(_.attributeValue,qe),Xe=!0,ct=p.tagEnd)}),d(xe,f.char,function(De){qe+=De}),xe)),je);var Ge=function(Ke){se.debug&&console.log(ct,Ke);var et=nt.stateMachine[ct],pt=et[x(Ke)]||et[f.error]||et[f.char];pt(Ke)};return nt.write=function(De){for(var Ke=De.length,et=0;et<Ke;et++)Ge(De[et])},nt},b={State:p,Action:f,Type:_,create:v},S=b.Type,P={element:"element",text:"text"},A=function(se){return Object.assign({name:"",type:P.element,value:"",parent:null,attributes:{},children:[]},se)},R=function(se){se=Object.assign({stream:!1,parentNodes:!0,doneEvent:"done",tagPrefix:"tag:",emitTopLevelOnly:!1,debug:!1},se);var he=void 0,Me=void 0,Ee=void 0,Pe=void 0,Le=new u,ke=function(we){switch(we.type){case S.openTag:if(Ee===null)Ee=Me,Ee.name=we.value;else{var xe=A({name:we.value,parent:Ee});Ee.children.push(xe),Ee=xe}break;case S.closeTag:var je=Ee.parent;if(se.parentNodes||(Ee.parent=null),Ee.name!==we.value)break;se.stream&&je===Me&&(Me.children=[],Ee.parent=null),(!se.emitTopLevelOnly||je===Me)&&(Le.emit(se.tagPrefix+Ee.name,Ee),Le.emit("tag",Ee.name,Ee)),Ee===Me&&(he.removeAllListeners("data"),Le.emit(se.doneEvent,Ee),Me=null),Ee=je;break;case S.text:Ee&&Ee.children.push(A({type:P.text,value:we.value,parent:se.parentNodes?Ee:null}));break;case S.attributeName:Pe=we.value,Ee.attributes[Pe]="";break;case S.attributeValue:Ee.attributes[Pe]=we.value;break}};return Le.reset=function(){he=b.create({debug:se.debug}),he.on("data",ke),Me=A(),Ee=null,Pe="",Le.parse=he.write},Le.reset(),Le},T=function(se,he){he=Object.assign({},he,{stream:!1,tagPrefix:":"});var Me=R(he),Ee=void 0;return Me.on("done",function(Pe){Ee=Pe}),Me.parse(se),Ee},I={parseSync:T},C=I.parseSync,z=function(se){var he=C("<root>".concat(se,"</root>"),{parentNodes:!1}),Me=he.children&&he.children.length>0&&he.children.every(function(Ee){return Ee.name==="svg"});if(Me)return he.children.length===1?he.children[0]:he.children;throw Error("nothing to parse")},O=function(se){return l(se,function(he){return V(he)?he:j(he)})},j=function(se){return se.replace(/[-|:]([a-z])/gi,function(he,Me){return Me.toUpperCase()})},V=function(se){return/^(data|aria)(-\w+)/.test(se)},G=function(se){if(se){var he=String(se);return/[&<>]/.test(he)?"<![CDATA[".concat(he.replace(/]]>/,"]]]]><![CDATA[>"),"]]>"):he}return""},Z=function(se){return String(se).replace(/&/g,"&amp;").replace(/'/g,"&apos;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")},K=function(se){var he=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},Me=he.transformNode,Ee=Me===void 0?function(ae){return ae}:Me,Pe=he.camelcase,Le=Pe===void 0?!1:Pe,ke=function(we){var xe;return xe=Ee(we),Le&&(xe=O(xe)),xe};return ke(z(se))};function oe(){for(var te=arguments.length,se=new Array(te),he=0;he<te;he++)se[he]=arguments[he];return new Promise(function(Me,Ee){try{var Pe=K.apply(void 0,se);Me(Pe)}catch(Le){Ee(Le)}})}var ce=function te(se){var he=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},Me=he.transformAttr,Ee=Me===void 0?function(ct,Ce,We){return"".concat(ct,'="').concat(We(Ce),'"')}:Me,Pe=he.transformNode,Le=Pe===void 0?function(ct){return ct}:Pe,ke=he.selfClose,ae=ke===void 0?!0:ke;if(Array.isArray(se))return se.map(function(ct){return te(ct,{transformAttr:Ee,selfClose:ae,transformNode:Le})}).join("");var we=Le(se);if(we.type==="text")return G(we.value);var xe="";for(var je in we.attributes){var nt=Ee(je,we.attributes[je],Z,we.name);xe+=nt?" ".concat(nt):""}return we.children&&we.children.length>0||!ae?"<".concat(we.name).concat(xe,">").concat(te(we.children,{transformAttr:Ee,transformNode:Le,selfClose:ae}),"</").concat(we.name,">"):"<".concat(we.name).concat(xe,"/>")},me=Object.assign({},{parse:oe,parseSync:K,stringify:ce});return me})}}),Hxe=wh({"node_modules/js-beautify/js/src/core/output.js"(n,e){function t(o){this.__parent=o,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=[]}t.prototype.clone_empty=function(){var o=new t(this.__parent);return o.set_indent(this.__indent_count,this.__alignment_count),o},t.prototype.item=function(o){return o<0?this.__items[this.__items.length+o]:this.__items[o]},t.prototype.has_match=function(o){for(var s=this.__items.length-1;s>=0;s--)if(this.__items[s].match(o))return!0;return!1},t.prototype.set_indent=function(o,s){this.is_empty()&&(this.__indent_count=o||0,this.__alignment_count=s||0,this.__character_count=this.__parent.get_indent_size(this.__indent_count,this.__alignment_count))},t.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)},t.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},t.prototype._allow_wrap=function(){if(this._should_wrap()){this.__parent.add_new_line();var o=this.__parent.current_line;return o.set_indent(this.__wrap_point_indent_count,this.__wrap_point_alignment_count),o.__items=this.__items.slice(this.__wrap_point_index),this.__items=this.__items.slice(0,this.__wrap_point_index),o.__character_count+=this.__character_count-this.__wrap_point_character_count,this.__character_count=this.__wrap_point_character_count,o.__items[0]===" "&&(o.__items.splice(0,1),o.__character_count-=1),!0}return!1},t.prototype.is_empty=function(){return this.__items.length===0},t.prototype.last=function(){return this.is_empty()?null:this.__items[this.__items.length-1]},t.prototype.push=function(o){this.__items.push(o);var s=o.lastIndexOf(`
5465
5465
  `);s!==-1?this.__character_count=o.length-s:this.__character_count+=o.length},t.prototype.pop=function(){var o=null;return this.is_empty()||(o=this.__items.pop(),this.__character_count-=o.length),o},t.prototype._remove_indent=function(){this.__indent_count>0&&(this.__indent_count-=1,this.__character_count-=this.__parent.indent_size)},t.prototype._remove_wrap_indent=function(){this.__wrap_point_indent_count>0&&(this.__wrap_point_indent_count-=1)},t.prototype.trim=function(){for(;this.last()===" ";)this.__items.pop(),this.__character_count-=1},t.prototype.toString=function(){var o="";return this.is_empty()?this.__parent.indent_empty_lines&&(o=this.__parent.get_indent_string(this.__indent_count)):(o=this.__parent.get_indent_string(this.__indent_count,this.__alignment_count),o+=this.__items.join("")),o};function i(o,s){this.__cache=[""],this.__indent_size=o.indent_size,this.__indent_string=o.indent_char,o.indent_with_tabs||(this.__indent_string=new Array(o.indent_size+1).join(o.indent_char)),s=s||"",o.indent_level>0&&(s=new Array(o.indent_level+1).join(this.__indent_string)),this.__base_string=s,this.__base_string_length=s.length}i.prototype.get_indent_size=function(o,s){var a=this.__base_string_length;return s=s||0,o<0&&(a=0),a+=o*this.__indent_size,a+=s,a},i.prototype.get_indent_string=function(o,s){var a=this.__base_string;return s=s||0,o<0&&(o=0,a=""),s+=o*this.__indent_size,this.__ensure_cache(s),a+=this.__cache[s],a},i.prototype.__ensure_cache=function(o){for(;o>=this.__cache.length;)this.__add_column()},i.prototype.__add_column=function(){var o=this.__cache.length,s=0,a="";this.__indent_size&&o>=this.__indent_size&&(s=Math.floor(o/this.__indent_size),o-=s*this.__indent_size,a=new Array(s+1).join(this.__indent_string)),o&&(a+=new Array(o+1).join(" ")),this.__cache.push(a)};function r(o,s){this.__indent_cache=new i(o,s),this.raw=!1,this._end_with_newline=o.end_with_newline,this.indent_size=o.indent_size,this.wrap_line_length=o.wrap_line_length,this.indent_empty_lines=o.indent_empty_lines,this.__lines=[],this.previous_line=null,this.current_line=null,this.next_line=new t(this),this.space_before_token=!1,this.non_breaking_space=!1,this.previous_token_wrapped=!1,this.__add_outputline()}r.prototype.__add_outputline=function(){this.previous_line=this.current_line,this.current_line=this.next_line.clone_empty(),this.__lines.push(this.current_line)},r.prototype.get_line_number=function(){return this.__lines.length},r.prototype.get_indent_string=function(o,s){return this.__indent_cache.get_indent_string(o,s)},r.prototype.get_indent_size=function(o,s){return this.__indent_cache.get_indent_size(o,s)},r.prototype.is_empty=function(){return!this.previous_line&&this.current_line.is_empty()},r.prototype.add_new_line=function(o){return this.is_empty()||!o&&this.just_added_newline()?!1:(this.raw||this.__add_outputline(),!0)},r.prototype.get_code=function(o){this.trim(!0);var s=this.current_line.pop();s&&(s[s.length-1]===`
5466
5466
  `&&(s=s.replace(/\n+$/g,"")),this.current_line.push(s)),this._end_with_newline&&this.__add_outputline();var a=this.__lines.join(`
5467
5467
  `);return o!==`
@@ -5507,7 +5507,7 @@ You passed in: '`+this.raw_options[o]+"'");return c},t.prototype._is_valid_selec
5507
5507
  `);break}}return s}}}),Qqn=wh({"node_modules/pretty/index.js"(n,e){var t=Gqn(),i=Kqn(),r=Xmt(),o={unformatted:["code","pre","em","strong","span"],indent_inner_html:!0,indent_char:" ",indent_size:2,sep:`
5508
5508
  `};e.exports=function(c,l){var u=r({},o,l);return c=t.html(c,u),u.ocd===!0?(u.newlines&&(u.sep=u.newlines),s(c,u)):c};function s(a,c){return i(a,c).replace(/^\s+/g,"").replace(/\s+$/g,`
5509
5509
  `).replace(/(\s*<!--)/g,`
5510
- $1`).replace(/>(\s*)(?=<!--\s*\/)/g,"> ")}}});function Wmt(n,e,t){if(!e||!t)return;let i=n.get(e);i||(i=new Set,n.set(e,i)),i.add(t);let r=n.get(t);r||(r=new Set,n.set(t,r)),r.add(e)}function Jqn(n,e){if(!e.subcircuit_id&&!e.source_group_id)return[...n];const t=new Map;for(const s of n){const a=s[`${s.type}_id`];typeof a=="string"&&t.set(a,s)}const i=new Map;for(const s of n){const a=Object.entries(s);for(const[c,l]of a)if(c!=="parent_source_group_id"){if(c.endsWith("_id")&&typeof l=="string"){const u=t.get(l);Wmt(i,s,u)}else if(c.endsWith("_ids")&&Array.isArray(l)){for(const u of l)if(typeof u=="string"){const d=t.get(u);Wmt(i,s,d)}}}}const r=[],o=new Set;for(const s of n)(e.subcircuit_id&&s.subcircuit_id===e.subcircuit_id||e.source_group_id&&(s.source_group_id===e.source_group_id||Array.isArray(s.member_source_group_ids)&&s.member_source_group_ids.includes(e.source_group_id)))&&(r.push(s),o.add(s));for(;r.length>0;){const s=r.shift(),a=i.get(s);if(a)for(const c of a)o.has(c)||(o.add(c),r.push(c))}return n.filter(s=>o.has(s))}var Zq=(n,e={})=>{const t=n;let i=t._internal_store;if(!i){i={counts:{},editCount:0},t._internal_store=i;for(const o of t){const s=o.type,a=o[`${s}_id`];if(!a)continue;const c=Number.parseInt(a.split("_").pop());Number.isNaN(c)||(i.counts[s]=Math.max(i.counts[s]??0,c))}}return new Proxy({},{get:(o,s)=>{if(s==="toArray")return()=>(t.editCount=i.editCount,t);if(s==="editCount")return i.editCount;if(s==="subtree")return c=>Zq(Jqn(t,c),e);const a=s;return{get:c=>t.find(l=>l.type===a&&l[`${a}_id`]===c),getUsing:c=>{const l=Object.keys(c);if(l.length!==1)throw new Error("getUsing requires exactly one key, e.g. { pcb_component_id }");const u=l[0],d=u.replace("_id",""),h=t.find(p=>p.type===d&&p[u]===c[u]);return h?t.find(p=>p.type===a&&p[`${a}_id`]===h[`${a}_id`]):null},getWhere:c=>{const l=Object.keys(c);return t.find(u=>u.type===a&&l.every(d=>u[d]===c[d]))},list:c=>{const l=c?Object.keys(c):[];return t.filter(u=>u.type===a&&l.every(d=>u[d]===c[d]))},insert:c=>{i.counts[a]??=-1,i.counts[a]++;const l=i.counts[a],u={type:a,[`${a}_id`]:`${a}_${l}`,...c};return e.validateInserts&&(imt[a]??wxe).parse(u),t.push(u),i.editCount++,u},delete:c=>{const l=t.find(u=>u[`${a}_id`]===c);l&&(t.splice(t.indexOf(l),1),i.editCount++)},update:(c,l)=>{const u=t.find(d=>d.type===a&&d[`${a}_id`]===c);return u?(Object.assign(u,l),i.editCount++,u):null},select:c=>{if(a==="source_component")return t.find(l=>l.type==="source_component"&&l.name===c.replace(/\./g,""));if(a==="pcb_port"||a==="source_port"||a==="schematic_port"){const[l,u]=c.replace(/\./g,"").split(/[\s\>]+/),d=t.find(p=>p.type==="source_component"&&p.name===l);if(!d)return null;const h=t.find(p=>p.type==="source_port"&&p.source_component_id===d.source_component_id&&(p.name===u||(p.port_hints??[]).includes(u)));if(!h)return null;if(a==="source_port")return h;if(a==="pcb_port")return t.find(p=>p.type==="pcb_port"&&p.source_port_id===h.source_port_id);if(a==="schematic_port")return t.find(p=>p.type==="schematic_port"&&p.source_port_id===h.source_port_id)}}}}})};Zq.unparsed=Zq;var nA=Zq;function Yxe(n){const e=n.type;return`${e}:${n[`${e}_id`]}`}var Zmt=(n,e={})=>{let t=n._internal_store_indexed;if(!t){t={counts:{},editCount:0,indexes:{}};for(const s of n){const a=s.type,c=s[`${a}_id`];if(!c)continue;const l=Number.parseInt(c.split("_").pop()||"");Number.isNaN(l)||(t.counts[a]=Math.max(t.counts[a]??0,l))}const r=e.indexConfig||{},o=t.indexes;if(r.byId&&(o.byId=new Map),r.byType&&(o.byType=new Map),r.byRelation&&(o.byRelation=new Map),r.bySubcircuit&&(o.bySubcircuit=new Map),r.byCustomField&&r.byCustomField.length>0){o.byCustomField=new Map;for(const s of r.byCustomField)o.byCustomField.set(s,new Map)}for(const s of n){if(r.byId){const a=Yxe(s);o.byId.set(a,s)}if(r.byType){const a=o.byType.get(s.type)||[];a.push(s),o.byType.set(s.type,a)}if(r.byRelation){const a=Object.entries(s);for(const[c,l]of a)if(c.endsWith("_id")&&c!==`${s.type}_id`&&typeof l=="string"){const u=o.byRelation.get(c)||new Map,d=u.get(l)||[];d.push(s),u.set(l,d),o.byRelation.set(c,u)}}if(r.bySubcircuit&&"subcircuit_id"in s){const a=s.subcircuit_id;if(a&&typeof a=="string"){const c=o.bySubcircuit.get(a)||[];c.push(s),o.bySubcircuit.set(a,c)}}if(r.byCustomField&&o.byCustomField){for(const a of r.byCustomField)if(a in s){const c=s[a];if(c!==void 0&&(typeof c=="string"||typeof c=="number")){const l=String(c),u=o.byCustomField.get(a),d=u.get(l)||[];d.push(s),u.set(l,d)}}}}n._internal_store_indexed=t}return new Proxy({},{get:(r,o)=>{if(o==="toArray")return()=>(n.editCount=t.editCount,n);if(o==="editCount")return t.editCount;const s=o;return{get:a=>{const c=e.indexConfig||{};return c.byId&&t.indexes.byId?t.indexes.byId.get(`${s}:${a}`)||null:c.byType&&t.indexes.byType?(t.indexes.byType.get(s)||[]).find(u=>u[`${s}_id`]===a)||null:n.find(l=>l.type===s&&l[`${s}_id`]===a)||null},getUsing:a=>{const c=e.indexConfig||{},l=Object.keys(a);if(l.length!==1)throw new Error("getUsing requires exactly one key, e.g. { pcb_component_id }");const u=l[0],d=u.replace("_id","");if(c.byRelation&&t.indexes.byRelation){const p=t.indexes.byRelation.get(u);if(p){const _=(p.get(a[u])||[]).find(x=>x.type===d);if(!_)return null;const g=_[`${s}_id`];return c.byId&&t.indexes.byId?t.indexes.byId.get(`${s}:${g}`)||null:c.byType&&t.indexes.byType?(t.indexes.byType.get(s)||[]).find(v=>v[`${s}_id`]===g)||null:n.find(x=>x.type===s&&x[`${s}_id`]===g)||null}}const h=n.find(p=>p.type===d&&p[u]===a[u]);return h&&n.find(p=>p.type===s&&p[`${s}_id`]===h[`${s}_id`])||null},getWhere:a=>{const c=e.indexConfig||{},l=Object.keys(a);if(l.length===1&&c.byCustomField&&t.indexes.byCustomField){const u=l[0],d=t.indexes.byCustomField.get(u);if(d){const h=String(a[u]);return(d.get(h)||[]).find(f=>f.type===s)||null}}if("subcircuit_id"in a&&c.bySubcircuit&&t.indexes.bySubcircuit){const u=a.subcircuit_id;return(t.indexes.bySubcircuit.get(u)||[]).find(h=>h.type===s&&l.every(p=>h[p]===a[p]))||null}return c.byType&&t.indexes.byType?(t.indexes.byType.get(s)||[]).find(d=>l.every(h=>d[h]===a[h]))||null:n.find(u=>u.type===s&&l.every(d=>u[d]===a[d]))||null},list:a=>{const c=e.indexConfig||{},l=a?Object.keys(a):[];if(l.length===0&&c.byType&&t.indexes.byType)return t.indexes.byType.get(s)||[];if(l.length===1&&l[0]==="subcircuit_id"&&c.bySubcircuit&&t.indexes.bySubcircuit){const d=a.subcircuit_id;return(t.indexes.bySubcircuit.get(d)||[]).filter(p=>p.type===s)}let u;return c.byType&&t.indexes.byType?u=t.indexes.byType.get(s)||[]:u=n.filter(d=>d.type===s),l.length>0?u.filter(d=>l.every(h=>d[h]===a[h])):u},insert:a=>{t.counts[s]??=-1,t.counts[s]++;const c=t.counts[s],l={type:s,[`${s}_id`]:`${s}_${c}`,...a};e.validateInserts&&(imt[s]??wxe).parse(l),n.push(l),t.editCount++;const u=e.indexConfig||{};if(u.byId&&t.indexes.byId){const d=Yxe(l);t.indexes.byId.set(d,l)}if(u.byType&&t.indexes.byType){const d=t.indexes.byType.get(s)||[];d.push(l),t.indexes.byType.set(s,d)}if(u.byRelation&&t.indexes.byRelation){const d=Object.entries(l);for(const[h,p]of d)if(h.endsWith("_id")&&h!==`${l.type}_id`&&typeof p=="string"){const f=t.indexes.byRelation.get(h)||new Map,_=f.get(p)||[];_.push(l),f.set(p,_),t.indexes.byRelation.set(h,f)}}if(u.bySubcircuit&&t.indexes.bySubcircuit&&"subcircuit_id"in l){const d=l.subcircuit_id;if(d&&typeof d=="string"){const h=t.indexes.bySubcircuit.get(d)||[];h.push(l),t.indexes.bySubcircuit.set(d,h)}}if(u.byCustomField&&t.indexes.byCustomField){for(const d of u.byCustomField)if(d in l){const h=l[d];if(h!==void 0&&(typeof h=="string"||typeof h=="number")){const p=String(h),f=t.indexes.byCustomField.get(d),_=f.get(p)||[];_.push(l),f.set(p,_)}}}return l},delete:a=>{const c=e.indexConfig||{};let l;if(c.byId&&t.indexes.byId?l=t.indexes.byId.get(`${s}:${a}`):c.byType&&t.indexes.byType?l=(t.indexes.byType.get(s)||[]).find(h=>h[`${s}_id`]===a):l=n.find(d=>d[`${s}_id`]===a),!l)return;const u=n.indexOf(l);if(u>=0&&(n.splice(u,1),t.editCount++),c.byId&&t.indexes.byId){const d=Yxe(l);t.indexes.byId.delete(d)}if(c.byType&&t.indexes.byType){const h=(t.indexes.byType.get(s)||[]).filter(p=>p[`${s}_id`]!==a);t.indexes.byType.set(s,h)}if(c.byRelation&&t.indexes.byRelation)for(const[d,h]of t.indexes.byRelation.entries())for(const[p,f]of h.entries()){const _=f.filter(g=>g!==l);_.length===0?h.delete(p):h.set(p,_)}if(c.bySubcircuit&&t.indexes.bySubcircuit&&"subcircuit_id"in l){const d=l.subcircuit_id;if(d){const p=(t.indexes.bySubcircuit.get(d)||[]).filter(f=>f!==l);p.length===0?t.indexes.bySubcircuit.delete(d):t.indexes.bySubcircuit.set(d,p)}}if(c.byCustomField&&t.indexes.byCustomField)for(const d of t.indexes.byCustomField.values())for(const[h,p]of d.entries()){const f=p.filter(_=>_!==l);f.length===0?d.delete(h):d.set(h,f)}},update:(a,c)=>{const l=e.indexConfig||{};let u;if(l.byId&&t.indexes.byId?u=t.indexes.byId.get(`${s}:${a}`):l.byType&&t.indexes.byType?u=(t.indexes.byType.get(s)||[]).find(h=>h[`${s}_id`]===a):u=n.find(d=>d.type===s&&d[`${s}_id`]===a),!u)return null;if(l.byRelation&&t.indexes.byRelation){const d=Object.entries(u);for(const[h,p]of d)if(h.endsWith("_id")&&h!==`${u.type}_id`&&typeof p=="string"&&h in c&&c[h]!==p){const f=t.indexes.byRelation.get(h);if(f){const g=(f.get(p)||[]).filter(x=>x!==u);g.length===0?f.delete(p):f.set(p,g)}}}if(l.bySubcircuit&&t.indexes.bySubcircuit&&"subcircuit_id"in u&&"subcircuit_id"in c){const d=u.subcircuit_id,h=c.subcircuit_id;if(d!==h){const f=(t.indexes.bySubcircuit.get(d)||[]).filter(_=>_!==u);f.length===0?t.indexes.bySubcircuit.delete(d):t.indexes.bySubcircuit.set(d,f)}}if(l.byCustomField&&t.indexes.byCustomField){for(const d of l.byCustomField)if(d in u&&d in c&&u[d]!==c[d]){const h=t.indexes.byCustomField.get(d);if(h){const p=String(u[d]),_=(h.get(p)||[]).filter(g=>g!==u);_.length===0?h.delete(p):h.set(p,_)}}}if(Object.assign(u,c),t.editCount++,l.byRelation&&t.indexes.byRelation){const d=Object.entries(u);for(const[h,p]of d)if(h.endsWith("_id")&&h!==`${u.type}_id`&&typeof p=="string"&&h in c){const f=t.indexes.byRelation.get(h)||new Map,_=f.get(p)||[];_.includes(u)||(_.push(u),f.set(p,_),t.indexes.byRelation.set(h,f))}}if(l.bySubcircuit&&t.indexes.bySubcircuit&&"subcircuit_id"in u&&"subcircuit_id"in c){const d=u.subcircuit_id;if(d&&typeof d=="string"){const h=t.indexes.bySubcircuit.get(d)||[];h.includes(u)||(h.push(u),t.indexes.bySubcircuit.set(d,h))}}if(l.byCustomField&&t.indexes.byCustomField){for(const d of l.byCustomField)if(d in u&&d in c){const h=u[d];if(h!==void 0&&(typeof h=="string"||typeof h=="number")){const p=String(h),f=t.indexes.byCustomField.get(d),_=f.get(p)||[];_.includes(u)||(_.push(u),f.set(p,_))}}}return u},select:a=>{if(s==="source_component")return n.find(c=>c.type==="source_component"&&c.name===a.replace(/\./g,""))||null;if(s==="pcb_port"||s==="source_port"||s==="schematic_port"){const[c,l]=a.replace(/\./g,"").split(/[\s\>]+/),u=n.find(h=>h.type==="source_component"&&h.name===c);if(!u)return null;const d=n.find(h=>h.type==="source_port"&&h.source_component_id===u.source_component_id&&(h.name===l||(h.port_hints??[]).includes(l)));if(!d)return null;if(s==="source_port")return d;if(s==="pcb_port")return n.find(h=>h.type==="pcb_port"&&h.source_port_id===d.source_port_id)||null;if(s==="schematic_port")return n.find(h=>h.type==="schematic_port"&&h.source_port_id===d.source_port_id)||null}return null}}}})};Zmt.unparsed=Zmt;var eGn=n=>{const e=n.type;return n[`${e}_id`]},tGn=n=>{let e=Number.POSITIVE_INFINITY,t=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY,r=Number.NEGATIVE_INFINITY;for(const o of n){if(!o.type.startsWith("pcb_"))continue;let s,a,c,l;if("x"in o&&"y"in o&&(s=Number(o.x),a=Number(o.y)),"outer_diameter"in o&&(c=Number(o.outer_diameter),l=Number(o.outer_diameter)),"width"in o&&(c=Number(o.width)),"height"in o&&(l=Number(o.height)),"center"in o&&(s=o.center.x,a=o.center.y),s!==void 0&&a!==void 0)e=Math.min(e,s),t=Math.min(t,a),i=Math.max(i,s),r=Math.max(r,a),c!==void 0&&l!==void 0&&(e=Math.min(e,s-c/2),t=Math.min(t,a-l/2),i=Math.max(i,s+c/2),r=Math.max(r,a+l/2)),"radius"in o&&(e=Math.min(e,s-o.radius),t=Math.min(t,a-o.radius),i=Math.max(i,s+o.radius),r=Math.max(r,a+o.radius));else if(o.type==="pcb_trace")for(const u of o.route)e=Math.min(e,u.x),t=Math.min(t,u.y),i=Math.max(i,u.x),r=Math.max(r,u.y)}return{minX:e,minY:t,maxX:i,maxY:r}};function nGn(n){let e=0;if(n.length==0)return e;for(var t=0;t<n.length;t++){var i=n.charCodeAt(t);e=(e<<5)-e+i,e=e&e}return Math.abs(e)}var Kmt=[["#69d2e7","#a7dbd8","#e0e4cc","#f38630","#fa6900"],["#fe4365","#fc9d9a","#f9cdad","#c8c8a9","#83af9b"],["#ecd078","#d95b43","#c02942","#542437","#53777a"],["#556270","#4ecdc4","#c7f464","#ff6b6b","#c44d58"],["#774f38","#e08e79","#f1d4af","#ece5ce","#c5e0dc"],["#e8ddcb","#cdb380","#036564","#033649","#031634"],["#490a3d","#bd1550","#e97f02","#f8ca00","#8a9b0f"],["#594f4f","#547980","#45ada8","#9de0ad","#e5fcc2"],["#00a0b0","#6a4a3c","#cc333f","#eb6841","#edc951"],["#e94e77","#d68189","#c6a49a","#c6e5d9","#f4ead5"],["#3fb8af","#7fc7af","#dad8a7","#ff9e9d","#ff3d7f"],["#d9ceb2","#948c75","#d5ded9","#7a6a53","#99b2b7"],["#ffffff","#cbe86b","#f2e9e1","#1c140d","#cbe86b"],["#efffcd","#dce9be","#555152","#2e2633","#99173c"],["#343838","#005f6b","#008c9e","#00b4cc","#00dffc"],["#413e4a","#73626e","#b38184","#f0b49e","#f7e4be"],["#ff4e50","#fc913a","#f9d423","#ede574","#e1f5c4"],["#99b898","#fecea8","#ff847c","#e84a5f","#2a363b"],["#655643","#80bca3","#f6f7bd","#e6ac27","#bf4d28"],["#00a8c6","#40c0cb","#f9f2e7","#aee239","#8fbe00"],["#351330","#424254","#64908a","#e8caa4","#cc2a41"],["#554236","#f77825","#d3ce3d","#f1efa5","#60b99a"],["#5d4157","#838689","#a8caba","#cad7b2","#ebe3aa"],["#8c2318","#5e8c6a","#88a65e","#bfb35a","#f2c45a"],["#fad089","#ff9c5b","#f5634a","#ed303c","#3b8183"],["#ff4242","#f4fad2","#d4ee5e","#e1edb9","#f0f2eb"],["#f8b195","#f67280","#c06c84","#6c5b7b","#355c7d"],["#d1e751","#ffffff","#000000","#4dbce9","#26ade4"],["#1b676b","#519548","#88c425","#bef202","#eafde6"],["#5e412f","#fcebb6","#78c0a8","#f07818","#f0a830"],["#bcbdac","#cfbe27","#f27435","#f02475","#3b2d38"],["#452632","#91204d","#e4844a","#e8bf56","#e2f7ce"],["#eee6ab","#c5bc8e","#696758","#45484b","#36393b"],["#f0d8a8","#3d1c00","#86b8b1","#f2d694","#fa2a00"],["#2a044a","#0b2e59","#0d6759","#7ab317","#a0c55f"],["#f04155","#ff823a","#f2f26f","#fff7bd","#95cfb7"],["#b9d7d9","#668284","#2a2829","#493736","#7b3b3b"],["#bbbb88","#ccc68d","#eedd99","#eec290","#eeaa88"],["#b3cc57","#ecf081","#ffbe40","#ef746f","#ab3e5b"],["#a3a948","#edb92e","#f85931","#ce1836","#009989"],["#300030","#480048","#601848","#c04848","#f07241"],["#67917a","#170409","#b8af03","#ccbf82","#e33258"],["#aab3ab","#c4cbb7","#ebefc9","#eee0b7","#e8caaf"],["#e8d5b7","#0e2430","#fc3a51","#f5b349","#e8d5b9"],["#ab526b","#bca297","#c5ceae","#f0e2a4","#f4ebc3"],["#607848","#789048","#c0d860","#f0f0d8","#604848"],["#b6d8c0","#c8d9bf","#dadabd","#ecdbbc","#fedcba"],["#a8e6ce","#dcedc2","#ffd3b5","#ffaaa6","#ff8c94"],["#3e4147","#fffedf","#dfba69","#5a2e2e","#2a2c31"],["#fc354c","#29221f","#13747d","#0abfbc","#fcf7c5"],["#cc0c39","#e6781e","#c8cf02","#f8fcc1","#1693a7"],["#1c2130","#028f76","#b3e099","#ffeaad","#d14334"],["#a7c5bd","#e5ddcb","#eb7b59","#cf4647","#524656"],["#dad6ca","#1bb0ce","#4f8699","#6a5e72","#563444"],["#5c323e","#a82743","#e15e32","#c0d23e","#e5f04c"],["#edebe6","#d6e1c7","#94c7b6","#403b33","#d3643b"],["#fdf1cc","#c6d6b8","#987f69","#e3ad40","#fcd036"],["#230f2b","#f21d41","#ebebbc","#bce3c5","#82b3ae"],["#b9d3b0","#81bda4","#b28774","#f88f79","#f6aa93"],["#3a111c","#574951","#83988e","#bcdea5","#e6f9bc"],["#5e3929","#cd8c52","#b7d1a3","#dee8be","#fcf7d3"],["#1c0113","#6b0103","#a30006","#c21a01","#f03c02"],["#000000","#9f111b","#b11623","#292c37","#cccccc"],["#382f32","#ffeaf2","#fcd9e5","#fbc5d8","#f1396d"],["#e3dfba","#c8d6bf","#93ccc6","#6cbdb5","#1a1f1e"],["#f6f6f6","#e8e8e8","#333333","#990100","#b90504"],["#1b325f","#9cc4e4","#e9f2f9","#3a89c9","#f26c4f"],["#a1dbb2","#fee5ad","#faca66","#f7a541","#f45d4c"],["#c1b398","#605951","#fbeec2","#61a6ab","#accec0"],["#5e9fa3","#dcd1b4","#fab87f","#f87e7b","#b05574"],["#951f2b","#f5f4d7","#e0dfb1","#a5a36c","#535233"],["#8dccad","#988864","#fea6a2","#f9d6ac","#ffe9af"],["#2d2d29","#215a6d","#3ca2a2","#92c7a3","#dfece6"],["#413d3d","#040004","#c8ff00","#fa023c","#4b000f"],["#eff3cd","#b2d5ba","#61ada0","#248f8d","#605063"],["#ffefd3","#fffee4","#d0ecea","#9fd6d2","#8b7a5e"],["#cfffdd","#b4dec1","#5c5863","#a85163","#ff1f4c"],["#9dc9ac","#fffec7","#f56218","#ff9d2e","#919167"],["#4e395d","#827085","#8ebe94","#ccfc8e","#dc5b3e"],["#a8a7a7","#cc527a","#e8175d","#474747","#363636"],["#f8edd1","#d88a8a","#474843","#9d9d93","#c5cfc6"],["#046d8b","#309292","#2fb8ac","#93a42a","#ecbe13"],["#f38a8a","#55443d","#a0cab5","#cde9ca","#f1edd0"],["#a70267","#f10c49","#fb6b41","#f6d86b","#339194"],["#ff003c","#ff8a00","#fabe28","#88c100","#00c176"],["#ffedbf","#f7803c","#f54828","#2e0d23","#f8e4c1"],["#4e4d4a","#353432","#94ba65","#2790b0","#2b4e72"],["#0ca5b0","#4e3f30","#fefeeb","#f8f4e4","#a5b3aa"],["#4d3b3b","#de6262","#ffb88c","#ffd0b3","#f5e0d3"],["#fffbb7","#a6f6af","#66b6ab","#5b7c8d","#4f2958"],["#edf6ee","#d1c089","#b3204d","#412e28","#151101"],["#9d7e79","#ccac95","#9a947c","#748b83","#5b756c"],["#fcfef5","#e9ffe1","#cdcfb7","#d6e6c3","#fafbe3"],["#9cddc8","#bfd8ad","#ddd9ab","#f7af63","#633d2e"],["#30261c","#403831","#36544f","#1f5f61","#0b8185"],["#aaff00","#ffaa00","#ff00aa","#aa00ff","#00aaff"],["#d1313d","#e5625c","#f9bf76","#8eb2c5","#615375"],["#ffe181","#eee9e5","#fad3b2","#ffba7f","#ff9c97"],["#73c8a9","#dee1b6","#e1b866","#bd5532","#373b44"],["#805841","#dcf7f3","#fffcdd","#ffd8d8","#f5a2a2"]],iGn=n=>{let{x:e,y:t,width:i,height:r}={...n,...n.size,...n.center,...n.position};if(n.x1!==void 0&&n.x2!==void 0&&n.y1!==void 0&&n.y2!==void 0&&(e=(n.x1+n.x2)/2,t=(n.y1+n.y2)/2,i=Math.abs(n.x1-n.x2),r=Math.abs(n.y1-n.y2)),n.points&&Array.isArray(n.points)&&n.points.length>0){const a=n.points.map(p=>p.x),c=n.points.map(p=>p.y),l=Math.min(...a),u=Math.max(...a),d=Math.min(...c),h=Math.max(...c);e=(l+u)/2,t=(d+h)/2,i=u-l,r=h-d}const o=n.text||n.name||n.source?.text||n.source?.name||"?",s=n;return e===void 0||t===void 0?null:(i===void 0&&"outer_diameter"in n&&(i=n.outer_diameter,r=n.outer_diameter),(i===void 0||r===void 0)&&(i=.1,r=.1),{x:e,y:t,width:i,height:r,title:o,content:s,bg_color:Kmt[nGn(n.type||o)%Kmt.length]?.[4]??"#f00"})},rGn=n=>!!n,oGn=n=>{const e=n.filter(l=>l.type.startsWith("pcb_")||l.type.startsWith("schematic_")).concat(n.filter(l=>l.type==="pcb_trace"||l.type==="schematic_trace").flatMap(l=>l.route)).map(l=>iGn(l)).filter(rGn);if(e.length===0)return{center:{x:0,y:0},width:0,height:0};let t=e[0].x-e[0].width/2,i=e[0].x+e[0].width/2,r=e[0].y-e[0].height/2,o=e[0].y+e[0].height/2;for(const l of e.slice(1))t=Math.min(t,l.x-l.width/2),i=Math.max(i,l.x+l.width/2),r=Math.min(r,l.y-l.height/2),o=Math.max(o,l.y+l.height/2);const s=i-t,a=o-r;return{center:{x:t+s/2,y:r+a/2},width:s,height:a}},Kq={IS_SHOWING_PCB_GROUPS:"pcb_viewer_is_showing_pcb_groups",PCB_GROUP_VIEW_MODE:"pcb_viewer_group_view_mode"},sGn=(n,e)=>{if(typeof window>"u")return e;try{const t=localStorage.getItem(n);return t!==null?JSON.parse(t):e}catch{return e}},aGn=(n,e)=>{if(!(typeof window>"u"))try{localStorage.setItem(n,JSON.stringify(e))}catch{}},cGn=(n,e)=>{if(typeof window>"u")return e;try{const t=localStorage.getItem(n);return t!==null?JSON.parse(t):e}catch{return e}},lGn=(n,e)=>{if(!(typeof window>"u"))try{localStorage.setItem(n,JSON.stringify(e))}catch{}},uGn="named_only",dGn=(n={},e=!1)=>Pje(t=>({selected_layer:"top",pcb_viewer_id:`pcb_viewer_${Math.random().toString().slice(2,10)}`,in_edit_mode:!1,in_move_footprint_mode:!1,in_draw_trace_mode:!1,is_moving_component:!1,is_drawing_trace:!1,is_mouse_over_container:!1,is_showing_multiple_traces_length:!1,is_showing_rats_nest:!1,is_showing_autorouting:!0,is_showing_drc_errors:!0,is_showing_pcb_groups:e?!1:sGn(Kq.IS_SHOWING_PCB_GROUPS,!0),pcb_group_view_mode:e?"all":cGn(Kq.PCB_GROUP_VIEW_MODE,uGn),hovered_error_id:null,...n,selectLayer:i=>t({selected_layer:i}),setEditMode:i=>t({in_edit_mode:i!=="off",in_move_footprint_mode:i==="move_footprint",in_draw_trace_mode:i==="draw_trace",is_moving_component:!1,is_drawing_trace:!1}),setIsShowingRatsNest:i=>t({is_showing_rats_nest:i}),setIsMovingComponent:i=>t({is_moving_component:i}),setIsDrawingTrace:i=>t({is_drawing_trace:i}),setIsMouseOverContainer:i=>t({is_mouse_over_container:i}),setIsShowingMultipleTracesLength:i=>t({is_showing_multiple_traces_length:i}),setIsShowingAutorouting:i=>t({is_showing_autorouting:i}),setIsShowingDrcErrors:i=>t({is_showing_drc_errors:i}),setIsShowingPcbGroups:i=>{e||(aGn(Kq.IS_SHOWING_PCB_GROUPS,i),t({is_showing_pcb_groups:i}))},setPcbGroupViewMode:i=>{e||(lGn(Kq.PCB_GROUP_VIEW_MODE,i),t({pcb_group_view_mode:i}))},setHoveredErrorId:i=>t({hovered_error_id:i})})),Vb=n=>{const e=be.useContext(Qmt);return Fje(e,n)},Qmt=be.createContext(null),hGn=({children:n,initialState:e,disablePcbGroups:t})=>{const i=be.useMemo(()=>dGn(e,t),[t]);return de.jsx(Qmt.Provider,{value:i,children:n})},pGn=()=>{const n=Vb(t=>t.pcb_viewer_id),e=(t,i)=>Bf(t,{containerId:n,...i});return e.error=(t,i)=>Bf.error(t,{containerId:n,...i}),e.promise=Bf.promise,e},fGn=()=>{be.useEffect(()=>{OVn()},[]);const n=Vb(e=>e.pcb_viewer_id);return de.jsx(kVn,{position:"top-center",containerId:n})},mGn=function(){},Jmt=typeof window<"u",_Gn=Jmt?be.useLayoutEffect:be.useEffect,gGn=_Gn,e0t={x:0,y:0,width:0,height:0,top:0,left:0,bottom:0,right:0};function yGn(){var n=be.useState(null),e=n[0],t=n[1],i=be.useState(e0t),r=i[0],o=i[1],s=be.useMemo(function(){return new window.ResizeObserver(function(a){if(a[0]){var c=a[0].contentRect,l=c.x,u=c.y,d=c.width,h=c.height,p=c.top,f=c.left,_=c.bottom,g=c.right;o({x:l,y:u,width:d,height:h,top:p,left:f,bottom:_,right:g})}})},[]);return gGn(function(){if(e)return s.observe(e),function(){s.disconnect()}},[e]),[t,r]}var Qq=Jmt&&typeof window.ResizeObserver<"u"?yGn:function(){return[mGn,e0t]},t0t=({initialTransform:n,initialTouch1:e,initialTouch2:t,finalTouch1:i,finalTouch2:r})=>{if(!i||!r)return n;const o={x:(e.x+t.x)/2,y:(e.y+t.y)/2},s={x:(i.x+r.x)/2,y:(i.y+r.y)/2},a=Math.hypot(t.x-e.x,t.y-e.y),c=Math.hypot(r.x-i.x,r.y-i.y),l=a===0?1:c/a,u=s.x-o.x,d=s.y-o.y;return Io(Vo(u,d),Vo(o.x,o.y),Xm(l,l),Vo(-o.x,-o.y),n)},xGn=(n={})=>{const e=be.useRef(null),[t,i]=be.useState(0),r=n.canvasElm??e.current,[o,s]=be.useState(n.initialTransform??Gh()),[a,c]=be.useState(0),[l,u]=be.useReducer(b=>b+1,0),d=be.useCallback(b=>{n.onSetTransform&&n.onSetTransform(b),n.transform||s(b)},[n.onSetTransform,s]),h=be.useCallback(b=>{d(b),u()},[d]),p=n.transform??o,f=be.useCallback(()=>{i(Date.now())},[]),_=be.useRef("none"),g=be.useRef(null),x=be.useRef(null);be.useEffect(()=>{const b=n.canvasElm??e.current;if(b&&!r){c(a+1);return}if(!b){const K=setTimeout(()=>{c(a+1)},100);return()=>clearTimeout(K)}let S=n.transform??o,P={x:0,y:0},A={x:0,y:0},R=!1;const T=K=>({x:K.pageX-b.getBoundingClientRect().left-window.scrollX,y:K.pageY-b.getBoundingClientRect().top-window.scrollY});function I(K){n.enabled!==!1&&(n.shouldDrag&&!n.shouldDrag(K)||(P=T(K),!(Date.now()-t<100)&&(R=!0,K.preventDefault())))}function C(K){if(!R||n.enabled===!1||n.shouldDrag&&!n.shouldDrag(K))return;A=T(K);const oe=Io(Vo(A.x-P.x,A.y-P.y),S);d(oe),S=oe,R=!1}function z(K){if(T(K),!R||n.enabled===!1||n.shouldDrag&&!n.shouldDrag(K))return;A=T(K);const oe=Io(Vo(A.x-P.x,A.y-P.y),S);d(oe)}function O(K){if(n.enabled===!1||n.shouldDrag&&!n.shouldDrag(K))return;const oe=T(K),ce=Io(Vo(oe.x,oe.y),Xm(1-K.deltaY/1e3,1-K.deltaY/1e3),Vo(-oe.x,-oe.y),S);d(ce),S=ce,K.preventDefault()}function j(K){if(!R||n.shouldDrag&&!n.shouldDrag(K))return;if(b){const ce=b.getBoundingClientRect();if(K.clientX>=ce.left+10&&K.clientX<=ce.right-10&&K.clientY>=ce.top+10&&K.clientY<=ce.bottom-10)return}R=!1,A=T(K);const oe=Io(Vo(A.x-P.x,A.y-P.y),S);d(oe),S=oe}function V(K){if(K.preventDefault(),n.enabled!==!1){if(K.touches.length===1){_.current="drag";const oe=K.touches[0];g.current={initialTransform:S,initialTouch:{x:oe.clientX,y:oe.clientY}}}else if(K.touches.length===2){_.current="pinch";const oe=K.touches[0],ce=K.touches[1];x.current={initialTransform:S,initialTouch1:{x:oe.clientX,y:oe.clientY},initialTouch2:{x:ce.clientX,y:ce.clientY},finalTouch1:null,finalTouch2:null}}}}function G(K){if(K.preventDefault(),n.enabled!==!1){if(_.current==="drag"&&K.touches.length===1&&g.current){const oe=K.touches[0],ce={x:oe.clientX,y:oe.clientY},me=ce.x-g.current.initialTouch.x,te=ce.y-g.current.initialTouch.y,se=Io(Vo(me,te),g.current.initialTransform);d(se)}else if(_.current==="pinch"&&K.touches.length===2&&x.current){const oe=K.touches[0],ce=K.touches[1];x.current.finalTouch1={x:oe.clientX,y:oe.clientY},x.current.finalTouch2={x:ce.clientX,y:ce.clientY};const me=t0t(x.current);d(me)}}}function Z(K){K.preventDefault();const oe=K.changedTouches[0];if(_.current==="drag"&&g.current&&oe){const ce={x:oe.clientX,y:oe.clientY},me=ce.x-g.current.initialTouch.x,te=ce.y-g.current.initialTouch.y,se=Io(Vo(me,te),g.current.initialTransform);d(se),S=se}else if(_.current==="pinch"&&x.current){const ce=t0t(x.current);d(ce),S=ce}_.current="none",g.current=null,x.current=null}return b.addEventListener("mousedown",I),b.addEventListener("mouseup",C),window.addEventListener("mousemove",z),b.addEventListener("mouseout",j),b.addEventListener("wheel",O),b.addEventListener("touchstart",V,{passive:!1}),b.addEventListener("touchmove",G,{passive:!1}),b.addEventListener("touchend",Z,{passive:!1}),b.addEventListener("touchcancel",Z,{passive:!1}),()=>{b.removeEventListener("mousedown",I),b.removeEventListener("mouseup",C),window.removeEventListener("mousemove",z),b.removeEventListener("mouseout",j),b.removeEventListener("wheel",O),b.removeEventListener("touchstart",V),b.removeEventListener("touchmove",G),b.removeEventListener("touchend",Z),b.removeEventListener("touchcancel",Z)}},[r,a,l,t,n.enabled,n.shouldDrag]);const v=be.useCallback(b=>Dt(p,b),[p]);return{ref:e,transform:p,applyTransformToPoint:v,setTransform:h,cancelDrag:f}},vGn=xGn;function bGn(n){const e=new Map;let t=0;function i(r){for(const[,s]of e)if(s.has(r))return s;const o=new Set;return e.set(`connectivity_net${t++}`,o),o}for(const r of n){let o=null;for(const s of r){if(!o)o=i(s);else if(!o.has(s)){const a=i(s);if(a!==o){for(const c of a)o.add(c);e.delete(Array.from(e.entries()).find(([,c])=>c===a)[0])}}o.add(s)}}return Object.fromEntries(Array.from(e.entries()).map(([r,o])=>[r,Array.from(o)]))}var wGn=class{netMap;idToNetMap;constructor(e){this.netMap=e,this.idToNetMap={};for(const[t,i]of Object.entries(e))for(const r of i)this.idToNetMap[r]=t}addConnections(e){for(const t of e){const i=new Set;for(const o of t){const s=this.idToNetMap[o];s&&i.add(s)}let r;if(i.size===0)r=`connectivity_net${Object.keys(this.netMap).length}`,this.netMap[r]=[];else if(i.size===1)r=i.values().next().value??`connectivity_net${Object.keys(this.netMap).length}`;else{r=i.values().next().value??`connectivity_net${Object.keys(this.netMap).length}`;for(const o of i)if(o!==r){this.netMap[r].push(...this.netMap[o]),this.netMap[o]=this.netMap[r];for(const s of this.netMap[r])this.idToNetMap[s]=r}}for(const o of t)this.netMap[r].includes(o)||this.netMap[r].push(o),this.idToNetMap[o]=r}}getIdsConnectedToNet(e){return this.netMap[e]||[]}getNetConnectedToId(e){return this.idToNetMap[e]}areIdsConnected(e,t){if(e===t)return!0;const i=this.getNetConnectedToId(e);if(!i)return!1;const r=this.getNetConnectedToId(t);return r?i===r||r===e||r===e:!1}areAllIdsConnected(e){const t=this.getNetConnectedToId(e[0]);for(const i of e){const r=this.getNetConnectedToId(i);if(r===void 0||r!==t)return!1}return!0}},n0t=n=>{const e=[];for(const i of n)if(i.type==="source_trace")e.push([i.source_trace_id,...i.connected_source_port_ids??[],...i.connected_source_net_ids??[]].filter(Boolean));else if(i.type==="pcb_port"){const{pcb_port_id:r,source_port_id:o}=i;o&&r&&e.push([o,r])}else if(i.type==="pcb_smtpad"){const{pcb_smtpad_id:r,pcb_port_id:o}=i;o&&r&&e.push([r,o])}else if(i.type==="pcb_plated_hole"){const{pcb_plated_hole_id:r,pcb_port_id:o}=i;o&&r&&e.push([r,o])}else if(i.type==="pcb_trace"){const{pcb_trace_id:r,source_trace_id:o}=i,s=Array.isArray(i.route)?i.route.filter(a=>a&&a.route_type==="wire"):[];if(o&&r&&e.push([r,o]),Array.isArray(s)){const a=s.find(l=>l&&l.start_pcb_port_id)?.start_pcb_port_id,c=s.find(l=>l&&l.end_pcb_port_id)?.end_pcb_port_id;a&&r&&c&&e.push([a,r,c])}}else if(i.type==="pcb_via"){const{pcb_via_id:r,pcb_trace_id:o}=i;o&&r&&e.push([r,o])}else if(i.type==="source_component"&&i.internally_connected_source_port_ids)for(const r of i.internally_connected_source_port_ids)e.push(r);const t=bGn(e);return new wGn(t)};function SGn({primitivesWithoutInteractionMetadata:n,drawingObjectIdsWithMouseOver:e,primitiveIdsInMousedOverNet:t}){const i=[];for(const r of n){const o={...r};r?.layer==="drill"?(o.is_in_highlighted_net=!1,o.is_mouse_over=!1):e.has(r._pcb_drawing_object_id)?o.is_mouse_over=!0:r._element&&("pcb_trace_id"in r._element&&t.includes(r._element.pcb_trace_id)||"pcb_port_id"in r._element&&t.includes(r._element.pcb_port_id))?o.is_in_highlighted_net=!0:(o.is_in_highlighted_net=!1,o.is_mouse_over=!1),i.push(o)}return i}function EGn(n,e){if(n.length<2)throw new Error("Stroke must have at least two points");const t=n.map(d=>Array.isArray(d)?{x:d[0],y:d[1]}:d),i=[],r=[];function o(d,h){const p=h.x-d.x,f=h.y-d.y,_=Math.sqrt(p*p+f*f);return{x:-f/_,y:p/_}}function s(d,h,p,f){const _=f/2,g={x:d.x+h.x*_*p,y:d.y+h.y*_*p};p>0?i.push(g):r.unshift(g)}const a=o(t[0],t[1]),c=t[0].trace_width??e;s(t[0],a,1,c),s(t[0],a,-1,c);for(let d=1;d<t.length-1;d++){const h=t[d-1],p=t[d],f=t[d+1],_=o(h,p),g=o(p,f),x=_.x+g.x,v=_.y+g.y,b=Math.sqrt(x*x+v*v),S=p.trace_width??e;if(b/2>2*(S/2))s(p,_,1,S),s(p,g,1,S),s(p,_,-1,S),s(p,g,-1,S);else{const A=1/b;s(p,{x:x*A,y:v*A},1,S),s(p,{x:x*A,y:v*A},-1,S)}}const l=o(t[t.length-2],t[t.length-1]),u=t[t.length-1].trace_width??e;return s(t[t.length-1],l,1,u),s(t[t.length-1],l,-1,u),[...i,...r]}var Xl=0,__=n=>`${n}_${Xl++}`,TGn=(n,e)=>{const t="pcb_component_id"in n?e.find(s=>s.type==="pcb_component"&&s.pcb_component_id===n.pcb_component_id):void 0,i=t&&"source_component_id"in t?e.find(s=>s.type==="source_component"&&s.source_component_id===t.source_component_id):void 0,r="source_port_id"in n?n.source_port_id:"pcb_port_id"in n?nA(e).pcb_port.get(n.pcb_port_id)?.source_port_id:void 0,o=r?e.find(s=>s.type==="source_port"&&s.source_port_id===r):void 0;switch(n.type){case"pcb_board":{const{width:s,height:a,center:c,outline:l}=n;return l&&l.length>2?l.map((u,d,h)=>({_pcb_drawing_object_id:`line_${Xl++}`,pcb_drawing_type:"line",x1:u.x,y1:u.y,x2:d===h.length-1?h[0].x:h[d+1].x,y2:d===h.length-1?h[0].y:h[d+1].y,width:1,zoomIndependent:!0,layer:"board",_element:n})):[{_pcb_drawing_object_id:`line_${Xl++}`,pcb_drawing_type:"line",x1:c.x-s/2,y1:c.y-a/2,x2:c.x+s/2,y2:c.y-a/2,width:1,zoomIndependent:!0,layer:"board",_element:n},{_pcb_drawing_object_id:`line_${Xl++}`,pcb_drawing_type:"line",x1:c.x-s/2,y1:c.y+a/2,x2:c.x+s/2,y2:c.y+a/2,width:1,zoomIndependent:!0,layer:"board",_element:n},{_pcb_drawing_object_id:`line_${Xl++}`,pcb_drawing_type:"line",x1:c.x-s/2,y1:c.y-a/2,x2:c.x-s/2,y2:c.y+a/2,width:1,zoomIndependent:!0,layer:"board",_element:n},{_pcb_drawing_object_id:`line_${Xl++}`,pcb_drawing_type:"line",x1:c.x+s/2,y1:c.y-a/2,x2:c.x+s/2,y2:c.y+a/2,width:1,zoomIndependent:!0,layer:"board",_element:n}]}case"pcb_smtpad":{if(n.shape==="rect"||n.shape==="rotated_rect"){const{shape:s,x:a,y:c,width:l,height:u,layer:d,rect_border_radius:h}=n;return[{_pcb_drawing_object_id:`rect_${Xl++}`,pcb_drawing_type:"rect",x:a,y:c,w:l,h:u,layer:d||"top",_element:n,_parent_pcb_component:t,_parent_source_component:i,_source_port:o,ccw_rotation:n.ccw_rotation,roundness:h}]}else if(n.shape==="circle"){const{x:s,y:a,radius:c,layer:l}=n;return[{_pcb_drawing_object_id:`circle_${Xl++}`,pcb_drawing_type:"circle",x:s,y:a,r:c,layer:l||"top",_element:n,_parent_pcb_component:t,_parent_source_component:i,_source_port:o}]}else if(n.shape==="polygon"){const{layer:s,points:a}=n;return[{_pcb_drawing_object_id:`polygon_${Xl++}`,pcb_drawing_type:"polygon",points:a,layer:s||"top",_element:n,_parent_pcb_component:t,_parent_source_component:i,_source_port:o}]}else if(n.shape==="pill"||n.shape==="rotated_pill"){const{x:s,y:a,width:c,height:l,layer:u}=n;return[{_pcb_drawing_object_id:`pill_${Xl++}`,pcb_drawing_type:"pill",x:s,y:a,w:c,h:l,layer:u||"top",_element:n,_parent_pcb_component:t,_parent_source_component:i,_source_port:o,ccw_rotation:n.ccw_rotation}]}return[]}case"pcb_hole":{if(n.hole_shape==="circle"||!n.hole_shape){const{x:s,y:a,hole_diameter:c}=n;return[{_pcb_drawing_object_id:`circle_${Xl++}`,pcb_drawing_type:"circle",x:s,y:a,r:c/2,layer:"drill",_element:n,_parent_pcb_component:t,_parent_source_component:i}]}return[]}case"pcb_plated_hole":if(n.shape==="circle"){const{x:s,y:a,hole_diameter:c,outer_diameter:l}=n;return[{_pcb_drawing_object_id:`circle_${Xl++}`,pcb_drawing_type:"circle",x:s,y:a,r:l/2,layer:"top",_element:n,_parent_pcb_component:t,_parent_source_component:i,_source_port:o},{_pcb_drawing_object_id:`circle_${Xl++}`,pcb_drawing_type:"circle",x:s,y:a,r:c/2,layer:"drill",_element:n}]}else if(n.shape==="oval"){const{x:s,y:a,outer_height:c,outer_width:l,hole_height:u,hole_width:d}=n;return[{_pcb_drawing_object_id:`oval_${Xl++}`,pcb_drawing_type:"oval",x:s,y:a,rX:l/2,rY:c/2,layer:"top",_element:n,_parent_pcb_component:t,_parent_source_component:i,_source_port:o},{_pcb_drawing_object_id:`oval_${Xl++}`,_element:n,pcb_drawing_type:"oval",x:s,y:a,rX:d/2,rY:u/2,layer:"drill"}]}else if(n.shape==="pill"){const{x:s,y:a,outer_height:c,outer_width:l,hole_height:u,hole_width:d}=n;return[{_pcb_drawing_object_id:`pill_${Xl++}`,pcb_drawing_type:"pill",x:s,y:a,w:l,h:c,layer:"top",_element:n,_parent_pcb_component:t,_parent_source_component:i,_source_port:o,ccw_rotation:n.ccw_rotation},{_pcb_drawing_object_id:`pill_${Xl++}`,_element:n,pcb_drawing_type:"pill",x:s,y:a,w:d,h:u,layer:"drill",ccw_rotation:n.ccw_rotation}]}else if(n.shape==="circular_hole_with_rect_pad"){const{x:s,y:a,hole_diameter:c,rect_pad_width:l,rect_pad_height:u,rect_border_radius:d}=n,h=n.hole_offset_x??0,p=n.hole_offset_y??0;return[{_pcb_drawing_object_id:`rect_${Xl++}`,pcb_drawing_type:"rect",x:s,y:a,w:l,h:u,layer:"top",_element:n,_parent_pcb_component:t,_parent_source_component:i,_source_port:o,roundness:d},{_pcb_drawing_object_id:`circle_${Xl++}`,_element:n,pcb_drawing_type:"circle",x:s+h,y:a+p,r:c/2,layer:"drill"}]}else if(n.shape==="pill_hole_with_rect_pad"){const{x:s,y:a,hole_width:c,hole_height:l,rect_pad_width:u,rect_pad_height:d,rect_border_radius:h}=n;return[{_pcb_drawing_object_id:`rect_${Xl++}`,pcb_drawing_type:"rect",x:s,y:a,w:u,h:d,layer:"top",_element:n,_parent_pcb_component:t,_parent_source_component:i,_source_port:o,roundness:h},{_pcb_drawing_object_id:`pill_${Xl++}`,_element:n,pcb_drawing_type:"pill",x:s,y:a,w:c,h:l,layer:"drill"}]}else if(n.shape==="rotated_pill_hole_with_rect_pad"){const{x:s,y:a,hole_width:c,hole_height:l,hole_ccw_rotation:u,rect_pad_width:d,rect_pad_height:h,rect_ccw_rotation:p,rect_border_radius:f}=n;return[{_pcb_drawing_object_id:`rect_${Xl++}`,pcb_drawing_type:"rect",x:s,y:a,w:d,h,layer:"top",_element:n,_parent_pcb_component:t,_parent_source_component:i,_source_port:o,ccw_rotation:p,roundness:f},{_pcb_drawing_object_id:`pill_${Xl++}`,_element:n,pcb_drawing_type:"pill",x:s,y:a,w:c,h:l,layer:"drill",ccw_rotation:u}]}else return[];case"pcb_keepout":{if(n.shape==="circle"){const{center:s,radius:a}=n;return[{_pcb_drawing_object_id:`circle_${Xl++}`,pcb_drawing_type:"circle",x:s.x,y:s.y,r:a,layer:"top",_element:n,_parent_pcb_component:t,_parent_source_component:i,mesh_fill:!0}]}else if(n.shape==="rect"){const{center:s,width:a,height:c}=n;return[{_pcb_drawing_object_id:`rect_${Xl++}`,pcb_drawing_type:"rect",x:s.x,y:s.y,w:a,h:c,layer:"top",_element:n,_parent_pcb_component:t,_parent_source_component:i,mesh_fill:!0}]}break}case"pcb_trace":{const s=[];if(n.route_thickness_mode==="interpolated"){const l=n.route.map(h=>({x:h.x,y:h.y,trace_width:h.route_type==="wire"?h.width:.5})),u=EGn(l,.5),d=n.route[0].layer;return s.push({_pcb_drawing_object_id:`polygon_${Xl++}`,_element:n,pcb_drawing_type:"polygon",points:u,layer:d}),n.route.forEach(h=>{h.route_type==="via"&&s.push({_pcb_drawing_object_id:`circle_${Xl++}`,_element:n,pcb_drawing_type:"circle",x:h.x,y:h.y,r:h.outer_diameter/2,layer:h.from_layer})}),s}let a=null,c=null;for(const l of n.route)l.route_type==="wire"&&(a!==null&&c!==null&&s.push({_pcb_drawing_object_id:`line_${Xl++}`,_element:n,pcb_drawing_type:"line",x1:a,y1:c,x2:l.x,y2:l.y,width:l.width,squareCap:!1,layer:l.layer}),a=l.x,c=l.y);return s}case"pcb_via":{const{x:s,y:a,outer_diameter:c,hole_diameter:l,from_layer:u,to_layer:d}=n;return[{_pcb_drawing_object_id:`circle_${Xl++}`,pcb_drawing_type:"circle",x:s,y:a,r:c/2,layer:u,_element:n,_parent_pcb_component:t,_parent_source_component:i},{_pcb_drawing_object_id:`circle_${Xl++}`,_element:n,pcb_drawing_type:"circle",x:s,y:a,r:l/2,layer:"drill",_parent_pcb_component:t,_parent_source_component:i},{_pcb_drawing_object_id:`circle_${Xl++}`,pcb_drawing_type:"circle",x:s,y:a,r:c/2,layer:d,_element:n,_parent_pcb_component:t,_parent_source_component:i}]}case"pcb_silkscreen_rect":return[{_pcb_drawing_object_id:`rect_${Xl++}`,pcb_drawing_type:"rect",x:n.center.x,y:n.center.y,w:n.width,h:n.height,layer:n.layer==="bottom"?"bottom_silkscreen":"top_silkscreen",stroke_width:n.stroke_width,is_filled:n.is_filled,has_stroke:n.has_stroke,is_stroke_dashed:n.is_stroke_dashed,_element:n}];case"pcb_silkscreen_circle":return[{_pcb_drawing_object_id:`circle_${Xl++}`,pcb_drawing_type:"circle",x:n.center.x,y:n.center.y,r:n.radius,layer:n.layer==="bottom"?"bottom_silkscreen":"top_silkscreen"}];case"pcb_silkscreen_oval":return[{_pcb_drawing_object_id:`oval_${Xl++}`,pcb_drawing_type:"oval",x:n.center.x,y:n.center.y,rX:n.radius_x/2,rY:n.radius_y/2,layer:n.layer==="bottom"?"bottom_silkscreen":"top_silkscreen"}];case"pcb_silkscreen_pill":return[{_pcb_drawing_object_id:`pill_${Xl++}`,pcb_drawing_type:"pill",x:n.center.x,y:n.center.y,w:n.width,h:n.height,layer:n.layer==="bottom"?"bottom_silkscreen":"top_silkscreen"}];case"pcb_silkscreen_line":return[{_pcb_drawing_object_id:`line_${Xl++}`,pcb_drawing_type:"line",x1:n.x1,y1:n.y1,x2:n.x2,y2:n.y2,width:.1,squareCap:!1,layer:n.layer==="bottom"?"bottom_silkscreen":"top_silkscreen"}];case"pcb_fabrication_note_path":case"pcb_silkscreen_path":{const{pcb_component_id:s,route:a,type:c}=n;let l;return c==="pcb_silkscreen_path"?l=n.layer==="bottom"?"bottom_silkscreen":"top_silkscreen":c==="pcb_fabrication_note_path"&&(l="top_fabrication"),a.slice(0,-1).map((u,d)=>{const h=a[d+1];return{_pcb_drawing_object_id:`line_${Xl++}`,pcb_drawing_type:"line",x1:u.x,y1:u.y,x2:h.x,y2:h.y,width:n.stroke_width??.1,squareCap:!1,layer:l,_element:n,_parent_pcb_component:t,_parent_source_component:i,_source_port:o}}).filter(Boolean)}case"pcb_silkscreen_text":return[{_pcb_drawing_object_id:`text_${Xl++}`,pcb_drawing_type:"text",x:n.anchor_position.x,y:n.anchor_position.y,layer:n.layer==="bottom"?"bottom_silkscreen":"top_silkscreen",align:n.anchor_alignment??"center",text:n.text,size:n.font_size,ccw_rotation:n.ccw_rotation}];case"pcb_copper_pour":{const s=n;switch(s.shape){case"rect":{const{center:a,width:c,height:l,layer:u,rotation:d}=s;return[{_pcb_drawing_object_id:__("pcb_copper_pour_rect"),pcb_drawing_type:"rect",x:a.x,y:a.y,w:c,h:l,layer:u,_element:n,ccw_rotation:d}]}case"polygon":{const{points:a,layer:c}=s;return[{_pcb_drawing_object_id:__("pcb_copper_pour_polygon"),pcb_drawing_type:"polygon",points:a,layer:c,_element:n}]}case"brep":{const{brep_shape:a,layer:c}=s;return[{_pcb_drawing_object_id:__("pcb_copper_pour_brep"),pcb_drawing_type:"polygon_with_arcs",brep_shape:a,layer:c,_element:n}]}}return[]}case"pcb_fabrication_note_dimension":{const s=n,{from:a,to:c,text:l,font_size:u,arrow_size:d}=s,h=n.layer==="bottom"?"bottom_fabrication":"top_fabrication",p=[],f=typeof d=="number"&&!Number.isNaN(d)?d:1;p.push({_pcb_drawing_object_id:__("pcb_fabrication_note_dimension"),pcb_drawing_type:"line",x1:a.x,y1:a.y,x2:c.x,y2:c.y,width:.05,squareCap:!1,layer:h,_element:n,_parent_pcb_component:t,_parent_source_component:i,_source_port:o});const _=c.x-a.x,g=c.y-a.y,x=Math.sqrt(_*_+g*g)||1,v=_/x,b=g/x,S=Math.PI/6,P=a.x+f*(v*Math.cos(S)-b*Math.sin(S)),A=a.y+f*(v*Math.sin(S)+b*Math.cos(S)),R=a.x+f*(v*Math.cos(-S)-b*Math.sin(-S)),T=a.y+f*(v*Math.sin(-S)+b*Math.cos(-S));p.push({_pcb_drawing_object_id:__("pcb_fabrication_note_dimension"),pcb_drawing_type:"line",x1:a.x,y1:a.y,x2:P,y2:A,width:.05,squareCap:!1,layer:h,_element:n,_parent_pcb_component:t,_parent_source_component:i,_source_port:o}),p.push({_pcb_drawing_object_id:__("pcb_fabrication_note_dimension"),pcb_drawing_type:"line",x1:a.x,y1:a.y,x2:R,y2:T,width:.05,squareCap:!1,layer:h,_element:n,_parent_pcb_component:t,_parent_source_component:i,_source_port:o});const I=c.x-f*(v*Math.cos(S)-b*Math.sin(S)),C=c.y-f*(v*Math.sin(S)+b*Math.cos(S)),z=c.x-f*(v*Math.cos(-S)-b*Math.sin(-S)),O=c.y-f*(v*Math.sin(-S)+b*Math.cos(-S));return p.push({_pcb_drawing_object_id:__("pcb_fabrication_note_dimension"),pcb_drawing_type:"line",x1:c.x,y1:c.y,x2:I,y2:C,width:.05,squareCap:!1,layer:h,_element:n,_parent_pcb_component:t,_parent_source_component:i,_source_port:o}),p.push({_pcb_drawing_object_id:__("pcb_fabrication_note_dimension"),pcb_drawing_type:"line",x1:c.x,y1:c.y,x2:z,y2:O,width:.05,squareCap:!1,layer:h,_element:n,_parent_pcb_component:t,_parent_source_component:i,_source_port:o}),l&&p.push({_pcb_drawing_object_id:__("pcb_fabrication_note_dimension"),pcb_drawing_type:"text",x:(a.x+c.x)/2,y:(a.y+c.y)/2,layer:h,align:"center",text:l,size:u,_element:n,_parent_pcb_component:t,_parent_source_component:i,_source_port:o}),p}case"pcb_fabrication_note_text":return[{_pcb_drawing_object_id:__("text"),pcb_drawing_type:"text",x:n.anchor_position.x,y:n.anchor_position.y,layer:n.layer==="bottom"?"bottom_fabrication":"top_fabrication",size:n.font_size,align:n.anchor_alignment??"center",text:n.text}];case"pcb_cutout":{const s=n;switch(s.shape){case"rect":return[{_pcb_drawing_object_id:__("pcb_cutout_rect"),pcb_drawing_type:"rect",x:s.center.x,y:s.center.y,w:s.width,h:s.height,layer:"drill",_element:n,_parent_pcb_component:t,_parent_source_component:i}];case"circle":return[{_pcb_drawing_object_id:__("pcb_cutout_circle"),pcb_drawing_type:"circle",x:s.center.x,y:s.center.y,r:s.radius,layer:"drill",_element:n,_parent_pcb_component:t,_parent_source_component:i}];case"polygon":return[{_pcb_drawing_object_id:__("pcb_cutout_polygon"),pcb_drawing_type:"polygon",points:s.points,layer:"drill",_element:n,_parent_pcb_component:t,_parent_source_component:i}];default:return console.warn(`Unsupported pcb_cutout shape: ${s.shape}`),[]}}case"pcb_note_line":{const s=n;return[{_pcb_drawing_object_id:__("pcb_note_line"),pcb_drawing_type:"line",x1:s.x1,y1:s.y1,x2:s.x2,y2:s.y2,width:s.stroke_width??.1,squareCap:!1,layer:"notes",color:s.color,_element:n,_parent_pcb_component:t,_parent_source_component:i}]}case"pcb_note_rect":{const s=n;return[{_pcb_drawing_object_id:__("pcb_note_rect"),pcb_drawing_type:"rect",x:s.center.x,y:s.center.y,w:s.width,h:s.height,layer:"notes",stroke_width:s.stroke_width,is_filled:s.is_filled,has_stroke:s.has_stroke,is_stroke_dashed:s.is_stroke_dashed,color:s.color,_element:n,_parent_pcb_component:t,_parent_source_component:i}]}case"pcb_note_path":{const s=n,{route:a,stroke_width:c}=s;return a.slice(0,-1).map((l,u)=>{const d=a[u+1];return{_pcb_drawing_object_id:__("pcb_note_path"),pcb_drawing_type:"line",x1:l.x,y1:l.y,x2:d.x,y2:d.y,width:c??.1,squareCap:!1,layer:"notes",color:s.color,_element:n,_parent_pcb_component:t,_parent_source_component:i}}).filter(Boolean)}case"pcb_note_text":{const s=n;return[{_pcb_drawing_object_id:__("pcb_note_text"),pcb_drawing_type:"text",x:s.anchor_position.x,y:s.anchor_position.y,layer:"notes",align:s.anchor_alignment??"center",text:s.text,size:s.font_size,color:s.color,_element:n,_parent_pcb_component:t,_parent_source_component:i}]}case"pcb_note_dimension":{const s=n,{from:a,to:c,text:l,font_size:u,arrow_size:d}=s,h=[];h.push({_pcb_drawing_object_id:__("pcb_note_dimension"),pcb_drawing_type:"line",x1:a.x,y1:a.y,x2:c.x,y2:c.y,width:.05,squareCap:!1,color:s.color,layer:"notes",_element:n,_parent_pcb_component:t,_parent_source_component:i});const p=c.x-a.x,f=c.y-a.y,_=Math.sqrt(p*p+f*f),g=p/_,x=f/_,v=Math.PI/6,b=a.x+d*(g*Math.cos(v)-x*Math.sin(v)),S=a.y+d*(g*Math.sin(v)+x*Math.cos(v)),P=a.x+d*(g*Math.cos(-v)-x*Math.sin(-v)),A=a.y+d*(g*Math.sin(-v)+x*Math.cos(-v));h.push({_pcb_drawing_object_id:__("pcb_note_dimension"),pcb_drawing_type:"line",x1:a.x,y1:a.y,x2:b,y2:S,width:.05,squareCap:!1,layer:"notes",_element:n}),h.push({_pcb_drawing_object_id:__("pcb_note_dimension"),pcb_drawing_type:"line",x1:a.x,y1:a.y,x2:P,y2:A,width:.05,squareCap:!1,layer:"notes",_element:n});const R=c.x-d*(g*Math.cos(v)-x*Math.sin(v)),T=c.y-d*(g*Math.sin(v)+x*Math.cos(v)),I=c.x-d*(g*Math.cos(-v)-x*Math.sin(-v)),C=c.y-d*(g*Math.sin(-v)+x*Math.cos(-v));return h.push({_pcb_drawing_object_id:__("pcb_note_dimension"),pcb_drawing_type:"line",x1:c.x,y1:c.y,x2:R,y2:T,width:.05,squareCap:!1,layer:"notes",_element:n}),h.push({_pcb_drawing_object_id:__("pcb_note_dimension"),pcb_drawing_type:"line",x1:c.x,y1:c.y,x2:I,y2:C,width:.05,squareCap:!1,layer:"notes",_element:n}),l&&h.push({_pcb_drawing_object_id:__("pcb_note_dimension"),pcb_drawing_type:"text",x:(a.x+c.x)/2,y:(a.y+c.y)/2,layer:"notes",align:"center",text:l,size:u,_element:n}),h}}return[]},yy={board:{anchor:"rgb(255, 38, 226)",aux_items:"rgb(255, 255, 255)",b_adhes:"rgb(0, 0, 132)",b_crtyd:"rgb(255, 38, 226)",b_fab:"rgb(88, 93, 132)",b_mask:"rgba(2, 255, 238, 0.400)",b_paste:"rgb(0, 194, 194)",b_silks:"rgb(242, 237, 161)",background:"rgb(0, 16, 35)",cmts_user:"rgb(89, 148, 220)",copper:{b:"rgb(77, 127, 196)",f:"rgb(200, 52, 52)",in1:"rgb(127, 200, 127)",in10:"rgb(237, 124, 51)",in11:"rgb(91, 195, 235)",in12:"rgb(247, 111, 142)",in13:"rgb(167, 165, 198)",in14:"rgb(40, 204, 217)",in15:"rgb(232, 178, 167)",in16:"rgb(242, 237, 161)",in17:"rgb(237, 124, 51)",in18:"rgb(91, 195, 235)",in19:"rgb(247, 111, 142)",in2:"rgb(206, 125, 44)",in20:"rgb(167, 165, 198)",in21:"rgb(40, 204, 217)",in22:"rgb(232, 178, 167)",in23:"rgb(242, 237, 161)",in24:"rgb(237, 124, 51)",in25:"rgb(91, 195, 235)",in26:"rgb(247, 111, 142)",in27:"rgb(167, 165, 198)",in28:"rgb(40, 204, 217)",in29:"rgb(232, 178, 167)",in3:"rgb(79, 203, 203)",in30:"rgb(242, 237, 161)",in4:"rgb(219, 98, 139)",in5:"rgb(167, 165, 198)",in6:"rgb(40, 204, 217)",in7:"rgb(232, 178, 167)",in8:"rgb(242, 237, 161)",in9:"rgb(141, 203, 129)"},cursor:"rgb(255, 255, 255)",drc:"rgb(194, 194, 194)",drc_error:"rgba(215, 91, 107, 0.800)",drc_exclusion:"rgb(255, 255, 255)",drc_warning:"rgba(255, 208, 66, 0.902)",dwgs_user:"rgb(194, 194, 194)",eco1_user:"rgb(180, 219, 210)",eco2_user:"rgb(216, 200, 82)",edge_cuts:"rgb(208, 210, 205)",f_adhes:"rgb(132, 0, 132)",f_crtyd:"rgb(255, 0, 245)",f_fab:"rgb(175, 175, 175)",f_mask:"rgba(216, 100, 255, 0.400)",f_paste:"rgba(180, 160, 154, 0.902)",f_silks:"rgb(242, 237, 161)",footprint_text_back:"rgb(0, 0, 132)",footprint_text_front:"rgb(194, 194, 194)",footprint_text_invisible:"rgb(132, 132, 132)",grid:"rgb(132, 132, 132)",grid_axes:"rgb(194, 194, 194)",margin:"rgb(255, 38, 226)",microvia:"rgb(0, 132, 132)",no_connect:"rgb(0, 0, 132)",pad_back:"rgb(77, 127, 196)",pad_front:"rgb(200, 52, 52)",pad_plated_hole:"rgb(194, 194, 0)",pad_through_hole:"rgb(227, 183, 46)",plated_hole:"rgb(26, 196, 210)",ratsnest:"rgba(245, 255, 213, 0.702)",select_overlay:"rgb(4, 255, 67)",through_via:"rgb(236, 236, 236)",user_1:"rgb(194, 194, 194)",user_2:"rgb(89, 148, 220)",user_3:"rgb(180, 219, 210)",user_4:"rgb(216, 200, 82)",user_5:"rgb(194, 194, 194)",user_6:"rgb(89, 148, 220)",user_7:"rgb(180, 219, 210)",user_8:"rgb(216, 200, 82)",user_9:"rgb(232, 178, 167)",via_blind_buried:"rgb(187, 151, 38)",via_hole:"rgb(227, 183, 46)",via_micro:"rgb(0, 132, 132)",via_through:"rgb(236, 236, 236)",worksheet:"rgb(200, 114, 171)"}},Aw=(n,e=1)=>{if(Math.abs(n.a)!==Math.abs(n.d))throw new Error("Cannot scale non-uniformly");return e*Math.abs(n.a)},g_={elementOverlay:30,dimensionOverlay:30,editTraceHintOverlay:30,errorOverlay:30,pcbGroupOverlay:25,ratsNestOverlay:20,toolbarOverlay:60,warnings:20,topLayer:10,clickToInteractOverlay:100},tL={red:"red",black:"black",green:"green",board:"rgb(255, 255, 255)",other:"#eee",top:yy.board.copper.f,inner1:yy.board.copper.in1,inner2:yy.board.copper.in2,inner4:yy.board.copper.in4,inner5:yy.board.copper.in5,inner6:yy.board.copper.in6,inner7:yy.board.copper.in7,inner8:yy.board.copper.in8,bottom:yy.board.copper.b,drill:yy.board.anchor,keepout:yy.board.background,tkeepout:yy.board.b_crtyd,tplace:yy.board.b_silks,top_silkscreen:yy.board.f_silks,bottom_silkscreen:yy.board.b_silks,top_fabrication:yy.board.f_fab,bottom_fabrication:yy.board.b_fab,notes:yy.board.user_2,...yy.board},MGn=["board","top","top_silkscreen","bottom_silkscreen","bottom","inner1","inner2","inner3","inner4","inner5","inner6"],AGn=class{canvasLayerMap;ctxLayerMap;aperture;transform;foregroundLayer="top";lastPoint;constructor(n){this.canvasLayerMap=n,this.ctxLayerMap=Object.fromEntries(Object.entries(n).map(([e,t])=>[e,t.getContext("2d")])),this.transform=Gh(),this.transform.d*=-1,this.transform=Io(this.transform,Vo(0,-500)),this.lastPoint={x:0,y:0},this.equip({})}clear(){for(const n of Object.values(this.ctxLayerMap))n.clearRect(0,0,n.canvas.width,n.canvas.height)}equip(n){this.aperture={fontSize:0,shape:"circle",mode:"add",size:0,color:"red",layer:"top",opacity:this.foregroundLayer===n.color?1:.5,...n}}drawMeshPattern(n,e,t,i,r,o=45){const s=this.getLayerCtx(),[a,c]=Dt(this.transform,[n,e]),[l,u]=Dt(this.transform,[n+t,e+i]),d=Aw(this.transform,r);s.lineWidth=1,s.strokeStyle=this.aperture.color;const h=p=>{const f=Math.sin(p),_=Math.cos(p),g=Math.sqrt(Math.pow(l-a,2)+Math.pow(u-c,2));for(let x=-g;x<=g;x+=d)s.beginPath(),s.moveTo(a+x*_-g*f,c+x*f+g*_),s.lineTo(a+x*_+g*f,c+x*f-g*_),s.stroke()};h(o*Math.PI/180),h((o+90)*Math.PI/180)}rect({x:n,y:e,w:t,h:i,mesh_fill:r,is_filled:o=!0,has_stroke:s,is_stroke_dashed:a,stroke_width:c,roundness:l}){const[u,d]=Dt(this.transform,[n-t/2,e-i/2]),[h,p]=Dt(this.transform,[n+t/2,e+i/2]);this.applyAperture();const f=this.getLayerCtx(),_=l?Aw(this.transform,l):0,g=s===void 0?o===!1:s;if(r)f.save(),f.beginPath(),_>0&&f.roundRect?f.roundRect(u,d,h-u,p-d,_):f.rect(u,d,h-u,p-d),f.clip(),this.drawMeshPattern(n-t/2,e-i/2,t,i,.15),f.restore(),_>0&&f.roundRect?(f.beginPath(),f.roundRect(u,d,h-u,p-d,_),f.stroke()):f.strokeRect(u,d,h-u,p-d);else if(o!==!1&&(_>0&&f.roundRect?(f.beginPath(),f.roundRect(u,d,h-u,p-d,_),f.fill()):f.fillRect(u,d,h-u,p-d)),g){const x=f.lineWidth;if(c!==void 0&&(f.lineWidth=Aw(this.transform,c)),a){let v=[];const b=Math.abs(this.transform.a);if(b>0){const P=.1*b,A=P*1.3;P>.5&&(v=[P,A])}f.setLineDash(v)}_>0&&f.roundRect?(f.beginPath(),f.roundRect(u,d,h-u,p-d,_),f.stroke()):f.strokeRect(u,d,h-u,p-d),a&&f.setLineDash([]),c!==void 0&&(f.lineWidth=x)}}rotatedRect(n,e,t,i,r,o,s){const a=this.getLayerCtx();this.applyAperture();const[c,l]=Dt(this.transform,[n-t/2,e-i/2]),[u,d]=Dt(this.transform,[n+t/2,e+i/2]),h=o?Aw(this.transform,o):0;a.save();const[p,f]=Dt(this.transform,[n,e]);a.translate(p,f);const _=360-r;r&&a.rotate(_*Math.PI/180),a.translate(-p,-f),s?(a.beginPath(),h>0&&a.roundRect?a.roundRect(c,l,u-c,d-l,h):a.rect(c,l,u-c,d-l),a.clip(),this.drawMeshPattern(n-t/2,e-i/2,t,i,.15),h>0&&a.roundRect?(a.beginPath(),a.roundRect(c,l,u-c,d-l,h),a.stroke()):a.strokeRect(c,l,u-c,d-l)):h>0&&a.roundRect?(a.beginPath(),a.roundRect(c,l,u-c,d-l,h),a.fill()):a.fillRect(c,l,u-c,d-l),a.restore()}rotatedPill(n,e,t,i,r){const o=this.getLayerCtx();this.applyAperture(),o.save();const[s,a]=Dt(this.transform,[n,e]);o.translate(s,a);const c=360-r;r&&o.rotate(c*Math.PI/180),o.translate(-s,-a),this.pill(n,e,t,i),o.restore()}circle(n,e,t,i){const r=Aw(this.transform,t),[o,s]=Dt(this.transform,[n,e]);this.applyAperture();const a=this.getLayerCtx();i?(a.save(),a.beginPath(),a.arc(o,s,r,0,2*Math.PI),a.clip(),this.drawMeshPattern(n-t,e-t,t*2,t*2,.15),a.restore(),a.beginPath(),a.arc(o,s,r,0,2*Math.PI),a.stroke()):(a.beginPath(),a.arc(o,s,r,0,2*Math.PI),a.fill())}oval(n,e,t,i){const r=Aw(this.transform,t),o=Aw(this.transform,i),[s,a]=Dt(this.transform,[n,e]);this.applyAperture();const c=this.getLayerCtx();c.beginPath(),c.ellipse(s,a,r,o,0,0,2*Math.PI),c.fill(),c.closePath()}pill(n,e,t,i){const[r,o]=Dt(this.transform,[n-t/2,e+i/2]),s=Aw(this.transform,t),a=Aw(this.transform,i),c=Math.min(s,a)/2;this.applyAperture();const l=this.getLayerCtx();l.beginPath(),l.arc(r+c,o+c,c,Math.PI,Math.PI*1.5),l.arc(r+s-c,o+c,c,Math.PI*1.5,0),l.arc(r+s-c,o+a-c,c,0,Math.PI*.5),l.arc(r+c,o+a-c,c,Math.PI*.5,Math.PI),l.fill(),l.closePath()}polygon(n){if(n.length<3)return;this.applyAperture();const e=this.getLayerCtx(),t=n.map(r=>Dt(this.transform,[r.x,r.y]));e.beginPath(),e.moveTo(t[0][0],t[0][1]);for(let r=1;r<t.length;r++)e.lineTo(t[r][0],t[r][1]);e.closePath(),e.fill("evenodd");const i=Aw(this.transform,this.aperture.size);e.lineWidth=i,e.stroke()}debugText(n,e,t){const[i,r]=Dt(this.transform,[e,t]);this.applyAperture();const o=this.getLayerCtx();o.font="10px sans-serif",o.fillText(n,i,r)}getLayerCtx(){const n=this.ctxLayerMap[this.aperture.layer];if(!n)throw new Error(`No context for layer "${this.aperture.layer}"`);return n}orderAndFadeLayers(){const{canvasLayerMap:n,foregroundLayer:e}=this,t=new Set([e,"drill","other","board",e==="top"?"top_silkscreen":e==="bottom"?"bottom_silkscreen":""]);["drill","board",e,...MGn.filter(r=>r!==e)].forEach((r,o)=>{const s=n[r];s&&(r==="bottom_silkscreen"&&e==="bottom"||r==="top_silkscreen"&&e==="top"?s.style.zIndex=`${g_.topLayer}`:s.style.zIndex=`${g_.topLayer-o}`,s.style.opacity=t.has(r)?"1":"0.5")})}applyAperture(){const{transform:n,aperture:e}=this;let{size:t,mode:i,color:r,fontSize:o,layer:s}=e;s in this.ctxLayerMap||(this.aperture.layer="other");const a=this.getLayerCtx();if(!a)throw new Error(`No context for layer "${this.foregroundLayer}"`);if(r||(r="undefined"),a.lineWidth=Aw(n,t),a.lineCap="round",i==="add"){a.globalCompositeOperation="source-over";let c=r?.[0]==="#"||r?.startsWith("rgb")?r:tL[r?.toLowerCase()]?tL[r?.toLowerCase()]:null;c===null&&(console.warn(`Color mapping for "${r}" not found`),c="white"),a.fillStyle=c,a.strokeStyle=c}else a.globalCompositeOperation="destination-out",a.fillStyle="rgba(0,0,0,1)",a.strokeStyle="rgba(0,0,0,1)";a.font=`${Aw(V2(n),o)}px sans-serif`}moveTo(n,e){this.lastPoint={x:n,y:e}}lineTo(n,e){const[t,i]=Dt(this.transform,[n,e]),{size:r,shape:o,mode:s}=this.aperture,a=Aw(this.transform,r);let{lastPoint:c}=this;const l=Dt(this.transform,c);this.applyAperture();const u=this.getLayerCtx();o==="square"&&u.fillRect(l.x-a/2,l.y-a/2,a,a),u.beginPath(),u.moveTo(l.x,l.y),u.lineTo(t,i),u.stroke(),u.closePath(),o==="square"&&u.fillRect(t-a/2,i-a/2,a,a),this.lastPoint={x:n,y:e}}polygonWithArcs(n){const e=this.getLayerCtx(),t=i=>{if(i.vertices.length===0)return;const r=i.vertices[0],o=Dt(this.transform,[r.x,r.y]);e.moveTo(o[0],o[1]);for(let s=0;s<i.vertices.length;s++){const a=i.vertices[s],c=i.vertices[(s+1)%i.vertices.length];if(a.bulge&&a.bulge!==0){const l=a.bulge,u=c.x-a.x,d=c.y-a.y,h=Math.sqrt(u*u+d*d);if(h<1e-9){const O=Dt(this.transform,[c.x,c.y]);e.lineTo(O[0],O[1]);continue}const p=4*Math.atan(l),f=Math.abs(h/(2*Math.sin(p/2))),_=(a.x+c.x)/2,g=(a.y+c.y)/2,x=u/h,b=-(d/h),S=x,P=Math.sqrt(Math.max(0,f*f-(h/2)**2)),A=_+P*b*Math.sign(l),R=g+P*S*Math.sign(l),T=Math.atan2(a.y-R,a.x-A);let I=Math.atan2(c.y-R,c.x-A);l>0&&I<T?I+=2*Math.PI:l<0&&I>T&&(I-=2*Math.PI);const C=Dt(this.transform,[A,R]),z=Aw(this.transform,f);e.arc(C[0],C[1],z,-T,-I,l>0)}else{const l=Dt(this.transform,[c.x,c.y]);e.lineTo(l[0],l[1])}}e.closePath()};if(e.beginPath(),t(n.outer_ring),n.inner_rings)for(const i of n.inner_rings)t(i);e.fill("evenodd")}};function CGn(n){const{lines:e,anchorPoint:t,ccwRotation:i}=n;if(!i)return e;const r=i*Math.PI/180,o=X_(r),s=Io(Vo(t.x,t.y),o,Vo(-t.x,-t.y));return Dt(s,t),e.map(a=>({...a,x1:Dt(s,{x:a.x1,y:a.y1}).x,y1:Dt(s,{x:a.x1,y:a.y1}).y,x2:Dt(s,{x:a.x2,y:a.y2}).x,y2:Dt(s,{x:a.x2,y:a.y2}).y}))}var i0t={0:"M0.4544564813877358 0L0.2723441540828736 0.03592830447352719L0.1086847233315459 0.14528754990019965L0.020630545837255005 0.3040632652221331L0 0.5395277421960205L0.049259221760993496 0.7369487828466779L0.18080513776237842 0.9005494166306564L0.37036887043974215 0.9872116270037247L0.5864663759301132 1L0.8148695622827444 0.9332890276148733L0.9326583645506394 0.8113052246023419L1 0.4031281830668562L0.833288960385582 0.09886798567812842L0.6801767918233781 0.02483708485091681L0.4544564813877358 0",1:"M 0.198 0.272 L 0.537 0 L 0.54 1",2:"M0.069593147751606 0.19461498231706575L0.1039380353319058 0.1224291500164194L0.20543361884368308 0.05510832064153169L0.3717712794432549 0.009452970962689482L0.4785344452623127 0L0.663238590738758 0.008714098643339864L0.8017933618843684 0.04769189395915288L0.8775637379550322 0.10746757678258442L0.9047778372591005 0.17693069668193287L0.9029710920770878 0.2231347105796246L0.8704496788008566 0.30047744598157516L0.7292906538577354 0.4508486051631194L0.3737955032119913 0.7369006417749693L0 1L1 1",3:"M0.03917438899874637 0.19855364635107545L0.15510940508963084 0.06745632622133718L0.37598645522339846 0L0.8486391893813088 0.0652271323161611L0.9782182415054349 0.21747394183735683L0.9213133780517754 0.3547560290117714L0.6504271515903481 0.4543436297681271L0.22975249764129613 0.48476611625264143L0.7659038682744629 0.5411919558122493L0.9258712987734741 0.6203185665660985L1 0.7458360609169667L0.8938813281118737 0.9059190913045964L0.6166890258875837 1L0.261528440153542 0.9874861530507921L0 0.8837289530851273",4:"M0.7328897338403042 0L0 0.6684672518568535L1 0.6684672518568535M0.7243346007604563 0.4530722484807562L0.7243346007604563 1",5:"M 0 0 L 0 0.4973 L 0.4262 0.4319 L 0.7305 0.4565 L 0.8516 0.5009 L 0.9357 0.5639 L 1 0.7356 L 0.9696 0.8248 L 0.8898 0.895 L 0.733 0.9602 L 0.5518 0.9945 L 0.3814 1 L 0.2379 0.9821 L 0.1219 0.947 L 0 0.8748 M 0 0 L 1 0",6:"M0.6964601700926856 0L0.3639239026215478 0.0743562375769351L0.1415931962925719 0.21735490179786915L0.009977939399608712 0.46336322325406004L0.00029622007592593224 0.7083131475173043L0.09408885043224748 0.8746809149767036L0.3379247445101846 0.9876686500961888L0.7109203869569624 1L0.9260852957913362 0.9103558029693921L1 0.7716571969091733L0.9824294723385016 0.6390635485705886L0.7446504992867332 0.4733643097729175L0.31028858071607296 0.47578021640899115L0.1208702146816024 0.5481452483973847L0 0.6616669755788906",7:"M0 0L1 0L0.9246479649697582 0.030539772727272752L0.8850302419354837 0.05075757575757579L0.7922946068548385 0.11079545454545457L0.7419268208165322 0.15213068181818185L0.6907258064516127 0.20202020202020204L0.6400666267641127 0.26122159090909086L0.5913243447580644 0.33049242424242414L0.5458740234374998 0.4105902777777778L0.5050907258064514 0.5022727272727272L0.4703495148689514 0.6062973484848484L0.43257456133442534 0.787133049242424L0.41612903225806447 1",8:"M0.5143001078924863 0L0.16007477667923162 0.10731570786949331L0.14924628550868277 0.3146018498698755L0.2939585848842112 0.41617921794558677L0.8648302624811545 0.5385163833653317L1 0.7775820770511038L0.8180842915260376 0.9505845566922285L0.41968938540525413 1L0.08062381919779889 0.882831681184498L0 0.6936376947135333L0.17150171673893433 0.5188652309607817L0.6529263782780712 0.4242818653203618L0.8650205888491803 0.29644027376796367L0.8702067371119496 0.09910067291661573L0.5143001078924863 0",9:"M1 0.25379591792994305L0.9514789771111742 0.11679361536614272L0.8702482473521467 0.05711741614054847L0.7327445265851579 0.015213872471965633L0.525248180711544 0L0.3292056884418538 0.012928195113745608L0.15997632037247655 0.058762870026191856L0.05266940041228321 0.12882439350476L0 0.2562067822770946L0.11316462894512366 0.4121335905917837L0.2403060136479954 0.4603365890068938L0.4097241967586011 0.4745978388276783L0.8642414300184816 0.420815170259988L0.9732054796346318 0.34537434075898393L1 0.25379591792994305M0.9647426784191072 0.35488595400360495L0.4756895081034974 1",A:"M0 1L0.4808333333333333 0L1 1M0.24250000000000002 0.6099439775910365L0.7341666666666666 0.6099439775910365",B:"M0 1L0 0.0117369978777208L0.30665717153513444 0L0.5874522807082946 0.03451403469442413L0.7766202217193218 0.15033936404895643L0.7471969743588041 0.31967962568332936L0.5246013359741988 0.4102978954282461L0.04378745314885416 0.44918617613783574L0.5112949594180156 0.469692928091109L0.8540266515643348 0.5552749498651879L1 0.6868463175009967L0.9880091196159324 0.8570018204672155L0.922301719975498 0.9321708046604659L0.7584266951758925 0.9932594737131338L0 1",C:"M1 0.23038928858890784L0.9328355511865092 0.12426412616785204L0.8096380839483327 0.04912601676267708L0.5763225801788256 0L0.4039037709527492 0.015028068281399815L0.2519579390951737 0.06533979308999706L0.10359458463139784 0.18146243506591617L0 0.4862728453971315L0.08129580872733055 0.792689266886982L0.20257034847159672 0.9160822255736587L0.3286572892798542 0.9738230826074175L0.5742878414421707 1L0.7883510303801312 0.9665431511195721L0.946851033994232 0.8689071500976585L1 0.7311049027121912",D:"M0 1L0.015604366822624637 0.020770988281483303L0.22564758265176144 0L0.3865476147957666 0.0024153386496795644L0.6479126635475078 0.051745644338731314L0.841191887805517 0.15827717679529366L0.9517008345536152 0.30172260586872185L0.9957536578687336 0.4504541551987709L1 0.5624359222498485L0.9798483279164735 0.6584121775234548L0.9386273319285215 0.7395945263504481L0.806292129480815 0.8624239259880274L0.6296239151398265 0.9406169638094516L0.3397492767598845 0.9954164354263132L0 1",E:"M0 0L0 1M0 0L1 0M0 0.5L0.7 0.5M0 1L1 1",F:"M0 0L0 1M0.011363636363636364 0.006802721088435374L1 0.006802721088435374M0.011363636363636364 0.4965986394557823L0.8409090909090909 0.4965986394557823",G:"M0.902666857540557 0.03860785012651126L0.6504261864675637 0L0.3838947267237336 0.015442305268228053L0.21293332876776194 0.07706794377239819L0.07799659974941617 0.1994951236187481L0 0.46380381528937314L0.04159964421546915 0.7502491408002389L0.13176692977834842 0.8535497868383203L0.2709176262273927 0.936767572377719L0.4386472596876406 0.9891638569283179L0.6145513562841309 1L0.7782254421419019 0.9585373611026471L0.9092650433859927 0.8540372997461425L1 0.5556012645283437L0.5583959277303046 0.55491741080559",H:"M0 0L0 1M0 0.4788732394366197L0.989010989010989 0.4788732394366197M1 0L1 1",I:"M0.5 0L0.5 1",J:"M0.9976457238788704 0L1 0.7396412315872798L0.9773931362096968 0.8322033314977973L0.9345115952458736 0.882296255506608L0.8743862896259549 0.9221331222466961L0.8024024079884948 0.9526431718061675L0.6443996712151668 0.9893997797356828L0.5035848940343224 1L0.3127211130319937 0.9877004749449337L0.17201910858386513 0.9539509911894274L0.10357419806379677 0.9212555066079295L0.053656568662899015 0.8816079295154184L0.020759483663648916 0.8360407488986785L0.003376206348523566 0.7855864537444934L0 0.7312775330396476",K:"M0 0L0 1M0.8787878787878788 0.06666666666666667L0 0.6148148148148148M0.3333333333333333 0.45925925925925926L1 0.9777777777777777",L:"M0 0L0 1L1 1",M:"M0 1L0 0L0.5 0.6512L1 0L1 1",N:"M0 1L0 0L1 1L0.9803729146221786 0",O:"M0.4718499217948183 1L0.2896765846490613 0.9606979309189402L0.12315162147934663 0.8411184486080473L0 0.4352399966492615L0.11730398524516283 0.13145645436014852L0.2612197451988078 0.04493357858878059L0.5104071592772554 0L0.7450113425917159 0.05393013710105273L0.882367950645524 0.15242300282020502L1 0.5224527406249126L0.9414597290654386 0.7560662329321755L0.8371289514446183 0.8910800547287298L0.6518259868433511 0.9830452628933628L0.4718499217948183 1",P:"M0 1L0 0.018871774228013626L0.29609603495819875 0L0.5609840637427541 0.011794858892508529L0.7332142696692472 0.04353904702296349L0.8102258645858864 0.0691965055027166L0.9330504315465442 0.14445061754775845L0.9876391714147118 0.22527816445836535L1 0.3434414070631638L0.9510549958116356 0.41772808046663146L0.8746646891596713 0.45879131862541683L0.7528523813396283 0.49171525113425024L0.5766919939969619 0.5153253033973054L0.33725744877712827 0.5284469008187558L0.025622667325582785 0.529905468802775",Q:"M0.4618887943546369 0.9755918167206952L0.28356128136544534 0.9372490397450218L0.12055179272160406 0.8205882753548176L0 0.4246165790405623L0.1148276047430244 0.12824784112887844L0.25570518844754375 0.043836831567190586L0.49963205786237674 0L0.7292835601228574 0.0526138004304122L0.8637404608452104 0.14870263423138746L0.9788892040030622 0.5097006183769648L0.9215847647858059 0.7376120297474734L0.8194564929275405 0.869330409436378L0.6380654214095985 0.9590509139448092L0.4618887943546369 0.9755918167206952M0.5824181120212351 0.6861805006946525L1 1",R:"M0 0.9928375167236815L0 0.02590227442068435L0.3611517274211098 0L0.6146286724700761 0.008660554424468435L0.7675462459194776 0.035269459580494614L0.831839975516866 0.056961676692569484L0.8847592491838954 0.08519560521497332L0.9238557535364527 0.120683646438422L0.9583303225312839 0.21691797435320384L0.955092470586235 0.3022616904894429L0.9198097669001631 0.3640573439322699L0.8564862239866702 0.40639258627024005L0.7691258543593579 0.43335506909190874L0.601775027203482 0.4539166070813109L0.023939064200217658 0.46997623755243123M0.5038084874863982 0.5108023922274467L1 1",S:"M0.8886929689221953 0.15146982162688968L0.7276173683050475 0.013780286031594946L0.34582323121005076 0L0.1318235250900008 0.09920162734298861L0.0444543935052531 0.2811287071349243L0.08064065829108809 0.3709571405906485L0.21603115127470426 0.4485505768228281L0.7525409135992945 0.5111160926769565L0.9330263665417677 0.5850732219351329L1 0.7129938124702524L0.9117772389978691 0.9130572743138187L0.6423187128058188 1L0.29586019579751677 0.9935291584506244L0.10638454191462794 0.9229845198431584L0 0.7570771288048773",T:"M0 0L1 0M0.5148514851485149 0L0.5148514851485149 1",U:"M0 0L0.0023103778751369115 0.5467447428390111L0.01823032542100219 0.6954785891481812L0.05895528135268338 0.8056480226151669L0.13703402031421133 0.8894445726483398L0.23918400876232196 0.9448524533417946L0.3917887458926616 0.9848674531975652L0.584341627875137 1L0.7194816196604602 0.9848501456716763L0.8303268115073934 0.9449411544119768L0.8966613970084885 0.898186315516197L0.9251437568455642 0.867453197565408L0.9687114937020809 0.7890904895145239L0.9890470974808324 0.6852857184065537L1 0.0014769088758762145",V:"M0 0L0.5348837209302325 1L1 0",W:"M0 0L0.23300090661831369 0.9873417721518988L0.49954669084315495 0.30081906180193585L0.7851314596554849 1L1 0.0215934475055845",X:"M0 0L0.9893617021276596 1M1 0L0.010638297872340425 1",Y:"M0 0L0.4860515021459227 0.44712562100780695M1 0.0014194464158977947L0.48927038626609437 0.44996451383960256L0.5075107296137339 1",Z:"M0 0L1 0L0 1L1 1",".":"M 0.49 1 L 0.41 1","*":"M 0.5 0.25 L 0.8 0.25 M 0.5 0.25 L 0.5927 0.4402 M 0.5 0.25 L 0.2573 0.3676 M 0.5 0.25 L 0.2573 0.1324 M 0.5 0.25 L 0.599 0.055","(":"M0.75 0L0.25 0.5L0.25 0.5L0.75 1",")":"M0.25 0L0.75 0.5L0.75 0.5L0.25 1","-":"M0 0.5L1 0.5","+":"M 0 0.5 L 1 0.5 M 0.5 0.125 L 0.5 0.875","=":"M0 0.25L1 0.25M0 0.75L1 0.75",_:"M0 1 L1 1","[":"M0.75 0L0.25 0L0.25 1L0.75 1","]":"M0.25 0L0.75 0L0.75 1L0.25 1","<":"M0.75 0L0.25 0.5L0.25 0.5L0.75 1",">":"M0.25 0L0.75 0.5L0.75 0.5L0.25 1","'":"M 0.5 0 L 0.5 0.5",'"':"M 0.25 0 L 0.25 0.5 M 0.75 0 L 0.75 0.5"},Xxe={};for(const n in i0t){Xxe[n]=[];const e=i0t[n].split("M").slice(1).map(t=>t.split("L").map(i=>i.trim().split(" ").map(parseFloat)));for(const t of e)for(let i=0;i<t.length-1;i++)Xxe[n].push({x1:t[i][0],y1:1-t[i][1],x2:t[i+1][0],y2:1-t[i+1][1]})}var r0t=.6,o0t=.2,PGn=n=>{if(n.text.length===0)return 0;const e=n.size*.7,t=e*r0t,i=e*o0t;return n.text.length*t+(n.text.length-1)*i},RGn=n=>{const e=n.size*.7;if(e<=0||n.text.length===0)return[];const t=e/12,i=Math.max(0,e-t),r=t/2,o=e*r0t,s=Math.max(0,o-t),a=t/2,c=e*o0t,l=[];let u=n.x;for(let d=0;d<n.text.length;d++){const h=n.text[d],p=Xxe[h.toUpperCase()];if(!p){u+=o+c;continue}for(const{x1:f,y1:_,x2:g,y2:x}of p)l.push({_pcb_drawing_object_id:__("line"),pcb_drawing_type:"line",x1:u+a+s*f,y1:n.y+r+i*_,x2:u+a+s*g,y2:n.y+r+i*x,width:t,layer:n.layer,unit:n.unit});u+=o+c}return l};function OT(n){const t=n.color??tL[n.layer];return n.is_mouse_over||n.is_in_highlighted_net?VVn(t).lighten(.5).rgb().toString():t}var s0t=(n,e)=>{n.equip({size:e.zoomIndependent?e.width/n.transform.a:e.width,shape:e.squareCap?"square":"circle",color:OT(e),layer:e.layer}),n.moveTo(e.x1,e.y1),n.lineTo(e.x2,e.y2)},IGn=(n,e)=>{n.equip({fontSize:e.size,color:OT(e),layer:e.layer});let t={x:0,y:0};const i=PGn(e),r=e.size;switch(e.align){case"top_left":t.x=0,t.y=-r;break;case"top_center":t.x=-i/2,t.y=-r;break;case"top_right":t.x=-i,t.y=-r;break;case"center_left":t.x=0,t.y=-r/2;break;case"center":t.x=-i/2,t.y=-r/2;break;case"center_right":t.x=-i,t.y=-r/2;break;case"bottom_left":t.x=0,t.y=0;break;case"bottom_center":t.x=-i/2,t.y=0;break;case"bottom_right":t.x=-i,t.y=0;break;default:t.x=0,t.y=0;break}e.x??=0,e.y??=0;const o={x:e.x,y:e.y};let s=RGn({...e,x:e.x+t.x,y:e.y+t.y});if(e.layer==="bottom_silkscreen"&&(s=s.map(a=>({...a,x1:2*e.x-a.x1,x2:2*e.x-a.x2}))),e.ccw_rotation){const a={lines:s,anchorPoint:o,ccwRotation:e.ccw_rotation};s=CGn(a)}for(const a of s)s0t(n,a)},NGn=(n,e)=>{n.equip({color:OT(e),layer:e.layer,size:e.stroke_width}),n.rect({x:e.x,y:e.y,w:e.w,h:e.h,mesh_fill:e.mesh_fill,is_filled:e.is_filled,has_stroke:e.has_stroke,is_stroke_dashed:e.is_stroke_dashed,stroke_width:e.stroke_width,roundness:e.roundness})},kGn=(n,e)=>{n.equip({color:OT(e),layer:e.layer}),n.rotatedRect(e.x,e.y,e.w,e.h,e.ccw_rotation,e.roundness,e.mesh_fill)},OGn=(n,e)=>{n.equip({color:OT(e),layer:e.layer}),n.rotatedPill(e.x,e.y,e.w,e.h,e.ccw_rotation)},LGn=(n,e)=>{n.equip({color:OT(e),layer:e.layer}),n.circle(e.x,e.y,e.r,e.mesh_fill)},DGn=(n,e)=>{n.equip({color:OT(e),layer:e.layer}),n.oval(e.x,e.y,e.rX,e.rY)},$Gn=(n,e)=>{n.equip({color:OT(e),layer:e.layer}),n.pill(e.x,e.y,e.w,e.h)},zGn=(n,e)=>{n.equip({color:OT(e),layer:e.layer}),n.polygon(e.points)},FGn=(n,e)=>{n.equip({color:OT(e),layer:e.layer}),n.polygonWithArcs(e.brep_shape)},BGn=(n,e)=>{switch(e.pcb_drawing_type){case"line":return s0t(n,e);case"text":return IGn(n,e);case"rect":return e.ccw_rotation?kGn(n,e):NGn(n,e);case"circle":return LGn(n,e);case"oval":return DGn(n,e);case"pill":return e.ccw_rotation?OGn(n,e):$Gn(n,e);case"polygon":return zGn(n,e);case"polygon_with_arcs":return FGn(n,e)}},UGn=(n,e)=>{for(const t of e)BGn(n,t)},jGn=["board","bottom_silkscreen","bottom","top","top_silkscreen","inner1","inner2","inner3","inner4","inner5","inner6","drill","notes","other"],HGn=({primitives:n,transform:e,grid:t,width:i=500,height:r=500})=>{const o=be.useRef({}),s=Vb(a=>a.selected_layer);return be.useEffect(()=>{if(!o.current||Object.keys(o.current).length===0)return;const a=new AGn(o.current);e&&(a.transform=e),a.clear(),a.foregroundLayer=s,UGn(a,n),a.orderAndFadeLayers()},[n,e,s]),de.jsxs("div",{style:{backgroundColor:"black",width:i,height:r,position:"relative"},children:[de.jsx(Axe.SuperGrid,{textColor:"rgba(0,255,0,0.8)",majorColor:"rgba(0,255,0,0.4)",minorColor:"rgba(0,255,0,0.2)",screenSpaceCellSize:200,width:i,height:r,transform:e,stringifyCoord:(a,c,l)=>`${Axe.toMMSI(a,l)}, ${Axe.toMMSI(c,l)}`}),jGn.map(a=>a.replace(/-/g,"")).map((a,c)=>de.jsx("canvas",{className:`pcb-layer-${a}`,ref:l=>{o.current??={},o.current[a]=l},style:{position:"absolute",zIndex:c,left:0,top:0,pointerEvents:"none"},width:i,height:r},a))]})},VGn=.6,qGn=1;Bmt(Dqn()),Bmt(Qqn());var Jq=["rgba(239, 68, 68, 0.8)","rgba(249, 115, 22, 0.8)","rgba(245, 158, 11, 0.8)","rgba(234, 179, 8, 0.8)","rgba(132, 204, 22, 0.8)","rgba(34, 197, 94, 0.8)","rgba(16, 185, 129, 0.8)","rgba(20, 184, 166, 0.8)","rgba(6, 182, 212, 0.8)","rgba(14, 165, 233, 0.8)","rgba(59, 130, 246, 0.8)","rgba(99, 102, 241, 0.8)","rgba(139, 92, 246, 0.8)","rgba(168, 85, 247, 0.8)","rgba(217, 70, 239, 0.8)","rgba(236, 72, 153, 0.8)","rgba(249, 168, 212, 0.8)","rgba(161, 161, 170, 0.8)"];function a0t(n,e,t,i={}){const r=i.padding??40,o=i.yFlip??!1;let s;if("center"in n){const u=n.width/2,d=n.height/2;s={minX:n.center.x-u,maxX:n.center.x+u,minY:n.center.y-d,maxY:n.center.y+d}}else s=n;const a=s.maxX-s.minX||1,c=s.maxY-s.minY||1,l=Math.min((e-2*r)/a,(t-2*r)/c);return Io(Vo(e/2,t/2),Xm(l,o?-l:l),Vo(-(s.minX+a/2),-(s.minY+c/2)))}function GGn(n){const e=[...n.points||[],...(n.lines||[]).flatMap(t=>t.points),...(n.rects||[]).flatMap(t=>{const i=t.width/2,r=t.height/2;return[{x:t.center.x-i,y:t.center.y-r},{x:t.center.x+i,y:t.center.y-r},{x:t.center.x-i,y:t.center.y+r},{x:t.center.x+i,y:t.center.y+r}]}),...(n.circles||[]).flatMap(t=>[{x:t.center.x-t.radius,y:t.center.y},{x:t.center.x+t.radius,y:t.center.y},{x:t.center.x,y:t.center.y-t.radius},{x:t.center.x,y:t.center.y+t.radius}]),...(n.texts||[]).flatMap(t=>{const i=t.fontSize??12,r=t.text.length*i*VGn,o=i*qGn,s=t.anchorSide??"center",a={top_left:{dx:0,dy:0},top_center:{dx:-r/2,dy:0},top_right:{dx:-r,dy:0},center_left:{dx:0,dy:-o/2},center:{dx:-r/2,dy:-o/2},center_right:{dx:-r,dy:-o/2},bottom_left:{dx:0,dy:-o},bottom_center:{dx:-r/2,dy:-o},bottom_right:{dx:-r,dy:-o}},{dx:c,dy:l}=a[s],u=t.x+c,d=t.y+l;return[{x:u,y:d},{x:u+r,y:d+o}]})];return e.length===0?{minX:-1,maxX:1,minY:-1,maxY:1}:e.reduce((t,i)=>({minX:Math.min(t.minX,i.x),maxX:Math.max(t.maxX,i.x),minY:Math.min(t.minY,i.y),maxY:Math.max(t.maxY,i.y)}),{minX:1/0,maxX:-1/0,minY:1/0,maxY:-1/0})}function YGn(n,e,t={}){const i=e instanceof HTMLCanvasElement?e.getContext("2d"):e;if(!i)throw new Error("Could not get 2D context from canvas");const r=e instanceof HTMLCanvasElement?e.width:e.canvas.width,o=e instanceof HTMLCanvasElement?e.height:e.canvas.height;let s;if(t.transform)s=t.transform;else if(t.viewbox)s=a0t(t.viewbox,r,o,{padding:t.padding,yFlip:t.yFlip});else{const a=GGn(n),c=n.coordinateSystem==="cartesian";s=a0t(a,r,o,{padding:t.padding??40,yFlip:c})}i.clearRect(0,0,r,o),i.save(),n.rects&&n.rects.length>0&&n.rects.forEach(a=>{const c=a.width/2,l=a.height/2,u=Dt(s,{x:a.center.x-c,y:a.center.y-l}),d=Dt(s,{x:a.center.x+c,y:a.center.y+l}),h=Math.abs(d.x-u.x),p=Math.abs(d.y-u.y);i.beginPath(),i.rect(Math.min(u.x,d.x),Math.min(u.y,d.y),h,p),a.fill&&(i.fillStyle=a.fill,i.fill()),a.stroke&&(i.strokeStyle=a.stroke,i.stroke())}),n.circles&&n.circles.length>0&&n.circles.forEach(a=>{const c=Dt(s,a.center),l=a.radius*Math.abs(s.a);i.beginPath(),i.arc(c.x,c.y,l,0,2*Math.PI),a.fill&&(i.fillStyle=a.fill,i.fill()),a.stroke&&(i.strokeStyle=a.stroke??"transparent",i.stroke())}),n.lines&&n.lines.length>0&&n.lines.forEach((a,c)=>{if(a.points.length===0)return;i.beginPath();const l=Dt(s,a.points[0]);i.moveTo(l.x,l.y);for(let u=1;u<a.points.length;u++){const d=Dt(s,a.points[u]);i.lineTo(d.x,d.y)}if(i.strokeStyle=a.strokeColor||Jq[c%Jq.length],a.strokeWidth?i.lineWidth=a.strokeWidth*s.a:i.lineWidth=2,i.lineCap="round",a.strokeDash)if(typeof a.strokeDash=="string"){let u;if(a.strokeDash.includes(","))u=a.strokeDash.split(",").map(d=>parseFloat(d.trim())).filter(d=>!Number.isNaN(d));else{const d=parseFloat(a.strokeDash.trim());u=Number.isNaN(d)?[]:[d]}i.setLineDash(u)}else i.setLineDash(a.strokeDash.map(u=>u*Math.abs(s.a)));else i.setLineDash([]);i.stroke()}),n.points&&n.points.length>0&&n.points.forEach((a,c)=>{const l=Dt(s,a);i.beginPath(),i.arc(l.x,l.y,3,0,2*Math.PI),i.fillStyle=a.color||Jq[c%Jq.length],i.fill(),a.label&&!t.disableLabels&&(i.fillStyle=a.color||"black",i.font="12px sans-serif",i.fillText(a.label,l.x+5,l.y-5))}),n.texts&&n.texts.length>0&&n.texts.forEach(a=>{const c=Dt(s,{x:a.x,y:a.y});i.fillStyle=a.color||"black",i.font=`${(a.fontSize??12)*Math.abs(s.a)}px sans-serif`;const l=a.anchorSide??"center",u={top_left:"left",center_left:"left",bottom_left:"left",top_center:"center",center:"center",bottom_center:"center",top_right:"right",center_right:"right",bottom_right:"right"},d={top_left:"top",top_center:"top",top_right:"top",center_left:"middle",center:"middle",center_right:"middle",bottom_left:"bottom",bottom_center:"bottom",bottom_right:"bottom"};i.textAlign=u[l],i.textBaseline=d[l],i.fillText(a.text,c.x,c.y)}),i.restore()}var XGn=({children:n,transform:e,debugGraphics:t})=>{const i=be.useRef(null),[r,{width:o,height:s}]=Qq(),a=Vb(c=>c.is_showing_autorouting);return be.useEffect(()=>{a&&i.current&&t&&o&&s&&(i.current.width=o,i.current.height=s,YGn(t,i.current,{transform:e,disableLabels:!0}))},[t,e,o,s,a]),a?de.jsxs("div",{ref:r,style:{position:"relative",width:"100%",height:"100%"},children:[n,de.jsx("canvas",{ref:i,style:{position:"absolute",top:0,left:0,opacity:.5,zIndex:100,width:"100%",height:"100%",pointerEvents:"none"}})]}):n},WGn=({children:n,transform:e=Gh(),elements:t=[]})=>{const[i,{width:r,height:o}]=Qq(),s=be.useRef(null);return be.useEffect(()=>{const a=s.current;if(!a||!r||!o)return;a.width=r,a.height=o;const c=a.getContext("2d");if(!c)return;c.clearRect(0,0,r,o);const l=t.filter(d=>d.type==="pcb_component"),u=t.filter(d=>d.type==="pcb_manual_edit_conflict_warning");c.strokeStyle=yy.board.drc_warning,c.lineWidth=2,u.forEach(d=>{const h=l.find(Z=>Z.pcb_component_id===d.pcb_component_id);if(!h)return;const{width:p,height:f,center:_}=h,g=Dt(e,_),x=p*Math.abs(e.a),v=f*Math.abs(e.d),b=.1*Math.abs(e.a),S=x+b*2,P=v+b*2,A=g.x-S/2,R=g.y-P/2;c.beginPath(),c.rect(A,R,S,P),c.stroke();const T="Manual Edit Conflict",I=4,C=Math.max(8,Math.min(12,10*Math.abs(e.a)));c.font=`${C}px sans-serif`;const O=c.measureText(T).width+I*2,j=C+I*2,V=A+(S-O)/2,G=R+P+5;c.fillStyle="rgba(0, 0, 0, 0.7)",c.beginPath(),c.roundRect(V,G,O,j,3),c.fill(),c.fillStyle=yy.board.drc_warning,c.textAlign="center",c.textBaseline="middle",c.fillText(T,V+O/2,G+j/2)})},[t,e,r,o]),de.jsxs("div",{ref:i,style:{position:"relative",width:"100%",height:"100%"},children:[n,de.jsx("canvas",{ref:s,style:{position:"absolute",top:0,left:0,pointerEvents:"none",zIndex:g_.warnings}})]})},ZGn=({children:n,transform:e,focusOnHover:t=!1})=>{e||(e=Gh());const[i,r]=be.useState(!1),[o,s]=be.useState(!1),[a,c]=be.useState(!1),l=()=>{a&&(c(!1),window.dispatchEvent(new Event("disarm-dimension-tool")))},[u,d]=be.useState({x:0,y:0}),[h,p]=be.useState({x:0,y:0}),f=be.useRef({x:0,y:0}),_=be.useRef(null),x=_.current?.getBoundingClientRect();be.useEffect(()=>{const P=_.current,A=C=>{C.key==="d"&&(d({x:f.current.x,y:f.current.y}),p({x:f.current.x,y:f.current.y}),r(z=>!z),s(!0),l()),C.key==="Escape"&&(r(!1),s(!1),l())},R=()=>{c(!0)},T=()=>{P&&window.addEventListener("keydown",A)},I=()=>{P&&window.removeEventListener("keydown",A)};return window.addEventListener("arm-dimension-tool",R),P&&(P.addEventListener("focus",T),P.addEventListener("blur",I),P.addEventListener("mouseenter",T),P.addEventListener("mouseleave",I)),()=>{window.removeEventListener("arm-dimension-tool",R),l(),P&&(P.removeEventListener("focus",T),P.removeEventListener("blur",I),P.removeEventListener("mouseenter",T),P.removeEventListener("mouseleave",I))}},[_]);const v=Dt(e,u),b=Dt(e,h),S={left:Math.min(v.x,b.x),right:Math.max(v.x,b.x),top:Math.min(v.y,b.y),bottom:Math.max(v.y,b.y),flipX:v.x>b.x,flipY:v.y>b.y,width:0,height:0};return S.width=S.right-S.left,S.height=S.bottom-S.top,de.jsxs("div",{ref:_,tabIndex:0,style:{position:"relative"},onMouseEnter:()=>{t&&_.current&&_.current.focus()},onMouseLeave:()=>{_.current&&_.current.blur()},onMouseMove:P=>{const A=P.currentTarget.getBoundingClientRect(),R=P.clientX-A.left,T=P.clientY-A.top,I=Dt(V2(e),{x:R,y:T});f.current.x=I.x,f.current.y=I.y,o&&p({x:I.x,y:I.y})},onMouseDown:P=>{const A=P.currentTarget.getBoundingClientRect(),R=P.clientX-A.left,T=P.clientY-A.top,I=Dt(V2(e),{x:R,y:T});a&&!i?(d({x:I.x,y:I.y}),p({x:I.x,y:I.y}),r(!0),s(!0),l()):o?s(!1):i&&r(!1)},children:[n,i&&de.jsxs(de.Fragment,{children:[de.jsx("div",{style:{position:"absolute",left:S.left,width:S.width,textAlign:"center",top:v.y+2,color:"red",mixBlendMode:"difference",pointerEvents:"none",marginTop:S.flipY?0:-20,fontSize:12,fontFamily:"sans-serif",zIndex:g_.dimensionOverlay},children:Math.abs(u.x-h.x).toFixed(2)}),de.jsx("div",{style:{position:"absolute",left:b.x,height:S.height,display:"flex",flexDirection:"column",justifyContent:"center",top:S.top,color:"red",pointerEvents:"none",mixBlendMode:"difference",fontSize:12,fontFamily:"sans-serif",zIndex:g_.dimensionOverlay},children:de.jsx("div",{style:{marginLeft:S.flipX?"-100%":4,paddingRight:4},children:Math.abs(u.y-h.y).toFixed(2)})}),de.jsxs("svg",{style:{position:"absolute",left:0,top:0,pointerEvents:"none",mixBlendMode:"difference",zIndex:g_.dimensionOverlay},width:x.width,height:x.height,children:[de.jsx("defs",{children:de.jsx("marker",{id:"head",orient:"auto",markerWidth:"3",markerHeight:"4",refX:"2",refY:"2",children:de.jsx("path",{d:"M0,0 V4 L2,2 Z",fill:"red"})})}),de.jsx("line",{x1:v.x,y1:v.y,x2:b.x,y2:b.y,markerEnd:"url(#head)",strokeWidth:1.5,fill:"none",stroke:"red"}),de.jsx("line",{x1:v.x,y1:v.y,x2:b.x,y2:v.y,strokeWidth:1.5,fill:"none",strokeDasharray:"2,2",stroke:"red"}),de.jsx("line",{x1:b.x,y1:v.y,x2:b.x,y2:b.y,strokeWidth:1.5,fill:"none",strokeDasharray:"2,2",stroke:"red"})]}),de.jsxs("div",{style:{right:0,bottom:0,position:"absolute",color:"red",fontFamily:"sans-serif",fontSize:12,margin:4},children:["(",u.x.toFixed(2),",",u.y.toFixed(2),")",de.jsx("br",{}),"(",h.x.toFixed(2),",",h.y.toFixed(2),")",de.jsx("br",{}),"dist:"," ",Math.sqrt((h.x-u.x)**2+(h.y-u.y)**2).toFixed(2)]})]})]})},KGn=(n,e,t=0)=>{const i=n.width/2,r=n.height/2,o=n.center.x-i-t,s=n.center.x+i+t,a=n.center.y-r-t,c=n.center.y+r+t;return e.x>o&&e.x<s&&e.y>a&&e.y<c},QGn=({children:n,disabled:e,transform:t,soup:i,cancelPanDrag:r,onCreateEditEvent:o,onModifyEditEvent:s})=>{t||(t=Gh());const a=be.useRef(null),[c,l]=be.useState(null),[u,d]=be.useState(null),h=c!==null;Vb(g=>g.in_edit_mode);const p=Vb(g=>g.in_move_footprint_mode),f=Vb(g=>g.setIsMovingComponent),_=e||!p;return de.jsxs("div",{ref:a,style:{position:"relative",overflow:"hidden"},onMouseDown:g=>{if(_)return;const x=g.currentTarget.getBoundingClientRect(),v=g.clientX-x.left,b=g.clientY-x.top;if(Number.isNaN(v)||Number.isNaN(b))return;const S=Dt(V2(t),{x:v,y:b});let P=!1;for(const A of i)if(A.type==="pcb_component"&&KGn(A,S,10/t.a)){r(),l(A.pcb_component_id),P=!0;const R=Math.random().toString();d({dragStart:S,originalCenter:A.center,dragEnd:S,edit_event_id:R}),o({edit_event_id:R,edit_event_type:"edit_pcb_component_location",pcb_edit_event_type:"edit_component_location",pcb_component_id:A.pcb_component_id,original_center:A.center,new_center:A.center,in_progress:!0,created_at:Date.now()}),f(!0);break}if(P||l(null),P)return g.preventDefault(),!1},onMouseMove:g=>{if(!c||!u)return;const x=g.currentTarget.getBoundingClientRect(),v=g.clientX-x.left,b=g.clientY-x.top;if(Number.isNaN(v)||Number.isNaN(b))return;const S=Dt(V2(t),{x:v,y:b});d({...u,dragEnd:S}),s({edit_event_id:u.edit_event_id,new_center:{x:u.originalCenter.x+S.x-u.dragStart.x,y:u.originalCenter.y+S.y-u.dragStart.y}})},onMouseUp:g=>{c&&(l(null),f(!1),u&&(s({edit_event_id:u.edit_event_id,in_progress:!1}),d(null)))},children:[n,!_&&i.filter(g=>g.type==="pcb_component").map(g=>{if(!g?.center)return null;const x=Dt(t,g.center);return de.jsx("div",{style:{position:"absolute",pointerEvents:"none",left:x.x,top:x.y,width:g.width*t.a+20,height:g.height*t.a+20,transform:"translate(-50%, -50%)",background:h&&c===g.pcb_component_id?"rgba(255, 0, 0, 0.2)":""}},g.pcb_component_id)})]})},JGn=({hotkeys:n})=>(be.useEffect(()=>{const e=t=>{n.forEach(i=>{t.key===i.key&&i.onUse()})};return window.addEventListener("keydown",e),()=>{window.removeEventListener("keydown",e)}},[n]),de.jsx("div",{className:CI`
5510
+ $1`).replace(/>(\s*)(?=<!--\s*\/)/g,"> ")}}});function Wmt(n,e,t){if(!e||!t)return;let i=n.get(e);i||(i=new Set,n.set(e,i)),i.add(t);let r=n.get(t);r||(r=new Set,n.set(t,r)),r.add(e)}function Jqn(n,e){if(!e.subcircuit_id&&!e.source_group_id)return[...n];const t=new Map;for(const s of n){const a=s[`${s.type}_id`];typeof a=="string"&&t.set(a,s)}const i=new Map;for(const s of n){const a=Object.entries(s);for(const[c,l]of a)if(c!=="parent_source_group_id"){if(c.endsWith("_id")&&typeof l=="string"){const u=t.get(l);Wmt(i,s,u)}else if(c.endsWith("_ids")&&Array.isArray(l)){for(const u of l)if(typeof u=="string"){const d=t.get(u);Wmt(i,s,d)}}}}const r=[],o=new Set;for(const s of n)(e.subcircuit_id&&s.subcircuit_id===e.subcircuit_id||e.source_group_id&&(s.source_group_id===e.source_group_id||Array.isArray(s.member_source_group_ids)&&s.member_source_group_ids.includes(e.source_group_id)))&&(r.push(s),o.add(s));for(;r.length>0;){const s=r.shift(),a=i.get(s);if(a)for(const c of a)o.has(c)||(o.add(c),r.push(c))}return n.filter(s=>o.has(s))}var Zq=(n,e={})=>{const t=n;let i=t._internal_store;if(!i){i={counts:{},editCount:0},t._internal_store=i;for(const o of t){const s=o.type,a=o[`${s}_id`];if(!a)continue;const c=Number.parseInt(a.split("_").pop());Number.isNaN(c)||(i.counts[s]=Math.max(i.counts[s]??0,c))}}return new Proxy({},{get:(o,s)=>{if(s==="toArray")return()=>(t.editCount=i.editCount,t);if(s==="editCount")return i.editCount;if(s==="subtree")return c=>Zq(Jqn(t,c),e);const a=s;return{get:c=>t.find(l=>l.type===a&&l[`${a}_id`]===c),getUsing:c=>{const l=Object.keys(c);if(l.length!==1)throw new Error("getUsing requires exactly one key, e.g. { pcb_component_id }");const u=l[0],d=u.replace("_id",""),h=t.find(p=>p.type===d&&p[u]===c[u]);return h?t.find(p=>p.type===a&&p[`${a}_id`]===h[`${a}_id`]):null},getWhere:c=>{const l=Object.keys(c);return t.find(u=>u.type===a&&l.every(d=>u[d]===c[d]))},list:c=>{const l=c?Object.keys(c):[];return t.filter(u=>u.type===a&&l.every(d=>u[d]===c[d]))},insert:c=>{i.counts[a]??=-1,i.counts[a]++;const l=i.counts[a],u={type:a,[`${a}_id`]:`${a}_${l}`,...c};return e.validateInserts&&(imt[a]??wxe).parse(u),t.push(u),i.editCount++,u},delete:c=>{const l=t.find(u=>u[`${a}_id`]===c);l&&(t.splice(t.indexOf(l),1),i.editCount++)},update:(c,l)=>{const u=t.find(d=>d.type===a&&d[`${a}_id`]===c);return u?(Object.assign(u,l),i.editCount++,u):null},select:c=>{if(a==="source_component")return t.find(l=>l.type==="source_component"&&l.name===c.replace(/\./g,""));if(a==="pcb_port"||a==="source_port"||a==="schematic_port"){const[l,u]=c.replace(/\./g,"").split(/[\s\>]+/),d=t.find(p=>p.type==="source_component"&&p.name===l);if(!d)return null;const h=t.find(p=>p.type==="source_port"&&p.source_component_id===d.source_component_id&&(p.name===u||(p.port_hints??[]).includes(u)));if(!h)return null;if(a==="source_port")return h;if(a==="pcb_port")return t.find(p=>p.type==="pcb_port"&&p.source_port_id===h.source_port_id);if(a==="schematic_port")return t.find(p=>p.type==="schematic_port"&&p.source_port_id===h.source_port_id)}}}}})};Zq.unparsed=Zq;var nA=Zq;function Yxe(n){const e=n.type;return`${e}:${n[`${e}_id`]}`}var Zmt=(n,e={})=>{let t=n._internal_store_indexed;if(!t){t={counts:{},editCount:0,indexes:{}};for(const s of n){const a=s.type,c=s[`${a}_id`];if(!c)continue;const l=Number.parseInt(c.split("_").pop()||"");Number.isNaN(l)||(t.counts[a]=Math.max(t.counts[a]??0,l))}const r=e.indexConfig||{},o=t.indexes;if(r.byId&&(o.byId=new Map),r.byType&&(o.byType=new Map),r.byRelation&&(o.byRelation=new Map),r.bySubcircuit&&(o.bySubcircuit=new Map),r.byCustomField&&r.byCustomField.length>0){o.byCustomField=new Map;for(const s of r.byCustomField)o.byCustomField.set(s,new Map)}for(const s of n){if(r.byId){const a=Yxe(s);o.byId.set(a,s)}if(r.byType){const a=o.byType.get(s.type)||[];a.push(s),o.byType.set(s.type,a)}if(r.byRelation){const a=Object.entries(s);for(const[c,l]of a)if(c.endsWith("_id")&&c!==`${s.type}_id`&&typeof l=="string"){const u=o.byRelation.get(c)||new Map,d=u.get(l)||[];d.push(s),u.set(l,d),o.byRelation.set(c,u)}}if(r.bySubcircuit&&"subcircuit_id"in s){const a=s.subcircuit_id;if(a&&typeof a=="string"){const c=o.bySubcircuit.get(a)||[];c.push(s),o.bySubcircuit.set(a,c)}}if(r.byCustomField&&o.byCustomField){for(const a of r.byCustomField)if(a in s){const c=s[a];if(c!==void 0&&(typeof c=="string"||typeof c=="number")){const l=String(c),u=o.byCustomField.get(a),d=u.get(l)||[];d.push(s),u.set(l,d)}}}}n._internal_store_indexed=t}return new Proxy({},{get:(r,o)=>{if(o==="toArray")return()=>(n.editCount=t.editCount,n);if(o==="editCount")return t.editCount;const s=o;return{get:a=>{const c=e.indexConfig||{};return c.byId&&t.indexes.byId?t.indexes.byId.get(`${s}:${a}`)||null:c.byType&&t.indexes.byType?(t.indexes.byType.get(s)||[]).find(u=>u[`${s}_id`]===a)||null:n.find(l=>l.type===s&&l[`${s}_id`]===a)||null},getUsing:a=>{const c=e.indexConfig||{},l=Object.keys(a);if(l.length!==1)throw new Error("getUsing requires exactly one key, e.g. { pcb_component_id }");const u=l[0],d=u.replace("_id","");if(c.byRelation&&t.indexes.byRelation){const p=t.indexes.byRelation.get(u);if(p){const _=(p.get(a[u])||[]).find(x=>x.type===d);if(!_)return null;const g=_[`${s}_id`];return c.byId&&t.indexes.byId?t.indexes.byId.get(`${s}:${g}`)||null:c.byType&&t.indexes.byType?(t.indexes.byType.get(s)||[]).find(v=>v[`${s}_id`]===g)||null:n.find(x=>x.type===s&&x[`${s}_id`]===g)||null}}const h=n.find(p=>p.type===d&&p[u]===a[u]);return h&&n.find(p=>p.type===s&&p[`${s}_id`]===h[`${s}_id`])||null},getWhere:a=>{const c=e.indexConfig||{},l=Object.keys(a);if(l.length===1&&c.byCustomField&&t.indexes.byCustomField){const u=l[0],d=t.indexes.byCustomField.get(u);if(d){const h=String(a[u]);return(d.get(h)||[]).find(f=>f.type===s)||null}}if("subcircuit_id"in a&&c.bySubcircuit&&t.indexes.bySubcircuit){const u=a.subcircuit_id;return(t.indexes.bySubcircuit.get(u)||[]).find(h=>h.type===s&&l.every(p=>h[p]===a[p]))||null}return c.byType&&t.indexes.byType?(t.indexes.byType.get(s)||[]).find(d=>l.every(h=>d[h]===a[h]))||null:n.find(u=>u.type===s&&l.every(d=>u[d]===a[d]))||null},list:a=>{const c=e.indexConfig||{},l=a?Object.keys(a):[];if(l.length===0&&c.byType&&t.indexes.byType)return t.indexes.byType.get(s)||[];if(l.length===1&&l[0]==="subcircuit_id"&&c.bySubcircuit&&t.indexes.bySubcircuit){const d=a.subcircuit_id;return(t.indexes.bySubcircuit.get(d)||[]).filter(p=>p.type===s)}let u;return c.byType&&t.indexes.byType?u=t.indexes.byType.get(s)||[]:u=n.filter(d=>d.type===s),l.length>0?u.filter(d=>l.every(h=>d[h]===a[h])):u},insert:a=>{t.counts[s]??=-1,t.counts[s]++;const c=t.counts[s],l={type:s,[`${s}_id`]:`${s}_${c}`,...a};e.validateInserts&&(imt[s]??wxe).parse(l),n.push(l),t.editCount++;const u=e.indexConfig||{};if(u.byId&&t.indexes.byId){const d=Yxe(l);t.indexes.byId.set(d,l)}if(u.byType&&t.indexes.byType){const d=t.indexes.byType.get(s)||[];d.push(l),t.indexes.byType.set(s,d)}if(u.byRelation&&t.indexes.byRelation){const d=Object.entries(l);for(const[h,p]of d)if(h.endsWith("_id")&&h!==`${l.type}_id`&&typeof p=="string"){const f=t.indexes.byRelation.get(h)||new Map,_=f.get(p)||[];_.push(l),f.set(p,_),t.indexes.byRelation.set(h,f)}}if(u.bySubcircuit&&t.indexes.bySubcircuit&&"subcircuit_id"in l){const d=l.subcircuit_id;if(d&&typeof d=="string"){const h=t.indexes.bySubcircuit.get(d)||[];h.push(l),t.indexes.bySubcircuit.set(d,h)}}if(u.byCustomField&&t.indexes.byCustomField){for(const d of u.byCustomField)if(d in l){const h=l[d];if(h!==void 0&&(typeof h=="string"||typeof h=="number")){const p=String(h),f=t.indexes.byCustomField.get(d),_=f.get(p)||[];_.push(l),f.set(p,_)}}}return l},delete:a=>{const c=e.indexConfig||{};let l;if(c.byId&&t.indexes.byId?l=t.indexes.byId.get(`${s}:${a}`):c.byType&&t.indexes.byType?l=(t.indexes.byType.get(s)||[]).find(h=>h[`${s}_id`]===a):l=n.find(d=>d[`${s}_id`]===a),!l)return;const u=n.indexOf(l);if(u>=0&&(n.splice(u,1),t.editCount++),c.byId&&t.indexes.byId){const d=Yxe(l);t.indexes.byId.delete(d)}if(c.byType&&t.indexes.byType){const h=(t.indexes.byType.get(s)||[]).filter(p=>p[`${s}_id`]!==a);t.indexes.byType.set(s,h)}if(c.byRelation&&t.indexes.byRelation)for(const[d,h]of t.indexes.byRelation.entries())for(const[p,f]of h.entries()){const _=f.filter(g=>g!==l);_.length===0?h.delete(p):h.set(p,_)}if(c.bySubcircuit&&t.indexes.bySubcircuit&&"subcircuit_id"in l){const d=l.subcircuit_id;if(d){const p=(t.indexes.bySubcircuit.get(d)||[]).filter(f=>f!==l);p.length===0?t.indexes.bySubcircuit.delete(d):t.indexes.bySubcircuit.set(d,p)}}if(c.byCustomField&&t.indexes.byCustomField)for(const d of t.indexes.byCustomField.values())for(const[h,p]of d.entries()){const f=p.filter(_=>_!==l);f.length===0?d.delete(h):d.set(h,f)}},update:(a,c)=>{const l=e.indexConfig||{};let u;if(l.byId&&t.indexes.byId?u=t.indexes.byId.get(`${s}:${a}`):l.byType&&t.indexes.byType?u=(t.indexes.byType.get(s)||[]).find(h=>h[`${s}_id`]===a):u=n.find(d=>d.type===s&&d[`${s}_id`]===a),!u)return null;if(l.byRelation&&t.indexes.byRelation){const d=Object.entries(u);for(const[h,p]of d)if(h.endsWith("_id")&&h!==`${u.type}_id`&&typeof p=="string"&&h in c&&c[h]!==p){const f=t.indexes.byRelation.get(h);if(f){const g=(f.get(p)||[]).filter(x=>x!==u);g.length===0?f.delete(p):f.set(p,g)}}}if(l.bySubcircuit&&t.indexes.bySubcircuit&&"subcircuit_id"in u&&"subcircuit_id"in c){const d=u.subcircuit_id,h=c.subcircuit_id;if(d!==h){const f=(t.indexes.bySubcircuit.get(d)||[]).filter(_=>_!==u);f.length===0?t.indexes.bySubcircuit.delete(d):t.indexes.bySubcircuit.set(d,f)}}if(l.byCustomField&&t.indexes.byCustomField){for(const d of l.byCustomField)if(d in u&&d in c&&u[d]!==c[d]){const h=t.indexes.byCustomField.get(d);if(h){const p=String(u[d]),_=(h.get(p)||[]).filter(g=>g!==u);_.length===0?h.delete(p):h.set(p,_)}}}if(Object.assign(u,c),t.editCount++,l.byRelation&&t.indexes.byRelation){const d=Object.entries(u);for(const[h,p]of d)if(h.endsWith("_id")&&h!==`${u.type}_id`&&typeof p=="string"&&h in c){const f=t.indexes.byRelation.get(h)||new Map,_=f.get(p)||[];_.includes(u)||(_.push(u),f.set(p,_),t.indexes.byRelation.set(h,f))}}if(l.bySubcircuit&&t.indexes.bySubcircuit&&"subcircuit_id"in u&&"subcircuit_id"in c){const d=u.subcircuit_id;if(d&&typeof d=="string"){const h=t.indexes.bySubcircuit.get(d)||[];h.includes(u)||(h.push(u),t.indexes.bySubcircuit.set(d,h))}}if(l.byCustomField&&t.indexes.byCustomField){for(const d of l.byCustomField)if(d in u&&d in c){const h=u[d];if(h!==void 0&&(typeof h=="string"||typeof h=="number")){const p=String(h),f=t.indexes.byCustomField.get(d),_=f.get(p)||[];_.includes(u)||(_.push(u),f.set(p,_))}}}return u},select:a=>{if(s==="source_component")return n.find(c=>c.type==="source_component"&&c.name===a.replace(/\./g,""))||null;if(s==="pcb_port"||s==="source_port"||s==="schematic_port"){const[c,l]=a.replace(/\./g,"").split(/[\s\>]+/),u=n.find(h=>h.type==="source_component"&&h.name===c);if(!u)return null;const d=n.find(h=>h.type==="source_port"&&h.source_component_id===u.source_component_id&&(h.name===l||(h.port_hints??[]).includes(l)));if(!d)return null;if(s==="source_port")return d;if(s==="pcb_port")return n.find(h=>h.type==="pcb_port"&&h.source_port_id===d.source_port_id)||null;if(s==="schematic_port")return n.find(h=>h.type==="schematic_port"&&h.source_port_id===d.source_port_id)||null}return null}}}})};Zmt.unparsed=Zmt;var eGn=n=>{const e=n.type;return n[`${e}_id`]},tGn=n=>{let e=Number.POSITIVE_INFINITY,t=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY,r=Number.NEGATIVE_INFINITY;for(const o of n){if(!o.type.startsWith("pcb_"))continue;let s,a,c,l;if("x"in o&&"y"in o&&(s=Number(o.x),a=Number(o.y)),"outer_diameter"in o&&(c=Number(o.outer_diameter),l=Number(o.outer_diameter)),"width"in o&&(c=Number(o.width)),"height"in o&&(l=Number(o.height)),"center"in o&&(s=o.center.x,a=o.center.y),s!==void 0&&a!==void 0)e=Math.min(e,s),t=Math.min(t,a),i=Math.max(i,s),r=Math.max(r,a),c!==void 0&&l!==void 0&&(e=Math.min(e,s-c/2),t=Math.min(t,a-l/2),i=Math.max(i,s+c/2),r=Math.max(r,a+l/2)),"radius"in o&&(e=Math.min(e,s-o.radius),t=Math.min(t,a-o.radius),i=Math.max(i,s+o.radius),r=Math.max(r,a+o.radius));else if(o.type==="pcb_trace")for(const u of o.route)e=Math.min(e,u.x),t=Math.min(t,u.y),i=Math.max(i,u.x),r=Math.max(r,u.y)}return{minX:e,minY:t,maxX:i,maxY:r}};function nGn(n){let e=0;if(n.length==0)return e;for(var t=0;t<n.length;t++){var i=n.charCodeAt(t);e=(e<<5)-e+i,e=e&e}return Math.abs(e)}var Kmt=[["#69d2e7","#a7dbd8","#e0e4cc","#f38630","#fa6900"],["#fe4365","#fc9d9a","#f9cdad","#c8c8a9","#83af9b"],["#ecd078","#d95b43","#c02942","#542437","#53777a"],["#556270","#4ecdc4","#c7f464","#ff6b6b","#c44d58"],["#774f38","#e08e79","#f1d4af","#ece5ce","#c5e0dc"],["#e8ddcb","#cdb380","#036564","#033649","#031634"],["#490a3d","#bd1550","#e97f02","#f8ca00","#8a9b0f"],["#594f4f","#547980","#45ada8","#9de0ad","#e5fcc2"],["#00a0b0","#6a4a3c","#cc333f","#eb6841","#edc951"],["#e94e77","#d68189","#c6a49a","#c6e5d9","#f4ead5"],["#3fb8af","#7fc7af","#dad8a7","#ff9e9d","#ff3d7f"],["#d9ceb2","#948c75","#d5ded9","#7a6a53","#99b2b7"],["#ffffff","#cbe86b","#f2e9e1","#1c140d","#cbe86b"],["#efffcd","#dce9be","#555152","#2e2633","#99173c"],["#343838","#005f6b","#008c9e","#00b4cc","#00dffc"],["#413e4a","#73626e","#b38184","#f0b49e","#f7e4be"],["#ff4e50","#fc913a","#f9d423","#ede574","#e1f5c4"],["#99b898","#fecea8","#ff847c","#e84a5f","#2a363b"],["#655643","#80bca3","#f6f7bd","#e6ac27","#bf4d28"],["#00a8c6","#40c0cb","#f9f2e7","#aee239","#8fbe00"],["#351330","#424254","#64908a","#e8caa4","#cc2a41"],["#554236","#f77825","#d3ce3d","#f1efa5","#60b99a"],["#5d4157","#838689","#a8caba","#cad7b2","#ebe3aa"],["#8c2318","#5e8c6a","#88a65e","#bfb35a","#f2c45a"],["#fad089","#ff9c5b","#f5634a","#ed303c","#3b8183"],["#ff4242","#f4fad2","#d4ee5e","#e1edb9","#f0f2eb"],["#f8b195","#f67280","#c06c84","#6c5b7b","#355c7d"],["#d1e751","#ffffff","#000000","#4dbce9","#26ade4"],["#1b676b","#519548","#88c425","#bef202","#eafde6"],["#5e412f","#fcebb6","#78c0a8","#f07818","#f0a830"],["#bcbdac","#cfbe27","#f27435","#f02475","#3b2d38"],["#452632","#91204d","#e4844a","#e8bf56","#e2f7ce"],["#eee6ab","#c5bc8e","#696758","#45484b","#36393b"],["#f0d8a8","#3d1c00","#86b8b1","#f2d694","#fa2a00"],["#2a044a","#0b2e59","#0d6759","#7ab317","#a0c55f"],["#f04155","#ff823a","#f2f26f","#fff7bd","#95cfb7"],["#b9d7d9","#668284","#2a2829","#493736","#7b3b3b"],["#bbbb88","#ccc68d","#eedd99","#eec290","#eeaa88"],["#b3cc57","#ecf081","#ffbe40","#ef746f","#ab3e5b"],["#a3a948","#edb92e","#f85931","#ce1836","#009989"],["#300030","#480048","#601848","#c04848","#f07241"],["#67917a","#170409","#b8af03","#ccbf82","#e33258"],["#aab3ab","#c4cbb7","#ebefc9","#eee0b7","#e8caaf"],["#e8d5b7","#0e2430","#fc3a51","#f5b349","#e8d5b9"],["#ab526b","#bca297","#c5ceae","#f0e2a4","#f4ebc3"],["#607848","#789048","#c0d860","#f0f0d8","#604848"],["#b6d8c0","#c8d9bf","#dadabd","#ecdbbc","#fedcba"],["#a8e6ce","#dcedc2","#ffd3b5","#ffaaa6","#ff8c94"],["#3e4147","#fffedf","#dfba69","#5a2e2e","#2a2c31"],["#fc354c","#29221f","#13747d","#0abfbc","#fcf7c5"],["#cc0c39","#e6781e","#c8cf02","#f8fcc1","#1693a7"],["#1c2130","#028f76","#b3e099","#ffeaad","#d14334"],["#a7c5bd","#e5ddcb","#eb7b59","#cf4647","#524656"],["#dad6ca","#1bb0ce","#4f8699","#6a5e72","#563444"],["#5c323e","#a82743","#e15e32","#c0d23e","#e5f04c"],["#edebe6","#d6e1c7","#94c7b6","#403b33","#d3643b"],["#fdf1cc","#c6d6b8","#987f69","#e3ad40","#fcd036"],["#230f2b","#f21d41","#ebebbc","#bce3c5","#82b3ae"],["#b9d3b0","#81bda4","#b28774","#f88f79","#f6aa93"],["#3a111c","#574951","#83988e","#bcdea5","#e6f9bc"],["#5e3929","#cd8c52","#b7d1a3","#dee8be","#fcf7d3"],["#1c0113","#6b0103","#a30006","#c21a01","#f03c02"],["#000000","#9f111b","#b11623","#292c37","#cccccc"],["#382f32","#ffeaf2","#fcd9e5","#fbc5d8","#f1396d"],["#e3dfba","#c8d6bf","#93ccc6","#6cbdb5","#1a1f1e"],["#f6f6f6","#e8e8e8","#333333","#990100","#b90504"],["#1b325f","#9cc4e4","#e9f2f9","#3a89c9","#f26c4f"],["#a1dbb2","#fee5ad","#faca66","#f7a541","#f45d4c"],["#c1b398","#605951","#fbeec2","#61a6ab","#accec0"],["#5e9fa3","#dcd1b4","#fab87f","#f87e7b","#b05574"],["#951f2b","#f5f4d7","#e0dfb1","#a5a36c","#535233"],["#8dccad","#988864","#fea6a2","#f9d6ac","#ffe9af"],["#2d2d29","#215a6d","#3ca2a2","#92c7a3","#dfece6"],["#413d3d","#040004","#c8ff00","#fa023c","#4b000f"],["#eff3cd","#b2d5ba","#61ada0","#248f8d","#605063"],["#ffefd3","#fffee4","#d0ecea","#9fd6d2","#8b7a5e"],["#cfffdd","#b4dec1","#5c5863","#a85163","#ff1f4c"],["#9dc9ac","#fffec7","#f56218","#ff9d2e","#919167"],["#4e395d","#827085","#8ebe94","#ccfc8e","#dc5b3e"],["#a8a7a7","#cc527a","#e8175d","#474747","#363636"],["#f8edd1","#d88a8a","#474843","#9d9d93","#c5cfc6"],["#046d8b","#309292","#2fb8ac","#93a42a","#ecbe13"],["#f38a8a","#55443d","#a0cab5","#cde9ca","#f1edd0"],["#a70267","#f10c49","#fb6b41","#f6d86b","#339194"],["#ff003c","#ff8a00","#fabe28","#88c100","#00c176"],["#ffedbf","#f7803c","#f54828","#2e0d23","#f8e4c1"],["#4e4d4a","#353432","#94ba65","#2790b0","#2b4e72"],["#0ca5b0","#4e3f30","#fefeeb","#f8f4e4","#a5b3aa"],["#4d3b3b","#de6262","#ffb88c","#ffd0b3","#f5e0d3"],["#fffbb7","#a6f6af","#66b6ab","#5b7c8d","#4f2958"],["#edf6ee","#d1c089","#b3204d","#412e28","#151101"],["#9d7e79","#ccac95","#9a947c","#748b83","#5b756c"],["#fcfef5","#e9ffe1","#cdcfb7","#d6e6c3","#fafbe3"],["#9cddc8","#bfd8ad","#ddd9ab","#f7af63","#633d2e"],["#30261c","#403831","#36544f","#1f5f61","#0b8185"],["#aaff00","#ffaa00","#ff00aa","#aa00ff","#00aaff"],["#d1313d","#e5625c","#f9bf76","#8eb2c5","#615375"],["#ffe181","#eee9e5","#fad3b2","#ffba7f","#ff9c97"],["#73c8a9","#dee1b6","#e1b866","#bd5532","#373b44"],["#805841","#dcf7f3","#fffcdd","#ffd8d8","#f5a2a2"]],iGn=n=>{let{x:e,y:t,width:i,height:r}={...n,...n.size,...n.center,...n.position};if(n.x1!==void 0&&n.x2!==void 0&&n.y1!==void 0&&n.y2!==void 0&&(e=(n.x1+n.x2)/2,t=(n.y1+n.y2)/2,i=Math.abs(n.x1-n.x2),r=Math.abs(n.y1-n.y2)),n.points&&Array.isArray(n.points)&&n.points.length>0){const a=n.points.map(p=>p.x),c=n.points.map(p=>p.y),l=Math.min(...a),u=Math.max(...a),d=Math.min(...c),h=Math.max(...c);e=(l+u)/2,t=(d+h)/2,i=u-l,r=h-d}const o=n.text||n.name||n.source?.text||n.source?.name||"?",s=n;return e===void 0||t===void 0?null:(i===void 0&&"outer_diameter"in n&&(i=n.outer_diameter,r=n.outer_diameter),(i===void 0||r===void 0)&&(i=.1,r=.1),{x:e,y:t,width:i,height:r,title:o,content:s,bg_color:Kmt[nGn(n.type||o)%Kmt.length]?.[4]??"#f00"})},rGn=n=>!!n,oGn=n=>{const e=n.filter(l=>l.type.startsWith("pcb_")||l.type.startsWith("schematic_")).concat(n.filter(l=>l.type==="pcb_trace"||l.type==="schematic_trace").flatMap(l=>l.route)).map(l=>iGn(l)).filter(rGn);if(e.length===0)return{center:{x:0,y:0},width:0,height:0};let t=e[0].x-e[0].width/2,i=e[0].x+e[0].width/2,r=e[0].y-e[0].height/2,o=e[0].y+e[0].height/2;for(const l of e.slice(1))t=Math.min(t,l.x-l.width/2),i=Math.max(i,l.x+l.width/2),r=Math.min(r,l.y-l.height/2),o=Math.max(o,l.y+l.height/2);const s=i-t,a=o-r;return{center:{x:t+s/2,y:r+a/2},width:s,height:a}},Kq={IS_SHOWING_PCB_GROUPS:"pcb_viewer_is_showing_pcb_groups",PCB_GROUP_VIEW_MODE:"pcb_viewer_group_view_mode"},sGn=(n,e)=>{if(typeof window>"u")return e;try{const t=localStorage.getItem(n);return t!==null?JSON.parse(t):e}catch{return e}},aGn=(n,e)=>{if(!(typeof window>"u"))try{localStorage.setItem(n,JSON.stringify(e))}catch{}},cGn=(n,e)=>{if(typeof window>"u")return e;try{const t=localStorage.getItem(n);return t!==null?JSON.parse(t):e}catch{return e}},lGn=(n,e)=>{if(!(typeof window>"u"))try{localStorage.setItem(n,JSON.stringify(e))}catch{}},uGn="named_only",dGn=(n={},e=!1)=>Pje(t=>({selected_layer:"top",pcb_viewer_id:`pcb_viewer_${Math.random().toString().slice(2,10)}`,in_edit_mode:!1,in_move_footprint_mode:!1,in_draw_trace_mode:!1,is_moving_component:!1,is_drawing_trace:!1,is_mouse_over_container:!1,is_showing_multiple_traces_length:!1,is_showing_rats_nest:!1,is_showing_autorouting:!0,is_showing_drc_errors:!0,is_showing_pcb_groups:e?!1:sGn(Kq.IS_SHOWING_PCB_GROUPS,!0),pcb_group_view_mode:e?"all":cGn(Kq.PCB_GROUP_VIEW_MODE,uGn),hovered_error_id:null,...n,selectLayer:i=>t({selected_layer:i}),setEditMode:i=>t({in_edit_mode:i!=="off",in_move_footprint_mode:i==="move_footprint",in_draw_trace_mode:i==="draw_trace",is_moving_component:!1,is_drawing_trace:!1}),setIsShowingRatsNest:i=>t({is_showing_rats_nest:i}),setIsMovingComponent:i=>t({is_moving_component:i}),setIsDrawingTrace:i=>t({is_drawing_trace:i}),setIsMouseOverContainer:i=>t({is_mouse_over_container:i}),setIsShowingMultipleTracesLength:i=>t({is_showing_multiple_traces_length:i}),setIsShowingAutorouting:i=>t({is_showing_autorouting:i}),setIsShowingDrcErrors:i=>t({is_showing_drc_errors:i}),setIsShowingPcbGroups:i=>{e||(aGn(Kq.IS_SHOWING_PCB_GROUPS,i),t({is_showing_pcb_groups:i}))},setPcbGroupViewMode:i=>{e||(lGn(Kq.PCB_GROUP_VIEW_MODE,i),t({pcb_group_view_mode:i}))},setHoveredErrorId:i=>t({hovered_error_id:i})})),Vb=n=>{const e=be.useContext(Qmt);return Fje(e,n)},Qmt=be.createContext(null),hGn=({children:n,initialState:e,disablePcbGroups:t})=>{const i=be.useMemo(()=>dGn(e,t),[t]);return de.jsx(Qmt.Provider,{value:i,children:n})},pGn=()=>{const n=Vb(t=>t.pcb_viewer_id),e=(t,i)=>Bf(t,{containerId:n,...i});return e.error=(t,i)=>Bf.error(t,{containerId:n,...i}),e.promise=Bf.promise,e},fGn=()=>{be.useEffect(()=>{OVn()},[]);const n=Vb(e=>e.pcb_viewer_id);return de.jsx(kVn,{position:"top-center",containerId:n})},mGn=function(){},Jmt=typeof window<"u",_Gn=Jmt?be.useLayoutEffect:be.useEffect,gGn=_Gn,e0t={x:0,y:0,width:0,height:0,top:0,left:0,bottom:0,right:0};function yGn(){var n=be.useState(null),e=n[0],t=n[1],i=be.useState(e0t),r=i[0],o=i[1],s=be.useMemo(function(){return new window.ResizeObserver(function(a){if(a[0]){var c=a[0].contentRect,l=c.x,u=c.y,d=c.width,h=c.height,p=c.top,f=c.left,_=c.bottom,g=c.right;o({x:l,y:u,width:d,height:h,top:p,left:f,bottom:_,right:g})}})},[]);return gGn(function(){if(e)return s.observe(e),function(){s.disconnect()}},[e]),[t,r]}var Qq=Jmt&&typeof window.ResizeObserver<"u"?yGn:function(){return[mGn,e0t]},t0t=({initialTransform:n,initialTouch1:e,initialTouch2:t,finalTouch1:i,finalTouch2:r})=>{if(!i||!r)return n;const o={x:(e.x+t.x)/2,y:(e.y+t.y)/2},s={x:(i.x+r.x)/2,y:(i.y+r.y)/2},a=Math.hypot(t.x-e.x,t.y-e.y),c=Math.hypot(r.x-i.x,r.y-i.y),l=a===0?1:c/a,u=s.x-o.x,d=s.y-o.y;return Io(Vo(u,d),Vo(o.x,o.y),Xm(l,l),Vo(-o.x,-o.y),n)},xGn=(n={})=>{const e=be.useRef(null),[t,i]=be.useState(0),r=n.canvasElm??e.current,[o,s]=be.useState(n.initialTransform??Gh()),[a,c]=be.useState(0),[l,u]=be.useReducer(b=>b+1,0),d=be.useCallback(b=>{n.onSetTransform&&n.onSetTransform(b),n.transform||s(b)},[n.onSetTransform,s]),h=be.useCallback(b=>{d(b),u()},[d]),p=n.transform??o,f=be.useCallback(()=>{i(Date.now())},[]),_=be.useRef("none"),g=be.useRef(null),x=be.useRef(null);be.useEffect(()=>{const b=n.canvasElm??e.current;if(b&&!r){c(a+1);return}if(!b){const K=setTimeout(()=>{c(a+1)},100);return()=>clearTimeout(K)}let S=n.transform??o,P={x:0,y:0},A={x:0,y:0},R=!1;const T=K=>({x:K.pageX-b.getBoundingClientRect().left-window.scrollX,y:K.pageY-b.getBoundingClientRect().top-window.scrollY});function I(K){n.enabled!==!1&&(n.shouldDrag&&!n.shouldDrag(K)||(P=T(K),!(Date.now()-t<100)&&(R=!0,K.preventDefault())))}function C(K){if(!R||n.enabled===!1||n.shouldDrag&&!n.shouldDrag(K))return;A=T(K);const oe=Io(Vo(A.x-P.x,A.y-P.y),S);d(oe),S=oe,R=!1}function z(K){if(T(K),!R||n.enabled===!1||n.shouldDrag&&!n.shouldDrag(K))return;A=T(K);const oe=Io(Vo(A.x-P.x,A.y-P.y),S);d(oe)}function O(K){if(n.enabled===!1||n.shouldDrag&&!n.shouldDrag(K))return;const oe=T(K),ce=Io(Vo(oe.x,oe.y),Xm(1-K.deltaY/1e3,1-K.deltaY/1e3),Vo(-oe.x,-oe.y),S);d(ce),S=ce,K.preventDefault()}function j(K){if(!R||n.shouldDrag&&!n.shouldDrag(K))return;if(b){const ce=b.getBoundingClientRect();if(K.clientX>=ce.left+10&&K.clientX<=ce.right-10&&K.clientY>=ce.top+10&&K.clientY<=ce.bottom-10)return}R=!1,A=T(K);const oe=Io(Vo(A.x-P.x,A.y-P.y),S);d(oe),S=oe}function V(K){if(K.preventDefault(),n.enabled!==!1){if(K.touches.length===1){_.current="drag";const oe=K.touches[0];g.current={initialTransform:S,initialTouch:{x:oe.clientX,y:oe.clientY}}}else if(K.touches.length===2){_.current="pinch";const oe=K.touches[0],ce=K.touches[1];x.current={initialTransform:S,initialTouch1:{x:oe.clientX,y:oe.clientY},initialTouch2:{x:ce.clientX,y:ce.clientY},finalTouch1:null,finalTouch2:null}}}}function G(K){if(K.preventDefault(),n.enabled!==!1){if(_.current==="drag"&&K.touches.length===1&&g.current){const oe=K.touches[0],ce={x:oe.clientX,y:oe.clientY},me=ce.x-g.current.initialTouch.x,te=ce.y-g.current.initialTouch.y,se=Io(Vo(me,te),g.current.initialTransform);d(se)}else if(_.current==="pinch"&&K.touches.length===2&&x.current){const oe=K.touches[0],ce=K.touches[1];x.current.finalTouch1={x:oe.clientX,y:oe.clientY},x.current.finalTouch2={x:ce.clientX,y:ce.clientY};const me=t0t(x.current);d(me)}}}function Z(K){K.preventDefault();const oe=K.changedTouches[0];if(_.current==="drag"&&g.current&&oe){const ce={x:oe.clientX,y:oe.clientY},me=ce.x-g.current.initialTouch.x,te=ce.y-g.current.initialTouch.y,se=Io(Vo(me,te),g.current.initialTransform);d(se),S=se}else if(_.current==="pinch"&&x.current){const ce=t0t(x.current);d(ce),S=ce}_.current="none",g.current=null,x.current=null}return b.addEventListener("mousedown",I),b.addEventListener("mouseup",C),window.addEventListener("mousemove",z),b.addEventListener("mouseout",j),b.addEventListener("wheel",O),b.addEventListener("touchstart",V,{passive:!1}),b.addEventListener("touchmove",G,{passive:!1}),b.addEventListener("touchend",Z,{passive:!1}),b.addEventListener("touchcancel",Z,{passive:!1}),()=>{b.removeEventListener("mousedown",I),b.removeEventListener("mouseup",C),window.removeEventListener("mousemove",z),b.removeEventListener("mouseout",j),b.removeEventListener("wheel",O),b.removeEventListener("touchstart",V),b.removeEventListener("touchmove",G),b.removeEventListener("touchend",Z),b.removeEventListener("touchcancel",Z)}},[r,a,l,t,n.enabled,n.shouldDrag]);const v=be.useCallback(b=>Dt(p,b),[p]);return{ref:e,transform:p,applyTransformToPoint:v,setTransform:h,cancelDrag:f}},vGn=xGn;function bGn(n){const e=new Map;let t=0;function i(r){for(const[,s]of e)if(s.has(r))return s;const o=new Set;return e.set(`connectivity_net${t++}`,o),o}for(const r of n){let o=null;for(const s of r){if(!o)o=i(s);else if(!o.has(s)){const a=i(s);if(a!==o){for(const c of a)o.add(c);e.delete(Array.from(e.entries()).find(([,c])=>c===a)[0])}}o.add(s)}}return Object.fromEntries(Array.from(e.entries()).map(([r,o])=>[r,Array.from(o)]))}var wGn=class{netMap;idToNetMap;constructor(e){this.netMap=e,this.idToNetMap={};for(const[t,i]of Object.entries(e))for(const r of i)this.idToNetMap[r]=t}addConnections(e){for(const t of e){const i=new Set;for(const o of t){const s=this.idToNetMap[o];s&&i.add(s)}let r;if(i.size===0)r=`connectivity_net${Object.keys(this.netMap).length}`,this.netMap[r]=[];else if(i.size===1)r=i.values().next().value??`connectivity_net${Object.keys(this.netMap).length}`;else{r=i.values().next().value??`connectivity_net${Object.keys(this.netMap).length}`;for(const o of i)if(o!==r){this.netMap[r].push(...this.netMap[o]),this.netMap[o]=this.netMap[r];for(const s of this.netMap[r])this.idToNetMap[s]=r}}for(const o of t)this.netMap[r].includes(o)||this.netMap[r].push(o),this.idToNetMap[o]=r}}getIdsConnectedToNet(e){return this.netMap[e]||[]}getNetConnectedToId(e){return this.idToNetMap[e]}areIdsConnected(e,t){if(e===t)return!0;const i=this.getNetConnectedToId(e);if(!i)return!1;const r=this.getNetConnectedToId(t);return r?i===r||r===e||r===e:!1}areAllIdsConnected(e){const t=this.getNetConnectedToId(e[0]);for(const i of e){const r=this.getNetConnectedToId(i);if(r===void 0||r!==t)return!1}return!0}},n0t=n=>{const e=[];for(const i of n)if(i.type==="source_trace")e.push([i.source_trace_id,...i.connected_source_port_ids??[],...i.connected_source_net_ids??[]].filter(Boolean));else if(i.type==="pcb_port"){const{pcb_port_id:r,source_port_id:o}=i;o&&r&&e.push([o,r])}else if(i.type==="pcb_smtpad"){const{pcb_smtpad_id:r,pcb_port_id:o}=i;o&&r&&e.push([r,o])}else if(i.type==="pcb_plated_hole"){const{pcb_plated_hole_id:r,pcb_port_id:o}=i;o&&r&&e.push([r,o])}else if(i.type==="pcb_trace"){const{pcb_trace_id:r,source_trace_id:o}=i,s=Array.isArray(i.route)?i.route.filter(a=>a&&a.route_type==="wire"):[];if(o&&r&&e.push([r,o]),Array.isArray(s)){const a=s.find(l=>l&&l.start_pcb_port_id)?.start_pcb_port_id,c=s.find(l=>l&&l.end_pcb_port_id)?.end_pcb_port_id;a&&r&&c&&e.push([a,r,c])}}else if(i.type==="pcb_via"){const{pcb_via_id:r,pcb_trace_id:o}=i;o&&r&&e.push([r,o])}else if(i.type==="source_component"&&i.internally_connected_source_port_ids)for(const r of i.internally_connected_source_port_ids)e.push(r);const t=bGn(e);return new wGn(t)};function SGn({primitivesWithoutInteractionMetadata:n,drawingObjectIdsWithMouseOver:e,primitiveIdsInMousedOverNet:t}){const i=[];for(const r of n){const o={...r};r?.layer==="drill"?(o.is_in_highlighted_net=!1,o.is_mouse_over=!1):e.has(r._pcb_drawing_object_id)?o.is_mouse_over=!0:r._element&&("pcb_trace_id"in r._element&&t.includes(r._element.pcb_trace_id)||"pcb_port_id"in r._element&&t.includes(r._element.pcb_port_id))?o.is_in_highlighted_net=!0:(o.is_in_highlighted_net=!1,o.is_mouse_over=!1),i.push(o)}return i}function EGn(n,e){if(n.length<2)throw new Error("Stroke must have at least two points");const t=n.map(d=>Array.isArray(d)?{x:d[0],y:d[1]}:d),i=[],r=[];function o(d,h){const p=h.x-d.x,f=h.y-d.y,_=Math.sqrt(p*p+f*f);return{x:-f/_,y:p/_}}function s(d,h,p,f){const _=f/2,g={x:d.x+h.x*_*p,y:d.y+h.y*_*p};p>0?i.push(g):r.unshift(g)}const a=o(t[0],t[1]),c=t[0].trace_width??e;s(t[0],a,1,c),s(t[0],a,-1,c);for(let d=1;d<t.length-1;d++){const h=t[d-1],p=t[d],f=t[d+1],_=o(h,p),g=o(p,f),x=_.x+g.x,v=_.y+g.y,b=Math.sqrt(x*x+v*v),S=p.trace_width??e;if(b/2>2*(S/2))s(p,_,1,S),s(p,g,1,S),s(p,_,-1,S),s(p,g,-1,S);else{const A=1/b;s(p,{x:x*A,y:v*A},1,S),s(p,{x:x*A,y:v*A},-1,S)}}const l=o(t[t.length-2],t[t.length-1]),u=t[t.length-1].trace_width??e;return s(t[t.length-1],l,1,u),s(t[t.length-1],l,-1,u),[...i,...r]}var Xl=0,__=n=>`${n}_${Xl++}`,TGn=(n,e)=>{const t="pcb_component_id"in n?e.find(s=>s.type==="pcb_component"&&s.pcb_component_id===n.pcb_component_id):void 0,i=t&&"source_component_id"in t?e.find(s=>s.type==="source_component"&&s.source_component_id===t.source_component_id):void 0,r="source_port_id"in n?n.source_port_id:"pcb_port_id"in n?nA(e).pcb_port.get(n.pcb_port_id)?.source_port_id:void 0,o=r?e.find(s=>s.type==="source_port"&&s.source_port_id===r):void 0;switch(n.type){case"pcb_board":{const{width:s,height:a,center:c,outline:l}=n;return l&&l.length>2?l.map((u,d,h)=>({_pcb_drawing_object_id:`line_${Xl++}`,pcb_drawing_type:"line",x1:u.x,y1:u.y,x2:d===h.length-1?h[0].x:h[d+1].x,y2:d===h.length-1?h[0].y:h[d+1].y,width:1,zoomIndependent:!0,layer:"board",_element:n})):[{_pcb_drawing_object_id:`line_${Xl++}`,pcb_drawing_type:"line",x1:c.x-s/2,y1:c.y-a/2,x2:c.x+s/2,y2:c.y-a/2,width:1,zoomIndependent:!0,layer:"board",_element:n},{_pcb_drawing_object_id:`line_${Xl++}`,pcb_drawing_type:"line",x1:c.x-s/2,y1:c.y+a/2,x2:c.x+s/2,y2:c.y+a/2,width:1,zoomIndependent:!0,layer:"board",_element:n},{_pcb_drawing_object_id:`line_${Xl++}`,pcb_drawing_type:"line",x1:c.x-s/2,y1:c.y-a/2,x2:c.x-s/2,y2:c.y+a/2,width:1,zoomIndependent:!0,layer:"board",_element:n},{_pcb_drawing_object_id:`line_${Xl++}`,pcb_drawing_type:"line",x1:c.x+s/2,y1:c.y-a/2,x2:c.x+s/2,y2:c.y+a/2,width:1,zoomIndependent:!0,layer:"board",_element:n}]}case"pcb_smtpad":{if(n.shape==="rect"||n.shape==="rotated_rect"){const{shape:s,x:a,y:c,width:l,height:u,layer:d,rect_border_radius:h}=n,p=n.corner_radius??h??0;return[{_pcb_drawing_object_id:`rect_${Xl++}`,pcb_drawing_type:"rect",x:a,y:c,w:l,h:u,layer:d||"top",_element:n,_parent_pcb_component:t,_parent_source_component:i,_source_port:o,ccw_rotation:n.ccw_rotation,roundness:p}]}else if(n.shape==="circle"){const{x:s,y:a,radius:c,layer:l}=n;return[{_pcb_drawing_object_id:`circle_${Xl++}`,pcb_drawing_type:"circle",x:s,y:a,r:c,layer:l||"top",_element:n,_parent_pcb_component:t,_parent_source_component:i,_source_port:o}]}else if(n.shape==="polygon"){const{layer:s,points:a}=n;return[{_pcb_drawing_object_id:`polygon_${Xl++}`,pcb_drawing_type:"polygon",points:a,layer:s||"top",_element:n,_parent_pcb_component:t,_parent_source_component:i,_source_port:o}]}else if(n.shape==="pill"||n.shape==="rotated_pill"){const{x:s,y:a,width:c,height:l,layer:u}=n;return[{_pcb_drawing_object_id:`pill_${Xl++}`,pcb_drawing_type:"pill",x:s,y:a,w:c,h:l,layer:u||"top",_element:n,_parent_pcb_component:t,_parent_source_component:i,_source_port:o,ccw_rotation:n.ccw_rotation}]}return[]}case"pcb_hole":{if(n.hole_shape==="circle"||!n.hole_shape){const{x:s,y:a,hole_diameter:c}=n;return[{_pcb_drawing_object_id:`circle_${Xl++}`,pcb_drawing_type:"circle",x:s,y:a,r:c/2,layer:"drill",_element:n,_parent_pcb_component:t,_parent_source_component:i}]}return[]}case"pcb_plated_hole":if(n.shape==="circle"){const{x:s,y:a,hole_diameter:c,outer_diameter:l}=n;return[{_pcb_drawing_object_id:`circle_${Xl++}`,pcb_drawing_type:"circle",x:s,y:a,r:l/2,layer:"top",_element:n,_parent_pcb_component:t,_parent_source_component:i,_source_port:o},{_pcb_drawing_object_id:`circle_${Xl++}`,pcb_drawing_type:"circle",x:s,y:a,r:c/2,layer:"drill",_element:n}]}else if(n.shape==="oval"){const{x:s,y:a,outer_height:c,outer_width:l,hole_height:u,hole_width:d}=n;return[{_pcb_drawing_object_id:`oval_${Xl++}`,pcb_drawing_type:"oval",x:s,y:a,rX:l/2,rY:c/2,layer:"top",_element:n,_parent_pcb_component:t,_parent_source_component:i,_source_port:o},{_pcb_drawing_object_id:`oval_${Xl++}`,_element:n,pcb_drawing_type:"oval",x:s,y:a,rX:d/2,rY:u/2,layer:"drill"}]}else if(n.shape==="pill"){const{x:s,y:a,outer_height:c,outer_width:l,hole_height:u,hole_width:d}=n;return[{_pcb_drawing_object_id:`pill_${Xl++}`,pcb_drawing_type:"pill",x:s,y:a,w:l,h:c,layer:"top",_element:n,_parent_pcb_component:t,_parent_source_component:i,_source_port:o,ccw_rotation:n.ccw_rotation},{_pcb_drawing_object_id:`pill_${Xl++}`,_element:n,pcb_drawing_type:"pill",x:s,y:a,w:d,h:u,layer:"drill",ccw_rotation:n.ccw_rotation}]}else if(n.shape==="circular_hole_with_rect_pad"){const{x:s,y:a,hole_diameter:c,rect_pad_width:l,rect_pad_height:u,rect_border_radius:d}=n,h=n.hole_offset_x??0,p=n.hole_offset_y??0;return[{_pcb_drawing_object_id:`rect_${Xl++}`,pcb_drawing_type:"rect",x:s,y:a,w:l,h:u,layer:"top",_element:n,_parent_pcb_component:t,_parent_source_component:i,_source_port:o,roundness:d},{_pcb_drawing_object_id:`circle_${Xl++}`,_element:n,pcb_drawing_type:"circle",x:s+h,y:a+p,r:c/2,layer:"drill"}]}else if(n.shape==="pill_hole_with_rect_pad"){const{x:s,y:a,hole_width:c,hole_height:l,rect_pad_width:u,rect_pad_height:d,rect_border_radius:h}=n;return[{_pcb_drawing_object_id:`rect_${Xl++}`,pcb_drawing_type:"rect",x:s,y:a,w:u,h:d,layer:"top",_element:n,_parent_pcb_component:t,_parent_source_component:i,_source_port:o,roundness:h},{_pcb_drawing_object_id:`pill_${Xl++}`,_element:n,pcb_drawing_type:"pill",x:s,y:a,w:c,h:l,layer:"drill"}]}else if(n.shape==="rotated_pill_hole_with_rect_pad"){const{x:s,y:a,hole_width:c,hole_height:l,hole_ccw_rotation:u,rect_pad_width:d,rect_pad_height:h,rect_ccw_rotation:p,rect_border_radius:f}=n;return[{_pcb_drawing_object_id:`rect_${Xl++}`,pcb_drawing_type:"rect",x:s,y:a,w:d,h,layer:"top",_element:n,_parent_pcb_component:t,_parent_source_component:i,_source_port:o,ccw_rotation:p,roundness:f},{_pcb_drawing_object_id:`pill_${Xl++}`,_element:n,pcb_drawing_type:"pill",x:s,y:a,w:c,h:l,layer:"drill",ccw_rotation:u}]}else return[];case"pcb_keepout":{if(n.shape==="circle"){const{center:s,radius:a}=n;return[{_pcb_drawing_object_id:`circle_${Xl++}`,pcb_drawing_type:"circle",x:s.x,y:s.y,r:a,layer:"top",_element:n,_parent_pcb_component:t,_parent_source_component:i,mesh_fill:!0}]}else if(n.shape==="rect"){const{center:s,width:a,height:c}=n;return[{_pcb_drawing_object_id:`rect_${Xl++}`,pcb_drawing_type:"rect",x:s.x,y:s.y,w:a,h:c,layer:"top",_element:n,_parent_pcb_component:t,_parent_source_component:i,mesh_fill:!0}]}break}case"pcb_trace":{const s=[];if(n.route_thickness_mode==="interpolated"){const l=n.route.map(h=>({x:h.x,y:h.y,trace_width:h.route_type==="wire"?h.width:.5})),u=EGn(l,.5),d=n.route[0].layer;return s.push({_pcb_drawing_object_id:`polygon_${Xl++}`,_element:n,pcb_drawing_type:"polygon",points:u,layer:d}),n.route.forEach(h=>{h.route_type==="via"&&s.push({_pcb_drawing_object_id:`circle_${Xl++}`,_element:n,pcb_drawing_type:"circle",x:h.x,y:h.y,r:h.outer_diameter/2,layer:h.from_layer})}),s}let a=null,c=null;for(const l of n.route)l.route_type==="wire"&&(a!==null&&c!==null&&s.push({_pcb_drawing_object_id:`line_${Xl++}`,_element:n,pcb_drawing_type:"line",x1:a,y1:c,x2:l.x,y2:l.y,width:l.width,squareCap:!1,layer:l.layer}),a=l.x,c=l.y);return s}case"pcb_via":{const{x:s,y:a,outer_diameter:c,hole_diameter:l,from_layer:u,to_layer:d}=n;return[{_pcb_drawing_object_id:`circle_${Xl++}`,pcb_drawing_type:"circle",x:s,y:a,r:c/2,layer:u,_element:n,_parent_pcb_component:t,_parent_source_component:i},{_pcb_drawing_object_id:`circle_${Xl++}`,_element:n,pcb_drawing_type:"circle",x:s,y:a,r:l/2,layer:"drill",_parent_pcb_component:t,_parent_source_component:i},{_pcb_drawing_object_id:`circle_${Xl++}`,pcb_drawing_type:"circle",x:s,y:a,r:c/2,layer:d,_element:n,_parent_pcb_component:t,_parent_source_component:i}]}case"pcb_silkscreen_rect":return[{_pcb_drawing_object_id:`rect_${Xl++}`,pcb_drawing_type:"rect",x:n.center.x,y:n.center.y,w:n.width,h:n.height,layer:n.layer==="bottom"?"bottom_silkscreen":"top_silkscreen",stroke_width:n.stroke_width,is_filled:n.is_filled,has_stroke:n.has_stroke,is_stroke_dashed:n.is_stroke_dashed,_element:n}];case"pcb_silkscreen_circle":return[{_pcb_drawing_object_id:`circle_${Xl++}`,pcb_drawing_type:"circle",x:n.center.x,y:n.center.y,r:n.radius,layer:n.layer==="bottom"?"bottom_silkscreen":"top_silkscreen"}];case"pcb_silkscreen_oval":return[{_pcb_drawing_object_id:`oval_${Xl++}`,pcb_drawing_type:"oval",x:n.center.x,y:n.center.y,rX:n.radius_x/2,rY:n.radius_y/2,layer:n.layer==="bottom"?"bottom_silkscreen":"top_silkscreen"}];case"pcb_silkscreen_pill":return[{_pcb_drawing_object_id:`pill_${Xl++}`,pcb_drawing_type:"pill",x:n.center.x,y:n.center.y,w:n.width,h:n.height,layer:n.layer==="bottom"?"bottom_silkscreen":"top_silkscreen"}];case"pcb_silkscreen_line":return[{_pcb_drawing_object_id:`line_${Xl++}`,pcb_drawing_type:"line",x1:n.x1,y1:n.y1,x2:n.x2,y2:n.y2,width:.1,squareCap:!1,layer:n.layer==="bottom"?"bottom_silkscreen":"top_silkscreen"}];case"pcb_fabrication_note_path":case"pcb_silkscreen_path":{const{pcb_component_id:s,route:a,type:c}=n;let l;return c==="pcb_silkscreen_path"?l=n.layer==="bottom"?"bottom_silkscreen":"top_silkscreen":c==="pcb_fabrication_note_path"&&(l="top_fabrication"),a.slice(0,-1).map((u,d)=>{const h=a[d+1];return{_pcb_drawing_object_id:`line_${Xl++}`,pcb_drawing_type:"line",x1:u.x,y1:u.y,x2:h.x,y2:h.y,width:n.stroke_width??.1,squareCap:!1,layer:l,_element:n,_parent_pcb_component:t,_parent_source_component:i,_source_port:o}}).filter(Boolean)}case"pcb_silkscreen_text":return[{_pcb_drawing_object_id:`text_${Xl++}`,pcb_drawing_type:"text",x:n.anchor_position.x,y:n.anchor_position.y,layer:n.layer==="bottom"?"bottom_silkscreen":"top_silkscreen",align:n.anchor_alignment??"center",text:n.text,size:n.font_size,ccw_rotation:n.ccw_rotation}];case"pcb_copper_pour":{const s=n;switch(s.shape){case"rect":{const{center:a,width:c,height:l,layer:u,rotation:d}=s;return[{_pcb_drawing_object_id:__("pcb_copper_pour_rect"),pcb_drawing_type:"rect",x:a.x,y:a.y,w:c,h:l,layer:u,_element:n,ccw_rotation:d}]}case"polygon":{const{points:a,layer:c}=s;return[{_pcb_drawing_object_id:__("pcb_copper_pour_polygon"),pcb_drawing_type:"polygon",points:a,layer:c,_element:n}]}case"brep":{const{brep_shape:a,layer:c}=s;return[{_pcb_drawing_object_id:__("pcb_copper_pour_brep"),pcb_drawing_type:"polygon_with_arcs",brep_shape:a,layer:c,_element:n}]}}return[]}case"pcb_fabrication_note_dimension":{const s=n,{from:a,to:c,text:l,font_size:u,arrow_size:d}=s,h=n.layer==="bottom"?"bottom_fabrication":"top_fabrication",p=[],f=typeof d=="number"&&!Number.isNaN(d)?d:1;p.push({_pcb_drawing_object_id:__("pcb_fabrication_note_dimension"),pcb_drawing_type:"line",x1:a.x,y1:a.y,x2:c.x,y2:c.y,width:.05,squareCap:!1,layer:h,_element:n,_parent_pcb_component:t,_parent_source_component:i,_source_port:o});const _=c.x-a.x,g=c.y-a.y,x=Math.sqrt(_*_+g*g)||1,v=_/x,b=g/x,S=Math.PI/6,P=a.x+f*(v*Math.cos(S)-b*Math.sin(S)),A=a.y+f*(v*Math.sin(S)+b*Math.cos(S)),R=a.x+f*(v*Math.cos(-S)-b*Math.sin(-S)),T=a.y+f*(v*Math.sin(-S)+b*Math.cos(-S));p.push({_pcb_drawing_object_id:__("pcb_fabrication_note_dimension"),pcb_drawing_type:"line",x1:a.x,y1:a.y,x2:P,y2:A,width:.05,squareCap:!1,layer:h,_element:n,_parent_pcb_component:t,_parent_source_component:i,_source_port:o}),p.push({_pcb_drawing_object_id:__("pcb_fabrication_note_dimension"),pcb_drawing_type:"line",x1:a.x,y1:a.y,x2:R,y2:T,width:.05,squareCap:!1,layer:h,_element:n,_parent_pcb_component:t,_parent_source_component:i,_source_port:o});const I=c.x-f*(v*Math.cos(S)-b*Math.sin(S)),C=c.y-f*(v*Math.sin(S)+b*Math.cos(S)),z=c.x-f*(v*Math.cos(-S)-b*Math.sin(-S)),O=c.y-f*(v*Math.sin(-S)+b*Math.cos(-S));return p.push({_pcb_drawing_object_id:__("pcb_fabrication_note_dimension"),pcb_drawing_type:"line",x1:c.x,y1:c.y,x2:I,y2:C,width:.05,squareCap:!1,layer:h,_element:n,_parent_pcb_component:t,_parent_source_component:i,_source_port:o}),p.push({_pcb_drawing_object_id:__("pcb_fabrication_note_dimension"),pcb_drawing_type:"line",x1:c.x,y1:c.y,x2:z,y2:O,width:.05,squareCap:!1,layer:h,_element:n,_parent_pcb_component:t,_parent_source_component:i,_source_port:o}),l&&p.push({_pcb_drawing_object_id:__("pcb_fabrication_note_dimension"),pcb_drawing_type:"text",x:(a.x+c.x)/2,y:(a.y+c.y)/2,layer:h,align:"center",text:l,size:u,_element:n,_parent_pcb_component:t,_parent_source_component:i,_source_port:o}),p}case"pcb_fabrication_note_text":return[{_pcb_drawing_object_id:__("text"),pcb_drawing_type:"text",x:n.anchor_position.x,y:n.anchor_position.y,layer:n.layer==="bottom"?"bottom_fabrication":"top_fabrication",size:n.font_size,align:n.anchor_alignment??"center",text:n.text}];case"pcb_cutout":{const s=n;switch(s.shape){case"rect":return[{_pcb_drawing_object_id:__("pcb_cutout_rect"),pcb_drawing_type:"rect",x:s.center.x,y:s.center.y,w:s.width,h:s.height,layer:"drill",_element:n,_parent_pcb_component:t,_parent_source_component:i}];case"circle":return[{_pcb_drawing_object_id:__("pcb_cutout_circle"),pcb_drawing_type:"circle",x:s.center.x,y:s.center.y,r:s.radius,layer:"drill",_element:n,_parent_pcb_component:t,_parent_source_component:i}];case"polygon":return[{_pcb_drawing_object_id:__("pcb_cutout_polygon"),pcb_drawing_type:"polygon",points:s.points,layer:"drill",_element:n,_parent_pcb_component:t,_parent_source_component:i}];default:return console.warn(`Unsupported pcb_cutout shape: ${s.shape}`),[]}}case"pcb_note_line":{const s=n;return[{_pcb_drawing_object_id:__("pcb_note_line"),pcb_drawing_type:"line",x1:s.x1,y1:s.y1,x2:s.x2,y2:s.y2,width:s.stroke_width??.1,squareCap:!1,layer:"notes",color:s.color,_element:n,_parent_pcb_component:t,_parent_source_component:i}]}case"pcb_note_rect":{const s=n;return[{_pcb_drawing_object_id:__("pcb_note_rect"),pcb_drawing_type:"rect",x:s.center.x,y:s.center.y,w:s.width,h:s.height,layer:"notes",stroke_width:s.stroke_width,is_filled:s.is_filled,has_stroke:s.has_stroke,is_stroke_dashed:s.is_stroke_dashed,color:s.color,_element:n,_parent_pcb_component:t,_parent_source_component:i}]}case"pcb_note_path":{const s=n,{route:a,stroke_width:c}=s;return a.slice(0,-1).map((l,u)=>{const d=a[u+1];return{_pcb_drawing_object_id:__("pcb_note_path"),pcb_drawing_type:"line",x1:l.x,y1:l.y,x2:d.x,y2:d.y,width:c??.1,squareCap:!1,layer:"notes",color:s.color,_element:n,_parent_pcb_component:t,_parent_source_component:i}}).filter(Boolean)}case"pcb_note_text":{const s=n;return[{_pcb_drawing_object_id:__("pcb_note_text"),pcb_drawing_type:"text",x:s.anchor_position.x,y:s.anchor_position.y,layer:"notes",align:s.anchor_alignment??"center",text:s.text,size:s.font_size,color:s.color,_element:n,_parent_pcb_component:t,_parent_source_component:i}]}case"pcb_note_dimension":{const s=n,{from:a,to:c,text:l,font_size:u,arrow_size:d}=s,h=[];h.push({_pcb_drawing_object_id:__("pcb_note_dimension"),pcb_drawing_type:"line",x1:a.x,y1:a.y,x2:c.x,y2:c.y,width:.05,squareCap:!1,color:s.color,layer:"notes",_element:n,_parent_pcb_component:t,_parent_source_component:i});const p=c.x-a.x,f=c.y-a.y,_=Math.sqrt(p*p+f*f),g=p/_,x=f/_,v=Math.PI/6,b=a.x+d*(g*Math.cos(v)-x*Math.sin(v)),S=a.y+d*(g*Math.sin(v)+x*Math.cos(v)),P=a.x+d*(g*Math.cos(-v)-x*Math.sin(-v)),A=a.y+d*(g*Math.sin(-v)+x*Math.cos(-v));h.push({_pcb_drawing_object_id:__("pcb_note_dimension"),pcb_drawing_type:"line",x1:a.x,y1:a.y,x2:b,y2:S,width:.05,squareCap:!1,layer:"notes",_element:n}),h.push({_pcb_drawing_object_id:__("pcb_note_dimension"),pcb_drawing_type:"line",x1:a.x,y1:a.y,x2:P,y2:A,width:.05,squareCap:!1,layer:"notes",_element:n});const R=c.x-d*(g*Math.cos(v)-x*Math.sin(v)),T=c.y-d*(g*Math.sin(v)+x*Math.cos(v)),I=c.x-d*(g*Math.cos(-v)-x*Math.sin(-v)),C=c.y-d*(g*Math.sin(-v)+x*Math.cos(-v));return h.push({_pcb_drawing_object_id:__("pcb_note_dimension"),pcb_drawing_type:"line",x1:c.x,y1:c.y,x2:R,y2:T,width:.05,squareCap:!1,layer:"notes",_element:n}),h.push({_pcb_drawing_object_id:__("pcb_note_dimension"),pcb_drawing_type:"line",x1:c.x,y1:c.y,x2:I,y2:C,width:.05,squareCap:!1,layer:"notes",_element:n}),l&&h.push({_pcb_drawing_object_id:__("pcb_note_dimension"),pcb_drawing_type:"text",x:(a.x+c.x)/2,y:(a.y+c.y)/2,layer:"notes",align:"center",text:l,size:u,_element:n}),h}}return[]},yy={board:{anchor:"rgb(255, 38, 226)",aux_items:"rgb(255, 255, 255)",b_adhes:"rgb(0, 0, 132)",b_crtyd:"rgb(255, 38, 226)",b_fab:"rgb(88, 93, 132)",b_mask:"rgba(2, 255, 238, 0.400)",b_paste:"rgb(0, 194, 194)",b_silks:"rgb(242, 237, 161)",background:"rgb(0, 16, 35)",cmts_user:"rgb(89, 148, 220)",copper:{b:"rgb(77, 127, 196)",f:"rgb(200, 52, 52)",in1:"rgb(127, 200, 127)",in10:"rgb(237, 124, 51)",in11:"rgb(91, 195, 235)",in12:"rgb(247, 111, 142)",in13:"rgb(167, 165, 198)",in14:"rgb(40, 204, 217)",in15:"rgb(232, 178, 167)",in16:"rgb(242, 237, 161)",in17:"rgb(237, 124, 51)",in18:"rgb(91, 195, 235)",in19:"rgb(247, 111, 142)",in2:"rgb(206, 125, 44)",in20:"rgb(167, 165, 198)",in21:"rgb(40, 204, 217)",in22:"rgb(232, 178, 167)",in23:"rgb(242, 237, 161)",in24:"rgb(237, 124, 51)",in25:"rgb(91, 195, 235)",in26:"rgb(247, 111, 142)",in27:"rgb(167, 165, 198)",in28:"rgb(40, 204, 217)",in29:"rgb(232, 178, 167)",in3:"rgb(79, 203, 203)",in30:"rgb(242, 237, 161)",in4:"rgb(219, 98, 139)",in5:"rgb(167, 165, 198)",in6:"rgb(40, 204, 217)",in7:"rgb(232, 178, 167)",in8:"rgb(242, 237, 161)",in9:"rgb(141, 203, 129)"},cursor:"rgb(255, 255, 255)",drc:"rgb(194, 194, 194)",drc_error:"rgba(215, 91, 107, 0.800)",drc_exclusion:"rgb(255, 255, 255)",drc_warning:"rgba(255, 208, 66, 0.902)",dwgs_user:"rgb(194, 194, 194)",eco1_user:"rgb(180, 219, 210)",eco2_user:"rgb(216, 200, 82)",edge_cuts:"rgb(208, 210, 205)",f_adhes:"rgb(132, 0, 132)",f_crtyd:"rgb(255, 0, 245)",f_fab:"rgb(175, 175, 175)",f_mask:"rgba(216, 100, 255, 0.400)",f_paste:"rgba(180, 160, 154, 0.902)",f_silks:"rgb(242, 237, 161)",footprint_text_back:"rgb(0, 0, 132)",footprint_text_front:"rgb(194, 194, 194)",footprint_text_invisible:"rgb(132, 132, 132)",grid:"rgb(132, 132, 132)",grid_axes:"rgb(194, 194, 194)",margin:"rgb(255, 38, 226)",microvia:"rgb(0, 132, 132)",no_connect:"rgb(0, 0, 132)",pad_back:"rgb(77, 127, 196)",pad_front:"rgb(200, 52, 52)",pad_plated_hole:"rgb(194, 194, 0)",pad_through_hole:"rgb(227, 183, 46)",plated_hole:"rgb(26, 196, 210)",ratsnest:"rgba(245, 255, 213, 0.702)",select_overlay:"rgb(4, 255, 67)",through_via:"rgb(236, 236, 236)",user_1:"rgb(194, 194, 194)",user_2:"rgb(89, 148, 220)",user_3:"rgb(180, 219, 210)",user_4:"rgb(216, 200, 82)",user_5:"rgb(194, 194, 194)",user_6:"rgb(89, 148, 220)",user_7:"rgb(180, 219, 210)",user_8:"rgb(216, 200, 82)",user_9:"rgb(232, 178, 167)",via_blind_buried:"rgb(187, 151, 38)",via_hole:"rgb(227, 183, 46)",via_micro:"rgb(0, 132, 132)",via_through:"rgb(236, 236, 236)",worksheet:"rgb(200, 114, 171)"}},Aw=(n,e=1)=>{if(Math.abs(n.a)!==Math.abs(n.d))throw new Error("Cannot scale non-uniformly");return e*Math.abs(n.a)},g_={elementOverlay:30,dimensionOverlay:30,editTraceHintOverlay:30,errorOverlay:30,pcbGroupOverlay:25,ratsNestOverlay:20,toolbarOverlay:60,warnings:20,topLayer:10,clickToInteractOverlay:100},tL={red:"red",black:"black",green:"green",board:"rgb(255, 255, 255)",other:"#eee",top:yy.board.copper.f,inner1:yy.board.copper.in1,inner2:yy.board.copper.in2,inner4:yy.board.copper.in4,inner5:yy.board.copper.in5,inner6:yy.board.copper.in6,inner7:yy.board.copper.in7,inner8:yy.board.copper.in8,bottom:yy.board.copper.b,drill:yy.board.anchor,keepout:yy.board.background,tkeepout:yy.board.b_crtyd,tplace:yy.board.b_silks,top_silkscreen:yy.board.f_silks,bottom_silkscreen:yy.board.b_silks,top_fabrication:yy.board.f_fab,bottom_fabrication:yy.board.b_fab,notes:yy.board.user_2,...yy.board},MGn=["board","top","top_silkscreen","bottom_silkscreen","bottom","inner1","inner2","inner3","inner4","inner5","inner6"],AGn=class{canvasLayerMap;ctxLayerMap;aperture;transform;foregroundLayer="top";lastPoint;constructor(n){this.canvasLayerMap=n,this.ctxLayerMap=Object.fromEntries(Object.entries(n).map(([e,t])=>[e,t.getContext("2d")])),this.transform=Gh(),this.transform.d*=-1,this.transform=Io(this.transform,Vo(0,-500)),this.lastPoint={x:0,y:0},this.equip({})}clear(){for(const n of Object.values(this.ctxLayerMap))n.clearRect(0,0,n.canvas.width,n.canvas.height)}equip(n){this.aperture={fontSize:0,shape:"circle",mode:"add",size:0,color:"red",layer:"top",opacity:this.foregroundLayer===n.color?1:.5,...n}}drawMeshPattern(n,e,t,i,r,o=45){const s=this.getLayerCtx(),[a,c]=Dt(this.transform,[n,e]),[l,u]=Dt(this.transform,[n+t,e+i]),d=Aw(this.transform,r);s.lineWidth=1,s.strokeStyle=this.aperture.color;const h=p=>{const f=Math.sin(p),_=Math.cos(p),g=Math.sqrt(Math.pow(l-a,2)+Math.pow(u-c,2));for(let x=-g;x<=g;x+=d)s.beginPath(),s.moveTo(a+x*_-g*f,c+x*f+g*_),s.lineTo(a+x*_+g*f,c+x*f-g*_),s.stroke()};h(o*Math.PI/180),h((o+90)*Math.PI/180)}rect({x:n,y:e,w:t,h:i,mesh_fill:r,is_filled:o=!0,has_stroke:s,is_stroke_dashed:a,stroke_width:c,roundness:l}){const[u,d]=Dt(this.transform,[n-t/2,e-i/2]),[h,p]=Dt(this.transform,[n+t/2,e+i/2]);this.applyAperture();const f=this.getLayerCtx(),_=l?Aw(this.transform,l):0,g=s===void 0?o===!1:s;if(r)f.save(),f.beginPath(),_>0&&f.roundRect?f.roundRect(u,d,h-u,p-d,_):f.rect(u,d,h-u,p-d),f.clip(),this.drawMeshPattern(n-t/2,e-i/2,t,i,.15),f.restore(),_>0&&f.roundRect?(f.beginPath(),f.roundRect(u,d,h-u,p-d,_),f.stroke()):f.strokeRect(u,d,h-u,p-d);else if(o!==!1&&(_>0&&f.roundRect?(f.beginPath(),f.roundRect(u,d,h-u,p-d,_),f.fill()):f.fillRect(u,d,h-u,p-d)),g){const x=f.lineWidth;if(c!==void 0&&(f.lineWidth=Aw(this.transform,c)),a){let v=[];const b=Math.abs(this.transform.a);if(b>0){const P=.1*b,A=P*1.3;P>.5&&(v=[P,A])}f.setLineDash(v)}_>0&&f.roundRect?(f.beginPath(),f.roundRect(u,d,h-u,p-d,_),f.stroke()):f.strokeRect(u,d,h-u,p-d),a&&f.setLineDash([]),c!==void 0&&(f.lineWidth=x)}}rotatedRect(n,e,t,i,r,o,s){const a=this.getLayerCtx();this.applyAperture();const[c,l]=Dt(this.transform,[n-t/2,e-i/2]),[u,d]=Dt(this.transform,[n+t/2,e+i/2]),h=o?Aw(this.transform,o):0;a.save();const[p,f]=Dt(this.transform,[n,e]);a.translate(p,f);const _=360-r;r&&a.rotate(_*Math.PI/180),a.translate(-p,-f),s?(a.beginPath(),h>0&&a.roundRect?a.roundRect(c,l,u-c,d-l,h):a.rect(c,l,u-c,d-l),a.clip(),this.drawMeshPattern(n-t/2,e-i/2,t,i,.15),h>0&&a.roundRect?(a.beginPath(),a.roundRect(c,l,u-c,d-l,h),a.stroke()):a.strokeRect(c,l,u-c,d-l)):h>0&&a.roundRect?(a.beginPath(),a.roundRect(c,l,u-c,d-l,h),a.fill()):a.fillRect(c,l,u-c,d-l),a.restore()}rotatedPill(n,e,t,i,r){const o=this.getLayerCtx();this.applyAperture(),o.save();const[s,a]=Dt(this.transform,[n,e]);o.translate(s,a);const c=360-r;r&&o.rotate(c*Math.PI/180),o.translate(-s,-a),this.pill(n,e,t,i),o.restore()}circle(n,e,t,i){const r=Aw(this.transform,t),[o,s]=Dt(this.transform,[n,e]);this.applyAperture();const a=this.getLayerCtx();i?(a.save(),a.beginPath(),a.arc(o,s,r,0,2*Math.PI),a.clip(),this.drawMeshPattern(n-t,e-t,t*2,t*2,.15),a.restore(),a.beginPath(),a.arc(o,s,r,0,2*Math.PI),a.stroke()):(a.beginPath(),a.arc(o,s,r,0,2*Math.PI),a.fill())}oval(n,e,t,i){const r=Aw(this.transform,t),o=Aw(this.transform,i),[s,a]=Dt(this.transform,[n,e]);this.applyAperture();const c=this.getLayerCtx();c.beginPath(),c.ellipse(s,a,r,o,0,0,2*Math.PI),c.fill(),c.closePath()}pill(n,e,t,i){const[r,o]=Dt(this.transform,[n-t/2,e+i/2]),s=Aw(this.transform,t),a=Aw(this.transform,i),c=Math.min(s,a)/2;this.applyAperture();const l=this.getLayerCtx();l.beginPath(),l.arc(r+c,o+c,c,Math.PI,Math.PI*1.5),l.arc(r+s-c,o+c,c,Math.PI*1.5,0),l.arc(r+s-c,o+a-c,c,0,Math.PI*.5),l.arc(r+c,o+a-c,c,Math.PI*.5,Math.PI),l.fill(),l.closePath()}polygon(n){if(n.length<3)return;this.applyAperture();const e=this.getLayerCtx(),t=n.map(r=>Dt(this.transform,[r.x,r.y]));e.beginPath(),e.moveTo(t[0][0],t[0][1]);for(let r=1;r<t.length;r++)e.lineTo(t[r][0],t[r][1]);e.closePath(),e.fill("evenodd");const i=Aw(this.transform,this.aperture.size);e.lineWidth=i,e.stroke()}debugText(n,e,t){const[i,r]=Dt(this.transform,[e,t]);this.applyAperture();const o=this.getLayerCtx();o.font="10px sans-serif",o.fillText(n,i,r)}getLayerCtx(){const n=this.ctxLayerMap[this.aperture.layer];if(!n)throw new Error(`No context for layer "${this.aperture.layer}"`);return n}orderAndFadeLayers(){const{canvasLayerMap:n,foregroundLayer:e}=this,t=new Set([e,"drill","other","board",e==="top"?"top_silkscreen":e==="bottom"?"bottom_silkscreen":""]);["drill","board",e,...MGn.filter(r=>r!==e)].forEach((r,o)=>{const s=n[r];s&&(r==="bottom_silkscreen"&&e==="bottom"||r==="top_silkscreen"&&e==="top"?s.style.zIndex=`${g_.topLayer}`:s.style.zIndex=`${g_.topLayer-o}`,s.style.opacity=t.has(r)?"1":"0.5")})}applyAperture(){const{transform:n,aperture:e}=this;let{size:t,mode:i,color:r,fontSize:o,layer:s}=e;s in this.ctxLayerMap||(this.aperture.layer="other");const a=this.getLayerCtx();if(!a)throw new Error(`No context for layer "${this.foregroundLayer}"`);if(r||(r="undefined"),a.lineWidth=Aw(n,t),a.lineCap="round",i==="add"){a.globalCompositeOperation="source-over";let c=r?.[0]==="#"||r?.startsWith("rgb")?r:tL[r?.toLowerCase()]?tL[r?.toLowerCase()]:null;c===null&&(console.warn(`Color mapping for "${r}" not found`),c="white"),a.fillStyle=c,a.strokeStyle=c}else a.globalCompositeOperation="destination-out",a.fillStyle="rgba(0,0,0,1)",a.strokeStyle="rgba(0,0,0,1)";a.font=`${Aw(V2(n),o)}px sans-serif`}moveTo(n,e){this.lastPoint={x:n,y:e}}lineTo(n,e){const[t,i]=Dt(this.transform,[n,e]),{size:r,shape:o,mode:s}=this.aperture,a=Aw(this.transform,r);let{lastPoint:c}=this;const l=Dt(this.transform,c);this.applyAperture();const u=this.getLayerCtx();o==="square"&&u.fillRect(l.x-a/2,l.y-a/2,a,a),u.beginPath(),u.moveTo(l.x,l.y),u.lineTo(t,i),u.stroke(),u.closePath(),o==="square"&&u.fillRect(t-a/2,i-a/2,a,a),this.lastPoint={x:n,y:e}}polygonWithArcs(n){const e=this.getLayerCtx(),t=i=>{if(i.vertices.length===0)return;const r=i.vertices[0],o=Dt(this.transform,[r.x,r.y]);e.moveTo(o[0],o[1]);for(let s=0;s<i.vertices.length;s++){const a=i.vertices[s],c=i.vertices[(s+1)%i.vertices.length];if(a.bulge&&a.bulge!==0){const l=a.bulge,u=c.x-a.x,d=c.y-a.y,h=Math.sqrt(u*u+d*d);if(h<1e-9){const O=Dt(this.transform,[c.x,c.y]);e.lineTo(O[0],O[1]);continue}const p=4*Math.atan(l),f=Math.abs(h/(2*Math.sin(p/2))),_=(a.x+c.x)/2,g=(a.y+c.y)/2,x=u/h,b=-(d/h),S=x,P=Math.sqrt(Math.max(0,f*f-(h/2)**2)),A=_+P*b*Math.sign(l),R=g+P*S*Math.sign(l),T=Math.atan2(a.y-R,a.x-A);let I=Math.atan2(c.y-R,c.x-A);l>0&&I<T?I+=2*Math.PI:l<0&&I>T&&(I-=2*Math.PI);const C=Dt(this.transform,[A,R]),z=Aw(this.transform,f);e.arc(C[0],C[1],z,-T,-I,l>0)}else{const l=Dt(this.transform,[c.x,c.y]);e.lineTo(l[0],l[1])}}e.closePath()};if(e.beginPath(),t(n.outer_ring),n.inner_rings)for(const i of n.inner_rings)t(i);e.fill("evenodd")}};function CGn(n){const{lines:e,anchorPoint:t,ccwRotation:i}=n;if(!i)return e;const r=i*Math.PI/180,o=X_(r),s=Io(Vo(t.x,t.y),o,Vo(-t.x,-t.y));return Dt(s,t),e.map(a=>({...a,x1:Dt(s,{x:a.x1,y:a.y1}).x,y1:Dt(s,{x:a.x1,y:a.y1}).y,x2:Dt(s,{x:a.x2,y:a.y2}).x,y2:Dt(s,{x:a.x2,y:a.y2}).y}))}var i0t={0:"M0.4544564813877358 0L0.2723441540828736 0.03592830447352719L0.1086847233315459 0.14528754990019965L0.020630545837255005 0.3040632652221331L0 0.5395277421960205L0.049259221760993496 0.7369487828466779L0.18080513776237842 0.9005494166306564L0.37036887043974215 0.9872116270037247L0.5864663759301132 1L0.8148695622827444 0.9332890276148733L0.9326583645506394 0.8113052246023419L1 0.4031281830668562L0.833288960385582 0.09886798567812842L0.6801767918233781 0.02483708485091681L0.4544564813877358 0",1:"M 0.198 0.272 L 0.537 0 L 0.54 1",2:"M0.069593147751606 0.19461498231706575L0.1039380353319058 0.1224291500164194L0.20543361884368308 0.05510832064153169L0.3717712794432549 0.009452970962689482L0.4785344452623127 0L0.663238590738758 0.008714098643339864L0.8017933618843684 0.04769189395915288L0.8775637379550322 0.10746757678258442L0.9047778372591005 0.17693069668193287L0.9029710920770878 0.2231347105796246L0.8704496788008566 0.30047744598157516L0.7292906538577354 0.4508486051631194L0.3737955032119913 0.7369006417749693L0 1L1 1",3:"M0.03917438899874637 0.19855364635107545L0.15510940508963084 0.06745632622133718L0.37598645522339846 0L0.8486391893813088 0.0652271323161611L0.9782182415054349 0.21747394183735683L0.9213133780517754 0.3547560290117714L0.6504271515903481 0.4543436297681271L0.22975249764129613 0.48476611625264143L0.7659038682744629 0.5411919558122493L0.9258712987734741 0.6203185665660985L1 0.7458360609169667L0.8938813281118737 0.9059190913045964L0.6166890258875837 1L0.261528440153542 0.9874861530507921L0 0.8837289530851273",4:"M0.7328897338403042 0L0 0.6684672518568535L1 0.6684672518568535M0.7243346007604563 0.4530722484807562L0.7243346007604563 1",5:"M 0 0 L 0 0.4973 L 0.4262 0.4319 L 0.7305 0.4565 L 0.8516 0.5009 L 0.9357 0.5639 L 1 0.7356 L 0.9696 0.8248 L 0.8898 0.895 L 0.733 0.9602 L 0.5518 0.9945 L 0.3814 1 L 0.2379 0.9821 L 0.1219 0.947 L 0 0.8748 M 0 0 L 1 0",6:"M0.6964601700926856 0L0.3639239026215478 0.0743562375769351L0.1415931962925719 0.21735490179786915L0.009977939399608712 0.46336322325406004L0.00029622007592593224 0.7083131475173043L0.09408885043224748 0.8746809149767036L0.3379247445101846 0.9876686500961888L0.7109203869569624 1L0.9260852957913362 0.9103558029693921L1 0.7716571969091733L0.9824294723385016 0.6390635485705886L0.7446504992867332 0.4733643097729175L0.31028858071607296 0.47578021640899115L0.1208702146816024 0.5481452483973847L0 0.6616669755788906",7:"M0 0L1 0L0.9246479649697582 0.030539772727272752L0.8850302419354837 0.05075757575757579L0.7922946068548385 0.11079545454545457L0.7419268208165322 0.15213068181818185L0.6907258064516127 0.20202020202020204L0.6400666267641127 0.26122159090909086L0.5913243447580644 0.33049242424242414L0.5458740234374998 0.4105902777777778L0.5050907258064514 0.5022727272727272L0.4703495148689514 0.6062973484848484L0.43257456133442534 0.787133049242424L0.41612903225806447 1",8:"M0.5143001078924863 0L0.16007477667923162 0.10731570786949331L0.14924628550868277 0.3146018498698755L0.2939585848842112 0.41617921794558677L0.8648302624811545 0.5385163833653317L1 0.7775820770511038L0.8180842915260376 0.9505845566922285L0.41968938540525413 1L0.08062381919779889 0.882831681184498L0 0.6936376947135333L0.17150171673893433 0.5188652309607817L0.6529263782780712 0.4242818653203618L0.8650205888491803 0.29644027376796367L0.8702067371119496 0.09910067291661573L0.5143001078924863 0",9:"M1 0.25379591792994305L0.9514789771111742 0.11679361536614272L0.8702482473521467 0.05711741614054847L0.7327445265851579 0.015213872471965633L0.525248180711544 0L0.3292056884418538 0.012928195113745608L0.15997632037247655 0.058762870026191856L0.05266940041228321 0.12882439350476L0 0.2562067822770946L0.11316462894512366 0.4121335905917837L0.2403060136479954 0.4603365890068938L0.4097241967586011 0.4745978388276783L0.8642414300184816 0.420815170259988L0.9732054796346318 0.34537434075898393L1 0.25379591792994305M0.9647426784191072 0.35488595400360495L0.4756895081034974 1",A:"M0 1L0.4808333333333333 0L1 1M0.24250000000000002 0.6099439775910365L0.7341666666666666 0.6099439775910365",B:"M0 1L0 0.0117369978777208L0.30665717153513444 0L0.5874522807082946 0.03451403469442413L0.7766202217193218 0.15033936404895643L0.7471969743588041 0.31967962568332936L0.5246013359741988 0.4102978954282461L0.04378745314885416 0.44918617613783574L0.5112949594180156 0.469692928091109L0.8540266515643348 0.5552749498651879L1 0.6868463175009967L0.9880091196159324 0.8570018204672155L0.922301719975498 0.9321708046604659L0.7584266951758925 0.9932594737131338L0 1",C:"M1 0.23038928858890784L0.9328355511865092 0.12426412616785204L0.8096380839483327 0.04912601676267708L0.5763225801788256 0L0.4039037709527492 0.015028068281399815L0.2519579390951737 0.06533979308999706L0.10359458463139784 0.18146243506591617L0 0.4862728453971315L0.08129580872733055 0.792689266886982L0.20257034847159672 0.9160822255736587L0.3286572892798542 0.9738230826074175L0.5742878414421707 1L0.7883510303801312 0.9665431511195721L0.946851033994232 0.8689071500976585L1 0.7311049027121912",D:"M0 1L0.015604366822624637 0.020770988281483303L0.22564758265176144 0L0.3865476147957666 0.0024153386496795644L0.6479126635475078 0.051745644338731314L0.841191887805517 0.15827717679529366L0.9517008345536152 0.30172260586872185L0.9957536578687336 0.4504541551987709L1 0.5624359222498485L0.9798483279164735 0.6584121775234548L0.9386273319285215 0.7395945263504481L0.806292129480815 0.8624239259880274L0.6296239151398265 0.9406169638094516L0.3397492767598845 0.9954164354263132L0 1",E:"M0 0L0 1M0 0L1 0M0 0.5L0.7 0.5M0 1L1 1",F:"M0 0L0 1M0.011363636363636364 0.006802721088435374L1 0.006802721088435374M0.011363636363636364 0.4965986394557823L0.8409090909090909 0.4965986394557823",G:"M0.902666857540557 0.03860785012651126L0.6504261864675637 0L0.3838947267237336 0.015442305268228053L0.21293332876776194 0.07706794377239819L0.07799659974941617 0.1994951236187481L0 0.46380381528937314L0.04159964421546915 0.7502491408002389L0.13176692977834842 0.8535497868383203L0.2709176262273927 0.936767572377719L0.4386472596876406 0.9891638569283179L0.6145513562841309 1L0.7782254421419019 0.9585373611026471L0.9092650433859927 0.8540372997461425L1 0.5556012645283437L0.5583959277303046 0.55491741080559",H:"M0 0L0 1M0 0.4788732394366197L0.989010989010989 0.4788732394366197M1 0L1 1",I:"M0.5 0L0.5 1",J:"M0.9976457238788704 0L1 0.7396412315872798L0.9773931362096968 0.8322033314977973L0.9345115952458736 0.882296255506608L0.8743862896259549 0.9221331222466961L0.8024024079884948 0.9526431718061675L0.6443996712151668 0.9893997797356828L0.5035848940343224 1L0.3127211130319937 0.9877004749449337L0.17201910858386513 0.9539509911894274L0.10357419806379677 0.9212555066079295L0.053656568662899015 0.8816079295154184L0.020759483663648916 0.8360407488986785L0.003376206348523566 0.7855864537444934L0 0.7312775330396476",K:"M0 0L0 1M0.8787878787878788 0.06666666666666667L0 0.6148148148148148M0.3333333333333333 0.45925925925925926L1 0.9777777777777777",L:"M0 0L0 1L1 1",M:"M0 1L0 0L0.5 0.6512L1 0L1 1",N:"M0 1L0 0L1 1L0.9803729146221786 0",O:"M0.4718499217948183 1L0.2896765846490613 0.9606979309189402L0.12315162147934663 0.8411184486080473L0 0.4352399966492615L0.11730398524516283 0.13145645436014852L0.2612197451988078 0.04493357858878059L0.5104071592772554 0L0.7450113425917159 0.05393013710105273L0.882367950645524 0.15242300282020502L1 0.5224527406249126L0.9414597290654386 0.7560662329321755L0.8371289514446183 0.8910800547287298L0.6518259868433511 0.9830452628933628L0.4718499217948183 1",P:"M0 1L0 0.018871774228013626L0.29609603495819875 0L0.5609840637427541 0.011794858892508529L0.7332142696692472 0.04353904702296349L0.8102258645858864 0.0691965055027166L0.9330504315465442 0.14445061754775845L0.9876391714147118 0.22527816445836535L1 0.3434414070631638L0.9510549958116356 0.41772808046663146L0.8746646891596713 0.45879131862541683L0.7528523813396283 0.49171525113425024L0.5766919939969619 0.5153253033973054L0.33725744877712827 0.5284469008187558L0.025622667325582785 0.529905468802775",Q:"M0.4618887943546369 0.9755918167206952L0.28356128136544534 0.9372490397450218L0.12055179272160406 0.8205882753548176L0 0.4246165790405623L0.1148276047430244 0.12824784112887844L0.25570518844754375 0.043836831567190586L0.49963205786237674 0L0.7292835601228574 0.0526138004304122L0.8637404608452104 0.14870263423138746L0.9788892040030622 0.5097006183769648L0.9215847647858059 0.7376120297474734L0.8194564929275405 0.869330409436378L0.6380654214095985 0.9590509139448092L0.4618887943546369 0.9755918167206952M0.5824181120212351 0.6861805006946525L1 1",R:"M0 0.9928375167236815L0 0.02590227442068435L0.3611517274211098 0L0.6146286724700761 0.008660554424468435L0.7675462459194776 0.035269459580494614L0.831839975516866 0.056961676692569484L0.8847592491838954 0.08519560521497332L0.9238557535364527 0.120683646438422L0.9583303225312839 0.21691797435320384L0.955092470586235 0.3022616904894429L0.9198097669001631 0.3640573439322699L0.8564862239866702 0.40639258627024005L0.7691258543593579 0.43335506909190874L0.601775027203482 0.4539166070813109L0.023939064200217658 0.46997623755243123M0.5038084874863982 0.5108023922274467L1 1",S:"M0.8886929689221953 0.15146982162688968L0.7276173683050475 0.013780286031594946L0.34582323121005076 0L0.1318235250900008 0.09920162734298861L0.0444543935052531 0.2811287071349243L0.08064065829108809 0.3709571405906485L0.21603115127470426 0.4485505768228281L0.7525409135992945 0.5111160926769565L0.9330263665417677 0.5850732219351329L1 0.7129938124702524L0.9117772389978691 0.9130572743138187L0.6423187128058188 1L0.29586019579751677 0.9935291584506244L0.10638454191462794 0.9229845198431584L0 0.7570771288048773",T:"M0 0L1 0M0.5148514851485149 0L0.5148514851485149 1",U:"M0 0L0.0023103778751369115 0.5467447428390111L0.01823032542100219 0.6954785891481812L0.05895528135268338 0.8056480226151669L0.13703402031421133 0.8894445726483398L0.23918400876232196 0.9448524533417946L0.3917887458926616 0.9848674531975652L0.584341627875137 1L0.7194816196604602 0.9848501456716763L0.8303268115073934 0.9449411544119768L0.8966613970084885 0.898186315516197L0.9251437568455642 0.867453197565408L0.9687114937020809 0.7890904895145239L0.9890470974808324 0.6852857184065537L1 0.0014769088758762145",V:"M0 0L0.5348837209302325 1L1 0",W:"M0 0L0.23300090661831369 0.9873417721518988L0.49954669084315495 0.30081906180193585L0.7851314596554849 1L1 0.0215934475055845",X:"M0 0L0.9893617021276596 1M1 0L0.010638297872340425 1",Y:"M0 0L0.4860515021459227 0.44712562100780695M1 0.0014194464158977947L0.48927038626609437 0.44996451383960256L0.5075107296137339 1",Z:"M0 0L1 0L0 1L1 1",".":"M 0.49 1 L 0.41 1","*":"M 0.5 0.25 L 0.8 0.25 M 0.5 0.25 L 0.5927 0.4402 M 0.5 0.25 L 0.2573 0.3676 M 0.5 0.25 L 0.2573 0.1324 M 0.5 0.25 L 0.599 0.055","(":"M0.75 0L0.25 0.5L0.25 0.5L0.75 1",")":"M0.25 0L0.75 0.5L0.75 0.5L0.25 1","-":"M0 0.5L1 0.5","+":"M 0 0.5 L 1 0.5 M 0.5 0.125 L 0.5 0.875","=":"M0 0.25L1 0.25M0 0.75L1 0.75",_:"M0 1 L1 1","[":"M0.75 0L0.25 0L0.25 1L0.75 1","]":"M0.25 0L0.75 0L0.75 1L0.25 1","<":"M0.75 0L0.25 0.5L0.25 0.5L0.75 1",">":"M0.25 0L0.75 0.5L0.75 0.5L0.25 1","'":"M 0.5 0 L 0.5 0.5",'"':"M 0.25 0 L 0.25 0.5 M 0.75 0 L 0.75 0.5"},Xxe={};for(const n in i0t){Xxe[n]=[];const e=i0t[n].split("M").slice(1).map(t=>t.split("L").map(i=>i.trim().split(" ").map(parseFloat)));for(const t of e)for(let i=0;i<t.length-1;i++)Xxe[n].push({x1:t[i][0],y1:1-t[i][1],x2:t[i+1][0],y2:1-t[i+1][1]})}var r0t=.6,o0t=.2,PGn=n=>{if(n.text.length===0)return 0;const e=n.size*.7,t=e*r0t,i=e*o0t;return n.text.length*t+(n.text.length-1)*i},RGn=n=>{const e=n.size*.7;if(e<=0||n.text.length===0)return[];const t=e/12,i=Math.max(0,e-t),r=t/2,o=e*r0t,s=Math.max(0,o-t),a=t/2,c=e*o0t,l=[];let u=n.x;for(let d=0;d<n.text.length;d++){const h=n.text[d],p=Xxe[h.toUpperCase()];if(!p){u+=o+c;continue}for(const{x1:f,y1:_,x2:g,y2:x}of p)l.push({_pcb_drawing_object_id:__("line"),pcb_drawing_type:"line",x1:u+a+s*f,y1:n.y+r+i*_,x2:u+a+s*g,y2:n.y+r+i*x,width:t,layer:n.layer,unit:n.unit});u+=o+c}return l};function OT(n){const t=n.color??tL[n.layer];return n.is_mouse_over||n.is_in_highlighted_net?VVn(t).lighten(.5).rgb().toString():t}var s0t=(n,e)=>{n.equip({size:e.zoomIndependent?e.width/n.transform.a:e.width,shape:e.squareCap?"square":"circle",color:OT(e),layer:e.layer}),n.moveTo(e.x1,e.y1),n.lineTo(e.x2,e.y2)},IGn=(n,e)=>{n.equip({fontSize:e.size,color:OT(e),layer:e.layer});let t={x:0,y:0};const i=PGn(e),r=e.size;switch(e.align){case"top_left":t.x=0,t.y=-r;break;case"top_center":t.x=-i/2,t.y=-r;break;case"top_right":t.x=-i,t.y=-r;break;case"center_left":t.x=0,t.y=-r/2;break;case"center":t.x=-i/2,t.y=-r/2;break;case"center_right":t.x=-i,t.y=-r/2;break;case"bottom_left":t.x=0,t.y=0;break;case"bottom_center":t.x=-i/2,t.y=0;break;case"bottom_right":t.x=-i,t.y=0;break;default:t.x=0,t.y=0;break}e.x??=0,e.y??=0;const o={x:e.x,y:e.y};let s=RGn({...e,x:e.x+t.x,y:e.y+t.y});if(e.layer==="bottom_silkscreen"&&(s=s.map(a=>({...a,x1:2*e.x-a.x1,x2:2*e.x-a.x2}))),e.ccw_rotation){const a={lines:s,anchorPoint:o,ccwRotation:e.ccw_rotation};s=CGn(a)}for(const a of s)s0t(n,a)},NGn=(n,e)=>{n.equip({color:OT(e),layer:e.layer,size:e.stroke_width}),n.rect({x:e.x,y:e.y,w:e.w,h:e.h,mesh_fill:e.mesh_fill,is_filled:e.is_filled,has_stroke:e.has_stroke,is_stroke_dashed:e.is_stroke_dashed,stroke_width:e.stroke_width,roundness:e.roundness})},kGn=(n,e)=>{n.equip({color:OT(e),layer:e.layer}),n.rotatedRect(e.x,e.y,e.w,e.h,e.ccw_rotation,e.roundness,e.mesh_fill)},OGn=(n,e)=>{n.equip({color:OT(e),layer:e.layer}),n.rotatedPill(e.x,e.y,e.w,e.h,e.ccw_rotation)},LGn=(n,e)=>{n.equip({color:OT(e),layer:e.layer}),n.circle(e.x,e.y,e.r,e.mesh_fill)},DGn=(n,e)=>{n.equip({color:OT(e),layer:e.layer}),n.oval(e.x,e.y,e.rX,e.rY)},$Gn=(n,e)=>{n.equip({color:OT(e),layer:e.layer}),n.pill(e.x,e.y,e.w,e.h)},zGn=(n,e)=>{n.equip({color:OT(e),layer:e.layer}),n.polygon(e.points)},FGn=(n,e)=>{n.equip({color:OT(e),layer:e.layer}),n.polygonWithArcs(e.brep_shape)},BGn=(n,e)=>{switch(e.pcb_drawing_type){case"line":return s0t(n,e);case"text":return IGn(n,e);case"rect":return e.ccw_rotation?kGn(n,e):NGn(n,e);case"circle":return LGn(n,e);case"oval":return DGn(n,e);case"pill":return e.ccw_rotation?OGn(n,e):$Gn(n,e);case"polygon":return zGn(n,e);case"polygon_with_arcs":return FGn(n,e)}},UGn=(n,e)=>{for(const t of e)BGn(n,t)},jGn=["board","bottom_silkscreen","bottom","top","top_silkscreen","inner1","inner2","inner3","inner4","inner5","inner6","drill","notes","other"],HGn=({primitives:n,transform:e,grid:t,width:i=500,height:r=500})=>{const o=be.useRef({}),s=Vb(a=>a.selected_layer);return be.useEffect(()=>{if(!o.current||Object.keys(o.current).length===0)return;const a=new AGn(o.current);e&&(a.transform=e),a.clear(),a.foregroundLayer=s,UGn(a,n),a.orderAndFadeLayers()},[n,e,s]),de.jsxs("div",{style:{backgroundColor:"black",width:i,height:r,position:"relative"},children:[de.jsx(Axe.SuperGrid,{textColor:"rgba(0,255,0,0.8)",majorColor:"rgba(0,255,0,0.4)",minorColor:"rgba(0,255,0,0.2)",screenSpaceCellSize:200,width:i,height:r,transform:e,stringifyCoord:(a,c,l)=>`${Axe.toMMSI(a,l)}, ${Axe.toMMSI(c,l)}`}),jGn.map(a=>a.replace(/-/g,"")).map((a,c)=>de.jsx("canvas",{className:`pcb-layer-${a}`,ref:l=>{o.current??={},o.current[a]=l},style:{position:"absolute",zIndex:c,left:0,top:0,pointerEvents:"none"},width:i,height:r},a))]})},VGn=.6,qGn=1;Bmt(Dqn()),Bmt(Qqn());var Jq=["rgba(239, 68, 68, 0.8)","rgba(249, 115, 22, 0.8)","rgba(245, 158, 11, 0.8)","rgba(234, 179, 8, 0.8)","rgba(132, 204, 22, 0.8)","rgba(34, 197, 94, 0.8)","rgba(16, 185, 129, 0.8)","rgba(20, 184, 166, 0.8)","rgba(6, 182, 212, 0.8)","rgba(14, 165, 233, 0.8)","rgba(59, 130, 246, 0.8)","rgba(99, 102, 241, 0.8)","rgba(139, 92, 246, 0.8)","rgba(168, 85, 247, 0.8)","rgba(217, 70, 239, 0.8)","rgba(236, 72, 153, 0.8)","rgba(249, 168, 212, 0.8)","rgba(161, 161, 170, 0.8)"];function a0t(n,e,t,i={}){const r=i.padding??40,o=i.yFlip??!1;let s;if("center"in n){const u=n.width/2,d=n.height/2;s={minX:n.center.x-u,maxX:n.center.x+u,minY:n.center.y-d,maxY:n.center.y+d}}else s=n;const a=s.maxX-s.minX||1,c=s.maxY-s.minY||1,l=Math.min((e-2*r)/a,(t-2*r)/c);return Io(Vo(e/2,t/2),Xm(l,o?-l:l),Vo(-(s.minX+a/2),-(s.minY+c/2)))}function GGn(n){const e=[...n.points||[],...(n.lines||[]).flatMap(t=>t.points),...(n.rects||[]).flatMap(t=>{const i=t.width/2,r=t.height/2;return[{x:t.center.x-i,y:t.center.y-r},{x:t.center.x+i,y:t.center.y-r},{x:t.center.x-i,y:t.center.y+r},{x:t.center.x+i,y:t.center.y+r}]}),...(n.circles||[]).flatMap(t=>[{x:t.center.x-t.radius,y:t.center.y},{x:t.center.x+t.radius,y:t.center.y},{x:t.center.x,y:t.center.y-t.radius},{x:t.center.x,y:t.center.y+t.radius}]),...(n.texts||[]).flatMap(t=>{const i=t.fontSize??12,r=t.text.length*i*VGn,o=i*qGn,s=t.anchorSide??"center",a={top_left:{dx:0,dy:0},top_center:{dx:-r/2,dy:0},top_right:{dx:-r,dy:0},center_left:{dx:0,dy:-o/2},center:{dx:-r/2,dy:-o/2},center_right:{dx:-r,dy:-o/2},bottom_left:{dx:0,dy:-o},bottom_center:{dx:-r/2,dy:-o},bottom_right:{dx:-r,dy:-o}},{dx:c,dy:l}=a[s],u=t.x+c,d=t.y+l;return[{x:u,y:d},{x:u+r,y:d+o}]})];return e.length===0?{minX:-1,maxX:1,minY:-1,maxY:1}:e.reduce((t,i)=>({minX:Math.min(t.minX,i.x),maxX:Math.max(t.maxX,i.x),minY:Math.min(t.minY,i.y),maxY:Math.max(t.maxY,i.y)}),{minX:1/0,maxX:-1/0,minY:1/0,maxY:-1/0})}function YGn(n,e,t={}){const i=e instanceof HTMLCanvasElement?e.getContext("2d"):e;if(!i)throw new Error("Could not get 2D context from canvas");const r=e instanceof HTMLCanvasElement?e.width:e.canvas.width,o=e instanceof HTMLCanvasElement?e.height:e.canvas.height;let s;if(t.transform)s=t.transform;else if(t.viewbox)s=a0t(t.viewbox,r,o,{padding:t.padding,yFlip:t.yFlip});else{const a=GGn(n),c=n.coordinateSystem==="cartesian";s=a0t(a,r,o,{padding:t.padding??40,yFlip:c})}i.clearRect(0,0,r,o),i.save(),n.rects&&n.rects.length>0&&n.rects.forEach(a=>{const c=a.width/2,l=a.height/2,u=Dt(s,{x:a.center.x-c,y:a.center.y-l}),d=Dt(s,{x:a.center.x+c,y:a.center.y+l}),h=Math.abs(d.x-u.x),p=Math.abs(d.y-u.y);i.beginPath(),i.rect(Math.min(u.x,d.x),Math.min(u.y,d.y),h,p),a.fill&&(i.fillStyle=a.fill,i.fill()),a.stroke&&(i.strokeStyle=a.stroke,i.stroke())}),n.circles&&n.circles.length>0&&n.circles.forEach(a=>{const c=Dt(s,a.center),l=a.radius*Math.abs(s.a);i.beginPath(),i.arc(c.x,c.y,l,0,2*Math.PI),a.fill&&(i.fillStyle=a.fill,i.fill()),a.stroke&&(i.strokeStyle=a.stroke??"transparent",i.stroke())}),n.lines&&n.lines.length>0&&n.lines.forEach((a,c)=>{if(a.points.length===0)return;i.beginPath();const l=Dt(s,a.points[0]);i.moveTo(l.x,l.y);for(let u=1;u<a.points.length;u++){const d=Dt(s,a.points[u]);i.lineTo(d.x,d.y)}if(i.strokeStyle=a.strokeColor||Jq[c%Jq.length],a.strokeWidth?i.lineWidth=a.strokeWidth*s.a:i.lineWidth=2,i.lineCap="round",a.strokeDash)if(typeof a.strokeDash=="string"){let u;if(a.strokeDash.includes(","))u=a.strokeDash.split(",").map(d=>parseFloat(d.trim())).filter(d=>!Number.isNaN(d));else{const d=parseFloat(a.strokeDash.trim());u=Number.isNaN(d)?[]:[d]}i.setLineDash(u)}else i.setLineDash(a.strokeDash.map(u=>u*Math.abs(s.a)));else i.setLineDash([]);i.stroke()}),n.points&&n.points.length>0&&n.points.forEach((a,c)=>{const l=Dt(s,a);i.beginPath(),i.arc(l.x,l.y,3,0,2*Math.PI),i.fillStyle=a.color||Jq[c%Jq.length],i.fill(),a.label&&!t.disableLabels&&(i.fillStyle=a.color||"black",i.font="12px sans-serif",i.fillText(a.label,l.x+5,l.y-5))}),n.texts&&n.texts.length>0&&n.texts.forEach(a=>{const c=Dt(s,{x:a.x,y:a.y});i.fillStyle=a.color||"black",i.font=`${(a.fontSize??12)*Math.abs(s.a)}px sans-serif`;const l=a.anchorSide??"center",u={top_left:"left",center_left:"left",bottom_left:"left",top_center:"center",center:"center",bottom_center:"center",top_right:"right",center_right:"right",bottom_right:"right"},d={top_left:"top",top_center:"top",top_right:"top",center_left:"middle",center:"middle",center_right:"middle",bottom_left:"bottom",bottom_center:"bottom",bottom_right:"bottom"};i.textAlign=u[l],i.textBaseline=d[l],i.fillText(a.text,c.x,c.y)}),i.restore()}var XGn=({children:n,transform:e,debugGraphics:t})=>{const i=be.useRef(null),[r,{width:o,height:s}]=Qq(),a=Vb(c=>c.is_showing_autorouting);return be.useEffect(()=>{a&&i.current&&t&&o&&s&&(i.current.width=o,i.current.height=s,YGn(t,i.current,{transform:e,disableLabels:!0}))},[t,e,o,s,a]),a?de.jsxs("div",{ref:r,style:{position:"relative",width:"100%",height:"100%"},children:[n,de.jsx("canvas",{ref:i,style:{position:"absolute",top:0,left:0,opacity:.5,zIndex:100,width:"100%",height:"100%",pointerEvents:"none"}})]}):n},WGn=({children:n,transform:e=Gh(),elements:t=[]})=>{const[i,{width:r,height:o}]=Qq(),s=be.useRef(null);return be.useEffect(()=>{const a=s.current;if(!a||!r||!o)return;a.width=r,a.height=o;const c=a.getContext("2d");if(!c)return;c.clearRect(0,0,r,o);const l=t.filter(d=>d.type==="pcb_component"),u=t.filter(d=>d.type==="pcb_manual_edit_conflict_warning");c.strokeStyle=yy.board.drc_warning,c.lineWidth=2,u.forEach(d=>{const h=l.find(Z=>Z.pcb_component_id===d.pcb_component_id);if(!h)return;const{width:p,height:f,center:_}=h,g=Dt(e,_),x=p*Math.abs(e.a),v=f*Math.abs(e.d),b=.1*Math.abs(e.a),S=x+b*2,P=v+b*2,A=g.x-S/2,R=g.y-P/2;c.beginPath(),c.rect(A,R,S,P),c.stroke();const T="Manual Edit Conflict",I=4,C=Math.max(8,Math.min(12,10*Math.abs(e.a)));c.font=`${C}px sans-serif`;const O=c.measureText(T).width+I*2,j=C+I*2,V=A+(S-O)/2,G=R+P+5;c.fillStyle="rgba(0, 0, 0, 0.7)",c.beginPath(),c.roundRect(V,G,O,j,3),c.fill(),c.fillStyle=yy.board.drc_warning,c.textAlign="center",c.textBaseline="middle",c.fillText(T,V+O/2,G+j/2)})},[t,e,r,o]),de.jsxs("div",{ref:i,style:{position:"relative",width:"100%",height:"100%"},children:[n,de.jsx("canvas",{ref:s,style:{position:"absolute",top:0,left:0,pointerEvents:"none",zIndex:g_.warnings}})]})},ZGn=({children:n,transform:e,focusOnHover:t=!1})=>{e||(e=Gh());const[i,r]=be.useState(!1),[o,s]=be.useState(!1),[a,c]=be.useState(!1),l=()=>{a&&(c(!1),window.dispatchEvent(new Event("disarm-dimension-tool")))},[u,d]=be.useState({x:0,y:0}),[h,p]=be.useState({x:0,y:0}),f=be.useRef({x:0,y:0}),_=be.useRef(null),x=_.current?.getBoundingClientRect();be.useEffect(()=>{const P=_.current,A=C=>{C.key==="d"&&(d({x:f.current.x,y:f.current.y}),p({x:f.current.x,y:f.current.y}),r(z=>!z),s(!0),l()),C.key==="Escape"&&(r(!1),s(!1),l())},R=()=>{c(!0)},T=()=>{P&&window.addEventListener("keydown",A)},I=()=>{P&&window.removeEventListener("keydown",A)};return window.addEventListener("arm-dimension-tool",R),P&&(P.addEventListener("focus",T),P.addEventListener("blur",I),P.addEventListener("mouseenter",T),P.addEventListener("mouseleave",I)),()=>{window.removeEventListener("arm-dimension-tool",R),l(),P&&(P.removeEventListener("focus",T),P.removeEventListener("blur",I),P.removeEventListener("mouseenter",T),P.removeEventListener("mouseleave",I))}},[_]);const v=Dt(e,u),b=Dt(e,h),S={left:Math.min(v.x,b.x),right:Math.max(v.x,b.x),top:Math.min(v.y,b.y),bottom:Math.max(v.y,b.y),flipX:v.x>b.x,flipY:v.y>b.y,width:0,height:0};return S.width=S.right-S.left,S.height=S.bottom-S.top,de.jsxs("div",{ref:_,tabIndex:0,style:{position:"relative"},onMouseEnter:()=>{t&&_.current&&_.current.focus()},onMouseLeave:()=>{_.current&&_.current.blur()},onMouseMove:P=>{const A=P.currentTarget.getBoundingClientRect(),R=P.clientX-A.left,T=P.clientY-A.top,I=Dt(V2(e),{x:R,y:T});f.current.x=I.x,f.current.y=I.y,o&&p({x:I.x,y:I.y})},onMouseDown:P=>{const A=P.currentTarget.getBoundingClientRect(),R=P.clientX-A.left,T=P.clientY-A.top,I=Dt(V2(e),{x:R,y:T});a&&!i?(d({x:I.x,y:I.y}),p({x:I.x,y:I.y}),r(!0),s(!0),l()):o?s(!1):i&&r(!1)},children:[n,i&&de.jsxs(de.Fragment,{children:[de.jsx("div",{style:{position:"absolute",left:S.left,width:S.width,textAlign:"center",top:v.y+2,color:"red",mixBlendMode:"difference",pointerEvents:"none",marginTop:S.flipY?0:-20,fontSize:12,fontFamily:"sans-serif",zIndex:g_.dimensionOverlay},children:Math.abs(u.x-h.x).toFixed(2)}),de.jsx("div",{style:{position:"absolute",left:b.x,height:S.height,display:"flex",flexDirection:"column",justifyContent:"center",top:S.top,color:"red",pointerEvents:"none",mixBlendMode:"difference",fontSize:12,fontFamily:"sans-serif",zIndex:g_.dimensionOverlay},children:de.jsx("div",{style:{marginLeft:S.flipX?"-100%":4,paddingRight:4},children:Math.abs(u.y-h.y).toFixed(2)})}),de.jsxs("svg",{style:{position:"absolute",left:0,top:0,pointerEvents:"none",mixBlendMode:"difference",zIndex:g_.dimensionOverlay},width:x.width,height:x.height,children:[de.jsx("defs",{children:de.jsx("marker",{id:"head",orient:"auto",markerWidth:"3",markerHeight:"4",refX:"2",refY:"2",children:de.jsx("path",{d:"M0,0 V4 L2,2 Z",fill:"red"})})}),de.jsx("line",{x1:v.x,y1:v.y,x2:b.x,y2:b.y,markerEnd:"url(#head)",strokeWidth:1.5,fill:"none",stroke:"red"}),de.jsx("line",{x1:v.x,y1:v.y,x2:b.x,y2:v.y,strokeWidth:1.5,fill:"none",strokeDasharray:"2,2",stroke:"red"}),de.jsx("line",{x1:b.x,y1:v.y,x2:b.x,y2:b.y,strokeWidth:1.5,fill:"none",strokeDasharray:"2,2",stroke:"red"})]}),de.jsxs("div",{style:{right:0,bottom:0,position:"absolute",color:"red",fontFamily:"sans-serif",fontSize:12,margin:4},children:["(",u.x.toFixed(2),",",u.y.toFixed(2),")",de.jsx("br",{}),"(",h.x.toFixed(2),",",h.y.toFixed(2),")",de.jsx("br",{}),"dist:"," ",Math.sqrt((h.x-u.x)**2+(h.y-u.y)**2).toFixed(2)]})]})]})},KGn=(n,e,t=0)=>{const i=n.width/2,r=n.height/2,o=n.center.x-i-t,s=n.center.x+i+t,a=n.center.y-r-t,c=n.center.y+r+t;return e.x>o&&e.x<s&&e.y>a&&e.y<c},QGn=({children:n,disabled:e,transform:t,soup:i,cancelPanDrag:r,onCreateEditEvent:o,onModifyEditEvent:s})=>{t||(t=Gh());const a=be.useRef(null),[c,l]=be.useState(null),[u,d]=be.useState(null),h=c!==null;Vb(g=>g.in_edit_mode);const p=Vb(g=>g.in_move_footprint_mode),f=Vb(g=>g.setIsMovingComponent),_=e||!p;return de.jsxs("div",{ref:a,style:{position:"relative",overflow:"hidden"},onMouseDown:g=>{if(_)return;const x=g.currentTarget.getBoundingClientRect(),v=g.clientX-x.left,b=g.clientY-x.top;if(Number.isNaN(v)||Number.isNaN(b))return;const S=Dt(V2(t),{x:v,y:b});let P=!1;for(const A of i)if(A.type==="pcb_component"&&KGn(A,S,10/t.a)){r(),l(A.pcb_component_id),P=!0;const R=Math.random().toString();d({dragStart:S,originalCenter:A.center,dragEnd:S,edit_event_id:R}),o({edit_event_id:R,edit_event_type:"edit_pcb_component_location",pcb_edit_event_type:"edit_component_location",pcb_component_id:A.pcb_component_id,original_center:A.center,new_center:A.center,in_progress:!0,created_at:Date.now()}),f(!0);break}if(P||l(null),P)return g.preventDefault(),!1},onMouseMove:g=>{if(!c||!u)return;const x=g.currentTarget.getBoundingClientRect(),v=g.clientX-x.left,b=g.clientY-x.top;if(Number.isNaN(v)||Number.isNaN(b))return;const S=Dt(V2(t),{x:v,y:b});d({...u,dragEnd:S}),s({edit_event_id:u.edit_event_id,new_center:{x:u.originalCenter.x+S.x-u.dragStart.x,y:u.originalCenter.y+S.y-u.dragStart.y}})},onMouseUp:g=>{c&&(l(null),f(!1),u&&(s({edit_event_id:u.edit_event_id,in_progress:!1}),d(null)))},children:[n,!_&&i.filter(g=>g.type==="pcb_component").map(g=>{if(!g?.center)return null;const x=Dt(t,g.center);return de.jsx("div",{style:{position:"absolute",pointerEvents:"none",left:x.x,top:x.y,width:g.width*t.a+20,height:g.height*t.a+20,transform:"translate(-50%, -50%)",background:h&&c===g.pcb_component_id?"rgba(255, 0, 0, 0.2)":""}},g.pcb_component_id)})]})},JGn=({hotkeys:n})=>(be.useEffect(()=>{const e=t=>{n.forEach(i=>{t.key===i.key&&i.onUse()})};return window.addEventListener("keydown",e),()=>{window.removeEventListener("keydown",e)}},[n]),de.jsx("div",{className:CI`
5511
5511
  display: flex;
5512
5512
  flex-direction: column;
5513
5513
  font-family: sans-serif;
@@ -5546,7 +5546,7 @@ $1`).replace(/>(\s*)(?=<!--\s*\/)/g,"> ")}}});function Wmt(n,e,t){if(!e||!t)retu
5546
5546
  transition: opacity 0.2s;
5547
5547
  margin-bottom: 10px;
5548
5548
  color: red;
5549
- `,oYn=({children:n,transform:e=Gh(),elements:t})=>{const i=be.useRef(null),{isShowingDRCErrors:r,hoveredErrorId:o}=Vb(l=>({isShowingDRCErrors:l.is_showing_drc_errors,hoveredErrorId:l.hovered_error_id}));if(!t)return de.jsx("div",{style:{position:"relative"},ref:i,children:n});const s=t.filter(l=>l.type==="pcb_trace_error"),a=t.filter(l=>l.type==="pcb_trace_error"&&l.message?.includes("Multiple components found with name")),c=new Map;return t.forEach(l=>{l.type==="pcb_port"&&c.set(l.pcb_port_id,l)}),de.jsxs("div",{style:{position:"relative"},ref:i,children:[n,s.map((l,u)=>{const{pcb_port_ids:d,pcb_trace_id:h}=l,p=d?.[0]?c.get(d[0]):void 0,f=d?.[1]?c.get(d[1]):void 0,_=t?nA(t).pcb_trace.get(h):void 0,g=l.pcb_trace_error_id||`error_${u}_${l.error_type}_${l.message?.slice(0,20)}`,x=o===g;if(p&&f){const v=Dt(e,{x:p.x,y:p.y}),b=Dt(e,{x:f.x,y:f.y}),S=!(isNaN(v.x)||isNaN(v.y)||isNaN(b.x)||isNaN(b.y)),P={x:(v.x+b.x)/2,y:(v.y+b.y)/2};if(isNaN(P.x)||isNaN(P.y))return null;const A=Wxe(P,i);return de.jsxs(be.Fragment,{children:[de.jsx(iYn,{screenPort1:v,screenPort2:b,errorCenter:P,canLineBeDrawn:S,isHighlighted:x}),de.jsx("div",{style:{position:"absolute",left:P.x-15,top:P.y-15,width:30,height:30,zIndex:g_.errorOverlay+5,cursor:"pointer",borderRadius:"50%"},onMouseEnter:R=>{const T=R.currentTarget.nextElementSibling;if(T){const I=T.querySelector(".error-message");I&&(I.style.opacity="1")}},onMouseLeave:R=>{if(!x){const T=R.currentTarget.nextElementSibling;if(T){const I=T.querySelector(".error-message");I&&(I.style.opacity="0")}}}}),de.jsx("div",{style:{position:"absolute",zIndex:x?200:100,left:A.left,top:A.top,color:x?"#ff4444":"red",textAlign:"center",fontFamily:"sans-serif",fontSize:12,display:r||x?"flex":"none",flexDirection:"column",alignItems:"center",pointerEvents:"none",transform:A.transform},children:de.jsx("div",{className:`error-message ${Zxe}`,style:{opacity:x?1:0,border:`1px solid ${x?"#ff4444":"red"}`},children:l.message})})]},g)}if(_?.route&&(r||x)){const v=_.route.map(A=>Dt(e,{x:A.x,y:A.y}));if(v.some(A=>isNaN(A.x)||isNaN(A.y)))return null;const b=Math.floor(v.length/2),S=v[b],P=Wxe(S,i);return de.jsxs(be.Fragment,{children:[de.jsx(rYn,{points:v,errorCenter:S,isHighlighted:x}),de.jsx("div",{style:{position:"absolute",left:S.x-15,top:S.y-15,width:30,height:30,zIndex:g_.errorOverlay+5,cursor:"pointer",borderRadius:"50%"},onMouseEnter:A=>{const R=A.currentTarget.nextElementSibling;if(R){const T=R.querySelector(".error-message");T&&(T.style.opacity="1")}},onMouseLeave:A=>{if(!x){const R=A.currentTarget.nextElementSibling;if(R){const T=R.querySelector(".error-message");T&&(T.style.opacity="0")}}}}),de.jsx("div",{style:{position:"absolute",zIndex:x?g_.errorOverlay+10:g_.errorOverlay+1,left:P.left,top:P.top,color:x?"#ff4444":"red",textAlign:"center",fontFamily:"sans-serif",fontSize:12,display:"flex",flexDirection:"column",alignItems:"center",pointerEvents:"none",transform:P.transform},children:de.jsx("div",{className:`error-message ${Zxe}`,style:{opacity:x?1:0,border:`1px solid ${x?"#ff4444":"red"}`},children:l.message})})]},g)}return null}),a.map((l,u)=>{const d=l.component_name||l.message?.match(/name "([^"]+)"/)?.[1];if(!d)return null;const h=t?.filter(_=>_.type==="source_component"&&_.name===d||_.type==="pcb_component"&&t?.find(g=>g.type==="source_component"&&g.source_component_id===_.source_component_id&&g.name===d))||[],p=l.pcb_trace_error_id||`error_${u}_${l.error_type}_${l.message?.slice(0,20)}`,f=o===p;return!f&&!r?null:h.map((_,g)=>{let x={x:0,y:0};if(_.type==="pcb_component")x=_.center||{x:0,y:0};else if(_.type==="source_component"){const I=t?.find(C=>C.type==="pcb_component"&&C.source_component_id===_.source_component_id);I&&I.type==="pcb_component"&&(x=I.center||{x:0,y:0})}const v=Dt(e,x);if(isNaN(v.x)||isNaN(v.y))return null;const b=Math.abs(e.a),R=Math.max(8,Math.min(30,.5*b)),T=Wxe(v,i);return de.jsxs(be.Fragment,{children:[de.jsx("svg",{style:{position:"absolute",left:0,top:0,pointerEvents:"none",mixBlendMode:"difference",zIndex:g_.errorOverlay},width:"100%",height:"100%",children:f?de.jsx("polygon",{points:`${v.x},${v.y-R*1.25} ${v.x+R},${v.y} ${v.x},${v.y+R*1.25} ${v.x-R},${v.y}`,fill:"#ff4444"}):de.jsx("circle",{cx:v.x,cy:v.y,r:R,fill:"none",stroke:f?"#ff4444":"red",strokeWidth:f?Math.max(2,R*.15):Math.max(1,R*.1),opacity:1})}),de.jsx("div",{style:{position:"absolute",left:v.x-(R+10),top:v.y-(R+10),width:(R+10)*2,height:(R+10)*2,zIndex:g_.errorOverlay+5,cursor:"pointer",borderRadius:"50%"},onMouseEnter:I=>{const C=I.currentTarget.nextElementSibling;if(C){const z=C.querySelector(".error-message");z&&(z.style.opacity="1")}},onMouseLeave:I=>{if(!f){const C=I.currentTarget.nextElementSibling;if(C){const z=C.querySelector(".error-message");z&&(z.style.opacity="0")}}}}),de.jsx("div",{style:{position:"absolute",zIndex:f?g_.errorOverlay+20:g_.errorOverlay+10,left:T.left,top:T.top,color:f?"#ff4444":"red",textAlign:"center",fontFamily:"sans-serif",fontSize:12,display:r||f?"flex":"none",flexDirection:"column",alignItems:"center",pointerEvents:"none",transform:T.transform},children:de.jsx("div",{className:`error-message ${Zxe}`,style:{opacity:f?1:0,border:`1px solid ${f?"#ff4444":"red"}`},children:l.message})})]},`${p}_${g}`)})})]})};function sYn({primitiveElement:n,elements:e}){let t=n.trace_length?`${n.trace_length.toFixed(3)}`:"";const i=nA(e).source_trace.get(n?.source_trace_id);if(i?.display_name&&(i?.max_length?t+=` / ${i.max_length}mm `:t+=" mm ",t+=`(${i.display_name})`),!t)return null;const r=n.trace_length&&i?.max_length&&n.trace_length>i.max_length;return{text:t,isOverLength:r}}function aYn(n){const{primitives:e,is_showing_multiple_traces_length:t,elements:i}=n,r=e.filter(c=>c._element.type==="pcb_trace"),o=i.filter(c=>c.type==="source_trace"),s=e.filter(c=>c._element.type!=="pcb_trace"),a=r.filter(c=>o.some(l=>c._element.type==="pcb_trace"&&c._element.source_trace_id===l.source_trace_id&&l.max_length!==void 0));if(!t)return[...s,...a];if(r.length>1){const c=r.reduce((l,u)=>{const d=l._element.trace_length;return u._element.trace_length<d?u:l},r[0]);return[...s,c]}return e}var cYn={position:"absolute",left:0,top:0,pointerEvents:"none",color:"red",fontFamily:"sans-serif",fontSize:12,textShadow:"0 0 2px black"},lYn=n=>{const{_element:e,_parent_pcb_component:t,_parent_source_component:i,_source_port:r}=n;switch(e.type){case"pcb_trace":return e.trace_length?`${e.trace_length.toFixed(3)}`:"";case"pcb_smtpad":case"pcb_plated_hole":{let o="";const s=Array.from(new Set((e.port_hints??[]).concat(r?.port_hints??[]))).filter(a=>!/^[0-9]+$/.test(a)).sort((a,c)=>c.localeCompare(a));return i&&"name"in i&&i.name&&(o+=`.${i.name}`,s.length>0&&(o+=" > ")),s.length>0&&(o+=s.map(a=>`.${a}`).join(", ")),o}default:return""}},uYn={top:"red",bottom:"aqua"},dYn=({primitive:n,mousePos:e,elements:t})=>{const[i,r]=be.useState(!1),o=n._element;be.useEffect(()=>{setTimeout(()=>{r(!0)},100)},[]);const[s,a,c,l]=[n.screen_x,n.screen_y,n.screen_w,n.screen_h],u=n.same_space_index??0,d=26,h=uYn[n?._element?.layer]??"red";let p=0;if(o.type==="pcb_smtpad"&&o?.shape==="rotated_rect"?p=o?.ccw_rotation??0:(o.type==="pcb_smtpad"&&(o?.shape==="pill"||o?.shape==="rotated_pill")&&"ccw_rotation"in n||o.type==="pcb_plated_hole"&&(o?.shape==="pill"||o?.shape==="oval")&&"ccw_rotation"in n)&&(p=o.ccw_rotation??0),o.type==="pcb_trace"){const _=sYn({primitiveElement:o,elements:t});if(!_)return null;const g=e.y-35;return de.jsx("div",{style:{zIndex:g_.elementOverlay,position:"absolute",left:e.x,top:g,color:h,pointerEvents:"none",transform:"translateX(-50%)"},children:de.jsx("div",{style:{backgroundColor:"#f2efcc",color:_.isOverLength?"red":"black",textShadow:"none",WebkitFontSmoothing:"antialiased",MozOsxFontSmoothing:"grayscale",padding:"6px 6px",borderRadius:"6px",fontSize:"14px",minWidth:"45px",textAlign:"center",whiteSpace:"nowrap"},children:_.text})})}return de.jsx("div",{style:{zIndex:g_.elementOverlay,position:"absolute",left:s-c/2-8,top:a-l/2-8,width:c+16,height:l+16,color:h,transform:`rotate(${-p}deg)`,transformOrigin:"center center"},children:de.jsx("div",{style:{width:i?`calc(100% + ${d*2*u}px)`:"100%",height:i?`calc(100% + ${d*2*u}px)`:"100%",marginLeft:i?`${-d*u}px`:0,marginTop:i?`${-d*u}px`:0,border:`1px solid ${h}`,opacity:i||u===0?1:0,transition:"width 0.2s, height 0.2s, margin-left 0.2s, margin-top 0.2s, opacity 0.2s"},children:de.jsx("div",{style:{position:"absolute",bottom:l+20+d*u,marginRight:i?`${-d*u}px`:0,marginBottom:i?0:-d*u,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(${p}deg)`,minWidth:"45px",textAlign:"center"},children:lYn(n)})})})},hYn=({highlightedPrimitives:n,mousePos:e,elements:t})=>{const[i,r]=Vb(a=>[a.is_moving_component,a.is_showing_multiple_traces_length]),o=n.some(a=>a._element.type==="pcb_smtpad")&&n.some(a=>a._element.type==="pcb_trace");let s=n;return o&&(s=s.filter(a=>a._element.type==="pcb_smtpad")),s=aYn({primitives:s,is_showing_multiple_traces_length:r,elements:t}),de.jsx("div",{style:cYn,children:!i&&s.map((a,c)=>de.jsx(dYn,{primitive:a,mousePos:e,elements:t},c))})};function pYn(n,e){return n.size!==e.size?!1:Array.from(n).every(t=>e.has(t))}function fYn(n,e,t){const i=(t.x-e.x)**2+(t.y-e.y)**2;if(i===0)return c0t(n,e);let r=((n.x-e.x)*(t.x-e.x)+(n.y-e.y)*(t.y-e.y))/i;r=Math.max(0,Math.min(1,r));const o={x:e.x+r*(t.x-e.x),y:e.y+r*(t.y-e.y)};return c0t(n,o)}function c0t(n,e){const t=n.x-e.x,i=n.y-e.y;return Math.sqrt(t*t+i*i)}var mYn=(n,e,t)=>{const i=[];for(const r of n){if(!r._element)continue;if("x1"in r&&r._element?.type==="pcb_trace"){const a=fYn({x:e.x,y:e.y},{x:r.x1,y:r.y1},{x:r.x2,y:r.y2}),c=r.width||.5,l=Math.max(c*25,2)/t.a;a<l&&i.push(r);continue}if(!("x"in r&&"y"in r))continue;let o=0,s=0;if("w"in r&&"h"in r)o=r.w,s=r.h;else if("r"in r)o=r.r*2,s=r.r*2;else continue;Math.abs(r.x-e.x)<o/2&&Math.abs(r.y-e.y)<s/2&&i.push(r)}return i},_Yn=({elements:n,children:e,transform:t,primitives:i,onMouseHoverOverPrimitives:r})=>{const[o,s]=be.useState([]),[a,c]=be.useState({x:0,y:0}),l=be.useMemo(()=>{const d=[];for(const h of o){if(h._element?.type==="pcb_via"||h._element?.type==="pcb_component"||h?.layer==="drill")continue;const p=Dt(t,h),f="w"in h?h.w:"r"in h?h.r*2:0,_="h"in h?h.h:"r"in h?h.r*2:0,g={w:f*t.a,h:_*t.a},x=d.filter(v=>p.x===v.screen_x&&p.y===v.screen_y&&g.w===v.screen_w&&g.h===v.screen_h).length;d.push({...h,screen_x:p.x,screen_y:p.y,screen_w:g.w,screen_h:g.h,same_space_index:x})}return d},[o,t]),u=(d,h,p,f)=>{c({x:d,y:h});const _=Dt(V2(p),{x:d,y:h}),g=mYn(f,_,p);pYn(new Set(g.map(x=>x._pcb_drawing_object_id)),new Set(o.map(x=>x._pcb_drawing_object_id)))||(s(g),r(g))};return de.jsxs("div",{style:{position:"relative"},onMouseMove:d=>{if(t){const h=d.currentTarget.getBoundingClientRect(),p=d.clientX-h.left,f=d.clientY-h.top;u(p,f,t,i)}},onTouchStart:d=>{if(t){const h=d.touches[0],p=d.currentTarget.getBoundingClientRect(),f=h.clientX-p.left,_=h.clientY-p.top;u(f,_,t,i)}},children:[e,de.jsx(hYn,{elements:n,mousePos:a,highlightedPrimitives:l})]})},l0t=["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)"],gYn=({children:n,transform:e=Gh(),elements:t=[]})=>{const[i,{width:r,height:o}]=Qq(),s=be.useRef(null),{is_showing_pcb_groups:a,pcb_group_view_mode:c}=Vb(l=>({is_showing_pcb_groups:l.is_showing_pcb_groups,pcb_group_view_mode:l.pcb_group_view_mode}));return be.useEffect(()=>{const l=s.current;if(!l||!r||!o)return;l.width=r,l.height=o;const u=l.getContext("2d");if(!u||(u.clearRect(0,0,r,o),!a))return;const d=t.filter(b=>b.type==="pcb_group"),h=t.filter(b=>b.type==="pcb_component"),p=t.filter(b=>b.type==="source_group"),f=new Map(p.map(b=>[b.source_group_id,b])),_=d.filter(b=>{if(c==="all")return!0;if(!b.source_group_id)return!1;const S=f.get(b.source_group_id);return S?S.was_automatically_named!==!0:!1}),g=new Map;p.forEach(b=>{const S=b;if(S.parent_source_group_id){const P=g.get(S.parent_source_group_id)||[];P.push(b.source_group_id),g.set(S.parent_source_group_id,P)}});const x=b=>{const S=[],P=g.get(b)||[];for(const A of P)S.push(A),S.push(...x(A));return S},v=b=>{const S=p.find(P=>P.source_group_id===b);return S?.parent_source_group_id?1+v(S.parent_source_group_id):0};_.forEach((b,S)=>{let P=h.filter(We=>We.pcb_group_id===b.pcb_group_id);if(b.source_group_id){const We=x(b.source_group_id),Ze=d.filter(qe=>qe.source_group_id&&We.includes(qe.source_group_id));for(const qe of Ze){const Xe=h.filter($e=>$e.pcb_group_id===qe.pcb_group_id);P=[...P,...Xe]}}if(P.length===0)return;let A=1/0,R=1/0,T=-1/0,I=-1/0;if(P.forEach(We=>{if(We.center&&typeof We.width=="number"&&typeof We.height=="number"){const Ze=We.center.x-We.width/2,qe=We.center.x+We.width/2,Xe=We.center.y+We.height/2,$e=We.center.y-We.height/2;A=Math.min(A,Ze),T=Math.max(T,qe),R=Math.min(R,$e),I=Math.max(I,Xe)}}),A===1/0||T===-1/0)return;const C=b.source_group_id?v(b.source_group_id):0,z=b.source_group_id?x(b.source_group_id).length>0:!1,V=1+(z?.5:0);A-=V,T+=V,R-=V,I+=V;const G=Dt(e,{x:A,y:I}),Z=Dt(e,{x:T,y:I}),K=Dt(e,{x:A,y:R}),oe=Dt(e,{x:T,y:R}),ce=l0t[S%l0t.length];u.strokeStyle=ce,u.lineWidth=2;const me=Math.max(4,Math.min(12,8*Math.abs(e.a))),te=Math.max(2,Math.min(6,4*Math.abs(e.a))),he=me*(z?1.3:1),Me=te;u.setLineDash([he,Me]),u.beginPath(),u.moveTo(G.x,G.y),u.lineTo(Z.x,Z.y),u.lineTo(oe.x,oe.y),u.lineTo(K.x,K.y),u.closePath(),u.stroke();const Ee=Math.max(8,Math.min(12,10*Math.abs(e.a))),Pe=C==0||C==1?0:C*.11,Le=Ee*(1-Pe),ke=4,ae=b.name||`Group ${S+1}`;u.font=`${Le}px sans-serif`,u.setLineDash([]);const xe=u.measureText(ae).width+ke*2,je=Le+ke*2,nt=G.x-5,ct=G.y-5,Ce=3;if(u.fillStyle="rgba(0, 0, 0, 0.8)",u.beginPath(),u.roundRect(nt,ct-je,xe,je,Ce),u.fill(),u.fillStyle=ce,u.textAlign="left",u.textBaseline="middle",u.fillText(ae,nt+ke,ct-je/2),b.anchor_position){const We=b.anchor_position,Ze=A,qe=T,Xe=I,$e=R;let Ae={x:We.x,y:We.y};const Ge=Math.abs(We.x-Ze),De=Math.abs(We.x-qe),Ke=Math.abs(We.y-Xe),et=Math.abs(We.y-$e),pt=Math.min(Ge,De,Ke,et);pt===Ge?Ae={x:Ze,y:We.y}:pt===De?Ae={x:qe,y:We.y}:pt===Ke?Ae={x:We.x,y:Xe}:Ae={x:We.x,y:$e};const xt=Dt(e,Ae);u.strokeStyle="white",u.lineWidth=1.5,u.setLineDash([]);const _t=Math.max(4,Math.min(8,6*Math.abs(e.a)));u.beginPath(),u.moveTo(xt.x-_t,xt.y),u.lineTo(xt.x+_t,xt.y),u.stroke(),u.beginPath(),u.moveTo(xt.x,xt.y-_t),u.lineTo(xt.x,xt.y+_t),u.stroke()}})},[t,e,r,o,a,c]),de.jsxs("div",{ref:i,style:{position:"relative",width:"100%",height:"100%"},children:[n,de.jsx("canvas",{ref:s,style:{position:"absolute",top:0,left:0,pointerEvents:"none",zIndex:g_.pcbGroupOverlay,display:a?"block":"none"}})]})},yYn=({transform:n,soup:e,children:t})=>{const i=Vb(a=>a.is_showing_rats_nest),{netMap:r,idToNetMap:o}=be.useMemo(()=>n0t(e||[]),[e]),s=be.useMemo(()=>{if(!e||!i)return[];const a=h=>{const p=nA(e)[h.replace(/_\d+$/,"")].get(h);return p&&"x"in p&&"y"in p?{x:p.x,y:p.y}:null},c=(h,p)=>{const f=r[p]||[];let _=null,g=1/0;return f.forEach(x=>{const v=a(x);if(v){const b=Math.sqrt((h.x-v.x)**2+(h.y-v.y)**2);b<g&&b>0&&(g=b,_=v)}}),_},l=nA(e).pcb_port.list(),u=nA(e).source_trace.list(),d=[];return l.forEach((h,p)=>{const f=o[h.pcb_port_id];let _=!1;for(const v of u)v.connected_source_port_ids.includes(h.source_port_id)&&v.connected_source_net_ids.length>0&&(_=!0);if(!f)return;const g={x:h.x,y:h.y},x=c(g,f);x&&d.push({key:`${h.pcb_port_id}-${p}`,startPoint:g,endPoint:x,isInNet:_})}),d},[e,r,o,i]);return!e||!i?t:(n||(n=Gh()),de.jsxs("div",{style:{position:"relative"},children:[t,de.jsx("svg",{style:{position:"absolute",left:0,top:0,width:"100%",height:"100%",pointerEvents:"none",opacity:.5,zIndex:g_.ratsNestOverlay},children:s.map(({key:a,startPoint:c,endPoint:l,isInNet:u})=>{const d=Dt(n,c),h=Dt(n,l);return de.jsx("line",{x1:d.x,y1:d.y,x2:h.x,y2:h.y,stroke:"white",strokeWidth:"1",strokeDasharray:u?"6,6":void 0},a)})})]}))},xYn={version:"1.11.231"},iA=(n,e)=>{const t=Vb(i=>i.is_mouse_over_container);be.useEffect(()=>{if(!n||typeof e!="function")return;const i=r=>{const o=n.split("+"),s=o.includes("ctrl"),a=o.includes("shift"),c=o.includes("alt"),l=o.includes("meta"),u=o[o.length-1];t&&(!s||r.ctrlKey)&&(!a||r.shiftKey)&&(!c||r.altKey)&&(!l||r.metaKey)&&r.key.toLowerCase()===u.toLowerCase()&&(r.preventDefault(),e())};return window.addEventListener("keydown",i),()=>{window.removeEventListener("keydown",i)}},[n,e])},vYn=()=>{const[n,e]=be.useState(!1);return be.useEffect(()=>{const t=()=>{e(window.innerWidth<=768)};return t(),window.addEventListener("resize",t),()=>window.removeEventListener("resize",t)},[]),n},bYn=({name:n,selected:e,onClick:t})=>de.jsxs("div",{className:CI`
5549
+ `,oYn=({children:n,transform:e=Gh(),elements:t})=>{const i=be.useRef(null),{isShowingDRCErrors:r,hoveredErrorId:o}=Vb(l=>({isShowingDRCErrors:l.is_showing_drc_errors,hoveredErrorId:l.hovered_error_id}));if(!t)return de.jsx("div",{style:{position:"relative"},ref:i,children:n});const s=t.filter(l=>l.type==="pcb_trace_error"),a=t.filter(l=>l.type==="pcb_trace_error"&&l.message?.includes("Multiple components found with name")),c=new Map;return t.forEach(l=>{l.type==="pcb_port"&&c.set(l.pcb_port_id,l)}),de.jsxs("div",{style:{position:"relative"},ref:i,children:[n,s.map((l,u)=>{const{pcb_port_ids:d,pcb_trace_id:h}=l,p=d?.[0]?c.get(d[0]):void 0,f=d?.[1]?c.get(d[1]):void 0,_=t?nA(t).pcb_trace.get(h):void 0,g=l.pcb_trace_error_id||`error_${u}_${l.error_type}_${l.message?.slice(0,20)}`,x=o===g;if(p&&f){const v=Dt(e,{x:p.x,y:p.y}),b=Dt(e,{x:f.x,y:f.y}),S=!(isNaN(v.x)||isNaN(v.y)||isNaN(b.x)||isNaN(b.y)),P={x:(v.x+b.x)/2,y:(v.y+b.y)/2};if(isNaN(P.x)||isNaN(P.y))return null;const A=Wxe(P,i);return de.jsxs(be.Fragment,{children:[de.jsx(iYn,{screenPort1:v,screenPort2:b,errorCenter:P,canLineBeDrawn:S,isHighlighted:x}),de.jsx("div",{style:{position:"absolute",left:P.x-15,top:P.y-15,width:30,height:30,zIndex:g_.errorOverlay+5,cursor:"pointer",borderRadius:"50%"},onMouseEnter:R=>{const T=R.currentTarget.nextElementSibling;if(T){const I=T.querySelector(".error-message");I&&(I.style.opacity="1")}},onMouseLeave:R=>{if(!x){const T=R.currentTarget.nextElementSibling;if(T){const I=T.querySelector(".error-message");I&&(I.style.opacity="0")}}}}),de.jsx("div",{style:{position:"absolute",zIndex:x?200:100,left:A.left,top:A.top,color:x?"#ff4444":"red",textAlign:"center",fontFamily:"sans-serif",fontSize:12,display:r||x?"flex":"none",flexDirection:"column",alignItems:"center",pointerEvents:"none",transform:A.transform},children:de.jsx("div",{className:`error-message ${Zxe}`,style:{opacity:x?1:0,border:`1px solid ${x?"#ff4444":"red"}`},children:l.message})})]},g)}if(_?.route&&(r||x)){const v=_.route.map(A=>Dt(e,{x:A.x,y:A.y}));if(v.some(A=>isNaN(A.x)||isNaN(A.y)))return null;const b=Math.floor(v.length/2),S=v[b],P=Wxe(S,i);return de.jsxs(be.Fragment,{children:[de.jsx(rYn,{points:v,errorCenter:S,isHighlighted:x}),de.jsx("div",{style:{position:"absolute",left:S.x-15,top:S.y-15,width:30,height:30,zIndex:g_.errorOverlay+5,cursor:"pointer",borderRadius:"50%"},onMouseEnter:A=>{const R=A.currentTarget.nextElementSibling;if(R){const T=R.querySelector(".error-message");T&&(T.style.opacity="1")}},onMouseLeave:A=>{if(!x){const R=A.currentTarget.nextElementSibling;if(R){const T=R.querySelector(".error-message");T&&(T.style.opacity="0")}}}}),de.jsx("div",{style:{position:"absolute",zIndex:x?g_.errorOverlay+10:g_.errorOverlay+1,left:P.left,top:P.top,color:x?"#ff4444":"red",textAlign:"center",fontFamily:"sans-serif",fontSize:12,display:"flex",flexDirection:"column",alignItems:"center",pointerEvents:"none",transform:P.transform},children:de.jsx("div",{className:`error-message ${Zxe}`,style:{opacity:x?1:0,border:`1px solid ${x?"#ff4444":"red"}`},children:l.message})})]},g)}return null}),a.map((l,u)=>{const d=l.component_name||l.message?.match(/name "([^"]+)"/)?.[1];if(!d)return null;const h=t?.filter(_=>_.type==="source_component"&&_.name===d||_.type==="pcb_component"&&t?.find(g=>g.type==="source_component"&&g.source_component_id===_.source_component_id&&g.name===d))||[],p=l.pcb_trace_error_id||`error_${u}_${l.error_type}_${l.message?.slice(0,20)}`,f=o===p;return!f&&!r?null:h.map((_,g)=>{let x={x:0,y:0};if(_.type==="pcb_component")x=_.center||{x:0,y:0};else if(_.type==="source_component"){const I=t?.find(C=>C.type==="pcb_component"&&C.source_component_id===_.source_component_id);I&&I.type==="pcb_component"&&(x=I.center||{x:0,y:0})}const v=Dt(e,x);if(isNaN(v.x)||isNaN(v.y))return null;const b=Math.abs(e.a),R=Math.max(8,Math.min(30,.5*b)),T=Wxe(v,i);return de.jsxs(be.Fragment,{children:[de.jsx("svg",{style:{position:"absolute",left:0,top:0,pointerEvents:"none",mixBlendMode:"difference",zIndex:g_.errorOverlay},width:"100%",height:"100%",children:f?de.jsx("polygon",{points:`${v.x},${v.y-R*1.25} ${v.x+R},${v.y} ${v.x},${v.y+R*1.25} ${v.x-R},${v.y}`,fill:"#ff4444"}):de.jsx("circle",{cx:v.x,cy:v.y,r:R,fill:"none",stroke:f?"#ff4444":"red",strokeWidth:f?Math.max(2,R*.15):Math.max(1,R*.1),opacity:1})}),de.jsx("div",{style:{position:"absolute",left:v.x-(R+10),top:v.y-(R+10),width:(R+10)*2,height:(R+10)*2,zIndex:g_.errorOverlay+5,cursor:"pointer",borderRadius:"50%"},onMouseEnter:I=>{const C=I.currentTarget.nextElementSibling;if(C){const z=C.querySelector(".error-message");z&&(z.style.opacity="1")}},onMouseLeave:I=>{if(!f){const C=I.currentTarget.nextElementSibling;if(C){const z=C.querySelector(".error-message");z&&(z.style.opacity="0")}}}}),de.jsx("div",{style:{position:"absolute",zIndex:f?g_.errorOverlay+20:g_.errorOverlay+10,left:T.left,top:T.top,color:f?"#ff4444":"red",textAlign:"center",fontFamily:"sans-serif",fontSize:12,display:r||f?"flex":"none",flexDirection:"column",alignItems:"center",pointerEvents:"none",transform:T.transform},children:de.jsx("div",{className:`error-message ${Zxe}`,style:{opacity:f?1:0,border:`1px solid ${f?"#ff4444":"red"}`},children:l.message})})]},`${p}_${g}`)})})]})};function sYn({primitiveElement:n,elements:e}){let t=n.trace_length?`${n.trace_length.toFixed(3)}`:"";const i=nA(e).source_trace.get(n?.source_trace_id);if(i?.display_name&&(i?.max_length?t+=` / ${i.max_length}mm `:t+=" mm ",t+=`(${i.display_name})`),!t)return null;const r=n.trace_length&&i?.max_length&&n.trace_length>i.max_length;return{text:t,isOverLength:r}}function aYn(n){const{primitives:e,is_showing_multiple_traces_length:t,elements:i}=n,r=e.filter(c=>c._element.type==="pcb_trace"),o=i.filter(c=>c.type==="source_trace"),s=e.filter(c=>c._element.type!=="pcb_trace"),a=r.filter(c=>o.some(l=>c._element.type==="pcb_trace"&&c._element.source_trace_id===l.source_trace_id&&l.max_length!==void 0));if(!t)return[...s,...a];if(r.length>1){const c=r.reduce((l,u)=>{const d=l._element.trace_length;return u._element.trace_length<d?u:l},r[0]);return[...s,c]}return e}var cYn={position:"absolute",left:0,top:0,pointerEvents:"none",color:"red",fontFamily:"sans-serif",fontSize:12,textShadow:"0 0 2px black"},lYn=n=>{const{_element:e,_parent_pcb_component:t,_parent_source_component:i,_source_port:r}=n;switch(e.type){case"pcb_trace":return e.trace_length?`${e.trace_length.toFixed(3)}`:"";case"pcb_smtpad":case"pcb_plated_hole":{let o="";const s=Array.from(new Set((e.port_hints??[]).concat(r?.port_hints??[]))).filter(a=>!/^[0-9]+$/.test(a)).sort((a,c)=>c.localeCompare(a));return i&&"name"in i&&i.name&&(o+=`.${i.name}`,s.length>0&&(o+=" > ")),s.length>0&&(o+=s.map(a=>`.${a}`).join(", ")),o}default:return""}},uYn={top:"red",bottom:"aqua"},dYn=({primitive:n,mousePos:e,elements:t})=>{const[i,r]=be.useState(!1),o=n._element;be.useEffect(()=>{setTimeout(()=>{r(!0)},100)},[]);const[s,a,c,l]=[n.screen_x,n.screen_y,n.screen_w,n.screen_h],u=n.same_space_index??0,d=26,h=uYn[n?._element?.layer]??"red";let p=0;if(o.type==="pcb_smtpad"&&o?.shape==="rotated_rect"?p=o?.ccw_rotation??0:(o.type==="pcb_smtpad"&&(o?.shape==="pill"||o?.shape==="rotated_pill")&&"ccw_rotation"in n||o.type==="pcb_plated_hole"&&(o?.shape==="pill"||o?.shape==="oval")&&"ccw_rotation"in n)&&(p=o.ccw_rotation??0),o.type==="pcb_trace"){const _=sYn({primitiveElement:o,elements:t});if(!_)return null;const g=e.y-35;return de.jsx("div",{style:{zIndex:g_.elementOverlay,position:"absolute",left:e.x,top:g,color:h,pointerEvents:"none",transform:"translateX(-50%)"},children:de.jsx("div",{style:{backgroundColor:"#f2efcc",color:_.isOverLength?"red":"black",textShadow:"none",WebkitFontSmoothing:"antialiased",MozOsxFontSmoothing:"grayscale",padding:"6px 6px",borderRadius:"6px",fontSize:"14px",minWidth:"45px",textAlign:"center",whiteSpace:"nowrap"},children:_.text})})}return de.jsx("div",{style:{zIndex:g_.elementOverlay,position:"absolute",left:s-c/2-8,top:a-l/2-8,width:c+16,height:l+16,color:h,transform:`rotate(${-p}deg)`,transformOrigin:"center center"},children:de.jsx("div",{style:{width:i?`calc(100% + ${d*2*u}px)`:"100%",height:i?`calc(100% + ${d*2*u}px)`:"100%",marginLeft:i?`${-d*u}px`:0,marginTop:i?`${-d*u}px`:0,border:`1px solid ${h}`,opacity:i||u===0?1:0,transition:"width 0.2s, height 0.2s, margin-left 0.2s, margin-top 0.2s, opacity 0.2s"},children:de.jsx("div",{style:{position:"absolute",bottom:l+20+d*u,marginRight:i?`${-d*u}px`:0,marginBottom:i?0:-d*u,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(${p}deg)`,minWidth:"45px",textAlign:"center"},children:lYn(n)})})})},hYn=({highlightedPrimitives:n,mousePos:e,elements:t})=>{const[i,r]=Vb(a=>[a.is_moving_component,a.is_showing_multiple_traces_length]),o=n.some(a=>a._element.type==="pcb_smtpad")&&n.some(a=>a._element.type==="pcb_trace");let s=n;return o&&(s=s.filter(a=>a._element.type==="pcb_smtpad")),s=aYn({primitives:s,is_showing_multiple_traces_length:r,elements:t}),de.jsx("div",{style:cYn,children:!i&&s.map((a,c)=>de.jsx(dYn,{primitive:a,mousePos:e,elements:t},c))})};function pYn(n,e){return n.size!==e.size?!1:Array.from(n).every(t=>e.has(t))}function fYn(n,e,t){const i=(t.x-e.x)**2+(t.y-e.y)**2;if(i===0)return c0t(n,e);let r=((n.x-e.x)*(t.x-e.x)+(n.y-e.y)*(t.y-e.y))/i;r=Math.max(0,Math.min(1,r));const o={x:e.x+r*(t.x-e.x),y:e.y+r*(t.y-e.y)};return c0t(n,o)}function c0t(n,e){const t=n.x-e.x,i=n.y-e.y;return Math.sqrt(t*t+i*i)}var mYn=(n,e,t)=>{const i=[];for(const r of n){if(!r._element)continue;if("x1"in r&&r._element?.type==="pcb_trace"){const a=fYn({x:e.x,y:e.y},{x:r.x1,y:r.y1},{x:r.x2,y:r.y2}),c=r.width||.5,l=Math.max(c*25,2)/t.a;a<l&&i.push(r);continue}if(!("x"in r&&"y"in r))continue;let o=0,s=0;if("w"in r&&"h"in r)o=r.w,s=r.h;else if("r"in r)o=r.r*2,s=r.r*2;else continue;Math.abs(r.x-e.x)<o/2&&Math.abs(r.y-e.y)<s/2&&i.push(r)}return i},_Yn=({elements:n,children:e,transform:t,primitives:i,onMouseHoverOverPrimitives:r})=>{const[o,s]=be.useState([]),[a,c]=be.useState({x:0,y:0}),l=be.useMemo(()=>{const d=[];for(const h of o){if(h._element?.type==="pcb_via"||h._element?.type==="pcb_component"||h?.layer==="drill")continue;const p=Dt(t,h),f="w"in h?h.w:"r"in h?h.r*2:0,_="h"in h?h.h:"r"in h?h.r*2:0,g={w:f*t.a,h:_*t.a},x=d.filter(v=>p.x===v.screen_x&&p.y===v.screen_y&&g.w===v.screen_w&&g.h===v.screen_h).length;d.push({...h,screen_x:p.x,screen_y:p.y,screen_w:g.w,screen_h:g.h,same_space_index:x})}return d},[o,t]),u=(d,h,p,f)=>{c({x:d,y:h});const _=Dt(V2(p),{x:d,y:h}),g=mYn(f,_,p);pYn(new Set(g.map(x=>x._pcb_drawing_object_id)),new Set(o.map(x=>x._pcb_drawing_object_id)))||(s(g),r(g))};return de.jsxs("div",{style:{position:"relative"},onMouseMove:d=>{if(t){const h=d.currentTarget.getBoundingClientRect(),p=d.clientX-h.left,f=d.clientY-h.top;u(p,f,t,i)}},onTouchStart:d=>{if(t){const h=d.touches[0],p=d.currentTarget.getBoundingClientRect(),f=h.clientX-p.left,_=h.clientY-p.top;u(f,_,t,i)}},children:[e,de.jsx(hYn,{elements:n,mousePos:a,highlightedPrimitives:l})]})},l0t=["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)"],gYn=({children:n,transform:e=Gh(),elements:t=[]})=>{const[i,{width:r,height:o}]=Qq(),s=be.useRef(null),{is_showing_pcb_groups:a,pcb_group_view_mode:c}=Vb(l=>({is_showing_pcb_groups:l.is_showing_pcb_groups,pcb_group_view_mode:l.pcb_group_view_mode}));return be.useEffect(()=>{const l=s.current;if(!l||!r||!o)return;l.width=r,l.height=o;const u=l.getContext("2d");if(!u||(u.clearRect(0,0,r,o),!a))return;const d=t.filter(b=>b.type==="pcb_group"),h=t.filter(b=>b.type==="pcb_component"),p=t.filter(b=>b.type==="source_group"),f=new Map(p.map(b=>[b.source_group_id,b])),_=d.filter(b=>{if(c==="all")return!0;if(!b.source_group_id)return!1;const S=f.get(b.source_group_id);return S?S.was_automatically_named!==!0:!1}),g=new Map;p.forEach(b=>{const S=b;if(S.parent_source_group_id){const P=g.get(S.parent_source_group_id)||[];P.push(b.source_group_id),g.set(S.parent_source_group_id,P)}});const x=b=>{const S=[],P=g.get(b)||[];for(const A of P)S.push(A),S.push(...x(A));return S},v=b=>{const S=p.find(P=>P.source_group_id===b);return S?.parent_source_group_id?1+v(S.parent_source_group_id):0};_.forEach((b,S)=>{let P=h.filter(We=>We.pcb_group_id===b.pcb_group_id);if(b.source_group_id){const We=x(b.source_group_id),Ze=d.filter(qe=>qe.source_group_id&&We.includes(qe.source_group_id));for(const qe of Ze){const Xe=h.filter($e=>$e.pcb_group_id===qe.pcb_group_id);P=[...P,...Xe]}}if(P.length===0)return;let A=1/0,R=1/0,T=-1/0,I=-1/0;if(P.forEach(We=>{if(We.center&&typeof We.width=="number"&&typeof We.height=="number"){const Ze=We.center.x-We.width/2,qe=We.center.x+We.width/2,Xe=We.center.y+We.height/2,$e=We.center.y-We.height/2;A=Math.min(A,Ze),T=Math.max(T,qe),R=Math.min(R,$e),I=Math.max(I,Xe)}}),A===1/0||T===-1/0)return;const C=b.source_group_id?v(b.source_group_id):0,z=b.source_group_id?x(b.source_group_id).length>0:!1,V=1+(z?.5:0);A-=V,T+=V,R-=V,I+=V;const G=Dt(e,{x:A,y:I}),Z=Dt(e,{x:T,y:I}),K=Dt(e,{x:A,y:R}),oe=Dt(e,{x:T,y:R}),ce=l0t[S%l0t.length];u.strokeStyle=ce,u.lineWidth=2;const me=Math.max(4,Math.min(12,8*Math.abs(e.a))),te=Math.max(2,Math.min(6,4*Math.abs(e.a))),he=me*(z?1.3:1),Me=te;u.setLineDash([he,Me]),u.beginPath(),u.moveTo(G.x,G.y),u.lineTo(Z.x,Z.y),u.lineTo(oe.x,oe.y),u.lineTo(K.x,K.y),u.closePath(),u.stroke();const Ee=Math.max(8,Math.min(12,10*Math.abs(e.a))),Pe=C==0||C==1?0:C*.11,Le=Ee*(1-Pe),ke=4,ae=b.name||`Group ${S+1}`;u.font=`${Le}px sans-serif`,u.setLineDash([]);const xe=u.measureText(ae).width+ke*2,je=Le+ke*2,nt=G.x-5,ct=G.y-5,Ce=3;if(u.fillStyle="rgba(0, 0, 0, 0.8)",u.beginPath(),u.roundRect(nt,ct-je,xe,je,Ce),u.fill(),u.fillStyle=ce,u.textAlign="left",u.textBaseline="middle",u.fillText(ae,nt+ke,ct-je/2),b.anchor_position){const We=b.anchor_position,Ze=A,qe=T,Xe=I,$e=R;let Ae={x:We.x,y:We.y};const Ge=Math.abs(We.x-Ze),De=Math.abs(We.x-qe),Ke=Math.abs(We.y-Xe),et=Math.abs(We.y-$e),pt=Math.min(Ge,De,Ke,et);pt===Ge?Ae={x:Ze,y:We.y}:pt===De?Ae={x:qe,y:We.y}:pt===Ke?Ae={x:We.x,y:Xe}:Ae={x:We.x,y:$e};const xt=Dt(e,Ae);u.strokeStyle="white",u.lineWidth=1.5,u.setLineDash([]);const _t=Math.max(4,Math.min(8,6*Math.abs(e.a)));u.beginPath(),u.moveTo(xt.x-_t,xt.y),u.lineTo(xt.x+_t,xt.y),u.stroke(),u.beginPath(),u.moveTo(xt.x,xt.y-_t),u.lineTo(xt.x,xt.y+_t),u.stroke()}})},[t,e,r,o,a,c]),de.jsxs("div",{ref:i,style:{position:"relative",width:"100%",height:"100%"},children:[n,de.jsx("canvas",{ref:s,style:{position:"absolute",top:0,left:0,pointerEvents:"none",zIndex:g_.pcbGroupOverlay,display:a?"block":"none"}})]})},yYn=({transform:n,soup:e,children:t})=>{const i=Vb(a=>a.is_showing_rats_nest),{netMap:r,idToNetMap:o}=be.useMemo(()=>n0t(e||[]),[e]),s=be.useMemo(()=>{if(!e||!i)return[];const a=h=>{const p=nA(e)[h.replace(/_\d+$/,"")].get(h);return p&&"x"in p&&"y"in p?{x:p.x,y:p.y}:null},c=(h,p)=>{const f=r[p]||[];let _=null,g=1/0;return f.forEach(x=>{const v=a(x);if(v){const b=Math.sqrt((h.x-v.x)**2+(h.y-v.y)**2);b<g&&b>0&&(g=b,_=v)}}),_},l=nA(e).pcb_port.list(),u=nA(e).source_trace.list(),d=[];return l.forEach((h,p)=>{const f=o[h.pcb_port_id];let _=!1;for(const v of u)v.connected_source_port_ids.includes(h.source_port_id)&&v.connected_source_net_ids.length>0&&(_=!0);if(!f)return;const g={x:h.x,y:h.y},x=c(g,f);x&&d.push({key:`${h.pcb_port_id}-${p}`,startPoint:g,endPoint:x,isInNet:_})}),d},[e,r,o,i]);return!e||!i?t:(n||(n=Gh()),de.jsxs("div",{style:{position:"relative"},children:[t,de.jsx("svg",{style:{position:"absolute",left:0,top:0,width:"100%",height:"100%",pointerEvents:"none",opacity:.5,zIndex:g_.ratsNestOverlay},children:s.map(({key:a,startPoint:c,endPoint:l,isInNet:u})=>{const d=Dt(n,c),h=Dt(n,l);return de.jsx("line",{x1:d.x,y1:d.y,x2:h.x,y2:h.y,stroke:"white",strokeWidth:"1",strokeDasharray:u?"6,6":void 0},a)})})]}))},xYn={version:"1.11.232"},iA=(n,e)=>{const t=Vb(i=>i.is_mouse_over_container);be.useEffect(()=>{if(!n||typeof e!="function")return;const i=r=>{const o=n.split("+"),s=o.includes("ctrl"),a=o.includes("shift"),c=o.includes("alt"),l=o.includes("meta"),u=o[o.length-1];t&&(!s||r.ctrlKey)&&(!a||r.shiftKey)&&(!c||r.altKey)&&(!l||r.metaKey)&&r.key.toLowerCase()===u.toLowerCase()&&(r.preventDefault(),e())};return window.addEventListener("keydown",i),()=>{window.removeEventListener("keydown",i)}},[n,e])},vYn=()=>{const[n,e]=be.useState(!1);return be.useEffect(()=>{const t=()=>{e(window.innerWidth<=768)};return t(),window.addEventListener("resize",t),()=>window.removeEventListener("resize",t)},[]),n},bYn=({name:n,selected:e,onClick:t})=>de.jsxs("div",{className:CI`
5550
5550
  margin-top: 2px;
5551
5551
  padding: 4px;
5552
5552
  padding-left: 8px;
@@ -5631,7 +5631,7 @@ $1`).replace(/>(\s*)(?=<!--\s*\/)/g,"> ")}}});function Wmt(n,e,t){if(!e||!t)retu
5631
5631
  * Copyright (c) 2013-2015, 2017, Jon Schlinkert.
5632
5632
  * Released under the MIT License.
5633
5633
  *)
5634
- */const CYn=({containerClassName:n,...e})=>{const t=be.useRef(null),[i,r]=be.useState(620);return be.useLayoutEffect(()=>{const o=()=>{if(t.current){const a=t.current.clientHeight,c=window.innerHeight;r(Math.min(Math.max(a,620),c))}};o();const s=new ResizeObserver(o);return t.current&&s.observe(t.current),window.addEventListener("resize",o),()=>{s.disconnect(),window.removeEventListener("resize",o)}},[]),de.jsx("div",{ref:t,className:n||"rf-w-full rf-h-full",children:de.jsx(AYn,{...e,height:i})})},PYn='*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}:root{--radius:0.5rem}.rf-pointer-events-none{pointer-events:none}.rf-invisible{visibility:hidden}.rf-fixed{position:fixed}.rf-absolute{position:absolute}.rf-relative{position:relative}.rf-inset-0{inset:0}.-rf-left-2{left:-.5rem}.-rf-right-10{right:-2.5rem}.-rf-right-2{right:-.5rem}.-rf-right-4{right:-1rem}.-rf-right-6{right:-1.5rem}.-rf-right-7{right:-1.75rem}.-rf-right-8{right:-2rem}.-rf-right-9{right:-2.25rem}.rf-bottom-full{bottom:100%}.rf-left-0{left:0}.rf-left-1{left:.25rem}.rf-left-1\\/2{left:50%}.rf-left-2{left:.5rem}.rf-left-\\[50\\%\\]{left:50%}.rf-right-0{right:0}.rf-right-1{right:.25rem}.rf-right-4{right:1rem}.rf-right-\\[4px\\]{right:4px}.rf-top-0{top:0}.rf-top-1{top:.25rem}.rf-top-2{top:.5rem}.rf-top-2\\.5{top:.625rem}.rf-top-\\[50\\%\\]{top:50%}.rf-top-\\[6px\\]{top:6px}.\\!rf-z-\\[101\\]{z-index:101!important}.\\!rf-z-\\[200\\]{z-index:200!important}.rf-z-10{z-index:10}.rf-z-50{z-index:50}.rf-z-\\[100\\]{z-index:100}.rf-z-\\[101\\]{z-index:101}.rf-order-1{order:1}.rf-order-2{order:2}.rf-order-3{order:3}.rf-m-1{margin:.25rem}.rf-m-6{margin:1.5rem}.-rf-mx-1,.rf--mx-1{margin-left:-.25rem;margin-right:-.25rem}.rf-mx-1{margin-left:.25rem;margin-right:.25rem}.rf-mx-2{margin-left:.5rem;margin-right:.5rem}.rf-mx-4{margin-left:1rem;margin-right:1rem}.rf-mx-auto{margin-left:auto;margin-right:auto}.rf-my-1{margin-bottom:.25rem;margin-top:.25rem}.rf-my-12{margin-bottom:3rem;margin-top:3rem}.rf-my-4{margin-bottom:1rem;margin-top:1rem}.rf-my-auto{margin-bottom:auto;margin-top:auto}.rf-mb-1{margin-bottom:.25rem}.rf-mb-12{margin-bottom:3rem}.rf-mb-2{margin-bottom:.5rem}.rf-mb-3{margin-bottom:.75rem}.rf-mb-4{margin-bottom:1rem}.rf-mb-6{margin-bottom:1.5rem}.rf-mb-8{margin-bottom:2rem}.rf-ml-1{margin-left:.25rem}.rf-ml-2{margin-left:.5rem}.rf-ml-auto{margin-left:auto}.rf-mr-1{margin-right:.25rem}.rf-mr-2{margin-right:.5rem}.rf-mr-4{margin-right:1rem}.rf-mt-0{margin-top:0}.rf-mt-0\\.5{margin-top:.125rem}.rf-mt-1{margin-top:.25rem}.rf-mt-2{margin-top:.5rem}.rf-mt-3{margin-top:.75rem}.rf-mt-4{margin-top:1rem}.rf-mt-5{margin-top:1.25rem}.rf-mt-auto{margin-top:auto}.rf-block{display:block}.rf-inline-block{display:inline-block}.rf-inline{display:inline}.rf-flex{display:flex}.rf-inline-flex{display:inline-flex}.rf-grid{display:grid}.rf-hidden{display:none}.rf-aspect-square{aspect-ratio:1/1}.rf-aspect-video{aspect-ratio:16/9}.rf-size-14{height:3.5rem;width:3.5rem}.rf-size-4{height:1rem;width:1rem}.\\!rf-h-2{height:.5rem!important}.\\!rf-h-2\\.5{height:.625rem!important}.\\!rf-h-3{height:.75rem!important}.\\!rf-h-full{height:100%!important}.rf-h-1{height:.25rem}.rf-h-10{height:2.5rem}.rf-h-12{height:3rem}.rf-h-2{height:.5rem}.rf-h-2\\.5{height:.625rem}.rf-h-20{height:5rem}.rf-h-24{height:6rem}.rf-h-3{height:.75rem}.rf-h-3\\.5{height:.875rem}.rf-h-4{height:1rem}.rf-h-5{height:1.25rem}.rf-h-6{height:1.5rem}.rf-h-60{height:15rem}.rf-h-64{height:16rem}.rf-h-7{height:1.75rem}.rf-h-8{height:2rem}.rf-h-9{height:2.25rem}.rf-h-\\[400px\\]{height:400px}.rf-h-\\[calc\\(100vh-52px\\)\\]{height:calc(100vh - 52px)}.rf-h-\\[var\\(--radix-select-trigger-height\\)\\]{height:var(--radix-select-trigger-height)}.rf-h-auto{height:auto}.rf-h-fit{height:-moz-fit-content;height:fit-content}.rf-h-full{height:100%}.rf-h-px{height:1px}.rf-h-screen{height:100vh}.\\!rf-max-h-\\[40vh\\]{max-height:40vh!important}.rf-max-h-32{max-height:8rem}.rf-max-h-96{max-height:24rem}.rf-max-h-\\[200px\\]{max-height:200px}.rf-max-h-\\[300px\\]{max-height:300px}.rf-max-h-\\[500px\\]{max-height:500px}.rf-max-h-\\[70vh\\]{max-height:70vh}.rf-max-h-\\[90vh\\]{max-height:90vh}.rf-max-h-full{max-height:100%}.rf-min-h-0{min-height:0}.rf-min-h-\\[200px\\]{min-height:200px}.rf-min-h-\\[300px\\]{min-height:300px}.rf-min-h-\\[620px\\]{min-height:620px}.rf-min-h-\\[calc\\(100vh-240px\\)\\]{min-height:calc(100vh - 240px)}.\\!rf-w-2{width:.5rem!important}.\\!rf-w-2\\.5{width:.625rem!important}.rf-w-1{width:.25rem}.rf-w-1\\/2{width:50%}.rf-w-11{width:2.75rem}.rf-w-11\\/12{width:91.666667%}.rf-w-12{width:3rem}.rf-w-16{width:4rem}.rf-w-2{width:.5rem}.rf-w-2\\.5{width:.625rem}.rf-w-20{width:5rem}.rf-w-24{width:6rem}.rf-w-28{width:7rem}.rf-w-3{width:.75rem}.rf-w-3\\.5{width:.875rem}.rf-w-32{width:8rem}.rf-w-4{width:1rem}.rf-w-40{width:10rem}.rf-w-48{width:12rem}.rf-w-5{width:1.25rem}.rf-w-6{width:1.5rem}.rf-w-64{width:16rem}.rf-w-72{width:18rem}.rf-w-8{width:2rem}.rf-w-80{width:20rem}.rf-w-9{width:2.25rem}.rf-w-96{width:24rem}.rf-w-\\[400px\\]{width:400px}.rf-w-\\[95\\%\\]{width:95%}.rf-w-fit{width:-moz-fit-content;width:fit-content}.rf-w-full{width:100%}.rf-w-screen{width:100vw}.rf-min-w-0{min-width:0}.rf-min-w-10{min-width:2.5rem}.rf-min-w-16{min-width:4rem}.rf-min-w-32{min-width:8rem}.rf-min-w-80{min-width:20rem}.rf-min-w-96{min-width:24rem}.rf-min-w-\\[148px\\]{min-width:148px}.rf-min-w-\\[400px\\]{min-width:400px}.rf-min-w-\\[8rem\\]{min-width:8rem}.rf-min-w-\\[var\\(--radix-select-trigger-width\\)\\]{min-width:var(--radix-select-trigger-width)}.\\!rf-max-w-\\[660px\\]{max-width:660px!important}.rf-max-w-2xl{max-width:42rem}.rf-max-w-3xl{max-width:48rem}.rf-max-w-4xl{max-width:56rem}.rf-max-w-5xl{max-width:64rem}.rf-max-w-64{max-width:16rem}.rf-max-w-96{max-width:24rem}.rf-max-w-\\[100px\\]{max-width:100px}.rf-max-w-\\[120px\\]{max-width:120px}.rf-max-w-\\[150px\\]{max-width:150px}.rf-max-w-\\[400px\\]{max-width:400px}.rf-max-w-full{max-width:100%}.rf-max-w-lg{max-width:32rem}.rf-max-w-md{max-width:28rem}.rf-max-w-none{max-width:none}.rf-max-w-xl{max-width:36rem}.rf-max-w-xs{max-width:20rem}.rf-flex-1{flex:1 1 0%}.rf-flex-shrink-0,.rf-shrink-0{flex-shrink:0}.rf-flex-grow{flex-grow:1}.rf-table-auto{table-layout:auto}.rf-origin-\\[--radix-popover-content-transform-origin\\]{transform-origin:var(--radix-popover-content-transform-origin)}.-rf-translate-x-1{--tw-translate-x:-0.25rem}.-rf-translate-x-1,.-rf-translate-x-1\\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rf-translate-x-1\\/2{--tw-translate-x:-50%}.-rf-translate-y-1{--tw-translate-y:-0.25rem}.-rf-translate-y-1,.rf--translate-x-1{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rf--translate-x-1{--tw-translate-x:-0.25rem}.rf--translate-x-1\\/2{--tw-translate-x:-50%}.rf--translate-x-1\\/2,.rf--translate-y-1{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rf--translate-y-1{--tw-translate-y:-0.25rem}.rf-translate-x-\\[-50\\%\\]{--tw-translate-x:-50%}.rf-translate-x-\\[-50\\%\\],.rf-translate-y-\\[-50\\%\\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rf-translate-y-\\[-50\\%\\]{--tw-translate-y:-50%}.rf-transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes rf-pulse{50%{opacity:.5}}.rf-animate-pulse{animation:rf-pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes rf-spin{to{transform:rotate(1turn)}}.rf-animate-spin{animation:rf-spin 1s linear infinite}.rf-cursor-default{cursor:default}.rf-cursor-not-allowed{cursor:not-allowed}.rf-cursor-pointer{cursor:pointer}.rf-select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.rf-grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.rf-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.rf-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.rf-flex-row{flex-direction:row}.rf-flex-col{flex-direction:column}.rf-flex-col-reverse{flex-direction:column-reverse}.rf-flex-wrap{flex-wrap:wrap}.rf-place-items-center{place-items:center}.rf-items-start{align-items:flex-start}.rf-items-end{align-items:flex-end}.rf-items-center{align-items:center}.rf-items-stretch{align-items:stretch}.rf-justify-end{justify-content:flex-end}.rf-justify-center{justify-content:center}.rf-justify-between{justify-content:space-between}.rf-gap-0{gap:0}.rf-gap-1{gap:.25rem}.rf-gap-2{gap:.5rem}.rf-gap-3{gap:.75rem}.rf-gap-4{gap:1rem}.rf-gap-5{gap:1.25rem}.rf-gap-6{gap:1.5rem}.rf-gap-8{gap:2rem}.rf-space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.rf-space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.rf-space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.75rem*var(--tw-space-y-reverse));margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)))}.rf-space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.rf-space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.5rem*var(--tw-space-y-reverse));margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)))}.rf-divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-bottom-width:calc(1px*var(--tw-divide-y-reverse));border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)))}.rf-overflow-auto{overflow:auto}.rf-overflow-hidden{overflow:hidden}.rf-overflow-visible{overflow:visible}.\\!rf-overflow-x-auto{overflow-x:auto!important}.rf-overflow-x-auto{overflow-x:auto}.\\!rf-overflow-y-auto{overflow-y:auto!important}.rf-overflow-y-auto{overflow-y:auto}.rf-overflow-x-hidden{overflow-x:hidden}.rf-overflow-x-clip{overflow-x:clip}.rf-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rf-whitespace-normal{white-space:normal}.rf-whitespace-nowrap{white-space:nowrap}.rf-whitespace-pre-wrap{white-space:pre-wrap}.rf-break-words{overflow-wrap:break-word}.rf-break-all{word-break:break-all}.rf-rounded{border-radius:.25rem}.rf-rounded-2xl{border-radius:1rem}.rf-rounded-full{border-radius:9999px}.rf-rounded-lg{border-radius:var(--radius)}.rf-rounded-md{border-radius:calc(var(--radius) - 2px)}.rf-rounded-sm{border-radius:calc(var(--radius) - 4px)}.rf-rounded-xl{border-radius:.75rem}.rf-border{border-width:1px}.rf-border-2{border-width:2px}.rf-border-b{border-bottom-width:1px}.rf-border-t{border-top-width:1px}.rf-border-none{border-style:none}.rf-border-blue-200{--tw-border-opacity:1;border-color:rgb(191 219 254/var(--tw-border-opacity,1))}.rf-border-blue-300{--tw-border-opacity:1;border-color:rgb(147 197 253/var(--tw-border-opacity,1))}.rf-border-blue-400{--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.rf-border-blue-500{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.rf-border-blue-600{--tw-border-opacity:1;border-color:rgb(37 99 235/var(--tw-border-opacity,1))}.rf-border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.rf-border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.rf-border-green-200{--tw-border-opacity:1;border-color:rgb(187 247 208/var(--tw-border-opacity,1))}.rf-border-green-400{--tw-border-opacity:1;border-color:rgb(74 222 128/var(--tw-border-opacity,1))}.rf-border-input{border-color:hsl(var(--input))}.rf-border-neutral-200{--tw-border-opacity:1;border-color:rgb(229 229 229/var(--tw-border-opacity,1))}.rf-border-orange-200{--tw-border-opacity:1;border-color:rgb(254 215 170/var(--tw-border-opacity,1))}.rf-border-primary{border-color:hsl(var(--primary))}.rf-border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.rf-border-red-400{--tw-border-opacity:1;border-color:rgb(248 113 113/var(--tw-border-opacity,1))}.rf-border-red-500{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.rf-border-zinc-200{--tw-border-opacity:1;border-color:rgb(228 228 231/var(--tw-border-opacity,1))}.rf-border-zinc-900{--tw-border-opacity:1;border-color:rgb(24 24 27/var(--tw-border-opacity,1))}.rf-bg-amber-50{--tw-bg-opacity:1;background-color:rgb(255 251 235/var(--tw-bg-opacity,1))}.rf-bg-amber-50\\/30{background-color:rgba(255,251,235,.3)}.rf-bg-background{background-color:hsl(var(--background))}.rf-bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.rf-bg-black\\/80{background-color:rgba(0,0,0,.8)}.rf-bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.rf-bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.rf-bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.rf-bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.rf-bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.rf-bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.rf-bg-gray-300{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity,1))}.rf-bg-gray-400{--tw-bg-opacity:1;background-color:rgb(156 163 175/var(--tw-bg-opacity,1))}.rf-bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.rf-bg-gray-500{--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity,1))}.rf-bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.rf-bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.rf-bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.rf-bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.rf-bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.rf-bg-muted{background-color:hsl(var(--muted))}.rf-bg-neutral-100{--tw-bg-opacity:1;background-color:rgb(245 245 245/var(--tw-bg-opacity,1))}.rf-bg-neutral-50{--tw-bg-opacity:1;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))}.rf-bg-neutral-800{--tw-bg-opacity:1;background-color:rgb(38 38 38/var(--tw-bg-opacity,1))}.rf-bg-neutral-900{--tw-bg-opacity:1;background-color:rgb(23 23 23/var(--tw-bg-opacity,1))}.rf-bg-orange-400{--tw-bg-opacity:1;background-color:rgb(251 146 60/var(--tw-bg-opacity,1))}.rf-bg-orange-50{--tw-bg-opacity:1;background-color:rgb(255 247 237/var(--tw-bg-opacity,1))}.rf-bg-popover{background-color:hsl(var(--popover))}.rf-bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.rf-bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.rf-bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.rf-bg-red-900{--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.rf-bg-slate-50{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.rf-bg-transparent{background-color:transparent}.rf-bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.rf-bg-yellow-100{--tw-bg-opacity:1;background-color:rgb(254 249 195/var(--tw-bg-opacity,1))}.rf-bg-zinc-100{--tw-bg-opacity:1;background-color:rgb(244 244 245/var(--tw-bg-opacity,1))}.rf-bg-zinc-200{--tw-bg-opacity:1;background-color:rgb(228 228 231/var(--tw-bg-opacity,1))}.rf-bg-zinc-50{--tw-bg-opacity:1;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))}.rf-bg-zinc-800{--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))}.rf-bg-zinc-900{--tw-bg-opacity:1;background-color:rgb(24 24 27/var(--tw-bg-opacity,1))}.rf-bg-opacity-50{--tw-bg-opacity:0.5}.rf-fill-amber-500{fill:#f59e0b}.rf-fill-current{fill:currentColor}.rf-object-contain{-o-object-fit:contain;object-fit:contain}.rf-object-cover{-o-object-fit:cover;object-fit:cover}.\\!rf-p-0{padding:0!important}.rf-p-0{padding:0}.rf-p-1{padding:.25rem}.rf-p-2{padding:.5rem}.rf-p-3{padding:.75rem}.rf-p-4{padding:1rem}.rf-p-5{padding:1.25rem}.rf-p-6{padding:1.5rem}.rf-p-8{padding:2rem}.rf-px-1{padding-left:.25rem;padding-right:.25rem}.rf-px-2{padding-left:.5rem;padding-right:.5rem}.rf-px-3{padding-left:.75rem;padding-right:.75rem}.rf-px-4{padding-left:1rem;padding-right:1rem}.rf-px-6{padding-left:1.5rem;padding-right:1.5rem}.rf-px-8{padding-left:2rem;padding-right:2rem}.rf-py-0{padding-bottom:0;padding-top:0}.rf-py-0\\.5{padding-bottom:.125rem;padding-top:.125rem}.rf-py-1{padding-bottom:.25rem;padding-top:.25rem}.rf-py-1\\.5{padding-bottom:.375rem;padding-top:.375rem}.rf-py-10{padding-bottom:2.5rem;padding-top:2.5rem}.rf-py-12{padding-bottom:3rem;padding-top:3rem}.rf-py-2{padding-bottom:.5rem;padding-top:.5rem}.rf-py-3{padding-bottom:.75rem;padding-top:.75rem}.rf-py-4{padding-bottom:1rem;padding-top:1rem}.rf-py-6{padding-bottom:1.5rem;padding-top:1.5rem}.rf-py-8{padding-bottom:2rem;padding-top:2rem}.rf-pb-0{padding-bottom:0}.rf-pb-1{padding-bottom:.25rem}.rf-pb-2{padding-bottom:.5rem}.rf-pb-3{padding-bottom:.75rem}.rf-pb-4{padding-bottom:1rem}.rf-pl-2{padding-left:.5rem}.rf-pl-4{padding-left:1rem}.rf-pl-8{padding-left:2rem}.rf-pr-2{padding-right:.5rem}.rf-pt-0{padding-top:0}.rf-pt-2{padding-top:.5rem}.rf-pt-4{padding-top:1rem}.rf-text-left{text-align:left}.rf-text-center{text-align:center}.rf-text-right{text-align:right}.rf-font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.rf-text-2xl{font-size:1.5rem;line-height:2rem}.rf-text-3xl{font-size:1.875rem;line-height:2.25rem}.rf-text-\\[8px\\]{font-size:8px}.rf-text-base{font-size:1rem;line-height:1.5rem}.rf-text-lg{font-size:1.125rem;line-height:1.75rem}.rf-text-sm{font-size:.875rem;line-height:1.25rem}.rf-text-xl{font-size:1.25rem;line-height:1.75rem}.rf-text-xs{font-size:.75rem;line-height:1rem}.\\!rf-font-normal{font-weight:400!important}.rf-font-bold{font-weight:700}.rf-font-medium{font-weight:500}.rf-font-semibold{font-weight:600}.rf-uppercase{text-transform:uppercase}.rf-capitalize{text-transform:capitalize}.rf-tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.rf-leading-5{line-height:1.25rem}.rf-leading-none{line-height:1}.rf-leading-relaxed{line-height:1.625}.rf-leading-tight{line-height:1.25}.rf-tracking-wide{letter-spacing:.025em}.rf-tracking-widest{letter-spacing:.1em}.rf-text-amber-500{--tw-text-opacity:1;color:rgb(245 158 11/var(--tw-text-opacity,1))}.rf-text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.rf-text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.rf-text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.rf-text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.rf-text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.rf-text-blue-900{--tw-text-opacity:1;color:rgb(30 58 138/var(--tw-text-opacity,1))}.rf-text-current{color:currentColor}.rf-text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.rf-text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.rf-text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.rf-text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.rf-text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.rf-text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.rf-text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.rf-text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.rf-text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.rf-text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.rf-text-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.rf-text-green-900{--tw-text-opacity:1;color:rgb(20 83 45/var(--tw-text-opacity,1))}.rf-text-muted-foreground{color:hsl(var(--muted-foreground))}.rf-text-neutral-50{--tw-text-opacity:1;color:rgb(250 250 250/var(--tw-text-opacity,1))}.rf-text-neutral-500{--tw-text-opacity:1;color:rgb(115 115 115/var(--tw-text-opacity,1))}.rf-text-neutral-900{--tw-text-opacity:1;color:rgb(23 23 23/var(--tw-text-opacity,1))}.rf-text-neutral-950{--tw-text-opacity:1;color:rgb(10 10 10/var(--tw-text-opacity,1))}.rf-text-orange-500{--tw-text-opacity:1;color:rgb(249 115 22/var(--tw-text-opacity,1))}.rf-text-orange-600{--tw-text-opacity:1;color:rgb(234 88 12/var(--tw-text-opacity,1))}.rf-text-orange-800{--tw-text-opacity:1;color:rgb(154 52 18/var(--tw-text-opacity,1))}.rf-text-popover-foreground{color:hsl(var(--popover-foreground))}.rf-text-red-200{--tw-text-opacity:1;color:rgb(254 202 202/var(--tw-text-opacity,1))}.rf-text-red-300{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.rf-text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.rf-text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.rf-text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.rf-text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.rf-text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.rf-text-red-900{--tw-text-opacity:1;color:rgb(127 29 29/var(--tw-text-opacity,1))}.rf-text-slate-400{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.rf-text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.rf-text-slate-600{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity,1))}.rf-text-slate-800{--tw-text-opacity:1;color:rgb(30 41 59/var(--tw-text-opacity,1))}.rf-text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.rf-text-yellow-400{--tw-text-opacity:1;color:rgb(250 204 21/var(--tw-text-opacity,1))}.rf-text-yellow-500{--tw-text-opacity:1;color:rgb(234 179 8/var(--tw-text-opacity,1))}.rf-text-yellow-600{--tw-text-opacity:1;color:rgb(202 138 4/var(--tw-text-opacity,1))}.rf-text-yellow-900{--tw-text-opacity:1;color:rgb(113 63 18/var(--tw-text-opacity,1))}.rf-text-zinc-200{--tw-text-opacity:1;color:rgb(228 228 231/var(--tw-text-opacity,1))}.rf-text-zinc-300{--tw-text-opacity:1;color:rgb(212 212 216/var(--tw-text-opacity,1))}.rf-text-zinc-400{--tw-text-opacity:1;color:rgb(161 161 170/var(--tw-text-opacity,1))}.rf-text-zinc-50{--tw-text-opacity:1;color:rgb(250 250 250/var(--tw-text-opacity,1))}.rf-text-zinc-500{--tw-text-opacity:1;color:rgb(113 113 122/var(--tw-text-opacity,1))}.rf-text-zinc-900{--tw-text-opacity:1;color:rgb(24 24 27/var(--tw-text-opacity,1))}.rf-text-zinc-950{--tw-text-opacity:1;color:rgb(9 9 11/var(--tw-text-opacity,1))}.rf-underline{text-decoration-line:underline}.rf-line-through{text-decoration-line:line-through}.rf-underline-offset-4{text-underline-offset:4px}.rf-opacity-0{opacity:0}.rf-opacity-100{opacity:1}.rf-opacity-25{opacity:.25}.rf-opacity-30{opacity:.3}.rf-opacity-50{opacity:.5}.rf-opacity-60{opacity:.6}.rf-opacity-75{opacity:.75}.rf-shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.rf-shadow,.rf-shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.rf-shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.rf-shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.rf-shadow-md,.rf-shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.rf-shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.rf-outline-none{outline:2px solid transparent;outline-offset:2px}.rf-ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.rf-ring-blue-500{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}.rf-ring-primary{--tw-ring-color:hsl(var(--primary))}.rf-ring-offset-background{--tw-ring-offset-color:hsl(var(--background))}.rf-ring-offset-white{--tw-ring-offset-color:#fff}.rf-transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.rf-transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.rf-transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.rf-transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.rf-duration-200{transition-duration:.2s}.rf-ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.rf-slide-in-from-left-1{--tw-enter-translate-x:-0.25rem}.rf-slide-out-to-left-1{--tw-exit-translate-x:-0.25rem}.rf-duration-200{animation-duration:.2s}.rf-ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.file\\:rf-border-0::file-selector-button{border-width:0}.file\\:rf-bg-transparent::file-selector-button{background-color:transparent}.file\\:rf-text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\\:rf-font-medium::file-selector-button{font-weight:500}.placeholder\\:rf-text-zinc-500::-moz-placeholder{--tw-text-opacity:1;color:rgb(113 113 122/var(--tw-text-opacity,1))}.placeholder\\:rf-text-zinc-500::placeholder{--tw-text-opacity:1;color:rgb(113 113 122/var(--tw-text-opacity,1))}.hover\\:rf-border-blue-300:hover{--tw-border-opacity:1;border-color:rgb(147 197 253/var(--tw-border-opacity,1))}.hover\\:rf-border-blue-500:hover{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.hover\\:\\!rf-bg-transparent:hover{background-color:transparent!important}.hover\\:rf-bg-blue-700:hover{--tw-bg-opacity:1;background-color:rgb(29 78 216/var(--tw-bg-opacity,1))}.hover\\:rf-bg-red-500\\/90:hover{background-color:rgba(239,68,68,.9)}.hover\\:rf-bg-slate-200:hover{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity,1))}.hover\\:rf-bg-zinc-100:hover{--tw-bg-opacity:1;background-color:rgb(244 244 245/var(--tw-bg-opacity,1))}.hover\\:rf-bg-zinc-100\\/80:hover{background-color:hsla(240,5%,96%,.8)}.hover\\:rf-bg-zinc-900\\/90:hover{background-color:rgba(24,24,27,.9)}.hover\\:rf-text-blue-800:hover{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.hover\\:rf-text-red-400:hover{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.hover\\:rf-text-slate-900:hover{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.hover\\:rf-text-zinc-900:hover{--tw-text-opacity:1;color:rgb(24 24 27/var(--tw-text-opacity,1))}.hover\\:rf-underline:hover{text-decoration-line:underline}.focus\\:rf-bg-gray-100:focus{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.focus\\:rf-bg-zinc-100:focus{--tw-bg-opacity:1;background-color:rgb(244 244 245/var(--tw-bg-opacity,1))}.focus\\:rf-text-gray-900:focus{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.focus\\:rf-text-zinc-900:focus{--tw-text-opacity:1;color:rgb(24 24 27/var(--tw-text-opacity,1))}.focus\\:rf-outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\\:rf-ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\\:rf-ring-ring:focus{--tw-ring-color:hsl(var(--ring))}.focus\\:rf-ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\\:rf-outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\\:rf-ring-1:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\\:rf-ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\\:rf-ring-zinc-950:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgb(9 9 11/var(--tw-ring-opacity,1))}.focus-visible\\:rf-ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.disabled\\:rf-pointer-events-none:disabled{pointer-events:none}.disabled\\:rf-cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:rf-opacity-50:disabled{opacity:.5}.rf-group:hover .group-hover\\:rf-opacity-100,.rf-group\\/bar:hover .group-hover\\/bar\\:rf-opacity-100{opacity:1}.data-\\[disabled\\=true\\]\\:rf-pointer-events-none[data-disabled=true],.data-\\[disabled\\]\\:rf-pointer-events-none[data-disabled]{pointer-events:none}.data-\\[side\\=bottom\\]\\:rf-translate-y-1[data-side=bottom]{--tw-translate-y:0.25rem}.data-\\[side\\=bottom\\]\\:rf-translate-y-1[data-side=bottom],.data-\\[side\\=left\\]\\:-rf-translate-x-1[data-side=left]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\\[side\\=left\\]\\:-rf-translate-x-1[data-side=left]{--tw-translate-x:-0.25rem}.data-\\[side\\=right\\]\\:rf-translate-x-1[data-side=right]{--tw-translate-x:0.25rem}.data-\\[side\\=right\\]\\:rf-translate-x-1[data-side=right],.data-\\[side\\=top\\]\\:-rf-translate-y-1[data-side=top]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\\[side\\=top\\]\\:-rf-translate-y-1[data-side=top]{--tw-translate-y:-0.25rem}.data-\\[selected\\=true\\]\\:rf-bg-zinc-100[data-selected=true]{--tw-bg-opacity:1;background-color:rgb(244 244 245/var(--tw-bg-opacity,1))}.data-\\[state\\=active\\]\\:rf-bg-white[data-state=active]{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.data-\\[state\\=checked\\]\\:rf-bg-zinc-900[data-state=checked]{--tw-bg-opacity:1;background-color:rgb(24 24 27/var(--tw-bg-opacity,1))}.data-\\[state\\=open\\]\\:rf-bg-zinc-100[data-state=open]{--tw-bg-opacity:1;background-color:rgb(244 244 245/var(--tw-bg-opacity,1))}.data-\\[selected\\=true\\]\\:rf-text-zinc-900[data-selected=true]{--tw-text-opacity:1;color:rgb(24 24 27/var(--tw-text-opacity,1))}.data-\\[state\\=active\\]\\:rf-text-zinc-950[data-state=active]{--tw-text-opacity:1;color:rgb(9 9 11/var(--tw-text-opacity,1))}.data-\\[state\\=checked\\]\\:rf-text-zinc-50[data-state=checked]{--tw-text-opacity:1;color:rgb(250 250 250/var(--tw-text-opacity,1))}.data-\\[disabled\\=true\\]\\:rf-opacity-50[data-disabled=true],.data-\\[disabled\\]\\:rf-opacity-50[data-disabled]{opacity:.5}.data-\\[state\\=active\\]\\:rf-shadow[data-state=active]{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.data-\\[state\\=open\\]\\:rf-animate-in[data-state=open]{animation-duration:.15s;animation-name:enter;--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial}.data-\\[state\\=closed\\]\\:rf-animate-out[data-state=closed]{animation-duration:.15s;animation-name:exit;--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial}.data-\\[state\\=closed\\]\\:rf-fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\\[state\\=open\\]\\:rf-fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\\[state\\=closed\\]\\:rf-zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\\[state\\=open\\]\\:rf-zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\\[side\\=bottom\\]\\:rf-slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:-0.5rem}.data-\\[side\\=left\\]\\:rf-slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:0.5rem}.data-\\[side\\=right\\]\\:rf-slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:-0.5rem}.data-\\[side\\=top\\]\\:rf-slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:0.5rem}.data-\\[state\\=closed\\]\\:rf-slide-out-to-left-1\\/2[data-state=closed]{--tw-exit-translate-x:-50%}.data-\\[state\\=closed\\]\\:rf-slide-out-to-top-\\[48\\%\\][data-state=closed]{--tw-exit-translate-y:-48%}.data-\\[state\\=open\\]\\:rf-slide-in-from-left-1\\/2[data-state=open]{--tw-enter-translate-x:-50%}.data-\\[state\\=open\\]\\:rf-slide-in-from-top-\\[48\\%\\][data-state=open]{--tw-enter-translate-y:-48%}.dark\\:rf-border-zinc-50:is(.rf-dark *){--tw-border-opacity:1;border-color:rgb(250 250 250/var(--tw-border-opacity,1))}.dark\\:rf-border-zinc-800:is(.rf-dark *){--tw-border-opacity:1;border-color:rgb(39 39 42/var(--tw-border-opacity,1))}.dark\\:rf-bg-gray-700:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.dark\\:rf-bg-gray-800:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.dark\\:rf-bg-red-900:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.dark\\:rf-bg-zinc-50:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))}.dark\\:rf-bg-zinc-800:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))}.dark\\:rf-bg-zinc-950:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(9 9 11/var(--tw-bg-opacity,1))}.dark\\:rf-text-gray-500:is(.rf-dark *){--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.dark\\:rf-text-zinc-400:is(.rf-dark *){--tw-text-opacity:1;color:rgb(161 161 170/var(--tw-text-opacity,1))}.dark\\:rf-text-zinc-50:is(.rf-dark *){--tw-text-opacity:1;color:rgb(250 250 250/var(--tw-text-opacity,1))}.dark\\:rf-text-zinc-900:is(.rf-dark *){--tw-text-opacity:1;color:rgb(24 24 27/var(--tw-text-opacity,1))}.dark\\:rf-placeholder-zinc-400:is(.rf-dark *)::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(161 161 170/var(--tw-placeholder-opacity,1))}.dark\\:rf-placeholder-zinc-400:is(.rf-dark *)::placeholder{--tw-placeholder-opacity:1;color:rgb(161 161 170/var(--tw-placeholder-opacity,1))}.dark\\:rf-ring-offset-zinc-950:is(.rf-dark *){--tw-ring-offset-color:#09090b}.dark\\:placeholder\\:rf-text-zinc-400:is(.rf-dark *)::-moz-placeholder{--tw-text-opacity:1;color:rgb(161 161 170/var(--tw-text-opacity,1))}.dark\\:placeholder\\:rf-text-zinc-400:is(.rf-dark *)::placeholder{--tw-text-opacity:1;color:rgb(161 161 170/var(--tw-text-opacity,1))}.dark\\:hover\\:rf-bg-red-900\\/90:hover:is(.rf-dark *){background-color:rgba(127,29,29,.9)}.dark\\:hover\\:rf-bg-zinc-50\\/90:hover:is(.rf-dark *){background-color:hsla(0,0%,98%,.9)}.dark\\:hover\\:rf-bg-zinc-800:hover:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))}.dark\\:hover\\:rf-bg-zinc-800\\/80:hover:is(.rf-dark *){background-color:rgba(39,39,42,.8)}.dark\\:hover\\:rf-text-zinc-50:hover:is(.rf-dark *){--tw-text-opacity:1;color:rgb(250 250 250/var(--tw-text-opacity,1))}.dark\\:focus\\:rf-bg-zinc-800:focus:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))}.dark\\:focus\\:rf-text-zinc-50:focus:is(.rf-dark *){--tw-text-opacity:1;color:rgb(250 250 250/var(--tw-text-opacity,1))}.dark\\:focus-visible\\:rf-ring-zinc-300:focus-visible:is(.rf-dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(212 212 216/var(--tw-ring-opacity,1))}.dark\\:data-\\[selected\\=true\\]\\:rf-bg-zinc-800[data-selected=true]:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))}.dark\\:data-\\[state\\=active\\]\\:rf-bg-zinc-950[data-state=active]:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(9 9 11/var(--tw-bg-opacity,1))}.dark\\:data-\\[state\\=checked\\]\\:rf-bg-zinc-50[data-state=checked]:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))}.dark\\:data-\\[state\\=open\\]\\:rf-bg-zinc-800[data-state=open]:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))}.dark\\:data-\\[selected\\=true\\]\\:rf-text-zinc-50[data-selected=true]:is(.rf-dark *){--tw-text-opacity:1;color:rgb(250 250 250/var(--tw-text-opacity,1))}.dark\\:data-\\[state\\=active\\]\\:rf-text-zinc-50[data-state=active]:is(.rf-dark *){--tw-text-opacity:1;color:rgb(250 250 250/var(--tw-text-opacity,1))}.dark\\:data-\\[state\\=checked\\]\\:rf-text-zinc-900[data-state=checked]:is(.rf-dark *){--tw-text-opacity:1;color:rgb(24 24 27/var(--tw-text-opacity,1))}@media (min-width:640px){.sm\\:rf-order-1{order:1}.sm\\:rf-order-2{order:2}.sm\\:rf-mt-0{margin-top:0}.sm\\:rf-block{display:block}.sm\\:rf-inline{display:inline}.sm\\:rf-grid{display:grid}.sm\\:rf-hidden{display:none}.sm\\:rf-w-auto{width:auto}.sm\\:rf-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\\:rf-grid-cols-\\[1fr_auto\\]{grid-template-columns:1fr auto}.sm\\:rf-flex-row{flex-direction:row}.sm\\:rf-items-center{align-items:center}.sm\\:rf-justify-end{justify-content:flex-end}.sm\\:rf-gap-3{gap:.75rem}.sm\\:rf-space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.sm\\:rf-justify-self-end{justify-self:end}.sm\\:rf-rounded-lg{border-radius:var(--radius)}.sm\\:rf-px-4{padding-left:1rem;padding-right:1rem}.sm\\:rf-text-left{text-align:left}.sm\\:rf-text-right{text-align:right}.sm\\:rf-text-sm{font-size:.875rem;line-height:1.25rem}.sm\\:rf-text-xl{font-size:1.25rem;line-height:1.75rem}}@media (min-width:768px){.md\\:rf-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}.\\[\\&\\>span\\]\\:rf-line-clamp-1>span{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\\[\\&\\>svg\\]\\:rf-size-4>svg{height:1rem;width:1rem}.\\[\\&\\>svg\\]\\:rf-shrink-0>svg{flex-shrink:0}.\\[\\&\\>svg\\]\\:rf-text-red-300>svg{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.\\[\\&\\>svg\\]\\:hover\\:rf-text-red-400:hover>svg{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.\\[\\&_\\[cmdk-group-heading\\]\\]\\:rf-px-2 [cmdk-group-heading]{padding-left:.5rem;padding-right:.5rem}.\\[\\&_\\[cmdk-group-heading\\]\\]\\:rf-py-1\\.5 [cmdk-group-heading]{padding-bottom:.375rem;padding-top:.375rem}.\\[\\&_\\[cmdk-group-heading\\]\\]\\:rf-text-xs [cmdk-group-heading]{font-size:.75rem;line-height:1rem}.\\[\\&_\\[cmdk-group-heading\\]\\]\\:rf-font-medium [cmdk-group-heading]{font-weight:500}.\\[\\&_\\[cmdk-group-heading\\]\\]\\:rf-text-zinc-500 [cmdk-group-heading]{--tw-text-opacity:1;color:rgb(113 113 122/var(--tw-text-opacity,1))}.dark\\:\\[\\&_\\[cmdk-group-heading\\]\\]\\:rf-text-zinc-400 [cmdk-group-heading]:is(.rf-dark *){--tw-text-opacity:1;color:rgb(161 161 170/var(--tw-text-opacity,1))}.\\[\\&_\\[cmdk-group\\]\\:not\\(\\[hidden\\]\\)_\\~\\[cmdk-group\\]\\]\\:rf-pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:0}.\\[\\&_\\[cmdk-group\\]\\]\\:rf-px-2 [cmdk-group]{padding-left:.5rem;padding-right:.5rem}.\\[\\&_\\[cmdk-input-wrapper\\]_svg\\]\\:rf-h-5 [cmdk-input-wrapper] svg{height:1.25rem}.\\[\\&_\\[cmdk-input-wrapper\\]_svg\\]\\:rf-w-5 [cmdk-input-wrapper] svg{width:1.25rem}.\\[\\&_\\[cmdk-input\\]\\]\\:rf-h-12 [cmdk-input]{height:3rem}.\\[\\&_\\[cmdk-item\\]\\]\\:rf-px-2 [cmdk-item]{padding-left:.5rem;padding-right:.5rem}.\\[\\&_\\[cmdk-item\\]\\]\\:rf-py-3 [cmdk-item]{padding-bottom:.75rem;padding-top:.75rem}.\\[\\&_\\[cmdk-item\\]_svg\\]\\:rf-h-5 [cmdk-item] svg{height:1.25rem}.\\[\\&_\\[cmdk-item\\]_svg\\]\\:rf-w-5 [cmdk-item] svg{width:1.25rem}.\\[\\&_svg\\]\\:rf-pointer-events-none svg{pointer-events:none}.\\[\\&_svg\\]\\:rf-size-4 svg{height:1rem;width:1rem}.\\[\\&_svg\\]\\:rf-shrink-0 svg{flex-shrink:0}',nG=()=>{be.useEffect(()=>{if(document.querySelector('style[data-styles="tscircuit-runframe"]'))return;const e=document.createElement("style");e.setAttribute("data-styles","tscircuit-runframe"),e.textContent=PYn,document.head.appendChild(e)},[])},RYn=n=>{be.useEffect(()=>(n?document.body.style.overflow="hidden":document.body.style.overflow="",()=>{document.body.style.overflow=""}),[n])},d0t=n=>`hsl(${gw.indexOf(n)*137.5%360}, 70%, 50%)`,IYn=({phaseTimings:n})=>{if(!n)return null;const e=Object.values(n).reduce((t,i)=>t+i,0);return de.jsxs("div",{className:"rf-space-y-2 rf-w-full rf-px-4",children:[de.jsx("div",{className:"rf-relative rf-h-8 rf-flex rf-rounded-sm",children:gw.map(t=>{const i=n[t]||0,r=i/e*100;return de.jsx("div",{className:"rf-group/bar rf-relative rf-overflow-visible",style:{width:`${r}%`,backgroundColor:d0t(t)},children:de.jsxs("div",{className:"rf-opacity-0 group-hover/bar:rf-opacity-100 rf-transition-opacity rf-absolute rf-bottom-full rf-left-1/2 rf-transform -rf-translate-x-1/2 rf-mb-2 rf-px-2 rf-py-1 rf-text-xs rf-whitespace-nowrap rf-rounded rf-bg-gray-900 rf-text-white rf-pointer-events-none",children:[t,": ",i.toFixed(1),"ms"]})},t)})}),de.jsxs("div",{className:"rf-text-xs rf-text-gray-500",children:["Total: ",e.toFixed(2),"ms"]})]})},NYn=n=>{if(n instanceof Blob)return n;if(n==null)return"";if(typeof n=="string")return n;if(typeof n=="object")try{return JSON.stringify(n,null,2)}catch{return String(n)}return String(n)},kYn=({renderLog:n,onRerunWithDebug:e})=>{const[t,i]=be.useState("chronological"),[r,o]=be.useState(""),s=[{value:"",label:"None"},{value:"DEBUG=Group_doInitialSchematicTraceRender",label:"DEBUG=Group_doInitialSchematicTraceRender"},{value:"DEBUG=Group_doInitialSchematicLayoutMatchpack",label:"DEBUG=Group_doInitialSchematicLayoutMatchpack"},{value:"DEBUG=Group_doInitialPcbLayoutPack",label:"DEBUG=Group_doInitialPcbLayoutPack"}];if(!n)return de.jsxs("div",{className:"rf-p-4 rf-bg-gray-100 rf-rounded-md",children:[de.jsx("div",{className:"rf-mb-4",children:"No render log, make sure this tab is open when you render"}),e&&de.jsxs("div",{className:"rf-flex rf-gap-2 rf-items-center",children:[de.jsx("select",{value:r,onChange:l=>o(l.target.value),className:"rf-px-3 rf-py-1 rf-border rf-rounded rf-text-xs rf-bg-white",children:s.map(l=>de.jsx("option",{value:l.value,children:l.label},l.value))}),de.jsx(L0,{onClick:()=>e(r),size:"sm",className:"rf-text-xs",children:"Rerun Render with Debug"})]})]});const a=Object.entries(n?.phaseTimings??{});t==="chronological"?a.sort((l,u)=>gw.indexOf(l[0])-gw.indexOf(u[0])):a.sort((l,u)=>u[1]-l[1]);const c=a.reduce((l,[u,d])=>l+d,0);return de.jsxs("div",{className:"rf-bg-white",children:[de.jsxs("div",{className:"rf-flex rf-justify-between rf-items-center rf-mb-4",children:[de.jsx("div",{children:"Render Logs"}),de.jsxs("div",{className:"rf-flex rf-gap-4 rf-items-center",children:[e&&de.jsxs("div",{className:"rf-flex rf-gap-2 rf-items-center",children:[de.jsx("select",{value:r,onChange:l=>o(l.target.value),className:"rf-px-3 rf-py-1 rf-border rf-rounded rf-text-xs rf-bg-white",children:s.map(l=>de.jsx("option",{value:l.value,children:l.label},l.value))}),de.jsx(L0,{onClick:()=>e(r),size:"sm",className:"rf-text-xs",children:"Rerun Render with Debug"})]}),de.jsx("div",{className:"rf-flex rf-gap-2 rf-items-center",children:de.jsxs("select",{onChange:l=>{if(l.target.value){const u=n?.debugOutputs?.find(d=>d.name===l.target.value);if(u){const d=NYn(u.content),h=d instanceof Blob?d:new Blob([d],{type:"text/plain"}),p=URL.createObjectURL(h),f=document.createElement("a");f.href=p,f.download=`debug-${u.name}.txt`,document.body.appendChild(f),f.click(),document.body.removeChild(f),URL.revokeObjectURL(p)}l.target.value=""}},disabled:!n?.debugOutputs||n.debugOutputs.length===0,className:"rf-px-3 rf-py-1 rf-border rf-rounded rf-text-xs rf-bg-white disabled:rf-opacity-50 disabled:rf-cursor-not-allowed",children:[de.jsx("option",{value:"",children:"Download Debug Output"}),n?.debugOutputs?.map(l=>de.jsx("option",{value:l.name,children:l.name},l.name))]})}),de.jsxs("div",{className:"rf-flex rf-text-xs rf-items-center",children:[de.jsx("div",{className:"rf-mr-2",children:"Sort by:"}),de.jsxs("select",{value:t,onChange:l=>i(l.target.value),className:"rf-px-2 rf-py-1 rf-border rf-rounded rf-text-xs",children:[de.jsx("option",{value:"chronological",children:"Phase Order"}),de.jsx("option",{value:"longest",children:"Duration"})]})]})]})]}),de.jsx(IYn,{phaseTimings:n.phaseTimings}),de.jsxs("table",{className:"rf-w-full rf-text-xs",children:[de.jsx("thead",{children:de.jsxs("tr",{children:[de.jsx("th",{className:"rf-text-left rf-p-2",children:"Phase Order"}),de.jsx("th",{className:"rf-text-left rf-p-2",children:"Phase"}),de.jsx("th",{className:"rf-text-left rf-p-2",children:"Duration (ms)"})]})}),de.jsx("tbody",{children:a.map(([l,u])=>de.jsxs("tr",{children:[de.jsx("td",{className:"rf-p-2",children:gw.indexOf(l)}),de.jsx("td",{className:"rf-p-2",children:l}),de.jsx("td",{className:"rf-p-2",children:de.jsx("div",{className:"rf-w-8",children:de.jsx("div",{className:"rf-h-2 rf-rounded-sm",style:{backgroundColor:d0t(l),width:`${u/c*100}%`}})})}),de.jsx("td",{className:"rf-p-2",children:de.jsxs("div",{className:"rf-flex w-full",children:[de.jsxs("span",{className:"rf-flex-grow",children:[u,"ms"]}),de.jsxs("span",{className:"rf-text-gray-500 rf-pr-2",children:[(u/c*100).toFixed(1),"%"]})]})})]},l))})]})]})},h0t=({errorMessage:n,errorStack:e,circuitJsonErrors:t})=>{be.useEffect(()=>{if(n){const i=new Error(n);e&&(i.stack=e);try{aj.captureException(i)}catch{}}},[n,e]),be.useEffect(()=>{if(t&&t.length>0)for(const i of t){const r=new Error(i.message||"Circuit JSON Error");i.stack&&(r.stack=i.stack);try{aj.captureException(r,{error_type:i.type})}catch{}}},[t])},p0t="0.0.1115",OYn={version:p0t};function f0t(n,e){const[t,i]=be.useState(()=>{try{const r=window.localStorage.getItem(n);return r?JSON.parse(r):e}catch(r){return console.error("Error reading from localStorage:",r),e}});return be.useEffect(()=>{try{window.localStorage.setItem(n,JSON.stringify(t))}catch(r){console.error("Error writing to localStorage:",r)}},[n,t]),[t,i]}const iG=Bje()(Uje(n=>({lastRunEvalVersion:void 0,setLastRunEvalVersion:e=>{n({lastRunEvalVersion:e})}}),{name:"runframe-runner-store"})),LYn=n=>{const[e,t]=be.useState([]),[i,r]=be.useState(null),[o,s]=be.useState(""),[a,c]=f0t("eval-version-selection",null),l=iG(p=>p.setLastRunEvalVersion),u=iG(p=>p.lastRunEvalVersion);return be.useEffect(()=>{n&&fetch("https://data.jsdelivr.com/v1/package/npm/@tscircuit/eval").then(p=>p.json()).then(p=>{if(Array.isArray(p?.versions)){let f=[...p.versions];p.tags?.latest&&(r(p.tags.latest),f=f.filter(_=>_!==p.tags.latest)),t(f)}}).catch(()=>{})},[n]),be.useEffect(()=>{n&&(a?(window.TSCIRCUIT_LATEST_EVAL_VERSION=a,l(a)):i&&(window.TSCIRCUIT_LATEST_EVAL_VERSION=i,l(i)))},[n,a,i]),{versions:be.useMemo(()=>e.filter(p=>p.includes(o)).slice(0,50),[e,o]),latestVersion:i,lastRunEvalVersion:u,search:o,setSearch:s,selectVersion:p=>{c(p),s("")}}},DYn=({snippetNames:n,onSelect:e,onCancel:t,isOpen:i})=>{const[r,o]=be.useState(""),[s,a]=be.useState("");if(!i)return null;const c=n.filter(d=>d.toLowerCase().includes(s.toLowerCase())),l=s&&!n.includes(s),u=d=>{d.key==="Enter"&&(c.length===1?o(c[0]):l&&o(s))};return de.jsx("div",{className:"rf-fixed rf-inset-0 rf-bg-black rf-bg-opacity-50 rf-flex rf-items-center rf-justify-center rf-z-[100]",children:de.jsxs("div",{className:"rf-bg-white rf-rounded-lg rf-p-6 rf-w-96",children:[de.jsx("h2",{className:"rf-text-lg rf-font-semibold rf-mb-4",children:"Select Snippet"}),de.jsx("input",{type:"text",className:"rf-w-full rf-px-4 rf-py-2 rf-border rf-rounded rf-mb-4",placeholder:"Search snippets or new snippet name...",value:s,onChange:d=>a(d.target.value),onKeyDown:u}),de.jsxs("div",{className:"rf-h-60 rf-overflow-y-auto",children:[c.map(d=>de.jsx("button",{type:"button",className:`w-full text-left px-4 py-2 rounded hover:bg-gray-100 ${r===d?"bg-blue-50":""}`,onClick:()=>o(d),children:d},d)),l&&de.jsxs("button",{type:"button",className:`w-full text-left px-4 py-2 rounded hover:bg-gray-100 text-blue-500 ${r===s?"bg-blue-50":""}`,onClick:()=>o(s),children:['Create new "',s,'"']})]}),de.jsxs("div",{className:"rf-mt-4 rf-flex rf-justify-end rf-gap-2",children:[de.jsx("button",{type:"button",className:"rf-px-4 rf-py-2 rf-text-gray-600 rf-hover:text-gray-800",onClick:t,children:"Cancel"}),de.jsx("button",{type:"button",className:"rf-px-4 rf-py-2 rf-bg-blue-500 rf-text-white rf-rounded rf-hover:bg-blue-600 rf-disabled:opacity-50",onClick:()=>r&&e(r),disabled:!r,children:r===s?`Create "${r}"`:`Save to ${r}`})]})]})})},$Yn=n=>{const e=be.useRef(null),t=Jv(i=>i.recentEvents);be.useEffect(()=>{if(t.length===0)return;const i=t[0];i.event_id!==e.current&&(n(i),e.current=i.event_id)},[t,n])};var rG="Dialog",[m0t,_0t]=tT(rG),[zYn,pE]=m0t(rG),g0t=n=>{const{__scopeDialog:e,children:t,open:i,defaultOpen:r,onOpenChange:o,modal:s=!0}=n,a=be.useRef(null),c=be.useRef(null),[l,u]=MC({prop:i,defaultProp:r??!1,onChange:o,caller:rG});return de.jsx(zYn,{scope:e,triggerRef:a,contentRef:c,contentId:eb(),titleId:eb(),descriptionId:eb(),open:l,onOpenChange:u,onOpenToggle:be.useCallback(()=>u(d=>!d),[u]),modal:s,children:t})};g0t.displayName=rG;var y0t="DialogTrigger",x0t=be.forwardRef((n,e)=>{const{__scopeDialog:t,...i}=n,r=pE(y0t,t),o=Z_(e,r.triggerRef);return de.jsx(du.button,{type:"button","aria-haspopup":"dialog","aria-expanded":r.open,"aria-controls":r.contentId,"data-state":Jxe(r.open),...i,ref:o,onClick:ca(n.onClick,r.onOpenToggle)})});x0t.displayName=y0t;var Kxe="DialogPortal",[FYn,v0t]=m0t(Kxe,{forceMount:void 0}),b0t=n=>{const{__scopeDialog:e,forceMount:t,children:i,container:r}=n,o=pE(Kxe,e);return de.jsx(FYn,{scope:e,forceMount:t,children:be.Children.map(i,s=>de.jsx(QS,{present:t||o.open,children:de.jsx(PV,{asChild:!0,container:r,children:s})}))})};b0t.displayName=Kxe;var oG="DialogOverlay",w0t=be.forwardRef((n,e)=>{const t=v0t(oG,n.__scopeDialog),{forceMount:i=t.forceMount,...r}=n,o=pE(oG,n.__scopeDialog);return o.modal?de.jsx(QS,{present:i||o.open,children:de.jsx(UYn,{...r,ref:e})}):null});w0t.displayName=oG;var BYn=TC("DialogOverlay.RemoveScroll"),UYn=be.forwardRef((n,e)=>{const{__scopeDialog:t,...i}=n,r=pE(oG,t);return de.jsx($V,{as:BYn,allowPinchZoom:!0,shards:[r.contentRef],children:de.jsx(du.div,{"data-state":Jxe(r.open),...i,ref:e,style:{pointerEvents:"auto",...i.style}})})}),k4="DialogContent",S0t=be.forwardRef((n,e)=>{const t=v0t(k4,n.__scopeDialog),{forceMount:i=t.forceMount,...r}=n,o=pE(k4,n.__scopeDialog);return de.jsx(QS,{present:i||o.open,children:o.modal?de.jsx(jYn,{...r,ref:e}):de.jsx(HYn,{...r,ref:e})})});S0t.displayName=k4;var jYn=be.forwardRef((n,e)=>{const t=pE(k4,n.__scopeDialog),i=be.useRef(null),r=Z_(e,t.contentRef,i);return be.useEffect(()=>{const o=i.current;if(o)return Uye(o)},[]),de.jsx(E0t,{...n,ref:r,trapFocus:t.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:ca(n.onCloseAutoFocus,o=>{o.preventDefault(),t.triggerRef.current?.focus()}),onPointerDownOutside:ca(n.onPointerDownOutside,o=>{const s=o.detail.originalEvent,a=s.button===0&&s.ctrlKey===!0;(s.button===2||a)&&o.preventDefault()}),onFocusOutside:ca(n.onFocusOutside,o=>o.preventDefault())})}),HYn=be.forwardRef((n,e)=>{const t=pE(k4,n.__scopeDialog),i=be.useRef(!1),r=be.useRef(!1);return de.jsx(E0t,{...n,ref:e,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:o=>{n.onCloseAutoFocus?.(o),o.defaultPrevented||(i.current||t.triggerRef.current?.focus(),o.preventDefault()),i.current=!1,r.current=!1},onInteractOutside:o=>{n.onInteractOutside?.(o),o.defaultPrevented||(i.current=!0,o.detail.originalEvent.type==="pointerdown"&&(r.current=!0));const s=o.target;t.triggerRef.current?.contains(s)&&o.preventDefault(),o.detail.originalEvent.type==="focusin"&&r.current&&o.preventDefault()}})}),E0t=be.forwardRef((n,e)=>{const{__scopeDialog:t,trapFocus:i,onOpenAutoFocus:r,onCloseAutoFocus:o,...s}=n,a=pE(k4,t),c=be.useRef(null),l=Z_(e,c);return wye(),de.jsxs(de.Fragment,{children:[de.jsx(gV,{asChild:!0,loop:!0,trapped:i,onMountAutoFocus:r,onUnmountAutoFocus:o,children:de.jsx(_V,{role:"dialog",id:a.contentId,"aria-describedby":a.descriptionId,"aria-labelledby":a.titleId,"data-state":Jxe(a.open),...s,ref:l,onDismiss:()=>a.onOpenChange(!1)})}),de.jsxs(de.Fragment,{children:[de.jsx(qYn,{titleId:a.titleId}),de.jsx(YYn,{contentRef:c,descriptionId:a.descriptionId})]})]})}),Qxe="DialogTitle",T0t=be.forwardRef((n,e)=>{const{__scopeDialog:t,...i}=n,r=pE(Qxe,t);return de.jsx(du.h2,{id:r.titleId,...i,ref:e})});T0t.displayName=Qxe;var M0t="DialogDescription",A0t=be.forwardRef((n,e)=>{const{__scopeDialog:t,...i}=n,r=pE(M0t,t);return de.jsx(du.p,{id:r.descriptionId,...i,ref:e})});A0t.displayName=M0t;var C0t="DialogClose",P0t=be.forwardRef((n,e)=>{const{__scopeDialog:t,...i}=n,r=pE(C0t,t);return de.jsx(du.button,{type:"button",...i,ref:e,onClick:ca(n.onClick,()=>r.onOpenChange(!1))})});P0t.displayName=C0t;function Jxe(n){return n?"open":"closed"}var R0t="DialogTitleWarning",[VYn,I0t]=qun(R0t,{contentName:k4,titleName:Qxe,docsSlug:"dialog"}),qYn=({titleId:n})=>{const e=I0t(R0t),t=`\`${e.contentName}\` requires a \`${e.titleName}\` for the component to be accessible for screen reader users.
5634
+ */const CYn=({containerClassName:n,...e})=>{const t=be.useRef(null),[i,r]=be.useState(620);return be.useLayoutEffect(()=>{const o=()=>{if(t.current){const a=t.current.clientHeight,c=window.innerHeight;r(Math.min(Math.max(a,620),c))}};o();const s=new ResizeObserver(o);return t.current&&s.observe(t.current),window.addEventListener("resize",o),()=>{s.disconnect(),window.removeEventListener("resize",o)}},[]),de.jsx("div",{ref:t,className:n||"rf-w-full rf-h-full",children:de.jsx(AYn,{...e,height:i})})},PYn='*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}:root{--radius:0.5rem}.rf-pointer-events-none{pointer-events:none}.rf-invisible{visibility:hidden}.rf-fixed{position:fixed}.rf-absolute{position:absolute}.rf-relative{position:relative}.rf-inset-0{inset:0}.-rf-left-2{left:-.5rem}.-rf-right-10{right:-2.5rem}.-rf-right-2{right:-.5rem}.-rf-right-4{right:-1rem}.-rf-right-6{right:-1.5rem}.-rf-right-7{right:-1.75rem}.-rf-right-8{right:-2rem}.-rf-right-9{right:-2.25rem}.rf-bottom-full{bottom:100%}.rf-left-0{left:0}.rf-left-1{left:.25rem}.rf-left-1\\/2{left:50%}.rf-left-2{left:.5rem}.rf-left-\\[50\\%\\]{left:50%}.rf-right-0{right:0}.rf-right-1{right:.25rem}.rf-right-4{right:1rem}.rf-right-\\[4px\\]{right:4px}.rf-top-0{top:0}.rf-top-1{top:.25rem}.rf-top-2{top:.5rem}.rf-top-2\\.5{top:.625rem}.rf-top-\\[50\\%\\]{top:50%}.rf-top-\\[6px\\]{top:6px}.\\!rf-z-\\[101\\]{z-index:101!important}.\\!rf-z-\\[200\\]{z-index:200!important}.rf-z-10{z-index:10}.rf-z-50{z-index:50}.rf-z-\\[100\\]{z-index:100}.rf-z-\\[101\\]{z-index:101}.rf-order-1{order:1}.rf-order-2{order:2}.rf-order-3{order:3}.rf-m-1{margin:.25rem}.rf-m-6{margin:1.5rem}.-rf-mx-1,.rf--mx-1{margin-left:-.25rem;margin-right:-.25rem}.rf-mx-1{margin-left:.25rem;margin-right:.25rem}.rf-mx-2{margin-left:.5rem;margin-right:.5rem}.rf-mx-4{margin-left:1rem;margin-right:1rem}.rf-mx-auto{margin-left:auto;margin-right:auto}.rf-my-1{margin-bottom:.25rem;margin-top:.25rem}.rf-my-12{margin-bottom:3rem;margin-top:3rem}.rf-my-4{margin-bottom:1rem;margin-top:1rem}.rf-my-auto{margin-bottom:auto;margin-top:auto}.rf-mb-1{margin-bottom:.25rem}.rf-mb-12{margin-bottom:3rem}.rf-mb-2{margin-bottom:.5rem}.rf-mb-3{margin-bottom:.75rem}.rf-mb-4{margin-bottom:1rem}.rf-mb-6{margin-bottom:1.5rem}.rf-mb-8{margin-bottom:2rem}.rf-ml-1{margin-left:.25rem}.rf-ml-2{margin-left:.5rem}.rf-ml-auto{margin-left:auto}.rf-mr-1{margin-right:.25rem}.rf-mr-2{margin-right:.5rem}.rf-mr-4{margin-right:1rem}.rf-mt-0{margin-top:0}.rf-mt-0\\.5{margin-top:.125rem}.rf-mt-1{margin-top:.25rem}.rf-mt-2{margin-top:.5rem}.rf-mt-3{margin-top:.75rem}.rf-mt-4{margin-top:1rem}.rf-mt-5{margin-top:1.25rem}.rf-mt-auto{margin-top:auto}.rf-block{display:block}.rf-inline-block{display:inline-block}.rf-inline{display:inline}.rf-flex{display:flex}.rf-inline-flex{display:inline-flex}.rf-grid{display:grid}.rf-hidden{display:none}.rf-aspect-square{aspect-ratio:1/1}.rf-aspect-video{aspect-ratio:16/9}.rf-size-14{height:3.5rem;width:3.5rem}.rf-size-4{height:1rem;width:1rem}.\\!rf-h-2{height:.5rem!important}.\\!rf-h-2\\.5{height:.625rem!important}.\\!rf-h-3{height:.75rem!important}.\\!rf-h-full{height:100%!important}.rf-h-1{height:.25rem}.rf-h-10{height:2.5rem}.rf-h-12{height:3rem}.rf-h-2{height:.5rem}.rf-h-2\\.5{height:.625rem}.rf-h-20{height:5rem}.rf-h-24{height:6rem}.rf-h-3{height:.75rem}.rf-h-3\\.5{height:.875rem}.rf-h-4{height:1rem}.rf-h-5{height:1.25rem}.rf-h-6{height:1.5rem}.rf-h-60{height:15rem}.rf-h-64{height:16rem}.rf-h-7{height:1.75rem}.rf-h-8{height:2rem}.rf-h-9{height:2.25rem}.rf-h-\\[400px\\]{height:400px}.rf-h-\\[calc\\(100vh-52px\\)\\]{height:calc(100vh - 52px)}.rf-h-\\[var\\(--radix-select-trigger-height\\)\\]{height:var(--radix-select-trigger-height)}.rf-h-auto{height:auto}.rf-h-fit{height:-moz-fit-content;height:fit-content}.rf-h-full{height:100%}.rf-h-px{height:1px}.rf-h-screen{height:100vh}.\\!rf-max-h-\\[40vh\\]{max-height:40vh!important}.rf-max-h-32{max-height:8rem}.rf-max-h-96{max-height:24rem}.rf-max-h-\\[200px\\]{max-height:200px}.rf-max-h-\\[300px\\]{max-height:300px}.rf-max-h-\\[500px\\]{max-height:500px}.rf-max-h-\\[70vh\\]{max-height:70vh}.rf-max-h-\\[90vh\\]{max-height:90vh}.rf-max-h-full{max-height:100%}.rf-min-h-0{min-height:0}.rf-min-h-\\[200px\\]{min-height:200px}.rf-min-h-\\[300px\\]{min-height:300px}.rf-min-h-\\[620px\\]{min-height:620px}.rf-min-h-\\[calc\\(100vh-240px\\)\\]{min-height:calc(100vh - 240px)}.\\!rf-w-2{width:.5rem!important}.\\!rf-w-2\\.5{width:.625rem!important}.rf-w-1{width:.25rem}.rf-w-1\\/2{width:50%}.rf-w-11{width:2.75rem}.rf-w-11\\/12{width:91.666667%}.rf-w-12{width:3rem}.rf-w-16{width:4rem}.rf-w-2{width:.5rem}.rf-w-2\\.5{width:.625rem}.rf-w-20{width:5rem}.rf-w-24{width:6rem}.rf-w-28{width:7rem}.rf-w-3{width:.75rem}.rf-w-3\\.5{width:.875rem}.rf-w-32{width:8rem}.rf-w-4{width:1rem}.rf-w-40{width:10rem}.rf-w-48{width:12rem}.rf-w-5{width:1.25rem}.rf-w-6{width:1.5rem}.rf-w-64{width:16rem}.rf-w-72{width:18rem}.rf-w-8{width:2rem}.rf-w-80{width:20rem}.rf-w-9{width:2.25rem}.rf-w-96{width:24rem}.rf-w-\\[400px\\]{width:400px}.rf-w-\\[95\\%\\]{width:95%}.rf-w-fit{width:-moz-fit-content;width:fit-content}.rf-w-full{width:100%}.rf-w-screen{width:100vw}.rf-min-w-0{min-width:0}.rf-min-w-10{min-width:2.5rem}.rf-min-w-16{min-width:4rem}.rf-min-w-32{min-width:8rem}.rf-min-w-80{min-width:20rem}.rf-min-w-96{min-width:24rem}.rf-min-w-\\[148px\\]{min-width:148px}.rf-min-w-\\[400px\\]{min-width:400px}.rf-min-w-\\[8rem\\]{min-width:8rem}.rf-min-w-\\[var\\(--radix-select-trigger-width\\)\\]{min-width:var(--radix-select-trigger-width)}.\\!rf-max-w-\\[660px\\]{max-width:660px!important}.rf-max-w-2xl{max-width:42rem}.rf-max-w-3xl{max-width:48rem}.rf-max-w-4xl{max-width:56rem}.rf-max-w-5xl{max-width:64rem}.rf-max-w-64{max-width:16rem}.rf-max-w-96{max-width:24rem}.rf-max-w-\\[100px\\]{max-width:100px}.rf-max-w-\\[120px\\]{max-width:120px}.rf-max-w-\\[150px\\]{max-width:150px}.rf-max-w-\\[400px\\]{max-width:400px}.rf-max-w-full{max-width:100%}.rf-max-w-lg{max-width:32rem}.rf-max-w-md{max-width:28rem}.rf-max-w-none{max-width:none}.rf-max-w-xl{max-width:36rem}.rf-max-w-xs{max-width:20rem}.rf-flex-1{flex:1 1 0%}.rf-flex-shrink-0,.rf-shrink-0{flex-shrink:0}.rf-flex-grow{flex-grow:1}.rf-table-auto{table-layout:auto}.rf-origin-\\[--radix-popover-content-transform-origin\\]{transform-origin:var(--radix-popover-content-transform-origin)}.-rf-translate-x-1{--tw-translate-x:-0.25rem}.-rf-translate-x-1,.-rf-translate-x-1\\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rf-translate-x-1\\/2{--tw-translate-x:-50%}.-rf-translate-y-1{--tw-translate-y:-0.25rem}.-rf-translate-y-1,.rf--translate-x-1{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rf--translate-x-1{--tw-translate-x:-0.25rem}.rf--translate-x-1\\/2{--tw-translate-x:-50%}.rf--translate-x-1\\/2,.rf--translate-y-1{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rf--translate-y-1{--tw-translate-y:-0.25rem}.rf-translate-x-\\[-50\\%\\]{--tw-translate-x:-50%}.rf-translate-x-\\[-50\\%\\],.rf-translate-y-\\[-50\\%\\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rf-translate-y-\\[-50\\%\\]{--tw-translate-y:-50%}.rf-transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes rf-pulse{50%{opacity:.5}}.rf-animate-pulse{animation:rf-pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes rf-spin{to{transform:rotate(1turn)}}.rf-animate-spin{animation:rf-spin 1s linear infinite}.rf-cursor-default{cursor:default}.rf-cursor-not-allowed{cursor:not-allowed}.rf-cursor-pointer{cursor:pointer}.rf-select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.rf-grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.rf-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.rf-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.rf-flex-row{flex-direction:row}.rf-flex-col{flex-direction:column}.rf-flex-col-reverse{flex-direction:column-reverse}.rf-flex-wrap{flex-wrap:wrap}.rf-place-items-center{place-items:center}.rf-items-start{align-items:flex-start}.rf-items-end{align-items:flex-end}.rf-items-center{align-items:center}.rf-items-stretch{align-items:stretch}.rf-justify-end{justify-content:flex-end}.rf-justify-center{justify-content:center}.rf-justify-between{justify-content:space-between}.rf-gap-0{gap:0}.rf-gap-1{gap:.25rem}.rf-gap-2{gap:.5rem}.rf-gap-3{gap:.75rem}.rf-gap-4{gap:1rem}.rf-gap-5{gap:1.25rem}.rf-gap-6{gap:1.5rem}.rf-gap-8{gap:2rem}.rf-space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.rf-space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.rf-space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.75rem*var(--tw-space-y-reverse));margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)))}.rf-space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.rf-space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.5rem*var(--tw-space-y-reverse));margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)))}.rf-divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-bottom-width:calc(1px*var(--tw-divide-y-reverse));border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)))}.rf-overflow-auto{overflow:auto}.rf-overflow-hidden{overflow:hidden}.rf-overflow-visible{overflow:visible}.\\!rf-overflow-x-auto{overflow-x:auto!important}.rf-overflow-x-auto{overflow-x:auto}.\\!rf-overflow-y-auto{overflow-y:auto!important}.rf-overflow-y-auto{overflow-y:auto}.rf-overflow-x-hidden{overflow-x:hidden}.rf-overflow-x-clip{overflow-x:clip}.rf-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rf-whitespace-normal{white-space:normal}.rf-whitespace-nowrap{white-space:nowrap}.rf-whitespace-pre-wrap{white-space:pre-wrap}.rf-break-words{overflow-wrap:break-word}.rf-break-all{word-break:break-all}.rf-rounded{border-radius:.25rem}.rf-rounded-2xl{border-radius:1rem}.rf-rounded-full{border-radius:9999px}.rf-rounded-lg{border-radius:var(--radius)}.rf-rounded-md{border-radius:calc(var(--radius) - 2px)}.rf-rounded-sm{border-radius:calc(var(--radius) - 4px)}.rf-rounded-xl{border-radius:.75rem}.rf-border{border-width:1px}.rf-border-2{border-width:2px}.rf-border-b{border-bottom-width:1px}.rf-border-t{border-top-width:1px}.rf-border-none{border-style:none}.rf-border-blue-200{--tw-border-opacity:1;border-color:rgb(191 219 254/var(--tw-border-opacity,1))}.rf-border-blue-300{--tw-border-opacity:1;border-color:rgb(147 197 253/var(--tw-border-opacity,1))}.rf-border-blue-400{--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.rf-border-blue-500{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.rf-border-blue-600{--tw-border-opacity:1;border-color:rgb(37 99 235/var(--tw-border-opacity,1))}.rf-border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.rf-border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.rf-border-green-200{--tw-border-opacity:1;border-color:rgb(187 247 208/var(--tw-border-opacity,1))}.rf-border-green-400{--tw-border-opacity:1;border-color:rgb(74 222 128/var(--tw-border-opacity,1))}.rf-border-input{border-color:hsl(var(--input))}.rf-border-neutral-200{--tw-border-opacity:1;border-color:rgb(229 229 229/var(--tw-border-opacity,1))}.rf-border-orange-200{--tw-border-opacity:1;border-color:rgb(254 215 170/var(--tw-border-opacity,1))}.rf-border-primary{border-color:hsl(var(--primary))}.rf-border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.rf-border-red-400{--tw-border-opacity:1;border-color:rgb(248 113 113/var(--tw-border-opacity,1))}.rf-border-red-500{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.rf-border-zinc-200{--tw-border-opacity:1;border-color:rgb(228 228 231/var(--tw-border-opacity,1))}.rf-border-zinc-900{--tw-border-opacity:1;border-color:rgb(24 24 27/var(--tw-border-opacity,1))}.rf-bg-amber-50{--tw-bg-opacity:1;background-color:rgb(255 251 235/var(--tw-bg-opacity,1))}.rf-bg-amber-50\\/30{background-color:rgba(255,251,235,.3)}.rf-bg-background{background-color:hsl(var(--background))}.rf-bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.rf-bg-black\\/80{background-color:rgba(0,0,0,.8)}.rf-bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.rf-bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.rf-bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.rf-bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.rf-bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.rf-bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.rf-bg-gray-300{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity,1))}.rf-bg-gray-400{--tw-bg-opacity:1;background-color:rgb(156 163 175/var(--tw-bg-opacity,1))}.rf-bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.rf-bg-gray-500{--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity,1))}.rf-bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.rf-bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.rf-bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.rf-bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.rf-bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.rf-bg-muted{background-color:hsl(var(--muted))}.rf-bg-neutral-100{--tw-bg-opacity:1;background-color:rgb(245 245 245/var(--tw-bg-opacity,1))}.rf-bg-neutral-50{--tw-bg-opacity:1;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))}.rf-bg-neutral-800{--tw-bg-opacity:1;background-color:rgb(38 38 38/var(--tw-bg-opacity,1))}.rf-bg-neutral-900{--tw-bg-opacity:1;background-color:rgb(23 23 23/var(--tw-bg-opacity,1))}.rf-bg-orange-400{--tw-bg-opacity:1;background-color:rgb(251 146 60/var(--tw-bg-opacity,1))}.rf-bg-orange-50{--tw-bg-opacity:1;background-color:rgb(255 247 237/var(--tw-bg-opacity,1))}.rf-bg-popover{background-color:hsl(var(--popover))}.rf-bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.rf-bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.rf-bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.rf-bg-red-900{--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.rf-bg-slate-50{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.rf-bg-transparent{background-color:transparent}.rf-bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.rf-bg-yellow-100{--tw-bg-opacity:1;background-color:rgb(254 249 195/var(--tw-bg-opacity,1))}.rf-bg-zinc-100{--tw-bg-opacity:1;background-color:rgb(244 244 245/var(--tw-bg-opacity,1))}.rf-bg-zinc-200{--tw-bg-opacity:1;background-color:rgb(228 228 231/var(--tw-bg-opacity,1))}.rf-bg-zinc-50{--tw-bg-opacity:1;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))}.rf-bg-zinc-800{--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))}.rf-bg-zinc-900{--tw-bg-opacity:1;background-color:rgb(24 24 27/var(--tw-bg-opacity,1))}.rf-bg-opacity-50{--tw-bg-opacity:0.5}.rf-fill-amber-500{fill:#f59e0b}.rf-fill-current{fill:currentColor}.rf-object-contain{-o-object-fit:contain;object-fit:contain}.rf-object-cover{-o-object-fit:cover;object-fit:cover}.\\!rf-p-0{padding:0!important}.rf-p-0{padding:0}.rf-p-1{padding:.25rem}.rf-p-2{padding:.5rem}.rf-p-3{padding:.75rem}.rf-p-4{padding:1rem}.rf-p-5{padding:1.25rem}.rf-p-6{padding:1.5rem}.rf-p-8{padding:2rem}.rf-px-1{padding-left:.25rem;padding-right:.25rem}.rf-px-2{padding-left:.5rem;padding-right:.5rem}.rf-px-3{padding-left:.75rem;padding-right:.75rem}.rf-px-4{padding-left:1rem;padding-right:1rem}.rf-px-6{padding-left:1.5rem;padding-right:1.5rem}.rf-px-8{padding-left:2rem;padding-right:2rem}.rf-py-0{padding-bottom:0;padding-top:0}.rf-py-0\\.5{padding-bottom:.125rem;padding-top:.125rem}.rf-py-1{padding-bottom:.25rem;padding-top:.25rem}.rf-py-1\\.5{padding-bottom:.375rem;padding-top:.375rem}.rf-py-10{padding-bottom:2.5rem;padding-top:2.5rem}.rf-py-12{padding-bottom:3rem;padding-top:3rem}.rf-py-2{padding-bottom:.5rem;padding-top:.5rem}.rf-py-3{padding-bottom:.75rem;padding-top:.75rem}.rf-py-4{padding-bottom:1rem;padding-top:1rem}.rf-py-6{padding-bottom:1.5rem;padding-top:1.5rem}.rf-py-8{padding-bottom:2rem;padding-top:2rem}.rf-pb-0{padding-bottom:0}.rf-pb-1{padding-bottom:.25rem}.rf-pb-2{padding-bottom:.5rem}.rf-pb-3{padding-bottom:.75rem}.rf-pb-4{padding-bottom:1rem}.rf-pl-2{padding-left:.5rem}.rf-pl-4{padding-left:1rem}.rf-pl-8{padding-left:2rem}.rf-pr-2{padding-right:.5rem}.rf-pt-0{padding-top:0}.rf-pt-2{padding-top:.5rem}.rf-pt-4{padding-top:1rem}.rf-text-left{text-align:left}.rf-text-center{text-align:center}.rf-text-right{text-align:right}.rf-font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.rf-text-2xl{font-size:1.5rem;line-height:2rem}.rf-text-3xl{font-size:1.875rem;line-height:2.25rem}.rf-text-\\[8px\\]{font-size:8px}.rf-text-base{font-size:1rem;line-height:1.5rem}.rf-text-lg{font-size:1.125rem;line-height:1.75rem}.rf-text-sm{font-size:.875rem;line-height:1.25rem}.rf-text-xl{font-size:1.25rem;line-height:1.75rem}.rf-text-xs{font-size:.75rem;line-height:1rem}.\\!rf-font-normal{font-weight:400!important}.rf-font-bold{font-weight:700}.rf-font-medium{font-weight:500}.rf-font-semibold{font-weight:600}.rf-uppercase{text-transform:uppercase}.rf-capitalize{text-transform:capitalize}.rf-tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.rf-leading-5{line-height:1.25rem}.rf-leading-none{line-height:1}.rf-leading-relaxed{line-height:1.625}.rf-leading-tight{line-height:1.25}.rf-tracking-wide{letter-spacing:.025em}.rf-tracking-widest{letter-spacing:.1em}.rf-text-amber-500{--tw-text-opacity:1;color:rgb(245 158 11/var(--tw-text-opacity,1))}.rf-text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.rf-text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.rf-text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.rf-text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.rf-text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.rf-text-blue-900{--tw-text-opacity:1;color:rgb(30 58 138/var(--tw-text-opacity,1))}.rf-text-current{color:currentColor}.rf-text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.rf-text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.rf-text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.rf-text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.rf-text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.rf-text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.rf-text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.rf-text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.rf-text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.rf-text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.rf-text-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.rf-text-green-900{--tw-text-opacity:1;color:rgb(20 83 45/var(--tw-text-opacity,1))}.rf-text-muted-foreground{color:hsl(var(--muted-foreground))}.rf-text-neutral-50{--tw-text-opacity:1;color:rgb(250 250 250/var(--tw-text-opacity,1))}.rf-text-neutral-500{--tw-text-opacity:1;color:rgb(115 115 115/var(--tw-text-opacity,1))}.rf-text-neutral-900{--tw-text-opacity:1;color:rgb(23 23 23/var(--tw-text-opacity,1))}.rf-text-neutral-950{--tw-text-opacity:1;color:rgb(10 10 10/var(--tw-text-opacity,1))}.rf-text-orange-500{--tw-text-opacity:1;color:rgb(249 115 22/var(--tw-text-opacity,1))}.rf-text-orange-600{--tw-text-opacity:1;color:rgb(234 88 12/var(--tw-text-opacity,1))}.rf-text-orange-800{--tw-text-opacity:1;color:rgb(154 52 18/var(--tw-text-opacity,1))}.rf-text-popover-foreground{color:hsl(var(--popover-foreground))}.rf-text-red-200{--tw-text-opacity:1;color:rgb(254 202 202/var(--tw-text-opacity,1))}.rf-text-red-300{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.rf-text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.rf-text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.rf-text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.rf-text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.rf-text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.rf-text-red-900{--tw-text-opacity:1;color:rgb(127 29 29/var(--tw-text-opacity,1))}.rf-text-slate-400{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.rf-text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.rf-text-slate-600{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity,1))}.rf-text-slate-800{--tw-text-opacity:1;color:rgb(30 41 59/var(--tw-text-opacity,1))}.rf-text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.rf-text-yellow-400{--tw-text-opacity:1;color:rgb(250 204 21/var(--tw-text-opacity,1))}.rf-text-yellow-500{--tw-text-opacity:1;color:rgb(234 179 8/var(--tw-text-opacity,1))}.rf-text-yellow-600{--tw-text-opacity:1;color:rgb(202 138 4/var(--tw-text-opacity,1))}.rf-text-yellow-900{--tw-text-opacity:1;color:rgb(113 63 18/var(--tw-text-opacity,1))}.rf-text-zinc-200{--tw-text-opacity:1;color:rgb(228 228 231/var(--tw-text-opacity,1))}.rf-text-zinc-300{--tw-text-opacity:1;color:rgb(212 212 216/var(--tw-text-opacity,1))}.rf-text-zinc-400{--tw-text-opacity:1;color:rgb(161 161 170/var(--tw-text-opacity,1))}.rf-text-zinc-50{--tw-text-opacity:1;color:rgb(250 250 250/var(--tw-text-opacity,1))}.rf-text-zinc-500{--tw-text-opacity:1;color:rgb(113 113 122/var(--tw-text-opacity,1))}.rf-text-zinc-900{--tw-text-opacity:1;color:rgb(24 24 27/var(--tw-text-opacity,1))}.rf-text-zinc-950{--tw-text-opacity:1;color:rgb(9 9 11/var(--tw-text-opacity,1))}.rf-underline{text-decoration-line:underline}.rf-line-through{text-decoration-line:line-through}.rf-underline-offset-4{text-underline-offset:4px}.rf-opacity-0{opacity:0}.rf-opacity-100{opacity:1}.rf-opacity-25{opacity:.25}.rf-opacity-30{opacity:.3}.rf-opacity-50{opacity:.5}.rf-opacity-60{opacity:.6}.rf-opacity-75{opacity:.75}.rf-shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.rf-shadow,.rf-shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.rf-shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.rf-shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.rf-shadow-md,.rf-shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.rf-shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.rf-outline-none{outline:2px solid transparent;outline-offset:2px}.rf-ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.rf-ring-blue-500{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}.rf-ring-primary{--tw-ring-color:hsl(var(--primary))}.rf-ring-offset-background{--tw-ring-offset-color:hsl(var(--background))}.rf-ring-offset-white{--tw-ring-offset-color:#fff}.rf-transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.rf-transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.rf-transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.rf-transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.rf-duration-200{transition-duration:.2s}.rf-ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.rf-slide-in-from-left-1{--tw-enter-translate-x:-0.25rem}.rf-slide-out-to-left-1{--tw-exit-translate-x:-0.25rem}.rf-duration-200{animation-duration:.2s}.rf-ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.file\\:rf-border-0::file-selector-button{border-width:0}.file\\:rf-bg-transparent::file-selector-button{background-color:transparent}.file\\:rf-text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\\:rf-font-medium::file-selector-button{font-weight:500}.placeholder\\:rf-text-zinc-500::-moz-placeholder{--tw-text-opacity:1;color:rgb(113 113 122/var(--tw-text-opacity,1))}.placeholder\\:rf-text-zinc-500::placeholder{--tw-text-opacity:1;color:rgb(113 113 122/var(--tw-text-opacity,1))}.hover\\:rf-border-blue-300:hover{--tw-border-opacity:1;border-color:rgb(147 197 253/var(--tw-border-opacity,1))}.hover\\:rf-border-blue-500:hover{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.hover\\:\\!rf-bg-transparent:hover{background-color:transparent!important}.hover\\:rf-bg-blue-700:hover{--tw-bg-opacity:1;background-color:rgb(29 78 216/var(--tw-bg-opacity,1))}.hover\\:rf-bg-red-500\\/90:hover{background-color:rgba(239,68,68,.9)}.hover\\:rf-bg-slate-200:hover{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity,1))}.hover\\:rf-bg-zinc-100:hover{--tw-bg-opacity:1;background-color:rgb(244 244 245/var(--tw-bg-opacity,1))}.hover\\:rf-bg-zinc-100\\/80:hover{background-color:hsla(240,5%,96%,.8)}.hover\\:rf-bg-zinc-900\\/90:hover{background-color:rgba(24,24,27,.9)}.hover\\:rf-text-blue-800:hover{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.hover\\:rf-text-red-400:hover{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.hover\\:rf-text-slate-900:hover{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.hover\\:rf-text-zinc-900:hover{--tw-text-opacity:1;color:rgb(24 24 27/var(--tw-text-opacity,1))}.hover\\:rf-underline:hover{text-decoration-line:underline}.focus\\:rf-bg-gray-100:focus{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.focus\\:rf-bg-zinc-100:focus{--tw-bg-opacity:1;background-color:rgb(244 244 245/var(--tw-bg-opacity,1))}.focus\\:rf-text-gray-900:focus{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.focus\\:rf-text-zinc-900:focus{--tw-text-opacity:1;color:rgb(24 24 27/var(--tw-text-opacity,1))}.focus\\:rf-outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\\:rf-ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\\:rf-ring-ring:focus{--tw-ring-color:hsl(var(--ring))}.focus\\:rf-ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\\:rf-outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\\:rf-ring-1:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\\:rf-ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\\:rf-ring-zinc-950:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgb(9 9 11/var(--tw-ring-opacity,1))}.focus-visible\\:rf-ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.disabled\\:rf-pointer-events-none:disabled{pointer-events:none}.disabled\\:rf-cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:rf-opacity-50:disabled{opacity:.5}.rf-group:hover .group-hover\\:rf-opacity-100,.rf-group\\/bar:hover .group-hover\\/bar\\:rf-opacity-100{opacity:1}.data-\\[disabled\\=true\\]\\:rf-pointer-events-none[data-disabled=true],.data-\\[disabled\\]\\:rf-pointer-events-none[data-disabled]{pointer-events:none}.data-\\[side\\=bottom\\]\\:rf-translate-y-1[data-side=bottom]{--tw-translate-y:0.25rem}.data-\\[side\\=bottom\\]\\:rf-translate-y-1[data-side=bottom],.data-\\[side\\=left\\]\\:-rf-translate-x-1[data-side=left]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\\[side\\=left\\]\\:-rf-translate-x-1[data-side=left]{--tw-translate-x:-0.25rem}.data-\\[side\\=right\\]\\:rf-translate-x-1[data-side=right]{--tw-translate-x:0.25rem}.data-\\[side\\=right\\]\\:rf-translate-x-1[data-side=right],.data-\\[side\\=top\\]\\:-rf-translate-y-1[data-side=top]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\\[side\\=top\\]\\:-rf-translate-y-1[data-side=top]{--tw-translate-y:-0.25rem}.data-\\[selected\\=true\\]\\:rf-bg-zinc-100[data-selected=true]{--tw-bg-opacity:1;background-color:rgb(244 244 245/var(--tw-bg-opacity,1))}.data-\\[state\\=active\\]\\:rf-bg-white[data-state=active]{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.data-\\[state\\=checked\\]\\:rf-bg-zinc-900[data-state=checked]{--tw-bg-opacity:1;background-color:rgb(24 24 27/var(--tw-bg-opacity,1))}.data-\\[state\\=open\\]\\:rf-bg-zinc-100[data-state=open]{--tw-bg-opacity:1;background-color:rgb(244 244 245/var(--tw-bg-opacity,1))}.data-\\[selected\\=true\\]\\:rf-text-zinc-900[data-selected=true]{--tw-text-opacity:1;color:rgb(24 24 27/var(--tw-text-opacity,1))}.data-\\[state\\=active\\]\\:rf-text-zinc-950[data-state=active]{--tw-text-opacity:1;color:rgb(9 9 11/var(--tw-text-opacity,1))}.data-\\[state\\=checked\\]\\:rf-text-zinc-50[data-state=checked]{--tw-text-opacity:1;color:rgb(250 250 250/var(--tw-text-opacity,1))}.data-\\[disabled\\=true\\]\\:rf-opacity-50[data-disabled=true],.data-\\[disabled\\]\\:rf-opacity-50[data-disabled]{opacity:.5}.data-\\[state\\=active\\]\\:rf-shadow[data-state=active]{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.data-\\[state\\=open\\]\\:rf-animate-in[data-state=open]{animation-duration:.15s;animation-name:enter;--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial}.data-\\[state\\=closed\\]\\:rf-animate-out[data-state=closed]{animation-duration:.15s;animation-name:exit;--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial}.data-\\[state\\=closed\\]\\:rf-fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\\[state\\=open\\]\\:rf-fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\\[state\\=closed\\]\\:rf-zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\\[state\\=open\\]\\:rf-zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\\[side\\=bottom\\]\\:rf-slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:-0.5rem}.data-\\[side\\=left\\]\\:rf-slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:0.5rem}.data-\\[side\\=right\\]\\:rf-slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:-0.5rem}.data-\\[side\\=top\\]\\:rf-slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:0.5rem}.data-\\[state\\=closed\\]\\:rf-slide-out-to-left-1\\/2[data-state=closed]{--tw-exit-translate-x:-50%}.data-\\[state\\=closed\\]\\:rf-slide-out-to-top-\\[48\\%\\][data-state=closed]{--tw-exit-translate-y:-48%}.data-\\[state\\=open\\]\\:rf-slide-in-from-left-1\\/2[data-state=open]{--tw-enter-translate-x:-50%}.data-\\[state\\=open\\]\\:rf-slide-in-from-top-\\[48\\%\\][data-state=open]{--tw-enter-translate-y:-48%}.dark\\:rf-border-zinc-50:is(.rf-dark *){--tw-border-opacity:1;border-color:rgb(250 250 250/var(--tw-border-opacity,1))}.dark\\:rf-border-zinc-800:is(.rf-dark *){--tw-border-opacity:1;border-color:rgb(39 39 42/var(--tw-border-opacity,1))}.dark\\:rf-bg-gray-700:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.dark\\:rf-bg-gray-800:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.dark\\:rf-bg-red-900:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.dark\\:rf-bg-zinc-50:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))}.dark\\:rf-bg-zinc-800:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))}.dark\\:rf-bg-zinc-950:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(9 9 11/var(--tw-bg-opacity,1))}.dark\\:rf-text-gray-500:is(.rf-dark *){--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.dark\\:rf-text-zinc-400:is(.rf-dark *){--tw-text-opacity:1;color:rgb(161 161 170/var(--tw-text-opacity,1))}.dark\\:rf-text-zinc-50:is(.rf-dark *){--tw-text-opacity:1;color:rgb(250 250 250/var(--tw-text-opacity,1))}.dark\\:rf-text-zinc-900:is(.rf-dark *){--tw-text-opacity:1;color:rgb(24 24 27/var(--tw-text-opacity,1))}.dark\\:rf-placeholder-zinc-400:is(.rf-dark *)::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(161 161 170/var(--tw-placeholder-opacity,1))}.dark\\:rf-placeholder-zinc-400:is(.rf-dark *)::placeholder{--tw-placeholder-opacity:1;color:rgb(161 161 170/var(--tw-placeholder-opacity,1))}.dark\\:rf-ring-offset-zinc-950:is(.rf-dark *){--tw-ring-offset-color:#09090b}.dark\\:placeholder\\:rf-text-zinc-400:is(.rf-dark *)::-moz-placeholder{--tw-text-opacity:1;color:rgb(161 161 170/var(--tw-text-opacity,1))}.dark\\:placeholder\\:rf-text-zinc-400:is(.rf-dark *)::placeholder{--tw-text-opacity:1;color:rgb(161 161 170/var(--tw-text-opacity,1))}.dark\\:hover\\:rf-bg-red-900\\/90:hover:is(.rf-dark *){background-color:rgba(127,29,29,.9)}.dark\\:hover\\:rf-bg-zinc-50\\/90:hover:is(.rf-dark *){background-color:hsla(0,0%,98%,.9)}.dark\\:hover\\:rf-bg-zinc-800:hover:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))}.dark\\:hover\\:rf-bg-zinc-800\\/80:hover:is(.rf-dark *){background-color:rgba(39,39,42,.8)}.dark\\:hover\\:rf-text-zinc-50:hover:is(.rf-dark *){--tw-text-opacity:1;color:rgb(250 250 250/var(--tw-text-opacity,1))}.dark\\:focus\\:rf-bg-zinc-800:focus:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))}.dark\\:focus\\:rf-text-zinc-50:focus:is(.rf-dark *){--tw-text-opacity:1;color:rgb(250 250 250/var(--tw-text-opacity,1))}.dark\\:focus-visible\\:rf-ring-zinc-300:focus-visible:is(.rf-dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(212 212 216/var(--tw-ring-opacity,1))}.dark\\:data-\\[selected\\=true\\]\\:rf-bg-zinc-800[data-selected=true]:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))}.dark\\:data-\\[state\\=active\\]\\:rf-bg-zinc-950[data-state=active]:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(9 9 11/var(--tw-bg-opacity,1))}.dark\\:data-\\[state\\=checked\\]\\:rf-bg-zinc-50[data-state=checked]:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))}.dark\\:data-\\[state\\=open\\]\\:rf-bg-zinc-800[data-state=open]:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))}.dark\\:data-\\[selected\\=true\\]\\:rf-text-zinc-50[data-selected=true]:is(.rf-dark *){--tw-text-opacity:1;color:rgb(250 250 250/var(--tw-text-opacity,1))}.dark\\:data-\\[state\\=active\\]\\:rf-text-zinc-50[data-state=active]:is(.rf-dark *){--tw-text-opacity:1;color:rgb(250 250 250/var(--tw-text-opacity,1))}.dark\\:data-\\[state\\=checked\\]\\:rf-text-zinc-900[data-state=checked]:is(.rf-dark *){--tw-text-opacity:1;color:rgb(24 24 27/var(--tw-text-opacity,1))}@media (min-width:640px){.sm\\:rf-order-1{order:1}.sm\\:rf-order-2{order:2}.sm\\:rf-mt-0{margin-top:0}.sm\\:rf-block{display:block}.sm\\:rf-inline{display:inline}.sm\\:rf-grid{display:grid}.sm\\:rf-hidden{display:none}.sm\\:rf-w-auto{width:auto}.sm\\:rf-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\\:rf-grid-cols-\\[1fr_auto\\]{grid-template-columns:1fr auto}.sm\\:rf-flex-row{flex-direction:row}.sm\\:rf-items-center{align-items:center}.sm\\:rf-justify-end{justify-content:flex-end}.sm\\:rf-gap-3{gap:.75rem}.sm\\:rf-space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.sm\\:rf-justify-self-end{justify-self:end}.sm\\:rf-rounded-lg{border-radius:var(--radius)}.sm\\:rf-px-4{padding-left:1rem;padding-right:1rem}.sm\\:rf-text-left{text-align:left}.sm\\:rf-text-right{text-align:right}.sm\\:rf-text-sm{font-size:.875rem;line-height:1.25rem}.sm\\:rf-text-xl{font-size:1.25rem;line-height:1.75rem}}@media (min-width:768px){.md\\:rf-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}.\\[\\&\\>span\\]\\:rf-line-clamp-1>span{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\\[\\&\\>svg\\]\\:rf-size-4>svg{height:1rem;width:1rem}.\\[\\&\\>svg\\]\\:rf-shrink-0>svg{flex-shrink:0}.\\[\\&\\>svg\\]\\:rf-text-red-300>svg{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.\\[\\&\\>svg\\]\\:hover\\:rf-text-red-400:hover>svg{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.\\[\\&_\\[cmdk-group-heading\\]\\]\\:rf-px-2 [cmdk-group-heading]{padding-left:.5rem;padding-right:.5rem}.\\[\\&_\\[cmdk-group-heading\\]\\]\\:rf-py-1\\.5 [cmdk-group-heading]{padding-bottom:.375rem;padding-top:.375rem}.\\[\\&_\\[cmdk-group-heading\\]\\]\\:rf-text-xs [cmdk-group-heading]{font-size:.75rem;line-height:1rem}.\\[\\&_\\[cmdk-group-heading\\]\\]\\:rf-font-medium [cmdk-group-heading]{font-weight:500}.\\[\\&_\\[cmdk-group-heading\\]\\]\\:rf-text-zinc-500 [cmdk-group-heading]{--tw-text-opacity:1;color:rgb(113 113 122/var(--tw-text-opacity,1))}.dark\\:\\[\\&_\\[cmdk-group-heading\\]\\]\\:rf-text-zinc-400 [cmdk-group-heading]:is(.rf-dark *){--tw-text-opacity:1;color:rgb(161 161 170/var(--tw-text-opacity,1))}.\\[\\&_\\[cmdk-group\\]\\:not\\(\\[hidden\\]\\)_\\~\\[cmdk-group\\]\\]\\:rf-pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:0}.\\[\\&_\\[cmdk-group\\]\\]\\:rf-px-2 [cmdk-group]{padding-left:.5rem;padding-right:.5rem}.\\[\\&_\\[cmdk-input-wrapper\\]_svg\\]\\:rf-h-5 [cmdk-input-wrapper] svg{height:1.25rem}.\\[\\&_\\[cmdk-input-wrapper\\]_svg\\]\\:rf-w-5 [cmdk-input-wrapper] svg{width:1.25rem}.\\[\\&_\\[cmdk-input\\]\\]\\:rf-h-12 [cmdk-input]{height:3rem}.\\[\\&_\\[cmdk-item\\]\\]\\:rf-px-2 [cmdk-item]{padding-left:.5rem;padding-right:.5rem}.\\[\\&_\\[cmdk-item\\]\\]\\:rf-py-3 [cmdk-item]{padding-bottom:.75rem;padding-top:.75rem}.\\[\\&_\\[cmdk-item\\]_svg\\]\\:rf-h-5 [cmdk-item] svg{height:1.25rem}.\\[\\&_\\[cmdk-item\\]_svg\\]\\:rf-w-5 [cmdk-item] svg{width:1.25rem}.\\[\\&_svg\\]\\:rf-pointer-events-none svg{pointer-events:none}.\\[\\&_svg\\]\\:rf-size-4 svg{height:1rem;width:1rem}.\\[\\&_svg\\]\\:rf-shrink-0 svg{flex-shrink:0}',nG=()=>{be.useEffect(()=>{if(document.querySelector('style[data-styles="tscircuit-runframe"]'))return;const e=document.createElement("style");e.setAttribute("data-styles","tscircuit-runframe"),e.textContent=PYn,document.head.appendChild(e)},[])},RYn=n=>{be.useEffect(()=>(n?document.body.style.overflow="hidden":document.body.style.overflow="",()=>{document.body.style.overflow=""}),[n])},d0t=n=>`hsl(${gw.indexOf(n)*137.5%360}, 70%, 50%)`,IYn=({phaseTimings:n})=>{if(!n)return null;const e=Object.values(n).reduce((t,i)=>t+i,0);return de.jsxs("div",{className:"rf-space-y-2 rf-w-full rf-px-4",children:[de.jsx("div",{className:"rf-relative rf-h-8 rf-flex rf-rounded-sm",children:gw.map(t=>{const i=n[t]||0,r=i/e*100;return de.jsx("div",{className:"rf-group/bar rf-relative rf-overflow-visible",style:{width:`${r}%`,backgroundColor:d0t(t)},children:de.jsxs("div",{className:"rf-opacity-0 group-hover/bar:rf-opacity-100 rf-transition-opacity rf-absolute rf-bottom-full rf-left-1/2 rf-transform -rf-translate-x-1/2 rf-mb-2 rf-px-2 rf-py-1 rf-text-xs rf-whitespace-nowrap rf-rounded rf-bg-gray-900 rf-text-white rf-pointer-events-none",children:[t,": ",i.toFixed(1),"ms"]})},t)})}),de.jsxs("div",{className:"rf-text-xs rf-text-gray-500",children:["Total: ",e.toFixed(2),"ms"]})]})},NYn=n=>{if(n instanceof Blob)return n;if(n==null)return"";if(typeof n=="string")return n;if(typeof n=="object")try{return JSON.stringify(n,null,2)}catch{return String(n)}return String(n)},kYn=({renderLog:n,onRerunWithDebug:e})=>{const[t,i]=be.useState("chronological"),[r,o]=be.useState(""),s=[{value:"",label:"None"},{value:"DEBUG=Group_doInitialSchematicTraceRender",label:"DEBUG=Group_doInitialSchematicTraceRender"},{value:"DEBUG=Group_doInitialSchematicLayoutMatchpack",label:"DEBUG=Group_doInitialSchematicLayoutMatchpack"},{value:"DEBUG=Group_doInitialPcbLayoutPack",label:"DEBUG=Group_doInitialPcbLayoutPack"}];if(!n)return de.jsxs("div",{className:"rf-p-4 rf-bg-gray-100 rf-rounded-md",children:[de.jsx("div",{className:"rf-mb-4",children:"No render log, make sure this tab is open when you render"}),e&&de.jsxs("div",{className:"rf-flex rf-gap-2 rf-items-center",children:[de.jsx("select",{value:r,onChange:l=>o(l.target.value),className:"rf-px-3 rf-py-1 rf-border rf-rounded rf-text-xs rf-bg-white",children:s.map(l=>de.jsx("option",{value:l.value,children:l.label},l.value))}),de.jsx(L0,{onClick:()=>e(r),size:"sm",className:"rf-text-xs",children:"Rerun Render with Debug"})]})]});const a=Object.entries(n?.phaseTimings??{});t==="chronological"?a.sort((l,u)=>gw.indexOf(l[0])-gw.indexOf(u[0])):a.sort((l,u)=>u[1]-l[1]);const c=a.reduce((l,[u,d])=>l+d,0);return de.jsxs("div",{className:"rf-bg-white",children:[de.jsxs("div",{className:"rf-flex rf-justify-between rf-items-center rf-mb-4",children:[de.jsx("div",{children:"Render Logs"}),de.jsxs("div",{className:"rf-flex rf-gap-4 rf-items-center",children:[e&&de.jsxs("div",{className:"rf-flex rf-gap-2 rf-items-center",children:[de.jsx("select",{value:r,onChange:l=>o(l.target.value),className:"rf-px-3 rf-py-1 rf-border rf-rounded rf-text-xs rf-bg-white",children:s.map(l=>de.jsx("option",{value:l.value,children:l.label},l.value))}),de.jsx(L0,{onClick:()=>e(r),size:"sm",className:"rf-text-xs",children:"Rerun Render with Debug"})]}),de.jsx("div",{className:"rf-flex rf-gap-2 rf-items-center",children:de.jsxs("select",{onChange:l=>{if(l.target.value){const u=n?.debugOutputs?.find(d=>d.name===l.target.value);if(u){const d=NYn(u.content),h=d instanceof Blob?d:new Blob([d],{type:"text/plain"}),p=URL.createObjectURL(h),f=document.createElement("a");f.href=p,f.download=`debug-${u.name}.txt`,document.body.appendChild(f),f.click(),document.body.removeChild(f),URL.revokeObjectURL(p)}l.target.value=""}},disabled:!n?.debugOutputs||n.debugOutputs.length===0,className:"rf-px-3 rf-py-1 rf-border rf-rounded rf-text-xs rf-bg-white disabled:rf-opacity-50 disabled:rf-cursor-not-allowed",children:[de.jsx("option",{value:"",children:"Download Debug Output"}),n?.debugOutputs?.map(l=>de.jsx("option",{value:l.name,children:l.name},l.name))]})}),de.jsxs("div",{className:"rf-flex rf-text-xs rf-items-center",children:[de.jsx("div",{className:"rf-mr-2",children:"Sort by:"}),de.jsxs("select",{value:t,onChange:l=>i(l.target.value),className:"rf-px-2 rf-py-1 rf-border rf-rounded rf-text-xs",children:[de.jsx("option",{value:"chronological",children:"Phase Order"}),de.jsx("option",{value:"longest",children:"Duration"})]})]})]})]}),de.jsx(IYn,{phaseTimings:n.phaseTimings}),de.jsxs("table",{className:"rf-w-full rf-text-xs",children:[de.jsx("thead",{children:de.jsxs("tr",{children:[de.jsx("th",{className:"rf-text-left rf-p-2",children:"Phase Order"}),de.jsx("th",{className:"rf-text-left rf-p-2",children:"Phase"}),de.jsx("th",{className:"rf-text-left rf-p-2",children:"Duration (ms)"})]})}),de.jsx("tbody",{children:a.map(([l,u])=>de.jsxs("tr",{children:[de.jsx("td",{className:"rf-p-2",children:gw.indexOf(l)}),de.jsx("td",{className:"rf-p-2",children:l}),de.jsx("td",{className:"rf-p-2",children:de.jsx("div",{className:"rf-w-8",children:de.jsx("div",{className:"rf-h-2 rf-rounded-sm",style:{backgroundColor:d0t(l),width:`${u/c*100}%`}})})}),de.jsx("td",{className:"rf-p-2",children:de.jsxs("div",{className:"rf-flex w-full",children:[de.jsxs("span",{className:"rf-flex-grow",children:[u,"ms"]}),de.jsxs("span",{className:"rf-text-gray-500 rf-pr-2",children:[(u/c*100).toFixed(1),"%"]})]})})]},l))})]})]})},h0t=({errorMessage:n,errorStack:e,circuitJsonErrors:t})=>{be.useEffect(()=>{if(n){const i=new Error(n);e&&(i.stack=e);try{aj.captureException(i)}catch{}}},[n,e]),be.useEffect(()=>{if(t&&t.length>0)for(const i of t){const r=new Error(i.message||"Circuit JSON Error");i.stack&&(r.stack=i.stack);try{aj.captureException(r,{error_type:i.type})}catch{}}},[t])},p0t="0.0.1116",OYn={version:p0t};function f0t(n,e){const[t,i]=be.useState(()=>{try{const r=window.localStorage.getItem(n);return r?JSON.parse(r):e}catch(r){return console.error("Error reading from localStorage:",r),e}});return be.useEffect(()=>{try{window.localStorage.setItem(n,JSON.stringify(t))}catch(r){console.error("Error writing to localStorage:",r)}},[n,t]),[t,i]}const iG=Bje()(Uje(n=>({lastRunEvalVersion:void 0,setLastRunEvalVersion:e=>{n({lastRunEvalVersion:e})}}),{name:"runframe-runner-store"})),LYn=n=>{const[e,t]=be.useState([]),[i,r]=be.useState(null),[o,s]=be.useState(""),[a,c]=f0t("eval-version-selection",null),l=iG(p=>p.setLastRunEvalVersion),u=iG(p=>p.lastRunEvalVersion);return be.useEffect(()=>{n&&fetch("https://data.jsdelivr.com/v1/package/npm/@tscircuit/eval").then(p=>p.json()).then(p=>{if(Array.isArray(p?.versions)){let f=[...p.versions];p.tags?.latest&&(r(p.tags.latest),f=f.filter(_=>_!==p.tags.latest)),t(f)}}).catch(()=>{})},[n]),be.useEffect(()=>{n&&(a?(window.TSCIRCUIT_LATEST_EVAL_VERSION=a,l(a)):i&&(window.TSCIRCUIT_LATEST_EVAL_VERSION=i,l(i)))},[n,a,i]),{versions:be.useMemo(()=>e.filter(p=>p.includes(o)).slice(0,50),[e,o]),latestVersion:i,lastRunEvalVersion:u,search:o,setSearch:s,selectVersion:p=>{c(p),s("")}}},DYn=({snippetNames:n,onSelect:e,onCancel:t,isOpen:i})=>{const[r,o]=be.useState(""),[s,a]=be.useState("");if(!i)return null;const c=n.filter(d=>d.toLowerCase().includes(s.toLowerCase())),l=s&&!n.includes(s),u=d=>{d.key==="Enter"&&(c.length===1?o(c[0]):l&&o(s))};return de.jsx("div",{className:"rf-fixed rf-inset-0 rf-bg-black rf-bg-opacity-50 rf-flex rf-items-center rf-justify-center rf-z-[100]",children:de.jsxs("div",{className:"rf-bg-white rf-rounded-lg rf-p-6 rf-w-96",children:[de.jsx("h2",{className:"rf-text-lg rf-font-semibold rf-mb-4",children:"Select Snippet"}),de.jsx("input",{type:"text",className:"rf-w-full rf-px-4 rf-py-2 rf-border rf-rounded rf-mb-4",placeholder:"Search snippets or new snippet name...",value:s,onChange:d=>a(d.target.value),onKeyDown:u}),de.jsxs("div",{className:"rf-h-60 rf-overflow-y-auto",children:[c.map(d=>de.jsx("button",{type:"button",className:`w-full text-left px-4 py-2 rounded hover:bg-gray-100 ${r===d?"bg-blue-50":""}`,onClick:()=>o(d),children:d},d)),l&&de.jsxs("button",{type:"button",className:`w-full text-left px-4 py-2 rounded hover:bg-gray-100 text-blue-500 ${r===s?"bg-blue-50":""}`,onClick:()=>o(s),children:['Create new "',s,'"']})]}),de.jsxs("div",{className:"rf-mt-4 rf-flex rf-justify-end rf-gap-2",children:[de.jsx("button",{type:"button",className:"rf-px-4 rf-py-2 rf-text-gray-600 rf-hover:text-gray-800",onClick:t,children:"Cancel"}),de.jsx("button",{type:"button",className:"rf-px-4 rf-py-2 rf-bg-blue-500 rf-text-white rf-rounded rf-hover:bg-blue-600 rf-disabled:opacity-50",onClick:()=>r&&e(r),disabled:!r,children:r===s?`Create "${r}"`:`Save to ${r}`})]})]})})},$Yn=n=>{const e=be.useRef(null),t=Jv(i=>i.recentEvents);be.useEffect(()=>{if(t.length===0)return;const i=t[0];i.event_id!==e.current&&(n(i),e.current=i.event_id)},[t,n])};var rG="Dialog",[m0t,_0t]=tT(rG),[zYn,pE]=m0t(rG),g0t=n=>{const{__scopeDialog:e,children:t,open:i,defaultOpen:r,onOpenChange:o,modal:s=!0}=n,a=be.useRef(null),c=be.useRef(null),[l,u]=MC({prop:i,defaultProp:r??!1,onChange:o,caller:rG});return de.jsx(zYn,{scope:e,triggerRef:a,contentRef:c,contentId:eb(),titleId:eb(),descriptionId:eb(),open:l,onOpenChange:u,onOpenToggle:be.useCallback(()=>u(d=>!d),[u]),modal:s,children:t})};g0t.displayName=rG;var y0t="DialogTrigger",x0t=be.forwardRef((n,e)=>{const{__scopeDialog:t,...i}=n,r=pE(y0t,t),o=Z_(e,r.triggerRef);return de.jsx(du.button,{type:"button","aria-haspopup":"dialog","aria-expanded":r.open,"aria-controls":r.contentId,"data-state":Jxe(r.open),...i,ref:o,onClick:ca(n.onClick,r.onOpenToggle)})});x0t.displayName=y0t;var Kxe="DialogPortal",[FYn,v0t]=m0t(Kxe,{forceMount:void 0}),b0t=n=>{const{__scopeDialog:e,forceMount:t,children:i,container:r}=n,o=pE(Kxe,e);return de.jsx(FYn,{scope:e,forceMount:t,children:be.Children.map(i,s=>de.jsx(QS,{present:t||o.open,children:de.jsx(PV,{asChild:!0,container:r,children:s})}))})};b0t.displayName=Kxe;var oG="DialogOverlay",w0t=be.forwardRef((n,e)=>{const t=v0t(oG,n.__scopeDialog),{forceMount:i=t.forceMount,...r}=n,o=pE(oG,n.__scopeDialog);return o.modal?de.jsx(QS,{present:i||o.open,children:de.jsx(UYn,{...r,ref:e})}):null});w0t.displayName=oG;var BYn=TC("DialogOverlay.RemoveScroll"),UYn=be.forwardRef((n,e)=>{const{__scopeDialog:t,...i}=n,r=pE(oG,t);return de.jsx($V,{as:BYn,allowPinchZoom:!0,shards:[r.contentRef],children:de.jsx(du.div,{"data-state":Jxe(r.open),...i,ref:e,style:{pointerEvents:"auto",...i.style}})})}),k4="DialogContent",S0t=be.forwardRef((n,e)=>{const t=v0t(k4,n.__scopeDialog),{forceMount:i=t.forceMount,...r}=n,o=pE(k4,n.__scopeDialog);return de.jsx(QS,{present:i||o.open,children:o.modal?de.jsx(jYn,{...r,ref:e}):de.jsx(HYn,{...r,ref:e})})});S0t.displayName=k4;var jYn=be.forwardRef((n,e)=>{const t=pE(k4,n.__scopeDialog),i=be.useRef(null),r=Z_(e,t.contentRef,i);return be.useEffect(()=>{const o=i.current;if(o)return Uye(o)},[]),de.jsx(E0t,{...n,ref:r,trapFocus:t.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:ca(n.onCloseAutoFocus,o=>{o.preventDefault(),t.triggerRef.current?.focus()}),onPointerDownOutside:ca(n.onPointerDownOutside,o=>{const s=o.detail.originalEvent,a=s.button===0&&s.ctrlKey===!0;(s.button===2||a)&&o.preventDefault()}),onFocusOutside:ca(n.onFocusOutside,o=>o.preventDefault())})}),HYn=be.forwardRef((n,e)=>{const t=pE(k4,n.__scopeDialog),i=be.useRef(!1),r=be.useRef(!1);return de.jsx(E0t,{...n,ref:e,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:o=>{n.onCloseAutoFocus?.(o),o.defaultPrevented||(i.current||t.triggerRef.current?.focus(),o.preventDefault()),i.current=!1,r.current=!1},onInteractOutside:o=>{n.onInteractOutside?.(o),o.defaultPrevented||(i.current=!0,o.detail.originalEvent.type==="pointerdown"&&(r.current=!0));const s=o.target;t.triggerRef.current?.contains(s)&&o.preventDefault(),o.detail.originalEvent.type==="focusin"&&r.current&&o.preventDefault()}})}),E0t=be.forwardRef((n,e)=>{const{__scopeDialog:t,trapFocus:i,onOpenAutoFocus:r,onCloseAutoFocus:o,...s}=n,a=pE(k4,t),c=be.useRef(null),l=Z_(e,c);return wye(),de.jsxs(de.Fragment,{children:[de.jsx(gV,{asChild:!0,loop:!0,trapped:i,onMountAutoFocus:r,onUnmountAutoFocus:o,children:de.jsx(_V,{role:"dialog",id:a.contentId,"aria-describedby":a.descriptionId,"aria-labelledby":a.titleId,"data-state":Jxe(a.open),...s,ref:l,onDismiss:()=>a.onOpenChange(!1)})}),de.jsxs(de.Fragment,{children:[de.jsx(qYn,{titleId:a.titleId}),de.jsx(YYn,{contentRef:c,descriptionId:a.descriptionId})]})]})}),Qxe="DialogTitle",T0t=be.forwardRef((n,e)=>{const{__scopeDialog:t,...i}=n,r=pE(Qxe,t);return de.jsx(du.h2,{id:r.titleId,...i,ref:e})});T0t.displayName=Qxe;var M0t="DialogDescription",A0t=be.forwardRef((n,e)=>{const{__scopeDialog:t,...i}=n,r=pE(M0t,t);return de.jsx(du.p,{id:r.descriptionId,...i,ref:e})});A0t.displayName=M0t;var C0t="DialogClose",P0t=be.forwardRef((n,e)=>{const{__scopeDialog:t,...i}=n,r=pE(C0t,t);return de.jsx(du.button,{type:"button",...i,ref:e,onClick:ca(n.onClick,()=>r.onOpenChange(!1))})});P0t.displayName=C0t;function Jxe(n){return n?"open":"closed"}var R0t="DialogTitleWarning",[VYn,I0t]=qun(R0t,{contentName:k4,titleName:Qxe,docsSlug:"dialog"}),qYn=({titleId:n})=>{const e=I0t(R0t),t=`\`${e.contentName}\` requires a \`${e.titleName}\` for the component to be accessible for screen reader users.
5635
5635
 
5636
5636
  If you want to hide the \`${e.titleName}\`, you can wrap it with our VisuallyHidden component.
5637
5637