@tscircuit/runframe 0.0.115 → 0.0.117
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.
- package/dist/standalone.min.js +1 -1
- package/package.json +3 -3
package/dist/standalone.min.js
CHANGED
|
@@ -22434,7 +22434,7 @@ void main() {
|
|
|
22434
22434
|
* Copyright 2010-2024 Three.js Authors
|
|
22435
22435
|
* SPDX-License-Identifier: MIT
|
|
22436
22436
|
*)
|
|
22437
|
-
*/const dist$2=Object.freeze(Object.defineProperty({__proto__:null,A0402,A0603,A0805,BGA,ChipBody,ExtrudedPads,FootprintPad,FootprintPlatedHole,Footprinter3d,PinRow,QFN,QFP,SOD123,SOT233P,SOT563,SOT723,SmdChipLead,Tssop},Symbol.toStringTag,{value:"Module"})),require$$19=getAugmentedNamespace(dist$2);var dist$1,hasRequiredDist$1;function requireDist$1(){if(hasRequiredDist$1)return dist$1;hasRequiredDist$1=1;var ua=Object.create,J=Object.defineProperty,la=Object.getOwnPropertyDescriptor,xa=Object.getOwnPropertyNames,Aa=Object.getPrototypeOf,ba=Object.prototype.hasOwnProperty,Sa=(Rc,Gc)=>{for(var Iu in Gc)J(Rc,Iu,{get:Gc[Iu],enumerable:!0})},Ma=(Rc,Gc,Iu,Xu)=>{if(Gc&&typeof Gc=="object"||typeof Gc=="function")for(let _0 of xa(Gc))!ba.call(Rc,_0)&&_0!==Iu&&J(Rc,_0,{get:()=>Gc[_0],enumerable:!(Xu=la(Gc,_0))||Xu.enumerable});return Rc},Ra=(Rc,Gc,Iu)=>(Iu=Rc!=null?ua(Aa(Rc)):{},Ma(!Rc||!Rc.__esModule?J(Iu,"default",{value:Rc,enumerable:!0}):Iu,Rc)),Ia=Rc=>Ma(J({},"__esModule",{value:!0}),Rc),La={};Sa(La,{CadViewer:()=>qh,useExportGltfUrl:()=>tl,useSaveGltfAs:()=>el}),dist$1=Ia(La);var Fa=requireThreeStdlib(),ka=requireReact();function el(Rc={}){const Gc=rl(Rc),Iu=(0,ka.useMemo)(()=>document.createElement("a"),[]),Xu=async G0=>{const wd=G0??Rc.filename??"";Rc.binary==null&&(Rc.binary=wd.endsWith(".glb"));const _d=await Gc(_0);Iu.download=wd,Iu.href=_d,Iu.dispatchEvent(new MouseEvent("click")),URL.revokeObjectURL(_d)};(0,ka.useEffect)(()=>()=>{Iu.remove(),_0=null},[]);let _0;return[(0,ka.useCallback)(G0=>{_0=G0},[]),Xu]}function tl(Rc={}){const Gc=rl(Rc),[Iu,Xu]=(0,ka.useState)(),[_0,B0]=(0,ka.useState)(),G0=(0,ka.useCallback)(wd=>Gc(wd).then(Xu).catch(B0),[]);return(0,ka.useEffect)(()=>()=>URL.revokeObjectURL(Iu),[Iu]),[G0,Iu,_0]}function rl(Rc={}){const Gc=(0,ka.useMemo)(()=>new Fa.GLTFExporter,[]);return Iu=>{const{promise:Xu,resolve:_0,reject:B0}=Promise.withResolvers();return Gc.parse(Iu,G0=>{const wd=Rc.binary?"gltf-binary":"gltf+json",_d=new Blob([G0 instanceof ArrayBuffer?G0:JSON.stringify(G0)],{type:`model/${wd}`});_0(URL.createObjectURL(_d))},B0,Rc),Xu}}var il=require$$2,nl=requireReact(),sl=(Rc,Gc)=>(0,nl.useMemo)(()=>{if(!Rc)return;const Iu=new il.Circuit;return Iu.add(Rc),Iu.render(),Iu.getCircuitJson()},[Rc]),ll=requireDist$5(),dl=requireReact(),gl=requireDist$5(),_l=requireTransforms(),vl=requirePrimitives(),Tl=requireColors(),Ll=requireBooleans(),Pl=requirePrimitives(),Fl=requireColors(),Ul=requireBooleans(),jl=.01,rc={copper:[.9,.6,.2],fr4Green:[5/255,163/255,46/255],fr4GreenSolderWithMask:[0/255,152/255,19/255]},sc=(Rc,Gc)=>{if(Rc.shape||(Rc.shape="circle"),Rc.shape==="circle")return(0,Fl.colorize)(rc.copper,(0,Ul.subtract)((0,Ul.union)((0,Pl.cylinder)({center:[Rc.x,Rc.y,0],radius:Rc.hole_diameter/2,height:1.2}),(0,Pl.cylinder)({center:[Rc.x,Rc.y,1.2/2],radius:Rc.outer_diameter/2,height:jl}),(0,Pl.cylinder)({center:[Rc.x,Rc.y,-1.2/2],radius:Rc.outer_diameter/2,height:jl})),(0,Pl.cylinder)({center:[Rc.x,Rc.y,0],radius:Rc.hole_diameter/2-jl,height:1.5})));if(Rc.shape==="pill"){const Iu=Rc.hole_height>Rc.hole_width,Xu=Iu?Rc.hole_height:Rc.hole_width,_0=Iu?Rc.hole_width:Rc.hole_height,B0=Iu?Rc.outer_width||Xu+.2:Rc.outer_height||_0+.2,G0=_0/2,wd=Math.abs(Xu-_0),_d=(0,Pl.cuboid)({center:Iu?[Rc.x,Rc.y,0]:[Rc.x,Rc.y,0],size:Iu?[_0,wd,1.2]:[wd,_0,1.2]}),Cd=(0,Pl.cylinder)({center:Iu?[Rc.x,Rc.y-wd/2,0]:[Rc.x-wd/2,Rc.y,0],radius:G0,height:1.2}),Jd=(0,Pl.cylinder)({center:Iu?[Rc.x,Rc.y+wd/2,0]:[Rc.x+wd/2,Rc.y,0],radius:G0,height:1.2}),pf=(0,Pl.cuboid)({center:Iu?[Rc.x,Rc.y,1.2/2]:[Rc.x,Rc.y,1.2/2],size:Iu?[B0,wd,jl]:[wd,B0,jl]}),nd=(0,Pl.cylinder)({center:Iu?[Rc.x,Rc.y-wd/2,1.2/2]:[Rc.x-wd/2,Rc.y,1.2/2],radius:B0/2,height:jl}),Su=(0,Pl.cylinder)({center:Iu?[Rc.x,Rc.y+wd/2,1.2/2]:[Rc.x+wd/2,Rc.y,1.2/2],radius:B0/2,height:jl}),Ju=(0,Pl.cuboid)({center:Iu?[Rc.x,Rc.y,-1.2/2]:[Rc.x,Rc.y,-1.2/2],size:Iu?[B0,wd,jl]:[wd,B0,jl]}),y0=(0,Pl.cylinder)({center:Iu?[Rc.x,Rc.y-wd/2,-1.2/2]:[Rc.x-wd/2,Rc.y,-1.2/2],radius:B0/2,height:jl}),j0=(0,Pl.cylinder)({center:Iu?[Rc.x,Rc.y+wd/2,-1.2/2]:[Rc.x+wd/2,Rc.y,-1.2/2],radius:B0/2,height:jl});return(0,Fl.colorize)(rc.copper,(0,Ul.subtract)((0,Ul.union)(_d,Cd,Jd,pf,nd,Su,Ju,y0,j0),(0,Ul.union)((0,Pl.cuboid)({center:[Rc.x,Rc.y,0],size:Iu?[_0-jl,wd,1.5]:[wd,_0-jl,1.5]}),(0,Pl.cylinder)({center:Iu?[Rc.x,Rc.y-wd/2,0]:[Rc.x-wd/2,Rc.y,0],radius:G0-jl,height:1.5}),(0,Pl.cylinder)({center:Iu?[Rc.x,Rc.y+wd/2,0]:[Rc.x+wd/2,Rc.y,0],radius:G0-jl,height:1.5}))))}else throw new Error(`Unsupported plated hole shape: ${Rc.shape}`)},Kl=requireExtrusions(),Gl=requireExpansions(),kl=requireExtrusions(),Wl=requirePrimitives(),tc=requireTransforms(),Zl=Rc=>{let Gc=0;for(let Xu=0;Xu<Rc.length;Xu++){const _0=(Xu+1)%Rc.length;Gc+=Rc[Xu][0]*Rc[_0][1],Gc-=Rc[_0][0]*Rc[Xu][1]}return Gc/2<=0},ac=(Rc,Gc=1.2)=>{let Iu=Rc.map(B0=>[B0.x,B0.y]);Zl(Iu)&&(Iu=Iu.reverse());const Xu=(0,Wl.polygon)({points:Iu});let _0=(0,kl.extrudeLinear)({height:Gc},Xu);return _0=(0,tc.translate)([0,0,-Gc/2],_0),_0},Cc=requireText();function xc(Rc){var _d,Cd,Jd,pf;const Gc=(0,Cc.vectorText)({height:Rc.font_size,input:Rc.text});Gc.forEach(nd=>{nd.length===29?(Gc.splice(Gc.indexOf(nd),1,nd.slice(0,15)),Gc.splice(Gc.indexOf(nd),0,nd.slice(14,29))):nd.length===17&&(Gc.splice(Gc.indexOf(nd),1,nd.slice(0,10)),Gc.splice(Gc.indexOf(nd),0,nd.slice(9,17)))});const Iu=Gc.flatMap(nd=>nd),Xu={minX:Math.min(...Iu.map(nd=>nd[0])),maxX:Math.max(...Iu.map(nd=>nd[0])),minY:Math.min(...Iu.map(nd=>nd[1])),maxY:Math.max(...Iu.map(nd=>nd[1]))},_0=(Xu.minX+Xu.maxX)/2,B0=(Xu.minY+Xu.maxY)/2;let G0=-_0,wd=-B0;return(_d=Rc.anchor_alignment)!=null&&_d.includes("right")?G0=-Xu.maxX:(Cd=Rc.anchor_alignment)!=null&&Cd.includes("left")&&(G0=-Xu.minX),(Jd=Rc.anchor_alignment)!=null&&Jd.includes("top")?wd=-Xu.maxY:(pf=Rc.anchor_alignment)!=null&&pf.includes("bottom")&&(wd=-Xu.minY),{textOutlines:Gc,xOffset:G0,yOffset:wd}}var Bc=Rc=>{const Gc=(0,gl.su)(Rc).pcb_board.list()[0];if(!Gc)throw new Error("No pcb_board found");const Iu=(0,gl.su)(Rc).pcb_plated_hole.list(),Xu=(0,gl.su)(Rc).pcb_hole.list(),_0=(0,gl.su)(Rc).pcb_smtpad.list(),B0=(0,gl.su)(Rc).pcb_trace.list(),G0=(0,gl.su)(Rc).pcb_via.list(),wd=(0,gl.su)(Rc).pcb_silkscreen_text.list();let _d;Gc.outline&&Gc.outline.length>0?_d=ac(Gc.outline,1.2):_d=(0,vl.cuboid)({size:[Gc.width,Gc.height,1.2]});const Cd=[],Jd=[],pf=[],nd=Ju=>{if(Ju.shape==="circle"){const y0=(0,vl.cylinder)({center:[Ju.x,Ju.y,0],radius:Ju.hole_diameter/2+jl});_d=(0,Ll.subtract)(_d,y0);const j0=sc(Ju);Cd.push(j0)}else if(Ju.shape==="pill"){const y0=Ju.hole_height>Ju.hole_width,j0=y0?Ju.hole_height:Ju.hole_width,hd=y0?Ju.hole_width:Ju.hole_height,qd=hd/2,df=Math.abs(j0-hd),Ad=(0,Ll.union)((0,vl.cuboid)({center:[Ju.x,Ju.y,0],size:y0?[hd,df,1.5]:[df,hd,1.5]}),(0,vl.cylinder)({center:y0?[Ju.x,Ju.y-df/2,0]:[Ju.x-df/2,Ju.y,0],radius:qd,height:1.5}),(0,vl.cylinder)({center:y0?[Ju.x,Ju.y+df/2,0]:[Ju.x+df/2,Ju.y,0],radius:qd,height:1.5}));_d=(0,Ll.subtract)(_d,Ad);const q0=sc(Ju);Cd.push(q0)}};for(const Ju of Iu)nd(Ju);for(const Ju of Xu)if(Ju.hole_shape==="round"||Ju.hole_shape==="circle"){const y0=(0,vl.cylinder)({center:[Ju.x,Ju.y,0],radius:Ju.hole_diameter/2+jl});_d=(0,Ll.subtract)(_d,y0)}for(const Ju of _0){const y0=Ju.layer==="bottom"?-1:1;if(Ju.shape==="rect"){const j0=(0,Tl.colorize)(rc.copper,(0,vl.cuboid)({center:[Ju.x,Ju.y,y0*1.2/2+y0*jl],size:[Ju.width,Ju.height,jl]}));Jd.push(j0)}else if(Ju.shape==="circle"){const j0=(0,Tl.colorize)(rc.copper,(0,vl.cylinder)({center:[Ju.x,Ju.y,y0*1.2/2+y0*jl],radius:Ju.radius,height:jl}));Jd.push(j0)}}for(const{route:Ju}of B0){if(Ju.length<2)continue;const y0=[];let j0=[Ju[0]],hd=Ju[0].route_type==="wire"?Ju[0].layer:"top";for(let qd=1;qd<Ju.length;qd++){const df=Ju[qd];df.route_type==="via"?(y0.push(j0),j0=[df]):df.route_type==="wire"&&df.layer!==hd?(y0.push(j0),hd=df.layer,j0=[df]):j0.push(df)}y0.push(j0);for(const qd of y0){if(qd.length<2)continue;const df=(0,vl.line)(qd.map(Gd=>[Gd.x,Gd.y])),Ad=qd[0].route_type==="via"?qd[0].to_layer==="top"?1:-1:qd[0].layer==="top"?1:-1;let q0=(0,_l.translate)([0,0,Ad*1.2/2],(0,Kl.extrudeLinear)({height:jl*Ad},(0,Gl.expand)({delta:.1,corners:"edge"},df)));const Bd=G0.map(Gd=>(0,vl.cylinder)({center:[Gd.x,Gd.y,0],radius:Gd.outer_diameter/2,height:5})),af=Iu.filter(Gd=>Gd.shape==="circle").map(Gd=>(0,vl.cylinder)({center:[Gd.x,Gd.y,0],radius:Gd.outer_diameter/2,height:5}));q0=(0,Ll.subtract)(q0,...Bd,...af),q0=(0,Tl.colorize)(rc.fr4GreenSolderWithMask,q0),pf.push(q0)}}for(const Ju of G0)nd({x:Ju.x,y:Ju.y,hole_diameter:Ju.hole_diameter,outer_diameter:Ju.outer_diameter,shape:"circle",layers:["top","bottom"],type:"pcb_plated_hole",pcb_plated_hole_id:""});const Su=[];for(const Ju of wd){const{textOutlines:y0,xOffset:j0,yOffset:hd}=xc(Ju);for(let qd of y0){const df=qd.map(bf=>[bf[0]+j0+Ju.anchor_position.x,bf[1]+hd+Ju.anchor_position.y]),Ad=(0,vl.line)(df),q0=Ju.font_size||.25,Bd=Math.min(Math.max(.01,q0*.1),q0*.2),af=(0,Gl.expand)({delta:Bd,corners:"round"},Ad);let Gd=(0,_l.translate)([0,0,.6],(0,Kl.extrudeLinear)({height:.012},af));Gd=(0,Tl.colorize)([256,256,256],Gd),Su.push(Gd)}}return _d=(0,Tl.colorize)(rc.fr4Green,_d),[_d,...Cd,...Jd,...pf,...Su]},Uc=requireReact(),Oc=Ra(requireStlSerializer());function jc(Rc){return new Promise((Gc,Iu)=>{const Xu=new FileReader;Xu.onload=()=>{Gc(Xu.result)},Xu.onerror=Iu,Xu.readAsDataURL(Rc)})}var Dc=Rc=>{const[Gc,Iu]=(0,Uc.useState)([]),[Xu,_0]=(0,Uc.useState)(!0);return(0,Uc.useEffect)(()=>{if(!Rc)return;(async()=>{_0(!0);const wd=(Array.isArray(Rc)?Rc:[Rc]).map(async _d=>{const Cd=Oc.default.serialize({binary:!0},[_d]),Jd=new Blob(Cd);return{stlUrl:await jc(Jd),color:_d.color}});try{const _d=await Promise.all(wd);Iu(_d)}catch(_d){console.error("Error generating STLs:",_d),Iu([])}finally{_0(!1)}})()},[Rc]),{stls:Gc,loading:Xu}},vc=require$$12,Mc=requireReact(),kc=requireThreeStdlib(),Jc=requireJsxRuntime();function fu({stlUrl:Rc,mtlUrl:Gc,color:Iu,opacity:Xu=1}){const _0=(0,vc.useLoader)(kc.STLLoader,Rc),B0=(0,Mc.useRef)();return(0,Jc.jsxs)("mesh",{ref:B0,children:[(0,Jc.jsx)("primitive",{object:_0,attach:"geometry"}),(0,Jc.jsx)("meshStandardMaterial",{color:Iu,transparent:Xu!==1,opacity:Xu})]})}var hu=require$$14,wu=require$$12,pu={name:"@tscircuit/3d-viewer",version:"0.0.100",main:"./dist/index.js",files:["dist"],scripts:{start:"bun run storybook","dev:old":"bunx --bun vite",build:"tsup ./src/index.tsx --dts --sourcemap",prepublish:"npm run build",preview:"vite preview",storybook:"storybook dev -p 6006","build-storybook":"storybook build","vercel-build":"bun run build-storybook",format:"biome format . --write","format:check":"biome format ."},dependencies:{"@jscad/modeling":"^2.12.2","@jscad/regl-renderer":"^2.6.9","@jscad/stl-serializer":"^2.1.17","@react-three/drei":"^9.115.0","@react-three/fiber":"^8.16.8","@tscircuit/core":"^0.0.273","@tscircuit/props":"^0.0.130","@tscircuit/react-fiber":"^1.1.29","@tscircuit/soup":"^0.0.69","@tscircuit/soup-util":"^0.0.26","@types/three":"^0.165.0","jscad-electronics":"^0.0.23","jscad-fiber":"^0.0.76","jscad-planner":"^0.0.11",react:"^18.3.1","react-dom":"^18.3.1","react-use-gesture":"^9.1.3",three:"^0.165.0","three-stdlib":"^2.30.3"},devDependencies:{"@biomejs/biome":"^1.8.3","@chromatic-com/storybook":"^1.5.0","@storybook/addon-essentials":"^8.4.7","@storybook/addon-interactions":"^8.4.7","@storybook/addon-links":"^8.4.7","@storybook/addon-onboarding":"^8.4.7","@storybook/blocks":"^8.4.7","@storybook/builder-vite":"^8.4.7","@storybook/react":"^8.4.7","@storybook/react-vite":"^8.4.7","@storybook/test":"^8.4.7","@types/react":"^18.3.3","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.4","circuit-json":"^0.0.116","circuit-to-svg":"^0.0.91",storybook:"^8.4.7","strip-ansi":"^7.1.0",tsup:"^8.1.0",typescript:"^5.7.2",vite:"^5.4.11","vite-tsconfig-paths":"^4.3.2"}},Eu=require$$14,Tu=require$$12,mu=requireReact(),gu=Ra(requireThree()),Gu=requireJsxRuntime();typeof window<"u"&&(window.TSCI_MAIN_CAMERA_ROTATION=new gu.Euler(0,0,0));function Ou(Rc,Gc){const Iu=new gu.Quaternion().setFromEuler(new gu.Euler(Rc.x,Rc.y,Rc.z)),Xu=new gu.Vector3(0,0,1);return Xu.applyQuaternion(Iu),Xu.multiplyScalar(Gc)}var x0=({})=>{const Rc=(0,mu.useRef)();return(0,mu.useRef)({lastRotation:new gu.Euler}),(0,Tu.useFrame)((Gc,Iu)=>{if(!Rc.current)return;const Xu=window.TSCI_MAIN_CAMERA_ROTATION,_0=Ou(Xu,2);Gc.camera.position.copy(_0),Gc.camera.lookAt(0,0,0)}),(0,Gu.jsxs)("mesh",{ref:Rc,rotation:[Math.PI/2,0,0],children:[(0,Gu.jsx)("boxGeometry",{args:[1,1,1]}),(0,Gu.jsx)("meshStandardMaterial",{color:"white"}),(0,Gu.jsx)(Eu.Text,{position:[0,0,.51],fontSize:.25,color:"black",children:"Front"}),(0,Gu.jsx)(Eu.Text,{position:[0,0,-.51],fontSize:.25,color:"black",rotation:[0,Math.PI,0],children:"Back"}),(0,Gu.jsx)(Eu.Text,{position:[.51,0,0],fontSize:.25,color:"black",rotation:[0,Math.PI/2,0],children:"Right"}),(0,Gu.jsx)(Eu.Text,{position:[-.51,0,0],fontSize:.25,color:"black",rotation:[0,-Math.PI/2,0],children:"Left"}),(0,Gu.jsx)(Eu.Text,{position:[0,.51,0],fontSize:.25,color:"black",rotation:[-Math.PI/2,0,0],children:"Top"}),(0,Gu.jsx)(Eu.Text,{position:[0,-.51,0],fontSize:.25,color:"black",rotation:[Math.PI/2,0,0],children:"Bottom"}),(0,Gu.jsx)("lineSegments",{args:[new gu.EdgesGeometry(new gu.BoxGeometry(1,1,1))],material:new gu.LineBasicMaterial({color:0,linewidth:2})})]})},I0=requireReact(),k0=require$$14,ku=requireJsxRuntime(),Du=()=>((0,wu.useFrame)(({camera:Rc})=>{window.TSCI_MAIN_CAMERA_ROTATION=Rc.rotation}),(0,ku.jsx)(ku.Fragment,{})),f0=(0,I0.forwardRef)(({children:Rc,hoveredComponent:Gc},Iu)=>(0,ku.jsxs)("div",{style:{position:"relative",width:"100%",height:"100%"},children:[(0,ku.jsx)("div",{style:{position:"absolute",top:0,left:0,width:120,height:120},children:(0,ku.jsxs)(wu.Canvas,{camera:{up:[0,0,1],position:[1,1,1]},style:{zIndex:10},children:[(0,ku.jsx)("ambientLight",{intensity:Math.PI/2}),(0,ku.jsx)(x0,{})]})}),(0,ku.jsxs)(wu.Canvas,{scene:{up:[0,0,1]},camera:{up:[0,0,1],position:[5,5,5]},children:[(0,ku.jsx)(Du,{}),(0,ku.jsx)(hu.OrbitControls,{autoRotate:!0,autoRotateSpeed:1}),(0,ku.jsx)("ambientLight",{intensity:Math.PI/2}),(0,ku.jsx)("pointLight",{position:[-10,-10,10],decay:0,intensity:Math.PI/4}),(0,ku.jsx)(hu.Grid,{rotation:[Math.PI/2,0,0],infiniteGrid:!0,cellSize:1,sectionSize:10}),(0,ku.jsx)("object3D",{ref:Iu,children:Rc}),Gc&&(0,ku.jsx)(k0.Html,{position:Gc.mousePosition,style:{fontFamily:"sans-serif",transform:"translate3d(50%, 50%, 0)",backgroundColor:"white",padding:"5px",borderRadius:"3px",pointerEvents:"none",userSelect:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none"},children:Gc.name})]}),(0,ku.jsxs)("div",{style:{position:"absolute",right:24,bottom:24,fontFamily:"sans-serif",color:"white",WebkitTextStroke:"0.5px rgba(0, 0, 0, 0.5)",fontSize:11},children:["@",pu.version]})]})),Ru=requireReact(),Wc=Ra(requireThree()),bu=requireJsxRuntime(),Mu=Rc=>(0,bu.jsx)("group",{...Rc}),vu=({children:Rc,isHovered:Gc,onHover:Iu,position:Xu})=>{const _0=(0,Ru.useRef)(null),B0=(0,Ru.useCallback)(wd=>{wd.stopPropagation();try{const _d=wd.point||(wd.intersections&&wd.intersections.length>0?wd.intersections[0].point:null)||(Xu?new Wc.Vector3(...Xu):null);_d?(_0.current=_d,Iu({mousePosition:[_d.x,_d.y,_d.z]})):Iu({})}catch(_d){console.warn("Hover event error:",_d),Iu({})}},[Xu]),G0=(0,Ru.useCallback)(wd=>{wd.stopPropagation(),_0.current=null,Iu(null)},[Iu]);return(0,bu.jsx)(Mu,{onPointerEnter:B0,onPointerMove:B0,onPointerLeave:G0,children:Rc})},n0=vu,Yu=requireReact(),u0=requireThreeStdlib();typeof window<"u"&&!window.TSCIRCUIT_OBJ_LOADER_CACHE&&(window.TSCIRCUIT_OBJ_LOADER_CACHE=new Map);function ou(Rc){const[Gc,Iu]=(0,Yu.useState)(null);return(0,Yu.useEffect)(()=>{if(!Rc)return;const Xu=window.TSCIRCUIT_OBJ_LOADER_CACHE;let _0=!1;async function B0(){var wd;try{const Cd=await(await fetch(Rc)).text(),Jd=(wd=Cd.match(/newmtl[\s\S]*?endmtl/g))==null?void 0:wd.join(`
|
|
22437
|
+
*/const dist$2=Object.freeze(Object.defineProperty({__proto__:null,A0402,A0603,A0805,BGA,ChipBody,ExtrudedPads,FootprintPad,FootprintPlatedHole,Footprinter3d,PinRow,QFN,QFP,SOD123,SOT233P,SOT563,SOT723,SmdChipLead,Tssop},Symbol.toStringTag,{value:"Module"})),require$$19=getAugmentedNamespace(dist$2);var dist$1,hasRequiredDist$1;function requireDist$1(){if(hasRequiredDist$1)return dist$1;hasRequiredDist$1=1;var ua=Object.create,J=Object.defineProperty,la=Object.getOwnPropertyDescriptor,xa=Object.getOwnPropertyNames,Aa=Object.getPrototypeOf,ba=Object.prototype.hasOwnProperty,Sa=(Rc,Gc)=>{for(var Iu in Gc)J(Rc,Iu,{get:Gc[Iu],enumerable:!0})},Ma=(Rc,Gc,Iu,Xu)=>{if(Gc&&typeof Gc=="object"||typeof Gc=="function")for(let _0 of xa(Gc))!ba.call(Rc,_0)&&_0!==Iu&&J(Rc,_0,{get:()=>Gc[_0],enumerable:!(Xu=la(Gc,_0))||Xu.enumerable});return Rc},Ra=(Rc,Gc,Iu)=>(Iu=Rc!=null?ua(Aa(Rc)):{},Ma(!Rc||!Rc.__esModule?J(Iu,"default",{value:Rc,enumerable:!0}):Iu,Rc)),Ia=Rc=>Ma(J({},"__esModule",{value:!0}),Rc),La={};Sa(La,{CadViewer:()=>qh,useExportGltfUrl:()=>tl,useSaveGltfAs:()=>el}),dist$1=Ia(La);var Fa=requireThreeStdlib(),ka=requireReact();function el(Rc={}){const Gc=rl(Rc),Iu=(0,ka.useMemo)(()=>document.createElement("a"),[]),Xu=async G0=>{const wd=G0??Rc.filename??"";Rc.binary==null&&(Rc.binary=wd.endsWith(".glb"));const _d=await Gc(_0);Iu.download=wd,Iu.href=_d,Iu.dispatchEvent(new MouseEvent("click")),URL.revokeObjectURL(_d)};(0,ka.useEffect)(()=>()=>{Iu.remove(),_0=null},[]);let _0;return[(0,ka.useCallback)(G0=>{_0=G0},[]),Xu]}function tl(Rc={}){const Gc=rl(Rc),[Iu,Xu]=(0,ka.useState)(),[_0,B0]=(0,ka.useState)(),G0=(0,ka.useCallback)(wd=>Gc(wd).then(Xu).catch(B0),[]);return(0,ka.useEffect)(()=>()=>URL.revokeObjectURL(Iu),[Iu]),[G0,Iu,_0]}function rl(Rc={}){const Gc=(0,ka.useMemo)(()=>new Fa.GLTFExporter,[]);return Iu=>{const{promise:Xu,resolve:_0,reject:B0}=Promise.withResolvers();return Gc.parse(Iu,G0=>{const wd=Rc.binary?"gltf-binary":"gltf+json",_d=new Blob([G0 instanceof ArrayBuffer?G0:JSON.stringify(G0)],{type:`model/${wd}`});_0(URL.createObjectURL(_d))},B0,Rc),Xu}}var il=require$$2,nl=requireReact(),sl=(Rc,Gc)=>(0,nl.useMemo)(()=>{if(!Rc)return;const Iu=new il.Circuit;return Iu.add(Rc),Iu.render(),Iu.getCircuitJson()},[Rc]),ll=requireDist$5(),dl=requireReact(),gl=requireDist$5(),_l=requireTransforms(),vl=requirePrimitives(),Tl=requireColors(),Ll=requireBooleans(),Pl=requirePrimitives(),Fl=requireColors(),Ul=requireBooleans(),jl=.01,rc={copper:[.9,.6,.2],fr4Green:[5/255,163/255,46/255],fr4GreenSolderWithMask:[0/255,152/255,19/255]},sc=(Rc,Gc)=>{if(Rc.shape||(Rc.shape="circle"),Rc.shape==="circle")return(0,Fl.colorize)(rc.copper,(0,Ul.subtract)((0,Ul.union)((0,Pl.cylinder)({center:[Rc.x,Rc.y,0],radius:Rc.hole_diameter/2,height:1.2}),(0,Pl.cylinder)({center:[Rc.x,Rc.y,1.2/2],radius:Rc.outer_diameter/2,height:jl}),(0,Pl.cylinder)({center:[Rc.x,Rc.y,-1.2/2],radius:Rc.outer_diameter/2,height:jl})),(0,Pl.cylinder)({center:[Rc.x,Rc.y,0],radius:Rc.hole_diameter/2-jl,height:1.5})));if(Rc.shape==="pill"){const Iu=Rc.hole_height>Rc.hole_width,Xu=Iu?Rc.hole_height:Rc.hole_width,_0=Iu?Rc.hole_width:Rc.hole_height,B0=Iu?Rc.outer_width||Xu+.2:Rc.outer_height||_0+.2,G0=_0/2,wd=Math.abs(Xu-_0),_d=(0,Pl.cuboid)({center:Iu?[Rc.x,Rc.y,0]:[Rc.x,Rc.y,0],size:Iu?[_0,wd,1.2]:[wd,_0,1.2]}),Cd=(0,Pl.cylinder)({center:Iu?[Rc.x,Rc.y-wd/2,0]:[Rc.x-wd/2,Rc.y,0],radius:G0,height:1.2}),Jd=(0,Pl.cylinder)({center:Iu?[Rc.x,Rc.y+wd/2,0]:[Rc.x+wd/2,Rc.y,0],radius:G0,height:1.2}),pf=(0,Pl.cuboid)({center:Iu?[Rc.x,Rc.y,1.2/2]:[Rc.x,Rc.y,1.2/2],size:Iu?[B0,wd,jl]:[wd,B0,jl]}),nd=(0,Pl.cylinder)({center:Iu?[Rc.x,Rc.y-wd/2,1.2/2]:[Rc.x-wd/2,Rc.y,1.2/2],radius:B0/2,height:jl}),Su=(0,Pl.cylinder)({center:Iu?[Rc.x,Rc.y+wd/2,1.2/2]:[Rc.x+wd/2,Rc.y,1.2/2],radius:B0/2,height:jl}),Ju=(0,Pl.cuboid)({center:Iu?[Rc.x,Rc.y,-1.2/2]:[Rc.x,Rc.y,-1.2/2],size:Iu?[B0,wd,jl]:[wd,B0,jl]}),y0=(0,Pl.cylinder)({center:Iu?[Rc.x,Rc.y-wd/2,-1.2/2]:[Rc.x-wd/2,Rc.y,-1.2/2],radius:B0/2,height:jl}),j0=(0,Pl.cylinder)({center:Iu?[Rc.x,Rc.y+wd/2,-1.2/2]:[Rc.x+wd/2,Rc.y,-1.2/2],radius:B0/2,height:jl});return(0,Fl.colorize)(rc.copper,(0,Ul.subtract)((0,Ul.union)(_d,Cd,Jd,pf,nd,Su,Ju,y0,j0),(0,Ul.union)((0,Pl.cuboid)({center:[Rc.x,Rc.y,0],size:Iu?[_0-jl,wd,1.5]:[wd,_0-jl,1.5]}),(0,Pl.cylinder)({center:Iu?[Rc.x,Rc.y-wd/2,0]:[Rc.x-wd/2,Rc.y,0],radius:G0-jl,height:1.5}),(0,Pl.cylinder)({center:Iu?[Rc.x,Rc.y+wd/2,0]:[Rc.x+wd/2,Rc.y,0],radius:G0-jl,height:1.5}))))}else throw new Error(`Unsupported plated hole shape: ${Rc.shape}`)},Kl=requireExtrusions(),Gl=requireExpansions(),kl=requireExtrusions(),Wl=requirePrimitives(),tc=requireTransforms(),Zl=Rc=>{let Gc=0;for(let Xu=0;Xu<Rc.length;Xu++){const _0=(Xu+1)%Rc.length;Gc+=Rc[Xu][0]*Rc[_0][1],Gc-=Rc[_0][0]*Rc[Xu][1]}return Gc/2<=0},ac=(Rc,Gc=1.2)=>{let Iu=Rc.map(B0=>[B0.x,B0.y]);Zl(Iu)&&(Iu=Iu.reverse());const Xu=(0,Wl.polygon)({points:Iu});let _0=(0,kl.extrudeLinear)({height:Gc},Xu);return _0=(0,tc.translate)([0,0,-Gc/2],_0),_0},Cc=requireText();function xc(Rc){var _d,Cd,Jd,pf;const Gc=(0,Cc.vectorText)({height:Rc.font_size,input:Rc.text});Gc.forEach(nd=>{nd.length===29?(Gc.splice(Gc.indexOf(nd),1,nd.slice(0,15)),Gc.splice(Gc.indexOf(nd),0,nd.slice(14,29))):nd.length===17&&(Gc.splice(Gc.indexOf(nd),1,nd.slice(0,10)),Gc.splice(Gc.indexOf(nd),0,nd.slice(9,17)))});const Iu=Gc.flatMap(nd=>nd),Xu={minX:Math.min(...Iu.map(nd=>nd[0])),maxX:Math.max(...Iu.map(nd=>nd[0])),minY:Math.min(...Iu.map(nd=>nd[1])),maxY:Math.max(...Iu.map(nd=>nd[1]))},_0=(Xu.minX+Xu.maxX)/2,B0=(Xu.minY+Xu.maxY)/2;let G0=-_0,wd=-B0;return(_d=Rc.anchor_alignment)!=null&&_d.includes("right")?G0=-Xu.maxX:(Cd=Rc.anchor_alignment)!=null&&Cd.includes("left")&&(G0=-Xu.minX),(Jd=Rc.anchor_alignment)!=null&&Jd.includes("top")?wd=-Xu.maxY:(pf=Rc.anchor_alignment)!=null&&pf.includes("bottom")&&(wd=-Xu.minY),{textOutlines:Gc,xOffset:G0,yOffset:wd}}var Bc=Rc=>{const Gc=(0,gl.su)(Rc).pcb_board.list()[0];if(!Gc)throw new Error("No pcb_board found");const Iu=(0,gl.su)(Rc).pcb_plated_hole.list(),Xu=(0,gl.su)(Rc).pcb_hole.list(),_0=(0,gl.su)(Rc).pcb_smtpad.list(),B0=(0,gl.su)(Rc).pcb_trace.list(),G0=(0,gl.su)(Rc).pcb_via.list(),wd=(0,gl.su)(Rc).pcb_silkscreen_text.list();let _d;Gc.outline&&Gc.outline.length>0?_d=ac(Gc.outline,1.2):_d=(0,vl.cuboid)({size:[Gc.width,Gc.height,1.2]});const Cd=[],Jd=[],pf=[],nd=Ju=>{if(Ju.shape==="circle"){const y0=(0,vl.cylinder)({center:[Ju.x,Ju.y,0],radius:Ju.hole_diameter/2+jl});_d=(0,Ll.subtract)(_d,y0);const j0=sc(Ju);Cd.push(j0)}else if(Ju.shape==="pill"){const y0=Ju.hole_height>Ju.hole_width,j0=y0?Ju.hole_height:Ju.hole_width,hd=y0?Ju.hole_width:Ju.hole_height,qd=hd/2,df=Math.abs(j0-hd),Ad=(0,Ll.union)((0,vl.cuboid)({center:[Ju.x,Ju.y,0],size:y0?[hd,df,1.5]:[df,hd,1.5]}),(0,vl.cylinder)({center:y0?[Ju.x,Ju.y-df/2,0]:[Ju.x-df/2,Ju.y,0],radius:qd,height:1.5}),(0,vl.cylinder)({center:y0?[Ju.x,Ju.y+df/2,0]:[Ju.x+df/2,Ju.y,0],radius:qd,height:1.5}));_d=(0,Ll.subtract)(_d,Ad);const q0=sc(Ju);Cd.push(q0)}};for(const Ju of Iu)nd(Ju);for(const Ju of Xu)if(Ju.hole_shape==="round"||Ju.hole_shape==="circle"){const y0=(0,vl.cylinder)({center:[Ju.x,Ju.y,0],radius:Ju.hole_diameter/2+jl});_d=(0,Ll.subtract)(_d,y0)}for(const Ju of _0){const y0=Ju.layer==="bottom"?-1:1;if(Ju.shape==="rect"){const j0=(0,Tl.colorize)(rc.copper,(0,vl.cuboid)({center:[Ju.x,Ju.y,y0*1.2/2+y0*jl],size:[Ju.width,Ju.height,jl]}));Jd.push(j0)}else if(Ju.shape==="circle"){const j0=(0,Tl.colorize)(rc.copper,(0,vl.cylinder)({center:[Ju.x,Ju.y,y0*1.2/2+y0*jl],radius:Ju.radius,height:jl}));Jd.push(j0)}}for(const{route:Ju}of B0){if(Ju.length<2)continue;const y0=[];let j0=[Ju[0]],hd=Ju[0].route_type==="wire"?Ju[0].layer:"top";for(let qd=1;qd<Ju.length;qd++){const df=Ju[qd];df.route_type==="via"?(y0.push(j0),j0=[df]):df.route_type==="wire"&&df.layer!==hd?(y0.push(j0),hd=df.layer,j0=[df]):j0.push(df)}y0.push(j0);for(const qd of y0){if(qd.length<2)continue;const df=(0,vl.line)(qd.map(Gd=>[Gd.x,Gd.y])),Ad=qd[0].route_type==="via"?qd[0].to_layer==="top"?1:-1:qd[0].layer==="top"?1:-1;let q0=(0,_l.translate)([0,0,Ad*1.2/2],(0,Kl.extrudeLinear)({height:jl*Ad},(0,Gl.expand)({delta:.1,corners:"edge"},df)));const Bd=G0.map(Gd=>(0,vl.cylinder)({center:[Gd.x,Gd.y,0],radius:Gd.outer_diameter/2,height:5})),af=Iu.filter(Gd=>Gd.shape==="circle").map(Gd=>(0,vl.cylinder)({center:[Gd.x,Gd.y,0],radius:Gd.outer_diameter/2,height:5}));q0=(0,Ll.subtract)(q0,...Bd,...af),q0=(0,Tl.colorize)(rc.fr4GreenSolderWithMask,q0),pf.push(q0)}}for(const Ju of G0)nd({x:Ju.x,y:Ju.y,hole_diameter:Ju.hole_diameter,outer_diameter:Ju.outer_diameter,shape:"circle",layers:["top","bottom"],type:"pcb_plated_hole",pcb_plated_hole_id:""});const Su=[];for(const Ju of wd){const{textOutlines:y0,xOffset:j0,yOffset:hd}=xc(Ju);for(let qd of y0){const df=qd.map(bf=>[bf[0]+j0+Ju.anchor_position.x,bf[1]+hd+Ju.anchor_position.y]),Ad=(0,vl.line)(df),q0=Ju.font_size||.25,Bd=Math.min(Math.max(.01,q0*.1),q0*.2),af=(0,Gl.expand)({delta:Bd,corners:"round"},Ad);let Gd=(0,_l.translate)([0,0,.6],(0,Kl.extrudeLinear)({height:.012},af));Gd=(0,Tl.colorize)([256,256,256],Gd),Su.push(Gd)}}return _d=(0,Tl.colorize)(rc.fr4Green,_d),[_d,...Cd,...Jd,...pf,...Su]},Uc=requireReact(),Oc=Ra(requireStlSerializer());function jc(Rc){return new Promise((Gc,Iu)=>{const Xu=new FileReader;Xu.onload=()=>{Gc(Xu.result)},Xu.onerror=Iu,Xu.readAsDataURL(Rc)})}var Dc=Rc=>{const[Gc,Iu]=(0,Uc.useState)([]),[Xu,_0]=(0,Uc.useState)(!0);return(0,Uc.useEffect)(()=>{if(!Rc)return;(async()=>{_0(!0);const wd=(Array.isArray(Rc)?Rc:[Rc]).map(async _d=>{const Cd=Oc.default.serialize({binary:!0},[_d]),Jd=new Blob(Cd);return{stlUrl:await jc(Jd),color:_d.color}});try{const _d=await Promise.all(wd);Iu(_d)}catch(_d){console.error("Error generating STLs:",_d),Iu([])}finally{_0(!1)}})()},[Rc]),{stls:Gc,loading:Xu}},vc=require$$12,Mc=requireReact(),kc=requireThreeStdlib(),Jc=requireJsxRuntime();function fu({stlUrl:Rc,mtlUrl:Gc,color:Iu,opacity:Xu=1}){const _0=(0,vc.useLoader)(kc.STLLoader,Rc),B0=(0,Mc.useRef)();return(0,Jc.jsxs)("mesh",{ref:B0,children:[(0,Jc.jsx)("primitive",{object:_0,attach:"geometry"}),(0,Jc.jsx)("meshStandardMaterial",{color:Iu,transparent:Xu!==1,opacity:Xu})]})}var hu=require$$14,wu=require$$12,pu={name:"@tscircuit/3d-viewer",version:"0.0.101",main:"./dist/index.js",files:["dist"],scripts:{start:"bun run storybook","dev:old":"bunx --bun vite",build:"tsup ./src/index.tsx --dts --sourcemap",prepublish:"npm run build",preview:"vite preview",storybook:"storybook dev -p 6006","build-storybook":"storybook build","vercel-build":"bun run build-storybook",format:"biome format . --write","format:check":"biome format ."},dependencies:{"@jscad/modeling":"^2.12.2","@jscad/regl-renderer":"^2.6.9","@jscad/stl-serializer":"^2.1.17","@react-three/drei":"^9.115.0","@react-three/fiber":"^8.16.8","@tscircuit/core":"^0.0.274","@tscircuit/props":"^0.0.130","@tscircuit/react-fiber":"^1.1.29","@tscircuit/soup":"^0.0.69","@tscircuit/soup-util":"^0.0.26","@types/three":"^0.165.0","jscad-electronics":"^0.0.23","jscad-fiber":"^0.0.76","jscad-planner":"^0.0.11",react:"^18.3.1","react-dom":"^18.3.1","react-use-gesture":"^9.1.3",three:"^0.165.0","three-stdlib":"^2.30.3"},devDependencies:{"@biomejs/biome":"^1.8.3","@chromatic-com/storybook":"^1.5.0","@storybook/addon-essentials":"^8.4.7","@storybook/addon-interactions":"^8.4.7","@storybook/addon-links":"^8.4.7","@storybook/addon-onboarding":"^8.4.7","@storybook/blocks":"^8.4.7","@storybook/builder-vite":"^8.4.7","@storybook/react":"^8.4.7","@storybook/react-vite":"^8.4.7","@storybook/test":"^8.4.7","@types/react":"^18.3.3","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.4","circuit-json":"^0.0.116","circuit-to-svg":"^0.0.91",storybook:"^8.4.7","strip-ansi":"^7.1.0",tsup:"^8.1.0",typescript:"^5.7.2",vite:"^5.4.11","vite-tsconfig-paths":"^4.3.2"}},Eu=require$$14,Tu=require$$12,mu=requireReact(),gu=Ra(requireThree()),Gu=requireJsxRuntime();typeof window<"u"&&(window.TSCI_MAIN_CAMERA_ROTATION=new gu.Euler(0,0,0));function Ou(Rc,Gc){const Iu=new gu.Quaternion().setFromEuler(new gu.Euler(Rc.x,Rc.y,Rc.z)),Xu=new gu.Vector3(0,0,1);return Xu.applyQuaternion(Iu),Xu.multiplyScalar(Gc)}var x0=({})=>{const Rc=(0,mu.useRef)();return(0,mu.useRef)({lastRotation:new gu.Euler}),(0,Tu.useFrame)((Gc,Iu)=>{if(!Rc.current)return;const Xu=window.TSCI_MAIN_CAMERA_ROTATION,_0=Ou(Xu,2);Gc.camera.position.copy(_0),Gc.camera.lookAt(0,0,0)}),(0,Gu.jsxs)("mesh",{ref:Rc,rotation:[Math.PI/2,0,0],children:[(0,Gu.jsx)("boxGeometry",{args:[1,1,1]}),(0,Gu.jsx)("meshStandardMaterial",{color:"white"}),(0,Gu.jsx)(Eu.Text,{position:[0,0,.51],fontSize:.25,color:"black",children:"Front"}),(0,Gu.jsx)(Eu.Text,{position:[0,0,-.51],fontSize:.25,color:"black",rotation:[0,Math.PI,0],children:"Back"}),(0,Gu.jsx)(Eu.Text,{position:[.51,0,0],fontSize:.25,color:"black",rotation:[0,Math.PI/2,0],children:"Right"}),(0,Gu.jsx)(Eu.Text,{position:[-.51,0,0],fontSize:.25,color:"black",rotation:[0,-Math.PI/2,0],children:"Left"}),(0,Gu.jsx)(Eu.Text,{position:[0,.51,0],fontSize:.25,color:"black",rotation:[-Math.PI/2,0,0],children:"Top"}),(0,Gu.jsx)(Eu.Text,{position:[0,-.51,0],fontSize:.25,color:"black",rotation:[Math.PI/2,0,0],children:"Bottom"}),(0,Gu.jsx)("lineSegments",{args:[new gu.EdgesGeometry(new gu.BoxGeometry(1,1,1))],material:new gu.LineBasicMaterial({color:0,linewidth:2})})]})},I0=requireReact(),k0=require$$14,ku=requireJsxRuntime(),Du=()=>((0,wu.useFrame)(({camera:Rc})=>{window.TSCI_MAIN_CAMERA_ROTATION=Rc.rotation}),(0,ku.jsx)(ku.Fragment,{})),f0=(0,I0.forwardRef)(({children:Rc,hoveredComponent:Gc},Iu)=>(0,ku.jsxs)("div",{style:{position:"relative",width:"100%",height:"100%"},children:[(0,ku.jsx)("div",{style:{position:"absolute",top:0,left:0,width:120,height:120},children:(0,ku.jsxs)(wu.Canvas,{camera:{up:[0,0,1],position:[1,1,1]},style:{zIndex:10},children:[(0,ku.jsx)("ambientLight",{intensity:Math.PI/2}),(0,ku.jsx)(x0,{})]})}),(0,ku.jsxs)(wu.Canvas,{scene:{up:[0,0,1]},camera:{up:[0,0,1],position:[5,5,5]},children:[(0,ku.jsx)(Du,{}),(0,ku.jsx)(hu.OrbitControls,{autoRotate:!0,autoRotateSpeed:1}),(0,ku.jsx)("ambientLight",{intensity:Math.PI/2}),(0,ku.jsx)("pointLight",{position:[-10,-10,10],decay:0,intensity:Math.PI/4}),(0,ku.jsx)(hu.Grid,{rotation:[Math.PI/2,0,0],infiniteGrid:!0,cellSize:1,sectionSize:10}),(0,ku.jsx)("object3D",{ref:Iu,children:Rc}),Gc&&(0,ku.jsx)(k0.Html,{position:Gc.mousePosition,style:{fontFamily:"sans-serif",transform:"translate3d(50%, 50%, 0)",backgroundColor:"white",padding:"5px",borderRadius:"3px",pointerEvents:"none",userSelect:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none"},children:Gc.name})]}),(0,ku.jsxs)("div",{style:{position:"absolute",right:24,bottom:24,fontFamily:"sans-serif",color:"white",WebkitTextStroke:"0.5px rgba(0, 0, 0, 0.5)",fontSize:11},children:["@",pu.version]})]})),Ru=requireReact(),Wc=Ra(requireThree()),bu=requireJsxRuntime(),Mu=Rc=>(0,bu.jsx)("group",{...Rc}),vu=({children:Rc,isHovered:Gc,onHover:Iu,position:Xu})=>{const _0=(0,Ru.useRef)(null),B0=(0,Ru.useCallback)(wd=>{wd.stopPropagation();try{const _d=wd.point||(wd.intersections&&wd.intersections.length>0?wd.intersections[0].point:null)||(Xu?new Wc.Vector3(...Xu):null);_d?(_0.current=_d,Iu({mousePosition:[_d.x,_d.y,_d.z]})):Iu({})}catch(_d){console.warn("Hover event error:",_d),Iu({})}},[Xu]),G0=(0,Ru.useCallback)(wd=>{wd.stopPropagation(),_0.current=null,Iu(null)},[Iu]);return(0,bu.jsx)(Mu,{onPointerEnter:B0,onPointerMove:B0,onPointerLeave:G0,children:Rc})},n0=vu,Yu=requireReact(),u0=requireThreeStdlib();typeof window<"u"&&!window.TSCIRCUIT_OBJ_LOADER_CACHE&&(window.TSCIRCUIT_OBJ_LOADER_CACHE=new Map);function ou(Rc){const[Gc,Iu]=(0,Yu.useState)(null);return(0,Yu.useEffect)(()=>{if(!Rc)return;const Xu=window.TSCIRCUIT_OBJ_LOADER_CACHE;let _0=!1;async function B0(){var wd;try{const Cd=await(await fetch(Rc)).text(),Jd=(wd=Cd.match(/newmtl[\s\S]*?endmtl/g))==null?void 0:wd.join(`
|
|
22438
22438
|
`).replace(/d 0\./g,"d 1."),pf=Cd.replace(/newmtl[\s\S]*?endmtl/g,""),nd=new u0.MTLLoader;nd.setMaterialOptions({invertTrProperty:!0});const Su=nd.parse(Jd.replace(/Kd\s+([\d.]+)\s+([\d.]+)\s+([\d.]+)/g,"Kd $2 $2 $2"),"test.mtl"),Ju=new u0.OBJLoader;return Ju.setMaterials(Su),Ju.parse(pf)}catch(_d){return _d}}function G0(){if(Xu.has(Rc)){const _d=Xu.get(Rc);return _d.result?Promise.resolve(_d.result.clone()):_d.promise.then(Cd=>Cd.clone())}const wd=B0().then(_d=>(_d instanceof Error||Xu.set(Rc,{...Xu.get(Rc),result:_d}),_d));return Xu.set(Rc,{promise:wd,result:null}),wd}return G0().then(wd=>{_0||Iu(wd)}).catch(wd=>{console.error(wd)}),()=>{_0=!0}},[Rc]),Gc}var t0=requireJsxRuntime();function a0({url:Rc,position:Gc,rotation:Iu,onHover:Xu,isHovered:_0}){const B0=ou(Rc);return B0?B0 instanceof Error?(0,t0.jsx)(n0,{isHovered:_0,onHover:Xu,children:(0,t0.jsxs)("mesh",{position:Gc,children:[(0,t0.jsx)("boxGeometry",{args:[.5,.5,.5]}),(0,t0.jsx)("meshStandardMaterial",{transparent:!0,color:"red",opacity:.5}),(0,t0.jsx)("meshBasicMaterial",{color:"red"})]})}):(0,t0.jsx)(n0,{isHovered:_0,onHover:Xu,children:(0,t0.jsx)("primitive",{rotation:Iu,position:Gc,object:B0})}):(0,t0.jsx)(n0,{isHovered:_0,onHover:Xu,children:(0,t0.jsxs)("mesh",{position:Gc,children:[(0,t0.jsx)("boxGeometry",{args:[.5,.5,.5]}),(0,t0.jsx)("meshStandardMaterial",{transparent:!0,color:"red",opacity:.25})]})})}var $0=requireDist$4(),yd=Ra(requireSrc$1()),Dd=requireDist$3(),gf=Ra(requireThree()),Rd=requireReact(),Pf=requireJsxRuntime(),Q0=({jscadPlan:Rc,positionOffset:Gc,rotationOffset:Iu,onHover:Xu,isHovered:_0})=>{const{threeGeom:B0,material:G0}=(0,Rd.useMemo)(()=>{const wd=(0,$0.executeJscadOperations)(yd.default,Rc),_d=(0,Dd.convertCSGToThreeGeom)(wd),Cd=new gf.MeshStandardMaterial({vertexColors:!0,side:gf.DoubleSide});return{threeGeom:_d,material:Cd}},[Rc]);return(0,Rd.useMemo)(()=>{if(_0){const wd=new gf.Color(G0.color.getHex());G0.emissive.copy(wd),G0.emissive.setRGB(0,0,1),G0.emissiveIntensity=.2}else G0.emissiveIntensity=0},[_0,G0]),B0?(0,Pf.jsx)(n0,{isHovered:_0,onHover:Xu,position:Gc,children:(0,Pf.jsx)("mesh",{geometry:B0,material:G0,position:Gc,rotation:Iu})}):null},ff=require$$19,Ef=requireDist$3(),Bf=requireDist$4(),zf=requireReact(),Ff=requireJsxRuntime(),{createJSCADRoot:ld}=(0,Ef.createJSCADRenderer)(Bf.jscadPlanner),nf=({positionOffset:Rc,footprint:Gc,rotationOffset:Iu,onHover:Xu,isHovered:_0})=>{const B0=(0,zf.useMemo)(()=>{if(!Gc)return null;const G0=[];return ld(G0).render((0,Ff.jsx)(ff.Footprinter3d,{footprint:Gc})),G0},[Gc]);return B0?(0,Ff.jsx)(Ff.Fragment,{children:B0.map((G0,wd)=>(0,Ff.jsx)(Q0,{positionOffset:Rc,rotationOffset:Iu,jscadPlan:G0,onHover:Xu,isHovered:_0},wd))}):null},lf=(...Rc)=>Rc,uf=requireJsxRuntime(),Mf=({cad_component:Rc,onHover:Gc=()=>{},isHovered:Iu=!1})=>{const Xu=Rc.model_obj_url??Rc.model_stl_url,_0=Rc.rotation?lf(Rc.rotation.x*Math.PI/180,Rc.rotation.y*Math.PI/180,Rc.rotation.z*Math.PI/180):void 0;if(Xu)return(0,uf.jsx)(a0,{url:Xu,position:Rc.position?[Rc.position.x,Rc.position.y,Rc.position.z]:void 0,rotation:_0,onHover:Gc,isHovered:Iu},Rc.cad_component_id);if(Rc.model_jscad)return(0,uf.jsx)(Q0,{jscadPlan:Rc.model_jscad,rotationOffset:_0,onHover:Gc,isHovered:Iu},Rc.cad_component_id);if(Rc.footprinter_string)return(0,uf.jsx)(nf,{positionOffset:Rc.position?[Rc.position.x,Rc.position.y,Rc.position.z]:void 0,rotationOffset:_0,footprint:Rc.footprinter_string,onHover:Gc,isHovered:Iu})},Qh=Ra(requireReact()),P0=class extends Qh.default.Component{constructor(Rc){super(Rc),this.state={hasError:!1,error:null}}static getDerivedStateFromError(Rc){return{hasError:!0,error:Rc}}render(){return this.state.hasError&&this.state.error?this.props.fallback({error:this.state.error}):this.props.children}},$u=require$$14,A0=requireJsxRuntime(),Vu=({error:Rc,cad_component:Gc})=>{let Iu=[0,0,0];return Gc!=null&&Gc.position&&(Iu=[Gc.position.x,Gc.position.y,Gc.position.z],Iu=Iu.map(Xu=>Number.isNaN(Xu)?0:Xu)),(0,A0.jsxs)("group",{position:Iu,children:[(0,A0.jsxs)("mesh",{renderOrder:-99999,rotation:[Math.PI/4,Math.PI/4,0],ref:Xu=>{Xu&&(Xu.renderOrder=999999)},children:[(0,A0.jsx)("boxGeometry",{args:[.5,.5,.5]}),(0,A0.jsx)("meshStandardMaterial",{depthTest:!1,transparent:!0,color:"red",opacity:.5})]}),(0,A0.jsxs)($u.Text,{scale:[.1,.1,.1],color:"red",anchorX:"center",anchorY:"middle",depthOffset:-99999,children:[Rc.toString().slice(0,50),"..."]})]})},z0=requireJsxRuntime(),qh=(0,dl.forwardRef)(({soup:Rc,children:Gc},Iu)=>{const[Xu,_0]=(0,dl.useState)(null);if(Rc??(Rc=sl(Gc)),!Rc)return null;const B0=(0,dl.useMemo)(()=>Rc.some(Cd=>Cd.type==="pcb_board")?Bc(Rc):null,[Rc]),{stls:G0,loading:wd}=Dc(B0),_d=(0,ll.su)(Rc).cad_component.list();return(0,z0.jsxs)(f0,{ref:Iu,hoveredComponent:Xu,children:[G0.map(({stlUrl:Cd,color:Jd},pf)=>(0,z0.jsx)(fu,{stlUrl:Cd,color:Jd,opacity:pf===0?.95:1},Cd)),_d.map(Cd=>(0,z0.jsx)(P0,{fallback:({error:Jd})=>(0,z0.jsx)(Vu,{cad_component:Cd,error:Jd}),children:(0,z0.jsx)(Mf,{onHover:Jd=>{var nd;if(Jd||_0(null),!Jd.mousePosition)return;const pf=(nd=(0,ll.su)(Rc).source_component.getUsing({source_component_id:Cd.source_component_id}))==null?void 0:nd.name;_0({cad_component_id:Cd.cad_component_id,name:pf??"<unknown>",mousePosition:Jd.mousePosition})},cad_component:Cd,isHovered:(Xu==null?void 0:Xu.cad_component_id)===Cd.cad_component_id},Cd.cad_component_id)},Cd.cad_component_id))]})});return dist$1}var distExports$1=requireDist$1();const c$1=ua=>typeof ua=="number"&&!isNaN(ua),d$1=ua=>typeof ua=="string",u$1=ua=>typeof ua=="function",p$1=ua=>d$1(ua)||u$1(ua)?ua:null,m$1=ua=>reactExports.isValidElement(ua)||d$1(ua)||u$1(ua)||c$1(ua);function f$1(ua,J,la){la===void 0&&(la=300);const{scrollHeight:xa,style:Aa}=ua;requestAnimationFrame(()=>{Aa.minHeight="initial",Aa.height=xa+"px",Aa.transition=`all ${la}ms`,requestAnimationFrame(()=>{Aa.height="0",Aa.padding="0",Aa.margin="0",setTimeout(J,la)})})}function g$1(ua){let{enter:J,exit:la,appendPosition:xa=!1,collapse:Aa=!0,collapseDuration:ba=300}=ua;return function(Sa){let{children:Ma,position:Ra,preventExitTransition:Ia,done:La,nodeRef:Fa,isIn:ka,playToast:el}=Sa;const tl=xa?`${J}--${Ra}`:J,rl=xa?`${la}--${Ra}`:la,il=reactExports.useRef(0);return reactExports.useLayoutEffect(()=>{const nl=Fa.current,sl=tl.split(" "),ll=dl=>{dl.target===Fa.current&&(el(),nl.removeEventListener("animationend",ll),nl.removeEventListener("animationcancel",ll),il.current===0&&dl.type!=="animationcancel"&&nl.classList.remove(...sl))};nl.classList.add(...sl),nl.addEventListener("animationend",ll),nl.addEventListener("animationcancel",ll)},[]),reactExports.useEffect(()=>{const nl=Fa.current,sl=()=>{nl.removeEventListener("animationend",sl),Aa?f$1(nl,La,ba):La()};ka||(Ia?sl():(il.current=1,nl.className+=` ${rl}`,nl.addEventListener("animationend",sl)))},[ka]),React.createElement(React.Fragment,null,Ma)}}function y$1(ua,J){return ua!=null?{content:ua.content,containerId:ua.props.containerId,id:ua.props.toastId,theme:ua.props.theme,type:ua.props.type,data:ua.props.data||{},isLoading:ua.props.isLoading,icon:ua.props.icon,status:J}:{}}const v$1=new Map;let h$1=[];const T$1=new Set,E$1=ua=>T$1.forEach(J=>J(ua)),b$1=()=>v$1.size>0;function I$1(ua,J){var la;if(J)return!((la=v$1.get(J))==null||!la.isToastActive(ua));let xa=!1;return v$1.forEach(Aa=>{Aa.isToastActive(ua)&&(xa=!0)}),xa}function _$1(ua,J){m$1(ua)&&(b$1()||h$1.push({content:ua,options:J}),v$1.forEach(la=>{la.buildToast(ua,J)}))}function C$1(ua,J){v$1.forEach(la=>{J!=null&&J!=null&&J.containerId?(J==null?void 0:J.containerId)===la.id&&la.toggle(ua,J==null?void 0:J.id):la.toggle(ua,J==null?void 0:J.id)})}function L$1(ua){const{subscribe:J,getSnapshot:la,setProps:xa}=reactExports.useRef(function(ba){const Sa=ba.containerId||1;return{subscribe(Ma){const Ra=function(La,Fa,ka){let el=1,tl=0,rl=[],il=[],nl=[],sl=Fa;const ll=new Map,dl=new Set,gl=()=>{nl=Array.from(ll.values()),dl.forEach(Tl=>Tl())},_l=Tl=>{il=Tl==null?[]:il.filter(Ll=>Ll!==Tl),gl()},vl=Tl=>{const{toastId:Ll,onOpen:Pl,updateId:Fl,children:Ul}=Tl.props,jl=Fl==null;Tl.staleId&&ll.delete(Tl.staleId),ll.set(Ll,Tl),il=[...il,Tl.props.toastId].filter(rc=>rc!==Tl.staleId),gl(),ka(y$1(Tl,jl?"added":"updated")),jl&&u$1(Pl)&&Pl(reactExports.isValidElement(Ul)&&Ul.props)};return{id:La,props:sl,observe:Tl=>(dl.add(Tl),()=>dl.delete(Tl)),toggle:(Tl,Ll)=>{ll.forEach(Pl=>{Ll!=null&&Ll!==Pl.props.toastId||u$1(Pl.toggle)&&Pl.toggle(Tl)})},removeToast:_l,toasts:ll,clearQueue:()=>{tl-=rl.length,rl=[]},buildToast:(Tl,Ll)=>{if((ac=>{let{containerId:Cc,toastId:xc,updateId:Bc}=ac;const Uc=Cc?Cc!==La:La!==1,Oc=ll.has(xc)&&Bc==null;return Uc||Oc})(Ll))return;const{toastId:Pl,updateId:Fl,data:Ul,staleId:jl,delay:rc}=Ll,sc=()=>{_l(Pl)},Kl=Fl==null;Kl&&tl++;const Gl={...sl,style:sl.toastStyle,key:el++,...Object.fromEntries(Object.entries(Ll).filter(ac=>{let[Cc,xc]=ac;return xc!=null})),toastId:Pl,updateId:Fl,data:Ul,closeToast:sc,isIn:!1,className:p$1(Ll.className||sl.toastClassName),bodyClassName:p$1(Ll.bodyClassName||sl.bodyClassName),progressClassName:p$1(Ll.progressClassName||sl.progressClassName),autoClose:!Ll.isLoading&&(kl=Ll.autoClose,Wl=sl.autoClose,kl===!1||c$1(kl)&&kl>0?kl:Wl),deleteToast(){const ac=ll.get(Pl),{onClose:Cc,children:xc}=ac.props;u$1(Cc)&&Cc(reactExports.isValidElement(xc)&&xc.props),ka(y$1(ac,"removed")),ll.delete(Pl),tl--,tl<0&&(tl=0),rl.length>0?vl(rl.shift()):gl()}};var kl,Wl;Gl.closeButton=sl.closeButton,Ll.closeButton===!1||m$1(Ll.closeButton)?Gl.closeButton=Ll.closeButton:Ll.closeButton===!0&&(Gl.closeButton=!m$1(sl.closeButton)||sl.closeButton);let tc=Tl;reactExports.isValidElement(Tl)&&!d$1(Tl.type)?tc=reactExports.cloneElement(Tl,{closeToast:sc,toastProps:Gl,data:Ul}):u$1(Tl)&&(tc=Tl({closeToast:sc,toastProps:Gl,data:Ul}));const Zl={content:tc,props:Gl,staleId:jl};sl.limit&&sl.limit>0&&tl>sl.limit&&Kl?rl.push(Zl):c$1(rc)?setTimeout(()=>{vl(Zl)},rc):vl(Zl)},setProps(Tl){sl=Tl},setToggle:(Tl,Ll)=>{ll.get(Tl).toggle=Ll},isToastActive:Tl=>il.some(Ll=>Ll===Tl),getSnapshot:()=>nl}}(Sa,ba,E$1);v$1.set(Sa,Ra);const Ia=Ra.observe(Ma);return h$1.forEach(La=>_$1(La.content,La.options)),h$1=[],()=>{Ia(),v$1.delete(Sa)}},setProps(Ma){var Ra;(Ra=v$1.get(Sa))==null||Ra.setProps(Ma)},getSnapshot(){var Ma;return(Ma=v$1.get(Sa))==null?void 0:Ma.getSnapshot()}}}(ua)).current;xa(ua);const Aa=reactExports.useSyncExternalStore(J,la,la);return{getToastToRender:function(ba){if(!Aa)return[];const Sa=new Map;return ua.newestOnTop&&Aa.reverse(),Aa.forEach(Ma=>{const{position:Ra}=Ma.props;Sa.has(Ra)||Sa.set(Ra,[]),Sa.get(Ra).push(Ma)}),Array.from(Sa,Ma=>ba(Ma[0],Ma[1]))},isToastActive:I$1,count:Aa==null?void 0:Aa.length}}function N$1(ua){const[J,la]=reactExports.useState(!1),[xa,Aa]=reactExports.useState(!1),ba=reactExports.useRef(null),Sa=reactExports.useRef({start:0,delta:0,removalDistance:0,canCloseOnClick:!0,canDrag:!1,didMove:!1}).current,{autoClose:Ma,pauseOnHover:Ra,closeToast:Ia,onClick:La,closeOnClick:Fa}=ua;var ka,el;function tl(){la(!0)}function rl(){la(!1)}function il(ll){const dl=ba.current;Sa.canDrag&&dl&&(Sa.didMove=!0,J&&rl(),Sa.delta=ua.draggableDirection==="x"?ll.clientX-Sa.start:ll.clientY-Sa.start,Sa.start!==ll.clientX&&(Sa.canCloseOnClick=!1),dl.style.transform=`translate3d(${ua.draggableDirection==="x"?`${Sa.delta}px, var(--y)`:`0, calc(${Sa.delta}px + var(--y))`},0)`,dl.style.opacity=""+(1-Math.abs(Sa.delta/Sa.removalDistance)))}function nl(){document.removeEventListener("pointermove",il),document.removeEventListener("pointerup",nl);const ll=ba.current;if(Sa.canDrag&&Sa.didMove&&ll){if(Sa.canDrag=!1,Math.abs(Sa.delta)>Sa.removalDistance)return Aa(!0),ua.closeToast(),void ua.collapseAll();ll.style.transition="transform 0.2s, opacity 0.2s",ll.style.removeProperty("transform"),ll.style.removeProperty("opacity")}}(el=v$1.get((ka={id:ua.toastId,containerId:ua.containerId,fn:la}).containerId||1))==null||el.setToggle(ka.id,ka.fn),reactExports.useEffect(()=>{if(ua.pauseOnFocusLoss)return document.hasFocus()||rl(),window.addEventListener("focus",tl),window.addEventListener("blur",rl),()=>{window.removeEventListener("focus",tl),window.removeEventListener("blur",rl)}},[ua.pauseOnFocusLoss]);const sl={onPointerDown:function(ll){if(ua.draggable===!0||ua.draggable===ll.pointerType){Sa.didMove=!1,document.addEventListener("pointermove",il),document.addEventListener("pointerup",nl);const dl=ba.current;Sa.canCloseOnClick=!0,Sa.canDrag=!0,dl.style.transition="none",ua.draggableDirection==="x"?(Sa.start=ll.clientX,Sa.removalDistance=dl.offsetWidth*(ua.draggablePercent/100)):(Sa.start=ll.clientY,Sa.removalDistance=dl.offsetHeight*(ua.draggablePercent===80?1.5*ua.draggablePercent:ua.draggablePercent)/100)}},onPointerUp:function(ll){const{top:dl,bottom:gl,left:_l,right:vl}=ba.current.getBoundingClientRect();ll.nativeEvent.type!=="touchend"&&ua.pauseOnHover&&ll.clientX>=_l&&ll.clientX<=vl&&ll.clientY>=dl&&ll.clientY<=gl?rl():tl()}};return Ma&&Ra&&(sl.onMouseEnter=rl,ua.stacked||(sl.onMouseLeave=tl)),Fa&&(sl.onClick=ll=>{La&&La(ll),Sa.canCloseOnClick&&Ia()}),{playToast:tl,pauseToast:rl,isRunning:J,preventExitTransition:xa,toastRef:ba,eventHandlers:sl}}function $$1(ua){let{delay:J,isRunning:la,closeToast:xa,type:Aa="default",hide:ba,className:Sa,style:Ma,controlledProgress:Ra,progress:Ia,rtl:La,isIn:Fa,theme:ka}=ua;const el=ba||Ra&&Ia===0,tl={...Ma,animationDuration:`${J}ms`,animationPlayState:la?"running":"paused"};Ra&&(tl.transform=`scaleX(${Ia})`);const rl=clsx("Toastify__progress-bar",Ra?"Toastify__progress-bar--controlled":"Toastify__progress-bar--animated",`Toastify__progress-bar-theme--${ka}`,`Toastify__progress-bar--${Aa}`,{"Toastify__progress-bar--rtl":La}),il=u$1(Sa)?Sa({rtl:La,type:Aa,defaultClassName:rl}):clsx(rl,Sa),nl={[Ra&&Ia>=1?"onTransitionEnd":"onAnimationEnd"]:Ra&&Ia<1?null:()=>{Fa&&xa()}};return React.createElement("div",{className:"Toastify__progress-bar--wrp","data-hidden":el},React.createElement("div",{className:`Toastify__progress-bar--bg Toastify__progress-bar-theme--${ka} Toastify__progress-bar--${Aa}`}),React.createElement("div",{role:"progressbar","aria-hidden":el?"true":"false","aria-label":"notification timer",className:il,style:tl,...nl}))}let w$1=1;const k$1=()=>""+w$1++;function P$1(ua){return ua&&(d$1(ua.toastId)||c$1(ua.toastId))?ua.toastId:k$1()}function M$1(ua,J){return _$1(ua,J),J.toastId}function x$1(ua,J){return{...J,type:J&&J.type||ua,toastId:P$1(J)}}function A$1(ua){return(J,la)=>M$1(J,x$1(ua,la))}function B$1(ua,J){return M$1(ua,x$1("default",J))}B$1.loading=(ua,J)=>M$1(ua,x$1("default",{isLoading:!0,autoClose:!1,closeOnClick:!1,closeButton:!1,draggable:!1,...J})),B$1.promise=function(ua,J,la){let xa,{pending:Aa,error:ba,success:Sa}=J;Aa&&(xa=d$1(Aa)?B$1.loading(Aa,la):B$1.loading(Aa.render,{...la,...Aa}));const Ma={isLoading:null,autoClose:null,closeOnClick:null,closeButton:null,draggable:null},Ra=(La,Fa,ka)=>{if(Fa==null)return void B$1.dismiss(xa);const el={type:La,...Ma,...la,data:ka},tl=d$1(Fa)?{render:Fa}:Fa;return xa?B$1.update(xa,{...el,...tl}):B$1(tl.render,{...el,...tl}),ka},Ia=u$1(ua)?ua():ua;return Ia.then(La=>Ra("success",Sa,La)).catch(La=>Ra("error",ba,La)),Ia},B$1.success=A$1("success"),B$1.info=A$1("info"),B$1.error=A$1("error"),B$1.warning=A$1("warning"),B$1.warn=B$1.warning,B$1.dark=(ua,J)=>M$1(ua,x$1("default",{theme:"dark",...J})),B$1.dismiss=function(ua){(function(J){var la;if(b$1()){if(J==null||d$1(la=J)||c$1(la))v$1.forEach(xa=>{xa.removeToast(J)});else if(J&&("containerId"in J||"id"in J)){const xa=v$1.get(J.containerId);xa?xa.removeToast(J.id):v$1.forEach(Aa=>{Aa.removeToast(J.id)})}}else h$1=h$1.filter(xa=>J!=null&&xa.options.toastId!==J)})(ua)},B$1.clearWaitingQueue=function(ua){ua===void 0&&(ua={}),v$1.forEach(J=>{!J.props.limit||ua.containerId&&J.id!==ua.containerId||J.clearQueue()})},B$1.isActive=I$1,B$1.update=function(ua,J){J===void 0&&(J={});const la=((xa,Aa)=>{var ba;let{containerId:Sa}=Aa;return(ba=v$1.get(Sa||1))==null?void 0:ba.toasts.get(xa)})(ua,J);if(la){const{props:xa,content:Aa}=la,ba={delay:100,...xa,...J,toastId:J.toastId||ua,updateId:k$1()};ba.toastId!==ua&&(ba.staleId=ua);const Sa=ba.render||Aa;delete ba.render,M$1(Sa,ba)}},B$1.done=ua=>{B$1.update(ua,{progress:1})},B$1.onChange=function(ua){return T$1.add(ua),()=>{T$1.delete(ua)}},B$1.play=ua=>C$1(!0,ua),B$1.pause=ua=>C$1(!1,ua);const O$1=typeof window<"u"?reactExports.useLayoutEffect:reactExports.useEffect,D$1=ua=>{let{theme:J,type:la,isLoading:xa,...Aa}=ua;return React.createElement("svg",{viewBox:"0 0 24 24",width:"100%",height:"100%",fill:J==="colored"?"currentColor":`var(--toastify-icon-color-${la})`,...Aa})},z$2={info:function(ua){return React.createElement(D$1,{...ua},React.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(ua){return React.createElement(D$1,{...ua},React.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(ua){return React.createElement(D$1,{...ua},React.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(ua){return React.createElement(D$1,{...ua},React.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 React.createElement("div",{className:"Toastify__spinner"})}},R$1=ua=>{const{isRunning:J,preventExitTransition:la,toastRef:xa,eventHandlers:Aa,playToast:ba}=N$1(ua),{closeButton:Sa,children:Ma,autoClose:Ra,onClick:Ia,type:La,hideProgressBar:Fa,closeToast:ka,transition:el,position:tl,className:rl,style:il,bodyClassName:nl,bodyStyle:sl,progressClassName:ll,progressStyle:dl,updateId:gl,role:_l,progress:vl,rtl:Tl,toastId:Ll,deleteToast:Pl,isIn:Fl,isLoading:Ul,closeOnClick:jl,theme:rc}=ua,sc=clsx("Toastify__toast",`Toastify__toast-theme--${rc}`,`Toastify__toast--${La}`,{"Toastify__toast--rtl":Tl},{"Toastify__toast--close-on-click":jl}),Kl=u$1(rl)?rl({rtl:Tl,position:tl,type:La,defaultClassName:sc}):clsx(sc,rl),Gl=function(Zl){let{theme:ac,type:Cc,isLoading:xc,icon:Bc}=Zl,Uc=null;const Oc={theme:ac,type:Cc};return Bc===!1||(u$1(Bc)?Uc=Bc({...Oc,isLoading:xc}):reactExports.isValidElement(Bc)?Uc=reactExports.cloneElement(Bc,Oc):xc?Uc=z$2.spinner():(jc=>jc in z$2)(Cc)&&(Uc=z$2[Cc](Oc))),Uc}(ua),kl=!!vl||!Ra,Wl={closeToast:ka,type:La,theme:rc};let tc=null;return Sa===!1||(tc=u$1(Sa)?Sa(Wl):reactExports.isValidElement(Sa)?reactExports.cloneElement(Sa,Wl):function(Zl){let{closeToast:ac,theme:Cc,ariaLabel:xc="close"}=Zl;return React.createElement("button",{className:`Toastify__close-button Toastify__close-button--${Cc}`,type:"button",onClick:Bc=>{Bc.stopPropagation(),ac(Bc)},"aria-label":xc},React.createElement("svg",{"aria-hidden":"true",viewBox:"0 0 14 16"},React.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"})))}(Wl)),React.createElement(el,{isIn:Fl,done:Pl,position:tl,preventExitTransition:la,nodeRef:xa,playToast:ba},React.createElement("div",{id:Ll,onClick:Ia,"data-in":Fl,className:Kl,...Aa,style:il,ref:xa},React.createElement("div",{...Fl&&{role:_l},className:u$1(nl)?nl({type:La}):clsx("Toastify__toast-body",nl),style:sl},Gl!=null&&React.createElement("div",{className:clsx("Toastify__toast-icon",{"Toastify--animate-icon Toastify__zoom-enter":!Ul})},Gl),React.createElement("div",null,Ma)),tc,React.createElement($$1,{...gl&&!kl?{key:`pb-${gl}`}:{},rtl:Tl,theme:rc,delay:Ra,isRunning:J,isIn:Fl,closeToast:ka,hide:Fa,type:La,style:dl,className:ll,controlledProgress:kl,progress:vl||0})))},S$1=function(ua,J){return J===void 0&&(J=!1),{enter:`Toastify--animate Toastify__${ua}-enter`,exit:`Toastify--animate Toastify__${ua}-exit`,appendPosition:J}},H$1=g$1(S$1("bounce",!0));g$1(S$1("slide",!0)),g$1(S$1("zoom")),g$1(S$1("flip"));const q$1={position:"top-right",transition:H$1,autoClose:5e3,closeButton:!0,pauseOnHover:!0,pauseOnFocusLoss:!0,draggable:"touch",draggablePercent:80,draggableDirection:"x",role:"alert",theme:"light"};function Q$1(ua){let J={...q$1,...ua};const la=ua.stacked,[xa,Aa]=reactExports.useState(!0),ba=reactExports.useRef(null),{getToastToRender:Sa,isToastActive:Ma,count:Ra}=L$1(J),{className:Ia,style:La,rtl:Fa,containerId:ka}=J;function el(rl){const il=clsx("Toastify__toast-container",`Toastify__toast-container--${rl}`,{"Toastify__toast-container--rtl":Fa});return u$1(Ia)?Ia({position:rl,rtl:Fa,defaultClassName:il}):clsx(il,p$1(Ia))}function tl(){la&&(Aa(!0),B$1.play())}return O$1(()=>{if(la){var rl;const il=ba.current.querySelectorAll('[data-in="true"]'),nl=12,sl=(rl=J.position)==null?void 0:rl.includes("top");let ll=0,dl=0;Array.from(il).reverse().forEach((gl,_l)=>{const vl=gl;vl.classList.add("Toastify__toast--stacked"),_l>0&&(vl.dataset.collapsed=`${xa}`),vl.dataset.pos||(vl.dataset.pos=sl?"top":"bot");const Tl=ll*(xa?.2:1)+(xa?0:nl*_l);vl.style.setProperty("--y",`${sl?Tl:-1*Tl}px`),vl.style.setProperty("--g",`${nl}`),vl.style.setProperty("--s",""+(1-(xa?dl:0))),ll+=vl.offsetHeight,dl+=.025})}},[xa,Ra,la]),React.createElement("div",{ref:ba,className:"Toastify",id:ka,onMouseEnter:()=>{la&&(Aa(!1),B$1.pause())},onMouseLeave:tl},Sa((rl,il)=>{const nl=il.length?{...La}:{...La,pointerEvents:"none"};return React.createElement("div",{className:el(rl),style:nl,key:`container-${rl}`},il.map(sl=>{let{content:ll,props:dl}=sl;return React.createElement(R$1,{...dl,stacked:la,collapseAll:tl,isIn:Ma(dl.toastId,dl.containerId),style:dl.style,key:`toast-${dl.key}`},ll)}))}))}function injectStyle(){var ua=':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)}}',J=document.createElement("style");J.innerText=ua,document.head.appendChild(J)}var SuperGrid_1,hasRequiredSuperGrid;function requireSuperGrid(){if(hasRequiredSuperGrid)return SuperGrid_1;hasRequiredSuperGrid=1;var ua=Object.defineProperty,J=Object.getOwnPropertyDescriptor,la=Object.getOwnPropertyNames,xa=Object.prototype.hasOwnProperty,Aa=(il,nl)=>{for(var sl in nl)ua(il,sl,{get:nl[sl],enumerable:!0})},ba=(il,nl,sl,ll)=>{if(nl&&typeof nl=="object"||typeof nl=="function")for(let dl of la(nl))!xa.call(il,dl)&&dl!==sl&&ua(il,dl,{get:()=>nl[dl],enumerable:!(ll=J(nl,dl))||ll.enumerable});return il},Sa=il=>ba(ua({},"__esModule",{value:!0}),il),Ma={};Aa(Ma,{SuperGrid:()=>rl,toMMSI:()=>tl,toMeterSI:()=>el}),SuperGrid_1=Sa(Ma);var Ra=requireReact(),Ia=require$$0,La=requireJsxRuntime(),Fa=(il,nl,sl)=>{const ll=[];if(nl<il)for(let dl=il;dl>=nl;dl-=Math.abs(sl))ll.push(dl);else for(let dl=il;dl<=nl;dl+=Math.abs(sl))ll.push(dl);return ll};function ka(il,nl){return{x:Math.round(nl.x/il)*il,y:Math.round(nl.y/il)*il}}function el(il,nl=1){return il<0?"-"+el(-il):il<1e-6?"0m":il>1e3?Math.floor(il/1e3)+"km":il>1&&nl>1?Math.round(il)+"m":il>1&&nl<=1?il.toFixed(Math.ceil(-Math.log10(nl)))+"m":il<1&&nl>=1/1e3?Math.round(il*1e3)+"mm":il<1&&nl<1/1e3?(il*1e3).toFixed(Math.ceil(-Math.log10(nl*1e3)))+"mm":""}function tl(il,nl=1){return el(il/1e3,nl/1e3)}var rl=il=>{var nl;const sl=(0,Ra.useRef)(null),[ll,dl]=(0,Ra.useState)({x:0,y:0}),{majorColor:gl="rgba(0,0,0,0.2)",minorColor:_l="rgba(0,0,0,0.1)",textColor:vl=(nl=il.majorColor)!=null?nl:"rgba(0,0,0,0.5)",width:Tl,height:Ll,screenSpaceCellSize:Pl=200,stringifyCoord:Fl=(sc,Kl,Gl)=>`${el(sc,Gl)}, ${el(Kl,Gl)}`}=il,Ul=Math.ceil(Tl/Pl)+2,jl=Math.ceil(Ll/Pl)+2;(0,Ra.useEffect)(()=>{if(!sl.current)return;const sc=sl.current.getContext("2d");if(!sc)return;const Kl=Pl/10**Math.floor(Math.log10(il.transform.a)),Gl=il.transform.d<0?-1:1,Wl=Pl/10**Math.log10(il.transform.a)/Kl;function tc(vc,Mc,kc){const Jc=vc;let fu,hu,wu;for(fu=Mc.x;fu<=kc.x;fu+=Jc)hu=(0,Ia.applyToPoint)(il.transform,{x:fu,y:Mc.y}),wu=(0,Ia.applyToPoint)(il.transform,{x:fu,y:kc.y}),sc.beginPath(),sc.moveTo(hu.x,hu.y),sc.lineTo(wu.x,wu.y),sc.stroke();const pu=Fa(Mc.y,kc.y,Jc*Gl);for(const Eu of pu)hu=(0,Ia.applyToPoint)(il.transform,{x:Mc.x,y:Eu}),wu=(0,Ia.applyToPoint)(il.transform,{x:kc.x,y:Eu}),sc.beginPath(),sc.moveTo(hu.x,hu.y),sc.lineTo(wu.x,wu.y),sc.stroke()}function Zl(vc,Mc,kc){const Jc=vc;let fu;for(fu=Mc.x;fu<=kc.x;fu+=Jc)for(const hu of Fa(Mc.y,kc.y,Jc*Gl)){const wu=(0,Ia.applyToPoint)(il.transform,{x:fu,y:hu});sc.fillStyle=vl,sc.font="12px sans-serif",sc.fillText(Fl(fu,hu,vc),wu.x+2,wu.y-2)}}sc.clearRect(0,0,Tl,Ll);const ac=(0,Ia.applyToPoint)((0,Ia.inverse)(il.transform),{x:0,y:0}),Cc={x:Math.floor((ac.x-Kl)/Kl)*Kl,y:Math.floor((ac.y-Kl)/Kl+(Gl==-1?2:0))*Kl},xc={x:Cc.x+Kl*Ul,y:Cc.y+Kl*jl*Gl},Uc=Kl*5,Oc={x:Math.floor((ac.x-Uc)/Uc)*Uc,y:Math.floor((ac.y-Uc)/Uc+(Gl==-1?2:0))*Uc},jc={x:Oc.x+Uc*Ul,y:Oc.y+Uc*jl*Gl};sc.globalAlpha=1,sc.strokeStyle=gl,tc(Kl,Cc,xc),Zl(Uc,Oc,jc),sc.globalAlpha=1-Wl,tc(Uc/10,Oc,jc),sc.globalAlpha=1-Wl,sc.strokeStyle=_l,tc(Kl/10,Cc,xc),sc.globalAlpha=Math.max(((1-Wl)*10-5)/5,0),Zl(Uc/10,Oc,jc),sc.globalAlpha=1;const Dc=(0,Ia.applyToPoint)(il.transform,ll);sc.font="12px sans-serif",sc.fillStyle=vl,sc.fillText(Fl(ll.x,ll.y,Kl),Dc.x+2,Dc.y-2),sc.strokeStyle=gl,sc.strokeRect(Dc.x-5,Dc.y-5,10,10)},[sl,il.transform,ll,Tl,Ll]);const rc=sc=>{if(!sl.current)return;const Kl=Pl/10/10**Math.floor(Math.log10(il.transform.a)),Gl=sl.current.getBoundingClientRect(),kl=(0,Ia.applyToPoint)((0,Ia.inverse)(il.transform),{x:sc.clientX-Gl.left,y:sc.clientY-Gl.top}),Wl=ka(Kl,kl);dl(Wl)};return(0,La.jsx)("canvas",{onMouseUp:sc=>{sc.button===1&&rc(sc)},onDoubleClick:rc,ref:sl,width:il.width,height:il.height})};return SuperGrid_1}var SuperGridExports=requireSuperGrid(),colorExports=requireColor();const color=getDefaultExportFromCjs$1(colorExports);function pointToSegmentDistance(ua,J,la){const xa=(la.x-J.x)**2+(la.y-J.y)**2;if(xa===0)return distance$1(ua,J);let Aa=((ua.x-J.x)*(la.x-J.x)+(ua.y-J.y)*(la.y-J.y))/xa;Aa=Math.max(0,Math.min(1,Aa));const ba={x:J.x+Aa*(la.x-J.x),y:J.y+Aa*(la.y-J.y)};return distance$1(ua,ba)}function distance$1(ua,J){const la=ua.x-J.x,xa=ua.y-J.y;return Math.sqrt(la*la+xa*xa)}var isDevelopment$1=!1;function sheetForTag(ua){if(ua.sheet)return ua.sheet;for(var J=0;J<document.styleSheets.length;J++)if(document.styleSheets[J].ownerNode===ua)return document.styleSheets[J]}function createStyleElement(ua){var J=document.createElement("style");return J.setAttribute("data-emotion",ua.key),ua.nonce!==void 0&&J.setAttribute("nonce",ua.nonce),J.appendChild(document.createTextNode("")),J.setAttribute("data-s",""),J}var StyleSheet=function(){function ua(la){var xa=this;this._insertTag=function(Aa){var ba;xa.tags.length===0?xa.insertionPoint?ba=xa.insertionPoint.nextSibling:xa.prepend?ba=xa.container.firstChild:ba=xa.before:ba=xa.tags[xa.tags.length-1].nextSibling,xa.container.insertBefore(Aa,ba),xa.tags.push(Aa)},this.isSpeedy=la.speedy===void 0?!isDevelopment$1:la.speedy,this.tags=[],this.ctr=0,this.nonce=la.nonce,this.key=la.key,this.container=la.container,this.prepend=la.prepend,this.insertionPoint=la.insertionPoint,this.before=null}var J=ua.prototype;return J.hydrate=function(xa){xa.forEach(this._insertTag)},J.insert=function(xa){this.ctr%(this.isSpeedy?65e3:1)===0&&this._insertTag(createStyleElement(this));var Aa=this.tags[this.tags.length-1];if(this.isSpeedy){var ba=sheetForTag(Aa);try{ba.insertRule(xa,ba.cssRules.length)}catch{}}else Aa.appendChild(document.createTextNode(xa));this.ctr++},J.flush=function(){this.tags.forEach(function(xa){var Aa;return(Aa=xa.parentNode)==null?void 0:Aa.removeChild(xa)}),this.tags=[],this.ctr=0},ua}(),MS="-ms-",MOZ="-moz-",WEBKIT="-webkit-",COMMENT="comm",RULESET="rule",DECLARATION="decl",IMPORT="@import",KEYFRAMES="@keyframes",LAYER="@layer",abs=Math.abs,from=String.fromCharCode,assign=Object.assign;function hash(ua,J){return charat(ua,0)^45?(((J<<2^charat(ua,0))<<2^charat(ua,1))<<2^charat(ua,2))<<2^charat(ua,3):0}function trim(ua){return ua.trim()}function match(ua,J){return(ua=J.exec(ua))?ua[0]:ua}function replace(ua,J,la){return ua.replace(J,la)}function indexof(ua,J){return ua.indexOf(J)}function charat(ua,J){return ua.charCodeAt(J)|0}function substr(ua,J,la){return ua.slice(J,la)}function strlen(ua){return ua.length}function sizeof$1(ua){return ua.length}function append(ua,J){return J.push(ua),ua}function combine(ua,J){return ua.map(J).join("")}var line=1,column=1,length=0,position$1=0,character=0,characters="";function node(ua,J,la,xa,Aa,ba,Sa){return{value:ua,root:J,parent:la,type:xa,props:Aa,children:ba,line,column,length:Sa,return:""}}function copy(ua,J){return assign(node("",null,null,"",null,null,0),ua,{length:-ua.length},J)}function char(){return character}function prev(){return character=position$1>0?charat(characters,--position$1):0,column--,character===10&&(column=1,line--),character}function next(){return character=position$1<length?charat(characters,position$1++):0,column++,character===10&&(column=1,line++),character}function peek(){return charat(characters,position$1)}function caret(){return position$1}function slice(ua,J){return substr(characters,ua,J)}function token(ua){switch(ua){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 alloc(ua){return line=column=1,length=strlen(characters=ua),position$1=0,[]}function dealloc(ua){return characters="",ua}function delimit(ua){return trim(slice(position$1-1,delimiter(ua===91?ua+2:ua===40?ua+1:ua)))}function whitespace(ua){for(;(character=peek())&&character<33;)next();return token(ua)>2||token(character)>3?"":" "}function escaping(ua,J){for(;--J&&next()&&!(character<48||character>102||character>57&&character<65||character>70&&character<97););return slice(ua,caret()+(J<6&&peek()==32&&next()==32))}function delimiter(ua){for(;next();)switch(character){case ua:return position$1;case 34:case 39:ua!==34&&ua!==39&&delimiter(character);break;case 40:ua===41&&delimiter(ua);break;case 92:next();break}return position$1}function commenter(ua,J){for(;next()&&ua+character!==57;)if(ua+character===84&&peek()===47)break;return"/*"+slice(J,position$1-1)+"*"+from(ua===47?ua:next())}function identifier(ua){for(;!token(peek());)next();return slice(ua,position$1)}function compile(ua){return dealloc(parse$1("",null,null,null,[""],ua=alloc(ua),0,[0],ua))}function parse$1(ua,J,la,xa,Aa,ba,Sa,Ma,Ra){for(var Ia=0,La=0,Fa=Sa,ka=0,el=0,tl=0,rl=1,il=1,nl=1,sl=0,ll="",dl=Aa,gl=ba,_l=xa,vl=ll;il;)switch(tl=sl,sl=next()){case 40:if(tl!=108&&charat(vl,Fa-1)==58){indexof(vl+=replace(delimit(sl),"&","&\f"),"&\f")!=-1&&(nl=-1);break}case 34:case 39:case 91:vl+=delimit(sl);break;case 9:case 10:case 13:case 32:vl+=whitespace(tl);break;case 92:vl+=escaping(caret()-1,7);continue;case 47:switch(peek()){case 42:case 47:append(comment(commenter(next(),caret()),J,la),Ra);break;default:vl+="/"}break;case 123*rl:Ma[Ia++]=strlen(vl)*nl;case 125*rl:case 59:case 0:switch(sl){case 0:case 125:il=0;case 59+La:nl==-1&&(vl=replace(vl,/\f/g,"")),el>0&&strlen(vl)-Fa&&append(el>32?declaration(vl+";",xa,la,Fa-1):declaration(replace(vl," ","")+";",xa,la,Fa-2),Ra);break;case 59:vl+=";";default:if(append(_l=ruleset(vl,J,la,Ia,La,Aa,Ma,ll,dl=[],gl=[],Fa),ba),sl===123)if(La===0)parse$1(vl,J,_l,_l,dl,ba,Fa,Ma,gl);else switch(ka===99&&charat(vl,3)===110?100:ka){case 100:case 108:case 109:case 115:parse$1(ua,_l,_l,xa&&append(ruleset(ua,_l,_l,0,0,Aa,Ma,ll,Aa,dl=[],Fa),gl),Aa,gl,Fa,Ma,xa?dl:gl);break;default:parse$1(vl,_l,_l,_l,[""],gl,0,Ma,gl)}}Ia=La=el=0,rl=nl=1,ll=vl="",Fa=Sa;break;case 58:Fa=1+strlen(vl),el=tl;default:if(rl<1){if(sl==123)--rl;else if(sl==125&&rl++==0&&prev()==125)continue}switch(vl+=from(sl),sl*rl){case 38:nl=La>0?1:(vl+="\f",-1);break;case 44:Ma[Ia++]=(strlen(vl)-1)*nl,nl=1;break;case 64:peek()===45&&(vl+=delimit(next())),ka=peek(),La=Fa=strlen(ll=vl+=identifier(caret())),sl++;break;case 45:tl===45&&strlen(vl)==2&&(rl=0)}}return ba}function ruleset(ua,J,la,xa,Aa,ba,Sa,Ma,Ra,Ia,La){for(var Fa=Aa-1,ka=Aa===0?ba:[""],el=sizeof$1(ka),tl=0,rl=0,il=0;tl<xa;++tl)for(var nl=0,sl=substr(ua,Fa+1,Fa=abs(rl=Sa[tl])),ll=ua;nl<el;++nl)(ll=trim(rl>0?ka[nl]+" "+sl:replace(sl,/&\f/g,ka[nl])))&&(Ra[il++]=ll);return node(ua,J,la,Aa===0?RULESET:Ma,Ra,Ia,La)}function comment(ua,J,la){return node(ua,J,la,COMMENT,from(char()),substr(ua,2,-2),0)}function declaration(ua,J,la,xa){return node(ua,J,la,DECLARATION,substr(ua,0,xa),substr(ua,xa+1,-1),xa)}function serialize(ua,J){for(var la="",xa=sizeof$1(ua),Aa=0;Aa<xa;Aa++)la+=J(ua[Aa],Aa,ua,J)||"";return la}function stringify$1(ua,J,la,xa){switch(ua.type){case LAYER:if(ua.children.length)break;case IMPORT:case DECLARATION:return ua.return=ua.return||ua.value;case COMMENT:return"";case KEYFRAMES:return ua.return=ua.value+"{"+serialize(ua.children,xa)+"}";case RULESET:ua.value=ua.props.join(",")}return strlen(la=serialize(ua.children,xa))?ua.return=ua.value+"{"+la+"}":""}function middleware(ua){var J=sizeof$1(ua);return function(la,xa,Aa,ba){for(var Sa="",Ma=0;Ma<J;Ma++)Sa+=ua[Ma](la,xa,Aa,ba)||"";return Sa}}function rulesheet(ua){return function(J){J.root||(J=J.return)&&ua(J)}}function memoize(ua){var J=Object.create(null);return function(la){return J[la]===void 0&&(J[la]=ua(la)),J[la]}}var identifierWithPointTracking=function ua(J,la,xa){for(var Aa=0,ba=0;Aa=ba,ba=peek(),Aa===38&&ba===12&&(la[xa]=1),!token(ba);)next();return slice(J,position$1)},toRules=function ua(J,la){var xa=-1,Aa=44;do switch(token(Aa)){case 0:Aa===38&&peek()===12&&(la[xa]=1),J[xa]+=identifierWithPointTracking(position$1-1,la,xa);break;case 2:J[xa]+=delimit(Aa);break;case 4:if(Aa===44){J[++xa]=peek()===58?"&\f":"",la[xa]=J[xa].length;break}default:J[xa]+=from(Aa)}while(Aa=next());return J},getRules=function ua(J,la){return dealloc(toRules(alloc(J),la))},fixedElements=new WeakMap,compat=function ua(J){if(!(J.type!=="rule"||!J.parent||J.length<1)){for(var la=J.value,xa=J.parent,Aa=J.column===xa.column&&J.line===xa.line;xa.type!=="rule";)if(xa=xa.parent,!xa)return;if(!(J.props.length===1&&la.charCodeAt(0)!==58&&!fixedElements.get(xa))&&!Aa){fixedElements.set(J,!0);for(var ba=[],Sa=getRules(la,ba),Ma=xa.props,Ra=0,Ia=0;Ra<Sa.length;Ra++)for(var La=0;La<Ma.length;La++,Ia++)J.props[Ia]=ba[Ra]?Sa[Ra].replace(/&\f/g,Ma[La]):Ma[La]+" "+Sa[Ra]}}},removeLabel=function ua(J){if(J.type==="decl"){var la=J.value;la.charCodeAt(0)===108&&la.charCodeAt(2)===98&&(J.return="",J.value="")}};function prefix(ua,J){switch(hash(ua,J)){case 5103:return WEBKIT+"print-"+ua+ua;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 WEBKIT+ua+ua;case 5349:case 4246:case 4810:case 6968:case 2756:return WEBKIT+ua+MOZ+ua+MS+ua+ua;case 6828:case 4268:return WEBKIT+ua+MS+ua+ua;case 6165:return WEBKIT+ua+MS+"flex-"+ua+ua;case 5187:return WEBKIT+ua+replace(ua,/(\w+).+(:[^]+)/,WEBKIT+"box-$1$2"+MS+"flex-$1$2")+ua;case 5443:return WEBKIT+ua+MS+"flex-item-"+replace(ua,/flex-|-self/,"")+ua;case 4675:return WEBKIT+ua+MS+"flex-line-pack"+replace(ua,/align-content|flex-|-self/,"")+ua;case 5548:return WEBKIT+ua+MS+replace(ua,"shrink","negative")+ua;case 5292:return WEBKIT+ua+MS+replace(ua,"basis","preferred-size")+ua;case 6060:return WEBKIT+"box-"+replace(ua,"-grow","")+WEBKIT+ua+MS+replace(ua,"grow","positive")+ua;case 4554:return WEBKIT+replace(ua,/([^-])(transform)/g,"$1"+WEBKIT+"$2")+ua;case 6187:return replace(replace(replace(ua,/(zoom-|grab)/,WEBKIT+"$1"),/(image-set)/,WEBKIT+"$1"),ua,"")+ua;case 5495:case 3959:return replace(ua,/(image-set\([^]*)/,WEBKIT+"$1$`$1");case 4968:return replace(replace(ua,/(.+:)(flex-)?(.*)/,WEBKIT+"box-pack:$3"+MS+"flex-pack:$3"),/s.+-b[^;]+/,"justify")+WEBKIT+ua+ua;case 4095:case 3583:case 4068:case 2532:return replace(ua,/(.+)-inline(.+)/,WEBKIT+"$1$2")+ua;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(strlen(ua)-1-J>6)switch(charat(ua,J+1)){case 109:if(charat(ua,J+4)!==45)break;case 102:return replace(ua,/(.+:)(.+)-([^]+)/,"$1"+WEBKIT+"$2-$3$1"+MOZ+(charat(ua,J+3)==108?"$3":"$2-$3"))+ua;case 115:return~indexof(ua,"stretch")?prefix(replace(ua,"stretch","fill-available"),J)+ua:ua}break;case 4949:if(charat(ua,J+1)!==115)break;case 6444:switch(charat(ua,strlen(ua)-3-(~indexof(ua,"!important")&&10))){case 107:return replace(ua,":",":"+WEBKIT)+ua;case 101:return replace(ua,/(.+:)([^;!]+)(;|!.+)?/,"$1"+WEBKIT+(charat(ua,14)===45?"inline-":"")+"box$3$1"+WEBKIT+"$2$3$1"+MS+"$2box$3")+ua}break;case 5936:switch(charat(ua,J+11)){case 114:return WEBKIT+ua+MS+replace(ua,/[svh]\w+-[tblr]{2}/,"tb")+ua;case 108:return WEBKIT+ua+MS+replace(ua,/[svh]\w+-[tblr]{2}/,"tb-rl")+ua;case 45:return WEBKIT+ua+MS+replace(ua,/[svh]\w+-[tblr]{2}/,"lr")+ua}return WEBKIT+ua+MS+ua+ua}return ua}var prefixer=function ua(J,la,xa,Aa){if(J.length>-1&&!J.return)switch(J.type){case DECLARATION:J.return=prefix(J.value,J.length);break;case KEYFRAMES:return serialize([copy(J,{value:replace(J.value,"@","@"+WEBKIT)})],Aa);case RULESET:if(J.length)return combine(J.props,function(ba){switch(match(ba,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return serialize([copy(J,{props:[replace(ba,/:(read-\w+)/,":"+MOZ+"$1")]})],Aa);case"::placeholder":return serialize([copy(J,{props:[replace(ba,/:(plac\w+)/,":"+WEBKIT+"input-$1")]}),copy(J,{props:[replace(ba,/:(plac\w+)/,":"+MOZ+"$1")]}),copy(J,{props:[replace(ba,/:(plac\w+)/,MS+"input-$1")]})],Aa)}return""})}},defaultStylisPlugins=[prefixer],createCache=function ua(J){var la=J.key;if(la==="css"){var xa=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(xa,function(rl){var il=rl.getAttribute("data-emotion");il.indexOf(" ")!==-1&&(document.head.appendChild(rl),rl.setAttribute("data-s",""))})}var Aa=J.stylisPlugins||defaultStylisPlugins,ba={},Sa,Ma=[];Sa=J.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+la+' "]'),function(rl){for(var il=rl.getAttribute("data-emotion").split(" "),nl=1;nl<il.length;nl++)ba[il[nl]]=!0;Ma.push(rl)});var Ra,Ia=[compat,removeLabel];{var La,Fa=[stringify$1,rulesheet(function(rl){La.insert(rl)})],ka=middleware(Ia.concat(Aa,Fa)),el=function(il){return serialize(compile(il),ka)};Ra=function(il,nl,sl,ll){La=sl,el(il?il+"{"+nl.styles+"}":nl.styles),ll&&(tl.inserted[nl.name]=!0)}}var tl={key:la,sheet:new StyleSheet({key:la,container:Sa,nonce:J.nonce,speedy:J.speedy,prepend:J.prepend,insertionPoint:J.insertionPoint}),nonce:J.nonce,inserted:ba,registered:{},insert:Ra};return tl.sheet.hydrate(Ma),tl};function murmur2(ua){for(var J=0,la,xa=0,Aa=ua.length;Aa>=4;++xa,Aa-=4)la=ua.charCodeAt(xa)&255|(ua.charCodeAt(++xa)&255)<<8|(ua.charCodeAt(++xa)&255)<<16|(ua.charCodeAt(++xa)&255)<<24,la=(la&65535)*1540483477+((la>>>16)*59797<<16),la^=la>>>24,J=(la&65535)*1540483477+((la>>>16)*59797<<16)^(J&65535)*1540483477+((J>>>16)*59797<<16);switch(Aa){case 3:J^=(ua.charCodeAt(xa+2)&255)<<16;case 2:J^=(ua.charCodeAt(xa+1)&255)<<8;case 1:J^=ua.charCodeAt(xa)&255,J=(J&65535)*1540483477+((J>>>16)*59797<<16)}return J^=J>>>13,J=(J&65535)*1540483477+((J>>>16)*59797<<16),((J^J>>>15)>>>0).toString(36)}var unitlessKeys={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},isDevelopment=!1,hyphenateRegex=/[A-Z]|^ms/g,animationRegex=/_EMO_([^_]+?)_([^]*?)_EMO_/g,isCustomProperty=function ua(J){return J.charCodeAt(1)===45},isProcessableValue=function ua(J){return J!=null&&typeof J!="boolean"},processStyleName=memoize(function(ua){return isCustomProperty(ua)?ua:ua.replace(hyphenateRegex,"-$&").toLowerCase()}),processStyleValue=function ua(J,la){switch(J){case"animation":case"animationName":if(typeof la=="string")return la.replace(animationRegex,function(xa,Aa,ba){return cursor={name:Aa,styles:ba,next:cursor},Aa})}return unitlessKeys[J]!==1&&!isCustomProperty(J)&&typeof la=="number"&&la!==0?la+"px":la},noComponentSelectorMessage="Component selectors can only be used in conjunction with @emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware compiler transform.";function handleInterpolation(ua,J,la){if(la==null)return"";var xa=la;if(xa.__emotion_styles!==void 0)return xa;switch(typeof la){case"boolean":return"";case"object":{var Aa=la;if(Aa.anim===1)return cursor={name:Aa.name,styles:Aa.styles,next:cursor},Aa.name;var ba=la;if(ba.styles!==void 0){var Sa=ba.next;if(Sa!==void 0)for(;Sa!==void 0;)cursor={name:Sa.name,styles:Sa.styles,next:cursor},Sa=Sa.next;var Ma=ba.styles+";";return Ma}return createStringFromObject(ua,J,la)}}var Ra=la;if(J==null)return Ra;var Ia=J[Ra];return Ia!==void 0?Ia:Ra}function createStringFromObject(ua,J,la){var xa="";if(Array.isArray(la))for(var Aa=0;Aa<la.length;Aa++)xa+=handleInterpolation(ua,J,la[Aa])+";";else for(var ba in la){var Sa=la[ba];if(typeof Sa!="object"){var Ma=Sa;J!=null&&J[Ma]!==void 0?xa+=ba+"{"+J[Ma]+"}":isProcessableValue(Ma)&&(xa+=processStyleName(ba)+":"+processStyleValue(ba,Ma)+";")}else{if(ba==="NO_COMPONENT_SELECTOR"&&isDevelopment)throw new Error(noComponentSelectorMessage);if(Array.isArray(Sa)&&typeof Sa[0]=="string"&&(J==null||J[Sa[0]]===void 0))for(var Ra=0;Ra<Sa.length;Ra++)isProcessableValue(Sa[Ra])&&(xa+=processStyleName(ba)+":"+processStyleValue(ba,Sa[Ra])+";");else{var Ia=handleInterpolation(ua,J,Sa);switch(ba){case"animation":case"animationName":{xa+=processStyleName(ba)+":"+Ia+";";break}default:xa+=ba+"{"+Ia+"}"}}}}return xa}var labelPattern=/label:\s*([^\s;{]+)\s*(;|$)/g,cursor;function serializeStyles(ua,J,la){if(ua.length===1&&typeof ua[0]=="object"&&ua[0]!==null&&ua[0].styles!==void 0)return ua[0];var xa=!0,Aa="";cursor=void 0;var ba=ua[0];if(ba==null||ba.raw===void 0)xa=!1,Aa+=handleInterpolation(la,J,ba);else{var Sa=ba;Aa+=Sa[0]}for(var Ma=1;Ma<ua.length;Ma++)if(Aa+=handleInterpolation(la,J,ua[Ma]),xa){var Ra=ba;Aa+=Ra[Ma]}labelPattern.lastIndex=0;for(var Ia="",La;(La=labelPattern.exec(Aa))!==null;)Ia+="-"+La[1];var Fa=murmur2(Aa)+Ia;return{name:Fa,styles:Aa,next:cursor}}function getRegisteredStyles(ua,J,la){var xa="";return la.split(" ").forEach(function(Aa){ua[Aa]!==void 0?J.push(ua[Aa]+";"):Aa&&(xa+=Aa+" ")}),xa}var registerStyles=function ua(J,la,xa){var Aa=J.key+"-"+la.name;J.registered[Aa]===void 0&&(J.registered[Aa]=la.styles)},insertStyles=function ua(J,la,xa){registerStyles(J,la);var Aa=J.key+"-"+la.name;if(J.inserted[la.name]===void 0){var ba=la;do J.insert(la===ba?"."+Aa:"",ba,J.sheet,!0),ba=ba.next;while(ba!==void 0)}};function insertWithoutScoping(ua,J){if(ua.inserted[J.name]===void 0)return ua.insert("",J,ua.sheet,!0)}function merge(ua,J,la){var xa=[],Aa=getRegisteredStyles(ua,xa,la);return xa.length<2?la:Aa+J(xa)}var createEmotion=function ua(J){var la=createCache(J);la.sheet.speedy=function(Ma){this.isSpeedy=Ma},la.compat=!0;var xa=function(){for(var Ra=arguments.length,Ia=new Array(Ra),La=0;La<Ra;La++)Ia[La]=arguments[La];var Fa=serializeStyles(Ia,la.registered,void 0);return insertStyles(la,Fa),la.key+"-"+Fa.name},Aa=function(){for(var Ra=arguments.length,Ia=new Array(Ra),La=0;La<Ra;La++)Ia[La]=arguments[La];var Fa=serializeStyles(Ia,la.registered),ka="animation-"+Fa.name;return insertWithoutScoping(la,{name:Fa.name,styles:"@keyframes "+ka+"{"+Fa.styles+"}"}),ka},ba=function(){for(var Ra=arguments.length,Ia=new Array(Ra),La=0;La<Ra;La++)Ia[La]=arguments[La];var Fa=serializeStyles(Ia,la.registered);insertWithoutScoping(la,Fa)},Sa=function(){for(var Ra=arguments.length,Ia=new Array(Ra),La=0;La<Ra;La++)Ia[La]=arguments[La];return merge(la.registered,xa,classnames(Ia))};return{css:xa,cx:Sa,injectGlobal:ba,keyframes:Aa,hydrate:function(Ra){Ra.forEach(function(Ia){la.inserted[Ia]=!0})},flush:function(){la.registered={},la.inserted={},la.sheet.flush()},sheet:la.sheet,cache:la,getRegisteredStyles:getRegisteredStyles.bind(null,la.registered),merge:merge.bind(null,la.registered,xa)}},classnames=function ua(J){for(var la="",xa=0;xa<J.length;xa++){var Aa=J[xa];if(Aa!=null){var ba=void 0;switch(typeof Aa){case"boolean":break;case"object":{if(Array.isArray(Aa))ba=ua(Aa);else{ba="";for(var Sa in Aa)Aa[Sa]&&Sa&&(ba&&(ba+=" "),ba+=Sa)}break}default:ba=Aa}ba&&(la&&(la+=" "),la+=ba)}}return la},_createEmotion=createEmotion({key:"css"}),css=_createEmotion.css;function findConnectedNetworks(ua){const J=new Map;let la=0;function xa(Aa){for(const[,Sa]of J)if(Sa.has(Aa))return Sa;const ba=new Set;return J.set(`connectivity_net${la++}`,ba),ba}for(const Aa of ua){let ba=null;for(const Sa of Aa){if(!ba)ba=xa(Sa);else if(!ba.has(Sa)){const Ma=xa(Sa);if(Ma!==ba){for(const Ra of Ma)ba.add(Ra);J.delete(Array.from(J.entries()).find(([,Ra])=>Ra===Ma)[0])}}ba.add(Sa)}}return Object.fromEntries(Array.from(J.entries()).map(([Aa,ba])=>[Aa,Array.from(ba)]))}var ConnectivityMap=class{constructor(ua){Wp(this,"netMap");Wp(this,"idToNetMap");this.netMap=ua,this.idToNetMap={};for(const[J,la]of Object.entries(ua))for(const xa of la)this.idToNetMap[xa]=J}addConnections(ua){for(const J of ua){const la=new Set;for(const Aa of J){const ba=this.idToNetMap[Aa];ba&&la.add(ba)}let xa;if(la.size===0)xa=`connectivity_net${Object.keys(this.netMap).length}`,this.netMap[xa]=[];else if(la.size===1)xa=la.values().next().value??`connectivity_net${Object.keys(this.netMap).length}`;else{xa=la.values().next().value??`connectivity_net${Object.keys(this.netMap).length}`;for(const Aa of la)if(Aa!==xa){this.netMap[xa].push(...this.netMap[Aa]),this.netMap[Aa]=this.netMap[xa];for(const ba of this.netMap[xa])this.idToNetMap[ba]=xa}}for(const Aa of J)this.netMap[xa].includes(Aa)||this.netMap[xa].push(Aa),this.idToNetMap[Aa]=xa}}getIdsConnectedToNet(ua){return this.netMap[ua]||[]}getNetConnectedToId(ua){return this.idToNetMap[ua]}areIdsConnected(ua,J){const la=this.getNetConnectedToId(ua),xa=this.getNetConnectedToId(J);return la===xa||xa===ua||xa===ua}areAllIdsConnected(ua){const J=this.getNetConnectedToId(ua[0]);for(const la of ua){const xa=this.getNetConnectedToId(la);if(xa===void 0||xa!==J)return!1}return!0}},getFullConnectivityMapFromCircuitJson=ua=>{const J=[];for(const xa of ua)if(xa.type==="source_trace")J.push([xa.source_trace_id,...xa.connected_source_port_ids??[],...xa.connected_source_net_ids??[]].filter(Boolean));else if(xa.type==="pcb_port"){const{pcb_port_id:Aa,source_port_id:ba}=xa;ba&&Aa&&J.push([ba,Aa])}else if(xa.type==="pcb_smtpad"){const{pcb_smtpad_id:Aa,pcb_port_id:ba}=xa;ba&&Aa&&J.push([Aa,ba])}else if(xa.type==="pcb_plated_hole"){const{pcb_plated_hole_id:Aa,pcb_port_id:ba}=xa;ba&&Aa&&J.push([Aa,ba])}else if(xa.type==="pcb_trace"){const{pcb_trace_id:Aa,source_trace_id:ba}=xa;ba&&Aa&&J.push([Aa,ba])}const la=findConnectedNetworks(J);return new ConnectivityMap(la)},__defProp=Object.defineProperty,__export=(ua,J)=>{for(var la in J)__defProp(ua,la,{get:J[la],enumerable:!0})},dist_exports={};__export(dist_exports,{all_layers:()=>all_layers,any_circuit_element:()=>any_circuit_element,any_soup_element:()=>any_soup_element,any_source_component:()=>any_source_component,battery_capacity:()=>battery_capacity,cad_component:()=>cad_component,capacitance:()=>capacitance,current:()=>current,distance:()=>distance,frequency:()=>frequency,getZodPrefixedIdWithDefault:()=>getZodPrefixedIdWithDefault,inductance:()=>inductance,layer_ref:()=>layer_ref,layer_string:()=>layer_string,length:()=>length2,pcb_board:()=>pcb_board,pcb_component:()=>pcb_component,pcb_fabrication_note_path:()=>pcb_fabrication_note_path,pcb_fabrication_note_text:()=>pcb_fabrication_note_text,pcb_group:()=>pcb_group,pcb_hole:()=>pcb_hole,pcb_hole_circle_or_square_shape:()=>pcb_hole_circle_or_square_shape,pcb_hole_oval_shape:()=>pcb_hole_oval_shape,pcb_keepout:()=>pcb_keepout,pcb_manual_edit_conflict_error:()=>pcb_manual_edit_conflict_error,pcb_missing_footprint_error:()=>pcb_missing_footprint_error,pcb_placement_error:()=>pcb_placement_error,pcb_plated_hole:()=>pcb_plated_hole,pcb_port:()=>pcb_port,pcb_port_not_matched_error:()=>pcb_port_not_matched_error,pcb_route_hint:()=>pcb_route_hint,pcb_route_hints:()=>pcb_route_hints,pcb_silkscreen_circle:()=>pcb_silkscreen_circle,pcb_silkscreen_line:()=>pcb_silkscreen_line,pcb_silkscreen_oval:()=>pcb_silkscreen_oval,pcb_silkscreen_path:()=>pcb_silkscreen_path,pcb_silkscreen_rect:()=>pcb_silkscreen_rect,pcb_silkscreen_text:()=>pcb_silkscreen_text,pcb_smtpad:()=>pcb_smtpad,pcb_solder_paste:()=>pcb_solder_paste,pcb_text:()=>pcb_text,pcb_trace:()=>pcb_trace,pcb_trace_error:()=>pcb_trace_error,pcb_trace_hint:()=>pcb_trace_hint,pcb_trace_route_point:()=>pcb_trace_route_point,pcb_trace_route_point_via:()=>pcb_trace_route_point_via,pcb_trace_route_point_wire:()=>pcb_trace_route_point_wire,pcb_via:()=>pcb_via,point:()=>point,point3:()=>point3,port_arrangement:()=>port_arrangement,position:()=>position,position3:()=>position3,resistance:()=>resistance,rotation:()=>rotation,route_hint_point:()=>route_hint_point,schematic_box:()=>schematic_box,schematic_component:()=>schematic_component,schematic_component_port_arrangement_by_sides:()=>schematic_component_port_arrangement_by_sides,schematic_component_port_arrangement_by_size:()=>schematic_component_port_arrangement_by_size,schematic_debug_line:()=>schematic_debug_line,schematic_debug_object:()=>schematic_debug_object,schematic_debug_object_base:()=>schematic_debug_object_base,schematic_debug_point:()=>schematic_debug_point,schematic_debug_rect:()=>schematic_debug_rect,schematic_error:()=>schematic_error,schematic_line:()=>schematic_line,schematic_net_label:()=>schematic_net_label,schematic_path:()=>schematic_path,schematic_pin_styles:()=>schematic_pin_styles,schematic_port:()=>schematic_port,schematic_text:()=>schematic_text,schematic_trace:()=>schematic_trace,schematic_voltage_probe:()=>schematic_voltage_probe,size:()=>size$3,source_component_base:()=>source_component_base,source_group:()=>source_group,source_led:()=>source_led,source_net:()=>source_net,source_port:()=>source_port,source_simple_battery:()=>source_simple_battery,source_simple_bug:()=>source_simple_bug,source_simple_capacitor:()=>source_simple_capacitor,source_simple_chip:()=>source_simple_chip,source_simple_crystal:()=>source_simple_crystal,source_simple_diode:()=>source_simple_diode,source_simple_ground:()=>source_simple_ground,source_simple_inductor:()=>source_simple_inductor,source_simple_mosfet:()=>source_simple_mosfet,source_simple_pin_header:()=>source_simple_pin_header,source_simple_potentiometer:()=>source_simple_potentiometer,source_simple_power_source:()=>source_simple_power_source,source_simple_push_button:()=>source_simple_push_button,source_simple_resistor:()=>source_simple_resistor,source_simple_resonator:()=>source_simple_resonator,source_simple_transistor:()=>source_simple_transistor,source_trace:()=>source_trace,supplier_name:()=>supplier_name,time:()=>time,visible_layer:()=>visible_layer,voltage:()=>voltage});var util;(function(ua){ua.assertEqual=Aa=>Aa;function J(Aa){}ua.assertIs=J;function la(Aa){throw new Error}ua.assertNever=la,ua.arrayToEnum=Aa=>{const ba={};for(const Sa of Aa)ba[Sa]=Sa;return ba},ua.getValidEnumValues=Aa=>{const ba=ua.objectKeys(Aa).filter(Ma=>typeof Aa[Aa[Ma]]!="number"),Sa={};for(const Ma of ba)Sa[Ma]=Aa[Ma];return ua.objectValues(Sa)},ua.objectValues=Aa=>ua.objectKeys(Aa).map(function(ba){return Aa[ba]}),ua.objectKeys=typeof Object.keys=="function"?Aa=>Object.keys(Aa):Aa=>{const ba=[];for(const Sa in Aa)Object.prototype.hasOwnProperty.call(Aa,Sa)&&ba.push(Sa);return ba},ua.find=(Aa,ba)=>{for(const Sa of Aa)if(ba(Sa))return Sa},ua.isInteger=typeof Number.isInteger=="function"?Aa=>Number.isInteger(Aa):Aa=>typeof Aa=="number"&&isFinite(Aa)&&Math.floor(Aa)===Aa;function xa(Aa,ba=" | "){return Aa.map(Sa=>typeof Sa=="string"?`'${Sa}'`:Sa).join(ba)}ua.joinValues=xa,ua.jsonStringifyReplacer=(Aa,ba)=>typeof ba=="bigint"?ba.toString():ba})(util||(util={}));var objectUtil;(function(ua){ua.mergeShapes=(J,la)=>({...J,...la})})(objectUtil||(objectUtil={}));var ZodParsedType=util.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),getParsedType=ua=>{switch(typeof ua){case"undefined":return ZodParsedType.undefined;case"string":return ZodParsedType.string;case"number":return isNaN(ua)?ZodParsedType.nan:ZodParsedType.number;case"boolean":return ZodParsedType.boolean;case"function":return ZodParsedType.function;case"bigint":return ZodParsedType.bigint;case"symbol":return ZodParsedType.symbol;case"object":return Array.isArray(ua)?ZodParsedType.array:ua===null?ZodParsedType.null:ua.then&&typeof ua.then=="function"&&ua.catch&&typeof ua.catch=="function"?ZodParsedType.promise:typeof Map<"u"&&ua instanceof Map?ZodParsedType.map:typeof Set<"u"&&ua instanceof Set?ZodParsedType.set:typeof Date<"u"&&ua instanceof Date?ZodParsedType.date:ZodParsedType.object;default:return ZodParsedType.unknown}},ZodIssueCode=util.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),quotelessJson=ua=>JSON.stringify(ua,null,2).replace(/"([^"]+)":/g,"$1:"),ZodError=class zw extends Error{get errors(){return this.issues}constructor(J){super(),this.issues=[],this.addIssue=xa=>{this.issues=[...this.issues,xa]},this.addIssues=(xa=[])=>{this.issues=[...this.issues,...xa]};const la=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,la):this.__proto__=la,this.name="ZodError",this.issues=J}format(J){const la=J||function(ba){return ba.message},xa={_errors:[]},Aa=ba=>{for(const Sa of ba.issues)if(Sa.code==="invalid_union")Sa.unionErrors.map(Aa);else if(Sa.code==="invalid_return_type")Aa(Sa.returnTypeError);else if(Sa.code==="invalid_arguments")Aa(Sa.argumentsError);else if(Sa.path.length===0)xa._errors.push(la(Sa));else{let Ma=xa,Ra=0;for(;Ra<Sa.path.length;){const Ia=Sa.path[Ra];Ra===Sa.path.length-1?(Ma[Ia]=Ma[Ia]||{_errors:[]},Ma[Ia]._errors.push(la(Sa))):Ma[Ia]=Ma[Ia]||{_errors:[]},Ma=Ma[Ia],Ra++}}};return Aa(this),xa}static assert(J){if(!(J instanceof zw))throw new Error(`Not a ZodError: ${J}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,util.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(J=la=>la.message){const la={},xa=[];for(const Aa of this.issues)Aa.path.length>0?(la[Aa.path[0]]=la[Aa.path[0]]||[],la[Aa.path[0]].push(J(Aa))):xa.push(J(Aa));return{formErrors:xa,fieldErrors:la}}get formErrors(){return this.flatten()}};ZodError.create=ua=>new ZodError(ua);var errorMap=(ua,J)=>{let la;switch(ua.code){case ZodIssueCode.invalid_type:ua.received===ZodParsedType.undefined?la="Required":la=`Expected ${ua.expected}, received ${ua.received}`;break;case ZodIssueCode.invalid_literal:la=`Invalid literal value, expected ${JSON.stringify(ua.expected,util.jsonStringifyReplacer)}`;break;case ZodIssueCode.unrecognized_keys:la=`Unrecognized key(s) in object: ${util.joinValues(ua.keys,", ")}`;break;case ZodIssueCode.invalid_union:la="Invalid input";break;case ZodIssueCode.invalid_union_discriminator:la=`Invalid discriminator value. Expected ${util.joinValues(ua.options)}`;break;case ZodIssueCode.invalid_enum_value:la=`Invalid enum value. Expected ${util.joinValues(ua.options)}, received '${ua.received}'`;break;case ZodIssueCode.invalid_arguments:la="Invalid function arguments";break;case ZodIssueCode.invalid_return_type:la="Invalid function return type";break;case ZodIssueCode.invalid_date:la="Invalid date";break;case ZodIssueCode.invalid_string:typeof ua.validation=="object"?"includes"in ua.validation?(la=`Invalid input: must include "${ua.validation.includes}"`,typeof ua.validation.position=="number"&&(la=`${la} at one or more positions greater than or equal to ${ua.validation.position}`)):"startsWith"in ua.validation?la=`Invalid input: must start with "${ua.validation.startsWith}"`:"endsWith"in ua.validation?la=`Invalid input: must end with "${ua.validation.endsWith}"`:util.assertNever(ua.validation):ua.validation!=="regex"?la=`Invalid ${ua.validation}`:la="Invalid";break;case ZodIssueCode.too_small:ua.type==="array"?la=`Array must contain ${ua.exact?"exactly":ua.inclusive?"at least":"more than"} ${ua.minimum} element(s)`:ua.type==="string"?la=`String must contain ${ua.exact?"exactly":ua.inclusive?"at least":"over"} ${ua.minimum} character(s)`:ua.type==="number"?la=`Number must be ${ua.exact?"exactly equal to ":ua.inclusive?"greater than or equal to ":"greater than "}${ua.minimum}`:ua.type==="date"?la=`Date must be ${ua.exact?"exactly equal to ":ua.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(ua.minimum))}`:la="Invalid input";break;case ZodIssueCode.too_big:ua.type==="array"?la=`Array must contain ${ua.exact?"exactly":ua.inclusive?"at most":"less than"} ${ua.maximum} element(s)`:ua.type==="string"?la=`String must contain ${ua.exact?"exactly":ua.inclusive?"at most":"under"} ${ua.maximum} character(s)`:ua.type==="number"?la=`Number must be ${ua.exact?"exactly":ua.inclusive?"less than or equal to":"less than"} ${ua.maximum}`:ua.type==="bigint"?la=`BigInt must be ${ua.exact?"exactly":ua.inclusive?"less than or equal to":"less than"} ${ua.maximum}`:ua.type==="date"?la=`Date must be ${ua.exact?"exactly":ua.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(ua.maximum))}`:la="Invalid input";break;case ZodIssueCode.custom:la="Invalid input";break;case ZodIssueCode.invalid_intersection_types:la="Intersection results could not be merged";break;case ZodIssueCode.not_multiple_of:la=`Number must be a multiple of ${ua.multipleOf}`;break;case ZodIssueCode.not_finite:la="Number must be finite";break;default:la=J.defaultError,util.assertNever(ua)}return{message:la}},overrideErrorMap=errorMap;function setErrorMap(ua){overrideErrorMap=ua}function getErrorMap(){return overrideErrorMap}var makeIssue=ua=>{const{data:J,path:la,errorMaps:xa,issueData:Aa}=ua,ba=[...la,...Aa.path||[]],Sa={...Aa,path:ba};if(Aa.message!==void 0)return{...Aa,path:ba,message:Aa.message};let Ma="";const Ra=xa.filter(Ia=>!!Ia).slice().reverse();for(const Ia of Ra)Ma=Ia(Sa,{data:J,defaultError:Ma}).message;return{...Aa,path:ba,message:Ma}},EMPTY_PATH=[];function addIssueToContext(ua,J){const la=getErrorMap(),xa=makeIssue({issueData:J,data:ua.data,path:ua.path,errorMaps:[ua.common.contextualErrorMap,ua.schemaErrorMap,la,la===errorMap?void 0:errorMap].filter(Aa=>!!Aa)});ua.common.issues.push(xa)}var ParseStatus=class $w{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(J,la){const xa=[];for(const Aa of la){if(Aa.status==="aborted")return INVALID;Aa.status==="dirty"&&J.dirty(),xa.push(Aa.value)}return{status:J.value,value:xa}}static async mergeObjectAsync(J,la){const xa=[];for(const Aa of la){const ba=await Aa.key,Sa=await Aa.value;xa.push({key:ba,value:Sa})}return $w.mergeObjectSync(J,xa)}static mergeObjectSync(J,la){const xa={};for(const Aa of la){const{key:ba,value:Sa}=Aa;if(ba.status==="aborted"||Sa.status==="aborted")return INVALID;ba.status==="dirty"&&J.dirty(),Sa.status==="dirty"&&J.dirty(),ba.value!=="__proto__"&&(typeof Sa.value<"u"||Aa.alwaysSet)&&(xa[ba.value]=Sa.value)}return{status:J.value,value:xa}}},INVALID=Object.freeze({status:"aborted"}),DIRTY=ua=>({status:"dirty",value:ua}),OK=ua=>({status:"valid",value:ua}),isAborted=ua=>ua.status==="aborted",isDirty=ua=>ua.status==="dirty",isValid=ua=>ua.status==="valid",isAsync=ua=>typeof Promise<"u"&&ua instanceof Promise;function __classPrivateFieldGet(ua,J,la,xa){if(typeof J=="function"?ua!==J||!xa:!J.has(ua))throw new TypeError("Cannot read private member from an object whose class did not declare it");return J.get(ua)}function __classPrivateFieldSet(ua,J,la,xa,Aa){if(typeof J=="function"?ua!==J||!Aa:!J.has(ua))throw new TypeError("Cannot write private member to an object whose class did not declare it");return J.set(ua,la),la}var errorUtil;(function(ua){ua.errToObj=J=>typeof J=="string"?{message:J}:J||{},ua.toString=J=>typeof J=="string"?J:J==null?void 0:J.message})(errorUtil||(errorUtil={}));var _ZodEnum_cache,_ZodNativeEnum_cache,ParseInputLazyPath=class{constructor(ua,J,la,xa){this._cachedPath=[],this.parent=ua,this.data=J,this._path=la,this._key=xa}get path(){return this._cachedPath.length||(this._key instanceof Array?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},handleResult=(ua,J)=>{if(isValid(J))return{success:!0,data:J.value};if(!ua.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const la=new ZodError(ua.common.issues);return this._error=la,this._error}}};function processCreateParams(ua){if(!ua)return{};const{errorMap:J,invalid_type_error:la,required_error:xa,description:Aa}=ua;if(J&&(la||xa))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return J?{errorMap:J,description:Aa}:{errorMap:(Sa,Ma)=>{var Ra,Ia;const{message:La}=ua;return Sa.code==="invalid_enum_value"?{message:La??Ma.defaultError}:typeof Ma.data>"u"?{message:(Ra=La??xa)!==null&&Ra!==void 0?Ra:Ma.defaultError}:Sa.code!=="invalid_type"?{message:Ma.defaultError}:{message:(Ia=La??la)!==null&&Ia!==void 0?Ia:Ma.defaultError}},description:Aa}}var ZodType=class{get description(){return this._def.description}_getType(ua){return getParsedType(ua.data)}_getOrReturnCtx(ua,J){return J||{common:ua.parent.common,data:ua.data,parsedType:getParsedType(ua.data),schemaErrorMap:this._def.errorMap,path:ua.path,parent:ua.parent}}_processInputParams(ua){return{status:new ParseStatus,ctx:{common:ua.parent.common,data:ua.data,parsedType:getParsedType(ua.data),schemaErrorMap:this._def.errorMap,path:ua.path,parent:ua.parent}}}_parseSync(ua){const J=this._parse(ua);if(isAsync(J))throw new Error("Synchronous parse encountered promise.");return J}_parseAsync(ua){const J=this._parse(ua);return Promise.resolve(J)}parse(ua,J){const la=this.safeParse(ua,J);if(la.success)return la.data;throw la.error}safeParse(ua,J){var la;const xa={common:{issues:[],async:(la=J==null?void 0:J.async)!==null&&la!==void 0?la:!1,contextualErrorMap:J==null?void 0:J.errorMap},path:(J==null?void 0:J.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:ua,parsedType:getParsedType(ua)},Aa=this._parseSync({data:ua,path:xa.path,parent:xa});return handleResult(xa,Aa)}"~validate"(ua){var J,la;const xa={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:ua,parsedType:getParsedType(ua)};if(!this["~standard"].async)try{const Aa=this._parseSync({data:ua,path:[],parent:xa});return isValid(Aa)?{value:Aa.value}:{issues:xa.common.issues}}catch(Aa){!((la=(J=Aa==null?void 0:Aa.message)===null||J===void 0?void 0:J.toLowerCase())===null||la===void 0)&&la.includes("encountered")&&(this["~standard"].async=!0),xa.common={issues:[],async:!0}}return this._parseAsync({data:ua,path:[],parent:xa}).then(Aa=>isValid(Aa)?{value:Aa.value}:{issues:xa.common.issues})}async parseAsync(ua,J){const la=await this.safeParseAsync(ua,J);if(la.success)return la.data;throw la.error}async safeParseAsync(ua,J){const la={common:{issues:[],contextualErrorMap:J==null?void 0:J.errorMap,async:!0},path:(J==null?void 0:J.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:ua,parsedType:getParsedType(ua)},xa=this._parse({data:ua,path:la.path,parent:la}),Aa=await(isAsync(xa)?xa:Promise.resolve(xa));return handleResult(la,Aa)}refine(ua,J){const la=xa=>typeof J=="string"||typeof J>"u"?{message:J}:typeof J=="function"?J(xa):J;return this._refinement((xa,Aa)=>{const ba=ua(xa),Sa=()=>Aa.addIssue({code:ZodIssueCode.custom,...la(xa)});return typeof Promise<"u"&&ba instanceof Promise?ba.then(Ma=>Ma?!0:(Sa(),!1)):ba?!0:(Sa(),!1)})}refinement(ua,J){return this._refinement((la,xa)=>ua(la)?!0:(xa.addIssue(typeof J=="function"?J(la,xa):J),!1))}_refinement(ua){return new ZodEffects({schema:this,typeName:ZodFirstPartyTypeKind.ZodEffects,effect:{type:"refinement",refinement:ua}})}superRefine(ua){return this._refinement(ua)}constructor(ua){this.spa=this.safeParseAsync,this._def=ua,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:J=>this["~validate"](J)}}optional(){return ZodOptional.create(this,this._def)}nullable(){return ZodNullable.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return ZodArray.create(this)}promise(){return ZodPromise.create(this,this._def)}or(ua){return ZodUnion.create([this,ua],this._def)}and(ua){return ZodIntersection.create(this,ua,this._def)}transform(ua){return new ZodEffects({...processCreateParams(this._def),schema:this,typeName:ZodFirstPartyTypeKind.ZodEffects,effect:{type:"transform",transform:ua}})}default(ua){const J=typeof ua=="function"?ua:()=>ua;return new ZodDefault({...processCreateParams(this._def),innerType:this,defaultValue:J,typeName:ZodFirstPartyTypeKind.ZodDefault})}brand(){return new ZodBranded({typeName:ZodFirstPartyTypeKind.ZodBranded,type:this,...processCreateParams(this._def)})}catch(ua){const J=typeof ua=="function"?ua:()=>ua;return new ZodCatch({...processCreateParams(this._def),innerType:this,catchValue:J,typeName:ZodFirstPartyTypeKind.ZodCatch})}describe(ua){const J=this.constructor;return new J({...this._def,description:ua})}pipe(ua){return ZodPipeline.create(this,ua)}readonly(){return ZodReadonly.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},cuidRegex=/^c[^\s-]{8,}$/i,cuid2Regex=/^[0-9a-z]+$/,ulidRegex=/^[0-9A-HJKMNP-TV-Z]{26}$/i,uuidRegex=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,nanoidRegex=/^[a-z0-9_-]{21}$/i,jwtRegex=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,durationRegex=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,emailRegex=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,_emojiRegex="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",emojiRegex,ipv4Regex=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ipv4CidrRegex=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,ipv6Regex=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,ipv6CidrRegex=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,base64Regex=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64urlRegex=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,dateRegexSource="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",dateRegex=new RegExp(`^${dateRegexSource}$`);function timeRegexSource(ua){let J="([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d";return ua.precision?J=`${J}\\.\\d{${ua.precision}}`:ua.precision==null&&(J=`${J}(\\.\\d+)?`),J}function timeRegex(ua){return new RegExp(`^${timeRegexSource(ua)}$`)}function datetimeRegex(ua){let J=`${dateRegexSource}T${timeRegexSource(ua)}`;const la=[];return la.push(ua.local?"Z?":"Z"),ua.offset&&la.push("([+-]\\d{2}:?\\d{2})"),J=`${J}(${la.join("|")})`,new RegExp(`^${J}$`)}function isValidIP(ua,J){return!!((J==="v4"||!J)&&ipv4Regex.test(ua)||(J==="v6"||!J)&&ipv6Regex.test(ua))}function isValidJWT(ua,J){if(!jwtRegex.test(ua))return!1;try{const[la]=ua.split("."),xa=la.replace(/-/g,"+").replace(/_/g,"/").padEnd(la.length+(4-la.length%4)%4,"="),Aa=JSON.parse(atob(xa));return!(typeof Aa!="object"||Aa===null||!Aa.typ||!Aa.alg||J&&Aa.alg!==J)}catch{return!1}}function isValidCidr(ua,J){return!!((J==="v4"||!J)&&ipv4CidrRegex.test(ua)||(J==="v6"||!J)&&ipv6CidrRegex.test(ua))}var ZodString=class sE extends ZodType{_parse(J){if(this._def.coerce&&(J.data=String(J.data)),this._getType(J)!==ZodParsedType.string){const ba=this._getOrReturnCtx(J);return addIssueToContext(ba,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.string,received:ba.parsedType}),INVALID}const xa=new ParseStatus;let Aa;for(const ba of this._def.checks)if(ba.kind==="min")J.data.length<ba.value&&(Aa=this._getOrReturnCtx(J,Aa),addIssueToContext(Aa,{code:ZodIssueCode.too_small,minimum:ba.value,type:"string",inclusive:!0,exact:!1,message:ba.message}),xa.dirty());else if(ba.kind==="max")J.data.length>ba.value&&(Aa=this._getOrReturnCtx(J,Aa),addIssueToContext(Aa,{code:ZodIssueCode.too_big,maximum:ba.value,type:"string",inclusive:!0,exact:!1,message:ba.message}),xa.dirty());else if(ba.kind==="length"){const Sa=J.data.length>ba.value,Ma=J.data.length<ba.value;(Sa||Ma)&&(Aa=this._getOrReturnCtx(J,Aa),Sa?addIssueToContext(Aa,{code:ZodIssueCode.too_big,maximum:ba.value,type:"string",inclusive:!0,exact:!0,message:ba.message}):Ma&&addIssueToContext(Aa,{code:ZodIssueCode.too_small,minimum:ba.value,type:"string",inclusive:!0,exact:!0,message:ba.message}),xa.dirty())}else if(ba.kind==="email")emailRegex.test(J.data)||(Aa=this._getOrReturnCtx(J,Aa),addIssueToContext(Aa,{validation:"email",code:ZodIssueCode.invalid_string,message:ba.message}),xa.dirty());else if(ba.kind==="emoji")emojiRegex||(emojiRegex=new RegExp(_emojiRegex,"u")),emojiRegex.test(J.data)||(Aa=this._getOrReturnCtx(J,Aa),addIssueToContext(Aa,{validation:"emoji",code:ZodIssueCode.invalid_string,message:ba.message}),xa.dirty());else if(ba.kind==="uuid")uuidRegex.test(J.data)||(Aa=this._getOrReturnCtx(J,Aa),addIssueToContext(Aa,{validation:"uuid",code:ZodIssueCode.invalid_string,message:ba.message}),xa.dirty());else if(ba.kind==="nanoid")nanoidRegex.test(J.data)||(Aa=this._getOrReturnCtx(J,Aa),addIssueToContext(Aa,{validation:"nanoid",code:ZodIssueCode.invalid_string,message:ba.message}),xa.dirty());else if(ba.kind==="cuid")cuidRegex.test(J.data)||(Aa=this._getOrReturnCtx(J,Aa),addIssueToContext(Aa,{validation:"cuid",code:ZodIssueCode.invalid_string,message:ba.message}),xa.dirty());else if(ba.kind==="cuid2")cuid2Regex.test(J.data)||(Aa=this._getOrReturnCtx(J,Aa),addIssueToContext(Aa,{validation:"cuid2",code:ZodIssueCode.invalid_string,message:ba.message}),xa.dirty());else if(ba.kind==="ulid")ulidRegex.test(J.data)||(Aa=this._getOrReturnCtx(J,Aa),addIssueToContext(Aa,{validation:"ulid",code:ZodIssueCode.invalid_string,message:ba.message}),xa.dirty());else if(ba.kind==="url")try{new URL(J.data)}catch{Aa=this._getOrReturnCtx(J,Aa),addIssueToContext(Aa,{validation:"url",code:ZodIssueCode.invalid_string,message:ba.message}),xa.dirty()}else ba.kind==="regex"?(ba.regex.lastIndex=0,ba.regex.test(J.data)||(Aa=this._getOrReturnCtx(J,Aa),addIssueToContext(Aa,{validation:"regex",code:ZodIssueCode.invalid_string,message:ba.message}),xa.dirty())):ba.kind==="trim"?J.data=J.data.trim():ba.kind==="includes"?J.data.includes(ba.value,ba.position)||(Aa=this._getOrReturnCtx(J,Aa),addIssueToContext(Aa,{code:ZodIssueCode.invalid_string,validation:{includes:ba.value,position:ba.position},message:ba.message}),xa.dirty()):ba.kind==="toLowerCase"?J.data=J.data.toLowerCase():ba.kind==="toUpperCase"?J.data=J.data.toUpperCase():ba.kind==="startsWith"?J.data.startsWith(ba.value)||(Aa=this._getOrReturnCtx(J,Aa),addIssueToContext(Aa,{code:ZodIssueCode.invalid_string,validation:{startsWith:ba.value},message:ba.message}),xa.dirty()):ba.kind==="endsWith"?J.data.endsWith(ba.value)||(Aa=this._getOrReturnCtx(J,Aa),addIssueToContext(Aa,{code:ZodIssueCode.invalid_string,validation:{endsWith:ba.value},message:ba.message}),xa.dirty()):ba.kind==="datetime"?datetimeRegex(ba).test(J.data)||(Aa=this._getOrReturnCtx(J,Aa),addIssueToContext(Aa,{code:ZodIssueCode.invalid_string,validation:"datetime",message:ba.message}),xa.dirty()):ba.kind==="date"?dateRegex.test(J.data)||(Aa=this._getOrReturnCtx(J,Aa),addIssueToContext(Aa,{code:ZodIssueCode.invalid_string,validation:"date",message:ba.message}),xa.dirty()):ba.kind==="time"?timeRegex(ba).test(J.data)||(Aa=this._getOrReturnCtx(J,Aa),addIssueToContext(Aa,{code:ZodIssueCode.invalid_string,validation:"time",message:ba.message}),xa.dirty()):ba.kind==="duration"?durationRegex.test(J.data)||(Aa=this._getOrReturnCtx(J,Aa),addIssueToContext(Aa,{validation:"duration",code:ZodIssueCode.invalid_string,message:ba.message}),xa.dirty()):ba.kind==="ip"?isValidIP(J.data,ba.version)||(Aa=this._getOrReturnCtx(J,Aa),addIssueToContext(Aa,{validation:"ip",code:ZodIssueCode.invalid_string,message:ba.message}),xa.dirty()):ba.kind==="jwt"?isValidJWT(J.data,ba.alg)||(Aa=this._getOrReturnCtx(J,Aa),addIssueToContext(Aa,{validation:"jwt",code:ZodIssueCode.invalid_string,message:ba.message}),xa.dirty()):ba.kind==="cidr"?isValidCidr(J.data,ba.version)||(Aa=this._getOrReturnCtx(J,Aa),addIssueToContext(Aa,{validation:"cidr",code:ZodIssueCode.invalid_string,message:ba.message}),xa.dirty()):ba.kind==="base64"?base64Regex.test(J.data)||(Aa=this._getOrReturnCtx(J,Aa),addIssueToContext(Aa,{validation:"base64",code:ZodIssueCode.invalid_string,message:ba.message}),xa.dirty()):ba.kind==="base64url"?base64urlRegex.test(J.data)||(Aa=this._getOrReturnCtx(J,Aa),addIssueToContext(Aa,{validation:"base64url",code:ZodIssueCode.invalid_string,message:ba.message}),xa.dirty()):util.assertNever(ba);return{status:xa.value,value:J.data}}_regex(J,la,xa){return this.refinement(Aa=>J.test(Aa),{validation:la,code:ZodIssueCode.invalid_string,...errorUtil.errToObj(xa)})}_addCheck(J){return new sE({...this._def,checks:[...this._def.checks,J]})}email(J){return this._addCheck({kind:"email",...errorUtil.errToObj(J)})}url(J){return this._addCheck({kind:"url",...errorUtil.errToObj(J)})}emoji(J){return this._addCheck({kind:"emoji",...errorUtil.errToObj(J)})}uuid(J){return this._addCheck({kind:"uuid",...errorUtil.errToObj(J)})}nanoid(J){return this._addCheck({kind:"nanoid",...errorUtil.errToObj(J)})}cuid(J){return this._addCheck({kind:"cuid",...errorUtil.errToObj(J)})}cuid2(J){return this._addCheck({kind:"cuid2",...errorUtil.errToObj(J)})}ulid(J){return this._addCheck({kind:"ulid",...errorUtil.errToObj(J)})}base64(J){return this._addCheck({kind:"base64",...errorUtil.errToObj(J)})}base64url(J){return this._addCheck({kind:"base64url",...errorUtil.errToObj(J)})}jwt(J){return this._addCheck({kind:"jwt",...errorUtil.errToObj(J)})}ip(J){return this._addCheck({kind:"ip",...errorUtil.errToObj(J)})}cidr(J){return this._addCheck({kind:"cidr",...errorUtil.errToObj(J)})}datetime(J){var la,xa;return typeof J=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:J}):this._addCheck({kind:"datetime",precision:typeof(J==null?void 0:J.precision)>"u"?null:J==null?void 0:J.precision,offset:(la=J==null?void 0:J.offset)!==null&&la!==void 0?la:!1,local:(xa=J==null?void 0:J.local)!==null&&xa!==void 0?xa:!1,...errorUtil.errToObj(J==null?void 0:J.message)})}date(J){return this._addCheck({kind:"date",message:J})}time(J){return typeof J=="string"?this._addCheck({kind:"time",precision:null,message:J}):this._addCheck({kind:"time",precision:typeof(J==null?void 0:J.precision)>"u"?null:J==null?void 0:J.precision,...errorUtil.errToObj(J==null?void 0:J.message)})}duration(J){return this._addCheck({kind:"duration",...errorUtil.errToObj(J)})}regex(J,la){return this._addCheck({kind:"regex",regex:J,...errorUtil.errToObj(la)})}includes(J,la){return this._addCheck({kind:"includes",value:J,position:la==null?void 0:la.position,...errorUtil.errToObj(la==null?void 0:la.message)})}startsWith(J,la){return this._addCheck({kind:"startsWith",value:J,...errorUtil.errToObj(la)})}endsWith(J,la){return this._addCheck({kind:"endsWith",value:J,...errorUtil.errToObj(la)})}min(J,la){return this._addCheck({kind:"min",value:J,...errorUtil.errToObj(la)})}max(J,la){return this._addCheck({kind:"max",value:J,...errorUtil.errToObj(la)})}length(J,la){return this._addCheck({kind:"length",value:J,...errorUtil.errToObj(la)})}nonempty(J){return this.min(1,errorUtil.errToObj(J))}trim(){return new sE({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new sE({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new sE({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(J=>J.kind==="datetime")}get isDate(){return!!this._def.checks.find(J=>J.kind==="date")}get isTime(){return!!this._def.checks.find(J=>J.kind==="time")}get isDuration(){return!!this._def.checks.find(J=>J.kind==="duration")}get isEmail(){return!!this._def.checks.find(J=>J.kind==="email")}get isURL(){return!!this._def.checks.find(J=>J.kind==="url")}get isEmoji(){return!!this._def.checks.find(J=>J.kind==="emoji")}get isUUID(){return!!this._def.checks.find(J=>J.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(J=>J.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(J=>J.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(J=>J.kind==="cuid2")}get isULID(){return!!this._def.checks.find(J=>J.kind==="ulid")}get isIP(){return!!this._def.checks.find(J=>J.kind==="ip")}get isCIDR(){return!!this._def.checks.find(J=>J.kind==="cidr")}get isBase64(){return!!this._def.checks.find(J=>J.kind==="base64")}get isBase64url(){return!!this._def.checks.find(J=>J.kind==="base64url")}get minLength(){let J=null;for(const la of this._def.checks)la.kind==="min"&&(J===null||la.value>J)&&(J=la.value);return J}get maxLength(){let J=null;for(const la of this._def.checks)la.kind==="max"&&(J===null||la.value<J)&&(J=la.value);return J}};ZodString.create=ua=>{var J;return new ZodString({checks:[],typeName:ZodFirstPartyTypeKind.ZodString,coerce:(J=ua==null?void 0:ua.coerce)!==null&&J!==void 0?J:!1,...processCreateParams(ua)})};function floatSafeRemainder(ua,J){const la=(ua.toString().split(".")[1]||"").length,xa=(J.toString().split(".")[1]||"").length,Aa=la>xa?la:xa,ba=parseInt(ua.toFixed(Aa).replace(".","")),Sa=parseInt(J.toFixed(Aa).replace(".",""));return ba%Sa/Math.pow(10,Aa)}var ZodNumber=class jT extends ZodType{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(J){if(this._def.coerce&&(J.data=Number(J.data)),this._getType(J)!==ZodParsedType.number){const ba=this._getOrReturnCtx(J);return addIssueToContext(ba,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.number,received:ba.parsedType}),INVALID}let xa;const Aa=new ParseStatus;for(const ba of this._def.checks)ba.kind==="int"?util.isInteger(J.data)||(xa=this._getOrReturnCtx(J,xa),addIssueToContext(xa,{code:ZodIssueCode.invalid_type,expected:"integer",received:"float",message:ba.message}),Aa.dirty()):ba.kind==="min"?(ba.inclusive?J.data<ba.value:J.data<=ba.value)&&(xa=this._getOrReturnCtx(J,xa),addIssueToContext(xa,{code:ZodIssueCode.too_small,minimum:ba.value,type:"number",inclusive:ba.inclusive,exact:!1,message:ba.message}),Aa.dirty()):ba.kind==="max"?(ba.inclusive?J.data>ba.value:J.data>=ba.value)&&(xa=this._getOrReturnCtx(J,xa),addIssueToContext(xa,{code:ZodIssueCode.too_big,maximum:ba.value,type:"number",inclusive:ba.inclusive,exact:!1,message:ba.message}),Aa.dirty()):ba.kind==="multipleOf"?floatSafeRemainder(J.data,ba.value)!==0&&(xa=this._getOrReturnCtx(J,xa),addIssueToContext(xa,{code:ZodIssueCode.not_multiple_of,multipleOf:ba.value,message:ba.message}),Aa.dirty()):ba.kind==="finite"?Number.isFinite(J.data)||(xa=this._getOrReturnCtx(J,xa),addIssueToContext(xa,{code:ZodIssueCode.not_finite,message:ba.message}),Aa.dirty()):util.assertNever(ba);return{status:Aa.value,value:J.data}}gte(J,la){return this.setLimit("min",J,!0,errorUtil.toString(la))}gt(J,la){return this.setLimit("min",J,!1,errorUtil.toString(la))}lte(J,la){return this.setLimit("max",J,!0,errorUtil.toString(la))}lt(J,la){return this.setLimit("max",J,!1,errorUtil.toString(la))}setLimit(J,la,xa,Aa){return new jT({...this._def,checks:[...this._def.checks,{kind:J,value:la,inclusive:xa,message:errorUtil.toString(Aa)}]})}_addCheck(J){return new jT({...this._def,checks:[...this._def.checks,J]})}int(J){return this._addCheck({kind:"int",message:errorUtil.toString(J)})}positive(J){return this._addCheck({kind:"min",value:0,inclusive:!1,message:errorUtil.toString(J)})}negative(J){return this._addCheck({kind:"max",value:0,inclusive:!1,message:errorUtil.toString(J)})}nonpositive(J){return this._addCheck({kind:"max",value:0,inclusive:!0,message:errorUtil.toString(J)})}nonnegative(J){return this._addCheck({kind:"min",value:0,inclusive:!0,message:errorUtil.toString(J)})}multipleOf(J,la){return this._addCheck({kind:"multipleOf",value:J,message:errorUtil.toString(la)})}finite(J){return this._addCheck({kind:"finite",message:errorUtil.toString(J)})}safe(J){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:errorUtil.toString(J)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:errorUtil.toString(J)})}get minValue(){let J=null;for(const la of this._def.checks)la.kind==="min"&&(J===null||la.value>J)&&(J=la.value);return J}get maxValue(){let J=null;for(const la of this._def.checks)la.kind==="max"&&(J===null||la.value<J)&&(J=la.value);return J}get isInt(){return!!this._def.checks.find(J=>J.kind==="int"||J.kind==="multipleOf"&&util.isInteger(J.value))}get isFinite(){let J=null,la=null;for(const xa of this._def.checks){if(xa.kind==="finite"||xa.kind==="int"||xa.kind==="multipleOf")return!0;xa.kind==="min"?(la===null||xa.value>la)&&(la=xa.value):xa.kind==="max"&&(J===null||xa.value<J)&&(J=xa.value)}return Number.isFinite(la)&&Number.isFinite(J)}};ZodNumber.create=ua=>new ZodNumber({checks:[],typeName:ZodFirstPartyTypeKind.ZodNumber,coerce:(ua==null?void 0:ua.coerce)||!1,...processCreateParams(ua)});var ZodBigInt=class QT extends ZodType{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(J){if(this._def.coerce)try{J.data=BigInt(J.data)}catch{return this._getInvalidInput(J)}if(this._getType(J)!==ZodParsedType.bigint)return this._getInvalidInput(J);let xa;const Aa=new ParseStatus;for(const ba of this._def.checks)ba.kind==="min"?(ba.inclusive?J.data<ba.value:J.data<=ba.value)&&(xa=this._getOrReturnCtx(J,xa),addIssueToContext(xa,{code:ZodIssueCode.too_small,type:"bigint",minimum:ba.value,inclusive:ba.inclusive,message:ba.message}),Aa.dirty()):ba.kind==="max"?(ba.inclusive?J.data>ba.value:J.data>=ba.value)&&(xa=this._getOrReturnCtx(J,xa),addIssueToContext(xa,{code:ZodIssueCode.too_big,type:"bigint",maximum:ba.value,inclusive:ba.inclusive,message:ba.message}),Aa.dirty()):ba.kind==="multipleOf"?J.data%ba.value!==BigInt(0)&&(xa=this._getOrReturnCtx(J,xa),addIssueToContext(xa,{code:ZodIssueCode.not_multiple_of,multipleOf:ba.value,message:ba.message}),Aa.dirty()):util.assertNever(ba);return{status:Aa.value,value:J.data}}_getInvalidInput(J){const la=this._getOrReturnCtx(J);return addIssueToContext(la,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.bigint,received:la.parsedType}),INVALID}gte(J,la){return this.setLimit("min",J,!0,errorUtil.toString(la))}gt(J,la){return this.setLimit("min",J,!1,errorUtil.toString(la))}lte(J,la){return this.setLimit("max",J,!0,errorUtil.toString(la))}lt(J,la){return this.setLimit("max",J,!1,errorUtil.toString(la))}setLimit(J,la,xa,Aa){return new QT({...this._def,checks:[...this._def.checks,{kind:J,value:la,inclusive:xa,message:errorUtil.toString(Aa)}]})}_addCheck(J){return new QT({...this._def,checks:[...this._def.checks,J]})}positive(J){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:errorUtil.toString(J)})}negative(J){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:errorUtil.toString(J)})}nonpositive(J){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:errorUtil.toString(J)})}nonnegative(J){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:errorUtil.toString(J)})}multipleOf(J,la){return this._addCheck({kind:"multipleOf",value:J,message:errorUtil.toString(la)})}get minValue(){let J=null;for(const la of this._def.checks)la.kind==="min"&&(J===null||la.value>J)&&(J=la.value);return J}get maxValue(){let J=null;for(const la of this._def.checks)la.kind==="max"&&(J===null||la.value<J)&&(J=la.value);return J}};ZodBigInt.create=ua=>{var J;return new ZodBigInt({checks:[],typeName:ZodFirstPartyTypeKind.ZodBigInt,coerce:(J=ua==null?void 0:ua.coerce)!==null&&J!==void 0?J:!1,...processCreateParams(ua)})};var ZodBoolean=class extends ZodType{_parse(ua){if(this._def.coerce&&(ua.data=!!ua.data),this._getType(ua)!==ZodParsedType.boolean){const la=this._getOrReturnCtx(ua);return addIssueToContext(la,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.boolean,received:la.parsedType}),INVALID}return OK(ua.data)}};ZodBoolean.create=ua=>new ZodBoolean({typeName:ZodFirstPartyTypeKind.ZodBoolean,coerce:(ua==null?void 0:ua.coerce)||!1,...processCreateParams(ua)});var ZodDate=class Vw extends ZodType{_parse(J){if(this._def.coerce&&(J.data=new Date(J.data)),this._getType(J)!==ZodParsedType.date){const ba=this._getOrReturnCtx(J);return addIssueToContext(ba,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.date,received:ba.parsedType}),INVALID}if(isNaN(J.data.getTime())){const ba=this._getOrReturnCtx(J);return addIssueToContext(ba,{code:ZodIssueCode.invalid_date}),INVALID}const xa=new ParseStatus;let Aa;for(const ba of this._def.checks)ba.kind==="min"?J.data.getTime()<ba.value&&(Aa=this._getOrReturnCtx(J,Aa),addIssueToContext(Aa,{code:ZodIssueCode.too_small,message:ba.message,inclusive:!0,exact:!1,minimum:ba.value,type:"date"}),xa.dirty()):ba.kind==="max"?J.data.getTime()>ba.value&&(Aa=this._getOrReturnCtx(J,Aa),addIssueToContext(Aa,{code:ZodIssueCode.too_big,message:ba.message,inclusive:!0,exact:!1,maximum:ba.value,type:"date"}),xa.dirty()):util.assertNever(ba);return{status:xa.value,value:new Date(J.data.getTime())}}_addCheck(J){return new Vw({...this._def,checks:[...this._def.checks,J]})}min(J,la){return this._addCheck({kind:"min",value:J.getTime(),message:errorUtil.toString(la)})}max(J,la){return this._addCheck({kind:"max",value:J.getTime(),message:errorUtil.toString(la)})}get minDate(){let J=null;for(const la of this._def.checks)la.kind==="min"&&(J===null||la.value>J)&&(J=la.value);return J!=null?new Date(J):null}get maxDate(){let J=null;for(const la of this._def.checks)la.kind==="max"&&(J===null||la.value<J)&&(J=la.value);return J!=null?new Date(J):null}};ZodDate.create=ua=>new ZodDate({checks:[],coerce:(ua==null?void 0:ua.coerce)||!1,typeName:ZodFirstPartyTypeKind.ZodDate,...processCreateParams(ua)});var ZodSymbol=class extends ZodType{_parse(ua){if(this._getType(ua)!==ZodParsedType.symbol){const la=this._getOrReturnCtx(ua);return addIssueToContext(la,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.symbol,received:la.parsedType}),INVALID}return OK(ua.data)}};ZodSymbol.create=ua=>new ZodSymbol({typeName:ZodFirstPartyTypeKind.ZodSymbol,...processCreateParams(ua)});var ZodUndefined=class extends ZodType{_parse(ua){if(this._getType(ua)!==ZodParsedType.undefined){const la=this._getOrReturnCtx(ua);return addIssueToContext(la,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.undefined,received:la.parsedType}),INVALID}return OK(ua.data)}};ZodUndefined.create=ua=>new ZodUndefined({typeName:ZodFirstPartyTypeKind.ZodUndefined,...processCreateParams(ua)});var ZodNull=class extends ZodType{_parse(ua){if(this._getType(ua)!==ZodParsedType.null){const la=this._getOrReturnCtx(ua);return addIssueToContext(la,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.null,received:la.parsedType}),INVALID}return OK(ua.data)}};ZodNull.create=ua=>new ZodNull({typeName:ZodFirstPartyTypeKind.ZodNull,...processCreateParams(ua)});var ZodAny=class extends ZodType{constructor(){super(...arguments),this._any=!0}_parse(ua){return OK(ua.data)}};ZodAny.create=ua=>new ZodAny({typeName:ZodFirstPartyTypeKind.ZodAny,...processCreateParams(ua)});var ZodUnknown=class extends ZodType{constructor(){super(...arguments),this._unknown=!0}_parse(ua){return OK(ua.data)}};ZodUnknown.create=ua=>new ZodUnknown({typeName:ZodFirstPartyTypeKind.ZodUnknown,...processCreateParams(ua)});var ZodNever=class extends ZodType{_parse(ua){const J=this._getOrReturnCtx(ua);return addIssueToContext(J,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.never,received:J.parsedType}),INVALID}};ZodNever.create=ua=>new ZodNever({typeName:ZodFirstPartyTypeKind.ZodNever,...processCreateParams(ua)});var ZodVoid=class extends ZodType{_parse(ua){if(this._getType(ua)!==ZodParsedType.undefined){const la=this._getOrReturnCtx(ua);return addIssueToContext(la,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.void,received:la.parsedType}),INVALID}return OK(ua.data)}};ZodVoid.create=ua=>new ZodVoid({typeName:ZodFirstPartyTypeKind.ZodVoid,...processCreateParams(ua)});var ZodArray=class UE extends ZodType{_parse(J){const{ctx:la,status:xa}=this._processInputParams(J),Aa=this._def;if(la.parsedType!==ZodParsedType.array)return addIssueToContext(la,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.array,received:la.parsedType}),INVALID;if(Aa.exactLength!==null){const Sa=la.data.length>Aa.exactLength.value,Ma=la.data.length<Aa.exactLength.value;(Sa||Ma)&&(addIssueToContext(la,{code:Sa?ZodIssueCode.too_big:ZodIssueCode.too_small,minimum:Ma?Aa.exactLength.value:void 0,maximum:Sa?Aa.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:Aa.exactLength.message}),xa.dirty())}if(Aa.minLength!==null&&la.data.length<Aa.minLength.value&&(addIssueToContext(la,{code:ZodIssueCode.too_small,minimum:Aa.minLength.value,type:"array",inclusive:!0,exact:!1,message:Aa.minLength.message}),xa.dirty()),Aa.maxLength!==null&&la.data.length>Aa.maxLength.value&&(addIssueToContext(la,{code:ZodIssueCode.too_big,maximum:Aa.maxLength.value,type:"array",inclusive:!0,exact:!1,message:Aa.maxLength.message}),xa.dirty()),la.common.async)return Promise.all([...la.data].map((Sa,Ma)=>Aa.type._parseAsync(new ParseInputLazyPath(la,Sa,la.path,Ma)))).then(Sa=>ParseStatus.mergeArray(xa,Sa));const ba=[...la.data].map((Sa,Ma)=>Aa.type._parseSync(new ParseInputLazyPath(la,Sa,la.path,Ma)));return ParseStatus.mergeArray(xa,ba)}get element(){return this._def.type}min(J,la){return new UE({...this._def,minLength:{value:J,message:errorUtil.toString(la)}})}max(J,la){return new UE({...this._def,maxLength:{value:J,message:errorUtil.toString(la)}})}length(J,la){return new UE({...this._def,exactLength:{value:J,message:errorUtil.toString(la)}})}nonempty(J){return this.min(1,J)}};ZodArray.create=(ua,J)=>new ZodArray({type:ua,minLength:null,maxLength:null,exactLength:null,typeName:ZodFirstPartyTypeKind.ZodArray,...processCreateParams(J)});function deepPartialify(ua){if(ua instanceof ZodObject){const J={};for(const la in ua.shape){const xa=ua.shape[la];J[la]=ZodOptional.create(deepPartialify(xa))}return new ZodObject({...ua._def,shape:()=>J})}else return ua instanceof ZodArray?new ZodArray({...ua._def,type:deepPartialify(ua.element)}):ua instanceof ZodOptional?ZodOptional.create(deepPartialify(ua.unwrap())):ua instanceof ZodNullable?ZodNullable.create(deepPartialify(ua.unwrap())):ua instanceof ZodTuple?ZodTuple.create(ua.items.map(J=>deepPartialify(J))):ua}var ZodObject=class r7 extends ZodType{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const J=this._def.shape(),la=util.objectKeys(J);return this._cached={shape:J,keys:la}}_parse(J){if(this._getType(J)!==ZodParsedType.object){const Ia=this._getOrReturnCtx(J);return addIssueToContext(Ia,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.object,received:Ia.parsedType}),INVALID}const{status:xa,ctx:Aa}=this._processInputParams(J),{shape:ba,keys:Sa}=this._getCached(),Ma=[];if(!(this._def.catchall instanceof ZodNever&&this._def.unknownKeys==="strip"))for(const Ia in Aa.data)Sa.includes(Ia)||Ma.push(Ia);const Ra=[];for(const Ia of Sa){const La=ba[Ia],Fa=Aa.data[Ia];Ra.push({key:{status:"valid",value:Ia},value:La._parse(new ParseInputLazyPath(Aa,Fa,Aa.path,Ia)),alwaysSet:Ia in Aa.data})}if(this._def.catchall instanceof ZodNever){const Ia=this._def.unknownKeys;if(Ia==="passthrough")for(const La of Ma)Ra.push({key:{status:"valid",value:La},value:{status:"valid",value:Aa.data[La]}});else if(Ia==="strict")Ma.length>0&&(addIssueToContext(Aa,{code:ZodIssueCode.unrecognized_keys,keys:Ma}),xa.dirty());else if(Ia!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const Ia=this._def.catchall;for(const La of Ma){const Fa=Aa.data[La];Ra.push({key:{status:"valid",value:La},value:Ia._parse(new ParseInputLazyPath(Aa,Fa,Aa.path,La)),alwaysSet:La in Aa.data})}}return Aa.common.async?Promise.resolve().then(async()=>{const Ia=[];for(const La of Ra){const Fa=await La.key,ka=await La.value;Ia.push({key:Fa,value:ka,alwaysSet:La.alwaysSet})}return Ia}).then(Ia=>ParseStatus.mergeObjectSync(xa,Ia)):ParseStatus.mergeObjectSync(xa,Ra)}get shape(){return this._def.shape()}strict(J){return errorUtil.errToObj,new r7({...this._def,unknownKeys:"strict",...J!==void 0?{errorMap:(la,xa)=>{var Aa,ba,Sa,Ma;const Ra=(Sa=(ba=(Aa=this._def).errorMap)===null||ba===void 0?void 0:ba.call(Aa,la,xa).message)!==null&&Sa!==void 0?Sa:xa.defaultError;return la.code==="unrecognized_keys"?{message:(Ma=errorUtil.errToObj(J).message)!==null&&Ma!==void 0?Ma:Ra}:{message:Ra}}}:{}})}strip(){return new r7({...this._def,unknownKeys:"strip"})}passthrough(){return new r7({...this._def,unknownKeys:"passthrough"})}extend(J){return new r7({...this._def,shape:()=>({...this._def.shape(),...J})})}merge(J){return new r7({unknownKeys:J._def.unknownKeys,catchall:J._def.catchall,shape:()=>({...this._def.shape(),...J._def.shape()}),typeName:ZodFirstPartyTypeKind.ZodObject})}setKey(J,la){return this.augment({[J]:la})}catchall(J){return new r7({...this._def,catchall:J})}pick(J){const la={};return util.objectKeys(J).forEach(xa=>{J[xa]&&this.shape[xa]&&(la[xa]=this.shape[xa])}),new r7({...this._def,shape:()=>la})}omit(J){const la={};return util.objectKeys(this.shape).forEach(xa=>{J[xa]||(la[xa]=this.shape[xa])}),new r7({...this._def,shape:()=>la})}deepPartial(){return deepPartialify(this)}partial(J){const la={};return util.objectKeys(this.shape).forEach(xa=>{const Aa=this.shape[xa];J&&!J[xa]?la[xa]=Aa:la[xa]=Aa.optional()}),new r7({...this._def,shape:()=>la})}required(J){const la={};return util.objectKeys(this.shape).forEach(xa=>{if(J&&!J[xa])la[xa]=this.shape[xa];else{let ba=this.shape[xa];for(;ba instanceof ZodOptional;)ba=ba._def.innerType;la[xa]=ba}}),new r7({...this._def,shape:()=>la})}keyof(){return createZodEnum(util.objectKeys(this.shape))}};ZodObject.create=(ua,J)=>new ZodObject({shape:()=>ua,unknownKeys:"strip",catchall:ZodNever.create(),typeName:ZodFirstPartyTypeKind.ZodObject,...processCreateParams(J)}),ZodObject.strictCreate=(ua,J)=>new ZodObject({shape:()=>ua,unknownKeys:"strict",catchall:ZodNever.create(),typeName:ZodFirstPartyTypeKind.ZodObject,...processCreateParams(J)}),ZodObject.lazycreate=(ua,J)=>new ZodObject({shape:ua,unknownKeys:"strip",catchall:ZodNever.create(),typeName:ZodFirstPartyTypeKind.ZodObject,...processCreateParams(J)});var ZodUnion=class extends ZodType{_parse(ua){const{ctx:J}=this._processInputParams(ua),la=this._def.options;function xa(Aa){for(const Sa of Aa)if(Sa.result.status==="valid")return Sa.result;for(const Sa of Aa)if(Sa.result.status==="dirty")return J.common.issues.push(...Sa.ctx.common.issues),Sa.result;const ba=Aa.map(Sa=>new ZodError(Sa.ctx.common.issues));return addIssueToContext(J,{code:ZodIssueCode.invalid_union,unionErrors:ba}),INVALID}if(J.common.async)return Promise.all(la.map(async Aa=>{const ba={...J,common:{...J.common,issues:[]},parent:null};return{result:await Aa._parseAsync({data:J.data,path:J.path,parent:ba}),ctx:ba}})).then(xa);{let Aa;const ba=[];for(const Ma of la){const Ra={...J,common:{...J.common,issues:[]},parent:null},Ia=Ma._parseSync({data:J.data,path:J.path,parent:Ra});if(Ia.status==="valid")return Ia;Ia.status==="dirty"&&!Aa&&(Aa={result:Ia,ctx:Ra}),Ra.common.issues.length&&ba.push(Ra.common.issues)}if(Aa)return J.common.issues.push(...Aa.ctx.common.issues),Aa.result;const Sa=ba.map(Ma=>new ZodError(Ma));return addIssueToContext(J,{code:ZodIssueCode.invalid_union,unionErrors:Sa}),INVALID}}get options(){return this._def.options}};ZodUnion.create=(ua,J)=>new ZodUnion({options:ua,typeName:ZodFirstPartyTypeKind.ZodUnion,...processCreateParams(J)});var getDiscriminator=ua=>ua instanceof ZodLazy?getDiscriminator(ua.schema):ua instanceof ZodEffects?getDiscriminator(ua.innerType()):ua instanceof ZodLiteral?[ua.value]:ua instanceof ZodEnum?ua.options:ua instanceof ZodNativeEnum?util.objectValues(ua.enum):ua instanceof ZodDefault?getDiscriminator(ua._def.innerType):ua instanceof ZodUndefined?[void 0]:ua instanceof ZodNull?[null]:ua instanceof ZodOptional?[void 0,...getDiscriminator(ua.unwrap())]:ua instanceof ZodNullable?[null,...getDiscriminator(ua.unwrap())]:ua instanceof ZodBranded||ua instanceof ZodReadonly?getDiscriminator(ua.unwrap()):ua instanceof ZodCatch?getDiscriminator(ua._def.innerType):[],ZodDiscriminatedUnion=class Gw extends ZodType{_parse(J){const{ctx:la}=this._processInputParams(J);if(la.parsedType!==ZodParsedType.object)return addIssueToContext(la,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.object,received:la.parsedType}),INVALID;const xa=this.discriminator,Aa=la.data[xa],ba=this.optionsMap.get(Aa);return ba?la.common.async?ba._parseAsync({data:la.data,path:la.path,parent:la}):ba._parseSync({data:la.data,path:la.path,parent:la}):(addIssueToContext(la,{code:ZodIssueCode.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[xa]}),INVALID)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(J,la,xa){const Aa=new Map;for(const ba of la){const Sa=getDiscriminator(ba.shape[J]);if(!Sa.length)throw new Error(`A discriminator value for key \`${J}\` could not be extracted from all schema options`);for(const Ma of Sa){if(Aa.has(Ma))throw new Error(`Discriminator property ${String(J)} has duplicate value ${String(Ma)}`);Aa.set(Ma,ba)}}return new Gw({typeName:ZodFirstPartyTypeKind.ZodDiscriminatedUnion,discriminator:J,options:la,optionsMap:Aa,...processCreateParams(xa)})}};function mergeValues(ua,J){const la=getParsedType(ua),xa=getParsedType(J);if(ua===J)return{valid:!0,data:ua};if(la===ZodParsedType.object&&xa===ZodParsedType.object){const Aa=util.objectKeys(J),ba=util.objectKeys(ua).filter(Ma=>Aa.indexOf(Ma)!==-1),Sa={...ua,...J};for(const Ma of ba){const Ra=mergeValues(ua[Ma],J[Ma]);if(!Ra.valid)return{valid:!1};Sa[Ma]=Ra.data}return{valid:!0,data:Sa}}else if(la===ZodParsedType.array&&xa===ZodParsedType.array){if(ua.length!==J.length)return{valid:!1};const Aa=[];for(let ba=0;ba<ua.length;ba++){const Sa=ua[ba],Ma=J[ba],Ra=mergeValues(Sa,Ma);if(!Ra.valid)return{valid:!1};Aa.push(Ra.data)}return{valid:!0,data:Aa}}else return la===ZodParsedType.date&&xa===ZodParsedType.date&&+ua==+J?{valid:!0,data:ua}:{valid:!1}}var ZodIntersection=class extends ZodType{_parse(ua){const{status:J,ctx:la}=this._processInputParams(ua),xa=(Aa,ba)=>{if(isAborted(Aa)||isAborted(ba))return INVALID;const Sa=mergeValues(Aa.value,ba.value);return Sa.valid?((isDirty(Aa)||isDirty(ba))&&J.dirty(),{status:J.value,value:Sa.data}):(addIssueToContext(la,{code:ZodIssueCode.invalid_intersection_types}),INVALID)};return la.common.async?Promise.all([this._def.left._parseAsync({data:la.data,path:la.path,parent:la}),this._def.right._parseAsync({data:la.data,path:la.path,parent:la})]).then(([Aa,ba])=>xa(Aa,ba)):xa(this._def.left._parseSync({data:la.data,path:la.path,parent:la}),this._def.right._parseSync({data:la.data,path:la.path,parent:la}))}};ZodIntersection.create=(ua,J,la)=>new ZodIntersection({left:ua,right:J,typeName:ZodFirstPartyTypeKind.ZodIntersection,...processCreateParams(la)});var ZodTuple=class Hw extends ZodType{_parse(J){const{status:la,ctx:xa}=this._processInputParams(J);if(xa.parsedType!==ZodParsedType.array)return addIssueToContext(xa,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.array,received:xa.parsedType}),INVALID;if(xa.data.length<this._def.items.length)return addIssueToContext(xa,{code:ZodIssueCode.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),INVALID;!this._def.rest&&xa.data.length>this._def.items.length&&(addIssueToContext(xa,{code:ZodIssueCode.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),la.dirty());const ba=[...xa.data].map((Sa,Ma)=>{const Ra=this._def.items[Ma]||this._def.rest;return Ra?Ra._parse(new ParseInputLazyPath(xa,Sa,xa.path,Ma)):null}).filter(Sa=>!!Sa);return xa.common.async?Promise.all(ba).then(Sa=>ParseStatus.mergeArray(la,Sa)):ParseStatus.mergeArray(la,ba)}get items(){return this._def.items}rest(J){return new Hw({...this._def,rest:J})}};ZodTuple.create=(ua,J)=>{if(!Array.isArray(ua))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new ZodTuple({items:ua,typeName:ZodFirstPartyTypeKind.ZodTuple,rest:null,...processCreateParams(J)})};var ZodRecord=class WT extends ZodType{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(J){const{status:la,ctx:xa}=this._processInputParams(J);if(xa.parsedType!==ZodParsedType.object)return addIssueToContext(xa,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.object,received:xa.parsedType}),INVALID;const Aa=[],ba=this._def.keyType,Sa=this._def.valueType;for(const Ma in xa.data)Aa.push({key:ba._parse(new ParseInputLazyPath(xa,Ma,xa.path,Ma)),value:Sa._parse(new ParseInputLazyPath(xa,xa.data[Ma],xa.path,Ma)),alwaysSet:Ma in xa.data});return xa.common.async?ParseStatus.mergeObjectAsync(la,Aa):ParseStatus.mergeObjectSync(la,Aa)}get element(){return this._def.valueType}static create(J,la,xa){return la instanceof ZodType?new WT({keyType:J,valueType:la,typeName:ZodFirstPartyTypeKind.ZodRecord,...processCreateParams(xa)}):new WT({keyType:ZodString.create(),valueType:J,typeName:ZodFirstPartyTypeKind.ZodRecord,...processCreateParams(la)})}},ZodMap=class extends ZodType{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(ua){const{status:J,ctx:la}=this._processInputParams(ua);if(la.parsedType!==ZodParsedType.map)return addIssueToContext(la,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.map,received:la.parsedType}),INVALID;const xa=this._def.keyType,Aa=this._def.valueType,ba=[...la.data.entries()].map(([Sa,Ma],Ra)=>({key:xa._parse(new ParseInputLazyPath(la,Sa,la.path,[Ra,"key"])),value:Aa._parse(new ParseInputLazyPath(la,Ma,la.path,[Ra,"value"]))}));if(la.common.async){const Sa=new Map;return Promise.resolve().then(async()=>{for(const Ma of ba){const Ra=await Ma.key,Ia=await Ma.value;if(Ra.status==="aborted"||Ia.status==="aborted")return INVALID;(Ra.status==="dirty"||Ia.status==="dirty")&&J.dirty(),Sa.set(Ra.value,Ia.value)}return{status:J.value,value:Sa}})}else{const Sa=new Map;for(const Ma of ba){const Ra=Ma.key,Ia=Ma.value;if(Ra.status==="aborted"||Ia.status==="aborted")return INVALID;(Ra.status==="dirty"||Ia.status==="dirty")&&J.dirty(),Sa.set(Ra.value,Ia.value)}return{status:J.value,value:Sa}}}};ZodMap.create=(ua,J,la)=>new ZodMap({valueType:J,keyType:ua,typeName:ZodFirstPartyTypeKind.ZodMap,...processCreateParams(la)});var ZodSet=class XT extends ZodType{_parse(J){const{status:la,ctx:xa}=this._processInputParams(J);if(xa.parsedType!==ZodParsedType.set)return addIssueToContext(xa,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.set,received:xa.parsedType}),INVALID;const Aa=this._def;Aa.minSize!==null&&xa.data.size<Aa.minSize.value&&(addIssueToContext(xa,{code:ZodIssueCode.too_small,minimum:Aa.minSize.value,type:"set",inclusive:!0,exact:!1,message:Aa.minSize.message}),la.dirty()),Aa.maxSize!==null&&xa.data.size>Aa.maxSize.value&&(addIssueToContext(xa,{code:ZodIssueCode.too_big,maximum:Aa.maxSize.value,type:"set",inclusive:!0,exact:!1,message:Aa.maxSize.message}),la.dirty());const ba=this._def.valueType;function Sa(Ra){const Ia=new Set;for(const La of Ra){if(La.status==="aborted")return INVALID;La.status==="dirty"&&la.dirty(),Ia.add(La.value)}return{status:la.value,value:Ia}}const Ma=[...xa.data.values()].map((Ra,Ia)=>ba._parse(new ParseInputLazyPath(xa,Ra,xa.path,Ia)));return xa.common.async?Promise.all(Ma).then(Ra=>Sa(Ra)):Sa(Ma)}min(J,la){return new XT({...this._def,minSize:{value:J,message:errorUtil.toString(la)}})}max(J,la){return new XT({...this._def,maxSize:{value:J,message:errorUtil.toString(la)}})}size(J,la){return this.min(J,la).max(J,la)}nonempty(J){return this.min(1,J)}};ZodSet.create=(ua,J)=>new ZodSet({valueType:ua,minSize:null,maxSize:null,typeName:ZodFirstPartyTypeKind.ZodSet,...processCreateParams(J)});var ZodFunction=class kE extends ZodType{constructor(){super(...arguments),this.validate=this.implement}_parse(J){const{ctx:la}=this._processInputParams(J);if(la.parsedType!==ZodParsedType.function)return addIssueToContext(la,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.function,received:la.parsedType}),INVALID;function xa(Ma,Ra){return makeIssue({data:Ma,path:la.path,errorMaps:[la.common.contextualErrorMap,la.schemaErrorMap,getErrorMap(),errorMap].filter(Ia=>!!Ia),issueData:{code:ZodIssueCode.invalid_arguments,argumentsError:Ra}})}function Aa(Ma,Ra){return makeIssue({data:Ma,path:la.path,errorMaps:[la.common.contextualErrorMap,la.schemaErrorMap,getErrorMap(),errorMap].filter(Ia=>!!Ia),issueData:{code:ZodIssueCode.invalid_return_type,returnTypeError:Ra}})}const ba={errorMap:la.common.contextualErrorMap},Sa=la.data;if(this._def.returns instanceof ZodPromise){const Ma=this;return OK(async function(...Ra){const Ia=new ZodError([]),La=await Ma._def.args.parseAsync(Ra,ba).catch(el=>{throw Ia.addIssue(xa(Ra,el)),Ia}),Fa=await Reflect.apply(Sa,this,La);return await Ma._def.returns._def.type.parseAsync(Fa,ba).catch(el=>{throw Ia.addIssue(Aa(Fa,el)),Ia})})}else{const Ma=this;return OK(function(...Ra){const Ia=Ma._def.args.safeParse(Ra,ba);if(!Ia.success)throw new ZodError([xa(Ra,Ia.error)]);const La=Reflect.apply(Sa,this,Ia.data),Fa=Ma._def.returns.safeParse(La,ba);if(!Fa.success)throw new ZodError([Aa(La,Fa.error)]);return Fa.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...J){return new kE({...this._def,args:ZodTuple.create(J).rest(ZodUnknown.create())})}returns(J){return new kE({...this._def,returns:J})}implement(J){return this.parse(J)}strictImplement(J){return this.parse(J)}static create(J,la,xa){return new kE({args:J||ZodTuple.create([]).rest(ZodUnknown.create()),returns:la||ZodUnknown.create(),typeName:ZodFirstPartyTypeKind.ZodFunction,...processCreateParams(xa)})}},ZodLazy=class extends ZodType{get schema(){return this._def.getter()}_parse(ua){const{ctx:J}=this._processInputParams(ua);return this._def.getter()._parse({data:J.data,path:J.path,parent:J})}};ZodLazy.create=(ua,J)=>new ZodLazy({getter:ua,typeName:ZodFirstPartyTypeKind.ZodLazy,...processCreateParams(J)});var ZodLiteral=class extends ZodType{_parse(ua){if(ua.data!==this._def.value){const J=this._getOrReturnCtx(ua);return addIssueToContext(J,{received:J.data,code:ZodIssueCode.invalid_literal,expected:this._def.value}),INVALID}return{status:"valid",value:ua.data}}get value(){return this._def.value}};ZodLiteral.create=(ua,J)=>new ZodLiteral({value:ua,typeName:ZodFirstPartyTypeKind.ZodLiteral,...processCreateParams(J)});function createZodEnum(ua,J){return new ZodEnum({values:ua,typeName:ZodFirstPartyTypeKind.ZodEnum,...processCreateParams(J)})}var ZodEnum=class YT extends ZodType{constructor(){super(...arguments),_ZodEnum_cache.set(this,void 0)}_parse(J){if(typeof J.data!="string"){const la=this._getOrReturnCtx(J),xa=this._def.values;return addIssueToContext(la,{expected:util.joinValues(xa),received:la.parsedType,code:ZodIssueCode.invalid_type}),INVALID}if(__classPrivateFieldGet(this,_ZodEnum_cache)||__classPrivateFieldSet(this,_ZodEnum_cache,new Set(this._def.values)),!__classPrivateFieldGet(this,_ZodEnum_cache).has(J.data)){const la=this._getOrReturnCtx(J),xa=this._def.values;return addIssueToContext(la,{received:la.data,code:ZodIssueCode.invalid_enum_value,options:xa}),INVALID}return OK(J.data)}get options(){return this._def.values}get enum(){const J={};for(const la of this._def.values)J[la]=la;return J}get Values(){const J={};for(const la of this._def.values)J[la]=la;return J}get Enum(){const J={};for(const la of this._def.values)J[la]=la;return J}extract(J,la=this._def){return YT.create(J,{...this._def,...la})}exclude(J,la=this._def){return YT.create(this.options.filter(xa=>!J.includes(xa)),{...this._def,...la})}};_ZodEnum_cache=new WeakMap,ZodEnum.create=createZodEnum;var ZodNativeEnum=class extends ZodType{constructor(){super(...arguments),_ZodNativeEnum_cache.set(this,void 0)}_parse(ua){const J=util.getValidEnumValues(this._def.values),la=this._getOrReturnCtx(ua);if(la.parsedType!==ZodParsedType.string&&la.parsedType!==ZodParsedType.number){const xa=util.objectValues(J);return addIssueToContext(la,{expected:util.joinValues(xa),received:la.parsedType,code:ZodIssueCode.invalid_type}),INVALID}if(__classPrivateFieldGet(this,_ZodNativeEnum_cache)||__classPrivateFieldSet(this,_ZodNativeEnum_cache,new Set(util.getValidEnumValues(this._def.values))),!__classPrivateFieldGet(this,_ZodNativeEnum_cache).has(ua.data)){const xa=util.objectValues(J);return addIssueToContext(la,{received:la.data,code:ZodIssueCode.invalid_enum_value,options:xa}),INVALID}return OK(ua.data)}get enum(){return this._def.values}};_ZodNativeEnum_cache=new WeakMap,ZodNativeEnum.create=(ua,J)=>new ZodNativeEnum({values:ua,typeName:ZodFirstPartyTypeKind.ZodNativeEnum,...processCreateParams(J)});var ZodPromise=class extends ZodType{unwrap(){return this._def.type}_parse(ua){const{ctx:J}=this._processInputParams(ua);if(J.parsedType!==ZodParsedType.promise&&J.common.async===!1)return addIssueToContext(J,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.promise,received:J.parsedType}),INVALID;const la=J.parsedType===ZodParsedType.promise?J.data:Promise.resolve(J.data);return OK(la.then(xa=>this._def.type.parseAsync(xa,{path:J.path,errorMap:J.common.contextualErrorMap})))}};ZodPromise.create=(ua,J)=>new ZodPromise({type:ua,typeName:ZodFirstPartyTypeKind.ZodPromise,...processCreateParams(J)});var ZodEffects=class extends ZodType{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===ZodFirstPartyTypeKind.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(ua){const{status:J,ctx:la}=this._processInputParams(ua),xa=this._def.effect||null,Aa={addIssue:ba=>{addIssueToContext(la,ba),ba.fatal?J.abort():J.dirty()},get path(){return la.path}};if(Aa.addIssue=Aa.addIssue.bind(Aa),xa.type==="preprocess"){const ba=xa.transform(la.data,Aa);if(la.common.async)return Promise.resolve(ba).then(async Sa=>{if(J.value==="aborted")return INVALID;const Ma=await this._def.schema._parseAsync({data:Sa,path:la.path,parent:la});return Ma.status==="aborted"?INVALID:Ma.status==="dirty"||J.value==="dirty"?DIRTY(Ma.value):Ma});{if(J.value==="aborted")return INVALID;const Sa=this._def.schema._parseSync({data:ba,path:la.path,parent:la});return Sa.status==="aborted"?INVALID:Sa.status==="dirty"||J.value==="dirty"?DIRTY(Sa.value):Sa}}if(xa.type==="refinement"){const ba=Sa=>{const Ma=xa.refinement(Sa,Aa);if(la.common.async)return Promise.resolve(Ma);if(Ma instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return Sa};if(la.common.async===!1){const Sa=this._def.schema._parseSync({data:la.data,path:la.path,parent:la});return Sa.status==="aborted"?INVALID:(Sa.status==="dirty"&&J.dirty(),ba(Sa.value),{status:J.value,value:Sa.value})}else return this._def.schema._parseAsync({data:la.data,path:la.path,parent:la}).then(Sa=>Sa.status==="aborted"?INVALID:(Sa.status==="dirty"&&J.dirty(),ba(Sa.value).then(()=>({status:J.value,value:Sa.value}))))}if(xa.type==="transform")if(la.common.async===!1){const ba=this._def.schema._parseSync({data:la.data,path:la.path,parent:la});if(!isValid(ba))return ba;const Sa=xa.transform(ba.value,Aa);if(Sa instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:J.value,value:Sa}}else return this._def.schema._parseAsync({data:la.data,path:la.path,parent:la}).then(ba=>isValid(ba)?Promise.resolve(xa.transform(ba.value,Aa)).then(Sa=>({status:J.value,value:Sa})):ba);util.assertNever(xa)}};ZodEffects.create=(ua,J,la)=>new ZodEffects({schema:ua,typeName:ZodFirstPartyTypeKind.ZodEffects,effect:J,...processCreateParams(la)}),ZodEffects.createWithPreprocess=(ua,J,la)=>new ZodEffects({schema:J,effect:{type:"preprocess",transform:ua},typeName:ZodFirstPartyTypeKind.ZodEffects,...processCreateParams(la)});var ZodOptional=class extends ZodType{_parse(ua){return this._getType(ua)===ZodParsedType.undefined?OK(void 0):this._def.innerType._parse(ua)}unwrap(){return this._def.innerType}};ZodOptional.create=(ua,J)=>new ZodOptional({innerType:ua,typeName:ZodFirstPartyTypeKind.ZodOptional,...processCreateParams(J)});var ZodNullable=class extends ZodType{_parse(ua){return this._getType(ua)===ZodParsedType.null?OK(null):this._def.innerType._parse(ua)}unwrap(){return this._def.innerType}};ZodNullable.create=(ua,J)=>new ZodNullable({innerType:ua,typeName:ZodFirstPartyTypeKind.ZodNullable,...processCreateParams(J)});var ZodDefault=class extends ZodType{_parse(ua){const{ctx:J}=this._processInputParams(ua);let la=J.data;return J.parsedType===ZodParsedType.undefined&&(la=this._def.defaultValue()),this._def.innerType._parse({data:la,path:J.path,parent:J})}removeDefault(){return this._def.innerType}};ZodDefault.create=(ua,J)=>new ZodDefault({innerType:ua,typeName:ZodFirstPartyTypeKind.ZodDefault,defaultValue:typeof J.default=="function"?J.default:()=>J.default,...processCreateParams(J)});var ZodCatch=class extends ZodType{_parse(ua){const{ctx:J}=this._processInputParams(ua),la={...J,common:{...J.common,issues:[]}},xa=this._def.innerType._parse({data:la.data,path:la.path,parent:{...la}});return isAsync(xa)?xa.then(Aa=>({status:"valid",value:Aa.status==="valid"?Aa.value:this._def.catchValue({get error(){return new ZodError(la.common.issues)},input:la.data})})):{status:"valid",value:xa.status==="valid"?xa.value:this._def.catchValue({get error(){return new ZodError(la.common.issues)},input:la.data})}}removeCatch(){return this._def.innerType}};ZodCatch.create=(ua,J)=>new ZodCatch({innerType:ua,typeName:ZodFirstPartyTypeKind.ZodCatch,catchValue:typeof J.catch=="function"?J.catch:()=>J.catch,...processCreateParams(J)});var ZodNaN=class extends ZodType{_parse(ua){if(this._getType(ua)!==ZodParsedType.nan){const la=this._getOrReturnCtx(ua);return addIssueToContext(la,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.nan,received:la.parsedType}),INVALID}return{status:"valid",value:ua.data}}};ZodNaN.create=ua=>new ZodNaN({typeName:ZodFirstPartyTypeKind.ZodNaN,...processCreateParams(ua)});var BRAND=Symbol("zod_brand"),ZodBranded=class extends ZodType{_parse(ua){const{ctx:J}=this._processInputParams(ua),la=J.data;return this._def.type._parse({data:la,path:J.path,parent:J})}unwrap(){return this._def.type}},ZodPipeline=class qw extends ZodType{_parse(J){const{status:la,ctx:xa}=this._processInputParams(J);if(xa.common.async)return(async()=>{const ba=await this._def.in._parseAsync({data:xa.data,path:xa.path,parent:xa});return ba.status==="aborted"?INVALID:ba.status==="dirty"?(la.dirty(),DIRTY(ba.value)):this._def.out._parseAsync({data:ba.value,path:xa.path,parent:xa})})();{const Aa=this._def.in._parseSync({data:xa.data,path:xa.path,parent:xa});return Aa.status==="aborted"?INVALID:Aa.status==="dirty"?(la.dirty(),{status:"dirty",value:Aa.value}):this._def.out._parseSync({data:Aa.value,path:xa.path,parent:xa})}}static create(J,la){return new qw({in:J,out:la,typeName:ZodFirstPartyTypeKind.ZodPipeline})}},ZodReadonly=class extends ZodType{_parse(ua){const J=this._def.innerType._parse(ua),la=xa=>(isValid(xa)&&(xa.value=Object.freeze(xa.value)),xa);return isAsync(J)?J.then(xa=>la(xa)):la(J)}unwrap(){return this._def.innerType}};ZodReadonly.create=(ua,J)=>new ZodReadonly({innerType:ua,typeName:ZodFirstPartyTypeKind.ZodReadonly,...processCreateParams(J)});function custom(ua,J={},la){return ua?ZodAny.create().superRefine((xa,Aa)=>{var ba,Sa;if(!ua(xa)){const Ma=typeof J=="function"?J(xa):typeof J=="string"?{message:J}:J,Ra=(Sa=(ba=Ma.fatal)!==null&&ba!==void 0?ba:la)!==null&&Sa!==void 0?Sa:!0,Ia=typeof Ma=="string"?{message:Ma}:Ma;Aa.addIssue({code:"custom",...Ia,fatal:Ra})}}):ZodAny.create()}var late={object:ZodObject.lazycreate},ZodFirstPartyTypeKind;(function(ua){ua.ZodString="ZodString",ua.ZodNumber="ZodNumber",ua.ZodNaN="ZodNaN",ua.ZodBigInt="ZodBigInt",ua.ZodBoolean="ZodBoolean",ua.ZodDate="ZodDate",ua.ZodSymbol="ZodSymbol",ua.ZodUndefined="ZodUndefined",ua.ZodNull="ZodNull",ua.ZodAny="ZodAny",ua.ZodUnknown="ZodUnknown",ua.ZodNever="ZodNever",ua.ZodVoid="ZodVoid",ua.ZodArray="ZodArray",ua.ZodObject="ZodObject",ua.ZodUnion="ZodUnion",ua.ZodDiscriminatedUnion="ZodDiscriminatedUnion",ua.ZodIntersection="ZodIntersection",ua.ZodTuple="ZodTuple",ua.ZodRecord="ZodRecord",ua.ZodMap="ZodMap",ua.ZodSet="ZodSet",ua.ZodFunction="ZodFunction",ua.ZodLazy="ZodLazy",ua.ZodLiteral="ZodLiteral",ua.ZodEnum="ZodEnum",ua.ZodEffects="ZodEffects",ua.ZodNativeEnum="ZodNativeEnum",ua.ZodOptional="ZodOptional",ua.ZodNullable="ZodNullable",ua.ZodDefault="ZodDefault",ua.ZodCatch="ZodCatch",ua.ZodPromise="ZodPromise",ua.ZodBranded="ZodBranded",ua.ZodPipeline="ZodPipeline",ua.ZodReadonly="ZodReadonly"})(ZodFirstPartyTypeKind||(ZodFirstPartyTypeKind={}));var instanceOfType=(ua,J={message:`Input not instance of ${ua.name}`})=>custom(la=>la instanceof ua,J),stringType=ZodString.create,numberType=ZodNumber.create,nanType=ZodNaN.create,bigIntType=ZodBigInt.create,booleanType=ZodBoolean.create,dateType=ZodDate.create,symbolType=ZodSymbol.create,undefinedType=ZodUndefined.create,nullType=ZodNull.create,anyType=ZodAny.create,unknownType=ZodUnknown.create,neverType=ZodNever.create,voidType=ZodVoid.create,arrayType=ZodArray.create,objectType=ZodObject.create,strictObjectType=ZodObject.strictCreate,unionType=ZodUnion.create,discriminatedUnionType=ZodDiscriminatedUnion.create,intersectionType=ZodIntersection.create,tupleType=ZodTuple.create,recordType=ZodRecord.create,mapType=ZodMap.create,setType=ZodSet.create,functionType=ZodFunction.create,lazyType=ZodLazy.create,literalType=ZodLiteral.create,enumType=ZodEnum.create,nativeEnumType=ZodNativeEnum.create,promiseType=ZodPromise.create,effectsType=ZodEffects.create,optionalType=ZodOptional.create,nullableType=ZodNullable.create,preprocessType=ZodEffects.createWithPreprocess,pipelineType=ZodPipeline.create,ostring=()=>stringType().optional(),onumber=()=>numberType().optional(),oboolean=()=>booleanType().optional(),coerce={string:ua=>ZodString.create({...ua,coerce:!0}),number:ua=>ZodNumber.create({...ua,coerce:!0}),boolean:ua=>ZodBoolean.create({...ua,coerce:!0}),bigint:ua=>ZodBigInt.create({...ua,coerce:!0}),date:ua=>ZodDate.create({...ua,coerce:!0})},NEVER=INVALID,z$1=Object.freeze({__proto__:null,defaultErrorMap:errorMap,setErrorMap,getErrorMap,makeIssue,EMPTY_PATH,addIssueToContext,ParseStatus,INVALID,DIRTY,OK,isAborted,isDirty,isValid,isAsync,get util(){return util},get objectUtil(){return objectUtil},ZodParsedType,getParsedType,ZodType,datetimeRegex,ZodString,ZodNumber,ZodBigInt,ZodBoolean,ZodDate,ZodSymbol,ZodUndefined,ZodNull,ZodAny,ZodUnknown,ZodNever,ZodVoid,ZodArray,ZodObject,ZodUnion,ZodDiscriminatedUnion,ZodIntersection,ZodTuple,ZodRecord,ZodMap,ZodSet,ZodFunction,ZodLazy,ZodLiteral,ZodEnum,ZodNativeEnum,ZodPromise,ZodEffects,ZodTransformer:ZodEffects,ZodOptional,ZodNullable,ZodDefault,ZodCatch,ZodNaN,BRAND,ZodBranded,ZodPipeline,ZodReadonly,custom,Schema:ZodType,ZodSchema:ZodType,late,get ZodFirstPartyTypeKind(){return ZodFirstPartyTypeKind},coerce,any:anyType,array:arrayType,bigint:bigIntType,boolean:booleanType,date:dateType,discriminatedUnion:discriminatedUnionType,effect:effectsType,enum:enumType,function:functionType,instanceof:instanceOfType,intersection:intersectionType,lazy:lazyType,literal:literalType,map:mapType,nan:nanType,nativeEnum:nativeEnumType,never:neverType,null:nullType,nullable:nullableType,number:numberType,object:objectType,oboolean,onumber,optional:optionalType,ostring,pipeline:pipelineType,preprocess:preprocessType,promise:promiseType,record:recordType,set:setType,strictObject:strictObjectType,string:stringType,symbol:symbolType,transformer:effectsType,tuple:tupleType,undefined:undefinedType,union:unionType,unknown:unknownType,void:voidType,NEVER,ZodIssueCode,quotelessJson,ZodError}),urlAlphabet="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",nanoid=(ua=21)=>{let J="",la=crypto.getRandomValues(new Uint8Array(ua|=0));for(;ua--;)J+=urlAlphabet[la[ua]&63];return J},unitMappings={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,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:{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}}},unitMappingAndVariantSuffixes=new Set;for(const[ua,J]of Object.entries(unitMappings)){unitMappingAndVariantSuffixes.add(ua);for(const la of Object.keys(J.variants))unitMappingAndVariantSuffixes.add(la)}function getBaseTscircuitUnit(ua){for(const[J,la]of Object.entries(unitMappings))if(ua in la.variants)return{baseUnit:la.baseUnit,conversionFactor:la.variants[ua]};return{baseUnit:ua,conversionFactor:1}}var si_prefix_multiplier={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},parseAndConvertSiUnit=ua=>{var Ma;if(typeof ua>"u")return{parsedUnit:null,unitOfValue:null,value:null};if(typeof ua=="string"&&ua.match(/^[\d\.]+$/))return{value:Number.parseFloat(ua),parsedUnit:null,unitOfValue:null};if(typeof ua=="number")return{value:ua,parsedUnit:null,unitOfValue:null};if(typeof ua=="object"&&"x"in ua&&"y"in ua){const{parsedUnit:Ra,unitOfValue:Ia}=parseAndConvertSiUnit(ua.x);return{parsedUnit:Ra,unitOfValue:Ia,value:{x:parseAndConvertSiUnit(ua.x).value,y:parseAndConvertSiUnit(ua.y).value}}}const la=(Ma=ua.toString().split("").reverse().join("").match(/[^\d\s]+/))==null?void 0:Ma[0];if(!la)throw new Error(`Could not determine unit: "${ua}"`);const xa=la.split("").reverse().join(""),Aa=ua.slice(0,-xa.length);if(xa in si_prefix_multiplier&&!unitMappingAndVariantSuffixes.has(xa)){const Ra=si_prefix_multiplier[xa];return{parsedUnit:null,unitOfValue:null,value:Number.parseFloat(Aa)*Ra}}const{baseUnit:ba,conversionFactor:Sa}=getBaseTscircuitUnit(xa);return{parsedUnit:xa,unitOfValue:ba,value:Sa*Number.parseFloat(Aa)}},resistance=z$1.string().or(z$1.number()).transform(ua=>parseAndConvertSiUnit(ua).value),capacitance=z$1.string().or(z$1.number()).transform(ua=>parseAndConvertSiUnit(ua).value),inductance=z$1.string().or(z$1.number()).transform(ua=>parseAndConvertSiUnit(ua).value),voltage=z$1.string().or(z$1.number()).transform(ua=>parseAndConvertSiUnit(ua).value),length2=z$1.string().or(z$1.number()).transform(ua=>parseAndConvertSiUnit(ua).value),frequency=z$1.string().or(z$1.number()).transform(ua=>parseAndConvertSiUnit(ua).value),distance=length2,current=z$1.string().or(z$1.number()).transform(ua=>parseAndConvertSiUnit(ua).value),time=z$1.string().or(z$1.number()).transform(ua=>parseAndConvertSiUnit(ua).value),rotation=z$1.string().or(z$1.number()).transform(ua=>typeof ua=="number"?ua:ua.endsWith("deg")?Number.parseFloat(ua.split("deg")[0]):ua.endsWith("rad")?Number.parseFloat(ua.split("rad")[0])*180/Math.PI:Number.parseFloat(ua)),battery_capacity=z$1.number().or(z$1.string().endsWith("mAh")).transform(ua=>{if(typeof ua=="string"){const J=ua.replace("mAh",""),la=Number.parseFloat(J);if(Number.isNaN(la))throw new Error("Invalid capacity");return la}return ua}).describe("Battery capacity in mAh"),point=z$1.object({x:distance,y:distance}),position=point,point3=z$1.object({x:distance,y:distance,z:distance}),position3=point3,size$3=z$1.object({width:z$1.number(),height:z$1.number()}),getZodPrefixedIdWithDefault=ua=>z$1.string().optional().default(()=>`${ua}_${nanoid(10)}`),supplier_name=z$1.enum(["jlcpcb","macrofab","pcbway","digikey","mouser","lcsc"]),source_component_base=z$1.object({type:z$1.literal("source_component"),ftype:z$1.string().optional(),source_component_id:z$1.string(),name:z$1.string(),manufacturer_part_number:z$1.string().optional(),supplier_part_numbers:z$1.record(supplier_name,z$1.array(z$1.string())).optional(),display_value:z$1.string().optional()}),source_simple_capacitor=source_component_base.extend({ftype:z$1.literal("simple_capacitor"),capacitance,display_capacitance:z$1.string().optional(),max_decoupling_trace_length:distance.optional()}),source_simple_resistor=source_component_base.extend({ftype:z$1.literal("simple_resistor"),resistance,display_resistance:z$1.string().optional()}),source_simple_diode=source_component_base.extend({ftype:z$1.literal("simple_diode")}),source_simple_ground=source_component_base.extend({ftype:z$1.literal("simple_ground")}),source_simple_bug=source_component_base.extend({ftype:z$1.literal("simple_bug")}).describe("@deprecated"),source_simple_chip=source_component_base.extend({ftype:z$1.literal("simple_chip")}),source_led=source_simple_diode.extend({ftype:z$1.literal("led")}),source_simple_power_source=source_component_base.extend({ftype:z$1.literal("simple_power_source"),voltage}),source_simple_battery=source_component_base.extend({ftype:z$1.literal("simple_battery"),capacity:battery_capacity}),source_simple_inductor=source_component_base.extend({ftype:z$1.literal("simple_inductor"),inductance}),source_simple_push_button=source_component_base.extend({ftype:z$1.literal("simple_push_button")}),source_simple_potentiometer=source_component_base.extend({ftype:z$1.literal("simple_potentiometer"),max_resistance:resistance}),source_simple_crystal=source_component_base.extend({ftype:z$1.literal("simple_crystal"),frequency:z$1.number().describe("Frequency in Hz"),load_capacitance:z$1.number().optional().describe("Load capacitance in pF")}),source_simple_pin_header=source_component_base.extend({ftype:z$1.literal("simple_pin_header"),pin_count:z$1.number(),gender:z$1.enum(["male","female"]).optional().default("male")}),source_simple_resonator=source_component_base.extend({ftype:z$1.literal("simple_resonator"),load_capacitance:capacitance,equivalent_series_resistance:resistance.optional(),frequency}),source_simple_transistor=source_component_base.extend({ftype:z$1.literal("simple_transistor"),transistor_type:z$1.enum(["npn","pnp"])}),source_simple_mosfet=source_component_base.extend({ftype:z$1.literal("simple_mosfet"),channel_type:z$1.enum(["n","p"]),mosfet_mode:z$1.enum(["enhancement","depletion"])}),any_source_component=z$1.union([source_simple_resistor,source_simple_capacitor,source_simple_diode,source_simple_ground,source_simple_chip,source_simple_bug,source_led,source_simple_power_source,source_simple_battery,source_simple_inductor,source_simple_push_button,source_simple_potentiometer,source_simple_crystal,source_simple_pin_header,source_simple_resonator,source_simple_transistor,source_simple_mosfet]),source_port=z$1.object({type:z$1.literal("source_port"),pin_number:z$1.number().optional(),port_hints:z$1.array(z$1.string()).optional(),name:z$1.string(),source_port_id:z$1.string(),source_component_id:z$1.string()}),source_trace=z$1.object({type:z$1.literal("source_trace"),source_trace_id:z$1.string(),connected_source_port_ids:z$1.array(z$1.string()),connected_source_net_ids:z$1.array(z$1.string()),subcircuit_connectivity_map_key:z$1.string().optional(),max_length:z$1.number().optional(),display_name:z$1.string().optional()}),source_group=z$1.object({type:z$1.literal("source_group"),source_group_id:z$1.string(),name:z$1.string().optional()}),source_net=z$1.object({type:z$1.literal("source_net"),source_net_id:z$1.string(),name:z$1.string(),member_source_group_ids:z$1.array(z$1.string()),is_power:z$1.boolean().optional(),is_ground:z$1.boolean().optional(),is_digital_signal:z$1.boolean().optional(),is_analog_signal:z$1.boolean().optional(),trace_width:z$1.number().optional()}),schematic_box=z$1.object({type:z$1.literal("schematic_box"),schematic_component_id:z$1.string(),width:distance,height:distance,x:distance,y:distance}).describe("Draws a box on the schematic"),schematic_path=z$1.object({type:z$1.literal("schematic_path"),schematic_component_id:z$1.string(),fill_color:z$1.enum(["red","blue"]).optional(),is_filled:z$1.boolean().optional(),points:z$1.array(point)}),schematic_pin_styles=z$1.record(z$1.object({left_margin:length2.optional(),right_margin:length2.optional(),top_margin:length2.optional(),bottom_margin:length2.optional()})),schematic_component_port_arrangement_by_size=z$1.object({left_size:z$1.number(),right_size:z$1.number(),top_size:z$1.number().optional(),bottom_size:z$1.number().optional()}),schematic_component_port_arrangement_by_sides=z$1.object({left_side:z$1.object({pins:z$1.array(z$1.number()),direction:z$1.enum(["top-to-bottom","bottom-to-top"]).optional()}).optional(),right_side:z$1.object({pins:z$1.array(z$1.number()),direction:z$1.enum(["top-to-bottom","bottom-to-top"]).optional()}).optional(),top_side:z$1.object({pins:z$1.array(z$1.number()),direction:z$1.enum(["left-to-right","right-to-left"]).optional()}).optional(),bottom_side:z$1.object({pins:z$1.array(z$1.number()),direction:z$1.enum(["left-to-right","right-to-left"]).optional()}).optional()}),port_arrangement=z$1.union([schematic_component_port_arrangement_by_size,schematic_component_port_arrangement_by_sides]),schematic_component=z$1.object({type:z$1.literal("schematic_component"),rotation:rotation.default(0),size:size$3,center:point,source_component_id:z$1.string(),schematic_component_id:z$1.string(),pin_spacing:length2.optional(),pin_styles:schematic_pin_styles.optional(),box_width:length2.optional(),symbol_name:z$1.string().optional(),port_arrangement:port_arrangement.optional(),port_labels:z$1.record(z$1.string()).optional(),symbol_display_value:z$1.string().optional()}),schematic_line=z$1.object({type:z$1.literal("schematic_line"),schematic_component_id:z$1.string(),x1:distance,x2:distance,y1:distance,y2:distance}),schematic_trace=z$1.object({type:z$1.literal("schematic_trace"),schematic_trace_id:z$1.string(),source_trace_id:z$1.string(),junctions:z$1.array(z$1.object({x:z$1.number(),y:z$1.number()})),edges:z$1.array(z$1.object({from:z$1.object({x:z$1.number(),y:z$1.number()}),to:z$1.object({x:z$1.number(),y:z$1.number()}),is_crossing:z$1.boolean().optional(),from_schematic_port_id:z$1.string().optional(),to_schematic_port_id:z$1.string().optional()}))}),schematic_text=z$1.object({type:z$1.literal("schematic_text"),schematic_component_id:z$1.string(),schematic_text_id:z$1.string(),text:z$1.string(),position:z$1.object({x:distance,y:distance}),rotation:z$1.number().default(0),anchor:z$1.enum(["center","left","right","top","bottom"]).default("center"),color:z$1.string().default("#000000")}),schematic_port=z$1.object({type:z$1.literal("schematic_port"),schematic_port_id:z$1.string(),source_port_id:z$1.string(),schematic_component_id:z$1.string().optional(),center:point,facing_direction:z$1.enum(["up","down","left","right"]).optional(),distance_from_component_edge:z$1.number().optional(),side_of_component:z$1.enum(["top","bottom","left","right"]).optional(),true_ccw_index:z$1.number().optional(),pin_number:z$1.number().optional(),display_pin_label:z$1.string().optional()}).describe("Defines a port on a schematic component"),schematic_net_label=z$1.object({type:z$1.literal("schematic_net_label"),source_net_id:z$1.string(),center:point,anchor_position:point.optional(),anchor_side:z$1.enum(["top","bottom","left","right"]),text:z$1.string(),symbol_name:z$1.string().optional()}),schematic_error=z$1.object({type:z$1.literal("schematic_error"),schematic_error_id:z$1.string(),error_type:z$1.literal("schematic_port_not_found"),message:z$1.string()}).describe("Defines a schematic error on the schematic"),schematic_debug_object_base=z$1.object({type:z$1.literal("schematic_debug_object"),label:z$1.string().optional()}),schematic_debug_rect=schematic_debug_object_base.extend({shape:z$1.literal("rect"),center:point,size:size$3}),schematic_debug_line=schematic_debug_object_base.extend({shape:z$1.literal("line"),start:point,end:point}),schematic_debug_point=schematic_debug_object_base.extend({shape:z$1.literal("point"),center:point}),schematic_debug_object=z$1.discriminatedUnion("shape",[schematic_debug_rect,schematic_debug_line,schematic_debug_point]),schematic_voltage_probe=z$1.object({type:z$1.literal("schematic_voltage_probe"),schematic_voltage_probe_id:z$1.string(),position:point,schematic_trace_id:z$1.string(),voltage:voltage.optional()}).describe("Defines a voltage probe measurement point on a schematic trace"),all_layers=["top","bottom","inner1","inner2","inner3","inner4","inner5","inner6"],layer_string=z$1.enum(all_layers),layer_ref=layer_string.or(z$1.object({name:layer_string})).transform(ua=>typeof ua=="string"?ua:ua.name),visible_layer=z$1.enum(["top","bottom"]),pcb_route_hint=z$1.object({x:distance,y:distance,via:z$1.boolean().optional(),via_to_layer:layer_ref.optional()}),pcb_route_hints=z$1.array(pcb_route_hint),route_hint_point=z$1.object({x:distance,y:distance,via:z$1.boolean().optional(),to_layer:layer_ref.optional(),trace_width:distance.optional()}),pcb_component=z$1.object({type:z$1.literal("pcb_component"),pcb_component_id:getZodPrefixedIdWithDefault("pcb_component"),source_component_id:z$1.string(),center:point,layer:layer_ref,rotation,width:length2,height:length2}).describe("Defines a component on the PCB"),pcb_hole_circle_or_square=z$1.object({type:z$1.literal("pcb_hole"),pcb_hole_id:getZodPrefixedIdWithDefault("pcb_hole"),hole_shape:z$1.enum(["circle","square"]),hole_diameter:z$1.number(),x:distance,y:distance}),pcb_hole_circle_or_square_shape=pcb_hole_circle_or_square.describe("Defines a circular or square hole on the PCB"),pcb_hole_oval=z$1.object({type:z$1.literal("pcb_hole"),pcb_hole_id:getZodPrefixedIdWithDefault("pcb_hole"),hole_shape:z$1.literal("oval"),hole_width:z$1.number(),hole_height:z$1.number(),x:distance,y:distance}),pcb_hole_oval_shape=pcb_hole_oval.describe("Defines an oval hole on the PCB"),pcb_hole=pcb_hole_circle_or_square.or(pcb_hole_oval),pcb_plated_hole_circle=z$1.object({type:z$1.literal("pcb_plated_hole"),shape:z$1.literal("circle"),outer_diameter:z$1.number(),hole_diameter:z$1.number(),x:distance,y:distance,layers:z$1.array(layer_ref),port_hints:z$1.array(z$1.string()).optional(),pcb_component_id:z$1.string().optional(),pcb_port_id:z$1.string().optional(),pcb_plated_hole_id:getZodPrefixedIdWithDefault("pcb_plated_hole")}),pcb_plated_hole_oval=z$1.object({type:z$1.literal("pcb_plated_hole"),shape:z$1.enum(["oval","pill"]),outer_width:z$1.number(),outer_height:z$1.number(),hole_width:z$1.number(),hole_height:z$1.number(),x:distance,y:distance,layers:z$1.array(layer_ref),port_hints:z$1.array(z$1.string()).optional(),pcb_component_id:z$1.string().optional(),pcb_port_id:z$1.string().optional(),pcb_plated_hole_id:getZodPrefixedIdWithDefault("pcb_plated_hole")}),pcb_circular_hole_with_rect_pad=z$1.object({type:z$1.literal("pcb_plated_hole"),shape:z$1.literal("circular_hole_with_rect_pad"),hole_shape:z$1.literal("circle"),pad_shape:z$1.literal("rect"),hole_diameter:z$1.number(),rect_pad_width:z$1.number(),rect_pad_height:z$1.number(),x:distance,y:distance,layers:z$1.array(layer_ref),port_hints:z$1.array(z$1.string()).optional(),pcb_component_id:z$1.string().optional(),pcb_port_id:z$1.string().optional(),pcb_plated_hole_id:getZodPrefixedIdWithDefault("pcb_plated_hole")}),pcb_plated_hole=z$1.union([pcb_plated_hole_circle,pcb_plated_hole_oval,pcb_circular_hole_with_rect_pad]),pcb_port=z$1.object({type:z$1.literal("pcb_port"),pcb_port_id:getZodPrefixedIdWithDefault("pcb_port"),source_port_id:z$1.string(),pcb_component_id:z$1.string(),x:distance,y:distance,layers:z$1.array(layer_ref)}).describe("Defines a port on the PCB"),pcb_smtpad_circle=z$1.object({type:z$1.literal("pcb_smtpad"),shape:z$1.literal("circle"),pcb_smtpad_id:getZodPrefixedIdWithDefault("pcb_smtpad"),x:distance,y:distance,radius:z$1.number(),layer:layer_ref,port_hints:z$1.array(z$1.string()).optional(),pcb_component_id:z$1.string().optional(),pcb_port_id:z$1.string().optional()}),pcb_smtpad_rect=z$1.object({type:z$1.literal("pcb_smtpad"),shape:z$1.literal("rect"),pcb_smtpad_id:getZodPrefixedIdWithDefault("pcb_smtpad"),x:distance,y:distance,width:z$1.number(),height:z$1.number(),layer:layer_ref,port_hints:z$1.array(z$1.string()).optional(),pcb_component_id:z$1.string().optional(),pcb_port_id:z$1.string().optional()}),pcb_smtpad_rotated_rect=z$1.object({type:z$1.literal("pcb_smtpad"),shape:z$1.literal("rotated_rect"),pcb_smtpad_id:getZodPrefixedIdWithDefault("pcb_smtpad"),x:distance,y:distance,width:z$1.number(),height:z$1.number(),ccw_rotation:rotation,layer:layer_ref,port_hints:z$1.array(z$1.string()).optional(),pcb_component_id:z$1.string().optional(),pcb_port_id:z$1.string().optional()}),pcb_smtpad=z$1.union([pcb_smtpad_circle,pcb_smtpad_rect,pcb_smtpad_rotated_rect]).describe("Defines an SMT pad on the PCB"),pcb_solder_paste_circle=z$1.object({type:z$1.literal("pcb_solder_paste"),shape:z$1.literal("circle"),pcb_solder_paste_id:getZodPrefixedIdWithDefault("pcb_solder_paste"),x:distance,y:distance,radius:z$1.number(),layer:layer_ref,pcb_component_id:z$1.string().optional(),pcb_smtpad_id:z$1.string().optional()}),pcb_solder_paste_rect=z$1.object({type:z$1.literal("pcb_solder_paste"),shape:z$1.literal("rect"),pcb_solder_paste_id:getZodPrefixedIdWithDefault("pcb_solder_paste"),x:distance,y:distance,width:z$1.number(),height:z$1.number(),layer:layer_ref,pcb_component_id:z$1.string().optional(),pcb_smtpad_id:z$1.string().optional()}),pcb_solder_paste=z$1.union([pcb_solder_paste_circle,pcb_solder_paste_rect]).describe("Defines solderpaste on the PCB"),pcb_text=z$1.object({type:z$1.literal("pcb_text"),pcb_text_id:getZodPrefixedIdWithDefault("pcb_text"),text:z$1.string(),center:point,layer:layer_ref,width:length2,height:length2,lines:z$1.number(),align:z$1.enum(["bottom-left"])}).describe("Defines text on the PCB"),pcb_trace_route_point_wire=z$1.object({route_type:z$1.literal("wire"),x:distance,y:distance,width:distance,start_pcb_port_id:z$1.string().optional(),end_pcb_port_id:z$1.string().optional(),layer:layer_ref}),pcb_trace_route_point_via=z$1.object({route_type:z$1.literal("via"),x:distance,y:distance,from_layer:z$1.string(),to_layer:z$1.string()}),pcb_trace_route_point=z$1.union([pcb_trace_route_point_wire,pcb_trace_route_point_via]),pcb_trace=z$1.object({type:z$1.literal("pcb_trace"),source_trace_id:z$1.string().optional(),pcb_component_id:z$1.string().optional(),pcb_trace_id:getZodPrefixedIdWithDefault("pcb_trace"),route_thickness_mode:z$1.enum(["constant","interpolated"]).default("constant").optional(),route_order_index:z$1.number().optional(),should_round_corners:z$1.boolean().optional(),trace_length:z$1.number().optional(),route:z$1.array(z$1.union([z$1.object({route_type:z$1.literal("wire"),x:distance,y:distance,width:distance,start_pcb_port_id:z$1.string().optional(),end_pcb_port_id:z$1.string().optional(),layer:layer_ref}),z$1.object({route_type:z$1.literal("via"),x:distance,y:distance,from_layer:z$1.string(),to_layer:z$1.string()})]))}).describe("Defines a trace on the PCB"),pcb_trace_error=z$1.object({type:z$1.literal("pcb_trace_error"),pcb_trace_error_id:getZodPrefixedIdWithDefault("pcb_trace_error"),error_type:z$1.literal("pcb_trace_error"),message:z$1.string(),center:point.optional(),pcb_trace_id:z$1.string(),source_trace_id:z$1.string(),pcb_component_ids:z$1.array(z$1.string()),pcb_port_ids:z$1.array(z$1.string())}).describe("Defines a trace error on the PCB"),pcb_port_not_matched_error=z$1.object({type:z$1.literal("pcb_port_not_matched_error"),pcb_error_id:getZodPrefixedIdWithDefault("pcb_error"),message:z$1.string(),pcb_component_ids:z$1.array(z$1.string())}).describe("Defines a trace error on the PCB where a port is not matched"),pcb_via=z$1.object({type:z$1.literal("pcb_via"),pcb_via_id:getZodPrefixedIdWithDefault("pcb_via"),x:distance,y:distance,outer_diameter:distance.default("0.6mm"),hole_diameter:distance.default("0.25mm"),from_layer:layer_ref.optional(),to_layer:layer_ref.optional(),layers:z$1.array(layer_ref),pcb_trace_id:z$1.string().optional()}).describe("Defines a via on the PCB"),pcb_board=z$1.object({type:z$1.literal("pcb_board"),pcb_board_id:getZodPrefixedIdWithDefault("pcb_board"),width:length2,height:length2,center:point,thickness:length2.optional().default(1.4),num_layers:z$1.number().optional().default(4),outline:z$1.array(point).optional()}).describe("Defines the board outline of the PCB"),pcb_placement_error=z$1.object({type:z$1.literal("pcb_placement_error"),pcb_placement_error_id:getZodPrefixedIdWithDefault("pcb_placement_error"),message:z$1.string()}).describe("Defines a placement error on the PCB"),pcb_trace_hint=z$1.object({type:z$1.literal("pcb_trace_hint"),pcb_trace_hint_id:getZodPrefixedIdWithDefault("pcb_trace_hint"),pcb_port_id:z$1.string(),pcb_component_id:z$1.string(),route:z$1.array(route_hint_point)}).describe("A hint that can be used during generation of a PCB trace"),pcb_silkscreen_line=z$1.object({type:z$1.literal("pcb_silkscreen_line"),pcb_silkscreen_line_id:getZodPrefixedIdWithDefault("pcb_silkscreen_line"),pcb_component_id:z$1.string(),stroke_width:distance.default("0.1mm"),x1:distance,y1:distance,x2:distance,y2:distance,layer:visible_layer}).describe("Defines a silkscreen line on the PCB"),pcb_silkscreen_path=z$1.object({type:z$1.literal("pcb_silkscreen_path"),pcb_silkscreen_path_id:getZodPrefixedIdWithDefault("pcb_silkscreen_path"),pcb_component_id:z$1.string(),layer:visible_layer,route:z$1.array(point),stroke_width:length2}).describe("Defines a silkscreen path on the PCB"),pcb_silkscreen_text=z$1.object({type:z$1.literal("pcb_silkscreen_text"),pcb_silkscreen_text_id:getZodPrefixedIdWithDefault("pcb_silkscreen_text"),font:z$1.literal("tscircuit2024").default("tscircuit2024"),font_size:distance.default("0.2mm"),pcb_component_id:z$1.string(),text:z$1.string(),ccw_rotation:z$1.number().optional(),layer:layer_ref,is_mirrored:z$1.boolean().default(!1).optional(),anchor_position:point.default({x:0,y:0}),anchor_alignment:z$1.enum(["center","top_left","top_right","bottom_left","bottom_right"]).default("center")}).describe("Defines silkscreen text on the PCB"),pcb_silkscreen_rect=z$1.object({type:z$1.literal("pcb_silkscreen_rect"),pcb_silkscreen_rect_id:getZodPrefixedIdWithDefault("pcb_silkscreen_rect"),pcb_component_id:z$1.string(),center:point,width:length2,height:length2,layer:layer_ref}).describe("Defines a silkscreen rect on the PCB"),pcb_silkscreen_circle=z$1.object({type:z$1.literal("pcb_silkscreen_circle"),pcb_silkscreen_circle_id:getZodPrefixedIdWithDefault("pcb_silkscreen_circle"),pcb_component_id:z$1.string(),center:point,radius:length2,layer:visible_layer}).describe("Defines a silkscreen circle on the PCB"),pcb_silkscreen_oval=z$1.object({type:z$1.literal("pcb_silkscreen_oval"),pcb_silkscreen_oval_id:getZodPrefixedIdWithDefault("pcb_silkscreen_oval"),pcb_component_id:z$1.string(),center:point,radius_x:distance,radius_y:distance,layer:visible_layer}).describe("Defines a silkscreen oval on the PCB"),pcb_fabrication_note_text=z$1.object({type:z$1.literal("pcb_fabrication_note_text"),pcb_fabrication_note_text_id:getZodPrefixedIdWithDefault("pcb_fabrication_note_text"),font:z$1.literal("tscircuit2024").default("tscircuit2024"),font_size:distance.default("1mm"),pcb_component_id:z$1.string(),text:z$1.string(),layer:visible_layer,anchor_position:point.default({x:0,y:0}),anchor_alignment:z$1.enum(["center","top_left","top_right","bottom_left","bottom_right"]).default("center"),color:z$1.string().optional()}).describe("Defines a fabrication note in text on the PCB, useful for leaving notes for assemblers or fabricators"),pcb_fabrication_note_path=z$1.object({type:z$1.literal("pcb_fabrication_note_path"),pcb_fabrication_note_path_id:getZodPrefixedIdWithDefault("pcb_fabrication_note_path"),pcb_component_id:z$1.string(),layer:layer_ref,route:z$1.array(point),stroke_width:length2,color:z$1.string().optional()}).describe("Defines a fabrication path on the PCB for fabricators or assemblers"),pcb_keepout=z$1.object({type:z$1.literal("pcb_keepout"),shape:z$1.literal("rect"),center:point,width:distance,height:distance,pcb_keepout_id:z$1.string(),layers:z$1.array(z$1.string()),description:z$1.string().optional()}).or(z$1.object({type:z$1.literal("pcb_keepout"),shape:z$1.literal("circle"),center:point,radius:distance,pcb_keepout_id:z$1.string(),layers:z$1.array(z$1.string()),description:z$1.string().optional()})),pcb_missing_footprint_error=z$1.object({type:z$1.literal("pcb_missing_footprint_error"),pcb_missing_footprint_error_id:getZodPrefixedIdWithDefault("pcb_missing_footprint_error"),error_type:z$1.literal("pcb_missing_footprint_error"),source_component_id:z$1.string(),message:z$1.string()}).describe("Defines a missing footprint error on the PCB"),pcb_manual_edit_conflict_error=z$1.object({type:z$1.literal("pcb_manual_edit_conflict_error"),pcb_error_id:getZodPrefixedIdWithDefault("pcb_manual_edit_conflict_error"),message:z$1.string(),pcb_component_id:z$1.string(),source_component_id:z$1.string()}).describe("Error emitted when a component has both manual placement and explicit pcbX/pcbY coordinates"),pcb_group=z$1.object({type:z$1.literal("pcb_group"),pcb_group_id:getZodPrefixedIdWithDefault("pcb_group"),width:length2,height:length2,center:point,pcb_component_ids:z$1.array(z$1.string()),name:z$1.string().optional(),description:z$1.string().optional()}).describe("Defines a group of components on the PCB"),cad_component=z$1.object({type:z$1.literal("cad_component"),cad_component_id:z$1.string(),pcb_component_id:z$1.string(),source_component_id:z$1.string(),position:point3,rotation:point3.optional(),size:point3.optional(),layer:layer_ref.optional(),footprinter_string:z$1.string().optional(),model_obj_url:z$1.string().optional(),model_stl_url:z$1.string().optional(),model_3mf_url:z$1.string().optional(),model_jscad:z$1.any().optional()}).describe("Defines a component on the PCB"),any_circuit_element=z$1.union([source_trace,source_port,any_source_component,source_led,source_net,source_group,source_simple_bug,source_simple_chip,source_simple_capacitor,source_simple_diode,source_simple_resistor,source_simple_power_source,source_simple_battery,source_simple_inductor,source_simple_pin_header,source_simple_resonator,source_simple_transistor,source_simple_mosfet,source_simple_potentiometer,source_simple_push_button,pcb_component,pcb_hole,pcb_missing_footprint_error,pcb_manual_edit_conflict_error,pcb_plated_hole,pcb_keepout,pcb_port,pcb_text,pcb_trace,pcb_via,pcb_smtpad,pcb_solder_paste,pcb_board,pcb_group,pcb_trace_hint,pcb_silkscreen_line,pcb_silkscreen_path,pcb_silkscreen_text,pcb_silkscreen_rect,pcb_silkscreen_circle,pcb_silkscreen_oval,pcb_trace_error,pcb_placement_error,pcb_port_not_matched_error,pcb_fabrication_note_path,pcb_fabrication_note_text,schematic_box,schematic_text,schematic_line,schematic_component,schematic_port,schematic_trace,schematic_path,schematic_error,schematic_net_label,schematic_debug_object,schematic_voltage_probe,cad_component]),any_soup_element=any_circuit_element,su$1=(ua,J={})=>{let la=ua._internal_store;if(!la){la={counts:{}},ua._internal_store=la;for(const Aa of ua){const ba=Aa.type,Sa=Aa[`${ba}_id`];if(!Sa)continue;const Ma=Number.parseInt(Sa.split("_").pop());Number.isNaN(Ma)||(la.counts[ba]=Math.max(la.counts[ba]??0,Ma))}}return new Proxy({},{get:(Aa,ba)=>ba==="toArray"?()=>ua:{get:Sa=>ua.find(Ma=>Ma.type===ba&&Ma[`${ba}_id`]===Sa),getUsing:Sa=>{const Ma=Object.keys(Sa);if(Ma.length!==1)throw new Error("getUsing requires exactly one key, e.g. { pcb_component_id }");const Ra=Ma[0],Ia=Ra.replace("_id",""),La=ua.find(Fa=>Fa.type===Ia&&Fa[Ra]===Sa[Ra]);return La?ua.find(Fa=>Fa.type===ba&&Fa[`${ba}_id`]===La[`${ba}_id`]):null},getWhere:Sa=>{const Ma=Object.keys(Sa);return ua.find(Ra=>Ra.type===ba&&Ma.every(Ia=>Ra[Ia]===Sa[Ia]))},list:Sa=>{const Ma=Sa?Object.keys(Sa):[];return ua.filter(Ra=>Ra.type===ba&&Ma.every(Ia=>Ra[Ia]===Sa[Ia]))},insert:Sa=>{var Ia;(Ia=la.counts)[ba]??(Ia[ba]=-1),la.counts[ba]++;const Ma=la.counts[ba],Ra={type:ba,[`${ba}_id`]:`${ba}_${Ma}`,...Sa};return J.validateInserts&&(dist_exports[ba]??any_soup_element).parse(Ra),ua.push(Ra),Ra},delete:Sa=>{const Ma=ua.find(Ra=>Ra[`${ba}_id`]===Sa);Ma&&ua.splice(ua.indexOf(Ma),1)},update:(Sa,Ma)=>{const Ra=ua.find(Ia=>Ia.type===ba&&Ia[`${ba}_id`]===Sa);if(Ra)return Object.assign(Ra,Ma),Ra},select:Sa=>{if(ba==="source_component")return ua.find(Ma=>Ma.type==="source_component"&&Ma.name===Sa.replace(/\./g,""));if(ba==="pcb_port"||ba==="source_port"||ba==="schematic_port"){const[Ma,Ra]=Sa.replace(/\./g,"").split(/[\s\>]+/),Ia=ua.find(Fa=>Fa.type==="source_component"&&Fa.name===Ma);if(!Ia)return null;const La=ua.find(Fa=>Fa.type==="source_port"&&Fa.source_component_id===Ia.source_component_id&&(Fa.name===Ra||(Fa.port_hints??[]).includes(Ra)));if(!La)return null;if(ba==="source_port")return La;if(ba==="pcb_port")return ua.find(Fa=>Fa.type==="pcb_port"&&Fa.source_port_id===La.source_port_id);if(ba==="schematic_port")return ua.find(Fa=>Fa.type==="schematic_port"&&Fa.source_port_id===La.source_port_id)}}}})};su$1.unparsed=su$1;var su_default$1=su$1,transformPCBElement=(ua,J)=>{if(ua.type==="pcb_plated_hole"||ua.type==="pcb_hole"||ua.type==="pcb_via"||ua.type==="pcb_smtpad"||ua.type==="pcb_port"){const{x:la,y:xa}=applyToPoint(J,{x:ua.x,y:ua.y});ua.x=la,ua.y=xa}else if(ua.type==="pcb_keepout"||ua.type==="pcb_board")ua.center=applyToPoint(J,ua.center);else if(ua.type==="pcb_silkscreen_text"||ua.type==="pcb_fabrication_note_text")ua.anchor_position=applyToPoint(J,ua.anchor_position);else if(ua.type==="pcb_silkscreen_circle"||ua.type==="pcb_silkscreen_rect"||ua.type==="pcb_component")ua.center=applyToPoint(J,ua.center);else if(ua.type==="pcb_silkscreen_path"||ua.type==="pcb_trace"||ua.type==="pcb_fabrication_note_path")ua.route=ua.route.map(la=>{const xa=applyToPoint(J,la);return la.x=xa.x,la.y=xa.y,la});else if(ua.type==="pcb_silkscreen_line"){const la={x:ua.x1,y:ua.y1},xa={x:ua.x2,y:ua.y2},Aa=applyToPoint(J,la),ba=applyToPoint(J,xa);ua.x1=Aa.x,ua.y1=Aa.y,ua.x2=ba.x,ua.y2=ba.y}else if(ua.type==="cad_component"){const la=applyToPoint(J,{x:ua.position.x,y:ua.position.y});ua.position.x=la.x,ua.position.y=la.y}return ua};function stringHash(ua){let J=0;if(ua.length==0)return J;for(var la=0;la<ua.length;la++){var xa=ua.charCodeAt(la);J=(J<<5)-J+xa,J=J&J}return Math.abs(J)}var nice_color_palettes=[["#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"]],getDebugLayoutObject=ua=>{var Ma,Ra,Ia;let{x:J,y:la,width:xa,height:Aa}={...ua,...ua.size,...ua.center,...ua.position};ua.x1!==void 0&&ua.x2!==void 0&&ua.y1!==void 0&&ua.y2!==void 0&&(J=(ua.x1+ua.x2)/2,la=(ua.y1+ua.y2)/2,xa=Math.abs(ua.x1-ua.x2),Aa=Math.abs(ua.y1-ua.y2));const ba=ua.text||ua.name||((Ma=ua.source)==null?void 0:Ma.text)||((Ra=ua.source)==null?void 0:Ra.name)||"?",Sa=ua;return J===void 0||la===void 0?null:(xa===void 0&&"outer_diameter"in ua&&(xa=ua.outer_diameter,Aa=ua.outer_diameter),(xa===void 0||Aa===void 0)&&(xa=.1,Aa=.1),{x:J,y:la,width:xa,height:Aa,title:ba,content:Sa,bg_color:((Ia=nice_color_palettes[stringHash(ua.type||ba)%nice_color_palettes.length])==null?void 0:Ia[4])??"#f00"})},isTruthy=ua=>!!ua,findBoundsAndCenter=ua=>{const J=ua.filter(Ia=>Ia.type.startsWith("pcb_")).concat(ua.filter(Ia=>Ia.type==="pcb_trace").flatMap(Ia=>Ia.route)).map(Ia=>getDebugLayoutObject(Ia)).filter(isTruthy);if(J.length===0)return{center:{x:0,y:0},width:0,height:0};let la=J[0].x-J[0].width/2,xa=J[0].x+J[0].width/2,Aa=J[0].y-J[0].height/2,ba=J[0].y+J[0].height/2;for(const Ia of J.slice(1))la=Math.min(la,Ia.x-Ia.width/2),xa=Math.max(xa,Ia.x+Ia.width/2),Aa=Math.min(Aa,Ia.y-Ia.height/2),ba=Math.max(ba,Ia.y+Ia.height/2);const Sa=xa-la,Ma=ba-Aa;return{center:{x:la+Sa/2,y:Aa+Ma/2},width:Sa,height:Ma}},createStore=(ua={})=>createStore$1(J=>({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,...ua,selectLayer:la=>J({selected_layer:la}),setEditMode:la=>J({in_edit_mode:la!=="off",in_move_footprint_mode:la==="move_footprint",in_draw_trace_mode:la==="draw_trace",is_moving_component:!1,is_drawing_trace:!1}),setIsShowingRatsNest:la=>J({is_showing_rats_nest:la}),setIsMovingComponent:la=>J({is_moving_component:la}),setIsDrawingTrace:la=>J({is_drawing_trace:la}),setIsMouseOverContainer:la=>J({is_mouse_over_container:la}),setIsShowingMultipleTracesLength:la=>J({is_showing_multiple_traces_length:la})})),useGlobalStore=ua=>{const J=reactExports.useContext(StoreContext);return useStore(J,ua)},StoreContext=reactExports.createContext(null),ContextProviders=({children:ua,initialState:J})=>{const la=reactExports.useMemo(()=>createStore(J),[]);return jsxRuntimeExports.jsx(StoreContext.Provider,{value:la,children:ua})},applyTraceHintEditEvent=(ua,J)=>{if(ua.find(xa=>xa.type==="pcb_trace_hint"&&xa.pcb_trace_hint_id===J.pcb_trace_hint_id))ua=ua.map(xa=>xa.pcb_trace_hint_id===J.pcb_trace_hint_id?{...xa,route:J.route}:xa);else{const xa=su_default$1(ua).pcb_port.get(J.pcb_port_id);ua=ua.filter(Aa=>!(Aa.type==="pcb_trace_hint"&&Aa.pcb_port_id===J.pcb_port_id)).concat([{type:"pcb_trace_hint",pcb_trace_hint_id:J.pcb_trace_hint_id,route:J.route,pcb_port_id:J.pcb_port_id,pcb_component_id:xa==null?void 0:xa.pcb_component_id}])}return ua},applyEditEvents=(ua,J)=>{ua=JSON.parse(JSON.stringify(ua));for(const la of J)if(la.pcb_edit_event_type==="edit_component_location"){const xa=translate(la.new_center.x-la.original_center.x,la.new_center.y-la.original_center.y);ua=ua.map(Aa=>Aa.pcb_component_id!==la.pcb_component_id?Aa:transformPCBElement(Aa,xa))}else la.pcb_edit_event_type==="edit_trace_hint"&&(ua=applyTraceHintEditEvent(ua,la));return ua},useToast=()=>{const ua=useGlobalStore(la=>la.pcb_viewer_id),J=(la,xa)=>B$1(la,{containerId:ua,...xa});return J.error=(la,xa)=>B$1.error(la,{containerId:ua,...xa}),J.promise=B$1.promise,J},ToastContainer=()=>{reactExports.useEffect(()=>{injectStyle()},[]);const ua=useGlobalStore(J=>J.pcb_viewer_id);return jsxRuntimeExports.jsx(Q$1,{position:"top-center",containerId:ua})},noop=function(){},isBrowser=typeof window<"u",useIsomorphicLayoutEffect$1=isBrowser?reactExports.useLayoutEffect:reactExports.useEffect,useIsomorphicLayoutEffect_default=useIsomorphicLayoutEffect$1,defaultState={x:0,y:0,width:0,height:0,top:0,left:0,bottom:0,right:0};function useMeasure(){var ua=reactExports.useState(null),J=ua[0],la=ua[1],xa=reactExports.useState(defaultState),Aa=xa[0],ba=xa[1],Sa=reactExports.useMemo(function(){return new window.ResizeObserver(function(Ma){if(Ma[0]){var Ra=Ma[0].contentRect,Ia=Ra.x,La=Ra.y,Fa=Ra.width,ka=Ra.height,el=Ra.top,tl=Ra.left,rl=Ra.bottom,il=Ra.right;ba({x:Ia,y:La,width:Fa,height:ka,top:el,left:tl,bottom:rl,right:il})}})},[]);return useIsomorphicLayoutEffect_default(function(){if(J)return Sa.observe(J),function(){Sa.disconnect()}},[J]),[la,Aa]}var useMeasure_default=isBrowser&&typeof window.ResizeObserver<"u"?useMeasure:function(){return[noop,defaultState]},useMouseMatrixTransform=(ua={})=>{const J=reactExports.useRef(null),[la,xa]=reactExports.useState(0),Aa=ua.canvasElm??J.current,[ba,Sa]=reactExports.useState(ua.initialTransform??identity$3()),[Ma,Ra]=reactExports.useState(0),[Ia,La]=reactExports.useReducer(il=>il+1,0),Fa=reactExports.useCallback(il=>{ua.onSetTransform&&ua.onSetTransform(il),ua.transform||Sa(il)},[ua.onSetTransform,Sa]),ka=reactExports.useCallback(il=>{Fa(il),La()},[Fa]),el=ua.transform??ba,tl=reactExports.useCallback(()=>{xa(Date.now())},[]);reactExports.useEffect(()=>{const il=ua.canvasElm??J.current;if(il&&!Aa){Ra(Ma+1);return}if(!il){const Fl=setTimeout(()=>{Ra(Ma+1)},100);return()=>clearTimeout(Fl)}let nl=ua.transform??ba,sl={x:0,y:0},ll={x:0,y:0},dl=!1;const gl=Fl=>({x:Fl.pageX-il.getBoundingClientRect().left-window.scrollX,y:Fl.pageY-il.getBoundingClientRect().top-window.scrollY});function _l(Fl){ua.enabled!==!1&&(ua.shouldDrag&&!ua.shouldDrag(Fl)||(sl=gl(Fl),!(Date.now()-la<100)&&(dl=!0,Fl.preventDefault())))}function vl(Fl){if(!dl||ua.enabled===!1||ua.shouldDrag&&!ua.shouldDrag(Fl))return;ll=gl(Fl);const Ul=compose(translate(ll.x-sl.x,ll.y-sl.y),nl);Fa(Ul),nl=Ul,dl=!1}function Tl(Fl){gl(Fl),!(!dl||ua.enabled===!1)&&(ua.shouldDrag&&!ua.shouldDrag(Fl)||(ll=gl(Fl),Fa(compose(translate(ll.x-sl.x,ll.y-sl.y),nl))))}function Ll(Fl){if(ua.enabled===!1||ua.shouldDrag&&!ua.shouldDrag(Fl))return;const Ul=gl(Fl),jl=compose(translate(Ul.x,Ul.y),scale$2(1-Fl.deltaY/1e3,1-Fl.deltaY/1e3),translate(-Ul.x,-Ul.y),nl);Fa(jl),nl=jl,Fl.preventDefault()}function Pl(Fl){if(!dl||ua.shouldDrag&&!ua.shouldDrag(Fl))return;if(il){const jl=il.getBoundingClientRect();if(Fl.clientX>=jl.left+10&&Fl.clientX<=jl.right-10&&Fl.clientY>=jl.top+10&&Fl.clientY<=jl.bottom-10)return}dl=!1,ll=gl(Fl);const Ul=compose(translate(ll.x-sl.x,ll.y-sl.y),nl);Fa(Ul),nl=Ul}return il.addEventListener("mousedown",_l),il.addEventListener("mouseup",vl),window.addEventListener("mousemove",Tl),il.addEventListener("mouseout",Pl),il.addEventListener("wheel",Ll),()=>{il.removeEventListener("mousedown",_l),il.removeEventListener("mouseup",vl),window.removeEventListener("mousemove",Tl),il.removeEventListener("mouseout",Pl),il.removeEventListener("wheel",Ll)}},[Aa,Ma,Ia,la,ua.enabled,ua.shouldDrag]);const rl=reactExports.useCallback(il=>applyToPoint(el,il),[el]);return{ref:J,transform:el,applyTransformToPoint:rl,setTransform:ka,cancelDrag:tl}},src_default=useMouseMatrixTransform,colors_default={"3d_viewer":{background_bottom:"rgb(102, 102, 128)",background_top:"rgb(204, 204, 230)",board:"rgb(51, 43, 23)",copper:"rgb(179, 156, 0)",silkscreen_bottom:"rgb(230, 230, 230)",silkscreen_top:"rgb(230, 230, 230)",soldermask:"rgb(20, 51, 36)",solderpaste:"rgb(128, 128, 128)"},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(232, 178, 167)",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)"},gerbview:{axes:"rgb(0, 0, 132)",background:"rgb(0, 0, 0)",dcodes:"rgb(255, 255, 255)",grid:"rgb(132, 132, 132)",layers:["rgb(132, 0, 0)","rgb(194, 194, 0)","rgb(194, 0, 194)","rgb(194, 0, 0)","rgb(0, 132, 132)","rgb(0, 132, 0)","rgb(0, 0, 132)","rgb(132, 132, 132)","rgb(132, 0, 132)","rgb(194, 194, 194)","rgb(132, 0, 132)","rgb(132, 0, 0)","rgb(132, 132, 0)","rgb(194, 194, 194)","rgb(0, 0, 132)","rgb(0, 132, 0)","rgb(132, 0, 0)","rgb(194, 194, 0)","rgb(194, 0, 194)","rgb(194, 0, 0)","rgb(0, 132, 132)","rgb(0, 132, 0)","rgb(0, 0, 132)","rgb(132, 132, 132)","rgb(132, 0, 132)","rgb(194, 194, 194)","rgb(132, 0, 132)","rgb(132, 0, 0)","rgb(132, 132, 0)","rgb(194, 194, 194)","rgb(0, 0, 132)","rgb(0, 132, 0)","rgb(132, 0, 0)","rgb(194, 194, 0)","rgb(194, 0, 194)","rgb(194, 0, 0)","rgb(0, 132, 132)","rgb(0, 132, 0)","rgb(0, 0, 132)","rgb(132, 132, 132)","rgb(132, 0, 132)","rgb(194, 194, 194)","rgb(132, 0, 132)","rgb(132, 0, 0)","rgb(132, 132, 0)","rgb(194, 194, 194)","rgb(0, 0, 132)","rgb(0, 132, 0)","rgb(132, 0, 0)","rgb(194, 194, 0)","rgb(194, 0, 194)","rgb(194, 0, 0)","rgb(0, 132, 132)","rgb(0, 132, 0)","rgb(0, 0, 132)","rgb(132, 132, 132)","rgb(132, 0, 132)","rgb(194, 194, 194)","rgb(132, 0, 132)","rgb(132, 0, 0)"],negative_objects:"rgb(132, 132, 132)",worksheet:"rgb(0, 0, 132)"},palette:["rgb(132, 0, 0)","rgb(194, 194, 0)","rgb(194, 0, 194)","rgb(194, 0, 0)","rgb(0, 132, 132)","rgb(0, 132, 0)","rgb(0, 0, 132)","rgb(132, 132, 132)","rgb(132, 0, 132)","rgb(194, 194, 194)","rgb(132, 0, 132)","rgb(132, 0, 0)","rgb(132, 132, 0)","rgb(194, 194, 194)","rgb(0, 0, 132)","rgb(0, 132, 0)"],schematic:{anchor:"rgb(0, 0, 255)",aux_items:"rgb(0, 0, 0)",background:"rgb(33, 33, 33)",brightened:"rgb(204, 204, 204)",bus:"rgb(0, 96, 192)",bus_junction:"rgb(0, 96, 192)",component_body:"rgb(44, 44, 44)",component_outline:"rgb(192, 0, 0)",cursor:"rgb(224, 224, 224)",erc_error:"rgba(192, 48, 48, 0.800)",erc_warning:"rgba(192, 140, 0, 0.800)",fields:"rgb(128, 0, 160)",grid:"rgb(60, 60, 60)",grid_axes:"rgb(60, 60, 60)",hidden:"rgb(194, 194, 194)",junction:"rgb(0, 160, 0)",label_global:"rgb(0, 160, 224)",label_hier:"rgb(160, 160, 0)",label_local:"rgb(192, 192, 192)",net_name:"rgb(224, 224, 224)",no_connect:"rgb(97, 43, 224)",note:"rgb(192, 192, 0)",override_item_colors:!1,pin:"rgb(192, 0, 0)",pin_name:"rgb(192, 192, 192)",pin_number:"rgb(192, 0, 0)",reference:"rgb(192, 192, 192)",shadow:"rgba(102, 179, 255, 0.800)",sheet:"rgb(128, 0, 160)",sheet_background:"rgba(255, 255, 255, 0.000)",sheet_fields:"rgb(160, 160, 0)",sheet_filename:"rgb(160, 160, 0)",sheet_label:"rgb(160, 160, 0)",sheet_name:"rgb(0, 160, 204)",value:"rgb(192, 192, 192)",wire:"rgb(0, 160, 0)",worksheet:"rgb(192, 0, 0)"}},scaleOnly=(ua,J=1)=>{if(Math.abs(ua.a)!==Math.abs(ua.d))throw new Error("Cannot scale non-uniformly");return J*Math.abs(ua.a)},zIndexMap={elementOverlay:30,dimensionOverlay:30,editTraceHintOverlay:30,errorOverlay:30,ratsNestOverlay:20,toolbarOverlay:20,topLayer:10},LAYER_NAME_TO_COLOR$1={red:"red",black:"black",green:"green",board:"rgb(255, 255, 255)",other:"#eee",top:colors_default.board.copper.f,inner1:colors_default.board.copper.in1,inner2:colors_default.board.copper.in2,inner4:colors_default.board.copper.in4,inner5:colors_default.board.copper.in5,inner6:colors_default.board.copper.in6,inner7:colors_default.board.copper.in7,inner8:colors_default.board.copper.in8,bottom:colors_default.board.copper.b,drill:colors_default.board.anchor,keepout:colors_default.board.background,tkeepout:colors_default.board.b_crtyd,tplace:colors_default.board.b_silks,top_silkscreen:colors_default.board.f_silks,bottom_silkscreen:colors_default.board.b_silks,top_fabrication:colors_default.board.f_fab,bottom_fabrication:colors_default.board.b_fab,...colors_default.board},DEFAULT_DRAW_ORDER=["top","inner1","inner2","inner3","inner4","inner5","inner6","bottom"],Drawer=class{constructor(ua){Wp(this,"canvasLayerMap");Wp(this,"ctxLayerMap");Wp(this,"aperture");Wp(this,"transform");Wp(this,"foregroundLayer","top");Wp(this,"lastPoint");this.canvasLayerMap=ua,this.ctxLayerMap=Object.fromEntries(Object.entries(ua).map(([J,la])=>[J,la.getContext("2d")])),this.transform=identity$3(),this.transform.d*=-1,this.transform=compose(this.transform,translate(0,-500)),this.lastPoint={x:0,y:0},this.equip({})}clear(){for(const ua of Object.values(this.ctxLayerMap))ua.clearRect(0,0,ua.canvas.width,ua.canvas.height)}equip(ua){this.aperture={fontSize:0,shape:"circle",mode:"add",size:0,color:"red",layer:"top",opacity:this.foregroundLayer===ua.color?1:.5,...ua}}drawMeshPattern(ua,J,la,xa,Aa,ba=45){const Sa=this.getLayerCtx(),[Ma,Ra]=applyToPoint(this.transform,[ua,J]),[Ia,La]=applyToPoint(this.transform,[ua+la,J+xa]),Fa=scaleOnly(this.transform,Aa);Sa.lineWidth=1,Sa.strokeStyle=this.aperture.color;const ka=el=>{const tl=Math.sin(el),rl=Math.cos(el),il=Math.sqrt(Math.pow(Ia-Ma,2)+Math.pow(La-Ra,2));for(let nl=-il;nl<=il;nl+=Fa)Sa.beginPath(),Sa.moveTo(Ma+nl*rl-il*tl,Ra+nl*tl+il*rl),Sa.lineTo(Ma+nl*rl+il*tl,Ra+nl*tl-il*rl),Sa.stroke()};ka(ba*Math.PI/180),ka((ba+90)*Math.PI/180)}rect(ua,J,la,xa,Aa){const[ba,Sa]=applyToPoint(this.transform,[ua-la/2,J-xa/2]),[Ma,Ra]=applyToPoint(this.transform,[ua+la/2,J+xa/2]);this.applyAperture();const Ia=this.getLayerCtx();Aa?(Ia.save(),Ia.beginPath(),Ia.rect(ba,Sa,Ma-ba,Ra-Sa),Ia.clip(),this.drawMeshPattern(ua-la/2,J-xa/2,la,xa,.15),Ia.restore(),Ia.strokeRect(ba,Sa,Ma-ba,Ra-Sa)):Ia.fillRect(ba,Sa,Ma-ba,Ra-Sa)}rotatedRect(ua,J,la,xa,Aa,ba){const Sa=this.getLayerCtx();this.applyAperture();const[Ma,Ra]=applyToPoint(this.transform,[ua-la/2,J-xa/2]),[Ia,La]=applyToPoint(this.transform,[ua+la/2,J+xa/2]);Sa.save();const[Fa,ka]=applyToPoint(this.transform,[ua,J]);Sa.translate(Fa,ka);const el=360-Aa;Aa&&Sa.rotate(el*Math.PI/180),Sa.translate(-Fa,-ka),ba?(Sa.beginPath(),Sa.rect(Ma,Ra,Ia-Ma,La-Ra),Sa.clip(),this.drawMeshPattern(ua-la/2,J-xa/2,la,xa,.15),Sa.strokeRect(Ma,Ra,Ia-Ma,La-Ra)):Sa.fillRect(Ma,Ra,Ia-Ma,La-Ra),Sa.restore()}circle(ua,J,la,xa){const Aa=scaleOnly(this.transform,la),[ba,Sa]=applyToPoint(this.transform,[ua,J]);this.applyAperture();const Ma=this.getLayerCtx();xa?(Ma.save(),Ma.beginPath(),Ma.arc(ba,Sa,Aa,0,2*Math.PI),Ma.clip(),this.drawMeshPattern(ua-la,J-la,la*2,la*2,.15),Ma.restore(),Ma.beginPath(),Ma.arc(ba,Sa,Aa,0,2*Math.PI),Ma.stroke()):(Ma.beginPath(),Ma.arc(ba,Sa,Aa,0,2*Math.PI),Ma.fill())}oval(ua,J,la,xa){const Aa=scaleOnly(this.transform,la),ba=scaleOnly(this.transform,xa),[Sa,Ma]=applyToPoint(this.transform,[ua,J]);this.applyAperture();const Ra=this.getLayerCtx();Ra.beginPath(),Ra.ellipse(Sa,Ma,Aa,ba,0,0,2*Math.PI),Ra.fill(),Ra.closePath()}pill(ua,J,la,xa){const[Aa,ba]=applyToPoint(this.transform,[ua-la/2,J+xa/2]),Sa=scaleOnly(this.transform,la),Ma=scaleOnly(this.transform,xa),Ra=Math.min(Sa,Ma)/2;this.applyAperture();const Ia=this.getLayerCtx();Ia.beginPath(),Ia.arc(Aa+Ra,ba+Ra,Ra,Math.PI,Math.PI*1.5),Ia.arc(Aa+Sa-Ra,ba+Ra,Ra,Math.PI*1.5,0),Ia.arc(Aa+Sa-Ra,ba+Ma-Ra,Ra,0,Math.PI*.5),Ia.arc(Aa+Ra,ba+Ma-Ra,Ra,Math.PI*.5,Math.PI),Ia.fill(),Ia.closePath()}polygon(ua){if(ua.length<3)return;this.applyAperture();const J=this.getLayerCtx(),la=ua.map(Aa=>applyToPoint(this.transform,[Aa.x,Aa.y]));J.beginPath(),J.moveTo(la[0][0],la[0][1]);for(let Aa=1;Aa<la.length;Aa++)J.lineTo(la[Aa][0],la[Aa][1]);J.closePath(),J.fill();const xa=scaleOnly(this.transform,this.aperture.size);J.lineWidth=xa,J.stroke()}debugText(ua,J,la){const[xa,Aa]=applyToPoint(this.transform,[J,la]);this.applyAperture();const ba=this.getLayerCtx();ba.font="10px sans-serif",ba.fillText(ua,xa,Aa)}getLayerCtx(){const ua=this.ctxLayerMap[this.aperture.layer];if(!ua)throw new Error(`No context for layer "${this.aperture.layer}"`);return ua}orderAndFadeLayers(){const{canvasLayerMap:ua,foregroundLayer:J}=this,la=new Set([J,"drill","other","board"]);["drill","board",J,...DEFAULT_DRAW_ORDER.filter(Aa=>Aa!==J)].forEach((Aa,ba)=>{const Sa=ua[Aa];Sa&&(Sa.style.zIndex=`${zIndexMap.topLayer-ba}`,Sa.style.opacity=la.has(Aa)?"1":"0.5")})}applyAperture(){const{transform:ua,aperture:J}=this;let{size:la,mode:xa,color:Aa,fontSize:ba,layer:Sa}=J;Sa in this.ctxLayerMap||(this.aperture.layer="other");const Ma=this.getLayerCtx();if(!Ma)throw new Error(`No context for layer "${this.foregroundLayer}"`);if(Aa||(Aa="undefined"),Ma.lineWidth=scaleOnly(ua,la),Ma.lineCap="round",xa==="add"){let Ra=(Aa==null?void 0:Aa[0])==="#"||Aa!=null&&Aa.startsWith("rgb")?Aa:LAYER_NAME_TO_COLOR$1[Aa==null?void 0:Aa.toLowerCase()]?LAYER_NAME_TO_COLOR$1[Aa==null?void 0:Aa.toLowerCase()]:null;Ra===null&&(console.warn(`Color mapping for "${Aa}" not found`),Ra="white"),Ma.fillStyle=Ra,Ma.strokeStyle=Ra}else Ma.globalCompositeOperation="destination-out",Ma.fillStyle="rgba(0,0,0,1)",Ma.strokeStyle="rgba(0,0,0,1)";Ma.font=`${scaleOnly(inverse(ua),ba)}px sans-serif`}moveTo(ua,J){this.lastPoint={x:ua,y:J}}lineTo(ua,J){const[la,xa]=applyToPoint(this.transform,[ua,J]),{size:Aa,shape:ba,mode:Sa}=this.aperture,Ma=scaleOnly(this.transform,Aa);let{lastPoint:Ra}=this;const Ia=applyToPoint(this.transform,Ra);this.applyAperture();const La=this.getLayerCtx();ba==="square"&&La.fillRect(Ia.x-Ma/2,Ia.y-Ma/2,Ma,Ma),La.beginPath(),La.moveTo(Ia.x,Ia.y),La.lineTo(la,xa),La.stroke(),La.closePath(),ba==="square"&&La.fillRect(la-Ma/2,xa-Ma/2,Ma,Ma),this.lastPoint={x:ua,y:J}}};function rotateText(ua){const{lines:J,anchorPoint:la,ccwRotation:xa}=ua;if(!xa)return J;const Aa=xa*Math.PI/180,ba=rotate(Aa),Sa=compose(translate(la.x,la.y),ba,translate(-la.x,-la.y));return applyToPoint(Sa,la),J.map(Ma=>({...Ma,x1:applyToPoint(Sa,{x:Ma.x1,y:Ma.y1}).x,y1:applyToPoint(Sa,{x:Ma.x1,y:Ma.y1}).y,x2:applyToPoint(Sa,{x:Ma.x2,y:Ma.y2}).x,y2:applyToPoint(Sa,{x:Ma.x2,y:Ma.y2}).y}))}var svgAlphabet={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"},lineAlphabet={};for(const ua in svgAlphabet){lineAlphabet[ua]=[];const J=svgAlphabet[ua].split("M").slice(1).map(la=>la.split("L").map(xa=>xa.trim().split(" ").map(parseFloat)));for(const la of J)for(let xa=0;xa<la.length-1;xa++)lineAlphabet[ua].push({x1:la[xa][0],y1:1-la[xa][1],x2:la[xa+1][0],y2:1-la[xa+1][1]})}var LETTER_HEIGHT_TO_WIDTH_RATIO=.6,LETTER_HEIGHT_TO_SPACE_RATIO=.2,getTextWidth=ua=>ua.text.length*ua.size*LETTER_HEIGHT_TO_WIDTH_RATIO+(ua.text.length-1)*ua.size*LETTER_HEIGHT_TO_SPACE_RATIO,convertTextToLines=ua=>{const J=ua.size/8,la=ua.size*LETTER_HEIGHT_TO_WIDTH_RATIO,xa=ua.size*LETTER_HEIGHT_TO_SPACE_RATIO,Aa=[];for(let ba=0;ba<ua.text.length;ba++){const Sa=ua.text[ba],Ma=lineAlphabet[Sa.toUpperCase()];if(Ma)for(const{x1:Ra,y1:Ia,x2:La,y2:Fa}of Ma)Aa.push({pcb_drawing_type:"line",x1:ua.x+(la+xa)*ba+la*Ra,y1:ua.y+ua.size*Ia,x2:ua.x+(la+xa)*ba+la*La,y2:ua.y+ua.size*Fa,width:J,layer:ua.layer,unit:ua.unit})}return Aa};function getColor(ua){return ua.is_mouse_over||ua.is_in_highlighted_net?color(LAYER_NAME_TO_COLOR$1[ua.layer]).lighten(.5).rgb().toString():LAYER_NAME_TO_COLOR$1[ua.layer]}var drawLine=(ua,J)=>{ua.equip({size:J.zoomIndependent?J.width/ua.transform.a:J.width,shape:J.squareCap?"square":"circle",color:getColor(J),layer:J.layer}),ua.moveTo(J.x1,J.y1),ua.lineTo(J.x2,J.y2)},drawText=(ua,J)=>{ua.equip({fontSize:J.size,color:J.layer});let la={x:0,y:0};const xa=getTextWidth(J),Aa=J.size;J.align==="top_left"?la.y=-Aa:J.align==="bottom_right"?la.x=-xa:J.align==="top_right"?(la.x=-xa,la.y=-Aa):J.align==="center"&&(la.x=-xa/2,la.y=-Aa/2),J.x??(J.x=0),J.y??(J.y=0);const ba={x:J.x,y:J.y};let Sa=convertTextToLines({...J,x:J.x+la.x,y:J.y+la.y});if(J.ccw_rotation){const Ma={lines:Sa,anchorPoint:ba,ccwRotation:J.ccw_rotation};Sa=rotateText(Ma)}for(const Ma of Sa)drawLine(ua,Ma)},drawRect=(ua,J)=>{ua.equip({color:getColor(J),layer:J.layer}),ua.rect(J.x,J.y,J.w,J.h,J.mesh_fill)},drawRotatedRect=(ua,J)=>{ua.equip({color:getColor(J),layer:J.layer}),ua.rotatedRect(J.x,J.y,J.w,J.h,J.ccw_rotation)},drawCircle=(ua,J)=>{ua.equip({color:getColor(J),layer:J.layer}),ua.circle(J.x,J.y,J.r,J.mesh_fill)},drawOval=(ua,J)=>{ua.equip({color:getColor(J),layer:J.layer}),ua.oval(J.x,J.y,J.rX,J.rY)},drawPill=(ua,J)=>{ua.equip({color:getColor(J),layer:J.layer}),ua.pill(J.x,J.y,J.w,J.h)},drawPolygon=(ua,J)=>{ua.equip({color:getColor(J),layer:J.layer}),ua.polygon(J.points)},drawPrimitive=(ua,J)=>{var la;switch(J.pcb_drawing_type){case"line":return drawLine(ua,J);case"text":return drawText(ua,J);case"rect":return((la=J._element)==null?void 0:la.shape)==="rotated_rect"?drawRotatedRect(ua,{...J,ccw_rotation:J._element.ccw_rotation,mesh_fill:J.mesh_fill}):drawRect(ua,J);case"circle":return drawCircle(ua,J);case"oval":return drawOval(ua,J);case"pill":return drawPill(ua,J);case"polygon":return drawPolygon(ua,J)}},drawPrimitives=(ua,J)=>{J.sort((la,xa)=>{const Aa=["bottom","top","drill"];return Aa.indexOf(la.layer)-Aa.indexOf(xa.layer)}),J.forEach(la=>drawPrimitive(ua,la))},CanvasPrimitiveRenderer=({primitives:ua,transform:J,grid:la,width:xa=500,height:Aa=500})=>{const ba=reactExports.useRef(),Sa=useGlobalStore(Ma=>Ma.selected_layer);return reactExports.useEffect(()=>{if(!ba.current||Object.keys(ba.current).length===0)return;const Ma=new Drawer(ba.current);J&&(Ma.transform=J),Ma.clear(),Ma.foregroundLayer=Sa,drawPrimitives(Ma,ua),Ma.orderAndFadeLayers()},[ua,J,Sa]),jsxRuntimeExports.jsxs("div",{style:{backgroundColor:"black",width:xa,height:Aa,position:"relative"},children:[jsxRuntimeExports.jsx(SuperGridExports.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:xa,height:Aa,transform:J,stringifyCoord:(Ma,Ra,Ia)=>`${SuperGridExports.toMMSI(Ma,Ia)}, ${SuperGridExports.toMMSI(Ra,Ia)}`}),all_layers.map(Ma=>Ma.replace(/-/g,"")).concat(["drill","other"]).map((Ma,Ra)=>jsxRuntimeExports.jsx("canvas",{ref:Ia=>{ba.current??(ba.current={}),ba.current[Ma]=Ia},style:{position:"absolute",left:0,top:0,pointerEvents:"none"},width:xa,height:Aa},Ma))]})};function getExpandedStroke(ua,J){if(ua.length<2)throw new Error("Stroke must have at least two points");const la=ua.map(Fa=>Array.isArray(Fa)?{x:Fa[0],y:Fa[1]}:Fa),xa=[],Aa=[];function ba(Fa,ka){const el=ka.x-Fa.x,tl=ka.y-Fa.y,rl=Math.sqrt(el*el+tl*tl);return{x:-tl/rl,y:el/rl}}function Sa(Fa,ka,el,tl){const rl=tl/2,il={x:Fa.x+ka.x*rl*el,y:Fa.y+ka.y*rl*el};el>0?xa.push(il):Aa.unshift(il)}const Ma=ba(la[0],la[1]),Ra=la[0].trace_width??J;Sa(la[0],Ma,1,Ra),Sa(la[0],Ma,-1,Ra);for(let Fa=1;Fa<la.length-1;Fa++){const ka=la[Fa-1],el=la[Fa],tl=la[Fa+1],rl=ba(ka,el),il=ba(el,tl),nl=rl.x+il.x,sl=rl.y+il.y,ll=Math.sqrt(nl*nl+sl*sl),dl=el.trace_width??J;if(ll/2>2*(dl/2))Sa(el,rl,1,dl),Sa(el,il,1,dl),Sa(el,rl,-1,dl),Sa(el,il,-1,dl);else{const _l=1/ll;Sa(el,{x:nl*_l,y:sl*_l},1,dl),Sa(el,{x:nl*_l,y:sl*_l},-1,dl)}}const Ia=ba(la[la.length-2],la[la.length-1]),La=la[la.length-1].trace_width??J;return Sa(la[la.length-1],Ia,1,La),Sa(la[la.length-1],Ia,-1,La),[...xa,...Aa]}var globalPcbDrawingObjectCount=0,convertElementToPrimitives=(ua,J)=>{var Sa;const la="pcb_component_id"in ua?J.find(Ma=>Ma.type==="pcb_component"&&Ma.pcb_component_id===ua.pcb_component_id):void 0,xa=la&&"source_component_id"in la?J.find(Ma=>Ma.type==="source_component"&&Ma.source_component_id===la.source_component_id):void 0,Aa="source_port_id"in ua?ua.source_port_id:"pcb_port_id"in ua?(Sa=su_default$1(J).pcb_port.get(ua.pcb_port_id))==null?void 0:Sa.source_port_id:void 0,ba=Aa?J.find(Ma=>Ma.type==="source_port"&&Ma.source_port_id===Aa):void 0;switch(ua.type){case"pcb_board":{const{width:Ma,height:Ra,center:Ia,outline:La}=ua;return La&&La.length>2?La.map((Fa,ka,el)=>({_pcb_drawing_object_id:`line_${globalPcbDrawingObjectCount++}`,pcb_drawing_type:"line",x1:Fa.x,y1:Fa.y,x2:ka===el.length-1?el[0].x:el[ka+1].x,y2:ka===el.length-1?el[0].y:el[ka+1].y,width:1,zoomIndependent:!0,layer:"board",_element:ua})):[{_pcb_drawing_object_id:`line_${globalPcbDrawingObjectCount++}`,pcb_drawing_type:"line",x1:Ia.x-Ma/2,y1:Ia.y-Ra/2,x2:Ia.x+Ma/2,y2:Ia.y-Ra/2,width:1,zoomIndependent:!0,layer:"board",_element:ua},{_pcb_drawing_object_id:`line_${globalPcbDrawingObjectCount++}`,pcb_drawing_type:"line",x1:Ia.x-Ma/2,y1:Ia.y+Ra/2,x2:Ia.x+Ma/2,y2:Ia.y+Ra/2,width:1,zoomIndependent:!0,layer:"board",_element:ua},{_pcb_drawing_object_id:`line_${globalPcbDrawingObjectCount++}`,pcb_drawing_type:"line",x1:Ia.x-Ma/2,y1:Ia.y-Ra/2,x2:Ia.x-Ma/2,y2:Ia.y+Ra/2,width:1,zoomIndependent:!0,layer:"board",_element:ua},{_pcb_drawing_object_id:`line_${globalPcbDrawingObjectCount++}`,pcb_drawing_type:"line",x1:Ia.x+Ma/2,y1:Ia.y-Ra/2,x2:Ia.x+Ma/2,y2:Ia.y+Ra/2,width:1,zoomIndependent:!0,layer:"board",_element:ua}]}case"pcb_smtpad":{if(ua.shape==="rect"||ua.shape==="rotated_rect"){const{shape:Ma,x:Ra,y:Ia,width:La,height:Fa,layer:ka}=ua;return[{_pcb_drawing_object_id:`rect_${globalPcbDrawingObjectCount++}`,pcb_drawing_type:"rect",x:Ra,y:Ia,w:La,h:Fa,layer:ka||"top",_element:ua,_parent_pcb_component:la,_parent_source_component:xa,_source_port:ba}]}else if(ua.shape==="circle"){const{x:Ma,y:Ra,radius:Ia,layer:La}=ua;return[{_pcb_drawing_object_id:`circle_${globalPcbDrawingObjectCount++}`,pcb_drawing_type:"circle",x:Ma,y:Ra,r:Ia,layer:La||"top",_element:ua,_parent_pcb_component:la,_parent_source_component:xa,_source_port:ba}]}return[]}case"pcb_hole":{if(ua.hole_shape==="circle"||!ua.hole_shape){const{x:Ma,y:Ra,hole_diameter:Ia}=ua;return[{_pcb_drawing_object_id:`circle_${globalPcbDrawingObjectCount++}`,pcb_drawing_type:"circle",x:Ma,y:Ra,r:Ia/2,layer:"drill",_element:ua,_parent_pcb_component:la,_parent_source_component:xa}]}return[]}case"pcb_plated_hole":if(ua.shape==="circle"){const{x:Ma,y:Ra,hole_diameter:Ia,outer_diameter:La}=ua;return[{_pcb_drawing_object_id:`circle_${globalPcbDrawingObjectCount++}`,pcb_drawing_type:"circle",x:Ma,y:Ra,r:La/2,layer:"top",_element:ua,_parent_pcb_component:la,_parent_source_component:xa,_source_port:ba},{_pcb_drawing_object_id:`circle_${globalPcbDrawingObjectCount++}`,pcb_drawing_type:"circle",x:Ma,y:Ra,r:Ia/2,layer:"drill",_element:ua}]}else if(ua.shape==="oval"){const{x:Ma,y:Ra,outer_height:Ia,outer_width:La,hole_height:Fa,hole_width:ka}=ua;return[{_pcb_drawing_object_id:`oval_${globalPcbDrawingObjectCount++}`,pcb_drawing_type:"oval",x:Ma,y:Ra,rX:La/2,rY:Ia/2,layer:"top",_element:ua,_parent_pcb_component:la,_parent_source_component:xa,_source_port:ba},{_pcb_drawing_object_id:`oval_${globalPcbDrawingObjectCount++}`,_element:ua,pcb_drawing_type:"oval",x:Ma,y:Ra,rX:ka/2,rY:Fa/2,layer:"drill"}]}else if(ua.shape==="pill"){const{x:Ma,y:Ra,outer_height:Ia,outer_width:La,hole_height:Fa,hole_width:ka}=ua;return[{_pcb_drawing_object_id:`pill_${globalPcbDrawingObjectCount++}`,pcb_drawing_type:"pill",x:Ma,y:Ra,w:La,h:Ia,layer:"top",_element:ua,_parent_pcb_component:la,_parent_source_component:xa,_source_port:ba},{_pcb_drawing_object_id:`pill_${globalPcbDrawingObjectCount++}`,_element:ua,pcb_drawing_type:"pill",x:Ma,y:Ra,w:ka,h:Fa,layer:"drill"}]}else return[];case"pcb_keepout":if(ua.shape==="circle"){const{center:Ma,radius:Ra}=ua;return[{_pcb_drawing_object_id:`circle_${globalPcbDrawingObjectCount++}`,pcb_drawing_type:"circle",x:Ma.x,y:Ma.y,r:Ra,layer:"top",_element:ua,_parent_pcb_component:la,_parent_source_component:xa,mesh_fill:!0}]}else if(ua.shape==="rect"){const{x:Ma,y:Ra,width:Ia,height:La}=ua;return[{_pcb_drawing_object_id:`rect_${globalPcbDrawingObjectCount++}`,pcb_drawing_type:"rect",x:Ma,y:Ra,w:Ia,h:La,layer:"top",_element:ua,_parent_pcb_component:la,_parent_source_component:xa,mesh_fill:!0}]}case"pcb_trace":{const Ma=[];if(ua.route_thickness_mode==="interpolated"){const La=ua.route.map(ka=>({x:ka.x,y:ka.y,trace_width:ka.route_type==="wire"?ka.width:.5})),Fa=getExpandedStroke(La,.5);return Ma.push({_pcb_drawing_object_id:`polygon_${globalPcbDrawingObjectCount++}`,_element:ua,pcb_drawing_type:"polygon",points:Fa,layer:ua.route[0].layer}),ua.route.forEach(ka=>{ka.route_type==="via"&&Ma.push({_pcb_drawing_object_id:`circle_${globalPcbDrawingObjectCount++}`,_element:ua,pcb_drawing_type:"circle",x:ka.x,y:ka.y,radius:ka.outer_diameter/2,fill:!0,layer:ua.route.layer})}),Ma}let Ra=null,Ia=null;for(const La of ua.route)La.route_type==="wire"&&(Ra!==null&&Ia!==null&&Ma.push({_pcb_drawing_object_id:`line_${globalPcbDrawingObjectCount++}`,_element:ua,pcb_drawing_type:"line",x1:Ra,y1:Ia,x2:La.x,y2:La.y,width:La.width,squareCap:!1,layer:La.layer}),Ra=La.x,Ia=La.y);return Ma}case"pcb_via":{const{x:Ma,y:Ra,outer_diameter:Ia,hole_diameter:La,from_layer:Fa,to_layer:ka}=ua;return[{_pcb_drawing_object_id:`circle_${globalPcbDrawingObjectCount++}`,pcb_drawing_type:"circle",x:Ma,y:Ra,r:Ia/2,layer:Fa,_element:ua,_parent_pcb_component:la,_parent_source_component:xa},{_pcb_drawing_object_id:`circle_${globalPcbDrawingObjectCount++}`,_element:ua,pcb_drawing_type:"circle",x:Ma,y:Ra,r:La/2,layer:"drill",_parent_pcb_component:la,_parent_source_component:xa},{_pcb_drawing_object_id:`circle_${globalPcbDrawingObjectCount++}`,pcb_drawing_type:"circle",x:Ma,y:Ra,r:Ia/2,layer:ka,_element:ua,_parent_pcb_component:la,_parent_source_component:xa}]}case"pcb_silkscreen_rect":return[{_pcb_drawing_object_id:`rect_${globalPcbDrawingObjectCount++}`,pcb_drawing_type:"rect",x:ua.center.x,y:ua.center.y,w:ua.width,h:ua.height,layer:ua.layer==="bottom"?"bottom_silkscreen":"top_silkscreen"}];case"pcb_silkscreen_circle":return[{_pcb_drawing_object_id:`circle_${globalPcbDrawingObjectCount++}`,pcb_drawing_type:"circle",x:ua.center.x,y:ua.center.y,r:ua.radius,layer:ua.layer==="bottom"?"bottom_silkscreen":"top_silkscreen"}];case"pcb_silkscreen_oval":return[{_pcb_drawing_object_id:`oval_${globalPcbDrawingObjectCount++}`,pcb_drawing_type:"oval",x:ua.center.x,y:ua.center.y,rX:ua.radius_x/2,rY:ua.radius_y/2,layer:ua.layer==="bottom"?"bottom_silkscreen":"top_silkscreen"}];case"pcb_silkscreen_pill":return[{_pcb_drawing_object_id:`pill_${globalPcbDrawingObjectCount++}`,pcb_drawing_type:"pill",x:ua.center.x,y:ua.center.y,w:ua.width,h:ua.height,layer:ua.layer==="bottom"?"bottom_silkscreen":"top_silkscreen"}];case"pcb_silkscreen_line":return[{_pcb_drawing_object_id:`line_${globalPcbDrawingObjectCount++}`,pcb_drawing_type:"line",x1:ua.x1,y1:ua.y1,x2:ua.x2,y2:ua.y2,width:.1,squareCap:!1,layer:ua.layer==="bottom"?"bottom_silkscreen":"top_silkscreen"}];case"pcb_fabrication_note_path":case"pcb_silkscreen_path":{const{pcb_component_id:Ma,route:Ra,type:Ia}=ua;let La;return Ia==="pcb_silkscreen_path"?La=ua.layer==="bottom"?"bottom_silkscreen":"top_silkscreen":Ia==="pcb_fabrication_note_path"&&(La="top_fabrication"),Ra.slice(0,-1).map((Fa,ka)=>{const el=Ra[ka+1];return{_pcb_drawing_object_id:`line_${globalPcbDrawingObjectCount++}`,pcb_drawing_type:"line",x1:Fa.x,y1:Fa.y,x2:el.x,y2:el.y,width:ua.stroke_width??.1,squareCap:!1,layer:La,_element:ua,_parent_pcb_component:la,_parent_source_component:xa,_source_port:ba}}).filter(Boolean)}case"pcb_silkscreen_text":return[{_pcb_drawing_object_id:`text_${globalPcbDrawingObjectCount++}`,pcb_drawing_type:"text",x:ua.anchor_position.x,y:ua.anchor_position.y,layer:ua.layer==="bottom"?"bottom_silkscreen":"top_silkscreen",align:ua.anchor_alignment??"center",text:ua.text,size:ua.font_size,ccw_rotation:ua.ccw_rotation}];case"pcb_fabrication_note_text":return[{_pcb_drawing_object_id:`text_${globalPcbDrawingObjectCount++}`,pcb_drawing_type:"text",x:ua.anchor_position.x,y:ua.anchor_position.y,layer:ua.layer==="bottom"?"bottom_fabrication":"top_fabrication",size:ua.font_size,align:ua.anchor_alignment??"center",text:ua.text}]}return[]};function getTraceOverlayInfo({primitiveElement:ua,elements:J}){let la=ua.trace_length?`${ua.trace_length.toFixed(3)}`:"";const xa=su_default$1(J).source_trace.get(ua==null?void 0:ua.source_trace_id);if(xa!=null&&xa.display_name&&(xa!=null&&xa.max_length?la+=` / ${xa.max_length}mm `:la+=" mm ",la+=`(${xa.display_name})`),!la)return null;const Aa=ua.trace_length&&(xa==null?void 0:xa.max_length)&&ua.trace_length>xa.max_length;return{text:la,isOverLength:Aa}}function filterTracesIfMultiple(ua){const{primitives:J,is_showing_multiple_traces_length:la,elements:xa}=ua,Aa=J.filter(Ra=>Ra._element.type==="pcb_trace"),ba=xa.filter(Ra=>Ra.type==="source_trace"),Sa=J.filter(Ra=>Ra._element.type!=="pcb_trace"),Ma=Aa.filter(Ra=>ba.some(Ia=>Ra._element.type==="pcb_trace"&&Ra._element.source_trace_id===Ia.source_trace_id&&Ia.max_length!==void 0));if(!la)return[...Sa,...Ma];if(Aa.length>1){const Ra=Aa.reduce((Ia,La)=>{const Fa=Ia._element.trace_length;return La._element.trace_length<Fa?La:Ia},Aa[0]);return[...Sa,Ra]}return J}var containerStyle={position:"absolute",left:0,top:0,pointerEvents:"none",color:"red",fontFamily:"sans-serif",fontSize:12,textShadow:"0 0 2px black"},getTextForHighlightedPrimitive=ua=>{const{_element:J,_parent_pcb_component:la,_parent_source_component:xa,_source_port:Aa}=ua;switch(J.type){case"pcb_trace":return J.trace_length?`${J.trace_length.toFixed(3)}`:"";case"pcb_smtpad":case"pcb_plated_hole":{let ba="";xa&&"name"in xa&&xa.name&&(ba+=`.${xa.name} > `);const Sa=Array.from(new Set((J.port_hints??[]).concat((Aa==null?void 0:Aa.port_hints)??[]))).sort((Ma,Ra)=>Ra.localeCompare(Ma));return ba+=Sa.map(Ma=>Ma.match(/^[0-9]+$/)?`port.${Ma}`:`.${Ma}`).join(", "),ba}default:return""}},layerColorHightlightMap={top:"red",bottom:"aqua"},HighlightedPrimitiveBoxWithText=({primitive:ua,mousePos:J,elements:la})=>{var tl;const[xa,Aa]=reactExports.useState(!1),ba=ua._element;reactExports.useEffect(()=>{setTimeout(()=>{Aa(!0)},100)},[]);let[Sa,Ma,Ra,Ia]=[ua.screen_x,ua.screen_y,ua.screen_w,ua.screen_h];const La=ua.same_space_index??0,Fa=26,ka=layerColorHightlightMap[(tl=ua==null?void 0:ua._element)==null?void 0:tl.layer]??"red";let el=0;if(ba.type==="pcb_smtpad"&&(ba==null?void 0:ba.shape)==="rotated_rect"&&(el=ba==null?void 0:ba.ccw_rotation),ba.type==="pcb_trace"){const il=getTraceOverlayInfo({primitiveElement:ba,elements:la});if(!il)return null;const nl=J.y-35;return jsxRuntimeExports.jsx("div",{style:{zIndex:zIndexMap.elementOverlay,position:"absolute",left:J.x,top:nl,color:ka,pointerEvents:"none",transform:"translateX(-50%)"},children:jsxRuntimeExports.jsx("div",{style:{backgroundColor:"#f2efcc",color:il.isOverLength?"red":"black",textShadow:"none",WebkitFontSmoothing:"antialiased",MozOsxFontSmoothing:"grayscale",padding:"6px 6px",borderRadius:"6px",fontSize:"14px",minWidth:"45px",textAlign:"center",whiteSpace:"nowrap"},children:il.text})})}return jsxRuntimeExports.jsx("div",{style:{zIndex:zIndexMap.elementOverlay,position:"absolute",left:Sa-Ra/2-8,top:Ma-Ia/2-8,width:Ra+16,height:Ia+16,color:ka,transform:`rotate(${-el}deg)`,transformOrigin:"center center"},children:jsxRuntimeExports.jsx("div",{style:{width:xa?`calc(100% + ${Fa*2*La}px)`:"100%",height:xa?`calc(100% + ${Fa*2*La}px)`:"100%",marginLeft:xa?`${-Fa*La}px`:0,marginTop:xa?`${-Fa*La}px`:0,border:`1px solid ${ka}`,opacity:xa||La===0?1:0,transition:"width 0.2s, height 0.2s, margin-left 0.2s, margin-top 0.2s, opacity 0.2s"},children:jsxRuntimeExports.jsx("div",{style:{position:"absolute",bottom:Ia+20+Fa*La,marginRight:xa?`${-Fa*La}px`:0,marginBottom:xa?0:-Fa*La,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(${el}deg)`,minWidth:"45px",textAlign:"center"},children:getTextForHighlightedPrimitive(ua)})})})},ElementOverlayBox=({highlightedPrimitives:ua,mousePos:J,elements:la})=>{const[xa,Aa]=useGlobalStore(Ma=>[Ma.is_moving_component,Ma.is_showing_multiple_traces_length]),ba=ua.some(Ma=>Ma._element.type==="pcb_smtpad")&&ua.some(Ma=>Ma._element.type==="pcb_trace");let Sa=ua;return ba&&(Sa=Sa.filter(Ma=>Ma._element.type==="pcb_smtpad")),Sa=filterTracesIfMultiple({primitives:Sa,is_showing_multiple_traces_length:Aa,elements:la}),jsxRuntimeExports.jsx("div",{style:containerStyle,children:!xa&&Sa.map((Ma,Ra)=>jsxRuntimeExports.jsx(HighlightedPrimitiveBoxWithText,{primitive:Ma,mousePos:J,elements:la},Ra))})};function ifSetsMatchExactly(ua,J){return ua.size!==J.size?!1:Array.from(ua).every(la=>J.has(la))}var MouseElementTracker=({elements:ua,children:J,transform:la,primitives:xa,onMouseHoverOverPrimitives:Aa})=>{const[ba,Sa]=reactExports.useState([]),[Ma,Ra]=reactExports.useState({x:0,y:0}),Ia=reactExports.useMemo(()=>{var Fa,ka;const La=[];for(const el of ba){if(((Fa=el._element)==null?void 0:Fa.type)==="pcb_via"||((ka=el._element)==null?void 0:ka.type)==="pcb_component"||(el==null?void 0:el.layer)==="drill")continue;const tl=applyToPoint(la,el),rl="w"in el?el.w:"r"in el?el.r*2:0,il="h"in el?el.h:"r"in el?el.r*2:0,nl={w:rl*la.a,h:il*la.a};let sl=La.filter(ll=>tl.x===ll.screen_x&&tl.y===ll.screen_y&&nl.w===ll.screen_w&&nl.h===ll.screen_h).length;La.push({...el,screen_x:tl.x,screen_y:tl.y,screen_w:nl.w,screen_h:nl.h,same_space_index:sl})}return La},[ba,la]);return jsxRuntimeExports.jsxs("div",{style:{position:"relative"},onMouseMove:La=>{var Fa;if(la){const ka=La.currentTarget.getBoundingClientRect(),el=La.clientX-ka.left,tl=La.clientY-ka.top;Ra({x:el,y:tl});const rl=applyToPoint(inverse(la),{x:el,y:tl}),il=[];for(const nl of xa){if(!nl._element)continue;if("x1"in nl&&((Fa=nl._element)==null?void 0:Fa.type)==="pcb_trace"){const dl=pointToSegmentDistance({x:rl.x,y:rl.y},{x:nl.x1,y:nl.y1},{x:nl.x2,y:nl.y2}),gl=nl.width||.5,_l=Math.max(gl*25,2)/la.a;dl<_l&&il.push(nl);continue}if(!("x"in nl&&"y"in nl))continue;let sl=0,ll=0;if("w"in nl&&"h"in nl)sl=nl.w,ll=nl.h;else if("r"in nl)sl=nl.r*2,ll=nl.r*2;else continue;Math.abs(nl.x-rl.x)<sl/2&&Math.abs(nl.y-rl.y)<ll/2&&il.push(nl)}if(ifSetsMatchExactly(new Set(il.map(nl=>nl._pcb_drawing_object_id)),new Set(ba.map(nl=>nl._pcb_drawing_object_id))))return;Sa(il),Aa(il)}},children:[J,jsxRuntimeExports.jsx(ElementOverlayBox,{elements:ua,mousePos:Ma,highlightedPrimitives:Ia})]})},DimensionOverlay=({children:ua,transform:J})=>{J||(J=identity$3());const[la,xa]=reactExports.useState(!1),[Aa,ba]=reactExports.useState(!1),[Sa,Ma]=reactExports.useState({x:0,y:0}),[Ra,Ia]=reactExports.useState({x:0,y:0}),La=reactExports.useRef({x:0,y:0}),Fa=reactExports.useRef(null),ka=Fa.current,el=ka==null?void 0:ka.getBoundingClientRect();reactExports.useEffect(()=>{const nl=Fa.current,sl=gl=>{gl.key==="d"&&(Ma({x:La.current.x,y:La.current.y}),Ia({x:La.current.x,y:La.current.y}),xa(_l=>!_l),ba(!0),gl.preventDefault()),gl.key==="Escape"&&(xa(!1),ba(!1))},ll=()=>{nl&&nl.addEventListener("keydown",sl)},dl=()=>{nl&&nl.removeEventListener("keydown",sl)};return nl&&(nl.addEventListener("focus",ll),nl.addEventListener("blur",dl),nl.addEventListener("mouseenter",ll),nl.addEventListener("mouseleave",dl)),()=>{nl&&(nl.removeEventListener("focus",ll),nl.removeEventListener("blur",dl),nl.removeEventListener("mouseenter",ll),nl.removeEventListener("mouseleave",dl))}},[Fa]);const tl=applyToPoint(J,Sa),rl=applyToPoint(J,Ra),il={left:Math.min(tl.x,rl.x),right:Math.max(tl.x,rl.x),top:Math.min(tl.y,rl.y),bottom:Math.max(tl.y,rl.y),flipX:tl.x>rl.x,flipY:tl.y>rl.y,width:0,height:0};return il.width=il.right-il.left,il.height=il.bottom-il.top,jsxRuntimeExports.jsxs("div",{ref:Fa,tabIndex:0,style:{position:"relative"},onMouseEnter:()=>{Fa.current&&Fa.current.focus()},onMouseLeave:()=>{Fa.current&&Fa.current.blur()},onMouseMove:nl=>{const sl=nl.currentTarget.getBoundingClientRect(),ll=nl.clientX-sl.left,dl=nl.clientY-sl.top,gl=applyToPoint(inverse(J),{x:ll,y:dl});La.current.x=gl.x,La.current.y=gl.y,Aa&&Ia({x:gl.x,y:gl.y})},onMouseDown:()=>{Aa?ba(!1):la&&xa(!1)},children:[ua,la&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{style:{position:"absolute",left:il.left,width:il.width,textAlign:"center",top:tl.y+2,color:"red",mixBlendMode:"difference",pointerEvents:"none",marginTop:il.flipY?0:-20,fontSize:12,fontFamily:"sans-serif",zIndex:zIndexMap.dimensionOverlay},children:Math.abs(Sa.x-Ra.x).toFixed(2)}),jsxRuntimeExports.jsx("div",{style:{position:"absolute",left:rl.x,height:il.height,display:"flex",flexDirection:"column",justifyContent:"center",top:il.top,color:"red",pointerEvents:"none",mixBlendMode:"difference",fontSize:12,fontFamily:"sans-serif",zIndex:zIndexMap.dimensionOverlay},children:jsxRuntimeExports.jsx("div",{style:{marginLeft:il.flipX?"-100%":4,paddingRight:4},children:Math.abs(Sa.y-Ra.y).toFixed(2)})}),jsxRuntimeExports.jsxs("svg",{style:{position:"absolute",left:0,top:0,pointerEvents:"none",mixBlendMode:"difference",zIndex:zIndexMap.dimensionOverlay},width:el.width,height:el.height,children:[jsxRuntimeExports.jsx("defs",{children:jsxRuntimeExports.jsx("marker",{id:"head",orient:"auto",markerWidth:"3",markerHeight:"4",refX:"2",refY:"2",children:jsxRuntimeExports.jsx("path",{d:"M0,0 V4 L2,2 Z",fill:"red"})})}),jsxRuntimeExports.jsx("line",{x1:tl.x,y1:tl.y,x2:rl.x,y2:rl.y,markerEnd:"url(#head)",strokeWidth:1.5,fill:"none",stroke:"red"}),jsxRuntimeExports.jsx("line",{x1:tl.x,y1:tl.y,x2:rl.x,y2:tl.y,strokeWidth:1.5,fill:"none",strokeDasharray:"2,2",stroke:"red"}),jsxRuntimeExports.jsx("line",{x1:rl.x,y1:tl.y,x2:rl.x,y2:rl.y,strokeWidth:1.5,fill:"none",strokeDasharray:"2,2",stroke:"red"})]}),jsxRuntimeExports.jsxs("div",{style:{right:0,bottom:0,position:"absolute",color:"red",fontFamily:"sans-serif",fontSize:12,margin:4},children:["(",Sa.x.toFixed(2),",",Sa.y.toFixed(2),")",jsxRuntimeExports.jsx("br",{}),"(",Ra.x.toFixed(2),",",Ra.y.toFixed(2),")",jsxRuntimeExports.jsx("br",{}),"dist:"," ",Math.sqrt(Math.pow(Ra.x-Sa.x,2)+Math.pow(Ra.y-Sa.y,2)).toFixed(2)]})]})]})},package_default={name:"@tscircuit/pcb-viewer",version:"1.11.28",main:"dist/index.js",type:"module",repository:"tscircuit/pcb-viewer",license:"MIT",scripts:{start:"storybook dev -p 6006",build:"tsup ./src/index.tsx --platform browser --dts --sourcemap --format esm --outDir dist",yalc:"npm run build && yalc push",storybook:"storybook dev -p 6006","build-storybook":"storybook build",format:"biome format . --write","format:check":"biome format ."},files:["dist"],devDependencies:{"@biomejs/biome":"^1.9.4","@semantic-release/commit-analyzer":"^9.0.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^9.0.1","@semantic-release/release-notes-generator":"^10.0.3","@storybook/nextjs":"^8.0.6","@storybook/react":"^8.0.6","@swc/core":"^1.4.12","@tscircuit/core":"0.0.272","@tscircuit/eagle-xml-converter":"^1.0.0","@tscircuit/props":"^0.0.130","@tscircuit/soup-util":"^0.0.41","@types/color":"^3.0.6","@types/node":"18.7.23","@types/react":"^18.3.3","circuit-json":"^0.0.128",next:"^14.1.4","pixi.js":"^8.6.6",react:"^18.2.0","react-dom":"^18.2.0","react-use":"^17.4.0",storybook:"^8.0.6",tsup:"^8.0.2","type-fest":"^3.0.0",typescript:"^5.4.4","use-mouse-matrix-transform":"^1.3.0",zod:"^3.23.5"},peerDependencies:{react:"*","@tscircuit/core":"*"},dependencies:{"@emotion/css":"^11.11.2","circuit-json-to-connectivity-map":"^0.0.18","@tscircuit/math-utils":"^0.0.10","circuit-to-svg":"^0.0.36",color:"^4.2.3","react-supergrid":"^1.0.10","react-toastify":"^10.0.5","transformation-matrix":"^2.13.0",zustand:"^4.5.2"}},useHotKey=(ua,J)=>{const la=useGlobalStore(xa=>xa.is_mouse_over_container);reactExports.useEffect(()=>{if(!ua||typeof J!="function")return;const xa=Aa=>{const ba=ua.split("+"),Sa=ba.includes("ctrl"),Ma=ba.includes("shift"),Ra=ba.includes("alt"),Ia=ba.includes("meta"),La=ba[ba.length-1];la&&(!Sa||Aa.ctrlKey)&&(!Ma||Aa.shiftKey)&&(!Ra||Aa.altKey)&&(!Ia||Aa.metaKey)&&Aa.key.toLowerCase()===La.toLowerCase()&&(Aa.preventDefault(),J())};return window.addEventListener("keydown",xa),()=>{window.removeEventListener("keydown",xa)}},[ua,J])},LayerButton=({name:ua,selected:J,onClick:la})=>jsxRuntimeExports.jsxs("div",{className:css`
|
|
22439
22439
|
margin-top: 2px;
|
|
22440
22440
|
padding: 4px;
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@tscircuit/runframe",
|
|
3
3
|
"main": "dist/preview.js",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"version": "0.0.
|
|
5
|
+
"version": "0.0.117",
|
|
6
6
|
"exports": {
|
|
7
7
|
".": "./dist/preview.js",
|
|
8
8
|
"./preview": "./dist/preview.js",
|
|
@@ -56,10 +56,10 @@
|
|
|
56
56
|
"@radix-ui/react-icons": "^1.3.2",
|
|
57
57
|
"@radix-ui/react-slot": "^1.1.1",
|
|
58
58
|
"@radix-ui/react-tabs": "^1.1.2",
|
|
59
|
-
"@tscircuit/3d-viewer": "^0.0.
|
|
59
|
+
"@tscircuit/3d-viewer": "^0.0.102",
|
|
60
60
|
"@tscircuit/assembly-viewer": "^0.0.1",
|
|
61
61
|
"@tscircuit/eval-webworker": "^0.0.72",
|
|
62
|
-
"@tscircuit/core": "^0.0.
|
|
62
|
+
"@tscircuit/core": "^0.0.274",
|
|
63
63
|
"@tscircuit/file-server": "^0.0.13",
|
|
64
64
|
"@tscircuit/pcb-viewer": "^1.11.29",
|
|
65
65
|
"@tscircuit/props": "^0.0.130",
|