@tscircuit/eval 0.0.485 → 0.0.487
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/blob-url.js +1 -1
- package/dist/eval/index.d.ts +8 -4
- package/dist/eval/index.js +34 -8
- package/dist/lib/index.d.ts +8 -4
- package/dist/lib/index.js +34 -8
- package/dist/webworker/entrypoint.js +5 -5
- package/package.json +2 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var Upt=Object.create;var kx=Object.defineProperty;var Vpt=Object.getOwnPropertyDescriptor;var Gpt=Object.getOwnPropertyNames;var Hpt=Object.getPrototypeOf,Wpt=Object.prototype.hasOwnProperty;var qpt=(n,e,t)=>e in n?kx(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var Ky=(n=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(n,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):n)(function(n){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+n+'" is not supported')});var qt=(n,e)=>()=>(n&&(e=n(n=0)),e);var ue=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports),gh=(n,e)=>{for(var t in e)kx(n,t,{get:e[t],enumerable:!0})},Zpt=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Gpt(e))!Wpt.call(n,r)&&r!==t&&kx(n,r,{get:()=>e[r],enumerable:!(i=Vpt(e,r))||i.enumerable});return n};var Gt=(n,e,t)=>(t=n!=null?Upt(Hpt(n)):{},Zpt(e||!n||!n.__esModule?kx(t,"default",{value:n,enumerable:!0}):t,n));var d=(n,e,t)=>qpt(n,typeof e!="symbol"?e+"":e,t);var k$=ue(Ie=>{"use strict";var O3=Symbol.for("react.transitional.element"),pht=Symbol.for("react.portal"),hht=Symbol.for("react.fragment"),dht=Symbol.for("react.strict_mode"),fht=Symbol.for("react.profiler"),mht=Symbol.for("react.consumer"),_ht=Symbol.for("react.context"),yht=Symbol.for("react.forward_ref"),ght=Symbol.for("react.suspense"),xht=Symbol.for("react.memo"),x$=Symbol.for("react.lazy"),bht=Symbol.for("react.activity"),m$=Symbol.iterator;function vht(n){return n===null||typeof n!="object"?null:(n=m$&&n[m$]||n["@@iterator"],typeof n=="function"?n:null)}var b$={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},v$=Object.assign,w$={};function bm(n,e,t){this.props=n,this.context=e,this.refs=w$,this.updater=t||b$}bm.prototype.isReactComponent={};bm.prototype.setState=function(n,e){if(typeof n!="object"&&typeof n!="function"&&n!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,n,e,"setState")};bm.prototype.forceUpdate=function(n){this.updater.enqueueForceUpdate(this,n,"forceUpdate")};function S$(){}S$.prototype=bm.prototype;function L3(n,e,t){this.props=n,this.context=e,this.refs=w$,this.updater=t||b$}var F3=L3.prototype=new S$;F3.constructor=L3;v$(F3,bm.prototype);F3.isPureReactComponent=!0;var _$=Array.isArray;function R3(){}var zn={H:null,A:null,T:null,S:null},P$=Object.prototype.hasOwnProperty;function z3(n,e,t){var i=t.ref;return{$$typeof:O3,type:n,key:e,ref:i!==void 0?i:null,props:t}}function wht(n,e){return z3(n.type,e,n.props)}function $3(n){return typeof n=="object"&&n!==null&&n.$$typeof===O3}function Sht(n){var e={"=":"=0",":":"=2"};return"$"+n.replace(/[=:]/g,function(t){return e[t]})}var y$=/\/+/g;function A3(n,e){return typeof n=="object"&&n!==null&&n.key!=null?Sht(""+n.key):e.toString(36)}function Pht(n){switch(n.status){case"fulfilled":return n.value;case"rejected":throw n.reason;default:switch(typeof n.status=="string"?n.then(R3,R3):(n.status="pending",n.then(function(e){n.status==="pending"&&(n.status="fulfilled",n.value=e)},function(e){n.status==="pending"&&(n.status="rejected",n.reason=e)})),n.status){case"fulfilled":return n.value;case"rejected":throw n.reason}}throw n}function xm(n,e,t,i,r){var s=typeof n;(s==="undefined"||s==="boolean")&&(n=null);var o=!1;if(n===null)o=!0;else switch(s){case"bigint":case"string":case"number":o=!0;break;case"object":switch(n.$$typeof){case O3:case pht:o=!0;break;case x$:return o=n._init,xm(o(n._payload),e,t,i,r)}}if(o)return r=r(n),o=i===""?"."+A3(n,0):i,_$(r)?(t="",o!=null&&(t=o.replace(y$,"$&/")+"/"),xm(r,e,t,"",function(l){return l})):r!=null&&($3(r)&&(r=wht(r,t+(r.key==null||n&&n.key===r.key?"":(""+r.key).replace(y$,"$&/")+"/")+o)),e.push(r)),1;o=0;var a=i===""?".":i+":";if(_$(n))for(var c=0;c<n.length;c++)i=n[c],s=a+A3(i,c),o+=xm(i,e,t,s,r);else if(c=vht(n),typeof c=="function")for(n=c.call(n),c=0;!(i=n.next()).done;)i=i.value,s=a+A3(i,c++),o+=xm(i,e,t,s,r);else if(s==="object"){if(typeof n.then=="function")return xm(Pht(n),e,t,i,r);throw e=String(n),Error("Objects are not valid as a React child (found: "+(e==="[object Object]"?"object with keys {"+Object.keys(n).join(", ")+"}":e)+"). If you meant to render a collection of children, use an array instead.")}return o}function Ax(n,e,t){if(n==null)return n;var i=[],r=0;return xm(n,i,"","",function(s){return e.call(t,s,r++)}),i}function kht(n){if(n._status===-1){var e=n._result;e=e(),e.then(function(t){(n._status===0||n._status===-1)&&(n._status=1,n._result=t)},function(t){(n._status===0||n._status===-1)&&(n._status=2,n._result=t)}),n._status===-1&&(n._status=0,n._result=e)}if(n._status===1)return n._result.default;throw n._result}var g$=typeof reportError=="function"?reportError:function(n){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var e=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof n=="object"&&n!==null&&typeof n.message=="string"?String(n.message):String(n),error:n});if(!window.dispatchEvent(e))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",n);return}console.error(n)},Tht={map:Ax,forEach:function(n,e,t){Ax(n,function(){e.apply(this,arguments)},t)},count:function(n){var e=0;return Ax(n,function(){e++}),e},toArray:function(n){return Ax(n,function(e){return e})||[]},only:function(n){if(!$3(n))throw Error("React.Children.only expected to receive a single React element child.");return n}};Ie.Activity=bht;Ie.Children=Tht;Ie.Component=bm;Ie.Fragment=hht;Ie.Profiler=fht;Ie.PureComponent=L3;Ie.StrictMode=dht;Ie.Suspense=ght;Ie.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=zn;Ie.__COMPILER_RUNTIME={__proto__:null,c:function(n){return zn.H.useMemoCache(n)}};Ie.cache=function(n){return function(){return n.apply(null,arguments)}};Ie.cacheSignal=function(){return null};Ie.cloneElement=function(n,e,t){if(n==null)throw Error("The argument must be a React element, but you passed "+n+".");var i=v$({},n.props),r=n.key;if(e!=null)for(s in e.key!==void 0&&(r=""+e.key),e)!P$.call(e,s)||s==="key"||s==="__self"||s==="__source"||s==="ref"&&e.ref===void 0||(i[s]=e[s]);var s=arguments.length-2;if(s===1)i.children=t;else if(1<s){for(var o=Array(s),a=0;a<s;a++)o[a]=arguments[a+2];i.children=o}return z3(n.type,r,i)};Ie.createContext=function(n){return n={$$typeof:_ht,_currentValue:n,_currentValue2:n,_threadCount:0,Provider:null,Consumer:null},n.Provider=n,n.Consumer={$$typeof:mht,_context:n},n};Ie.createElement=function(n,e,t){var i,r={},s=null;if(e!=null)for(i in e.key!==void 0&&(s=""+e.key),e)P$.call(e,i)&&i!=="key"&&i!=="__self"&&i!=="__source"&&(r[i]=e[i]);var o=arguments.length-2;if(o===1)r.children=t;else if(1<o){for(var a=Array(o),c=0;c<o;c++)a[c]=arguments[c+2];r.children=a}if(n&&n.defaultProps)for(i in o=n.defaultProps,o)r[i]===void 0&&(r[i]=o[i]);return z3(n,s,r)};Ie.createRef=function(){return{current:null}};Ie.forwardRef=function(n){return{$$typeof:yht,render:n}};Ie.isValidElement=$3;Ie.lazy=function(n){return{$$typeof:x$,_payload:{_status:-1,_result:n},_init:kht}};Ie.memo=function(n,e){return{$$typeof:xht,type:n,compare:e===void 0?null:e}};Ie.startTransition=function(n){var e=zn.T,t={};zn.T=t;try{var i=n(),r=zn.S;r!==null&&r(t,i),typeof i=="object"&&i!==null&&typeof i.then=="function"&&i.then(R3,g$)}catch(s){g$(s)}finally{e!==null&&t.types!==null&&(e.types=t.types),zn.T=e}};Ie.unstable_useCacheRefresh=function(){return zn.H.useCacheRefresh()};Ie.use=function(n){return zn.H.use(n)};Ie.useActionState=function(n,e,t){return zn.H.useActionState(n,e,t)};Ie.useCallback=function(n,e){return zn.H.useCallback(n,e)};Ie.useContext=function(n){return zn.H.useContext(n)};Ie.useDebugValue=function(){};Ie.useDeferredValue=function(n,e){return zn.H.useDeferredValue(n,e)};Ie.useEffect=function(n,e){return zn.H.useEffect(n,e)};Ie.useEffectEvent=function(n){return zn.H.useEffectEvent(n)};Ie.useId=function(){return zn.H.useId()};Ie.useImperativeHandle=function(n,e,t){return zn.H.useImperativeHandle(n,e,t)};Ie.useInsertionEffect=function(n,e){return zn.H.useInsertionEffect(n,e)};Ie.useLayoutEffect=function(n,e){return zn.H.useLayoutEffect(n,e)};Ie.useMemo=function(n,e){return zn.H.useMemo(n,e)};Ie.useOptimistic=function(n,e){return zn.H.useOptimistic(n,e)};Ie.useReducer=function(n,e,t){return zn.H.useReducer(n,e,t)};Ie.useRef=function(n){return zn.H.useRef(n)};Ie.useState=function(n){return zn.H.useState(n)};Ie.useSyncExternalStore=function(n,e,t){return zn.H.useSyncExternalStore(n,e,t)};Ie.useTransition=function(){return zn.H.useTransition()};Ie.version="19.2.0"});var Ws=ue((aXt,T$)=>{"use strict";T$.exports=k$()});var Ve,D3,Ht,Mo,Jy=qt(()=>{"use strict";(function(n){n.assertEqual=r=>{};function e(r){}n.assertIs=e;function t(r){throw new Error}n.assertNever=t,n.arrayToEnum=r=>{let s={};for(let o of r)s[o]=o;return s},n.getValidEnumValues=r=>{let s=n.objectKeys(r).filter(a=>typeof r[r[a]]!="number"),o={};for(let a of s)o[a]=r[a];return n.objectValues(o)},n.objectValues=r=>n.objectKeys(r).map(function(s){return r[s]}),n.objectKeys=typeof Object.keys=="function"?r=>Object.keys(r):r=>{let s=[];for(let o in r)Object.prototype.hasOwnProperty.call(r,o)&&s.push(o);return s},n.find=(r,s)=>{for(let o of r)if(s(o))return o},n.isInteger=typeof Number.isInteger=="function"?r=>Number.isInteger(r):r=>typeof r=="number"&&Number.isFinite(r)&&Math.floor(r)===r;function i(r,s=" | "){return r.map(o=>typeof o=="string"?`'${o}'`:o).join(s)}n.joinValues=i,n.jsonStringifyReplacer=(r,s)=>typeof s=="bigint"?s.toString():s})(Ve||(Ve={}));(function(n){n.mergeShapes=(e,t)=>({...e,...t})})(D3||(D3={}));Ht=Ve.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Mo=n=>{switch(typeof n){case"undefined":return Ht.undefined;case"string":return Ht.string;case"number":return Number.isNaN(n)?Ht.nan:Ht.number;case"boolean":return Ht.boolean;case"function":return Ht.function;case"bigint":return Ht.bigint;case"symbol":return Ht.symbol;case"object":return Array.isArray(n)?Ht.array:n===null?Ht.null:n.then&&typeof n.then=="function"&&n.catch&&typeof n.catch=="function"?Ht.promise:typeof Map<"u"&&n instanceof Map?Ht.map:typeof Set<"u"&&n instanceof Set?Ht.set:typeof Date<"u"&&n instanceof Date?Ht.date:Ht.object;default:return Ht.unknown}}});var At,Mht,Lr,Rx=qt(()=>{"use strict";Jy();At=Ve.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"]),Mht=n=>JSON.stringify(n,null,2).replace(/"([^"]+)":/g,"$1:"),Lr=class n extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=i=>{this.issues=[...this.issues,i]},this.addIssues=(i=[])=>{this.issues=[...this.issues,...i]};let t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name="ZodError",this.issues=e}format(e){let t=e||function(s){return s.message},i={_errors:[]},r=s=>{for(let o of s.issues)if(o.code==="invalid_union")o.unionErrors.map(r);else if(o.code==="invalid_return_type")r(o.returnTypeError);else if(o.code==="invalid_arguments")r(o.argumentsError);else if(o.path.length===0)i._errors.push(t(o));else{let a=i,c=0;for(;c<o.path.length;){let l=o.path[c];c===o.path.length-1?(a[l]=a[l]||{_errors:[]},a[l]._errors.push(t(o))):a[l]=a[l]||{_errors:[]},a=a[l],c++}}};return r(this),i}static assert(e){if(!(e instanceof n))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,Ve.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=t=>t.message){let t={},i=[];for(let r of this.issues)if(r.path.length>0){let s=r.path[0];t[s]=t[s]||[],t[s].push(e(r))}else i.push(e(r));return{formErrors:i,fieldErrors:t}}get formErrors(){return this.flatten()}};Lr.create=n=>new Lr(n)});var Eht,_a,j3=qt(()=>{"use strict";Rx();Jy();Eht=(n,e)=>{let t;switch(n.code){case At.invalid_type:n.received===Ht.undefined?t="Required":t=`Expected ${n.expected}, received ${n.received}`;break;case At.invalid_literal:t=`Invalid literal value, expected ${JSON.stringify(n.expected,Ve.jsonStringifyReplacer)}`;break;case At.unrecognized_keys:t=`Unrecognized key(s) in object: ${Ve.joinValues(n.keys,", ")}`;break;case At.invalid_union:t="Invalid input";break;case At.invalid_union_discriminator:t=`Invalid discriminator value. Expected ${Ve.joinValues(n.options)}`;break;case At.invalid_enum_value:t=`Invalid enum value. Expected ${Ve.joinValues(n.options)}, received '${n.received}'`;break;case At.invalid_arguments:t="Invalid function arguments";break;case At.invalid_return_type:t="Invalid function return type";break;case At.invalid_date:t="Invalid date";break;case At.invalid_string:typeof n.validation=="object"?"includes"in n.validation?(t=`Invalid input: must include "${n.validation.includes}"`,typeof n.validation.position=="number"&&(t=`${t} at one or more positions greater than or equal to ${n.validation.position}`)):"startsWith"in n.validation?t=`Invalid input: must start with "${n.validation.startsWith}"`:"endsWith"in n.validation?t=`Invalid input: must end with "${n.validation.endsWith}"`:Ve.assertNever(n.validation):n.validation!=="regex"?t=`Invalid ${n.validation}`:t="Invalid";break;case At.too_small:n.type==="array"?t=`Array must contain ${n.exact?"exactly":n.inclusive?"at least":"more than"} ${n.minimum} element(s)`:n.type==="string"?t=`String must contain ${n.exact?"exactly":n.inclusive?"at least":"over"} ${n.minimum} character(s)`:n.type==="number"?t=`Number must be ${n.exact?"exactly equal to ":n.inclusive?"greater than or equal to ":"greater than "}${n.minimum}`:n.type==="bigint"?t=`Number must be ${n.exact?"exactly equal to ":n.inclusive?"greater than or equal to ":"greater than "}${n.minimum}`:n.type==="date"?t=`Date must be ${n.exact?"exactly equal to ":n.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(n.minimum))}`:t="Invalid input";break;case At.too_big:n.type==="array"?t=`Array must contain ${n.exact?"exactly":n.inclusive?"at most":"less than"} ${n.maximum} element(s)`:n.type==="string"?t=`String must contain ${n.exact?"exactly":n.inclusive?"at most":"under"} ${n.maximum} character(s)`:n.type==="number"?t=`Number must be ${n.exact?"exactly":n.inclusive?"less than or equal to":"less than"} ${n.maximum}`:n.type==="bigint"?t=`BigInt must be ${n.exact?"exactly":n.inclusive?"less than or equal to":"less than"} ${n.maximum}`:n.type==="date"?t=`Date must be ${n.exact?"exactly":n.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(n.maximum))}`:t="Invalid input";break;case At.custom:t="Invalid input";break;case At.invalid_intersection_types:t="Intersection results could not be merged";break;case At.not_multiple_of:t=`Number must be a multiple of ${n.multipleOf}`;break;case At.not_finite:t="Number must be finite";break;default:t=e.defaultError,Ve.assertNever(n)}return{message:t}},_a=Eht});function Cht(n){M$=n}function vm(){return M$}var M$,Ox=qt(()=>{"use strict";j3();M$=_a});function Bt(n,e){let t=vm(),i=Qy({issueData:e,data:n.data,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,t,t===_a?void 0:_a].filter(r=>!!r)});n.common.issues.push(i)}var Qy,Iht,Ki,ye,bh,cr,Lx,Fx,Nc,wm,B3=qt(()=>{"use strict";Ox();j3();Qy=n=>{let{data:e,path:t,errorMaps:i,issueData:r}=n,s=[...t,...r.path||[]],o={...r,path:s};if(r.message!==void 0)return{...r,path:s,message:r.message};let a="",c=i.filter(l=>!!l).slice().reverse();for(let l of c)a=l(o,{data:e,defaultError:a}).message;return{...r,path:s,message:a}},Iht=[];Ki=class n{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,t){let i=[];for(let r of t){if(r.status==="aborted")return ye;r.status==="dirty"&&e.dirty(),i.push(r.value)}return{status:e.value,value:i}}static async mergeObjectAsync(e,t){let i=[];for(let r of t){let s=await r.key,o=await r.value;i.push({key:s,value:o})}return n.mergeObjectSync(e,i)}static mergeObjectSync(e,t){let i={};for(let r of t){let{key:s,value:o}=r;if(s.status==="aborted"||o.status==="aborted")return ye;s.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),s.value!=="__proto__"&&(typeof o.value<"u"||r.alwaysSet)&&(i[s.value]=o.value)}return{status:e.value,value:i}}},ye=Object.freeze({status:"aborted"}),bh=n=>({status:"dirty",value:n}),cr=n=>({status:"valid",value:n}),Lx=n=>n.status==="aborted",Fx=n=>n.status==="dirty",Nc=n=>n.status==="valid",wm=n=>typeof Promise<"u"&&n instanceof Promise});var E$=qt(()=>{"use strict"});var se,C$=qt(()=>{"use strict";(function(n){n.errToObj=e=>typeof e=="string"?{message:e}:e||{},n.toString=e=>typeof e=="string"?e:e?.message})(se||(se={}))});function Ne(n){if(!n)return{};let{errorMap:e,invalid_type_error:t,required_error:i,description:r}=n;if(e&&(t||i))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:r}:{errorMap:(o,a)=>{let{message:c}=n;return o.code==="invalid_enum_value"?{message:c??a.defaultError}:typeof a.data>"u"?{message:c??i??a.defaultError}:o.code!=="invalid_type"?{message:a.defaultError}:{message:c??t??a.defaultError}},description:r}}function R$(n){let e="[0-5]\\d";n.precision?e=`${e}\\.\\d{${n.precision}}`:n.precision==null&&(e=`${e}(\\.\\d+)?`);let t=n.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${t}`}function Hht(n){return new RegExp(`^${R$(n)}$`)}function O$(n){let e=`${A$}T${R$(n)}`,t=[];return t.push(n.local?"Z?":"Z"),n.offset&&t.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${t.join("|")})`,new RegExp(`^${e}$`)}function Wht(n,e){return!!((e==="v4"||!e)&&jht.test(n)||(e==="v6"||!e)&&Yht.test(n))}function qht(n,e){if(!Fht.test(n))return!1;try{let[t]=n.split(".");if(!t)return!1;let i=t.replace(/-/g,"+").replace(/_/g,"/").padEnd(t.length+(4-t.length%4)%4,"="),r=JSON.parse(atob(i));return!(typeof r!="object"||r===null||"typ"in r&&r?.typ!=="JWT"||!r.alg||e&&r.alg!==e)}catch{return!1}}function Zht(n,e){return!!((e==="v4"||!e)&&Bht.test(n)||(e==="v6"||!e)&&Xht.test(n))}function Kht(n,e){let t=(n.toString().split(".")[1]||"").length,i=(e.toString().split(".")[1]||"").length,r=t>i?t:i,s=Number.parseInt(n.toFixed(r).replace(".","")),o=Number.parseInt(e.toFixed(r).replace(".",""));return s%o/10**r}function Sm(n){if(n instanceof Fr){let e={};for(let t in n.shape){let i=n.shape[t];e[t]=ws.create(Sm(i))}return new Fr({...n._def,shape:()=>e})}else return n instanceof xa?new xa({...n._def,type:Sm(n.element)}):n instanceof ws?ws.create(Sm(n.unwrap())):n instanceof Co?Co.create(Sm(n.unwrap())):n instanceof Eo?Eo.create(n.items.map(e=>Sm(e))):n}function X3(n,e){let t=Mo(n),i=Mo(e);if(n===e)return{valid:!0,data:n};if(t===Ht.object&&i===Ht.object){let r=Ve.objectKeys(e),s=Ve.objectKeys(n).filter(a=>r.indexOf(a)!==-1),o={...n,...e};for(let a of s){let c=X3(n[a],e[a]);if(!c.valid)return{valid:!1};o[a]=c.data}return{valid:!0,data:o}}else if(t===Ht.array&&i===Ht.array){if(n.length!==e.length)return{valid:!1};let r=[];for(let s=0;s<n.length;s++){let o=n[s],a=e[s],c=X3(o,a);if(!c.valid)return{valid:!1};r.push(c.data)}return{valid:!0,data:r}}else return t===Ht.date&&i===Ht.date&&+n==+e?{valid:!0,data:n}:{valid:!1}}function L$(n,e){return new Nh({values:n,typeName:Se.ZodEnum,...Ne(e)})}function N$(n,e){let t=typeof n=="function"?n(e):typeof n=="string"?{message:n}:n;return typeof t=="string"?{message:t}:t}function F$(n,e={},t){return n?Rc.create().superRefine((i,r)=>{let s=n(i);if(s instanceof Promise)return s.then(o=>{if(!o){let a=N$(e,i),c=a.fatal??t??!0;r.addIssue({code:"custom",...a,fatal:c})}});if(!s){let o=N$(e,i),a=o.fatal??t??!0;r.addIssue({code:"custom",...o,fatal:a})}}):Rc.create()}var Ss,I$,ze,Nht,Aht,Rht,Oht,Lht,Fht,zht,$ht,Dht,Y3,jht,Bht,Yht,Xht,Uht,Vht,A$,Ght,Ac,vh,wh,Sh,Ph,Pm,kh,Th,Rc,ga,qs,km,xa,Fr,Mh,ya,zx,Eh,Eo,$x,Tm,Mm,Dx,Ch,Ih,Nh,Ah,Oc,Ps,ws,Co,Rh,Oh,Em,Jht,tg,eg,Lh,Qht,Se,tdt,z$,$$,edt,ndt,D$,idt,rdt,sdt,odt,adt,cdt,ldt,udt,pdt,hdt,ddt,fdt,mdt,_dt,ydt,gdt,xdt,bdt,vdt,wdt,Sdt,Pdt,kdt,Tdt,Mdt,Edt,Cdt,Idt,Ndt,Adt,Rdt,Odt,Ldt,Fdt,j$=qt(()=>{"use strict";Rx();Ox();C$();B3();Jy();Ss=class{constructor(e,t,i,r){this._cachedPath=[],this.parent=e,this.data=t,this._path=i,this._key=r}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},I$=(n,e)=>{if(Nc(e))return{success:!0,data:e.value};if(!n.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let t=new Lr(n.common.issues);return this._error=t,this._error}}};ze=class{get description(){return this._def.description}_getType(e){return Mo(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:Mo(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Ki,ctx:{common:e.parent.common,data:e.data,parsedType:Mo(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let t=this._parse(e);if(wm(t))throw new Error("Synchronous parse encountered promise.");return t}_parseAsync(e){let t=this._parse(e);return Promise.resolve(t)}parse(e,t){let i=this.safeParse(e,t);if(i.success)return i.data;throw i.error}safeParse(e,t){let i={common:{issues:[],async:t?.async??!1,contextualErrorMap:t?.errorMap},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Mo(e)},r=this._parseSync({data:e,path:i.path,parent:i});return I$(i,r)}"~validate"(e){let t={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Mo(e)};if(!this["~standard"].async)try{let i=this._parseSync({data:e,path:[],parent:t});return Nc(i)?{value:i.value}:{issues:t.common.issues}}catch(i){i?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),t.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:t}).then(i=>Nc(i)?{value:i.value}:{issues:t.common.issues})}async parseAsync(e,t){let i=await this.safeParseAsync(e,t);if(i.success)return i.data;throw i.error}async safeParseAsync(e,t){let i={common:{issues:[],contextualErrorMap:t?.errorMap,async:!0},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Mo(e)},r=this._parse({data:e,path:i.path,parent:i}),s=await(wm(r)?r:Promise.resolve(r));return I$(i,s)}refine(e,t){let i=r=>typeof t=="string"||typeof t>"u"?{message:t}:typeof t=="function"?t(r):t;return this._refinement((r,s)=>{let o=e(r),a=()=>s.addIssue({code:At.custom,...i(r)});return typeof Promise<"u"&&o instanceof Promise?o.then(c=>c?!0:(a(),!1)):o?!0:(a(),!1)})}refinement(e,t){return this._refinement((i,r)=>e(i)?!0:(r.addIssue(typeof t=="function"?t(i,r):t),!1))}_refinement(e){return new Ps({schema:this,typeName:Se.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,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:t=>this["~validate"](t)}}optional(){return ws.create(this,this._def)}nullable(){return Co.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return xa.create(this)}promise(){return Oc.create(this,this._def)}or(e){return Mh.create([this,e],this._def)}and(e){return Eh.create(this,e,this._def)}transform(e){return new Ps({...Ne(this._def),schema:this,typeName:Se.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let t=typeof e=="function"?e:()=>e;return new Rh({...Ne(this._def),innerType:this,defaultValue:t,typeName:Se.ZodDefault})}brand(){return new tg({typeName:Se.ZodBranded,type:this,...Ne(this._def)})}catch(e){let t=typeof e=="function"?e:()=>e;return new Oh({...Ne(this._def),innerType:this,catchValue:t,typeName:Se.ZodCatch})}describe(e){let t=this.constructor;return new t({...this._def,description:e})}pipe(e){return eg.create(this,e)}readonly(){return Lh.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},Nht=/^c[^\s-]{8,}$/i,Aht=/^[0-9a-z]+$/,Rht=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Oht=/^[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,Lht=/^[a-z0-9_-]{21}$/i,Fht=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,zht=/^[-+]?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)?)??$/,$ht=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Dht="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",jht=/^(?:(?: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])$/,Bht=/^(?:(?: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])$/,Yht=/^(([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]))$/,Xht=/^(([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])$/,Uht=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Vht=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,A$="((\\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])))",Ght=new RegExp(`^${A$}$`);Ac=class n extends ze{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==Ht.string){let s=this._getOrReturnCtx(e);return Bt(s,{code:At.invalid_type,expected:Ht.string,received:s.parsedType}),ye}let i=new Ki,r;for(let s of this._def.checks)if(s.kind==="min")e.data.length<s.value&&(r=this._getOrReturnCtx(e,r),Bt(r,{code:At.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),i.dirty());else if(s.kind==="max")e.data.length>s.value&&(r=this._getOrReturnCtx(e,r),Bt(r,{code:At.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),i.dirty());else if(s.kind==="length"){let o=e.data.length>s.value,a=e.data.length<s.value;(o||a)&&(r=this._getOrReturnCtx(e,r),o?Bt(r,{code:At.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}):a&&Bt(r,{code:At.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}),i.dirty())}else if(s.kind==="email")$ht.test(e.data)||(r=this._getOrReturnCtx(e,r),Bt(r,{validation:"email",code:At.invalid_string,message:s.message}),i.dirty());else if(s.kind==="emoji")Y3||(Y3=new RegExp(Dht,"u")),Y3.test(e.data)||(r=this._getOrReturnCtx(e,r),Bt(r,{validation:"emoji",code:At.invalid_string,message:s.message}),i.dirty());else if(s.kind==="uuid")Oht.test(e.data)||(r=this._getOrReturnCtx(e,r),Bt(r,{validation:"uuid",code:At.invalid_string,message:s.message}),i.dirty());else if(s.kind==="nanoid")Lht.test(e.data)||(r=this._getOrReturnCtx(e,r),Bt(r,{validation:"nanoid",code:At.invalid_string,message:s.message}),i.dirty());else if(s.kind==="cuid")Nht.test(e.data)||(r=this._getOrReturnCtx(e,r),Bt(r,{validation:"cuid",code:At.invalid_string,message:s.message}),i.dirty());else if(s.kind==="cuid2")Aht.test(e.data)||(r=this._getOrReturnCtx(e,r),Bt(r,{validation:"cuid2",code:At.invalid_string,message:s.message}),i.dirty());else if(s.kind==="ulid")Rht.test(e.data)||(r=this._getOrReturnCtx(e,r),Bt(r,{validation:"ulid",code:At.invalid_string,message:s.message}),i.dirty());else if(s.kind==="url")try{new URL(e.data)}catch{r=this._getOrReturnCtx(e,r),Bt(r,{validation:"url",code:At.invalid_string,message:s.message}),i.dirty()}else s.kind==="regex"?(s.regex.lastIndex=0,s.regex.test(e.data)||(r=this._getOrReturnCtx(e,r),Bt(r,{validation:"regex",code:At.invalid_string,message:s.message}),i.dirty())):s.kind==="trim"?e.data=e.data.trim():s.kind==="includes"?e.data.includes(s.value,s.position)||(r=this._getOrReturnCtx(e,r),Bt(r,{code:At.invalid_string,validation:{includes:s.value,position:s.position},message:s.message}),i.dirty()):s.kind==="toLowerCase"?e.data=e.data.toLowerCase():s.kind==="toUpperCase"?e.data=e.data.toUpperCase():s.kind==="startsWith"?e.data.startsWith(s.value)||(r=this._getOrReturnCtx(e,r),Bt(r,{code:At.invalid_string,validation:{startsWith:s.value},message:s.message}),i.dirty()):s.kind==="endsWith"?e.data.endsWith(s.value)||(r=this._getOrReturnCtx(e,r),Bt(r,{code:At.invalid_string,validation:{endsWith:s.value},message:s.message}),i.dirty()):s.kind==="datetime"?O$(s).test(e.data)||(r=this._getOrReturnCtx(e,r),Bt(r,{code:At.invalid_string,validation:"datetime",message:s.message}),i.dirty()):s.kind==="date"?Ght.test(e.data)||(r=this._getOrReturnCtx(e,r),Bt(r,{code:At.invalid_string,validation:"date",message:s.message}),i.dirty()):s.kind==="time"?Hht(s).test(e.data)||(r=this._getOrReturnCtx(e,r),Bt(r,{code:At.invalid_string,validation:"time",message:s.message}),i.dirty()):s.kind==="duration"?zht.test(e.data)||(r=this._getOrReturnCtx(e,r),Bt(r,{validation:"duration",code:At.invalid_string,message:s.message}),i.dirty()):s.kind==="ip"?Wht(e.data,s.version)||(r=this._getOrReturnCtx(e,r),Bt(r,{validation:"ip",code:At.invalid_string,message:s.message}),i.dirty()):s.kind==="jwt"?qht(e.data,s.alg)||(r=this._getOrReturnCtx(e,r),Bt(r,{validation:"jwt",code:At.invalid_string,message:s.message}),i.dirty()):s.kind==="cidr"?Zht(e.data,s.version)||(r=this._getOrReturnCtx(e,r),Bt(r,{validation:"cidr",code:At.invalid_string,message:s.message}),i.dirty()):s.kind==="base64"?Uht.test(e.data)||(r=this._getOrReturnCtx(e,r),Bt(r,{validation:"base64",code:At.invalid_string,message:s.message}),i.dirty()):s.kind==="base64url"?Vht.test(e.data)||(r=this._getOrReturnCtx(e,r),Bt(r,{validation:"base64url",code:At.invalid_string,message:s.message}),i.dirty()):Ve.assertNever(s);return{status:i.value,value:e.data}}_regex(e,t,i){return this.refinement(r=>e.test(r),{validation:t,code:At.invalid_string,...se.errToObj(i)})}_addCheck(e){return new n({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...se.errToObj(e)})}url(e){return this._addCheck({kind:"url",...se.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...se.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...se.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...se.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...se.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...se.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...se.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...se.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...se.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...se.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...se.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...se.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof e?.precision>"u"?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...se.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof e?.precision>"u"?null:e?.precision,...se.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...se.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...se.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:t?.position,...se.errToObj(t?.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...se.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...se.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...se.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...se.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...se.errToObj(t)})}nonempty(e){return this.min(1,se.errToObj(e))}trim(){return new n({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new n({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new n({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(let t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(let t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}};Ac.create=n=>new Ac({checks:[],typeName:Se.ZodString,coerce:n?.coerce??!1,...Ne(n)});vh=class n extends ze{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==Ht.number){let s=this._getOrReturnCtx(e);return Bt(s,{code:At.invalid_type,expected:Ht.number,received:s.parsedType}),ye}let i,r=new Ki;for(let s of this._def.checks)s.kind==="int"?Ve.isInteger(e.data)||(i=this._getOrReturnCtx(e,i),Bt(i,{code:At.invalid_type,expected:"integer",received:"float",message:s.message}),r.dirty()):s.kind==="min"?(s.inclusive?e.data<s.value:e.data<=s.value)&&(i=this._getOrReturnCtx(e,i),Bt(i,{code:At.too_small,minimum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),r.dirty()):s.kind==="max"?(s.inclusive?e.data>s.value:e.data>=s.value)&&(i=this._getOrReturnCtx(e,i),Bt(i,{code:At.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),r.dirty()):s.kind==="multipleOf"?Kht(e.data,s.value)!==0&&(i=this._getOrReturnCtx(e,i),Bt(i,{code:At.not_multiple_of,multipleOf:s.value,message:s.message}),r.dirty()):s.kind==="finite"?Number.isFinite(e.data)||(i=this._getOrReturnCtx(e,i),Bt(i,{code:At.not_finite,message:s.message}),r.dirty()):Ve.assertNever(s);return{status:r.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,se.toString(t))}gt(e,t){return this.setLimit("min",e,!1,se.toString(t))}lte(e,t){return this.setLimit("max",e,!0,se.toString(t))}lt(e,t){return this.setLimit("max",e,!1,se.toString(t))}setLimit(e,t,i,r){return new n({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:i,message:se.toString(r)}]})}_addCheck(e){return new n({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:se.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:se.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:se.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:se.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:se.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:se.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:se.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:se.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:se.toString(e)})}get minValue(){let e=null;for(let t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&&Ve.isInteger(e.value))}get isFinite(){let e=null,t=null;for(let i of this._def.checks){if(i.kind==="finite"||i.kind==="int"||i.kind==="multipleOf")return!0;i.kind==="min"?(t===null||i.value>t)&&(t=i.value):i.kind==="max"&&(e===null||i.value<e)&&(e=i.value)}return Number.isFinite(t)&&Number.isFinite(e)}};vh.create=n=>new vh({checks:[],typeName:Se.ZodNumber,coerce:n?.coerce||!1,...Ne(n)});wh=class n extends ze{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==Ht.bigint)return this._getInvalidInput(e);let i,r=new Ki;for(let s of this._def.checks)s.kind==="min"?(s.inclusive?e.data<s.value:e.data<=s.value)&&(i=this._getOrReturnCtx(e,i),Bt(i,{code:At.too_small,type:"bigint",minimum:s.value,inclusive:s.inclusive,message:s.message}),r.dirty()):s.kind==="max"?(s.inclusive?e.data>s.value:e.data>=s.value)&&(i=this._getOrReturnCtx(e,i),Bt(i,{code:At.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),r.dirty()):s.kind==="multipleOf"?e.data%s.value!==BigInt(0)&&(i=this._getOrReturnCtx(e,i),Bt(i,{code:At.not_multiple_of,multipleOf:s.value,message:s.message}),r.dirty()):Ve.assertNever(s);return{status:r.value,value:e.data}}_getInvalidInput(e){let t=this._getOrReturnCtx(e);return Bt(t,{code:At.invalid_type,expected:Ht.bigint,received:t.parsedType}),ye}gte(e,t){return this.setLimit("min",e,!0,se.toString(t))}gt(e,t){return this.setLimit("min",e,!1,se.toString(t))}lte(e,t){return this.setLimit("max",e,!0,se.toString(t))}lt(e,t){return this.setLimit("max",e,!1,se.toString(t))}setLimit(e,t,i,r){return new n({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:i,message:se.toString(r)}]})}_addCheck(e){return new n({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:se.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:se.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:se.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:se.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:se.toString(t)})}get minValue(){let e=null;for(let t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}};wh.create=n=>new wh({checks:[],typeName:Se.ZodBigInt,coerce:n?.coerce??!1,...Ne(n)});Sh=class extends ze{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==Ht.boolean){let i=this._getOrReturnCtx(e);return Bt(i,{code:At.invalid_type,expected:Ht.boolean,received:i.parsedType}),ye}return cr(e.data)}};Sh.create=n=>new Sh({typeName:Se.ZodBoolean,coerce:n?.coerce||!1,...Ne(n)});Ph=class n extends ze{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==Ht.date){let s=this._getOrReturnCtx(e);return Bt(s,{code:At.invalid_type,expected:Ht.date,received:s.parsedType}),ye}if(Number.isNaN(e.data.getTime())){let s=this._getOrReturnCtx(e);return Bt(s,{code:At.invalid_date}),ye}let i=new Ki,r;for(let s of this._def.checks)s.kind==="min"?e.data.getTime()<s.value&&(r=this._getOrReturnCtx(e,r),Bt(r,{code:At.too_small,message:s.message,inclusive:!0,exact:!1,minimum:s.value,type:"date"}),i.dirty()):s.kind==="max"?e.data.getTime()>s.value&&(r=this._getOrReturnCtx(e,r),Bt(r,{code:At.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),i.dirty()):Ve.assertNever(s);return{status:i.value,value:new Date(e.data.getTime())}}_addCheck(e){return new n({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:se.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:se.toString(t)})}get minDate(){let e=null;for(let t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e!=null?new Date(e):null}};Ph.create=n=>new Ph({checks:[],coerce:n?.coerce||!1,typeName:Se.ZodDate,...Ne(n)});Pm=class extends ze{_parse(e){if(this._getType(e)!==Ht.symbol){let i=this._getOrReturnCtx(e);return Bt(i,{code:At.invalid_type,expected:Ht.symbol,received:i.parsedType}),ye}return cr(e.data)}};Pm.create=n=>new Pm({typeName:Se.ZodSymbol,...Ne(n)});kh=class extends ze{_parse(e){if(this._getType(e)!==Ht.undefined){let i=this._getOrReturnCtx(e);return Bt(i,{code:At.invalid_type,expected:Ht.undefined,received:i.parsedType}),ye}return cr(e.data)}};kh.create=n=>new kh({typeName:Se.ZodUndefined,...Ne(n)});Th=class extends ze{_parse(e){if(this._getType(e)!==Ht.null){let i=this._getOrReturnCtx(e);return Bt(i,{code:At.invalid_type,expected:Ht.null,received:i.parsedType}),ye}return cr(e.data)}};Th.create=n=>new Th({typeName:Se.ZodNull,...Ne(n)});Rc=class extends ze{constructor(){super(...arguments),this._any=!0}_parse(e){return cr(e.data)}};Rc.create=n=>new Rc({typeName:Se.ZodAny,...Ne(n)});ga=class extends ze{constructor(){super(...arguments),this._unknown=!0}_parse(e){return cr(e.data)}};ga.create=n=>new ga({typeName:Se.ZodUnknown,...Ne(n)});qs=class extends ze{_parse(e){let t=this._getOrReturnCtx(e);return Bt(t,{code:At.invalid_type,expected:Ht.never,received:t.parsedType}),ye}};qs.create=n=>new qs({typeName:Se.ZodNever,...Ne(n)});km=class extends ze{_parse(e){if(this._getType(e)!==Ht.undefined){let i=this._getOrReturnCtx(e);return Bt(i,{code:At.invalid_type,expected:Ht.void,received:i.parsedType}),ye}return cr(e.data)}};km.create=n=>new km({typeName:Se.ZodVoid,...Ne(n)});xa=class n extends ze{_parse(e){let{ctx:t,status:i}=this._processInputParams(e),r=this._def;if(t.parsedType!==Ht.array)return Bt(t,{code:At.invalid_type,expected:Ht.array,received:t.parsedType}),ye;if(r.exactLength!==null){let o=t.data.length>r.exactLength.value,a=t.data.length<r.exactLength.value;(o||a)&&(Bt(t,{code:o?At.too_big:At.too_small,minimum:a?r.exactLength.value:void 0,maximum:o?r.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:r.exactLength.message}),i.dirty())}if(r.minLength!==null&&t.data.length<r.minLength.value&&(Bt(t,{code:At.too_small,minimum:r.minLength.value,type:"array",inclusive:!0,exact:!1,message:r.minLength.message}),i.dirty()),r.maxLength!==null&&t.data.length>r.maxLength.value&&(Bt(t,{code:At.too_big,maximum:r.maxLength.value,type:"array",inclusive:!0,exact:!1,message:r.maxLength.message}),i.dirty()),t.common.async)return Promise.all([...t.data].map((o,a)=>r.type._parseAsync(new Ss(t,o,t.path,a)))).then(o=>Ki.mergeArray(i,o));let s=[...t.data].map((o,a)=>r.type._parseSync(new Ss(t,o,t.path,a)));return Ki.mergeArray(i,s)}get element(){return this._def.type}min(e,t){return new n({...this._def,minLength:{value:e,message:se.toString(t)}})}max(e,t){return new n({...this._def,maxLength:{value:e,message:se.toString(t)}})}length(e,t){return new n({...this._def,exactLength:{value:e,message:se.toString(t)}})}nonempty(e){return this.min(1,e)}};xa.create=(n,e)=>new xa({type:n,minLength:null,maxLength:null,exactLength:null,typeName:Se.ZodArray,...Ne(e)});Fr=class n extends ze{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),t=Ve.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==Ht.object){let l=this._getOrReturnCtx(e);return Bt(l,{code:At.invalid_type,expected:Ht.object,received:l.parsedType}),ye}let{status:i,ctx:r}=this._processInputParams(e),{shape:s,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof qs&&this._def.unknownKeys==="strip"))for(let l in r.data)o.includes(l)||a.push(l);let c=[];for(let l of o){let u=s[l],h=r.data[l];c.push({key:{status:"valid",value:l},value:u._parse(new Ss(r,h,r.path,l)),alwaysSet:l in r.data})}if(this._def.catchall instanceof qs){let l=this._def.unknownKeys;if(l==="passthrough")for(let u of a)c.push({key:{status:"valid",value:u},value:{status:"valid",value:r.data[u]}});else if(l==="strict")a.length>0&&(Bt(r,{code:At.unrecognized_keys,keys:a}),i.dirty());else if(l!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let l=this._def.catchall;for(let u of a){let h=r.data[u];c.push({key:{status:"valid",value:u},value:l._parse(new Ss(r,h,r.path,u)),alwaysSet:u in r.data})}}return r.common.async?Promise.resolve().then(async()=>{let l=[];for(let u of c){let h=await u.key,f=await u.value;l.push({key:h,value:f,alwaysSet:u.alwaysSet})}return l}).then(l=>Ki.mergeObjectSync(i,l)):Ki.mergeObjectSync(i,c)}get shape(){return this._def.shape()}strict(e){return se.errToObj,new n({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(t,i)=>{let r=this._def.errorMap?.(t,i).message??i.defaultError;return t.code==="unrecognized_keys"?{message:se.errToObj(e).message??r}:{message:r}}}:{}})}strip(){return new n({...this._def,unknownKeys:"strip"})}passthrough(){return new n({...this._def,unknownKeys:"passthrough"})}extend(e){return new n({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new n({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:Se.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new n({...this._def,catchall:e})}pick(e){let t={};for(let i of Ve.objectKeys(e))e[i]&&this.shape[i]&&(t[i]=this.shape[i]);return new n({...this._def,shape:()=>t})}omit(e){let t={};for(let i of Ve.objectKeys(this.shape))e[i]||(t[i]=this.shape[i]);return new n({...this._def,shape:()=>t})}deepPartial(){return Sm(this)}partial(e){let t={};for(let i of Ve.objectKeys(this.shape)){let r=this.shape[i];e&&!e[i]?t[i]=r:t[i]=r.optional()}return new n({...this._def,shape:()=>t})}required(e){let t={};for(let i of Ve.objectKeys(this.shape))if(e&&!e[i])t[i]=this.shape[i];else{let s=this.shape[i];for(;s instanceof ws;)s=s._def.innerType;t[i]=s}return new n({...this._def,shape:()=>t})}keyof(){return L$(Ve.objectKeys(this.shape))}};Fr.create=(n,e)=>new Fr({shape:()=>n,unknownKeys:"strip",catchall:qs.create(),typeName:Se.ZodObject,...Ne(e)});Fr.strictCreate=(n,e)=>new Fr({shape:()=>n,unknownKeys:"strict",catchall:qs.create(),typeName:Se.ZodObject,...Ne(e)});Fr.lazycreate=(n,e)=>new Fr({shape:n,unknownKeys:"strip",catchall:qs.create(),typeName:Se.ZodObject,...Ne(e)});Mh=class extends ze{_parse(e){let{ctx:t}=this._processInputParams(e),i=this._def.options;function r(s){for(let a of s)if(a.result.status==="valid")return a.result;for(let a of s)if(a.result.status==="dirty")return t.common.issues.push(...a.ctx.common.issues),a.result;let o=s.map(a=>new Lr(a.ctx.common.issues));return Bt(t,{code:At.invalid_union,unionErrors:o}),ye}if(t.common.async)return Promise.all(i.map(async s=>{let o={...t,common:{...t.common,issues:[]},parent:null};return{result:await s._parseAsync({data:t.data,path:t.path,parent:o}),ctx:o}})).then(r);{let s,o=[];for(let c of i){let l={...t,common:{...t.common,issues:[]},parent:null},u=c._parseSync({data:t.data,path:t.path,parent:l});if(u.status==="valid")return u;u.status==="dirty"&&!s&&(s={result:u,ctx:l}),l.common.issues.length&&o.push(l.common.issues)}if(s)return t.common.issues.push(...s.ctx.common.issues),s.result;let a=o.map(c=>new Lr(c));return Bt(t,{code:At.invalid_union,unionErrors:a}),ye}}get options(){return this._def.options}};Mh.create=(n,e)=>new Mh({options:n,typeName:Se.ZodUnion,...Ne(e)});ya=n=>n instanceof Ch?ya(n.schema):n instanceof Ps?ya(n.innerType()):n instanceof Ih?[n.value]:n instanceof Nh?n.options:n instanceof Ah?Ve.objectValues(n.enum):n instanceof Rh?ya(n._def.innerType):n instanceof kh?[void 0]:n instanceof Th?[null]:n instanceof ws?[void 0,...ya(n.unwrap())]:n instanceof Co?[null,...ya(n.unwrap())]:n instanceof tg||n instanceof Lh?ya(n.unwrap()):n instanceof Oh?ya(n._def.innerType):[],zx=class n extends ze{_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==Ht.object)return Bt(t,{code:At.invalid_type,expected:Ht.object,received:t.parsedType}),ye;let i=this.discriminator,r=t.data[i],s=this.optionsMap.get(r);return s?t.common.async?s._parseAsync({data:t.data,path:t.path,parent:t}):s._parseSync({data:t.data,path:t.path,parent:t}):(Bt(t,{code:At.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[i]}),ye)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,t,i){let r=new Map;for(let s of t){let o=ya(s.shape[e]);if(!o.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let a of o){if(r.has(a))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(a)}`);r.set(a,s)}}return new n({typeName:Se.ZodDiscriminatedUnion,discriminator:e,options:t,optionsMap:r,...Ne(i)})}};Eh=class extends ze{_parse(e){let{status:t,ctx:i}=this._processInputParams(e),r=(s,o)=>{if(Lx(s)||Lx(o))return ye;let a=X3(s.value,o.value);return a.valid?((Fx(s)||Fx(o))&&t.dirty(),{status:t.value,value:a.data}):(Bt(i,{code:At.invalid_intersection_types}),ye)};return i.common.async?Promise.all([this._def.left._parseAsync({data:i.data,path:i.path,parent:i}),this._def.right._parseAsync({data:i.data,path:i.path,parent:i})]).then(([s,o])=>r(s,o)):r(this._def.left._parseSync({data:i.data,path:i.path,parent:i}),this._def.right._parseSync({data:i.data,path:i.path,parent:i}))}};Eh.create=(n,e,t)=>new Eh({left:n,right:e,typeName:Se.ZodIntersection,...Ne(t)});Eo=class n extends ze{_parse(e){let{status:t,ctx:i}=this._processInputParams(e);if(i.parsedType!==Ht.array)return Bt(i,{code:At.invalid_type,expected:Ht.array,received:i.parsedType}),ye;if(i.data.length<this._def.items.length)return Bt(i,{code:At.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),ye;!this._def.rest&&i.data.length>this._def.items.length&&(Bt(i,{code:At.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t.dirty());let s=[...i.data].map((o,a)=>{let c=this._def.items[a]||this._def.rest;return c?c._parse(new Ss(i,o,i.path,a)):null}).filter(o=>!!o);return i.common.async?Promise.all(s).then(o=>Ki.mergeArray(t,o)):Ki.mergeArray(t,s)}get items(){return this._def.items}rest(e){return new n({...this._def,rest:e})}};Eo.create=(n,e)=>{if(!Array.isArray(n))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Eo({items:n,typeName:Se.ZodTuple,rest:null,...Ne(e)})};$x=class n extends ze{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:i}=this._processInputParams(e);if(i.parsedType!==Ht.object)return Bt(i,{code:At.invalid_type,expected:Ht.object,received:i.parsedType}),ye;let r=[],s=this._def.keyType,o=this._def.valueType;for(let a in i.data)r.push({key:s._parse(new Ss(i,a,i.path,a)),value:o._parse(new Ss(i,i.data[a],i.path,a)),alwaysSet:a in i.data});return i.common.async?Ki.mergeObjectAsync(t,r):Ki.mergeObjectSync(t,r)}get element(){return this._def.valueType}static create(e,t,i){return t instanceof ze?new n({keyType:e,valueType:t,typeName:Se.ZodRecord,...Ne(i)}):new n({keyType:Ac.create(),valueType:e,typeName:Se.ZodRecord,...Ne(t)})}},Tm=class extends ze{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:i}=this._processInputParams(e);if(i.parsedType!==Ht.map)return Bt(i,{code:At.invalid_type,expected:Ht.map,received:i.parsedType}),ye;let r=this._def.keyType,s=this._def.valueType,o=[...i.data.entries()].map(([a,c],l)=>({key:r._parse(new Ss(i,a,i.path,[l,"key"])),value:s._parse(new Ss(i,c,i.path,[l,"value"]))}));if(i.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let c of o){let l=await c.key,u=await c.value;if(l.status==="aborted"||u.status==="aborted")return ye;(l.status==="dirty"||u.status==="dirty")&&t.dirty(),a.set(l.value,u.value)}return{status:t.value,value:a}})}else{let a=new Map;for(let c of o){let l=c.key,u=c.value;if(l.status==="aborted"||u.status==="aborted")return ye;(l.status==="dirty"||u.status==="dirty")&&t.dirty(),a.set(l.value,u.value)}return{status:t.value,value:a}}}};Tm.create=(n,e,t)=>new Tm({valueType:e,keyType:n,typeName:Se.ZodMap,...Ne(t)});Mm=class n extends ze{_parse(e){let{status:t,ctx:i}=this._processInputParams(e);if(i.parsedType!==Ht.set)return Bt(i,{code:At.invalid_type,expected:Ht.set,received:i.parsedType}),ye;let r=this._def;r.minSize!==null&&i.data.size<r.minSize.value&&(Bt(i,{code:At.too_small,minimum:r.minSize.value,type:"set",inclusive:!0,exact:!1,message:r.minSize.message}),t.dirty()),r.maxSize!==null&&i.data.size>r.maxSize.value&&(Bt(i,{code:At.too_big,maximum:r.maxSize.value,type:"set",inclusive:!0,exact:!1,message:r.maxSize.message}),t.dirty());let s=this._def.valueType;function o(c){let l=new Set;for(let u of c){if(u.status==="aborted")return ye;u.status==="dirty"&&t.dirty(),l.add(u.value)}return{status:t.value,value:l}}let a=[...i.data.values()].map((c,l)=>s._parse(new Ss(i,c,i.path,l)));return i.common.async?Promise.all(a).then(c=>o(c)):o(a)}min(e,t){return new n({...this._def,minSize:{value:e,message:se.toString(t)}})}max(e,t){return new n({...this._def,maxSize:{value:e,message:se.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}};Mm.create=(n,e)=>new Mm({valueType:n,minSize:null,maxSize:null,typeName:Se.ZodSet,...Ne(e)});Dx=class n extends ze{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==Ht.function)return Bt(t,{code:At.invalid_type,expected:Ht.function,received:t.parsedType}),ye;function i(a,c){return Qy({data:a,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,vm(),_a].filter(l=>!!l),issueData:{code:At.invalid_arguments,argumentsError:c}})}function r(a,c){return Qy({data:a,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,vm(),_a].filter(l=>!!l),issueData:{code:At.invalid_return_type,returnTypeError:c}})}let s={errorMap:t.common.contextualErrorMap},o=t.data;if(this._def.returns instanceof Oc){let a=this;return cr(async function(...c){let l=new Lr([]),u=await a._def.args.parseAsync(c,s).catch(_=>{throw l.addIssue(i(c,_)),l}),h=await Reflect.apply(o,this,u);return await a._def.returns._def.type.parseAsync(h,s).catch(_=>{throw l.addIssue(r(h,_)),l})})}else{let a=this;return cr(function(...c){let l=a._def.args.safeParse(c,s);if(!l.success)throw new Lr([i(c,l.error)]);let u=Reflect.apply(o,this,l.data),h=a._def.returns.safeParse(u,s);if(!h.success)throw new Lr([r(u,h.error)]);return h.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new n({...this._def,args:Eo.create(e).rest(ga.create())})}returns(e){return new n({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,t,i){return new n({args:e||Eo.create([]).rest(ga.create()),returns:t||ga.create(),typeName:Se.ZodFunction,...Ne(i)})}},Ch=class extends ze{get schema(){return this._def.getter()}_parse(e){let{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}};Ch.create=(n,e)=>new Ch({getter:n,typeName:Se.ZodLazy,...Ne(e)});Ih=class extends ze{_parse(e){if(e.data!==this._def.value){let t=this._getOrReturnCtx(e);return Bt(t,{received:t.data,code:At.invalid_literal,expected:this._def.value}),ye}return{status:"valid",value:e.data}}get value(){return this._def.value}};Ih.create=(n,e)=>new Ih({value:n,typeName:Se.ZodLiteral,...Ne(e)});Nh=class n extends ze{_parse(e){if(typeof e.data!="string"){let t=this._getOrReturnCtx(e),i=this._def.values;return Bt(t,{expected:Ve.joinValues(i),received:t.parsedType,code:At.invalid_type}),ye}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){let t=this._getOrReturnCtx(e),i=this._def.values;return Bt(t,{received:t.data,code:At.invalid_enum_value,options:i}),ye}return cr(e.data)}get options(){return this._def.values}get enum(){let e={};for(let t of this._def.values)e[t]=t;return e}get Values(){let e={};for(let t of this._def.values)e[t]=t;return e}get Enum(){let e={};for(let t of this._def.values)e[t]=t;return e}extract(e,t=this._def){return n.create(e,{...this._def,...t})}exclude(e,t=this._def){return n.create(this.options.filter(i=>!e.includes(i)),{...this._def,...t})}};Nh.create=L$;Ah=class extends ze{_parse(e){let t=Ve.getValidEnumValues(this._def.values),i=this._getOrReturnCtx(e);if(i.parsedType!==Ht.string&&i.parsedType!==Ht.number){let r=Ve.objectValues(t);return Bt(i,{expected:Ve.joinValues(r),received:i.parsedType,code:At.invalid_type}),ye}if(this._cache||(this._cache=new Set(Ve.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let r=Ve.objectValues(t);return Bt(i,{received:i.data,code:At.invalid_enum_value,options:r}),ye}return cr(e.data)}get enum(){return this._def.values}};Ah.create=(n,e)=>new Ah({values:n,typeName:Se.ZodNativeEnum,...Ne(e)});Oc=class extends ze{unwrap(){return this._def.type}_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==Ht.promise&&t.common.async===!1)return Bt(t,{code:At.invalid_type,expected:Ht.promise,received:t.parsedType}),ye;let i=t.parsedType===Ht.promise?t.data:Promise.resolve(t.data);return cr(i.then(r=>this._def.type.parseAsync(r,{path:t.path,errorMap:t.common.contextualErrorMap})))}};Oc.create=(n,e)=>new Oc({type:n,typeName:Se.ZodPromise,...Ne(e)});Ps=class extends ze{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Se.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:t,ctx:i}=this._processInputParams(e),r=this._def.effect||null,s={addIssue:o=>{Bt(i,o),o.fatal?t.abort():t.dirty()},get path(){return i.path}};if(s.addIssue=s.addIssue.bind(s),r.type==="preprocess"){let o=r.transform(i.data,s);if(i.common.async)return Promise.resolve(o).then(async a=>{if(t.value==="aborted")return ye;let c=await this._def.schema._parseAsync({data:a,path:i.path,parent:i});return c.status==="aborted"?ye:c.status==="dirty"?bh(c.value):t.value==="dirty"?bh(c.value):c});{if(t.value==="aborted")return ye;let a=this._def.schema._parseSync({data:o,path:i.path,parent:i});return a.status==="aborted"?ye:a.status==="dirty"?bh(a.value):t.value==="dirty"?bh(a.value):a}}if(r.type==="refinement"){let o=a=>{let c=r.refinement(a,s);if(i.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(i.common.async===!1){let a=this._def.schema._parseSync({data:i.data,path:i.path,parent:i});return a.status==="aborted"?ye:(a.status==="dirty"&&t.dirty(),o(a.value),{status:t.value,value:a.value})}else return this._def.schema._parseAsync({data:i.data,path:i.path,parent:i}).then(a=>a.status==="aborted"?ye:(a.status==="dirty"&&t.dirty(),o(a.value).then(()=>({status:t.value,value:a.value}))))}if(r.type==="transform")if(i.common.async===!1){let o=this._def.schema._parseSync({data:i.data,path:i.path,parent:i});if(!Nc(o))return ye;let a=r.transform(o.value,s);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:t.value,value:a}}else return this._def.schema._parseAsync({data:i.data,path:i.path,parent:i}).then(o=>Nc(o)?Promise.resolve(r.transform(o.value,s)).then(a=>({status:t.value,value:a})):ye);Ve.assertNever(r)}};Ps.create=(n,e,t)=>new Ps({schema:n,typeName:Se.ZodEffects,effect:e,...Ne(t)});Ps.createWithPreprocess=(n,e,t)=>new Ps({schema:e,effect:{type:"preprocess",transform:n},typeName:Se.ZodEffects,...Ne(t)});ws=class extends ze{_parse(e){return this._getType(e)===Ht.undefined?cr(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};ws.create=(n,e)=>new ws({innerType:n,typeName:Se.ZodOptional,...Ne(e)});Co=class extends ze{_parse(e){return this._getType(e)===Ht.null?cr(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Co.create=(n,e)=>new Co({innerType:n,typeName:Se.ZodNullable,...Ne(e)});Rh=class extends ze{_parse(e){let{ctx:t}=this._processInputParams(e),i=t.data;return t.parsedType===Ht.undefined&&(i=this._def.defaultValue()),this._def.innerType._parse({data:i,path:t.path,parent:t})}removeDefault(){return this._def.innerType}};Rh.create=(n,e)=>new Rh({innerType:n,typeName:Se.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...Ne(e)});Oh=class extends ze{_parse(e){let{ctx:t}=this._processInputParams(e),i={...t,common:{...t.common,issues:[]}},r=this._def.innerType._parse({data:i.data,path:i.path,parent:{...i}});return wm(r)?r.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new Lr(i.common.issues)},input:i.data})})):{status:"valid",value:r.status==="valid"?r.value:this._def.catchValue({get error(){return new Lr(i.common.issues)},input:i.data})}}removeCatch(){return this._def.innerType}};Oh.create=(n,e)=>new Oh({innerType:n,typeName:Se.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...Ne(e)});Em=class extends ze{_parse(e){if(this._getType(e)!==Ht.nan){let i=this._getOrReturnCtx(e);return Bt(i,{code:At.invalid_type,expected:Ht.nan,received:i.parsedType}),ye}return{status:"valid",value:e.data}}};Em.create=n=>new Em({typeName:Se.ZodNaN,...Ne(n)});Jht=Symbol("zod_brand"),tg=class extends ze{_parse(e){let{ctx:t}=this._processInputParams(e),i=t.data;return this._def.type._parse({data:i,path:t.path,parent:t})}unwrap(){return this._def.type}},eg=class n extends ze{_parse(e){let{status:t,ctx:i}=this._processInputParams(e);if(i.common.async)return(async()=>{let s=await this._def.in._parseAsync({data:i.data,path:i.path,parent:i});return s.status==="aborted"?ye:s.status==="dirty"?(t.dirty(),bh(s.value)):this._def.out._parseAsync({data:s.value,path:i.path,parent:i})})();{let r=this._def.in._parseSync({data:i.data,path:i.path,parent:i});return r.status==="aborted"?ye:r.status==="dirty"?(t.dirty(),{status:"dirty",value:r.value}):this._def.out._parseSync({data:r.value,path:i.path,parent:i})}}static create(e,t){return new n({in:e,out:t,typeName:Se.ZodPipeline})}},Lh=class extends ze{_parse(e){let t=this._def.innerType._parse(e),i=r=>(Nc(r)&&(r.value=Object.freeze(r.value)),r);return wm(t)?t.then(r=>i(r)):i(t)}unwrap(){return this._def.innerType}};Lh.create=(n,e)=>new Lh({innerType:n,typeName:Se.ZodReadonly,...Ne(e)});Qht={object:Fr.lazycreate};(function(n){n.ZodString="ZodString",n.ZodNumber="ZodNumber",n.ZodNaN="ZodNaN",n.ZodBigInt="ZodBigInt",n.ZodBoolean="ZodBoolean",n.ZodDate="ZodDate",n.ZodSymbol="ZodSymbol",n.ZodUndefined="ZodUndefined",n.ZodNull="ZodNull",n.ZodAny="ZodAny",n.ZodUnknown="ZodUnknown",n.ZodNever="ZodNever",n.ZodVoid="ZodVoid",n.ZodArray="ZodArray",n.ZodObject="ZodObject",n.ZodUnion="ZodUnion",n.ZodDiscriminatedUnion="ZodDiscriminatedUnion",n.ZodIntersection="ZodIntersection",n.ZodTuple="ZodTuple",n.ZodRecord="ZodRecord",n.ZodMap="ZodMap",n.ZodSet="ZodSet",n.ZodFunction="ZodFunction",n.ZodLazy="ZodLazy",n.ZodLiteral="ZodLiteral",n.ZodEnum="ZodEnum",n.ZodEffects="ZodEffects",n.ZodNativeEnum="ZodNativeEnum",n.ZodOptional="ZodOptional",n.ZodNullable="ZodNullable",n.ZodDefault="ZodDefault",n.ZodCatch="ZodCatch",n.ZodPromise="ZodPromise",n.ZodBranded="ZodBranded",n.ZodPipeline="ZodPipeline",n.ZodReadonly="ZodReadonly"})(Se||(Se={}));tdt=(n,e={message:`Input not instance of ${n.name}`})=>F$(t=>t instanceof n,e),z$=Ac.create,$$=vh.create,edt=Em.create,ndt=wh.create,D$=Sh.create,idt=Ph.create,rdt=Pm.create,sdt=kh.create,odt=Th.create,adt=Rc.create,cdt=ga.create,ldt=qs.create,udt=km.create,pdt=xa.create,hdt=Fr.create,ddt=Fr.strictCreate,fdt=Mh.create,mdt=zx.create,_dt=Eh.create,ydt=Eo.create,gdt=$x.create,xdt=Tm.create,bdt=Mm.create,vdt=Dx.create,wdt=Ch.create,Sdt=Ih.create,Pdt=Nh.create,kdt=Ah.create,Tdt=Oc.create,Mdt=Ps.create,Edt=ws.create,Cdt=Co.create,Idt=Ps.createWithPreprocess,Ndt=eg.create,Adt=()=>z$().optional(),Rdt=()=>$$().optional(),Odt=()=>D$().optional(),Ldt={string:(n=>Ac.create({...n,coerce:!0})),number:(n=>vh.create({...n,coerce:!0})),boolean:(n=>Sh.create({...n,coerce:!0})),bigint:(n=>wh.create({...n,coerce:!0})),date:(n=>Ph.create({...n,coerce:!0}))},Fdt=ye});var p={};gh(p,{BRAND:()=>Jht,DIRTY:()=>bh,EMPTY_PATH:()=>Iht,INVALID:()=>ye,NEVER:()=>Fdt,OK:()=>cr,ParseStatus:()=>Ki,Schema:()=>ze,ZodAny:()=>Rc,ZodArray:()=>xa,ZodBigInt:()=>wh,ZodBoolean:()=>Sh,ZodBranded:()=>tg,ZodCatch:()=>Oh,ZodDate:()=>Ph,ZodDefault:()=>Rh,ZodDiscriminatedUnion:()=>zx,ZodEffects:()=>Ps,ZodEnum:()=>Nh,ZodError:()=>Lr,ZodFirstPartyTypeKind:()=>Se,ZodFunction:()=>Dx,ZodIntersection:()=>Eh,ZodIssueCode:()=>At,ZodLazy:()=>Ch,ZodLiteral:()=>Ih,ZodMap:()=>Tm,ZodNaN:()=>Em,ZodNativeEnum:()=>Ah,ZodNever:()=>qs,ZodNull:()=>Th,ZodNullable:()=>Co,ZodNumber:()=>vh,ZodObject:()=>Fr,ZodOptional:()=>ws,ZodParsedType:()=>Ht,ZodPipeline:()=>eg,ZodPromise:()=>Oc,ZodReadonly:()=>Lh,ZodRecord:()=>$x,ZodSchema:()=>ze,ZodSet:()=>Mm,ZodString:()=>Ac,ZodSymbol:()=>Pm,ZodTransformer:()=>Ps,ZodTuple:()=>Eo,ZodType:()=>ze,ZodUndefined:()=>kh,ZodUnion:()=>Mh,ZodUnknown:()=>ga,ZodVoid:()=>km,addIssueToContext:()=>Bt,any:()=>adt,array:()=>pdt,bigint:()=>ndt,boolean:()=>D$,coerce:()=>Ldt,custom:()=>F$,date:()=>idt,datetimeRegex:()=>O$,defaultErrorMap:()=>_a,discriminatedUnion:()=>mdt,effect:()=>Mdt,enum:()=>Pdt,function:()=>vdt,getErrorMap:()=>vm,getParsedType:()=>Mo,instanceof:()=>tdt,intersection:()=>_dt,isAborted:()=>Lx,isAsync:()=>wm,isDirty:()=>Fx,isValid:()=>Nc,late:()=>Qht,lazy:()=>wdt,literal:()=>Sdt,makeIssue:()=>Qy,map:()=>xdt,nan:()=>edt,nativeEnum:()=>kdt,never:()=>ldt,null:()=>odt,nullable:()=>Cdt,number:()=>$$,object:()=>hdt,objectUtil:()=>D3,oboolean:()=>Odt,onumber:()=>Rdt,optional:()=>Edt,ostring:()=>Adt,pipeline:()=>Ndt,preprocess:()=>Idt,promise:()=>Tdt,quotelessJson:()=>Mht,record:()=>gdt,set:()=>bdt,setErrorMap:()=>Cht,strictObject:()=>ddt,string:()=>z$,symbol:()=>rdt,transformer:()=>Mdt,tuple:()=>ydt,undefined:()=>sdt,union:()=>fdt,unknown:()=>cdt,util:()=>Ve,void:()=>udt});var U3=qt(()=>{"use strict";Ox();B3();E$();Jy();j$();Rx()});var Q=qt(()=>{"use strict";U3();U3()});var Dh={};gh(Dh,{all_layers:()=>Nm,any_circuit_element:()=>sB,any_soup_element:()=>$h,any_source_component:()=>J$,battery_capacity:()=>V$,brep_shape:()=>OD,cad_component:()=>Wj,capacitance:()=>ba,circuit_json_footprint_load_error:()=>Hx,current:()=>$dt,distance:()=>Y,duration_ms:()=>ng,experiment_type:()=>Qj,external_footprint_load_error:()=>Am,frequency:()=>ur,getZodPrefixedIdWithDefault:()=>Nt,inductance:()=>jx,layer_ref:()=>pe,layer_string:()=>G3,length:()=>D,ms:()=>lr,ninePointAnchor:()=>ig,pcb_autorouting_error:()=>Oj,pcb_board:()=>sj,pcb_breakout_point:()=>Lj,pcb_component:()=>FD,pcb_component_invalid_layer_error:()=>Rm,pcb_component_outside_board_error:()=>Xj,pcb_copper_pour:()=>Yj,pcb_copper_pour_brep:()=>jj,pcb_copper_pour_polygon:()=>Bj,pcb_copper_pour_rect:()=>Dj,pcb_copper_text:()=>hj,pcb_courtyard_outline:()=>Gj,pcb_courtyard_polygon:()=>Hj,pcb_courtyard_rect:()=>Vj,pcb_cutout:()=>Nj,pcb_cutout_circle:()=>Ej,pcb_cutout_path:()=>Ij,pcb_cutout_polygon:()=>Cj,pcb_cutout_rect:()=>Mj,pcb_fabrication_note_dimension:()=>xj,pcb_fabrication_note_path:()=>yj,pcb_fabrication_note_rect:()=>gj,pcb_fabrication_note_text:()=>_j,pcb_footprint_overlap_error:()=>kj,pcb_ground_plane:()=>Fj,pcb_ground_plane_region:()=>zj,pcb_group:()=>Rj,pcb_hole:()=>XD,pcb_hole_circle_or_square_shape:()=>Wdt,pcb_hole_circle_shape:()=>Gdt,pcb_hole_oval_shape:()=>qdt,pcb_hole_pill_shape:()=>Zdt,pcb_hole_rect_shape:()=>Hdt,pcb_hole_rotated_pill_shape:()=>Kdt,pcb_keepout:()=>Tj,pcb_manual_edit_conflict_warning:()=>Wx,pcb_missing_footprint_error:()=>Aj,pcb_net:()=>ij,pcb_note_dimension:()=>Pj,pcb_note_line:()=>Sj,pcb_note_path:()=>wj,pcb_note_rect:()=>vj,pcb_note_text:()=>bj,pcb_panel:()=>oj,pcb_placement_error:()=>aj,pcb_plated_hole:()=>UD,pcb_port:()=>VD,pcb_port_not_connected_error:()=>nj,pcb_port_not_matched_error:()=>ej,pcb_route_hint:()=>LD,pcb_route_hints:()=>Vdt,pcb_silkscreen_circle:()=>fj,pcb_silkscreen_line:()=>lj,pcb_silkscreen_oval:()=>mj,pcb_silkscreen_path:()=>uj,pcb_silkscreen_rect:()=>dj,pcb_silkscreen_text:()=>pj,pcb_smtpad:()=>HD,pcb_smtpad_pill:()=>GD,pcb_solder_paste:()=>WD,pcb_text:()=>qD,pcb_thermal_spoke:()=>$j,pcb_trace:()=>JD,pcb_trace_error:()=>QD,pcb_trace_hint:()=>cj,pcb_trace_missing_error:()=>tj,pcb_trace_route_point:()=>Vx,pcb_trace_route_point_via:()=>KD,pcb_trace_route_point_wire:()=>ZD,pcb_via:()=>rj,pcb_via_clearance_error:()=>Uj,point:()=>Zt,point3:()=>Fh,point_with_bulge:()=>RD,port_arrangement:()=>hD,position:()=>jdt,position3:()=>Bdt,resistance:()=>Lc,ring:()=>H3,rotation:()=>He,route_hint_point:()=>Ji,schematic_arc:()=>yD,schematic_box:()=>aD,schematic_circle:()=>_D,schematic_component:()=>dD,schematic_component_port_arrangement_by_sides:()=>pD,schematic_component_port_arrangement_by_size:()=>uD,schematic_debug_line:()=>kD,schematic_debug_object:()=>MD,schematic_debug_object_base:()=>Xx,schematic_debug_point:()=>TD,schematic_debug_rect:()=>PD,schematic_error:()=>wD,schematic_group:()=>CD,schematic_layout_error:()=>SD,schematic_line:()=>fD,schematic_manual_edit_conflict_warning:()=>Ux,schematic_net_label:()=>vD,schematic_path:()=>cD,schematic_pin_styles:()=>lD,schematic_port:()=>bD,schematic_rect:()=>mD,schematic_sheet:()=>AD,schematic_table:()=>ID,schematic_table_cell:()=>ND,schematic_text:()=>xD,schematic_trace:()=>gD,schematic_voltage_probe:()=>ED,simulation_ac_voltage_source:()=>Kj,simulation_dc_voltage_source:()=>Zj,simulation_experiment:()=>tB,simulation_switch:()=>nB,simulation_transient_voltage_graph:()=>eB,simulation_unknown_experiment_error:()=>rB,simulation_voltage_probe:()=>iB,simulation_voltage_source:()=>Jj,size:()=>W3,source_board:()=>iD,source_component_base:()=>pi,source_failed_to_create_component_error:()=>q$,source_group:()=>eD,source_manually_placed_via:()=>sD,source_missing_property_error:()=>W$,source_net:()=>nD,source_pcb_ground_plane:()=>rD,source_pin_missing_trace_warning:()=>dM,source_pin_must_be_connected_error:()=>oD,source_port:()=>Q$,source_project_metadata:()=>pM,source_property_ignored_warning:()=>Z$,source_simple_battery:()=>tM,source_simple_capacitor:()=>q3,source_simple_chip:()=>J3,source_simple_crystal:()=>H$,source_simple_diode:()=>Bx,source_simple_ground:()=>G$,source_simple_inductor:()=>eM,source_simple_led:()=>K3,source_simple_mosfet:()=>lM,source_simple_pin_header:()=>rM,source_simple_pinout:()=>sM,source_simple_potentiometer:()=>iM,source_simple_power_source:()=>Q3,source_simple_push_button:()=>nM,source_simple_resistor:()=>Z3,source_simple_resonator:()=>oM,source_simple_switch:()=>uM,source_simple_test_point:()=>cM,source_simple_transistor:()=>aM,source_simple_voltage_probe:()=>K$,source_trace:()=>tD,source_trace_not_connected_error:()=>hM,supplier_name:()=>Im,time:()=>Ddt,timestamp:()=>U$,unknown_error_finding_part:()=>Yx,visible_layer:()=>Ks,voltage:()=>Si,wave_shape:()=>qj});function zdt(n){for(let[e,t]of Object.entries(X$))if(n in t.variants)return{baseUnit:t.baseUnit,conversionFactor:t.variants[n]};return{baseUnit:n,conversionFactor:1}}function Zs(n){if(n==null)return{parsedUnit:null,unitOfValue:null,value:null};if(typeof n=="string"&&n.match(/^-?[\d\.]+$/))return{value:Number.parseFloat(n),parsedUnit:null,unitOfValue:null};if(typeof n=="number")return{value:n,parsedUnit:null,unitOfValue:null};if(typeof n=="object"&&"x"in n&&"y"in n){let{parsedUnit:a,unitOfValue:c}=Zs(n.x),l=Zs(n.x),u=Zs(n.y);return l.value===null||u.value===null?{parsedUnit:null,unitOfValue:null,value:null}:{parsedUnit:a,unitOfValue:c,value:{x:l.value,y:u.value}}}let t=n.toString().split("").reverse().join("").match(/[^\d\s]+/)?.[0];if(!t)throw new Error(`Could not determine unit: "${n}"`);let i=t.split("").reverse().join(""),r=n.slice(0,-i.length);if(i in Y$&&!V3.has(i)){let a=Y$[i];return{parsedUnit:null,unitOfValue:null,value:Number.parseFloat(r)*a}}let{baseUnit:s,conversionFactor:o}=zdt(i);return{parsedUnit:i,unitOfValue:s,value:o*Number.parseFloat(r)}}var X$,V3,Y$,Lc,ba,jx,Si,D,ur,Y,$dt,ng,Ddt,lr,U$,He,V$,ft,zh,Zt,jdt,Fh,Bdt,W3,Ydt,Nt,ig,Im,pi,q3,Z3,Bx,K3,G$,J3,Q3,Xdt,tM,eM,nM,iM,H$,rM,sM,oM,aM,cM,lM,uM,pM,W$,q$,hM,Z$,dM,K$,J$,Q$,tD,eD,nD,iD,rD,Nm,G3,pe,Ks,sD,oD,Yx,aD,cD,lD,uD,pD,hD,dD,fD,mD,_D,yD,gD,Udt,xD,bD,vD,wD,SD,Xx,PD,kD,TD,MD,ED,Ux,CD,ID,ND,AD,RD,H3,OD,LD,Vdt,Ji,FD,zD,Gdt,$D,Hdt,DD,Wdt,jD,qdt,BD,Zdt,YD,Kdt,XD,Jdt,Qdt,tft,eft,nft,ift,UD,VD,rft,sft,oft,GD,aft,cft,HD,lft,uft,pft,hft,dft,WD,qD,ZD,KD,Vx,JD,QD,tj,ej,nj,ij,rj,sj,oj,aj,cj,lj,uj,pj,hj,dj,fj,mj,_j,yj,gj,xj,bj,vj,wj,Sj,Pj,kj,Tj,Gx,Mj,Ej,Cj,Ij,Nj,Aj,Am,Hx,Rj,Oj,Wx,Lj,Fj,zj,$j,fM,Dj,jj,Bj,Yj,Xj,Rm,Uj,Vj,Gj,Hj,Wj,qj,fft,Zj,Kj,Jj,Qj,tB,eB,nB,iB,rB,sB,$h,wt=qt(()=>{"use strict";Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();X$={Hz:{baseUnit:"Hz",variants:{MHz:1e6,kHz:1e3,Hz:1}},g:{baseUnit:"g",variants:{kg:1e3,g:1}},\u03A9:{baseUnit:"\u03A9",variants:{m\u03A9:.001,\u03A9:1,k\u03A9:1e3,K\u03A9:1e3,kohm:1e3,M\u03A9:1e6,G\u03A9:1e9,T\u03A9:1e12}},V:{baseUnit:"V",variants:{mV:.001,V:1,kV:1e3,KV:1e3,MV:1e6,GV:1e9,TV:1e12}},A:{baseUnit:"A",variants:{\u00B5A:1e-6,mA:.001,ma:.001,A:1,kA:1e3,MA:1e6}},F:{baseUnit:"F",variants:{pF:1e-12,nF:1e-9,\u00B5F:1e-6,uF:1e-6,mF:.001,F:1}},ml:{baseUnit:"ml",variants:{ml:1,mL:1,l:1e3,L:1e3}},deg:{baseUnit:"deg",variants:{rad:180/Math.PI}},ms:{baseUnit:"ms",variants:{fs:1e-12,ps:1e-9,ns:1e-6,us:.001,\u00B5s:.001,ms:1,s:1e3}},mm:{baseUnit:"mm",variants:{nm:1e-6,\u00B5m:.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}}},V3=new Set;for(let[n,e]of Object.entries(X$)){V3.add(n);for(let t of Object.keys(e.variants))V3.add(t)}Y$={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,\u00B5:1e-6,nano:1e-9,n:1e-9,pico:1e-12,p:1e-12};Lc=p.string().or(p.number()).transform(n=>Zs(n).value),ba=p.string().or(p.number()).transform(n=>Zs(n).value).transform(n=>Number.parseFloat(n.toPrecision(12))),jx=p.string().or(p.number()).transform(n=>Zs(n).value),Si=p.string().or(p.number()).transform(n=>Zs(n).value),D=p.string().or(p.number()).transform(n=>Zs(n).value),ur=p.string().or(p.number()).transform(n=>Zs(n).value),Y=D,$dt=p.string().or(p.number()).transform(n=>Zs(n).value),ng=p.string().or(p.number()).transform(n=>Zs(n).value),Ddt=ng,lr=ng,U$=p.string().datetime(),He=p.string().or(p.number()).transform(n=>typeof n=="number"?n:n.endsWith("deg")?Number.parseFloat(n.split("deg")[0]):n.endsWith("rad")?Number.parseFloat(n.split("rad")[0])*180/Math.PI:Number.parseFloat(n)),V$=p.number().or(p.string().endsWith("mAh")).transform(n=>{if(typeof n=="string"){let e=n.replace("mAh",""),t=Number.parseFloat(e);if(Number.isNaN(t))throw new Error("Invalid capacity");return t}return n}).describe("Battery capacity in mAh"),ft=n=>{};ft("extra props b");ft("missing props b");ft(!0);ft("mismatched prop types: a");zh=n=>{};zh(!0);zh('T1 has extra: "c", T2 has extra: "d"');zh('T1 has extra: "c"');zh('T2 has extra: "c"');zh('T1 has extra: "d", T2 has extra: "c"');zh(!0);Zt=p.object({x:Y,y:Y}),jdt=Zt;ft(!0);ft(!0);Fh=p.object({x:Y,y:Y,z:Y}),Bdt=Fh;ft(!0);W3=p.object({width:p.number(),height:p.number()});ft(!0);Ydt=n=>{let e="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";return Array.from({length:n},()=>e[Math.floor(Math.random()*e.length)]).join("")},Nt=n=>p.string().optional().default(()=>`${n}_${Ydt(10)}`),ig=p.enum(["top_left","top_center","top_right","center_left","center","center_right","bottom_left","bottom_center","bottom_right"]);ft(!0);Im=p.enum(["jlcpcb","macrofab","pcbway","digikey","mouser","lcsc"]);ft(!0);pi=p.object({type:p.literal("source_component"),ftype:p.string().optional(),source_component_id:p.string(),name:p.string(),manufacturer_part_number:p.string().optional(),supplier_part_numbers:p.record(Im,p.array(p.string())).optional(),display_value:p.string().optional(),are_pins_interchangeable:p.boolean().optional(),internally_connected_source_port_ids:p.array(p.array(p.string())).optional(),source_group_id:p.string().optional(),subcircuit_id:p.string().optional()});ft(!0);q3=pi.extend({ftype:p.literal("simple_capacitor"),capacitance:ba,max_voltage_rating:Si.optional(),display_capacitance:p.string().optional(),max_decoupling_trace_length:Y.optional()});ft(!0);Z3=pi.extend({ftype:p.literal("simple_resistor"),resistance:Lc,display_resistance:p.string().optional()});ft(!0);Bx=pi.extend({ftype:p.literal("simple_diode")});ft(!0);K3=Bx.extend({ftype:p.literal("simple_led"),color:p.string().optional(),wavelength:p.string().optional()});ft(!0);G$=pi.extend({ftype:p.literal("simple_ground")});ft(!0);J3=pi.extend({ftype:p.literal("simple_chip")});ft(!0);Q3=pi.extend({ftype:p.literal("simple_power_source"),voltage:Si});ft(!0);Xdt=pi.extend({ftype:p.literal("simple_fuse"),current_rating_amps:p.number().describe("Nominal current in amps the fuse is rated for"),voltage_rating_volts:p.number().describe("Voltage rating in volts, e.g. \xB15V would be 5")});ft(!0);tM=pi.extend({ftype:p.literal("simple_battery"),capacity:V$});ft(!0);eM=pi.extend({ftype:p.literal("simple_inductor"),inductance:jx,max_current_rating:p.number().optional()});ft(!0);nM=pi.extend({ftype:p.literal("simple_push_button")});ft(!0);iM=pi.extend({ftype:p.literal("simple_potentiometer"),max_resistance:Lc});ft(!0);H$=pi.extend({ftype:p.literal("simple_crystal"),frequency:p.number().describe("Frequency in Hz"),load_capacitance:p.number().optional().describe("Load capacitance in pF")});ft(!0);rM=pi.extend({ftype:p.literal("simple_pin_header"),pin_count:p.number(),gender:p.enum(["male","female"]).optional().default("male")});ft(!0);sM=pi.extend({ftype:p.literal("simple_pinout")});ft(!0);oM=pi.extend({ftype:p.literal("simple_resonator"),load_capacitance:ba,equivalent_series_resistance:Lc.optional(),frequency:ur});ft(!0);aM=pi.extend({ftype:p.literal("simple_transistor"),transistor_type:p.enum(["npn","pnp"])});ft(!0);cM=pi.extend({ftype:p.literal("simple_test_point"),footprint_variant:p.enum(["pad","through_hole"]).optional(),pad_shape:p.enum(["rect","circle"]).optional(),pad_diameter:p.union([p.number(),p.string()]).optional(),hole_diameter:p.union([p.number(),p.string()]).optional(),width:p.union([p.number(),p.string()]).optional(),height:p.union([p.number(),p.string()]).optional()});ft(!0);lM=pi.extend({ftype:p.literal("simple_mosfet"),channel_type:p.enum(["n","p"]),mosfet_mode:p.enum(["enhancement","depletion"])});ft(!0);uM=pi.extend({ftype:p.literal("simple_switch")});ft(!0);pM=p.object({type:p.literal("source_project_metadata"),name:p.string().optional(),software_used_string:p.string().optional(),project_url:p.string().optional(),created_at:U$.optional()});ft(!0);W$=p.object({type:p.literal("source_missing_property_error"),source_missing_property_error_id:Nt("source_missing_property_error"),source_component_id:p.string(),property_name:p.string(),subcircuit_id:p.string().optional(),error_type:p.literal("source_missing_property_error").default("source_missing_property_error"),message:p.string()}).describe("The source code is missing a property");ft(!0);q$=p.object({type:p.literal("source_failed_to_create_component_error"),source_failed_to_create_component_error_id:Nt("source_failed_to_create_component_error"),error_type:p.literal("source_failed_to_create_component_error").default("source_failed_to_create_component_error"),component_name:p.string().optional(),subcircuit_id:p.string().optional(),parent_source_component_id:p.string().optional(),message:p.string(),pcb_center:p.object({x:p.number().optional(),y:p.number().optional()}).optional(),schematic_center:p.object({x:p.number().optional(),y:p.number().optional()}).optional()}).describe("Error emitted when a component fails to be constructed");ft(!0);hM=p.object({type:p.literal("source_trace_not_connected_error"),source_trace_not_connected_error_id:Nt("source_trace_not_connected_error"),error_type:p.literal("source_trace_not_connected_error").default("source_trace_not_connected_error"),message:p.string(),subcircuit_id:p.string().optional(),source_group_id:p.string().optional(),source_trace_id:p.string().optional(),connected_source_port_ids:p.array(p.string()).optional(),selectors_not_found:p.array(p.string()).optional()}).describe("Occurs when a source trace selector does not match any ports");ft(!0);Z$=p.object({type:p.literal("source_property_ignored_warning"),source_property_ignored_warning_id:Nt("source_property_ignored_warning"),source_component_id:p.string(),property_name:p.string(),subcircuit_id:p.string().optional(),error_type:p.literal("source_property_ignored_warning").default("source_property_ignored_warning"),message:p.string()}).describe("The source property was ignored");ft(!0);dM=p.object({type:p.literal("source_pin_missing_trace_warning"),source_pin_missing_trace_warning_id:Nt("source_pin_missing_trace_warning"),warning_type:p.literal("source_pin_missing_trace_warning").default("source_pin_missing_trace_warning"),message:p.string(),source_component_id:p.string(),source_port_id:p.string(),subcircuit_id:p.string().optional()}).describe("Warning emitted when a source component pin is missing a trace connection");ft(!0);K$=pi.extend({ftype:p.literal("simple_voltage_probe")});ft(!0);J$=p.union([Z3,q3,Bx,K3,G$,J3,Q3,tM,eM,nM,iM,H$,rM,sM,oM,uM,aM,cM,lM,Xdt,K$,pM,W$,q$,hM,Z$,dM]);ft(!0);Q$=p.object({type:p.literal("source_port"),pin_number:p.number().optional(),port_hints:p.array(p.string()).optional(),name:p.string(),source_port_id:p.string(),source_component_id:p.string().optional(),source_group_id:p.string().optional(),subcircuit_id:p.string().optional(),subcircuit_connectivity_map_key:p.string().optional(),must_be_connected:p.boolean().optional()});ft(!0);tD=p.object({type:p.literal("source_trace"),source_trace_id:p.string(),connected_source_port_ids:p.array(p.string()),connected_source_net_ids:p.array(p.string()),subcircuit_id:p.string().optional(),subcircuit_connectivity_map_key:p.string().optional(),max_length:p.number().optional(),min_trace_thickness:p.number().optional(),display_name:p.string().optional()});ft(!0);eD=p.object({type:p.literal("source_group"),source_group_id:p.string(),subcircuit_id:p.string().optional(),parent_subcircuit_id:p.string().optional(),parent_source_group_id:p.string().optional(),is_subcircuit:p.boolean().optional(),show_as_schematic_box:p.boolean().optional(),name:p.string().optional(),was_automatically_named:p.boolean().optional()});ft(!0);nD=p.object({type:p.literal("source_net"),source_net_id:p.string(),name:p.string(),member_source_group_ids:p.array(p.string()),is_power:p.boolean().optional(),is_ground:p.boolean().optional(),is_digital_signal:p.boolean().optional(),is_analog_signal:p.boolean().optional(),is_positive_voltage_source:p.boolean().optional(),trace_width:p.number().optional(),subcircuit_id:p.string().optional(),subcircuit_connectivity_map_key:p.string().optional()});ft(!0);iD=p.object({type:p.literal("source_board"),source_board_id:p.string(),source_group_id:p.string(),title:p.string().optional()}).describe("Defines a board in the source domain");ft(!0);rD=p.object({type:p.literal("source_pcb_ground_plane"),source_pcb_ground_plane_id:p.string(),source_group_id:p.string(),source_net_id:p.string(),subcircuit_id:p.string().optional()}).describe("Defines a ground plane in the source domain");ft(!0);Nm=["top","bottom","inner1","inner2","inner3","inner4","inner5","inner6"],G3=p.enum(Nm),pe=G3.or(p.object({name:G3})).transform(n=>typeof n=="string"?n:n.name);ft(!0);Ks=p.enum(["top","bottom"]),sD=p.object({type:p.literal("source_manually_placed_via"),source_manually_placed_via_id:p.string(),source_group_id:p.string(),source_net_id:p.string(),subcircuit_id:p.string().optional(),source_trace_id:p.string().optional()}).describe("Defines a via that is manually placed in the source domain");ft(!0);oD=p.object({type:p.literal("source_pin_must_be_connected_error"),source_pin_must_be_connected_error_id:Nt("source_pin_must_be_connected_error"),error_type:p.literal("source_pin_must_be_connected_error").default("source_pin_must_be_connected_error"),message:p.string(),source_component_id:p.string(),source_port_id:p.string(),subcircuit_id:p.string().optional()}).describe("Error emitted when a pin with mustBeConnected attribute is not connected to any trace");ft(!0);Yx=p.object({type:p.literal("unknown_error_finding_part"),unknown_error_finding_part_id:Nt("unknown_error_finding_part"),error_type:p.literal("unknown_error_finding_part").default("unknown_error_finding_part"),message:p.string(),source_component_id:p.string().optional(),subcircuit_id:p.string().optional()}).describe("Error emitted when an unexpected error occurs while finding a part");ft(!0);aD=p.object({type:p.literal("schematic_box"),schematic_component_id:p.string().optional(),width:Y,height:Y,is_dashed:p.boolean().default(!1),x:Y,y:Y,subcircuit_id:p.string().optional()}).describe("Draws a box on the schematic");ft(!0);cD=p.object({type:p.literal("schematic_path"),schematic_component_id:p.string(),fill_color:p.enum(["red","blue"]).optional(),is_filled:p.boolean().optional(),points:p.array(Zt),subcircuit_id:p.string().optional()});ft(!0);lD=p.record(p.object({left_margin:D.optional(),right_margin:D.optional(),top_margin:D.optional(),bottom_margin:D.optional()})),uD=p.object({left_size:p.number(),right_size:p.number(),top_size:p.number().optional(),bottom_size:p.number().optional()});ft(!0);pD=p.object({left_side:p.object({pins:p.array(p.number()),direction:p.enum(["top-to-bottom","bottom-to-top"]).optional()}).optional(),right_side:p.object({pins:p.array(p.number()),direction:p.enum(["top-to-bottom","bottom-to-top"]).optional()}).optional(),top_side:p.object({pins:p.array(p.number()),direction:p.enum(["left-to-right","right-to-left"]).optional()}).optional(),bottom_side:p.object({pins:p.array(p.number()),direction:p.enum(["left-to-right","right-to-left"]).optional()}).optional()});ft(!0);hD=p.union([uD,pD]),dD=p.object({type:p.literal("schematic_component"),size:W3,center:Zt,source_component_id:p.string().optional(),schematic_component_id:p.string(),pin_spacing:D.optional(),pin_styles:lD.optional(),box_width:D.optional(),symbol_name:p.string().optional(),port_arrangement:hD.optional(),port_labels:p.record(p.string()).optional(),symbol_display_value:p.string().optional(),subcircuit_id:p.string().optional(),schematic_group_id:p.string().optional(),is_schematic_group:p.boolean().optional(),source_group_id:p.string().optional(),is_box_with_pins:p.boolean().optional().default(!0)});ft(!0);fD=p.object({type:p.literal("schematic_line"),schematic_line_id:Nt("schematic_line"),schematic_component_id:p.string(),x1:Y,y1:Y,x2:Y,y2:Y,stroke_width:Y.nullable().optional(),color:p.string().default("#000000"),is_dashed:p.boolean().default(!1),subcircuit_id:p.string().optional()}).describe("Draws a styled line on the schematic");ft(!0);mD=p.object({type:p.literal("schematic_rect"),schematic_rect_id:Nt("schematic_rect"),schematic_component_id:p.string(),center:Zt,width:Y,height:Y,rotation:He.default(0),stroke_width:Y.nullable().optional(),color:p.string().default("#000000"),is_filled:p.boolean().default(!1),fill_color:p.string().optional(),is_dashed:p.boolean().default(!1),subcircuit_id:p.string().optional()}).describe("Draws a styled rectangle on the schematic");ft(!0);_D=p.object({type:p.literal("schematic_circle"),schematic_circle_id:Nt("schematic_circle"),schematic_component_id:p.string(),center:Zt,radius:Y,stroke_width:Y.nullable().optional(),color:p.string().default("#000000"),is_filled:p.boolean().default(!1),fill_color:p.string().optional(),is_dashed:p.boolean().default(!1),subcircuit_id:p.string().optional()}).describe("Draws a styled circle on the schematic");ft(!0);yD=p.object({type:p.literal("schematic_arc"),schematic_arc_id:Nt("schematic_arc"),schematic_component_id:p.string(),center:Zt,radius:Y,start_angle_degrees:He,end_angle_degrees:He,direction:p.enum(["clockwise","counterclockwise"]).default("counterclockwise"),stroke_width:Y.nullable().optional(),color:p.string().default("#000000"),is_dashed:p.boolean().default(!1),subcircuit_id:p.string().optional()}).describe("Draws a styled arc on the schematic");ft(!0);gD=p.object({type:p.literal("schematic_trace"),schematic_trace_id:p.string(),source_trace_id:p.string().optional(),junctions:p.array(p.object({x:p.number(),y:p.number()})),edges:p.array(p.object({from:p.object({x:p.number(),y:p.number()}),to:p.object({x:p.number(),y:p.number()}),is_crossing:p.boolean().optional(),from_schematic_port_id:p.string().optional(),to_schematic_port_id:p.string().optional()})),subcircuit_id:p.string().optional(),subcircuit_connectivity_map_key:p.string().optional()});ft(!0);Udt=p.enum(["center","left","right","top","bottom"]);ft(!0);xD=p.object({type:p.literal("schematic_text"),schematic_component_id:p.string().optional(),schematic_text_id:p.string(),text:p.string(),font_size:p.number().default(.18),position:p.object({x:Y,y:Y}),rotation:p.number().default(0),anchor:p.union([Udt.describe("legacy"),ig]).default("center"),color:p.string().default("#000000"),subcircuit_id:p.string().optional()});ft(!0);bD=p.object({type:p.literal("schematic_port"),schematic_port_id:p.string(),source_port_id:p.string(),schematic_component_id:p.string().optional(),center:Zt,facing_direction:p.enum(["up","down","left","right"]).optional(),distance_from_component_edge:p.number().optional(),side_of_component:p.enum(["top","bottom","left","right"]).optional(),true_ccw_index:p.number().optional(),pin_number:p.number().optional(),display_pin_label:p.string().optional(),subcircuit_id:p.string().optional(),is_connected:p.boolean().optional(),has_input_arrow:p.boolean().optional(),has_output_arrow:p.boolean().optional()}).describe("Defines a port on a schematic component");ft(!0);vD=p.object({type:p.literal("schematic_net_label"),schematic_net_label_id:Nt("schematic_net_label"),schematic_trace_id:p.string().optional(),source_trace_id:p.string().optional(),source_net_id:p.string(),center:Zt,anchor_position:Zt.optional(),anchor_side:p.enum(["top","bottom","left","right"]),text:p.string(),symbol_name:p.string().optional(),is_movable:p.boolean().optional(),subcircuit_id:p.string().optional()});ft(!0);wD=p.object({type:p.literal("schematic_error"),schematic_error_id:p.string(),error_type:p.literal("schematic_port_not_found").default("schematic_port_not_found"),message:p.string(),subcircuit_id:p.string().optional()}).describe("Defines a schematic error on the schematic");ft(!0);SD=p.object({type:p.literal("schematic_layout_error"),schematic_layout_error_id:Nt("schematic_layout_error"),error_type:p.literal("schematic_layout_error").default("schematic_layout_error"),message:p.string(),source_group_id:p.string(),schematic_group_id:p.string(),subcircuit_id:p.string().optional()}).describe("Error emitted when schematic layout fails for a group");ft(!0);Xx=p.object({type:p.literal("schematic_debug_object"),label:p.string().optional(),subcircuit_id:p.string().optional()}),PD=Xx.extend({shape:p.literal("rect"),center:Zt,size:W3}),kD=Xx.extend({shape:p.literal("line"),start:Zt,end:Zt}),TD=Xx.extend({shape:p.literal("point"),center:Zt}),MD=p.discriminatedUnion("shape",[PD,kD,TD]);ft(!0);ED=p.object({type:p.literal("schematic_voltage_probe"),schematic_voltage_probe_id:p.string(),source_component_id:p.string().optional(),name:p.string().optional(),position:Zt,schematic_trace_id:p.string(),voltage:Si.optional(),subcircuit_id:p.string().optional(),color:p.string().optional()}).describe("Defines a voltage probe measurement point on a schematic trace");ft(!0);Ux=p.object({type:p.literal("schematic_manual_edit_conflict_warning"),schematic_manual_edit_conflict_warning_id:Nt("schematic_manual_edit_conflict_warning"),warning_type:p.literal("schematic_manual_edit_conflict_warning").default("schematic_manual_edit_conflict_warning"),message:p.string(),schematic_component_id:p.string(),schematic_group_id:p.string().optional(),subcircuit_id:p.string().optional(),source_component_id:p.string()}).describe("Warning emitted when a component has both manual placement and explicit schX/schY coordinates");ft(!0);CD=p.object({type:p.literal("schematic_group"),schematic_group_id:Nt("schematic_group"),source_group_id:p.string(),is_subcircuit:p.boolean().optional(),subcircuit_id:p.string().optional(),width:D,height:D,center:Zt,schematic_component_ids:p.array(p.string()),show_as_schematic_box:p.boolean().optional(),name:p.string().optional(),description:p.string().optional()}).describe("Defines a group of components on the schematic");ft(!0);ID=p.object({type:p.literal("schematic_table"),schematic_table_id:Nt("schematic_table"),anchor_position:Zt,column_widths:p.array(Y),row_heights:p.array(Y),cell_padding:Y.optional(),border_width:Y.optional(),subcircuit_id:p.string().optional(),schematic_component_id:p.string().optional(),anchor:ig.optional()}).describe("Defines a table on the schematic");ft(!0);ND=p.object({type:p.literal("schematic_table_cell"),schematic_table_cell_id:Nt("schematic_table_cell"),schematic_table_id:p.string(),start_row_index:p.number(),end_row_index:p.number(),start_column_index:p.number(),end_column_index:p.number(),text:p.string().optional(),center:Zt,width:Y,height:Y,horizontal_align:p.enum(["left","center","right"]).optional(),vertical_align:p.enum(["top","middle","bottom"]).optional(),font_size:Y.optional(),subcircuit_id:p.string().optional()}).describe("Defines a cell within a schematic_table");ft(!0);AD=p.object({type:p.literal("schematic_sheet"),schematic_sheet_id:Nt("schematic_sheet"),name:p.string().optional(),subcircuit_id:p.string().optional()}).describe("Defines a schematic sheet or page that components can be placed on");ft(!0);RD=p.object({x:Y,y:Y,bulge:p.number().optional()});ft(!0);H3=p.object({vertices:p.array(RD)});ft(!0);OD=p.object({outer_ring:H3,inner_rings:p.array(H3).default([])});ft(!0);LD=p.object({x:Y,y:Y,via:p.boolean().optional(),via_to_layer:pe.optional()}),Vdt=p.array(LD);ft(!0);ft(!0);Ji=p.object({x:Y,y:Y,via:p.boolean().optional(),to_layer:pe.optional(),trace_width:Y.optional()});ft(!0);FD=p.object({type:p.literal("pcb_component"),pcb_component_id:Nt("pcb_component"),source_component_id:p.string(),center:Zt,layer:pe,rotation:He,width:D,height:D,do_not_place:p.boolean().optional(),subcircuit_id:p.string().optional(),pcb_group_id:p.string().optional(),position_mode:p.enum(["packed","relative_to_group_anchor","none"]).optional(),positioned_relative_to_pcb_group_id:p.string().optional(),obstructs_within_bounds:p.boolean().default(!0).describe("Does this component take up all the space within its bounds on a layer. This is generally true except for when separated pin headers are being represented by a single component (in which case, chips can be placed between the pin headers) or for tall modules where chips fit underneath")}).describe("Defines a component on the PCB");ft(!0);zD=p.object({type:p.literal("pcb_hole"),pcb_hole_id:Nt("pcb_hole"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),hole_shape:p.literal("circle"),hole_diameter:p.number(),x:Y,y:Y,is_covered_with_solder_mask:p.boolean().optional(),soldermask_margin:p.number().optional()}),Gdt=zD.describe("Defines a circular hole on the PCB");ft(!0);$D=p.object({type:p.literal("pcb_hole"),pcb_hole_id:Nt("pcb_hole"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),hole_shape:p.literal("rect"),hole_width:p.number(),hole_height:p.number(),x:Y,y:Y,is_covered_with_solder_mask:p.boolean().optional(),soldermask_margin:p.number().optional()}),Hdt=$D.describe("Defines a rectangular (square-capable) hole on the PCB. Use equal width/height for square.");ft(!0);DD=p.object({type:p.literal("pcb_hole"),pcb_hole_id:Nt("pcb_hole"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),hole_shape:p.enum(["circle","square"]),hole_diameter:p.number(),x:Y,y:Y,is_covered_with_solder_mask:p.boolean().optional(),soldermask_margin:p.number().optional()}),Wdt=DD.describe("Defines a circular or square hole on the PCB");ft(!0);jD=p.object({type:p.literal("pcb_hole"),pcb_hole_id:Nt("pcb_hole"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),hole_shape:p.literal("oval"),hole_width:p.number(),hole_height:p.number(),x:Y,y:Y,is_covered_with_solder_mask:p.boolean().optional(),soldermask_margin:p.number().optional()}),qdt=jD.describe("Defines an oval hole on the PCB");ft(!0);BD=p.object({type:p.literal("pcb_hole"),pcb_hole_id:Nt("pcb_hole"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),hole_shape:p.literal("pill"),hole_width:p.number(),hole_height:p.number(),x:Y,y:Y,is_covered_with_solder_mask:p.boolean().optional(),soldermask_margin:p.number().optional()}),Zdt=BD.describe("Defines a pill-shaped hole on the PCB");ft(!0);YD=p.object({type:p.literal("pcb_hole"),pcb_hole_id:Nt("pcb_hole"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),hole_shape:p.literal("rotated_pill"),hole_width:p.number(),hole_height:p.number(),x:Y,y:Y,ccw_rotation:He,is_covered_with_solder_mask:p.boolean().optional(),soldermask_margin:p.number().optional()}),Kdt=YD.describe("Defines a rotated pill-shaped hole on the PCB");ft(!0);XD=DD.or(jD).or(BD).or(YD).or(zD).or($D),Jdt=p.object({type:p.literal("pcb_plated_hole"),shape:p.literal("circle"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),outer_diameter:p.number(),hole_diameter:p.number(),x:Y,y:Y,layers:p.array(pe),port_hints:p.array(p.string()).optional(),pcb_component_id:p.string().optional(),pcb_port_id:p.string().optional(),pcb_plated_hole_id:Nt("pcb_plated_hole"),soldermask_margin:p.number().optional(),is_covered_with_solder_mask:p.boolean().optional()}),Qdt=p.object({type:p.literal("pcb_plated_hole"),shape:p.enum(["oval","pill"]),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),outer_width:p.number(),outer_height:p.number(),hole_width:p.number(),hole_height:p.number(),is_covered_with_solder_mask:p.boolean().optional(),x:Y,y:Y,ccw_rotation:He,layers:p.array(pe),port_hints:p.array(p.string()).optional(),pcb_component_id:p.string().optional(),pcb_port_id:p.string().optional(),pcb_plated_hole_id:Nt("pcb_plated_hole"),soldermask_margin:p.number().optional()}),tft=p.object({type:p.literal("pcb_plated_hole"),shape:p.literal("circular_hole_with_rect_pad"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),hole_shape:p.literal("circle"),pad_shape:p.literal("rect"),hole_diameter:p.number(),rect_pad_width:p.number(),rect_pad_height:p.number(),rect_border_radius:p.number().optional(),hole_offset_x:Y.default(0),hole_offset_y:Y.default(0),is_covered_with_solder_mask:p.boolean().optional(),x:Y,y:Y,layers:p.array(pe),port_hints:p.array(p.string()).optional(),pcb_component_id:p.string().optional(),pcb_port_id:p.string().optional(),pcb_plated_hole_id:Nt("pcb_plated_hole"),soldermask_margin:p.number().optional()}),eft=p.object({type:p.literal("pcb_plated_hole"),shape:p.literal("pill_hole_with_rect_pad"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),hole_shape:p.literal("pill"),pad_shape:p.literal("rect"),hole_width:p.number(),hole_height:p.number(),rect_pad_width:p.number(),rect_pad_height:p.number(),rect_border_radius:p.number().optional(),hole_offset_x:Y.default(0),hole_offset_y:Y.default(0),is_covered_with_solder_mask:p.boolean().optional(),x:Y,y:Y,layers:p.array(pe),port_hints:p.array(p.string()).optional(),pcb_component_id:p.string().optional(),pcb_port_id:p.string().optional(),pcb_plated_hole_id:Nt("pcb_plated_hole"),soldermask_margin:p.number().optional()}),nft=p.object({type:p.literal("pcb_plated_hole"),shape:p.literal("rotated_pill_hole_with_rect_pad"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),hole_shape:p.literal("rotated_pill"),pad_shape:p.literal("rect"),hole_width:p.number(),hole_height:p.number(),hole_ccw_rotation:He,rect_pad_width:p.number(),rect_pad_height:p.number(),rect_border_radius:p.number().optional(),rect_ccw_rotation:He,hole_offset_x:Y.default(0),hole_offset_y:Y.default(0),is_covered_with_solder_mask:p.boolean().optional(),x:Y,y:Y,layers:p.array(pe),port_hints:p.array(p.string()).optional(),pcb_component_id:p.string().optional(),pcb_port_id:p.string().optional(),pcb_plated_hole_id:Nt("pcb_plated_hole"),soldermask_margin:p.number().optional()}),ift=p.object({type:p.literal("pcb_plated_hole"),shape:p.literal("hole_with_polygon_pad"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),hole_shape:p.enum(["circle","oval","pill","rotated_pill"]),hole_diameter:p.number().optional(),hole_width:p.number().optional(),hole_height:p.number().optional(),pad_outline:p.array(p.object({x:Y,y:Y})).min(3),hole_offset_x:Y.default(0),hole_offset_y:Y.default(0),is_covered_with_solder_mask:p.boolean().optional(),x:Y,y:Y,layers:p.array(pe),port_hints:p.array(p.string()).optional(),pcb_component_id:p.string().optional(),pcb_port_id:p.string().optional(),pcb_plated_hole_id:Nt("pcb_plated_hole"),soldermask_margin:p.number().optional()}),UD=p.union([Jdt,Qdt,tft,eft,nft,ift]);ft(!0);ft(!0);ft(!0);ft(!0);ft(!0);ft(!0);VD=p.object({type:p.literal("pcb_port"),pcb_port_id:Nt("pcb_port"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),source_port_id:p.string(),pcb_component_id:p.string().optional(),x:Y,y:Y,layers:p.array(pe),is_board_pinout:p.boolean().optional()}).describe("Defines a port on the PCB");ft(!0);rft=p.object({type:p.literal("pcb_smtpad"),shape:p.literal("circle"),pcb_smtpad_id:Nt("pcb_smtpad"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),x:Y,y:Y,radius:p.number(),layer:pe,port_hints:p.array(p.string()).optional(),pcb_component_id:p.string().optional(),pcb_port_id:p.string().optional(),is_covered_with_solder_mask:p.boolean().optional(),soldermask_margin:p.number().optional()}),sft=p.object({type:p.literal("pcb_smtpad"),shape:p.literal("rect"),pcb_smtpad_id:Nt("pcb_smtpad"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),x:Y,y:Y,width:p.number(),height:p.number(),rect_border_radius:p.number().optional(),corner_radius:p.number().optional(),layer:pe,port_hints:p.array(p.string()).optional(),pcb_component_id:p.string().optional(),pcb_port_id:p.string().optional(),is_covered_with_solder_mask:p.boolean().optional(),soldermask_margin:p.number().optional()}),oft=p.object({type:p.literal("pcb_smtpad"),shape:p.literal("rotated_rect"),pcb_smtpad_id:Nt("pcb_smtpad"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),x:Y,y:Y,width:p.number(),height:p.number(),rect_border_radius:p.number().optional(),corner_radius:p.number().optional(),ccw_rotation:He,layer:pe,port_hints:p.array(p.string()).optional(),pcb_component_id:p.string().optional(),pcb_port_id:p.string().optional(),is_covered_with_solder_mask:p.boolean().optional(),soldermask_margin:p.number().optional()}),GD=p.object({type:p.literal("pcb_smtpad"),shape:p.literal("pill"),pcb_smtpad_id:Nt("pcb_smtpad"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),x:Y,y:Y,width:p.number(),height:p.number(),radius:p.number(),layer:pe,port_hints:p.array(p.string()).optional(),pcb_component_id:p.string().optional(),pcb_port_id:p.string().optional(),is_covered_with_solder_mask:p.boolean().optional(),soldermask_margin:p.number().optional()}),aft=p.object({type:p.literal("pcb_smtpad"),shape:p.literal("rotated_pill"),pcb_smtpad_id:Nt("pcb_smtpad"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),x:Y,y:Y,width:p.number(),height:p.number(),radius:p.number(),ccw_rotation:He,layer:pe,port_hints:p.array(p.string()).optional(),pcb_component_id:p.string().optional(),pcb_port_id:p.string().optional(),is_covered_with_solder_mask:p.boolean().optional(),soldermask_margin:p.number().optional()}),cft=p.object({type:p.literal("pcb_smtpad"),shape:p.literal("polygon"),pcb_smtpad_id:Nt("pcb_smtpad"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),points:p.array(Zt),layer:pe,port_hints:p.array(p.string()).optional(),pcb_component_id:p.string().optional(),pcb_port_id:p.string().optional(),is_covered_with_solder_mask:p.boolean().optional(),soldermask_margin:p.number().optional()}),HD=p.discriminatedUnion("shape",[rft,sft,oft,aft,GD,cft]).describe("Defines an SMT pad on the PCB");ft(!0);ft(!0);ft(!0);ft(!0);ft(!0);ft(!0);lft=p.object({type:p.literal("pcb_solder_paste"),shape:p.literal("circle"),pcb_solder_paste_id:Nt("pcb_solder_paste"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),x:Y,y:Y,radius:p.number(),layer:pe,pcb_component_id:p.string().optional(),pcb_smtpad_id:p.string().optional()}),uft=p.object({type:p.literal("pcb_solder_paste"),shape:p.literal("rect"),pcb_solder_paste_id:Nt("pcb_solder_paste"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),x:Y,y:Y,width:p.number(),height:p.number(),layer:pe,pcb_component_id:p.string().optional(),pcb_smtpad_id:p.string().optional()}),pft=p.object({type:p.literal("pcb_solder_paste"),shape:p.literal("pill"),pcb_solder_paste_id:Nt("pcb_solder_paste"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),x:Y,y:Y,width:p.number(),height:p.number(),radius:p.number(),layer:pe,pcb_component_id:p.string().optional(),pcb_smtpad_id:p.string().optional()}),hft=p.object({type:p.literal("pcb_solder_paste"),shape:p.literal("rotated_rect"),pcb_solder_paste_id:Nt("pcb_solder_paste"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),x:Y,y:Y,width:p.number(),height:p.number(),ccw_rotation:Y,layer:pe,pcb_component_id:p.string().optional(),pcb_smtpad_id:p.string().optional()}),dft=p.object({type:p.literal("pcb_solder_paste"),shape:p.literal("oval"),pcb_solder_paste_id:Nt("pcb_solder_paste"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),x:Y,y:Y,width:p.number(),height:p.number(),layer:pe,pcb_component_id:p.string().optional(),pcb_smtpad_id:p.string().optional()}),WD=p.union([lft,uft,pft,hft,dft]).describe("Defines solderpaste on the PCB");ft(!0);ft(!0);ft(!0);ft(!0);ft(!0);qD=p.object({type:p.literal("pcb_text"),pcb_text_id:Nt("pcb_text"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),text:p.string(),center:Zt,layer:pe,width:D,height:D,lines:p.number(),align:p.enum(["bottom-left"])}).describe("Defines text on the PCB");ft(!0);ZD=p.object({route_type:p.literal("wire"),x:Y,y:Y,width:Y,start_pcb_port_id:p.string().optional(),end_pcb_port_id:p.string().optional(),layer:pe}),KD=p.object({route_type:p.literal("via"),x:Y,y:Y,hole_diameter:Y.optional(),outer_diameter:Y.optional(),from_layer:p.string(),to_layer:p.string()}),Vx=p.union([ZD,KD]),JD=p.object({type:p.literal("pcb_trace"),source_trace_id:p.string().optional(),pcb_component_id:p.string().optional(),pcb_trace_id:Nt("pcb_trace"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),route_thickness_mode:p.enum(["constant","interpolated"]).default("constant").optional(),route_order_index:p.number().optional(),should_round_corners:p.boolean().optional(),trace_length:p.number().optional(),highlight_color:p.string().optional(),route:p.array(Vx)}).describe("Defines a trace on the PCB");ft(!0);ft(!0);QD=p.object({type:p.literal("pcb_trace_error"),pcb_trace_error_id:Nt("pcb_trace_error"),error_type:p.literal("pcb_trace_error").default("pcb_trace_error"),message:p.string(),center:Zt.optional(),pcb_trace_id:p.string(),source_trace_id:p.string(),pcb_component_ids:p.array(p.string()),pcb_port_ids:p.array(p.string()),subcircuit_id:p.string().optional()}).describe("Defines a trace error on the PCB");ft(!0);tj=p.object({type:p.literal("pcb_trace_missing_error"),pcb_trace_missing_error_id:Nt("pcb_trace_missing_error"),error_type:p.literal("pcb_trace_missing_error").default("pcb_trace_missing_error"),message:p.string(),center:Zt.optional(),source_trace_id:p.string(),pcb_component_ids:p.array(p.string()),pcb_port_ids:p.array(p.string()),subcircuit_id:p.string().optional()}).describe("Defines an error when a source trace has no corresponding PCB trace");ft(!0);ej=p.object({type:p.literal("pcb_port_not_matched_error"),pcb_error_id:Nt("pcb_error"),error_type:p.literal("pcb_port_not_matched_error").default("pcb_port_not_matched_error"),message:p.string(),pcb_component_ids:p.array(p.string()),subcircuit_id:p.string().optional()}).describe("Defines a trace error on the PCB where a port is not matched");ft(!0);nj=p.object({type:p.literal("pcb_port_not_connected_error"),pcb_port_not_connected_error_id:Nt("pcb_port_not_connected_error"),error_type:p.literal("pcb_port_not_connected_error").default("pcb_port_not_connected_error"),message:p.string(),pcb_port_ids:p.array(p.string()),pcb_component_ids:p.array(p.string()),subcircuit_id:p.string().optional()}).describe("Defines an error when a pcb port is not connected to any trace");ft(!0);ij=p.object({type:p.literal("pcb_net"),pcb_net_id:Nt("pcb_net"),source_net_id:p.string().optional(),highlight_color:p.string().optional()}).describe("Defines a net on the PCB");ft(!0);rj=p.object({type:p.literal("pcb_via"),pcb_via_id:Nt("pcb_via"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),subcircuit_connectivity_map_key:p.string().optional(),x:Y,y:Y,outer_diameter:Y.default("0.6mm"),hole_diameter:Y.default("0.25mm"),from_layer:pe.optional(),to_layer:pe.optional(),layers:p.array(pe),pcb_trace_id:p.string().optional(),net_is_assignable:p.boolean().optional(),net_assigned:p.boolean().optional()}).describe("Defines a via on the PCB");ft(!0);sj=p.object({type:p.literal("pcb_board"),pcb_board_id:Nt("pcb_board"),pcb_panel_id:p.string().optional(),is_subcircuit:p.boolean().optional(),subcircuit_id:p.string().optional(),width:D.optional(),height:D.optional(),center:Zt,thickness:D.optional().default(1.4),num_layers:p.number().optional().default(4),outline:p.array(Zt).optional(),shape:p.enum(["rect","polygon"]).optional(),material:p.enum(["fr4","fr1"]).default("fr4")}).describe("Defines the board outline of the PCB");ft(!0);oj=p.object({type:p.literal("pcb_panel"),pcb_panel_id:Nt("pcb_panel"),width:D,height:D,center:Zt,covered_with_solder_mask:p.boolean().optional().default(!0)}).describe("Defines a PCB panel that can contain multiple boards");ft(!0);aj=p.object({type:p.literal("pcb_placement_error"),pcb_placement_error_id:Nt("pcb_placement_error"),error_type:p.literal("pcb_placement_error").default("pcb_placement_error"),message:p.string(),subcircuit_id:p.string().optional()}).describe("Defines a placement error on the PCB");ft(!0);cj=p.object({type:p.literal("pcb_trace_hint"),pcb_trace_hint_id:Nt("pcb_trace_hint"),pcb_port_id:p.string(),pcb_component_id:p.string(),route:p.array(Ji),subcircuit_id:p.string().optional()}).describe("A hint that can be used during generation of a PCB trace");ft(!0);lj=p.object({type:p.literal("pcb_silkscreen_line"),pcb_silkscreen_line_id:Nt("pcb_silkscreen_line"),pcb_component_id:p.string(),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),stroke_width:Y.default("0.1mm"),x1:Y,y1:Y,x2:Y,y2:Y,layer:Ks}).describe("Defines a silkscreen line on the PCB");ft(!0);uj=p.object({type:p.literal("pcb_silkscreen_path"),pcb_silkscreen_path_id:Nt("pcb_silkscreen_path"),pcb_component_id:p.string(),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),layer:Ks,route:p.array(Zt),stroke_width:D}).describe("Defines a silkscreen path on the PCB");ft(!0);pj=p.object({type:p.literal("pcb_silkscreen_text"),pcb_silkscreen_text_id:Nt("pcb_silkscreen_text"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),font:p.literal("tscircuit2024").default("tscircuit2024"),font_size:Y.default("0.2mm"),pcb_component_id:p.string(),text:p.string(),is_knockout:p.boolean().default(!1).optional(),knockout_padding:p.object({left:D,top:D,bottom:D,right:D}).default({left:"0.2mm",top:"0.2mm",bottom:"0.2mm",right:"0.2mm"}).optional(),ccw_rotation:p.number().optional(),layer:pe,is_mirrored:p.boolean().default(!1).optional(),anchor_position:Zt.default({x:0,y:0}),anchor_alignment:ig.default("center")}).describe("Defines silkscreen text on the PCB");ft(!0);hj=p.object({type:p.literal("pcb_copper_text"),pcb_copper_text_id:Nt("pcb_copper_text"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),font:p.literal("tscircuit2024").default("tscircuit2024"),font_size:Y.default("0.2mm"),pcb_component_id:p.string(),text:p.string(),is_knockout:p.boolean().default(!1).optional(),knockout_padding:p.object({left:D,top:D,bottom:D,right:D}).default({left:"0.2mm",top:"0.2mm",bottom:"0.2mm",right:"0.2mm"}).optional(),ccw_rotation:p.number().optional(),layer:pe,is_mirrored:p.boolean().default(!1).optional(),anchor_position:Zt.default({x:0,y:0}),anchor_alignment:ig.default("center")}).describe("Defines copper text on the PCB");ft(!0);dj=p.object({type:p.literal("pcb_silkscreen_rect"),pcb_silkscreen_rect_id:Nt("pcb_silkscreen_rect"),pcb_component_id:p.string(),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),center:Zt,width:D,height:D,layer:pe,stroke_width:D.default("1mm"),corner_radius:D.optional(),is_filled:p.boolean().default(!0).optional(),has_stroke:p.boolean().optional(),is_stroke_dashed:p.boolean().optional()}).describe("Defines a silkscreen rect on the PCB");ft(!0);fj=p.object({type:p.literal("pcb_silkscreen_circle"),pcb_silkscreen_circle_id:Nt("pcb_silkscreen_circle"),pcb_component_id:p.string(),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),center:Zt,radius:D,layer:Ks,stroke_width:D.default("1mm")}).describe("Defines a silkscreen circle on the PCB");ft(!0);mj=p.object({type:p.literal("pcb_silkscreen_oval"),pcb_silkscreen_oval_id:Nt("pcb_silkscreen_oval"),pcb_component_id:p.string(),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),center:Zt,radius_x:Y,radius_y:Y,layer:Ks}).describe("Defines a silkscreen oval on the PCB");ft(!0);_j=p.object({type:p.literal("pcb_fabrication_note_text"),pcb_fabrication_note_text_id:Nt("pcb_fabrication_note_text"),subcircuit_id:p.string().optional(),pcb_group_id:p.string().optional(),font:p.literal("tscircuit2024").default("tscircuit2024"),font_size:Y.default("1mm"),pcb_component_id:p.string(),text:p.string(),layer:Ks,anchor_position:Zt.default({x:0,y:0}),anchor_alignment:p.enum(["center","top_left","top_right","bottom_left","bottom_right"]).default("center"),color:p.string().optional()}).describe("Defines a fabrication note in text on the PCB, useful for leaving notes for assemblers or fabricators");ft(!0);yj=p.object({type:p.literal("pcb_fabrication_note_path"),pcb_fabrication_note_path_id:Nt("pcb_fabrication_note_path"),pcb_component_id:p.string(),subcircuit_id:p.string().optional(),layer:pe,route:p.array(Zt),stroke_width:D,color:p.string().optional()}).describe("Defines a fabrication path on the PCB for fabricators or assemblers");ft(!0);gj=p.object({type:p.literal("pcb_fabrication_note_rect"),pcb_fabrication_note_rect_id:Nt("pcb_fabrication_note_rect"),pcb_component_id:p.string(),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),center:Zt,width:D,height:D,layer:Ks,stroke_width:D.default("0.1mm"),corner_radius:D.optional(),is_filled:p.boolean().optional(),has_stroke:p.boolean().optional(),is_stroke_dashed:p.boolean().optional(),color:p.string().optional()}).describe("Defines a fabrication note rectangle on the PCB");ft(!0);xj=p.object({type:p.literal("pcb_fabrication_note_dimension"),pcb_fabrication_note_dimension_id:Nt("pcb_fabrication_note_dimension"),pcb_component_id:p.string(),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),layer:Ks,from:Zt,to:Zt,text:p.string().optional(),text_ccw_rotation:p.number().optional(),offset:D.optional(),offset_distance:D.optional(),offset_direction:p.object({x:p.number(),y:p.number()}).optional(),font:p.literal("tscircuit2024").default("tscircuit2024"),font_size:D.default("1mm"),color:p.string().optional(),arrow_size:D.default("1mm")}).describe("Defines a measurement annotation within PCB fabrication notes");ft(!0);bj=p.object({type:p.literal("pcb_note_text"),pcb_note_text_id:Nt("pcb_note_text"),pcb_component_id:p.string().optional(),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),name:p.string().optional(),font:p.literal("tscircuit2024").default("tscircuit2024"),font_size:Y.default("1mm"),text:p.string().optional(),anchor_position:Zt.default({x:0,y:0}),anchor_alignment:p.enum(["center","top_left","top_right","bottom_left","bottom_right"]).default("center"),color:p.string().optional()}).describe("Defines a documentation note in text on the PCB");ft(!0);vj=p.object({type:p.literal("pcb_note_rect"),pcb_note_rect_id:Nt("pcb_note_rect"),pcb_component_id:p.string().optional(),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),name:p.string().optional(),text:p.string().optional(),center:Zt,width:D,height:D,stroke_width:D.default("0.1mm"),corner_radius:D.optional(),is_filled:p.boolean().optional(),has_stroke:p.boolean().optional(),is_stroke_dashed:p.boolean().optional(),color:p.string().optional()}).describe("Defines a rectangular documentation note on the PCB");ft(!0);wj=p.object({type:p.literal("pcb_note_path"),pcb_note_path_id:Nt("pcb_note_path"),pcb_component_id:p.string().optional(),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),name:p.string().optional(),text:p.string().optional(),route:p.array(Zt),stroke_width:D.default("0.1mm"),color:p.string().optional()}).describe("Defines a polyline documentation note on the PCB");ft(!0);Sj=p.object({type:p.literal("pcb_note_line"),pcb_note_line_id:Nt("pcb_note_line"),pcb_component_id:p.string().optional(),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),name:p.string().optional(),text:p.string().optional(),x1:Y,y1:Y,x2:Y,y2:Y,stroke_width:Y.default("0.1mm"),color:p.string().optional(),is_dashed:p.boolean().optional()}).describe("Defines a straight documentation note line on the PCB");ft(!0);Pj=p.object({type:p.literal("pcb_note_dimension"),pcb_note_dimension_id:Nt("pcb_note_dimension"),pcb_component_id:p.string().optional(),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),name:p.string().optional(),from:Zt,to:Zt,text:p.string().optional(),text_ccw_rotation:p.number().optional(),offset_distance:D.optional(),offset_direction:p.object({x:p.number(),y:p.number()}).optional(),font:p.literal("tscircuit2024").default("tscircuit2024"),font_size:D.default("1mm"),color:p.string().optional(),arrow_size:D.default("1mm")}).describe("Defines a measurement annotation within PCB documentation notes");ft(!0);kj=p.object({type:p.literal("pcb_footprint_overlap_error"),pcb_error_id:Nt("pcb_error"),error_type:p.literal("pcb_footprint_overlap_error").default("pcb_footprint_overlap_error"),message:p.string(),pcb_smtpad_ids:p.array(p.string()).optional(),pcb_plated_hole_ids:p.array(p.string()).optional(),pcb_hole_ids:p.array(p.string()).optional(),pcb_keepout_ids:p.array(p.string()).optional()}).describe("Error emitted when a pcb footprint overlaps with another element");ft(!0);Tj=p.object({type:p.literal("pcb_keepout"),shape:p.literal("rect"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),center:Zt,width:Y,height:Y,pcb_keepout_id:p.string(),layers:p.array(p.string()),description:p.string().optional()}).or(p.object({type:p.literal("pcb_keepout"),shape:p.literal("circle"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),center:Zt,radius:Y,pcb_keepout_id:p.string(),layers:p.array(p.string()),description:p.string().optional()}));ft(!0);Gx=p.object({type:p.literal("pcb_cutout"),pcb_cutout_id:Nt("pcb_cutout"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),pcb_board_id:p.string().optional(),pcb_panel_id:p.string().optional()}),Mj=Gx.extend({shape:p.literal("rect"),center:Zt,width:D,height:D,rotation:He.optional(),corner_radius:D.optional()});ft(!0);Ej=Gx.extend({shape:p.literal("circle"),center:Zt,radius:D});ft(!0);Cj=Gx.extend({shape:p.literal("polygon"),points:p.array(Zt)});ft(!0);Ij=Gx.extend({shape:p.literal("path"),route:p.array(Zt),slot_width:D,slot_length:D.optional(),space_between_slots:D.optional(),slot_corner_radius:D.optional()});ft(!0);Nj=p.discriminatedUnion("shape",[Mj,Ej,Cj,Ij]).describe("Defines a cutout on the PCB, removing board material.");ft(!0);Aj=p.object({type:p.literal("pcb_missing_footprint_error"),pcb_missing_footprint_error_id:Nt("pcb_missing_footprint_error"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),error_type:p.literal("pcb_missing_footprint_error").default("pcb_missing_footprint_error"),source_component_id:p.string(),message:p.string()}).describe("Defines a missing footprint error on the PCB");ft(!0);Am=p.object({type:p.literal("external_footprint_load_error"),external_footprint_load_error_id:Nt("external_footprint_load_error"),pcb_component_id:p.string(),source_component_id:p.string(),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),footprinter_string:p.string().optional(),error_type:p.literal("external_footprint_load_error").default("external_footprint_load_error"),message:p.string()}).describe("Defines an error when an external footprint fails to load");ft(!0);Hx=p.object({type:p.literal("circuit_json_footprint_load_error"),circuit_json_footprint_load_error_id:Nt("circuit_json_footprint_load_error"),pcb_component_id:p.string(),source_component_id:p.string(),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),error_type:p.literal("circuit_json_footprint_load_error").default("circuit_json_footprint_load_error"),message:p.string(),circuit_json:p.array(p.any()).optional()}).describe("Defines an error when a circuit JSON footprint fails to load");ft(!0);Rj=p.object({type:p.literal("pcb_group"),pcb_group_id:Nt("pcb_group"),source_group_id:p.string(),is_subcircuit:p.boolean().optional(),subcircuit_id:p.string().optional(),width:D.optional(),height:D.optional(),center:Zt,outline:p.array(Zt).optional(),anchor_position:Zt.optional(),anchor_alignment:p.enum(["center","top_left","top_right","bottom_left","bottom_right"]).optional(),pcb_component_ids:p.array(p.string()),child_layout_mode:p.enum(["packed","none"]).optional(),name:p.string().optional(),description:p.string().optional(),layout_mode:p.string().optional(),autorouter_configuration:p.object({trace_clearance:D}).optional(),autorouter_used_string:p.string().optional()}).describe("Defines a group of components on the PCB");ft(!0);Oj=p.object({type:p.literal("pcb_autorouting_error"),pcb_error_id:Nt("pcb_autorouting_error"),error_type:p.literal("pcb_autorouting_error").default("pcb_autorouting_error"),message:p.string(),subcircuit_id:p.string().optional()}).describe("The autorouting has failed to route a portion of the board");ft(!0);Wx=p.object({type:p.literal("pcb_manual_edit_conflict_warning"),pcb_manual_edit_conflict_warning_id:Nt("pcb_manual_edit_conflict_warning"),warning_type:p.literal("pcb_manual_edit_conflict_warning").default("pcb_manual_edit_conflict_warning"),message:p.string(),pcb_component_id:p.string(),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),source_component_id:p.string()}).describe("Warning emitted when a component has both manual placement and explicit pcbX/pcbY coordinates");ft(!0);Lj=p.object({type:p.literal("pcb_breakout_point"),pcb_breakout_point_id:Nt("pcb_breakout_point"),pcb_group_id:p.string(),subcircuit_id:p.string().optional(),source_trace_id:p.string().optional(),source_port_id:p.string().optional(),source_net_id:p.string().optional(),x:Y,y:Y}).describe("Defines a routing target within a pcb_group for a source_trace or source_net");ft(!0);Fj=p.object({type:p.literal("pcb_ground_plane"),pcb_ground_plane_id:Nt("pcb_ground_plane"),source_pcb_ground_plane_id:p.string(),source_net_id:p.string(),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional()}).describe("Defines a ground plane on the PCB");ft(!0);zj=p.object({type:p.literal("pcb_ground_plane_region"),pcb_ground_plane_region_id:Nt("pcb_ground_plane_region"),pcb_ground_plane_id:p.string(),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),layer:pe,points:p.array(Zt)}).describe("Defines a polygon region of a ground plane");ft(!0);$j=p.object({type:p.literal("pcb_thermal_spoke"),pcb_thermal_spoke_id:Nt("pcb_thermal_spoke"),pcb_ground_plane_id:p.string(),shape:p.string(),spoke_count:p.number(),spoke_thickness:Y,spoke_inner_diameter:Y,spoke_outer_diameter:Y,pcb_plated_hole_id:p.string().optional(),subcircuit_id:p.string().optional()}).describe("Pattern for connecting a ground plane to a plated hole");ft(!0);fM=p.object({type:p.literal("pcb_copper_pour"),pcb_copper_pour_id:Nt("pcb_copper_pour"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),layer:pe,source_net_id:p.string().optional(),covered_with_solder_mask:p.boolean().optional().default(!0)}),Dj=fM.extend({shape:p.literal("rect"),center:Zt,width:D,height:D,rotation:He.optional()});ft(!0);jj=fM.extend({shape:p.literal("brep"),brep_shape:OD});ft(!0);Bj=fM.extend({shape:p.literal("polygon"),points:p.array(Zt)});ft(!0);Yj=p.discriminatedUnion("shape",[Dj,jj,Bj]).describe("Defines a copper pour on the PCB.");ft(!0);Xj=p.object({type:p.literal("pcb_component_outside_board_error"),pcb_component_outside_board_error_id:Nt("pcb_component_outside_board_error"),error_type:p.literal("pcb_component_outside_board_error").default("pcb_component_outside_board_error"),message:p.string(),pcb_component_id:p.string(),pcb_board_id:p.string(),component_center:Zt,component_bounds:p.object({min_x:p.number(),max_x:p.number(),min_y:p.number(),max_y:p.number()}),subcircuit_id:p.string().optional(),source_component_id:p.string().optional()}).describe("Error emitted when a PCB component is placed outside the board boundaries");ft(!0);Rm=p.object({type:p.literal("pcb_component_invalid_layer_error"),pcb_component_invalid_layer_error_id:Nt("pcb_component_invalid_layer_error"),error_type:p.literal("pcb_component_invalid_layer_error").default("pcb_component_invalid_layer_error"),message:p.string(),pcb_component_id:p.string().optional(),source_component_id:p.string(),layer:pe,subcircuit_id:p.string().optional()}).describe("Error emitted when a component is placed on an invalid layer (components can only be on 'top' or 'bottom' layers)");ft(!0);Uj=p.object({type:p.literal("pcb_via_clearance_error"),pcb_error_id:Nt("pcb_error"),error_type:p.literal("pcb_via_clearance_error").default("pcb_via_clearance_error"),message:p.string(),pcb_via_ids:p.array(p.string()).min(2),minimum_clearance:Y.optional(),actual_clearance:Y.optional(),pcb_center:p.object({x:p.number().optional(),y:p.number().optional()}).optional(),subcircuit_id:p.string().optional()}).describe("Error emitted when vias are closer than the allowed clearance");ft(!0);Vj=p.object({type:p.literal("pcb_courtyard_rect"),pcb_courtyard_rect_id:Nt("pcb_courtyard_rect"),pcb_component_id:p.string(),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),center:Zt,width:D,height:D,layer:Ks,color:p.string().optional()}).describe("Defines a courtyard rectangle on the PCB");ft(!0);Gj=p.object({type:p.literal("pcb_courtyard_outline"),pcb_courtyard_outline_id:Nt("pcb_courtyard_outline"),pcb_component_id:p.string(),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),layer:Ks,outline:p.array(Zt).min(2),stroke_width:D.default("0.1mm"),is_closed:p.boolean().optional(),is_stroke_dashed:p.boolean().optional(),color:p.string().optional()}).describe("Defines a courtyard outline on the PCB");ft(!0);Hj=p.object({type:p.literal("pcb_courtyard_polygon"),pcb_courtyard_polygon_id:Nt("pcb_courtyard_polygon"),pcb_component_id:p.string(),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),layer:Ks,points:p.array(Zt).min(3),color:p.string().optional()}).describe("Defines a courtyard polygon on the PCB");ft(!0);Wj=p.object({type:p.literal("cad_component"),cad_component_id:p.string(),pcb_component_id:p.string(),source_component_id:p.string(),position:Fh,rotation:Fh.optional(),size:Fh.optional(),layer:pe.optional(),subcircuit_id:p.string().optional(),footprinter_string:p.string().optional(),model_obj_url:p.string().optional(),model_stl_url:p.string().optional(),model_3mf_url:p.string().optional(),model_gltf_url:p.string().optional(),model_glb_url:p.string().optional(),model_step_url:p.string().optional(),model_wrl_url:p.string().optional(),model_unit_to_mm_scale_factor:p.number().optional(),model_jscad:p.any().optional()}).describe("Defines a component on the PCB");ft(!0);qj=p.enum(["sinewave","square","triangle","sawtooth"]),fft=p.union([p.string(),p.number()]).transform(n=>typeof n=="string"?n.endsWith("%")?parseFloat(n.slice(0,-1))/100:parseFloat(n):n).pipe(p.number().min(0,"Duty cycle must be non-negative").max(1,"Duty cycle cannot be greater than 100%")),Zj=p.object({type:p.literal("simulation_voltage_source"),simulation_voltage_source_id:Nt("simulation_voltage_source"),is_dc_source:p.literal(!0).optional().default(!0),positive_source_port_id:p.string().optional(),negative_source_port_id:p.string().optional(),positive_source_net_id:p.string().optional(),negative_source_net_id:p.string().optional(),voltage:Si}).describe("Defines a DC voltage source for simulation"),Kj=p.object({type:p.literal("simulation_voltage_source"),simulation_voltage_source_id:Nt("simulation_voltage_source"),is_dc_source:p.literal(!1),terminal1_source_port_id:p.string().optional(),terminal2_source_port_id:p.string().optional(),terminal1_source_net_id:p.string().optional(),terminal2_source_net_id:p.string().optional(),voltage:Si.optional(),frequency:ur.optional(),peak_to_peak_voltage:Si.optional(),wave_shape:qj.optional(),phase:He.optional(),duty_cycle:fft.optional()}).describe("Defines an AC voltage source for simulation"),Jj=p.union([Zj,Kj]).describe("Defines a voltage source for simulation");ft(!0);ft(!0);ft(!0);Qj=p.union([p.literal("spice_dc_sweep"),p.literal("spice_dc_operating_point"),p.literal("spice_transient_analysis"),p.literal("spice_ac_analysis")]),tB=p.object({type:p.literal("simulation_experiment"),simulation_experiment_id:Nt("simulation_experiment"),name:p.string(),experiment_type:Qj,time_per_step:ng.optional(),start_time_ms:lr.optional(),end_time_ms:lr.optional()}).describe("Defines a simulation experiment configuration");ft(!0);eB=p.object({type:p.literal("simulation_transient_voltage_graph"),simulation_transient_voltage_graph_id:Nt("simulation_transient_voltage_graph"),simulation_experiment_id:p.string(),timestamps_ms:p.array(p.number()).optional(),voltage_levels:p.array(p.number()),source_component_id:p.string().optional(),subcircuit_connectivity_map_key:p.string().optional(),time_per_step:ng,start_time_ms:lr,end_time_ms:lr,name:p.string().optional(),color:p.string().optional()}).describe("Stores voltage measurements over time for a simulation");ft(!0);nB=p.object({type:p.literal("simulation_switch"),simulation_switch_id:Nt("simulation_switch"),source_component_id:p.string().optional(),closes_at:lr.optional(),opens_at:lr.optional(),starts_closed:p.boolean().optional(),switching_frequency:ur.optional()}).describe("Defines a switch for simulation timing control");ft(!0);iB=p.object({type:p.literal("simulation_voltage_probe"),simulation_voltage_probe_id:Nt("simulation_voltage_probe"),source_component_id:p.string().optional(),name:p.string().optional(),source_port_id:p.string().optional(),source_net_id:p.string().optional(),subcircuit_id:p.string().optional(),color:p.string().optional()}).describe("Defines a voltage probe for simulation, connected to a port or a net").refine(n=>!!n.source_port_id!=!!n.source_net_id,{message:"Exactly one of source_port_id or source_net_id must be provided to simulation_voltage_probe"});ft(!0);rB=p.object({type:p.literal("simulation_unknown_experiment_error"),simulation_unknown_experiment_error_id:Nt("simulation_unknown_experiment_error"),error_type:p.literal("simulation_unknown_experiment_error").default("simulation_unknown_experiment_error"),message:p.string(),simulation_experiment_id:p.string().optional(),subcircuit_id:p.string().optional()}).describe("An unknown error occurred during the simulation experiment.");ft(!0);sB=p.union([tD,Q$,J$,nD,eD,J3,q3,Bx,K3,Z3,Q3,tM,eM,rM,sM,oM,uM,aM,cM,lM,iM,nM,rD,sD,iD,pM,hM,dM,oD,Yx,FD,XD,Aj,Am,Hx,Wx,UD,Tj,VD,ij,qD,JD,rj,HD,WD,sj,oj,Rj,cj,lj,uj,pj,hj,dj,fj,mj,QD,tj,aj,ej,nj,Uj,yj,_j,gj,xj,bj,vj,wj,Sj,Pj,Oj,kj,Lj,Nj,Fj,zj,$j,Yj,Xj,Rm,Vj,Gj,Hj,aD,xD,fD,mD,_D,yD,dD,bD,gD,cD,wD,SD,vD,MD,ED,Ux,CD,AD,ID,ND,Wj,Jj,tB,eB,nB,iB,rB]),$h=sB;ft(!0);zh(!0)});var IB=ue((jqt,CB)=>{"use strict";var Lm=1e3,Fm=Lm*60,zm=Fm*60,Yh=zm*24,Rgt=Yh*7,Ogt=Yh*365.25;CB.exports=function(n,e){e=e||{};var t=typeof n;if(t==="string"&&n.length>0)return Lgt(n);if(t==="number"&&isFinite(n))return e.long?zgt(n):Fgt(n);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(n))};function Lgt(n){if(n=String(n),!(n.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(n);if(e){var t=parseFloat(e[1]),i=(e[2]||"ms").toLowerCase();switch(i){case"years":case"year":case"yrs":case"yr":case"y":return t*Ogt;case"weeks":case"week":case"w":return t*Rgt;case"days":case"day":case"d":return t*Yh;case"hours":case"hour":case"hrs":case"hr":case"h":return t*zm;case"minutes":case"minute":case"mins":case"min":case"m":return t*Fm;case"seconds":case"second":case"secs":case"sec":case"s":return t*Lm;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return t;default:return}}}}function Fgt(n){var e=Math.abs(n);return e>=Yh?Math.round(n/Yh)+"d":e>=zm?Math.round(n/zm)+"h":e>=Fm?Math.round(n/Fm)+"m":e>=Lm?Math.round(n/Lm)+"s":n+"ms"}function zgt(n){var e=Math.abs(n);return e>=Yh?rb(n,e,Yh,"day"):e>=zm?rb(n,e,zm,"hour"):e>=Fm?rb(n,e,Fm,"minute"):e>=Lm?rb(n,e,Lm,"second"):n+" ms"}function rb(n,e,t,i){var r=e>=t*1.5;return Math.round(n/t)+" "+i+(r?"s":"")}});var AB=ue((Bqt,NB)=>{"use strict";function $gt(n){t.debug=t,t.default=t,t.coerce=c,t.disable=o,t.enable=r,t.enabled=a,t.humanize=IB(),t.destroy=l,Object.keys(n).forEach(u=>{t[u]=n[u]}),t.names=[],t.skips=[],t.formatters={};function e(u){let h=0;for(let f=0;f<u.length;f++)h=(h<<5)-h+u.charCodeAt(f),h|=0;return t.colors[Math.abs(h)%t.colors.length]}t.selectColor=e;function t(u){let h,f=null,_,g;function x(...v){if(!x.enabled)return;let P=x,S=Number(new Date),T=S-(h||S);P.diff=T,P.prev=h,P.curr=S,h=S,v[0]=t.coerce(v[0]),typeof v[0]!="string"&&v.unshift("%O");let k=0;v[0]=v[0].replace(/%([a-zA-Z%])/g,(M,I)=>{if(M==="%%")return"%";k++;let E=t.formatters[I];if(typeof E=="function"){let A=v[k];M=E.call(P,A),v.splice(k,1),k--}return M}),t.formatArgs.call(P,v),(P.log||t.log).apply(P,v)}return x.namespace=u,x.useColors=t.useColors(),x.color=t.selectColor(u),x.extend=i,x.destroy=t.destroy,Object.defineProperty(x,"enabled",{enumerable:!0,configurable:!1,get:()=>f!==null?f:(_!==t.namespaces&&(_=t.namespaces,g=t.enabled(u)),g),set:v=>{f=v}}),typeof t.init=="function"&&t.init(x),x}function i(u,h){let f=t(this.namespace+(typeof h>"u"?":":h)+u);return f.log=this.log,f}function r(u){t.save(u),t.namespaces=u,t.names=[],t.skips=[];let h=(typeof u=="string"?u:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let f of h)f[0]==="-"?t.skips.push(f.slice(1)):t.names.push(f)}function s(u,h){let f=0,_=0,g=-1,x=0;for(;f<u.length;)if(_<h.length&&(h[_]===u[f]||h[_]==="*"))h[_]==="*"?(g=_,x=f,_++):(f++,_++);else if(g!==-1)_=g+1,x++,f=x;else return!1;for(;_<h.length&&h[_]==="*";)_++;return _===h.length}function o(){let u=[...t.names,...t.skips.map(h=>"-"+h)].join(",");return t.enable(""),u}function a(u){for(let h of t.skips)if(s(u,h))return!1;for(let h of t.names)if(s(u,h))return!0;return!1}function c(u){return u instanceof Error?u.stack||u.message:u}function l(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return t.enable(t.load()),t}NB.exports=$gt});var En=ue((zr,sb)=>{"use strict";zr.formatArgs=jgt;zr.save=Bgt;zr.load=Ygt;zr.useColors=Dgt;zr.storage=Xgt();zr.destroy=(()=>{let n=!1;return()=>{n||(n=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();zr.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function Dgt(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let n;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(n=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(n[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function jgt(n){if(n[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+n[0]+(this.useColors?"%c ":" ")+"+"+sb.exports.humanize(this.diff),!this.useColors)return;let e="color: "+this.color;n.splice(1,0,e,"color: inherit");let t=0,i=0;n[0].replace(/%[a-zA-Z%]/g,r=>{r!=="%%"&&(t++,r==="%c"&&(i=t))}),n.splice(i,0,e)}zr.log=console.debug||console.log||(()=>{});function Bgt(n){try{n?zr.storage.setItem("debug",n):zr.storage.removeItem("debug")}catch{}}function Ygt(){let n;try{n=zr.storage.getItem("debug")||zr.storage.getItem("DEBUG")}catch{}return!n&&typeof process<"u"&&"env"in process&&(n=process.env.DEBUG),n}function Xgt(){try{return localStorage}catch{}}sb.exports=AB()(zr);var{formatters:Ugt}=sb.exports;Ugt.j=function(n){try{return JSON.stringify(n)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var YB=ue(Un=>{"use strict";function PM(n,e){var t=n.length;n.push(e);t:for(;0<t;){var i=t-1>>>1,r=n[i];if(0<ob(r,e))n[i]=e,n[t]=r,t=i;else break t}}function Io(n){return n.length===0?null:n[0]}function cb(n){if(n.length===0)return null;var e=n[0],t=n.pop();if(t!==e){n[0]=t;t:for(var i=0,r=n.length,s=r>>>1;i<s;){var o=2*(i+1)-1,a=n[o],c=o+1,l=n[c];if(0>ob(a,t))c<r&&0>ob(l,a)?(n[i]=l,n[c]=t,i=c):(n[i]=a,n[o]=t,i=o);else if(c<r&&0>ob(l,t))n[i]=l,n[c]=t,i=c;else break t}}return e}function ob(n,e){var t=n.sortIndex-e.sortIndex;return t!==0?t:n.id-e.id}Un.unstable_now=void 0;typeof performance=="object"&&typeof performance.now=="function"?(RB=performance,Un.unstable_now=function(){return RB.now()}):(vM=Date,OB=vM.now(),Un.unstable_now=function(){return vM.now()-OB});var RB,vM,OB,Pa=[],$c=[],Vgt=1,ks=null,pr=3,kM=!1,sg=!1,og=!1,TM=!1,zB=typeof setTimeout=="function"?setTimeout:null,$B=typeof clearTimeout=="function"?clearTimeout:null,LB=typeof setImmediate<"u"?setImmediate:null;function ab(n){for(var e=Io($c);e!==null;){if(e.callback===null)cb($c);else if(e.startTime<=n)cb($c),e.sortIndex=e.expirationTime,PM(Pa,e);else break;e=Io($c)}}function MM(n){if(og=!1,ab(n),!sg)if(Io(Pa)!==null)sg=!0,Dm||(Dm=!0,$m());else{var e=Io($c);e!==null&&EM(MM,e.startTime-n)}}var Dm=!1,ag=-1,DB=5,jB=-1;function BB(){return TM?!0:!(Un.unstable_now()-jB<DB)}function wM(){if(TM=!1,Dm){var n=Un.unstable_now();jB=n;var e=!0;try{t:{sg=!1,og&&(og=!1,$B(ag),ag=-1),kM=!0;var t=pr;try{e:{for(ab(n),ks=Io(Pa);ks!==null&&!(ks.expirationTime>n&&BB());){var i=ks.callback;if(typeof i=="function"){ks.callback=null,pr=ks.priorityLevel;var r=i(ks.expirationTime<=n);if(n=Un.unstable_now(),typeof r=="function"){ks.callback=r,ab(n),e=!0;break e}ks===Io(Pa)&&cb(Pa),ab(n)}else cb(Pa);ks=Io(Pa)}if(ks!==null)e=!0;else{var s=Io($c);s!==null&&EM(MM,s.startTime-n),e=!1}}break t}finally{ks=null,pr=t,kM=!1}e=void 0}}finally{e?$m():Dm=!1}}}var $m;typeof LB=="function"?$m=function(){LB(wM)}:typeof MessageChannel<"u"?(SM=new MessageChannel,FB=SM.port2,SM.port1.onmessage=wM,$m=function(){FB.postMessage(null)}):$m=function(){zB(wM,0)};var SM,FB;function EM(n,e){ag=zB(function(){n(Un.unstable_now())},e)}Un.unstable_IdlePriority=5;Un.unstable_ImmediatePriority=1;Un.unstable_LowPriority=4;Un.unstable_NormalPriority=3;Un.unstable_Profiling=null;Un.unstable_UserBlockingPriority=2;Un.unstable_cancelCallback=function(n){n.callback=null};Un.unstable_forceFrameRate=function(n){0>n||125<n?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):DB=0<n?Math.floor(1e3/n):5};Un.unstable_getCurrentPriorityLevel=function(){return pr};Un.unstable_next=function(n){switch(pr){case 1:case 2:case 3:var e=3;break;default:e=pr}var t=pr;pr=e;try{return n()}finally{pr=t}};Un.unstable_requestPaint=function(){TM=!0};Un.unstable_runWithPriority=function(n,e){switch(n){case 1:case 2:case 3:case 4:case 5:break;default:n=3}var t=pr;pr=n;try{return e()}finally{pr=t}};Un.unstable_scheduleCallback=function(n,e,t){var i=Un.unstable_now();switch(typeof t=="object"&&t!==null?(t=t.delay,t=typeof t=="number"&&0<t?i+t:i):t=i,n){case 1:var r=-1;break;case 2:r=250;break;case 5:r=1073741823;break;case 4:r=1e4;break;default:r=5e3}return r=t+r,n={id:Vgt++,callback:e,priorityLevel:n,startTime:t,expirationTime:r,sortIndex:-1},t>i?(n.sortIndex=t,PM($c,n),Io(Pa)===null&&n===Io($c)&&(og?($B(ag),ag=-1):og=!0,EM(MM,t-i))):(n.sortIndex=r,PM(Pa,n),sg||kM||(sg=!0,Dm||(Dm=!0,$m()))),n};Un.unstable_shouldYield=BB;Un.unstable_wrapCallback=function(n){var e=pr;return function(){var t=pr;pr=e;try{return n.apply(this,arguments)}finally{pr=t}}}});var UB=ue((Xqt,XB)=>{"use strict";XB.exports=YB()});var VB=ue((Uqt,cg)=>{"use strict";cg.exports=function(n){function e(m,y,w,N){return new rut(m,y,w,N)}function t(){}function i(m){var y="https://react.dev/errors/"+m;if(1<arguments.length){y+="?args[]="+encodeURIComponent(arguments[1]);for(var w=2;w<arguments.length;w++)y+="&args[]="+encodeURIComponent(arguments[w])}return"Minified React error #"+m+"; visit "+y+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function r(m){var y=m,w=m;if(m.alternate)for(;y.return;)y=y.return;else{m=y;do y=m,(y.flags&4098)!==0&&(w=y.return),m=y.return;while(m)}return y.tag===3?w:null}function s(m){if(r(m)!==m)throw Error(i(188))}function o(m){var y=m.alternate;if(!y){if(y=r(m),y===null)throw Error(i(188));return y!==m?null:m}for(var w=m,N=y;;){var O=w.return;if(O===null)break;var $=O.alternate;if($===null){if(N=O.return,N!==null){w=N;continue}break}if(O.child===$.child){for($=O.child;$;){if($===w)return s(O),m;if($===N)return s(O),y;$=$.sibling}throw Error(i(188))}if(w.return!==N.return)w=O,N=$;else{for(var K=!1,ct=O.child;ct;){if(ct===w){K=!0,w=O,N=$;break}if(ct===N){K=!0,N=O,w=$;break}ct=ct.sibling}if(!K){for(ct=$.child;ct;){if(ct===w){K=!0,w=$,N=O;break}if(ct===N){K=!0,N=$,w=O;break}ct=ct.sibling}if(!K)throw Error(i(189))}}if(w.alternate!==N)throw Error(i(190))}if(w.tag!==3)throw Error(i(188));return w.stateNode.current===w?m:y}function a(m){var y=m.tag;if(y===5||y===26||y===27||y===6)return m;for(m=m.child;m!==null;){if(y=a(m),y!==null)return y;m=m.sibling}return null}function c(m){var y=m.tag;if(y===5||y===26||y===27||y===6)return m;for(m=m.child;m!==null;){if(m.tag!==4&&(y=c(m),y!==null))return y;m=m.sibling}return null}function l(m){return m===null||typeof m!="object"?null:(m=Mz&&m[Mz]||m["@@iterator"],typeof m=="function"?m:null)}function u(m){if(m==null)return null;if(typeof m=="function")return m.$$typeof===uut?null:m.displayName||m.name||null;if(typeof m=="string")return m;switch(m){case qf:return"Fragment";case JT:return"Profiler";case kz:return"StrictMode";case t3:return"Suspense";case e3:return"SuspenseList";case i3:return"Activity"}if(typeof m=="object")switch(m.$$typeof){case Wf:return"Portal";case bc:return(m.displayName||"Context")+".Provider";case Tz:return(m._context.displayName||"Context")+".Consumer";case QT:var y=m.render;return m=m.displayName,m||(m=y.displayName||y.name||"",m=m!==""?"ForwardRef("+m+")":"ForwardRef"),m;case n3:return y=m.displayName||null,y!==null?y:u(m.type)||"Memo";case vc:y=m._payload,m=m._init;try{return u(m(y))}catch{}}return null}function h(m){return{current:m}}function f(m){0>Jf||(m.current=c3[Jf],c3[Jf]=null,Jf--)}function _(m,y){Jf++,c3[Jf]=m.current,m.current=y}function g(m){return m>>>=0,m===0?32:31-(Mpt(m)/Ept|0)|0}function x(m){var y=m&42;if(y!==0)return y;switch(m&-m){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return m&4194048;case 4194304:case 8388608:case 16777216:case 33554432:return m&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return m}}function v(m,y,w){var N=m.pendingLanes;if(N===0)return 0;var O=0,$=m.suspendedLanes,K=m.pingedLanes;m=m.warmLanes;var ct=N&134217727;return ct!==0?(N=ct&~$,N!==0?O=x(N):(K&=ct,K!==0?O=x(K):w||(w=ct&~m,w!==0&&(O=x(w))))):(ct=N&~$,ct!==0?O=x(ct):K!==0?O=x(K):w||(w=N&~m,w!==0&&(O=x(w)))),O===0?0:y!==0&&y!==O&&(y&$)===0&&($=O&-O,w=y&-y,$>=w||$===32&&(w&4194048)!==0)?y:O}function P(m,y){return(m.pendingLanes&~(m.suspendedLanes&~m.pingedLanes)&y)===0}function S(m,y){switch(m){case 1:case 2:case 4:case 8:case 64:return y+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return y+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function T(){var m=rx;return rx<<=1,(rx&4194048)===0&&(rx=256),m}function k(){var m=sx;return sx<<=1,(sx&62914560)===0&&(sx=4194304),m}function C(m){for(var y=[],w=0;31>w;w++)y.push(m);return y}function M(m,y){m.pendingLanes|=y,y!==268435456&&(m.suspendedLanes=0,m.pingedLanes=0,m.warmLanes=0)}function I(m,y,w,N,O,$){var K=m.pendingLanes;m.pendingLanes=w,m.suspendedLanes=0,m.pingedLanes=0,m.warmLanes=0,m.expiredLanes&=w,m.entangledLanes&=w,m.errorRecoveryDisabledLanes&=w,m.shellSuspendCounter=0;var ct=m.entanglements,xt=m.expirationTimes,It=m.hiddenUpdates;for(w=K&~w;0<w;){var $t=31-ts(w),Xt=1<<$t;ct[$t]=0,xt[$t]=-1;var Wt=It[$t];if(Wt!==null)for(It[$t]=null,$t=0;$t<Wt.length;$t++){var Le=Wt[$t];Le!==null&&(Le.lane&=-536870913)}w&=~Xt}N!==0&&E(m,N,0),$!==0&&O===0&&m.tag!==0&&(m.suspendedLanes|=$&~(K&~y))}function E(m,y,w){m.pendingLanes|=y,m.suspendedLanes&=~y;var N=31-ts(y);m.entangledLanes|=y,m.entanglements[N]=m.entanglements[N]|1073741824|w&4194090}function A(m,y){var w=m.entangledLanes|=y;for(m=m.entanglements;w;){var N=31-ts(w),O=1<<N;O&y|m[N]&y&&(m[N]|=y),w&=~O}}function R(m){switch(m){case 2:m=1;break;case 8:m=4;break;case 32:m=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:m=128;break;case 268435456:m=134217728;break;default:m=0}return m}function j(m){return m&=-m,2<m?8<m?(m&134217727)!==0?32:268435456:8:2}function B(m){if(typeof Rpt=="function"&&Opt(m),es&&typeof es.setStrictMode=="function")try{es.setStrictMode(jy,m)}catch{}}function V(m){if(p3===void 0)try{throw Error()}catch(w){var y=w.stack.trim().match(/\n( *(at )?)/);p3=y&&y[1]||"",Jz=-1<w.stack.indexOf(`
|
|
1
|
+
var Upt=Object.create;var kx=Object.defineProperty;var Vpt=Object.getOwnPropertyDescriptor;var Gpt=Object.getOwnPropertyNames;var Hpt=Object.getPrototypeOf,Wpt=Object.prototype.hasOwnProperty;var qpt=(n,e,t)=>e in n?kx(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var Ky=(n=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(n,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):n)(function(n){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+n+'" is not supported')});var qt=(n,e)=>()=>(n&&(e=n(n=0)),e);var ue=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports),gh=(n,e)=>{for(var t in e)kx(n,t,{get:e[t],enumerable:!0})},Zpt=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Gpt(e))!Wpt.call(n,r)&&r!==t&&kx(n,r,{get:()=>e[r],enumerable:!(i=Vpt(e,r))||i.enumerable});return n};var Gt=(n,e,t)=>(t=n!=null?Upt(Hpt(n)):{},Zpt(e||!n||!n.__esModule?kx(t,"default",{value:n,enumerable:!0}):t,n));var d=(n,e,t)=>qpt(n,typeof e!="symbol"?e+"":e,t);var k$=ue(Ie=>{"use strict";var O3=Symbol.for("react.transitional.element"),pht=Symbol.for("react.portal"),hht=Symbol.for("react.fragment"),dht=Symbol.for("react.strict_mode"),fht=Symbol.for("react.profiler"),mht=Symbol.for("react.consumer"),_ht=Symbol.for("react.context"),yht=Symbol.for("react.forward_ref"),ght=Symbol.for("react.suspense"),xht=Symbol.for("react.memo"),x$=Symbol.for("react.lazy"),bht=Symbol.for("react.activity"),m$=Symbol.iterator;function vht(n){return n===null||typeof n!="object"?null:(n=m$&&n[m$]||n["@@iterator"],typeof n=="function"?n:null)}var b$={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},v$=Object.assign,w$={};function bm(n,e,t){this.props=n,this.context=e,this.refs=w$,this.updater=t||b$}bm.prototype.isReactComponent={};bm.prototype.setState=function(n,e){if(typeof n!="object"&&typeof n!="function"&&n!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,n,e,"setState")};bm.prototype.forceUpdate=function(n){this.updater.enqueueForceUpdate(this,n,"forceUpdate")};function S$(){}S$.prototype=bm.prototype;function L3(n,e,t){this.props=n,this.context=e,this.refs=w$,this.updater=t||b$}var F3=L3.prototype=new S$;F3.constructor=L3;v$(F3,bm.prototype);F3.isPureReactComponent=!0;var _$=Array.isArray;function R3(){}var zn={H:null,A:null,T:null,S:null},P$=Object.prototype.hasOwnProperty;function z3(n,e,t){var i=t.ref;return{$$typeof:O3,type:n,key:e,ref:i!==void 0?i:null,props:t}}function wht(n,e){return z3(n.type,e,n.props)}function $3(n){return typeof n=="object"&&n!==null&&n.$$typeof===O3}function Sht(n){var e={"=":"=0",":":"=2"};return"$"+n.replace(/[=:]/g,function(t){return e[t]})}var y$=/\/+/g;function A3(n,e){return typeof n=="object"&&n!==null&&n.key!=null?Sht(""+n.key):e.toString(36)}function Pht(n){switch(n.status){case"fulfilled":return n.value;case"rejected":throw n.reason;default:switch(typeof n.status=="string"?n.then(R3,R3):(n.status="pending",n.then(function(e){n.status==="pending"&&(n.status="fulfilled",n.value=e)},function(e){n.status==="pending"&&(n.status="rejected",n.reason=e)})),n.status){case"fulfilled":return n.value;case"rejected":throw n.reason}}throw n}function xm(n,e,t,i,r){var s=typeof n;(s==="undefined"||s==="boolean")&&(n=null);var o=!1;if(n===null)o=!0;else switch(s){case"bigint":case"string":case"number":o=!0;break;case"object":switch(n.$$typeof){case O3:case pht:o=!0;break;case x$:return o=n._init,xm(o(n._payload),e,t,i,r)}}if(o)return r=r(n),o=i===""?"."+A3(n,0):i,_$(r)?(t="",o!=null&&(t=o.replace(y$,"$&/")+"/"),xm(r,e,t,"",function(l){return l})):r!=null&&($3(r)&&(r=wht(r,t+(r.key==null||n&&n.key===r.key?"":(""+r.key).replace(y$,"$&/")+"/")+o)),e.push(r)),1;o=0;var a=i===""?".":i+":";if(_$(n))for(var c=0;c<n.length;c++)i=n[c],s=a+A3(i,c),o+=xm(i,e,t,s,r);else if(c=vht(n),typeof c=="function")for(n=c.call(n),c=0;!(i=n.next()).done;)i=i.value,s=a+A3(i,c++),o+=xm(i,e,t,s,r);else if(s==="object"){if(typeof n.then=="function")return xm(Pht(n),e,t,i,r);throw e=String(n),Error("Objects are not valid as a React child (found: "+(e==="[object Object]"?"object with keys {"+Object.keys(n).join(", ")+"}":e)+"). If you meant to render a collection of children, use an array instead.")}return o}function Ax(n,e,t){if(n==null)return n;var i=[],r=0;return xm(n,i,"","",function(s){return e.call(t,s,r++)}),i}function kht(n){if(n._status===-1){var e=n._result;e=e(),e.then(function(t){(n._status===0||n._status===-1)&&(n._status=1,n._result=t)},function(t){(n._status===0||n._status===-1)&&(n._status=2,n._result=t)}),n._status===-1&&(n._status=0,n._result=e)}if(n._status===1)return n._result.default;throw n._result}var g$=typeof reportError=="function"?reportError:function(n){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var e=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof n=="object"&&n!==null&&typeof n.message=="string"?String(n.message):String(n),error:n});if(!window.dispatchEvent(e))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",n);return}console.error(n)},Tht={map:Ax,forEach:function(n,e,t){Ax(n,function(){e.apply(this,arguments)},t)},count:function(n){var e=0;return Ax(n,function(){e++}),e},toArray:function(n){return Ax(n,function(e){return e})||[]},only:function(n){if(!$3(n))throw Error("React.Children.only expected to receive a single React element child.");return n}};Ie.Activity=bht;Ie.Children=Tht;Ie.Component=bm;Ie.Fragment=hht;Ie.Profiler=fht;Ie.PureComponent=L3;Ie.StrictMode=dht;Ie.Suspense=ght;Ie.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=zn;Ie.__COMPILER_RUNTIME={__proto__:null,c:function(n){return zn.H.useMemoCache(n)}};Ie.cache=function(n){return function(){return n.apply(null,arguments)}};Ie.cacheSignal=function(){return null};Ie.cloneElement=function(n,e,t){if(n==null)throw Error("The argument must be a React element, but you passed "+n+".");var i=v$({},n.props),r=n.key;if(e!=null)for(s in e.key!==void 0&&(r=""+e.key),e)!P$.call(e,s)||s==="key"||s==="__self"||s==="__source"||s==="ref"&&e.ref===void 0||(i[s]=e[s]);var s=arguments.length-2;if(s===1)i.children=t;else if(1<s){for(var o=Array(s),a=0;a<s;a++)o[a]=arguments[a+2];i.children=o}return z3(n.type,r,i)};Ie.createContext=function(n){return n={$$typeof:_ht,_currentValue:n,_currentValue2:n,_threadCount:0,Provider:null,Consumer:null},n.Provider=n,n.Consumer={$$typeof:mht,_context:n},n};Ie.createElement=function(n,e,t){var i,r={},s=null;if(e!=null)for(i in e.key!==void 0&&(s=""+e.key),e)P$.call(e,i)&&i!=="key"&&i!=="__self"&&i!=="__source"&&(r[i]=e[i]);var o=arguments.length-2;if(o===1)r.children=t;else if(1<o){for(var a=Array(o),c=0;c<o;c++)a[c]=arguments[c+2];r.children=a}if(n&&n.defaultProps)for(i in o=n.defaultProps,o)r[i]===void 0&&(r[i]=o[i]);return z3(n,s,r)};Ie.createRef=function(){return{current:null}};Ie.forwardRef=function(n){return{$$typeof:yht,render:n}};Ie.isValidElement=$3;Ie.lazy=function(n){return{$$typeof:x$,_payload:{_status:-1,_result:n},_init:kht}};Ie.memo=function(n,e){return{$$typeof:xht,type:n,compare:e===void 0?null:e}};Ie.startTransition=function(n){var e=zn.T,t={};zn.T=t;try{var i=n(),r=zn.S;r!==null&&r(t,i),typeof i=="object"&&i!==null&&typeof i.then=="function"&&i.then(R3,g$)}catch(s){g$(s)}finally{e!==null&&t.types!==null&&(e.types=t.types),zn.T=e}};Ie.unstable_useCacheRefresh=function(){return zn.H.useCacheRefresh()};Ie.use=function(n){return zn.H.use(n)};Ie.useActionState=function(n,e,t){return zn.H.useActionState(n,e,t)};Ie.useCallback=function(n,e){return zn.H.useCallback(n,e)};Ie.useContext=function(n){return zn.H.useContext(n)};Ie.useDebugValue=function(){};Ie.useDeferredValue=function(n,e){return zn.H.useDeferredValue(n,e)};Ie.useEffect=function(n,e){return zn.H.useEffect(n,e)};Ie.useEffectEvent=function(n){return zn.H.useEffectEvent(n)};Ie.useId=function(){return zn.H.useId()};Ie.useImperativeHandle=function(n,e,t){return zn.H.useImperativeHandle(n,e,t)};Ie.useInsertionEffect=function(n,e){return zn.H.useInsertionEffect(n,e)};Ie.useLayoutEffect=function(n,e){return zn.H.useLayoutEffect(n,e)};Ie.useMemo=function(n,e){return zn.H.useMemo(n,e)};Ie.useOptimistic=function(n,e){return zn.H.useOptimistic(n,e)};Ie.useReducer=function(n,e,t){return zn.H.useReducer(n,e,t)};Ie.useRef=function(n){return zn.H.useRef(n)};Ie.useState=function(n){return zn.H.useState(n)};Ie.useSyncExternalStore=function(n,e,t){return zn.H.useSyncExternalStore(n,e,t)};Ie.useTransition=function(){return zn.H.useTransition()};Ie.version="19.2.0"});var Ws=ue((aXt,T$)=>{"use strict";T$.exports=k$()});var Ve,D3,Ht,Mo,Jy=qt(()=>{"use strict";(function(n){n.assertEqual=r=>{};function e(r){}n.assertIs=e;function t(r){throw new Error}n.assertNever=t,n.arrayToEnum=r=>{let s={};for(let o of r)s[o]=o;return s},n.getValidEnumValues=r=>{let s=n.objectKeys(r).filter(a=>typeof r[r[a]]!="number"),o={};for(let a of s)o[a]=r[a];return n.objectValues(o)},n.objectValues=r=>n.objectKeys(r).map(function(s){return r[s]}),n.objectKeys=typeof Object.keys=="function"?r=>Object.keys(r):r=>{let s=[];for(let o in r)Object.prototype.hasOwnProperty.call(r,o)&&s.push(o);return s},n.find=(r,s)=>{for(let o of r)if(s(o))return o},n.isInteger=typeof Number.isInteger=="function"?r=>Number.isInteger(r):r=>typeof r=="number"&&Number.isFinite(r)&&Math.floor(r)===r;function i(r,s=" | "){return r.map(o=>typeof o=="string"?`'${o}'`:o).join(s)}n.joinValues=i,n.jsonStringifyReplacer=(r,s)=>typeof s=="bigint"?s.toString():s})(Ve||(Ve={}));(function(n){n.mergeShapes=(e,t)=>({...e,...t})})(D3||(D3={}));Ht=Ve.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Mo=n=>{switch(typeof n){case"undefined":return Ht.undefined;case"string":return Ht.string;case"number":return Number.isNaN(n)?Ht.nan:Ht.number;case"boolean":return Ht.boolean;case"function":return Ht.function;case"bigint":return Ht.bigint;case"symbol":return Ht.symbol;case"object":return Array.isArray(n)?Ht.array:n===null?Ht.null:n.then&&typeof n.then=="function"&&n.catch&&typeof n.catch=="function"?Ht.promise:typeof Map<"u"&&n instanceof Map?Ht.map:typeof Set<"u"&&n instanceof Set?Ht.set:typeof Date<"u"&&n instanceof Date?Ht.date:Ht.object;default:return Ht.unknown}}});var At,Mht,Lr,Rx=qt(()=>{"use strict";Jy();At=Ve.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"]),Mht=n=>JSON.stringify(n,null,2).replace(/"([^"]+)":/g,"$1:"),Lr=class n extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=i=>{this.issues=[...this.issues,i]},this.addIssues=(i=[])=>{this.issues=[...this.issues,...i]};let t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name="ZodError",this.issues=e}format(e){let t=e||function(s){return s.message},i={_errors:[]},r=s=>{for(let o of s.issues)if(o.code==="invalid_union")o.unionErrors.map(r);else if(o.code==="invalid_return_type")r(o.returnTypeError);else if(o.code==="invalid_arguments")r(o.argumentsError);else if(o.path.length===0)i._errors.push(t(o));else{let a=i,c=0;for(;c<o.path.length;){let l=o.path[c];c===o.path.length-1?(a[l]=a[l]||{_errors:[]},a[l]._errors.push(t(o))):a[l]=a[l]||{_errors:[]},a=a[l],c++}}};return r(this),i}static assert(e){if(!(e instanceof n))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,Ve.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=t=>t.message){let t={},i=[];for(let r of this.issues)if(r.path.length>0){let s=r.path[0];t[s]=t[s]||[],t[s].push(e(r))}else i.push(e(r));return{formErrors:i,fieldErrors:t}}get formErrors(){return this.flatten()}};Lr.create=n=>new Lr(n)});var Eht,_a,j3=qt(()=>{"use strict";Rx();Jy();Eht=(n,e)=>{let t;switch(n.code){case At.invalid_type:n.received===Ht.undefined?t="Required":t=`Expected ${n.expected}, received ${n.received}`;break;case At.invalid_literal:t=`Invalid literal value, expected ${JSON.stringify(n.expected,Ve.jsonStringifyReplacer)}`;break;case At.unrecognized_keys:t=`Unrecognized key(s) in object: ${Ve.joinValues(n.keys,", ")}`;break;case At.invalid_union:t="Invalid input";break;case At.invalid_union_discriminator:t=`Invalid discriminator value. Expected ${Ve.joinValues(n.options)}`;break;case At.invalid_enum_value:t=`Invalid enum value. Expected ${Ve.joinValues(n.options)}, received '${n.received}'`;break;case At.invalid_arguments:t="Invalid function arguments";break;case At.invalid_return_type:t="Invalid function return type";break;case At.invalid_date:t="Invalid date";break;case At.invalid_string:typeof n.validation=="object"?"includes"in n.validation?(t=`Invalid input: must include "${n.validation.includes}"`,typeof n.validation.position=="number"&&(t=`${t} at one or more positions greater than or equal to ${n.validation.position}`)):"startsWith"in n.validation?t=`Invalid input: must start with "${n.validation.startsWith}"`:"endsWith"in n.validation?t=`Invalid input: must end with "${n.validation.endsWith}"`:Ve.assertNever(n.validation):n.validation!=="regex"?t=`Invalid ${n.validation}`:t="Invalid";break;case At.too_small:n.type==="array"?t=`Array must contain ${n.exact?"exactly":n.inclusive?"at least":"more than"} ${n.minimum} element(s)`:n.type==="string"?t=`String must contain ${n.exact?"exactly":n.inclusive?"at least":"over"} ${n.minimum} character(s)`:n.type==="number"?t=`Number must be ${n.exact?"exactly equal to ":n.inclusive?"greater than or equal to ":"greater than "}${n.minimum}`:n.type==="bigint"?t=`Number must be ${n.exact?"exactly equal to ":n.inclusive?"greater than or equal to ":"greater than "}${n.minimum}`:n.type==="date"?t=`Date must be ${n.exact?"exactly equal to ":n.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(n.minimum))}`:t="Invalid input";break;case At.too_big:n.type==="array"?t=`Array must contain ${n.exact?"exactly":n.inclusive?"at most":"less than"} ${n.maximum} element(s)`:n.type==="string"?t=`String must contain ${n.exact?"exactly":n.inclusive?"at most":"under"} ${n.maximum} character(s)`:n.type==="number"?t=`Number must be ${n.exact?"exactly":n.inclusive?"less than or equal to":"less than"} ${n.maximum}`:n.type==="bigint"?t=`BigInt must be ${n.exact?"exactly":n.inclusive?"less than or equal to":"less than"} ${n.maximum}`:n.type==="date"?t=`Date must be ${n.exact?"exactly":n.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(n.maximum))}`:t="Invalid input";break;case At.custom:t="Invalid input";break;case At.invalid_intersection_types:t="Intersection results could not be merged";break;case At.not_multiple_of:t=`Number must be a multiple of ${n.multipleOf}`;break;case At.not_finite:t="Number must be finite";break;default:t=e.defaultError,Ve.assertNever(n)}return{message:t}},_a=Eht});function Cht(n){M$=n}function vm(){return M$}var M$,Ox=qt(()=>{"use strict";j3();M$=_a});function Bt(n,e){let t=vm(),i=Qy({issueData:e,data:n.data,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,t,t===_a?void 0:_a].filter(r=>!!r)});n.common.issues.push(i)}var Qy,Iht,Ki,ye,bh,cr,Lx,Fx,Nc,wm,B3=qt(()=>{"use strict";Ox();j3();Qy=n=>{let{data:e,path:t,errorMaps:i,issueData:r}=n,s=[...t,...r.path||[]],o={...r,path:s};if(r.message!==void 0)return{...r,path:s,message:r.message};let a="",c=i.filter(l=>!!l).slice().reverse();for(let l of c)a=l(o,{data:e,defaultError:a}).message;return{...r,path:s,message:a}},Iht=[];Ki=class n{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,t){let i=[];for(let r of t){if(r.status==="aborted")return ye;r.status==="dirty"&&e.dirty(),i.push(r.value)}return{status:e.value,value:i}}static async mergeObjectAsync(e,t){let i=[];for(let r of t){let s=await r.key,o=await r.value;i.push({key:s,value:o})}return n.mergeObjectSync(e,i)}static mergeObjectSync(e,t){let i={};for(let r of t){let{key:s,value:o}=r;if(s.status==="aborted"||o.status==="aborted")return ye;s.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),s.value!=="__proto__"&&(typeof o.value<"u"||r.alwaysSet)&&(i[s.value]=o.value)}return{status:e.value,value:i}}},ye=Object.freeze({status:"aborted"}),bh=n=>({status:"dirty",value:n}),cr=n=>({status:"valid",value:n}),Lx=n=>n.status==="aborted",Fx=n=>n.status==="dirty",Nc=n=>n.status==="valid",wm=n=>typeof Promise<"u"&&n instanceof Promise});var E$=qt(()=>{"use strict"});var se,C$=qt(()=>{"use strict";(function(n){n.errToObj=e=>typeof e=="string"?{message:e}:e||{},n.toString=e=>typeof e=="string"?e:e?.message})(se||(se={}))});function Ne(n){if(!n)return{};let{errorMap:e,invalid_type_error:t,required_error:i,description:r}=n;if(e&&(t||i))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:r}:{errorMap:(o,a)=>{let{message:c}=n;return o.code==="invalid_enum_value"?{message:c??a.defaultError}:typeof a.data>"u"?{message:c??i??a.defaultError}:o.code!=="invalid_type"?{message:a.defaultError}:{message:c??t??a.defaultError}},description:r}}function R$(n){let e="[0-5]\\d";n.precision?e=`${e}\\.\\d{${n.precision}}`:n.precision==null&&(e=`${e}(\\.\\d+)?`);let t=n.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${t}`}function Hht(n){return new RegExp(`^${R$(n)}$`)}function O$(n){let e=`${A$}T${R$(n)}`,t=[];return t.push(n.local?"Z?":"Z"),n.offset&&t.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${t.join("|")})`,new RegExp(`^${e}$`)}function Wht(n,e){return!!((e==="v4"||!e)&&jht.test(n)||(e==="v6"||!e)&&Yht.test(n))}function qht(n,e){if(!Fht.test(n))return!1;try{let[t]=n.split(".");if(!t)return!1;let i=t.replace(/-/g,"+").replace(/_/g,"/").padEnd(t.length+(4-t.length%4)%4,"="),r=JSON.parse(atob(i));return!(typeof r!="object"||r===null||"typ"in r&&r?.typ!=="JWT"||!r.alg||e&&r.alg!==e)}catch{return!1}}function Zht(n,e){return!!((e==="v4"||!e)&&Bht.test(n)||(e==="v6"||!e)&&Xht.test(n))}function Kht(n,e){let t=(n.toString().split(".")[1]||"").length,i=(e.toString().split(".")[1]||"").length,r=t>i?t:i,s=Number.parseInt(n.toFixed(r).replace(".","")),o=Number.parseInt(e.toFixed(r).replace(".",""));return s%o/10**r}function Sm(n){if(n instanceof Fr){let e={};for(let t in n.shape){let i=n.shape[t];e[t]=ws.create(Sm(i))}return new Fr({...n._def,shape:()=>e})}else return n instanceof xa?new xa({...n._def,type:Sm(n.element)}):n instanceof ws?ws.create(Sm(n.unwrap())):n instanceof Co?Co.create(Sm(n.unwrap())):n instanceof Eo?Eo.create(n.items.map(e=>Sm(e))):n}function X3(n,e){let t=Mo(n),i=Mo(e);if(n===e)return{valid:!0,data:n};if(t===Ht.object&&i===Ht.object){let r=Ve.objectKeys(e),s=Ve.objectKeys(n).filter(a=>r.indexOf(a)!==-1),o={...n,...e};for(let a of s){let c=X3(n[a],e[a]);if(!c.valid)return{valid:!1};o[a]=c.data}return{valid:!0,data:o}}else if(t===Ht.array&&i===Ht.array){if(n.length!==e.length)return{valid:!1};let r=[];for(let s=0;s<n.length;s++){let o=n[s],a=e[s],c=X3(o,a);if(!c.valid)return{valid:!1};r.push(c.data)}return{valid:!0,data:r}}else return t===Ht.date&&i===Ht.date&&+n==+e?{valid:!0,data:n}:{valid:!1}}function L$(n,e){return new Nh({values:n,typeName:Se.ZodEnum,...Ne(e)})}function N$(n,e){let t=typeof n=="function"?n(e):typeof n=="string"?{message:n}:n;return typeof t=="string"?{message:t}:t}function F$(n,e={},t){return n?Rc.create().superRefine((i,r)=>{let s=n(i);if(s instanceof Promise)return s.then(o=>{if(!o){let a=N$(e,i),c=a.fatal??t??!0;r.addIssue({code:"custom",...a,fatal:c})}});if(!s){let o=N$(e,i),a=o.fatal??t??!0;r.addIssue({code:"custom",...o,fatal:a})}}):Rc.create()}var Ss,I$,ze,Nht,Aht,Rht,Oht,Lht,Fht,zht,$ht,Dht,Y3,jht,Bht,Yht,Xht,Uht,Vht,A$,Ght,Ac,vh,wh,Sh,Ph,Pm,kh,Th,Rc,ga,qs,km,xa,Fr,Mh,ya,zx,Eh,Eo,$x,Tm,Mm,Dx,Ch,Ih,Nh,Ah,Oc,Ps,ws,Co,Rh,Oh,Em,Jht,tg,eg,Lh,Qht,Se,tdt,z$,$$,edt,ndt,D$,idt,rdt,sdt,odt,adt,cdt,ldt,udt,pdt,hdt,ddt,fdt,mdt,_dt,ydt,gdt,xdt,bdt,vdt,wdt,Sdt,Pdt,kdt,Tdt,Mdt,Edt,Cdt,Idt,Ndt,Adt,Rdt,Odt,Ldt,Fdt,j$=qt(()=>{"use strict";Rx();Ox();C$();B3();Jy();Ss=class{constructor(e,t,i,r){this._cachedPath=[],this.parent=e,this.data=t,this._path=i,this._key=r}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},I$=(n,e)=>{if(Nc(e))return{success:!0,data:e.value};if(!n.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let t=new Lr(n.common.issues);return this._error=t,this._error}}};ze=class{get description(){return this._def.description}_getType(e){return Mo(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:Mo(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Ki,ctx:{common:e.parent.common,data:e.data,parsedType:Mo(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let t=this._parse(e);if(wm(t))throw new Error("Synchronous parse encountered promise.");return t}_parseAsync(e){let t=this._parse(e);return Promise.resolve(t)}parse(e,t){let i=this.safeParse(e,t);if(i.success)return i.data;throw i.error}safeParse(e,t){let i={common:{issues:[],async:t?.async??!1,contextualErrorMap:t?.errorMap},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Mo(e)},r=this._parseSync({data:e,path:i.path,parent:i});return I$(i,r)}"~validate"(e){let t={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Mo(e)};if(!this["~standard"].async)try{let i=this._parseSync({data:e,path:[],parent:t});return Nc(i)?{value:i.value}:{issues:t.common.issues}}catch(i){i?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),t.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:t}).then(i=>Nc(i)?{value:i.value}:{issues:t.common.issues})}async parseAsync(e,t){let i=await this.safeParseAsync(e,t);if(i.success)return i.data;throw i.error}async safeParseAsync(e,t){let i={common:{issues:[],contextualErrorMap:t?.errorMap,async:!0},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Mo(e)},r=this._parse({data:e,path:i.path,parent:i}),s=await(wm(r)?r:Promise.resolve(r));return I$(i,s)}refine(e,t){let i=r=>typeof t=="string"||typeof t>"u"?{message:t}:typeof t=="function"?t(r):t;return this._refinement((r,s)=>{let o=e(r),a=()=>s.addIssue({code:At.custom,...i(r)});return typeof Promise<"u"&&o instanceof Promise?o.then(c=>c?!0:(a(),!1)):o?!0:(a(),!1)})}refinement(e,t){return this._refinement((i,r)=>e(i)?!0:(r.addIssue(typeof t=="function"?t(i,r):t),!1))}_refinement(e){return new Ps({schema:this,typeName:Se.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,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:t=>this["~validate"](t)}}optional(){return ws.create(this,this._def)}nullable(){return Co.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return xa.create(this)}promise(){return Oc.create(this,this._def)}or(e){return Mh.create([this,e],this._def)}and(e){return Eh.create(this,e,this._def)}transform(e){return new Ps({...Ne(this._def),schema:this,typeName:Se.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let t=typeof e=="function"?e:()=>e;return new Rh({...Ne(this._def),innerType:this,defaultValue:t,typeName:Se.ZodDefault})}brand(){return new tg({typeName:Se.ZodBranded,type:this,...Ne(this._def)})}catch(e){let t=typeof e=="function"?e:()=>e;return new Oh({...Ne(this._def),innerType:this,catchValue:t,typeName:Se.ZodCatch})}describe(e){let t=this.constructor;return new t({...this._def,description:e})}pipe(e){return eg.create(this,e)}readonly(){return Lh.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},Nht=/^c[^\s-]{8,}$/i,Aht=/^[0-9a-z]+$/,Rht=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Oht=/^[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,Lht=/^[a-z0-9_-]{21}$/i,Fht=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,zht=/^[-+]?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)?)??$/,$ht=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Dht="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",jht=/^(?:(?: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])$/,Bht=/^(?:(?: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])$/,Yht=/^(([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]))$/,Xht=/^(([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])$/,Uht=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Vht=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,A$="((\\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])))",Ght=new RegExp(`^${A$}$`);Ac=class n extends ze{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==Ht.string){let s=this._getOrReturnCtx(e);return Bt(s,{code:At.invalid_type,expected:Ht.string,received:s.parsedType}),ye}let i=new Ki,r;for(let s of this._def.checks)if(s.kind==="min")e.data.length<s.value&&(r=this._getOrReturnCtx(e,r),Bt(r,{code:At.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),i.dirty());else if(s.kind==="max")e.data.length>s.value&&(r=this._getOrReturnCtx(e,r),Bt(r,{code:At.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),i.dirty());else if(s.kind==="length"){let o=e.data.length>s.value,a=e.data.length<s.value;(o||a)&&(r=this._getOrReturnCtx(e,r),o?Bt(r,{code:At.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}):a&&Bt(r,{code:At.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}),i.dirty())}else if(s.kind==="email")$ht.test(e.data)||(r=this._getOrReturnCtx(e,r),Bt(r,{validation:"email",code:At.invalid_string,message:s.message}),i.dirty());else if(s.kind==="emoji")Y3||(Y3=new RegExp(Dht,"u")),Y3.test(e.data)||(r=this._getOrReturnCtx(e,r),Bt(r,{validation:"emoji",code:At.invalid_string,message:s.message}),i.dirty());else if(s.kind==="uuid")Oht.test(e.data)||(r=this._getOrReturnCtx(e,r),Bt(r,{validation:"uuid",code:At.invalid_string,message:s.message}),i.dirty());else if(s.kind==="nanoid")Lht.test(e.data)||(r=this._getOrReturnCtx(e,r),Bt(r,{validation:"nanoid",code:At.invalid_string,message:s.message}),i.dirty());else if(s.kind==="cuid")Nht.test(e.data)||(r=this._getOrReturnCtx(e,r),Bt(r,{validation:"cuid",code:At.invalid_string,message:s.message}),i.dirty());else if(s.kind==="cuid2")Aht.test(e.data)||(r=this._getOrReturnCtx(e,r),Bt(r,{validation:"cuid2",code:At.invalid_string,message:s.message}),i.dirty());else if(s.kind==="ulid")Rht.test(e.data)||(r=this._getOrReturnCtx(e,r),Bt(r,{validation:"ulid",code:At.invalid_string,message:s.message}),i.dirty());else if(s.kind==="url")try{new URL(e.data)}catch{r=this._getOrReturnCtx(e,r),Bt(r,{validation:"url",code:At.invalid_string,message:s.message}),i.dirty()}else s.kind==="regex"?(s.regex.lastIndex=0,s.regex.test(e.data)||(r=this._getOrReturnCtx(e,r),Bt(r,{validation:"regex",code:At.invalid_string,message:s.message}),i.dirty())):s.kind==="trim"?e.data=e.data.trim():s.kind==="includes"?e.data.includes(s.value,s.position)||(r=this._getOrReturnCtx(e,r),Bt(r,{code:At.invalid_string,validation:{includes:s.value,position:s.position},message:s.message}),i.dirty()):s.kind==="toLowerCase"?e.data=e.data.toLowerCase():s.kind==="toUpperCase"?e.data=e.data.toUpperCase():s.kind==="startsWith"?e.data.startsWith(s.value)||(r=this._getOrReturnCtx(e,r),Bt(r,{code:At.invalid_string,validation:{startsWith:s.value},message:s.message}),i.dirty()):s.kind==="endsWith"?e.data.endsWith(s.value)||(r=this._getOrReturnCtx(e,r),Bt(r,{code:At.invalid_string,validation:{endsWith:s.value},message:s.message}),i.dirty()):s.kind==="datetime"?O$(s).test(e.data)||(r=this._getOrReturnCtx(e,r),Bt(r,{code:At.invalid_string,validation:"datetime",message:s.message}),i.dirty()):s.kind==="date"?Ght.test(e.data)||(r=this._getOrReturnCtx(e,r),Bt(r,{code:At.invalid_string,validation:"date",message:s.message}),i.dirty()):s.kind==="time"?Hht(s).test(e.data)||(r=this._getOrReturnCtx(e,r),Bt(r,{code:At.invalid_string,validation:"time",message:s.message}),i.dirty()):s.kind==="duration"?zht.test(e.data)||(r=this._getOrReturnCtx(e,r),Bt(r,{validation:"duration",code:At.invalid_string,message:s.message}),i.dirty()):s.kind==="ip"?Wht(e.data,s.version)||(r=this._getOrReturnCtx(e,r),Bt(r,{validation:"ip",code:At.invalid_string,message:s.message}),i.dirty()):s.kind==="jwt"?qht(e.data,s.alg)||(r=this._getOrReturnCtx(e,r),Bt(r,{validation:"jwt",code:At.invalid_string,message:s.message}),i.dirty()):s.kind==="cidr"?Zht(e.data,s.version)||(r=this._getOrReturnCtx(e,r),Bt(r,{validation:"cidr",code:At.invalid_string,message:s.message}),i.dirty()):s.kind==="base64"?Uht.test(e.data)||(r=this._getOrReturnCtx(e,r),Bt(r,{validation:"base64",code:At.invalid_string,message:s.message}),i.dirty()):s.kind==="base64url"?Vht.test(e.data)||(r=this._getOrReturnCtx(e,r),Bt(r,{validation:"base64url",code:At.invalid_string,message:s.message}),i.dirty()):Ve.assertNever(s);return{status:i.value,value:e.data}}_regex(e,t,i){return this.refinement(r=>e.test(r),{validation:t,code:At.invalid_string,...se.errToObj(i)})}_addCheck(e){return new n({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...se.errToObj(e)})}url(e){return this._addCheck({kind:"url",...se.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...se.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...se.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...se.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...se.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...se.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...se.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...se.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...se.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...se.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...se.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...se.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof e?.precision>"u"?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...se.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof e?.precision>"u"?null:e?.precision,...se.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...se.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...se.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:t?.position,...se.errToObj(t?.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...se.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...se.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...se.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...se.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...se.errToObj(t)})}nonempty(e){return this.min(1,se.errToObj(e))}trim(){return new n({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new n({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new n({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(let t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(let t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}};Ac.create=n=>new Ac({checks:[],typeName:Se.ZodString,coerce:n?.coerce??!1,...Ne(n)});vh=class n extends ze{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==Ht.number){let s=this._getOrReturnCtx(e);return Bt(s,{code:At.invalid_type,expected:Ht.number,received:s.parsedType}),ye}let i,r=new Ki;for(let s of this._def.checks)s.kind==="int"?Ve.isInteger(e.data)||(i=this._getOrReturnCtx(e,i),Bt(i,{code:At.invalid_type,expected:"integer",received:"float",message:s.message}),r.dirty()):s.kind==="min"?(s.inclusive?e.data<s.value:e.data<=s.value)&&(i=this._getOrReturnCtx(e,i),Bt(i,{code:At.too_small,minimum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),r.dirty()):s.kind==="max"?(s.inclusive?e.data>s.value:e.data>=s.value)&&(i=this._getOrReturnCtx(e,i),Bt(i,{code:At.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),r.dirty()):s.kind==="multipleOf"?Kht(e.data,s.value)!==0&&(i=this._getOrReturnCtx(e,i),Bt(i,{code:At.not_multiple_of,multipleOf:s.value,message:s.message}),r.dirty()):s.kind==="finite"?Number.isFinite(e.data)||(i=this._getOrReturnCtx(e,i),Bt(i,{code:At.not_finite,message:s.message}),r.dirty()):Ve.assertNever(s);return{status:r.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,se.toString(t))}gt(e,t){return this.setLimit("min",e,!1,se.toString(t))}lte(e,t){return this.setLimit("max",e,!0,se.toString(t))}lt(e,t){return this.setLimit("max",e,!1,se.toString(t))}setLimit(e,t,i,r){return new n({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:i,message:se.toString(r)}]})}_addCheck(e){return new n({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:se.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:se.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:se.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:se.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:se.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:se.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:se.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:se.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:se.toString(e)})}get minValue(){let e=null;for(let t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&&Ve.isInteger(e.value))}get isFinite(){let e=null,t=null;for(let i of this._def.checks){if(i.kind==="finite"||i.kind==="int"||i.kind==="multipleOf")return!0;i.kind==="min"?(t===null||i.value>t)&&(t=i.value):i.kind==="max"&&(e===null||i.value<e)&&(e=i.value)}return Number.isFinite(t)&&Number.isFinite(e)}};vh.create=n=>new vh({checks:[],typeName:Se.ZodNumber,coerce:n?.coerce||!1,...Ne(n)});wh=class n extends ze{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==Ht.bigint)return this._getInvalidInput(e);let i,r=new Ki;for(let s of this._def.checks)s.kind==="min"?(s.inclusive?e.data<s.value:e.data<=s.value)&&(i=this._getOrReturnCtx(e,i),Bt(i,{code:At.too_small,type:"bigint",minimum:s.value,inclusive:s.inclusive,message:s.message}),r.dirty()):s.kind==="max"?(s.inclusive?e.data>s.value:e.data>=s.value)&&(i=this._getOrReturnCtx(e,i),Bt(i,{code:At.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),r.dirty()):s.kind==="multipleOf"?e.data%s.value!==BigInt(0)&&(i=this._getOrReturnCtx(e,i),Bt(i,{code:At.not_multiple_of,multipleOf:s.value,message:s.message}),r.dirty()):Ve.assertNever(s);return{status:r.value,value:e.data}}_getInvalidInput(e){let t=this._getOrReturnCtx(e);return Bt(t,{code:At.invalid_type,expected:Ht.bigint,received:t.parsedType}),ye}gte(e,t){return this.setLimit("min",e,!0,se.toString(t))}gt(e,t){return this.setLimit("min",e,!1,se.toString(t))}lte(e,t){return this.setLimit("max",e,!0,se.toString(t))}lt(e,t){return this.setLimit("max",e,!1,se.toString(t))}setLimit(e,t,i,r){return new n({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:i,message:se.toString(r)}]})}_addCheck(e){return new n({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:se.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:se.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:se.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:se.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:se.toString(t)})}get minValue(){let e=null;for(let t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}};wh.create=n=>new wh({checks:[],typeName:Se.ZodBigInt,coerce:n?.coerce??!1,...Ne(n)});Sh=class extends ze{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==Ht.boolean){let i=this._getOrReturnCtx(e);return Bt(i,{code:At.invalid_type,expected:Ht.boolean,received:i.parsedType}),ye}return cr(e.data)}};Sh.create=n=>new Sh({typeName:Se.ZodBoolean,coerce:n?.coerce||!1,...Ne(n)});Ph=class n extends ze{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==Ht.date){let s=this._getOrReturnCtx(e);return Bt(s,{code:At.invalid_type,expected:Ht.date,received:s.parsedType}),ye}if(Number.isNaN(e.data.getTime())){let s=this._getOrReturnCtx(e);return Bt(s,{code:At.invalid_date}),ye}let i=new Ki,r;for(let s of this._def.checks)s.kind==="min"?e.data.getTime()<s.value&&(r=this._getOrReturnCtx(e,r),Bt(r,{code:At.too_small,message:s.message,inclusive:!0,exact:!1,minimum:s.value,type:"date"}),i.dirty()):s.kind==="max"?e.data.getTime()>s.value&&(r=this._getOrReturnCtx(e,r),Bt(r,{code:At.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),i.dirty()):Ve.assertNever(s);return{status:i.value,value:new Date(e.data.getTime())}}_addCheck(e){return new n({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:se.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:se.toString(t)})}get minDate(){let e=null;for(let t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e!=null?new Date(e):null}};Ph.create=n=>new Ph({checks:[],coerce:n?.coerce||!1,typeName:Se.ZodDate,...Ne(n)});Pm=class extends ze{_parse(e){if(this._getType(e)!==Ht.symbol){let i=this._getOrReturnCtx(e);return Bt(i,{code:At.invalid_type,expected:Ht.symbol,received:i.parsedType}),ye}return cr(e.data)}};Pm.create=n=>new Pm({typeName:Se.ZodSymbol,...Ne(n)});kh=class extends ze{_parse(e){if(this._getType(e)!==Ht.undefined){let i=this._getOrReturnCtx(e);return Bt(i,{code:At.invalid_type,expected:Ht.undefined,received:i.parsedType}),ye}return cr(e.data)}};kh.create=n=>new kh({typeName:Se.ZodUndefined,...Ne(n)});Th=class extends ze{_parse(e){if(this._getType(e)!==Ht.null){let i=this._getOrReturnCtx(e);return Bt(i,{code:At.invalid_type,expected:Ht.null,received:i.parsedType}),ye}return cr(e.data)}};Th.create=n=>new Th({typeName:Se.ZodNull,...Ne(n)});Rc=class extends ze{constructor(){super(...arguments),this._any=!0}_parse(e){return cr(e.data)}};Rc.create=n=>new Rc({typeName:Se.ZodAny,...Ne(n)});ga=class extends ze{constructor(){super(...arguments),this._unknown=!0}_parse(e){return cr(e.data)}};ga.create=n=>new ga({typeName:Se.ZodUnknown,...Ne(n)});qs=class extends ze{_parse(e){let t=this._getOrReturnCtx(e);return Bt(t,{code:At.invalid_type,expected:Ht.never,received:t.parsedType}),ye}};qs.create=n=>new qs({typeName:Se.ZodNever,...Ne(n)});km=class extends ze{_parse(e){if(this._getType(e)!==Ht.undefined){let i=this._getOrReturnCtx(e);return Bt(i,{code:At.invalid_type,expected:Ht.void,received:i.parsedType}),ye}return cr(e.data)}};km.create=n=>new km({typeName:Se.ZodVoid,...Ne(n)});xa=class n extends ze{_parse(e){let{ctx:t,status:i}=this._processInputParams(e),r=this._def;if(t.parsedType!==Ht.array)return Bt(t,{code:At.invalid_type,expected:Ht.array,received:t.parsedType}),ye;if(r.exactLength!==null){let o=t.data.length>r.exactLength.value,a=t.data.length<r.exactLength.value;(o||a)&&(Bt(t,{code:o?At.too_big:At.too_small,minimum:a?r.exactLength.value:void 0,maximum:o?r.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:r.exactLength.message}),i.dirty())}if(r.minLength!==null&&t.data.length<r.minLength.value&&(Bt(t,{code:At.too_small,minimum:r.minLength.value,type:"array",inclusive:!0,exact:!1,message:r.minLength.message}),i.dirty()),r.maxLength!==null&&t.data.length>r.maxLength.value&&(Bt(t,{code:At.too_big,maximum:r.maxLength.value,type:"array",inclusive:!0,exact:!1,message:r.maxLength.message}),i.dirty()),t.common.async)return Promise.all([...t.data].map((o,a)=>r.type._parseAsync(new Ss(t,o,t.path,a)))).then(o=>Ki.mergeArray(i,o));let s=[...t.data].map((o,a)=>r.type._parseSync(new Ss(t,o,t.path,a)));return Ki.mergeArray(i,s)}get element(){return this._def.type}min(e,t){return new n({...this._def,minLength:{value:e,message:se.toString(t)}})}max(e,t){return new n({...this._def,maxLength:{value:e,message:se.toString(t)}})}length(e,t){return new n({...this._def,exactLength:{value:e,message:se.toString(t)}})}nonempty(e){return this.min(1,e)}};xa.create=(n,e)=>new xa({type:n,minLength:null,maxLength:null,exactLength:null,typeName:Se.ZodArray,...Ne(e)});Fr=class n extends ze{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),t=Ve.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==Ht.object){let l=this._getOrReturnCtx(e);return Bt(l,{code:At.invalid_type,expected:Ht.object,received:l.parsedType}),ye}let{status:i,ctx:r}=this._processInputParams(e),{shape:s,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof qs&&this._def.unknownKeys==="strip"))for(let l in r.data)o.includes(l)||a.push(l);let c=[];for(let l of o){let u=s[l],h=r.data[l];c.push({key:{status:"valid",value:l},value:u._parse(new Ss(r,h,r.path,l)),alwaysSet:l in r.data})}if(this._def.catchall instanceof qs){let l=this._def.unknownKeys;if(l==="passthrough")for(let u of a)c.push({key:{status:"valid",value:u},value:{status:"valid",value:r.data[u]}});else if(l==="strict")a.length>0&&(Bt(r,{code:At.unrecognized_keys,keys:a}),i.dirty());else if(l!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let l=this._def.catchall;for(let u of a){let h=r.data[u];c.push({key:{status:"valid",value:u},value:l._parse(new Ss(r,h,r.path,u)),alwaysSet:u in r.data})}}return r.common.async?Promise.resolve().then(async()=>{let l=[];for(let u of c){let h=await u.key,f=await u.value;l.push({key:h,value:f,alwaysSet:u.alwaysSet})}return l}).then(l=>Ki.mergeObjectSync(i,l)):Ki.mergeObjectSync(i,c)}get shape(){return this._def.shape()}strict(e){return se.errToObj,new n({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(t,i)=>{let r=this._def.errorMap?.(t,i).message??i.defaultError;return t.code==="unrecognized_keys"?{message:se.errToObj(e).message??r}:{message:r}}}:{}})}strip(){return new n({...this._def,unknownKeys:"strip"})}passthrough(){return new n({...this._def,unknownKeys:"passthrough"})}extend(e){return new n({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new n({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:Se.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new n({...this._def,catchall:e})}pick(e){let t={};for(let i of Ve.objectKeys(e))e[i]&&this.shape[i]&&(t[i]=this.shape[i]);return new n({...this._def,shape:()=>t})}omit(e){let t={};for(let i of Ve.objectKeys(this.shape))e[i]||(t[i]=this.shape[i]);return new n({...this._def,shape:()=>t})}deepPartial(){return Sm(this)}partial(e){let t={};for(let i of Ve.objectKeys(this.shape)){let r=this.shape[i];e&&!e[i]?t[i]=r:t[i]=r.optional()}return new n({...this._def,shape:()=>t})}required(e){let t={};for(let i of Ve.objectKeys(this.shape))if(e&&!e[i])t[i]=this.shape[i];else{let s=this.shape[i];for(;s instanceof ws;)s=s._def.innerType;t[i]=s}return new n({...this._def,shape:()=>t})}keyof(){return L$(Ve.objectKeys(this.shape))}};Fr.create=(n,e)=>new Fr({shape:()=>n,unknownKeys:"strip",catchall:qs.create(),typeName:Se.ZodObject,...Ne(e)});Fr.strictCreate=(n,e)=>new Fr({shape:()=>n,unknownKeys:"strict",catchall:qs.create(),typeName:Se.ZodObject,...Ne(e)});Fr.lazycreate=(n,e)=>new Fr({shape:n,unknownKeys:"strip",catchall:qs.create(),typeName:Se.ZodObject,...Ne(e)});Mh=class extends ze{_parse(e){let{ctx:t}=this._processInputParams(e),i=this._def.options;function r(s){for(let a of s)if(a.result.status==="valid")return a.result;for(let a of s)if(a.result.status==="dirty")return t.common.issues.push(...a.ctx.common.issues),a.result;let o=s.map(a=>new Lr(a.ctx.common.issues));return Bt(t,{code:At.invalid_union,unionErrors:o}),ye}if(t.common.async)return Promise.all(i.map(async s=>{let o={...t,common:{...t.common,issues:[]},parent:null};return{result:await s._parseAsync({data:t.data,path:t.path,parent:o}),ctx:o}})).then(r);{let s,o=[];for(let c of i){let l={...t,common:{...t.common,issues:[]},parent:null},u=c._parseSync({data:t.data,path:t.path,parent:l});if(u.status==="valid")return u;u.status==="dirty"&&!s&&(s={result:u,ctx:l}),l.common.issues.length&&o.push(l.common.issues)}if(s)return t.common.issues.push(...s.ctx.common.issues),s.result;let a=o.map(c=>new Lr(c));return Bt(t,{code:At.invalid_union,unionErrors:a}),ye}}get options(){return this._def.options}};Mh.create=(n,e)=>new Mh({options:n,typeName:Se.ZodUnion,...Ne(e)});ya=n=>n instanceof Ch?ya(n.schema):n instanceof Ps?ya(n.innerType()):n instanceof Ih?[n.value]:n instanceof Nh?n.options:n instanceof Ah?Ve.objectValues(n.enum):n instanceof Rh?ya(n._def.innerType):n instanceof kh?[void 0]:n instanceof Th?[null]:n instanceof ws?[void 0,...ya(n.unwrap())]:n instanceof Co?[null,...ya(n.unwrap())]:n instanceof tg||n instanceof Lh?ya(n.unwrap()):n instanceof Oh?ya(n._def.innerType):[],zx=class n extends ze{_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==Ht.object)return Bt(t,{code:At.invalid_type,expected:Ht.object,received:t.parsedType}),ye;let i=this.discriminator,r=t.data[i],s=this.optionsMap.get(r);return s?t.common.async?s._parseAsync({data:t.data,path:t.path,parent:t}):s._parseSync({data:t.data,path:t.path,parent:t}):(Bt(t,{code:At.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[i]}),ye)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,t,i){let r=new Map;for(let s of t){let o=ya(s.shape[e]);if(!o.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let a of o){if(r.has(a))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(a)}`);r.set(a,s)}}return new n({typeName:Se.ZodDiscriminatedUnion,discriminator:e,options:t,optionsMap:r,...Ne(i)})}};Eh=class extends ze{_parse(e){let{status:t,ctx:i}=this._processInputParams(e),r=(s,o)=>{if(Lx(s)||Lx(o))return ye;let a=X3(s.value,o.value);return a.valid?((Fx(s)||Fx(o))&&t.dirty(),{status:t.value,value:a.data}):(Bt(i,{code:At.invalid_intersection_types}),ye)};return i.common.async?Promise.all([this._def.left._parseAsync({data:i.data,path:i.path,parent:i}),this._def.right._parseAsync({data:i.data,path:i.path,parent:i})]).then(([s,o])=>r(s,o)):r(this._def.left._parseSync({data:i.data,path:i.path,parent:i}),this._def.right._parseSync({data:i.data,path:i.path,parent:i}))}};Eh.create=(n,e,t)=>new Eh({left:n,right:e,typeName:Se.ZodIntersection,...Ne(t)});Eo=class n extends ze{_parse(e){let{status:t,ctx:i}=this._processInputParams(e);if(i.parsedType!==Ht.array)return Bt(i,{code:At.invalid_type,expected:Ht.array,received:i.parsedType}),ye;if(i.data.length<this._def.items.length)return Bt(i,{code:At.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),ye;!this._def.rest&&i.data.length>this._def.items.length&&(Bt(i,{code:At.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t.dirty());let s=[...i.data].map((o,a)=>{let c=this._def.items[a]||this._def.rest;return c?c._parse(new Ss(i,o,i.path,a)):null}).filter(o=>!!o);return i.common.async?Promise.all(s).then(o=>Ki.mergeArray(t,o)):Ki.mergeArray(t,s)}get items(){return this._def.items}rest(e){return new n({...this._def,rest:e})}};Eo.create=(n,e)=>{if(!Array.isArray(n))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Eo({items:n,typeName:Se.ZodTuple,rest:null,...Ne(e)})};$x=class n extends ze{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:i}=this._processInputParams(e);if(i.parsedType!==Ht.object)return Bt(i,{code:At.invalid_type,expected:Ht.object,received:i.parsedType}),ye;let r=[],s=this._def.keyType,o=this._def.valueType;for(let a in i.data)r.push({key:s._parse(new Ss(i,a,i.path,a)),value:o._parse(new Ss(i,i.data[a],i.path,a)),alwaysSet:a in i.data});return i.common.async?Ki.mergeObjectAsync(t,r):Ki.mergeObjectSync(t,r)}get element(){return this._def.valueType}static create(e,t,i){return t instanceof ze?new n({keyType:e,valueType:t,typeName:Se.ZodRecord,...Ne(i)}):new n({keyType:Ac.create(),valueType:e,typeName:Se.ZodRecord,...Ne(t)})}},Tm=class extends ze{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:i}=this._processInputParams(e);if(i.parsedType!==Ht.map)return Bt(i,{code:At.invalid_type,expected:Ht.map,received:i.parsedType}),ye;let r=this._def.keyType,s=this._def.valueType,o=[...i.data.entries()].map(([a,c],l)=>({key:r._parse(new Ss(i,a,i.path,[l,"key"])),value:s._parse(new Ss(i,c,i.path,[l,"value"]))}));if(i.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let c of o){let l=await c.key,u=await c.value;if(l.status==="aborted"||u.status==="aborted")return ye;(l.status==="dirty"||u.status==="dirty")&&t.dirty(),a.set(l.value,u.value)}return{status:t.value,value:a}})}else{let a=new Map;for(let c of o){let l=c.key,u=c.value;if(l.status==="aborted"||u.status==="aborted")return ye;(l.status==="dirty"||u.status==="dirty")&&t.dirty(),a.set(l.value,u.value)}return{status:t.value,value:a}}}};Tm.create=(n,e,t)=>new Tm({valueType:e,keyType:n,typeName:Se.ZodMap,...Ne(t)});Mm=class n extends ze{_parse(e){let{status:t,ctx:i}=this._processInputParams(e);if(i.parsedType!==Ht.set)return Bt(i,{code:At.invalid_type,expected:Ht.set,received:i.parsedType}),ye;let r=this._def;r.minSize!==null&&i.data.size<r.minSize.value&&(Bt(i,{code:At.too_small,minimum:r.minSize.value,type:"set",inclusive:!0,exact:!1,message:r.minSize.message}),t.dirty()),r.maxSize!==null&&i.data.size>r.maxSize.value&&(Bt(i,{code:At.too_big,maximum:r.maxSize.value,type:"set",inclusive:!0,exact:!1,message:r.maxSize.message}),t.dirty());let s=this._def.valueType;function o(c){let l=new Set;for(let u of c){if(u.status==="aborted")return ye;u.status==="dirty"&&t.dirty(),l.add(u.value)}return{status:t.value,value:l}}let a=[...i.data.values()].map((c,l)=>s._parse(new Ss(i,c,i.path,l)));return i.common.async?Promise.all(a).then(c=>o(c)):o(a)}min(e,t){return new n({...this._def,minSize:{value:e,message:se.toString(t)}})}max(e,t){return new n({...this._def,maxSize:{value:e,message:se.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}};Mm.create=(n,e)=>new Mm({valueType:n,minSize:null,maxSize:null,typeName:Se.ZodSet,...Ne(e)});Dx=class n extends ze{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==Ht.function)return Bt(t,{code:At.invalid_type,expected:Ht.function,received:t.parsedType}),ye;function i(a,c){return Qy({data:a,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,vm(),_a].filter(l=>!!l),issueData:{code:At.invalid_arguments,argumentsError:c}})}function r(a,c){return Qy({data:a,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,vm(),_a].filter(l=>!!l),issueData:{code:At.invalid_return_type,returnTypeError:c}})}let s={errorMap:t.common.contextualErrorMap},o=t.data;if(this._def.returns instanceof Oc){let a=this;return cr(async function(...c){let l=new Lr([]),u=await a._def.args.parseAsync(c,s).catch(_=>{throw l.addIssue(i(c,_)),l}),h=await Reflect.apply(o,this,u);return await a._def.returns._def.type.parseAsync(h,s).catch(_=>{throw l.addIssue(r(h,_)),l})})}else{let a=this;return cr(function(...c){let l=a._def.args.safeParse(c,s);if(!l.success)throw new Lr([i(c,l.error)]);let u=Reflect.apply(o,this,l.data),h=a._def.returns.safeParse(u,s);if(!h.success)throw new Lr([r(u,h.error)]);return h.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new n({...this._def,args:Eo.create(e).rest(ga.create())})}returns(e){return new n({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,t,i){return new n({args:e||Eo.create([]).rest(ga.create()),returns:t||ga.create(),typeName:Se.ZodFunction,...Ne(i)})}},Ch=class extends ze{get schema(){return this._def.getter()}_parse(e){let{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}};Ch.create=(n,e)=>new Ch({getter:n,typeName:Se.ZodLazy,...Ne(e)});Ih=class extends ze{_parse(e){if(e.data!==this._def.value){let t=this._getOrReturnCtx(e);return Bt(t,{received:t.data,code:At.invalid_literal,expected:this._def.value}),ye}return{status:"valid",value:e.data}}get value(){return this._def.value}};Ih.create=(n,e)=>new Ih({value:n,typeName:Se.ZodLiteral,...Ne(e)});Nh=class n extends ze{_parse(e){if(typeof e.data!="string"){let t=this._getOrReturnCtx(e),i=this._def.values;return Bt(t,{expected:Ve.joinValues(i),received:t.parsedType,code:At.invalid_type}),ye}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){let t=this._getOrReturnCtx(e),i=this._def.values;return Bt(t,{received:t.data,code:At.invalid_enum_value,options:i}),ye}return cr(e.data)}get options(){return this._def.values}get enum(){let e={};for(let t of this._def.values)e[t]=t;return e}get Values(){let e={};for(let t of this._def.values)e[t]=t;return e}get Enum(){let e={};for(let t of this._def.values)e[t]=t;return e}extract(e,t=this._def){return n.create(e,{...this._def,...t})}exclude(e,t=this._def){return n.create(this.options.filter(i=>!e.includes(i)),{...this._def,...t})}};Nh.create=L$;Ah=class extends ze{_parse(e){let t=Ve.getValidEnumValues(this._def.values),i=this._getOrReturnCtx(e);if(i.parsedType!==Ht.string&&i.parsedType!==Ht.number){let r=Ve.objectValues(t);return Bt(i,{expected:Ve.joinValues(r),received:i.parsedType,code:At.invalid_type}),ye}if(this._cache||(this._cache=new Set(Ve.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let r=Ve.objectValues(t);return Bt(i,{received:i.data,code:At.invalid_enum_value,options:r}),ye}return cr(e.data)}get enum(){return this._def.values}};Ah.create=(n,e)=>new Ah({values:n,typeName:Se.ZodNativeEnum,...Ne(e)});Oc=class extends ze{unwrap(){return this._def.type}_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==Ht.promise&&t.common.async===!1)return Bt(t,{code:At.invalid_type,expected:Ht.promise,received:t.parsedType}),ye;let i=t.parsedType===Ht.promise?t.data:Promise.resolve(t.data);return cr(i.then(r=>this._def.type.parseAsync(r,{path:t.path,errorMap:t.common.contextualErrorMap})))}};Oc.create=(n,e)=>new Oc({type:n,typeName:Se.ZodPromise,...Ne(e)});Ps=class extends ze{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Se.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:t,ctx:i}=this._processInputParams(e),r=this._def.effect||null,s={addIssue:o=>{Bt(i,o),o.fatal?t.abort():t.dirty()},get path(){return i.path}};if(s.addIssue=s.addIssue.bind(s),r.type==="preprocess"){let o=r.transform(i.data,s);if(i.common.async)return Promise.resolve(o).then(async a=>{if(t.value==="aborted")return ye;let c=await this._def.schema._parseAsync({data:a,path:i.path,parent:i});return c.status==="aborted"?ye:c.status==="dirty"?bh(c.value):t.value==="dirty"?bh(c.value):c});{if(t.value==="aborted")return ye;let a=this._def.schema._parseSync({data:o,path:i.path,parent:i});return a.status==="aborted"?ye:a.status==="dirty"?bh(a.value):t.value==="dirty"?bh(a.value):a}}if(r.type==="refinement"){let o=a=>{let c=r.refinement(a,s);if(i.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(i.common.async===!1){let a=this._def.schema._parseSync({data:i.data,path:i.path,parent:i});return a.status==="aborted"?ye:(a.status==="dirty"&&t.dirty(),o(a.value),{status:t.value,value:a.value})}else return this._def.schema._parseAsync({data:i.data,path:i.path,parent:i}).then(a=>a.status==="aborted"?ye:(a.status==="dirty"&&t.dirty(),o(a.value).then(()=>({status:t.value,value:a.value}))))}if(r.type==="transform")if(i.common.async===!1){let o=this._def.schema._parseSync({data:i.data,path:i.path,parent:i});if(!Nc(o))return ye;let a=r.transform(o.value,s);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:t.value,value:a}}else return this._def.schema._parseAsync({data:i.data,path:i.path,parent:i}).then(o=>Nc(o)?Promise.resolve(r.transform(o.value,s)).then(a=>({status:t.value,value:a})):ye);Ve.assertNever(r)}};Ps.create=(n,e,t)=>new Ps({schema:n,typeName:Se.ZodEffects,effect:e,...Ne(t)});Ps.createWithPreprocess=(n,e,t)=>new Ps({schema:e,effect:{type:"preprocess",transform:n},typeName:Se.ZodEffects,...Ne(t)});ws=class extends ze{_parse(e){return this._getType(e)===Ht.undefined?cr(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};ws.create=(n,e)=>new ws({innerType:n,typeName:Se.ZodOptional,...Ne(e)});Co=class extends ze{_parse(e){return this._getType(e)===Ht.null?cr(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Co.create=(n,e)=>new Co({innerType:n,typeName:Se.ZodNullable,...Ne(e)});Rh=class extends ze{_parse(e){let{ctx:t}=this._processInputParams(e),i=t.data;return t.parsedType===Ht.undefined&&(i=this._def.defaultValue()),this._def.innerType._parse({data:i,path:t.path,parent:t})}removeDefault(){return this._def.innerType}};Rh.create=(n,e)=>new Rh({innerType:n,typeName:Se.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...Ne(e)});Oh=class extends ze{_parse(e){let{ctx:t}=this._processInputParams(e),i={...t,common:{...t.common,issues:[]}},r=this._def.innerType._parse({data:i.data,path:i.path,parent:{...i}});return wm(r)?r.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new Lr(i.common.issues)},input:i.data})})):{status:"valid",value:r.status==="valid"?r.value:this._def.catchValue({get error(){return new Lr(i.common.issues)},input:i.data})}}removeCatch(){return this._def.innerType}};Oh.create=(n,e)=>new Oh({innerType:n,typeName:Se.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...Ne(e)});Em=class extends ze{_parse(e){if(this._getType(e)!==Ht.nan){let i=this._getOrReturnCtx(e);return Bt(i,{code:At.invalid_type,expected:Ht.nan,received:i.parsedType}),ye}return{status:"valid",value:e.data}}};Em.create=n=>new Em({typeName:Se.ZodNaN,...Ne(n)});Jht=Symbol("zod_brand"),tg=class extends ze{_parse(e){let{ctx:t}=this._processInputParams(e),i=t.data;return this._def.type._parse({data:i,path:t.path,parent:t})}unwrap(){return this._def.type}},eg=class n extends ze{_parse(e){let{status:t,ctx:i}=this._processInputParams(e);if(i.common.async)return(async()=>{let s=await this._def.in._parseAsync({data:i.data,path:i.path,parent:i});return s.status==="aborted"?ye:s.status==="dirty"?(t.dirty(),bh(s.value)):this._def.out._parseAsync({data:s.value,path:i.path,parent:i})})();{let r=this._def.in._parseSync({data:i.data,path:i.path,parent:i});return r.status==="aborted"?ye:r.status==="dirty"?(t.dirty(),{status:"dirty",value:r.value}):this._def.out._parseSync({data:r.value,path:i.path,parent:i})}}static create(e,t){return new n({in:e,out:t,typeName:Se.ZodPipeline})}},Lh=class extends ze{_parse(e){let t=this._def.innerType._parse(e),i=r=>(Nc(r)&&(r.value=Object.freeze(r.value)),r);return wm(t)?t.then(r=>i(r)):i(t)}unwrap(){return this._def.innerType}};Lh.create=(n,e)=>new Lh({innerType:n,typeName:Se.ZodReadonly,...Ne(e)});Qht={object:Fr.lazycreate};(function(n){n.ZodString="ZodString",n.ZodNumber="ZodNumber",n.ZodNaN="ZodNaN",n.ZodBigInt="ZodBigInt",n.ZodBoolean="ZodBoolean",n.ZodDate="ZodDate",n.ZodSymbol="ZodSymbol",n.ZodUndefined="ZodUndefined",n.ZodNull="ZodNull",n.ZodAny="ZodAny",n.ZodUnknown="ZodUnknown",n.ZodNever="ZodNever",n.ZodVoid="ZodVoid",n.ZodArray="ZodArray",n.ZodObject="ZodObject",n.ZodUnion="ZodUnion",n.ZodDiscriminatedUnion="ZodDiscriminatedUnion",n.ZodIntersection="ZodIntersection",n.ZodTuple="ZodTuple",n.ZodRecord="ZodRecord",n.ZodMap="ZodMap",n.ZodSet="ZodSet",n.ZodFunction="ZodFunction",n.ZodLazy="ZodLazy",n.ZodLiteral="ZodLiteral",n.ZodEnum="ZodEnum",n.ZodEffects="ZodEffects",n.ZodNativeEnum="ZodNativeEnum",n.ZodOptional="ZodOptional",n.ZodNullable="ZodNullable",n.ZodDefault="ZodDefault",n.ZodCatch="ZodCatch",n.ZodPromise="ZodPromise",n.ZodBranded="ZodBranded",n.ZodPipeline="ZodPipeline",n.ZodReadonly="ZodReadonly"})(Se||(Se={}));tdt=(n,e={message:`Input not instance of ${n.name}`})=>F$(t=>t instanceof n,e),z$=Ac.create,$$=vh.create,edt=Em.create,ndt=wh.create,D$=Sh.create,idt=Ph.create,rdt=Pm.create,sdt=kh.create,odt=Th.create,adt=Rc.create,cdt=ga.create,ldt=qs.create,udt=km.create,pdt=xa.create,hdt=Fr.create,ddt=Fr.strictCreate,fdt=Mh.create,mdt=zx.create,_dt=Eh.create,ydt=Eo.create,gdt=$x.create,xdt=Tm.create,bdt=Mm.create,vdt=Dx.create,wdt=Ch.create,Sdt=Ih.create,Pdt=Nh.create,kdt=Ah.create,Tdt=Oc.create,Mdt=Ps.create,Edt=ws.create,Cdt=Co.create,Idt=Ps.createWithPreprocess,Ndt=eg.create,Adt=()=>z$().optional(),Rdt=()=>$$().optional(),Odt=()=>D$().optional(),Ldt={string:(n=>Ac.create({...n,coerce:!0})),number:(n=>vh.create({...n,coerce:!0})),boolean:(n=>Sh.create({...n,coerce:!0})),bigint:(n=>wh.create({...n,coerce:!0})),date:(n=>Ph.create({...n,coerce:!0}))},Fdt=ye});var p={};gh(p,{BRAND:()=>Jht,DIRTY:()=>bh,EMPTY_PATH:()=>Iht,INVALID:()=>ye,NEVER:()=>Fdt,OK:()=>cr,ParseStatus:()=>Ki,Schema:()=>ze,ZodAny:()=>Rc,ZodArray:()=>xa,ZodBigInt:()=>wh,ZodBoolean:()=>Sh,ZodBranded:()=>tg,ZodCatch:()=>Oh,ZodDate:()=>Ph,ZodDefault:()=>Rh,ZodDiscriminatedUnion:()=>zx,ZodEffects:()=>Ps,ZodEnum:()=>Nh,ZodError:()=>Lr,ZodFirstPartyTypeKind:()=>Se,ZodFunction:()=>Dx,ZodIntersection:()=>Eh,ZodIssueCode:()=>At,ZodLazy:()=>Ch,ZodLiteral:()=>Ih,ZodMap:()=>Tm,ZodNaN:()=>Em,ZodNativeEnum:()=>Ah,ZodNever:()=>qs,ZodNull:()=>Th,ZodNullable:()=>Co,ZodNumber:()=>vh,ZodObject:()=>Fr,ZodOptional:()=>ws,ZodParsedType:()=>Ht,ZodPipeline:()=>eg,ZodPromise:()=>Oc,ZodReadonly:()=>Lh,ZodRecord:()=>$x,ZodSchema:()=>ze,ZodSet:()=>Mm,ZodString:()=>Ac,ZodSymbol:()=>Pm,ZodTransformer:()=>Ps,ZodTuple:()=>Eo,ZodType:()=>ze,ZodUndefined:()=>kh,ZodUnion:()=>Mh,ZodUnknown:()=>ga,ZodVoid:()=>km,addIssueToContext:()=>Bt,any:()=>adt,array:()=>pdt,bigint:()=>ndt,boolean:()=>D$,coerce:()=>Ldt,custom:()=>F$,date:()=>idt,datetimeRegex:()=>O$,defaultErrorMap:()=>_a,discriminatedUnion:()=>mdt,effect:()=>Mdt,enum:()=>Pdt,function:()=>vdt,getErrorMap:()=>vm,getParsedType:()=>Mo,instanceof:()=>tdt,intersection:()=>_dt,isAborted:()=>Lx,isAsync:()=>wm,isDirty:()=>Fx,isValid:()=>Nc,late:()=>Qht,lazy:()=>wdt,literal:()=>Sdt,makeIssue:()=>Qy,map:()=>xdt,nan:()=>edt,nativeEnum:()=>kdt,never:()=>ldt,null:()=>odt,nullable:()=>Cdt,number:()=>$$,object:()=>hdt,objectUtil:()=>D3,oboolean:()=>Odt,onumber:()=>Rdt,optional:()=>Edt,ostring:()=>Adt,pipeline:()=>Ndt,preprocess:()=>Idt,promise:()=>Tdt,quotelessJson:()=>Mht,record:()=>gdt,set:()=>bdt,setErrorMap:()=>Cht,strictObject:()=>ddt,string:()=>z$,symbol:()=>rdt,transformer:()=>Mdt,tuple:()=>ydt,undefined:()=>sdt,union:()=>fdt,unknown:()=>cdt,util:()=>Ve,void:()=>udt});var U3=qt(()=>{"use strict";Ox();B3();E$();Jy();j$();Rx()});var Q=qt(()=>{"use strict";U3();U3()});var Dh={};gh(Dh,{all_layers:()=>Nm,any_circuit_element:()=>sB,any_soup_element:()=>$h,any_source_component:()=>J$,battery_capacity:()=>V$,brep_shape:()=>OD,cad_component:()=>Wj,capacitance:()=>ba,circuit_json_footprint_load_error:()=>Hx,current:()=>$dt,distance:()=>Y,duration_ms:()=>ng,experiment_type:()=>Qj,external_footprint_load_error:()=>Am,frequency:()=>ur,getZodPrefixedIdWithDefault:()=>Nt,inductance:()=>jx,layer_ref:()=>pe,layer_string:()=>G3,length:()=>D,ms:()=>lr,ninePointAnchor:()=>ig,pcb_autorouting_error:()=>Oj,pcb_board:()=>sj,pcb_breakout_point:()=>Lj,pcb_component:()=>FD,pcb_component_invalid_layer_error:()=>Rm,pcb_component_outside_board_error:()=>Xj,pcb_copper_pour:()=>Yj,pcb_copper_pour_brep:()=>jj,pcb_copper_pour_polygon:()=>Bj,pcb_copper_pour_rect:()=>Dj,pcb_copper_text:()=>hj,pcb_courtyard_outline:()=>Gj,pcb_courtyard_polygon:()=>Hj,pcb_courtyard_rect:()=>Vj,pcb_cutout:()=>Nj,pcb_cutout_circle:()=>Ej,pcb_cutout_path:()=>Ij,pcb_cutout_polygon:()=>Cj,pcb_cutout_rect:()=>Mj,pcb_fabrication_note_dimension:()=>xj,pcb_fabrication_note_path:()=>yj,pcb_fabrication_note_rect:()=>gj,pcb_fabrication_note_text:()=>_j,pcb_footprint_overlap_error:()=>kj,pcb_ground_plane:()=>Fj,pcb_ground_plane_region:()=>zj,pcb_group:()=>Rj,pcb_hole:()=>XD,pcb_hole_circle_or_square_shape:()=>Wdt,pcb_hole_circle_shape:()=>Gdt,pcb_hole_oval_shape:()=>qdt,pcb_hole_pill_shape:()=>Zdt,pcb_hole_rect_shape:()=>Hdt,pcb_hole_rotated_pill_shape:()=>Kdt,pcb_keepout:()=>Tj,pcb_manual_edit_conflict_warning:()=>Wx,pcb_missing_footprint_error:()=>Aj,pcb_net:()=>ij,pcb_note_dimension:()=>Pj,pcb_note_line:()=>Sj,pcb_note_path:()=>wj,pcb_note_rect:()=>vj,pcb_note_text:()=>bj,pcb_panel:()=>oj,pcb_placement_error:()=>aj,pcb_plated_hole:()=>UD,pcb_port:()=>VD,pcb_port_not_connected_error:()=>nj,pcb_port_not_matched_error:()=>ej,pcb_route_hint:()=>LD,pcb_route_hints:()=>Vdt,pcb_silkscreen_circle:()=>fj,pcb_silkscreen_line:()=>lj,pcb_silkscreen_oval:()=>mj,pcb_silkscreen_path:()=>uj,pcb_silkscreen_rect:()=>dj,pcb_silkscreen_text:()=>pj,pcb_smtpad:()=>HD,pcb_smtpad_pill:()=>GD,pcb_solder_paste:()=>WD,pcb_text:()=>qD,pcb_thermal_spoke:()=>$j,pcb_trace:()=>JD,pcb_trace_error:()=>QD,pcb_trace_hint:()=>cj,pcb_trace_missing_error:()=>tj,pcb_trace_route_point:()=>Vx,pcb_trace_route_point_via:()=>KD,pcb_trace_route_point_wire:()=>ZD,pcb_via:()=>rj,pcb_via_clearance_error:()=>Uj,point:()=>Zt,point3:()=>Fh,point_with_bulge:()=>RD,port_arrangement:()=>hD,position:()=>jdt,position3:()=>Bdt,resistance:()=>Lc,ring:()=>H3,rotation:()=>He,route_hint_point:()=>Ji,schematic_arc:()=>yD,schematic_box:()=>aD,schematic_circle:()=>_D,schematic_component:()=>dD,schematic_component_port_arrangement_by_sides:()=>pD,schematic_component_port_arrangement_by_size:()=>uD,schematic_debug_line:()=>kD,schematic_debug_object:()=>MD,schematic_debug_object_base:()=>Xx,schematic_debug_point:()=>TD,schematic_debug_rect:()=>PD,schematic_error:()=>wD,schematic_group:()=>CD,schematic_layout_error:()=>SD,schematic_line:()=>fD,schematic_manual_edit_conflict_warning:()=>Ux,schematic_net_label:()=>vD,schematic_path:()=>cD,schematic_pin_styles:()=>lD,schematic_port:()=>bD,schematic_rect:()=>mD,schematic_sheet:()=>AD,schematic_table:()=>ID,schematic_table_cell:()=>ND,schematic_text:()=>xD,schematic_trace:()=>gD,schematic_voltage_probe:()=>ED,simulation_ac_voltage_source:()=>Kj,simulation_dc_voltage_source:()=>Zj,simulation_experiment:()=>tB,simulation_switch:()=>nB,simulation_transient_voltage_graph:()=>eB,simulation_unknown_experiment_error:()=>rB,simulation_voltage_probe:()=>iB,simulation_voltage_source:()=>Jj,size:()=>W3,source_board:()=>iD,source_component_base:()=>pi,source_failed_to_create_component_error:()=>q$,source_group:()=>eD,source_manually_placed_via:()=>sD,source_missing_property_error:()=>W$,source_net:()=>nD,source_pcb_ground_plane:()=>rD,source_pin_missing_trace_warning:()=>dM,source_pin_must_be_connected_error:()=>oD,source_port:()=>Q$,source_project_metadata:()=>pM,source_property_ignored_warning:()=>Z$,source_simple_battery:()=>tM,source_simple_capacitor:()=>q3,source_simple_chip:()=>J3,source_simple_crystal:()=>H$,source_simple_diode:()=>Bx,source_simple_ground:()=>G$,source_simple_inductor:()=>eM,source_simple_led:()=>K3,source_simple_mosfet:()=>lM,source_simple_pin_header:()=>rM,source_simple_pinout:()=>sM,source_simple_potentiometer:()=>iM,source_simple_power_source:()=>Q3,source_simple_push_button:()=>nM,source_simple_resistor:()=>Z3,source_simple_resonator:()=>oM,source_simple_switch:()=>uM,source_simple_test_point:()=>cM,source_simple_transistor:()=>aM,source_simple_voltage_probe:()=>K$,source_trace:()=>tD,source_trace_not_connected_error:()=>hM,supplier_name:()=>Im,time:()=>Ddt,timestamp:()=>U$,unknown_error_finding_part:()=>Yx,visible_layer:()=>Ks,voltage:()=>Si,wave_shape:()=>qj});function zdt(n){for(let[e,t]of Object.entries(X$))if(n in t.variants)return{baseUnit:t.baseUnit,conversionFactor:t.variants[n]};return{baseUnit:n,conversionFactor:1}}function Zs(n){if(n==null)return{parsedUnit:null,unitOfValue:null,value:null};if(typeof n=="string"&&n.match(/^-?[\d\.]+$/))return{value:Number.parseFloat(n),parsedUnit:null,unitOfValue:null};if(typeof n=="number")return{value:n,parsedUnit:null,unitOfValue:null};if(typeof n=="object"&&"x"in n&&"y"in n){let{parsedUnit:a,unitOfValue:c}=Zs(n.x),l=Zs(n.x),u=Zs(n.y);return l.value===null||u.value===null?{parsedUnit:null,unitOfValue:null,value:null}:{parsedUnit:a,unitOfValue:c,value:{x:l.value,y:u.value}}}let t=n.toString().split("").reverse().join("").match(/[^\d\s]+/)?.[0];if(!t)throw new Error(`Could not determine unit: "${n}"`);let i=t.split("").reverse().join(""),r=n.slice(0,-i.length);if(i in Y$&&!V3.has(i)){let a=Y$[i];return{parsedUnit:null,unitOfValue:null,value:Number.parseFloat(r)*a}}let{baseUnit:s,conversionFactor:o}=zdt(i);return{parsedUnit:i,unitOfValue:s,value:o*Number.parseFloat(r)}}var X$,V3,Y$,Lc,ba,jx,Si,D,ur,Y,$dt,ng,Ddt,lr,U$,He,V$,ft,zh,Zt,jdt,Fh,Bdt,W3,Ydt,Nt,ig,Im,pi,q3,Z3,Bx,K3,G$,J3,Q3,Xdt,tM,eM,nM,iM,H$,rM,sM,oM,aM,cM,lM,uM,pM,W$,q$,hM,Z$,dM,K$,J$,Q$,tD,eD,nD,iD,rD,Nm,G3,pe,Ks,sD,oD,Yx,aD,cD,lD,uD,pD,hD,dD,fD,mD,_D,yD,gD,Udt,xD,bD,vD,wD,SD,Xx,PD,kD,TD,MD,ED,Ux,CD,ID,ND,AD,RD,H3,OD,LD,Vdt,Ji,FD,zD,Gdt,$D,Hdt,DD,Wdt,jD,qdt,BD,Zdt,YD,Kdt,XD,Jdt,Qdt,tft,eft,nft,ift,UD,VD,rft,sft,oft,GD,aft,cft,HD,lft,uft,pft,hft,dft,WD,qD,ZD,KD,Vx,JD,QD,tj,ej,nj,ij,rj,sj,oj,aj,cj,lj,uj,pj,hj,dj,fj,mj,_j,yj,gj,xj,bj,vj,wj,Sj,Pj,kj,Tj,Gx,Mj,Ej,Cj,Ij,Nj,Aj,Am,Hx,Rj,Oj,Wx,Lj,Fj,zj,$j,fM,Dj,jj,Bj,Yj,Xj,Rm,Uj,Vj,Gj,Hj,Wj,qj,fft,Zj,Kj,Jj,Qj,tB,eB,nB,iB,rB,sB,$h,wt=qt(()=>{"use strict";Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();X$={Hz:{baseUnit:"Hz",variants:{MHz:1e6,kHz:1e3,Hz:1}},g:{baseUnit:"g",variants:{kg:1e3,g:1}},\u03A9:{baseUnit:"\u03A9",variants:{m\u03A9:.001,\u03A9:1,k\u03A9:1e3,K\u03A9:1e3,kohm:1e3,M\u03A9:1e6,G\u03A9:1e9,T\u03A9:1e12}},V:{baseUnit:"V",variants:{mV:.001,V:1,kV:1e3,KV:1e3,MV:1e6,GV:1e9,TV:1e12}},A:{baseUnit:"A",variants:{\u00B5A:1e-6,mA:.001,ma:.001,A:1,kA:1e3,MA:1e6}},F:{baseUnit:"F",variants:{pF:1e-12,nF:1e-9,\u00B5F:1e-6,uF:1e-6,mF:.001,F:1}},ml:{baseUnit:"ml",variants:{ml:1,mL:1,l:1e3,L:1e3}},deg:{baseUnit:"deg",variants:{rad:180/Math.PI}},ms:{baseUnit:"ms",variants:{fs:1e-12,ps:1e-9,ns:1e-6,us:.001,\u00B5s:.001,ms:1,s:1e3}},mm:{baseUnit:"mm",variants:{nm:1e-6,\u00B5m:.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}}},V3=new Set;for(let[n,e]of Object.entries(X$)){V3.add(n);for(let t of Object.keys(e.variants))V3.add(t)}Y$={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,\u00B5:1e-6,nano:1e-9,n:1e-9,pico:1e-12,p:1e-12};Lc=p.string().or(p.number()).transform(n=>Zs(n).value),ba=p.string().or(p.number()).transform(n=>Zs(n).value).transform(n=>Number.parseFloat(n.toPrecision(12))),jx=p.string().or(p.number()).transform(n=>Zs(n).value),Si=p.string().or(p.number()).transform(n=>Zs(n).value),D=p.string().or(p.number()).transform(n=>Zs(n).value),ur=p.string().or(p.number()).transform(n=>Zs(n).value),Y=D,$dt=p.string().or(p.number()).transform(n=>Zs(n).value),ng=p.string().or(p.number()).transform(n=>Zs(n).value),Ddt=ng,lr=ng,U$=p.string().datetime(),He=p.string().or(p.number()).transform(n=>typeof n=="number"?n:n.endsWith("deg")?Number.parseFloat(n.split("deg")[0]):n.endsWith("rad")?Number.parseFloat(n.split("rad")[0])*180/Math.PI:Number.parseFloat(n)),V$=p.number().or(p.string().endsWith("mAh")).transform(n=>{if(typeof n=="string"){let e=n.replace("mAh",""),t=Number.parseFloat(e);if(Number.isNaN(t))throw new Error("Invalid capacity");return t}return n}).describe("Battery capacity in mAh"),ft=n=>{};ft("extra props b");ft("missing props b");ft(!0);ft("mismatched prop types: a");zh=n=>{};zh(!0);zh('T1 has extra: "c", T2 has extra: "d"');zh('T1 has extra: "c"');zh('T2 has extra: "c"');zh('T1 has extra: "d", T2 has extra: "c"');zh(!0);Zt=p.object({x:Y,y:Y}),jdt=Zt;ft(!0);ft(!0);Fh=p.object({x:Y,y:Y,z:Y}),Bdt=Fh;ft(!0);W3=p.object({width:p.number(),height:p.number()});ft(!0);Ydt=n=>{let e="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";return Array.from({length:n},()=>e[Math.floor(Math.random()*e.length)]).join("")},Nt=n=>p.string().optional().default(()=>`${n}_${Ydt(10)}`),ig=p.enum(["top_left","top_center","top_right","center_left","center","center_right","bottom_left","bottom_center","bottom_right"]);ft(!0);Im=p.enum(["jlcpcb","macrofab","pcbway","digikey","mouser","lcsc"]);ft(!0);pi=p.object({type:p.literal("source_component"),ftype:p.string().optional(),source_component_id:p.string(),name:p.string(),manufacturer_part_number:p.string().optional(),supplier_part_numbers:p.record(Im,p.array(p.string())).optional(),display_value:p.string().optional(),are_pins_interchangeable:p.boolean().optional(),internally_connected_source_port_ids:p.array(p.array(p.string())).optional(),source_group_id:p.string().optional(),subcircuit_id:p.string().optional()});ft(!0);q3=pi.extend({ftype:p.literal("simple_capacitor"),capacitance:ba,max_voltage_rating:Si.optional(),display_capacitance:p.string().optional(),max_decoupling_trace_length:Y.optional()});ft(!0);Z3=pi.extend({ftype:p.literal("simple_resistor"),resistance:Lc,display_resistance:p.string().optional()});ft(!0);Bx=pi.extend({ftype:p.literal("simple_diode")});ft(!0);K3=Bx.extend({ftype:p.literal("simple_led"),color:p.string().optional(),wavelength:p.string().optional()});ft(!0);G$=pi.extend({ftype:p.literal("simple_ground")});ft(!0);J3=pi.extend({ftype:p.literal("simple_chip")});ft(!0);Q3=pi.extend({ftype:p.literal("simple_power_source"),voltage:Si});ft(!0);Xdt=pi.extend({ftype:p.literal("simple_fuse"),current_rating_amps:p.number().describe("Nominal current in amps the fuse is rated for"),voltage_rating_volts:p.number().describe("Voltage rating in volts, e.g. \xB15V would be 5")});ft(!0);tM=pi.extend({ftype:p.literal("simple_battery"),capacity:V$});ft(!0);eM=pi.extend({ftype:p.literal("simple_inductor"),inductance:jx,max_current_rating:p.number().optional()});ft(!0);nM=pi.extend({ftype:p.literal("simple_push_button")});ft(!0);iM=pi.extend({ftype:p.literal("simple_potentiometer"),max_resistance:Lc});ft(!0);H$=pi.extend({ftype:p.literal("simple_crystal"),frequency:p.number().describe("Frequency in Hz"),load_capacitance:p.number().optional().describe("Load capacitance in pF")});ft(!0);rM=pi.extend({ftype:p.literal("simple_pin_header"),pin_count:p.number(),gender:p.enum(["male","female"]).optional().default("male")});ft(!0);sM=pi.extend({ftype:p.literal("simple_pinout")});ft(!0);oM=pi.extend({ftype:p.literal("simple_resonator"),load_capacitance:ba,equivalent_series_resistance:Lc.optional(),frequency:ur});ft(!0);aM=pi.extend({ftype:p.literal("simple_transistor"),transistor_type:p.enum(["npn","pnp"])});ft(!0);cM=pi.extend({ftype:p.literal("simple_test_point"),footprint_variant:p.enum(["pad","through_hole"]).optional(),pad_shape:p.enum(["rect","circle"]).optional(),pad_diameter:p.union([p.number(),p.string()]).optional(),hole_diameter:p.union([p.number(),p.string()]).optional(),width:p.union([p.number(),p.string()]).optional(),height:p.union([p.number(),p.string()]).optional()});ft(!0);lM=pi.extend({ftype:p.literal("simple_mosfet"),channel_type:p.enum(["n","p"]),mosfet_mode:p.enum(["enhancement","depletion"])});ft(!0);uM=pi.extend({ftype:p.literal("simple_switch")});ft(!0);pM=p.object({type:p.literal("source_project_metadata"),name:p.string().optional(),software_used_string:p.string().optional(),project_url:p.string().optional(),created_at:U$.optional()});ft(!0);W$=p.object({type:p.literal("source_missing_property_error"),source_missing_property_error_id:Nt("source_missing_property_error"),source_component_id:p.string(),property_name:p.string(),subcircuit_id:p.string().optional(),error_type:p.literal("source_missing_property_error").default("source_missing_property_error"),message:p.string()}).describe("The source code is missing a property");ft(!0);q$=p.object({type:p.literal("source_failed_to_create_component_error"),source_failed_to_create_component_error_id:Nt("source_failed_to_create_component_error"),error_type:p.literal("source_failed_to_create_component_error").default("source_failed_to_create_component_error"),component_name:p.string().optional(),subcircuit_id:p.string().optional(),parent_source_component_id:p.string().optional(),message:p.string(),pcb_center:p.object({x:p.number().optional(),y:p.number().optional()}).optional(),schematic_center:p.object({x:p.number().optional(),y:p.number().optional()}).optional()}).describe("Error emitted when a component fails to be constructed");ft(!0);hM=p.object({type:p.literal("source_trace_not_connected_error"),source_trace_not_connected_error_id:Nt("source_trace_not_connected_error"),error_type:p.literal("source_trace_not_connected_error").default("source_trace_not_connected_error"),message:p.string(),subcircuit_id:p.string().optional(),source_group_id:p.string().optional(),source_trace_id:p.string().optional(),connected_source_port_ids:p.array(p.string()).optional(),selectors_not_found:p.array(p.string()).optional()}).describe("Occurs when a source trace selector does not match any ports");ft(!0);Z$=p.object({type:p.literal("source_property_ignored_warning"),source_property_ignored_warning_id:Nt("source_property_ignored_warning"),source_component_id:p.string(),property_name:p.string(),subcircuit_id:p.string().optional(),error_type:p.literal("source_property_ignored_warning").default("source_property_ignored_warning"),message:p.string()}).describe("The source property was ignored");ft(!0);dM=p.object({type:p.literal("source_pin_missing_trace_warning"),source_pin_missing_trace_warning_id:Nt("source_pin_missing_trace_warning"),warning_type:p.literal("source_pin_missing_trace_warning").default("source_pin_missing_trace_warning"),message:p.string(),source_component_id:p.string(),source_port_id:p.string(),subcircuit_id:p.string().optional()}).describe("Warning emitted when a source component pin is missing a trace connection");ft(!0);K$=pi.extend({ftype:p.literal("simple_voltage_probe")});ft(!0);J$=p.union([Z3,q3,Bx,K3,G$,J3,Q3,tM,eM,nM,iM,H$,rM,sM,oM,uM,aM,cM,lM,Xdt,K$,pM,W$,q$,hM,Z$,dM]);ft(!0);Q$=p.object({type:p.literal("source_port"),pin_number:p.number().optional(),port_hints:p.array(p.string()).optional(),name:p.string(),source_port_id:p.string(),source_component_id:p.string().optional(),source_group_id:p.string().optional(),subcircuit_id:p.string().optional(),subcircuit_connectivity_map_key:p.string().optional(),must_be_connected:p.boolean().optional()});ft(!0);tD=p.object({type:p.literal("source_trace"),source_trace_id:p.string(),connected_source_port_ids:p.array(p.string()),connected_source_net_ids:p.array(p.string()),subcircuit_id:p.string().optional(),subcircuit_connectivity_map_key:p.string().optional(),max_length:p.number().optional(),min_trace_thickness:p.number().optional(),display_name:p.string().optional()});ft(!0);eD=p.object({type:p.literal("source_group"),source_group_id:p.string(),subcircuit_id:p.string().optional(),parent_subcircuit_id:p.string().optional(),parent_source_group_id:p.string().optional(),is_subcircuit:p.boolean().optional(),show_as_schematic_box:p.boolean().optional(),name:p.string().optional(),was_automatically_named:p.boolean().optional()});ft(!0);nD=p.object({type:p.literal("source_net"),source_net_id:p.string(),name:p.string(),member_source_group_ids:p.array(p.string()),is_power:p.boolean().optional(),is_ground:p.boolean().optional(),is_digital_signal:p.boolean().optional(),is_analog_signal:p.boolean().optional(),is_positive_voltage_source:p.boolean().optional(),trace_width:p.number().optional(),subcircuit_id:p.string().optional(),subcircuit_connectivity_map_key:p.string().optional()});ft(!0);iD=p.object({type:p.literal("source_board"),source_board_id:p.string(),source_group_id:p.string(),title:p.string().optional()}).describe("Defines a board in the source domain");ft(!0);rD=p.object({type:p.literal("source_pcb_ground_plane"),source_pcb_ground_plane_id:p.string(),source_group_id:p.string(),source_net_id:p.string(),subcircuit_id:p.string().optional()}).describe("Defines a ground plane in the source domain");ft(!0);Nm=["top","bottom","inner1","inner2","inner3","inner4","inner5","inner6"],G3=p.enum(Nm),pe=G3.or(p.object({name:G3})).transform(n=>typeof n=="string"?n:n.name);ft(!0);Ks=p.enum(["top","bottom"]),sD=p.object({type:p.literal("source_manually_placed_via"),source_manually_placed_via_id:p.string(),source_group_id:p.string(),source_net_id:p.string(),subcircuit_id:p.string().optional(),source_trace_id:p.string().optional()}).describe("Defines a via that is manually placed in the source domain");ft(!0);oD=p.object({type:p.literal("source_pin_must_be_connected_error"),source_pin_must_be_connected_error_id:Nt("source_pin_must_be_connected_error"),error_type:p.literal("source_pin_must_be_connected_error").default("source_pin_must_be_connected_error"),message:p.string(),source_component_id:p.string(),source_port_id:p.string(),subcircuit_id:p.string().optional()}).describe("Error emitted when a pin with mustBeConnected attribute is not connected to any trace");ft(!0);Yx=p.object({type:p.literal("unknown_error_finding_part"),unknown_error_finding_part_id:Nt("unknown_error_finding_part"),error_type:p.literal("unknown_error_finding_part").default("unknown_error_finding_part"),message:p.string(),source_component_id:p.string().optional(),subcircuit_id:p.string().optional()}).describe("Error emitted when an unexpected error occurs while finding a part");ft(!0);aD=p.object({type:p.literal("schematic_box"),schematic_component_id:p.string().optional(),width:Y,height:Y,is_dashed:p.boolean().default(!1),x:Y,y:Y,subcircuit_id:p.string().optional()}).describe("Draws a box on the schematic");ft(!0);cD=p.object({type:p.literal("schematic_path"),schematic_component_id:p.string(),fill_color:p.enum(["red","blue"]).optional(),is_filled:p.boolean().optional(),points:p.array(Zt),subcircuit_id:p.string().optional()});ft(!0);lD=p.record(p.object({left_margin:D.optional(),right_margin:D.optional(),top_margin:D.optional(),bottom_margin:D.optional()})),uD=p.object({left_size:p.number(),right_size:p.number(),top_size:p.number().optional(),bottom_size:p.number().optional()});ft(!0);pD=p.object({left_side:p.object({pins:p.array(p.number()),direction:p.enum(["top-to-bottom","bottom-to-top"]).optional()}).optional(),right_side:p.object({pins:p.array(p.number()),direction:p.enum(["top-to-bottom","bottom-to-top"]).optional()}).optional(),top_side:p.object({pins:p.array(p.number()),direction:p.enum(["left-to-right","right-to-left"]).optional()}).optional(),bottom_side:p.object({pins:p.array(p.number()),direction:p.enum(["left-to-right","right-to-left"]).optional()}).optional()});ft(!0);hD=p.union([uD,pD]),dD=p.object({type:p.literal("schematic_component"),size:W3,center:Zt,source_component_id:p.string().optional(),schematic_component_id:p.string(),pin_spacing:D.optional(),pin_styles:lD.optional(),box_width:D.optional(),symbol_name:p.string().optional(),port_arrangement:hD.optional(),port_labels:p.record(p.string()).optional(),symbol_display_value:p.string().optional(),subcircuit_id:p.string().optional(),schematic_group_id:p.string().optional(),is_schematic_group:p.boolean().optional(),source_group_id:p.string().optional(),is_box_with_pins:p.boolean().optional().default(!0)});ft(!0);fD=p.object({type:p.literal("schematic_line"),schematic_line_id:Nt("schematic_line"),schematic_component_id:p.string(),x1:Y,y1:Y,x2:Y,y2:Y,stroke_width:Y.nullable().optional(),color:p.string().default("#000000"),is_dashed:p.boolean().default(!1),subcircuit_id:p.string().optional()}).describe("Draws a styled line on the schematic");ft(!0);mD=p.object({type:p.literal("schematic_rect"),schematic_rect_id:Nt("schematic_rect"),schematic_component_id:p.string(),center:Zt,width:Y,height:Y,rotation:He.default(0),stroke_width:Y.nullable().optional(),color:p.string().default("#000000"),is_filled:p.boolean().default(!1),fill_color:p.string().optional(),is_dashed:p.boolean().default(!1),subcircuit_id:p.string().optional()}).describe("Draws a styled rectangle on the schematic");ft(!0);_D=p.object({type:p.literal("schematic_circle"),schematic_circle_id:Nt("schematic_circle"),schematic_component_id:p.string(),center:Zt,radius:Y,stroke_width:Y.nullable().optional(),color:p.string().default("#000000"),is_filled:p.boolean().default(!1),fill_color:p.string().optional(),is_dashed:p.boolean().default(!1),subcircuit_id:p.string().optional()}).describe("Draws a styled circle on the schematic");ft(!0);yD=p.object({type:p.literal("schematic_arc"),schematic_arc_id:Nt("schematic_arc"),schematic_component_id:p.string(),center:Zt,radius:Y,start_angle_degrees:He,end_angle_degrees:He,direction:p.enum(["clockwise","counterclockwise"]).default("counterclockwise"),stroke_width:Y.nullable().optional(),color:p.string().default("#000000"),is_dashed:p.boolean().default(!1),subcircuit_id:p.string().optional()}).describe("Draws a styled arc on the schematic");ft(!0);gD=p.object({type:p.literal("schematic_trace"),schematic_trace_id:p.string(),source_trace_id:p.string().optional(),junctions:p.array(p.object({x:p.number(),y:p.number()})),edges:p.array(p.object({from:p.object({x:p.number(),y:p.number()}),to:p.object({x:p.number(),y:p.number()}),is_crossing:p.boolean().optional(),from_schematic_port_id:p.string().optional(),to_schematic_port_id:p.string().optional()})),subcircuit_id:p.string().optional(),subcircuit_connectivity_map_key:p.string().optional()});ft(!0);Udt=p.enum(["center","left","right","top","bottom"]);ft(!0);xD=p.object({type:p.literal("schematic_text"),schematic_component_id:p.string().optional(),schematic_text_id:p.string(),text:p.string(),font_size:p.number().default(.18),position:p.object({x:Y,y:Y}),rotation:p.number().default(0),anchor:p.union([Udt.describe("legacy"),ig]).default("center"),color:p.string().default("#000000"),subcircuit_id:p.string().optional()});ft(!0);bD=p.object({type:p.literal("schematic_port"),schematic_port_id:p.string(),source_port_id:p.string(),schematic_component_id:p.string().optional(),center:Zt,facing_direction:p.enum(["up","down","left","right"]).optional(),distance_from_component_edge:p.number().optional(),side_of_component:p.enum(["top","bottom","left","right"]).optional(),true_ccw_index:p.number().optional(),pin_number:p.number().optional(),display_pin_label:p.string().optional(),subcircuit_id:p.string().optional(),is_connected:p.boolean().optional(),has_input_arrow:p.boolean().optional(),has_output_arrow:p.boolean().optional()}).describe("Defines a port on a schematic component");ft(!0);vD=p.object({type:p.literal("schematic_net_label"),schematic_net_label_id:Nt("schematic_net_label"),schematic_trace_id:p.string().optional(),source_trace_id:p.string().optional(),source_net_id:p.string(),center:Zt,anchor_position:Zt.optional(),anchor_side:p.enum(["top","bottom","left","right"]),text:p.string(),symbol_name:p.string().optional(),is_movable:p.boolean().optional(),subcircuit_id:p.string().optional()});ft(!0);wD=p.object({type:p.literal("schematic_error"),schematic_error_id:p.string(),error_type:p.literal("schematic_port_not_found").default("schematic_port_not_found"),message:p.string(),subcircuit_id:p.string().optional()}).describe("Defines a schematic error on the schematic");ft(!0);SD=p.object({type:p.literal("schematic_layout_error"),schematic_layout_error_id:Nt("schematic_layout_error"),error_type:p.literal("schematic_layout_error").default("schematic_layout_error"),message:p.string(),source_group_id:p.string(),schematic_group_id:p.string(),subcircuit_id:p.string().optional()}).describe("Error emitted when schematic layout fails for a group");ft(!0);Xx=p.object({type:p.literal("schematic_debug_object"),label:p.string().optional(),subcircuit_id:p.string().optional()}),PD=Xx.extend({shape:p.literal("rect"),center:Zt,size:W3}),kD=Xx.extend({shape:p.literal("line"),start:Zt,end:Zt}),TD=Xx.extend({shape:p.literal("point"),center:Zt}),MD=p.discriminatedUnion("shape",[PD,kD,TD]);ft(!0);ED=p.object({type:p.literal("schematic_voltage_probe"),schematic_voltage_probe_id:p.string(),source_component_id:p.string().optional(),name:p.string().optional(),position:Zt,schematic_trace_id:p.string(),voltage:Si.optional(),subcircuit_id:p.string().optional(),color:p.string().optional()}).describe("Defines a voltage probe measurement point on a schematic trace");ft(!0);Ux=p.object({type:p.literal("schematic_manual_edit_conflict_warning"),schematic_manual_edit_conflict_warning_id:Nt("schematic_manual_edit_conflict_warning"),warning_type:p.literal("schematic_manual_edit_conflict_warning").default("schematic_manual_edit_conflict_warning"),message:p.string(),schematic_component_id:p.string(),schematic_group_id:p.string().optional(),subcircuit_id:p.string().optional(),source_component_id:p.string()}).describe("Warning emitted when a component has both manual placement and explicit schX/schY coordinates");ft(!0);CD=p.object({type:p.literal("schematic_group"),schematic_group_id:Nt("schematic_group"),source_group_id:p.string(),is_subcircuit:p.boolean().optional(),subcircuit_id:p.string().optional(),width:D,height:D,center:Zt,schematic_component_ids:p.array(p.string()),show_as_schematic_box:p.boolean().optional(),name:p.string().optional(),description:p.string().optional()}).describe("Defines a group of components on the schematic");ft(!0);ID=p.object({type:p.literal("schematic_table"),schematic_table_id:Nt("schematic_table"),anchor_position:Zt,column_widths:p.array(Y),row_heights:p.array(Y),cell_padding:Y.optional(),border_width:Y.optional(),subcircuit_id:p.string().optional(),schematic_component_id:p.string().optional(),anchor:ig.optional()}).describe("Defines a table on the schematic");ft(!0);ND=p.object({type:p.literal("schematic_table_cell"),schematic_table_cell_id:Nt("schematic_table_cell"),schematic_table_id:p.string(),start_row_index:p.number(),end_row_index:p.number(),start_column_index:p.number(),end_column_index:p.number(),text:p.string().optional(),center:Zt,width:Y,height:Y,horizontal_align:p.enum(["left","center","right"]).optional(),vertical_align:p.enum(["top","middle","bottom"]).optional(),font_size:Y.optional(),subcircuit_id:p.string().optional()}).describe("Defines a cell within a schematic_table");ft(!0);AD=p.object({type:p.literal("schematic_sheet"),schematic_sheet_id:Nt("schematic_sheet"),name:p.string().optional(),subcircuit_id:p.string().optional()}).describe("Defines a schematic sheet or page that components can be placed on");ft(!0);RD=p.object({x:Y,y:Y,bulge:p.number().optional()});ft(!0);H3=p.object({vertices:p.array(RD)});ft(!0);OD=p.object({outer_ring:H3,inner_rings:p.array(H3).default([])});ft(!0);LD=p.object({x:Y,y:Y,via:p.boolean().optional(),via_to_layer:pe.optional()}),Vdt=p.array(LD);ft(!0);ft(!0);Ji=p.object({x:Y,y:Y,via:p.boolean().optional(),to_layer:pe.optional(),trace_width:Y.optional()});ft(!0);FD=p.object({type:p.literal("pcb_component"),pcb_component_id:Nt("pcb_component"),source_component_id:p.string(),center:Zt,layer:pe,rotation:He,width:D,height:D,do_not_place:p.boolean().optional(),subcircuit_id:p.string().optional(),pcb_group_id:p.string().optional(),position_mode:p.enum(["packed","relative_to_group_anchor","none"]).optional(),positioned_relative_to_pcb_group_id:p.string().optional(),obstructs_within_bounds:p.boolean().default(!0).describe("Does this component take up all the space within its bounds on a layer. This is generally true except for when separated pin headers are being represented by a single component (in which case, chips can be placed between the pin headers) or for tall modules where chips fit underneath")}).describe("Defines a component on the PCB");ft(!0);zD=p.object({type:p.literal("pcb_hole"),pcb_hole_id:Nt("pcb_hole"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),hole_shape:p.literal("circle"),hole_diameter:p.number(),x:Y,y:Y,is_covered_with_solder_mask:p.boolean().optional(),soldermask_margin:p.number().optional()}),Gdt=zD.describe("Defines a circular hole on the PCB");ft(!0);$D=p.object({type:p.literal("pcb_hole"),pcb_hole_id:Nt("pcb_hole"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),hole_shape:p.literal("rect"),hole_width:p.number(),hole_height:p.number(),x:Y,y:Y,is_covered_with_solder_mask:p.boolean().optional(),soldermask_margin:p.number().optional()}),Hdt=$D.describe("Defines a rectangular (square-capable) hole on the PCB. Use equal width/height for square.");ft(!0);DD=p.object({type:p.literal("pcb_hole"),pcb_hole_id:Nt("pcb_hole"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),hole_shape:p.enum(["circle","square"]),hole_diameter:p.number(),x:Y,y:Y,is_covered_with_solder_mask:p.boolean().optional(),soldermask_margin:p.number().optional()}),Wdt=DD.describe("Defines a circular or square hole on the PCB");ft(!0);jD=p.object({type:p.literal("pcb_hole"),pcb_hole_id:Nt("pcb_hole"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),hole_shape:p.literal("oval"),hole_width:p.number(),hole_height:p.number(),x:Y,y:Y,is_covered_with_solder_mask:p.boolean().optional(),soldermask_margin:p.number().optional()}),qdt=jD.describe("Defines an oval hole on the PCB");ft(!0);BD=p.object({type:p.literal("pcb_hole"),pcb_hole_id:Nt("pcb_hole"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),hole_shape:p.literal("pill"),hole_width:p.number(),hole_height:p.number(),x:Y,y:Y,is_covered_with_solder_mask:p.boolean().optional(),soldermask_margin:p.number().optional()}),Zdt=BD.describe("Defines a pill-shaped hole on the PCB");ft(!0);YD=p.object({type:p.literal("pcb_hole"),pcb_hole_id:Nt("pcb_hole"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),hole_shape:p.literal("rotated_pill"),hole_width:p.number(),hole_height:p.number(),x:Y,y:Y,ccw_rotation:He,is_covered_with_solder_mask:p.boolean().optional(),soldermask_margin:p.number().optional()}),Kdt=YD.describe("Defines a rotated pill-shaped hole on the PCB");ft(!0);XD=DD.or(jD).or(BD).or(YD).or(zD).or($D),Jdt=p.object({type:p.literal("pcb_plated_hole"),shape:p.literal("circle"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),outer_diameter:p.number(),hole_diameter:p.number(),x:Y,y:Y,layers:p.array(pe),port_hints:p.array(p.string()).optional(),pcb_component_id:p.string().optional(),pcb_port_id:p.string().optional(),pcb_plated_hole_id:Nt("pcb_plated_hole"),soldermask_margin:p.number().optional(),is_covered_with_solder_mask:p.boolean().optional()}),Qdt=p.object({type:p.literal("pcb_plated_hole"),shape:p.enum(["oval","pill"]),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),outer_width:p.number(),outer_height:p.number(),hole_width:p.number(),hole_height:p.number(),is_covered_with_solder_mask:p.boolean().optional(),x:Y,y:Y,ccw_rotation:He,layers:p.array(pe),port_hints:p.array(p.string()).optional(),pcb_component_id:p.string().optional(),pcb_port_id:p.string().optional(),pcb_plated_hole_id:Nt("pcb_plated_hole"),soldermask_margin:p.number().optional()}),tft=p.object({type:p.literal("pcb_plated_hole"),shape:p.literal("circular_hole_with_rect_pad"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),hole_shape:p.literal("circle"),pad_shape:p.literal("rect"),hole_diameter:p.number(),rect_pad_width:p.number(),rect_pad_height:p.number(),rect_border_radius:p.number().optional(),hole_offset_x:Y.default(0),hole_offset_y:Y.default(0),is_covered_with_solder_mask:p.boolean().optional(),x:Y,y:Y,layers:p.array(pe),port_hints:p.array(p.string()).optional(),pcb_component_id:p.string().optional(),pcb_port_id:p.string().optional(),pcb_plated_hole_id:Nt("pcb_plated_hole"),soldermask_margin:p.number().optional()}),eft=p.object({type:p.literal("pcb_plated_hole"),shape:p.literal("pill_hole_with_rect_pad"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),hole_shape:p.literal("pill"),pad_shape:p.literal("rect"),hole_width:p.number(),hole_height:p.number(),rect_pad_width:p.number(),rect_pad_height:p.number(),rect_border_radius:p.number().optional(),hole_offset_x:Y.default(0),hole_offset_y:Y.default(0),is_covered_with_solder_mask:p.boolean().optional(),x:Y,y:Y,layers:p.array(pe),port_hints:p.array(p.string()).optional(),pcb_component_id:p.string().optional(),pcb_port_id:p.string().optional(),pcb_plated_hole_id:Nt("pcb_plated_hole"),soldermask_margin:p.number().optional()}),nft=p.object({type:p.literal("pcb_plated_hole"),shape:p.literal("rotated_pill_hole_with_rect_pad"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),hole_shape:p.literal("rotated_pill"),pad_shape:p.literal("rect"),hole_width:p.number(),hole_height:p.number(),hole_ccw_rotation:He,rect_pad_width:p.number(),rect_pad_height:p.number(),rect_border_radius:p.number().optional(),rect_ccw_rotation:He,hole_offset_x:Y.default(0),hole_offset_y:Y.default(0),is_covered_with_solder_mask:p.boolean().optional(),x:Y,y:Y,layers:p.array(pe),port_hints:p.array(p.string()).optional(),pcb_component_id:p.string().optional(),pcb_port_id:p.string().optional(),pcb_plated_hole_id:Nt("pcb_plated_hole"),soldermask_margin:p.number().optional()}),ift=p.object({type:p.literal("pcb_plated_hole"),shape:p.literal("hole_with_polygon_pad"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),hole_shape:p.enum(["circle","oval","pill","rotated_pill"]),hole_diameter:p.number().optional(),hole_width:p.number().optional(),hole_height:p.number().optional(),pad_outline:p.array(p.object({x:Y,y:Y})).min(3),hole_offset_x:Y.default(0),hole_offset_y:Y.default(0),is_covered_with_solder_mask:p.boolean().optional(),x:Y,y:Y,layers:p.array(pe),port_hints:p.array(p.string()).optional(),pcb_component_id:p.string().optional(),pcb_port_id:p.string().optional(),pcb_plated_hole_id:Nt("pcb_plated_hole"),soldermask_margin:p.number().optional()}),UD=p.union([Jdt,Qdt,tft,eft,nft,ift]);ft(!0);ft(!0);ft(!0);ft(!0);ft(!0);ft(!0);VD=p.object({type:p.literal("pcb_port"),pcb_port_id:Nt("pcb_port"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),source_port_id:p.string(),pcb_component_id:p.string().optional(),x:Y,y:Y,layers:p.array(pe),is_board_pinout:p.boolean().optional()}).describe("Defines a port on the PCB");ft(!0);rft=p.object({type:p.literal("pcb_smtpad"),shape:p.literal("circle"),pcb_smtpad_id:Nt("pcb_smtpad"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),x:Y,y:Y,radius:p.number(),layer:pe,port_hints:p.array(p.string()).optional(),pcb_component_id:p.string().optional(),pcb_port_id:p.string().optional(),is_covered_with_solder_mask:p.boolean().optional(),soldermask_margin:p.number().optional()}),sft=p.object({type:p.literal("pcb_smtpad"),shape:p.literal("rect"),pcb_smtpad_id:Nt("pcb_smtpad"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),x:Y,y:Y,width:p.number(),height:p.number(),rect_border_radius:p.number().optional(),corner_radius:p.number().optional(),layer:pe,port_hints:p.array(p.string()).optional(),pcb_component_id:p.string().optional(),pcb_port_id:p.string().optional(),is_covered_with_solder_mask:p.boolean().optional(),soldermask_margin:p.number().optional()}),oft=p.object({type:p.literal("pcb_smtpad"),shape:p.literal("rotated_rect"),pcb_smtpad_id:Nt("pcb_smtpad"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),x:Y,y:Y,width:p.number(),height:p.number(),rect_border_radius:p.number().optional(),corner_radius:p.number().optional(),ccw_rotation:He,layer:pe,port_hints:p.array(p.string()).optional(),pcb_component_id:p.string().optional(),pcb_port_id:p.string().optional(),is_covered_with_solder_mask:p.boolean().optional(),soldermask_margin:p.number().optional()}),GD=p.object({type:p.literal("pcb_smtpad"),shape:p.literal("pill"),pcb_smtpad_id:Nt("pcb_smtpad"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),x:Y,y:Y,width:p.number(),height:p.number(),radius:p.number(),layer:pe,port_hints:p.array(p.string()).optional(),pcb_component_id:p.string().optional(),pcb_port_id:p.string().optional(),is_covered_with_solder_mask:p.boolean().optional(),soldermask_margin:p.number().optional()}),aft=p.object({type:p.literal("pcb_smtpad"),shape:p.literal("rotated_pill"),pcb_smtpad_id:Nt("pcb_smtpad"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),x:Y,y:Y,width:p.number(),height:p.number(),radius:p.number(),ccw_rotation:He,layer:pe,port_hints:p.array(p.string()).optional(),pcb_component_id:p.string().optional(),pcb_port_id:p.string().optional(),is_covered_with_solder_mask:p.boolean().optional(),soldermask_margin:p.number().optional()}),cft=p.object({type:p.literal("pcb_smtpad"),shape:p.literal("polygon"),pcb_smtpad_id:Nt("pcb_smtpad"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),points:p.array(Zt),layer:pe,port_hints:p.array(p.string()).optional(),pcb_component_id:p.string().optional(),pcb_port_id:p.string().optional(),is_covered_with_solder_mask:p.boolean().optional(),soldermask_margin:p.number().optional()}),HD=p.discriminatedUnion("shape",[rft,sft,oft,aft,GD,cft]).describe("Defines an SMT pad on the PCB");ft(!0);ft(!0);ft(!0);ft(!0);ft(!0);ft(!0);lft=p.object({type:p.literal("pcb_solder_paste"),shape:p.literal("circle"),pcb_solder_paste_id:Nt("pcb_solder_paste"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),x:Y,y:Y,radius:p.number(),layer:pe,pcb_component_id:p.string().optional(),pcb_smtpad_id:p.string().optional()}),uft=p.object({type:p.literal("pcb_solder_paste"),shape:p.literal("rect"),pcb_solder_paste_id:Nt("pcb_solder_paste"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),x:Y,y:Y,width:p.number(),height:p.number(),layer:pe,pcb_component_id:p.string().optional(),pcb_smtpad_id:p.string().optional()}),pft=p.object({type:p.literal("pcb_solder_paste"),shape:p.literal("pill"),pcb_solder_paste_id:Nt("pcb_solder_paste"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),x:Y,y:Y,width:p.number(),height:p.number(),radius:p.number(),layer:pe,pcb_component_id:p.string().optional(),pcb_smtpad_id:p.string().optional()}),hft=p.object({type:p.literal("pcb_solder_paste"),shape:p.literal("rotated_rect"),pcb_solder_paste_id:Nt("pcb_solder_paste"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),x:Y,y:Y,width:p.number(),height:p.number(),ccw_rotation:Y,layer:pe,pcb_component_id:p.string().optional(),pcb_smtpad_id:p.string().optional()}),dft=p.object({type:p.literal("pcb_solder_paste"),shape:p.literal("oval"),pcb_solder_paste_id:Nt("pcb_solder_paste"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),x:Y,y:Y,width:p.number(),height:p.number(),layer:pe,pcb_component_id:p.string().optional(),pcb_smtpad_id:p.string().optional()}),WD=p.union([lft,uft,pft,hft,dft]).describe("Defines solderpaste on the PCB");ft(!0);ft(!0);ft(!0);ft(!0);ft(!0);qD=p.object({type:p.literal("pcb_text"),pcb_text_id:Nt("pcb_text"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),text:p.string(),center:Zt,layer:pe,width:D,height:D,lines:p.number(),align:p.enum(["bottom-left"])}).describe("Defines text on the PCB");ft(!0);ZD=p.object({route_type:p.literal("wire"),x:Y,y:Y,width:Y,start_pcb_port_id:p.string().optional(),end_pcb_port_id:p.string().optional(),layer:pe}),KD=p.object({route_type:p.literal("via"),x:Y,y:Y,hole_diameter:Y.optional(),outer_diameter:Y.optional(),from_layer:p.string(),to_layer:p.string()}),Vx=p.union([ZD,KD]),JD=p.object({type:p.literal("pcb_trace"),source_trace_id:p.string().optional(),pcb_component_id:p.string().optional(),pcb_trace_id:Nt("pcb_trace"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),route_thickness_mode:p.enum(["constant","interpolated"]).default("constant").optional(),route_order_index:p.number().optional(),should_round_corners:p.boolean().optional(),trace_length:p.number().optional(),highlight_color:p.string().optional(),route:p.array(Vx)}).describe("Defines a trace on the PCB");ft(!0);ft(!0);QD=p.object({type:p.literal("pcb_trace_error"),pcb_trace_error_id:Nt("pcb_trace_error"),error_type:p.literal("pcb_trace_error").default("pcb_trace_error"),message:p.string(),center:Zt.optional(),pcb_trace_id:p.string(),source_trace_id:p.string(),pcb_component_ids:p.array(p.string()),pcb_port_ids:p.array(p.string()),subcircuit_id:p.string().optional()}).describe("Defines a trace error on the PCB");ft(!0);tj=p.object({type:p.literal("pcb_trace_missing_error"),pcb_trace_missing_error_id:Nt("pcb_trace_missing_error"),error_type:p.literal("pcb_trace_missing_error").default("pcb_trace_missing_error"),message:p.string(),center:Zt.optional(),source_trace_id:p.string(),pcb_component_ids:p.array(p.string()),pcb_port_ids:p.array(p.string()),subcircuit_id:p.string().optional()}).describe("Defines an error when a source trace has no corresponding PCB trace");ft(!0);ej=p.object({type:p.literal("pcb_port_not_matched_error"),pcb_error_id:Nt("pcb_error"),error_type:p.literal("pcb_port_not_matched_error").default("pcb_port_not_matched_error"),message:p.string(),pcb_component_ids:p.array(p.string()),subcircuit_id:p.string().optional()}).describe("Defines a trace error on the PCB where a port is not matched");ft(!0);nj=p.object({type:p.literal("pcb_port_not_connected_error"),pcb_port_not_connected_error_id:Nt("pcb_port_not_connected_error"),error_type:p.literal("pcb_port_not_connected_error").default("pcb_port_not_connected_error"),message:p.string(),pcb_port_ids:p.array(p.string()),pcb_component_ids:p.array(p.string()),subcircuit_id:p.string().optional()}).describe("Defines an error when a pcb port is not connected to any trace");ft(!0);ij=p.object({type:p.literal("pcb_net"),pcb_net_id:Nt("pcb_net"),source_net_id:p.string().optional(),highlight_color:p.string().optional()}).describe("Defines a net on the PCB");ft(!0);rj=p.object({type:p.literal("pcb_via"),pcb_via_id:Nt("pcb_via"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),subcircuit_connectivity_map_key:p.string().optional(),x:Y,y:Y,outer_diameter:Y.default("0.6mm"),hole_diameter:Y.default("0.25mm"),from_layer:pe.optional(),to_layer:pe.optional(),layers:p.array(pe),pcb_trace_id:p.string().optional(),net_is_assignable:p.boolean().optional(),net_assigned:p.boolean().optional()}).describe("Defines a via on the PCB");ft(!0);sj=p.object({type:p.literal("pcb_board"),pcb_board_id:Nt("pcb_board"),pcb_panel_id:p.string().optional(),is_subcircuit:p.boolean().optional(),subcircuit_id:p.string().optional(),width:D.optional(),height:D.optional(),center:Zt,thickness:D.optional().default(1.4),num_layers:p.number().optional().default(4),outline:p.array(Zt).optional(),shape:p.enum(["rect","polygon"]).optional(),material:p.enum(["fr4","fr1"]).default("fr4")}).describe("Defines the board outline of the PCB");ft(!0);oj=p.object({type:p.literal("pcb_panel"),pcb_panel_id:Nt("pcb_panel"),width:D,height:D,center:Zt,covered_with_solder_mask:p.boolean().optional().default(!0)}).describe("Defines a PCB panel that can contain multiple boards");ft(!0);aj=p.object({type:p.literal("pcb_placement_error"),pcb_placement_error_id:Nt("pcb_placement_error"),error_type:p.literal("pcb_placement_error").default("pcb_placement_error"),message:p.string(),subcircuit_id:p.string().optional()}).describe("Defines a placement error on the PCB");ft(!0);cj=p.object({type:p.literal("pcb_trace_hint"),pcb_trace_hint_id:Nt("pcb_trace_hint"),pcb_port_id:p.string(),pcb_component_id:p.string(),route:p.array(Ji),subcircuit_id:p.string().optional()}).describe("A hint that can be used during generation of a PCB trace");ft(!0);lj=p.object({type:p.literal("pcb_silkscreen_line"),pcb_silkscreen_line_id:Nt("pcb_silkscreen_line"),pcb_component_id:p.string(),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),stroke_width:Y.default("0.1mm"),x1:Y,y1:Y,x2:Y,y2:Y,layer:Ks}).describe("Defines a silkscreen line on the PCB");ft(!0);uj=p.object({type:p.literal("pcb_silkscreen_path"),pcb_silkscreen_path_id:Nt("pcb_silkscreen_path"),pcb_component_id:p.string(),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),layer:Ks,route:p.array(Zt),stroke_width:D}).describe("Defines a silkscreen path on the PCB");ft(!0);pj=p.object({type:p.literal("pcb_silkscreen_text"),pcb_silkscreen_text_id:Nt("pcb_silkscreen_text"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),font:p.literal("tscircuit2024").default("tscircuit2024"),font_size:Y.default("0.2mm"),pcb_component_id:p.string(),text:p.string(),is_knockout:p.boolean().default(!1).optional(),knockout_padding:p.object({left:D,top:D,bottom:D,right:D}).default({left:"0.2mm",top:"0.2mm",bottom:"0.2mm",right:"0.2mm"}).optional(),ccw_rotation:p.number().optional(),layer:pe,is_mirrored:p.boolean().default(!1).optional(),anchor_position:Zt.default({x:0,y:0}),anchor_alignment:ig.default("center")}).describe("Defines silkscreen text on the PCB");ft(!0);hj=p.object({type:p.literal("pcb_copper_text"),pcb_copper_text_id:Nt("pcb_copper_text"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),font:p.literal("tscircuit2024").default("tscircuit2024"),font_size:Y.default("0.2mm"),pcb_component_id:p.string(),text:p.string(),is_knockout:p.boolean().default(!1).optional(),knockout_padding:p.object({left:D,top:D,bottom:D,right:D}).default({left:"0.2mm",top:"0.2mm",bottom:"0.2mm",right:"0.2mm"}).optional(),ccw_rotation:p.number().optional(),layer:pe,is_mirrored:p.boolean().default(!1).optional(),anchor_position:Zt.default({x:0,y:0}),anchor_alignment:ig.default("center")}).describe("Defines copper text on the PCB");ft(!0);dj=p.object({type:p.literal("pcb_silkscreen_rect"),pcb_silkscreen_rect_id:Nt("pcb_silkscreen_rect"),pcb_component_id:p.string(),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),center:Zt,width:D,height:D,layer:pe,stroke_width:D.default("1mm"),corner_radius:D.optional(),is_filled:p.boolean().default(!0).optional(),has_stroke:p.boolean().optional(),is_stroke_dashed:p.boolean().optional()}).describe("Defines a silkscreen rect on the PCB");ft(!0);fj=p.object({type:p.literal("pcb_silkscreen_circle"),pcb_silkscreen_circle_id:Nt("pcb_silkscreen_circle"),pcb_component_id:p.string(),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),center:Zt,radius:D,layer:Ks,stroke_width:D.default("1mm")}).describe("Defines a silkscreen circle on the PCB");ft(!0);mj=p.object({type:p.literal("pcb_silkscreen_oval"),pcb_silkscreen_oval_id:Nt("pcb_silkscreen_oval"),pcb_component_id:p.string(),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),center:Zt,radius_x:Y,radius_y:Y,layer:Ks}).describe("Defines a silkscreen oval on the PCB");ft(!0);_j=p.object({type:p.literal("pcb_fabrication_note_text"),pcb_fabrication_note_text_id:Nt("pcb_fabrication_note_text"),subcircuit_id:p.string().optional(),pcb_group_id:p.string().optional(),font:p.literal("tscircuit2024").default("tscircuit2024"),font_size:Y.default("1mm"),pcb_component_id:p.string(),text:p.string(),layer:Ks,anchor_position:Zt.default({x:0,y:0}),anchor_alignment:p.enum(["center","top_left","top_right","bottom_left","bottom_right"]).default("center"),color:p.string().optional()}).describe("Defines a fabrication note in text on the PCB, useful for leaving notes for assemblers or fabricators");ft(!0);yj=p.object({type:p.literal("pcb_fabrication_note_path"),pcb_fabrication_note_path_id:Nt("pcb_fabrication_note_path"),pcb_component_id:p.string(),subcircuit_id:p.string().optional(),layer:pe,route:p.array(Zt),stroke_width:D,color:p.string().optional()}).describe("Defines a fabrication path on the PCB for fabricators or assemblers");ft(!0);gj=p.object({type:p.literal("pcb_fabrication_note_rect"),pcb_fabrication_note_rect_id:Nt("pcb_fabrication_note_rect"),pcb_component_id:p.string(),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),center:Zt,width:D,height:D,layer:Ks,stroke_width:D.default("0.1mm"),corner_radius:D.optional(),is_filled:p.boolean().optional(),has_stroke:p.boolean().optional(),is_stroke_dashed:p.boolean().optional(),color:p.string().optional()}).describe("Defines a fabrication note rectangle on the PCB");ft(!0);xj=p.object({type:p.literal("pcb_fabrication_note_dimension"),pcb_fabrication_note_dimension_id:Nt("pcb_fabrication_note_dimension"),pcb_component_id:p.string(),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),layer:Ks,from:Zt,to:Zt,text:p.string().optional(),text_ccw_rotation:p.number().optional(),offset:D.optional(),offset_distance:D.optional(),offset_direction:p.object({x:p.number(),y:p.number()}).optional(),font:p.literal("tscircuit2024").default("tscircuit2024"),font_size:D.default("1mm"),color:p.string().optional(),arrow_size:D.default("1mm")}).describe("Defines a measurement annotation within PCB fabrication notes");ft(!0);bj=p.object({type:p.literal("pcb_note_text"),pcb_note_text_id:Nt("pcb_note_text"),pcb_component_id:p.string().optional(),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),name:p.string().optional(),font:p.literal("tscircuit2024").default("tscircuit2024"),font_size:Y.default("1mm"),text:p.string().optional(),anchor_position:Zt.default({x:0,y:0}),anchor_alignment:p.enum(["center","top_left","top_right","bottom_left","bottom_right"]).default("center"),color:p.string().optional()}).describe("Defines a documentation note in text on the PCB");ft(!0);vj=p.object({type:p.literal("pcb_note_rect"),pcb_note_rect_id:Nt("pcb_note_rect"),pcb_component_id:p.string().optional(),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),name:p.string().optional(),text:p.string().optional(),center:Zt,width:D,height:D,stroke_width:D.default("0.1mm"),corner_radius:D.optional(),is_filled:p.boolean().optional(),has_stroke:p.boolean().optional(),is_stroke_dashed:p.boolean().optional(),color:p.string().optional()}).describe("Defines a rectangular documentation note on the PCB");ft(!0);wj=p.object({type:p.literal("pcb_note_path"),pcb_note_path_id:Nt("pcb_note_path"),pcb_component_id:p.string().optional(),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),name:p.string().optional(),text:p.string().optional(),route:p.array(Zt),stroke_width:D.default("0.1mm"),color:p.string().optional()}).describe("Defines a polyline documentation note on the PCB");ft(!0);Sj=p.object({type:p.literal("pcb_note_line"),pcb_note_line_id:Nt("pcb_note_line"),pcb_component_id:p.string().optional(),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),name:p.string().optional(),text:p.string().optional(),x1:Y,y1:Y,x2:Y,y2:Y,stroke_width:Y.default("0.1mm"),color:p.string().optional(),is_dashed:p.boolean().optional()}).describe("Defines a straight documentation note line on the PCB");ft(!0);Pj=p.object({type:p.literal("pcb_note_dimension"),pcb_note_dimension_id:Nt("pcb_note_dimension"),pcb_component_id:p.string().optional(),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),name:p.string().optional(),from:Zt,to:Zt,text:p.string().optional(),text_ccw_rotation:p.number().optional(),offset_distance:D.optional(),offset_direction:p.object({x:p.number(),y:p.number()}).optional(),font:p.literal("tscircuit2024").default("tscircuit2024"),font_size:D.default("1mm"),color:p.string().optional(),arrow_size:D.default("1mm")}).describe("Defines a measurement annotation within PCB documentation notes");ft(!0);kj=p.object({type:p.literal("pcb_footprint_overlap_error"),pcb_error_id:Nt("pcb_error"),error_type:p.literal("pcb_footprint_overlap_error").default("pcb_footprint_overlap_error"),message:p.string(),pcb_smtpad_ids:p.array(p.string()).optional(),pcb_plated_hole_ids:p.array(p.string()).optional(),pcb_hole_ids:p.array(p.string()).optional(),pcb_keepout_ids:p.array(p.string()).optional()}).describe("Error emitted when a pcb footprint overlaps with another element");ft(!0);Tj=p.object({type:p.literal("pcb_keepout"),shape:p.literal("rect"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),center:Zt,width:Y,height:Y,pcb_keepout_id:p.string(),layers:p.array(p.string()),description:p.string().optional()}).or(p.object({type:p.literal("pcb_keepout"),shape:p.literal("circle"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),center:Zt,radius:Y,pcb_keepout_id:p.string(),layers:p.array(p.string()),description:p.string().optional()}));ft(!0);Gx=p.object({type:p.literal("pcb_cutout"),pcb_cutout_id:Nt("pcb_cutout"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),pcb_board_id:p.string().optional(),pcb_panel_id:p.string().optional()}),Mj=Gx.extend({shape:p.literal("rect"),center:Zt,width:D,height:D,rotation:He.optional(),corner_radius:D.optional()});ft(!0);Ej=Gx.extend({shape:p.literal("circle"),center:Zt,radius:D});ft(!0);Cj=Gx.extend({shape:p.literal("polygon"),points:p.array(Zt)});ft(!0);Ij=Gx.extend({shape:p.literal("path"),route:p.array(Zt),slot_width:D,slot_length:D.optional(),space_between_slots:D.optional(),slot_corner_radius:D.optional()});ft(!0);Nj=p.discriminatedUnion("shape",[Mj,Ej,Cj,Ij]).describe("Defines a cutout on the PCB, removing board material.");ft(!0);Aj=p.object({type:p.literal("pcb_missing_footprint_error"),pcb_missing_footprint_error_id:Nt("pcb_missing_footprint_error"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),error_type:p.literal("pcb_missing_footprint_error").default("pcb_missing_footprint_error"),source_component_id:p.string(),message:p.string()}).describe("Defines a missing footprint error on the PCB");ft(!0);Am=p.object({type:p.literal("external_footprint_load_error"),external_footprint_load_error_id:Nt("external_footprint_load_error"),pcb_component_id:p.string(),source_component_id:p.string(),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),footprinter_string:p.string().optional(),error_type:p.literal("external_footprint_load_error").default("external_footprint_load_error"),message:p.string()}).describe("Defines an error when an external footprint fails to load");ft(!0);Hx=p.object({type:p.literal("circuit_json_footprint_load_error"),circuit_json_footprint_load_error_id:Nt("circuit_json_footprint_load_error"),pcb_component_id:p.string(),source_component_id:p.string(),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),error_type:p.literal("circuit_json_footprint_load_error").default("circuit_json_footprint_load_error"),message:p.string(),circuit_json:p.array(p.any()).optional()}).describe("Defines an error when a circuit JSON footprint fails to load");ft(!0);Rj=p.object({type:p.literal("pcb_group"),pcb_group_id:Nt("pcb_group"),source_group_id:p.string(),is_subcircuit:p.boolean().optional(),subcircuit_id:p.string().optional(),width:D.optional(),height:D.optional(),center:Zt,outline:p.array(Zt).optional(),anchor_position:Zt.optional(),anchor_alignment:p.enum(["center","top_left","top_right","bottom_left","bottom_right"]).optional(),pcb_component_ids:p.array(p.string()),child_layout_mode:p.enum(["packed","none"]).optional(),name:p.string().optional(),description:p.string().optional(),layout_mode:p.string().optional(),autorouter_configuration:p.object({trace_clearance:D}).optional(),autorouter_used_string:p.string().optional()}).describe("Defines a group of components on the PCB");ft(!0);Oj=p.object({type:p.literal("pcb_autorouting_error"),pcb_error_id:Nt("pcb_autorouting_error"),error_type:p.literal("pcb_autorouting_error").default("pcb_autorouting_error"),message:p.string(),subcircuit_id:p.string().optional()}).describe("The autorouting has failed to route a portion of the board");ft(!0);Wx=p.object({type:p.literal("pcb_manual_edit_conflict_warning"),pcb_manual_edit_conflict_warning_id:Nt("pcb_manual_edit_conflict_warning"),warning_type:p.literal("pcb_manual_edit_conflict_warning").default("pcb_manual_edit_conflict_warning"),message:p.string(),pcb_component_id:p.string(),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),source_component_id:p.string()}).describe("Warning emitted when a component has both manual placement and explicit pcbX/pcbY coordinates");ft(!0);Lj=p.object({type:p.literal("pcb_breakout_point"),pcb_breakout_point_id:Nt("pcb_breakout_point"),pcb_group_id:p.string(),subcircuit_id:p.string().optional(),source_trace_id:p.string().optional(),source_port_id:p.string().optional(),source_net_id:p.string().optional(),x:Y,y:Y}).describe("Defines a routing target within a pcb_group for a source_trace or source_net");ft(!0);Fj=p.object({type:p.literal("pcb_ground_plane"),pcb_ground_plane_id:Nt("pcb_ground_plane"),source_pcb_ground_plane_id:p.string(),source_net_id:p.string(),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional()}).describe("Defines a ground plane on the PCB");ft(!0);zj=p.object({type:p.literal("pcb_ground_plane_region"),pcb_ground_plane_region_id:Nt("pcb_ground_plane_region"),pcb_ground_plane_id:p.string(),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),layer:pe,points:p.array(Zt)}).describe("Defines a polygon region of a ground plane");ft(!0);$j=p.object({type:p.literal("pcb_thermal_spoke"),pcb_thermal_spoke_id:Nt("pcb_thermal_spoke"),pcb_ground_plane_id:p.string(),shape:p.string(),spoke_count:p.number(),spoke_thickness:Y,spoke_inner_diameter:Y,spoke_outer_diameter:Y,pcb_plated_hole_id:p.string().optional(),subcircuit_id:p.string().optional()}).describe("Pattern for connecting a ground plane to a plated hole");ft(!0);fM=p.object({type:p.literal("pcb_copper_pour"),pcb_copper_pour_id:Nt("pcb_copper_pour"),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),layer:pe,source_net_id:p.string().optional(),covered_with_solder_mask:p.boolean().optional().default(!0)}),Dj=fM.extend({shape:p.literal("rect"),center:Zt,width:D,height:D,rotation:He.optional()});ft(!0);jj=fM.extend({shape:p.literal("brep"),brep_shape:OD});ft(!0);Bj=fM.extend({shape:p.literal("polygon"),points:p.array(Zt)});ft(!0);Yj=p.discriminatedUnion("shape",[Dj,jj,Bj]).describe("Defines a copper pour on the PCB.");ft(!0);Xj=p.object({type:p.literal("pcb_component_outside_board_error"),pcb_component_outside_board_error_id:Nt("pcb_component_outside_board_error"),error_type:p.literal("pcb_component_outside_board_error").default("pcb_component_outside_board_error"),message:p.string(),pcb_component_id:p.string(),pcb_board_id:p.string(),component_center:Zt,component_bounds:p.object({min_x:p.number(),max_x:p.number(),min_y:p.number(),max_y:p.number()}),subcircuit_id:p.string().optional(),source_component_id:p.string().optional()}).describe("Error emitted when a PCB component is placed outside the board boundaries");ft(!0);Rm=p.object({type:p.literal("pcb_component_invalid_layer_error"),pcb_component_invalid_layer_error_id:Nt("pcb_component_invalid_layer_error"),error_type:p.literal("pcb_component_invalid_layer_error").default("pcb_component_invalid_layer_error"),message:p.string(),pcb_component_id:p.string().optional(),source_component_id:p.string(),layer:pe,subcircuit_id:p.string().optional()}).describe("Error emitted when a component is placed on an invalid layer (components can only be on 'top' or 'bottom' layers)");ft(!0);Uj=p.object({type:p.literal("pcb_via_clearance_error"),pcb_error_id:Nt("pcb_error"),error_type:p.literal("pcb_via_clearance_error").default("pcb_via_clearance_error"),message:p.string(),pcb_via_ids:p.array(p.string()).min(2),minimum_clearance:Y.optional(),actual_clearance:Y.optional(),pcb_center:p.object({x:p.number().optional(),y:p.number().optional()}).optional(),subcircuit_id:p.string().optional()}).describe("Error emitted when vias are closer than the allowed clearance");ft(!0);Vj=p.object({type:p.literal("pcb_courtyard_rect"),pcb_courtyard_rect_id:Nt("pcb_courtyard_rect"),pcb_component_id:p.string(),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),center:Zt,width:D,height:D,layer:Ks,color:p.string().optional()}).describe("Defines a courtyard rectangle on the PCB");ft(!0);Gj=p.object({type:p.literal("pcb_courtyard_outline"),pcb_courtyard_outline_id:Nt("pcb_courtyard_outline"),pcb_component_id:p.string(),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),layer:Ks,outline:p.array(Zt).min(2),stroke_width:D.default("0.1mm"),is_closed:p.boolean().optional(),is_stroke_dashed:p.boolean().optional(),color:p.string().optional()}).describe("Defines a courtyard outline on the PCB");ft(!0);Hj=p.object({type:p.literal("pcb_courtyard_polygon"),pcb_courtyard_polygon_id:Nt("pcb_courtyard_polygon"),pcb_component_id:p.string(),pcb_group_id:p.string().optional(),subcircuit_id:p.string().optional(),layer:Ks,points:p.array(Zt).min(3),color:p.string().optional()}).describe("Defines a courtyard polygon on the PCB");ft(!0);Wj=p.object({type:p.literal("cad_component"),cad_component_id:p.string(),pcb_component_id:p.string(),source_component_id:p.string(),position:Fh,rotation:Fh.optional(),size:Fh.optional(),layer:pe.optional(),subcircuit_id:p.string().optional(),footprinter_string:p.string().optional(),model_obj_url:p.string().optional(),model_stl_url:p.string().optional(),model_3mf_url:p.string().optional(),model_gltf_url:p.string().optional(),model_glb_url:p.string().optional(),model_step_url:p.string().optional(),model_wrl_url:p.string().optional(),model_unit_to_mm_scale_factor:p.number().optional(),model_jscad:p.any().optional()}).describe("Defines a component on the PCB");ft(!0);qj=p.enum(["sinewave","square","triangle","sawtooth"]),fft=p.union([p.string(),p.number()]).transform(n=>typeof n=="string"?n.endsWith("%")?parseFloat(n.slice(0,-1))/100:parseFloat(n):n).pipe(p.number().min(0,"Duty cycle must be non-negative").max(1,"Duty cycle cannot be greater than 100%")),Zj=p.object({type:p.literal("simulation_voltage_source"),simulation_voltage_source_id:Nt("simulation_voltage_source"),is_dc_source:p.literal(!0).optional().default(!0),positive_source_port_id:p.string().optional(),negative_source_port_id:p.string().optional(),positive_source_net_id:p.string().optional(),negative_source_net_id:p.string().optional(),voltage:Si}).describe("Defines a DC voltage source for simulation"),Kj=p.object({type:p.literal("simulation_voltage_source"),simulation_voltage_source_id:Nt("simulation_voltage_source"),is_dc_source:p.literal(!1),terminal1_source_port_id:p.string().optional(),terminal2_source_port_id:p.string().optional(),terminal1_source_net_id:p.string().optional(),terminal2_source_net_id:p.string().optional(),voltage:Si.optional(),frequency:ur.optional(),peak_to_peak_voltage:Si.optional(),wave_shape:qj.optional(),phase:He.optional(),duty_cycle:fft.optional()}).describe("Defines an AC voltage source for simulation"),Jj=p.union([Zj,Kj]).describe("Defines a voltage source for simulation");ft(!0);ft(!0);ft(!0);Qj=p.union([p.literal("spice_dc_sweep"),p.literal("spice_dc_operating_point"),p.literal("spice_transient_analysis"),p.literal("spice_ac_analysis")]),tB=p.object({type:p.literal("simulation_experiment"),simulation_experiment_id:Nt("simulation_experiment"),name:p.string(),experiment_type:Qj,time_per_step:ng.optional(),start_time_ms:lr.optional(),end_time_ms:lr.optional()}).describe("Defines a simulation experiment configuration");ft(!0);eB=p.object({type:p.literal("simulation_transient_voltage_graph"),simulation_transient_voltage_graph_id:Nt("simulation_transient_voltage_graph"),simulation_experiment_id:p.string(),timestamps_ms:p.array(p.number()).optional(),voltage_levels:p.array(p.number()),source_component_id:p.string().optional(),subcircuit_connectivity_map_key:p.string().optional(),time_per_step:ng,start_time_ms:lr,end_time_ms:lr,name:p.string().optional(),color:p.string().optional()}).describe("Stores voltage measurements over time for a simulation");ft(!0);nB=p.object({type:p.literal("simulation_switch"),simulation_switch_id:Nt("simulation_switch"),source_component_id:p.string().optional(),closes_at:lr.optional(),opens_at:lr.optional(),starts_closed:p.boolean().optional(),switching_frequency:ur.optional()}).describe("Defines a switch for simulation timing control");ft(!0);iB=p.object({type:p.literal("simulation_voltage_probe"),simulation_voltage_probe_id:Nt("simulation_voltage_probe"),source_component_id:p.string().optional(),name:p.string().optional(),signal_input_source_port_id:p.string().optional(),signal_input_source_net_id:p.string().optional(),reference_input_source_port_id:p.string().optional(),reference_input_source_net_id:p.string().optional(),subcircuit_id:p.string().optional(),color:p.string().optional()}).describe("Defines a voltage probe for simulation. If a reference input is not provided, it measures against ground. If a reference input is provided, it measures the differential voltage between two points.").superRefine((n,e)=>{if(n.reference_input_source_port_id||n.reference_input_source_net_id){let i=!!n.signal_input_source_port_id||!!n.reference_input_source_port_id,r=!!n.signal_input_source_net_id||!!n.reference_input_source_net_id;i&&r?e.addIssue({code:p.ZodIssueCode.custom,message:"Cannot mix port and net connections in a differential probe."}):i?(!n.signal_input_source_port_id||!n.reference_input_source_port_id)&&e.addIssue({code:p.ZodIssueCode.custom,message:"Differential port probe requires both signal_input_source_port_id and reference_input_source_port_id."}):r&&(!n.signal_input_source_net_id||!n.reference_input_source_net_id)&&e.addIssue({code:p.ZodIssueCode.custom,message:"Differential net probe requires both signal_input_source_net_id and reference_input_source_net_id."})}else!!n.signal_input_source_port_id==!!n.signal_input_source_net_id&&e.addIssue({code:p.ZodIssueCode.custom,message:"A voltage probe must have exactly one of signal_input_source_port_id or signal_input_source_net_id."})});ft(!0);rB=p.object({type:p.literal("simulation_unknown_experiment_error"),simulation_unknown_experiment_error_id:Nt("simulation_unknown_experiment_error"),error_type:p.literal("simulation_unknown_experiment_error").default("simulation_unknown_experiment_error"),message:p.string(),simulation_experiment_id:p.string().optional(),subcircuit_id:p.string().optional()}).describe("An unknown error occurred during the simulation experiment.");ft(!0);sB=p.union([tD,Q$,J$,nD,eD,J3,q3,Bx,K3,Z3,Q3,tM,eM,rM,sM,oM,uM,aM,cM,lM,iM,nM,rD,sD,iD,pM,hM,dM,oD,Yx,FD,XD,Aj,Am,Hx,Wx,UD,Tj,VD,ij,qD,JD,rj,HD,WD,sj,oj,Rj,cj,lj,uj,pj,hj,dj,fj,mj,QD,tj,aj,ej,nj,Uj,yj,_j,gj,xj,bj,vj,wj,Sj,Pj,Oj,kj,Lj,Nj,Fj,zj,$j,Yj,Xj,Rm,Vj,Gj,Hj,aD,xD,fD,mD,_D,yD,dD,bD,gD,cD,wD,SD,vD,MD,ED,Ux,CD,AD,ID,ND,Wj,Jj,tB,eB,nB,iB,rB]),$h=sB;ft(!0);zh(!0)});var IB=ue((jqt,CB)=>{"use strict";var Lm=1e3,Fm=Lm*60,zm=Fm*60,Yh=zm*24,Rgt=Yh*7,Ogt=Yh*365.25;CB.exports=function(n,e){e=e||{};var t=typeof n;if(t==="string"&&n.length>0)return Lgt(n);if(t==="number"&&isFinite(n))return e.long?zgt(n):Fgt(n);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(n))};function Lgt(n){if(n=String(n),!(n.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(n);if(e){var t=parseFloat(e[1]),i=(e[2]||"ms").toLowerCase();switch(i){case"years":case"year":case"yrs":case"yr":case"y":return t*Ogt;case"weeks":case"week":case"w":return t*Rgt;case"days":case"day":case"d":return t*Yh;case"hours":case"hour":case"hrs":case"hr":case"h":return t*zm;case"minutes":case"minute":case"mins":case"min":case"m":return t*Fm;case"seconds":case"second":case"secs":case"sec":case"s":return t*Lm;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return t;default:return}}}}function Fgt(n){var e=Math.abs(n);return e>=Yh?Math.round(n/Yh)+"d":e>=zm?Math.round(n/zm)+"h":e>=Fm?Math.round(n/Fm)+"m":e>=Lm?Math.round(n/Lm)+"s":n+"ms"}function zgt(n){var e=Math.abs(n);return e>=Yh?rb(n,e,Yh,"day"):e>=zm?rb(n,e,zm,"hour"):e>=Fm?rb(n,e,Fm,"minute"):e>=Lm?rb(n,e,Lm,"second"):n+" ms"}function rb(n,e,t,i){var r=e>=t*1.5;return Math.round(n/t)+" "+i+(r?"s":"")}});var AB=ue((Bqt,NB)=>{"use strict";function $gt(n){t.debug=t,t.default=t,t.coerce=c,t.disable=o,t.enable=r,t.enabled=a,t.humanize=IB(),t.destroy=l,Object.keys(n).forEach(u=>{t[u]=n[u]}),t.names=[],t.skips=[],t.formatters={};function e(u){let h=0;for(let f=0;f<u.length;f++)h=(h<<5)-h+u.charCodeAt(f),h|=0;return t.colors[Math.abs(h)%t.colors.length]}t.selectColor=e;function t(u){let h,f=null,_,g;function x(...v){if(!x.enabled)return;let P=x,S=Number(new Date),T=S-(h||S);P.diff=T,P.prev=h,P.curr=S,h=S,v[0]=t.coerce(v[0]),typeof v[0]!="string"&&v.unshift("%O");let k=0;v[0]=v[0].replace(/%([a-zA-Z%])/g,(M,I)=>{if(M==="%%")return"%";k++;let E=t.formatters[I];if(typeof E=="function"){let A=v[k];M=E.call(P,A),v.splice(k,1),k--}return M}),t.formatArgs.call(P,v),(P.log||t.log).apply(P,v)}return x.namespace=u,x.useColors=t.useColors(),x.color=t.selectColor(u),x.extend=i,x.destroy=t.destroy,Object.defineProperty(x,"enabled",{enumerable:!0,configurable:!1,get:()=>f!==null?f:(_!==t.namespaces&&(_=t.namespaces,g=t.enabled(u)),g),set:v=>{f=v}}),typeof t.init=="function"&&t.init(x),x}function i(u,h){let f=t(this.namespace+(typeof h>"u"?":":h)+u);return f.log=this.log,f}function r(u){t.save(u),t.namespaces=u,t.names=[],t.skips=[];let h=(typeof u=="string"?u:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let f of h)f[0]==="-"?t.skips.push(f.slice(1)):t.names.push(f)}function s(u,h){let f=0,_=0,g=-1,x=0;for(;f<u.length;)if(_<h.length&&(h[_]===u[f]||h[_]==="*"))h[_]==="*"?(g=_,x=f,_++):(f++,_++);else if(g!==-1)_=g+1,x++,f=x;else return!1;for(;_<h.length&&h[_]==="*";)_++;return _===h.length}function o(){let u=[...t.names,...t.skips.map(h=>"-"+h)].join(",");return t.enable(""),u}function a(u){for(let h of t.skips)if(s(u,h))return!1;for(let h of t.names)if(s(u,h))return!0;return!1}function c(u){return u instanceof Error?u.stack||u.message:u}function l(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return t.enable(t.load()),t}NB.exports=$gt});var En=ue((zr,sb)=>{"use strict";zr.formatArgs=jgt;zr.save=Bgt;zr.load=Ygt;zr.useColors=Dgt;zr.storage=Xgt();zr.destroy=(()=>{let n=!1;return()=>{n||(n=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();zr.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function Dgt(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let n;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(n=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(n[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function jgt(n){if(n[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+n[0]+(this.useColors?"%c ":" ")+"+"+sb.exports.humanize(this.diff),!this.useColors)return;let e="color: "+this.color;n.splice(1,0,e,"color: inherit");let t=0,i=0;n[0].replace(/%[a-zA-Z%]/g,r=>{r!=="%%"&&(t++,r==="%c"&&(i=t))}),n.splice(i,0,e)}zr.log=console.debug||console.log||(()=>{});function Bgt(n){try{n?zr.storage.setItem("debug",n):zr.storage.removeItem("debug")}catch{}}function Ygt(){let n;try{n=zr.storage.getItem("debug")||zr.storage.getItem("DEBUG")}catch{}return!n&&typeof process<"u"&&"env"in process&&(n=process.env.DEBUG),n}function Xgt(){try{return localStorage}catch{}}sb.exports=AB()(zr);var{formatters:Ugt}=sb.exports;Ugt.j=function(n){try{return JSON.stringify(n)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var YB=ue(Un=>{"use strict";function PM(n,e){var t=n.length;n.push(e);t:for(;0<t;){var i=t-1>>>1,r=n[i];if(0<ob(r,e))n[i]=e,n[t]=r,t=i;else break t}}function Io(n){return n.length===0?null:n[0]}function cb(n){if(n.length===0)return null;var e=n[0],t=n.pop();if(t!==e){n[0]=t;t:for(var i=0,r=n.length,s=r>>>1;i<s;){var o=2*(i+1)-1,a=n[o],c=o+1,l=n[c];if(0>ob(a,t))c<r&&0>ob(l,a)?(n[i]=l,n[c]=t,i=c):(n[i]=a,n[o]=t,i=o);else if(c<r&&0>ob(l,t))n[i]=l,n[c]=t,i=c;else break t}}return e}function ob(n,e){var t=n.sortIndex-e.sortIndex;return t!==0?t:n.id-e.id}Un.unstable_now=void 0;typeof performance=="object"&&typeof performance.now=="function"?(RB=performance,Un.unstable_now=function(){return RB.now()}):(vM=Date,OB=vM.now(),Un.unstable_now=function(){return vM.now()-OB});var RB,vM,OB,Pa=[],$c=[],Vgt=1,ks=null,pr=3,kM=!1,sg=!1,og=!1,TM=!1,zB=typeof setTimeout=="function"?setTimeout:null,$B=typeof clearTimeout=="function"?clearTimeout:null,LB=typeof setImmediate<"u"?setImmediate:null;function ab(n){for(var e=Io($c);e!==null;){if(e.callback===null)cb($c);else if(e.startTime<=n)cb($c),e.sortIndex=e.expirationTime,PM(Pa,e);else break;e=Io($c)}}function MM(n){if(og=!1,ab(n),!sg)if(Io(Pa)!==null)sg=!0,Dm||(Dm=!0,$m());else{var e=Io($c);e!==null&&EM(MM,e.startTime-n)}}var Dm=!1,ag=-1,DB=5,jB=-1;function BB(){return TM?!0:!(Un.unstable_now()-jB<DB)}function wM(){if(TM=!1,Dm){var n=Un.unstable_now();jB=n;var e=!0;try{t:{sg=!1,og&&(og=!1,$B(ag),ag=-1),kM=!0;var t=pr;try{e:{for(ab(n),ks=Io(Pa);ks!==null&&!(ks.expirationTime>n&&BB());){var i=ks.callback;if(typeof i=="function"){ks.callback=null,pr=ks.priorityLevel;var r=i(ks.expirationTime<=n);if(n=Un.unstable_now(),typeof r=="function"){ks.callback=r,ab(n),e=!0;break e}ks===Io(Pa)&&cb(Pa),ab(n)}else cb(Pa);ks=Io(Pa)}if(ks!==null)e=!0;else{var s=Io($c);s!==null&&EM(MM,s.startTime-n),e=!1}}break t}finally{ks=null,pr=t,kM=!1}e=void 0}}finally{e?$m():Dm=!1}}}var $m;typeof LB=="function"?$m=function(){LB(wM)}:typeof MessageChannel<"u"?(SM=new MessageChannel,FB=SM.port2,SM.port1.onmessage=wM,$m=function(){FB.postMessage(null)}):$m=function(){zB(wM,0)};var SM,FB;function EM(n,e){ag=zB(function(){n(Un.unstable_now())},e)}Un.unstable_IdlePriority=5;Un.unstable_ImmediatePriority=1;Un.unstable_LowPriority=4;Un.unstable_NormalPriority=3;Un.unstable_Profiling=null;Un.unstable_UserBlockingPriority=2;Un.unstable_cancelCallback=function(n){n.callback=null};Un.unstable_forceFrameRate=function(n){0>n||125<n?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):DB=0<n?Math.floor(1e3/n):5};Un.unstable_getCurrentPriorityLevel=function(){return pr};Un.unstable_next=function(n){switch(pr){case 1:case 2:case 3:var e=3;break;default:e=pr}var t=pr;pr=e;try{return n()}finally{pr=t}};Un.unstable_requestPaint=function(){TM=!0};Un.unstable_runWithPriority=function(n,e){switch(n){case 1:case 2:case 3:case 4:case 5:break;default:n=3}var t=pr;pr=n;try{return e()}finally{pr=t}};Un.unstable_scheduleCallback=function(n,e,t){var i=Un.unstable_now();switch(typeof t=="object"&&t!==null?(t=t.delay,t=typeof t=="number"&&0<t?i+t:i):t=i,n){case 1:var r=-1;break;case 2:r=250;break;case 5:r=1073741823;break;case 4:r=1e4;break;default:r=5e3}return r=t+r,n={id:Vgt++,callback:e,priorityLevel:n,startTime:t,expirationTime:r,sortIndex:-1},t>i?(n.sortIndex=t,PM($c,n),Io(Pa)===null&&n===Io($c)&&(og?($B(ag),ag=-1):og=!0,EM(MM,t-i))):(n.sortIndex=r,PM(Pa,n),sg||kM||(sg=!0,Dm||(Dm=!0,$m()))),n};Un.unstable_shouldYield=BB;Un.unstable_wrapCallback=function(n){var e=pr;return function(){var t=pr;pr=e;try{return n.apply(this,arguments)}finally{pr=t}}}});var UB=ue((Xqt,XB)=>{"use strict";XB.exports=YB()});var VB=ue((Uqt,cg)=>{"use strict";cg.exports=function(n){function e(m,y,w,N){return new rut(m,y,w,N)}function t(){}function i(m){var y="https://react.dev/errors/"+m;if(1<arguments.length){y+="?args[]="+encodeURIComponent(arguments[1]);for(var w=2;w<arguments.length;w++)y+="&args[]="+encodeURIComponent(arguments[w])}return"Minified React error #"+m+"; visit "+y+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function r(m){var y=m,w=m;if(m.alternate)for(;y.return;)y=y.return;else{m=y;do y=m,(y.flags&4098)!==0&&(w=y.return),m=y.return;while(m)}return y.tag===3?w:null}function s(m){if(r(m)!==m)throw Error(i(188))}function o(m){var y=m.alternate;if(!y){if(y=r(m),y===null)throw Error(i(188));return y!==m?null:m}for(var w=m,N=y;;){var O=w.return;if(O===null)break;var $=O.alternate;if($===null){if(N=O.return,N!==null){w=N;continue}break}if(O.child===$.child){for($=O.child;$;){if($===w)return s(O),m;if($===N)return s(O),y;$=$.sibling}throw Error(i(188))}if(w.return!==N.return)w=O,N=$;else{for(var K=!1,ct=O.child;ct;){if(ct===w){K=!0,w=O,N=$;break}if(ct===N){K=!0,N=O,w=$;break}ct=ct.sibling}if(!K){for(ct=$.child;ct;){if(ct===w){K=!0,w=$,N=O;break}if(ct===N){K=!0,N=$,w=O;break}ct=ct.sibling}if(!K)throw Error(i(189))}}if(w.alternate!==N)throw Error(i(190))}if(w.tag!==3)throw Error(i(188));return w.stateNode.current===w?m:y}function a(m){var y=m.tag;if(y===5||y===26||y===27||y===6)return m;for(m=m.child;m!==null;){if(y=a(m),y!==null)return y;m=m.sibling}return null}function c(m){var y=m.tag;if(y===5||y===26||y===27||y===6)return m;for(m=m.child;m!==null;){if(m.tag!==4&&(y=c(m),y!==null))return y;m=m.sibling}return null}function l(m){return m===null||typeof m!="object"?null:(m=Mz&&m[Mz]||m["@@iterator"],typeof m=="function"?m:null)}function u(m){if(m==null)return null;if(typeof m=="function")return m.$$typeof===uut?null:m.displayName||m.name||null;if(typeof m=="string")return m;switch(m){case qf:return"Fragment";case JT:return"Profiler";case kz:return"StrictMode";case t3:return"Suspense";case e3:return"SuspenseList";case i3:return"Activity"}if(typeof m=="object")switch(m.$$typeof){case Wf:return"Portal";case bc:return(m.displayName||"Context")+".Provider";case Tz:return(m._context.displayName||"Context")+".Consumer";case QT:var y=m.render;return m=m.displayName,m||(m=y.displayName||y.name||"",m=m!==""?"ForwardRef("+m+")":"ForwardRef"),m;case n3:return y=m.displayName||null,y!==null?y:u(m.type)||"Memo";case vc:y=m._payload,m=m._init;try{return u(m(y))}catch{}}return null}function h(m){return{current:m}}function f(m){0>Jf||(m.current=c3[Jf],c3[Jf]=null,Jf--)}function _(m,y){Jf++,c3[Jf]=m.current,m.current=y}function g(m){return m>>>=0,m===0?32:31-(Mpt(m)/Ept|0)|0}function x(m){var y=m&42;if(y!==0)return y;switch(m&-m){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return m&4194048;case 4194304:case 8388608:case 16777216:case 33554432:return m&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return m}}function v(m,y,w){var N=m.pendingLanes;if(N===0)return 0;var O=0,$=m.suspendedLanes,K=m.pingedLanes;m=m.warmLanes;var ct=N&134217727;return ct!==0?(N=ct&~$,N!==0?O=x(N):(K&=ct,K!==0?O=x(K):w||(w=ct&~m,w!==0&&(O=x(w))))):(ct=N&~$,ct!==0?O=x(ct):K!==0?O=x(K):w||(w=N&~m,w!==0&&(O=x(w)))),O===0?0:y!==0&&y!==O&&(y&$)===0&&($=O&-O,w=y&-y,$>=w||$===32&&(w&4194048)!==0)?y:O}function P(m,y){return(m.pendingLanes&~(m.suspendedLanes&~m.pingedLanes)&y)===0}function S(m,y){switch(m){case 1:case 2:case 4:case 8:case 64:return y+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return y+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function T(){var m=rx;return rx<<=1,(rx&4194048)===0&&(rx=256),m}function k(){var m=sx;return sx<<=1,(sx&62914560)===0&&(sx=4194304),m}function C(m){for(var y=[],w=0;31>w;w++)y.push(m);return y}function M(m,y){m.pendingLanes|=y,y!==268435456&&(m.suspendedLanes=0,m.pingedLanes=0,m.warmLanes=0)}function I(m,y,w,N,O,$){var K=m.pendingLanes;m.pendingLanes=w,m.suspendedLanes=0,m.pingedLanes=0,m.warmLanes=0,m.expiredLanes&=w,m.entangledLanes&=w,m.errorRecoveryDisabledLanes&=w,m.shellSuspendCounter=0;var ct=m.entanglements,xt=m.expirationTimes,It=m.hiddenUpdates;for(w=K&~w;0<w;){var $t=31-ts(w),Xt=1<<$t;ct[$t]=0,xt[$t]=-1;var Wt=It[$t];if(Wt!==null)for(It[$t]=null,$t=0;$t<Wt.length;$t++){var Le=Wt[$t];Le!==null&&(Le.lane&=-536870913)}w&=~Xt}N!==0&&E(m,N,0),$!==0&&O===0&&m.tag!==0&&(m.suspendedLanes|=$&~(K&~y))}function E(m,y,w){m.pendingLanes|=y,m.suspendedLanes&=~y;var N=31-ts(y);m.entangledLanes|=y,m.entanglements[N]=m.entanglements[N]|1073741824|w&4194090}function A(m,y){var w=m.entangledLanes|=y;for(m=m.entanglements;w;){var N=31-ts(w),O=1<<N;O&y|m[N]&y&&(m[N]|=y),w&=~O}}function R(m){switch(m){case 2:m=1;break;case 8:m=4;break;case 32:m=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:m=128;break;case 268435456:m=134217728;break;default:m=0}return m}function j(m){return m&=-m,2<m?8<m?(m&134217727)!==0?32:268435456:8:2}function B(m){if(typeof Rpt=="function"&&Opt(m),es&&typeof es.setStrictMode=="function")try{es.setStrictMode(jy,m)}catch{}}function V(m){if(p3===void 0)try{throw Error()}catch(w){var y=w.stack.trim().match(/\n( *(at )?)/);p3=y&&y[1]||"",Jz=-1<w.stack.indexOf(`
|
|
2
2
|
at`)?" (<anonymous>)":-1<w.stack.indexOf("@")?"@unknown:0:0":""}return`
|
|
3
3
|
`+p3+m+Jz}function U(m,y){if(!m||h3)return"";h3=!0;var w=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var N={DetermineComponentFrameRoot:function(){try{if(y){var Xt=function(){throw Error()};if(Object.defineProperty(Xt.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(Xt,[])}catch(Le){var Wt=Le}Reflect.construct(m,[],Xt)}else{try{Xt.call()}catch(Le){Wt=Le}m.call(Xt.prototype)}}else{try{throw Error()}catch(Le){Wt=Le}(Xt=m())&&typeof Xt.catch=="function"&&Xt.catch(function(){})}}catch(Le){if(Le&&Wt&&typeof Le.stack=="string")return[Le.stack,Wt.stack]}return[null,null]}};N.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var O=Object.getOwnPropertyDescriptor(N.DetermineComponentFrameRoot,"name");O&&O.configurable&&Object.defineProperty(N.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var $=N.DetermineComponentFrameRoot(),K=$[0],ct=$[1];if(K&&ct){var xt=K.split(`
|
|
4
4
|
`),It=ct.split(`
|
|
@@ -156,7 +156,7 @@ svg { font-family: 'Inter', 'Helvetica Neue', Arial, sans-serif; }
|
|
|
156
156
|
:is(button, input, select, textarea, optgroup, option)[disabled],
|
|
157
157
|
optgroup[disabled] > option,
|
|
158
158
|
fieldset[disabled]:not(fieldset[disabled] legend:first-of-type *)
|
|
159
|
-
)`,enabled:":not(:disabled)",checked:":is(:is(input[type=radio], input[type=checkbox])[checked], option:selected)",required:":is(input, select, textarea)[required]",optional:":is(input, select, textarea):not([required])",selected:"option:is([selected], select:not([multiple]):not(:has(> option[selected])) > :first-of-type)",checkbox:"[type=checkbox]",file:"[type=file]",password:"[type=password]",radio:"[type=radio]",reset:"[type=reset]",image:"[type=image]",submit:"[type=submit]",parent:":not(:empty)",header:":is(h1, h2, h3, h4, h5, h6)",button:":is(button, input[type=button])",input:":is(input, textarea, select, button)",text:"input:is(:not([type!='']), [type=text])"};var Ms=Gt(Gh(),1);var R5={};function O5(n,e){return n===Ms.default.falseFunc?Ms.default.falseFunc:t=>e.isTag(t)&&n(t)}function L5(n,e){let t=e.getSiblings(n);if(t.length<=1)return[];let i=t.indexOf(n);return i<0||i===t.length-1?[]:t.slice(i+1).filter(e.isTag)}function A5(n){return{xmlMode:!!n.xmlMode,lowerCaseAttributeNames:!!n.lowerCaseAttributeNames,lowerCaseTags:!!n.lowerCaseTags,quirksMode:!!n.quirksMode,cacheResults:!!n.cacheResults,pseudos:n.pseudos,adapter:n.adapter,equals:n.equals}}var N5=(n,e,t,i,r)=>{let s=r(e,A5(t),i);return s===Ms.default.trueFunc?n:s===Ms.default.falseFunc?Ms.default.falseFunc:o=>s(o)&&n(o)},Q2={is:N5,matches:N5,where:N5,not(n,e,t,i,r){let s=r(e,A5(t),i);return s===Ms.default.falseFunc?n:s===Ms.default.trueFunc?Ms.default.falseFunc:o=>!s(o)&&n(o)},has(n,e,t,i,r){let{adapter:s}=t,o=A5(t);o.relativeSelector=!0;let a=e.some(u=>u.some(yg))?[R5]:void 0,c=r(e,o,a);if(c===Ms.default.falseFunc)return Ms.default.falseFunc;let l=O5(c,s);if(a&&c!==Ms.default.trueFunc){let{shouldTestNextSiblings:u=!1}=c;return h=>{if(!n(h))return!1;a[0]=h;let f=s.getChildren(h),_=u?[...f,...L5(h,s)]:f;return s.existsOne(l,_)}}return u=>n(u)&&s.existsOne(l,s.getChildren(u))}};function SG(n,e,t,i,r){var s;let{name:o,data:a}=e;if(Array.isArray(a)){if(!(o in Q2))throw new Error(`Unknown pseudo-class :${o}(${a})`);return Q2[o](n,a,t,i,r)}let c=(s=t.pseudos)===null||s===void 0?void 0:s[o],l=typeof c=="string"?c:I5[o];if(typeof l=="string"){if(a!=null)throw new Error(`Pseudo ${o} doesn't have any arguments`);let u=_g(l);return Q2.is(n,u,t,i,r)}if(typeof c=="function")return C5(c,o,a,1),u=>c(u,a)&&n(u);if(o in xg)return xg[o](n,a,t,i);if(o in J2){let u=J2[o];return C5(u,o,a,2),h=>u(h,t,a)&&n(h)}throw new Error(`Unknown pseudo-class :${o}`)}function F5(n,e){let t=e.getParent(n);return t&&e.isTag(t)?t:null}function PG(n,e,t,i,r){let{adapter:s,equals:o}=t;switch(e.type){case de.PseudoElement:throw new Error("Pseudo-elements are not supported by css-select");case de.ColumnCombinator:throw new Error("Column combinators are not yet supported by css-select");case de.Attribute:{if(e.namespace!=null)throw new Error("Namespaced attributes are not yet supported by css-select");return(!t.xmlMode||t.lowerCaseAttributeNames)&&(e.name=e.name.toLowerCase()),xG[e.action](n,e,t)}case de.Pseudo:return SG(n,e,t,i,r);case de.Tag:{if(e.namespace!=null)throw new Error("Namespaced tag names are not yet supported by css-select");let{name:a}=e;return(!t.xmlMode||t.lowerCaseTags)&&(a=a.toLowerCase()),function(l){return s.getName(l)===a&&n(l)}}case de.Descendant:{if(t.cacheResults===!1||typeof WeakSet>"u")return function(l){let u=l;for(;u=F5(u,s);)if(n(u))return!0;return!1};let a=new WeakSet;return function(l){let u=l;for(;u=F5(u,s);)if(!a.has(u)){if(s.isTag(u)&&n(u))return!0;a.add(u)}return!1}}case"_flexibleDescendant":return function(c){let l=c;do if(n(l))return!0;while(l=F5(l,s));return!1};case de.Parent:return function(c){return s.getChildren(c).some(l=>s.isTag(l)&&n(l))};case de.Child:return function(c){let l=s.getParent(c);return l!=null&&s.isTag(l)&&n(l)};case de.Sibling:return function(c){let l=s.getSiblings(c);for(let u=0;u<l.length;u++){let h=l[u];if(o(c,h))break;if(s.isTag(h)&&n(h))return!0}return!1};case de.Adjacent:return s.prevElementSibling?function(c){let l=s.prevElementSibling(c);return l!=null&&n(l)}:function(c){let l=s.getSiblings(c),u;for(let h=0;h<l.length;h++){let f=l[h];if(o(c,f))break;s.isTag(f)&&(u=f)}return!!u&&n(u)};case de.Universal:{if(e.namespace!=null&&e.namespace!=="*")throw new Error("Namespaced universal selectors are not yet supported by css-select");return n}}}function kG(n,e,t){let i=tw(n,e,t);return O5(i,e.adapter)}function tw(n,e,t){let i=typeof n=="string"?_g(n):n;return ew(i,e,t)}function TG(n){return n.type===de.Pseudo&&(n.name==="scope"||Array.isArray(n.data)&&n.data.some(e=>e.some(TG)))}var l3t={type:de.Descendant},u3t={type:"_flexibleDescendant"},p3t={type:de.Pseudo,name:"scope",data:null};function h3t(n,{adapter:e},t){let i=!!t?.every(r=>{let s=e.isTag(r)&&e.getParent(r);return r===R5||s&&e.isTag(s)});for(let r of n){if(!(r.length>0&&yg(r[0])&&r[0].type!==de.Descendant))if(i&&!r.some(TG))r.unshift(l3t);else continue;r.unshift(p3t)}}function ew(n,e,t){var i;n.forEach(T5),t=(i=e.context)!==null&&i!==void 0?i:t;let r=Array.isArray(t),s=t&&(Array.isArray(t)?t:[t]);if(e.relativeSelector!==!1)h3t(n,e,s);else if(n.some(c=>c.length>0&&yg(c[0])))throw new Error("Relative selectors are not allowed when the `relativeSelector` option is disabled");let o=!1,a=n.map(c=>{if(c.length>=2){let[l,u]=c;l.type!==de.Pseudo||l.name!=="scope"||(r&&u.type===de.Descendant?c[1]=u3t:(u.type===de.Adjacent||u.type===de.Sibling)&&(o=!0))}return d3t(c,e,s)}).reduce(f3t,Ea.default.falseFunc);return a.shouldTestNextSiblings=o,a}function d3t(n,e,t){var i;return n.reduce((r,s)=>r===Ea.default.falseFunc?Ea.default.falseFunc:PG(r,s,e,t,ew),(i=e.rootFunc)!==null&&i!==void 0?i:Ea.default.trueFunc)}function f3t(n,e){return e===Ea.default.falseFunc||n===Ea.default.trueFunc?n:n===Ea.default.falseFunc||e===Ea.default.trueFunc?e:function(i){return n(i)||e(i)}}var MG=(n,e)=>n===e,m3t={adapter:Z2,equals:MG};function EG(n){var e,t,i,r;let s=n??m3t;return(e=s.adapter)!==null&&e!==void 0||(s.adapter=Z2),(t=s.equals)!==null&&t!==void 0||(s.equals=(r=(i=s.adapter)===null||i===void 0?void 0:i.equals)!==null&&r!==void 0?r:MG),s}function $5(n){return function(t,i,r){let s=EG(i);return n(t,s,r)}}var nte=$5(kG),ite=$5(tw),rte=$5(ew);function CG(n){return function(t,i,r){let s=EG(r);typeof t!="function"&&(t=tw(t,s,i));let o=_3t(i,s.adapter,t.shouldTestNextSiblings);return n(t,o,s)}}function _3t(n,e,t=!1){return t&&(n=y3t(n,e)),Array.isArray(n)?e.removeSubsets(n):e.getChildren(n)}function y3t(n,e){let t=Array.isArray(n)?n.slice(0):[n],i=t.length;for(let r=0;r<i;r++){let s=L5(t[r],e);t.push(...s)}return t}var D5=CG((n,e,t)=>n===z5.default.falseFunc||!e||e.length===0?[]:t.adapter.findAll(n,e)),nw=CG((n,e,t)=>n===z5.default.falseFunc||!e||e.length===0?null:t.adapter.findOne(n,e));Q();wt();Q();var aH=Gt(En(),1);wt();var uH=Gt(En(),1),hH=Gt(En(),1);wt();ri();G5();var H5=(n,e={})=>{let t=n._internal_store;if(!t){t={counts:{}},n._internal_store=t;for(let r of n){let s=r.type,o=r[`${s}_id`];if(!o)continue;let a=Number.parseInt(o.split("_").pop());Number.isNaN(a)||(t.counts[s]=Math.max(t.counts[s]??0,a))}}return new Proxy({},{get:(r,s)=>s==="toArray"?()=>n:{get:o=>n.find(a=>a.type===s&&a[`${s}_id`]===o),getUsing:o=>{let a=Object.keys(o);if(a.length!==1)throw new Error("getUsing requires exactly one key, e.g. { pcb_component_id }");let c=a[0],l=c.replace("_id",""),u=n.find(h=>h.type===l&&h[c]===o[c]);return u?n.find(h=>h.type===s&&h[`${s}_id`]===u[`${s}_id`]):null},getWhere:o=>{let a=Object.keys(o);return n.find(c=>c.type===s&&a.every(l=>c[l]===o[l]))},list:o=>{let a=o?Object.keys(o):[];return n.filter(c=>c.type===s&&a.every(l=>c[l]===o[l]))},insert:o=>{var l;(l=t.counts)[s]??(l[s]=-1),t.counts[s]++;let a=t.counts[s],c={type:s,[`${s}_id`]:`${s}_${a}`,...o};return e.validateInserts&&(Dh[s]??$h).parse(c),n.push(c),c},delete:o=>{let a=n.find(c=>c[`${s}_id`]===o);a&&n.splice(n.indexOf(a),1)},update:(o,a)=>{let c=n.find(l=>l.type===s&&l[`${s}_id`]===o);if(c)return Object.assign(c,a),c},select:o=>{if(s==="source_component")return n.find(a=>a.type==="source_component"&&a.name===o.replace(/\./g,""));if(s==="pcb_port"||s==="source_port"||s==="schematic_port"){let[a,c]=o.replace(/\./g,"").split(/[\s\>]+/),l=n.find(h=>h.type==="source_component"&&h.name===a);if(!l)return null;let u=n.find(h=>h.type==="source_port"&&h.source_component_id===l.source_component_id&&(h.name===c||(h.port_hints??[]).includes(c)));if(!u)return null;if(s==="source_port")return u;if(s==="pcb_port")return n.find(h=>h.type==="pcb_port"&&h.source_port_id===u.source_port_id);if(s==="schematic_port")return n.find(h=>h.type==="schematic_port"&&h.source_port_id===u.source_port_id)}}}})};H5.unparsed=H5;var XG=H5;var ane=Gt(VG(),1);er();function eo(n){let e=n.width/2,t=n.height/2;return{minX:n.center.x-e,maxX:n.center.x+e,minY:n.center.y-t,maxY:n.center.y+t}}function Pg(n,e){let t=eo(n),i=eo(e),r=Math.max(t.minX-i.maxX,i.minX-t.maxX,0),s=Math.max(t.minY-i.maxY,i.minY-t.maxY,0),o={x:0,y:0},a={x:0,y:0};return r===0&&s===0?{distance:0,pointA:n.center,pointB:e.center}:(o.x=Vn(n.center.x,i.minX,i.maxX),o.y=Vn(n.center.y,i.minY,i.maxY),a.x=Vn(e.center.x,t.minX,t.maxX),a.y=Vn(e.center.y,t.minY,t.maxY),{distance:Math.hypot(o.x-a.x,o.y-a.y),pointA:o,pointB:a})}function No(n,e){return Pg(n,e)}function J5(n,e){let t=eo(n),i=eo(e),r=Math.max(t.minX-i.maxX,i.minX-t.maxX,0),s=Math.max(t.minY-i.maxY,i.minY-t.maxY,0);return Math.hypot(r,s)}function Vn(n,e,t){return Math.max(e,Math.min(t,n))}function kg(n,e){let t=Number.POSITIVE_INFINITY,i={x:0,y:0},r={x:0,y:0};for(let s of n)for(let o of e){let{distance:a,pointA:c,pointB:l}=Pg(s,o);a<t&&(t=a,i=c,r=l)}return{pointA:i,pointB:r,distance:t}}er();er();var JG="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var QG=(n=21)=>{let e="",t=crypto.getRandomValues(new Uint8Array(n|=0));for(;n--;)e+=JG[t[n]&63];return e};er();var Qh=(n,e)=>Math.abs(n.x-e.x)+Math.abs(n.y-e.y),tH=(n,e)=>{let t=e.x-n.x,i=e.y-n.y;return Math.abs(t)>Math.abs(i)?{dx:Math.sign(t),dy:0}:{dx:0,dy:Math.sign(i)}},sH=(n,e,t)=>Math.abs(n.x-e.x)*Math.abs(t.dx)+Math.abs(n.y-e.y)*Math.abs(t.dy),oH=(n,e=.1)=>`${Math.round(n.x/e)},${Math.round(n.y/e)}`,eH=(n,e)=>Math.abs(n-e)<1e-4,cH=(n,e,{viaDiameter:t=.5}={})=>{let i=[];for(let r=0;r<n.length-1;r++){let[s,o]=[n[r],n[r+1]],a=r-1>=0?n[r-1]:null,c=eH(s.y,o.y),l=eH(s.x,o.x);if(!c&&!l)throw new Error(`getObstaclesFromTrace currently only supports horizontal and vertical traces (not diagonals) Conflicting trace: ${e}, start: (${s.x}, ${s.y}), end: (${o.x}, ${o.y})`);let u={type:"rect",layers:[s.layer],center:{x:(s.x+o.x)/2,y:(s.y+o.y)/2},width:c?Math.abs(s.x-o.x):.1,height:l?Math.abs(s.y-o.y):.1,connectedTo:[e]};if(i.push(u),a&&a.layer===s.layer&&s.layer!==o.layer){let h={type:"rect",layers:[s.layer,o.layer],center:{x:s.x,y:s.y},connectedTo:[e],width:t,height:t};i.push(h)}}return i},lH=class{constructor(n){d(this,"obstacles");d(this,"GRID_STEP",.1);this.obstacles=n.map(e=>({...e,left:e.center.x-e.width/2,right:e.center.x+e.width/2,top:e.center.y+e.height/2,bottom:e.center.y-e.height/2}))}getObstacleAt(n,e,t){t??(t=this.GRID_STEP);for(let i of this.obstacles){let r=i.width/2+t,s=i.height/2+t;if(n>=i.center.x-r&&n<=i.center.x+r&&e>=i.center.y-s&&e<=i.center.y+s)return i}return null}isObstacleAt(n,e,t){return this.getObstacleAt(n,e,t)!==null}getDirectionDistancesToNearestObstacle(n,e){let{GRID_STEP:t}=this,i={left:1/0,top:1/0,bottom:1/0,right:1/0};for(let r of this.obstacles)if(r.type==="rect"){let s=r.center.x-r.width/2-t,o=r.center.x+r.width/2+t,a=r.center.y+r.height/2+t,c=r.center.y-r.height/2-t;e>=c&&e<=a&&n>s&&(i.left=Math.min(i.left,n-o)),e>=c&&e<=a&&n<o&&(i.right=Math.min(i.right,s-n)),n>=s&&n<=o&&e<a&&(i.top=Math.min(i.top,c-e)),n>=s&&n<=o&&e>c&&(i.bottom=Math.min(i.bottom,e-a))}return i}getOrthoDirectionCollisionInfo(n,e,{margin:t=0}={}){let{x:i,y:r}=n,{dx:s,dy:o}=e,a=1/0,c=null;for(let l of this.obstacles){let u=l.left-t,h=l.right+t,f=l.top+t,_=l.bottom-t,g=null;s===1&&o===0?r>_&&r<f&&i<l.left&&(g=l.left-i):s===-1&&o===0?r>_&&r<f&&i>l.right&&(g=i-l.right):s===0&&o===1?i>u&&i<h&&r<l.bottom&&(g=l.bottom-r):s===0&&o===-1&&i>u&&i<h&&r>l.top&&(g=r-l.top),g!==null&&g<a&&(a=g,c=l)}return{dx:s,dy:o,wallDistance:a,obstacle:c}}getObstaclesOverlappingRegion(n){let e=[];for(let t of this.obstacles){let{left:i,right:r,top:s,bottom:o}=t;i<=n.maxX&&r>=n.minX&&s<=n.maxY&&o>=n.minY&&e.push(t)}return e}};function S3t(n){if(n.length<4)return n;let e=[{...n[0]}],t=n[0].layer;for(let i=1;i<n.length;i++){let r={start:n[i-1],end:n[i]},s=n[i].route_type==="via"||n[i-1].route_type==="via";if(n[i].layer!==t||s){e.push({...n[i]}),t=n[i].layer;continue}let o=!1,a=null,c=-1;for(let u=0;u<e.length-1;u++){let h={start:e[u],end:e[u+1]};if(h.start.layer===r.start.layer&&h.start.layer===r.start.layer){let f=P3t(h,r);if(f){o=!0,a={...f,layer:t},c=u;break}}}o&&a&&(e.splice(c+1),e.push(a));let l=e[e.length-1];(l.x!==n[i].x||l.y!==n[i].y)&&e.push(n[i])}return e}function P3t(n,e){if(n.start.x===n.end.x&&e.start.x===e.end.x||n.start.y===n.end.y&&e.start.y===e.end.y)return null;let t;if(n.start.x===n.end.x){let i=n.start.x,r=e.start.y;t={...n.start,x:i,y:r}}else{let i=e.start.x,r=n.start.y;t={...n.start,x:i,y:r}}return nH(t,n)&&nH(t,e)?t:null}function nH(n,e){return n.x>=Math.min(e.start.x,e.end.x)&&n.x<=Math.max(e.start.x,e.end.x)&&n.y>=Math.min(e.start.y,e.end.y)&&n.y<=Math.max(e.start.y,e.end.y)}function k3t(n){let e=[n[0]];for(let t=1;t<n.length-1;t++){let[i,r,s]=[n[t-1],n[t],n[t+1]];e.push(r),!(r.route_type!=="wire"||i.route_type!=="wire"||s.route_type!=="wire")&&i.layer===r.layer&&r.layer!==s.layer&&e.push({route_type:"via",from_layer:r.layer,to_layer:s.layer,x:r.x,y:r.y})}return e.push(n[n.length-1]),e}var sne=(0,uH.default)("autorouter:shortenPathWithShortcuts");function T3t(n,e){if(n.length<=2)return n;let t=[n[0]];for(let i=1;i<n.length;i++){let r={start:t[t.length-1],end:n[i]},s=-1,o=r.start.x===r.end.x,a=r.start.y===r.end.y;for(let c=i+1;c<n.length;c++){if(c<=s)continue;let l={start:n[c],end:n[c+1]};if(!l.end)continue;let u=l.start.x===l.end.x,h=l.start.y===l.end.y,f=o&&u,_=a&&h;if(_&&f||!(f||_))continue;let x=!1,v=Math.min(r.start.x,r.end.x),P=Math.max(r.start.x,r.end.x),S=Math.min(l.start.x,l.end.x),T=Math.max(l.start.x,l.end.x),k=Math.min(r.start.y,r.end.y),C=Math.max(r.start.y,r.end.y),M=Math.min(l.start.y,l.end.y),I=Math.max(l.start.y,l.end.y);if(_?x=v<=T&&P>=S:f&&(x=k<=I&&C>=M),!x)continue;let E=[],A=t[t.length-1],R=n[c+2];if(!R)continue;_&&S<P&&R.x===S&&E.push({x:S,y:r.start.y,layer:r.start.layer}),_&&T>v&&R.x===T&&E.push({x:T,y:r.start.y,layer:r.start.layer}),f&&M<C&&R.y===M&&E.push({x:r.start.x,y:M,layer:r.start.layer}),f&&I>k&&R.y===I&&E.push({x:r.start.x,y:I,layer:r.start.layer});let j=null;for(let B of E)if(!(e(A,B)||e(R,B))){j=B;break}if(j){t.push(j),i=c+1,s=c+1;break}}s===-1&&t.push(n[i])}return t[t.length-1]!==n[n.length-1]&&t.push(n[n.length-1]),t}var Jh=(0,aH.default)("autorouting-dataset:astar"),pH=class{constructor(n){d(this,"openSet",[]);d(this,"closedSet",new Set);d(this,"debug",!1);d(this,"debugSolutions");d(this,"debugMessage",null);d(this,"debugTraceCount",0);d(this,"input");d(this,"obstacles");d(this,"allObstacles");d(this,"startNode");d(this,"goalPoint");d(this,"GRID_STEP");d(this,"OBSTACLE_MARGIN");d(this,"MAX_ITERATIONS");d(this,"isRemovePathLoopsEnabled");d(this,"isShortenPathWithShortcutsEnabled");d(this,"GREEDY_MULTIPLIER",1.1);d(this,"iterations",-1);this.input=n.input,this.allObstacles=n.input.obstacles,this.startNode=n.startNode,this.goalPoint=n.goalPoint?{l:0,...n.goalPoint}:void 0,this.GRID_STEP=n.GRID_STEP??.1,this.OBSTACLE_MARGIN=n.OBSTACLE_MARGIN??.15,this.MAX_ITERATIONS=n.MAX_ITERATIONS??100,this.debug=n.debug??Jh.enabled,this.isRemovePathLoopsEnabled=n.isRemovePathLoopsEnabled??!1,this.isShortenPathWithShortcutsEnabled=n.isShortenPathWithShortcutsEnabled??!1,this.debug&&(Jh.enabled=!0),Jh.enabled&&(this.debugSolutions={},this.debugMessage="")}getNeighbors(n){return[]}isSameNode(n,e){return Qh(n,e)<this.GRID_STEP}computeG(n,e){return n.g+Qh(n,e)}computeH(n){return Qh(n,this.goalPoint)}getNodeName(n){return oH(n,this.GRID_STEP)}solveOneStep(){this.iterations+=1;let{openSet:n,closedSet:e,GRID_STEP:t,goalPoint:i}=this;n.sort((a,c)=>a.f-c.f);let r=n.shift();if(this.computeH(r)<=t*2)return{solved:!0,current:r,newNeighbors:[]};this.closedSet.add(this.getNodeName(r));let o=[];for(let a of this.getNeighbors(r)){if(e.has(this.getNodeName(a)))continue;let c=this.computeG(r,a),l=this.openSet.find(u=>this.isSameNode(u,a));if(!l||c<l.g){let u=this.computeH(a),h=c+u*this.GREEDY_MULTIPLIER,f={...a,g:c,h:u,f:h,obstacleHit:a.obstacleHit??void 0,manDistFromParent:Qh(r,a),nodesInPath:r.nodesInPath+1,parent:r,enterMarginCost:a.enterMarginCost,travelMarginCostFactor:a.travelMarginCostFactor};n.push(f),o.push(f)}}return Jh.enabled&&(n.sort((a,c)=>a.f-c.f),this.drawDebugSolution({current:r,newNeighbors:o})),{solved:!1,current:r,newNeighbors:o}}getStartNode(n){return{x:n.pointsToConnect[0].x,y:n.pointsToConnect[0].y,manDistFromParent:0,f:0,g:0,h:0,nodesInPath:0,parent:null}}layerToIndex(n){return 0}indexToLayer(n){return"top"}preprocessConnectionBeforeSolving(n){return n}solveConnection(n){if(n.pointsToConnect.length>2)throw new Error("GeneralizedAstarAutorouter doesn't currently support 2+ points in a connection");n=this.preprocessConnectionBeforeSolving(n);let{pointsToConnect:e}=n;for(this.iterations=0,this.closedSet=new Set,this.startNode=this.getStartNode(n),this.goalPoint={...e[e.length-1],l:this.layerToIndex(e[e.length-1].layer)},this.openSet=[this.startNode];this.iterations<this.MAX_ITERATIONS;){let{solved:t,current:i}=this.solveOneStep();if(t){let r=[],s=i;for(;s;){let o=s.l;r.unshift({x:s.x,y:s.y,layer:o!==void 0?this.indexToLayer(o):e[0].layer}),s=s.parent}return Jh.enabled&&(this.debugMessage+=`t${this.debugTraceCount}: ${this.iterations} iterations
|
|
159
|
+
)`,enabled:":not(:disabled)",checked:":is(:is(input[type=radio], input[type=checkbox])[checked], option:selected)",required:":is(input, select, textarea)[required]",optional:":is(input, select, textarea):not([required])",selected:"option:is([selected], select:not([multiple]):not(:has(> option[selected])) > :first-of-type)",checkbox:"[type=checkbox]",file:"[type=file]",password:"[type=password]",radio:"[type=radio]",reset:"[type=reset]",image:"[type=image]",submit:"[type=submit]",parent:":not(:empty)",header:":is(h1, h2, h3, h4, h5, h6)",button:":is(button, input[type=button])",input:":is(input, textarea, select, button)",text:"input:is(:not([type!='']), [type=text])"};var Ms=Gt(Gh(),1);var R5={};function O5(n,e){return n===Ms.default.falseFunc?Ms.default.falseFunc:t=>e.isTag(t)&&n(t)}function L5(n,e){let t=e.getSiblings(n);if(t.length<=1)return[];let i=t.indexOf(n);return i<0||i===t.length-1?[]:t.slice(i+1).filter(e.isTag)}function A5(n){return{xmlMode:!!n.xmlMode,lowerCaseAttributeNames:!!n.lowerCaseAttributeNames,lowerCaseTags:!!n.lowerCaseTags,quirksMode:!!n.quirksMode,cacheResults:!!n.cacheResults,pseudos:n.pseudos,adapter:n.adapter,equals:n.equals}}var N5=(n,e,t,i,r)=>{let s=r(e,A5(t),i);return s===Ms.default.trueFunc?n:s===Ms.default.falseFunc?Ms.default.falseFunc:o=>s(o)&&n(o)},Q2={is:N5,matches:N5,where:N5,not(n,e,t,i,r){let s=r(e,A5(t),i);return s===Ms.default.falseFunc?n:s===Ms.default.trueFunc?Ms.default.falseFunc:o=>!s(o)&&n(o)},has(n,e,t,i,r){let{adapter:s}=t,o=A5(t);o.relativeSelector=!0;let a=e.some(u=>u.some(yg))?[R5]:void 0,c=r(e,o,a);if(c===Ms.default.falseFunc)return Ms.default.falseFunc;let l=O5(c,s);if(a&&c!==Ms.default.trueFunc){let{shouldTestNextSiblings:u=!1}=c;return h=>{if(!n(h))return!1;a[0]=h;let f=s.getChildren(h),_=u?[...f,...L5(h,s)]:f;return s.existsOne(l,_)}}return u=>n(u)&&s.existsOne(l,s.getChildren(u))}};function SG(n,e,t,i,r){var s;let{name:o,data:a}=e;if(Array.isArray(a)){if(!(o in Q2))throw new Error(`Unknown pseudo-class :${o}(${a})`);return Q2[o](n,a,t,i,r)}let c=(s=t.pseudos)===null||s===void 0?void 0:s[o],l=typeof c=="string"?c:I5[o];if(typeof l=="string"){if(a!=null)throw new Error(`Pseudo ${o} doesn't have any arguments`);let u=_g(l);return Q2.is(n,u,t,i,r)}if(typeof c=="function")return C5(c,o,a,1),u=>c(u,a)&&n(u);if(o in xg)return xg[o](n,a,t,i);if(o in J2){let u=J2[o];return C5(u,o,a,2),h=>u(h,t,a)&&n(h)}throw new Error(`Unknown pseudo-class :${o}`)}function F5(n,e){let t=e.getParent(n);return t&&e.isTag(t)?t:null}function PG(n,e,t,i,r){let{adapter:s,equals:o}=t;switch(e.type){case de.PseudoElement:throw new Error("Pseudo-elements are not supported by css-select");case de.ColumnCombinator:throw new Error("Column combinators are not yet supported by css-select");case de.Attribute:{if(e.namespace!=null)throw new Error("Namespaced attributes are not yet supported by css-select");return(!t.xmlMode||t.lowerCaseAttributeNames)&&(e.name=e.name.toLowerCase()),xG[e.action](n,e,t)}case de.Pseudo:return SG(n,e,t,i,r);case de.Tag:{if(e.namespace!=null)throw new Error("Namespaced tag names are not yet supported by css-select");let{name:a}=e;return(!t.xmlMode||t.lowerCaseTags)&&(a=a.toLowerCase()),function(l){return s.getName(l)===a&&n(l)}}case de.Descendant:{if(t.cacheResults===!1||typeof WeakSet>"u")return function(l){let u=l;for(;u=F5(u,s);)if(n(u))return!0;return!1};let a=new WeakSet;return function(l){let u=l;for(;u=F5(u,s);)if(!a.has(u)){if(s.isTag(u)&&n(u))return!0;a.add(u)}return!1}}case"_flexibleDescendant":return function(c){let l=c;do if(n(l))return!0;while(l=F5(l,s));return!1};case de.Parent:return function(c){return s.getChildren(c).some(l=>s.isTag(l)&&n(l))};case de.Child:return function(c){let l=s.getParent(c);return l!=null&&s.isTag(l)&&n(l)};case de.Sibling:return function(c){let l=s.getSiblings(c);for(let u=0;u<l.length;u++){let h=l[u];if(o(c,h))break;if(s.isTag(h)&&n(h))return!0}return!1};case de.Adjacent:return s.prevElementSibling?function(c){let l=s.prevElementSibling(c);return l!=null&&n(l)}:function(c){let l=s.getSiblings(c),u;for(let h=0;h<l.length;h++){let f=l[h];if(o(c,f))break;s.isTag(f)&&(u=f)}return!!u&&n(u)};case de.Universal:{if(e.namespace!=null&&e.namespace!=="*")throw new Error("Namespaced universal selectors are not yet supported by css-select");return n}}}function kG(n,e,t){let i=tw(n,e,t);return O5(i,e.adapter)}function tw(n,e,t){let i=typeof n=="string"?_g(n):n;return ew(i,e,t)}function TG(n){return n.type===de.Pseudo&&(n.name==="scope"||Array.isArray(n.data)&&n.data.some(e=>e.some(TG)))}var l3t={type:de.Descendant},u3t={type:"_flexibleDescendant"},p3t={type:de.Pseudo,name:"scope",data:null};function h3t(n,{adapter:e},t){let i=!!t?.every(r=>{let s=e.isTag(r)&&e.getParent(r);return r===R5||s&&e.isTag(s)});for(let r of n){if(!(r.length>0&&yg(r[0])&&r[0].type!==de.Descendant))if(i&&!r.some(TG))r.unshift(l3t);else continue;r.unshift(p3t)}}function ew(n,e,t){var i;n.forEach(T5),t=(i=e.context)!==null&&i!==void 0?i:t;let r=Array.isArray(t),s=t&&(Array.isArray(t)?t:[t]);if(e.relativeSelector!==!1)h3t(n,e,s);else if(n.some(c=>c.length>0&&yg(c[0])))throw new Error("Relative selectors are not allowed when the `relativeSelector` option is disabled");let o=!1,a=n.map(c=>{if(c.length>=2){let[l,u]=c;l.type!==de.Pseudo||l.name!=="scope"||(r&&u.type===de.Descendant?c[1]=u3t:(u.type===de.Adjacent||u.type===de.Sibling)&&(o=!0))}return d3t(c,e,s)}).reduce(f3t,Ea.default.falseFunc);return a.shouldTestNextSiblings=o,a}function d3t(n,e,t){var i;return n.reduce((r,s)=>r===Ea.default.falseFunc?Ea.default.falseFunc:PG(r,s,e,t,ew),(i=e.rootFunc)!==null&&i!==void 0?i:Ea.default.trueFunc)}function f3t(n,e){return e===Ea.default.falseFunc||n===Ea.default.trueFunc?n:n===Ea.default.falseFunc||e===Ea.default.trueFunc?e:function(i){return n(i)||e(i)}}var MG=(n,e)=>n===e,m3t={adapter:Z2,equals:MG};function EG(n){var e,t,i,r;let s=n??m3t;return(e=s.adapter)!==null&&e!==void 0||(s.adapter=Z2),(t=s.equals)!==null&&t!==void 0||(s.equals=(r=(i=s.adapter)===null||i===void 0?void 0:i.equals)!==null&&r!==void 0?r:MG),s}function $5(n){return function(t,i,r){let s=EG(i);return n(t,s,r)}}var nte=$5(kG),ite=$5(tw),rte=$5(ew);function CG(n){return function(t,i,r){let s=EG(r);typeof t!="function"&&(t=tw(t,s,i));let o=_3t(i,s.adapter,t.shouldTestNextSiblings);return n(t,o,s)}}function _3t(n,e,t=!1){return t&&(n=y3t(n,e)),Array.isArray(n)?e.removeSubsets(n):e.getChildren(n)}function y3t(n,e){let t=Array.isArray(n)?n.slice(0):[n],i=t.length;for(let r=0;r<i;r++){let s=L5(t[r],e);t.push(...s)}return t}var D5=CG((n,e,t)=>n===z5.default.falseFunc||!e||e.length===0?[]:t.adapter.findAll(n,e)),nw=CG((n,e,t)=>n===z5.default.falseFunc||!e||e.length===0?null:t.adapter.findOne(n,e));Q();wt();Q();var aH=Gt(En(),1);wt();var uH=Gt(En(),1),hH=Gt(En(),1);wt();ri();G5();var H5=(n,e={})=>{let t=n._internal_store;if(!t){t={counts:{}},n._internal_store=t;for(let r of n){let s=r.type,o=r[`${s}_id`];if(!o)continue;let a=Number.parseInt(o.split("_").pop());Number.isNaN(a)||(t.counts[s]=Math.max(t.counts[s]??0,a))}}return new Proxy({},{get:(r,s)=>s==="toArray"?()=>n:{get:o=>n.find(a=>a.type===s&&a[`${s}_id`]===o),getUsing:o=>{let a=Object.keys(o);if(a.length!==1)throw new Error("getUsing requires exactly one key, e.g. { pcb_component_id }");let c=a[0],l=c.replace("_id",""),u=n.find(h=>h.type===l&&h[c]===o[c]);return u?n.find(h=>h.type===s&&h[`${s}_id`]===u[`${s}_id`]):null},getWhere:o=>{let a=Object.keys(o);return n.find(c=>c.type===s&&a.every(l=>c[l]===o[l]))},list:o=>{let a=o?Object.keys(o):[];return n.filter(c=>c.type===s&&a.every(l=>c[l]===o[l]))},insert:o=>{var l;(l=t.counts)[s]??(l[s]=-1),t.counts[s]++;let a=t.counts[s],c={type:s,[`${s}_id`]:`${s}_${a}`,...o};return e.validateInserts&&(Dh[s]??$h).parse(c),n.push(c),c},delete:o=>{let a=n.find(c=>c[`${s}_id`]===o);a&&n.splice(n.indexOf(a),1)},update:(o,a)=>{let c=n.find(l=>l[`${s}_id`]===o);if(c)return Object.assign(c,a),c},select:o=>{if(s==="source_component")return n.find(a=>a.type==="source_component"&&a.name===o.replace(/\./g,""));if(s==="pcb_port"||s==="source_port"||s==="schematic_port"){let[a,c]=o.replace(/\./g,"").split(/[\s\>]+/),l=n.find(h=>h.type==="source_component"&&h.name===a);if(!l)return null;let u=n.find(h=>h.type==="source_port"&&h.source_component_id===l.source_component_id&&(h.name===c||(h.port_hints??[]).includes(c)));if(!u)return null;if(s==="source_port")return u;if(s==="pcb_port")return n.find(h=>h.type==="pcb_port"&&h.source_port_id===u.source_port_id);if(s==="schematic_port")return n.find(h=>h.type==="schematic_port"&&h.source_port_id===u.source_port_id)}}}})};H5.unparsed=H5;var XG=H5;var ane=Gt(VG(),1);er();function eo(n){let e=n.width/2,t=n.height/2;return{minX:n.center.x-e,maxX:n.center.x+e,minY:n.center.y-t,maxY:n.center.y+t}}function Pg(n,e){let t=eo(n),i=eo(e),r=Math.max(t.minX-i.maxX,i.minX-t.maxX,0),s=Math.max(t.minY-i.maxY,i.minY-t.maxY,0),o={x:0,y:0},a={x:0,y:0};return r===0&&s===0?{distance:0,pointA:n.center,pointB:e.center}:(o.x=Vn(n.center.x,i.minX,i.maxX),o.y=Vn(n.center.y,i.minY,i.maxY),a.x=Vn(e.center.x,t.minX,t.maxX),a.y=Vn(e.center.y,t.minY,t.maxY),{distance:Math.hypot(o.x-a.x,o.y-a.y),pointA:o,pointB:a})}function No(n,e){return Pg(n,e)}function J5(n,e){let t=eo(n),i=eo(e),r=Math.max(t.minX-i.maxX,i.minX-t.maxX,0),s=Math.max(t.minY-i.maxY,i.minY-t.maxY,0);return Math.hypot(r,s)}function Vn(n,e,t){return Math.max(e,Math.min(t,n))}function kg(n,e){let t=Number.POSITIVE_INFINITY,i={x:0,y:0},r={x:0,y:0};for(let s of n)for(let o of e){let{distance:a,pointA:c,pointB:l}=Pg(s,o);a<t&&(t=a,i=c,r=l)}return{pointA:i,pointB:r,distance:t}}er();er();var JG="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var QG=(n=21)=>{let e="",t=crypto.getRandomValues(new Uint8Array(n|=0));for(;n--;)e+=JG[t[n]&63];return e};er();var Qh=(n,e)=>Math.abs(n.x-e.x)+Math.abs(n.y-e.y),tH=(n,e)=>{let t=e.x-n.x,i=e.y-n.y;return Math.abs(t)>Math.abs(i)?{dx:Math.sign(t),dy:0}:{dx:0,dy:Math.sign(i)}},sH=(n,e,t)=>Math.abs(n.x-e.x)*Math.abs(t.dx)+Math.abs(n.y-e.y)*Math.abs(t.dy),oH=(n,e=.1)=>`${Math.round(n.x/e)},${Math.round(n.y/e)}`,eH=(n,e)=>Math.abs(n-e)<1e-4,cH=(n,e,{viaDiameter:t=.5}={})=>{let i=[];for(let r=0;r<n.length-1;r++){let[s,o]=[n[r],n[r+1]],a=r-1>=0?n[r-1]:null,c=eH(s.y,o.y),l=eH(s.x,o.x);if(!c&&!l)throw new Error(`getObstaclesFromTrace currently only supports horizontal and vertical traces (not diagonals) Conflicting trace: ${e}, start: (${s.x}, ${s.y}), end: (${o.x}, ${o.y})`);let u={type:"rect",layers:[s.layer],center:{x:(s.x+o.x)/2,y:(s.y+o.y)/2},width:c?Math.abs(s.x-o.x):.1,height:l?Math.abs(s.y-o.y):.1,connectedTo:[e]};if(i.push(u),a&&a.layer===s.layer&&s.layer!==o.layer){let h={type:"rect",layers:[s.layer,o.layer],center:{x:s.x,y:s.y},connectedTo:[e],width:t,height:t};i.push(h)}}return i},lH=class{constructor(n){d(this,"obstacles");d(this,"GRID_STEP",.1);this.obstacles=n.map(e=>({...e,left:e.center.x-e.width/2,right:e.center.x+e.width/2,top:e.center.y+e.height/2,bottom:e.center.y-e.height/2}))}getObstacleAt(n,e,t){t??(t=this.GRID_STEP);for(let i of this.obstacles){let r=i.width/2+t,s=i.height/2+t;if(n>=i.center.x-r&&n<=i.center.x+r&&e>=i.center.y-s&&e<=i.center.y+s)return i}return null}isObstacleAt(n,e,t){return this.getObstacleAt(n,e,t)!==null}getDirectionDistancesToNearestObstacle(n,e){let{GRID_STEP:t}=this,i={left:1/0,top:1/0,bottom:1/0,right:1/0};for(let r of this.obstacles)if(r.type==="rect"){let s=r.center.x-r.width/2-t,o=r.center.x+r.width/2+t,a=r.center.y+r.height/2+t,c=r.center.y-r.height/2-t;e>=c&&e<=a&&n>s&&(i.left=Math.min(i.left,n-o)),e>=c&&e<=a&&n<o&&(i.right=Math.min(i.right,s-n)),n>=s&&n<=o&&e<a&&(i.top=Math.min(i.top,c-e)),n>=s&&n<=o&&e>c&&(i.bottom=Math.min(i.bottom,e-a))}return i}getOrthoDirectionCollisionInfo(n,e,{margin:t=0}={}){let{x:i,y:r}=n,{dx:s,dy:o}=e,a=1/0,c=null;for(let l of this.obstacles){let u=l.left-t,h=l.right+t,f=l.top+t,_=l.bottom-t,g=null;s===1&&o===0?r>_&&r<f&&i<l.left&&(g=l.left-i):s===-1&&o===0?r>_&&r<f&&i>l.right&&(g=i-l.right):s===0&&o===1?i>u&&i<h&&r<l.bottom&&(g=l.bottom-r):s===0&&o===-1&&i>u&&i<h&&r>l.top&&(g=r-l.top),g!==null&&g<a&&(a=g,c=l)}return{dx:s,dy:o,wallDistance:a,obstacle:c}}getObstaclesOverlappingRegion(n){let e=[];for(let t of this.obstacles){let{left:i,right:r,top:s,bottom:o}=t;i<=n.maxX&&r>=n.minX&&s<=n.maxY&&o>=n.minY&&e.push(t)}return e}};function S3t(n){if(n.length<4)return n;let e=[{...n[0]}],t=n[0].layer;for(let i=1;i<n.length;i++){let r={start:n[i-1],end:n[i]},s=n[i].route_type==="via"||n[i-1].route_type==="via";if(n[i].layer!==t||s){e.push({...n[i]}),t=n[i].layer;continue}let o=!1,a=null,c=-1;for(let u=0;u<e.length-1;u++){let h={start:e[u],end:e[u+1]};if(h.start.layer===r.start.layer&&h.start.layer===r.start.layer){let f=P3t(h,r);if(f){o=!0,a={...f,layer:t},c=u;break}}}o&&a&&(e.splice(c+1),e.push(a));let l=e[e.length-1];(l.x!==n[i].x||l.y!==n[i].y)&&e.push(n[i])}return e}function P3t(n,e){if(n.start.x===n.end.x&&e.start.x===e.end.x||n.start.y===n.end.y&&e.start.y===e.end.y)return null;let t;if(n.start.x===n.end.x){let i=n.start.x,r=e.start.y;t={...n.start,x:i,y:r}}else{let i=e.start.x,r=n.start.y;t={...n.start,x:i,y:r}}return nH(t,n)&&nH(t,e)?t:null}function nH(n,e){return n.x>=Math.min(e.start.x,e.end.x)&&n.x<=Math.max(e.start.x,e.end.x)&&n.y>=Math.min(e.start.y,e.end.y)&&n.y<=Math.max(e.start.y,e.end.y)}function k3t(n){let e=[n[0]];for(let t=1;t<n.length-1;t++){let[i,r,s]=[n[t-1],n[t],n[t+1]];e.push(r),!(r.route_type!=="wire"||i.route_type!=="wire"||s.route_type!=="wire")&&i.layer===r.layer&&r.layer!==s.layer&&e.push({route_type:"via",from_layer:r.layer,to_layer:s.layer,x:r.x,y:r.y})}return e.push(n[n.length-1]),e}var sne=(0,uH.default)("autorouter:shortenPathWithShortcuts");function T3t(n,e){if(n.length<=2)return n;let t=[n[0]];for(let i=1;i<n.length;i++){let r={start:t[t.length-1],end:n[i]},s=-1,o=r.start.x===r.end.x,a=r.start.y===r.end.y;for(let c=i+1;c<n.length;c++){if(c<=s)continue;let l={start:n[c],end:n[c+1]};if(!l.end)continue;let u=l.start.x===l.end.x,h=l.start.y===l.end.y,f=o&&u,_=a&&h;if(_&&f||!(f||_))continue;let x=!1,v=Math.min(r.start.x,r.end.x),P=Math.max(r.start.x,r.end.x),S=Math.min(l.start.x,l.end.x),T=Math.max(l.start.x,l.end.x),k=Math.min(r.start.y,r.end.y),C=Math.max(r.start.y,r.end.y),M=Math.min(l.start.y,l.end.y),I=Math.max(l.start.y,l.end.y);if(_?x=v<=T&&P>=S:f&&(x=k<=I&&C>=M),!x)continue;let E=[],A=t[t.length-1],R=n[c+2];if(!R)continue;_&&S<P&&R.x===S&&E.push({x:S,y:r.start.y,layer:r.start.layer}),_&&T>v&&R.x===T&&E.push({x:T,y:r.start.y,layer:r.start.layer}),f&&M<C&&R.y===M&&E.push({x:r.start.x,y:M,layer:r.start.layer}),f&&I>k&&R.y===I&&E.push({x:r.start.x,y:I,layer:r.start.layer});let j=null;for(let B of E)if(!(e(A,B)||e(R,B))){j=B;break}if(j){t.push(j),i=c+1,s=c+1;break}}s===-1&&t.push(n[i])}return t[t.length-1]!==n[n.length-1]&&t.push(n[n.length-1]),t}var Jh=(0,aH.default)("autorouting-dataset:astar"),pH=class{constructor(n){d(this,"openSet",[]);d(this,"closedSet",new Set);d(this,"debug",!1);d(this,"debugSolutions");d(this,"debugMessage",null);d(this,"debugTraceCount",0);d(this,"input");d(this,"obstacles");d(this,"allObstacles");d(this,"startNode");d(this,"goalPoint");d(this,"GRID_STEP");d(this,"OBSTACLE_MARGIN");d(this,"MAX_ITERATIONS");d(this,"isRemovePathLoopsEnabled");d(this,"isShortenPathWithShortcutsEnabled");d(this,"GREEDY_MULTIPLIER",1.1);d(this,"iterations",-1);this.input=n.input,this.allObstacles=n.input.obstacles,this.startNode=n.startNode,this.goalPoint=n.goalPoint?{l:0,...n.goalPoint}:void 0,this.GRID_STEP=n.GRID_STEP??.1,this.OBSTACLE_MARGIN=n.OBSTACLE_MARGIN??.15,this.MAX_ITERATIONS=n.MAX_ITERATIONS??100,this.debug=n.debug??Jh.enabled,this.isRemovePathLoopsEnabled=n.isRemovePathLoopsEnabled??!1,this.isShortenPathWithShortcutsEnabled=n.isShortenPathWithShortcutsEnabled??!1,this.debug&&(Jh.enabled=!0),Jh.enabled&&(this.debugSolutions={},this.debugMessage="")}getNeighbors(n){return[]}isSameNode(n,e){return Qh(n,e)<this.GRID_STEP}computeG(n,e){return n.g+Qh(n,e)}computeH(n){return Qh(n,this.goalPoint)}getNodeName(n){return oH(n,this.GRID_STEP)}solveOneStep(){this.iterations+=1;let{openSet:n,closedSet:e,GRID_STEP:t,goalPoint:i}=this;n.sort((a,c)=>a.f-c.f);let r=n.shift();if(this.computeH(r)<=t*2)return{solved:!0,current:r,newNeighbors:[]};this.closedSet.add(this.getNodeName(r));let o=[];for(let a of this.getNeighbors(r)){if(e.has(this.getNodeName(a)))continue;let c=this.computeG(r,a),l=this.openSet.find(u=>this.isSameNode(u,a));if(!l||c<l.g){let u=this.computeH(a),h=c+u*this.GREEDY_MULTIPLIER,f={...a,g:c,h:u,f:h,obstacleHit:a.obstacleHit??void 0,manDistFromParent:Qh(r,a),nodesInPath:r.nodesInPath+1,parent:r,enterMarginCost:a.enterMarginCost,travelMarginCostFactor:a.travelMarginCostFactor};n.push(f),o.push(f)}}return Jh.enabled&&(n.sort((a,c)=>a.f-c.f),this.drawDebugSolution({current:r,newNeighbors:o})),{solved:!1,current:r,newNeighbors:o}}getStartNode(n){return{x:n.pointsToConnect[0].x,y:n.pointsToConnect[0].y,manDistFromParent:0,f:0,g:0,h:0,nodesInPath:0,parent:null}}layerToIndex(n){return 0}indexToLayer(n){return"top"}preprocessConnectionBeforeSolving(n){return n}solveConnection(n){if(n.pointsToConnect.length>2)throw new Error("GeneralizedAstarAutorouter doesn't currently support 2+ points in a connection");n=this.preprocessConnectionBeforeSolving(n);let{pointsToConnect:e}=n;for(this.iterations=0,this.closedSet=new Set,this.startNode=this.getStartNode(n),this.goalPoint={...e[e.length-1],l:this.layerToIndex(e[e.length-1].layer)},this.openSet=[this.startNode];this.iterations<this.MAX_ITERATIONS;){let{solved:t,current:i}=this.solveOneStep();if(t){let r=[],s=i;for(;s;){let o=s.l;r.unshift({x:s.x,y:s.y,layer:o!==void 0?this.indexToLayer(o):e[0].layer}),s=s.parent}return Jh.enabled&&(this.debugMessage+=`t${this.debugTraceCount}: ${this.iterations} iterations
|
|
160
160
|
`),this.isRemovePathLoopsEnabled&&(r=S3t(r)),this.isShortenPathWithShortcutsEnabled&&(r=T3t(r,(o,a)=>{if(o.x===a.x&&o.y===a.y)return!1;let c=this.obstacles.getOrthoDirectionCollisionInfo({x:o.x,y:o.y,l:this.layerToIndex(o.layer)??0},{dx:Math.sign(a.x-o.x),dy:Math.sign(a.y-o.y),dl:0},{margin:.05}),l=Math.sqrt((o.x-a.x)**2+(o.y-a.y)**2);return c.wallDistance<l})),{solved:!0,route:r,connectionName:n.name}}if(this.openSet.length===0)break}return Jh.enabled&&(this.debugMessage+=`t${this.debugTraceCount}: ${this.iterations} iterations (failed)
|
|
161
161
|
`),{solved:!1,connectionName:n.name}}createObstacleList({dominantLayer:n,connection:e,obstaclesFromTraces:t}){return new lH(this.allObstacles.filter(i=>!i.connectedTo.includes(e.name)).filter(i=>i.layers.includes(n)).concat(t??[]))}postprocessConnectionSolveResult(n,e){return e}solve(){let n=[],e=[];this.debugTraceCount=0;for(let t of this.input.connections){let i=t.pointsToConnect[0].layer??"top";this.debugTraceCount+=1,this.obstacles=this.createObstacleList({dominantLayer:i,connection:t,obstaclesFromTraces:e});let r=this.solveConnection(t);r=this.postprocessConnectionSolveResult(t,r),n.push(r),Jh.enabled&&this.drawDebugTraceObstacles(e),r.solved&&e.push(...cH(r.route.map(s=>({x:s.x,y:s.y,layer:s.layer??i})),t.name))}return n}solveAndMapToTraces(){return this.solve().flatMap(e=>e.solved?[{type:"pcb_trace",pcb_trace_id:`pcb_trace_for_${e.connectionName}`,route:k3t(e.route.map(t=>({route_type:"wire",x:t.x,y:t.y,width:this.input.minTraceWidth,layer:t.layer})))}]:[])}getDebugGroup(){let n=`t${this.debugTraceCount}_iter[${this.iterations-1}]`;return this.iterations<30||this.iterations<100&&this.iterations%10===0||this.iterations<1e3&&this.iterations%100===0||!this.debugSolutions?n:null}drawDebugTraceObstacles(n){let{debugTraceCount:e,debugSolutions:t}=this;for(let i in t)i.startsWith(`t${e}_`)&&t[i].push(...n.map((r,s)=>({type:"pcb_smtpad",pcb_component_id:"",layer:r.layers[0],width:r.width,shape:"rect",x:r.center.x,y:r.center.y,pcb_smtpad_id:`trace_obstacle_${s}`,height:r.height})))}drawDebugSolution({current:n,newNeighbors:e}){let t=this.getDebugGroup();if(!t)return;let{openSet:i,debugTraceCount:r,debugSolutions:s}=this;s[t]??(s[t]=[]);let o=s[t];o.push({type:"pcb_fabrication_note_text",pcb_fabrication_note_text_id:`debug_note_${n.x}_${n.y}`,font:"tscircuit2024",font_size:.25,text:"X"+(n.l!==void 0?n.l:""),pcb_component_id:"",layer:"top",anchor_position:{x:n.x,y:n.y},anchor_alignment:"center"});for(let a=0;a<i.length;a++){let c=i[a];o.push({type:"pcb_fabrication_note_path",pcb_component_id:"",pcb_fabrication_note_path_id:`note_path_${c.x}_${c.y}`,layer:"top",route:[[0,.05],[.05,0],[0,-.05],[-.05,0],[0,.05]].map(([l,u])=>({x:c.x+l,y:c.y+u})),stroke_width:.01}),o.push({type:"pcb_fabrication_note_text",pcb_fabrication_note_text_id:`debug_note_${c.x}_${c.y}`,font:"tscircuit2024",font_size:.03,text:a.toString(),pcb_component_id:"",layer:"top",anchor_position:{x:c.x,y:c.y},anchor_alignment:"center"})}if(n.parent){let a=[],c=n;for(;c;)a.unshift(c),c=c.parent;o.push({type:"pcb_fabrication_note_path",pcb_component_id:"",pcb_fabrication_note_path_id:`note_path_${n.x}_${n.y}`,layer:"top",route:a,stroke_width:.01})}}},M3t=(0,hH.default)("autorouting-dataset:infinite-grid-ijump-astar:get-distance-to-overcome-obstacle");function Q5({node:n,travelDir:e,wallDir:t,obstacle:i,obstacles:r,obstaclesInRow:s=0,OBSTACLE_MARGIN:o=.15,SHOULD_DETECT_CONJOINED_OBSTACLES:a=!1,MAX_CONJOINED_OBSTACLES:c=20}){let l;if(e.dx===0?e.dy>0?l=i.center.y+i.height/2-n.y:l=n.y-(i.center.y-i.height/2):e.dx>0?l=i.center.x+i.width/2-n.x:l=n.x-(i.center.x-i.width/2),l+=o,a&&s<c){let u=r.getObstacleAt(n.x+e.dx*l+t.dx*(t.wallDistance+.001),n.y+e.dy*l+t.dy*(t.wallDistance+.001));if(u===i)return l;if(u&&u.type==="rect"){let h=e.dy===0,f=h?i.height:i.width;if((h?u.height:u.width)>f)return M3t("next obstacle on path is bigger, not trying to overcome it"),l;let g=Q5({node:{x:n.x+e.dx*l,y:n.y+e.dy*l},travelDir:e,wallDir:t,obstacle:u,obstacles:r,obstaclesInRow:s+1,SHOULD_DETECT_CONJOINED_OBSTACLES:a,MAX_CONJOINED_OBSTACLES:c,OBSTACLE_MARGIN:o});l+=g}}return l}var E3t=class extends pH{constructor(){super(...arguments);d(this,"MAX_ITERATIONS",200)}getNeighbors(e){let t=this.obstacles,i=this.goalPoint,r;e.parent?r=tH(e.parent,e):r=tH(e,i);let s=[{dx:0,dy:1},{dx:1,dy:0},{dx:0,dy:-1},{dx:-1,dy:0}].filter(a=>a.dx===r.dx*-1&&a.dy===r.dy*-1?!1:!(a.dx===r.dx&&a.dy===r.dy&&e.parent?.obstacleHit)).map(a=>t.getOrthoDirectionCollisionInfo(e,a,{margin:this.OBSTACLE_MARGIN})).filter(a=>a.wallDistance>=this.OBSTACLE_MARGIN),o=[];for(let a of s){let c=null;e?.obstacleHit&&(c=Q5({node:e,travelDir:a,wallDir:{...r,wallDistance:this.OBSTACLE_MARGIN},obstacle:e.obstacleHit,obstacles:t,OBSTACLE_MARGIN:this.OBSTACLE_MARGIN,SHOULD_DETECT_CONJOINED_OBSTACLES:!0}));let l=sH(e,i,a),u=(a.dx===0||Math.sign(i.x-e.x)===a.dx)&&(a.dy===0||Math.sign(i.y-e.y)===a.dy);l<a.wallDistance&&l>0&&u?o.push({...a,travelDistance:l}):c!==null&&c<a.wallDistance?o.push({...a,travelDistance:c}):a.wallDistance!==1/0&&o.push({...a,travelDistance:a.wallDistance-this.OBSTACLE_MARGIN})}return o.filter(a=>!t.isObstacleAt(e.x+a.dx*a.travelDistance,e.y+a.dy*a.travelDistance)).map(a=>({x:e.x+a.dx*a.travelDistance,y:e.y+a.dy*a.travelDistance,obstacleHit:a.obstacle}))}};function C3t(n,e=4){let{center:t,width:i,height:r,rotation:s}=n,o=[],a=s*Math.PI/180,c=Math.cos(a),l=Math.sin(a),u=(s%360+360)%360;if(r<=i?u>=45&&u<135||u>=225&&u<315:u>=135&&u<225||u>=315||u<45){let f=i/e;for(let _=0;_<e;_++){let g=(_-e/2+.5)*f,x=-g*c,v=-g*l,P=f*1.1,S=Math.abs(r*c)+Math.abs(f*l);o.push({center:{x:t.x+x,y:t.y+v},width:P,height:S})}}else{let f=r/e;for(let _=0;_<e;_++){let g=(_-e/2+.5)*f,x=-g*l,v=g*c,P=Math.abs(i*c)+Math.abs(f*l),S=f*1.1;o.push({center:{x:t.x+x,y:t.y+v},width:P,height:S})}}return o}var cw=["top","inner1","inner2","bottom"],dH=(n,e)=>{let t=r=>e?r.concat(r.map(s=>e?.getNetConnectedToId(s)).filter(Boolean)):r,i=[];for(let r of n)if(r.type==="pcb_smtpad"){if(r.shape==="circle")i.push({type:"oval",layers:[r.layer],center:{x:r.x,y:r.y},width:r.radius*2,height:r.radius*2,connectedTo:t([r.pcb_smtpad_id])});else if(r.shape==="rect")i.push({type:"rect",layers:[r.layer],center:{x:r.x,y:r.y},width:r.width,height:r.height,connectedTo:t([r.pcb_smtpad_id])});else if(r.shape==="rotated_rect"){let s={center:{x:r.x,y:r.y},width:r.width,height:r.height,rotation:r.ccw_rotation},o=C3t(s);for(let a of o)i.push({type:"rect",layers:[r.layer],center:a.center,width:a.width,height:a.height,connectedTo:t([r.pcb_smtpad_id])})}}else if(r.type==="pcb_keepout")r.shape==="circle"?i.push({type:"oval",layers:r.layers,center:{x:r.center.x,y:r.center.y},width:r.radius*2,height:r.radius*2,connectedTo:[]}):r.shape==="rect"&&i.push({type:"rect",layers:r.layers,center:{x:r.center.x,y:r.center.y},width:r.width,height:r.height,connectedTo:[]});else if(r.type==="pcb_hole")r.hole_shape==="oval"?i.push({type:"oval",center:{x:r.x,y:r.y},width:r.hole_width,height:r.hole_height,connectedTo:[]}):r.hole_shape==="square"?i.push({type:"rect",layers:cw,center:{x:r.x,y:r.y},width:r.hole_diameter,height:r.hole_diameter,connectedTo:[]}):(r.hole_shape==="round"||r.hole_shape==="circle")&&i.push({type:"rect",layers:cw,center:{x:r.x,y:r.y},width:r.hole_diameter,height:r.hole_diameter,connectedTo:[]});else if(r.type==="pcb_plated_hole")r.shape==="circle"?i.push({type:"oval",layers:cw,center:{x:r.x,y:r.y},width:r.outer_diameter,height:r.outer_diameter,connectedTo:t([r.pcb_plated_hole_id])}):(r.shape==="oval"||r.shape==="pill")&&i.push({type:"oval",layers:cw,center:{x:r.x,y:r.y},width:r.outer_width,height:r.outer_height,connectedTo:t([r.pcb_plated_hole_id])});else if(r.type==="pcb_trace"){let s=cH(r.route.map(o=>({x:o.x,y:o.y,layer:"layer"in o?o.layer:o.from_layer})),r.source_trace_id);i.push(...s)}else r.type==="pcb_via"&&i.push({type:"rect",layers:r.layers,center:{x:r.x,y:r.y},connectedTo:[],width:r.outer_diameter,height:r.outer_diameter});return i};function iH(n){let{pcbConnMap:e,goalElementId:t}=n;if(!t.startsWith("pcb_port_"))throw new Error(`Currently alternative goal boxes must have a goal id with prefix "pcb_port_" (got ${t})`);let i=e.getAllTracesConnectedToPort(t);return dH(i).map(r=>({...r,connectedTo:[t]}))}var fH=n=>{let{connection:e,pcbConnMap:t}=n;if(e.pointsToConnect.length!==2)throw new Error(`Connection must have exactly 2 points for alternative goal boxes (got ${e.pointsToConnect.length})`);let[i,r]=e.pointsToConnect;if(!i.pcb_port_id||!r.pcb_port_id)throw new Error(`Connection points must have pcb_port_id for alternative goal box calculation (got ${i.pcb_port_id} and ${r.pcb_port_id})`);let s=iH({goalElementId:i.pcb_port_id,pcbConnMap:t}).concat([{center:i,width:.01,height:.01,connectedTo:[i.pcb_port_id],layers:[i.layer],type:"rect"}]),o=iH({goalElementId:r.pcb_port_id,pcbConnMap:t}).concat([{center:r,width:.01,height:.01,connectedTo:[r.pcb_port_id],layers:[r.layer],type:"rect"}]);if(s.length<=1&&o.length<=1)return{...e,startPoint:i,endPoint:r,goalBoxes:[]};let a=kg(s,o),c,l,u;return s.length>=o.length?(c={...r,...a.pointB},l={...i,...a.pointA},u=s):(c={...i,...a.pointA},l={...r,...a.pointB},u=o),{startPoint:c,endPoint:l,goalBoxes:u,name:e.name,pointsToConnect:[c,l]}},I3t=(n,e={})=>{let t={minTraceWidth:.1};t.layerCount=e.layerCount??1,t.obstacles=dH(n,e.connMap),t.connections=[];for(let r of n)if(r.type==="source_trace"){let s={name:r.source_trace_id,pointsToConnect:r.connected_source_port_ids.map(o=>{let a=XG(n).pcb_port.getWhere({source_port_id:o});if(!a)throw new Error(`Could not find pcb_port for source_port_id "${o}"`);return{x:a.x,y:a.y,layer:a.layers?.[0]??"top",pcb_port_id:a.pcb_port_id}})};if(e.optimizeWithGoalBoxes){let o=new aw(n);s=fH({connection:s,pcbConnMap:o})}t.connections.push(s),N3t(t.obstacles,s.pointsToConnect,s.name)}let i={minX:1/0,maxX:-1/0,minY:1/0,maxY:-1/0};for(let r of t.obstacles)i.minX=Math.min(i.minX,r.center.x-r.width/2),i.maxX=Math.max(i.maxX,r.center.x+r.width/2),i.minY=Math.min(i.minY,r.center.y-r.height/2),i.maxY=Math.max(i.maxY,r.center.y+r.height/2);for(let r of t.connections)for(let s of r.pointsToConnect)i.minX=Math.min(i.minX,s.x),i.maxX=Math.max(i.maxX,s.x),i.minY=Math.min(i.minY,s.y),i.maxY=Math.max(i.maxY,s.y);return t.bounds=i,t},N3t=(n,e,t)=>{for(let i of e)for(let r of n)A3t(i,r)&&r.connectedTo.push(t)};function A3t(n,e){let t=e.width/2,i=e.height/2;if(e.type==="rect")return n.x>=e.center.x-t&&n.x<=e.center.x+t&&n.y>=e.center.y-i&&n.y<=e.center.y+i;if(e.type==="oval"){let r=(n.x-e.center.x)/t,s=(n.y-e.center.y)/i;return r*r+s*s<=1}return!1}function rH(n,e){let t=e.x>n.x?1:e.x<n.x?-1:0,i=e.y>n.y?1:e.y<n.y?-1:0,r=e.l>n.l?1:e.l<n.l?-1:0;return{dx:t,dy:i,dl:r}}var t4={1:["top"],2:["top","bottom"],4:["top","inner1","inner2","bottom"]},R3t=n=>t4[n];function mH(n,e){let i=t4[n].indexOf(e);if(i===-1)throw new Error(`Invalid layer for getLayerIndex (for layerCount === ${n}): "${e}"`);return i}function O3t(n,e){let i=t4[n][e];if(!i)throw new Error(`Invalid index for indexToLayer (for layerCount === ${n}): "${e}"`);return i}var L3t=class extends lH{constructor(e,t){super([]);d(this,"obstacles");d(this,"GRID_STEP",.1);d(this,"layerCount");this.layerCount=e;let i=R3t(e);this.obstacles=t.flatMap(r=>r.layers.filter(s=>i.includes(s)).map(s=>({...r,left:r.center.x-r.width/2,right:r.center.x+r.width/2,top:r.center.y+r.height/2,bottom:r.center.y-r.height/2,l:mH(e,s)})))}getObstacleAt(e,t,i,r){r??(r=this.GRID_STEP);for(let s of this.obstacles){if(s.l!==i)continue;let o=s.width/2+r,a=s.height/2+r;if(e>=s.center.x-o&&e<=s.center.x+o&&t>=s.center.y-a&&t<=s.center.y+a)return s}return null}isObstacleAt(e,t,i,r){return this.getObstacleAt(e,t,i,r)!==null}getDirectionDistancesToNearestObstacle3d(e,t,i){let{GRID_STEP:r}=this,s={left:1/0,top:1/0,bottom:1/0,right:1/0};for(let o of this.obstacles)if(o.l===i&&o.type==="rect"){let a=o.center.x-o.width/2-r,c=o.center.x+o.width/2+r,l=o.center.y+o.height/2+r,u=o.center.y-o.height/2-r;t>=u&&t<=l&&e>a&&(s.left=Math.min(s.left,e-c)),t>=u&&t<=l&&e<c&&(s.right=Math.min(s.right,a-e)),e>=a&&e<=c&&t<l&&(s.top=Math.min(s.top,u-t)),e>=a&&e<=c&&t>u&&(s.bottom=Math.min(s.bottom,t-l))}return s}getOrthoDirectionCollisionInfo(e,t,{margin:i=0}={}){let{x:r,y:s,l:o}=e,{dx:a,dy:c,dl:l}=t,u=1/0,h=null;if(l!==0){let f=o+l;return this.isObstacleAt(r,s,f,i)?(u=1,h=this.getObstacleAt(r,s,f,i)):u=1,{dx:a,dy:c,dl:l,wallDistance:u,obstacle:h}}else{for(let f of this.obstacles){if(f.l!==o)continue;let _=f.left-i,g=f.right+i,x=f.top+i,v=f.bottom-i,P=null;a===1&&c===0?s>v&&s<x&&r<f.left&&(P=f.left-r):a===-1&&c===0?s>v&&s<x&&r>f.right&&(P=r-f.right):a===0&&c===1?r>_&&r<g&&s<f.bottom&&(P=f.bottom-s):a===0&&c===-1&&r>_&&r<g&&s>f.top&&(P=s-f.top),P!==null&&P<u&&(u=P,h=f)}return{dx:a,dy:c,dl:0,wallDistance:u,obstacle:h}}}getObstaclesOverlappingRegion(e){let t=[];for(let i of this.obstacles){if(i.l!==e.l)continue;let{left:r,right:s,top:o,bottom:a}=i;r<=e.maxX&&s>=e.minX&&o>=e.minY&&a<=e.maxY&&t.push(i)}return t}},lw=class extends pH{constructor(e){super(e);d(this,"MAX_ITERATIONS",500);d(this,"VIA_COST",4);d(this,"VIA_DIAMETER",.5);d(this,"allowLayerChange",!0);d(this,"layerCount");d(this,"obstacles");d(this,"optimizeWithGoalBoxes");d(this,"connMap");d(this,"pcbConnMap");d(this,"GOAL_RUSH_FACTOR",1.1);d(this,"defaultGoalViaMargin",.5);d(this,"marginsWithCosts");this.layerCount=e.input.layerCount??2,this.MAX_ITERATIONS=e.MAX_ITERATIONS??this.MAX_ITERATIONS,this.VIA_COST=e.VIA_COST??this.VIA_COST,this.connMap=e.connMap,this.pcbConnMap=e.pcbConnMap??new aw,this.optimizeWithGoalBoxes=e.optimizeWithGoalBoxes??!1,this.obstacles=null,this.marginsWithCosts=e.marginsWithCosts??[{margin:1,enterCost:0,travelCostFactor:1},{margin:this.OBSTACLE_MARGIN,enterCost:10,travelCostFactor:2}]}get largestMargin(){return this.marginsWithCosts[0].margin}preprocessConnectionBeforeSolving(e){return this.optimizeWithGoalBoxes?fH({connection:e,pcbConnMap:this.pcbConnMap}):e}postprocessConnectionSolveResult(e,t){if(!t.solved)return t;if(this.optimizeWithGoalBoxes){let i=t.route.map(r=>({x:r.x,y:r.y,route_type:"wire",layer:r.layer,width:this.input.minTraceWidth}));i[0].start_pcb_port_id=e.pointsToConnect[0].pcb_port_id,i[i.length-1].end_pcb_port_id=e.pointsToConnect[1].pcb_port_id,this.pcbConnMap.addTrace({type:"pcb_trace",pcb_trace_id:`postprocess_trace_${QG(8)}`,route:i})}return t}createObstacleList({dominantLayer:e,connection:t,obstaclesFromTraces:i}){let r=this.connMap?this.connMap.getNetConnectedToId(t.name):t.name;if(!r)throw new Error(`The connection.name "${t.name}" wasn't present in the full connectivity map`);return new L3t(this.layerCount,this.allObstacles.filter(s=>!s.connectedTo.includes(r)).concat(i??[]))}computeG(e,t){let i=e.g+Qh(e,t)*(e.travelMarginCostFactor??1)+(t.enterMarginCost??0);return(t.l??e.l!==-1??-1)&&(i+=this.VIA_COST),i}computeH(e){let t=Math.abs(e.x-this.goalPoint.x),i=Math.abs(e.y-this.goalPoint.y),r=Math.abs(e.l-this.goalPoint.l);return(t+i)**this.GOAL_RUSH_FACTOR+r*this.VIA_COST}getStartNode(e){return{...super.getStartNode(e),l:this.layerToIndex(e.pointsToConnect[0].layer)}}layerToIndex(e){return mH(this.layerCount,e)}indexToLayer(e){return O3t(this.layerCount,e)}getNodeName(e){return`${oH(e,this.GRID_STEP)}-${e.l??0}`}hasSpaceForVia(e,t){return e.every(i=>this.obstacles.getObstaclesOverlappingRegion({minX:t.x-this.VIA_DIAMETER/2-this.OBSTACLE_MARGIN,minY:t.y-this.VIA_DIAMETER/2-this.OBSTACLE_MARGIN,maxX:t.x+this.VIA_DIAMETER/2+this.OBSTACLE_MARGIN,maxY:t.y+this.VIA_DIAMETER/2+this.OBSTACLE_MARGIN,l:i}).length===0)}getNeighborsSurroundingGoal(e){let t=this.obstacles,i=this.goalPoint,r=[],s=[{dx:1,dy:0,dl:0},{dx:-1,dy:0,dl:0},{dx:0,dy:1,dl:0},{dx:0,dy:-1,dl:0}],o=this.VIA_DIAMETER+this.OBSTACLE_MARGIN+this.defaultGoalViaMargin;for(let a of s){let c={x:e.x+a.dx*o,y:e.y+a.dy*o,l:e.l+a.dl,obstacleHit:null};this.hasSpaceForVia([e.l,i.l],c)&&r.push(c)}return r}getNeighbors(e){let t=this.obstacles,i=this.goalPoint,r=Qh(e,i);if(r<=this.OBSTACLE_MARGIN)return this.getNeighborsSurroundingGoal(e);let s;e.parent?s=rH(e.parent,e):s=rH(e,i);let o=[{dx:0,dy:1,dl:0},{dx:1,dy:0,dl:0},{dx:0,dy:-1,dl:0},{dx:-1,dy:0,dl:0}],a=r>this.VIA_DIAMETER+this.OBSTACLE_MARGIN,c=Qh(e,this.startNode)>this.VIA_DIAMETER+this.OBSTACLE_MARGIN;this.allowLayerChange&&a&&c&&(e.l<this.layerCount-1&&o.push({dx:0,dy:0,dl:1}),e.l>0&&o.push({dx:0,dy:0,dl:-1}));let l=o.filter(h=>h.dx===s.dx*-1&&h.dy===s.dy*-1&&h.dl===s.dl*-1?!1:!(h.dx===s.dx&&h.dy===s.dy&&h.dl===s.dl&&e.parent?.obstacleHit)).map(h=>t.getOrthoDirectionCollisionInfo(e,h,{margin:this.OBSTACLE_MARGIN})).filter(h=>!(h.wallDistance<this.OBSTACLE_MARGIN)),u=[];for(let h of l){let f=h.dx===0&&h.dy===0&&h.dl===1,_=h.dx===0&&h.dy===0&&h.dl===-1;if((f||_)&&![e.l,e.l+h.dl].every(S=>t.getObstaclesOverlappingRegion({minX:e.x-this.VIA_DIAMETER/2-this.OBSTACLE_MARGIN,minY:e.y-this.VIA_DIAMETER/2-this.OBSTACLE_MARGIN,maxX:e.x+this.VIA_DIAMETER/2+this.OBSTACLE_MARGIN,maxY:e.y+this.VIA_DIAMETER/2+this.OBSTACLE_MARGIN,l:S}).length===0))continue;if(f){e.l<this.layerCount-1&&u.push({...h,travelDistance:0,enterMarginCost:0,travelMarginCostFactor:1});continue}if(_){e.l>0&&u.push({...h,travelDistance:0,enterMarginCost:0,travelMarginCostFactor:1});continue}let g=null;e?.obstacleHit&&(g=Q5({node:e,travelDir:h,wallDir:{...s,wallDistance:this.OBSTACLE_MARGIN},obstacle:e.obstacleHit,obstacles:t,OBSTACLE_MARGIN:this.OBSTACLE_MARGIN,SHOULD_DETECT_CONJOINED_OBSTACLES:!0}));let x=sH(e,i,h),v=(h.dx===0||Math.sign(i.x-e.x)===h.dx)&&(h.dy===0||Math.sign(i.y-e.y)===h.dy);if(x<h.wallDistance&&x>0&&v){let P=e.l===i.l,S=0;!P&&Math.abs(x-r)<this.GRID_STEP&&(S=this.VIA_DIAMETER+this.OBSTACLE_MARGIN+this.defaultGoalViaMargin),u.push({...h,travelDistance:x-S,enterMarginCost:0,travelMarginCostFactor:1})}else if(g!==null&&g<h.wallDistance){for(let{margin:P,enterCost:S,travelCostFactor:T}of this.marginsWithCosts)g-this.OBSTACLE_MARGIN+P*2<h.wallDistance&&u.push({...h,travelDistance:g-this.OBSTACLE_MARGIN+P,enterMarginCost:S,travelMarginCostFactor:T});if(h.wallDistance===1/0)u.push({...h,travelDistance:x,enterMarginCost:0,travelMarginCostFactor:1});else if(h.wallDistance>this.largestMargin)for(let{margin:P,enterCost:S,travelCostFactor:T}of this.marginsWithCosts)h.wallDistance>this.largestMargin+P&&u.push({...h,travelDistance:h.wallDistance-P,enterMarginCost:S,travelMarginCostFactor:T})}else if(h.wallDistance!==1/0)for(let{margin:P,enterCost:S,travelCostFactor:T}of this.marginsWithCosts)h.wallDistance>P&&u.push({...h,travelDistance:h.wallDistance-P,enterMarginCost:S,travelMarginCostFactor:T})}return u.map(h=>({x:e.x+h.dx*h.travelDistance,y:e.y+h.dy*h.travelDistance,l:e.l+h.dl,obstacleHit:h.obstacle,travelMarginCostFactor:h.travelMarginCostFactor,enterMarginCost:h.enterMarginCost}))}};function _H(n){let e=I3t(n),t=new E3t({input:e});return{solution:t.solveAndMapToTraces(),debugSolutions:t.debugSolutions,debugMessage:t.debugMessage}}Q();Q();wt();Q();Q();wt();wt();Q();Q();wt();Q();Q();Q();Q();wt();Q();Q();Q();wt();Q();Q();wt();Q();Q();Q();Q();Q();Q();Q();Q();Q();Q();wt();Q();wt();Q();wt();Q();Q();wt();wt();Q();wt();Q();Q();wt();Q();Q();wt();Q();wt();Q();wt();Q();wt();Q();wt();Q();wt();Q();wt();Q();Q();Q();Q();Q();Q();Q();Q();wt();Q();wt();Q();Q();wt();Q();wt();Q();Q();Q();wt();Q();wt();wt();Q();Q();Q();wt();Q();Q();Q();wt();Q();wt();Q();wt();Q();wt();Q();wt();Q();wt();Q();wt();Q();wt();Q();Q();wt();Q();wt();Q();wt();Q();Q();wt();wt();Q();Q();wt();wt();Q();Q();wt();Q();wt();Q();wt();Q();wt();Q();wt();Q();wt();Q();Q();wt();Q();wt();Q();wt();Q();wt();Q();wt();Q();wt();Q();wt();Q();wt();wt();Q();wt();Q();wt();Q();Q();wt();Q();wt();Q();wt();Q();wt();Q();wt();Q();Q();var Ct=n=>{};Ct("extra props b");Ct("missing props b");Ct(!0);Ct("property a has mismatched types");var F3t=p.enum(["up","down","left","right"]),Sne=p.enum(["top-to-bottom","left-to-right","bottom-to-top","right-to-left"]);Ct(!0);Ct(!0);var no=p.array(p.string().or(p.number()));Ct(!0);var hw=p.object({x:Y,y:Y,z:Y}),z3t=p.object({x:p.union([p.number(),p.string()]),y:p.union([p.number(),p.string()]),z:p.union([p.number(),p.string()])}),Yc=p.object({rotationOffset:p.number().or(z3t).optional(),positionOffset:hw.optional(),size:hw.optional(),modelUnitToMmScale:Y.optional(),zOffsetFromSurface:Y.optional()});Ct(!0);var $3t=Yc.extend({stlUrl:p.string()}),D3t=Yc.extend({objUrl:p.string(),mtlUrl:p.string().optional()}),j3t=Yc.extend({gltfUrl:p.string()}),B3t=Yc.extend({glbUrl:p.string()}),Y3t=Yc.extend({stepUrl:p.string()}),X3t=Yc.extend({wrlUrl:p.string()}),U3t=Yc.extend({jscad:p.record(p.any())}),PH=p.union([p.null(),p.string(),p.custom(n=>n&&typeof n=="object"&&"type"in n&&"props"in n),$3t,D3t,j3t,B3t,Y3t,X3t,U3t]);Ct(!0);var V3t=p.custom(n=>!0),i4=p.object({silkscreenFontSize:Y.optional(),silkscreenTextPosition:p.union([p.enum(["centered","outside","none"]),p.object({offsetX:p.number(),offsetY:p.number()})]).optional(),silkscreenTextVisibility:p.enum(["hidden","visible","inherit"]).optional()});Ct(!0);var G3t=p.custom(n=>!0),je=p.object({pcbX:Y.optional(),pcbY:Y.optional(),pcbOffsetX:Y.optional(),pcbOffsetY:Y.optional(),pcbRotation:He.optional(),pcbPositionAnchor:p.string().optional(),pcbPositionMode:p.enum(["relative_to_group_anchor","auto","relative_to_board_anchor","relative_to_component_anchor"]).optional(),layer:pe.optional(),pcbMarginTop:Y.optional(),pcbMarginRight:Y.optional(),pcbMarginBottom:Y.optional(),pcbMarginLeft:Y.optional(),pcbMarginX:Y.optional(),pcbMarginY:Y.optional(),pcbStyle:i4.optional(),pcbRelative:p.boolean().optional(),relative:p.boolean().optional()});Ct(!0);var dw=p.object({pcbX:Y.optional(),pcbY:Y.optional(),pcbOffsetX:Y.optional(),pcbOffsetY:Y.optional(),pcbRotation:He.optional(),pcbPositionAnchor:p.string().optional(),pcbPositionMode:p.enum(["relative_to_group_anchor","auto","relative_to_board_anchor","relative_to_component_anchor"]).optional(),pcbMarginTop:Y.optional(),pcbMarginRight:Y.optional(),pcbMarginBottom:Y.optional(),pcbMarginLeft:Y.optional(),pcbMarginX:Y.optional(),pcbMarginY:Y.optional(),pcbStyle:i4.optional(),schMarginTop:Y.optional(),schMarginRight:Y.optional(),schMarginBottom:Y.optional(),schMarginLeft:Y.optional(),schMarginX:Y.optional(),schMarginY:Y.optional(),schX:Y.optional(),schY:Y.optional(),schRotation:He.optional(),layer:pe.optional(),footprint:V3t.optional(),symbol:G3t.optional(),relative:p.boolean().optional(),schRelative:p.boolean().optional(),pcbRelative:p.boolean().optional()});Ct(!0);var H3t=p.object({supplierPartNumbers:p.record(Im,p.array(p.string())).optional()});Ct(!0);var W3t=p.object({providesPower:p.boolean().optional(),requiresPower:p.boolean().optional(),providesGround:p.boolean().optional(),requiresGround:p.boolean().optional(),providesVoltage:p.union([p.string(),p.number()]).optional(),requiresVoltage:p.union([p.string(),p.number()]).optional(),doNotConnect:p.boolean().optional(),includeInBoardPinout:p.boolean().optional(),highlightColor:p.string().optional(),mustBeConnected:p.boolean().optional()});Ct(!0);var Kn=dw.merge(H3t).extend({key:p.any().optional(),name:p.string(),cadModel:PH.optional(),children:p.any().optional(),symbolName:p.string().optional(),doNotPlace:p.boolean().optional(),obstructsWithinBounds:p.boolean().optional().describe("Does this component take up all the space within its bounds on a layer. This is generally true except for when separated pin headers are being represented by a single component (in which case, chips can be placed between the pin headers) or for tall modules where chips fit underneath"),pinAttributes:p.record(p.string(),W3t).optional()});Ct(!0);var r4=["pin1","left","pin2","right"],fw=["pin1","left","anode","pos","pin2","right","cathode","neg"],Fne=Y.or(p.enum(["2x","3x","4x"]));var Xc=p.enum(["vertical","horizontal","pos_top","pos_bottom","pos_left","pos_right","neg_top","neg_bottom","neg_left","neg_right"]).describe("horizontal means pins go 1->2 rightward and vertical means pins go 1->2 downward (generally, positive on top)");Ct(!0);var uw=p.object({pins:p.array(p.union([p.number(),p.string()])),direction:p.union([p.literal("top-to-bottom"),p.literal("left-to-right"),p.literal("bottom-to-top"),p.literal("right-to-left")])}),Mg=p.object({leftSize:p.number().optional().describe("@deprecated, use leftPinCount"),topSize:p.number().optional().describe("@deprecated, use topPinCount"),rightSize:p.number().optional().describe("@deprecated, use rightPinCount"),bottomSize:p.number().optional().describe("@deprecated, use bottomPinCount"),leftPinCount:p.number().optional(),rightPinCount:p.number().optional(),topPinCount:p.number().optional(),bottomPinCount:p.number().optional(),leftSide:uw.optional(),rightSide:uw.optional(),topSide:uw.optional(),bottomSide:uw.optional()}),s4=Mg;Ct(!0);var Eg=p.record(p.object({marginLeft:Y.optional(),marginRight:Y.optional(),marginTop:Y.optional(),marginBottom:Y.optional(),leftMargin:Y.optional(),rightMargin:Y.optional(),topMargin:Y.optional(),bottomMargin:Y.optional()}));Ct(!0);var Cs=p.string().regex(/^[A-Za-z0-9_]+$/),Qm=p.enum(["top_left","top_center","top_right","center_left","center","center_right","bottom_left","bottom_center","bottom_right"]),Ao=p.object({x:Y,y:Y}),Cg=p.object({edit_event_id:p.string(),in_progress:p.boolean().optional(),created_at:p.number()});Ct(!0);var q3t=Cg.extend({pcb_edit_event_type:p.literal("edit_component_location").describe("deprecated"),edit_event_type:p.literal("edit_pcb_component_location"),pcb_component_id:p.string(),original_center:p.object({x:p.number(),y:p.number()}),new_center:p.object({x:p.number(),y:p.number()})});Ct(!0);var Z3t=Cg.extend({pcb_edit_event_type:p.literal("edit_trace_hint").describe("deprecated"),edit_event_type:p.literal("edit_pcb_trace_hint").optional(),pcb_port_id:p.string(),pcb_trace_hint_id:p.string().optional(),route:p.array(p.object({x:p.number(),y:p.number(),via:p.boolean().optional()}))});Ct(!0);var K3t=Cg.extend({edit_event_type:p.literal("edit_schematic_component_location"),schematic_component_id:p.string(),original_center:p.object({x:p.number(),y:p.number()}),new_center:p.object({x:p.number(),y:p.number()})});Ct(!0);var Qne=Cg.extend({edit_event_type:p.literal("edit_pcb_group_location"),pcb_group_id:p.string(),original_center:p.object({x:p.number(),y:p.number()}),new_center:p.object({x:p.number(),y:p.number()})});Ct(!0);var eie=Cg.extend({edit_event_type:p.literal("edit_schematic_group_location"),schematic_group_id:p.string(),original_center:p.object({x:p.number(),y:p.number()}),new_center:p.object({x:p.number(),y:p.number()})});Ct(!0);var iie=p.union([q3t,Z3t,K3t]);Ct(!0);var J3t=p.object({selector:p.string(),relative_to:p.string().optional().default("group_center").describe("Can be a selector or 'group_center'"),center:Zt});Ct(!0);var Q3t=p.object({pcb_port_selector:p.string(),offsets:p.array(Ji)});Ct(!0);var tMt=p.object({selector:p.string(),relative_to:p.string().optional().default("group_center").describe("Can be a selector or 'group_center'"),center:Zt});Ct(!0);var eMt=p.object({pcb_placements:p.array(J3t).optional(),manual_trace_hints:p.array(Q3t).optional(),schematic_placements:p.array(tMt).optional()});Ct(!0);var t_=p.string().or(p.array(p.string()).readonly()).or(p.array(p.string())),td=n=>p.record(p.enum(n),t_),Tg=p.object({layoutMode:p.enum(["grid","flex","match-adapt","relative","none"]).optional(),position:p.enum(["absolute","relative"]).optional(),grid:p.boolean().optional(),gridCols:p.number().or(p.string()).optional(),gridRows:p.number().or(p.string()).optional(),gridTemplateRows:p.string().optional(),gridTemplateColumns:p.string().optional(),gridTemplate:p.string().optional(),gridGap:p.number().or(p.string()).optional(),gridRowGap:p.number().or(p.string()).optional(),gridColumnGap:p.number().or(p.string()).optional(),flex:p.boolean().or(p.string()).optional(),flexDirection:p.enum(["row","column"]).optional(),alignItems:p.enum(["start","center","end","stretch"]).optional(),justifyContent:p.enum(["start","center","end","stretch","space-between","space-around","space-evenly"]).optional(),flexRow:p.boolean().optional(),flexColumn:p.boolean().optional(),gap:p.number().or(p.string()).optional(),pack:p.boolean().optional().describe("Pack the contents of this group using a packing strategy"),packOrderStrategy:p.enum(["largest_to_smallest","first_to_last","highest_to_lowest_pin_count"]).optional(),packPlacementStrategy:p.enum(["shortest_connection_along_outline"]).optional(),padding:D.optional(),paddingLeft:D.optional(),paddingRight:D.optional(),paddingTop:D.optional(),paddingBottom:D.optional(),paddingX:D.optional(),paddingY:D.optional(),width:D.optional(),height:D.optional(),matchAdapt:p.boolean().optional(),matchAdaptTemplate:p.any().optional()});Ct(!0);var yH=p.object({strokeWidth:D.optional(),dashed:p.boolean().optional(),solid:p.boolean().optional()}),nMt=p.custom(n=>typeof n=="string"),iMt=p.object({serverUrl:p.string().optional(),inputFormat:p.enum(["simplified","circuit-json"]).optional(),serverMode:p.enum(["job","solve-endpoint"]).optional(),serverCacheEnabled:p.boolean().optional(),cache:p.custom(n=>!0).optional(),traceClearance:D.optional(),groupMode:p.enum(["sequential_trace","subcircuit","sequential-trace"]).optional(),algorithmFn:p.custom(n=>typeof n=="function"||n===void 0).optional(),preset:p.enum(["sequential_trace","subcircuit","auto","auto_local","auto_cloud","freerouting","laser_prefab","sequential-trace","auto-local","auto-cloud"]).optional(),local:p.boolean().optional()}),rMt=p.union([p.literal("sequential_trace"),p.literal("subcircuit"),p.literal("auto"),p.literal("auto_local"),p.literal("auto_cloud"),p.literal("freerouting"),p.literal("laser_prefab"),p.literal("sequential-trace"),p.literal("auto-local"),p.literal("auto-cloud")]),sMt=p.string(),kH=p.union([iMt,rMt,sMt]),o4=dw.extend({name:p.string().optional(),children:p.any().optional(),schTitle:p.string().optional(),key:p.any().optional(),showAsSchematicBox:p.boolean().optional(),connections:p.record(p.string(),t_.optional()).optional(),schPinArrangement:s4.optional(),schPinSpacing:D.optional(),schPinStyle:Eg.optional(),...Tg.shape,grid:Tg.shape.grid.describe("@deprecated use pcbGrid"),flex:Tg.shape.flex.describe("@deprecated use pcbFlex"),pcbGrid:p.boolean().optional(),pcbGridCols:p.number().or(p.string()).optional(),pcbGridRows:p.number().or(p.string()).optional(),pcbGridTemplateRows:p.string().optional(),pcbGridTemplateColumns:p.string().optional(),pcbGridTemplate:p.string().optional(),pcbGridGap:p.number().or(p.string()).optional(),pcbGridRowGap:p.number().or(p.string()).optional(),pcbGridColumnGap:p.number().or(p.string()).optional(),pcbFlex:p.boolean().or(p.string()).optional(),pcbFlexGap:p.number().or(p.string()).optional(),pcbFlexDirection:p.enum(["row","column"]).optional(),pcbAlignItems:p.enum(["start","center","end","stretch"]).optional(),pcbJustifyContent:p.enum(["start","center","end","stretch","space-between","space-around","space-evenly"]).optional(),pcbFlexRow:p.boolean().optional(),pcbFlexColumn:p.boolean().optional(),pcbGap:p.number().or(p.string()).optional(),pcbPack:p.boolean().optional(),pcbPackGap:p.number().or(p.string()).optional(),schGrid:p.boolean().optional(),schGridCols:p.number().or(p.string()).optional(),schGridRows:p.number().or(p.string()).optional(),schGridTemplateRows:p.string().optional(),schGridTemplateColumns:p.string().optional(),schGridTemplate:p.string().optional(),schGridGap:p.number().or(p.string()).optional(),schGridRowGap:p.number().or(p.string()).optional(),schGridColumnGap:p.number().or(p.string()).optional(),schFlex:p.boolean().or(p.string()).optional(),schFlexGap:p.number().or(p.string()).optional(),schFlexDirection:p.enum(["row","column"]).optional(),schAlignItems:p.enum(["start","center","end","stretch"]).optional(),schJustifyContent:p.enum(["start","center","end","stretch","space-between","space-around","space-evenly"]).optional(),schFlexRow:p.boolean().optional(),schFlexColumn:p.boolean().optional(),schGap:p.number().or(p.string()).optional(),schPack:p.boolean().optional(),schMatchAdapt:p.boolean().optional(),pcbWidth:D.optional(),pcbHeight:D.optional(),minTraceWidth:D.optional(),schWidth:D.optional(),schHeight:D.optional(),pcbLayout:Tg.optional(),schLayout:Tg.optional(),cellBorder:yH.nullable().optional(),border:yH.nullable().optional(),schPadding:D.optional(),schPaddingLeft:D.optional(),schPaddingRight:D.optional(),schPaddingTop:D.optional(),schPaddingBottom:D.optional(),pcbPadding:D.optional(),pcbPaddingLeft:D.optional(),pcbPaddingRight:D.optional(),pcbPaddingTop:D.optional(),pcbPaddingBottom:D.optional(),pcbPositionAnchor:nMt.optional()}),TH=p.custom(n=>"findPart"in n),a4=o4.extend({manualEdits:eMt.optional(),schAutoLayoutEnabled:p.boolean().optional(),schTraceAutoLabelEnabled:p.boolean().optional(),schMaxTraceDistance:Y.optional(),routingDisabled:p.boolean().optional(),defaultTraceWidth:D.optional(),minTraceWidth:D.optional(),partsEngine:TH.optional(),pcbRouteCache:p.custom(n=>!0).optional(),autorouter:kH.optional(),square:p.boolean().optional(),emptyArea:p.string().optional(),filledArea:p.string().optional(),width:Y.optional(),height:Y.optional(),outline:p.array(Ao).optional(),outlineOffsetX:Y.optional(),outlineOffsetY:Y.optional(),circuitJson:p.array(p.any()).optional()}),oMt=a4.extend({subcircuit:p.literal(!0)}),MH=p.discriminatedUnion("subcircuit",[o4.extend({subcircuit:p.literal(!1).optional()}),oMt]);Ct(!0);Ct(!0);Ct(!0);Ct(!0);var Jm=p.custom(n=>typeof n=="string"),c4=a4.omit({connections:!0}).extend({material:p.enum(["fr4","fr1"]).default("fr4"),layers:p.union([p.literal(2),p.literal(4)]).default(2),borderRadius:Y.optional(),thickness:Y.optional(),boardAnchorPosition:Ao.optional(),boardAnchorAlignment:Qm.optional(),title:p.string().optional(),solderMaskColor:Jm.optional(),topSolderMaskColor:Jm.optional(),bottomSolderMaskColor:Jm.optional(),silkscreenColor:Jm.optional(),topSilkscreenColor:Jm.optional(),bottomSilkscreenColor:Jm.optional(),doubleSidedAssembly:p.boolean().optional().default(!1),schematicDisabled:p.boolean().optional()});Ct(!0);var EH=o4.omit({width:!0,height:!0,children:!0}).extend({width:Y,height:Y,children:p.any().optional(),noSolderMask:p.boolean().optional(),panelizationMethod:p.enum(["tab-routing","none"]).optional(),boardGap:Y.optional(),tabWidth:Y.optional(),tabLength:Y.optional(),mouseBites:p.boolean().optional()});Ct(!0);var fie=a4.extend({padding:Y.optional(),paddingLeft:Y.optional(),paddingRight:Y.optional(),paddingTop:Y.optional(),paddingBottom:Y.optional()});Ct(!0);var aMt=p.string().or(p.array(p.string()).readonly()).or(p.array(p.string())),cMt=p.custom().pipe(p.record(p.string(),aMt)),lMt=p.record(Cs,Cs.or(p.array(Cs).readonly()).or(p.array(Cs)));Ct(!0);var uMt=p.object({manufacturerPartNumber:p.string().optional(),supplierPartNumber:p.record(Im,p.array(p.string())).optional()}),e_=Kn.extend({manufacturerPartNumber:p.string().optional(),pinLabels:lMt.optional(),showPinAliases:p.boolean().optional(),pcbPinLabels:p.record(p.string(),p.string()).optional(),internallyConnectedPins:p.array(p.array(p.union([p.string(),p.number()]))).optional(),externallyConnectedPins:p.array(p.array(p.string())).optional(),schPinArrangement:Mg.optional(),schPortArrangement:Mg.optional(),pinCompatibleVariants:p.array(uMt).optional(),schPinStyle:Eg.optional(),schPinSpacing:Y.optional(),schWidth:Y.optional(),schHeight:Y.optional(),noSchematicRepresentation:p.boolean().optional(),connections:cMt.optional()});Ct(!0);var CH=e_;Ct(!0);var l4=Kn.extend({manufacturerPartNumber:p.string().optional(),pinLabels:p.record(p.number().or(Cs),Cs.or(p.array(Cs))).optional(),schPinStyle:Eg.optional(),schPinSpacing:Y.optional(),schWidth:Y.optional(),schHeight:Y.optional(),schDirection:p.enum(["left","right"]).optional(),schPinArrangement:s4.optional(),schPortArrangement:Mg.optional(),pcbPinLabels:p.record(p.string(),p.string()).optional(),pinCount:p.union([p.literal(2),p.literal(3)]).optional(),internallyConnectedPins:p.array(p.array(p.union([p.string(),p.number()]))).optional(),connections:p.custom().pipe(p.record(p.string(),t_)).optional()});Ct(!0);var IH=l4.extend({bridgedPins:p.array(p.array(p.string())).optional(),bridged:p.boolean().optional()});Ct(!0);var wie=Kn.extend({manufacturerPartNumber:p.string().optional(),pinLabels:p.record(p.number().or(Cs),Cs.or(p.array(Cs))).optional(),schPinStyle:Eg.optional(),schPinSpacing:Y.optional(),schWidth:Y.optional(),schHeight:Y.optional(),schDirection:p.enum(["left","right"]).optional(),schPortArrangement:Mg.optional(),internallyConnectedPins:p.array(p.array(p.union([p.string(),p.number()]))).optional(),standard:p.enum(["usb_c","m2"]).optional()});Ct(!0);var NH=Kn.extend({currentRating:p.union([p.number(),p.string()]),voltageRating:p.union([p.number(),p.string()]).optional(),schShowRatings:p.boolean().optional(),schOrientation:Xc.optional(),connections:p.record(p.string(),p.union([p.string(),p.array(p.string()).readonly(),p.array(p.string())])).optional()}),pw=p.custom().transform(n=>{if(n!==void 0)return Y.parse(n)}),AH=p.discriminatedUnion("shape",[je.omit({pcbRotation:!0,layer:!0}).extend({name:p.string().optional(),connectsTo:p.string().or(p.array(p.string())).optional(),shape:p.literal("circle"),holeDiameter:Y,outerDiameter:Y,portHints:no.optional(),solderMaskMargin:Y.optional(),coveredWithSolderMask:p.boolean().optional()}),je.omit({layer:!0}).extend({name:p.string().optional(),connectsTo:p.string().or(p.array(p.string())).optional(),shape:p.literal("oval"),outerWidth:Y,outerHeight:Y,holeWidth:pw,holeHeight:pw,innerWidth:Y.optional().describe("DEPRECATED use holeWidth"),innerHeight:Y.optional().describe("DEPRECATED use holeHeight"),portHints:no.optional(),solderMaskMargin:Y.optional(),coveredWithSolderMask:p.boolean().optional()}),je.omit({layer:!0}).extend({name:p.string().optional(),connectsTo:p.string().or(p.array(p.string())).optional(),shape:p.literal("pill"),rectPad:p.boolean().optional(),outerWidth:Y,outerHeight:Y,holeWidth:pw,holeHeight:pw,innerWidth:Y.optional().describe("DEPRECATED use holeWidth"),innerHeight:Y.optional().describe("DEPRECATED use holeHeight"),portHints:no.optional(),holeOffsetX:Y.optional(),holeOffsetY:Y.optional(),solderMaskMargin:Y.optional(),coveredWithSolderMask:p.boolean().optional()}),je.omit({pcbRotation:!0,layer:!0}).extend({name:p.string().optional(),connectsTo:p.string().or(p.array(p.string())).optional(),shape:p.literal("circular_hole_with_rect_pad"),holeDiameter:Y,rectPadWidth:Y,rectPadHeight:Y,rectBorderRadius:Y.optional(),holeShape:p.literal("circle").optional(),padShape:p.literal("rect").optional(),portHints:no.optional(),holeOffsetX:Y.optional(),holeOffsetY:Y.optional(),solderMaskMargin:Y.optional(),coveredWithSolderMask:p.boolean().optional()}),je.omit({pcbRotation:!0,layer:!0}).extend({name:p.string().optional(),connectsTo:p.string().or(p.array(p.string())).optional(),shape:p.literal("pill_hole_with_rect_pad"),holeShape:p.literal("pill"),padShape:p.literal("rect"),holeWidth:Y,holeHeight:Y,rectPadWidth:Y,rectPadHeight:Y,portHints:no.optional(),holeOffsetX:Y.optional(),holeOffsetY:Y.optional(),solderMaskMargin:Y.optional(),coveredWithSolderMask:p.boolean().optional()}),je.omit({pcbRotation:!0,layer:!0}).extend({name:p.string().optional(),connectsTo:p.string().or(p.array(p.string())).optional(),shape:p.literal("hole_with_polygon_pad"),holeShape:p.enum(["circle","oval","pill","rotated_pill"]),holeDiameter:Y.optional(),holeWidth:Y.optional(),holeHeight:Y.optional(),padOutline:p.array(Ao),holeOffsetX:Y,holeOffsetY:Y,portHints:no.optional(),solderMaskMargin:Y.optional(),coveredWithSolderMask:p.boolean().optional()})]).refine(n=>("innerWidth"in n&&n.innerWidth!==void 0&&(n.holeWidth??(n.holeWidth=n.innerWidth)),"innerHeight"in n&&n.innerHeight!==void 0&&(n.holeHeight??(n.holeHeight=n.innerHeight)),n));Ct(!0);var pMt=["pin1","pin2","pos","neg"],RH=Kn.extend({resistance:Lc,pullupFor:p.string().optional(),pullupTo:p.string().optional(),pulldownFor:p.string().optional(),pulldownTo:p.string().optional(),schOrientation:Xc.optional(),connections:td(pMt).optional()}),OH=r4;Ct(!0);var LH=Kn.extend({maxResistance:Lc,pinVariant:p.enum(["two_pin","three_pin"]).optional()});Ct(!0);var hMt=r4,FH=Kn.extend({frequency:ur,loadCapacitance:ba,manufacturerPartNumber:p.string().optional(),mpn:p.string().optional(),pinVariant:p.enum(["two_pin","four_pin"]).optional(),schOrientation:Xc.optional(),connections:td(hMt).optional()});Ct(!0);var zH=Kn.extend({frequency:ur,loadCapacitance:ba,pinVariant:p.enum(["no_ground","ground_pin","two_ground_pins"]).optional()});Ct(!0);var Fie=c4.extend({leftPinCount:p.number().optional(),rightPinCount:p.number().optional(),topPinCount:p.number().optional(),bottomPinCount:p.number().optional(),leftPins:p.array(p.string()).optional(),rightPins:p.array(p.string()).optional(),topPins:p.array(p.string()).optional(),bottomPins:p.array(p.string()).optional(),pinPitch:Y.optional(),innerHoles:p.boolean().optional()});Ct(!0);var dMt=["pin1","pin2","pos","neg","anode","cathode"],$H=Kn.extend({capacitance:ba,maxVoltageRating:Si.optional(),schShowRatings:p.boolean().optional().default(!1),polarized:p.boolean().optional().default(!1),decouplingFor:p.string().optional(),decouplingTo:p.string().optional(),bypassFor:p.string().optional(),bypassTo:p.string().optional(),maxDecouplingTraceLength:p.number().optional(),schOrientation:Xc.optional(),connections:td(dMt).optional()}),DH=fw;Ct(!0);var jie=p.object({name:p.string(),connectsTo:p.string().or(p.array(p.string())).optional(),highlightColor:p.string().optional(),isPowerNet:p.boolean().optional(),isGroundNet:p.boolean().optional()});Ct(!0);var Yie=p.object({name:p.string().optional(),pcbOnly:p.boolean().optional(),schOnly:p.boolean().optional()});Ct(!0);var fMt=p.object({pcb:p.literal(!0).optional(),xDist:Y,left:p.string(),right:p.string(),edgeToEdge:p.literal(!0).optional(),centerToCenter:p.literal(!0).optional()});Ct(!0);var mMt=p.object({pcb:p.literal(!0).optional(),yDist:Y,top:p.string(),bottom:p.string(),edgeToEdge:p.literal(!0).optional(),centerToCenter:p.literal(!0).optional()});Ct(!0);var _Mt=p.object({pcb:p.literal(!0).optional(),sameY:p.literal(!0).optional(),for:p.array(p.string())});Ct(!0);var yMt=p.object({pcb:p.literal(!0).optional(),sameX:p.literal(!0).optional(),for:p.array(p.string())});Ct(!0);var jH=p.union([fMt,mMt,_Mt,yMt]);Ct(!0);var gMt=je.omit({layer:!0,pcbRotation:!0}).extend({name:p.string().optional(),shape:p.literal("rect"),width:Y,height:Y});Ct(!0);var xMt=je.omit({layer:!0,pcbRotation:!0}).extend({name:p.string().optional(),shape:p.literal("circle"),radius:Y});Ct(!0);var bMt=je.omit({layer:!0,pcbRotation:!0}).extend({name:p.string().optional(),shape:p.literal("polygon"),points:p.array(Ao)});Ct(!0);var BH=p.discriminatedUnion("shape",[gMt,xMt,bMt]),vMt=je.omit({pcbRotation:!0}).extend({name:p.string().optional(),shape:p.literal("rect"),width:Y,height:Y,rectBorderRadius:Y.optional(),cornerRadius:Y.optional(),portHints:no.optional(),coveredWithSolderMask:p.boolean().optional(),solderMaskMargin:Y.optional()});Ct(!0);var wMt=je.omit({pcbRotation:!0}).extend({name:p.string().optional(),shape:p.literal("rotated_rect"),width:Y,height:Y,ccwRotation:p.number(),cornerRadius:Y.optional(),portHints:no.optional(),coveredWithSolderMask:p.boolean().optional(),solderMaskMargin:Y.optional()});Ct(!0);var SMt=je.omit({pcbRotation:!0}).extend({name:p.string().optional(),shape:p.literal("circle"),radius:Y,portHints:no.optional(),coveredWithSolderMask:p.boolean().optional(),solderMaskMargin:Y.optional()});Ct(!0);var PMt=je.omit({pcbRotation:!0}).extend({name:p.string().optional(),shape:p.literal("pill"),width:Y,height:Y,radius:Y,portHints:no.optional(),coveredWithSolderMask:p.boolean().optional(),solderMaskMargin:Y.optional()});Ct(!0);var kMt=je.omit({pcbRotation:!0}).extend({name:p.string().optional(),shape:p.literal("polygon"),points:p.array(Ao),portHints:no.optional(),coveredWithSolderMask:p.boolean().optional(),solderMaskMargin:Y.optional()});Ct(!0);var YH=p.discriminatedUnion("shape",[SMt,vMt,wMt,PMt,kMt]);Ct(!0);var TMt=je.omit({pcbRotation:!0}).extend({shape:p.literal("rect"),width:Y,height:Y});Ct(!0);var MMt=je.omit({pcbRotation:!0}).extend({shape:p.literal("circle"),radius:Y});Ct(!0);var Hie=p.union([MMt,TMt]);Ct(!0);var EMt=je.extend({name:p.string().optional(),shape:p.literal("circle").optional(),diameter:Y.optional(),radius:Y.optional(),solderMaskMargin:Y.optional(),coveredWithSolderMask:p.boolean().optional()}).transform(n=>({...n,diameter:n.diameter??2*n.radius,radius:n.radius??n.diameter/2})),CMt=je.extend({name:p.string().optional(),shape:p.literal("pill"),width:Y,height:Y,solderMaskMargin:Y.optional(),coveredWithSolderMask:p.boolean().optional()}),IMt=je.extend({name:p.string().optional(),shape:p.literal("rect"),width:Y,height:Y,solderMaskMargin:Y.optional(),coveredWithSolderMask:p.boolean().optional()}),XH=p.union([EMt,CMt,IMt]);Ct(!0);var e4=p.union([p.string(),p.custom(n=>!!n.getPortSelector)]),gH=p.object({key:p.string().optional(),thickness:Y.optional(),width:Y.optional().describe("Alias for trace thickness"),schematicRouteHints:p.array(Ao).optional(),pcbRouteHints:p.array(Ji).optional(),pcbPathRelativeTo:p.string().optional(),pcbPath:p.array(p.union([Ao,p.string()])).optional(),pcbStraightLine:p.boolean().optional().describe("Draw a straight pcb trace between the connected points"),schDisplayLabel:p.string().optional(),schStroke:p.string().optional(),highlightColor:p.string().optional(),maxLength:Y.optional()}),UH=p.union([gH.extend({path:p.array(e4)}),gH.extend({from:e4,to:e4})]),VH=p.object({children:p.any().optional(),originalLayer:pe.default("top").optional(),circuitJson:p.array(p.any()).optional()});Ct(!0);var GH=p.object({originalFacingDirection:p.enum(["up","down","left","right"]).default("right").optional()});Ct(!0);var NMt=p.number().or(p.string().endsWith("mAh")).transform(n=>{if(typeof n=="string"){let e=n.replace("mAh",""),t=Number.parseFloat(e);if(Number.isNaN(t))throw new Error("Invalid capacity");return t}return n}).describe("Battery capacity in mAh"),HH=Kn.extend({capacity:NMt.optional(),voltage:Si.optional(),standard:p.enum(["AA","AAA","9V","CR2032","18650","C"]).optional(),schOrientation:Xc.optional()});Ct(!0);var AMt=p.enum(["vertical","horizontal"]).describe("vertical means pins go 1->2 downward and horizontal means pins go 1->2 rightward");Ct(!0);var WH=Kn.extend({pinCount:p.number(),pitch:Y.optional(),schFacingDirection:p.enum(["up","down","left","right"]).optional(),gender:p.enum(["male","female","unpopulated"]).optional().default("male"),showSilkscreenPinLabels:p.boolean().optional(),pcbPinLabels:p.record(p.string(),p.string()).optional(),doubleRow:p.boolean().optional(),rightAngle:p.boolean().optional(),pcbOrientation:AMt.optional(),holeDiameter:Y.optional(),platedDiameter:Y.optional(),pinLabels:p.record(p.string(),Cs).or(p.array(Cs)).optional(),connections:p.custom().pipe(p.record(p.string(),t_)).optional(),facingDirection:p.enum(["left","right"]).optional(),schPinArrangement:s4.optional(),schPinStyle:Eg.optional(),schPinSpacing:Y.optional(),schWidth:Y.optional(),schHeight:Y.optional()});Ct(!0);var are=p.object({net:p.string().optional(),connection:p.string().optional(),schX:Y.optional(),schY:Y.optional(),schRotation:He.optional(),anchorSide:p.enum(["left","top","right","bottom"]).optional()});Ct(!0);var qH=p.object({net:p.string().optional(),connection:p.string().optional(),connectsTo:p.string().or(p.array(p.string())).optional(),schX:Y.optional(),schY:Y.optional(),schRotation:He.optional(),anchorSide:p.enum(["left","top","right","bottom"]).optional()});Ct(!0);var ZH=e_.extend({});Ct(!0);Ct(!0);var RMt=p.custom(n=>typeof n=="string"),KH=p.object({simulationType:p.literal("spice_transient_analysis").default("spice_transient_analysis"),duration:lr.optional(),timePerStep:lr.optional(),spiceEngine:RMt.optional()});Ct(!0);var OMt=["pin1","pin2","pin3","emitter","collector","base","gate","source","drain"],JH=Kn.extend({type:p.enum(["npn","pnp","bjt","jfet","mosfet","igbt"]),connections:td(OMt).optional()});Ct(!0);var QH=Kn.extend({channelType:p.enum(["n","p"]),mosfetMode:p.enum(["enhancement","depletion"])});Ct(!0);var LMt=r4,tW=Kn.extend({inductance:jx,maxCurrentRating:p.union([p.string(),p.number()]).optional(),schOrientation:Xc.optional(),connections:td(LMt).optional()});Ct(!0);var FMt=p.enum(["anode","cathode","pin1","pin2","pos","neg"]),zMt=p.string().or(p.array(p.string()).readonly()).or(p.array(p.string())),$Mt=p.record(FMt,zMt),DMt=p.enum(["standard","schottky","zener","avalanche","photo","tvs"]),eW=Kn.extend({connections:$Mt.optional(),variant:DMt.optional().default("standard"),standard:p.boolean().optional(),schottky:p.boolean().optional(),zener:p.boolean().optional(),avalanche:p.boolean().optional(),photo:p.boolean().optional(),tvs:p.boolean().optional(),schOrientation:Xc.optional()}).superRefine((n,e)=>{if([n.standard,n.schottky,n.zener,n.avalanche,n.photo,n.tvs].filter(Boolean).length>1)return e.addIssue({code:p.ZodIssueCode.custom,message:"Exactly one diode variant must be enabled",path:[]}),p.INVALID}).transform(n=>{let e={...n,standard:!1,schottky:!1,zener:!1,avalanche:!1,photo:!1,tvs:!1};if(n.standard)e.standard=!0;else if(n.schottky)e.schottky=!0;else if(n.zener)e.zener=!0;else if(n.photo)e.photo=!0;else if(n.tvs)e.tvs=!0;else switch(n.variant){case"standard":e.standard=!0;break;case"schottky":e.schottky=!0;break;case"zener":e.zener=!0;break;case"avalanche":e.avalanche=!0;break;case"photo":e.photo=!0;break;case"tvs":e.tvs=!0;break;default:e.standard=!0}return e}),nW=fw;Ct(!0);var iW=Kn.extend({color:p.string().optional(),wavelength:p.string().optional(),schDisplayValue:p.string().optional(),schOrientation:Xc.optional(),connections:td(fw).optional(),laser:p.boolean().optional()}),rW=fw,sW=Kn.extend({type:p.enum(["spst","spdt","dpst","dpdt"]).optional(),isNormallyClosed:p.boolean().optional().default(!1),spst:p.boolean().optional(),spdt:p.boolean().optional(),dpst:p.boolean().optional(),dpdt:p.boolean().optional(),simSwitchFrequency:ur.optional(),simCloseAt:lr.optional(),simOpenAt:lr.optional(),simStartClosed:p.boolean().optional(),simStartOpen:p.boolean().optional(),connections:p.custom().pipe(p.record(p.string(),t_)).optional()}).transform(n=>{let e={...n};switch(e.dpdt?e.type="dpdt":e.spst?e.type="spst":e.spdt?e.type="spdt":e.dpst&&(e.type="dpst"),e.type){case"spdt":e.spdt=!0;break;case"spst":e.spst=!0;break;case"dpst":e.dpst=!0;break;case"dpdt":e.dpdt=!0;break}return e});Ct(!0);var oW=je.extend({text:p.string(),anchorAlignment:p.enum(["center","top_left","top_right","bottom_left","bottom_right"]).default("center"),font:p.enum(["tscircuit2024"]).optional(),fontSize:D.optional(),color:p.string().optional()});Ct(!0);var aW=je.omit({pcbRotation:!0}).extend({width:Y,height:Y,strokeWidth:Y.optional(),isFilled:p.boolean().optional(),hasStroke:p.boolean().optional(),isStrokeDashed:p.boolean().optional(),color:p.string().optional(),cornerRadius:Y.optional()}),cW=je.omit({pcbX:!0,pcbY:!0,pcbOffsetX:!0,pcbOffsetY:!0,pcbRotation:!0}).extend({route:p.array(Ji),strokeWidth:D.optional(),color:p.string().optional()}),xH=p.union([p.string(),Ao]),lW=je.omit({pcbX:!0,pcbY:!0,pcbOffsetX:!0,pcbOffsetY:!0,pcbRotation:!0}).extend({from:xH,to:xH,text:p.string().optional(),offset:Y.optional(),font:p.enum(["tscircuit2024"]).optional(),fontSize:D.optional(),color:p.string().optional(),arrowSize:Y.optional(),units:p.enum(["in","mm"]).optional(),outerEdgeToEdge:p.literal(!0).optional(),centerToCenter:p.literal(!0).optional(),innerEdgeToEdge:p.literal(!0).optional()});Ct(!0);var Ire=p.object({layer:p.string().optional(),thickness:Y.optional(),route:p.array(Ji)}),uW=dw.extend({name:p.string().optional(),fromLayer:pe,toLayer:pe,holeDiameter:Y,outerDiameter:Y,connectsTo:p.string().or(p.array(p.string())).optional(),netIsAssignable:p.boolean().optional()});Ct(!0);var jMt=p.object({pin1:t_}).strict(),pW=Kn.extend({connections:jMt.optional(),footprintVariant:p.enum(["pad","through_hole"]).optional(),padShape:p.enum(["rect","circle"]).optional().default("circle"),padDiameter:Y.optional(),holeDiameter:Y.optional(),width:Y.optional(),height:Y.optional()}).refine(n=>n.footprintVariant!=="through_hole"||n.holeDiameter!==void 0,{message:"holeDiameter is required for through_hole testpoints"});Ct(!0);var hW=je.omit({pcbRotation:!0,layer:!0}).extend({connection:p.string()});Ct(!0);var dW=p.union([je.omit({pcbRotation:!0}).extend({shape:p.literal("circle"),radius:Y}),je.extend({shape:p.literal("rect"),width:Y,height:Y})]),jre=je.omit({pcbRotation:!0}).extend({width:Y,height:Y,strokeWidth:Y.optional(),isFilled:p.boolean().optional(),hasStroke:p.boolean().optional(),isStrokeDashed:p.boolean().optional(),color:p.string().optional()}),Xre=je.omit({pcbX:!0,pcbY:!0,pcbOffsetX:!0,pcbOffsetY:!0,pcbRotation:!0}).extend({outline:p.array(Ao),strokeWidth:D.optional(),isClosed:p.boolean().optional(),isStrokeDashed:p.boolean().optional(),color:p.string().optional()}),fW=p.object({name:p.string().optional(),layer:pe,connectsTo:p.string(),padMargin:Y.optional(),traceMargin:Y.optional(),clearance:Y.optional(),boardEdgeMargin:Y.optional(),cutoutMargin:Y.optional(),coveredWithSolderMask:p.boolean().optional().default(!0)});Ct(!0);var mW=p.object({originalLayer:pe.default("top").optional(),children:p.any().optional()});Ct(!0);var BMt=p.object({pcbX:Y.optional(),pcbY:Y.optional(),pcbOffsetX:Y.optional(),pcbOffsetY:Y.optional(),pcbZ:Y.optional()}),YMt=Yc.extend({modelUrl:p.string(),stepUrl:p.string().optional()}),XMt=YMt.merge(BMt);Ct(!0);var _W=p.union([p.null(),p.string(),XMt]),yW=Kn.extend({voltage:Si}),UMt=["pin1","pin2","pos","neg"],VMt=p.union([p.string(),p.number()]).transform(n=>typeof n=="string"?n.endsWith("%")?parseFloat(n.slice(0,-1))/100:parseFloat(n):n).pipe(p.number().min(0,"Duty cycle must be non-negative").max(1,"Duty cycle cannot be greater than 100%")),Jre=Kn.extend({voltage:Si.optional(),frequency:ur.optional(),peakToPeakVoltage:Si.optional(),waveShape:p.enum(["sinewave","square","triangle","sawtooth"]).optional(),phase:He.optional(),dutyCycle:VMt.optional(),connections:td(UMt).optional()});Ct(!0);var gW=Kn.omit({name:!0}).extend({name:p.string().optional(),connectsTo:p.string().or(p.array(p.string())),color:p.string().optional()});Ct(!0);var xW=p.object({center:Zt,radius:Y,startAngleDegrees:He,endAngleDegrees:He,direction:p.enum(["clockwise","counterclockwise"]).default("counterclockwise"),strokeWidth:Y.optional(),color:p.string().optional(),isDashed:p.boolean().optional().default(!1)}),bW=p.object({schX:Y.optional(),schY:Y.optional(),width:Y.optional(),height:Y.optional(),overlay:p.array(p.string()).optional(),padding:Y.optional(),paddingLeft:Y.optional(),paddingRight:Y.optional(),paddingTop:Y.optional(),paddingBottom:Y.optional(),title:p.string().optional(),titleAlignment:Qm.default("top_left"),titleColor:p.string().optional(),titleFontSize:Y.optional(),titleInside:p.boolean().default(!1),strokeStyle:p.enum(["solid","dashed"]).default("solid")}).refine(n=>n.width!==void 0&&n.height!==void 0||Array.isArray(n.overlay)&&n.overlay.length>0,{message:"Must provide either both `width` and `height`, or a non-empty `overlay` array."}).refine(n=>!(n.width!==void 0&&n.height!==void 0&&Array.isArray(n.overlay)&&n.overlay.length>0),{message:"Cannot provide both `width`/`height` and `overlay` at the same time."}),vW=p.object({center:Zt,radius:Y,strokeWidth:Y.optional(),color:p.string().optional(),isFilled:p.boolean().optional().default(!1),fillColor:p.string().optional(),isDashed:p.boolean().optional().default(!1)}),wW=p.object({schX:Y.optional(),schY:Y.optional(),width:Y,height:Y,rotation:He.default(0),strokeWidth:Y.optional(),color:p.string().optional(),isFilled:p.boolean().optional().default(!1),fillColor:p.string().optional(),isDashed:p.boolean().optional().default(!1),cornerRadius:Y.optional()}),SW=p.object({x1:Y,y1:Y,x2:Y,y2:Y,strokeWidth:Y.optional(),color:p.string().optional(),isDashed:p.boolean().optional().default(!1)}),GMt=p.enum(["center","left","right","top","bottom"]),PW=p.object({schX:Y.optional(),schY:Y.optional(),text:p.string(),fontSize:p.number().default(1),anchor:p.union([GMt.describe("legacy"),Qm]).default("center"),color:p.string().default("#000000"),schRotation:He.default(0)}),mse=p.object({points:p.array(Zt),isFilled:p.boolean().optional().default(!1),fillColor:p.enum(["red","blue"]).optional()}),kW=p.object({schX:Y.optional(),schY:Y.optional(),children:p.any().optional(),cellPadding:Y.optional(),borderWidth:Y.optional(),anchor:Qm.optional(),fontSize:Y.optional()});Ct(!0);var TW=p.object({children:p.any().optional(),height:Y.optional()});Ct(!0);var MW=p.object({children:p.string().optional(),horizontalAlign:p.enum(["left","center","right"]).optional(),verticalAlign:p.enum(["top","middle","bottom"]).optional(),fontSize:Y.optional(),rowSpan:p.number().optional(),colSpan:p.number().optional(),width:Y.optional(),text:p.string().optional()});Ct(!0);var Pse=je.extend({text:p.string(),anchorAlignment:Qm.default("center"),font:p.enum(["tscircuit2024"]).optional(),fontSize:D.optional(),layers:p.array(pe).optional()}),EW=je.extend({text:p.string(),anchorAlignment:Qm.default("center"),font:p.enum(["tscircuit2024"]).optional(),fontSize:D.optional(),isKnockout:p.boolean().optional(),knockoutPadding:D.optional(),knockoutPaddingLeft:D.optional(),knockoutPaddingRight:D.optional(),knockoutPaddingTop:D.optional(),knockoutPaddingBottom:D.optional(),layers:p.array(pe).optional()}),CW=je.omit({pcbX:!0,pcbY:!0,pcbOffsetX:!0,pcbOffsetY:!0,pcbRotation:!0}).extend({route:p.array(Ji),strokeWidth:D.optional()}),IW=je.omit({pcbX:!0,pcbY:!0,pcbOffsetX:!0,pcbOffsetY:!0,pcbRotation:!0}).extend({strokeWidth:Y,x1:Y,y1:Y,x2:Y,y2:Y}),NW=je.omit({pcbRotation:!0}).extend({filled:p.boolean().default(!0).optional(),stroke:p.enum(["dashed","solid","none"]).optional(),strokeWidth:Y.optional(),width:Y,height:Y,cornerRadius:Y.optional()}),AW=je.omit({pcbRotation:!0}).extend({isFilled:p.boolean().optional(),isOutline:p.boolean().optional(),strokeWidth:Y.optional(),radius:Y}),bH=p.object({x:Y,y:Y,via:p.boolean().optional(),toLayer:pe.optional()}),RW=p.object({for:p.string().optional().describe("Selector for the port you're targeting, not required if you're inside a trace"),order:p.number().optional(),offset:Ji.or(bH).optional(),offsets:p.array(Ji).or(p.array(bH)).optional(),traceWidth:p.number().optional()}),zse=dw.extend({name:p.string(),pinNumber:p.number().optional(),aliases:p.array(p.string()).optional(),direction:F3t,connectsTo:p.string().or(p.array(p.string())).optional()}),OW=je.extend({text:p.string(),anchorAlignment:p.enum(["center","top_left","top_right","bottom_left","bottom_right"]).default("center"),font:p.enum(["tscircuit2024"]).optional(),fontSize:D.optional(),color:p.string().optional()});Ct(!0);var LW=je.omit({pcbRotation:!0}).extend({width:Y,height:Y,strokeWidth:Y.optional(),isFilled:p.boolean().optional(),hasStroke:p.boolean().optional(),isStrokeDashed:p.boolean().optional(),color:p.string().optional(),cornerRadius:Y.optional()});Ct(!0);var FW=je.omit({pcbX:!0,pcbY:!0,pcbOffsetX:!0,pcbOffsetY:!0,pcbRotation:!0}).extend({route:p.array(Ji),strokeWidth:D.optional(),color:p.string().optional()});Ct(!0);var zW=je.omit({pcbX:!0,pcbY:!0,pcbOffsetX:!0,pcbOffsetY:!0,pcbRotation:!0}).extend({x1:Y,y1:Y,x2:Y,y2:Y,strokeWidth:Y.optional(),color:p.string().optional(),isDashed:p.boolean().optional()});Ct(!0);var vH=p.union([p.string(),Ao]),$W=je.omit({pcbX:!0,pcbY:!0,pcbOffsetX:!0,pcbOffsetY:!0,pcbRotation:!0}).extend({from:vH,to:vH,text:p.string().optional(),offset:Y.optional(),font:p.enum(["tscircuit2024"]).optional(),fontSize:D.optional(),color:p.string().optional(),arrowSize:Y.optional(),units:p.enum(["in","mm"]).optional(),outerEdgeToEdge:p.literal(!0).optional(),centerToCenter:p.literal(!0).optional(),innerEdgeToEdge:p.literal(!0).optional()});Ct(!0);var DW=p.array(p.any()).describe("Circuit JSON"),n4=p.object({footprintCircuitJson:p.array(p.any()),cadModel:PH.optional()}),wH=p.function().args(p.string()).returns(p.promise(n4)).or(p.function().args(p.string(),p.object({resolvedPcbStyle:i4.optional()}).optional()).returns(p.promise(n4))).describe("A function that takes a path and returns Circuit JSON"),HMt=p.object({loadFromUrl:p.function().args(p.string()).returns(p.promise(n4)).describe("A function that takes a footprint file URL and returns Circuit JSON")}),WMt=p.object({engineVersionString:p.string().optional(),simulationResultCircuitJson:DW}),qMt=p.object({simulate:p.function().args(p.string()).returns(p.promise(WMt)).describe("A function that takes a SPICE string and returns a simulation result")}),ZMt=p.custom(n=>typeof n=="string"),SH=p.object({run:p.function().args().returns(p.promise(p.unknown())).describe("Run the autorouter"),getOutputSimpleRouteJson:p.function().args().returns(p.promise(p.any())).describe("Get the resulting SimpleRouteJson")}),KMt=p.object({createAutorouter:p.function().args(p.any(),p.any().optional()).returns(p.union([SH,p.promise(SH)])).describe("Create an autorouter instance")}),JMt=p.object({partsEngine:TH.optional(),autorouter:kH.optional(),autorouterMap:p.record(p.string(),KMt).optional(),registryApiUrl:p.string().optional(),cloudAutorouterUrl:p.string().optional(),projectName:p.string().optional(),projectBaseUrl:p.string().optional(),version:p.string().optional(),url:p.string().optional(),printBoardInformationToSilkscreen:p.boolean().optional(),includeBoardFiles:p.array(p.string()).describe('The board files to automatically build with "tsci build", defaults to ["**/*.circuit.tsx"]. Can be an array of files or globs').optional(),snapshotsDir:p.string().describe('The directory where snapshots are stored for "tsci snapshot", defaults to "tests/__snapshots__"').optional(),defaultSpiceEngine:ZMt.optional(),localCacheEngine:p.any().optional(),pcbDisabled:p.boolean().optional(),schematicDisabled:p.boolean().optional(),partsEngineDisabled:p.boolean().optional(),spiceEngineMap:p.record(p.string(),qMt).optional(),footprintLibraryMap:p.record(p.string(),p.union([wH,p.record(p.string(),p.union([DW,wH]))])).optional(),footprintFileParserMap:p.record(p.string(),HMt).optional(),resolveProjectStaticFileImportUrl:p.function().args(p.string()).returns(p.promise(p.string())).describe("A function that returns a string URL for static files for the project").optional()});Ct(!0);var QMt=JMt,qse=QMt.pick({projectName:!0,projectBaseUrl:!0,version:!0,url:!0,printBoardInformationToSilkscreen:!0,includeBoardFiles:!0,snapshotsDir:!0,defaultSpiceEngine:!0});Ct(!0);wt();Q();wt();wt();wt();ka();Q();var Xa=Gt(Ws(),1);ka();Q();function Uc(){return new u4}var u4=class n{constructor(){d(this,"index",{});d(this,"array",[])}size(){return this.array.length}empty(){return this.array.length===0}itemAt(e){return this.array[e]}contains(e){return this.index[e.id()]!==void 0}find(e){let t=this.index[e.id()];return t===void 0?void 0:this.array[t]}setDefault(e,t){let i=this.index[e.id()];if(i===void 0){let r=new mw(e,t());return this.index[e.id()]=this.array.length,this.array.push(r),r}else return this.array[i]}insert(e,t){let i=new mw(e,t),r=this.index[e.id()];return r===void 0?(this.index[e.id()]=this.array.length,this.array.push(i)):this.array[r]=i,i}erase(e){let t=this.index[e.id()];if(t===void 0)return;this.index[e.id()]=void 0;let i=this.array[t],r=this.array.pop();return i!==r&&(this.array[t]=r,this.index[r.first.id()]=t),i}copy(){let e=new n;for(let t=0;t<this.array.length;t++){let i=this.array[t].copy();e.array[t]=i,e.index[i.first.id()]=t}return e}},mw=class n{constructor(e,t){d(this,"first");d(this,"second");this.first=e,this.second=t}copy(){return new n(this.first,this.second)}};var Ca=class{constructor(e=""){d(this,"_name");d(this,"_value",0);d(this,"_context",null);d(this,"_id",tEt++);this._name=e}id(){return this._id}name(){return this._name}setName(e){this._name=e}context(){return this._context}setContext(e){this._context=e}value(){return this._value}setValue(e){this._value=e}plus(e){return new $n(this,e)}minus(e){return new $n(this,typeof e=="number"?-e:[-1,e])}multiply(e){return new $n([e,this])}divide(e){return new $n([1/e,this])}toJSON(){return{name:this._name,value:this._value}}toString(){return this._context+"["+this._name+":"+this._value+"]"}},tEt=0;var $n=class n{constructor(){d(this,"_terms");d(this,"_constant");let e=eEt(arguments);this._terms=e.terms,this._constant=e.constant}terms(){return this._terms}constant(){return this._constant}value(){let e=this._constant;for(let t=0,i=this._terms.size();t<i;t++){let r=this._terms.itemAt(t);e+=r.first.value()*r.second}return e}plus(e){return new n(this,e)}minus(e){return new n(this,typeof e=="number"?-e:[-1,e])}multiply(e){return new n([e,this])}divide(e){return new n([1/e,this])}isConstant(){return this._terms.size()==0}toString(){let e=this._terms.array.map(function(t){return t.second+"*"+t.first.toString()}).join(" + ");return!this.isConstant()&&this._constant!==0&&(e+=" + "),e+=this._constant,e}};function eEt(n){let e=0,t=()=>0,i=Uc();for(let r=0,s=n.length;r<s;++r){let o=n[r];if(typeof o=="number")e+=o;else if(o instanceof Ca)i.setDefault(o,t).second+=1;else if(o instanceof $n){e+=o.constant();let a=o.terms();for(let c=0,l=a.size();c<l;c++){let u=a.itemAt(c);i.setDefault(u.first,t).second+=u.second}}else if(o instanceof Array){if(o.length!==2)throw new Error("array must have length 2");let a=o[0],c=o[1];if(typeof a!="number")throw new Error("array item 0 must be a number");if(c instanceof Ca)i.setDefault(c,t).second+=a;else if(c instanceof $n){e+=c.constant()*a;let l=c.terms();for(let u=0,h=l.size();u<h;u++){let f=l.itemAt(u);i.setDefault(f.first,t).second+=f.second*a}}else throw new Error("array item 1 must be a variable or expression")}else throw new Error("invalid Expression argument: "+o)}return{terms:i,constant:e}}var io=class io{static create(e,t,i,r=1){let s=0;return s+=Math.max(0,Math.min(1e3,e*r))*1e6,s+=Math.max(0,Math.min(1e3,t*r))*1e3,s+=Math.max(0,Math.min(1e3,i*r)),s}static clip(e){return Math.max(0,Math.min(io.required,e))}};d(io,"required",io.create(1e3,1e3,1e3)),d(io,"strong",io.create(1,0,0)),d(io,"medium",io.create(0,1,0)),d(io,"weak",io.create(0,0,1));var Rn=io;var si;(function(n){n[n.Le=0]="Le",n[n.Ge=1]="Ge",n[n.Eq=2]="Eq"})(si||(si={}));var Pi=class{constructor(e,t,i,r=Rn.required){d(this,"_expression");d(this,"_operator");d(this,"_strength");d(this,"_id",nEt++);this._operator=t,this._strength=Rn.clip(r),i===void 0&&e instanceof $n?this._expression=e:this._expression=e.minus(i)}id(){return this._id}expression(){return this._expression}op(){return this._operator}strength(){return this._strength}toString(){return this._expression.toString()+" "+["<=",">=","="][this._operator]+" 0 ("+this._strength.toString()+")"}},nEt=0;var n_=class{constructor(){d(this,"maxIterations",1e3);d(this,"_cnMap",iEt());d(this,"_rowMap",rEt());d(this,"_varMap",sEt());d(this,"_editMap",oEt());d(this,"_infeasibleRows",[]);d(this,"_objective",new gw);d(this,"_artificial",null);d(this,"_idTick",0)}createConstraint(e,t,i,r=Rn.required){let s=new Pi(e,t,i,r);return this.addConstraint(s),s}addConstraint(e){if(this._cnMap.find(e)!==void 0)throw new Error("duplicate constraint");let i=this._createRow(e),r=i.row,s=i.tag,o=this._chooseSubject(r,s);if(o.type()===nn.Invalid&&r.allDummies())if(_w(r.constant()))o=s.marker;else throw new Error("unsatisfiable constraint");if(o.type()===nn.Invalid){if(!this._addWithArtificialVariable(r))throw new Error("unsatisfiable constraint")}else r.solveFor(o),this._substitute(o,r),this._rowMap.insert(o,r);this._cnMap.insert(e,s),this._optimize(this._objective)}removeConstraint(e){let t=this._cnMap.erase(e);if(t===void 0)throw new Error("unknown constraint");this._removeConstraintEffects(e,t.second);let i=t.second.marker,r=this._rowMap.erase(i);if(r===void 0){let s=this._getMarkerLeavingSymbol(i);if(s.type()===nn.Invalid)throw new Error("failed to find leaving row");r=this._rowMap.erase(s),r.second.solveForEx(s,i),this._substitute(i,r.second)}this._optimize(this._objective)}hasConstraint(e){return this._cnMap.contains(e)}getConstraints(){return this._cnMap.array.map(({first:e})=>e)}addEditVariable(e,t){if(this._editMap.find(e)!==void 0)throw new Error("duplicate edit variable");if(t=Rn.clip(t),t===Rn.required)throw new Error("bad required strength");let r=new $n(e),s=new Pi(r,si.Eq,void 0,t);this.addConstraint(s);let a={tag:this._cnMap.find(s).second,constraint:s,constant:0};this._editMap.insert(e,a)}removeEditVariable(e){let t=this._editMap.erase(e);if(t===void 0)throw new Error("unknown edit variable");this.removeConstraint(t.second.constraint)}hasEditVariable(e){return this._editMap.contains(e)}suggestValue(e,t){let i=this._editMap.find(e);if(i===void 0)throw new Error("unknown edit variable");let r=this._rowMap,s=i.second,o=t-s.constant;s.constant=t;let a=s.tag.marker,c=r.find(a);if(c!==void 0){c.second.add(-o)<0&&this._infeasibleRows.push(a),this._dualOptimize();return}let l=s.tag.other;if(c=r.find(l),c!==void 0){c.second.add(o)<0&&this._infeasibleRows.push(l),this._dualOptimize();return}for(let u=0,h=r.size();u<h;++u){let f=r.itemAt(u),_=f.second,g=_.coefficientFor(a);g!==0&&_.add(o*g)<0&&f.first.type()!==nn.External&&this._infeasibleRows.push(f.first)}this._dualOptimize()}updateVariables(){let e=this._varMap,t=this._rowMap;for(let i=0,r=e.size();i<r;++i){let s=e.itemAt(i),o=t.find(s.second);o!==void 0?s.first.setValue(o.second.constant()):s.first.setValue(0)}}_getVarSymbol(e){let t=()=>this._makeSymbol(nn.External);return this._varMap.setDefault(e,t).second}_createRow(e){let t=e.expression(),i=new gw(t.constant()),r=t.terms();for(let c=0,l=r.size();c<l;++c){let u=r.itemAt(c);if(!_w(u.second)){let h=this._getVarSymbol(u.first),f=this._rowMap.find(h);f!==void 0?i.insertRow(f.second,u.second):i.insertSymbol(h,u.second)}}let s=this._objective,o=e.strength(),a={marker:Vc,other:Vc};switch(e.op()){case si.Le:case si.Ge:{let c=e.op()===si.Le?1:-1,l=this._makeSymbol(nn.Slack);if(a.marker=l,i.insertSymbol(l,c),o<Rn.required){let u=this._makeSymbol(nn.Error);a.other=u,i.insertSymbol(u,-c),s.insertSymbol(u,o)}break}case si.Eq:{if(o<Rn.required){let c=this._makeSymbol(nn.Error),l=this._makeSymbol(nn.Error);a.marker=c,a.other=l,i.insertSymbol(c,-1),i.insertSymbol(l,1),s.insertSymbol(c,o),s.insertSymbol(l,o)}else{let c=this._makeSymbol(nn.Dummy);a.marker=c,i.insertSymbol(c)}break}}return i.constant()<0&&i.reverseSign(),{row:i,tag:a}}_chooseSubject(e,t){let i=e.cells();for(let s=0,o=i.size();s<o;++s){let a=i.itemAt(s);if(a.first.type()===nn.External)return a.first}let r=t.marker.type();return(r===nn.Slack||r===nn.Error)&&e.coefficientFor(t.marker)<0?t.marker:(r=t.other.type(),(r===nn.Slack||r===nn.Error)&&e.coefficientFor(t.other)<0?t.other:Vc)}_addWithArtificialVariable(e){let t=this._makeSymbol(nn.Slack);this._rowMap.insert(t,e.copy()),this._artificial=e.copy(),this._optimize(this._artificial);let i=_w(this._artificial.constant());this._artificial=null;let r=this._rowMap.erase(t);if(r!==void 0){let o=r.second;if(o.isConstant())return i;let a=this._anyPivotableSymbol(o);if(a.type()===nn.Invalid)return!1;o.solveForEx(t,a),this._substitute(a,o),this._rowMap.insert(a,o)}let s=this._rowMap;for(let o=0,a=s.size();o<a;++o)s.itemAt(o).second.removeSymbol(t);return this._objective.removeSymbol(t),i}_substitute(e,t){let i=this._rowMap;for(let r=0,s=i.size();r<s;++r){let o=i.itemAt(r);o.second.substitute(e,t),o.second.constant()<0&&o.first.type()!==nn.External&&this._infeasibleRows.push(o.first)}this._objective.substitute(e,t),this._artificial&&this._artificial.substitute(e,t)}_optimize(e){let t=0;for(;t<this.maxIterations;){let i=this._getEnteringSymbol(e);if(i.type()===nn.Invalid)return;let r=this._getLeavingSymbol(i);if(r.type()===nn.Invalid)throw new Error("the objective is unbounded");let s=this._rowMap.erase(r).second;s.solveForEx(r,i),this._substitute(i,s),this._rowMap.insert(i,s),t++}throw new Error("solver iterations exceeded")}_dualOptimize(){let e=this._rowMap,t=this._infeasibleRows;for(;t.length!==0;){let i=t.pop(),r=e.find(i);if(r!==void 0&&r.second.constant()<0){let s=this._getDualEnteringSymbol(r.second);if(s.type()===nn.Invalid)throw new Error("dual optimize failed");let o=r.second;e.erase(i),o.solveForEx(i,s),this._substitute(s,o),e.insert(s,o)}}}_getEnteringSymbol(e){let t=e.cells();for(let i=0,r=t.size();i<r;++i){let s=t.itemAt(i),o=s.first;if(s.second<0&&o.type()!==nn.Dummy)return o}return Vc}_getDualEnteringSymbol(e){let t=Number.MAX_VALUE,i=Vc,r=e.cells();for(let s=0,o=r.size();s<o;++s){let a=r.itemAt(s),c=a.first,l=a.second;if(l>0&&c.type()!==nn.Dummy){let h=this._objective.coefficientFor(c)/l;h<t&&(t=h,i=c)}}return i}_getLeavingSymbol(e){let t=Number.MAX_VALUE,i=Vc,r=this._rowMap;for(let s=0,o=r.size();s<o;++s){let a=r.itemAt(s),c=a.first;if(c.type()!==nn.External){let l=a.second,u=l.coefficientFor(e);if(u<0){let h=-l.constant()/u;h<t&&(t=h,i=c)}}}return i}_getMarkerLeavingSymbol(e){let t=Number.MAX_VALUE,i=t,r=t,s=Vc,o=s,a=s,c=s,l=this._rowMap;for(let u=0,h=l.size();u<h;++u){let f=l.itemAt(u),_=f.second,g=_.coefficientFor(e);if(g===0)continue;let x=f.first;if(x.type()===nn.External)c=x;else if(g<0){let v=-_.constant()/g;v<i&&(i=v,o=x)}else{let v=_.constant()/g;v<r&&(r=v,a=x)}}return o!==s?o:a!==s?a:c}_removeConstraintEffects(e,t){t.marker.type()===nn.Error&&this._removeMarkerEffects(t.marker,e.strength()),t.other.type()===nn.Error&&this._removeMarkerEffects(t.other,e.strength())}_removeMarkerEffects(e,t){let i=this._rowMap.find(e);i!==void 0?this._objective.insertRow(i.second,-t):this._objective.insertSymbol(e,-t)}_anyPivotableSymbol(e){let t=e.cells();for(let i=0,r=t.size();i<r;++i){let s=t.itemAt(i),o=s.first.type();if(o===nn.Slack||o===nn.Error)return s.first}return Vc}_makeSymbol(e){return new yw(e,this._idTick++)}};function _w(n){let e=1e-8;return n<0?-n<e:n<e}function iEt(){return Uc()}function rEt(){return Uc()}function sEt(){return Uc()}function oEt(){return Uc()}var nn;(function(n){n[n.Invalid=0]="Invalid",n[n.External=1]="External",n[n.Slack=2]="Slack",n[n.Error=3]="Error",n[n.Dummy=4]="Dummy"})(nn||(nn={}));var yw=class{constructor(e,t){d(this,"_id");d(this,"_type");this._id=t,this._type=e}id(){return this._id}type(){return this._type}},Vc=new yw(nn.Invalid,-1),gw=class n{constructor(e=0){d(this,"_cellMap",Uc());d(this,"_constant");this._constant=e}cells(){return this._cellMap}constant(){return this._constant}isConstant(){return this._cellMap.empty()}allDummies(){let e=this._cellMap;for(let t=0,i=e.size();t<i;++t)if(e.itemAt(t).first.type()!==nn.Dummy)return!1;return!0}copy(){let e=new n(this._constant);return e._cellMap=this._cellMap.copy(),e}add(e){return this._constant+=e}insertSymbol(e,t=1){let i=this._cellMap.setDefault(e,()=>0);_w(i.second+=t)&&this._cellMap.erase(e)}insertRow(e,t=1){this._constant+=e._constant*t;let i=e._cellMap;for(let r=0,s=i.size();r<s;++r){let o=i.itemAt(r);this.insertSymbol(o.first,o.second*t)}}removeSymbol(e){this._cellMap.erase(e)}reverseSign(){this._constant=-this._constant;let e=this._cellMap;for(let t=0,i=e.size();t<i;++t){let r=e.itemAt(t);r.second=-r.second}}solveFor(e){let t=this._cellMap,r=-1/t.erase(e).second;this._constant*=r;for(let s=0,o=t.size();s<o;++s)t.itemAt(s).second*=r}solveForEx(e,t){this.insertSymbol(e,-1),this.solveFor(t)}coefficientFor(e){let t=this._cellMap.find(e);return t!==void 0?t.second:0}substitute(e,t){let i=this._cellMap.erase(e);i!==void 0&&this.insertRow(t,i.second)}};var Jet=Gt(En(),1);Q();wt();wt();er();var m4={};gh(m4,{areBoundsCompletelyInsidePolygon:()=>f4,areBoundsOverlappingPolygon:()=>d4,boundsAreaOverlap:()=>JW,boundsDistance:()=>QW,boundsIntersection:()=>tq,clamp:()=>Vn,computeDistanceBetweenBoxes:()=>No,computeGapBetweenBoxes:()=>J5,computeManhattanDistanceBetweenBoxes:()=>Pg,distSq:()=>VW,distance:()=>Fi,doBoundsOverlap:()=>Gc,doSegmentsIntersect:()=>ki,doesLineIntersectLine:()=>Ia,doesSegmentIntersectRect:()=>p4,findNearestPointsBetweenBoxSets:()=>kg,getBoundingBox:()=>eo,getBoundsFromPoints:()=>Ro,getSegmentIntersection:()=>id,getUnitVectorFromDirection:()=>Sw,getUnitVectorFromPointAToB:()=>ww,grid:()=>eq,isPointInsidePolygon:()=>vw,isRectCompletelyInsidePolygon:()=>ZW,isRectOverlappingPolygon:()=>qW,midpoint:()=>UW,normalizeDegrees:()=>rd,onSegment:()=>nd,orientation:()=>ed,pointToBoundsDistance:()=>XW,pointToBoxDistance:()=>YW,pointToSegmentClosestPoint:()=>BW,pointToSegmentDistance:()=>yi,range:()=>KW,segmentToBoundsMinDistance:()=>Ig,segmentToBoxMinDistance:()=>xw,segmentToCircleMinDistance:()=>bw,segmentToSegmentMinDistance:()=>i_});function Ia([n,e],[t,i],{lineThickness:r=0}={}){return r===0?ki(n,e,t,i):aEt(n,e,t,i)<=r}function ki(n,e,t,i){let r=ed(n,e,t),s=ed(n,e,i),o=ed(t,i,n),a=ed(t,i,e);return!!(r!==s&&o!==a||r===0&&nd(n,t,e)||s===0&&nd(n,i,e)||o===0&&nd(t,n,i)||a===0&&nd(t,e,i))}function ed(n,e,t){let i=(e.y-n.y)*(t.x-e.x)-(e.x-n.x)*(t.y-e.y);return i===0?0:i>0?1:2}function nd(n,e,t){return e.x<=Math.max(n.x,t.x)&&e.x>=Math.min(n.x,t.x)&&e.y<=Math.max(n.y,t.y)&&e.y>=Math.min(n.y,t.y)}function aEt(n,e,t,i){if(n.x===e.x&&n.y===e.y)return yi(n,t,i);if(t.x===i.x&&t.y===i.y)return yi(t,n,e);if(ki(n,e,t,i))return 0;let r=[yi(n,t,i),yi(e,t,i),yi(t,n,e),yi(i,n,e)];return Math.min(...r)}function yi(n,e,t){let i=(t.x-e.x)**2+(t.y-e.y)**2;if(i===0)return Fi(n,e);let r=((n.x-e.x)*(t.x-e.x)+(n.y-e.y)*(t.y-e.y))/i;r=Math.max(0,Math.min(1,r));let s={x:e.x+r*(t.x-e.x),y:e.y+r*(t.y-e.y)};return Fi(n,s)}function Fi(n,e){let t=n.x-e.x,i=n.y-e.y;return Math.sqrt(t*t+i*i)}function id(n,e,t,i){let r=e.x-n.x,s=e.y-n.y,o=i.x-t.x,a=i.y-t.y,c=n.x-t.x,l=n.y-t.y,u=r*a-s*o;if(Math.abs(u)<1e-10)return null;let h=(l*o-c*a)/u,f=(r*l-s*c)/u,_=1e-9;if(h>=-_&&h<=1+_&&f>=-_&&f<=1+_){let g=n.x+h*r,x=n.y+h*s;return{x:g,y:x}}return null}function p4(n,e,t){let i=c=>c.x>=t.minX&&c.x<=t.maxX&&c.y>=t.minY&&c.y<=t.maxY;if(i(n)||i(e))return!0;let r={x:t.minX,y:t.minY},s={x:t.maxX,y:t.minY},o={x:t.minX,y:t.maxY},a={x:t.maxX,y:t.maxY};return ki(n,e,r,s)||ki(n,e,s,a)||ki(n,e,a,o)||ki(n,e,o,r)}function i_(n,e,t,i){if(n.x===e.x&&n.y===e.y)return yi(n,t,i);if(t.x===i.x&&t.y===i.y)return yi(t,n,e);if(ki(n,e,t,i))return 0;let r=[yi(n,t,i),yi(e,t,i),yi(t,n,e),yi(i,n,e)];return Math.min(...r)}function Ig(n,e,t){let i={x:t.minX,y:t.minY},r={x:t.maxX,y:t.minY},s={x:t.minX,y:t.maxY},o={x:t.maxX,y:t.maxY};if(ki(n,e,i,r)||ki(n,e,r,o)||ki(n,e,o,s)||ki(n,e,s,i)||n.x>=t.minX&&n.x<=t.maxX&&n.y>=t.minY&&n.y<=t.maxY&&e.x>=t.minX&&e.x<=t.maxX&&e.y>=t.minY&&e.y<=t.maxY)return 0;let a=[yi(i,n,e),yi(r,n,e),yi(s,n,e),yi(o,n,e)];if(n.x>=t.minX&&n.x<=t.maxX&&n.y>=t.minY&&n.y<=t.maxY||e.x>=t.minX&&e.x<=t.maxX&&e.y>=t.minY&&e.y<=t.maxY)return 0;if(n.x<t.minX||n.x>t.maxX||n.y<t.minY||n.y>t.maxY){let c=Vn(n.x,t.minX,t.maxX),l=Vn(n.y,t.minY,t.maxY);a.push(Fi(n,{x:c,y:l}))}if(e.x<t.minX||e.x>t.maxX||e.y<t.minY||e.y>t.maxY){let c=Vn(e.x,t.minX,t.maxX),l=Vn(e.y,t.minY,t.maxY);a.push(Fi(e,{x:c,y:l}))}return Math.min(...a)}function xw(n,e,t){let i=t.width/2,r=t.height/2,s={minX:t.center.x-i,maxX:t.center.x+i,minY:t.center.y-r,maxY:t.center.y+r};return Ig(n,e,s)}function bw(n,e,t){let i={x:t.x,y:t.y};if(n.x===e.x&&n.y===e.y)return Math.max(0,Fi(n,i)-t.radius);let r={x:e.x-n.x,y:e.y-n.y},s={x:i.x-n.x,y:i.y-n.y},o=r.x*r.x+r.y*r.y,a=Math.max(0,Math.min(1,(r.x*s.x+r.y*s.y)/o)),c={x:n.x+a*r.x,y:n.y+a*r.y},l=Fi(c,i);return Math.max(0,l-t.radius)}function BW(n,e,t){let i=t.x-e.x,r=t.y-e.y,s=i*i+r*r;if(s===0)return{x:e.x,y:e.y};let o=((n.x-e.x)*i+(n.y-e.y)*r)/s;return o=Math.max(0,Math.min(1,o)),{x:e.x+o*i,y:e.y+o*r}}function rd(n){return(n%360+360)%360}function YW(n,e){let t=e.width/2,i=e.height/2,r=e.center.x-t,s=e.center.x+t,o=e.center.y-i,a=e.center.y+i;if(n.x>=r&&n.x<=s&&n.y>=o&&n.y<=a)return 0;let c=Vn(n.x,r,s),l=Vn(n.y,o,a);return Fi(n,{x:c,y:l})}function XW(n,e){if(n.x>=e.minX&&n.x<=e.maxX&&n.y>=e.minY&&n.y<=e.maxY)return 0;let t=Vn(n.x,e.minX,e.maxX),i=Vn(n.y,e.minY,e.maxY);return Fi(n,{x:t,y:i})}function UW(n,e){return{x:(n.x+e.x)/2,y:(n.y+e.y)/2}}function VW(n,e){let t=n.x-e.x,i=n.y-e.y;return t*t+i*i}var GW=n=>{if("minX"in n)return n;let e=n.width/2,t=n.height/2;return{minX:n.center.x-e,minY:n.center.y-t,maxX:n.center.x+e,maxY:n.center.y+t}},h4=n=>[{x:n.minX,y:n.minY},{x:n.maxX,y:n.minY},{x:n.maxX,y:n.maxY},{x:n.minX,y:n.maxY}],HW=n=>{let e=[];for(let t=0;t<n.length;t++){let i=n[t],r=n[(t+1)%n.length];e.push([i,r])}return e},cEt=(n,e,t)=>{let i=(n.y-e.y)*(t.x-e.x)-(n.x-e.x)*(t.y-e.y);if(Math.abs(i)>1e-9)return!1;let r=(n.x-e.x)*(t.x-e.x)+(n.y-e.y)*(t.y-e.y);if(r<0)return!1;let s=(t.x-e.x)**2+(t.y-e.y)**2;return!(r>s)},lEt=(n,e)=>n.x>=e.minX&&n.x<=e.maxX&&n.y>=e.minY&&n.y<=e.maxY,vw=(n,e)=>{if(e.length<3)return!1;let t=HW(e);for(let[r,s]of t)if(cEt(n,r,s))return!0;let i=!1;for(let r=0,s=e.length-1;r<e.length;s=r++){let o=e[r].x,a=e[r].y,c=e[s].x,l=e[s].y;a>n.y!=l>n.y&&n.x<(c-o)*(n.y-a)/(l-a)+o&&(i=!i)}return i},WW=(n,e)=>{let t=h4(n),i=[[t[0],t[1]],[t[1],t[2]],[t[2],t[3]],[t[3],t[0]]],r=HW(e);for(let[s,o]of r)for(let[a,c]of i)if(ki(s,o,a,c))return!0;return!1},d4=(n,e)=>e.length<3?!1:e.some(i=>lEt(i,n))||h4(n).some(i=>vw(i,e))?!0:WW(n,e),f4=(n,e)=>e.length<3||!h4(n).every(i=>vw(i,e))?!1:!WW(n,e),qW=(n,e)=>d4(GW(n),e),ZW=(n,e)=>f4(GW(n),e);function KW(n,e,t=1){if(t===0)throw new Error("step cannot be 0");let i,r;e===void 0?(i=0,r=n):(i=n,r=e);let s=[];if(t>0)for(let o=i;o<r;o+=t)s.push(o);else for(let o=i;o>r;o+=t)s.push(o);return s}var JW=(n,e)=>{let t=Math.max(0,Math.min(n.maxX,e.maxX)-Math.max(n.minX,e.minX)),i=Math.max(0,Math.min(n.maxY,e.maxY)-Math.max(n.minY,e.minY));return t*i};var QW=(n,e)=>{let t=n.maxX<e.minX?e.minX-n.maxX:e.maxX<n.minX?n.minX-e.maxX:0,i=n.maxY<e.minY?e.minY-n.maxY:e.maxY<n.minY?n.minY-e.maxY:0;return Math.sqrt(t*t+i*i)};var tq=(n,e)=>{let t=Math.max(n.minX,e.minX),i=Math.max(n.minY,e.minY),r=Math.min(n.maxX,e.maxX),s=Math.min(n.maxY,e.maxY);return t>r||i>s?null:{minX:t,minY:i,maxX:r,maxY:s}};var Gc=(n,e)=>!(n.maxX<e.minX||e.maxX<n.minX||n.maxY<e.minY||e.maxY<n.minY);var Ro=n=>{if(n.length===0)return null;let e=n[0].x,t=n[0].y,i=n[0].x,r=n[0].y;for(let s=1;s<n.length;s++){let o=n[s];o.x<e&&(e=o.x),o.y<t&&(t=o.y),o.x>i&&(i=o.x),o.y>r&&(r=o.y)}return{minX:e,minY:t,maxX:i,maxY:r}};var ww=(n,e)=>{let t={x:e.x-n.x,y:e.y-n.y},i=Math.sqrt(t.x**2+t.y**2);return{x:t.x/i,y:t.y/i}},Sw=n=>{switch(n){case"up":return{x:0,y:1};case"down":return{x:0,y:-1};case"left":return{x:-1,y:0};case"right":return{x:1,y:0}}};function eq({rows:n,cols:e,xSpacing:t,ySpacing:i,width:r,height:s,offsetX:o=0,offsetY:a=0,yDirection:c="cartesian",centered:l=!0}){let u=t??1,h=i??1,f=r??e*u,_=s??n*h,g=l?-f/2:0,x=l?-_/2:0,v=r?r/e:u,P=s?s/n:h,S=[];for(let T=0;T<n;T++)for(let k=0;k<e;k++){let C=T*e+k,M=o+g+k*v+v/2,I=a+T*P+P/2,E=c==="cartesian"?a+x+(n-1-T)*P+P/2:a+x+T*P+P/2;S.push({index:C,center:{x:M,y:E},topLeft:{x:M-v/2,y:E+P/2},bottomRight:{x:M+v/2,y:E-P/2},row:T,col:k})}return S}wt();Ng();var nq={name:"@tscircuit/capacity-autorouter",main:"./dist/index.js",version:"0.0.140",type:"module",files:["dist"],scripts:{start:"cosmos",build:"tsup ./lib/index.ts --minify terser --external @tscircuit/core --external circuit-to-svg --format esm --dts --sourcemap",bench:"bun test tests/spatial-index-bench.test.ts",format:"biome format --write .","format:check":"biome format .","vercel-build":"cosmos-export","repomix:lib":"repomix --ignore 'testing/**,**/TwoRouteHighDensitySolver/**,**/RouteStitchingSolver/**,solvers/CapacitySegmentPointOptimizer/CapacitySegmentPointOptimizer.ts' lib","bug-report":"bun run scripts/download-bug-report.ts","bug-report-with-test":"bun run scripts/create-bug-report-test.ts"},devDependencies:{"@biomejs/biome":"^1.9.4","@radix-ui/react-icons":"^1.3.2","@radix-ui/react-menubar":"^1.1.14","@react-hook/resize-observer":"^2.0.2","@resvg/resvg-js":"^2.6.2","@tscircuit/checks":"^0.0.75","@tscircuit/circuit-json-util":"^0.0.46","@tscircuit/core":"^0.0.337","@tscircuit/math-utils":"^0.0.27","@types/bun":"^1.2.23","@types/fast-json-stable-stringify":"^2.1.2","@types/object-hash":"^3.0.6","@types/rbush":"^4.0.0","@types/react":"^19.0.8","@types/react-dom":"^19.0.3","@vercel/node":"^5.1.7","@vitejs/plugin-react":"^4.3.4","circuit-json-to-connectivity-map":"^0.0.19","circuit-to-svg":"^0.0.220",clsx:"^2.1.1",flatbush:"^4.4.0","graphics-debug":"^0.0.44","looks-same":"9",rbush:"^4.0.1",react:"18","react-cosmos":"^6.2.3","react-cosmos-plugin-vite":"^6.2.0","react-dom":"18","react-konva":"18",recharts:"^2.15.1","tailwind-merge":"^3.2.0",terser:"^5.43.1",tsup:"^8.3.6",typescript:"^5.9.3","use-mouse-matrix-transform":"^1.3.0",vite:"^6.0.11","vite-tsconfig-paths":"^5.1.4"},dependencies:{"fast-json-stable-stringify":"^2.1.0","object-hash":"^3.0.0"}};wt();er();Ae();var r9=Gt(Ws(),1);wt();var snt=Gt(En(),1);var G4={};gh(G4,{AssignableViaAutoroutingPipelineSolver:()=>tIt,AutoroutingPipelineSolver:()=>kZ,CapacityMeshSolver:()=>WCt,InMemoryCache:()=>aZ,LocalStorageCache:()=>cZ,calculateOptimalCapacityDepth:()=>Y4,convertSrjToGraphicsObject:()=>Ug,getGlobalInMemoryCache:()=>m_,getGlobalLocalStorageCache:()=>lZ,getTunedTotalCapacity1:()=>so,setupGlobalCaches:()=>Xg});var oZ=Gt(Mw(),1),xZ=Gt(Mw(),1),wZ=Gt(Mw(),1);var ld=(...n)=>{let e={points:[],lines:[],circles:[],rects:[]};return n.forEach((t,i)=>{t&&(t.lines&&(e.lines=[...e.lines||[],...t.lines.map(r=>({...r,step:i}))]),t.points&&(e.points=[...e.points||[],...t.points.map(r=>({...r,step:i}))]),t.circles&&(e.circles=[...e.circles||[],...t.circles.map(r=>({...r,step:i}))]),t.rects&&(e.rects=[...e.rects||[],...t.rects.map(r=>({...r,step:i}))]))}),e},an=class{constructor(){d(this,"MAX_ITERATIONS",1e3);d(this,"solved",!1);d(this,"failed",!1);d(this,"iterations",0);d(this,"progress",0);d(this,"error",null);d(this,"activeSubSolver");d(this,"failedSubSolvers");d(this,"timeToSolve");d(this,"stats",{});d(this,"cacheHit");d(this,"cacheKey");d(this,"cacheToSolveSpaceTransform")}step(){if(!this.solved&&!this.failed){this.iterations++;try{this._step()}catch(n){throw this.error=`${this.constructor.name} error: ${n}`,console.error(this.error),this.failed=!0,n}!this.solved&&this.iterations>this.MAX_ITERATIONS&&this.tryFinalAcceptance(),!this.solved&&this.iterations>this.MAX_ITERATIONS&&(this.error=`${this.constructor.name} ran out of iterations`,console.error(this.error),this.failed=!0),"computeProgress"in this&&(this.progress=this.computeProgress())}}_step(){}getConstructorParams(){throw new Error("getConstructorParams not implemented")}solve(){let n=Date.now();for(;!this.solved&&!this.failed;)this.step();let e=Date.now();this.timeToSolve=e-n}visualize(){return{lines:[],points:[],rects:[],circles:[]}}tryFinalAcceptance(){}preview(){return{lines:[],points:[],rects:[],circles:[]}}};function _q(n){let e=n.width/2,t=n.height/2;return{minX:n.center.x-e,maxX:n.center.x+e,minY:n.center.y-t,maxY:n.center.y+t}}function qc(n,e,t){return Math.max(e,Math.min(t,n))}function zi(n,e,t,i){let r=Ew(n,e,t),s=Ew(n,e,i),o=Ew(t,i,n),a=Ew(t,i,e);return r!==s&&o!==a||!(r!==0||!Cw(n,t,e))||!(s!==0||!Cw(n,i,e))||!(o!==0||!Cw(t,n,i))||!(a!==0||!Cw(t,e,i))}function Ew(n,e,t){let i=(e.y-n.y)*(t.x-e.x)-(e.x-n.x)*(t.y-e.y);return i===0?0:i>0?1:2}function Cw(n,e,t){return e.x<=Math.max(n.x,t.x)&&e.x>=Math.min(n.x,t.x)&&e.y<=Math.max(n.y,t.y)&&e.y>=Math.min(n.y,t.y)}function fr(n,e,t){let i=(t.x-e.x)**2+(t.y-e.y)**2;if(i===0)return Qt(n,e);let r=((n.x-e.x)*(t.x-e.x)+(n.y-e.y)*(t.y-e.y))/i;return r=Math.max(0,Math.min(1,r)),Qt(n,{x:e.x+r*(t.x-e.x),y:e.y+r*(t.y-e.y)})}function Qt(n,e){let t=n.x-e.x,i=n.y-e.y;return Math.sqrt(t*t+i*i)}function Xq(n,e,t,i){let r=e.x-n.x,s=e.y-n.y,o=i.x-t.x,a=i.y-t.y,c=n.x-t.x,l=n.y-t.y,u=r*a-s*o;if(Math.abs(u)<1e-10)return null;let h=(l*o-c*a)/u,f=(r*l-s*c)/u,_=1e-9;return h>=-1e-9&&h<=1+_&&f>=-1e-9&&f<=1+_?{x:n.x+h*r,y:n.y+h*s}:null}function yq(n,e){return{x:(n.x+e.x)/2,y:(n.y+e.y)/2}}var Uq=n=>{if("minX"in n)return n;let e=n.width/2,t=n.height/2;return{minX:n.center.x-e,minY:n.center.y-t,maxX:n.center.x+e,maxY:n.center.y+t}},B4=n=>[{x:n.minX,y:n.minY},{x:n.maxX,y:n.minY},{x:n.maxX,y:n.maxY},{x:n.minX,y:n.maxY}],Vq=n=>{let e=[];for(let t=0;t<n.length;t++){let i=n[t],r=n[(t+1)%n.length];e.push([i,r])}return e},wEt=(n,e,t)=>{let i=(n.y-e.y)*(t.x-e.x)-(n.x-e.x)*(t.y-e.y);if(Math.abs(i)>1e-9)return!1;let r=(n.x-e.x)*(t.x-e.x)+(n.y-e.y)*(t.y-e.y);return r<0?!1:!(r>(t.x-e.x)**2+(t.y-e.y)**2)},Gq=(n,e)=>{if(e.length<3)return!1;let t=Vq(e);for(let[r,s]of t)if(wEt(n,r,s))return!0;let i=!1;for(let r=0,s=e.length-1;r<e.length;s=r++){let o=e[r].x,a=e[r].y,c=e[s].x,l=e[s].y;a>n.y!=l>n.y&&n.x<(c-o)*(n.y-a)/(l-a)+o&&(i=!i)}return i},Hq=(n,e)=>{let t=B4(n),i=[[t[0],t[1]],[t[1],t[2]],[t[2],t[3]],[t[3],t[0]]],r=Vq(e);for(let[s,o]of r)for(let[a,c]of i)if(zi(s,o,a,c))return!0;return!1},I4=(n,e)=>((t,i)=>!(i.length<3)&&(!!i.some(r=>((s,o)=>s.x>=o.minX&&s.x<=o.maxX&&s.y>=o.minY&&s.y<=o.maxY)(r,t))||!!B4(t).some(r=>Gq(r,i))||Hq(t,i)))(Uq(n),e),Wq=(n,e)=>((t,i)=>!(i.length<3)&&!!B4(t).every(r=>Gq(r,i))&&!Hq(t,i))(Uq(n),e);function N4(n,e,t,i){if(n.x===e.x&&n.y===e.y)return fr(n,t,i);if(t.x===i.x&&t.y===i.y)return fr(t,n,e);if(zi(n,e,t,i))return 0;let r=[fr(n,t,i),fr(e,t,i),fr(t,n,e),fr(i,n,e)];return Math.min(...r)}function qq(n,e,t){let i=t.width/2,r=t.height/2;return(function(s,o,a){let c={x:a.minX,y:a.minY},l={x:a.maxX,y:a.minY},u={x:a.minX,y:a.maxY},h={x:a.maxX,y:a.maxY};if(zi(s,o,c,l)||zi(s,o,l,h)||zi(s,o,h,u)||zi(s,o,u,c)||s.x>=a.minX&&s.x<=a.maxX&&s.y>=a.minY&&s.y<=a.maxY&&o.x>=a.minX&&o.x<=a.maxX&&o.y>=a.minY&&o.y<=a.maxY)return 0;let f=[fr(c,s,o),fr(l,s,o),fr(u,s,o),fr(h,s,o)];if(s.x>=a.minX&&s.x<=a.maxX&&s.y>=a.minY&&s.y<=a.maxY||o.x>=a.minX&&o.x<=a.maxX&&o.y>=a.minY&&o.y<=a.maxY)return 0;if(s.x<a.minX||s.x>a.maxX||s.y<a.minY||s.y>a.maxY){let _=qc(s.x,a.minX,a.maxX),g=qc(s.y,a.minY,a.maxY);f.push(Qt(s,{x:_,y:g}))}if(o.x<a.minX||o.x>a.maxX||o.y<a.minY||o.y>a.maxY){let _=qc(o.x,a.minX,a.maxX),g=qc(o.y,a.minY,a.maxY);f.push(Qt(o,{x:_,y:g}))}return Math.min(...f)})(n,e,{minX:t.center.x-i,maxX:t.center.x+i,minY:t.center.y-r,maxY:t.center.y+r})}function u_(n,e,t){let i=t.x-e.x,r=t.y-e.y,s=i*i+r*r;if(s===0)return{x:e.x,y:e.y};let o=((n.x-e.x)*i+(n.y-e.y)*r)/s;return o=Math.max(0,Math.min(1,o)),{x:e.x+o*i,y:e.y+o*r}}function Br(){return Br=Object.assign?Object.assign.bind():function(n){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var i in t)({}).hasOwnProperty.call(t,i)&&(n[i]=t[i])}return n},Br.apply(null,arguments)}function Uw(n,e){return(Uw=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,i){return t.__proto__=i,t})(n,e)}function Zq(n){return(Zq=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(n)}function Kq(){try{var n=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(Kq=function(){return!!n})()}function A4(n){var e=typeof Map=="function"?new Map:void 0;return A4=function(t){if(t===null||!(function(r){try{return Function.toString.call(r).indexOf("[native code]")!==-1}catch{return typeof r=="function"}})(t))return t;if(typeof t!="function")throw new TypeError("Super expression must either be null or a function");if(e!==void 0){if(e.has(t))return e.get(t);e.set(t,i)}function i(){return(function(r,s,o){if(Kq())return Reflect.construct.apply(null,arguments);var a=[null];a.push.apply(a,s);var c=new(r.bind.apply(r,a));return o&&Uw(c,o.prototype),c})(t,arguments,Zq(this).constructor)}return i.prototype=Object.create(t.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}),Uw(i,t)},A4(n)}var jr=(function(n){var e,t;function i(r){var s;if(1)s=n.call(this,"An error occurred. See https://github.com/styled-components/polished/blob/main/src/internalHelpers/errors.md#"+r+" for more information.")||this;else for(var o,a,c;c<o;c++);return(function(l){if(l===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return l})(s)}return t=n,(e=i).prototype=Object.create(t.prototype),e.prototype.constructor=e,Uw(e,t),i})(A4(Error));function gq(n,e){return n.substr(-e.length)===e}var SEt=/^([+-]?(?:\d+|\d*\.\d+))([a-z]*|%)$/;function xq(n){return typeof n!="string"?n:n.match(SEt)?parseFloat(n):n}var bq=function(n){return function(e,t){t===void 0&&(t="16px");var i=e,r=t;if(typeof e=="string"){if(!gq(e,"px"))throw new jr(69,n,e);i=xq(e)}if(typeof t=="string"){if(!gq(t,"px"))throw new jr(70,n,t);r=xq(t)}if(typeof i=="string")throw new jr(71,e,n);if(typeof r=="string")throw new jr(72,t,n);return""+i/r+n}};bq("em"),bq("rem");function x4(n){return Math.round(255*n)}function PEt(n,e,t){return x4(n)+","+x4(e)+","+x4(t)}function jg(n,e,t,i){if(i===void 0&&(i=PEt),e===0)return i(t,t,t);var r=(n%360+360)%360/60,s=(1-Math.abs(2*t-1))*e,o=s*(1-Math.abs(r%2-1)),a=0,c=0,l=0;r>=0&&r<1?(a=s,c=o):r>=1&&r<2?(a=o,c=s):r>=2&&r<3?(c=s,l=o):r>=3&&r<4?(c=o,l=s):r>=4&&r<5?(a=o,l=s):r>=5&&r<6&&(a=s,l=o);var u=t-s/2;return i(a+u,c+u,l+u)}var vq={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"00ffff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"0000ff",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"00ffff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"ff00ff",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"639",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},kEt=/^#[a-fA-F0-9]{6}$/,TEt=/^#[a-fA-F0-9]{8}$/,MEt=/^#[a-fA-F0-9]{3}$/,EEt=/^#[a-fA-F0-9]{4}$/,b4=/^rgb\(\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*\)$/i,CEt=/^rgb(?:a)?\(\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*(?:,|\/)\s*([-+]?\d*[.]?\d+[%]?)\s*\)$/i,IEt=/^hsl\(\s*(\d{0,3}[.]?[0-9]+(?:deg)?)\s*(?:,)?\s*(\d{1,3}[.]?[0-9]?)%\s*(?:,)?\s*(\d{1,3}[.]?[0-9]?)%\s*\)$/i,NEt=/^hsl(?:a)?\(\s*(\d{0,3}[.]?[0-9]+(?:deg)?)\s*(?:,)?\s*(\d{1,3}[.]?[0-9]?)%\s*(?:,)?\s*(\d{1,3}[.]?[0-9]?)%\s*(?:,|\/)\s*([-+]?\d*[.]?\d+[%]?)\s*\)$/i;function p_(n){if(typeof n!="string")throw new jr(3);var e=(function(f){if(typeof f!="string")return f;var _=f.toLowerCase();return vq[_]?"#"+vq[_]:f})(n);if(e.match(kEt))return{red:parseInt(""+e[1]+e[2],16),green:parseInt(""+e[3]+e[4],16),blue:parseInt(""+e[5]+e[6],16)};if(e.match(TEt)){var t=parseFloat((parseInt(""+e[7]+e[8],16)/255).toFixed(2));return{red:parseInt(""+e[1]+e[2],16),green:parseInt(""+e[3]+e[4],16),blue:parseInt(""+e[5]+e[6],16),alpha:t}}if(e.match(MEt))return{red:parseInt(""+e[1]+e[1],16),green:parseInt(""+e[2]+e[2],16),blue:parseInt(""+e[3]+e[3],16)};if(e.match(EEt)){var i=parseFloat((parseInt(""+e[4]+e[4],16)/255).toFixed(2));return{red:parseInt(""+e[1]+e[1],16),green:parseInt(""+e[2]+e[2],16),blue:parseInt(""+e[3]+e[3],16),alpha:i}}var r=b4.exec(e);if(r)return{red:parseInt(""+r[1],10),green:parseInt(""+r[2],10),blue:parseInt(""+r[3],10)};var s=CEt.exec(e.substring(0,50));if(s)return{red:parseInt(""+s[1],10),green:parseInt(""+s[2],10),blue:parseInt(""+s[3],10),alpha:parseFloat(""+s[4])>1?parseFloat(""+s[4])/100:parseFloat(""+s[4])};var o=IEt.exec(e);if(o){var a="rgb("+jg(parseInt(""+o[1],10),parseInt(""+o[2],10)/100,parseInt(""+o[3],10)/100)+")",c=b4.exec(a);if(!c)throw new jr(4,e,a);return{red:parseInt(""+c[1],10),green:parseInt(""+c[2],10),blue:parseInt(""+c[3],10)}}var l=NEt.exec(e.substring(0,50));if(l){var u="rgb("+jg(parseInt(""+l[1],10),parseInt(""+l[2],10)/100,parseInt(""+l[3],10)/100)+")",h=b4.exec(u);if(!h)throw new jr(4,e,u);return{red:parseInt(""+h[1],10),green:parseInt(""+h[2],10),blue:parseInt(""+h[3],10),alpha:parseFloat(""+l[4])>1?parseFloat(""+l[4])/100:parseFloat(""+l[4])}}throw new jr(5)}function Zc(n){return(function(e){var t,i=e.red/255,r=e.green/255,s=e.blue/255,o=Math.max(i,r,s),a=Math.min(i,r,s),c=(o+a)/2;if(o===a)return e.alpha!==void 0?{hue:0,saturation:0,lightness:c,alpha:e.alpha}:{hue:0,saturation:0,lightness:c};var l=o-a,u=c>.5?l/(2-o-a):l/(o+a);switch(o){case i:t=(r-s)/l+(r<s?6:0);break;case r:t=(s-i)/l+2;break;default:t=(i-r)/l+4}return t*=60,e.alpha!==void 0?{hue:t,saturation:u,lightness:c,alpha:e.alpha}:{hue:t,saturation:u,lightness:c}})(p_(n))}var R4=function(n){return n.length===7&&n[1]===n[2]&&n[3]===n[4]&&n[5]===n[6]?"#"+n[1]+n[3]+n[5]:n};function ad(n){var e=n.toString(16);return e.length===1?"0"+e:e}function v4(n){return ad(Math.round(255*n))}function AEt(n,e,t){return R4("#"+v4(n)+v4(e)+v4(t))}function Iw(n,e,t){return jg(n,e,t,AEt)}function O4(n,e,t){if(typeof n=="number"&&typeof e=="number"&&typeof t=="number")return R4("#"+ad(n)+ad(e)+ad(t));if(typeof n=="object"&&e===void 0&&t===void 0)return R4("#"+ad(n.red)+ad(n.green)+ad(n.blue));throw new jr(6)}function Jw(n,e,t,i){if(typeof n=="string"&&typeof e=="number"){var r=p_(n);return"rgba("+r.red+","+r.green+","+r.blue+","+e+")"}if(typeof n=="number"&&typeof e=="number"&&typeof t=="number"&&typeof i=="number")return i>=1?O4(n,e,t):"rgba("+n+","+e+","+t+","+i+")";if(typeof n=="object"&&e===void 0&&t===void 0&&i===void 0)return n.alpha>=1?O4(n.red,n.green,n.blue):"rgba("+n.red+","+n.green+","+n.blue+","+n.alpha+")";throw new jr(7)}function Kc(n){if(typeof n!="object")throw new jr(8);if((function(e){return typeof e.red=="number"&&typeof e.green=="number"&&typeof e.blue=="number"&&typeof e.alpha=="number"})(n))return Jw(n);if((function(e){return typeof e.red=="number"&&typeof e.green=="number"&&typeof e.blue=="number"&&(typeof e.alpha!="number"||e.alpha===void 0)})(n))return O4(n);if((function(e){return typeof e.hue=="number"&&typeof e.saturation=="number"&&typeof e.lightness=="number"&&typeof e.alpha=="number"})(n))return(function(e,t,i,r){if(typeof e=="number"&&typeof t=="number"&&typeof i=="number"&&typeof r=="number")return r>=1?Iw(e,t,i):"rgba("+jg(e,t,i)+","+r+")";if(typeof e=="object"&&t===void 0&&i===void 0&&r===void 0)return e.alpha>=1?Iw(e.hue,e.saturation,e.lightness):"rgba("+jg(e.hue,e.saturation,e.lightness)+","+e.alpha+")";throw new jr(2)})(n);if((function(e){return typeof e.hue=="number"&&typeof e.saturation=="number"&&typeof e.lightness=="number"&&(typeof e.alpha!="number"||e.alpha===void 0)})(n))return(function(e,t,i){if(typeof e=="number"&&typeof t=="number"&&typeof i=="number")return Iw(e,t,i);if(typeof e=="object"&&t===void 0&&i===void 0)return Iw(e.hue,e.saturation,e.lightness);throw new jr(1)})(n);throw new jr(8)}function Jq(n,e,t){return function(){var i=t.concat(Array.prototype.slice.call(arguments));return i.length>=e?n.apply(this,i):Jq(n,e,i)}}function ss(n){return Jq(n,n.length,[])}ss(function(n,e){if(e==="transparent")return e;var t=Zc(e);return Kc(Br({},t,{hue:t.hue+parseFloat(n)}))});function f_(n,e,t){return Math.max(n,Math.min(e,t))}ss(function(n,e){if(e==="transparent")return e;var t=Zc(e);return Kc(Br({},t,{lightness:f_(0,1,t.lightness-parseFloat(n))}))});ss(function(n,e){if(e==="transparent")return e;var t=Zc(e);return Kc(Br({},t,{saturation:f_(0,1,t.saturation-parseFloat(n))}))});ss(function(n,e){if(e==="transparent")return e;var t=Zc(e);return Kc(Br({},t,{lightness:f_(0,1,t.lightness+parseFloat(n))}))});var Qq=ss(function(n,e,t){if(e==="transparent")return t;if(t==="transparent")return e;if(n===0)return t;var i=p_(e),r=Br({},i,{alpha:typeof i.alpha=="number"?i.alpha:1}),s=p_(t),o=Br({},s,{alpha:typeof s.alpha=="number"?s.alpha:1}),a=r.alpha-o.alpha,c=2*parseFloat(n)-1,l=((c*a===-1?c:c+a)/(1+c*a)+1)/2,u=1-l;return Jw({red:Math.floor(r.red*l+o.red*u),green:Math.floor(r.green*l+o.green*u),blue:Math.floor(r.blue*l+o.blue*u),alpha:r.alpha*parseFloat(n)+o.alpha*(1-parseFloat(n))})});ss(function(n,e){if(e==="transparent")return e;var t=p_(e);return Jw(Br({},t,{alpha:f_(0,1,(100*(typeof t.alpha=="number"?t.alpha:1)+100*parseFloat(n))/100)}))});ss(function(n,e){if(e==="transparent")return e;var t=Zc(e);return Kc(Br({},t,{saturation:f_(0,1,t.saturation+parseFloat(n))}))});ss(function(n,e){return e==="transparent"?e:Kc(Br({},Zc(e),{hue:parseFloat(n)}))});ss(function(n,e){return e==="transparent"?e:Kc(Br({},Zc(e),{lightness:parseFloat(n)}))});ss(function(n,e){return e==="transparent"?e:Kc(Br({},Zc(e),{saturation:parseFloat(n)}))});ss(function(n,e){return e==="transparent"?e:Qq(parseFloat(n),"rgb(0, 0, 0)",e)});ss(function(n,e){return e==="transparent"?e:Qq(parseFloat(n),"rgb(255, 255, 255)",e)});var REt=ss(function(n,e){if(e==="transparent")return e;var t=p_(e);return Jw(Br({},t,{alpha:f_(0,1,+(100*(typeof t.alpha=="number"?t.alpha:1)-100*parseFloat(n)).toFixed(2)/100)}))}),wq=["blue","orange","purple","cyan","magenta","yellowgreen","darkgoldenrod","deeppink"],Bg=(n,e)=>{let t={};for(let i=0;i<n.connections.length;i++){let r=n.connections[i],s=e?.getNetConnectedToId(r.name);s&&!t[s]&&(t[s]=`hsl(${300*i/n.connections.length}, 100%, 50%)`),t[r.name]=(s?t[s]:null)??`hsl(${340*i/n.connections.length}, 100%, 50%)`}return t},Jn=(n,e)=>{try{return REt(e,n)}catch(t){return console.error(t),n}},ud=(n,e)=>n==="top"?0:n==="bottom"?e-1:parseInt(n.slice(5)),so=(n,e=1)=>{let t=(("width"in n?n.width:n)/.5/2)**1.1*e;return n.availableZ?.length===1&&t>1?1:t},Y4=(n,e=.5,t=16)=>{let i=0,r=n;for(;i<t&&!(so({width:r})<=e);)r/=2,i++;return Math.max(1,i)};function tZ(n,e,t=0,i=n.length-1,r=OEt){for(;i>t;){if(i-t>600){let c=i-t+1,l=e-t+1,u=Math.log(c),h=.5*Math.exp(2*u/3),f=.5*Math.sqrt(u*h*(c-h)/c)*(l-c/2<0?-1:1);tZ(n,e,Math.max(t,Math.floor(e-l*h/c+f)),Math.min(i,Math.floor(e+(c-l)*h/c+f)),r)}let s=n[e],o=t,a=i;for(Rg(n,t,e),r(n[i],s)>0&&Rg(n,t,i);o<a;){for(Rg(n,o,a),o++,a--;r(n[o],s)<0;)o++;for(;r(n[a],s)>0;)a--}r(n[t],s)===0?Rg(n,t,a):(a++,Rg(n,a,i)),a<=e&&(t=a+1),e<=a&&(i=a-1)}}function Rg(n,e,t){let i=n[e];n[e]=n[t],n[t]=i}function OEt(n,e){return n<e?-1:n>e?1:0}var LEt=class{constructor(n=9){this._maxEntries=Math.max(4,n),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()}all(){return this._all(this.data,[])}search(n){let e=this.data,t=[];if(!Aw(n,e))return t;let i=this.toBBox,r=[];for(;e;){for(let s=0;s<e.children.length;s++){let o=e.children[s],a=e.leaf?i(o):o;Aw(n,a)&&(e.leaf?t.push(o):S4(n,a)?this._all(o,t):r.push(o))}e=r.pop()}return t}collides(n){let e=this.data;if(!Aw(n,e))return!1;let t=[];for(;e;){for(let i=0;i<e.children.length;i++){let r=e.children[i],s=e.leaf?this.toBBox(r):r;if(Aw(n,s)){if(e.leaf||S4(n,s))return!0;t.push(r)}}e=t.pop()}return!1}load(n){if(!n||!n.length)return this;if(n.length<this._minEntries){for(let t=0;t<n.length;t++)this.insert(n[t]);return this}let e=this._build(n.slice(),0,n.length-1,0);if(this.data.children.length)if(this.data.height===e.height)this._splitRoot(this.data,e);else{if(this.data.height<e.height){let t=this.data;this.data=e,e=t}this._insert(e,this.data.height-e.height-1,!0)}else this.data=e;return this}insert(n){return n&&this._insert(n,this.data.height-1),this}clear(){return this.data=c_([]),this}remove(n,e){if(!n)return this;let t=this.data,i=this.toBBox(n),r=[],s=[],o,a,c;for(;t||r.length;){if(t||(t=r.pop(),a=r[r.length-1],o=s.pop(),c=!0),t.leaf){let l=FEt(n,t.children,e);if(l!==-1)return t.children.splice(l,1),r.push(t),this._condense(r),this}c||t.leaf||!S4(t,i)?a?(o++,t=a.children[o],c=!1):t=null:(r.push(t),s.push(o),o=0,a=t,t=t.children[0])}return this}toBBox(n){return n}compareMinX(n,e){return n.minX-e.minX}compareMinY(n,e){return n.minY-e.minY}toJSON(){return this.data}fromJSON(n){return this.data=n,this}_all(n,e){let t=[];for(;n;)n.leaf?e.push(...n.children):t.push(...n.children),n=t.pop();return e}_build(n,e,t,i){let r=t-e+1,s,o=this._maxEntries;if(r<=o)return s=c_(n.slice(e,t+1)),a_(s,this.toBBox),s;i||(i=Math.ceil(Math.log(r)/Math.log(o)),o=Math.ceil(r/Math.pow(o,i-1))),s=c_([]),s.leaf=!1,s.height=i;let a=Math.ceil(r/o),c=a*Math.ceil(Math.sqrt(o));Sq(n,e,t,c,this.compareMinX);for(let l=e;l<=t;l+=c){let u=Math.min(l+c-1,t);Sq(n,l,u,a,this.compareMinY);for(let h=l;h<=u;h+=a){let f=Math.min(h+a-1,u);s.children.push(this._build(n,h,f,i-1))}}return a_(s,this.toBBox),s}_chooseSubtree(n,e,t,i){for(;i.push(e),!e.leaf&&i.length-1!==t;){let r,s=1/0,o=1/0;for(let a=0;a<e.children.length;a++){let c=e.children[a],l=w4(c),u=DEt(n,c)-l;u<o?(o=u,s=l<s?l:s,r=c):u===o&&l<s&&(s=l,r=c)}e=r||e.children[0]}return e}_insert(n,e,t){let i=t?n:this.toBBox(n),r=[],s=this._chooseSubtree(i,this.data,e,r);for(s.children.push(n),Lg(s,i);e>=0&&r[e].children.length>this._maxEntries;)this._split(r,e),e--;this._adjustParentBBoxes(i,r,e)}_split(n,e){let t=n[e],i=t.children.length,r=this._minEntries;this._chooseSplitAxis(t,r,i);let s=this._chooseSplitIndex(t,r,i),o=c_(t.children.splice(s,t.children.length-s));o.height=t.height,o.leaf=t.leaf,a_(t,this.toBBox),a_(o,this.toBBox),e?n[e-1].children.push(o):this._splitRoot(t,o)}_splitRoot(n,e){this.data=c_([n,e]),this.data.height=n.height+1,this.data.leaf=!1,a_(this.data,this.toBBox)}_chooseSplitIndex(n,e,t){let i,r=1/0,s=1/0;for(let o=e;o<=t-e;o++){let a=Og(n,0,o,this.toBBox),c=Og(n,o,t,this.toBBox),l=jEt(a,c),u=w4(a)+w4(c);l<r?(r=l,i=o,s=u<s?u:s):l===r&&u<s&&(s=u,i=o)}return i||t-e}_chooseSplitAxis(n,e,t){let i=n.leaf?this.compareMinX:zEt,r=n.leaf?this.compareMinY:$Et;this._allDistMargin(n,e,t,i)<this._allDistMargin(n,e,t,r)&&n.children.sort(i)}_allDistMargin(n,e,t,i){n.children.sort(i);let r=this.toBBox,s=Og(n,0,e,r),o=Og(n,t-e,t,r),a=Nw(s)+Nw(o);for(let c=e;c<t-e;c++){let l=n.children[c];Lg(s,n.leaf?r(l):l),a+=Nw(s)}for(let c=t-e-1;c>=e;c--){let l=n.children[c];Lg(o,n.leaf?r(l):l),a+=Nw(o)}return a}_adjustParentBBoxes(n,e,t){for(let i=t;i>=0;i--)Lg(e[i],n)}_condense(n){for(let e,t=n.length-1;t>=0;t--)n[t].children.length===0?t>0?(e=n[t-1].children,e.splice(e.indexOf(n[t]),1)):this.clear():a_(n[t],this.toBBox)}};function FEt(n,e,t){if(!t)return e.indexOf(n);for(let i=0;i<e.length;i++)if(t(n,e[i]))return i;return-1}function a_(n,e){Og(n,0,n.children.length,e,n)}function Og(n,e,t,i,r){r||(r=c_(null)),r.minX=1/0,r.minY=1/0,r.maxX=-1/0,r.maxY=-1/0;for(let s=e;s<t;s++){let o=n.children[s];Lg(r,n.leaf?i(o):o)}return r}function Lg(n,e){return n.minX=Math.min(n.minX,e.minX),n.minY=Math.min(n.minY,e.minY),n.maxX=Math.max(n.maxX,e.maxX),n.maxY=Math.max(n.maxY,e.maxY),n}function zEt(n,e){return n.minX-e.minX}function $Et(n,e){return n.minY-e.minY}function w4(n){return(n.maxX-n.minX)*(n.maxY-n.minY)}function Nw(n){return n.maxX-n.minX+(n.maxY-n.minY)}function DEt(n,e){return(Math.max(e.maxX,n.maxX)-Math.min(e.minX,n.minX))*(Math.max(e.maxY,n.maxY)-Math.min(e.minY,n.minY))}function jEt(n,e){let t=Math.max(n.minX,e.minX),i=Math.max(n.minY,e.minY),r=Math.min(n.maxX,e.maxX),s=Math.min(n.maxY,e.maxY);return Math.max(0,r-t)*Math.max(0,s-i)}function S4(n,e){return n.minX<=e.minX&&n.minY<=e.minY&&e.maxX<=n.maxX&&e.maxY<=n.maxY}function Aw(n,e){return e.minX<=n.maxX&&e.minY<=n.maxY&&e.maxX>=n.minX&&e.maxY>=n.minY}function c_(n){return{children:n,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function Sq(n,e,t,i,r){let s=[e,t];for(;s.length;){if((t=s.pop())-(e=s.pop())<=i)continue;let o=e+Math.ceil((t-e)/i/2)*i;tZ(n,o,e,t,r),s.push(e,o,o,t)}}var Pq=class{constructor(n=9){d(this,"tree");this.tree=new LEt(n)}insert(n,e,t,i,r){this.tree.insert({minX:e,minY:t,maxX:i,maxY:r,data:n})}bulkLoad(n){let e=n.map(({item:t,minX:i,minY:r,maxX:s,maxY:o})=>({minX:i,minY:r,maxX:s,maxY:o,data:t}));this.tree.load(e)}search(n,e,t,i){return this.tree.search({minX:n,minY:e,maxX:t,maxY:i}).map(r=>r.data)}clear(){this.tree.clear()}},BEt=class{constructor(){this.ids=[],this.values=[],this.length=0}clear(){this.length=0}push(n,e){let t=this.length++;for(;t>0;){let i=t-1>>1,r=this.values[i];if(e>=r)break;this.ids[t]=this.ids[i],this.values[t]=r,t=i}this.ids[t]=n,this.values[t]=e}pop(){if(this.length===0)return;let n=this.ids,e=this.values,t=n[0],i=--this.length;if(i>0){let r=n[i],s=e[i],o=0,a=i>>1;for(;o<a;){let c=1+(o<<1),l=c+1,u=c+(+(l<i)&+(e[l]<e[c]));if(e[u]>=s)break;n[o]=n[u],e[o]=e[u],o=u}n[o]=r,e[o]=s}return t}peek(){return this.length>0?this.ids[0]:void 0}peekValue(){return this.length>0?this.values[0]:void 0}shrink(){this.ids.length=this.values.length=this.length}},kq=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],Tq=class eZ{static from(e,t=0){if(t%8!=0)throw new Error("byteOffset must be 8-byte aligned.");if(!e||e.byteLength===void 0||e.buffer)throw new Error("Data must be an instance of ArrayBuffer or SharedArrayBuffer.");let[i,r]=new Uint8Array(e,t+0,2);if(i!==251)throw new Error("Data does not appear to be in a Flatbush format.");let s=r>>4;if(s!==3)throw new Error(`Got v${s} data when expected v3.`);let o=kq[15&r];if(!o)throw new Error("Unrecognized array type.");let[a]=new Uint16Array(e,t+2,1),[c]=new Uint32Array(e,t+4,1);return new eZ(c,a,o,void 0,e,t)}constructor(e,t=16,i=Float64Array,r=ArrayBuffer,s,o=0){if(e===void 0)throw new Error("Missing required argument: numItems.");if(isNaN(e)||e<=0)throw new Error(`Unexpected numItems value: ${e}.`);this.numItems=+e,this.nodeSize=Math.min(Math.max(+t,2),65535),this.byteOffset=o;let a=e,c=a;this._levelBounds=[4*a];do a=Math.ceil(a/this.nodeSize),c+=a,this._levelBounds.push(4*c);while(a!==1);this.ArrayType=i,this.IndexArrayType=c<16384?Uint16Array:Uint32Array;let l=kq.indexOf(i),u=4*c*i.BYTES_PER_ELEMENT;if(l<0)throw new Error(`Unexpected typed array class: ${i}.`);if(s)this.data=s,this._boxes=new i(s,o+8,4*c),this._indices=new this.IndexArrayType(s,o+8+u,c),this._pos=4*c,this.minX=this._boxes[this._pos-4],this.minY=this._boxes[this._pos-3],this.maxX=this._boxes[this._pos-2],this.maxY=this._boxes[this._pos-1];else{let h=this.data=new r(8+u+c*this.IndexArrayType.BYTES_PER_ELEMENT);this._boxes=new i(h,8,4*c),this._indices=new this.IndexArrayType(h,8+u,c),this._pos=0,this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0,new Uint8Array(h,0,2).set([251,48+l]),new Uint16Array(h,2,1)[0]=t,new Uint32Array(h,4,1)[0]=e}this._queue=new BEt}add(e,t,i=e,r=t){let s=this._pos>>2,o=this._boxes;return this._indices[s]=s,o[this._pos++]=e,o[this._pos++]=t,o[this._pos++]=i,o[this._pos++]=r,e<this.minX&&(this.minX=e),t<this.minY&&(this.minY=t),i>this.maxX&&(this.maxX=i),r>this.maxY&&(this.maxY=r),s}finish(){if(this._pos>>2!==this.numItems)throw new Error(`Added ${this._pos>>2} items when expected ${this.numItems}.`);let e=this._boxes;if(this.numItems<=this.nodeSize)return e[this._pos++]=this.minX,e[this._pos++]=this.minY,e[this._pos++]=this.maxX,void(e[this._pos++]=this.maxY);let t=this.maxX-this.minX||1,i=this.maxY-this.minY||1,r=new Uint32Array(this.numItems);for(let s=0,o=0;s<this.numItems;s++){let a=e[o++],c=e[o++],l=e[o++],u=e[o++],h=Math.floor(65535*((a+l)/2-this.minX)/t),f=Math.floor(65535*((c+u)/2-this.minY)/i);r[s]=XEt(h,f)}L4(r,e,this._indices,0,this.numItems-1,this.nodeSize);for(let s=0,o=0;s<this._levelBounds.length-1;s++){let a=this._levelBounds[s];for(;o<a;){let c=o,l=e[o++],u=e[o++],h=e[o++],f=e[o++];for(let _=1;_<this.nodeSize&&o<a;_++)l=Math.min(l,e[o++]),u=Math.min(u,e[o++]),h=Math.max(h,e[o++]),f=Math.max(f,e[o++]);this._indices[this._pos>>2]=c,e[this._pos++]=l,e[this._pos++]=u,e[this._pos++]=h,e[this._pos++]=f}}}search(e,t,i,r,s){if(this._pos!==this._boxes.length)throw new Error("Data not yet indexed - call index.finish().");let o=this._boxes.length-4,a=[],c=[];for(;o!==void 0;){let l=Math.min(o+4*this.nodeSize,Mq(o,this._levelBounds));for(let u=o;u<l;u+=4){let h=this._boxes[u];if(i<h)continue;let f=this._boxes[u+1];if(r<f)continue;let _=this._boxes[u+2];if(e>_)continue;let g=this._boxes[u+3];if(t>g)continue;let x=0|this._indices[u>>2];o>=4*this.numItems?a.push(x):(s===void 0||s(x,h,f,_,g))&&c.push(x)}o=a.pop()}return c}neighbors(e,t,i=1/0,r=1/0,s){if(this._pos!==this._boxes.length)throw new Error("Data not yet indexed - call index.finish().");let o=this._boxes.length-4,a=this._queue,c=[],l=r*r;t:for(;o!==void 0;){let u=Math.min(o+4*this.nodeSize,Mq(o,this._levelBounds));for(let h=o;h<u;h+=4){let f=0|this._indices[h>>2],_=this._boxes[h],g=this._boxes[h+1],x=this._boxes[h+2],v=this._boxes[h+3],P=e<_?_-e:e>x?e-x:0,S=t<g?g-t:t>v?t-v:0,T=P*P+S*S;T>l||(o>=4*this.numItems?a.push(f<<1,T):(s===void 0||s(f))&&a.push(1+(f<<1),T))}for(;a.length&&1&a.peek();)if(a.peekValue()>l||(c.push(a.pop()>>1),c.length===i))break t;o=a.length?a.pop()>>1:void 0}return a.clear(),c}};function Mq(n,e){let t=0,i=e.length-1;for(;t<i;){let r=t+i>>1;e[r]>n?i=r:t=r+1}return e[t]}function L4(n,e,t,i,r,s){if(Math.floor(i/s)>=Math.floor(r/s))return;let o=n[i],a=n[i+r>>1],c=n[r],l=c,u=Math.max(o,a);c>u?l=u:u===o?l=Math.max(a,c):u===a&&(l=Math.max(o,c));let h=i-1,f=r+1;for(;;){do h++;while(n[h]<l);do f--;while(n[f]>l);if(h>=f)break;YEt(n,e,t,h,f)}L4(n,e,t,i,f,s),L4(n,e,t,f+1,r,s)}function YEt(n,e,t,i,r){let s=n[i];n[i]=n[r],n[r]=s;let o=4*i,a=4*r,c=e[o],l=e[o+1],u=e[o+2],h=e[o+3];e[o]=e[a],e[o+1]=e[a+1],e[o+2]=e[a+2],e[o+3]=e[a+3],e[a]=c,e[a+1]=l,e[a+2]=u,e[a+3]=h;let f=t[i];t[i]=t[r],t[r]=f}function XEt(n,e){let t=n^e,i=65535^t,r=65535^(n|e),s=n&(65535^e),o=t|i>>1,a=t>>1^t,c=r>>1^i&s>>1^r,l=t&r>>1^s>>1^s;t=o,i=a,r=c,s=l,o=t&t>>2^i&i>>2,a=t&i>>2^i&(t^i)>>2,c^=t&r>>2^i&s>>2,l^=i&r>>2^(t^i)&s>>2,t=o,i=a,r=c,s=l,o=t&t>>4^i&i>>4,a=t&i>>4^i&(t^i)>>4,c^=t&r>>4^i&s>>4,l^=i&r>>4^(t^i)&s>>4,t=o,i=a,r=c,s=l,c^=t&r>>8^i&s>>8,l^=i&r>>8^(t^i)&s>>8,t=c^c>>1,i=l^l>>1;let u=n^e,h=i|65535^(u|t);return u=16711935&(u|u<<8),u=252645135&(u|u<<4),u=858993459&(u|u<<2),u=1431655765&(u|u<<1),h=16711935&(h|h<<8),h=252645135&(h|h<<4),h=858993459&(h|h<<2),h=1431655765&(h|h<<1),(h<<1|u)>>>0}var UEt=class{constructor(n){d(this,"index");d(this,"items",[]);d(this,"currentIndex",0);d(this,"capacity");this.capacity=Math.max(1,n),this.index=new Tq(this.capacity)}insert(n,e,t,i,r){if(this.currentIndex>=this.index.numItems)throw new Error("Exceeded initial capacity");this.items[this.currentIndex]=n,this.index.add(e,t,i,r),this.currentIndex++}finish(){this.index.finish()}search(n,e,t,i){return this.index.search(n,e,t,i).map(r=>this.items[r]||null).filter(Boolean)}clear(){this.items=[],this.currentIndex=0,this.index=new Tq(this.capacity)}},nZ=class{constructor(n="native",e=[]){d(this,"idx");d(this,"storage",[]);n==="flatbush"?e.length===0?(this.idx=new Pq,n="rbush"):this.idx=new UEt(e.length):this.idx=n==="rbush"?new Pq:new class{constructor(){d(this,"shi",new VEt(e))}insert(t){}search(t,i,r,s){let o=(t+r)/2,a=(i+s)/2,c=r-t,l=s-i;return this.shi.getNodesInArea(o,a,c,l)}clear(){}},e.forEach(t=>this.insert(t)),n==="flatbush"&&e.length>0&&this.idx.finish?.()}insert(n){this.storage.push(n),this.idx.insert(n,n.center.x-n.width/2,n.center.y-n.height/2,n.center.x+n.width/2,n.center.y+n.height/2)}search(n){return this.idx.search(n.minX,n.minY,n.maxX,n.maxY)}searchArea(n,e,t,i){return this.search({minX:n-t/2,minY:e-i/2,maxX:n+t/2,maxY:e+i/2})}},VEt=class{constructor(n){d(this,"buckets");d(this,"CELL_SIZE",.4);this.obstacles=n,this.buckets=new Map;for(let e=0;e<n.length;e++){let t=n[e],i=t.center.x-t.width/2,r=t.center.y-t.height/2,s=t.center.x+t.width/2,o=t.center.y+t.height/2;for(let a=i;a<=s;a+=this.CELL_SIZE)for(let c=r;c<=o;c+=this.CELL_SIZE){let l=this.getBucketKey(a,c),u=this.buckets.get(l);u?u.push([t,e]):this.buckets.set(l,[[t,e]])}}}getBucketKey(n,e){return`${Math.floor(n/this.CELL_SIZE)}x${Math.floor(e/this.CELL_SIZE)}`}getNodesInArea(n,e,t,i){let r=[],s=new Set,o=e-i/2,a=n+t/2,c=e+i/2;for(let l=n-t/2;l<=a;l+=this.CELL_SIZE)for(let u=o;u<=c;u+=this.CELL_SIZE){let h=this.getBucketKey(l,u),f=this.buckets.get(h)||[];for(let _ of f)s.has(_[1])||(s.add(_[1]),r.push(_[0]))}return r}},GEt=class{constructor(n){d(this,"buckets");d(this,"CELL_SIZE",5);this.targets=n,this.buckets=new Map;for(let e=0;e<n.length;e++){let t=n[e],i=Math.floor(t.bounds.minX/this.CELL_SIZE)*this.CELL_SIZE,r=Math.floor(t.bounds.minY/this.CELL_SIZE)*this.CELL_SIZE,s=t.bounds.maxX,o=t.bounds.maxY;for(let a=i;a<=s;a+=this.CELL_SIZE)for(let c=r;c<=o;c+=this.CELL_SIZE){let l=this.getBucketKey(a,c),u=this.buckets.get(l);u?u.push([t,e]):this.buckets.set(l,[[t,e]])}}}getBucketKey(n,e){return`${Math.floor(n/this.CELL_SIZE)}x${Math.floor(e/this.CELL_SIZE)}`}getTargetsInArea(n,e,t,i){let r=[],s=new Set,o=Math.floor((n-t/2)/this.CELL_SIZE)*this.CELL_SIZE,a=Math.floor((e-i/2)/this.CELL_SIZE)*this.CELL_SIZE,c=n+t/2,l=e+i/2;for(let u=o;u<=c;u+=this.CELL_SIZE)for(let h=a;h<=l;h+=this.CELL_SIZE){let f=this.getBucketKey(u,h),_=this.buckets.get(f)||[];for(let g of _)s.has(g[1])||(s.add(g[1]),r.push(g[0]))}return r}},HEt=class extends an{constructor(e,t={}){super();d(this,"unfinishedNodes");d(this,"finishedNodes");d(this,"nodeToXYOverlappingObstaclesMap");d(this,"layerCount");d(this,"outlinePolygon");d(this,"MAX_DEPTH",4);d(this,"targets");d(this,"targetTree");d(this,"obstacleTree");d(this,"_nextNodeCounter",0);this.srj=e,this.opts=t,this.MAX_DEPTH=t?.capacityDepth??this.MAX_DEPTH,this.MAX_ITERATIONS=1e5,this.layerCount=e.layerCount??2,this.outlinePolygon=e.outline&&e.outline.length>=3?e.outline:void 0;for(let o of e.obstacles)if(!o.zLayers){let a=[];for(let c of o.layers)a.push(ud(c,e.layerCount));o.zLayers=a}let i={x:(e.bounds.minX+e.bounds.maxX)/2,y:(e.bounds.minY+e.bounds.maxY)/2},r={width:e.bounds.maxX-e.bounds.minX,height:e.bounds.maxY-e.bounds.minY},s=Math.max(r.width,r.height);this.unfinishedNodes=[{capacityMeshNodeId:this.getNextNodeId(),center:i,width:s,height:s,layer:"top",availableZ:Array.from({length:this.layerCount},(o,a)=>a),_depth:0,_containsTarget:!0,_containsObstacle:!0,_completelyInsideObstacle:!1}],this.finishedNodes=[],this.nodeToXYOverlappingObstaclesMap=new Map,this.obstacleTree=new nZ("flatbush",this.srj.obstacles),this.targets=this.computeTargets(),this.targetTree=new GEt(this.targets)}computeTargets(){let e=[];for(let t of this.srj.connections)for(let i of t.pointsToConnect){let r=this.obstacleTree.searchArea(i.x,i.y,.01,.01).filter(a=>a.zLayers.some(c=>c===ud(i.layer,this.layerCount))),s={minX:i.x-.005,minY:i.y-.005,maxX:i.x+.005,maxY:i.y+.005};r.length>0&&(s={minX:Math.min(...r.map(a=>a.center.x-a.width/2)),minY:Math.min(...r.map(a=>a.center.y-a.height/2)),maxX:Math.max(...r.map(a=>a.center.x+a.width/2)),maxY:Math.max(...r.map(a=>a.center.y+a.height/2))});let o={...i,connectionName:t.name,availableZ:[ud(i.layer,this.layerCount)],bounds:s};e.push(o)}return e}getNodeBounds(e){let t=e.width/2,i=e.height/2;return{minX:e.center.x-t,maxX:e.center.x+t,minY:e.center.y-i,maxY:e.center.y+i}}getNodeRect(e){return{center:{x:e.center.x,y:e.center.y},width:e.width,height:e.height}}getNextNodeId(){return"cn"+this._nextNodeCounter++}getCapacityFromDepth(e){return(this.MAX_DEPTH-e+1)**2}getTargetIfNodeContainsTarget(e){let t=e.width>4*this.targetTree.CELL_SIZE?this.targets:this.targetTree.getTargetsInArea(e.center.x,e.center.y,e.width,e.height);for(let i of t)if(i.bounds.minX<=e.center.x+e.width/2&&i.bounds.maxX>=e.center.x-e.width/2&&i.bounds.minY<=e.center.y+e.height/2&&i.bounds.maxY>=e.center.y-e.height/2&&i.availableZ.some(r=>e.availableZ.includes(r)))return i;return null}getXYOverlappingObstacles(e){let t=this.nodeToXYOverlappingObstaclesMap.get(e.capacityMeshNodeId);if(t)return t;let i=[],r=this.getNodeBounds(e),s=r.minX,o=r.maxX,a=r.minY,c=r.maxY,l=e._parent?this.getXYOverlappingObstacles(e._parent):this.srj.obstacles;for(let u of l){let h=u.center.x-u.width/2,f=u.center.x+u.width/2,_=u.center.y-u.height/2,g=u.center.y+u.height/2;(o>=h&&s<=f&&c>=_&&a<=g||s>=h&&o<=f&&a>=_&&c<=g||h>=s&&f<=o&&_>=a&&g<=c)&&i.push(u)}return this.nodeToXYOverlappingObstaclesMap.set(e.capacityMeshNodeId,i),i}getXYZOverlappingObstacles(e){let t=this.getXYOverlappingObstacles(e),i=[];for(let r of t)e.availableZ.some(s=>r.zLayers.includes(s))&&i.push(r);return i}doesNodeOverlapObstacle(e){if(this.getXYZOverlappingObstacles(e).length>0)return!0;let t=this.getNodeBounds(e);if(this.outlinePolygon){let i=this.getNodeRect(e);if(!Wq(i,this.outlinePolygon))return!0}return t.minX<this.srj.bounds.minX||t.maxX>this.srj.bounds.maxX||t.minY<this.srj.bounds.minY||t.maxY>this.srj.bounds.maxY}isNodeCompletelyInsideObstacle(e){let t=this.getXYZOverlappingObstacles(e),i=this.getNodeBounds(e);if(this.outlinePolygon){let r=this.getNodeRect(e);if(!I4(r,this.outlinePolygon))return!0}for(let r of t){let s=r.center.x-r.width/2,o=r.center.x+r.width/2,a=r.center.y-r.height/2,c=r.center.y+r.height/2;if(i.minX>=s&&i.maxX<=o&&i.minY>=a&&i.maxY<=c)return!0}return!1}getChildNodes(e){if(e._depth===this.MAX_DEPTH)return[];let t=[],i={width:e.width/2,height:e.height/2},r=[{x:e.center.x-i.width/2,y:e.center.y-i.height/2},{x:e.center.x+i.width/2,y:e.center.y-i.height/2},{x:e.center.x-i.width/2,y:e.center.y+i.height/2},{x:e.center.x+i.width/2,y:e.center.y+i.height/2}];for(let s of r){let o={capacityMeshNodeId:this.getNextNodeId(),center:s,width:i.width,height:i.height,layer:e.layer,availableZ:e.availableZ,_depth:(e._depth??0)+1,_parent:e};o._containsObstacle=this.doesNodeOverlapObstacle(o);let a=this.getTargetIfNodeContainsTarget(o);a&&(o._targetConnectionName=a.connectionName,o.availableZ=a.availableZ,o._containsTarget=!0),o._containsObstacle&&(o._completelyInsideObstacle=this.isNodeCompletelyInsideObstacle(o)),o._completelyInsideObstacle&&!o._containsTarget||t.push(o)}return t}shouldNodeBeXYSubdivided(e){return!(e._depth>=this.MAX_DEPTH)&&(!!e._containsTarget||!(!e._containsObstacle||e._completelyInsideObstacle))}_step(){let e=this.unfinishedNodes.pop();if(!e)return void(this.solved=!0);let t=this.getChildNodes(e),i=[],r=[];for(let s of t){let o=this.shouldNodeBeXYSubdivided(s);o?r.push(s):o||s._containsObstacle?!o&&s._containsTarget&&i.push(s):i.push(s)}this.unfinishedNodes.push(...r),this.finishedNodes.push(...i)}visualize(){let e={lines:[],points:[],rects:[],circles:[],coordinateSystem:"cartesian",title:"Capacity Mesh Visualization"};if(this.outlinePolygon&&this.outlinePolygon.length>=2){let i=this.outlinePolygon.map(r=>({x:r.x,y:r.y}));i.push({...i[0]}),e.lines.push({points:i,strokeColor:"rgba(0, 136, 255, 0.95)",label:"outline"});for(let r of this.outlinePolygon)e.points.push({x:r.x,y:r.y,color:"rgba(0, 136, 255, 0.95)"})}for(let i of this.srj.obstacles)e.rects.push({center:i.center,width:i.width,height:i.height,fill:i.zLayers?.length===1&&i.zLayers?.includes(1)?"rgba(0,0,255,0.3)":"rgba(255,0,0,0.3)",stroke:"red",label:["obstacle",`z: ${i.zLayers.join(",")}`].join(`
|
|
162
162
|
`)});let t=[...this.finishedNodes,...this.unfinishedNodes];for(let i of t){let r=Math.min(...i.availableZ),s=this.unfinishedNodes.length>0&&i===this.unfinishedNodes[this.unfinishedNodes.length-1];e.rects.push({center:{x:i.center.x+r*i.width*.05,y:i.center.y-r*i.width*.05},width:Math.max(i.width-2,.8*i.width),height:Math.max(i.height-2,.8*i.height),fill:i._containsObstacle?"rgba(255,0,0,0.1)":{"0,1":"rgba(0,0,0,0.1)",0:"rgba(0,200,200, 0.1)",1:"rgba(0,0,200, 0.1)"}[i.availableZ.join(",")]??"rgba(0,200,200,0.1)",stroke:s?"rgba(255,165,0,0.5)":void 0,label:[i.capacityMeshNodeId,`availableZ: ${i.availableZ.join(",")}`,`target? ${i._containsTarget??!1}`,`obs? ${i._containsObstacle??!1}`,`${i.width.toFixed(2)}x${i.height.toFixed(2)}`,`capacity: ${so(i).toFixed(2)}`].join(`
|
|
@@ -251,7 +251,7 @@ ${o}`)}catch(c){Ba(`Failed to convert circuit JSON to SPICE: ${c}`);return}for(l
|
|
|
251
251
|
`),a={x:t.center.x+t.width/2-.25,y:t.center.y-t.height/2+1};this.root.db.pcb_silkscreen_text.insert({pcb_component_id:this.pcb_board_id,layer:"top",font:"tscircuit2024",font_size:.45,text:r,ccw_rotation:0,anchor_alignment:"bottom_right",anchor_position:a})}doInitialSourceRender(){super.doInitialSourceRender();let{db:e}=this.root,t=e.source_board.insert({source_group_id:this.source_group_id,title:this.props.title||this.props.name});this.source_board_id=t.source_board_id}doInitialPcbComponentRender(){if(this.root?.pcbDisabled)return;let{db:e}=this.root,{_parsedProps:t}=this,i=t.width??0,r=t.height??0,s={x:(t.pcbX??0)+(t.outlineOffsetX??0),y:(t.pcbY??0)+(t.outlineOffsetY??0)},{boardAnchorPosition:o,boardAnchorAlignment:a}=t;if(o&&(s=lLt({boardAnchorPosition:o,boardAnchorAlignment:a??"center",width:i,height:r})),t.outline){let u=t.outline.map(v=>v.x),h=t.outline.map(v=>v.y),f=Math.min(...u),_=Math.max(...u),g=Math.min(...h),x=Math.max(...h);i=_-f,r=x-g,s={x:(f+_)/2+(t.outlineOffsetX??0),y:(g+x)/2+(t.outlineOffsetY??0)}}let c=t.outline;!c&&t.borderRadius!=null&&i>0&&r>0&&(c=$et(i,r,t.borderRadius));let l=e.pcb_board.insert({center:s,thickness:this.boardThickness,num_layers:this.allLayers.length,width:i,height:r,outline:c?.map(u=>({x:u.x+(t.outlineOffsetX??0),y:u.y+(t.outlineOffsetY??0)})),material:t.material});this.pcb_board_id=l.pcb_board_id,this._addBoardInformationToSilkscreen()}removePcbComponentRender(){let{db:e}=this.root;this.pcb_board_id&&(e.pcb_board.delete(this.pcb_board_id),this.pcb_board_id=null)}doInitialPcbDesignRuleChecks(){this.root?.pcbDisabled||this.getInheritedProperty("routingDisabled")||super.doInitialPcbDesignRuleChecks()}updatePcbDesignRuleChecks(){if(this.root?.pcbDisabled||this.getInheritedProperty("routingDisabled"))return;let{db:e}=this.root;if(!this._areChildSubcircuitsRouted()||this._drcChecksComplete)return;this._drcChecksComplete=!0;let t=jQ(e.toArray());for(let u of t)e.pcb_trace_error.insert(u);let i=DQ(e.toArray());for(let u of i)e.pcb_port_not_connected_error.insert(u);let r=XQ(e.toArray());for(let u of r)e.pcb_component_outside_board_error.insert(u);let s=GQ(e.toArray());for(let u of s)e.pcb_trace_error.insert(u);let o=VQ(e.toArray());for(let u of o)e.pcb_via_clearance_error.insert(u);let a=UQ(e.toArray());for(let u of a)e.pcb_via_clearance_error.insert(u);let c=HQ(e.toArray());for(let u of c)e.pcb_footprint_overlap_error.insert(u);let l=WQ(e.toArray());for(let u of l)e.source_pin_must_be_connected_error.insert(u)}_emitRenderLifecycleEvent(e,t){super._emitRenderLifecycleEvent(e,t),t==="start"&&this.root?.emit("board:renderPhaseStarted",{renderId:this._renderId,phase:e})}},Det=5,c7t=5,jet=2;function l7t(n,e){let t=n.center.x-n.width/2,i=n.center.x+n.width/2,r=n.center.y-n.height/2,s=n.center.y+n.height/2,o=e.center.x-e.width/2,a=e.center.x+e.width/2,c=e.center.y-e.height/2,l=e.center.y+e.height/2;return!(i<=o||t>=a||s<=c||r>=l)}function u7t(n,e,t){let i=t.center.x-t.width/2,r=t.center.x+t.width/2,s=t.center.y-t.height/2,o=t.center.y+t.height/2,a=Math.max(i,Math.min(n.x,r)),c=Math.max(s,Math.min(n.y,o)),l=n.x-a,u=n.y-c;return l*l+u*u<=e*e}function p7t({board:n,edge:e,otherBoards:t,options:i}){let r=[];if(!n.width||!n.height)return r;let s=n.center.x-n.width/2,o=n.center.x+n.width/2,a=n.center.y-n.height/2,c=n.center.y+n.height/2,l,u,h;e==="top"||e==="bottom"?(l=n.width,u=!0,h=e==="top"?c:a):(l=n.height,u=!1,h=e==="right"?o:s);let f=i.tabLength,_=i.boardGap;if(i.mouseBites){let S=i.tabWidth*.45,T=S*.1,k=Math.max(2,Math.ceil(i.tabLength/2));_=(k*S+(k-1)*T)*1.1}let g=Math.floor((l-_)/(f+_));if(g<1&&l>=f&&(g=1),g===0)return r;let x=_,v=-l/2,P=l/2;for(let S=0;S<g;S++){let T=v+x+S*(f+x)+f/2,k=S===0,C=S===g-1,M=k||C,I=T-f/2,E=T+f/2;if(M&&(k&&(I=v),C&&(E=P)),I=Math.max(I,v),E=Math.min(E,P),M&&(k&&(I-=i.tabWidth),C&&(E+=i.tabWidth)),E<=I)continue;let A=(I+E)/2,R=E-I,j=e==="top"||e==="right"?i.tabWidth/2:-i.tabWidth/2,B=u?{x:n.center.x+A,y:h+j}:{x:h+j,y:n.center.y+A},V=u?R:i.tabWidth,U=u?i.tabWidth:R,H={center:B,width:V,height:U,boardId:`${n.center.x}_${n.center.y}`},et=!1;for(let tt of t){if(!tt.width||!tt.height)continue;let _t={center:tt.center,width:tt.width,height:tt.height};if(l7t(H,_t)){et=!0;break}}et&&!M||r.push(H)}return r}function h7t({board:n,edge:e,edgeTabs:t,allBoards:i,options:r}){let s=[];if(t.length===0||!n.width||!n.height)return s;let o=n.center.x-n.width/2,a=n.center.x+n.width/2,c=n.center.y-n.height/2,l=n.center.y+n.height/2,u=e==="top"||e==="bottom",h=r.tabWidth*.45,f=h*.1,_=Math.max(2,Math.ceil(r.tabLength/2)),g,x=h/2;e==="top"?g=l:e==="bottom"?g=c:e==="right"?g=a:g=o;let v=[...t].sort((P,S)=>u?P.center.x-S.center.x:P.center.y-S.center.y);for(let P=0;P<v.length-1;P++){let S=v[P],T=v[P+1],k,C;u?(k=S.center.x+S.width/2,C=T.center.x-T.width/2):(k=S.center.y+S.height/2,C=T.center.y-T.height/2);let M=C-k,I=_*h,E=(_-1)*f;if(M<I+E)continue;let A=(k+C)/2;for(let R=0;R<_;R++){let j=(R-(_-1)/2)*(h+f),B=u?{x:A+j,y:g}:{x:g,y:A+j},V=h/2,U=!1;for(let H of i){if(!H.width||!H.height)continue;let et={center:H.center,width:H.width,height:H.height};if(u7t(B,V,et)){U=!0;break}}U||s.push(B)}}return s}function d7t(n,e){let t=[],i=[];for(let a=0;a<n.length;a++){let c=n[a],l=n.filter((u,h)=>h!==a);for(let u of["top","bottom","left","right"]){let h=p7t({board:c,edge:u,otherBoards:l,options:e});if(t.push(...h),e.mouseBites){let f=h7t({board:c,edge:u,edgeTabs:h,allBoards:l,options:e});i.push(...f)}}}let r=t.map((a,c)=>{let l=Math.min(a.width,a.height);return{type:"pcb_cutout",pcb_cutout_id:`panel_tab_${c}`,shape:"rect",center:a.center,width:a.width,height:a.height,corner_radius:l/2}}),s=e.tabWidth*.45,o=i.map((a,c)=>({type:"pcb_hole",pcb_hole_id:`panel_mouse_bite_${c}`,hole_shape:"circle",hole_diameter:s,x:a.x,y:a.y}));return{tabCutouts:r,mouseBiteHoles:o}}var ynt=class extends ml{constructor(){super(...arguments);d(this,"pcb_panel_id",null);d(this,"_tabsAndMouseBitesGenerated",!1)}get config(){return{componentName:"Panel",zodProps:EH}}get isGroup(){return!0}get isSubcircuit(){return!0}add(e){if(e.lowercaseComponentName!=="board")throw new Error("<panel> can only contain <board> elements");super.add(e)}doInitialPcbComponentAnchorAlignment(){if(this.root?.pcbDisabled)return;super.doInitialPcbComponentAnchorAlignment();let{db:e}=this.root,t=this.children.filter(a=>a instanceof y9),i=t.some(a=>a.props.pcbX!==void 0||a.props.pcbY!==void 0),r=t.filter(a=>a.props.pcbX===void 0&&a.props.pcbY===void 0);if(r.length>0&&!i){let a=this._parsedProps.tabWidth??jet,c=this._parsedProps.boardGap??a,l=Math.ceil(Math.sqrt(r.length)),u=Math.ceil(r.length/l),h=Array(l).fill(0),f=Array(u).fill(0);r.forEach((A,R)=>{let j=R%l,B=Math.floor(R/l),V=e.pcb_board.get(A.pcb_board_id);!V||V.width===void 0||V.height===void 0||(h[j]=Math.max(h[j],V.width),f[B]=Math.max(f[B],V.height))});let _=h.reduce((A,R)=>A+R,0)+(l>1?(l-1)*c:0),g=f.reduce((A,R)=>A+R,0)+(u>1?(u-1)*c:0),x=-_/2,P=[-g/2];for(let A=0;A<u-1;A++)P.push(P[A]+f[A]+c);let S=[x];for(let A=0;A<l-1;A++)S.push(S[A]+h[A]+c);r.forEach((A,R)=>{let j=R%l,B=Math.floor(R/l),V=e.pcb_board.get(A.pcb_board_id);if(!V||!V.width||!V.height)return;let U=S[j]+h[j]/2,H=P[B]+f[B]/2;A._repositionOnPcb({x:U,y:H}),e.pcb_board.update(A.pcb_board_id,{center:{x:U,y:H}})});let T=t.map(A=>A.pcb_board_id).filter(A=>!!A),k=e.pcb_board.list().filter(A=>T.includes(A.pcb_board_id)),C=1/0,M=1/0,I=-1/0,E=-1/0;for(let A of k){if(A.width===void 0||A.height===void 0||!isFinite(A.width)||!isFinite(A.height))continue;let R=A.center.x-A.width/2,j=A.center.x+A.width/2,B=A.center.y-A.height/2,V=A.center.y+A.height/2;C=Math.min(C,R),I=Math.max(I,j),M=Math.min(M,B),E=Math.max(E,V)}if(isFinite(C)){let A=I-C,R=E-M,j=A+2*Det,B=R+2*Det;e.pcb_panel.update(this.pcb_panel_id,{width:j,height:B})}}if(this._tabsAndMouseBitesGenerated)return;let s=this._parsedProps;if((s.panelizationMethod??"tab-routing")!=="none"){let a=t.map(_=>_.pcb_board_id).filter(_=>!!_),c=e.pcb_board.list().filter(_=>a.includes(_.pcb_board_id));if(c.length===0)return;let l=s.tabWidth??jet,u=s.boardGap??l,{tabCutouts:h,mouseBiteHoles:f}=d7t(c,{boardGap:u,tabWidth:l,tabLength:s.tabLength??c7t,mouseBites:s.mouseBites??!0});for(let _ of h)e.pcb_cutout.insert(_);for(let _ of f)e.pcb_hole.insert(_)}this._tabsAndMouseBitesGenerated=!0}runRenderCycle(){if(!this.children.some(e=>e.componentName==="Board"))throw new Error("<panel> must contain at least one <board>");super.runRenderCycle()}doInitialPcbComponentRender(){if(super.doInitialPcbComponentRender(),this.root?.pcbDisabled)return;let{db:e}=this.root,t=this._parsedProps,i=e.pcb_panel.insert({width:Y.parse(t.width),height:Y.parse(t.height),center:this._getGlobalPcbPositionBeforeLayout(),covered_with_solder_mask:!(t.noSolderMask??!1)});this.pcb_panel_id=i.pcb_panel_id}updatePcbComponentRender(){if(this.root?.pcbDisabled||!this.pcb_panel_id)return;let{db:e}=this.root,t=this._parsedProps;e.pcb_panel.update(this.pcb_panel_id,{width:Y.parse(t.width),height:Y.parse(t.height),center:this._getGlobalPcbPositionBeforeLayout(),covered_with_solder_mask:!(t.noSolderMask??!1)})}removePcbComponentRender(){this.pcb_panel_id&&(this.root?.db.pcb_panel.delete(this.pcb_panel_id),this.pcb_panel_id=null)}},f7t=new Proxy({},{get:(n,e)=>e}),Ua=f7t,rP="rgba(132, 0, 0)",sP=.12,g9=class extends Gn{constructor(){super(...arguments);d(this,"_adjustSilkscreenTextAutomatically",!0)}get config(){return{componentName:"Capacitor",schematicSymbolName:this.props.polarized?"capacitor_polarized":this.props.symbolName??"capacitor",zodProps:$H,sourceFtype:Ua.simple_capacitor}}initPorts(){typeof this.props.footprint=="string"?super.initPorts({additionalAliases:{pin1:["anode","pos"],pin2:["cathode","neg"]}}):super.initPorts()}_getSchematicSymbolDisplayValue(){let e=this.props.capacitance,t=typeof e=="string"?e:`${gi(this._parsedProps.capacitance)}F`;return this._parsedProps.schShowRatings&&this._parsedProps.maxVoltageRating?`${t}/${gi(this._parsedProps.maxVoltageRating)}V`:t}doInitialCreateNetsFromProps(){this._createNetsFromProps([this.props.decouplingFor,this.props.decouplingTo,...this._getNetsFromConnectionsProp()])}doInitialCreateTracesFromProps(){this.props.decouplingFor&&this.props.decouplingTo&&(this.add(new Ls({from:`${this.getSubcircuitSelector()} > port.1`,to:this.props.decouplingFor})),this.add(new Ls({from:`${this.getSubcircuitSelector()} > port.2`,to:this.props.decouplingTo}))),this._createTracesFromConnectionsProp()}doInitialSourceRender(){let{db:e}=this.root,{_parsedProps:t}=this,i=e.source_component.insert({ftype:"simple_capacitor",name:this.name,manufacturer_part_number:t.manufacturerPartNumber??t.mfn,supplier_part_numbers:t.supplierPartNumbers,capacitance:t.capacitance,max_voltage_rating:t.maxVoltageRating,max_decoupling_trace_length:t.maxDecouplingTraceLength,display_capacitance:this._getSchematicSymbolDisplayValue(),are_pins_interchangeable:!t.polarized});this.source_component_id=i.source_component_id}},X1=class extends Gn{constructor(e){super(e);d(this,"schematicBoxDimensions",null)}get config(){return{componentName:"Chip",zodProps:e_,shouldRenderAsSchematicBox:!0}}initPorts(e={}){super.initPorts(e);let{_parsedProps:t}=this;if(t.externallyConnectedPins){let i=new Set;for(let[r,s]of t.externallyConnectedPins)i.add(r),i.add(s);for(let r of i)if(!this.children.find(o=>o instanceof Vi&&o.isMatchingAnyOf([r]))){let o=r.match(/^pin(\d+)$/);if(o){let a=parseInt(o[1]);this.add(new Vi({pinNumber:a,aliases:[r]}))}else this.add(new Vi({name:r,aliases:[r]}))}}}doInitialSchematicComponentRender(){let{_parsedProps:e}=this;e?.noSchematicRepresentation!==!0&&super.doInitialSchematicComponentRender()}doInitialSourceRender(){let{db:e}=this.root,{_parsedProps:t}=this,i=e.source_component.insert({ftype:"simple_chip",name:this.name,manufacturer_part_number:t.manufacturerPartNumber,supplier_part_numbers:t.supplierPartNumbers});this.source_component_id=i.source_component_id}doInitialPcbComponentRender(){if(this.root?.pcbDisabled)return;let{db:e}=this.root,{_parsedProps:t}=this,i=t.layer??"top";if(i!=="top"&&i!=="bottom"){let s=this.getSubcircuit(),o=Rm.parse({type:"pcb_component_invalid_layer_error",message:`Component cannot be placed on layer '${i}'. Components can only be placed on 'top' or 'bottom' layers.`,source_component_id:this.source_component_id,layer:i,subcircuit_id:s.subcircuit_id??void 0});e.pcb_component_invalid_layer_error.insert(o)}let r=e.pcb_component.insert({center:{x:t.pcbX??0,y:t.pcbY??0},width:2,height:3,layer:i==="top"||i==="bottom"?i:"top",rotation:t.pcbRotation??0,source_component_id:this.source_component_id,subcircuit_id:this.getSubcircuit().subcircuit_id??void 0,do_not_place:t.doNotPlace??!1,obstructs_within_bounds:t.obstructsWithinBounds??!0});this.pcb_component_id=r.pcb_component_id}doInitialCreateTracesFromProps(){let{_parsedProps:e}=this;if(e.externallyConnectedPins)for(let[t,i]of e.externallyConnectedPins)this.add(new Ls({from:`${this.getSubcircuitSelector()} > port.${t}`,to:`${this.getSubcircuitSelector()} > port.${i}`}));this._createTracesFromConnectionsProp()}doInitialSimulationRender(){let{db:e}=this.root,{pinAttributes:t}=this.props;if(!t)return;let i=null,r=null,s,o=this.selectAll("port");for(let h of o)for(let f of h.getNameAndAliases())if(t[f]){let _=t[f];_.providesPower&&(i=h,s=_.providesVoltage),_.providesGround&&(r=h)}if(!i||!r||s===void 0)return;let a=e.source_port.get(i.source_port_id);if(!a?.subcircuit_connectivity_map_key)return;let c=e.source_port.get(r.source_port_id);if(!c?.subcircuit_connectivity_map_key)return;let l=e.source_net.getWhere({subcircuit_connectivity_map_key:a.subcircuit_connectivity_map_key}),u=e.source_net.getWhere({subcircuit_connectivity_map_key:c.subcircuit_connectivity_map_key});!l||!u||e.simulation_voltage_source.insert({type:"simulation_voltage_source",positive_source_port_id:i.source_port_id,positive_source_net_id:l.source_net_id,negative_source_port_id:r.source_port_id,negative_source_net_id:u.source_net_id,voltage:s})}},gnt=class extends X1{constructor(n){super(n)}get config(){return{...super.config,componentName:"Pinout",zodProps:CH}}doInitialSourceRender(){let{db:n}=this.root,{_parsedProps:e}=this,t=n.source_component.insert({ftype:"simple_pinout",name:this.name,manufacturer_part_number:e.manufacturerPartNumber,supplier_part_numbers:e.supplierPartNumbers});this.source_component_id=t.source_component_id}},x9=class extends Gn{constructor(){super(...arguments);d(this,"pos",this.portMap.pin1);d(this,"anode",this.portMap.pin1);d(this,"neg",this.portMap.pin2);d(this,"cathode",this.portMap.pin2)}get config(){let e={schottky:"schottky_diode",avalanche:"avalanche_diode",zener:"zener_diode",photodiode:"photodiode"},t=this.props.schottky?"schottky":this.props.avalanche?"avalanche":this.props.zener?"zener":this.props.photo?"photodiode":null;return{schematicSymbolName:t?e[t]:this.props.symbolName??"diode",componentName:"Diode",zodProps:eW,sourceFtype:"simple_diode"}}initPorts(){super.initPorts({additionalAliases:{pin1:["anode","pos","left"],pin2:["cathode","neg","right"]}})}doInitialSourceRender(){let{db:e}=this.root,{_parsedProps:t}=this,i=e.source_component.insert({ftype:"simple_diode",name:this.name,manufacturer_part_number:t.manufacturerPartNumber??t.mfn,supplier_part_numbers:t.supplierPartNumbers,are_pins_interchangeable:!1});this.source_component_id=i.source_component_id}},xnt=class extends Gn{get config(){return{componentName:"fuse",schematicSymbolName:this.props.symbolName??"fuse",zodProps:NH,sourceFtype:Ua.simple_fuse}}_getSchematicSymbolDisplayValue(){let n=this._parsedProps.currentRating,e=this._parsedProps.voltageRating,t=typeof n=="string"?parseFloat(n):n,i=typeof e=="string"?parseFloat(e):e;return`${gi(t)}A / ${gi(i)}V`}doInitialSourceRender(){let{db:n}=this.root,{_parsedProps:e}=this,t=typeof e.currentRating=="string"?parseFloat(e.currentRating):e.currentRating,i=typeof e.voltageRating=="string"?parseFloat(e.voltageRating):e.voltageRating,r=n.source_component.insert({name:this.name,ftype:Ua.simple_fuse,current_rating_amps:t,voltage_rating_volts:i,display_current_rating:`${gi(t)}A`,display_voltage_rating:`${gi(i)}V`});this.source_component_id=r.source_component_id}},bnt=class extends Gn{constructor(){super(...arguments);d(this,"schematicDimensions",null)}get config(){return{schematicSymbolName:void 0,componentName:"Jumper",zodProps:l4,shouldRenderAsSchematicBox:!0}}_getSchematicPortArrangement(){let e=super._getSchematicPortArrangement();if(e&&Object.keys(e).length>0)return e;let t=this._parsedProps.pinCount??(Array.isArray(this._parsedProps.pinLabels)?this._parsedProps.pinLabels.length:this._parsedProps.pinLabels?Object.keys(this._parsedProps.pinLabels).length:this.getPortsFromFootprint().length),i=this._parsedProps.schDirection??"right";return{leftSize:i==="left"?t:0,rightSize:i==="right"?t:0}}doInitialSourceRender(){let{db:e}=this.root,{_parsedProps:t}=this,i=e.source_component.insert({ftype:"simple_chip",name:this.name,manufacturer_part_number:t.manufacturerPartNumber,supplier_part_numbers:t.supplierPartNumbers,are_pins_interchangeable:!0});this.source_component_id=i.source_component_id}doInitialPcbComponentRender(){if(this.root?.pcbDisabled)return;let{db:e}=this.root,{_parsedProps:t}=this,i=e.pcb_component.insert({center:{x:t.pcbX??0,y:t.pcbY??0},width:2,height:3,layer:t.layer??"top",rotation:t.pcbRotation??0,source_component_id:this.source_component_id,subcircuit_id:this.getSubcircuit().subcircuit_id??void 0,do_not_place:t.doNotPlace??!1,obstructs_within_bounds:t.obstructsWithinBounds??!0});this.pcb_component_id=i.pcb_component_id}doInitialPcbTraceRender(){let{db:e}=this.root,t=e.pcb_port.list({pcb_component_id:this.pcb_component_id}),i={};for(let o=0;o<t.length;o++){let a=t[o],c=e.source_port.get(a.source_port_id),l="";if(typeof c?.pin_number=="number")l=c.pin_number.toString();else if(Array.isArray(c?.port_hints)){let u=c.port_hints.find(h=>/^(pin)?\d+$/.test(h));u&&(/^pin\d+$/.test(u)?l=u.replace(/^pin/,""):l=u)}i[l]=a.pcb_port_id}let r=e.pcb_trace.list({pcb_component_id:this.pcb_component_id}),s=o=>{if(o&&typeof o=="string"&&o.startsWith("{PIN")){let a=o.replace("{PIN","").replace("}","");return i[a]||o}return o};for(let o of r)if(o.route)for(let a of o.route)a.route_type==="wire"&&(a.start_pcb_port_id=s(a.start_pcb_port_id),a.end_pcb_port_id=s(a.end_pcb_port_id))}},vnt=class extends Gn{constructor(){super(...arguments);d(this,"schematicDimensions",null)}_getPinNumberFromBridgedPinName(e){return this.selectOne(`port.${e}`,{type:"port"})?._parsedProps.pinNumber??null}get defaultInternallyConnectedPinNames(){if(this._parsedProps.bridged){let e=this.children.filter(t=>t.componentName==="Port").map(t=>t.name);return e.length>0?[e]:[]}return this._parsedProps.bridgedPins??[]}get config(){let e=this._parsedProps??this.props,t=e.pinCount;if(e.pinCount==null&&!e.footprint&&(t=2),e.pinCount==null){let s=(e.bridgedPins??[]).flat().map(l=>this._getPinNumberFromBridgedPinName(l)).filter(l=>l!==null),o=s.length>0?Math.max(...s):0,a=e.pinLabels?Object.keys(e.pinLabels).length:0,c=Math.max(o,a);(c===2||c===3)&&(t=c),t==null&&e.footprint&&[2,3].includes(this.getPortsFromFootprint().length)&&(t=this.getPortsFromFootprint().length)}let i="";t?i+=`solderjumper${t}`:i="solderjumper";let r=[];return Array.isArray(e.bridgedPins)&&e.bridgedPins.length>0?r=Array.from(new Set(e.bridgedPins.flat().map(s=>this._getPinNumberFromBridgedPinName(s)).filter(s=>s!==null))).sort((s,o)=>s-o):e.bridged&&t&&(r=Array.from({length:t},(s,o)=>o+1)),r.length>0&&(i+=`_bridged${r.join("")}`),{schematicSymbolName:e.symbolName??i,componentName:"SolderJumper",zodProps:IH,shouldRenderAsSchematicBox:!0}}_getSchematicPortArrangement(){let e=super._getSchematicPortArrangement();if(e&&Object.keys(e).length>0)return e;let t=this._parsedProps.pinCount??(Array.isArray(this._parsedProps.pinLabels)?this._parsedProps.pinLabels.length:this._parsedProps.pinLabels?Object.keys(this._parsedProps.pinLabels).length:this.getPortsFromFootprint().length);t==null&&!this._parsedProps.footprint&&(t=2);let i=this._parsedProps.schDirection??"right";return{leftSize:i==="left"?t:0,rightSize:i==="right"?t:0}}doInitialSourceRender(){let{db:e}=this.root,{_parsedProps:t}=this,i=e.source_component.insert({ftype:"simple_chip",name:this.name,manufacturer_part_number:t.manufacturerPartNumber,supplier_part_numbers:t.supplierPartNumbers,are_pins_interchangeable:!0});this.source_component_id=i.source_component_id}doInitialPcbComponentRender(){if(this.root?.pcbDisabled)return;let{db:e}=this.root,{_parsedProps:t}=this,i=e.pcb_component.insert({center:{x:t.pcbX??0,y:t.pcbY??0},width:2,height:3,layer:t.layer??"top",rotation:t.pcbRotation??0,source_component_id:this.source_component_id,subcircuit_id:this.getSubcircuit().subcircuit_id??void 0,do_not_place:t.doNotPlace??!1,obstructs_within_bounds:t.obstructsWithinBounds??!0});this.pcb_component_id=i.pcb_component_id}doInitialPcbTraceRender(){let{db:e}=this.root,t=e.pcb_port.list({pcb_component_id:this.pcb_component_id}),i={};for(let o=0;o<t.length;o++){let a=t[o],c=e.source_port.get(a.source_port_id),l="";if(typeof c?.pin_number=="number")l=c.pin_number.toString();else if(Array.isArray(c?.port_hints)){let u=c.port_hints.find(h=>/^(pin)?\d+$/.test(h));u&&(/^pin\d+$/.test(u)?l=u.replace(/^pin/,""):l=u)}i[l]=a.pcb_port_id}let r=e.pcb_trace.list({pcb_component_id:this.pcb_component_id}),s=o=>{if(o&&typeof o=="string"&&o.startsWith("{PIN")){let a=o.replace("{PIN","").replace("}","");return i[a]||o}return o};for(let o of r)if(o.route)for(let a of o.route)a.route_type==="wire"&&(a.start_pcb_port_id=s(a.start_pcb_port_id),a.end_pcb_port_id=s(a.end_pcb_port_id))}},wnt=class extends Gn{constructor(){super(...arguments);d(this,"pos",this.portMap.pin1);d(this,"anode",this.portMap.pin1);d(this,"neg",this.portMap.pin2);d(this,"cathode",this.portMap.pin2)}get config(){let e={laser:"laser_diode"},t=this.props.laser?"laser":null;return{schematicSymbolName:t?e[t]:this.props.symbolName??"led",componentName:"Led",zodProps:iW,sourceFtype:"simple_led"}}initPorts(){super.initPorts({additionalAliases:{pin1:["anode","pos","left"],pin2:["cathode","neg","right"]}})}_getSchematicSymbolDisplayValue(){return this._parsedProps.schDisplayValue||this._parsedProps.color||void 0}getFootprinterString(){let e=super.getFootprinterString();return e&&this.props.color?`${e}_color(${this.props.color})`:e}doInitialSourceRender(){let{db:e}=this.root,{_parsedProps:t}=this,i=e.source_component.insert({ftype:"simple_led",name:this.name,wave_length:t.wavelength,color:t.color,symbol_display_value:this._getSchematicSymbolDisplayValue(),manufacturer_part_number:t.manufacturerPartNumber??t.mfn,supplier_part_numbers:t.supplierPartNumbers,are_pins_interchangeable:!1});this.source_component_id=i.source_component_id}},Snt=class extends Gn{constructor(){super(...arguments);d(this,"pos",this.portMap.pin1);d(this,"positive",this.portMap.pin1);d(this,"neg",this.portMap.pin2);d(this,"negative",this.portMap.pin2)}get config(){return{schematicSymbolName:this.props.symbolName??"power_factor_meter_horz",componentName:"PowerSource",zodProps:yW,sourceFtype:"simple_power_source"}}initPorts(){this.add(new Vi({name:"pin1",pinNumber:1,aliases:["positive","pos"]})),this.add(new Vi({name:"pin2",pinNumber:2,aliases:["negative","neg"]}))}doInitialSourceRender(){let{db:e}=this.root,{_parsedProps:t}=this,i=e.source_component.insert({ftype:"simple_power_source",name:this.name,voltage:t.voltage,supplier_part_numbers:t.supplierPartNumbers,are_pins_interchangeable:!1});this.source_component_id=i.source_component_id}},m7t=Kn.extend({voltage:Si.optional(),frequency:ur.optional(),peakToPeakVoltage:Si.optional(),waveShape:p.enum(["sinewave","square","triangle","sawtooth"]).optional(),phase:He.optional(),dutyCycle:p.number().optional()}),Pnt=class extends Gn{constructor(){super(...arguments);d(this,"terminal1",this.portMap.terminal1);d(this,"terminal2",this.portMap.terminal2)}get config(){return{componentName:"VoltageSource",schematicSymbolName:this.props.waveShape==="square"?"square_wave":"ac_voltmeter",zodProps:m7t,sourceFtype:"simple_voltage_source"}}runRenderPhaseForChildren(e){if(!e.startsWith("Pcb"))for(let t of this.children)t.runRenderPhaseForChildren(e),t.runRenderPhase(e)}doInitialPcbComponentRender(){}initPorts(){super.initPorts({additionalAliases:{pin1:["terminal1"],pin2:["terminal2"]}})}doInitialSourceRender(){let{db:e}=this.root,{_parsedProps:t}=this,i=e.source_component.insert({ftype:"simple_voltage_source",name:this.name,voltage:t.voltage,frequency:t.frequency,peak_to_peak_voltage:t.peakToPeakVoltage,wave_shape:t.waveShape,phase:t.phase,duty_cycle:t.dutyCycle,supplier_part_numbers:t.supplierPartNumbers,are_pins_interchangeable:!0});this.source_component_id=i.source_component_id}doInitialSimulationRender(){let{db:e}=this.root,{_parsedProps:t}=this,i=this.portMap.terminal1,r=this.portMap.terminal2;e.simulation_voltage_source.insert({type:"simulation_voltage_source",is_dc_source:!1,terminal1_source_port_id:i.source_port_id,terminal2_source_port_id:r.source_port_id,voltage:t.voltage,frequency:t.frequency,peak_to_peak_voltage:t.peakToPeakVoltage,wave_shape:t.waveShape,phase:t.phase,duty_cycle:t.dutyCycle})}},b9=class extends Gn{constructor(){super(...arguments);d(this,"_adjustSilkscreenTextAutomatically",!0)}get config(){return{componentName:"Resistor",schematicSymbolName:this.props.symbolName??"boxresistor",zodProps:RH,sourceFtype:"simple_resistor"}}initPorts(){super.initPorts({additionalAliases:{pin1:["anode","pos","left"],pin2:["cathode","neg","right"]}})}_getSchematicSymbolDisplayValue(){return`${gi(this._parsedProps.resistance)}\u03A9`}doInitialCreateNetsFromProps(){this._createNetsFromProps([this.props.pullupFor,this.props.pullupTo,this.props.pulldownFor,this.props.pulldownTo,...this._getNetsFromConnectionsProp()])}doInitialCreateTracesFromProps(){this.props.pullupFor&&this.props.pullupTo&&(this.add(new Ls({from:`${this.getSubcircuitSelector()} > port.1`,to:this.props.pullupFor})),this.add(new Ls({from:`${this.getSubcircuitSelector()} > port.2`,to:this.props.pullupTo}))),this.props.pulldownFor&&this.props.pulldownTo&&(this.add(new Ls({from:`${this.getSubcircuitSelector()} > port.1`,to:this.props.pulldownFor})),this.add(new Ls({from:`${this.getSubcircuitSelector()} > port.2`,to:this.props.pulldownTo}))),this._createTracesFromConnectionsProp()}doInitialSourceRender(){let{db:e}=this.root,{_parsedProps:t}=this,i=e.source_component.insert({ftype:"simple_resistor",name:this.name,manufacturer_part_number:t.manufacturerPartNumber??t.mfn,supplier_part_numbers:t.supplierPartNumbers,resistance:t.resistance,display_resistance:this._getSchematicSymbolDisplayValue(),are_pins_interchangeable:!0});this.source_component_id=i.source_component_id}},_7t=["leftedge","rightedge","topedge","bottomedge","center"],knt=class extends Me{get config(){return{componentName:"Constraint",zodProps:jH}}constructor(n){if(super(n),("xdist"in n||"ydist"in n)&&!("edgeToEdge"in n)&&!("centerToCenter"in n))throw new Error(`edgeToEdge, centerToCenter must be set for xDist or yDist for ${this}`);if("for"in n&&n.for.length<2)throw new Error(`"for" must have at least two selectors for ${this}`)}_getAllReferencedComponents(){let n=[],e=this.getPrimitiveContainer();function t(i){let r=i.split(" ").pop(),s=_7t.includes(r)?r:void 0,o=s?i.replace(` ${s}`,""):i,a=e.selectOne(o,{pcbPrimitive:!0});a&&n.push({selector:i,component:a,componentSelector:o,edge:s})}for(let i of["left","right","top","bottom"])i in this._parsedProps&&t(this._parsedProps[i]);if("for"in this._parsedProps)for(let i of this._parsedProps.for)t(i);return{componentsWithSelectors:n}}},Tnt=class extends Me{constructor(){super(...arguments);d(this,"fabrication_note_rect_id",null)}get config(){return{componentName:"FabricationNoteRect",zodProps:aW}}doInitialPcbPrimitiveRender(){if(this.root?.pcbDisabled)return;let{db:e}=this.root,{_parsedProps:t}=this,{maybeFlipLayer:i}=this._getPcbPrimitiveFlippedHelpers(),r=i(t.layer??"top");if(r!=="top"&&r!=="bottom")throw new Error(`Invalid layer "${r}" for FabricationNoteRect. Must be "top" or "bottom".`);let s=this.parent?.pcb_component_id??this.getPrimitiveContainer()?.pcb_component_id,o=this.getSubcircuit(),a=t.hasStroke??(t.strokeWidth!==void 0&&t.strokeWidth!==null),c=e.pcb_fabrication_note_rect.insert({pcb_component_id:s,layer:r,color:t.color,center:{x:t.pcbX??0,y:t.pcbY??0},width:t.width,height:t.height,stroke_width:t.strokeWidth??1,is_filled:t.isFilled??!1,has_stroke:a,is_stroke_dashed:t.isStrokeDashed??!1,subcircuit_id:o?.subcircuit_id??void 0,pcb_group_id:this.getGroup()?.pcb_group_id??void 0,corner_radius:t.cornerRadius??void 0});this.fabrication_note_rect_id=c.pcb_fabrication_note_rect_id}getPcbSize(){let{_parsedProps:e}=this;return{width:e.width,height:e.height}}},Mnt=class extends Me{constructor(){super(...arguments);d(this,"fabrication_note_path_id",null)}get config(){return{componentName:"FabricationNotePath",zodProps:cW}}doInitialPcbPrimitiveRender(){if(this.root?.pcbDisabled)return;let{db:e}=this.root,t=this.getSubcircuit(),{_parsedProps:i}=this,r=i.layer??"top";if(r!=="top"&&r!=="bottom")throw new Error(`Invalid layer "${r}" for SilkscreenPath. Must be "top" or "bottom".`);let s=this._computePcbGlobalTransformBeforeLayout(),o=this.parent?.pcb_component_id??this.getPrimitiveContainer()?.pcb_component_id,a=e.pcb_fabrication_note_path.insert({pcb_component_id:o,layer:r,color:i.color,route:i.route.map(c=>{let l=$e(s,{x:c.x,y:c.y});return{...c,x:l.x,y:l.y}}),stroke_width:i.strokeWidth??.1,subcircuit_id:t?.subcircuit_id??void 0});this.fabrication_note_path_id=a.pcb_fabrication_note_path_id}},Ent=class extends Me{get config(){return{componentName:"FabricationNoteText",zodProps:oW}}doInitialPcbPrimitiveRender(){if(this.root?.pcbDisabled)return;let{db:n}=this.root,{_parsedProps:e}=this,t=this.getPrimitiveContainer(),i=this.getSubcircuit();n.pcb_fabrication_note_text.insert({anchor_alignment:e.anchorAlignment,anchor_position:{x:e.pcbX??0,y:e.pcbY??0},font:e.font??"tscircuit2024",font_size:e.fontSize??1,layer:"top",color:e.color,text:e.text??"",pcb_component_id:t.pcb_component_id,subcircuit_id:i?.subcircuit_id??void 0,pcb_group_id:this.getGroup()?.pcb_group_id??void 0})}},Cnt=class extends Me{constructor(){super(...arguments);d(this,"fabrication_note_dimension_id",null);d(this,"isPcbPrimitive",!0)}get config(){return{componentName:"FabricationNoteDimension",zodProps:lW}}_resolvePoint(e,t){if(typeof e=="string"){let s=this.getSubcircuit().selectOne(e);return s?s._getGlobalPcbPositionBeforeLayout():(this.renderError(`FabricationNoteDimension could not find selector "${e}"`),$e(t,{x:0,y:0}))}let i=typeof e.x=="string"?parseFloat(e.x):e.x,r=typeof e.y=="string"?parseFloat(e.y):e.y;return $e(t,{x:i,y:r})}doInitialPcbPrimitiveRender(){if(this.root?.pcbDisabled)return;let{db:e}=this.root,{_parsedProps:t}=this,i=this._computePcbGlobalTransformBeforeLayout(),r=this._resolvePoint(t.from,i),s=this._resolvePoint(t.to,i),o=this.getSubcircuit(),a=this.getGroup(),{maybeFlipLayer:c}=this._getPcbPrimitiveFlippedHelpers(),l=c(t.layer??"top");if(l!=="top"&&l!=="bottom")throw new Error(`Invalid layer "${l}" for FabricationNoteDimension. Must be "top" or "bottom".`);let u=this.parent?.pcb_component_id??this.getPrimitiveContainer()?.pcb_component_id,h=t.text??this._formatDistanceText({from:r,to:s,units:t.units??"mm"}),f=e.pcb_fabrication_note_dimension.insert({pcb_component_id:u,subcircuit_id:o?.subcircuit_id??void 0,pcb_group_id:a?.pcb_group_id??void 0,layer:l,from:r,to:s,text:h,offset:t.offset,font:t.font??"tscircuit2024",font_size:t.fontSize??1,color:t.color,arrow_size:t.arrowSize??1});this.fabrication_note_dimension_id=f.pcb_fabrication_note_dimension_id}getPcbSize(){let e=this._computePcbGlobalTransformBeforeLayout(),t=this._resolvePoint(this._parsedProps.from,e),i=this._resolvePoint(this._parsedProps.to,e);return{width:Math.abs(i.x-t.x),height:Math.abs(i.y-t.y)}}_formatDistanceText({from:e,to:t,units:i}){let r=t.x-e.x,s=t.y-e.y,o=Math.sqrt(r*r+s*s),a=i==="in"?o/25.4:o,c=Math.round(a);if(Math.abs(a-c)<1e-9)return`${c}${i}`;let u=i==="in"?3:2;return`${i==="in"?Number(a.toFixed(u)).toString():a.toFixed(u)}${i}`}},Int=class extends Me{constructor(){super(...arguments);d(this,"pcb_note_line_id",null);d(this,"isPcbPrimitive",!0)}get config(){return{componentName:"PcbNoteLine",zodProps:zW}}doInitialPcbPrimitiveRender(){if(this.root?.pcbDisabled)return;let{db:e}=this.root,{_parsedProps:t}=this,i=this.getSubcircuit(),r=this.getGroup(),s=this._computePcbGlobalTransformBeforeLayout(),o=$e(s,{x:t.x1,y:t.y1}),a=$e(s,{x:t.x2,y:t.y2}),c=this.parent?.pcb_component_id??this.getPrimitiveContainer()?.pcb_component_id??void 0,l=e.pcb_note_line.insert({pcb_component_id:c,subcircuit_id:i?.subcircuit_id??void 0,pcb_group_id:r?.pcb_group_id??void 0,x1:o.x,y1:o.y,x2:a.x,y2:a.y,stroke_width:t.strokeWidth??.1,color:t.color,is_dashed:t.isDashed});this.pcb_note_line_id=l.pcb_note_line_id}getPcbSize(){let{_parsedProps:e}=this;return{width:Math.abs(e.x2-e.x1),height:Math.abs(e.y2-e.y1)}}},Nnt=class extends Me{constructor(){super(...arguments);d(this,"pcb_note_rect_id",null);d(this,"isPcbPrimitive",!0)}get config(){return{componentName:"PcbNoteRect",zodProps:LW}}doInitialPcbPrimitiveRender(){if(this.root?.pcbDisabled)return;let{db:e}=this.root,{_parsedProps:t}=this,i=this._computePcbGlobalTransformBeforeLayout(),r=$e(i,{x:0,y:0}),s=this.getSubcircuit(),o=this.getGroup(),a=this.parent?.pcb_component_id??this.getPrimitiveContainer()?.pcb_component_id??void 0,c=e.pcb_note_rect.insert({pcb_component_id:a,subcircuit_id:s?.subcircuit_id??void 0,pcb_group_id:o?.pcb_group_id??void 0,center:r,width:t.width,height:t.height,stroke_width:t.strokeWidth??.1,is_filled:t.isFilled??!1,has_stroke:t.hasStroke??!0,is_stroke_dashed:t.isStrokeDashed??!1,color:t.color,corner_radius:t.cornerRadius??void 0});this.pcb_note_rect_id=c.pcb_note_rect_id}getPcbSize(){let{_parsedProps:e}=this,t=typeof e.width=="string"?parseFloat(e.width):e.width,i=typeof e.height=="string"?parseFloat(e.height):e.height;return{width:t,height:i}}},Ant=class extends Me{constructor(){super(...arguments);d(this,"pcb_note_text_id",null);d(this,"isPcbPrimitive",!0)}get config(){return{componentName:"PcbNoteText",zodProps:OW}}doInitialPcbPrimitiveRender(){if(this.root?.pcbDisabled)return;let{db:e}=this.root,{_parsedProps:t}=this,i=this._computePcbGlobalTransformBeforeLayout(),r=$e(i,{x:0,y:0}),s=this.getSubcircuit(),o=this.getGroup(),a=this.parent?.pcb_component_id??this.getPrimitiveContainer()?.pcb_component_id??void 0,c=e.pcb_note_text.insert({pcb_component_id:a,subcircuit_id:s?.subcircuit_id??void 0,pcb_group_id:o?.pcb_group_id??void 0,font:t.font??"tscircuit2024",font_size:t.fontSize??1,text:t.text,anchor_position:r,anchor_alignment:t.anchorAlignment??"center",color:t.color});this.pcb_note_text_id=c.pcb_note_text_id}getPcbSize(){let{_parsedProps:e}=this,t=typeof e.fontSize=="string"?parseFloat(e.fontSize):e.fontSize??1,i=t*.6;return{width:e.text.length*i,height:t}}},Rnt=class extends Me{constructor(){super(...arguments);d(this,"pcb_note_path_id",null);d(this,"isPcbPrimitive",!0)}get config(){return{componentName:"PcbNotePath",zodProps:FW}}doInitialPcbPrimitiveRender(){if(this.root?.pcbDisabled)return;let{db:e}=this.root,{_parsedProps:t}=this,i=this._computePcbGlobalTransformBeforeLayout(),r=this.getSubcircuit(),s=this.getGroup(),o=this.parent?.pcb_component_id??this.getPrimitiveContainer()?.pcb_component_id??void 0,a=t.route.map(l=>{let{x:u,y:h,...f}=l,_=typeof u=="string"?parseFloat(u):u,g=typeof h=="string"?parseFloat(h):h,x=$e(i,{x:_,y:g});return{...f,x:x.x,y:x.y}}),c=e.pcb_note_path.insert({pcb_component_id:o,subcircuit_id:r?.subcircuit_id??void 0,pcb_group_id:s?.pcb_group_id??void 0,route:a,stroke_width:t.strokeWidth??.1,color:t.color});this.pcb_note_path_id=c.pcb_note_path_id}getPcbSize(){let{_parsedProps:e}=this;if(e.route.length===0)return{width:0,height:0};let t=e.route.map(c=>typeof c.x=="string"?parseFloat(c.x):c.x),i=e.route.map(c=>typeof c.y=="string"?parseFloat(c.y):c.y),r=Math.min(...t),s=Math.max(...t),o=Math.min(...i),a=Math.max(...i);return{width:s-r,height:a-o}}},Ont=class extends Me{constructor(){super(...arguments);d(this,"pcb_note_dimension_id",null);d(this,"isPcbPrimitive",!0)}get config(){return{componentName:"PcbNoteDimension",zodProps:$W}}_resolvePoint(e,t){if(typeof e=="string"){let s=this.getSubcircuit().selectOne(`.${e}`);return s?s._getGlobalPcbPositionBeforeLayout():(this.renderError(`PcbNoteDimension could not find selector "${e}"`),$e(t,{x:0,y:0}))}let i=typeof e.x=="string"?parseFloat(e.x):e.x,r=typeof e.y=="string"?parseFloat(e.y):e.y;return $e(t,{x:i,y:r})}doInitialPcbPrimitiveRender(){if(this.root?.pcbDisabled)return;let{db:e}=this.root,{_parsedProps:t}=this,i=this._computePcbGlobalTransformBeforeLayout(),r=this._resolvePoint(t.from,i),s=this._resolvePoint(t.to,i),o=this.getSubcircuit(),a=this.getGroup(),c=this.parent?.pcb_component_id??this.getPrimitiveContainer()?.pcb_component_id??void 0,l=t.text??this._formatDistanceText({from:r,to:s,units:t.units??"mm"}),u=e.pcb_note_dimension.insert({pcb_component_id:c,subcircuit_id:o?.subcircuit_id??void 0,pcb_group_id:a?.pcb_group_id??void 0,from:r,to:s,text:l,font:t.font??"tscircuit2024",font_size:t.fontSize??1,color:t.color,arrow_size:t.arrowSize??1});this.pcb_note_dimension_id=u.pcb_note_dimension_id}getPcbSize(){let e=this._computePcbGlobalTransformBeforeLayout(),t=this._resolvePoint(this._parsedProps.from,e),i=this._resolvePoint(this._parsedProps.to,e);return{width:Math.abs(i.x-t.x),height:Math.abs(i.y-t.y)}}_formatDistanceText({from:e,to:t,units:i}){let r=t.x-e.x,s=t.y-e.y,o=Math.sqrt(r*r+s*s),a=i==="in"?o/25.4:o,c=Math.round(a);if(Math.abs(a-c)<1e-9)return`${c}${i}`;let u=i==="in"?3:2;return`${i==="in"?Number(a.toFixed(u)).toString():a.toFixed(u)}${i}`}},q_=(n,e)=>{let{injectionDb:t,normalComponent:i}=e;if(!i)return;let r=G_({componentName:i.name,componentRotation:"0deg"},t.toArray().filter(s=>"pcb_component_id"in s&&s.pcb_component_id===n.pcb_component_id));i.addAll(r)};function y7t(n,e){let{injectionDb:t,subcircuit:i,groupsMap:r}=e,s=t.pcb_component.getWhere({source_component_id:n.source_component_id}),o=t.cad_component.getWhere({source_component_id:n.source_component_id}),a=new b9({name:n.name,resistance:n.resistance});s&&q_(s,{...e,normalComponent:a}),n.source_group_id&&r?.has(n.source_group_id)?r.get(n.source_group_id).add(a):i.add(a)}function g7t(n,e){let{injectionDb:t,subcircuit:i}=e;if(n.source_component_id!==null)return;let r=t.pcb_port.getWhere({source_port_id:n.source_port_id}),s=new Vi({name:n.name,pinNumber:n.pin_number});i.add(s),s.source_port_id=n.source_port_id;let o=i.root;if(o&&r){let{db:a}=o,c=a.pcb_port.insert({pcb_component_id:void 0,layers:r.layers,subcircuit_id:i.subcircuit_id??void 0,pcb_group_id:i.getGroup()?.pcb_group_id??void 0,x:r.x,y:r.y,source_port_id:n.source_port_id,is_board_pinout:!1});s.pcb_port_id=c.pcb_port_id}}function x7t(n,e){let{subcircuit:t,groupsMap:i}=e,r=new ml({name:n.name});return r.source_group_id=n.source_group_id,t.add(r),i&&i.set(n.source_group_id,r),r}var b7t=(n,e)=>{if(!n||n.length===0)return;let{injectionDb:t}=e,i=n.map(r=>r.map(s=>{let o=t.source_port.get(s);return o?o.pin_number!==void 0&&o.pin_number!==null?`pin${o.pin_number}`:o.name:null}).filter(s=>s!==null)).filter(r=>r.length>0);return i.length>0?i:void 0},v7t=(n,e)=>{let{injectionDb:t,subcircuit:i,groupsMap:r}=e,s=t.pcb_component.getWhere({source_component_id:n.source_component_id}),o=t.schematic_component.getWhere({source_component_id:n.source_component_id}),a=t.cad_component.getWhere({source_component_id:n.source_component_id}),c=b7t(n.internally_connected_source_port_ids,e),l=new X1({name:n.name,manufacturerPartNumber:n.manufacturer_part_number,supplierPartNumbers:n.supplier_part_numbers??void 0,pinLabels:o?.port_labels??void 0,schWidth:o?.size?.width,schHeight:o?.size?.height,schPinSpacing:o?.pin_spacing,schX:o?.center?.x,schY:o?.center?.y,layer:s?.layer,pcbX:s?.center?.x,pcbY:s?.center?.y,pcbRotation:s?.rotation,doNotPlace:s?.do_not_place,obstructsWithinBounds:s?.obstructs_within_bounds,internallyConnectedPins:c}),u=a?.footprinter_string??"soic8";u&&(Object.assign(l.props,{footprint:u}),Object.assign(l._parsedProps,{footprint:u}),a||l._addChildrenFromStringFootprint?.()),s&&q_(s,{...e,normalComponent:l}),n.source_group_id&&r?.has(n.source_group_id)?r.get(n.source_group_id).add(l):i.add(l)};function w7t(n,e){let{injectionDb:t,subcircuit:i,groupsMap:r}=e,s=t.pcb_component.getWhere({source_component_id:n.source_component_id}),o=t.cad_component.getWhere({source_component_id:n.source_component_id}),a=new g9({name:n.name,capacitance:n.capacitance});s&&q_(s,{...e,normalComponent:a}),n.source_group_id&&r?.has(n.source_group_id)?r.get(n.source_group_id).add(a):i.add(a)}var v9=class extends Gn{constructor(){super(...arguments);d(this,"_adjustSilkscreenTextAutomatically",!0)}get config(){return{componentName:"Inductor",schematicSymbolName:this.props.symbolName??"inductor",zodProps:tW,sourceFtype:Ua.simple_inductor}}_getSchematicSymbolDisplayValue(){return`${gi(this._parsedProps.inductance)}H`}initPorts(){super.initPorts({additionalAliases:{pin1:["anode","pos","left"],pin2:["cathode","neg","right"]}})}doInitialSourceRender(){let{db:e}=this.root,{_parsedProps:t}=this,i=e.source_component.insert({name:this.name,ftype:Ua.simple_inductor,inductance:t.inductance,supplier_part_numbers:t.supplierPartNumbers,are_pins_interchangeable:!0});this.source_component_id=i.source_component_id}};function S7t(n,e){let{injectionDb:t,subcircuit:i,groupsMap:r}=e,s=t.pcb_component.getWhere({source_component_id:n.source_component_id}),o=t.cad_component.getWhere({source_component_id:n.source_component_id}),a=new v9({name:n.name,inductance:n.inductance});s&&q_(s,{...e,normalComponent:a}),n.source_group_id&&r?.has(n.source_group_id)?r.get(n.source_group_id).add(a):i.add(a)}function P7t(n,e){let{injectionDb:t,subcircuit:i,groupsMap:r}=e,s=t.pcb_component.getWhere({source_component_id:n.source_component_id}),o=t.cad_component.getWhere({source_component_id:n.source_component_id}),a=new x9({name:n.name});s&&q_(s,{...e,normalComponent:a}),n.source_group_id&&r?.has(n.source_group_id)?r.get(n.source_group_id).add(a):i.add(a)}var k7t=(n,e)=>{let t=[],i=n.source_group_id;for(;i;){let r=e.source_group.get(i);if(!r)break;t.unshift(`.${r.name}`),i=r.parent_source_group_id}return t.push(`.${n.name}`),t.join(" > ")};function T7t(n,e){let{injectionDb:t,subcircuit:i}=e,r=[];for(let o of n.connected_source_port_ids){let a=t.source_port.get(o);if(!a)continue;let c;if(a.source_component_id){let l=t.source_component.get(a.source_component_id);l&&(c=`${k7t({name:l.name,source_group_id:l.source_group_id},t)} > .${a.name}`)}else c=`.${a.name}`;c&&r.push(c)}for(let o of n.connected_source_net_ids){let a=t.source_net.get(o);a&&r.push(`net.${a.name}`)}if(r.length<2)return;let s=new Ls({path:r});s.source_trace_id=n.source_trace_id,i.add(s)}var w9=class extends Gn{constructor(){super(...arguments);d(this,"emitter",this.portMap.pin1);d(this,"collector",this.portMap.pin2);d(this,"base",this.portMap.pin3)}get config(){let e=this.props.type==="npn"?"npn_bipolar_transistor":"pnp_bipolar_transistor";return{componentName:"Transistor",schematicSymbolName:this.props.symbolName??e,zodProps:JH,sourceFtype:"simple_transistor",shouldRenderAsSchematicBox:!1}}initPorts(){let e={pin1:["collector","c"],pin2:["emitter","e"],pin3:["base","b"]};super.initPorts({pinCount:3,additionalAliases:e})}doInitialCreateNetsFromProps(){this._createNetsFromProps([...this._getNetsFromConnectionsProp()])}doInitialCreateTracesFromProps(){this._createTracesFromConnectionsProp()}doInitialSourceRender(){let{db:e}=this.root,{_parsedProps:t}=this,i=e.source_component.insert({ftype:"simple_transistor",name:this.name,transistor_type:t.type});this.source_component_id=i.source_component_id}};function M7t(n,e){let{injectionDb:t,subcircuit:i,groupsMap:r}=e,s=t.pcb_component.getWhere({source_component_id:n.source_component_id}),o=t.cad_component.getWhere({source_component_id:n.source_component_id}),a=new w9({name:n.name,type:n.transistor_type});s&&q_(s,{...e,normalComponent:a}),n.source_group_id&&r?.has(n.source_group_id)?r.get(n.source_group_id).add(a):i.add(a)}var Lnt=class extends ml{constructor(n){super({...n,subcircuit:!0})}doInitialInflateSubcircuitCircuitJson(){let{circuitJson:n,children:e}=this._parsedProps;if(!n)return;let t=Ke(n);if(n&&e?.length>0)throw new Error("Subcircuit cannot have both circuitJson and children");let r={injectionDb:t,subcircuit:this,groupsMap:new Map},s=t.source_group.list();for(let l of s)x7t(l,r);let o=t.source_component.list();for(let l of o)switch(l.ftype){case"simple_resistor":y7t(l,r);break;case"simple_capacitor":w7t(l,r);break;case"simple_inductor":S7t(l,r);break;case"simple_diode":P7t(l,r);break;case"simple_chip":v7t(l,r);break;case"simple_transistor":M7t(l,r);break;default:throw new Error(`No inflator implemented for source component ftype: "${l.ftype}"`)}let a=t.source_port.list();for(let l of a)g7t(l,r);let c=t.source_trace.list();for(let l of c)T7t(l,r)}},Fnt=class extends ml{constructor(n){super({...n,subcircuit:!0})}doInitialPcbPrimitiveRender(){if(super.doInitialPcbPrimitiveRender(),this.root?.pcbDisabled)return;let{db:n}=this.root,e=this._parsedProps;if(!this.pcb_group_id)return;let t=n.pcb_group.get(this.pcb_group_id),i=e.paddingLeft??e.padding??0,r=e.paddingRight??e.padding??0,s=e.paddingTop??e.padding??0,o=e.paddingBottom??e.padding??0;n.pcb_group.update(this.pcb_group_id,{width:(t.width??0)+i+r,height:(t.height??0)+s+o,center:{x:t.center.x+(r-i)/2,y:t.center.y+(s-o)/2}})}},znt=class extends Me{constructor(){super(...arguments);d(this,"pcb_breakout_point_id",null);d(this,"matchedPort",null);d(this,"matchedNet",null);d(this,"isPcbPrimitive",!0)}get config(){return{componentName:"BreakoutPoint",zodProps:hW}}_matchConnection(){let{connection:e}=this._parsedProps,t=this.getSubcircuit();t&&(this.matchedPort=t.selectOne(e,{type:"port"}),this.matchedPort||(this.matchedNet=t.selectOne(e,{type:"net"})),!this.matchedPort&&!this.matchedNet&&this.renderError(`Could not find connection target "${e}"`))}_getSourceTraceIdForPort(e){let{db:t}=this.root;return t.source_trace.list().find(r=>r.connected_source_port_ids.includes(e.source_port_id))?.source_trace_id}_getSourceNetIdForPort(e){let{db:t}=this.root;return t.source_trace.list().find(r=>r.connected_source_port_ids.includes(e.source_port_id))?.connected_source_net_ids[0]}doInitialPcbPrimitiveRender(){if(this.root?.pcbDisabled)return;let{db:e}=this.root;this._matchConnection();let{pcbX:t=0,pcbY:i=0}=this._parsedProps,r=this.parent?.getGroup(),s=this.getSubcircuit();if(!r||!r.pcb_group_id)return;let o=e.pcb_breakout_point.insert({pcb_group_id:r.pcb_group_id,subcircuit_id:s?.subcircuit_id??void 0,source_port_id:this.matchedPort?.source_port_id??void 0,source_trace_id:this.matchedPort?this._getSourceTraceIdForPort(this.matchedPort):void 0,source_net_id:this.matchedNet?this.matchedNet.source_net_id:this.matchedPort?this._getSourceNetIdForPort(this.matchedPort):void 0,x:t,y:i});this.pcb_breakout_point_id=o.pcb_breakout_point_id}_getPcbCircuitJsonBounds(){let{pcbX:e=0,pcbY:t=0}=this._parsedProps;return{center:{x:e,y:t},bounds:{left:e,top:t,right:e,bottom:t},width:0,height:0}}_setPositionFromLayout(e){let{db:t}=this.root;this.pcb_breakout_point_id&&t.pcb_breakout_point.update(this.pcb_breakout_point_id,{x:e.x,y:e.y})}getPcbSize(){return{width:0,height:0}}},$nt=class extends Me{constructor(){super(...arguments);d(this,"source_net_label_id")}get config(){return{componentName:"NetLabel",zodProps:qH}}_getAnchorSide(){let{_parsedProps:e}=this;if(e.anchorSide)return e.anchorSide;if(!this._resolveConnectsTo())return"right";let i=this._getGlobalSchematicPositionBeforeLayout(),r=this._getConnectedPorts();if(r.length===0)return"right";let s=r[0]._getGlobalSchematicPositionBeforeLayout(),o=s.x-i.x,a=s.y-i.y;if(Math.abs(o)>Math.abs(a)){if(o>0)return"right";if(o<0)return"left"}else{if(a>0)return"top";if(a<0)return"bottom"}return"right"}_getConnectedPorts(){let e=this._resolveConnectsTo();if(!e)return[];let t=[];for(let i of e){let r=this.getSubcircuit().selectOne(i);r&&t.push(r)}return t}computeSchematicPropsTransform(){let{_parsedProps:e}=this;if(e.schX===void 0&&e.schY===void 0){let t=this._getConnectedPorts();if(t.length>0){let i=t[0]._getGlobalSchematicPositionBeforeLayout(),r=$e(this.parent?.computeSchematicGlobalTransform?.()??Sr(),{x:0,y:0});return An(i.x-r.x,i.y-r.y)}}return super.computeSchematicPropsTransform()}doInitialSchematicPrimitiveRender(){if(this.root?.schematicDisabled)return;let{db:e}=this.root,{_parsedProps:t}=this,i=this._getGlobalSchematicPositionBeforeLayout(),r=this.getSubcircuit().selectOne(`net.${this._getNetName()}`),s=t.anchorSide??"right",o=fl({anchor_position:i,anchor_side:s,text:t.net}),a=e.schematic_net_label.insert({text:t.net,source_net_id:r.source_net_id,anchor_position:i,center:o,anchor_side:this._getAnchorSide()});this.source_net_label_id=a.source_net_id}_resolveConnectsTo(){let{_parsedProps:e}=this,t=e.connectsTo??e.connection;if(Array.isArray(t))return t;if(typeof t=="string")return[t]}_getNetName(){let{_parsedProps:e}=this;return e.net}doInitialCreateNetsFromProps(){let{_parsedProps:e}=this;e.net&&eP(this,[`net.${e.net}`])}doInitialCreateTracesFromNetLabels(){if(this.root?.schematicDisabled)return;let e=this._resolveConnectsTo();if(e)for(let t of e)this.add(new Ls({from:t,to:`net.${this._getNetName()}`}))}doInitialSchematicTraceRender(){if(!this.root?._featureMspSchematicTraceRouting||this.root?.schematicDisabled)return;let{db:e}=this.root,t=this._resolveConnectsTo();if(!t||t.length===0)return;let i=this._getGlobalSchematicPositionBeforeLayout(),r=this._getAnchorSide(),o={left:"x-",right:"x+",top:"y+",bottom:"y-"}[r],a=this.getSubcircuit().selectOne(`net.${this._getNetName()}`);for(let c of t){let l=this.getSubcircuit().selectOne(c,{type:"port"});if(!l||!l.schematic_port_id)continue;let u=!1;if(a?.source_net_id){let P=e.source_trace.list().find(S=>S.connected_source_net_ids?.includes(a.source_net_id)&&S.connected_source_port_ids?.includes(l.source_port_id??""));if(P&&(u=e.schematic_trace.list().some(S=>S.source_trace_id===P.source_trace_id)),u)continue}let h=l._getGlobalSchematicPositionAfterLayout(),f=n9(l.facingDirection??"right")??"x+",_=Hc({x:h.x,y:h.y,facingDirection:f},{x:i.x,y:i.y,facingDirection:o});if(!Array.isArray(_)||_.length<2)continue;let g=[];for(let P=0;P<_.length-1;P++)g.push({from:{x:_[P].x,y:_[P].y},to:{x:_[P+1].x,y:_[P+1].y}});let x,v;if(a?.source_net_id&&l.source_port_id){let P=e.source_trace.list().find(S=>S.connected_source_net_ids?.includes(a.source_net_id)&&S.connected_source_port_ids?.includes(l.source_port_id));x=P?.source_trace_id,v=P?.subcircuit_connectivity_map_key||e.source_net.get(a.source_net_id)?.subcircuit_connectivity_map_key}e.schematic_trace.insert({source_trace_id:x,edges:g,junctions:[],subcircuit_connectivity_map_key:v}),e.schematic_port.update(l.schematic_port_id,{is_connected:!0})}}},Dnt=class extends Me{constructor(){super(...arguments);d(this,"pcb_silkscreen_circle_id",null);d(this,"isPcbPrimitive",!0)}get config(){return{componentName:"SilkscreenCircle",zodProps:AW}}doInitialPcbPrimitiveRender(){if(this.root?.pcbDisabled)return;let{db:e}=this.root,{_parsedProps:t}=this,{maybeFlipLayer:i}=this._getPcbPrimitiveFlippedHelpers(),r=i(t.layer??"top");if(r!=="top"&&r!=="bottom")throw new Error(`Invalid layer "${r}" for SilkscreenCircle. Must be "top" or "bottom".`);let s=this._computePcbGlobalTransformBeforeLayout(),o=this.getSubcircuit(),a=this.parent?.pcb_component_id??this.getPrimitiveContainer()?.pcb_component_id,c=e.pcb_silkscreen_circle.insert({pcb_component_id:a,layer:r,center:{x:t.pcbX??0,y:t.pcbY??0},radius:t.radius,subcircuit_id:o?.subcircuit_id??void 0,pcb_group_id:this.getGroup()?.pcb_group_id??void 0,stroke_width:t.strokeWidth??.1});this.pcb_silkscreen_circle_id=c.pcb_silkscreen_circle_id}getPcbSize(){let{_parsedProps:e}=this,t=e.radius*2;return{width:t,height:t}}},jnt=class extends Me{constructor(){super(...arguments);d(this,"pcb_silkscreen_rect_id",null);d(this,"isPcbPrimitive",!0)}get config(){return{componentName:"SilkscreenRect",zodProps:NW}}doInitialPcbPrimitiveRender(){if(this.root?.pcbDisabled)return;let{db:e}=this.root,{_parsedProps:t}=this,{maybeFlipLayer:i}=this._getPcbPrimitiveFlippedHelpers(),r=i(t.layer??"top");if(r!=="top"&&r!=="bottom")throw new Error(`Invalid layer "${r}" for SilkscreenRect. Must be "top" or "bottom".`);let s=this.getSubcircuit(),o=this.parent?.pcb_component_id??this.getPrimitiveContainer()?.pcb_component_id,a=e.pcb_silkscreen_rect.insert({pcb_component_id:o,layer:r,center:{x:t.pcbX??0,y:t.pcbY??0},width:t.width,height:t.height,subcircuit_id:s?.subcircuit_id??void 0,pcb_group_id:this?.getGroup()?.pcb_group_id??void 0,stroke_width:t.strokeWidth??.1,is_filled:t.filled??!1,corner_radius:t.cornerRadius??void 0});this.pcb_silkscreen_rect_id=a.pcb_silkscreen_rect_id}getPcbSize(){let{_parsedProps:e}=this;return{width:e.width,height:e.height}}},Bnt=class extends Me{constructor(){super(...arguments);d(this,"pcb_silkscreen_line_id",null);d(this,"isPcbPrimitive",!0)}get config(){return{componentName:"SilkscreenLine",zodProps:IW}}doInitialPcbPrimitiveRender(){if(this.root?.pcbDisabled)return;let{db:e}=this.root,{_parsedProps:t}=this,{maybeFlipLayer:i}=this._getPcbPrimitiveFlippedHelpers(),r=i(t.layer??"top");if(r!=="top"&&r!=="bottom")throw new Error(`Invalid layer "${r}" for SilkscreenLine. Must be "top" or "bottom".`);let s=this.getSubcircuit(),o=this.parent?.pcb_component_id??this.getPrimitiveContainer()?.pcb_component_id,a=e.pcb_silkscreen_line.insert({pcb_component_id:o,layer:r,x1:t.x1,y1:t.y1,x2:t.x2,y2:t.y2,stroke_width:t.strokeWidth??.1,subcircuit_id:s?.subcircuit_id??void 0,pcb_group_id:s?.getGroup()?.pcb_group_id??void 0});this.pcb_silkscreen_line_id=a.pcb_silkscreen_line_id}getPcbSize(){let{_parsedProps:e}=this,t=Math.abs(e.x2-e.x1),i=Math.abs(e.y2-e.y1);return{width:t,height:i}}},Ynt=class extends Me{constructor(e){super(e);d(this,"pcb_via_id",null);d(this,"matchedPort",null);d(this,"isPcbPrimitive",!0);d(this,"source_manually_placed_via_id",null);d(this,"subcircuit_connectivity_map_key",null);let t=this._getLayers();this._parsedProps.layers=t,this.initPorts()}get config(){return{componentName:"Via",zodProps:uW}}getAvailablePcbLayers(){return["top","inner1","inner2","bottom"]}getPcbSize(){let{_parsedProps:e}=this;return{width:e.outerDiameter,height:e.outerDiameter}}_getPcbCircuitJsonBounds(){let{db:e}=this.root,t=e.pcb_via.get(this.pcb_via_id),i=this.getPcbSize();return{center:{x:t.x,y:t.y},bounds:{left:t.x-i.width/2,top:t.y-i.height/2,right:t.x+i.width/2,bottom:t.y+i.height/2},width:i.width,height:i.height}}_setPositionFromLayout(e){let{db:t}=this.root;t.pcb_via.update(this.pcb_via_id,{x:e.x,y:e.y})}_getLayers(){let{fromLayer:e="top",toLayer:t="bottom"}=this._parsedProps;return e===t?[e]:[e,t]}initPorts(){let e=this._parsedProps.layers;for(let i of e){let r=new Vi({name:i,layer:i});r.registerMatch(this),this.add(r)}let t=new Vi({name:"pin1"});t.registerMatch(this),this.add(t)}_getConnectedNetOrTrace(){let e=this._parsedProps.connectsTo;if(!e)return null;let t=this.getSubcircuit(),i=Array.isArray(e)?e:[e];for(let r of i)if(r.startsWith("net.")){let s=t.selectOne(r,{type:"net"});if(s)return s}return null}doInitialPcbComponentRender(){if(this.root?.pcbDisabled)return;let{db:e}=this.root,{_parsedProps:t}=this,i=this._getGlobalPcbPositionBeforeLayout(),r=this.getSubcircuit(),s=e.pcb_component.insert({center:i,width:t.outerDiameter,height:t.outerDiameter,layer:t.fromLayer??"top",rotation:0,source_component_id:this.source_component_id,subcircuit_id:r?.subcircuit_id??void 0,obstructs_within_bounds:!0});this.pcb_component_id=s.pcb_component_id}doInitialSourceRender(){let{db:e}=this.root,{_parsedProps:t}=this,i=this.getGroup(),r=this.getSubcircuit(),s=e.source_manually_placed_via.insert({source_group_id:i?.source_group_id,source_net_id:t.net??"",subcircuit_id:r?.subcircuit_id??void 0});this.source_component_id=s.source_manually_placed_via_id}doInitialPcbPrimitiveRender(){if(this.root?.pcbDisabled)return;let{db:e}=this.root,{_parsedProps:t}=this,i=this._getGlobalPcbPositionBeforeLayout(),r=this.getSubcircuit(),s=e.pcb_via.insert({x:i.x,y:i.y,hole_diameter:t.holeDiameter,outer_diameter:t.outerDiameter,layers:["bottom","top"],from_layer:t.fromLayer||"bottom",to_layer:t.toLayer||"top",subcircuit_id:r?.subcircuit_id??void 0,subcircuit_connectivity_map_key:this.subcircuit_connectivity_map_key??void 0,pcb_group_id:this.getGroup()?.pcb_group_id??void 0,net_is_assignable:t.netIsAssignable??void 0});this.pcb_via_id=s.pcb_via_id}},Xnt=class extends Me{constructor(){super(...arguments);d(this,"isPcbPrimitive",!0)}get config(){return{componentName:"CopperPour",zodProps:fW}}getPcbSize(){return{width:0,height:0}}doInitialCreateNetsFromProps(){let{_parsedProps:e}=this;eP(this,[e.connectsTo])}doInitialPcbCopperPourRender(){this.root?.pcbDisabled||this._queueAsyncEffect("PcbCopperPourRender",async()=>{let{db:e}=this.root,{_parsedProps:t}=this,i=this.getSubcircuit().selectOne(t.connectsTo);if(!i||!i.source_net_id){this.renderError(`Net "${t.connectsTo}" not found for copper pour`);return}let r=this.getSubcircuit(),s=e.toArray().filter(h=>h.type==="source_net"&&h.name===i.name)[0]||"",o=t.clearance??.2,a=JQ(e.toArray(),{layer:t.layer,pour_connectivity_key:s.subcircuit_connectivity_map_key||"",pad_margin:t.padMargin??o,trace_margin:t.traceMargin??o,board_edge_margin:t.boardEdgeMargin??o,cutout_margin:t.cutoutMargin??o}),c=new KQ(a),{brep_shapes:l}=c.getOutput(),u=t.coveredWithSolderMask??!1;for(let h of l)e.pcb_copper_pour.insert({shape:"brep",layer:t.layer,brep_shape:h,source_net_id:i.source_net_id,subcircuit_id:r?.subcircuit_id??void 0,covered_with_solder_mask:u})})}},Unt=class extends Gn{get config(){return{componentName:"Battery",schematicSymbolName:this.props.symbolName??"battery",zodProps:HH,sourceFtype:"simple_power_source"}}initPorts(){super.initPorts({additionalAliases:{pin1:["anode","pos","left"],pin2:["cathode","neg","right"]}})}doInitialSourceRender(){let{db:n}=this.root,{_parsedProps:e}=this,t=n.source_component.insert({name:this.name,ftype:"simple_power_source",capacity:e.capacity,supplier_part_numbers:e.supplierPartNumbers,are_pins_interchangeable:!1});this.source_component_id=t.source_component_id}},Vnt=class extends Gn{_getPcbRotationBeforeLayout(){let n=this.props.pcbOrientation==="vertical"?-90:0;return(super._getPcbRotationBeforeLayout()??0)+n}get config(){return{componentName:"PinHeader",zodProps:WH,shouldRenderAsSchematicBox:!0}}_getImpliedFootprintString(){let n=this._parsedProps.pinCount??(Array.isArray(this._parsedProps.pinLabels)?this._parsedProps.pinLabels.length:this._parsedProps.pinLabels?Object.keys(this._parsedProps.pinLabels).length:0),e=this._parsedProps.holeDiameter,t=this._parsedProps.platedDiameter,i=this._parsedProps.pitch,r=this._parsedProps.showSilkscreenPinLabels;if(n>0){let s;if(i)!e&&!t?s=`pinrow${n}_p${i}`:s=`pinrow${n}_p${i}_id${e}_od${t}`;else if(!e&&!t)s=`pinrow${n}`;else return null;return r!==!0&&(s+="_nopinlabels"),s}return null}initPorts(){let n=this._parsedProps.pinCount??(Array.isArray(this._parsedProps.pinLabels)?this._parsedProps.pinLabels.length:this._parsedProps.pinLabels?Object.keys(this._parsedProps.pinLabels).length:1);for(let e=1;e<=n;e++){let t=Array.isArray(this._parsedProps.pinLabels)?this._parsedProps.pinLabels[e-1]:this._parsedProps.pinLabels?.[`pin${e}`];if(t){let i=Array.isArray(t)?t[0]:t,r=Array.isArray(t)?t.slice(1):[];this.add(new Vi({pinNumber:e,name:i,aliases:[`pin${e}`,...r]}))}else this.add(new Vi({pinNumber:e,name:`pin${e}`}))}}_getSchematicPortArrangement(){let n=this._parsedProps.pinCount??1,e=this._parsedProps.schFacingDirection??this._parsedProps.facingDirection??"right",t=this._parsedProps.schPinArrangement;return e==="left"?{leftSide:{direction:t?.leftSide?.direction??"top-to-bottom",pins:t?.leftSide?.pins??Array.from({length:n},(i,r)=>`pin${r+1}`)}}:{rightSide:{direction:t?.rightSide?.direction??"top-to-bottom",pins:t?.rightSide?.pins??Array.from({length:n},(i,r)=>`pin${r+1}`)}}}doInitialSourceRender(){let{db:n}=this.root,{_parsedProps:e}=this,t=n.source_component.insert({ftype:"simple_pin_header",name:this.name,supplier_part_numbers:e.supplierPartNumbers,pin_count:e.pinCount,gender:e.gender,are_pins_interchangeable:!0});this.source_component_id=t.source_component_id}};function E7t(n){switch(n){case"two_ground_pins":return"crystal_4pin";case"ground_pin":return"resonator";case"no_ground":return"crystal";default:return"crystal"}}var Gnt=class extends Gn{get config(){return{componentName:"Resonator",schematicSymbolName:this.props.symbolName??E7t(this.props.pinVariant),zodProps:zH,shouldRenderAsSchematicBox:!1}}doInitialSourceRender(){let{db:n}=this.root,{_parsedProps:e}=this,t=e.pinVariant||"no_ground",i=n.source_component.insert({ftype:"simple_resonator",name:this.name,frequency:e.frequency,load_capacitance:e.loadCapacitance,supplier_part_numbers:e.supplierPartNumbers,pin_variant:t,are_pins_interchangeable:t==="no_ground"||t==="ground_pin"});this.source_component_id=i.source_component_id}_getSchematicSymbolDisplayValue(){let n=`${gi(this._parsedProps.frequency)}Hz`;return this._parsedProps.loadCapacitance?`${n} / ${gi(this._parsedProps.loadCapacitance)}F`:n}};function C7t(n){switch(n){case"three_pin":return"potentiometer3";case"two_pin":return"potentiometer2";default:return"potentiometer2"}}var Hnt=class extends Gn{get config(){return{componentName:"Potentiometer",schematicSymbolName:this.props.symbolName??C7t(this.props.pinVariant),zodProps:LH,shouldRenderAsSchematicBox:!1}}_getSchematicSymbolDisplayValue(){return`${gi(this._parsedProps.maxResistance)}\u03A9`}doInitialSourceRender(){let{db:n}=this.root,{_parsedProps:e}=this,t=e.pinVariant||"two_pin",i=n.source_component.insert({ftype:"simple_potentiometer",name:this.name,max_resistance:e.maxResistance,pin_variant:t,are_pins_interchangeable:t==="two_pin"});this.source_component_id=i.source_component_id}},Wnt=class extends Gn{get config(){return{componentName:"PushButton",schematicSymbolName:this.props.symbolName??"push_button_normally_open_momentary",zodProps:ZH,sourceFtype:Ua.simple_push_button}}get defaultInternallyConnectedPinNames(){return[]}initPorts(){super.initPorts({pinCount:2,ignoreSymbolPorts:!0});let n=_i[this._getSchematicSymbolNameOrThrow()],e=n.ports.find(l=>l.labels.includes("1")),t=n.ports.find(l=>l.labels.includes("2")),i=this.selectAll("port"),r=i.find(l=>l.props.pinNumber===1),s=i.find(l=>l.props.pinNumber===2),o=i.find(l=>l.props.pinNumber===3),a=i.find(l=>l.props.pinNumber===4),{internallyConnectedPins:c}=this._parsedProps;r.schematicSymbolPortDef=e,(!c||c.length===0)&&(s.schematicSymbolPortDef=t);for(let[l,u]of[[2,s],[3,o],[4,a]]){let h=c?.find(([_,g])=>_===`pin${l}`||g===`pin${l}`);if(!h){u.schematicSymbolPortDef=t;break}(h?.[0]===`pin${l}`?h[1]:h?.[0])!=="pin1"&&(u.schematicSymbolPortDef=t)}}doInitialSourceRender(){let{db:n}=this.root,{_parsedProps:e}=this,t=n.source_component.insert({name:this.name,ftype:Ua.simple_push_button,supplier_part_numbers:e.supplierPartNumbers,are_pins_interchangeable:!0});this.source_component_id=t.source_component_id}},qnt=class extends Gn{get config(){return{schematicSymbolName:this.props.symbolName??(this.props.pinVariant==="four_pin"?"crystal_4pin":"crystal"),componentName:"Crystal",zodProps:FH,sourceFtype:"simple_crystal"}}initPorts(){let n=this.props.pinVariant==="four_pin"?{pin1:["left1","1"],pin2:["top1","2","gnd1"],pin3:["right1","3"],pin4:["bottom1","4","gnd2"]}:{pin1:["pos","left"],pin2:["neg","right"]};super.initPorts({additionalAliases:n})}_getSchematicSymbolDisplayValue(){let n=`${gi(this._parsedProps.frequency)}Hz`;return this._parsedProps.loadCapacitance?`${n} / ${gi(this._parsedProps.loadCapacitance)}F`:n}doInitialSourceRender(){let{db:n}=this.root,{_parsedProps:e}=this,t=n.source_component.insert({name:this.name,ftype:"simple_crystal",frequency:e.frequency,load_capacitance:e.loadCapacitance,pin_variant:e.pinVariant||"two_pin",are_pins_interchangeable:(e.pinVariant||"two_pin")==="two_pin"});this.source_component_id=t.source_component_id}},Znt=class extends Gn{get config(){let n=this.props.mosfetMode==="depletion"?"d":"e",t=`${this.props.channelType}_channel_${n}_mosfet_transistor`;return{componentName:"Mosfet",schematicSymbolName:this.props.symbolName??t,zodProps:QH,shouldRenderAsSchematicBox:!1}}doInitialSourceRender(){let{db:n}=this.root,{_parsedProps:e}=this,t=n.source_component.insert({ftype:"simple_mosfet",name:this.name,mosfet_mode:e.mosfetMode,channel_type:e.channelType});this.source_component_id=t.source_component_id}};function I7t(n){return n.simSwitchFrequency!==void 0||n.simCloseAt!==void 0||n.simOpenAt!==void 0||n.simStartClosed!==void 0||n.simStartOpen!==void 0}var Knt=class extends Gn{_getSwitchType(){let n=this._parsedProps;return n?n.dpdt?"dpdt":n.spst?"spst":n.spdt?"spdt":n.dpst?"dpst":n.type??"spst":"spst"}get config(){let n=this._getSwitchType(),e=this._parsedProps?.isNormallyClosed??!1,t={spst:e?"spst_normally_closed_switch":"spst_switch",spdt:e?"spdt_normally_closed_switch":"spdt_switch",dpst:e?"dpst_normally_closed_switch":"dpst_switch",dpdt:e?"dpdt_normally_closed_switch":"dpdt_switch"};return{componentName:"Switch",schematicSymbolName:this.props.symbolName??t[n],zodProps:sW,shouldRenderAsSchematicBox:!1}}doInitialSourceRender(){let{db:n}=this.root,e=this._parsedProps??{},t=n.source_component.insert({ftype:"simple_switch",name:this.name,are_pins_interchangeable:this._getSwitchType()==="spst"});this.source_component_id=t.source_component_id}doInitialSimulationRender(){let{_parsedProps:n}=this;if(!I7t(n))return;let{db:e}=this.root,t={type:"simulation_switch",source_component_id:this.source_component_id||""};n.simSwitchFrequency!==void 0&&(t.switching_frequency=ur.parse(n.simSwitchFrequency)),n.simCloseAt!==void 0&&(t.closes_at=lr.parse(n.simCloseAt)),n.simOpenAt!==void 0&&(t.opens_at=lr.parse(n.simOpenAt)),n.simStartOpen!==void 0&&(t.starts_closed=!n.simStartOpen),n.simStartClosed!==void 0&&(t.starts_closed=n.simStartClosed),e.simulation_switch.insert(t)}},QA={HOLE_DIAMETER:.5,SMT_CIRCLE_DIAMETER:1.2,SMT_RECT_SIZE:2},Jnt=class extends Gn{get config(){return{componentName:"TestPoint",schematicSymbolName:this.props.symbolName??"testpoint",zodProps:pW,sourceFtype:Ua.simple_test_point}}_getPropsWithDefaults(){let{padShape:n,holeDiameter:e,footprintVariant:t,padDiameter:i,width:r,height:s}=this._parsedProps;return!t&&e&&(t="through_hole"),t??(t="through_hole"),n??(n="circle"),t==="pad"?n==="circle"?i??(i=QA.SMT_CIRCLE_DIAMETER):n==="rect"&&(r??(r=QA.SMT_RECT_SIZE),s??(s=r)):t==="through_hole"&&(e??(e=QA.HOLE_DIAMETER)),{padShape:n,holeDiameter:e,footprintVariant:t,padDiameter:i,width:r,height:s}}_getImpliedFootprintString(){let{padShape:n,holeDiameter:e,footprintVariant:t,padDiameter:i,width:r,height:s}=this._getPropsWithDefaults();if(t==="through_hole")return`platedhole_d${e}`;if(t==="pad"){if(n==="circle")return`smtpad_circle_d${i}`;if(n==="rect")return`smtpad_rect_w${r}_h${s}`}throw new Error(`Footprint variant "${t}" with pad shape "${n}" not implemented`)}doInitialSourceRender(){let{db:n}=this.root,{_parsedProps:e}=this,{padShape:t,holeDiameter:i,footprintVariant:r,padDiameter:s,width:o,height:a}=this._getPropsWithDefaults(),c=n.source_component.insert({ftype:Ua.simple_test_point,name:this.name,supplier_part_numbers:e.supplierPartNumbers,footprint_variant:r,pad_shape:t,pad_diameter:s,hole_diameter:i,width:o,height:a,are_pins_interchangeable:!0});this.source_component_id=c.source_component_id}},Qnt=class extends Me{constructor(){super(...arguments);d(this,"isSchematicPrimitive",!0)}get config(){return{componentName:"SchematicText",zodProps:PW}}doInitialSchematicPrimitiveRender(){if(this.root?.schematicDisabled)return;let{db:e}=this.root,{_parsedProps:t}=this,i=this._getGlobalSchematicPositionBeforeLayout();e.schematic_text.insert({anchor:t.anchor??"center",text:t.text,font_size:t.fontSize,color:t.color||"#000000",position:{x:i.x,y:i.y},rotation:t.schRotation??0})}},tit=class extends Me{constructor(){super(...arguments);d(this,"isSchematicPrimitive",!0);d(this,"schematic_line_id")}get config(){return{componentName:"SchematicLine",zodProps:SW}}doInitialSchematicPrimitiveRender(){if(this.root?.schematicDisabled)return;let{db:e}=this.root,{_parsedProps:t}=this,i=this._getGlobalSchematicPositionBeforeLayout(),r=this.getPrimitiveContainer()?.parent?.schematic_component_id,s=e.schematic_line.insert({schematic_component_id:r,x1:t.x1+i.x,y1:t.y1+i.y,x2:t.x2+i.x,y2:t.y2+i.y,stroke_width:t.strokeWidth??sP,color:t.color??rP,is_dashed:!1,subcircuit_id:this.getSubcircuit().subcircuit_id??void 0});this.schematic_line_id=s.schematic_line_id}},eit=class extends Me{constructor(){super(...arguments);d(this,"isSchematicPrimitive",!0);d(this,"schematic_rect_id")}get config(){return{componentName:"SchematicRect",zodProps:wW}}doInitialSchematicPrimitiveRender(){if(this.root?.schematicDisabled)return;let{db:e}=this.root,{_parsedProps:t}=this,i=this._getGlobalSchematicPositionBeforeLayout(),r=this.getPrimitiveContainer()?.parent?.schematic_component_id,s=e.schematic_rect.insert({center:{x:i.x,y:i.y},width:t.width,height:t.height,stroke_width:t.strokeWidth??sP,color:t.color??rP,is_filled:t.isFilled,schematic_component_id:r,is_dashed:t.isDashed,rotation:t.rotation??0,subcircuit_id:this.getSubcircuit().subcircuit_id??void 0});this.schematic_rect_id=s.schematic_rect_id}},nit=class extends Me{constructor(){super(...arguments);d(this,"isSchematicPrimitive",!0);d(this,"schematic_arc_id")}get config(){return{componentName:"SchematicArc",zodProps:xW}}doInitialSchematicPrimitiveRender(){if(this.root?.schematicDisabled)return;let{db:e}=this.root,{_parsedProps:t}=this,i=this._getGlobalSchematicPositionBeforeLayout(),r=this.getPrimitiveContainer()?.parent?.schematic_component_id,s=e.schematic_arc.insert({schematic_component_id:r,center:{x:t.center.x+i.x,y:t.center.y+i.y},radius:t.radius,start_angle_degrees:t.startAngleDegrees,end_angle_degrees:t.endAngleDegrees,direction:t.direction,stroke_width:t.strokeWidth??sP,color:t.color??rP,is_dashed:t.isDashed,subcircuit_id:this.getSubcircuit().subcircuit_id??void 0});this.schematic_arc_id=s.schematic_arc_id}},iit=class extends Me{constructor(){super(...arguments);d(this,"isSchematicPrimitive",!0);d(this,"schematic_circle_id")}get config(){return{componentName:"SchematicCircle",zodProps:vW}}doInitialSchematicPrimitiveRender(){if(this.root?.schematicDisabled)return;let{db:e}=this.root,{_parsedProps:t}=this,i=this._getGlobalSchematicPositionBeforeLayout(),r=this.getPrimitiveContainer()?.parent?.schematic_component_id,s=e.schematic_circle.insert({schematic_component_id:r,center:{x:t.center.x+i.x,y:t.center.y+i.y},radius:t.radius,stroke_width:t.strokeWidth??sP,color:t.color??rP,is_filled:t.isFilled,fill_color:t.fillColor,is_dashed:t.isDashed,subcircuit_id:this.getSubcircuit().subcircuit_id??void 0});this.schematic_circle_id=s.schematic_circle_id}};function N7t({anchor:n,x:e,y:t,width:i,height:r,isInside:s}){switch(n){case"top_left":return{x:e,y:t+r,textAnchor:s?"top_left":"bottom_left"};case"top_center":return{x:e+i/2,y:t+r,textAnchor:s?"top_center":"bottom_center"};case"top_right":return{x:e+i,y:t+r,textAnchor:s?"top_right":"bottom_right"};case"center_left":return{x:e,y:t+r/2,textAnchor:s?"center_left":"center_right"};case"center":return{x:e+i/2,y:t+r/2,textAnchor:"center"};case"center_right":return{x:e+i,y:t+r/2,textAnchor:s?"center_right":"center_left"};case"bottom_left":return{x:e,y:t,textAnchor:s?"bottom_left":"top_left"};case"bottom_center":return{x:e+i/2,y:t,textAnchor:s?"bottom_center":"top_center"};case"bottom_right":return{x:e+i,y:t,textAnchor:s?"bottom_right":"top_right"};default:return{x:e+i/2,y:t+r,textAnchor:"center"}}}var rit=class extends Me{constructor(){super(...arguments);d(this,"isSchematicPrimitive",!0)}get config(){return{componentName:"SchematicBox",zodProps:bW,shouldRenderAsSchematicBox:!0}}doInitialSchematicPrimitiveRender(){if(this.root?.schematicDisabled)return;let{db:e}=this.root,{_parsedProps:t}=this,i=.6,r=typeof t.padding=="number"?t.padding:0,s=typeof t.paddingTop=="number"?t.paddingTop:r,o=typeof t.paddingBottom=="number"?t.paddingBottom:r,a=typeof t.paddingLeft=="number"?t.paddingLeft:r,c=typeof t.paddingRight=="number"?t.paddingRight:r,l=t.overlay&&t.overlay.length>0,u=typeof t.width=="number"&&typeof t.height=="number",h,f,_,g,x,v;if(l){let S=t.overlay.map(nt=>({selector:nt,port:this.getSubcircuit().selectOne(nt,{type:"port"})})).filter(({port:nt})=>nt!=null).map(({port:nt})=>({position:nt._getGlobalSchematicPositionAfterLayout()}));if(S.length===0)return;let T=S.map(nt=>nt.position.x),k=S.map(nt=>nt.position.y),C=Math.min(...T),M=Math.max(...T),I=Math.min(...k),E=Math.max(...k),A=M-C,R=E-I,j=A===0?i:0,B=R===0?i:0,V=a+j/2,U=c+j/2,H=s+B/2,et=o+B/2,tt=C-V,_t=M+U,G=I-et,J=E+H;h=_t-tt,f=J-G,_=tt+(t.schX??0),g=G+(t.schY??0),x=_+h/2,v=g+f/2}else if(u){h=t.width,f=t.height;let P=this._getGlobalSchematicPositionBeforeLayout();x=P.x,v=P.y,_=x-h/2,g=v-f/2}else return;if(e.schematic_box.insert({height:f,width:h,x:_,y:g,is_dashed:t.strokeStyle==="dashed"}),t.title){let P=t.titleInside,S=.1,T=t.titleAlignment,k=N7t({anchor:T,x:_,y:g,width:h,height:f,isInside:P}),C,M,I=k.textAnchor;P?(C=T.includes("top")?-S:T.includes("bottom")?S:0,M=T.includes("left")?S:T.includes("right")?-S:0):(C=T.includes("top")?S:T.includes("bottom")?-S:0,M=T.includes("center_left")?-S:T.includes("center_right")?S:0);let E=k.x+M,A=k.y+C;e.schematic_text.insert({anchor:I,text:t.title,font_size:t.titleFontSize??.18,color:t.titleColor??"#000000",position:{x:E,y:A},rotation:0})}}},sit=class extends Me{constructor(){super(...arguments);d(this,"isSchematicPrimitive",!0);d(this,"schematic_table_id",null)}get config(){return{componentName:"SchematicTable",zodProps:kW}}doInitialSchematicPrimitiveRender(){if(this.root?.schematicDisabled)return;let{db:e}=this.root,{_parsedProps:t}=this,i=this.children.filter(f=>f.componentName==="SchematicRow");if(i.length===0)return;let r=[],s=0;for(let f of i){let _=f.children.filter(g=>g.componentName==="SchematicCell");s=Math.max(s,_.length)}for(let f=0;f<i.length;f++)r[f]=[];for(let f=0;f<i.length;f++){let g=i[f].children.filter(v=>v.componentName==="SchematicCell"),x=0;for(let v=0;v<g.length;v++){for(;r[f][x];)x++;let P=g[v],S=P._parsedProps.colSpan??1,T=P._parsedProps.rowSpan??1;for(let k=0;k<T;k++)for(let C=0;C<S;C++)r[f+k]||(r[f+k]=[]),r[f+k][x+C]=P;x+=S}}s=Math.max(0,...r.map(f=>f.length));let o=i.map((f,_)=>f._parsedProps.height??1),a=Array.from({length:s},(f,_)=>{let g=0;for(let x=0;x<i.length;x++){let v=r[x]?.[_];if(v){let P=v._parsedProps.text??v._parsedProps.children,S=v._parsedProps.width??(P?.length??2)*.5;S>g&&(g=S)}}return g||10}),c=this._getGlobalSchematicPositionBeforeLayout(),l=e.schematic_table.insert({anchor_position:c,column_widths:a,row_heights:o,cell_padding:t.cellPadding,border_width:t.borderWidth,anchor:t.anchor,subcircuit_id:this.getSubcircuit()?.subcircuit_id||"",schematic_component_id:this.parent?.schematic_component_id||""});this.schematic_table_id=l.schematic_table_id;let u=new Set,h=0;for(let f=0;f<i.length;f++){let _=0;for(let g=0;g<s;g++){let x=r[f]?.[g];if(x&&!u.has(x)){u.add(x);let v=x._parsedProps,P=v.rowSpan??1,S=v.colSpan??1,T=0;for(let C=0;C<S;C++)T+=a[g+C];let k=0;for(let C=0;C<P;C++)k+=o[f+C];e.schematic_table_cell.insert({schematic_table_id:this.schematic_table_id,start_row_index:f,end_row_index:f+P-1,start_column_index:g,end_column_index:g+S-1,text:v.text??v.children,center:{x:c.x+_+T/2,y:c.y-h-k/2},width:T,height:k,horizontal_align:v.horizontalAlign,vertical_align:v.verticalAlign,font_size:v.fontSize??t.fontSize,subcircuit_id:this.getSubcircuit()?.subcircuit_id||""})}a[g]&&(_+=a[g])}h+=o[f]}}},oit=class extends Me{constructor(){super(...arguments);d(this,"isSchematicPrimitive",!0)}get config(){return{componentName:"SchematicRow",zodProps:TW}}},ait=class extends Me{constructor(){super(...arguments);d(this,"isSchematicPrimitive",!0);d(this,"canHaveTextChildren",!0)}get config(){return{componentName:"SchematicCell",zodProps:MW}}},cit=class extends Me{constructor(){super(...arguments);d(this,"isPrimitiveContainer",!0)}get config(){return{componentName:"Symbol",zodProps:GH}}},lit=class extends Me{get config(){return{componentName:"AnalogSimulation",zodProps:KH}}doInitialSimulationRender(){let{db:n}=this.root,{duration:e,timePerStep:t}=this._parsedProps,i=e||10,r=t||.01;n.simulation_experiment.insert({name:"spice_transient_analysis",experiment_type:"spice_transient_analysis",end_time_ms:i,time_per_step:r})}},uit=class extends Me{constructor(){super(...arguments);d(this,"simulation_voltage_probe_id",null);d(this,"schematic_voltage_probe_id",null);d(this,"finalProbeName",null);d(this,"color",null)}get config(){return{componentName:"VoltageProbe",zodProps:gW}}doInitialSimulationRender(){let{db:e}=this.root,{connectsTo:t,name:i}=this._parsedProps,r=this.getSubcircuit();if(!r){this.renderError("VoltageProbe must be inside a subcircuit");return}let s=Array.isArray(t)?t:[t];if(s.length!==1){this.renderError("VoltageProbe must connect to exactly one port or net");return}let o=s[0],a=r.selectOne(o,{type:"port"}),c=a?null:r.selectOne(o,{type:"net"});if(c&&c.componentName!=="Net"){this.renderError(`VoltageProbe connection target "${o}" resolved to a non-net component "${c.componentName}".`);return}if(!a&&!c){this.renderError(`VoltageProbe could not find connection target "${o}"`);return}let l=a?.source_port_id??c?.source_net_id;if(!l){this.renderError("Could not identify connected source for VoltageProbe");return}this.color=i7t(l);let u=i;u||(u=s[0].split(" > ").map(f=>f.replace(/^\./,"")).join(".")),this.finalProbeName=u;let{simulation_voltage_probe_id:h}=e.simulation_voltage_probe.insert({name:u,source_port_id:a?.source_port_id??void 0,source_net_id:c?.source_net_id??void 0,subcircuit_id:r.subcircuit_id||void 0,color:this.color});this.simulation_voltage_probe_id=h}doInitialSchematicReplaceNetLabelsWithSymbols(){if(this.root?.schematicDisabled)return;let{db:e}=this.root,{connectsTo:t,name:i}=this._parsedProps,r=this.getSubcircuit();if(!r)return;let s=Array.isArray(t)?t:[t];if(s.length!==1)return;let o=s[0],a=r.selectOne(o,{type:"port"});if(!a||!a.schematic_port_id)return;let c=a._getGlobalSchematicPositionAfterLayout(),l=null;for(let f of e.schematic_trace.list()){for(let _ of f.edges)if(Math.abs(_.from.x-c.x)<1e-6&&Math.abs(_.from.y-c.y)<1e-6||Math.abs(_.to.x-c.x)<1e-6&&Math.abs(_.to.y-c.y)<1e-6){l=f.schematic_trace_id;break}if(l)break}if(!l)return;let u=this.finalProbeName,h=e.schematic_voltage_probe.insert({name:u,position:c,schematic_trace_id:l,subcircuit_id:r.subcircuit_id||void 0,color:this.color??void 0});this.schematic_voltage_probe_id=h.schematic_voltage_probe_id}},A7t={name:"@tscircuit/core",type:"module",version:"0.0.876",types:"dist/index.d.ts",main:"dist/index.js",module:"dist/index.js",exports:{".":{import:"./dist/index.js",types:"./dist/index.d.ts"}},files:["dist"],repository:{type:"git",url:"https://github.com/tscircuit/core"},scripts:{build:"tsup-node index.ts --format esm --dts",format:"biome format . --write","measure-bundle":"howfat -r table .","pkg-pr-new-release":"bunx pkg-pr-new publish --comment=off --peerDeps","smoke-test:dist":"bun run scripts/smoke-tests/test-dist-simple-circuit.tsx","build:benchmarking":"bun build --experimental-html ./benchmarking/website/index.html --outdir ./benchmarking-dist","build:benchmarking:watch":`chokidar "./{benchmarking,lib}/**/*.{ts,tsx}" -c 'bun build --experimental-html ./benchmarking/website/index.html --outdir ./benchmarking-dist'`,"start:benchmarking":'concurrently "bun run build:benchmarking:watch" "live-server ./benchmarking-dist"',"generate-test-plan":"bun run scripts/generate-test-plan.ts"},devDependencies:{"@biomejs/biome":"^1.8.3","@resvg/resvg-js":"^2.6.2","@tscircuit/capacity-autorouter":"^0.0.140","@tscircuit/checks":"^0.0.87","@tscircuit/circuit-json-util":"^0.0.72","@tscircuit/common":"^0.0.20","@tscircuit/copper-pour-solver":"^0.0.14","@tscircuit/footprinter":"^0.0.236","@tscircuit/import-snippet":"^0.0.4","@tscircuit/infgrid-ijump-astar":"^0.0.33","@tscircuit/log-soup":"^1.0.2","@tscircuit/matchpack":"^0.0.16","@tscircuit/math-utils":"^0.0.29","@tscircuit/miniflex":"^0.0.4","@tscircuit/ngspice-spice-engine":"^0.0.4","@tscircuit/props":"^0.0.410","@tscircuit/schematic-autolayout":"^0.0.6","@tscircuit/schematic-match-adapt":"^0.0.16","@tscircuit/schematic-trace-solver":"^v0.0.45","@tscircuit/solver-utils":"^0.0.3","@types/bun":"^1.2.16","@types/debug":"^4.1.12","@types/react":"^19.1.8","@types/react-dom":"^19.1.6","@types/react-reconciler":"^0.28.9","bpc-graph":"^0.0.57","bun-match-svg":"0.0.12","calculate-elbow":"^0.0.12","chokidar-cli":"^3.0.0","circuit-json":"^0.0.321","circuit-json-to-bpc":"^0.0.13","circuit-json-to-connectivity-map":"^0.0.22","circuit-json-to-gltf":"^0.0.31","circuit-json-to-simple-3d":"^0.0.9","circuit-json-to-spice":"^0.0.25","circuit-to-svg":"^0.0.277",concurrently:"^9.1.2","connectivity-map":"^1.0.0",debug:"^4.3.6","eecircuit-engine":"^1.5.6",flatbush:"^4.5.0","graphics-debug":"^0.0.60",howfat:"^0.3.8","live-server":"^1.2.2","looks-same":"^9.0.1",minicssgrid:"^0.0.9","pkg-pr-new":"^0.0.37",poppygl:"^0.0.16",react:"^19.1.0","react-dom":"^19.1.0","schematic-symbols":"^0.0.202",spicey:"^0.0.14","ts-expect":"^1.3.0",tsup:"^8.2.4"},peerDependencies:{"@tscircuit/capacity-autorouter":"*","@tscircuit/checks":"*","@tscircuit/circuit-json-util":"*","@tscircuit/footprinter":"*","@tscircuit/infgrid-ijump-astar":"*","@tscircuit/math-utils":"*","@tscircuit/props":"*","@tscircuit/schematic-autolayout":"*","@tscircuit/schematic-match-adapt":"*","circuit-json-to-bpc":"*","bpc-graph":"*","@tscircuit/matchpack":"*","circuit-json":"*","circuit-json-to-connectivity-map":"*","schematic-symbols":"*",typescript:"^5.0.0"},dependencies:{"@flatten-js/core":"^1.6.2","@lume/kiwi":"^0.4.3","calculate-packing":"0.0.50","css-select":"5.1.0","format-si-unit":"^0.0.3",nanoid:"^5.0.7","performance-now":"^2.1.0","react-reconciler":"^0.32.0","transformation-matrix":"^2.16.1",zod:"^3.25.67"}},Z_=class{constructor({platform:n,projectUrl:e}={}){d(this,"firstChild",null);d(this,"children");d(this,"db");d(this,"root",null);d(this,"isRoot",!0);d(this,"_schematicDisabledOverride");d(this,"pcbDisabled",!1);d(this,"pcbRoutingDisabled",!1);d(this,"_featureMspSchematicTraceRouting",!0);d(this,"name");d(this,"platform");d(this,"projectUrl");d(this,"_hasRenderedAtleastOnce",!1);d(this,"_eventListeners",{});this.children=[],this.db=Ee([]),this.root=this,this.platform=n,this.projectUrl=e,this.pcbDisabled=n?.pcbDisabled??!1}get schematicDisabled(){return this._schematicDisabledOverride!==void 0?this._schematicDisabledOverride:this._getBoard()?._parsedProps?.schematicDisabled??!1}set schematicDisabled(n){this._schematicDisabledOverride=n}add(n){let e;(0,pit.isValidElement)(n)?e=Het(n):e=n,this.children.push(e)}setPlatform(n){this.platform={...this.platform,...n}}_getBoard(){let n=this.children.find(e=>e.componentName==="Board");if(n)return n}_guessRootComponent(){if(this.firstChild)return;if(this.children.length===0)throw new Error("Not able to guess root component: RootCircuit has no children (use circuit.add(...))");let n=this.children.filter(t=>t.lowercaseComponentName==="panel");if(n.length>1)throw new Error("Only one <panel> is allowed per circuit");if(n.length===1){if(this.children.length!==1)throw new Error("<panel> must be the root element of the circuit");this.firstChild=n[0];return}if(this.children.length===1&&this.children[0].isGroup){this.firstChild=this.children[0];return}let e=new ml({subcircuit:!0});e.parent=this,e.addAll(this.children),this.children=[e],this.firstChild=e}render(){this.firstChild||this._guessRootComponent();let{firstChild:n,db:e}=this;if(!n)throw new Error("RootCircuit has no root component");n.parent=this,n.runRenderCycle(),this._hasRenderedAtleastOnce=!0}async renderUntilSettled(){for(this.db.source_project_metadata.list()?.[0]||this.db.source_project_metadata.insert({software_used_string:`@tscircuit/core@${this.getCoreVersion()}`,...this.projectUrl?{project_url:this.projectUrl}:{}}),this.render();this._hasIncompleteAsyncEffects();)await new Promise(e=>setTimeout(e,100)),this.render();this.emit("renderComplete")}_hasIncompleteAsyncEffects(){return this.children.some(n=>n._hasIncompleteAsyncEffects()?!0:n.children.some(e=>e._hasIncompleteAsyncEffects()))}getCircuitJson(){return this._hasRenderedAtleastOnce||this.render(),this.db.toArray()}toJson(){return this.getCircuitJson()}async getSvg(n){let e=await Promise.resolve().then(()=>(pet(),uet)).catch(t=>{throw new Error(`To use circuit.getSvg, you must install the "circuit-to-svg" package.
|
|
252
252
|
|
|
253
253
|
"${t.message}"`)});if(n.view==="pcb")return e.convertCircuitJsonToPcbSvg(this.getCircuitJson());if(n.view==="schematic")return e.convertCircuitJsonToSchematicSvg(this.getCircuitJson());throw new Error(`Invalid view: ${n.view}`)}getCoreVersion(){let[n,e,t]=A7t.version.split(".").map(Number);return`${n}.${e}.${t+1}`}async preview(n){let e=typeof n=="object"?n:{previewName:n};throw new Error("project.preview is not yet implemented")}computeSchematicGlobalTransform(){return Sr()}_computePcbGlobalTransformBeforeLayout(){return Sr()}selectAll(n){return this._guessRootComponent(),this.firstChild?.selectAll(n)??[]}selectOne(n,e){return this._guessRootComponent(),this.firstChild?.selectOne(n,e)??null}emit(n,...e){if(this._eventListeners[n])for(let t of this._eventListeners[n])t(...e)}on(n,e){this._eventListeners[n]||(this._eventListeners[n]=[]),this._eventListeners[n].push(e)}removeListener(n,e){this._eventListeners[n]&&(this._eventListeners[n]=this._eventListeners[n].filter(t=>t!==e))}enableDebug(n){typeof n=="string"?c9.default.enable(n):(n===null||n===!1)&&c9.default.disable()}getClientOrigin(){return typeof window<"u"&&window.location?window.location.origin:typeof self<"u"&&self.location?self.location.origin:""}},R7t=Z_,O7t=Z_,L7t=n=>{let[e,t]=U_.default.useState(!0),[i,r]=U_.default.useState(null),[s,o]=U_.default.useState(),[a,c]=U_.default.useState();return U_.default.useEffect(()=>{t(!0),r(null),n&&setTimeout(()=>{try{let l=new Z_;l.add(n),o(l),c(l.toJson())}catch(l){r(l)}t(!1)},1)},[n]),{isLoading:e,error:i,circuit:s,circuitJson:a}},K_=(n,e)=>(t,i)=>{let r=[];Array.isArray(e)?r.push(...e.flat()):typeof e=="object"&&r.push(...Object.values(e).flat(),...Object.keys(e));let s=o=>{if(o?.name&&o.name!==t)throw new Error(`Component name mismatch. Hook name: ${t}, Component prop name: ${o.name}`);let a={...i,...o,name:t},c=[];for(let l of r)if(a[l]){let u=`.${t} > .${l}`,h=a[l];c.push({from:u,to:h}),delete a[l]}return(0,Id.jsxs)(Id.Fragment,{children:[(0,Id.jsx)(n,{...a}),c.map((l,u)=>(0,Id.jsx)("trace",{...l},u))]})};for(let o of r)s[o]=`.${t} > .${o}`;return s},F7t=K_(n=>(0,hit.jsx)("capacitor",{...n}),DH),z7t=n=>K_(e=>(0,dit.jsx)("chip",{pinLabels:n,...e}),n),$7t=K_(n=>(0,fit.jsx)("diode",{...n}),nW),D7t=K_(n=>(0,mit.jsx)("led",{...n}),rW),j7t=K_(n=>(0,_it.jsx)("resistor",{...n}),OH),B7t=new Proxy(n=>new Proxy({},{get:(e,t)=>`.${n} > .${t}`}),{get:(n,e)=>{let t=(...i)=>{let r=i[0];return new Proxy({},{get:(s,o)=>`.${e} > .${o}`})};return new Proxy(t,{get:(i,r)=>e==="net"?`net.${r}`:e==="subcircuit"?new Proxy({},{get:(s,o)=>new Proxy({},{get:(a,c)=>`subcircuit.${r} > .${o} > .${c}`})}):`.${e} > .${r}`,apply:(i,r,s)=>e==="net"?new Proxy({},{get:(o,a)=>`net.${a}`}):new Proxy({},{get:(o,a)=>{let c=`.${e} > .${a}`;return["U","J","CN"].some(u=>e.startsWith(u))?c:new Proxy(new String(c),{get:(u,h)=>typeof h=="symbol"||h==="toString"?()=>c:`.${e} > .${a} > .${h}`})}})})}});Get(Bet);Get({Bug:X1});var zit=Gt(Ws(),1);var git=n=>{let e=n.match(/:[RC]_(\d{4})_/);if(e||(e=n.match(/:(SOIC-\d+|SOT-\d+|SOD-\d+|SSOP-\d+|TSSOP-\d+|QFP-\d+|QFN-\d+)/),e))return e[1]};var S9=n=>n.includes("cap")?n.replace(/cap/g,""):n;var xit=n=>{if(n){if(n.startsWith("kicad:")){let e=git(n);return e?S9(e):n}return S9(n)}};var P9=new Map,Tr=async(n,e)=>{let t=new URLSearchParams({...e,json:"true"}).toString();if(P9.has(t))return P9.get(t);let r=await(await fetch(`https://jlcsearch.tscircuit.com/${n}/list?${t}`)).json();return P9.set(t,r),r},Mr=n=>n?[...n].sort((e,t)=>Number(t.is_basic??!1)-Number(e.is_basic??!1)):[],bit={findPart:async({sourceComponent:n,footprinterString:e})=>{let t=xit(e);if(n.type==="source_component"&&n.ftype==="simple_resistor"){let{resistors:i}=await Tr("resistors",{resistance:n.resistance,package:t});return{jlcpcb:Mr(i).map(r=>`C${r.lcsc}`).slice(0,3)}}else if(n.type==="source_component"&&n.ftype==="simple_capacitor"){let{capacitors:i}=await Tr("capacitors",{capacitance:n.capacitance,package:t});return{jlcpcb:Mr(i).map(r=>`C${r.lcsc}`).slice(0,3)}}else if(n.type==="source_component"&&n.ftype==="simple_pin_header"){let i;e?.includes("_p")&&(i=Number(e.split("_p")[1]));let{headers:r}=await Tr("headers",i?{pitch:i,num_pins:n.pin_count,gender:n.gender}:{num_pins:n.pin_count,gender:n.gender});return{jlcpcb:Mr(r).map(s=>`C${s.lcsc}`).slice(0,3)}}else if(n.type==="source_component"&&n.ftype==="simple_potentiometer"){let{potentiometers:i}=await Tr("potentiometers",{resistance:n.max_resistance,package:t});return{jlcpcb:Mr(i).map(r=>`C${r.lcsc}`).slice(0,3)}}else if(n.type==="source_component"&&n.ftype==="simple_diode"){let{diodes:i}=await Tr("diodes",{package:t});return{jlcpcb:Mr(i).map(r=>`C${r.lcsc}`).slice(0,3)}}else if(n.type==="source_component"&&n.ftype==="simple_chip"){let{chips:i}=await Tr("chips",{package:t});return{jlcpcb:Mr(i).map(r=>`C${r.lcsc}`).slice(0,3)}}else if(n.type==="source_component"&&n.ftype==="simple_transistor"){let{transistors:i}=await Tr("transistors",{package:t,transistor_type:n.transistor_type});return{jlcpcb:Mr(i).map(r=>`C${r.lcsc}`).slice(0,3)}}else if(n.type==="source_component"&&n.ftype==="simple_power_source"){let{power_sources:i}=await Tr("power_sources",{voltage:n.voltage,package:t});return{jlcpcb:Mr(i).map(r=>`C${r.lcsc}`).slice(0,3)}}else if(n.type==="source_component"&&n.ftype==="simple_inductor"){let{inductors:i}=await Tr("inductors",{inductance:n.inductance,package:t});return{jlcpcb:Mr(i).map(r=>`C${r.lcsc}`).slice(0,3)}}else if(n.type==="source_component"&&n.ftype==="simple_crystal"){let{crystals:i}=await Tr("crystals",{frequency:n.frequency,load_capacitance:n.load_capacitance,package:t});return{jlcpcb:Mr(i).map(r=>`C${r.lcsc}`).slice(0,3)}}else if(n.type==="source_component"&&n.ftype==="simple_mosfet"){let{mosfets:i}=await Tr("mosfets",{package:t,mosfet_mode:n.mosfet_mode,channel_type:n.channel_type});return{jlcpcb:Mr(i).map(r=>`C${r.lcsc}`).slice(0,3)}}else if(n.type==="source_component"&&n.ftype==="simple_resonator"){let{resonators:i}=await Tr("resonators",{frequency:n.frequency,package:t});return{jlcpcb:Mr(i).map(r=>`C${r.lcsc}`).slice(0,3)}}else if(n.type==="source_component"&&n.ftype==="simple_switch"){let{switches:i}=await Tr("switches",{switch_type:n.type,package:t});return{jlcpcb:Mr(i).map(r=>`C${r.lcsc}`).slice(0,3)}}else if(n.type==="source_component"&&n.ftype==="simple_led"){let{leds:i}=await Tr("leds",{package:t});return{jlcpcb:Mr(i).map(r=>`C${r.lcsc}`).slice(0,3)}}else if(n.type==="source_component"&&n.ftype==="simple_fuse"){let{fuses:i}=await Tr("fuses",{package:t});return{jlcpcb:Mr(i).map(r=>`C${r.lcsc}`).slice(0,3)}}return{}}};var kit=Gt(vit(),1);Q();var Iit=Gt(En(),1),Nit=Gt(En(),1),xi=p.tuple([p.coerce.number(),p.coerce.number()]),K7t=p.tuple([p.number(),p.number(),p.number()]),pP=p.union([xi,K7t]),J7t=p.object({kind:p.literal("arc"),start:xi,mid:xi,end:xi}),Q7t=p.union([xi,J7t]),Tit=p.object({at:pP,size:xi,layer:p.string(),layers:p.array(p.string()),roundrect_rratio:p.number(),uuid:p.string()}).partial(),tFt=p.object({key:p.string(),val:p.string(),attributes:Tit}),cP=p.object({oval:p.boolean().default(!1),width:p.number().optional(),height:p.number().optional(),offset:xi.optional()}),Mit=p.object({name:p.string(),pad_type:p.enum(["thru_hole","smd","np_thru_hole","connect"]),pad_shape:p.enum(["roundrect","circle","rect","oval","trapezoid","custom"]),at:pP,drill:p.union([p.number(),p.array(p.any()),cP]).transform(n=>typeof n=="number"?{oval:!1,width:n,height:n}:"oval"in n?n:n.length===2?{oval:!1,width:Number.parseFloat(n[0]),height:Number.parseFloat(n[0]),offset:xi.parse(n[1].slice(1))}:n.length===3||n.length===4?{oval:n[0]==="oval",width:Number.parseFloat(n[1]),height:Number.parseFloat(n[2]),offset:n[3]?xi.parse(n[3].slice(1)):void 0}:n).pipe(cP),size:p.union([p.array(p.number()).length(2).transform(([n,e])=>({width:n,height:e})),p.object({width:p.number(),height:p.number()})]),layers:p.array(p.string()).optional(),roundrect_rratio:p.number().optional(),uuid:p.string().optional()}),Eit=p.object({name:p.string(),pad_type:p.enum(["thru_hole","smd","np_thru_hole","connect"]),pad_shape:p.enum(["roundrect","circle","rect","oval","trapezoid","custom"]),at:pP,size:xi,drill:p.union([p.number(),p.array(p.any()),cP]).transform(n=>typeof n=="number"?{oval:!1,width:n,height:n}:"oval"in n?n:n.length===2?{oval:!1,width:Number.parseFloat(n[0]),height:Number.parseFloat(n[0]),offset:xi.parse(n[1].slice(1))}:n.length===3||n.length===4?{oval:n[0]==="oval",width:Number.parseFloat(n[1]),height:Number.parseFloat(n[2]),offset:n[3]?xi.parse(n[3].slice(1)):void 0}:n).pipe(cP).optional(),layers:p.array(p.string()).optional(),roundrect_rratio:p.number().optional(),chamfer_ratio:p.number().optional(),solder_paste_margin:p.number().optional(),solder_paste_margin_ratio:p.number().optional(),clearance:p.number().optional(),zone_connection:p.union([p.literal(0).describe("Pad is not connect to zone"),p.literal(1).describe("Pad is connected to zone using thermal relief"),p.literal(2).describe("Pad is connected to zone using solid fill")]).optional(),thermal_width:p.number().optional(),thermal_gap:p.number().optional(),uuid:p.string().optional()}),Cit=p.object({font:p.object({size:xi,thickness:p.number().optional()})}).partial(),eFt=p.object({fp_text_type:p.literal("user"),text:p.string(),at:pP,layer:p.string(),uuid:p.string().optional(),effects:Cit.partial()}),nFt=p.object({start:xi,mid:xi,end:xi,stroke:p.object({width:p.number(),type:p.string()}),layer:p.string(),uuid:p.string().optional()}),iFt=p.object({center:xi,end:xi,stroke:p.object({width:p.number(),type:p.string()}),fill:p.string().optional(),layer:p.string(),uuid:p.string().optional()}),rFt=p.object({pts:p.array(Q7t),stroke:p.object({width:p.number(),type:p.string()}).optional(),width:p.number().optional(),layer:p.string(),uuid:p.string().optional(),fill:p.string().optional()}).transform(n=>({...n,width:void 0,stroke:n.stroke??{width:n.width}})),sFt=p.object({start:xi,end:xi,stroke:p.object({width:p.number(),type:p.string()}).optional(),width:p.number().optional(),layer:p.string(),uuid:p.string().optional()}).transform(n=>({...n,width:void 0,stroke:n.stroke??{width:n.width}})),wit=p.object({footprint_name:p.string(),version:p.string().optional(),generator:p.string().optional(),generator_version:p.string().optional(),layer:p.string(),descr:p.string().default(""),tags:p.array(p.string()).optional(),properties:p.array(tFt),fp_lines:p.array(sFt),fp_texts:p.array(eFt),fp_arcs:p.array(nFt),fp_circles:p.array(iFt).optional(),fp_polys:p.array(rFt).optional(),pads:p.array(Eit),holes:p.array(Mit).optional()}),lP=(n,e)=>{if(e==="effects"&&Array.isArray(n)){let t={};for(let i of n)if(i[0]==="font"){let r={};for(let s of i.slice(1))s.length===2?r[s[0].valueOf()]=Number.parseFloat(s[1].valueOf()):r[s[0].valueOf()]=s.slice(1).map(o=>Number.parseFloat(o.valueOf()));t.font=r}return Cit.parse(t)}if(e==="pts")return n.map(t=>{let i=t[0]?.valueOf?.()??t[0];if(i==="xy")return t.slice(1).map(r=>Number.parseFloat(r.valueOf()));if(i==="arc"){let r={kind:"arc"};for(let s of t.slice(1)){let o=s[0].valueOf();r[o]=s.slice(1).map(a=>Number.parseFloat(a.valueOf()))}return r}return t});if(e==="stroke"){let t={};for(let i of n){let r=i[0].valueOf();t[r]=lP(i.slice(1),r)}return t}return e==="at"||e==="size"||e==="start"||e==="mid"||e==="end"?(Array.isArray(n)?n:[n]).map(i=>i?.valueOf?.()??i).filter(i=>typeof i=="number"||typeof i=="string"&&/^[-+]?\d*\.?\d+(e[-+]?\d+)?$/i.test(i)).map(i=>typeof i=="number"?i:Number.parseFloat(i)):e==="tags"?n.map(t=>t.valueOf()):e==="generator_version"||e==="version"?n[0].valueOf():n.length===2?n.valueOf():e==="uuid"?Array.isArray(n)?n[0].valueOf():n.valueOf():/^[\d\.]+$/.test(n)&&!Number.isNaN(Number.parseFloat(n))?Number.parseFloat(n):Array.isArray(n)&&n.length===1?n[0].valueOf():Array.isArray(n)?n.map(t=>t.valueOf()):n},Be=(n,e)=>{for(let t of n)if(Array.isArray(t)&&t[0]===e)return lP(t.slice(1),e)},k9=(0,Iit.default)("kicad-mod-converter"),oFt=n=>{let e=(0,kit.default)(n),t=e[1].valueOf(),i={},r=Object.entries(wit.shape).filter(([T,k])=>k._def.typeName==="ZodString"||T==="tags").map(([T])=>T);for(let T of e.slice(2)){if(!r.includes(T[0]))continue;let k=T[0].valueOf(),C=lP(T.slice(1),k);i[k]=C}let s=e.slice(2).filter(T=>T[0]==="property").map(T=>{let k=T[1].valueOf(),C=T[2].valueOf(),M=Tit.parse(T.slice(3).reduce((I,E)=>{let A=E[0].valueOf();return I[A]=lP(E.slice(1),A),I},{}));return{key:k,val:C,attributes:M}}),o=e.slice(2).filter(T=>T[0]==="pad"),a=[];for(let T of o){let k=Be(T,"at"),C=Be(T,"size"),M=Be(T,"drill"),I=Be(T,"layers");if(Array.isArray(I)?I=I.map(j=>j.valueOf()):typeof I=="string"?I=[I]:I||(I=[]),!I.includes("F.Cu")){k9(`Skipping pad without F.Cu layer: layers=${I.join(", ")}`);continue}let E=Be(T,"roundrect_rratio"),A=Be(T,"uuid"),R={name:T[1].valueOf(),pad_type:T[2].valueOf(),pad_shape:T[3].valueOf(),at:k,drill:M,size:C,layers:I,roundrect_rratio:E,uuid:A};k9(`attempting to parse pad: ${JSON.stringify(R,null," ")}`),a.push(Eit.parse(R))}let c=e.slice(2).filter(T=>T[0]==="fp_text"),l=[];for(let T of c){let k=T[2].valueOf(),C=Be(T,"at"),M=Be(T,"layer"),I=Be(T,"uuid"),E=Be(T,"effects");l.push({fp_text_type:"user",text:k,at:C,layer:M,uuid:I,effects:E})}let u=[],h=e.slice(2).filter(T=>T[0]==="fp_line");for(let T of h){let k=Be(T,"start"),C=Be(T,"end"),M=Be(T,"stroke"),I=Be(T,"layer"),E=Be(T,"uuid");u.push({start:k,end:C,stroke:M,layer:I,uuid:E})}let f=[],_=e.slice(2).filter(T=>T[0]==="fp_arc");for(let T of _){let k=Be(T,"start"),C=Be(T,"mid"),M=Be(T,"end"),I=Be(T,"stroke"),E=Be(T,"layer"),A=Be(T,"uuid");!k||!M||!C||!I||!E||f.push({start:k,mid:C,end:M,stroke:I,layer:E,uuid:A})}let g=[],x=e.slice(2).filter(T=>T[0]==="fp_circle");for(let T of x){let k=Be(T,"center"),C=Be(T,"end"),M=Be(T,"stroke"),I=Be(T,"fill"),E=Be(T,"layer"),A=Be(T,"uuid");!k||!C||!M||!E||g.push({center:k,end:C,stroke:M,fill:I,layer:E,uuid:A})}let v=[],P=e.slice(2).filter(T=>T[0]==="fp_poly");for(let T of P){let k=Be(T,"pts"),C=Be(T,"stroke"),M=Be(T,"width"),I=Be(T,"layer"),E=Be(T,"uuid"),A=Be(T,"fill"),R=C;!R&&typeof M=="number"?R={width:M,type:"solid"}:R&&typeof R=="object"&&typeof M=="number"&&R.width===void 0&&(R={...R,width:M}),v.push({pts:k,stroke:R,layer:I,uuid:E,fill:A})}let S=[];for(let T of e.slice(2)){if(T[0]!=="pad"||T[2]?.valueOf?.()!=="thru_hole")continue;let k=T[1]?.valueOf?.(),C=T[2]?.valueOf?.(),M=T[3]?.valueOf?.(),I=Be(T,"at"),E=Be(T,"drill"),A=Be(T,"size");Array.isArray(A)&&(A[0]==="size"&&(A=A.slice(1)),A={width:Number(A[0]),height:Number(A[1])});let R=Be(T,"uuid"),j=Be(T,"roundrect_rratio"),B=Be(T,"layers");Array.isArray(B)?B=B.map(U=>U.valueOf()):typeof B=="string"?B=[B]:B||(B=[]);let V={name:k,pad_type:C,pad_shape:M,at:I,drill:E,size:A,layers:B,roundrect_rratio:j,uuid:R};k9(`attempting to parse holes: ${JSON.stringify(V,null,2)}`),S.push(Mit.parse(V))}return wit.parse({footprint_name:t,...i,properties:s,fp_lines:u,fp_texts:l,fp_arcs:f,fp_circles:g,pads:a,holes:S,fp_polys:v})},U1=Math.PI*2,Sit=n=>{let e=n%U1;return e<0&&(e+=U1),e},uP=(n,e)=>{let t=Sit(n),r=Sit(e)-t;return r<0&&(r+=U1),r};function Ait(n,e,t){let i={x:(n.x+e.x)/2,y:(n.y+e.y)/2},r={x:(e.x+t.x)/2,y:(e.y+t.y)/2},s=-(n.x-e.x)/(n.y-e.y),o=-(e.x-t.x)/(e.y-t.y),a=(i.y-r.y+o*r.x-s*i.x)/(o-s),c=i.y+s*(a-i.x);return{x:a,y:c}}function Rit(n,e){return Math.sqrt((n.x-e.x)**2+(n.y-e.y)**2)}function Q_(n,e){return Math.atan2(e.y-n.y,e.x-n.x)}var C9=(n,e,t)=>{let i=Ait(n,e,t),r=Rit(i,n),s=Q_(i,n),o=Q_(i,e),a=Q_(i,t),c=uP(s,o),l=uP(s,a),u=l;return c>l&&(u=l-U1),Math.abs(r*u)};function I9(n,e,t,i){let r=Ait(n,e,t),s=Rit(r,n),o=Q_(r,n),a=Q_(r,e),c=Q_(r,t),l=uP(o,a),u=uP(o,c),h=u;l>u&&(h=u-U1);let f=[];for(let _=0;_<=i;_++){let g=o+_/i*h,x=r.x+s*Math.cos(g),v=r.y+s*Math.sin(g);f.push({x,y:v})}return f}var _l=n=>Array.isArray(n)?{x:n[0],y:n[1]}:n,T9=(n,e,t=1e-4)=>Math.abs(n.x-e.x)<t&&Math.abs(n.y-e.y)<t,aFt=n=>{let e=[],t=new Set;for(let i=0;i<n.length;i++){if(t.has(i))continue;let r=[n[i]];t.add(i);let s=n[i].end,o=!0;for(;o;){if(o=!1,r.length>1&&T9(s,r[0].start)){e.push(r);break}for(let a=0;a<n.length;a++)if(!t.has(a)){if(T9(s,n[a].start)){r.push(n[a]),t.add(a),s=n[a].end,o=!0;break}else if(T9(s,n[a].end)){n[a].type==="arc"?r.push({...n[a],reversed:!0}):r.push({...n[a],start:n[a].end,end:n[a].start}),t.add(a),s=n[a].start,o=!0;break}}if(!o){for(let a=r.length-1;a>=0;a--){let c=n.indexOf(r[a]);c!==-1&&t.delete(c)}break}}}return e},cFt=n=>{let e=[];for(let t of n)if(t.type==="line")e.push(t.start);else if(t.type==="arc"&&t.mid){let i=C9(t.start,t.mid,t.end),r=Math.max(3,Math.ceil(i)),s=I9(t.start,t.mid,t.end,r);t.reversed&&(s=s.reverse()),e.push(...s.slice(0,-1))}return e};function lFt(n){if(!Array.isArray(n))return null;let e=n.find(o=>o.layer?.toLowerCase()==="f.silks"&&(o.text?.includes("${REFERENCE}")||o.fp_text_type?.toLowerCase()==="reference"||o.text?.match(/^R\d+|C\d+|U\d+/))),t=e||n.find(o=>o.layer?.toLowerCase()==="f.fab"&&(o.text?.includes("${REFERENCE}")||o.fp_text_type?.toLowerCase()==="reference")),i=e||t;if(!i?.effects?.font?.size)return null;let[r,s]=i.effects.font.size;return s??r??1}var uFt=n=>n*Math.PI/180,M9=(n,e,t)=>{let i=uFt(t),r=Math.cos(i),s=Math.sin(i);return{x:n*r-e*s,y:n*s+e*r}},pFt=n=>{let e=[...new Map(n.map(u=>[`${u.x},${u.y}`,u])).values()];if(e.length!==4)return null;let t=e.map(u=>u.x),i=e.map(u=>u.y),r=[...new Set(t)],s=[...new Set(i)];if(r.length!==2||s.length!==2)return null;let[o,a]=r.sort((u,h)=>u-h),[c,l]=s.sort((u,h)=>u-h);return o===void 0||a===void 0||c===void 0||l===void 0?null:{x:(o+a)/2,y:(c+l)/2,width:a-o,height:l-c}},hFt=n=>{if(!n)return!1;let e=n.toLowerCase();return e!=="no"&&e!=="none"&&e!=="outline"},E9=n=>n&&Array.isArray(n)&&n.length>=3&&typeof n[2]=="number"?n[2]:0,Ur=n=>{let e=(n%360+360)%360;return e===90||e===270},Nd=n=>{if(n!=null)return`${n}`},Pit=n=>{let e=Nd(n),t=e!==void 0?Number(e):NaN;return Number.isFinite(t)?t:void 0},J_=(0,Nit.default)("kicad-mod-converter"),Fs=n=>{switch(n.toLowerCase()){case"f.cu":case"f.fab":case"f.silks":case"edge.cuts":return"top";case"b.cu":case"b.fab":case"b.silks":return"bottom"}},dFt=async n=>{let{fp_lines:e,fp_texts:t,fp_arcs:i,fp_circles:r,pads:s,properties:o,holes:a,fp_polys:c}=n,l=[];l.push({type:"source_component",source_component_id:"source_component_0",supplier_part_numbers:{}}),l.push({type:"schematic_component",schematic_component_id:"schematic_component_0",source_component_id:"source_component_0",center:{x:0,y:0},rotation:0,size:{width:0,height:0}});let u=new Set,h=new Map;for(let G of s){let J=Nd(G.name);if(J){u.add(J);let nt=Pit(G.name);nt!==void 0&&h.set(J,nt)}}if(a)for(let G of a){let J=Nd(G.name);if(J){u.add(J);let nt=Pit(G.name);nt!==void 0&&h.set(J,nt)}}let f=0,_=new Map;for(let G of u){let J=`source_port_${f++}`;_.set(G,J),l.push({type:"source_port",source_port_id:J,source_component_id:"source_component_0",name:G,port_hints:[G],pin_number:h.get(G)}),l.push({type:"schematic_port",schematic_port_id:`schematic_port_${f++}`,source_port_id:J,schematic_component_id:"schematic_component_0",center:{x:0,y:0}})}let g=Number.POSITIVE_INFINITY,x=Number.NEGATIVE_INFINITY,v=Number.POSITIVE_INFINITY,P=Number.NEGATIVE_INFINITY;for(let G of s){let J=G.at[0],nt=-G.at[1],ut=G.size[0],ht=G.size[1];g=Math.min(g,J-ut/2),x=Math.max(x,J+ut/2),v=Math.min(v,nt-ht/2),P=Math.max(P,nt+ht/2)}let S="pcb_component_0";l.push({type:"pcb_component",source_component_id:"source_component_0",pcb_component_id:S,layer:"top",center:{x:0,y:0},rotation:0,width:Number.isFinite(g)?x-g:0,height:Number.isFinite(v)?P-v:0});let T=0,k=new Map;for(let G of u){let J=`pcb_port_${T++}`,nt=_.get(G);k.set(G,J);let ut=0,ht=0,kt=["top","bottom"],Et=s.find(ot=>Nd(ot.name)===G);if(Et)ut=Et.at[0],ht=-Et.at[1],kt=Et.layers?Et.layers.map(ot=>Fs(ot)).filter(Boolean):["top","bottom"];else if(a){let ot=a.find(X=>Nd(X.name)===G);ot&&(ut=ot.at[0],ht=-ot.at[1],kt=ot.layers?ot.layers.map(X=>Fs(X)).filter(Boolean):["top","bottom"])}l.push({type:"pcb_port",pcb_port_id:J,source_port_id:nt,pcb_component_id:S,x:ut,y:ht,layers:kt})}let C=0,M=0,I=0;for(let G of s){let J=Nd(G.name),nt=J?h.get(J):void 0;if(G.pad_type==="smd"){let ut=E9(G.at),ht=Ur(ut)?G.size[1]:G.size[0],kt=Ur(ut)?G.size[0]:G.size[1],Et=J?k.get(J):void 0;l.push({type:"pcb_smtpad",pcb_smtpad_id:`pcb_smtpad_${C++}`,shape:"rect",x:G.at[0],y:-G.at[1],width:ht,height:kt,layer:Fs(G.layers?.[0]??"F.Cu"),pcb_component_id:S,port_hints:J?[J]:[],pcb_port_id:Et,pin_number:nt})}else if(G.pad_type==="thru_hole"){if(G.pad_shape==="rect"){let ut=E9(G.at),ht=Ur(ut)?G.size[1]:G.size[0],kt=Ur(ut)?G.size[0]:G.size[1],Et=G.drill?.offset?.[0]??0,ot=G.drill?.offset?.[1]??0,X=M9(Et,ot,ut),W=J?k.get(J):void 0;l.push({type:"pcb_plated_hole",pcb_plated_hole_id:`pcb_plated_hole_${M++}`,shape:"circular_hole_with_rect_pad",hole_shape:"circle",pad_shape:"rect",x:G.at[0],y:-G.at[1],hole_offset_x:-X.x,hole_offset_y:-X.y,hole_diameter:G.drill?.width,rect_pad_width:ht,rect_pad_height:kt,layers:["top","bottom"],pcb_component_id:S,port_hints:J?[J]:[],pcb_port_id:W,pin_number:nt})}else if(G.pad_shape==="circle"){let ut=J?k.get(J):void 0;l.push({type:"pcb_plated_hole",pcb_plated_hole_id:`pcb_plated_hole_${M++}`,shape:"circle",x:G.at[0],y:-G.at[1],outer_diameter:G.size[0],hole_diameter:G.drill?.width,layers:["top","bottom"],pcb_component_id:S,port_hints:J?[J]:[],pcb_port_id:ut,pin_number:nt})}else if(G.pad_shape==="oval"){let ut=J?k.get(J):void 0;l.push({type:"pcb_plated_hole",pcb_plated_hole_id:`pcb_plated_hole_${M++}`,shape:"pill",x:G.at[0],y:-G.at[1],outer_width:G.size[0],outer_height:G.size[1],hole_width:G.drill?.width,hole_height:G.drill?.height,layers:["top","bottom"],pcb_component_id:S,port_hints:J?[J]:[],pcb_port_id:ut,pin_number:nt})}}else G.pad_type==="np_thru_hole"&&l.push({type:"pcb_hole",pcb_hole_id:`pcb_hole_${I++}`,x:G.at[0],y:-G.at[1],hole_diameter:G.drill?.width,pcb_component_id:S})}if(a)for(let G of a){let J=Nd(G.name),nt=J?h.get(J):void 0,ut=G.layers?.some(at=>at.endsWith(".Cu")||at==="*.Cu"),ht=E9(G.at),kt=G.drill?.offset?.[0]??0,Et=G.drill?.offset?.[1]??0,ot=M9(kt,Et,ht),X=G.at[0]+ot.x,W=-(G.at[1]+ot.y),rt=G.drill?.width??0,pt=G.size?.width??rt,yt=G.roundrect_rratio??0,Z=yt>0?Math.min(Ur(ht)?G.size?.height??pt:G.size?.width??pt,Ur(ht)?G.size?.width??pt:G.size?.height??pt)/2*yt:0;if(ut)if(G.pad_shape==="rect"){let at=J?k.get(J):void 0;l.push({type:"pcb_plated_hole",pcb_plated_hole_id:`pcb_plated_hole_${M++}`,shape:"circular_hole_with_rect_pad",hole_shape:"circle",pad_shape:"rect",x:G.at[0],y:-G.at[1],hole_offset_x:-ot.x,hole_offset_y:-ot.y,hole_diameter:rt,rect_pad_width:Ur(ht)?G.size?.height??pt:G.size?.width??pt,rect_pad_height:Ur(ht)?G.size?.width??pt:G.size?.height??pt,rect_border_radius:Z,port_hints:J?[J]:[],layers:["top","bottom"],pcb_component_id:S,pcb_port_id:at,pin_number:nt})}else if(G.pad_shape==="oval"){let at=J?k.get(J):void 0;l.push({type:"pcb_plated_hole",pcb_plated_hole_id:`pcb_plated_hole_${M++}`,shape:"pill",x:X,y:W,outer_width:Ur(ht)?G.size?.height??pt:G.size?.width??pt,outer_height:Ur(ht)?G.size?.width??pt:G.size?.height??pt,hole_width:Ur(ht)?G.drill?.height??rt:G.drill?.width??rt,hole_height:Ur(ht)?G.drill?.width??rt:G.drill?.height??rt,port_hints:J?[J]:[],layers:["top","bottom"],pcb_component_id:S,pcb_port_id:at,pin_number:nt})}else if(G.pad_shape==="roundrect"){let at=J?k.get(J):void 0,Mt=G.drill?.offset?.[0]??0,Ft=G.drill?.offset?.[1]??0,Ot=M9(Mt,Ft,ht),Ce=Ur(ht)?G.size?.height??pt:G.size?.width??pt,we=Ur(ht)?G.size?.width??pt:G.size?.height??pt;l.push({type:"pcb_plated_hole",pcb_plated_hole_id:`pcb_plated_hole_${M++}`,shape:"circular_hole_with_rect_pad",hole_shape:"circle",pad_shape:"rect",x:X,y:W,hole_offset_x:-Ot.x,hole_offset_y:Ot.y,hole_diameter:rt,rect_pad_width:Ce,rect_pad_height:we,rect_border_radius:Z,port_hints:J?[J]:[],layers:["top","bottom"],pcb_component_id:S,pcb_port_id:at,pin_number:nt})}else{let at=J?k.get(J):void 0;l.push({type:"pcb_plated_hole",pcb_plated_hole_id:`pcb_plated_hole_${M++}`,shape:"circle",x:X,y:W,outer_diameter:pt,hole_diameter:rt,port_hints:J?[J]:[],layers:["top","bottom"],pcb_component_id:S,pcb_port_id:at,pin_number:nt})}else l.push({type:"pcb_hole",pcb_hole_id:`pcb_hole_${I++}`,x:X,y:W,hole_diameter:pt,hole_shape:"circle",pcb_component_id:S})}let E=[];for(let G of e)G.layer.toLowerCase()==="edge.cuts"&&E.push({type:"line",start:{x:G.start[0],y:G.start[1]},end:{x:G.end[0],y:G.end[1]},strokeWidth:G.stroke.width});for(let G of i)G.layer.toLowerCase()==="edge.cuts"&&E.push({type:"arc",start:{x:G.start[0],y:G.start[1]},mid:{x:G.mid[0],y:G.mid[1]},end:{x:G.end[0],y:G.end[1]},strokeWidth:G.stroke.width});let A=aFt(E),R=0;for(let G of A){let J=cFt(G);J.length>=3&&l.push({type:"pcb_cutout",pcb_cutout_id:`pcb_cutout_${R++}`,shape:"polygon",points:J.map(nt=>({x:nt.x,y:-nt.y})),pcb_component_id:S})}let j=0,B=0,V=0,U=0;for(let G of e){let J=[{x:G.start[0],y:-G.start[1]},{x:G.end[0],y:-G.end[1]}],nt=G.layer.toLowerCase();nt==="f.cu"?l.push({type:"pcb_trace",pcb_trace_id:`pcb_trace_${j++}`,pcb_component_id:S,layer:Fs(G.layer),route:J,thickness:G.stroke.width}):nt==="f.silks"?l.push({type:"pcb_silkscreen_path",pcb_silkscreen_path_id:`pcb_silkscreen_path_${B++}`,pcb_component_id:S,layer:"top",route:J,stroke_width:G.stroke.width}):nt==="edge.cuts"?J_("Skipping Edge.Cuts fp_line (converted to pcb_cutout)",G.layer):nt==="f.fab"?l.push({type:"pcb_fabrication_note_path",fabrication_note_path_id:`fabrication_note_path_${V++}`,pcb_component_id:S,layer:"top",route:J,stroke_width:G.stroke.width,port_hints:[]}):nt.startsWith("user.")?l.push({type:"pcb_note_line",pcb_note_line_id:`pcb_note_line_${U++}`,pcb_component_id:S,x1:G.start[0],y1:-G.start[1],x2:G.end[0],y2:-G.end[1],stroke_width:G.stroke.width}):J_("Unhandled layer for fp_line",G.layer)}if(c)for(let G of c){let J=[],nt=ot=>{!Number.isFinite(ot.x)||!Number.isFinite(ot.y)||J.push(ot)};for(let ot of G.pts){if(Array.isArray(ot)){nt({x:ot[0],y:-ot[1]});continue}if(ot&&typeof ot=="object"&&"kind"in ot){if(ot.kind==="arc"){let X=_l(ot.start),W=_l(ot.mid),rt=_l(ot.end),pt=C9(X,W,rt),yt=Math.max(8,Math.ceil(pt)),Z=Math.max(2,Math.ceil(pt/.1)),at=I9(X,W,rt,Z).map(Mt=>({x:Mt.x,y:-Mt.y}));for(let Mt of at)nt(Mt)}continue}}let ut=J,kt=ut.length>2&&ut[0].x===ut[ut.length-1].x&&ut[0].y===ut[ut.length-1].y?ut.slice(0,-1):ut;if(ut.length===0)continue;let Et=G.stroke?.width??0;if(G.layer.endsWith(".Cu")){let ot=pFt(kt);ot?l.push({type:"pcb_smtpad",pcb_smtpad_id:`pcb_smtpad_${C++}`,shape:"rect",x:ot.x,y:ot.y,width:ot.width,height:ot.height,layer:Fs(G.layer),pcb_component_id:S}):hFt(G.fill)?kt.length>=3?l.push({type:"pcb_smtpad",pcb_smtpad_id:`pcb_smtpad_${C++}`,shape:"polygon",points:kt,layer:Fs(G.layer),pcb_component_id:S}):kt.length>=2&&l.push({type:"pcb_trace",pcb_trace_id:`pcb_trace_${j++}`,pcb_component_id:S,layer:Fs(G.layer),route:kt,thickness:Et}):kt.length>=2&&l.push({type:"pcb_trace",pcb_trace_id:`pcb_trace_${j++}`,pcb_component_id:S,layer:Fs(G.layer),route:kt,thickness:Et})}else G.layer.endsWith(".SilkS")?l.push({type:"pcb_silkscreen_path",pcb_silkscreen_path_id:`pcb_silkscreen_path_${B++}`,pcb_component_id:S,layer:Fs(G.layer),route:ut,stroke_width:Et}):G.layer.endsWith(".Fab")?l.push({type:"pcb_fabrication_note_path",fabrication_note_path_id:`fabrication_note_path_${V++}`,pcb_component_id:S,layer:Fs(G.layer),route:kt,stroke_width:Et,port_hints:[]}):J_("Unhandled layer for fp_poly",G.layer)}let H=0;for(let G of i){let J=G.layer.toLowerCase();if(J==="edge.cuts"){J_("Skipping Edge.Cuts fp_arc (converted to pcb_cutout)",G.layer);continue}let nt=_l(G.start),ut=_l(G.mid),ht=_l(G.end),kt=C9(nt,ut,ht),Et=I9(nt,ut,ht,Math.ceil(kt));if(J.startsWith("user.")){l.push({type:"pcb_note_path",pcb_note_path_id:`pcb_note_path_${H++}`,pcb_component_id:S,route:Et.map(X=>({x:X.x,y:-X.y})),stroke_width:G.stroke.width});continue}let ot=Fs(G.layer);if(!ot){J_("Unable to convert layer for fp_arc",G.layer);continue}l.push({type:"pcb_silkscreen_path",pcb_silkscreen_path_id:`pcb_silkscreen_path_${B++}`,layer:ot,pcb_component_id:S,route:Et.map(X=>({x:X.x,y:-X.y})),stroke_width:G.stroke.width})}if(r)for(let G of r){let J=G.layer.toLowerCase(),nt=_l(G.center),ut=_l(G.end),ht=Math.sqrt((ut.x-nt.x)**2+(ut.y-nt.y)**2),kt=Math.max(16,Math.ceil(2*Math.PI*ht)),Et=[];for(let ot=0;ot<=kt;ot++){let X=ot/kt*2*Math.PI;Et.push({x:nt.x+ht*Math.cos(X),y:nt.y+ht*Math.sin(X)})}J.startsWith("user.")&&l.push({type:"pcb_note_path",pcb_note_path_id:`pcb_note_path_${H++}`,pcb_component_id:S,route:Et.map(ot=>({x:ot.x,y:-ot.y})),stroke_width:G.stroke.width})}for(let G of t){let J=Fs(G.layer);G.layer.endsWith(".SilkS")?l.push({type:"pcb_silkscreen_text",layer:J,font:"tscircuit2024",font_size:G.effects?.font?.size[0]??1,pcb_component_id:S,anchor_position:{x:G.at[0],y:-G.at[1]},anchor_alignment:"center",text:G.text}):G.layer.endsWith(".Fab")?l.push({type:"pcb_fabrication_note_text",layer:J,font:"tscircuit2024",font_size:G.effects?.font?.size[0]??1,pcb_component_id:S,anchor_position:{x:G.at[0],y:-G.at[1]},anchor_alignment:"center",text:G.text}):J_("Unhandled layer for fp_text",G.layer)}let et=o.find(G=>G.key==="Reference"),tt=o.find(G=>G.key==="Value"),_t=[et,tt].filter(G=>G&&!!G.val);for(let G of _t){let J=G.attributes.at;if(!J)continue;let ut=G.attributes.layer?.toLowerCase()?.endsWith(".fab"),ht=lFt(t);l.push({type:ut?"pcb_fabrication_note_text":"pcb_silkscreen_text",layer:"top",font:"tscircuit2024",font_size:ht,pcb_component_id:S,anchor_position:{x:J[0],y:-J[1]},anchor_alignment:"center",text:G.val})}return l},Oit=async n=>{let e=oFt(n);return await dFt(e)};var Lit=async n=>{try{return(await import(n)).default}catch{console.log(`Failed to load ${n} locally, trying CDN fallback...`);try{let t=await fetch(`https://cdn.jsdelivr.net/npm/${n}/+esm`);if(!t.ok)throw new Error(`Failed to fetch ${n} from CDN: ${t.statusText}`);let i=await t.text(),r=new Blob([i],{type:"application/javascript"}),s=URL.createObjectURL(r);try{let{default:o}=await import(s);return o}finally{URL.revokeObjectURL(s)}}catch(t){throw console.error(`CDN fallback for ${n} also failed:`,t),t}}};var fFt="https://kicad-mod-cache.tscircuit.com",hP=null,Fit=()=>({partsEngine:bit,spiceEngineMap:{ngspice:{simulate:async n=>{if(!hP){let e=await Lit("@tscircuit/ngspice-spice-engine").catch(t=>{throw new Error("Could not load ngspice engine from local node_modules or CDN fallback.",{cause:t})});e&&(hP=await e())}if(!hP)throw new Error("Could not load ngspice engine from local node_modules or CDN fallback.");return hP.simulate(n)}}},footprintLibraryMap:{kicad:async n=>{let e=`${fFt}/${n}`,t=`${e}.circuit.json`,r=await(await fetch(t)).json(),s=Array.isArray(r)?r.filter(a=>a?.type==="pcb_silkscreen_text"?a?.text==="REF**":!0):r,o=`${e}.wrl`;return{footprintCircuitJson:s,cadModel:{wrlUrl:o,modelUnitToMmScale:2.54}}}},footprintFileParserMap:{kicad_mod:{loadFromUrl:async n=>{let e=await fetch(n).then(i=>i.text()),t=await Oit(e);return{footprintCircuitJson:Array.isArray(t)?t:[t]}}}}});var N9=Gt(En(),1),dxe=(0,N9.default)("tsci:eval:execution-context");function dP(n,e={}){globalThis.React=zit;let t=e.platform||Fit(),i=e.projectConfig?{...t,...e.projectConfig}:t;i.partsEngineDisabled&&(i.partsEngine=void 0);let r=new Z_({platform:i});e.name&&(r.name=e.name),e.debugNamespace&&r.enableDebug(e.debugNamespace);let s=[];return{fsMap:{},entrypoint:"",logger:{info:o=>{s.push({msg:o})},getLogs:()=>s,stringifyLogs:()=>s.map(o=>o.msg).join(`
|
|
254
|
-
`)},preSuppliedImports:{"@tscircuit/core":oP,tscircuit:oP,"@tscircuit/math-utils":m4,react:zit,debug:N9.default,"@tscircuit/props":{}},circuit:r,tsConfig:null,importStack:[],currentlyImporting:new Set,...n}}function yl(n){let e=n;return e=e.replace(/\\/g,"/"),e=e.trim(),e.startsWith("./")&&(e=e.slice(2)),e.startsWith("/")&&(e=e.slice(1)),e}function $it(n){let e={};for(let[t,i]of Object.entries(n))e[yl(t)]=i;return e}function ao(n){if(!n)return".";let t=n.replace(/\\/g,"/").replace(/\/+$/,"");return t.indexOf("/")===-1?".":t.substring(0,t.lastIndexOf("/"))||"/"}function fP(n,e){if(n.startsWith("../")){let t=ao(e);return fP(n.slice(3),t)}return n.startsWith("./")?fP(n.slice(2),e):n.startsWith("/")?n.slice(1):`${e}/${n}`}function V1(n){if(Array.isArray(n))return null;let e=n["tsconfig.json"];if(!e)return null;try{let t=e.replace(/\/\*[\s\S]*?\*\/|\/\/.*/g,"");return JSON.parse(t)}catch(t){throw new Error(`Failed to parse tsconfig.json: ${t.message}`)}}function Dit(n){let{importPath:e,normalizedFilePathMap:t,extensions:i,tsConfig:r}=n,
|
|
254
|
+
`)},preSuppliedImports:{"@tscircuit/core":oP,tscircuit:oP,"@tscircuit/math-utils":m4,react:zit,debug:N9.default,"@tscircuit/props":{}},circuit:r,tsConfig:null,importStack:[],currentlyImporting:new Set,...n}}function yl(n){let e=n;return e=e.replace(/\\/g,"/"),e=e.trim(),e.startsWith("./")&&(e=e.slice(2)),e.startsWith("/")&&(e=e.slice(1)),e}function $it(n){let e={};for(let[t,i]of Object.entries(n))e[yl(t)]=i;return e}function ao(n){if(!n)return".";let t=n.replace(/\\/g,"/").replace(/\/+$/,"");return t.indexOf("/")===-1?".":t.substring(0,t.lastIndexOf("/"))||"/"}function fP(n,e){if(n.startsWith("../")){let t=ao(e);return fP(n.slice(3),t)}return n.startsWith("./")?fP(n.slice(2),e):n.startsWith("/")?n.slice(1):`${e}/${n}`}function V1(n){if(Array.isArray(n))return null;let e=n["tsconfig.json"];if(!e)return null;try{let t=e.replace(/\/\*[\s\S]*?\*\/|\/\/.*/g,"");return JSON.parse(t)}catch(t){throw new Error(`Failed to parse tsconfig.json: ${t.message}`)}}function Dit(n){let{importPath:e,normalizedFilePathMap:t,extensions:i,tsConfig:r,tsconfigDir:s}=n,o=r?.compilerOptions?.paths;if(!o)return null;let a=r?.compilerOptions?.baseUrl||".",c=u=>{let h=yl(u);if(t.has(h))return t.get(h);for(let f of i){let _=`${h}.${f}`;if(t.has(_))return t.get(_)}return null};for(let[u,h]of Object.entries(o))if(u.includes("*")){let[_,g]=u.split("*");if(!e.startsWith(_)||!e.endsWith(g||""))continue;let x=e.slice(_.length,e.length-(g?g.length:0));for(let v of h){let P=v.replace("*",x),S=a&&!P.startsWith("./")&&!P.startsWith("/")?`${a}/${P}`:P,T=c(S);if(T)return T}}else{if(e!==u)continue;for(let _ of h){let g=a&&!_.startsWith("./")&&!_.startsWith("/")?`${a}/${_}`:_,x=c(g);if(x)return x}}let l=A9({importPath:e,normalizedFilePathMap:t,extensions:i,tsConfig:r,tsconfigDir:s});return l||null}function A9(n){let{importPath:e,normalizedFilePathMap:t,extensions:i,tsConfig:r,tsconfigDir:s}=n,o=r?.compilerOptions?.baseUrl;if(!o)return null;let c=`${s||"."}/${o}/${e}`.replace(/\/\//g,"/"),l=yl(c);if(t.has(l))return t.get(l);for(let u of i){let h=`${l}.${u}`;if(t.has(h))return t.get(h)}return null}function jit(n,e){let t=e?.compilerOptions?.paths;if(!t)return!1;for(let[i]of Object.entries(t))if(i.includes("*")){let[s,o]=i.split("*");if(n.startsWith(s)&&n.endsWith(o||""))return!0}else if(n===i)return!0;return!1}var G1=(n,e,t,i={})=>{let r=t?fP(n,t):n,s=new Set(Array.isArray(e)?e:Object.keys(e));if(s.has(r))return r;let o=new Map;for(let u of s)o.set(yl(u),u);let a=yl(r);if(o.has(a))return o.get(a);let c=["tsx","ts","json","js","jsx","obj","gltf","glb"];for(let u of c){let h=`${a}.${u}`;if(o.has(h))return o.get(h)}let l=i.tsConfig??null;if(!n.startsWith("./")&&!n.startsWith("../")){let u=Dit({importPath:n,normalizedFilePathMap:o,extensions:c,tsConfig:l,tsconfigDir:i.tsconfigDir});if(u)return u;let h=A9({importPath:n,normalizedFilePathMap:o,extensions:c,tsConfig:l,tsconfigDir:i.tsconfigDir});if(h)return h}if(!n.startsWith("./")&&!n.startsWith("../")){let u=yl(n);if(o.has(u))return o.get(u);for(let h of c){let f=`${u}.${h}`;if(o.has(f))return o.get(f)}}return null},mP=(n,e,t,i={})=>{let r=G1(n,e,t,i);if(!r)throw new Error(`File not found "${n}", available paths:
|
|
255
255
|
|
|
256
256
|
${Object.keys(e).join(", ")}`);return r};var _P=n=>{let e=/^\s*import\s+(?:(?:[\w\s]+,\s*)?(?:\*\s+as\s+[\w\s]+|\{[\s\w,]+\}|\w+)\s+from\s*)?['"](.+?)['"]/gm,t=[],i;for(;(i=e.exec(n))!==null;){let o=i[0];/^\s*import\s+type\b/.test(o)||t.push(i[1])}let r=/^\s*export\s+(?:type\s+)?(?:\*\s+as\s+[\w$]+|\*|\{[^}]+\})\s+from\s*['"](.+?)['"]/gm,s;for(;(s=r.exec(n))!==null;){let o=s[0];/^\s*export\s+type\b/.test(o)||t.push(s[1])}return t};function Ad(n,e,t){globalThis.__tscircuit_require=r=>{let s=G1(r,e,t),o=s&&e[s];if(!e[r]&&!o)throw new Error(`Import "${r}" not found ${t?`in "${t}"`:""}`);let a=e[r]||e[s];return new Proxy(a,{get(c,l){if(!(l in c)){if(l==="default")return c.default!==void 0?c.default:c.__esModule?void 0:typeof c=="function"||typeof c=="object"?c:void 0;if(l==="__esModule")return!0;throw new Error(`Component "${String(l)}" is not exported by "${r}"`)}return c[l]}})};let i=`
|
|
257
257
|
var exports = {};
|
|
@@ -456,9 +456,9 @@ ${u.join(" -> ")}`)}if(!e.fsMap[a])throw yy("fsPath not found in fsMap:",a),new
|
|
|
456
456
|
|
|
457
457
|
${e.logger.stringifyLogs()}`);return{content:await f.text(),error:null}}).catch(f=>({error:f,content:null}));if(a)throw console.error("Error fetching npm import",n,a),a;let c=eXt(s),l=ao(c),u=_P(o);for(let f of u)i[f]||await Tf(f,e,t+1,{cwd:l});let h=I0(o,c||n);try{let f=Ad(h,i,l).exports;i[n]=f,i[c]=f,i[s]=f}catch(f){throw new Error(`Eval npm package error for "${n}": ${f.message}
|
|
458
458
|
|
|
459
|
-
${e.logger.stringifyLogs()}`)}}var Flt=Gt(En(),1),Llt=(0,Flt.default)("tsci:eval:import-eval-path");async function Tf(n,e,t=0,i={}){Llt("importEvalPath called with:",{importName:n,depth:t,opts:i}),e.logger.info(`importEvalPath("${n}", {cwd: "${i.cwd}", depth: ${t}})`),Llt(`${" ".repeat(t)}\u27A1\uFE0F`,n);let{preSuppliedImports:r}=e;if(r[n]){e.logger.info(`Import "${n}" in preSuppliedImports[1]`);return}if(n.startsWith("./")&&r[n.slice(2)]){e.logger.info(`Import "${n}" in preSuppliedImports[2]`);return}if(t>30)throw new Error(`Max depth for imports reached (30) Import Path: ${e.importStack.join(" -> ")}`);if(n.startsWith("/npm/")){let
|
|
459
|
+
${e.logger.stringifyLogs()}`)}}var Flt=Gt(En(),1),Llt=(0,Flt.default)("tsci:eval:import-eval-path");async function Tf(n,e,t=0,i={}){Llt("importEvalPath called with:",{importName:n,depth:t,opts:i}),e.logger.info(`importEvalPath("${n}", {cwd: "${i.cwd}", depth: ${t}})`),Llt(`${" ".repeat(t)}\u27A1\uFE0F`,n);let{preSuppliedImports:r}=e;if(r[n]){e.logger.info(`Import "${n}" in preSuppliedImports[1]`);return}if(n.startsWith("./")&&r[n.slice(2)]){e.logger.info(`Import "${n}" in preSuppliedImports[2]`);return}if(t>30)throw new Error(`Max depth for imports reached (30) Import Path: ${e.importStack.join(" -> ")}`);if(n.startsWith("/npm/")){let l=n.replace(/^\/npm\//,"").replace(/\/\+esm$/,"");e.logger.info(`importNpmPackage("${l}")`),await M7(l,e,t);let u=r[l];u&&(r[n]=u);return}let s=".";if(e.tsConfig&&i.cwd){let l=i.cwd.match(/^(node_modules\/[^\/]+)/);l&&(s=l[1])}let o=G1(n,e.fsMap,i.cwd,{tsConfig:e.tsConfig,tsconfigDir:s});if(o){e.logger.info(`importLocalFile("${o}")`),await $0(o,e,t),n!==o&&(r[n]=r[o]);return}let a=e.tsConfig??V1(e.fsMap);if(!e.tsConfig&&a&&(e.tsConfig=a),jit(n,a))throw new Error(`Import "${n}" matches a tsconfig path alias but could not be resolved to an existing file${i.cwd?` from directory "${i.cwd}"`:""}
|
|
460
460
|
|
|
461
|
-
${e.logger.stringifyLogs()}`);let
|
|
461
|
+
${e.logger.stringifyLogs()}`);let c=uT(n,e.fsMap,i.cwd||"");if(c)return e.logger.info(`resolvedNodeModulePath="${c}"`),e.logger.info(`importNodeModule("${n}")`),T7(n,e,t);if(!n.startsWith(".")&&!n.startsWith("/")&&!n.startsWith("@tsci/")&&e.circuit?.platform?.nodeModulesResolver){e.logger.info(`importNodeModule("${n}") via nodeModulesResolver`);try{await T7(n,e,t);return}catch{e.logger.info(`nodeModulesResolver failed for "${n}", falling back to npm CDN`)}}if(n.startsWith("@tsci/"))return e.logger.info(`importSnippet("${n}")`),Nlt(n,e,t);if(!n.startsWith(".")&&!n.startsWith("/"))return e.logger.info(`importNpmPackage("${n}")`),M7(n,e,t);throw new Error(`Unresolved import "${n}" ${i.cwd?`from directory "${i.cwd}"`:""}
|
|
462
462
|
|
|
463
463
|
${e.logger.stringifyLogs()}`)}var zlt=Gt(En(),1),nXt=(0,zlt.default)("tsci:eval:setupDefaultEntrypointIfNeeded"),$lt=n=>{if(!n.entrypoint&&!n.mainComponentPath)if("index.tsx"in n.fsMap)n.mainComponentPath="index.tsx";else if("index.ts"in n.fsMap)n.mainComponentPath="index.ts";else if(Object.keys(n.fsMap).filter(e=>e.endsWith(".tsx")).length===1)n.mainComponentPath=Object.keys(n.fsMap)[0];else if("tscircuit.config.json"in n.fsMap){let e=n.fsMap["tscircuit.config.json"];try{let t=JSON.parse(e);t.mainEntrypoint&&(n.entrypoint=t.mainEntrypoint)}catch(t){console.warn("Failed to parse tscircuit.config.json:",t)}}else throw new Error("Either entrypoint or mainComponentPath must be provided (no index file, could not infer entrypoint)");if(!n.entrypoint&&n.mainComponentPath){if(n.entrypoint="entrypoint.tsx",!n.fsMap[mP(n.mainComponentPath,n.fsMap)])throw new Error(`Main component path "${n.mainComponentPath}" not found in fsMap. Available paths: ${Object.keys(n.fsMap).join(", ")}`);n.fsMap[n.entrypoint]=`
|
|
464
464
|
import * as UserComponents from "./${n.mainComponentPath}";
|