@tscircuit/runframe 0.0.239 → 0.0.240

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.
@@ -13085,7 +13085,7 @@ You passed in: '`+this.raw_options[n]+"'");return o},r.prototype._is_valid_selec
13085
13085
  */var Gee,UMe;function n4t(){if(UMe)return Gee;UMe=1;var r=KSt(),e=t4t(),t=OMe(),n={unformatted:["code","pre","em","strong","span"],indent_inner_html:!0,indent_char:" ",indent_size:2,sep:`
13086
13086
  `};Gee=function(o,s){var l=t({},n,s);return o=r.html(o,l),l.ocd===!0?(l.newlines&&(l.sep=l.newlines),i(o,l)):o};function i(a,o){return e(a,o).replace(/^\s+/g,"").replace(/\s+$/g,`
13087
13087
  `).replace(/(\s*<!--)/g,`
13088
- $1`).replace(/>(\s*)(?=<!--\s*\/)/g,"> ")}return Gee}n4t();function IMe(r,e,t,n={}){const i=n.padding??40,a=n.yFlip??!1;let o;if("center"in r){const u=r.width/2,f=r.height/2;o={minX:r.center.x-u,maxX:r.center.x+u,minY:r.center.y-f,maxY:r.center.y+f}}else o=r;const s=o.maxX-o.minX,l=o.maxY-o.minY,c=Math.min((e-2*i)/s,(t-2*i)/l);return Hd(u0(e/2,t/2),n2(c,a?-c:c),u0(-(o.minX+s/2),-(o.minY+l/2)))}function r4t(r){const e=[...r.points||[],...(r.lines||[]).flatMap(t=>t.points),...(r.rects||[]).flatMap(t=>{const n=t.width/2,i=t.height/2;return[{x:t.center.x-n,y:t.center.y-i},{x:t.center.x+n,y:t.center.y-i},{x:t.center.x-n,y:t.center.y+i},{x:t.center.x+n,y:t.center.y+i}]}),...(r.circles||[]).flatMap(t=>[{x:t.center.x-t.radius,y:t.center.y},{x:t.center.x+t.radius,y:t.center.y},{x:t.center.x,y:t.center.y-t.radius},{x:t.center.x,y:t.center.y+t.radius}])];return e.length===0?{minX:-1,maxX:1,minY:-1,maxY:1}:e.reduce((t,n)=>({minX:Math.min(t.minX,n.x),maxX:Math.max(t.maxX,n.x),minY:Math.min(t.minY,n.y),maxY:Math.max(t.maxY,n.y)}),{minX:1/0,maxX:-1/0,minY:1/0,maxY:-1/0})}function i4t(r,e,t={}){const n=e instanceof HTMLCanvasElement?e.getContext("2d"):e;if(!n)throw new Error("Could not get 2D context from canvas");const i=e instanceof HTMLCanvasElement?e.width:e.canvas.width,a=e instanceof HTMLCanvasElement?e.height:e.canvas.height;let o;if(t.transform)o=t.transform;else if(t.viewbox)o=IMe(t.viewbox,i,a,{padding:t.padding,yFlip:t.yFlip});else{const s=r4t(r),l=r.coordinateSystem==="cartesian";o=IMe(s,i,a,{padding:t.padding??40,yFlip:l})}n.clearRect(0,0,i,a),n.save(),r.rects&&r.rects.length>0&&r.rects.forEach(s=>{const l=s.width/2,c=s.height/2,u=ai(o,{x:s.center.x-l,y:s.center.y-c}),f=ai(o,{x:s.center.x+l,y:s.center.y+c}),y=Math.abs(f.x-u.x),_=Math.abs(f.y-u.y);n.beginPath(),n.rect(Math.min(u.x,f.x),Math.min(u.y,f.y),y,_),s.fill&&(n.fillStyle=s.fill,n.fill()),s.stroke&&(n.strokeStyle=s.stroke,n.stroke())}),r.circles&&r.circles.length>0&&r.circles.forEach(s=>{const l=ai(o,s.center),c=s.radius*Math.abs(o.a);n.beginPath(),n.arc(l.x,l.y,c,0,2*Math.PI),s.fill&&(n.fillStyle=s.fill,n.fill()),s.stroke&&(n.strokeStyle=s.stroke,n.stroke())}),r.lines&&r.lines.length>0&&r.lines.forEach(s=>{if(s.points.length===0)return;n.beginPath();const l=ai(o,s.points[0]);n.moveTo(l.x,l.y);for(let c=1;c<s.points.length;c++){const u=ai(o,s.points[c]);n.lineTo(u.x,u.y)}n.strokeStyle=s.strokeColor||"black",n.lineWidth=s.strokeWidth||1,s.strokeDash?n.setLineDash(s.strokeDash.split(",").map(Number)):n.setLineDash([]),n.stroke()}),r.points&&r.points.length>0&&r.points.forEach(s=>{const l=ai(o,s);n.beginPath(),n.arc(l.x,l.y,3,0,2*Math.PI),n.fillStyle=s.color||"black",n.fill(),s.label&&!t.disableLabels&&(n.fillStyle=s.color||"black",n.font="12px sans-serif",n.fillText(s.label,l.x+5,l.y-5))}),n.restore()}var a4t=Object.defineProperty,o4t=(r,e)=>{for(var t in e)a4t(r,t,{get:e[t],enumerable:!0})},kMe={};o4t(kMe,{all_layers:()=>yte,any_circuit_element:()=>hCe,any_soup_element:()=>pCe,any_source_component:()=>c7e,battery_capacity:()=>a7e,cad_component:()=>dCe,capacitance:()=>Jee,current:()=>gEt,distance:()=>mc,frequency:()=>i7e,getZodPrefixedIdWithDefault:()=>Mv,inductance:()=>r7e,layer_ref:()=>c_,layer_string:()=>gte,length:()=>Wg,pcb_autorouting_error:()=>fCe,pcb_board:()=>Z7e,pcb_component:()=>O7e,pcb_fabrication_note_path:()=>oCe,pcb_fabrication_note_text:()=>aCe,pcb_group:()=>uCe,pcb_hole:()=>I7e,pcb_hole_circle_or_square_shape:()=>EEt,pcb_hole_oval_shape:()=>wEt,pcb_keepout:()=>sCe,pcb_manual_edit_conflict_error:()=>cCe,pcb_missing_footprint_error:()=>lCe,pcb_placement_error:()=>Q7e,pcb_plated_hole:()=>k7e,pcb_port:()=>F7e,pcb_port_not_matched_error:()=>W7e,pcb_route_hint:()=>D7e,pcb_route_hints:()=>SEt,pcb_silkscreen_circle:()=>rCe,pcb_silkscreen_line:()=>J7e,pcb_silkscreen_oval:()=>iCe,pcb_silkscreen_path:()=>eCe,pcb_silkscreen_rect:()=>nCe,pcb_silkscreen_text:()=>tCe,pcb_smtpad:()=>H7e,pcb_smtpad_pill:()=>B7e,pcb_solder_paste:()=>j7e,pcb_text:()=>V7e,pcb_trace:()=>Y7e,pcb_trace_error:()=>X7e,pcb_trace_hint:()=>K7e,pcb_trace_route_point:()=>LEt,pcb_trace_route_point_via:()=>q7e,pcb_trace_route_point_wire:()=>G7e,pcb_via:()=>$7e,point:()=>ig,point3:()=>LC,port_arrangement:()=>_7e,position:()=>xEt,position3:()=>bEt,resistance:()=>ez,rotation:()=>ete,route_hint_point:()=>L7e,schematic_box:()=>p7e,schematic_component:()=>x7e,schematic_component_port_arrangement_by_sides:()=>g7e,schematic_component_port_arrangement_by_size:()=>y7e,schematic_debug_line:()=>R7e,schematic_debug_object:()=>N7e,schematic_debug_object_base:()=>rz,schematic_debug_point:()=>A7e,schematic_debug_rect:()=>C7e,schematic_error:()=>M7e,schematic_line:()=>b7e,schematic_net_label:()=>T7e,schematic_path:()=>m7e,schematic_pin_styles:()=>v7e,schematic_port:()=>w7e,schematic_text:()=>E7e,schematic_trace:()=>S7e,schematic_voltage_probe:()=>P7e,size:()=>tte,source_component_base:()=>s2,source_group:()=>d7e,source_led:()=>ote,source_net:()=>h7e,source_port:()=>u7e,source_simple_battery:()=>lte,source_simple_bug:()=>ite,source_simple_capacitor:()=>nte,source_simple_chip:()=>ate,source_simple_crystal:()=>l7e,source_simple_diode:()=>nz,source_simple_ground:()=>s7e,source_simple_inductor:()=>cte,source_simple_mosfet:()=>mte,source_simple_pin_header:()=>dte,source_simple_potentiometer:()=>fte,source_simple_power_source:()=>ste,source_simple_push_button:()=>ute,source_simple_resistor:()=>rte,source_simple_resonator:()=>hte,source_simple_switch:()=>vte,source_simple_transistor:()=>pte,source_trace:()=>f7e,supplier_name:()=>o7e,time:()=>_Et,visible_layer:()=>RT,voltage:()=>tz});var Tv;(function(r){r.assertEqual=i=>i;function e(i){}r.assertIs=e;function t(i){throw new Error}r.assertNever=t,r.arrayToEnum=i=>{const a={};for(const o of i)a[o]=o;return a},r.getValidEnumValues=i=>{const a=r.objectKeys(i).filter(s=>typeof i[i[s]]!="number"),o={};for(const s of a)o[s]=i[s];return r.objectValues(o)},r.objectValues=i=>r.objectKeys(i).map(function(a){return i[a]}),r.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{const a=[];for(const o in i)Object.prototype.hasOwnProperty.call(i,o)&&a.push(o);return a},r.find=(i,a)=>{for(const o of i)if(a(o))return o},r.isInteger=typeof Number.isInteger=="function"?i=>Number.isInteger(i):i=>typeof i=="number"&&isFinite(i)&&Math.floor(i)===i;function n(i,a=" | "){return i.map(o=>typeof o=="string"?`'${o}'`:o).join(a)}r.joinValues=n,r.jsonStringifyReplacer=(i,a)=>typeof a=="bigint"?a.toString():a})(Tv||(Tv={}));var qee;(function(r){r.mergeShapes=(e,t)=>({...e,...t})})(qee||(qee={}));var Ac=Tv.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),YS=r=>{switch(typeof r){case"undefined":return Ac.undefined;case"string":return Ac.string;case"number":return isNaN(r)?Ac.nan:Ac.number;case"boolean":return Ac.boolean;case"function":return Ac.function;case"bigint":return Ac.bigint;case"symbol":return Ac.symbol;case"object":return Array.isArray(r)?Ac.array:r===null?Ac.null:r.then&&typeof r.then=="function"&&r.catch&&typeof r.catch=="function"?Ac.promise:typeof Map<"u"&&r instanceof Map?Ac.map:typeof Set<"u"&&r instanceof Set?Ac.set:typeof Date<"u"&&r instanceof Date?Ac.date:Ac.object;default:return Ac.unknown}},Jo=Tv.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"]),s4t=r=>JSON.stringify(r,null,2).replace(/"([^"]+)":/g,"$1:"),yb=class Fze extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=n=>{this.issues=[...this.issues,n]},this.addIssues=(n=[])=>{this.issues=[...this.issues,...n]};const t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name="ZodError",this.issues=e}format(e){const t=e||function(a){return a.message},n={_errors:[]},i=a=>{for(const o of a.issues)if(o.code==="invalid_union")o.unionErrors.map(i);else if(o.code==="invalid_return_type")i(o.returnTypeError);else if(o.code==="invalid_arguments")i(o.argumentsError);else if(o.path.length===0)n._errors.push(t(o));else{let s=n,l=0;for(;l<o.path.length;){const c=o.path[l];l===o.path.length-1?(s[c]=s[c]||{_errors:[]},s[c]._errors.push(t(o))):s[c]=s[c]||{_errors:[]},s=s[c],l++}}};return i(this),n}static assert(e){if(!(e instanceof Fze))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,Tv.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=t=>t.message){const t={},n=[];for(const i of this.issues)i.path.length>0?(t[i.path[0]]=t[i.path[0]]||[],t[i.path[0]].push(e(i))):n.push(e(i));return{formErrors:n,fieldErrors:t}}get formErrors(){return this.flatten()}};yb.create=r=>new yb(r);var ST=(r,e)=>{let t;switch(r.code){case Jo.invalid_type:r.received===Ac.undefined?t="Required":t=`Expected ${r.expected}, received ${r.received}`;break;case Jo.invalid_literal:t=`Invalid literal value, expected ${JSON.stringify(r.expected,Tv.jsonStringifyReplacer)}`;break;case Jo.unrecognized_keys:t=`Unrecognized key(s) in object: ${Tv.joinValues(r.keys,", ")}`;break;case Jo.invalid_union:t="Invalid input";break;case Jo.invalid_union_discriminator:t=`Invalid discriminator value. Expected ${Tv.joinValues(r.options)}`;break;case Jo.invalid_enum_value:t=`Invalid enum value. Expected ${Tv.joinValues(r.options)}, received '${r.received}'`;break;case Jo.invalid_arguments:t="Invalid function arguments";break;case Jo.invalid_return_type:t="Invalid function return type";break;case Jo.invalid_date:t="Invalid date";break;case Jo.invalid_string:typeof r.validation=="object"?"includes"in r.validation?(t=`Invalid input: must include "${r.validation.includes}"`,typeof r.validation.position=="number"&&(t=`${t} at one or more positions greater than or equal to ${r.validation.position}`)):"startsWith"in r.validation?t=`Invalid input: must start with "${r.validation.startsWith}"`:"endsWith"in r.validation?t=`Invalid input: must end with "${r.validation.endsWith}"`:Tv.assertNever(r.validation):r.validation!=="regex"?t=`Invalid ${r.validation}`:t="Invalid";break;case Jo.too_small:r.type==="array"?t=`Array must contain ${r.exact?"exactly":r.inclusive?"at least":"more than"} ${r.minimum} element(s)`:r.type==="string"?t=`String must contain ${r.exact?"exactly":r.inclusive?"at least":"over"} ${r.minimum} character(s)`:r.type==="number"?t=`Number must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${r.minimum}`:r.type==="date"?t=`Date must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(r.minimum))}`:t="Invalid input";break;case Jo.too_big:r.type==="array"?t=`Array must contain ${r.exact?"exactly":r.inclusive?"at most":"less than"} ${r.maximum} element(s)`:r.type==="string"?t=`String must contain ${r.exact?"exactly":r.inclusive?"at most":"under"} ${r.maximum} character(s)`:r.type==="number"?t=`Number must be ${r.exact?"exactly":r.inclusive?"less than or equal to":"less than"} ${r.maximum}`:r.type==="bigint"?t=`BigInt must be ${r.exact?"exactly":r.inclusive?"less than or equal to":"less than"} ${r.maximum}`:r.type==="date"?t=`Date must be ${r.exact?"exactly":r.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(r.maximum))}`:t="Invalid input";break;case Jo.custom:t="Invalid input";break;case Jo.invalid_intersection_types:t="Intersection results could not be merged";break;case Jo.not_multiple_of:t=`Number must be a multiple of ${r.multipleOf}`;break;case Jo.not_finite:t="Number must be finite";break;default:t=e.defaultError,Tv.assertNever(r)}return{message:t}},FMe=ST;function l4t(r){FMe=r}function YO(){return FMe}var XO=r=>{const{data:e,path:t,errorMaps:n,issueData:i}=r,a=[...t,...i.path||[]],o={...i,path:a};if(i.message!==void 0)return{...i,path:a,message:i.message};let s="";const l=n.filter(c=>!!c).slice().reverse();for(const c of l)s=c(o,{data:e,defaultError:s}).message;return{...i,path:a,message:s}},c4t=[];function $l(r,e){const t=YO(),n=XO({issueData:e,data:r.data,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,t,t===ST?void 0:ST].filter(i=>!!i)});r.common.issues.push(n)}var e3=class Bze{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,t){const n=[];for(const i of t){if(i.status==="aborted")return Ph;i.status==="dirty"&&e.dirty(),n.push(i.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,t){const n=[];for(const i of t){const a=await i.key,o=await i.value;n.push({key:a,value:o})}return Bze.mergeObjectSync(e,n)}static mergeObjectSync(e,t){const n={};for(const i of t){const{key:a,value:o}=i;if(a.status==="aborted"||o.status==="aborted")return Ph;a.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),a.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(n[a.value]=o.value)}return{status:e.value,value:n}}},Ph=Object.freeze({status:"aborted"}),ET=r=>({status:"dirty",value:r}),T5=r=>({status:"valid",value:r}),Yee=r=>r.status==="aborted",Xee=r=>r.status==="dirty",_w=r=>r.status==="valid",mC=r=>typeof Promise<"u"&&r instanceof Promise;function WO(r,e,t,n){if(typeof e=="function"?r!==e||!0:!e.has(r))throw new TypeError("Cannot read private member from an object whose class did not declare it");return e.get(r)}function BMe(r,e,t,n,i){if(typeof e=="function"?r!==e||!0:!e.has(r))throw new TypeError("Cannot write private member to an object whose class did not declare it");return e.set(r,t),t}var Ju;(function(r){r.errToObj=e=>typeof e=="string"?{message:e}:e||{},r.toString=e=>typeof e=="string"?e:e==null?void 0:e.message})(Ju||(Ju={}));var vC,yC,rS=class{constructor(r,e,t,n){this._cachedPath=[],this.parent=r,this.data=e,this._path=t,this._key=n}get path(){return this._cachedPath.length||(this._key instanceof Array?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},HMe=(r,e)=>{if(_w(e))return{success:!0,data:e.value};if(!r.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const t=new yb(r.common.issues);return this._error=t,this._error}}};function p0(r){if(!r)return{};const{errorMap:e,invalid_type_error:t,required_error:n,description:i}=r;if(e&&(t||n))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:i}:{errorMap:(o,s)=>{var l,c;const{message:u}=r;return o.code==="invalid_enum_value"?{message:u??s.defaultError}:typeof s.data>"u"?{message:(l=u??n)!==null&&l!==void 0?l:s.defaultError}:o.code!=="invalid_type"?{message:s.defaultError}:{message:(c=u??t)!==null&&c!==void 0?c:s.defaultError}},description:i}}var F0=class{get description(){return this._def.description}_getType(r){return YS(r.data)}_getOrReturnCtx(r,e){return e||{common:r.parent.common,data:r.data,parsedType:YS(r.data),schemaErrorMap:this._def.errorMap,path:r.path,parent:r.parent}}_processInputParams(r){return{status:new e3,ctx:{common:r.parent.common,data:r.data,parsedType:YS(r.data),schemaErrorMap:this._def.errorMap,path:r.path,parent:r.parent}}}_parseSync(r){const e=this._parse(r);if(mC(e))throw new Error("Synchronous parse encountered promise.");return e}_parseAsync(r){const e=this._parse(r);return Promise.resolve(e)}parse(r,e){const t=this.safeParse(r,e);if(t.success)return t.data;throw t.error}safeParse(r,e){var t;const n={common:{issues:[],async:(t=e==null?void 0:e.async)!==null&&t!==void 0?t:!1,contextualErrorMap:e==null?void 0:e.errorMap},path:(e==null?void 0:e.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:r,parsedType:YS(r)},i=this._parseSync({data:r,path:n.path,parent:n});return HMe(n,i)}"~validate"(r){var e,t;const n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:r,parsedType:YS(r)};if(!this["~standard"].async)try{const i=this._parseSync({data:r,path:[],parent:n});return _w(i)?{value:i.value}:{issues:n.common.issues}}catch(i){!((t=(e=i==null?void 0:i.message)===null||e===void 0?void 0:e.toLowerCase())===null||t===void 0)&&t.includes("encountered")&&(this["~standard"].async=!0),n.common={issues:[],async:!0}}return this._parseAsync({data:r,path:[],parent:n}).then(i=>_w(i)?{value:i.value}:{issues:n.common.issues})}async parseAsync(r,e){const t=await this.safeParseAsync(r,e);if(t.success)return t.data;throw t.error}async safeParseAsync(r,e){const t={common:{issues:[],contextualErrorMap:e==null?void 0:e.errorMap,async:!0},path:(e==null?void 0:e.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:r,parsedType:YS(r)},n=this._parse({data:r,path:t.path,parent:t}),i=await(mC(n)?n:Promise.resolve(n));return HMe(t,i)}refine(r,e){const t=n=>typeof e=="string"||typeof e>"u"?{message:e}:typeof e=="function"?e(n):e;return this._refinement((n,i)=>{const a=r(n),o=()=>i.addIssue({code:Jo.custom,...t(n)});return typeof Promise<"u"&&a instanceof Promise?a.then(s=>s?!0:(o(),!1)):a?!0:(o(),!1)})}refinement(r,e){return this._refinement((t,n)=>r(t)?!0:(n.addIssue(typeof e=="function"?e(t,n):e),!1))}_refinement(r){return new gb({schema:this,typeName:dh.ZodEffects,effect:{type:"refinement",refinement:r}})}superRefine(r){return this._refinement(r)}constructor(r){this.spa=this.safeParseAsync,this._def=r,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:e=>this["~validate"](e)}}optional(){return iS.create(this,this._def)}nullable(){return H4.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return bw.create(this)}promise(){return CT.create(this,this._def)}or(r){return wC.create([this,r],this._def)}and(r){return TC.create(this,r,this._def)}transform(r){return new gb({...p0(this._def),schema:this,typeName:dh.ZodEffects,effect:{type:"transform",transform:r}})}default(r){const e=typeof r=="function"?r:()=>r;return new NC({...p0(this._def),innerType:this,defaultValue:e,typeName:dh.ZodDefault})}brand(){return new Zee({typeName:dh.ZodBranded,type:this,...p0(this._def)})}catch(r){const e=typeof r=="function"?r:()=>r;return new PC({...p0(this._def),innerType:this,catchValue:e,typeName:dh.ZodCatch})}describe(r){const e=this.constructor;return new e({...this._def,description:r})}pipe(r){return Qee.create(this,r)}readonly(){return DC.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},u4t=/^c[^\s-]{8,}$/i,f4t=/^[0-9a-z]+$/,d4t=/^[0-9A-HJKMNP-TV-Z]{26}$/i,h4t=/^[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,p4t=/^[a-z0-9_-]{21}$/i,m4t=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,v4t=/^[-+]?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)?)??$/,y4t=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,g4t="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Wee,_4t=/^(?:(?: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])$/,x4t=/^(?:(?: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])$/,b4t=/^(([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]))$/,S4t=/^(([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])$/,E4t=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,w4t=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,jMe="((\\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])))",T4t=new RegExp(`^${jMe}$`);function VMe(r){let e="([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d";return r.precision?e=`${e}\\.\\d{${r.precision}}`:r.precision==null&&(e=`${e}(\\.\\d+)?`),e}function M4t(r){return new RegExp(`^${VMe(r)}$`)}function GMe(r){let e=`${jMe}T${VMe(r)}`;const t=[];return t.push(r.local?"Z?":"Z"),r.offset&&t.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${t.join("|")})`,new RegExp(`^${e}$`)}function C4t(r,e){return!!((e==="v4"||!e)&&_4t.test(r)||(e==="v6"||!e)&&b4t.test(r))}function R4t(r,e){if(!m4t.test(r))return!1;try{const[t]=r.split("."),n=t.replace(/-/g,"+").replace(/_/g,"/").padEnd(t.length+(4-t.length%4)%4,"="),i=JSON.parse(atob(n));return!(typeof i!="object"||i===null||!i.typ||!i.alg||e&&i.alg!==e)}catch{return!1}}function A4t(r,e){return!!((e==="v4"||!e)&&x4t.test(r)||(e==="v6"||!e)&&S4t.test(r))}var wT=class vR extends F0{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==Ac.string){const a=this._getOrReturnCtx(e);return $l(a,{code:Jo.invalid_type,expected:Ac.string,received:a.parsedType}),Ph}const n=new e3;let i;for(const a of this._def.checks)if(a.kind==="min")e.data.length<a.value&&(i=this._getOrReturnCtx(e,i),$l(i,{code:Jo.too_small,minimum:a.value,type:"string",inclusive:!0,exact:!1,message:a.message}),n.dirty());else if(a.kind==="max")e.data.length>a.value&&(i=this._getOrReturnCtx(e,i),$l(i,{code:Jo.too_big,maximum:a.value,type:"string",inclusive:!0,exact:!1,message:a.message}),n.dirty());else if(a.kind==="length"){const o=e.data.length>a.value,s=e.data.length<a.value;(o||s)&&(i=this._getOrReturnCtx(e,i),o?$l(i,{code:Jo.too_big,maximum:a.value,type:"string",inclusive:!0,exact:!0,message:a.message}):s&&$l(i,{code:Jo.too_small,minimum:a.value,type:"string",inclusive:!0,exact:!0,message:a.message}),n.dirty())}else if(a.kind==="email")y4t.test(e.data)||(i=this._getOrReturnCtx(e,i),$l(i,{validation:"email",code:Jo.invalid_string,message:a.message}),n.dirty());else if(a.kind==="emoji")Wee||(Wee=new RegExp(g4t,"u")),Wee.test(e.data)||(i=this._getOrReturnCtx(e,i),$l(i,{validation:"emoji",code:Jo.invalid_string,message:a.message}),n.dirty());else if(a.kind==="uuid")h4t.test(e.data)||(i=this._getOrReturnCtx(e,i),$l(i,{validation:"uuid",code:Jo.invalid_string,message:a.message}),n.dirty());else if(a.kind==="nanoid")p4t.test(e.data)||(i=this._getOrReturnCtx(e,i),$l(i,{validation:"nanoid",code:Jo.invalid_string,message:a.message}),n.dirty());else if(a.kind==="cuid")u4t.test(e.data)||(i=this._getOrReturnCtx(e,i),$l(i,{validation:"cuid",code:Jo.invalid_string,message:a.message}),n.dirty());else if(a.kind==="cuid2")f4t.test(e.data)||(i=this._getOrReturnCtx(e,i),$l(i,{validation:"cuid2",code:Jo.invalid_string,message:a.message}),n.dirty());else if(a.kind==="ulid")d4t.test(e.data)||(i=this._getOrReturnCtx(e,i),$l(i,{validation:"ulid",code:Jo.invalid_string,message:a.message}),n.dirty());else if(a.kind==="url")try{new URL(e.data)}catch{i=this._getOrReturnCtx(e,i),$l(i,{validation:"url",code:Jo.invalid_string,message:a.message}),n.dirty()}else a.kind==="regex"?(a.regex.lastIndex=0,a.regex.test(e.data)||(i=this._getOrReturnCtx(e,i),$l(i,{validation:"regex",code:Jo.invalid_string,message:a.message}),n.dirty())):a.kind==="trim"?e.data=e.data.trim():a.kind==="includes"?e.data.includes(a.value,a.position)||(i=this._getOrReturnCtx(e,i),$l(i,{code:Jo.invalid_string,validation:{includes:a.value,position:a.position},message:a.message}),n.dirty()):a.kind==="toLowerCase"?e.data=e.data.toLowerCase():a.kind==="toUpperCase"?e.data=e.data.toUpperCase():a.kind==="startsWith"?e.data.startsWith(a.value)||(i=this._getOrReturnCtx(e,i),$l(i,{code:Jo.invalid_string,validation:{startsWith:a.value},message:a.message}),n.dirty()):a.kind==="endsWith"?e.data.endsWith(a.value)||(i=this._getOrReturnCtx(e,i),$l(i,{code:Jo.invalid_string,validation:{endsWith:a.value},message:a.message}),n.dirty()):a.kind==="datetime"?GMe(a).test(e.data)||(i=this._getOrReturnCtx(e,i),$l(i,{code:Jo.invalid_string,validation:"datetime",message:a.message}),n.dirty()):a.kind==="date"?T4t.test(e.data)||(i=this._getOrReturnCtx(e,i),$l(i,{code:Jo.invalid_string,validation:"date",message:a.message}),n.dirty()):a.kind==="time"?M4t(a).test(e.data)||(i=this._getOrReturnCtx(e,i),$l(i,{code:Jo.invalid_string,validation:"time",message:a.message}),n.dirty()):a.kind==="duration"?v4t.test(e.data)||(i=this._getOrReturnCtx(e,i),$l(i,{validation:"duration",code:Jo.invalid_string,message:a.message}),n.dirty()):a.kind==="ip"?C4t(e.data,a.version)||(i=this._getOrReturnCtx(e,i),$l(i,{validation:"ip",code:Jo.invalid_string,message:a.message}),n.dirty()):a.kind==="jwt"?R4t(e.data,a.alg)||(i=this._getOrReturnCtx(e,i),$l(i,{validation:"jwt",code:Jo.invalid_string,message:a.message}),n.dirty()):a.kind==="cidr"?A4t(e.data,a.version)||(i=this._getOrReturnCtx(e,i),$l(i,{validation:"cidr",code:Jo.invalid_string,message:a.message}),n.dirty()):a.kind==="base64"?E4t.test(e.data)||(i=this._getOrReturnCtx(e,i),$l(i,{validation:"base64",code:Jo.invalid_string,message:a.message}),n.dirty()):a.kind==="base64url"?w4t.test(e.data)||(i=this._getOrReturnCtx(e,i),$l(i,{validation:"base64url",code:Jo.invalid_string,message:a.message}),n.dirty()):Tv.assertNever(a);return{status:n.value,value:e.data}}_regex(e,t,n){return this.refinement(i=>e.test(i),{validation:t,code:Jo.invalid_string,...Ju.errToObj(n)})}_addCheck(e){return new vR({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...Ju.errToObj(e)})}url(e){return this._addCheck({kind:"url",...Ju.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...Ju.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...Ju.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...Ju.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...Ju.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...Ju.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...Ju.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...Ju.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...Ju.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...Ju.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...Ju.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...Ju.errToObj(e)})}datetime(e){var t,n;return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,offset:(t=e==null?void 0:e.offset)!==null&&t!==void 0?t:!1,local:(n=e==null?void 0:e.local)!==null&&n!==void 0?n:!1,...Ju.errToObj(e==null?void 0: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==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,...Ju.errToObj(e==null?void 0:e.message)})}duration(e){return this._addCheck({kind:"duration",...Ju.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...Ju.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:t==null?void 0:t.position,...Ju.errToObj(t==null?void 0:t.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...Ju.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...Ju.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...Ju.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...Ju.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...Ju.errToObj(t)})}nonempty(e){return this.min(1,Ju.errToObj(e))}trim(){return new vR({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new vR({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new vR({...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(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}};wT.create=r=>{var e;return new wT({checks:[],typeName:dh.ZodString,coerce:(e=r==null?void 0:r.coerce)!==null&&e!==void 0?e:!1,...p0(r)})};function N4t(r,e){const t=(r.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,i=t>n?t:n,a=parseInt(r.toFixed(i).replace(".","")),o=parseInt(e.toFixed(i).replace(".",""));return a%o/Math.pow(10,i)}var gC=class Die extends F0{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)!==Ac.number){const a=this._getOrReturnCtx(e);return $l(a,{code:Jo.invalid_type,expected:Ac.number,received:a.parsedType}),Ph}let n;const i=new e3;for(const a of this._def.checks)a.kind==="int"?Tv.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),$l(n,{code:Jo.invalid_type,expected:"integer",received:"float",message:a.message}),i.dirty()):a.kind==="min"?(a.inclusive?e.data<a.value:e.data<=a.value)&&(n=this._getOrReturnCtx(e,n),$l(n,{code:Jo.too_small,minimum:a.value,type:"number",inclusive:a.inclusive,exact:!1,message:a.message}),i.dirty()):a.kind==="max"?(a.inclusive?e.data>a.value:e.data>=a.value)&&(n=this._getOrReturnCtx(e,n),$l(n,{code:Jo.too_big,maximum:a.value,type:"number",inclusive:a.inclusive,exact:!1,message:a.message}),i.dirty()):a.kind==="multipleOf"?N4t(e.data,a.value)!==0&&(n=this._getOrReturnCtx(e,n),$l(n,{code:Jo.not_multiple_of,multipleOf:a.value,message:a.message}),i.dirty()):a.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),$l(n,{code:Jo.not_finite,message:a.message}),i.dirty()):Tv.assertNever(a);return{status:i.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,Ju.toString(t))}gt(e,t){return this.setLimit("min",e,!1,Ju.toString(t))}lte(e,t){return this.setLimit("max",e,!0,Ju.toString(t))}lt(e,t){return this.setLimit("max",e,!1,Ju.toString(t))}setLimit(e,t,n,i){return new Die({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:Ju.toString(i)}]})}_addCheck(e){return new Die({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:Ju.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:Ju.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:Ju.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:Ju.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:Ju.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:Ju.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:Ju.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:Ju.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:Ju.toString(e)})}get minValue(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const 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"&&Tv.isInteger(e.value))}get isFinite(){let e=null,t=null;for(const n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(t===null||n.value>t)&&(t=n.value):n.kind==="max"&&(e===null||n.value<e)&&(e=n.value)}return Number.isFinite(t)&&Number.isFinite(e)}};gC.create=r=>new gC({checks:[],typeName:dh.ZodNumber,coerce:(r==null?void 0:r.coerce)||!1,...p0(r)});var _C=class Lie extends F0{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)!==Ac.bigint)return this._getInvalidInput(e);let n;const i=new e3;for(const a of this._def.checks)a.kind==="min"?(a.inclusive?e.data<a.value:e.data<=a.value)&&(n=this._getOrReturnCtx(e,n),$l(n,{code:Jo.too_small,type:"bigint",minimum:a.value,inclusive:a.inclusive,message:a.message}),i.dirty()):a.kind==="max"?(a.inclusive?e.data>a.value:e.data>=a.value)&&(n=this._getOrReturnCtx(e,n),$l(n,{code:Jo.too_big,type:"bigint",maximum:a.value,inclusive:a.inclusive,message:a.message}),i.dirty()):a.kind==="multipleOf"?e.data%a.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),$l(n,{code:Jo.not_multiple_of,multipleOf:a.value,message:a.message}),i.dirty()):Tv.assertNever(a);return{status:i.value,value:e.data}}_getInvalidInput(e){const t=this._getOrReturnCtx(e);return $l(t,{code:Jo.invalid_type,expected:Ac.bigint,received:t.parsedType}),Ph}gte(e,t){return this.setLimit("min",e,!0,Ju.toString(t))}gt(e,t){return this.setLimit("min",e,!1,Ju.toString(t))}lte(e,t){return this.setLimit("max",e,!0,Ju.toString(t))}lt(e,t){return this.setLimit("max",e,!1,Ju.toString(t))}setLimit(e,t,n,i){return new Lie({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:Ju.toString(i)}]})}_addCheck(e){return new Lie({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:Ju.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:Ju.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:Ju.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:Ju.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:Ju.toString(t)})}get minValue(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}};_C.create=r=>{var e;return new _C({checks:[],typeName:dh.ZodBigInt,coerce:(e=r==null?void 0:r.coerce)!==null&&e!==void 0?e:!1,...p0(r)})};var xC=class extends F0{_parse(r){if(this._def.coerce&&(r.data=!!r.data),this._getType(r)!==Ac.boolean){const t=this._getOrReturnCtx(r);return $l(t,{code:Jo.invalid_type,expected:Ac.boolean,received:t.parsedType}),Ph}return T5(r.data)}};xC.create=r=>new xC({typeName:dh.ZodBoolean,coerce:(r==null?void 0:r.coerce)||!1,...p0(r)});var bC=class Hze extends F0{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==Ac.date){const a=this._getOrReturnCtx(e);return $l(a,{code:Jo.invalid_type,expected:Ac.date,received:a.parsedType}),Ph}if(isNaN(e.data.getTime())){const a=this._getOrReturnCtx(e);return $l(a,{code:Jo.invalid_date}),Ph}const n=new e3;let i;for(const a of this._def.checks)a.kind==="min"?e.data.getTime()<a.value&&(i=this._getOrReturnCtx(e,i),$l(i,{code:Jo.too_small,message:a.message,inclusive:!0,exact:!1,minimum:a.value,type:"date"}),n.dirty()):a.kind==="max"?e.data.getTime()>a.value&&(i=this._getOrReturnCtx(e,i),$l(i,{code:Jo.too_big,message:a.message,inclusive:!0,exact:!1,maximum:a.value,type:"date"}),n.dirty()):Tv.assertNever(a);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new Hze({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:Ju.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:Ju.toString(t)})}get minDate(){let e=null;for(const 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(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e!=null?new Date(e):null}};bC.create=r=>new bC({checks:[],coerce:(r==null?void 0:r.coerce)||!1,typeName:dh.ZodDate,...p0(r)});var $O=class extends F0{_parse(r){if(this._getType(r)!==Ac.symbol){const t=this._getOrReturnCtx(r);return $l(t,{code:Jo.invalid_type,expected:Ac.symbol,received:t.parsedType}),Ph}return T5(r.data)}};$O.create=r=>new $O({typeName:dh.ZodSymbol,...p0(r)});var SC=class extends F0{_parse(r){if(this._getType(r)!==Ac.undefined){const t=this._getOrReturnCtx(r);return $l(t,{code:Jo.invalid_type,expected:Ac.undefined,received:t.parsedType}),Ph}return T5(r.data)}};SC.create=r=>new SC({typeName:dh.ZodUndefined,...p0(r)});var EC=class extends F0{_parse(r){if(this._getType(r)!==Ac.null){const t=this._getOrReturnCtx(r);return $l(t,{code:Jo.invalid_type,expected:Ac.null,received:t.parsedType}),Ph}return T5(r.data)}};EC.create=r=>new EC({typeName:dh.ZodNull,...p0(r)});var TT=class extends F0{constructor(){super(...arguments),this._any=!0}_parse(r){return T5(r.data)}};TT.create=r=>new TT({typeName:dh.ZodAny,...p0(r)});var xw=class extends F0{constructor(){super(...arguments),this._unknown=!0}_parse(r){return T5(r.data)}};xw.create=r=>new xw({typeName:dh.ZodUnknown,...p0(r)});var XS=class extends F0{_parse(r){const e=this._getOrReturnCtx(r);return $l(e,{code:Jo.invalid_type,expected:Ac.never,received:e.parsedType}),Ph}};XS.create=r=>new XS({typeName:dh.ZodNever,...p0(r)});var ZO=class extends F0{_parse(r){if(this._getType(r)!==Ac.undefined){const t=this._getOrReturnCtx(r);return $l(t,{code:Jo.invalid_type,expected:Ac.void,received:t.parsedType}),Ph}return T5(r.data)}};ZO.create=r=>new ZO({typeName:dh.ZodVoid,...p0(r)});var bw=class oI extends F0{_parse(e){const{ctx:t,status:n}=this._processInputParams(e),i=this._def;if(t.parsedType!==Ac.array)return $l(t,{code:Jo.invalid_type,expected:Ac.array,received:t.parsedType}),Ph;if(i.exactLength!==null){const o=t.data.length>i.exactLength.value,s=t.data.length<i.exactLength.value;(o||s)&&($l(t,{code:o?Jo.too_big:Jo.too_small,minimum:s?i.exactLength.value:void 0,maximum:o?i.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:i.exactLength.message}),n.dirty())}if(i.minLength!==null&&t.data.length<i.minLength.value&&($l(t,{code:Jo.too_small,minimum:i.minLength.value,type:"array",inclusive:!0,exact:!1,message:i.minLength.message}),n.dirty()),i.maxLength!==null&&t.data.length>i.maxLength.value&&($l(t,{code:Jo.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),n.dirty()),t.common.async)return Promise.all([...t.data].map((o,s)=>i.type._parseAsync(new rS(t,o,t.path,s)))).then(o=>e3.mergeArray(n,o));const a=[...t.data].map((o,s)=>i.type._parseSync(new rS(t,o,t.path,s)));return e3.mergeArray(n,a)}get element(){return this._def.type}min(e,t){return new oI({...this._def,minLength:{value:e,message:Ju.toString(t)}})}max(e,t){return new oI({...this._def,maxLength:{value:e,message:Ju.toString(t)}})}length(e,t){return new oI({...this._def,exactLength:{value:e,message:Ju.toString(t)}})}nonempty(e){return this.min(1,e)}};bw.create=(r,e)=>new bw({type:r,minLength:null,maxLength:null,exactLength:null,typeName:dh.ZodArray,...p0(e)});function MT(r){if(r instanceof q3){const e={};for(const t in r.shape){const n=r.shape[t];e[t]=iS.create(MT(n))}return new q3({...r._def,shape:()=>e})}else return r instanceof bw?new bw({...r._def,type:MT(r.element)}):r instanceof iS?iS.create(MT(r.unwrap())):r instanceof H4?H4.create(MT(r.unwrap())):r instanceof B4?B4.create(r.items.map(e=>MT(e))):r}var q3=class Ab extends F0{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const e=this._def.shape(),t=Tv.objectKeys(e);return this._cached={shape:e,keys:t}}_parse(e){if(this._getType(e)!==Ac.object){const c=this._getOrReturnCtx(e);return $l(c,{code:Jo.invalid_type,expected:Ac.object,received:c.parsedType}),Ph}const{status:n,ctx:i}=this._processInputParams(e),{shape:a,keys:o}=this._getCached(),s=[];if(!(this._def.catchall instanceof XS&&this._def.unknownKeys==="strip"))for(const c in i.data)o.includes(c)||s.push(c);const l=[];for(const c of o){const u=a[c],f=i.data[c];l.push({key:{status:"valid",value:c},value:u._parse(new rS(i,f,i.path,c)),alwaysSet:c in i.data})}if(this._def.catchall instanceof XS){const c=this._def.unknownKeys;if(c==="passthrough")for(const u of s)l.push({key:{status:"valid",value:u},value:{status:"valid",value:i.data[u]}});else if(c==="strict")s.length>0&&($l(i,{code:Jo.unrecognized_keys,keys:s}),n.dirty());else if(c!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const c=this._def.catchall;for(const u of s){const f=i.data[u];l.push({key:{status:"valid",value:u},value:c._parse(new rS(i,f,i.path,u)),alwaysSet:u in i.data})}}return i.common.async?Promise.resolve().then(async()=>{const c=[];for(const u of l){const f=await u.key,y=await u.value;c.push({key:f,value:y,alwaysSet:u.alwaysSet})}return c}).then(c=>e3.mergeObjectSync(n,c)):e3.mergeObjectSync(n,l)}get shape(){return this._def.shape()}strict(e){return Ju.errToObj,new Ab({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(t,n)=>{var i,a,o,s;const l=(o=(a=(i=this._def).errorMap)===null||a===void 0?void 0:a.call(i,t,n).message)!==null&&o!==void 0?o:n.defaultError;return t.code==="unrecognized_keys"?{message:(s=Ju.errToObj(e).message)!==null&&s!==void 0?s:l}:{message:l}}}:{}})}strip(){return new Ab({...this._def,unknownKeys:"strip"})}passthrough(){return new Ab({...this._def,unknownKeys:"passthrough"})}extend(e){return new Ab({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new Ab({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:dh.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new Ab({...this._def,catchall:e})}pick(e){const t={};return Tv.objectKeys(e).forEach(n=>{e[n]&&this.shape[n]&&(t[n]=this.shape[n])}),new Ab({...this._def,shape:()=>t})}omit(e){const t={};return Tv.objectKeys(this.shape).forEach(n=>{e[n]||(t[n]=this.shape[n])}),new Ab({...this._def,shape:()=>t})}deepPartial(){return MT(this)}partial(e){const t={};return Tv.objectKeys(this.shape).forEach(n=>{const i=this.shape[n];e&&!e[n]?t[n]=i:t[n]=i.optional()}),new Ab({...this._def,shape:()=>t})}required(e){const t={};return Tv.objectKeys(this.shape).forEach(n=>{if(e&&!e[n])t[n]=this.shape[n];else{let a=this.shape[n];for(;a instanceof iS;)a=a._def.innerType;t[n]=a}}),new Ab({...this._def,shape:()=>t})}keyof(){return WMe(Tv.objectKeys(this.shape))}};q3.create=(r,e)=>new q3({shape:()=>r,unknownKeys:"strip",catchall:XS.create(),typeName:dh.ZodObject,...p0(e)}),q3.strictCreate=(r,e)=>new q3({shape:()=>r,unknownKeys:"strict",catchall:XS.create(),typeName:dh.ZodObject,...p0(e)}),q3.lazycreate=(r,e)=>new q3({shape:r,unknownKeys:"strip",catchall:XS.create(),typeName:dh.ZodObject,...p0(e)});var wC=class extends F0{_parse(r){const{ctx:e}=this._processInputParams(r),t=this._def.options;function n(i){for(const o of i)if(o.result.status==="valid")return o.result;for(const o of i)if(o.result.status==="dirty")return e.common.issues.push(...o.ctx.common.issues),o.result;const a=i.map(o=>new yb(o.ctx.common.issues));return $l(e,{code:Jo.invalid_union,unionErrors:a}),Ph}if(e.common.async)return Promise.all(t.map(async i=>{const a={...e,common:{...e.common,issues:[]},parent:null};return{result:await i._parseAsync({data:e.data,path:e.path,parent:a}),ctx:a}})).then(n);{let i;const a=[];for(const s of t){const l={...e,common:{...e.common,issues:[]},parent:null},c=s._parseSync({data:e.data,path:e.path,parent:l});if(c.status==="valid")return c;c.status==="dirty"&&!i&&(i={result:c,ctx:l}),l.common.issues.length&&a.push(l.common.issues)}if(i)return e.common.issues.push(...i.ctx.common.issues),i.result;const o=a.map(s=>new yb(s));return $l(e,{code:Jo.invalid_union,unionErrors:o}),Ph}}get options(){return this._def.options}};wC.create=(r,e)=>new wC({options:r,typeName:dh.ZodUnion,...p0(e)});var WS=r=>r instanceof MC?WS(r.schema):r instanceof gb?WS(r.innerType()):r instanceof CC?[r.value]:r instanceof RC?r.options:r instanceof AC?Tv.objectValues(r.enum):r instanceof NC?WS(r._def.innerType):r instanceof SC?[void 0]:r instanceof EC?[null]:r instanceof iS?[void 0,...WS(r.unwrap())]:r instanceof H4?[null,...WS(r.unwrap())]:r instanceof Zee||r instanceof DC?WS(r.unwrap()):r instanceof PC?WS(r._def.innerType):[],qMe=class jze extends F0{_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==Ac.object)return $l(t,{code:Jo.invalid_type,expected:Ac.object,received:t.parsedType}),Ph;const n=this.discriminator,i=t.data[n],a=this.optionsMap.get(i);return a?t.common.async?a._parseAsync({data:t.data,path:t.path,parent:t}):a._parseSync({data:t.data,path:t.path,parent:t}):($l(t,{code:Jo.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),Ph)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,t,n){const i=new Map;for(const a of t){const o=WS(a.shape[e]);if(!o.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(const s of o){if(i.has(s))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(s)}`);i.set(s,a)}}return new jze({typeName:dh.ZodDiscriminatedUnion,discriminator:e,options:t,optionsMap:i,...p0(n)})}};function $ee(r,e){const t=YS(r),n=YS(e);if(r===e)return{valid:!0,data:r};if(t===Ac.object&&n===Ac.object){const i=Tv.objectKeys(e),a=Tv.objectKeys(r).filter(s=>i.indexOf(s)!==-1),o={...r,...e};for(const s of a){const l=$ee(r[s],e[s]);if(!l.valid)return{valid:!1};o[s]=l.data}return{valid:!0,data:o}}else if(t===Ac.array&&n===Ac.array){if(r.length!==e.length)return{valid:!1};const i=[];for(let a=0;a<r.length;a++){const o=r[a],s=e[a],l=$ee(o,s);if(!l.valid)return{valid:!1};i.push(l.data)}return{valid:!0,data:i}}else return t===Ac.date&&n===Ac.date&&+r==+e?{valid:!0,data:r}:{valid:!1}}var TC=class extends F0{_parse(r){const{status:e,ctx:t}=this._processInputParams(r),n=(i,a)=>{if(Yee(i)||Yee(a))return Ph;const o=$ee(i.value,a.value);return o.valid?((Xee(i)||Xee(a))&&e.dirty(),{status:e.value,value:o.data}):($l(t,{code:Jo.invalid_intersection_types}),Ph)};return t.common.async?Promise.all([this._def.left._parseAsync({data:t.data,path:t.path,parent:t}),this._def.right._parseAsync({data:t.data,path:t.path,parent:t})]).then(([i,a])=>n(i,a)):n(this._def.left._parseSync({data:t.data,path:t.path,parent:t}),this._def.right._parseSync({data:t.data,path:t.path,parent:t}))}};TC.create=(r,e,t)=>new TC({left:r,right:e,typeName:dh.ZodIntersection,...p0(t)});var B4=class Vze extends F0{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==Ac.array)return $l(n,{code:Jo.invalid_type,expected:Ac.array,received:n.parsedType}),Ph;if(n.data.length<this._def.items.length)return $l(n,{code:Jo.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),Ph;!this._def.rest&&n.data.length>this._def.items.length&&($l(n,{code:Jo.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t.dirty());const a=[...n.data].map((o,s)=>{const l=this._def.items[s]||this._def.rest;return l?l._parse(new rS(n,o,n.path,s)):null}).filter(o=>!!o);return n.common.async?Promise.all(a).then(o=>e3.mergeArray(t,o)):e3.mergeArray(t,a)}get items(){return this._def.items}rest(e){return new Vze({...this._def,rest:e})}};B4.create=(r,e)=>{if(!Array.isArray(r))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new B4({items:r,typeName:dh.ZodTuple,rest:null,...p0(e)})};var YMe=class Oie extends F0{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==Ac.object)return $l(n,{code:Jo.invalid_type,expected:Ac.object,received:n.parsedType}),Ph;const i=[],a=this._def.keyType,o=this._def.valueType;for(const s in n.data)i.push({key:a._parse(new rS(n,s,n.path,s)),value:o._parse(new rS(n,n.data[s],n.path,s)),alwaysSet:s in n.data});return n.common.async?e3.mergeObjectAsync(t,i):e3.mergeObjectSync(t,i)}get element(){return this._def.valueType}static create(e,t,n){return t instanceof F0?new Oie({keyType:e,valueType:t,typeName:dh.ZodRecord,...p0(n)}):new Oie({keyType:wT.create(),valueType:e,typeName:dh.ZodRecord,...p0(t)})}},QO=class extends F0{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(r){const{status:e,ctx:t}=this._processInputParams(r);if(t.parsedType!==Ac.map)return $l(t,{code:Jo.invalid_type,expected:Ac.map,received:t.parsedType}),Ph;const n=this._def.keyType,i=this._def.valueType,a=[...t.data.entries()].map(([o,s],l)=>({key:n._parse(new rS(t,o,t.path,[l,"key"])),value:i._parse(new rS(t,s,t.path,[l,"value"]))}));if(t.common.async){const o=new Map;return Promise.resolve().then(async()=>{for(const s of a){const l=await s.key,c=await s.value;if(l.status==="aborted"||c.status==="aborted")return Ph;(l.status==="dirty"||c.status==="dirty")&&e.dirty(),o.set(l.value,c.value)}return{status:e.value,value:o}})}else{const o=new Map;for(const s of a){const l=s.key,c=s.value;if(l.status==="aborted"||c.status==="aborted")return Ph;(l.status==="dirty"||c.status==="dirty")&&e.dirty(),o.set(l.value,c.value)}return{status:e.value,value:o}}}};QO.create=(r,e,t)=>new QO({valueType:e,keyType:r,typeName:dh.ZodMap,...p0(t)});var KO=class zie extends F0{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==Ac.set)return $l(n,{code:Jo.invalid_type,expected:Ac.set,received:n.parsedType}),Ph;const i=this._def;i.minSize!==null&&n.data.size<i.minSize.value&&($l(n,{code:Jo.too_small,minimum:i.minSize.value,type:"set",inclusive:!0,exact:!1,message:i.minSize.message}),t.dirty()),i.maxSize!==null&&n.data.size>i.maxSize.value&&($l(n,{code:Jo.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),t.dirty());const a=this._def.valueType;function o(l){const c=new Set;for(const u of l){if(u.status==="aborted")return Ph;u.status==="dirty"&&t.dirty(),c.add(u.value)}return{status:t.value,value:c}}const s=[...n.data.values()].map((l,c)=>a._parse(new rS(n,l,n.path,c)));return n.common.async?Promise.all(s).then(l=>o(l)):o(s)}min(e,t){return new zie({...this._def,minSize:{value:e,message:Ju.toString(t)}})}max(e,t){return new zie({...this._def,maxSize:{value:e,message:Ju.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}};KO.create=(r,e)=>new KO({valueType:r,minSize:null,maxSize:null,typeName:dh.ZodSet,...p0(e)});var XMe=class sI extends F0{constructor(){super(...arguments),this.validate=this.implement}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==Ac.function)return $l(t,{code:Jo.invalid_type,expected:Ac.function,received:t.parsedType}),Ph;function n(s,l){return XO({data:s,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,YO(),ST].filter(c=>!!c),issueData:{code:Jo.invalid_arguments,argumentsError:l}})}function i(s,l){return XO({data:s,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,YO(),ST].filter(c=>!!c),issueData:{code:Jo.invalid_return_type,returnTypeError:l}})}const a={errorMap:t.common.contextualErrorMap},o=t.data;if(this._def.returns instanceof CT){const s=this;return T5(async function(...l){const c=new yb([]),u=await s._def.args.parseAsync(l,a).catch(_=>{throw c.addIssue(n(l,_)),c}),f=await Reflect.apply(o,this,u);return await s._def.returns._def.type.parseAsync(f,a).catch(_=>{throw c.addIssue(i(f,_)),c})})}else{const s=this;return T5(function(...l){const c=s._def.args.safeParse(l,a);if(!c.success)throw new yb([n(l,c.error)]);const u=Reflect.apply(o,this,c.data),f=s._def.returns.safeParse(u,a);if(!f.success)throw new yb([i(u,f.error)]);return f.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new sI({...this._def,args:B4.create(e).rest(xw.create())})}returns(e){return new sI({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,t,n){return new sI({args:e||B4.create([]).rest(xw.create()),returns:t||xw.create(),typeName:dh.ZodFunction,...p0(n)})}},MC=class extends F0{get schema(){return this._def.getter()}_parse(r){const{ctx:e}=this._processInputParams(r);return this._def.getter()._parse({data:e.data,path:e.path,parent:e})}};MC.create=(r,e)=>new MC({getter:r,typeName:dh.ZodLazy,...p0(e)});var CC=class extends F0{_parse(r){if(r.data!==this._def.value){const e=this._getOrReturnCtx(r);return $l(e,{received:e.data,code:Jo.invalid_literal,expected:this._def.value}),Ph}return{status:"valid",value:r.data}}get value(){return this._def.value}};CC.create=(r,e)=>new CC({value:r,typeName:dh.ZodLiteral,...p0(e)});function WMe(r,e){return new RC({values:r,typeName:dh.ZodEnum,...p0(e)})}var RC=class Uie extends F0{constructor(){super(...arguments),vC.set(this,void 0)}_parse(e){if(typeof e.data!="string"){const t=this._getOrReturnCtx(e),n=this._def.values;return $l(t,{expected:Tv.joinValues(n),received:t.parsedType,code:Jo.invalid_type}),Ph}if(WO(this,vC)||BMe(this,vC,new Set(this._def.values)),!WO(this,vC).has(e.data)){const t=this._getOrReturnCtx(e),n=this._def.values;return $l(t,{received:t.data,code:Jo.invalid_enum_value,options:n}),Ph}return T5(e.data)}get options(){return this._def.values}get enum(){const e={};for(const t of this._def.values)e[t]=t;return e}get Values(){const e={};for(const t of this._def.values)e[t]=t;return e}get Enum(){const e={};for(const t of this._def.values)e[t]=t;return e}extract(e,t=this._def){return Uie.create(e,{...this._def,...t})}exclude(e,t=this._def){return Uie.create(this.options.filter(n=>!e.includes(n)),{...this._def,...t})}};vC=new WeakMap,RC.create=WMe;var AC=class extends F0{constructor(){super(...arguments),yC.set(this,void 0)}_parse(r){const e=Tv.getValidEnumValues(this._def.values),t=this._getOrReturnCtx(r);if(t.parsedType!==Ac.string&&t.parsedType!==Ac.number){const n=Tv.objectValues(e);return $l(t,{expected:Tv.joinValues(n),received:t.parsedType,code:Jo.invalid_type}),Ph}if(WO(this,yC)||BMe(this,yC,new Set(Tv.getValidEnumValues(this._def.values))),!WO(this,yC).has(r.data)){const n=Tv.objectValues(e);return $l(t,{received:t.data,code:Jo.invalid_enum_value,options:n}),Ph}return T5(r.data)}get enum(){return this._def.values}};yC=new WeakMap,AC.create=(r,e)=>new AC({values:r,typeName:dh.ZodNativeEnum,...p0(e)});var CT=class extends F0{unwrap(){return this._def.type}_parse(r){const{ctx:e}=this._processInputParams(r);if(e.parsedType!==Ac.promise&&e.common.async===!1)return $l(e,{code:Jo.invalid_type,expected:Ac.promise,received:e.parsedType}),Ph;const t=e.parsedType===Ac.promise?e.data:Promise.resolve(e.data);return T5(t.then(n=>this._def.type.parseAsync(n,{path:e.path,errorMap:e.common.contextualErrorMap})))}};CT.create=(r,e)=>new CT({type:r,typeName:dh.ZodPromise,...p0(e)});var gb=class extends F0{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===dh.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(r){const{status:e,ctx:t}=this._processInputParams(r),n=this._def.effect||null,i={addIssue:a=>{$l(t,a),a.fatal?e.abort():e.dirty()},get path(){return t.path}};if(i.addIssue=i.addIssue.bind(i),n.type==="preprocess"){const a=n.transform(t.data,i);if(t.common.async)return Promise.resolve(a).then(async o=>{if(e.value==="aborted")return Ph;const s=await this._def.schema._parseAsync({data:o,path:t.path,parent:t});return s.status==="aborted"?Ph:s.status==="dirty"||e.value==="dirty"?ET(s.value):s});{if(e.value==="aborted")return Ph;const o=this._def.schema._parseSync({data:a,path:t.path,parent:t});return o.status==="aborted"?Ph:o.status==="dirty"||e.value==="dirty"?ET(o.value):o}}if(n.type==="refinement"){const a=o=>{const s=n.refinement(o,i);if(t.common.async)return Promise.resolve(s);if(s instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return o};if(t.common.async===!1){const o=this._def.schema._parseSync({data:t.data,path:t.path,parent:t});return o.status==="aborted"?Ph:(o.status==="dirty"&&e.dirty(),a(o.value),{status:e.value,value:o.value})}else return this._def.schema._parseAsync({data:t.data,path:t.path,parent:t}).then(o=>o.status==="aborted"?Ph:(o.status==="dirty"&&e.dirty(),a(o.value).then(()=>({status:e.value,value:o.value}))))}if(n.type==="transform")if(t.common.async===!1){const a=this._def.schema._parseSync({data:t.data,path:t.path,parent:t});if(!_w(a))return a;const o=n.transform(a.value,i);if(o instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:e.value,value:o}}else return this._def.schema._parseAsync({data:t.data,path:t.path,parent:t}).then(a=>_w(a)?Promise.resolve(n.transform(a.value,i)).then(o=>({status:e.value,value:o})):a);Tv.assertNever(n)}};gb.create=(r,e,t)=>new gb({schema:r,typeName:dh.ZodEffects,effect:e,...p0(t)}),gb.createWithPreprocess=(r,e,t)=>new gb({schema:e,effect:{type:"preprocess",transform:r},typeName:dh.ZodEffects,...p0(t)});var iS=class extends F0{_parse(r){return this._getType(r)===Ac.undefined?T5(void 0):this._def.innerType._parse(r)}unwrap(){return this._def.innerType}};iS.create=(r,e)=>new iS({innerType:r,typeName:dh.ZodOptional,...p0(e)});var H4=class extends F0{_parse(r){return this._getType(r)===Ac.null?T5(null):this._def.innerType._parse(r)}unwrap(){return this._def.innerType}};H4.create=(r,e)=>new H4({innerType:r,typeName:dh.ZodNullable,...p0(e)});var NC=class extends F0{_parse(r){const{ctx:e}=this._processInputParams(r);let t=e.data;return e.parsedType===Ac.undefined&&(t=this._def.defaultValue()),this._def.innerType._parse({data:t,path:e.path,parent:e})}removeDefault(){return this._def.innerType}};NC.create=(r,e)=>new NC({innerType:r,typeName:dh.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...p0(e)});var PC=class extends F0{_parse(r){const{ctx:e}=this._processInputParams(r),t={...e,common:{...e.common,issues:[]}},n=this._def.innerType._parse({data:t.data,path:t.path,parent:{...t}});return mC(n)?n.then(i=>({status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new yb(t.common.issues)},input:t.data})})):{status:"valid",value:n.status==="valid"?n.value:this._def.catchValue({get error(){return new yb(t.common.issues)},input:t.data})}}removeCatch(){return this._def.innerType}};PC.create=(r,e)=>new PC({innerType:r,typeName:dh.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...p0(e)});var JO=class extends F0{_parse(r){if(this._getType(r)!==Ac.nan){const t=this._getOrReturnCtx(r);return $l(t,{code:Jo.invalid_type,expected:Ac.nan,received:t.parsedType}),Ph}return{status:"valid",value:r.data}}};JO.create=r=>new JO({typeName:dh.ZodNaN,...p0(r)});var P4t=Symbol("zod_brand"),Zee=class extends F0{_parse(r){const{ctx:e}=this._processInputParams(r),t=e.data;return this._def.type._parse({data:t,path:e.path,parent:e})}unwrap(){return this._def.type}},Qee=class Gze extends F0{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{const a=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return a.status==="aborted"?Ph:a.status==="dirty"?(t.dirty(),ET(a.value)):this._def.out._parseAsync({data:a.value,path:n.path,parent:n})})();{const i=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?Ph:i.status==="dirty"?(t.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:n.path,parent:n})}}static create(e,t){return new Gze({in:e,out:t,typeName:dh.ZodPipeline})}},DC=class extends F0{_parse(r){const e=this._def.innerType._parse(r),t=n=>(_w(n)&&(n.value=Object.freeze(n.value)),n);return mC(e)?e.then(n=>t(n)):t(e)}unwrap(){return this._def.innerType}};DC.create=(r,e)=>new DC({innerType:r,typeName:dh.ZodReadonly,...p0(e)});function $Me(r,e){const t=typeof r=="function"?r(e):typeof r=="string"?{message:r}:r;return typeof t=="string"?{message:t}:t}function ZMe(r,e={},t){return r?TT.create().superRefine((n,i)=>{var a,o;const s=r(n);if(s instanceof Promise)return s.then(l=>{var c,u;if(!l){const f=$Me(e,n),y=(u=(c=f.fatal)!==null&&c!==void 0?c:t)!==null&&u!==void 0?u:!0;i.addIssue({code:"custom",...f,fatal:y})}});if(!s){const l=$Me(e,n),c=(o=(a=l.fatal)!==null&&a!==void 0?a:t)!==null&&o!==void 0?o:!0;i.addIssue({code:"custom",...l,fatal:c})}}):TT.create()}var D4t={object:q3.lazycreate},dh;(function(r){r.ZodString="ZodString",r.ZodNumber="ZodNumber",r.ZodNaN="ZodNaN",r.ZodBigInt="ZodBigInt",r.ZodBoolean="ZodBoolean",r.ZodDate="ZodDate",r.ZodSymbol="ZodSymbol",r.ZodUndefined="ZodUndefined",r.ZodNull="ZodNull",r.ZodAny="ZodAny",r.ZodUnknown="ZodUnknown",r.ZodNever="ZodNever",r.ZodVoid="ZodVoid",r.ZodArray="ZodArray",r.ZodObject="ZodObject",r.ZodUnion="ZodUnion",r.ZodDiscriminatedUnion="ZodDiscriminatedUnion",r.ZodIntersection="ZodIntersection",r.ZodTuple="ZodTuple",r.ZodRecord="ZodRecord",r.ZodMap="ZodMap",r.ZodSet="ZodSet",r.ZodFunction="ZodFunction",r.ZodLazy="ZodLazy",r.ZodLiteral="ZodLiteral",r.ZodEnum="ZodEnum",r.ZodEffects="ZodEffects",r.ZodNativeEnum="ZodNativeEnum",r.ZodOptional="ZodOptional",r.ZodNullable="ZodNullable",r.ZodDefault="ZodDefault",r.ZodCatch="ZodCatch",r.ZodPromise="ZodPromise",r.ZodBranded="ZodBranded",r.ZodPipeline="ZodPipeline",r.ZodReadonly="ZodReadonly"})(dh||(dh={}));var L4t=(r,e={message:`Input not instance of ${r.name}`})=>ZMe(t=>t instanceof r,e),QMe=wT.create,KMe=gC.create,O4t=JO.create,z4t=_C.create,JMe=xC.create,U4t=bC.create,I4t=$O.create,k4t=SC.create,F4t=EC.create,B4t=TT.create,H4t=xw.create,j4t=XS.create,V4t=ZO.create,G4t=bw.create,q4t=q3.create,Y4t=q3.strictCreate,X4t=wC.create,W4t=qMe.create,$4t=TC.create,Z4t=B4.create,Q4t=YMe.create,K4t=QO.create,J4t=KO.create,eEt=XMe.create,tEt=MC.create,nEt=CC.create,rEt=RC.create,iEt=AC.create,aEt=CT.create,e7e=gb.create,oEt=iS.create,sEt=H4.create,lEt=gb.createWithPreprocess,cEt=Qee.create,uEt=()=>QMe().optional(),fEt=()=>KMe().optional(),dEt=()=>JMe().optional(),hEt={string:r=>wT.create({...r,coerce:!0}),number:r=>gC.create({...r,coerce:!0}),boolean:r=>xC.create({...r,coerce:!0}),bigint:r=>_C.create({...r,coerce:!0}),date:r=>bC.create({...r,coerce:!0})},pEt=Ph,xt=Object.freeze({__proto__:null,defaultErrorMap:ST,setErrorMap:l4t,getErrorMap:YO,makeIssue:XO,EMPTY_PATH:c4t,addIssueToContext:$l,ParseStatus:e3,INVALID:Ph,DIRTY:ET,OK:T5,isAborted:Yee,isDirty:Xee,isValid:_w,isAsync:mC,get util(){return Tv},get objectUtil(){return qee},ZodParsedType:Ac,getParsedType:YS,ZodType:F0,datetimeRegex:GMe,ZodString:wT,ZodNumber:gC,ZodBigInt:_C,ZodBoolean:xC,ZodDate:bC,ZodSymbol:$O,ZodUndefined:SC,ZodNull:EC,ZodAny:TT,ZodUnknown:xw,ZodNever:XS,ZodVoid:ZO,ZodArray:bw,ZodObject:q3,ZodUnion:wC,ZodDiscriminatedUnion:qMe,ZodIntersection:TC,ZodTuple:B4,ZodRecord:YMe,ZodMap:QO,ZodSet:KO,ZodFunction:XMe,ZodLazy:MC,ZodLiteral:CC,ZodEnum:RC,ZodNativeEnum:AC,ZodPromise:CT,ZodEffects:gb,ZodTransformer:gb,ZodOptional:iS,ZodNullable:H4,ZodDefault:NC,ZodCatch:PC,ZodNaN:JO,BRAND:P4t,ZodBranded:Zee,ZodPipeline:Qee,ZodReadonly:DC,custom:ZMe,Schema:F0,ZodSchema:F0,late:D4t,get ZodFirstPartyTypeKind(){return dh},coerce:hEt,any:B4t,array:G4t,bigint:z4t,boolean:JMe,date:U4t,discriminatedUnion:W4t,effect:e7e,enum:rEt,function:eEt,instanceof:L4t,intersection:$4t,lazy:tEt,literal:nEt,map:K4t,nan:O4t,nativeEnum:iEt,never:j4t,null:F4t,nullable:sEt,number:KMe,object:q4t,oboolean:dEt,onumber:fEt,optional:oEt,ostring:uEt,pipeline:cEt,preprocess:lEt,promise:aEt,record:Q4t,set:J4t,strictObject:Y4t,string:QMe,symbol:I4t,transformer:e7e,tuple:Z4t,undefined:k4t,union:X4t,unknown:H4t,void:V4t,NEVER:pEt,ZodIssueCode:Jo,quotelessJson:s4t,ZodError:yb}),mEt="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",vEt=(r=21)=>{let e="",t=crypto.getRandomValues(new Uint8Array(r|=0));for(;r--;)e+=mEt[t[r]&63];return e},t7e={Hz:{baseUnit:"Hz",variants:{MHz:1e6,kHz:1e3,Hz:1}},g:{baseUnit:"g",variants:{kg:1e3,g:1}},Ω:{baseUnit:"Ω",variants:{mΩ:.001,Ω:1,kΩ:1e3,KΩ:1e3,kohm:1e3,MΩ:1e6,GΩ:1e9,TΩ:1e12}},V:{baseUnit:"V",variants:{mV:.001,V:1,kV:1e3,KV:1e3,MV:1e6,GV:1e9,TV:1e12}},A:{baseUnit:"A",variants:{µA:1e-6,mA:.001,ma:.001,A:1,kA:1e3,MA:1e6}},F:{baseUnit:"F",variants:{pF:1e-12,nF:1e-9,µF:1e-6,uF:1e-6,mF:.001,F:1}},ml:{baseUnit:"ml",variants:{ml:1,mL:1,l:1e3,L:1e3}},deg:{baseUnit:"deg",variants:{rad:180/Math.PI}},ms:{baseUnit:"ms",variants:{s:1e3}},mm:{baseUnit:"mm",variants:{nm:1e-6,µm:.001,um:.001,mm:1,cm:10,dm:100,m:1e3,km:1e6,in:25.4,ft:304.8,IN:25.4,FT:304.8,yd:914.4,mi:1609344,mil:.0254}}},Kee=new Set;for(const[r,e]of Object.entries(t7e)){Kee.add(r);for(const t of Object.keys(e.variants))Kee.add(t)}function yEt(r){for(const[e,t]of Object.entries(t7e))if(r in t.variants)return{baseUnit:t.baseUnit,conversionFactor:t.variants[r]};return{baseUnit:r,conversionFactor:1}}var n7e={tera:1e12,T:1e12,giga:1e9,G:1e9,mega:1e6,M:1e6,kilo:1e3,k:1e3,deci:.1,d:.1,centi:.01,c:.01,milli:.001,m:.001,micro:1e-6,u:1e-6,µ:1e-6,nano:1e-9,n:1e-9,pico:1e-12,p:1e-12},_b=r=>{var s;if(typeof r>"u")return{parsedUnit:null,unitOfValue:null,value:null};if(typeof r=="string"&&r.match(/^-?[\d\.]+$/))return{value:Number.parseFloat(r),parsedUnit:null,unitOfValue:null};if(typeof r=="number")return{value:r,parsedUnit:null,unitOfValue:null};if(typeof r=="object"&&"x"in r&&"y"in r){const{parsedUnit:l,unitOfValue:c}=_b(r.x);return{parsedUnit:l,unitOfValue:c,value:{x:_b(r.x).value,y:_b(r.y).value}}}const t=(s=r.toString().split("").reverse().join("").match(/[^\d\s]+/))==null?void 0:s[0];if(!t)throw new Error(`Could not determine unit: "${r}"`);const n=t.split("").reverse().join(""),i=r.slice(0,-n.length);if(n in n7e&&!Kee.has(n)){const l=n7e[n];return{parsedUnit:null,unitOfValue:null,value:Number.parseFloat(i)*l}}const{baseUnit:a,conversionFactor:o}=yEt(n);return{parsedUnit:n,unitOfValue:a,value:o*Number.parseFloat(i)}},ez=xt.string().or(xt.number()).transform(r=>_b(r).value),Jee=xt.string().or(xt.number()).transform(r=>_b(r).value).transform(r=>Number.parseFloat(r.toPrecision(12))),r7e=xt.string().or(xt.number()).transform(r=>_b(r).value),tz=xt.string().or(xt.number()).transform(r=>_b(r).value),Wg=xt.string().or(xt.number()).transform(r=>_b(r).value),i7e=xt.string().or(xt.number()).transform(r=>_b(r).value),mc=Wg,gEt=xt.string().or(xt.number()).transform(r=>_b(r).value),_Et=xt.string().or(xt.number()).transform(r=>_b(r).value),ete=xt.string().or(xt.number()).transform(r=>typeof r=="number"?r:r.endsWith("deg")?Number.parseFloat(r.split("deg")[0]):r.endsWith("rad")?Number.parseFloat(r.split("rad")[0])*180/Math.PI:Number.parseFloat(r)),a7e=xt.number().or(xt.string().endsWith("mAh")).transform(r=>{if(typeof r=="string"){const e=r.replace("mAh",""),t=Number.parseFloat(e);if(Number.isNaN(t))throw new Error("Invalid capacity");return t}return r}).describe("Battery capacity in mAh"),ig=xt.object({x:mc,y:mc}),xEt=ig,LC=xt.object({x:mc,y:mc,z:mc}),bEt=LC,tte=xt.object({width:xt.number(),height:xt.number()}),Mv=r=>xt.string().optional().default(()=>`${r}_${vEt(10)}`),o7e=xt.enum(["jlcpcb","macrofab","pcbway","digikey","mouser","lcsc"]),s2=xt.object({type:xt.literal("source_component"),ftype:xt.string().optional(),source_component_id:xt.string(),name:xt.string(),manufacturer_part_number:xt.string().optional(),supplier_part_numbers:xt.record(o7e,xt.array(xt.string())).optional(),display_value:xt.string().optional()}),nte=s2.extend({ftype:xt.literal("simple_capacitor"),capacitance:Jee,max_voltage_rating:tz.optional(),display_capacitance:xt.string().optional(),max_decoupling_trace_length:mc.optional()}),rte=s2.extend({ftype:xt.literal("simple_resistor"),resistance:ez,display_resistance:xt.string().optional()}),nz=s2.extend({ftype:xt.literal("simple_diode")}),s7e=s2.extend({ftype:xt.literal("simple_ground")}),ite=s2.extend({ftype:xt.literal("simple_bug")}).describe("@deprecated"),ate=s2.extend({ftype:xt.literal("simple_chip")}),ote=nz.extend({ftype:xt.literal("led")}),ste=s2.extend({ftype:xt.literal("simple_power_source"),voltage:tz}),lte=s2.extend({ftype:xt.literal("simple_battery"),capacity:a7e}),cte=s2.extend({ftype:xt.literal("simple_inductor"),inductance:r7e}),ute=s2.extend({ftype:xt.literal("simple_push_button")}),fte=s2.extend({ftype:xt.literal("simple_potentiometer"),max_resistance:ez}),l7e=s2.extend({ftype:xt.literal("simple_crystal"),frequency:xt.number().describe("Frequency in Hz"),load_capacitance:xt.number().optional().describe("Load capacitance in pF")}),dte=s2.extend({ftype:xt.literal("simple_pin_header"),pin_count:xt.number(),gender:xt.enum(["male","female"]).optional().default("male")}),hte=s2.extend({ftype:xt.literal("simple_resonator"),load_capacitance:Jee,equivalent_series_resistance:ez.optional(),frequency:i7e}),pte=s2.extend({ftype:xt.literal("simple_transistor"),transistor_type:xt.enum(["npn","pnp"])}),mte=s2.extend({ftype:xt.literal("simple_mosfet"),channel_type:xt.enum(["n","p"]),mosfet_mode:xt.enum(["enhancement","depletion"])}),vte=s2.extend({ftype:xt.literal("simple_switch")}),c7e=xt.union([rte,nte,nz,s7e,ate,ite,ote,ste,lte,cte,ute,fte,l7e,dte,hte,vte,pte,mte]),u7e=xt.object({type:xt.literal("source_port"),pin_number:xt.number().optional(),port_hints:xt.array(xt.string()).optional(),name:xt.string(),source_port_id:xt.string(),source_component_id:xt.string(),subcircuit_id:xt.string().optional()}),f7e=xt.object({type:xt.literal("source_trace"),source_trace_id:xt.string(),connected_source_port_ids:xt.array(xt.string()),connected_source_net_ids:xt.array(xt.string()),subcircuit_id:xt.string().optional(),subcircuit_connectivity_map_key:xt.string().optional(),max_length:xt.number().optional(),display_name:xt.string().optional()}),d7e=xt.object({type:xt.literal("source_group"),source_group_id:xt.string(),subcircuit_id:xt.string().optional(),parent_subcircuit_id:xt.string().optional(),is_subcircuit:xt.boolean().optional(),name:xt.string().optional()}),h7e=xt.object({type:xt.literal("source_net"),source_net_id:xt.string(),name:xt.string(),member_source_group_ids:xt.array(xt.string()),is_power:xt.boolean().optional(),is_ground:xt.boolean().optional(),is_digital_signal:xt.boolean().optional(),is_analog_signal:xt.boolean().optional(),trace_width:xt.number().optional(),subcircuit_id:xt.string().optional()}),p7e=xt.object({type:xt.literal("schematic_box"),schematic_component_id:xt.string(),width:mc,height:mc,x:mc,y:mc}).describe("Draws a box on the schematic"),m7e=xt.object({type:xt.literal("schematic_path"),schematic_component_id:xt.string(),fill_color:xt.enum(["red","blue"]).optional(),is_filled:xt.boolean().optional(),points:xt.array(ig)}),v7e=xt.record(xt.object({left_margin:Wg.optional(),right_margin:Wg.optional(),top_margin:Wg.optional(),bottom_margin:Wg.optional()})),y7e=xt.object({left_size:xt.number(),right_size:xt.number(),top_size:xt.number().optional(),bottom_size:xt.number().optional()}),g7e=xt.object({left_side:xt.object({pins:xt.array(xt.number()),direction:xt.enum(["top-to-bottom","bottom-to-top"]).optional()}).optional(),right_side:xt.object({pins:xt.array(xt.number()),direction:xt.enum(["top-to-bottom","bottom-to-top"]).optional()}).optional(),top_side:xt.object({pins:xt.array(xt.number()),direction:xt.enum(["left-to-right","right-to-left"]).optional()}).optional(),bottom_side:xt.object({pins:xt.array(xt.number()),direction:xt.enum(["left-to-right","right-to-left"]).optional()}).optional()}),_7e=xt.union([y7e,g7e]),x7e=xt.object({type:xt.literal("schematic_component"),size:tte,center:ig,source_component_id:xt.string(),schematic_component_id:xt.string(),pin_spacing:Wg.optional(),pin_styles:v7e.optional(),box_width:Wg.optional(),symbol_name:xt.string().optional(),port_arrangement:_7e.optional(),port_labels:xt.record(xt.string()).optional(),symbol_display_value:xt.string().optional()}),b7e=xt.object({type:xt.literal("schematic_line"),schematic_component_id:xt.string(),x1:mc,x2:mc,y1:mc,y2:mc}),S7e=xt.object({type:xt.literal("schematic_trace"),schematic_trace_id:xt.string(),source_trace_id:xt.string(),junctions:xt.array(xt.object({x:xt.number(),y:xt.number()})),edges:xt.array(xt.object({from:xt.object({x:xt.number(),y:xt.number()}),to:xt.object({x:xt.number(),y:xt.number()}),is_crossing:xt.boolean().optional(),from_schematic_port_id:xt.string().optional(),to_schematic_port_id:xt.string().optional()}))}),E7e=xt.object({type:xt.literal("schematic_text"),schematic_component_id:xt.string(),schematic_text_id:xt.string(),text:xt.string(),position:xt.object({x:mc,y:mc}),rotation:xt.number().default(0),anchor:xt.enum(["center","left","right","top","bottom"]).default("center"),color:xt.string().default("#000000")}),w7e=xt.object({type:xt.literal("schematic_port"),schematic_port_id:xt.string(),source_port_id:xt.string(),schematic_component_id:xt.string().optional(),center:ig,facing_direction:xt.enum(["up","down","left","right"]).optional(),distance_from_component_edge:xt.number().optional(),side_of_component:xt.enum(["top","bottom","left","right"]).optional(),true_ccw_index:xt.number().optional(),pin_number:xt.number().optional(),display_pin_label:xt.string().optional()}).describe("Defines a port on a schematic component"),T7e=xt.object({type:xt.literal("schematic_net_label"),source_net_id:xt.string(),center:ig,anchor_position:ig.optional(),anchor_side:xt.enum(["top","bottom","left","right"]),text:xt.string(),symbol_name:xt.string().optional()}),M7e=xt.object({type:xt.literal("schematic_error"),schematic_error_id:xt.string(),error_type:xt.literal("schematic_port_not_found"),message:xt.string()}).describe("Defines a schematic error on the schematic"),rz=xt.object({type:xt.literal("schematic_debug_object"),label:xt.string().optional()}),C7e=rz.extend({shape:xt.literal("rect"),center:ig,size:tte}),R7e=rz.extend({shape:xt.literal("line"),start:ig,end:ig}),A7e=rz.extend({shape:xt.literal("point"),center:ig}),N7e=xt.discriminatedUnion("shape",[C7e,R7e,A7e]),P7e=xt.object({type:xt.literal("schematic_voltage_probe"),schematic_voltage_probe_id:xt.string(),position:ig,schematic_trace_id:xt.string(),voltage:tz.optional()}).describe("Defines a voltage probe measurement point on a schematic trace"),yte=["top","bottom","inner1","inner2","inner3","inner4","inner5","inner6"],gte=xt.enum(yte),c_=gte.or(xt.object({name:gte})).transform(r=>typeof r=="string"?r:r.name),RT=xt.enum(["top","bottom"]),D7e=xt.object({x:mc,y:mc,via:xt.boolean().optional(),via_to_layer:c_.optional()}),SEt=xt.array(D7e),L7e=xt.object({x:mc,y:mc,via:xt.boolean().optional(),to_layer:c_.optional(),trace_width:mc.optional()}),O7e=xt.object({type:xt.literal("pcb_component"),pcb_component_id:Mv("pcb_component"),source_component_id:xt.string(),center:ig,layer:c_,rotation:ete,width:Wg,height:Wg,subcircuit_id:xt.string().optional()}).describe("Defines a component on the PCB"),z7e=xt.object({type:xt.literal("pcb_hole"),pcb_hole_id:Mv("pcb_hole"),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),hole_shape:xt.enum(["circle","square"]),hole_diameter:xt.number(),x:mc,y:mc}),EEt=z7e.describe("Defines a circular or square hole on the PCB"),U7e=xt.object({type:xt.literal("pcb_hole"),pcb_hole_id:Mv("pcb_hole"),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),hole_shape:xt.literal("oval"),hole_width:xt.number(),hole_height:xt.number(),x:mc,y:mc}),wEt=U7e.describe("Defines an oval hole on the PCB"),I7e=z7e.or(U7e),TEt=xt.object({type:xt.literal("pcb_plated_hole"),shape:xt.literal("circle"),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),outer_diameter:xt.number(),hole_diameter:xt.number(),x:mc,y:mc,layers:xt.array(c_),port_hints:xt.array(xt.string()).optional(),pcb_component_id:xt.string().optional(),pcb_port_id:xt.string().optional(),pcb_plated_hole_id:Mv("pcb_plated_hole")}),MEt=xt.object({type:xt.literal("pcb_plated_hole"),shape:xt.enum(["oval","pill"]),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),outer_width:xt.number(),outer_height:xt.number(),hole_width:xt.number(),hole_height:xt.number(),x:mc,y:mc,layers:xt.array(c_),port_hints:xt.array(xt.string()).optional(),pcb_component_id:xt.string().optional(),pcb_port_id:xt.string().optional(),pcb_plated_hole_id:Mv("pcb_plated_hole")}),CEt=xt.object({type:xt.literal("pcb_plated_hole"),shape:xt.literal("circular_hole_with_rect_pad"),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),hole_shape:xt.literal("circle"),pad_shape:xt.literal("rect"),hole_diameter:xt.number(),rect_pad_width:xt.number(),rect_pad_height:xt.number(),x:mc,y:mc,layers:xt.array(c_),port_hints:xt.array(xt.string()).optional(),pcb_component_id:xt.string().optional(),pcb_port_id:xt.string().optional(),pcb_plated_hole_id:Mv("pcb_plated_hole")}),k7e=xt.union([TEt,MEt,CEt]),F7e=xt.object({type:xt.literal("pcb_port"),pcb_port_id:Mv("pcb_port"),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),source_port_id:xt.string(),pcb_component_id:xt.string(),x:mc,y:mc,layers:xt.array(c_)}).describe("Defines a port on the PCB"),REt=xt.object({type:xt.literal("pcb_smtpad"),shape:xt.literal("circle"),pcb_smtpad_id:Mv("pcb_smtpad"),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),x:mc,y:mc,radius:xt.number(),layer:c_,port_hints:xt.array(xt.string()).optional(),pcb_component_id:xt.string().optional(),pcb_port_id:xt.string().optional()}),AEt=xt.object({type:xt.literal("pcb_smtpad"),shape:xt.literal("rect"),pcb_smtpad_id:Mv("pcb_smtpad"),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),x:mc,y:mc,width:xt.number(),height:xt.number(),layer:c_,port_hints:xt.array(xt.string()).optional(),pcb_component_id:xt.string().optional(),pcb_port_id:xt.string().optional()}),NEt=xt.object({type:xt.literal("pcb_smtpad"),shape:xt.literal("rotated_rect"),pcb_smtpad_id:Mv("pcb_smtpad"),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),x:mc,y:mc,width:xt.number(),height:xt.number(),ccw_rotation:ete,layer:c_,port_hints:xt.array(xt.string()).optional(),pcb_component_id:xt.string().optional(),pcb_port_id:xt.string().optional()}),B7e=xt.object({type:xt.literal("pcb_smtpad"),shape:xt.literal("pill"),pcb_smtpad_id:Mv("pcb_smtpad"),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),x:mc,y:mc,width:xt.number(),height:xt.number(),radius:xt.number(),layer:c_,port_hints:xt.array(xt.string()).optional(),pcb_component_id:xt.string().optional(),pcb_port_id:xt.string().optional()}),H7e=xt.union([REt,AEt,NEt,B7e]).describe("Defines an SMT pad on the PCB"),PEt=xt.object({type:xt.literal("pcb_solder_paste"),shape:xt.literal("circle"),pcb_solder_paste_id:Mv("pcb_solder_paste"),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),x:mc,y:mc,radius:xt.number(),layer:c_,pcb_component_id:xt.string().optional(),pcb_smtpad_id:xt.string().optional()}),DEt=xt.object({type:xt.literal("pcb_solder_paste"),shape:xt.literal("rect"),pcb_solder_paste_id:Mv("pcb_solder_paste"),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),x:mc,y:mc,width:xt.number(),height:xt.number(),layer:c_,pcb_component_id:xt.string().optional(),pcb_smtpad_id:xt.string().optional()}),j7e=xt.union([PEt,DEt]).describe("Defines solderpaste on the PCB"),V7e=xt.object({type:xt.literal("pcb_text"),pcb_text_id:Mv("pcb_text"),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),text:xt.string(),center:ig,layer:c_,width:Wg,height:Wg,lines:xt.number(),align:xt.enum(["bottom-left"])}).describe("Defines text on the PCB"),G7e=xt.object({route_type:xt.literal("wire"),x:mc,y:mc,width:mc,start_pcb_port_id:xt.string().optional(),end_pcb_port_id:xt.string().optional(),layer:c_}),q7e=xt.object({route_type:xt.literal("via"),x:mc,y:mc,from_layer:xt.string(),to_layer:xt.string()}),LEt=xt.union([G7e,q7e]),Y7e=xt.object({type:xt.literal("pcb_trace"),source_trace_id:xt.string().optional(),pcb_component_id:xt.string().optional(),pcb_trace_id:Mv("pcb_trace"),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),route_thickness_mode:xt.enum(["constant","interpolated"]).default("constant").optional(),route_order_index:xt.number().optional(),should_round_corners:xt.boolean().optional(),trace_length:xt.number().optional(),route:xt.array(xt.union([xt.object({route_type:xt.literal("wire"),x:mc,y:mc,width:mc,start_pcb_port_id:xt.string().optional(),end_pcb_port_id:xt.string().optional(),layer:c_}),xt.object({route_type:xt.literal("via"),x:mc,y:mc,from_layer:xt.string(),to_layer:xt.string()})]))}).describe("Defines a trace on the PCB"),X7e=xt.object({type:xt.literal("pcb_trace_error"),pcb_trace_error_id:Mv("pcb_trace_error"),error_type:xt.literal("pcb_trace_error"),message:xt.string(),center:ig.optional(),pcb_trace_id:xt.string(),source_trace_id:xt.string(),pcb_component_ids:xt.array(xt.string()),pcb_port_ids:xt.array(xt.string())}).describe("Defines a trace error on the PCB"),W7e=xt.object({type:xt.literal("pcb_port_not_matched_error"),pcb_error_id:Mv("pcb_error"),message:xt.string(),pcb_component_ids:xt.array(xt.string())}).describe("Defines a trace error on the PCB where a port is not matched"),$7e=xt.object({type:xt.literal("pcb_via"),pcb_via_id:Mv("pcb_via"),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),x:mc,y:mc,outer_diameter:mc.default("0.6mm"),hole_diameter:mc.default("0.25mm"),from_layer:c_.optional(),to_layer:c_.optional(),layers:xt.array(c_),pcb_trace_id:xt.string().optional()}).describe("Defines a via on the PCB"),Z7e=xt.object({type:xt.literal("pcb_board"),pcb_board_id:Mv("pcb_board"),is_subcircuit:xt.boolean().optional(),subcircuit_id:xt.string().optional(),width:Wg,height:Wg,center:ig,thickness:Wg.optional().default(1.4),num_layers:xt.number().optional().default(4),outline:xt.array(ig).optional()}).describe("Defines the board outline of the PCB"),Q7e=xt.object({type:xt.literal("pcb_placement_error"),pcb_placement_error_id:Mv("pcb_placement_error"),message:xt.string()}).describe("Defines a placement error on the PCB"),K7e=xt.object({type:xt.literal("pcb_trace_hint"),pcb_trace_hint_id:Mv("pcb_trace_hint"),pcb_port_id:xt.string(),pcb_component_id:xt.string(),route:xt.array(L7e)}).describe("A hint that can be used during generation of a PCB trace"),J7e=xt.object({type:xt.literal("pcb_silkscreen_line"),pcb_silkscreen_line_id:Mv("pcb_silkscreen_line"),pcb_component_id:xt.string(),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),stroke_width:mc.default("0.1mm"),x1:mc,y1:mc,x2:mc,y2:mc,layer:RT}).describe("Defines a silkscreen line on the PCB"),eCe=xt.object({type:xt.literal("pcb_silkscreen_path"),pcb_silkscreen_path_id:Mv("pcb_silkscreen_path"),pcb_component_id:xt.string(),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),layer:RT,route:xt.array(ig),stroke_width:Wg}).describe("Defines a silkscreen path on the PCB"),tCe=xt.object({type:xt.literal("pcb_silkscreen_text"),pcb_silkscreen_text_id:Mv("pcb_silkscreen_text"),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),font:xt.literal("tscircuit2024").default("tscircuit2024"),font_size:mc.default("0.2mm"),stroke_width:Wg.optional().default("1mm"),pcb_component_id:xt.string(),text:xt.string(),ccw_rotation:xt.number().optional(),layer:c_,is_mirrored:xt.boolean().default(!1).optional(),anchor_position:ig.default({x:0,y:0}),anchor_alignment:xt.enum(["center","top_left","top_right","bottom_left","bottom_right"]).default("center")}).describe("Defines silkscreen text on the PCB"),nCe=xt.object({type:xt.literal("pcb_silkscreen_rect"),pcb_silkscreen_rect_id:Mv("pcb_silkscreen_rect"),pcb_component_id:xt.string(),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),center:ig,width:Wg,height:Wg,layer:c_,stroke_width:Wg.default("1mm")}).describe("Defines a silkscreen rect on the PCB"),rCe=xt.object({type:xt.literal("pcb_silkscreen_circle"),pcb_silkscreen_circle_id:Mv("pcb_silkscreen_circle"),pcb_component_id:xt.string(),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),center:ig,radius:Wg,layer:RT,stroke_width:Wg.default("1mm")}).describe("Defines a silkscreen circle on the PCB"),iCe=xt.object({type:xt.literal("pcb_silkscreen_oval"),pcb_silkscreen_oval_id:Mv("pcb_silkscreen_oval"),pcb_component_id:xt.string(),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),center:ig,radius_x:mc,radius_y:mc,layer:RT}).describe("Defines a silkscreen oval on the PCB"),aCe=xt.object({type:xt.literal("pcb_fabrication_note_text"),pcb_fabrication_note_text_id:Mv("pcb_fabrication_note_text"),subcircuit_id:xt.string().optional(),pcb_group_id:xt.string().optional(),font:xt.literal("tscircuit2024").default("tscircuit2024"),font_size:mc.default("1mm"),pcb_component_id:xt.string(),text:xt.string(),layer:RT,anchor_position:ig.default({x:0,y:0}),anchor_alignment:xt.enum(["center","top_left","top_right","bottom_left","bottom_right"]).default("center"),color:xt.string().optional()}).describe("Defines a fabrication note in text on the PCB, useful for leaving notes for assemblers or fabricators"),oCe=xt.object({type:xt.literal("pcb_fabrication_note_path"),pcb_fabrication_note_path_id:Mv("pcb_fabrication_note_path"),pcb_component_id:xt.string(),subcircuit_id:xt.string().optional(),layer:c_,route:xt.array(ig),stroke_width:Wg,color:xt.string().optional()}).describe("Defines a fabrication path on the PCB for fabricators or assemblers"),sCe=xt.object({type:xt.literal("pcb_keepout"),shape:xt.literal("rect"),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),center:ig,width:mc,height:mc,pcb_keepout_id:xt.string(),layers:xt.array(xt.string()),description:xt.string().optional()}).or(xt.object({type:xt.literal("pcb_keepout"),shape:xt.literal("circle"),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),center:ig,radius:mc,pcb_keepout_id:xt.string(),layers:xt.array(xt.string()),description:xt.string().optional()})),lCe=xt.object({type:xt.literal("pcb_missing_footprint_error"),pcb_missing_footprint_error_id:Mv("pcb_missing_footprint_error"),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),error_type:xt.literal("pcb_missing_footprint_error"),source_component_id:xt.string(),message:xt.string()}).describe("Defines a missing footprint error on the PCB"),cCe=xt.object({type:xt.literal("pcb_manual_edit_conflict_error"),pcb_error_id:Mv("pcb_manual_edit_conflict_error"),message:xt.string(),pcb_component_id:xt.string(),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),source_component_id:xt.string()}).describe("Error emitted when a component has both manual placement and explicit pcbX/pcbY coordinates"),uCe=xt.object({type:xt.literal("pcb_group"),pcb_group_id:Mv("pcb_group"),source_group_id:xt.string(),is_subcircuit:xt.boolean().optional(),subcircuit_id:xt.string().optional(),width:Wg,height:Wg,center:ig,pcb_component_ids:xt.array(xt.string()),name:xt.string().optional(),description:xt.string().optional()}).describe("Defines a group of components on the PCB"),fCe=xt.object({type:xt.literal("pcb_autorouting_error"),pcb_error_id:Mv("pcb_autorouting_error"),message:xt.string()}).describe("The autorouting has failed to route a portion of the board"),dCe=xt.object({type:xt.literal("cad_component"),cad_component_id:xt.string(),pcb_component_id:xt.string(),source_component_id:xt.string(),position:LC,rotation:LC.optional(),size:LC.optional(),layer:c_.optional(),footprinter_string:xt.string().optional(),model_obj_url:xt.string().optional(),model_stl_url:xt.string().optional(),model_3mf_url:xt.string().optional(),model_jscad:xt.any().optional()}).describe("Defines a component on the PCB"),hCe=xt.union([f7e,u7e,c7e,ote,h7e,d7e,ite,ate,nte,nz,rte,ste,lte,cte,dte,hte,vte,pte,mte,fte,ute,O7e,I7e,lCe,cCe,k7e,sCe,F7e,V7e,Y7e,$7e,H7e,j7e,Z7e,uCe,K7e,J7e,eCe,tCe,nCe,rCe,iCe,X7e,Q7e,W7e,oCe,aCe,fCe,p7e,E7e,b7e,x7e,w7e,S7e,m7e,M7e,T7e,N7e,P7e,dCe]),pCe=hCe,_te=(r,e={})=>{let t=r._internal_store;if(!t){t={counts:{}},r._internal_store=t;for(const i of r){const a=i.type,o=i[`${a}_id`];if(!o)continue;const s=Number.parseInt(o.split("_").pop());Number.isNaN(s)||(t.counts[a]=Math.max(t.counts[a]??0,s))}}return new Proxy({},{get:(i,a)=>a==="toArray"?()=>r:{get:o=>r.find(s=>s.type===a&&s[`${a}_id`]===o),getUsing:o=>{const s=Object.keys(o);if(s.length!==1)throw new Error("getUsing requires exactly one key, e.g. { pcb_component_id }");const l=s[0],c=l.replace("_id",""),u=r.find(f=>f.type===c&&f[l]===o[l]);return u?r.find(f=>f.type===a&&f[`${a}_id`]===u[`${a}_id`]):null},getWhere:o=>{const s=Object.keys(o);return r.find(l=>l.type===a&&s.every(c=>l[c]===o[c]))},list:o=>{const s=o?Object.keys(o):[];return r.filter(l=>l.type===a&&s.every(c=>l[c]===o[c]))},insert:o=>{var c;(c=t.counts)[a]??(c[a]=-1),t.counts[a]++;const s=t.counts[a],l={type:a,[`${a}_id`]:`${a}_${s}`,...o};return e.validateInserts&&(kMe[a]??pCe).parse(l),r.push(l),l},delete:o=>{const s=r.find(l=>l[`${a}_id`]===o);s&&r.splice(r.indexOf(s),1)},update:(o,s)=>{const l=r.find(c=>c.type===a&&c[`${a}_id`]===o);if(l)return Object.assign(l,s),l},select:o=>{if(a==="source_component")return r.find(s=>s.type==="source_component"&&s.name===o.replace(/\./g,""));if(a==="pcb_port"||a==="source_port"||a==="schematic_port"){const[s,l]=o.replace(/\./g,"").split(/[\s\>]+/),c=r.find(f=>f.type==="source_component"&&f.name===s);if(!c)return null;const u=r.find(f=>f.type==="source_port"&&f.source_component_id===c.source_component_id&&(f.name===l||(f.port_hints??[]).includes(l)));if(!u)return null;if(a==="source_port")return u;if(a==="pcb_port")return r.find(f=>f.type==="pcb_port"&&f.source_port_id===u.source_port_id);if(a==="schematic_port")return r.find(f=>f.type==="schematic_port"&&f.source_port_id===u.source_port_id)}}}})};_te.unparsed=_te;var Sw=_te,OEt=(r,e)=>{if(r.type==="pcb_plated_hole"||r.type==="pcb_hole"||r.type==="pcb_via"||r.type==="pcb_smtpad"||r.type==="pcb_port"){const{x:t,y:n}=ai(e,{x:r.x,y:r.y});r.x=t,r.y=n}else if(r.type==="pcb_keepout"||r.type==="pcb_board")r.center=ai(e,r.center);else if(r.type==="pcb_silkscreen_text"||r.type==="pcb_fabrication_note_text")r.anchor_position=ai(e,r.anchor_position);else if(r.type==="pcb_silkscreen_circle"||r.type==="pcb_silkscreen_rect"||r.type==="pcb_component")r.center=ai(e,r.center);else if(r.type==="pcb_silkscreen_path"||r.type==="pcb_trace"||r.type==="pcb_fabrication_note_path")r.route=r.route.map(t=>{const n=ai(e,t);return t.x=n.x,t.y=n.y,t});else if(r.type==="pcb_silkscreen_line"){const t={x:r.x1,y:r.y1},n={x:r.x2,y:r.y2},i=ai(e,t),a=ai(e,n);r.x1=i.x,r.y1=i.y,r.x2=a.x,r.y2=a.y}else if(r.type==="cad_component"){const t=ai(e,{x:r.position.x,y:r.position.y});r.position.x=t.x,r.position.y=t.y}return r};function zEt(r){let e=0;if(r.length==0)return e;for(var t=0;t<r.length;t++){var n=r.charCodeAt(t);e=(e<<5)-e+n,e=e&e}return Math.abs(e)}var mCe=[["#69d2e7","#a7dbd8","#e0e4cc","#f38630","#fa6900"],["#fe4365","#fc9d9a","#f9cdad","#c8c8a9","#83af9b"],["#ecd078","#d95b43","#c02942","#542437","#53777a"],["#556270","#4ecdc4","#c7f464","#ff6b6b","#c44d58"],["#774f38","#e08e79","#f1d4af","#ece5ce","#c5e0dc"],["#e8ddcb","#cdb380","#036564","#033649","#031634"],["#490a3d","#bd1550","#e97f02","#f8ca00","#8a9b0f"],["#594f4f","#547980","#45ada8","#9de0ad","#e5fcc2"],["#00a0b0","#6a4a3c","#cc333f","#eb6841","#edc951"],["#e94e77","#d68189","#c6a49a","#c6e5d9","#f4ead5"],["#3fb8af","#7fc7af","#dad8a7","#ff9e9d","#ff3d7f"],["#d9ceb2","#948c75","#d5ded9","#7a6a53","#99b2b7"],["#ffffff","#cbe86b","#f2e9e1","#1c140d","#cbe86b"],["#efffcd","#dce9be","#555152","#2e2633","#99173c"],["#343838","#005f6b","#008c9e","#00b4cc","#00dffc"],["#413e4a","#73626e","#b38184","#f0b49e","#f7e4be"],["#ff4e50","#fc913a","#f9d423","#ede574","#e1f5c4"],["#99b898","#fecea8","#ff847c","#e84a5f","#2a363b"],["#655643","#80bca3","#f6f7bd","#e6ac27","#bf4d28"],["#00a8c6","#40c0cb","#f9f2e7","#aee239","#8fbe00"],["#351330","#424254","#64908a","#e8caa4","#cc2a41"],["#554236","#f77825","#d3ce3d","#f1efa5","#60b99a"],["#5d4157","#838689","#a8caba","#cad7b2","#ebe3aa"],["#8c2318","#5e8c6a","#88a65e","#bfb35a","#f2c45a"],["#fad089","#ff9c5b","#f5634a","#ed303c","#3b8183"],["#ff4242","#f4fad2","#d4ee5e","#e1edb9","#f0f2eb"],["#f8b195","#f67280","#c06c84","#6c5b7b","#355c7d"],["#d1e751","#ffffff","#000000","#4dbce9","#26ade4"],["#1b676b","#519548","#88c425","#bef202","#eafde6"],["#5e412f","#fcebb6","#78c0a8","#f07818","#f0a830"],["#bcbdac","#cfbe27","#f27435","#f02475","#3b2d38"],["#452632","#91204d","#e4844a","#e8bf56","#e2f7ce"],["#eee6ab","#c5bc8e","#696758","#45484b","#36393b"],["#f0d8a8","#3d1c00","#86b8b1","#f2d694","#fa2a00"],["#2a044a","#0b2e59","#0d6759","#7ab317","#a0c55f"],["#f04155","#ff823a","#f2f26f","#fff7bd","#95cfb7"],["#b9d7d9","#668284","#2a2829","#493736","#7b3b3b"],["#bbbb88","#ccc68d","#eedd99","#eec290","#eeaa88"],["#b3cc57","#ecf081","#ffbe40","#ef746f","#ab3e5b"],["#a3a948","#edb92e","#f85931","#ce1836","#009989"],["#300030","#480048","#601848","#c04848","#f07241"],["#67917a","#170409","#b8af03","#ccbf82","#e33258"],["#aab3ab","#c4cbb7","#ebefc9","#eee0b7","#e8caaf"],["#e8d5b7","#0e2430","#fc3a51","#f5b349","#e8d5b9"],["#ab526b","#bca297","#c5ceae","#f0e2a4","#f4ebc3"],["#607848","#789048","#c0d860","#f0f0d8","#604848"],["#b6d8c0","#c8d9bf","#dadabd","#ecdbbc","#fedcba"],["#a8e6ce","#dcedc2","#ffd3b5","#ffaaa6","#ff8c94"],["#3e4147","#fffedf","#dfba69","#5a2e2e","#2a2c31"],["#fc354c","#29221f","#13747d","#0abfbc","#fcf7c5"],["#cc0c39","#e6781e","#c8cf02","#f8fcc1","#1693a7"],["#1c2130","#028f76","#b3e099","#ffeaad","#d14334"],["#a7c5bd","#e5ddcb","#eb7b59","#cf4647","#524656"],["#dad6ca","#1bb0ce","#4f8699","#6a5e72","#563444"],["#5c323e","#a82743","#e15e32","#c0d23e","#e5f04c"],["#edebe6","#d6e1c7","#94c7b6","#403b33","#d3643b"],["#fdf1cc","#c6d6b8","#987f69","#e3ad40","#fcd036"],["#230f2b","#f21d41","#ebebbc","#bce3c5","#82b3ae"],["#b9d3b0","#81bda4","#b28774","#f88f79","#f6aa93"],["#3a111c","#574951","#83988e","#bcdea5","#e6f9bc"],["#5e3929","#cd8c52","#b7d1a3","#dee8be","#fcf7d3"],["#1c0113","#6b0103","#a30006","#c21a01","#f03c02"],["#000000","#9f111b","#b11623","#292c37","#cccccc"],["#382f32","#ffeaf2","#fcd9e5","#fbc5d8","#f1396d"],["#e3dfba","#c8d6bf","#93ccc6","#6cbdb5","#1a1f1e"],["#f6f6f6","#e8e8e8","#333333","#990100","#b90504"],["#1b325f","#9cc4e4","#e9f2f9","#3a89c9","#f26c4f"],["#a1dbb2","#fee5ad","#faca66","#f7a541","#f45d4c"],["#c1b398","#605951","#fbeec2","#61a6ab","#accec0"],["#5e9fa3","#dcd1b4","#fab87f","#f87e7b","#b05574"],["#951f2b","#f5f4d7","#e0dfb1","#a5a36c","#535233"],["#8dccad","#988864","#fea6a2","#f9d6ac","#ffe9af"],["#2d2d29","#215a6d","#3ca2a2","#92c7a3","#dfece6"],["#413d3d","#040004","#c8ff00","#fa023c","#4b000f"],["#eff3cd","#b2d5ba","#61ada0","#248f8d","#605063"],["#ffefd3","#fffee4","#d0ecea","#9fd6d2","#8b7a5e"],["#cfffdd","#b4dec1","#5c5863","#a85163","#ff1f4c"],["#9dc9ac","#fffec7","#f56218","#ff9d2e","#919167"],["#4e395d","#827085","#8ebe94","#ccfc8e","#dc5b3e"],["#a8a7a7","#cc527a","#e8175d","#474747","#363636"],["#f8edd1","#d88a8a","#474843","#9d9d93","#c5cfc6"],["#046d8b","#309292","#2fb8ac","#93a42a","#ecbe13"],["#f38a8a","#55443d","#a0cab5","#cde9ca","#f1edd0"],["#a70267","#f10c49","#fb6b41","#f6d86b","#339194"],["#ff003c","#ff8a00","#fabe28","#88c100","#00c176"],["#ffedbf","#f7803c","#f54828","#2e0d23","#f8e4c1"],["#4e4d4a","#353432","#94ba65","#2790b0","#2b4e72"],["#0ca5b0","#4e3f30","#fefeeb","#f8f4e4","#a5b3aa"],["#4d3b3b","#de6262","#ffb88c","#ffd0b3","#f5e0d3"],["#fffbb7","#a6f6af","#66b6ab","#5b7c8d","#4f2958"],["#edf6ee","#d1c089","#b3204d","#412e28","#151101"],["#9d7e79","#ccac95","#9a947c","#748b83","#5b756c"],["#fcfef5","#e9ffe1","#cdcfb7","#d6e6c3","#fafbe3"],["#9cddc8","#bfd8ad","#ddd9ab","#f7af63","#633d2e"],["#30261c","#403831","#36544f","#1f5f61","#0b8185"],["#aaff00","#ffaa00","#ff00aa","#aa00ff","#00aaff"],["#d1313d","#e5625c","#f9bf76","#8eb2c5","#615375"],["#ffe181","#eee9e5","#fad3b2","#ffba7f","#ff9c97"],["#73c8a9","#dee1b6","#e1b866","#bd5532","#373b44"],["#805841","#dcf7f3","#fffcdd","#ffd8d8","#f5a2a2"]],UEt=r=>{var s,l,c;let{x:e,y:t,width:n,height:i}={...r,...r.size,...r.center,...r.position};r.x1!==void 0&&r.x2!==void 0&&r.y1!==void 0&&r.y2!==void 0&&(e=(r.x1+r.x2)/2,t=(r.y1+r.y2)/2,n=Math.abs(r.x1-r.x2),i=Math.abs(r.y1-r.y2));const a=r.text||r.name||((s=r.source)==null?void 0:s.text)||((l=r.source)==null?void 0:l.name)||"?",o=r;return e===void 0||t===void 0?null:(n===void 0&&"outer_diameter"in r&&(n=r.outer_diameter,i=r.outer_diameter),(n===void 0||i===void 0)&&(n=.1,i=.1),{x:e,y:t,width:n,height:i,title:a,content:o,bg_color:((c=mCe[zEt(r.type||a)%mCe.length])==null?void 0:c[4])??"#f00"})},IEt=r=>!!r,kEt=r=>{const e=r.filter(c=>c.type.startsWith("pcb_")).concat(r.filter(c=>c.type==="pcb_trace").flatMap(c=>c.route)).map(c=>UEt(c)).filter(IEt);if(e.length===0)return{center:{x:0,y:0},width:0,height:0};let t=e[0].x-e[0].width/2,n=e[0].x+e[0].width/2,i=e[0].y-e[0].height/2,a=e[0].y+e[0].height/2;for(const c of e.slice(1))t=Math.min(t,c.x-c.width/2),n=Math.max(n,c.x+c.width/2),i=Math.min(i,c.y-c.height/2),a=Math.max(a,c.y+c.height/2);const o=n-t,s=a-i;return{center:{x:t+o/2,y:i+s/2},width:o,height:s}},FEt=(r={})=>Fpt(e=>({selected_layer:"top",pcb_viewer_id:`pcb_viewer_${Math.random().toString().slice(2,10)}`,in_edit_mode:!1,in_move_footprint_mode:!1,in_draw_trace_mode:!1,is_moving_component:!1,is_drawing_trace:!1,is_mouse_over_container:!1,is_showing_multiple_traces_length:!1,is_showing_rats_nest:!1,is_showing_autorouting:!0,...r,selectLayer:t=>e({selected_layer:t}),setEditMode:t=>e({in_edit_mode:t!=="off",in_move_footprint_mode:t==="move_footprint",in_draw_trace_mode:t==="draw_trace",is_moving_component:!1,is_drawing_trace:!1}),setIsShowingRatsNest:t=>e({is_showing_rats_nest:t}),setIsMovingComponent:t=>e({is_moving_component:t}),setIsDrawingTrace:t=>e({is_drawing_trace:t}),setIsMouseOverContainer:t=>e({is_mouse_over_container:t}),setIsShowingMultipleTracesLength:t=>e({is_showing_multiple_traces_length:t}),setIsShowingAutorouting:t=>e({is_showing_autorouting:t})})),l2=r=>{const e=wt.useContext(vCe);return Zpt(e,r)},vCe=wt.createContext(null),BEt=({children:r,initialState:e})=>{const t=wt.useMemo(()=>FEt(e),[]);return ft.jsx(vCe.Provider,{value:t,children:r})},HEt=(r,e)=>{if(r.find(n=>n.type==="pcb_trace_hint"&&n.pcb_trace_hint_id===e.pcb_trace_hint_id))r=r.map(n=>n.pcb_trace_hint_id===e.pcb_trace_hint_id?{...n,route:e.route}:n);else{const n=Sw(r).pcb_port.get(e.pcb_port_id);r=r.filter(i=>!(i.type==="pcb_trace_hint"&&i.pcb_port_id===e.pcb_port_id)).concat([{type:"pcb_trace_hint",pcb_trace_hint_id:e.pcb_trace_hint_id,route:e.route,pcb_port_id:e.pcb_port_id,pcb_component_id:n==null?void 0:n.pcb_component_id}])}return r},jEt=(r,e)=>{r=JSON.parse(JSON.stringify(r));for(const t of e)if(t.pcb_edit_event_type==="edit_component_location"){const n=u0(t.new_center.x-t.original_center.x,t.new_center.y-t.original_center.y);r=r.map(i=>i.pcb_component_id!==t.pcb_component_id?i:OEt(i,n))}else t.pcb_edit_event_type==="edit_trace_hint"&&(r=HEt(r,t));return r},VEt=()=>{const r=l2(t=>t.pcb_viewer_id),e=(t,n)=>By(t,{containerId:r,...n});return e.error=(t,n)=>By.error(t,{containerId:r,...n}),e.promise=By.promise,e},GEt=()=>{wt.useEffect(()=>{jbt()},[]);const r=l2(e=>e.pcb_viewer_id);return ft.jsx(Hbt,{position:"top-center",containerId:r})},qEt=function(){},yCe=typeof window<"u",YEt=yCe?wt.useLayoutEffect:wt.useEffect,XEt=YEt,gCe={x:0,y:0,width:0,height:0,top:0,left:0,bottom:0,right:0};function WEt(){var r=wt.useState(null),e=r[0],t=r[1],n=wt.useState(gCe),i=n[0],a=n[1],o=wt.useMemo(function(){return new window.ResizeObserver(function(s){if(s[0]){var l=s[0].contentRect,c=l.x,u=l.y,f=l.width,y=l.height,_=l.top,x=l.left,M=l.bottom,w=l.right;a({x:c,y:u,width:f,height:y,top:_,left:x,bottom:M,right:w})}})},[]);return XEt(function(){if(e)return o.observe(e),function(){o.disconnect()}},[e]),[t,i]}var _Ce=yCe&&typeof window.ResizeObserver<"u"?WEt:function(){return[qEt,gCe]},$Et=(r={})=>{const e=wt.useRef(null),[t,n]=wt.useState(0),i=r.canvasElm??e.current,[a,o]=wt.useState(r.initialTransform??Q_()),[s,l]=wt.useState(0),[c,u]=wt.useReducer(w=>w+1,0),f=wt.useCallback(w=>{r.onSetTransform&&r.onSetTransform(w),r.transform||o(w)},[r.onSetTransform,o]),y=wt.useCallback(w=>{f(w),u()},[f]),_=r.transform??a,x=wt.useCallback(()=>{n(Date.now())},[]);wt.useEffect(()=>{const w=r.canvasElm??e.current;if(w&&!i){l(s+1);return}if(!w){const pe=setTimeout(()=>{l(s+1)},100);return()=>clearTimeout(pe)}let T=r.transform??a,L={x:0,y:0},O={x:0,y:0},B=!1;const W=pe=>({x:pe.pageX-w.getBoundingClientRect().left-window.scrollX,y:pe.pageY-w.getBoundingClientRect().top-window.scrollY});function $(pe){r.enabled!==!1&&(r.shouldDrag&&!r.shouldDrag(pe)||(L=W(pe),!(Date.now()-t<100)&&(B=!0,pe.preventDefault())))}function Q(pe){if(!B||r.enabled===!1||r.shouldDrag&&!r.shouldDrag(pe))return;O=W(pe);const ve=Hd(u0(O.x-L.x,O.y-L.y),T);f(ve),T=ve,B=!1}function te(pe){W(pe),!(!B||r.enabled===!1)&&(r.shouldDrag&&!r.shouldDrag(pe)||(O=W(pe),f(Hd(u0(O.x-L.x,O.y-L.y),T))))}function ae(pe){if(r.enabled===!1||r.shouldDrag&&!r.shouldDrag(pe))return;const ve=W(pe),be=Hd(u0(ve.x,ve.y),n2(1-pe.deltaY/1e3,1-pe.deltaY/1e3),u0(-ve.x,-ve.y),T);f(be),T=be,pe.preventDefault()}function K(pe){if(!B||r.shouldDrag&&!r.shouldDrag(pe))return;if(w){const be=w.getBoundingClientRect();if(pe.clientX>=be.left+10&&pe.clientX<=be.right-10&&pe.clientY>=be.top+10&&pe.clientY<=be.bottom-10)return}B=!1,O=W(pe);const ve=Hd(u0(O.x-L.x,O.y-L.y),T);f(ve),T=ve}return w.addEventListener("mousedown",$),w.addEventListener("mouseup",Q),window.addEventListener("mousemove",te),w.addEventListener("mouseout",K),w.addEventListener("wheel",ae),()=>{w.removeEventListener("mousedown",$),w.removeEventListener("mouseup",Q),window.removeEventListener("mousemove",te),w.removeEventListener("mouseout",K),w.removeEventListener("wheel",ae)}},[i,s,c,t,r.enabled,r.shouldDrag]);const M=wt.useCallback(w=>ai(_,w),[_]);return{ref:e,transform:_,applyTransformToPoint:M,setTransform:y,cancelDrag:x}},ZEt=$Et,c2={board:{anchor:"rgb(255, 38, 226)",aux_items:"rgb(255, 255, 255)",b_adhes:"rgb(0, 0, 132)",b_crtyd:"rgb(255, 38, 226)",b_fab:"rgb(88, 93, 132)",b_mask:"rgba(2, 255, 238, 0.400)",b_paste:"rgb(0, 194, 194)",b_silks:"rgb(94, 153, 230)",background:"rgb(0, 16, 35)",cmts_user:"rgb(89, 148, 220)",copper:{b:"rgb(77, 127, 196)",f:"rgb(200, 52, 52)",in1:"rgb(127, 200, 127)",in10:"rgb(237, 124, 51)",in11:"rgb(91, 195, 235)",in12:"rgb(247, 111, 142)",in13:"rgb(167, 165, 198)",in14:"rgb(40, 204, 217)",in15:"rgb(232, 178, 167)",in16:"rgb(242, 237, 161)",in17:"rgb(237, 124, 51)",in18:"rgb(91, 195, 235)",in19:"rgb(247, 111, 142)",in2:"rgb(206, 125, 44)",in20:"rgb(167, 165, 198)",in21:"rgb(40, 204, 217)",in22:"rgb(232, 178, 167)",in23:"rgb(242, 237, 161)",in24:"rgb(237, 124, 51)",in25:"rgb(91, 195, 235)",in26:"rgb(247, 111, 142)",in27:"rgb(167, 165, 198)",in28:"rgb(40, 204, 217)",in29:"rgb(232, 178, 167)",in3:"rgb(79, 203, 203)",in30:"rgb(242, 237, 161)",in4:"rgb(219, 98, 139)",in5:"rgb(167, 165, 198)",in6:"rgb(40, 204, 217)",in7:"rgb(232, 178, 167)",in8:"rgb(242, 237, 161)",in9:"rgb(141, 203, 129)"},cursor:"rgb(255, 255, 255)",drc:"rgb(194, 194, 194)",drc_error:"rgba(215, 91, 107, 0.800)",drc_exclusion:"rgb(255, 255, 255)",drc_warning:"rgba(255, 208, 66, 0.902)",dwgs_user:"rgb(194, 194, 194)",eco1_user:"rgb(180, 219, 210)",eco2_user:"rgb(216, 200, 82)",edge_cuts:"rgb(208, 210, 205)",f_adhes:"rgb(132, 0, 132)",f_crtyd:"rgb(255, 0, 245)",f_fab:"rgb(175, 175, 175)",f_mask:"rgba(216, 100, 255, 0.400)",f_paste:"rgba(180, 160, 154, 0.902)",f_silks:"rgb(242, 237, 161)",footprint_text_back:"rgb(0, 0, 132)",footprint_text_front:"rgb(194, 194, 194)",footprint_text_invisible:"rgb(132, 132, 132)",grid:"rgb(132, 132, 132)",grid_axes:"rgb(194, 194, 194)",margin:"rgb(255, 38, 226)",microvia:"rgb(0, 132, 132)",no_connect:"rgb(0, 0, 132)",pad_back:"rgb(77, 127, 196)",pad_front:"rgb(200, 52, 52)",pad_plated_hole:"rgb(194, 194, 0)",pad_through_hole:"rgb(227, 183, 46)",plated_hole:"rgb(26, 196, 210)",ratsnest:"rgba(245, 255, 213, 0.702)",select_overlay:"rgb(4, 255, 67)",through_via:"rgb(236, 236, 236)",user_1:"rgb(194, 194, 194)",user_2:"rgb(89, 148, 220)",user_3:"rgb(180, 219, 210)",user_4:"rgb(216, 200, 82)",user_5:"rgb(194, 194, 194)",user_6:"rgb(89, 148, 220)",user_7:"rgb(180, 219, 210)",user_8:"rgb(216, 200, 82)",user_9:"rgb(232, 178, 167)",via_blind_buried:"rgb(187, 151, 38)",via_hole:"rgb(227, 183, 46)",via_micro:"rgb(0, 132, 132)",via_through:"rgb(236, 236, 236)",worksheet:"rgb(200, 114, 171)"}},aS=(r,e=1)=>{if(Math.abs(r.a)!==Math.abs(r.d))throw new Error("Cannot scale non-uniformly");return e*Math.abs(r.a)},Y3={elementOverlay:30,dimensionOverlay:30,editTraceHintOverlay:30,errorOverlay:30,ratsNestOverlay:20,toolbarOverlay:20,topLayer:10},AT={red:"red",black:"black",green:"green",board:"rgb(255, 255, 255)",other:"#eee",top:c2.board.copper.f,inner1:c2.board.copper.in1,inner2:c2.board.copper.in2,inner4:c2.board.copper.in4,inner5:c2.board.copper.in5,inner6:c2.board.copper.in6,inner7:c2.board.copper.in7,inner8:c2.board.copper.in8,bottom:c2.board.copper.b,drill:c2.board.anchor,keepout:c2.board.background,tkeepout:c2.board.b_crtyd,tplace:c2.board.b_silks,top_silkscreen:c2.board.f_silks,bottom_silkscreen:c2.board.b_silks,top_fabrication:c2.board.f_fab,bottom_fabrication:c2.board.b_fab,...c2.board},QEt=["top","top_silkscreen","bottom_silkscreen","bottom","inner1","inner2","inner3","inner4","inner5","inner6"],KEt=class{constructor(r){rn(this,"canvasLayerMap");rn(this,"ctxLayerMap");rn(this,"aperture");rn(this,"transform");rn(this,"foregroundLayer","top");rn(this,"lastPoint");this.canvasLayerMap=r,this.ctxLayerMap=Object.fromEntries(Object.entries(r).map(([e,t])=>[e,t.getContext("2d")])),this.transform=Q_(),this.transform.d*=-1,this.transform=Hd(this.transform,u0(0,-500)),this.lastPoint={x:0,y:0},this.equip({})}clear(){for(const r of Object.values(this.ctxLayerMap))r.clearRect(0,0,r.canvas.width,r.canvas.height)}equip(r){this.aperture={fontSize:0,shape:"circle",mode:"add",size:0,color:"red",layer:"top",opacity:this.foregroundLayer===r.color?1:.5,...r}}drawMeshPattern(r,e,t,n,i,a=45){const o=this.getLayerCtx(),[s,l]=ai(this.transform,[r,e]),[c,u]=ai(this.transform,[r+t,e+n]),f=aS(this.transform,i);o.lineWidth=1,o.strokeStyle=this.aperture.color;const y=_=>{const x=Math.sin(_),M=Math.cos(_),w=Math.sqrt(Math.pow(c-s,2)+Math.pow(u-l,2));for(let T=-w;T<=w;T+=f)o.beginPath(),o.moveTo(s+T*M-w*x,l+T*x+w*M),o.lineTo(s+T*M+w*x,l+T*x-w*M),o.stroke()};y(a*Math.PI/180),y((a+90)*Math.PI/180)}rect(r,e,t,n,i){const[a,o]=ai(this.transform,[r-t/2,e-n/2]),[s,l]=ai(this.transform,[r+t/2,e+n/2]);this.applyAperture();const c=this.getLayerCtx();i?(c.save(),c.beginPath(),c.rect(a,o,s-a,l-o),c.clip(),this.drawMeshPattern(r-t/2,e-n/2,t,n,.15),c.restore(),c.strokeRect(a,o,s-a,l-o)):c.fillRect(a,o,s-a,l-o)}rotatedRect(r,e,t,n,i,a){const o=this.getLayerCtx();this.applyAperture();const[s,l]=ai(this.transform,[r-t/2,e-n/2]),[c,u]=ai(this.transform,[r+t/2,e+n/2]);o.save();const[f,y]=ai(this.transform,[r,e]);o.translate(f,y);const _=360-i;i&&o.rotate(_*Math.PI/180),o.translate(-f,-y),a?(o.beginPath(),o.rect(s,l,c-s,u-l),o.clip(),this.drawMeshPattern(r-t/2,e-n/2,t,n,.15),o.strokeRect(s,l,c-s,u-l)):o.fillRect(s,l,c-s,u-l),o.restore()}circle(r,e,t,n){const i=aS(this.transform,t),[a,o]=ai(this.transform,[r,e]);this.applyAperture();const s=this.getLayerCtx();n?(s.save(),s.beginPath(),s.arc(a,o,i,0,2*Math.PI),s.clip(),this.drawMeshPattern(r-t,e-t,t*2,t*2,.15),s.restore(),s.beginPath(),s.arc(a,o,i,0,2*Math.PI),s.stroke()):(s.beginPath(),s.arc(a,o,i,0,2*Math.PI),s.fill())}oval(r,e,t,n){const i=aS(this.transform,t),a=aS(this.transform,n),[o,s]=ai(this.transform,[r,e]);this.applyAperture();const l=this.getLayerCtx();l.beginPath(),l.ellipse(o,s,i,a,0,0,2*Math.PI),l.fill(),l.closePath()}pill(r,e,t,n){const[i,a]=ai(this.transform,[r-t/2,e+n/2]),o=aS(this.transform,t),s=aS(this.transform,n),l=Math.min(o,s)/2;this.applyAperture();const c=this.getLayerCtx();c.beginPath(),c.arc(i+l,a+l,l,Math.PI,Math.PI*1.5),c.arc(i+o-l,a+l,l,Math.PI*1.5,0),c.arc(i+o-l,a+s-l,l,0,Math.PI*.5),c.arc(i+l,a+s-l,l,Math.PI*.5,Math.PI),c.fill(),c.closePath()}polygon(r){if(r.length<3)return;this.applyAperture();const e=this.getLayerCtx(),t=r.map(i=>ai(this.transform,[i.x,i.y]));e.beginPath(),e.moveTo(t[0][0],t[0][1]);for(let i=1;i<t.length;i++)e.lineTo(t[i][0],t[i][1]);e.closePath(),e.fill();const n=aS(this.transform,this.aperture.size);e.lineWidth=n,e.stroke()}debugText(r,e,t){const[n,i]=ai(this.transform,[e,t]);this.applyAperture();const a=this.getLayerCtx();a.font="10px sans-serif",a.fillText(r,n,i)}getLayerCtx(){const r=this.ctxLayerMap[this.aperture.layer];if(!r)throw new Error(`No context for layer "${this.aperture.layer}"`);return r}orderAndFadeLayers(){const{canvasLayerMap:r,foregroundLayer:e}=this,t=new Set([e,"drill","other","board",e==="top"?"top_silkscreen":e==="bottom"?"bottom_silkscreen":""]);["drill","board",e,...QEt.filter(i=>i!==e)].forEach((i,a)=>{const o=r[i];o&&(i==="bottom_silkscreen"&&e==="bottom"||i==="top_silkscreen"&&e==="top"?o.style.zIndex=`${Y3.topLayer}`:o.style.zIndex=`${Y3.topLayer-a}`,o.style.opacity=t.has(i)?"1":"0.5")})}applyAperture(){const{transform:r,aperture:e}=this;let{size:t,mode:n,color:i,fontSize:a,layer:o}=e;o in this.ctxLayerMap||(this.aperture.layer="other");const s=this.getLayerCtx();if(!s)throw new Error(`No context for layer "${this.foregroundLayer}"`);if(i||(i="undefined"),s.lineWidth=aS(r,t),s.lineCap="round",n==="add"){let l=(i==null?void 0:i[0])==="#"||i!=null&&i.startsWith("rgb")?i:AT[i==null?void 0:i.toLowerCase()]?AT[i==null?void 0:i.toLowerCase()]:null;l===null&&(console.warn(`Color mapping for "${i}" not found`),l="white"),s.fillStyle=l,s.strokeStyle=l}else s.globalCompositeOperation="destination-out",s.fillStyle="rgba(0,0,0,1)",s.strokeStyle="rgba(0,0,0,1)";s.font=`${aS(zb(r),a)}px sans-serif`}moveTo(r,e){this.lastPoint={x:r,y:e}}lineTo(r,e){const[t,n]=ai(this.transform,[r,e]),{size:i,shape:a,mode:o}=this.aperture,s=aS(this.transform,i);let{lastPoint:l}=this;const c=ai(this.transform,l);this.applyAperture();const u=this.getLayerCtx();a==="square"&&u.fillRect(c.x-s/2,c.y-s/2,s,s),u.beginPath(),u.moveTo(c.x,c.y),u.lineTo(t,n),u.stroke(),u.closePath(),a==="square"&&u.fillRect(t-s/2,n-s/2,s,s),this.lastPoint={x:r,y:e}}};function JEt(r){const{lines:e,anchorPoint:t,ccwRotation:n}=r;if(!n)return e;const i=n*Math.PI/180,a=c3(i),o=Hd(u0(t.x,t.y),a,u0(-t.x,-t.y));return ai(o,t),e.map(s=>({...s,x1:ai(o,{x:s.x1,y:s.y1}).x,y1:ai(o,{x:s.x1,y:s.y1}).y,x2:ai(o,{x:s.x2,y:s.y2}).x,y2:ai(o,{x:s.x2,y:s.y2}).y}))}var xCe={0:"M0.4544564813877358 0L0.2723441540828736 0.03592830447352719L0.1086847233315459 0.14528754990019965L0.020630545837255005 0.3040632652221331L0 0.5395277421960205L0.049259221760993496 0.7369487828466779L0.18080513776237842 0.9005494166306564L0.37036887043974215 0.9872116270037247L0.5864663759301132 1L0.8148695622827444 0.9332890276148733L0.9326583645506394 0.8113052246023419L1 0.4031281830668562L0.833288960385582 0.09886798567812842L0.6801767918233781 0.02483708485091681L0.4544564813877358 0",1:"M 0.198 0.272 L 0.537 0 L 0.54 1",2:"M0.069593147751606 0.19461498231706575L0.1039380353319058 0.1224291500164194L0.20543361884368308 0.05510832064153169L0.3717712794432549 0.009452970962689482L0.4785344452623127 0L0.663238590738758 0.008714098643339864L0.8017933618843684 0.04769189395915288L0.8775637379550322 0.10746757678258442L0.9047778372591005 0.17693069668193287L0.9029710920770878 0.2231347105796246L0.8704496788008566 0.30047744598157516L0.7292906538577354 0.4508486051631194L0.3737955032119913 0.7369006417749693L0 1L1 1",3:"M0.03917438899874637 0.19855364635107545L0.15510940508963084 0.06745632622133718L0.37598645522339846 0L0.8486391893813088 0.0652271323161611L0.9782182415054349 0.21747394183735683L0.9213133780517754 0.3547560290117714L0.6504271515903481 0.4543436297681271L0.22975249764129613 0.48476611625264143L0.7659038682744629 0.5411919558122493L0.9258712987734741 0.6203185665660985L1 0.7458360609169667L0.8938813281118737 0.9059190913045964L0.6166890258875837 1L0.261528440153542 0.9874861530507921L0 0.8837289530851273",4:"M0.7328897338403042 0L0 0.6684672518568535L1 0.6684672518568535M0.7243346007604563 0.4530722484807562L0.7243346007604563 1",5:"M 0 0 L 0 0.4973 L 0.4262 0.4319 L 0.7305 0.4565 L 0.8516 0.5009 L 0.9357 0.5639 L 1 0.7356 L 0.9696 0.8248 L 0.8898 0.895 L 0.733 0.9602 L 0.5518 0.9945 L 0.3814 1 L 0.2379 0.9821 L 0.1219 0.947 L 0 0.8748 M 0 0 L 1 0",6:"M0.6964601700926856 0L0.3639239026215478 0.0743562375769351L0.1415931962925719 0.21735490179786915L0.009977939399608712 0.46336322325406004L0.00029622007592593224 0.7083131475173043L0.09408885043224748 0.8746809149767036L0.3379247445101846 0.9876686500961888L0.7109203869569624 1L0.9260852957913362 0.9103558029693921L1 0.7716571969091733L0.9824294723385016 0.6390635485705886L0.7446504992867332 0.4733643097729175L0.31028858071607296 0.47578021640899115L0.1208702146816024 0.5481452483973847L0 0.6616669755788906",7:"M0 0L1 0L0.9246479649697582 0.030539772727272752L0.8850302419354837 0.05075757575757579L0.7922946068548385 0.11079545454545457L0.7419268208165322 0.15213068181818185L0.6907258064516127 0.20202020202020204L0.6400666267641127 0.26122159090909086L0.5913243447580644 0.33049242424242414L0.5458740234374998 0.4105902777777778L0.5050907258064514 0.5022727272727272L0.4703495148689514 0.6062973484848484L0.43257456133442534 0.787133049242424L0.41612903225806447 1",8:"M0.5143001078924863 0L0.16007477667923162 0.10731570786949331L0.14924628550868277 0.3146018498698755L0.2939585848842112 0.41617921794558677L0.8648302624811545 0.5385163833653317L1 0.7775820770511038L0.8180842915260376 0.9505845566922285L0.41968938540525413 1L0.08062381919779889 0.882831681184498L0 0.6936376947135333L0.17150171673893433 0.5188652309607817L0.6529263782780712 0.4242818653203618L0.8650205888491803 0.29644027376796367L0.8702067371119496 0.09910067291661573L0.5143001078924863 0",9:"M1 0.25379591792994305L0.9514789771111742 0.11679361536614272L0.8702482473521467 0.05711741614054847L0.7327445265851579 0.015213872471965633L0.525248180711544 0L0.3292056884418538 0.012928195113745608L0.15997632037247655 0.058762870026191856L0.05266940041228321 0.12882439350476L0 0.2562067822770946L0.11316462894512366 0.4121335905917837L0.2403060136479954 0.4603365890068938L0.4097241967586011 0.4745978388276783L0.8642414300184816 0.420815170259988L0.9732054796346318 0.34537434075898393L1 0.25379591792994305M0.9647426784191072 0.35488595400360495L0.4756895081034974 1",A:"M0 1L0.4808333333333333 0L1 1M0.24250000000000002 0.6099439775910365L0.7341666666666666 0.6099439775910365",B:"M0 1L0 0.0117369978777208L0.30665717153513444 0L0.5874522807082946 0.03451403469442413L0.7766202217193218 0.15033936404895643L0.7471969743588041 0.31967962568332936L0.5246013359741988 0.4102978954282461L0.04378745314885416 0.44918617613783574L0.5112949594180156 0.469692928091109L0.8540266515643348 0.5552749498651879L1 0.6868463175009967L0.9880091196159324 0.8570018204672155L0.922301719975498 0.9321708046604659L0.7584266951758925 0.9932594737131338L0 1",C:"M1 0.23038928858890784L0.9328355511865092 0.12426412616785204L0.8096380839483327 0.04912601676267708L0.5763225801788256 0L0.4039037709527492 0.015028068281399815L0.2519579390951737 0.06533979308999706L0.10359458463139784 0.18146243506591617L0 0.4862728453971315L0.08129580872733055 0.792689266886982L0.20257034847159672 0.9160822255736587L0.3286572892798542 0.9738230826074175L0.5742878414421707 1L0.7883510303801312 0.9665431511195721L0.946851033994232 0.8689071500976585L1 0.7311049027121912",D:"M0 1L0.015604366822624637 0.020770988281483303L0.22564758265176144 0L0.3865476147957666 0.0024153386496795644L0.6479126635475078 0.051745644338731314L0.841191887805517 0.15827717679529366L0.9517008345536152 0.30172260586872185L0.9957536578687336 0.4504541551987709L1 0.5624359222498485L0.9798483279164735 0.6584121775234548L0.9386273319285215 0.7395945263504481L0.806292129480815 0.8624239259880274L0.6296239151398265 0.9406169638094516L0.3397492767598845 0.9954164354263132L0 1",E:"M0 0L0 1M0 0L1 0M0 0.5L0.7 0.5M0 1L1 1",F:"M0 0L0 1M0.011363636363636364 0.006802721088435374L1 0.006802721088435374M0.011363636363636364 0.4965986394557823L0.8409090909090909 0.4965986394557823",G:"M0.902666857540557 0.03860785012651126L0.6504261864675637 0L0.3838947267237336 0.015442305268228053L0.21293332876776194 0.07706794377239819L0.07799659974941617 0.1994951236187481L0 0.46380381528937314L0.04159964421546915 0.7502491408002389L0.13176692977834842 0.8535497868383203L0.2709176262273927 0.936767572377719L0.4386472596876406 0.9891638569283179L0.6145513562841309 1L0.7782254421419019 0.9585373611026471L0.9092650433859927 0.8540372997461425L1 0.5556012645283437L0.5583959277303046 0.55491741080559",H:"M0 0L0 1M0 0.4788732394366197L0.989010989010989 0.4788732394366197M1 0L1 1",I:"M0.5 0L0.5 1",J:"M0.9976457238788704 0L1 0.7396412315872798L0.9773931362096968 0.8322033314977973L0.9345115952458736 0.882296255506608L0.8743862896259549 0.9221331222466961L0.8024024079884948 0.9526431718061675L0.6443996712151668 0.9893997797356828L0.5035848940343224 1L0.3127211130319937 0.9877004749449337L0.17201910858386513 0.9539509911894274L0.10357419806379677 0.9212555066079295L0.053656568662899015 0.8816079295154184L0.020759483663648916 0.8360407488986785L0.003376206348523566 0.7855864537444934L0 0.7312775330396476",K:"M0 0L0 1M0.8787878787878788 0.06666666666666667L0 0.6148148148148148M0.3333333333333333 0.45925925925925926L1 0.9777777777777777",L:"M0 0L0 1L1 1",M:"M0 1L0 0L0.5 0.6512L1 0L1 1",N:"M0 1L0 0L1 1L0.9803729146221786 0",O:"M0.4718499217948183 1L0.2896765846490613 0.9606979309189402L0.12315162147934663 0.8411184486080473L0 0.4352399966492615L0.11730398524516283 0.13145645436014852L0.2612197451988078 0.04493357858878059L0.5104071592772554 0L0.7450113425917159 0.05393013710105273L0.882367950645524 0.15242300282020502L1 0.5224527406249126L0.9414597290654386 0.7560662329321755L0.8371289514446183 0.8910800547287298L0.6518259868433511 0.9830452628933628L0.4718499217948183 1",P:"M0 1L0 0.018871774228013626L0.29609603495819875 0L0.5609840637427541 0.011794858892508529L0.7332142696692472 0.04353904702296349L0.8102258645858864 0.0691965055027166L0.9330504315465442 0.14445061754775845L0.9876391714147118 0.22527816445836535L1 0.3434414070631638L0.9510549958116356 0.41772808046663146L0.8746646891596713 0.45879131862541683L0.7528523813396283 0.49171525113425024L0.5766919939969619 0.5153253033973054L0.33725744877712827 0.5284469008187558L0.025622667325582785 0.529905468802775",Q:"M0.4618887943546369 0.9755918167206952L0.28356128136544534 0.9372490397450218L0.12055179272160406 0.8205882753548176L0 0.4246165790405623L0.1148276047430244 0.12824784112887844L0.25570518844754375 0.043836831567190586L0.49963205786237674 0L0.7292835601228574 0.0526138004304122L0.8637404608452104 0.14870263423138746L0.9788892040030622 0.5097006183769648L0.9215847647858059 0.7376120297474734L0.8194564929275405 0.869330409436378L0.6380654214095985 0.9590509139448092L0.4618887943546369 0.9755918167206952M0.5824181120212351 0.6861805006946525L1 1",R:"M0 0.9928375167236815L0 0.02590227442068435L0.3611517274211098 0L0.6146286724700761 0.008660554424468435L0.7675462459194776 0.035269459580494614L0.831839975516866 0.056961676692569484L0.8847592491838954 0.08519560521497332L0.9238557535364527 0.120683646438422L0.9583303225312839 0.21691797435320384L0.955092470586235 0.3022616904894429L0.9198097669001631 0.3640573439322699L0.8564862239866702 0.40639258627024005L0.7691258543593579 0.43335506909190874L0.601775027203482 0.4539166070813109L0.023939064200217658 0.46997623755243123M0.5038084874863982 0.5108023922274467L1 1",S:"M0.8886929689221953 0.15146982162688968L0.7276173683050475 0.013780286031594946L0.34582323121005076 0L0.1318235250900008 0.09920162734298861L0.0444543935052531 0.2811287071349243L0.08064065829108809 0.3709571405906485L0.21603115127470426 0.4485505768228281L0.7525409135992945 0.5111160926769565L0.9330263665417677 0.5850732219351329L1 0.7129938124702524L0.9117772389978691 0.9130572743138187L0.6423187128058188 1L0.29586019579751677 0.9935291584506244L0.10638454191462794 0.9229845198431584L0 0.7570771288048773",T:"M0 0L1 0M0.5148514851485149 0L0.5148514851485149 1",U:"M0 0L0.0023103778751369115 0.5467447428390111L0.01823032542100219 0.6954785891481812L0.05895528135268338 0.8056480226151669L0.13703402031421133 0.8894445726483398L0.23918400876232196 0.9448524533417946L0.3917887458926616 0.9848674531975652L0.584341627875137 1L0.7194816196604602 0.9848501456716763L0.8303268115073934 0.9449411544119768L0.8966613970084885 0.898186315516197L0.9251437568455642 0.867453197565408L0.9687114937020809 0.7890904895145239L0.9890470974808324 0.6852857184065537L1 0.0014769088758762145",V:"M0 0L0.5348837209302325 1L1 0",W:"M0 0L0.23300090661831369 0.9873417721518988L0.49954669084315495 0.30081906180193585L0.7851314596554849 1L1 0.0215934475055845",X:"M0 0L0.9893617021276596 1M1 0L0.010638297872340425 1",Y:"M0 0L0.4860515021459227 0.44712562100780695M1 0.0014194464158977947L0.48927038626609437 0.44996451383960256L0.5075107296137339 1",Z:"M0 0L1 0L0 1L1 1",".":"M 0.49 1 L 0.41 1","*":"M 0.5 0.25 L 0.8 0.25 M 0.5 0.25 L 0.5927 0.4402 M 0.5 0.25 L 0.2573 0.3676 M 0.5 0.25 L 0.2573 0.1324 M 0.5 0.25 L 0.599 0.055","(":"M0.75 0L0.25 0.5L0.25 0.5L0.75 1",")":"M0.25 0L0.75 0.5L0.75 0.5L0.25 1","-":"M0 0.5L1 0.5","+":"M 0 0.5 L 1 0.5 M 0.5 0.125 L 0.5 0.875","=":"M0 0.25L1 0.25M0 0.75L1 0.75",_:"M0 1 L1 1","[":"M0.75 0L0.25 0L0.25 1L0.75 1","]":"M0.25 0L0.75 0L0.75 1L0.25 1","<":"M0.75 0L0.25 0.5L0.25 0.5L0.75 1",">":"M0.25 0L0.75 0.5L0.75 0.5L0.25 1","'":"M 0.5 0 L 0.5 0.5",'"':"M 0.25 0 L 0.25 0.5 M 0.75 0 L 0.75 0.5"},xte={};for(const r in xCe){xte[r]=[];const e=xCe[r].split("M").slice(1).map(t=>t.split("L").map(n=>n.trim().split(" ").map(parseFloat)));for(const t of e)for(let n=0;n<t.length-1;n++)xte[r].push({x1:t[n][0],y1:1-t[n][1],x2:t[n+1][0],y2:1-t[n+1][1]})}function ewt(r,e){if(r.length<2)throw new Error("Stroke must have at least two points");const t=r.map(f=>Array.isArray(f)?{x:f[0],y:f[1]}:f),n=[],i=[];function a(f,y){const _=y.x-f.x,x=y.y-f.y,M=Math.sqrt(_*_+x*x);return{x:-x/M,y:_/M}}function o(f,y,_,x){const M=x/2,w={x:f.x+y.x*M*_,y:f.y+y.y*M*_};_>0?n.push(w):i.unshift(w)}const s=a(t[0],t[1]),l=t[0].trace_width??e;o(t[0],s,1,l),o(t[0],s,-1,l);for(let f=1;f<t.length-1;f++){const y=t[f-1],_=t[f],x=t[f+1],M=a(y,_),w=a(_,x),T=M.x+w.x,L=M.y+w.y,O=Math.sqrt(T*T+L*L),B=_.trace_width??e;if(O/2>2*(B/2))o(_,M,1,B),o(_,w,1,B),o(_,M,-1,B),o(_,w,-1,B);else{const $=1/O;o(_,{x:T*$,y:L*$},1,B),o(_,{x:T*$,y:L*$},-1,B)}}const c=a(t[t.length-2],t[t.length-1]),u=t[t.length-1].trace_width??e;return o(t[t.length-1],c,1,u),o(t[t.length-1],c,-1,u),[...n,...i]}var v1=0,twt=r=>`${r}_${v1++}`,nwt=(r,e)=>{var o;const t="pcb_component_id"in r?e.find(s=>s.type==="pcb_component"&&s.pcb_component_id===r.pcb_component_id):void 0,n=t&&"source_component_id"in t?e.find(s=>s.type==="source_component"&&s.source_component_id===t.source_component_id):void 0,i="source_port_id"in r?r.source_port_id:"pcb_port_id"in r?(o=Sw(e).pcb_port.get(r.pcb_port_id))==null?void 0:o.source_port_id:void 0,a=i?e.find(s=>s.type==="source_port"&&s.source_port_id===i):void 0;switch(r.type){case"pcb_board":{const{width:s,height:l,center:c,outline:u}=r;return u&&u.length>2?u.map((f,y,_)=>({_pcb_drawing_object_id:`line_${v1++}`,pcb_drawing_type:"line",x1:f.x,y1:f.y,x2:y===_.length-1?_[0].x:_[y+1].x,y2:y===_.length-1?_[0].y:_[y+1].y,width:1,zoomIndependent:!0,layer:"board",_element:r})):[{_pcb_drawing_object_id:`line_${v1++}`,pcb_drawing_type:"line",x1:c.x-s/2,y1:c.y-l/2,x2:c.x+s/2,y2:c.y-l/2,width:1,zoomIndependent:!0,layer:"board",_element:r},{_pcb_drawing_object_id:`line_${v1++}`,pcb_drawing_type:"line",x1:c.x-s/2,y1:c.y+l/2,x2:c.x+s/2,y2:c.y+l/2,width:1,zoomIndependent:!0,layer:"board",_element:r},{_pcb_drawing_object_id:`line_${v1++}`,pcb_drawing_type:"line",x1:c.x-s/2,y1:c.y-l/2,x2:c.x-s/2,y2:c.y+l/2,width:1,zoomIndependent:!0,layer:"board",_element:r},{_pcb_drawing_object_id:`line_${v1++}`,pcb_drawing_type:"line",x1:c.x+s/2,y1:c.y-l/2,x2:c.x+s/2,y2:c.y+l/2,width:1,zoomIndependent:!0,layer:"board",_element:r}]}case"pcb_smtpad":{if(r.shape==="rect"||r.shape==="rotated_rect"){const{shape:s,x:l,y:c,width:u,height:f,layer:y}=r;return[{_pcb_drawing_object_id:`rect_${v1++}`,pcb_drawing_type:"rect",x:l,y:c,w:u,h:f,layer:y||"top",_element:r,_parent_pcb_component:t,_parent_source_component:n,_source_port:a}]}else if(r.shape==="circle"){const{x:s,y:l,radius:c,layer:u}=r;return[{_pcb_drawing_object_id:`circle_${v1++}`,pcb_drawing_type:"circle",x:s,y:l,r:c,layer:u||"top",_element:r,_parent_pcb_component:t,_parent_source_component:n,_source_port:a}]}return[]}case"pcb_hole":{if(r.hole_shape==="circle"||!r.hole_shape){const{x:s,y:l,hole_diameter:c}=r;return[{_pcb_drawing_object_id:`circle_${v1++}`,pcb_drawing_type:"circle",x:s,y:l,r:c/2,layer:"drill",_element:r,_parent_pcb_component:t,_parent_source_component:n}]}return[]}case"pcb_plated_hole":if(r.shape==="circle"){const{x:s,y:l,hole_diameter:c,outer_diameter:u}=r;return[{_pcb_drawing_object_id:`circle_${v1++}`,pcb_drawing_type:"circle",x:s,y:l,r:u/2,layer:"top",_element:r,_parent_pcb_component:t,_parent_source_component:n,_source_port:a},{_pcb_drawing_object_id:`circle_${v1++}`,pcb_drawing_type:"circle",x:s,y:l,r:c/2,layer:"drill",_element:r}]}else if(r.shape==="oval"){const{x:s,y:l,outer_height:c,outer_width:u,hole_height:f,hole_width:y}=r;return[{_pcb_drawing_object_id:`oval_${v1++}`,pcb_drawing_type:"oval",x:s,y:l,rX:u/2,rY:c/2,layer:"top",_element:r,_parent_pcb_component:t,_parent_source_component:n,_source_port:a},{_pcb_drawing_object_id:`oval_${v1++}`,_element:r,pcb_drawing_type:"oval",x:s,y:l,rX:y/2,rY:f/2,layer:"drill"}]}else if(r.shape==="pill"){const{x:s,y:l,outer_height:c,outer_width:u,hole_height:f,hole_width:y}=r;return[{_pcb_drawing_object_id:`pill_${v1++}`,pcb_drawing_type:"pill",x:s,y:l,w:u,h:c,layer:"top",_element:r,_parent_pcb_component:t,_parent_source_component:n,_source_port:a},{_pcb_drawing_object_id:`pill_${v1++}`,_element:r,pcb_drawing_type:"pill",x:s,y:l,w:y,h:f,layer:"drill"}]}else return[];case"pcb_keepout":{if(r.shape==="circle"){const{center:s,radius:l}=r;return[{_pcb_drawing_object_id:`circle_${v1++}`,pcb_drawing_type:"circle",x:s.x,y:s.y,r:l,layer:"top",_element:r,_parent_pcb_component:t,_parent_source_component:n,mesh_fill:!0}]}else if(r.shape==="rect"){const{center:s,width:l,height:c}=r;return[{_pcb_drawing_object_id:`rect_${v1++}`,pcb_drawing_type:"rect",x:s.x,y:s.y,w:l,h:c,layer:"top",_element:r,_parent_pcb_component:t,_parent_source_component:n,mesh_fill:!0}]}break}case"pcb_trace":{const s=[];if(r.route_thickness_mode==="interpolated"){const u=r.route.map(_=>({x:_.x,y:_.y,trace_width:_.route_type==="wire"?_.width:.5})),f=ewt(u,.5),y=r.route[0].layer;return s.push({_pcb_drawing_object_id:`polygon_${v1++}`,_element:r,pcb_drawing_type:"polygon",points:f,layer:y}),r.route.forEach(_=>{_.route_type==="via"&&s.push({_pcb_drawing_object_id:`circle_${v1++}`,_element:r,pcb_drawing_type:"circle",x:_.x,y:_.y,r:_.outer_diameter/2,layer:_.from_layer})}),s}let l=null,c=null;for(const u of r.route)u.route_type==="wire"&&(l!==null&&c!==null&&s.push({_pcb_drawing_object_id:`line_${v1++}`,_element:r,pcb_drawing_type:"line",x1:l,y1:c,x2:u.x,y2:u.y,width:u.width,squareCap:!1,layer:u.layer}),l=u.x,c=u.y);return s}case"pcb_via":{const{x:s,y:l,outer_diameter:c,hole_diameter:u,from_layer:f,to_layer:y}=r;return[{_pcb_drawing_object_id:`circle_${v1++}`,pcb_drawing_type:"circle",x:s,y:l,r:c/2,layer:f,_element:r,_parent_pcb_component:t,_parent_source_component:n},{_pcb_drawing_object_id:`circle_${v1++}`,_element:r,pcb_drawing_type:"circle",x:s,y:l,r:u/2,layer:"drill",_parent_pcb_component:t,_parent_source_component:n},{_pcb_drawing_object_id:`circle_${v1++}`,pcb_drawing_type:"circle",x:s,y:l,r:c/2,layer:y,_element:r,_parent_pcb_component:t,_parent_source_component:n}]}case"pcb_silkscreen_rect":return[{_pcb_drawing_object_id:`rect_${v1++}`,pcb_drawing_type:"rect",x:r.center.x,y:r.center.y,w:r.width,h:r.height,layer:r.layer==="bottom"?"bottom_silkscreen":"top_silkscreen"}];case"pcb_silkscreen_circle":return[{_pcb_drawing_object_id:`circle_${v1++}`,pcb_drawing_type:"circle",x:r.center.x,y:r.center.y,r:r.radius,layer:r.layer==="bottom"?"bottom_silkscreen":"top_silkscreen"}];case"pcb_silkscreen_oval":return[{_pcb_drawing_object_id:`oval_${v1++}`,pcb_drawing_type:"oval",x:r.center.x,y:r.center.y,rX:r.radius_x/2,rY:r.radius_y/2,layer:r.layer==="bottom"?"bottom_silkscreen":"top_silkscreen"}];case"pcb_silkscreen_pill":return[{_pcb_drawing_object_id:`pill_${v1++}`,pcb_drawing_type:"pill",x:r.center.x,y:r.center.y,w:r.width,h:r.height,layer:r.layer==="bottom"?"bottom_silkscreen":"top_silkscreen"}];case"pcb_silkscreen_line":return[{_pcb_drawing_object_id:`line_${v1++}`,pcb_drawing_type:"line",x1:r.x1,y1:r.y1,x2:r.x2,y2:r.y2,width:.1,squareCap:!1,layer:r.layer==="bottom"?"bottom_silkscreen":"top_silkscreen"}];case"pcb_fabrication_note_path":case"pcb_silkscreen_path":{const{pcb_component_id:s,route:l,type:c}=r;let u;return c==="pcb_silkscreen_path"?u=r.layer==="bottom"?"bottom_silkscreen":"top_silkscreen":c==="pcb_fabrication_note_path"&&(u="top_fabrication"),l.slice(0,-1).map((f,y)=>{const _=l[y+1];return{_pcb_drawing_object_id:`line_${v1++}`,pcb_drawing_type:"line",x1:f.x,y1:f.y,x2:_.x,y2:_.y,width:r.stroke_width??.1,squareCap:!1,layer:u,_element:r,_parent_pcb_component:t,_parent_source_component:n,_source_port:a}}).filter(Boolean)}case"pcb_silkscreen_text":return[{_pcb_drawing_object_id:`text_${v1++}`,pcb_drawing_type:"text",x:r.anchor_position.x,y:r.anchor_position.y,layer:r.layer==="bottom"?"bottom_silkscreen":"top_silkscreen",align:r.anchor_alignment??"center",text:r.text,size:r.font_size,ccw_rotation:r.ccw_rotation}];case"pcb_fabrication_note_text":return[{_pcb_drawing_object_id:`text_${v1++}`,pcb_drawing_type:"text",x:r.anchor_position.x,y:r.anchor_position.y,layer:r.layer==="bottom"?"bottom_fabrication":"top_fabrication",size:r.font_size,align:r.anchor_alignment??"center",text:r.text}]}return[]},bCe=.6,SCe=.2,rwt=r=>r.text.length*r.size*bCe+(r.text.length-1)*r.size*SCe,iwt=r=>{const e=r.size/8,t=r.size*bCe,n=r.size*SCe,i=[];for(let a=0;a<r.text.length;a++){const o=r.text[a],s=xte[o.toUpperCase()];if(s)for(const{x1:l,y1:c,x2:u,y2:f}of s)i.push({_pcb_drawing_object_id:twt("line"),pcb_drawing_type:"line",x1:r.x+(t+n)*a+t*l,y1:r.y+r.size*c,x2:r.x+(t+n)*a+t*u,y2:r.y+r.size*f,width:e,layer:r.layer,unit:r.unit})}return i};function Ew(r){return r.is_mouse_over||r.is_in_highlighted_net?dbe(AT[r.layer]).lighten(.5).rgb().toString():AT[r.layer]}var ECe=(r,e)=>{r.equip({size:e.zoomIndependent?e.width/r.transform.a:e.width,shape:e.squareCap?"square":"circle",color:Ew(e),layer:e.layer}),r.moveTo(e.x1,e.y1),r.lineTo(e.x2,e.y2)},awt=(r,e)=>{r.equip({fontSize:e.size,color:e.layer});let t={x:0,y:0};const n=rwt(e),i=e.size;e.align==="top_left"?t.y=-i:e.align==="bottom_right"?t.x=-n:e.align==="top_right"?(t.x=-n,t.y=-i):e.align==="center"&&(t.x=-n/2,t.y=-i/2),e.x??(e.x=0),e.y??(e.y=0);const a={x:e.x,y:e.y};let o=iwt({...e,x:e.x+t.x,y:e.y+t.y});if(e.ccw_rotation){const s={lines:o,anchorPoint:a,ccwRotation:e.ccw_rotation};o=JEt(s)}for(const s of o)ECe(r,s)},owt=(r,e)=>{r.equip({color:Ew(e),layer:e.layer}),r.rect(e.x,e.y,e.w,e.h,e.mesh_fill)},swt=(r,e)=>{r.equip({color:Ew(e),layer:e.layer}),r.rotatedRect(e.x,e.y,e.w,e.h,e.ccw_rotation)},lwt=(r,e)=>{r.equip({color:Ew(e),layer:e.layer}),r.circle(e.x,e.y,e.r,e.mesh_fill)},cwt=(r,e)=>{r.equip({color:Ew(e),layer:e.layer}),r.oval(e.x,e.y,e.rX,e.rY)},uwt=(r,e)=>{r.equip({color:Ew(e),layer:e.layer}),r.pill(e.x,e.y,e.w,e.h)},fwt=(r,e)=>{r.equip({color:Ew(e),layer:e.layer}),r.polygon(e.points)},dwt=(r,e)=>{var t;switch(e.pcb_drawing_type){case"line":return ECe(r,e);case"text":return awt(r,e);case"rect":return((t=e._element)==null?void 0:t.shape)==="rotated_rect"?swt(r,{...e,ccw_rotation:e._element.ccw_rotation,mesh_fill:e.mesh_fill}):owt(r,e);case"circle":return lwt(r,e);case"oval":return cwt(r,e);case"pill":return uwt(r,e);case"polygon":return fwt(r,e)}},hwt=(r,e)=>{for(const t of e)dwt(r,t)},pwt=["bottom_silkscreen","bottom","top","top_silkscreen","inner1","inner2","inner3","inner4","inner5","inner6","drill","other"],mwt=({primitives:r,transform:e,grid:t,width:n=500,height:i=500})=>{const a=wt.useRef(),o=l2(s=>s.selected_layer);return wt.useEffect(()=>{if(!a.current||Object.keys(a.current).length===0)return;const s=new KEt(a.current);e&&(s.transform=e),s.clear(),s.foregroundLayer=o,hwt(s,r),s.orderAndFadeLayers()},[r,e,o]),ft.jsxs("div",{style:{backgroundColor:"black",width:n,height:i,position:"relative"},children:[ft.jsx(ree.SuperGrid,{textColor:"rgba(0,255,0,0.8)",majorColor:"rgba(0,255,0,0.4)",minorColor:"rgba(0,255,0,0.2)",screenSpaceCellSize:200,width:n,height:i,transform:e,stringifyCoord:(s,l,c)=>`${ree.toMMSI(s,c)}, ${ree.toMMSI(l,c)}`}),pwt.map(s=>s.replace(/-/g,"")).map((s,l)=>ft.jsx("canvas",{className:`pcb-layer-${s}`,ref:c=>{a.current??(a.current={}),a.current[s]=c},style:{position:"absolute",zIndex:l,left:0,top:0,pointerEvents:"none"},width:n,height:i},s))]})};function vwt({primitiveElement:r,elements:e}){let t=r.trace_length?`${r.trace_length.toFixed(3)}`:"";const n=Sw(e).source_trace.get(r==null?void 0:r.source_trace_id);if(n!=null&&n.display_name&&(n!=null&&n.max_length?t+=` / ${n.max_length}mm `:t+=" mm ",t+=`(${n.display_name})`),!t)return null;const i=r.trace_length&&(n==null?void 0:n.max_length)&&r.trace_length>n.max_length;return{text:t,isOverLength:i}}function ywt(r){const{primitives:e,is_showing_multiple_traces_length:t,elements:n}=r,i=e.filter(l=>l._element.type==="pcb_trace"),a=n.filter(l=>l.type==="source_trace"),o=e.filter(l=>l._element.type!=="pcb_trace"),s=i.filter(l=>a.some(c=>l._element.type==="pcb_trace"&&l._element.source_trace_id===c.source_trace_id&&c.max_length!==void 0));if(!t)return[...o,...s];if(i.length>1){const l=i.reduce((c,u)=>{const f=c._element.trace_length;return u._element.trace_length<f?u:c},i[0]);return[...o,l]}return e}var gwt={position:"absolute",left:0,top:0,pointerEvents:"none",color:"red",fontFamily:"sans-serif",fontSize:12,textShadow:"0 0 2px black"},_wt=r=>{const{_element:e,_parent_pcb_component:t,_parent_source_component:n,_source_port:i}=r;switch(e.type){case"pcb_trace":return e.trace_length?`${e.trace_length.toFixed(3)}`:"";case"pcb_smtpad":case"pcb_plated_hole":{let a="";n&&"name"in n&&n.name&&(a+=`.${n.name} > `);const o=Array.from(new Set((e.port_hints??[]).concat((i==null?void 0:i.port_hints)??[]))).sort((s,l)=>l.localeCompare(s));return a+=o.map(s=>s.match(/^[0-9]+$/)?`port.${s}`:`.${s}`).join(", "),a}default:return""}},xwt={top:"red",bottom:"aqua"},bwt=({primitive:r,mousePos:e,elements:t})=>{var x;const[n,i]=wt.useState(!1),a=r._element;wt.useEffect(()=>{setTimeout(()=>{i(!0)},100)},[]);let[o,s,l,c]=[r.screen_x,r.screen_y,r.screen_w,r.screen_h];const u=r.same_space_index??0,f=26,y=xwt[(x=r==null?void 0:r._element)==null?void 0:x.layer]??"red";let _=0;if(a.type==="pcb_smtpad"&&(a==null?void 0:a.shape)==="rotated_rect"&&(_=a==null?void 0:a.ccw_rotation),a.type==="pcb_trace"){const w=vwt({primitiveElement:a,elements:t});if(!w)return null;const T=e.y-35;return ft.jsx("div",{style:{zIndex:Y3.elementOverlay,position:"absolute",left:e.x,top:T,color:y,pointerEvents:"none",transform:"translateX(-50%)"},children:ft.jsx("div",{style:{backgroundColor:"#f2efcc",color:w.isOverLength?"red":"black",textShadow:"none",WebkitFontSmoothing:"antialiased",MozOsxFontSmoothing:"grayscale",padding:"6px 6px",borderRadius:"6px",fontSize:"14px",minWidth:"45px",textAlign:"center",whiteSpace:"nowrap"},children:w.text})})}return ft.jsx("div",{style:{zIndex:Y3.elementOverlay,position:"absolute",left:o-l/2-8,top:s-c/2-8,width:l+16,height:c+16,color:y,transform:`rotate(${-_}deg)`,transformOrigin:"center center"},children:ft.jsx("div",{style:{width:n?`calc(100% + ${f*2*u}px)`:"100%",height:n?`calc(100% + ${f*2*u}px)`:"100%",marginLeft:n?`${-26*u}px`:0,marginTop:n?`${-26*u}px`:0,border:`1px solid ${y}`,opacity:n||u===0?1:0,transition:"width 0.2s, height 0.2s, margin-left 0.2s, margin-top 0.2s, opacity 0.2s"},children:ft.jsx("div",{style:{position:"absolute",bottom:c+20+f*u,marginRight:n?`${-26*u}px`:0,marginBottom:n?0:-26*u,transition:"margin-right 0.2s, margin-bottom 0.2s",backgroundColor:"#f2efcc",color:"black",textShadow:"none",WebkitFontSmoothing:"antialiased",MozOsxFontSmoothing:"grayscale",padding:"6px 6px",borderRadius:"6px",fontSize:"14px",transform:`rotate(${_}deg)`,minWidth:"45px",textAlign:"center"},children:_wt(r)})})})},Swt=({highlightedPrimitives:r,mousePos:e,elements:t})=>{const[n,i]=l2(s=>[s.is_moving_component,s.is_showing_multiple_traces_length]),a=r.some(s=>s._element.type==="pcb_smtpad")&&r.some(s=>s._element.type==="pcb_trace");let o=r;return a&&(o=o.filter(s=>s._element.type==="pcb_smtpad")),o=ywt({primitives:o,is_showing_multiple_traces_length:i,elements:t}),ft.jsx("div",{style:gwt,children:!n&&o.map((s,l)=>ft.jsx(bwt,{primitive:s,mousePos:e,elements:t},l))})};function Ewt(r,e){return r.size!==e.size?!1:Array.from(r).every(t=>e.has(t))}var wwt=({elements:r,children:e,transform:t,primitives:n,onMouseHoverOverPrimitives:i})=>{const[a,o]=wt.useState([]),[s,l]=wt.useState({x:0,y:0}),c=wt.useMemo(()=>{var f,y;const u=[];for(const _ of a){if(((f=_._element)==null?void 0:f.type)==="pcb_via"||((y=_._element)==null?void 0:y.type)==="pcb_component"||(_==null?void 0:_.layer)==="drill")continue;const x=ai(t,_),M="w"in _?_.w:"r"in _?_.r*2:0,w="h"in _?_.h:"r"in _?_.r*2:0,T={w:M*t.a,h:w*t.a},L=u.filter(O=>x.x===O.screen_x&&x.y===O.screen_y&&T.w===O.screen_w&&T.h===O.screen_h).length;u.push({..._,screen_x:x.x,screen_y:x.y,screen_w:T.w,screen_h:T.h,same_space_index:L})}return u},[a,t]);return ft.jsxs("div",{style:{position:"relative"},onMouseMove:u=>{var f;if(t){const y=u.currentTarget.getBoundingClientRect(),_=u.clientX-y.left,x=u.clientY-y.top;l({x:_,y:x});const M=ai(zb(t),{x:_,y:x}),w=[];for(const T of n){if(!T._element)continue;if("x1"in T&&((f=T._element)==null?void 0:f.type)==="pcb_trace"){const B=qbt({x:M.x,y:M.y},{x:T.x1,y:T.y1},{x:T.x2,y:T.y2}),W=T.width||.5,$=Math.max(W*25,2)/t.a;B<$&&w.push(T);continue}if(!("x"in T&&"y"in T))continue;let L=0,O=0;if("w"in T&&"h"in T)L=T.w,O=T.h;else if("r"in T)L=T.r*2,O=T.r*2;else continue;Math.abs(T.x-M.x)<L/2&&Math.abs(T.y-M.y)<O/2&&w.push(T)}if(Ewt(new Set(w.map(T=>T._pcb_drawing_object_id)),new Set(a.map(T=>T._pcb_drawing_object_id))))return;o(w),i(w)}},children:[e,ft.jsx(Swt,{elements:r,mousePos:s,highlightedPrimitives:c})]})},Twt=({children:r,transform:e,focusOnHover:t=!1})=>{e||(e=Q_());const[n,i]=wt.useState(!1),[a,o]=wt.useState(!1),[s,l]=wt.useState({x:0,y:0}),[c,u]=wt.useState({x:0,y:0}),f=wt.useRef({x:0,y:0}),y=wt.useRef(null),_=y.current,x=_==null?void 0:_.getBoundingClientRect();wt.useEffect(()=>{const L=y.current,O=$=>{$.key==="d"&&(l({x:f.current.x,y:f.current.y}),u({x:f.current.x,y:f.current.y}),i(Q=>!Q),o(!0)),$.key==="Escape"&&(i(!1),o(!1))},B=()=>{L&&window.addEventListener("keydown",O)},W=()=>{L&&window.removeEventListener("keydown",O)};return L&&(L.addEventListener("focus",B),L.addEventListener("blur",W),L.addEventListener("mouseenter",B),L.addEventListener("mouseleave",W)),()=>{L&&(L.removeEventListener("focus",B),L.removeEventListener("blur",W),L.removeEventListener("mouseenter",B),L.removeEventListener("mouseleave",W))}},[y]);const M=ai(e,s),w=ai(e,c),T={left:Math.min(M.x,w.x),right:Math.max(M.x,w.x),top:Math.min(M.y,w.y),bottom:Math.max(M.y,w.y),flipX:M.x>w.x,flipY:M.y>w.y,width:0,height:0};return T.width=T.right-T.left,T.height=T.bottom-T.top,ft.jsxs("div",{ref:y,tabIndex:0,style:{position:"relative"},onMouseEnter:()=>{t&&y.current&&y.current.focus()},onMouseLeave:()=>{y.current&&y.current.blur()},onMouseMove:L=>{const O=L.currentTarget.getBoundingClientRect(),B=L.clientX-O.left,W=L.clientY-O.top,$=ai(zb(e),{x:B,y:W});f.current.x=$.x,f.current.y=$.y,a&&u({x:$.x,y:$.y})},onMouseDown:()=>{a?o(!1):n&&i(!1)},children:[r,n&&ft.jsxs(ft.Fragment,{children:[ft.jsx("div",{style:{position:"absolute",left:T.left,width:T.width,textAlign:"center",top:M.y+2,color:"red",mixBlendMode:"difference",pointerEvents:"none",marginTop:T.flipY?0:-20,fontSize:12,fontFamily:"sans-serif",zIndex:Y3.dimensionOverlay},children:Math.abs(s.x-c.x).toFixed(2)}),ft.jsx("div",{style:{position:"absolute",left:w.x,height:T.height,display:"flex",flexDirection:"column",justifyContent:"center",top:T.top,color:"red",pointerEvents:"none",mixBlendMode:"difference",fontSize:12,fontFamily:"sans-serif",zIndex:Y3.dimensionOverlay},children:ft.jsx("div",{style:{marginLeft:T.flipX?"-100%":4,paddingRight:4},children:Math.abs(s.y-c.y).toFixed(2)})}),ft.jsxs("svg",{style:{position:"absolute",left:0,top:0,pointerEvents:"none",mixBlendMode:"difference",zIndex:Y3.dimensionOverlay},width:x.width,height:x.height,children:[ft.jsx("defs",{children:ft.jsx("marker",{id:"head",orient:"auto",markerWidth:"3",markerHeight:"4",refX:"2",refY:"2",children:ft.jsx("path",{d:"M0,0 V4 L2,2 Z",fill:"red"})})}),ft.jsx("line",{x1:M.x,y1:M.y,x2:w.x,y2:w.y,markerEnd:"url(#head)",strokeWidth:1.5,fill:"none",stroke:"red"}),ft.jsx("line",{x1:M.x,y1:M.y,x2:w.x,y2:M.y,strokeWidth:1.5,fill:"none",strokeDasharray:"2,2",stroke:"red"}),ft.jsx("line",{x1:w.x,y1:M.y,x2:w.x,y2:w.y,strokeWidth:1.5,fill:"none",strokeDasharray:"2,2",stroke:"red"})]}),ft.jsxs("div",{style:{right:0,bottom:0,position:"absolute",color:"red",fontFamily:"sans-serif",fontSize:12,margin:4},children:["(",s.x.toFixed(2),",",s.y.toFixed(2),")",ft.jsx("br",{}),"(",c.x.toFixed(2),",",c.y.toFixed(2),")",ft.jsx("br",{}),"dist:"," ",Math.sqrt((c.x-s.x)**2+(c.y-s.y)**2).toFixed(2)]})]})]})},Mwt={version:"1.11.61"},j4=(r,e)=>{const t=l2(n=>n.is_mouse_over_container);wt.useEffect(()=>{if(!r||typeof e!="function")return;const n=i=>{const a=r.split("+"),o=a.includes("ctrl"),s=a.includes("shift"),l=a.includes("alt"),c=a.includes("meta"),u=a[a.length-1];t&&(!o||i.ctrlKey)&&(!s||i.shiftKey)&&(!l||i.altKey)&&(!c||i.metaKey)&&i.key.toLowerCase()===u.toLowerCase()&&(i.preventDefault(),e())};return window.addEventListener("keydown",n),()=>{window.removeEventListener("keydown",n)}},[r,e])},Cwt=({name:r,selected:e,onClick:t})=>ft.jsxs("div",{className:xT`
13088
+ $1`).replace(/>(\s*)(?=<!--\s*\/)/g,"> ")}return Gee}n4t();function IMe(r,e,t,n={}){const i=n.padding??40,a=n.yFlip??!1;let o;if("center"in r){const u=r.width/2,f=r.height/2;o={minX:r.center.x-u,maxX:r.center.x+u,minY:r.center.y-f,maxY:r.center.y+f}}else o=r;const s=o.maxX-o.minX,l=o.maxY-o.minY,c=Math.min((e-2*i)/s,(t-2*i)/l);return Hd(u0(e/2,t/2),n2(c,a?-c:c),u0(-(o.minX+s/2),-(o.minY+l/2)))}function r4t(r){const e=[...r.points||[],...(r.lines||[]).flatMap(t=>t.points),...(r.rects||[]).flatMap(t=>{const n=t.width/2,i=t.height/2;return[{x:t.center.x-n,y:t.center.y-i},{x:t.center.x+n,y:t.center.y-i},{x:t.center.x-n,y:t.center.y+i},{x:t.center.x+n,y:t.center.y+i}]}),...(r.circles||[]).flatMap(t=>[{x:t.center.x-t.radius,y:t.center.y},{x:t.center.x+t.radius,y:t.center.y},{x:t.center.x,y:t.center.y-t.radius},{x:t.center.x,y:t.center.y+t.radius}])];return e.length===0?{minX:-1,maxX:1,minY:-1,maxY:1}:e.reduce((t,n)=>({minX:Math.min(t.minX,n.x),maxX:Math.max(t.maxX,n.x),minY:Math.min(t.minY,n.y),maxY:Math.max(t.maxY,n.y)}),{minX:1/0,maxX:-1/0,minY:1/0,maxY:-1/0})}function i4t(r,e,t={}){const n=e instanceof HTMLCanvasElement?e.getContext("2d"):e;if(!n)throw new Error("Could not get 2D context from canvas");const i=e instanceof HTMLCanvasElement?e.width:e.canvas.width,a=e instanceof HTMLCanvasElement?e.height:e.canvas.height;let o;if(t.transform)o=t.transform;else if(t.viewbox)o=IMe(t.viewbox,i,a,{padding:t.padding,yFlip:t.yFlip});else{const s=r4t(r),l=r.coordinateSystem==="cartesian";o=IMe(s,i,a,{padding:t.padding??40,yFlip:l})}n.clearRect(0,0,i,a),n.save(),r.rects&&r.rects.length>0&&r.rects.forEach(s=>{const l=s.width/2,c=s.height/2,u=ai(o,{x:s.center.x-l,y:s.center.y-c}),f=ai(o,{x:s.center.x+l,y:s.center.y+c}),y=Math.abs(f.x-u.x),_=Math.abs(f.y-u.y);n.beginPath(),n.rect(Math.min(u.x,f.x),Math.min(u.y,f.y),y,_),s.fill&&(n.fillStyle=s.fill,n.fill()),s.stroke&&(n.strokeStyle=s.stroke,n.stroke())}),r.circles&&r.circles.length>0&&r.circles.forEach(s=>{const l=ai(o,s.center),c=s.radius*Math.abs(o.a);n.beginPath(),n.arc(l.x,l.y,c,0,2*Math.PI),s.fill&&(n.fillStyle=s.fill,n.fill()),s.stroke&&(n.strokeStyle=s.stroke,n.stroke())}),r.lines&&r.lines.length>0&&r.lines.forEach(s=>{if(s.points.length===0)return;n.beginPath();const l=ai(o,s.points[0]);n.moveTo(l.x,l.y);for(let c=1;c<s.points.length;c++){const u=ai(o,s.points[c]);n.lineTo(u.x,u.y)}n.strokeStyle=s.strokeColor||"black",n.lineWidth=s.strokeWidth||1,s.strokeDash?n.setLineDash(s.strokeDash.split(",").map(Number)):n.setLineDash([]),n.stroke()}),r.points&&r.points.length>0&&r.points.forEach(s=>{const l=ai(o,s);n.beginPath(),n.arc(l.x,l.y,3,0,2*Math.PI),n.fillStyle=s.color||"black",n.fill(),s.label&&!t.disableLabels&&(n.fillStyle=s.color||"black",n.font="12px sans-serif",n.fillText(s.label,l.x+5,l.y-5))}),n.restore()}var a4t=Object.defineProperty,o4t=(r,e)=>{for(var t in e)a4t(r,t,{get:e[t],enumerable:!0})},kMe={};o4t(kMe,{all_layers:()=>yte,any_circuit_element:()=>hCe,any_soup_element:()=>pCe,any_source_component:()=>c7e,battery_capacity:()=>a7e,cad_component:()=>dCe,capacitance:()=>Jee,current:()=>gEt,distance:()=>mc,frequency:()=>i7e,getZodPrefixedIdWithDefault:()=>Mv,inductance:()=>r7e,layer_ref:()=>c_,layer_string:()=>gte,length:()=>Wg,pcb_autorouting_error:()=>fCe,pcb_board:()=>Z7e,pcb_component:()=>O7e,pcb_fabrication_note_path:()=>oCe,pcb_fabrication_note_text:()=>aCe,pcb_group:()=>uCe,pcb_hole:()=>I7e,pcb_hole_circle_or_square_shape:()=>EEt,pcb_hole_oval_shape:()=>wEt,pcb_keepout:()=>sCe,pcb_manual_edit_conflict_error:()=>cCe,pcb_missing_footprint_error:()=>lCe,pcb_placement_error:()=>Q7e,pcb_plated_hole:()=>k7e,pcb_port:()=>F7e,pcb_port_not_matched_error:()=>W7e,pcb_route_hint:()=>D7e,pcb_route_hints:()=>SEt,pcb_silkscreen_circle:()=>rCe,pcb_silkscreen_line:()=>J7e,pcb_silkscreen_oval:()=>iCe,pcb_silkscreen_path:()=>eCe,pcb_silkscreen_rect:()=>nCe,pcb_silkscreen_text:()=>tCe,pcb_smtpad:()=>H7e,pcb_smtpad_pill:()=>B7e,pcb_solder_paste:()=>j7e,pcb_text:()=>V7e,pcb_trace:()=>Y7e,pcb_trace_error:()=>X7e,pcb_trace_hint:()=>K7e,pcb_trace_route_point:()=>LEt,pcb_trace_route_point_via:()=>q7e,pcb_trace_route_point_wire:()=>G7e,pcb_via:()=>$7e,point:()=>ig,point3:()=>LC,port_arrangement:()=>_7e,position:()=>xEt,position3:()=>bEt,resistance:()=>ez,rotation:()=>ete,route_hint_point:()=>L7e,schematic_box:()=>p7e,schematic_component:()=>x7e,schematic_component_port_arrangement_by_sides:()=>g7e,schematic_component_port_arrangement_by_size:()=>y7e,schematic_debug_line:()=>R7e,schematic_debug_object:()=>N7e,schematic_debug_object_base:()=>rz,schematic_debug_point:()=>A7e,schematic_debug_rect:()=>C7e,schematic_error:()=>M7e,schematic_line:()=>b7e,schematic_net_label:()=>T7e,schematic_path:()=>m7e,schematic_pin_styles:()=>v7e,schematic_port:()=>w7e,schematic_text:()=>E7e,schematic_trace:()=>S7e,schematic_voltage_probe:()=>P7e,size:()=>tte,source_component_base:()=>s2,source_group:()=>d7e,source_led:()=>ote,source_net:()=>h7e,source_port:()=>u7e,source_simple_battery:()=>lte,source_simple_bug:()=>ite,source_simple_capacitor:()=>nte,source_simple_chip:()=>ate,source_simple_crystal:()=>l7e,source_simple_diode:()=>nz,source_simple_ground:()=>s7e,source_simple_inductor:()=>cte,source_simple_mosfet:()=>mte,source_simple_pin_header:()=>dte,source_simple_potentiometer:()=>fte,source_simple_power_source:()=>ste,source_simple_push_button:()=>ute,source_simple_resistor:()=>rte,source_simple_resonator:()=>hte,source_simple_switch:()=>vte,source_simple_transistor:()=>pte,source_trace:()=>f7e,supplier_name:()=>o7e,time:()=>_Et,visible_layer:()=>RT,voltage:()=>tz});var Tv;(function(r){r.assertEqual=i=>i;function e(i){}r.assertIs=e;function t(i){throw new Error}r.assertNever=t,r.arrayToEnum=i=>{const a={};for(const o of i)a[o]=o;return a},r.getValidEnumValues=i=>{const a=r.objectKeys(i).filter(s=>typeof i[i[s]]!="number"),o={};for(const s of a)o[s]=i[s];return r.objectValues(o)},r.objectValues=i=>r.objectKeys(i).map(function(a){return i[a]}),r.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{const a=[];for(const o in i)Object.prototype.hasOwnProperty.call(i,o)&&a.push(o);return a},r.find=(i,a)=>{for(const o of i)if(a(o))return o},r.isInteger=typeof Number.isInteger=="function"?i=>Number.isInteger(i):i=>typeof i=="number"&&isFinite(i)&&Math.floor(i)===i;function n(i,a=" | "){return i.map(o=>typeof o=="string"?`'${o}'`:o).join(a)}r.joinValues=n,r.jsonStringifyReplacer=(i,a)=>typeof a=="bigint"?a.toString():a})(Tv||(Tv={}));var qee;(function(r){r.mergeShapes=(e,t)=>({...e,...t})})(qee||(qee={}));var Ac=Tv.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),YS=r=>{switch(typeof r){case"undefined":return Ac.undefined;case"string":return Ac.string;case"number":return isNaN(r)?Ac.nan:Ac.number;case"boolean":return Ac.boolean;case"function":return Ac.function;case"bigint":return Ac.bigint;case"symbol":return Ac.symbol;case"object":return Array.isArray(r)?Ac.array:r===null?Ac.null:r.then&&typeof r.then=="function"&&r.catch&&typeof r.catch=="function"?Ac.promise:typeof Map<"u"&&r instanceof Map?Ac.map:typeof Set<"u"&&r instanceof Set?Ac.set:typeof Date<"u"&&r instanceof Date?Ac.date:Ac.object;default:return Ac.unknown}},Jo=Tv.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"]),s4t=r=>JSON.stringify(r,null,2).replace(/"([^"]+)":/g,"$1:"),yb=class Fze extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=n=>{this.issues=[...this.issues,n]},this.addIssues=(n=[])=>{this.issues=[...this.issues,...n]};const t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name="ZodError",this.issues=e}format(e){const t=e||function(a){return a.message},n={_errors:[]},i=a=>{for(const o of a.issues)if(o.code==="invalid_union")o.unionErrors.map(i);else if(o.code==="invalid_return_type")i(o.returnTypeError);else if(o.code==="invalid_arguments")i(o.argumentsError);else if(o.path.length===0)n._errors.push(t(o));else{let s=n,l=0;for(;l<o.path.length;){const c=o.path[l];l===o.path.length-1?(s[c]=s[c]||{_errors:[]},s[c]._errors.push(t(o))):s[c]=s[c]||{_errors:[]},s=s[c],l++}}};return i(this),n}static assert(e){if(!(e instanceof Fze))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,Tv.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=t=>t.message){const t={},n=[];for(const i of this.issues)i.path.length>0?(t[i.path[0]]=t[i.path[0]]||[],t[i.path[0]].push(e(i))):n.push(e(i));return{formErrors:n,fieldErrors:t}}get formErrors(){return this.flatten()}};yb.create=r=>new yb(r);var ST=(r,e)=>{let t;switch(r.code){case Jo.invalid_type:r.received===Ac.undefined?t="Required":t=`Expected ${r.expected}, received ${r.received}`;break;case Jo.invalid_literal:t=`Invalid literal value, expected ${JSON.stringify(r.expected,Tv.jsonStringifyReplacer)}`;break;case Jo.unrecognized_keys:t=`Unrecognized key(s) in object: ${Tv.joinValues(r.keys,", ")}`;break;case Jo.invalid_union:t="Invalid input";break;case Jo.invalid_union_discriminator:t=`Invalid discriminator value. Expected ${Tv.joinValues(r.options)}`;break;case Jo.invalid_enum_value:t=`Invalid enum value. Expected ${Tv.joinValues(r.options)}, received '${r.received}'`;break;case Jo.invalid_arguments:t="Invalid function arguments";break;case Jo.invalid_return_type:t="Invalid function return type";break;case Jo.invalid_date:t="Invalid date";break;case Jo.invalid_string:typeof r.validation=="object"?"includes"in r.validation?(t=`Invalid input: must include "${r.validation.includes}"`,typeof r.validation.position=="number"&&(t=`${t} at one or more positions greater than or equal to ${r.validation.position}`)):"startsWith"in r.validation?t=`Invalid input: must start with "${r.validation.startsWith}"`:"endsWith"in r.validation?t=`Invalid input: must end with "${r.validation.endsWith}"`:Tv.assertNever(r.validation):r.validation!=="regex"?t=`Invalid ${r.validation}`:t="Invalid";break;case Jo.too_small:r.type==="array"?t=`Array must contain ${r.exact?"exactly":r.inclusive?"at least":"more than"} ${r.minimum} element(s)`:r.type==="string"?t=`String must contain ${r.exact?"exactly":r.inclusive?"at least":"over"} ${r.minimum} character(s)`:r.type==="number"?t=`Number must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${r.minimum}`:r.type==="date"?t=`Date must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(r.minimum))}`:t="Invalid input";break;case Jo.too_big:r.type==="array"?t=`Array must contain ${r.exact?"exactly":r.inclusive?"at most":"less than"} ${r.maximum} element(s)`:r.type==="string"?t=`String must contain ${r.exact?"exactly":r.inclusive?"at most":"under"} ${r.maximum} character(s)`:r.type==="number"?t=`Number must be ${r.exact?"exactly":r.inclusive?"less than or equal to":"less than"} ${r.maximum}`:r.type==="bigint"?t=`BigInt must be ${r.exact?"exactly":r.inclusive?"less than or equal to":"less than"} ${r.maximum}`:r.type==="date"?t=`Date must be ${r.exact?"exactly":r.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(r.maximum))}`:t="Invalid input";break;case Jo.custom:t="Invalid input";break;case Jo.invalid_intersection_types:t="Intersection results could not be merged";break;case Jo.not_multiple_of:t=`Number must be a multiple of ${r.multipleOf}`;break;case Jo.not_finite:t="Number must be finite";break;default:t=e.defaultError,Tv.assertNever(r)}return{message:t}},FMe=ST;function l4t(r){FMe=r}function YO(){return FMe}var XO=r=>{const{data:e,path:t,errorMaps:n,issueData:i}=r,a=[...t,...i.path||[]],o={...i,path:a};if(i.message!==void 0)return{...i,path:a,message:i.message};let s="";const l=n.filter(c=>!!c).slice().reverse();for(const c of l)s=c(o,{data:e,defaultError:s}).message;return{...i,path:a,message:s}},c4t=[];function $l(r,e){const t=YO(),n=XO({issueData:e,data:r.data,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,t,t===ST?void 0:ST].filter(i=>!!i)});r.common.issues.push(n)}var e3=class Bze{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,t){const n=[];for(const i of t){if(i.status==="aborted")return Ph;i.status==="dirty"&&e.dirty(),n.push(i.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,t){const n=[];for(const i of t){const a=await i.key,o=await i.value;n.push({key:a,value:o})}return Bze.mergeObjectSync(e,n)}static mergeObjectSync(e,t){const n={};for(const i of t){const{key:a,value:o}=i;if(a.status==="aborted"||o.status==="aborted")return Ph;a.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),a.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(n[a.value]=o.value)}return{status:e.value,value:n}}},Ph=Object.freeze({status:"aborted"}),ET=r=>({status:"dirty",value:r}),T5=r=>({status:"valid",value:r}),Yee=r=>r.status==="aborted",Xee=r=>r.status==="dirty",_w=r=>r.status==="valid",mC=r=>typeof Promise<"u"&&r instanceof Promise;function WO(r,e,t,n){if(typeof e=="function"?r!==e||!0:!e.has(r))throw new TypeError("Cannot read private member from an object whose class did not declare it");return e.get(r)}function BMe(r,e,t,n,i){if(typeof e=="function"?r!==e||!0:!e.has(r))throw new TypeError("Cannot write private member to an object whose class did not declare it");return e.set(r,t),t}var Ju;(function(r){r.errToObj=e=>typeof e=="string"?{message:e}:e||{},r.toString=e=>typeof e=="string"?e:e==null?void 0:e.message})(Ju||(Ju={}));var vC,yC,rS=class{constructor(r,e,t,n){this._cachedPath=[],this.parent=r,this.data=e,this._path=t,this._key=n}get path(){return this._cachedPath.length||(this._key instanceof Array?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},HMe=(r,e)=>{if(_w(e))return{success:!0,data:e.value};if(!r.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const t=new yb(r.common.issues);return this._error=t,this._error}}};function p0(r){if(!r)return{};const{errorMap:e,invalid_type_error:t,required_error:n,description:i}=r;if(e&&(t||n))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:i}:{errorMap:(o,s)=>{var l,c;const{message:u}=r;return o.code==="invalid_enum_value"?{message:u??s.defaultError}:typeof s.data>"u"?{message:(l=u??n)!==null&&l!==void 0?l:s.defaultError}:o.code!=="invalid_type"?{message:s.defaultError}:{message:(c=u??t)!==null&&c!==void 0?c:s.defaultError}},description:i}}var F0=class{get description(){return this._def.description}_getType(r){return YS(r.data)}_getOrReturnCtx(r,e){return e||{common:r.parent.common,data:r.data,parsedType:YS(r.data),schemaErrorMap:this._def.errorMap,path:r.path,parent:r.parent}}_processInputParams(r){return{status:new e3,ctx:{common:r.parent.common,data:r.data,parsedType:YS(r.data),schemaErrorMap:this._def.errorMap,path:r.path,parent:r.parent}}}_parseSync(r){const e=this._parse(r);if(mC(e))throw new Error("Synchronous parse encountered promise.");return e}_parseAsync(r){const e=this._parse(r);return Promise.resolve(e)}parse(r,e){const t=this.safeParse(r,e);if(t.success)return t.data;throw t.error}safeParse(r,e){var t;const n={common:{issues:[],async:(t=e==null?void 0:e.async)!==null&&t!==void 0?t:!1,contextualErrorMap:e==null?void 0:e.errorMap},path:(e==null?void 0:e.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:r,parsedType:YS(r)},i=this._parseSync({data:r,path:n.path,parent:n});return HMe(n,i)}"~validate"(r){var e,t;const n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:r,parsedType:YS(r)};if(!this["~standard"].async)try{const i=this._parseSync({data:r,path:[],parent:n});return _w(i)?{value:i.value}:{issues:n.common.issues}}catch(i){!((t=(e=i==null?void 0:i.message)===null||e===void 0?void 0:e.toLowerCase())===null||t===void 0)&&t.includes("encountered")&&(this["~standard"].async=!0),n.common={issues:[],async:!0}}return this._parseAsync({data:r,path:[],parent:n}).then(i=>_w(i)?{value:i.value}:{issues:n.common.issues})}async parseAsync(r,e){const t=await this.safeParseAsync(r,e);if(t.success)return t.data;throw t.error}async safeParseAsync(r,e){const t={common:{issues:[],contextualErrorMap:e==null?void 0:e.errorMap,async:!0},path:(e==null?void 0:e.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:r,parsedType:YS(r)},n=this._parse({data:r,path:t.path,parent:t}),i=await(mC(n)?n:Promise.resolve(n));return HMe(t,i)}refine(r,e){const t=n=>typeof e=="string"||typeof e>"u"?{message:e}:typeof e=="function"?e(n):e;return this._refinement((n,i)=>{const a=r(n),o=()=>i.addIssue({code:Jo.custom,...t(n)});return typeof Promise<"u"&&a instanceof Promise?a.then(s=>s?!0:(o(),!1)):a?!0:(o(),!1)})}refinement(r,e){return this._refinement((t,n)=>r(t)?!0:(n.addIssue(typeof e=="function"?e(t,n):e),!1))}_refinement(r){return new gb({schema:this,typeName:dh.ZodEffects,effect:{type:"refinement",refinement:r}})}superRefine(r){return this._refinement(r)}constructor(r){this.spa=this.safeParseAsync,this._def=r,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:e=>this["~validate"](e)}}optional(){return iS.create(this,this._def)}nullable(){return H4.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return bw.create(this)}promise(){return CT.create(this,this._def)}or(r){return wC.create([this,r],this._def)}and(r){return TC.create(this,r,this._def)}transform(r){return new gb({...p0(this._def),schema:this,typeName:dh.ZodEffects,effect:{type:"transform",transform:r}})}default(r){const e=typeof r=="function"?r:()=>r;return new NC({...p0(this._def),innerType:this,defaultValue:e,typeName:dh.ZodDefault})}brand(){return new Zee({typeName:dh.ZodBranded,type:this,...p0(this._def)})}catch(r){const e=typeof r=="function"?r:()=>r;return new PC({...p0(this._def),innerType:this,catchValue:e,typeName:dh.ZodCatch})}describe(r){const e=this.constructor;return new e({...this._def,description:r})}pipe(r){return Qee.create(this,r)}readonly(){return DC.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},u4t=/^c[^\s-]{8,}$/i,f4t=/^[0-9a-z]+$/,d4t=/^[0-9A-HJKMNP-TV-Z]{26}$/i,h4t=/^[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,p4t=/^[a-z0-9_-]{21}$/i,m4t=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,v4t=/^[-+]?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)?)??$/,y4t=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,g4t="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Wee,_4t=/^(?:(?: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])$/,x4t=/^(?:(?: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])$/,b4t=/^(([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]))$/,S4t=/^(([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])$/,E4t=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,w4t=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,jMe="((\\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])))",T4t=new RegExp(`^${jMe}$`);function VMe(r){let e="([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d";return r.precision?e=`${e}\\.\\d{${r.precision}}`:r.precision==null&&(e=`${e}(\\.\\d+)?`),e}function M4t(r){return new RegExp(`^${VMe(r)}$`)}function GMe(r){let e=`${jMe}T${VMe(r)}`;const t=[];return t.push(r.local?"Z?":"Z"),r.offset&&t.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${t.join("|")})`,new RegExp(`^${e}$`)}function C4t(r,e){return!!((e==="v4"||!e)&&_4t.test(r)||(e==="v6"||!e)&&b4t.test(r))}function R4t(r,e){if(!m4t.test(r))return!1;try{const[t]=r.split("."),n=t.replace(/-/g,"+").replace(/_/g,"/").padEnd(t.length+(4-t.length%4)%4,"="),i=JSON.parse(atob(n));return!(typeof i!="object"||i===null||!i.typ||!i.alg||e&&i.alg!==e)}catch{return!1}}function A4t(r,e){return!!((e==="v4"||!e)&&x4t.test(r)||(e==="v6"||!e)&&S4t.test(r))}var wT=class vR extends F0{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==Ac.string){const a=this._getOrReturnCtx(e);return $l(a,{code:Jo.invalid_type,expected:Ac.string,received:a.parsedType}),Ph}const n=new e3;let i;for(const a of this._def.checks)if(a.kind==="min")e.data.length<a.value&&(i=this._getOrReturnCtx(e,i),$l(i,{code:Jo.too_small,minimum:a.value,type:"string",inclusive:!0,exact:!1,message:a.message}),n.dirty());else if(a.kind==="max")e.data.length>a.value&&(i=this._getOrReturnCtx(e,i),$l(i,{code:Jo.too_big,maximum:a.value,type:"string",inclusive:!0,exact:!1,message:a.message}),n.dirty());else if(a.kind==="length"){const o=e.data.length>a.value,s=e.data.length<a.value;(o||s)&&(i=this._getOrReturnCtx(e,i),o?$l(i,{code:Jo.too_big,maximum:a.value,type:"string",inclusive:!0,exact:!0,message:a.message}):s&&$l(i,{code:Jo.too_small,minimum:a.value,type:"string",inclusive:!0,exact:!0,message:a.message}),n.dirty())}else if(a.kind==="email")y4t.test(e.data)||(i=this._getOrReturnCtx(e,i),$l(i,{validation:"email",code:Jo.invalid_string,message:a.message}),n.dirty());else if(a.kind==="emoji")Wee||(Wee=new RegExp(g4t,"u")),Wee.test(e.data)||(i=this._getOrReturnCtx(e,i),$l(i,{validation:"emoji",code:Jo.invalid_string,message:a.message}),n.dirty());else if(a.kind==="uuid")h4t.test(e.data)||(i=this._getOrReturnCtx(e,i),$l(i,{validation:"uuid",code:Jo.invalid_string,message:a.message}),n.dirty());else if(a.kind==="nanoid")p4t.test(e.data)||(i=this._getOrReturnCtx(e,i),$l(i,{validation:"nanoid",code:Jo.invalid_string,message:a.message}),n.dirty());else if(a.kind==="cuid")u4t.test(e.data)||(i=this._getOrReturnCtx(e,i),$l(i,{validation:"cuid",code:Jo.invalid_string,message:a.message}),n.dirty());else if(a.kind==="cuid2")f4t.test(e.data)||(i=this._getOrReturnCtx(e,i),$l(i,{validation:"cuid2",code:Jo.invalid_string,message:a.message}),n.dirty());else if(a.kind==="ulid")d4t.test(e.data)||(i=this._getOrReturnCtx(e,i),$l(i,{validation:"ulid",code:Jo.invalid_string,message:a.message}),n.dirty());else if(a.kind==="url")try{new URL(e.data)}catch{i=this._getOrReturnCtx(e,i),$l(i,{validation:"url",code:Jo.invalid_string,message:a.message}),n.dirty()}else a.kind==="regex"?(a.regex.lastIndex=0,a.regex.test(e.data)||(i=this._getOrReturnCtx(e,i),$l(i,{validation:"regex",code:Jo.invalid_string,message:a.message}),n.dirty())):a.kind==="trim"?e.data=e.data.trim():a.kind==="includes"?e.data.includes(a.value,a.position)||(i=this._getOrReturnCtx(e,i),$l(i,{code:Jo.invalid_string,validation:{includes:a.value,position:a.position},message:a.message}),n.dirty()):a.kind==="toLowerCase"?e.data=e.data.toLowerCase():a.kind==="toUpperCase"?e.data=e.data.toUpperCase():a.kind==="startsWith"?e.data.startsWith(a.value)||(i=this._getOrReturnCtx(e,i),$l(i,{code:Jo.invalid_string,validation:{startsWith:a.value},message:a.message}),n.dirty()):a.kind==="endsWith"?e.data.endsWith(a.value)||(i=this._getOrReturnCtx(e,i),$l(i,{code:Jo.invalid_string,validation:{endsWith:a.value},message:a.message}),n.dirty()):a.kind==="datetime"?GMe(a).test(e.data)||(i=this._getOrReturnCtx(e,i),$l(i,{code:Jo.invalid_string,validation:"datetime",message:a.message}),n.dirty()):a.kind==="date"?T4t.test(e.data)||(i=this._getOrReturnCtx(e,i),$l(i,{code:Jo.invalid_string,validation:"date",message:a.message}),n.dirty()):a.kind==="time"?M4t(a).test(e.data)||(i=this._getOrReturnCtx(e,i),$l(i,{code:Jo.invalid_string,validation:"time",message:a.message}),n.dirty()):a.kind==="duration"?v4t.test(e.data)||(i=this._getOrReturnCtx(e,i),$l(i,{validation:"duration",code:Jo.invalid_string,message:a.message}),n.dirty()):a.kind==="ip"?C4t(e.data,a.version)||(i=this._getOrReturnCtx(e,i),$l(i,{validation:"ip",code:Jo.invalid_string,message:a.message}),n.dirty()):a.kind==="jwt"?R4t(e.data,a.alg)||(i=this._getOrReturnCtx(e,i),$l(i,{validation:"jwt",code:Jo.invalid_string,message:a.message}),n.dirty()):a.kind==="cidr"?A4t(e.data,a.version)||(i=this._getOrReturnCtx(e,i),$l(i,{validation:"cidr",code:Jo.invalid_string,message:a.message}),n.dirty()):a.kind==="base64"?E4t.test(e.data)||(i=this._getOrReturnCtx(e,i),$l(i,{validation:"base64",code:Jo.invalid_string,message:a.message}),n.dirty()):a.kind==="base64url"?w4t.test(e.data)||(i=this._getOrReturnCtx(e,i),$l(i,{validation:"base64url",code:Jo.invalid_string,message:a.message}),n.dirty()):Tv.assertNever(a);return{status:n.value,value:e.data}}_regex(e,t,n){return this.refinement(i=>e.test(i),{validation:t,code:Jo.invalid_string,...Ju.errToObj(n)})}_addCheck(e){return new vR({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...Ju.errToObj(e)})}url(e){return this._addCheck({kind:"url",...Ju.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...Ju.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...Ju.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...Ju.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...Ju.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...Ju.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...Ju.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...Ju.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...Ju.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...Ju.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...Ju.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...Ju.errToObj(e)})}datetime(e){var t,n;return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,offset:(t=e==null?void 0:e.offset)!==null&&t!==void 0?t:!1,local:(n=e==null?void 0:e.local)!==null&&n!==void 0?n:!1,...Ju.errToObj(e==null?void 0: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==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,...Ju.errToObj(e==null?void 0:e.message)})}duration(e){return this._addCheck({kind:"duration",...Ju.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...Ju.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:t==null?void 0:t.position,...Ju.errToObj(t==null?void 0:t.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...Ju.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...Ju.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...Ju.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...Ju.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...Ju.errToObj(t)})}nonempty(e){return this.min(1,Ju.errToObj(e))}trim(){return new vR({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new vR({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new vR({...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(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}};wT.create=r=>{var e;return new wT({checks:[],typeName:dh.ZodString,coerce:(e=r==null?void 0:r.coerce)!==null&&e!==void 0?e:!1,...p0(r)})};function N4t(r,e){const t=(r.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,i=t>n?t:n,a=parseInt(r.toFixed(i).replace(".","")),o=parseInt(e.toFixed(i).replace(".",""));return a%o/Math.pow(10,i)}var gC=class Die extends F0{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)!==Ac.number){const a=this._getOrReturnCtx(e);return $l(a,{code:Jo.invalid_type,expected:Ac.number,received:a.parsedType}),Ph}let n;const i=new e3;for(const a of this._def.checks)a.kind==="int"?Tv.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),$l(n,{code:Jo.invalid_type,expected:"integer",received:"float",message:a.message}),i.dirty()):a.kind==="min"?(a.inclusive?e.data<a.value:e.data<=a.value)&&(n=this._getOrReturnCtx(e,n),$l(n,{code:Jo.too_small,minimum:a.value,type:"number",inclusive:a.inclusive,exact:!1,message:a.message}),i.dirty()):a.kind==="max"?(a.inclusive?e.data>a.value:e.data>=a.value)&&(n=this._getOrReturnCtx(e,n),$l(n,{code:Jo.too_big,maximum:a.value,type:"number",inclusive:a.inclusive,exact:!1,message:a.message}),i.dirty()):a.kind==="multipleOf"?N4t(e.data,a.value)!==0&&(n=this._getOrReturnCtx(e,n),$l(n,{code:Jo.not_multiple_of,multipleOf:a.value,message:a.message}),i.dirty()):a.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),$l(n,{code:Jo.not_finite,message:a.message}),i.dirty()):Tv.assertNever(a);return{status:i.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,Ju.toString(t))}gt(e,t){return this.setLimit("min",e,!1,Ju.toString(t))}lte(e,t){return this.setLimit("max",e,!0,Ju.toString(t))}lt(e,t){return this.setLimit("max",e,!1,Ju.toString(t))}setLimit(e,t,n,i){return new Die({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:Ju.toString(i)}]})}_addCheck(e){return new Die({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:Ju.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:Ju.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:Ju.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:Ju.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:Ju.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:Ju.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:Ju.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:Ju.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:Ju.toString(e)})}get minValue(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const 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"&&Tv.isInteger(e.value))}get isFinite(){let e=null,t=null;for(const n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(t===null||n.value>t)&&(t=n.value):n.kind==="max"&&(e===null||n.value<e)&&(e=n.value)}return Number.isFinite(t)&&Number.isFinite(e)}};gC.create=r=>new gC({checks:[],typeName:dh.ZodNumber,coerce:(r==null?void 0:r.coerce)||!1,...p0(r)});var _C=class Lie extends F0{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)!==Ac.bigint)return this._getInvalidInput(e);let n;const i=new e3;for(const a of this._def.checks)a.kind==="min"?(a.inclusive?e.data<a.value:e.data<=a.value)&&(n=this._getOrReturnCtx(e,n),$l(n,{code:Jo.too_small,type:"bigint",minimum:a.value,inclusive:a.inclusive,message:a.message}),i.dirty()):a.kind==="max"?(a.inclusive?e.data>a.value:e.data>=a.value)&&(n=this._getOrReturnCtx(e,n),$l(n,{code:Jo.too_big,type:"bigint",maximum:a.value,inclusive:a.inclusive,message:a.message}),i.dirty()):a.kind==="multipleOf"?e.data%a.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),$l(n,{code:Jo.not_multiple_of,multipleOf:a.value,message:a.message}),i.dirty()):Tv.assertNever(a);return{status:i.value,value:e.data}}_getInvalidInput(e){const t=this._getOrReturnCtx(e);return $l(t,{code:Jo.invalid_type,expected:Ac.bigint,received:t.parsedType}),Ph}gte(e,t){return this.setLimit("min",e,!0,Ju.toString(t))}gt(e,t){return this.setLimit("min",e,!1,Ju.toString(t))}lte(e,t){return this.setLimit("max",e,!0,Ju.toString(t))}lt(e,t){return this.setLimit("max",e,!1,Ju.toString(t))}setLimit(e,t,n,i){return new Lie({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:Ju.toString(i)}]})}_addCheck(e){return new Lie({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:Ju.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:Ju.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:Ju.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:Ju.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:Ju.toString(t)})}get minValue(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}};_C.create=r=>{var e;return new _C({checks:[],typeName:dh.ZodBigInt,coerce:(e=r==null?void 0:r.coerce)!==null&&e!==void 0?e:!1,...p0(r)})};var xC=class extends F0{_parse(r){if(this._def.coerce&&(r.data=!!r.data),this._getType(r)!==Ac.boolean){const t=this._getOrReturnCtx(r);return $l(t,{code:Jo.invalid_type,expected:Ac.boolean,received:t.parsedType}),Ph}return T5(r.data)}};xC.create=r=>new xC({typeName:dh.ZodBoolean,coerce:(r==null?void 0:r.coerce)||!1,...p0(r)});var bC=class Hze extends F0{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==Ac.date){const a=this._getOrReturnCtx(e);return $l(a,{code:Jo.invalid_type,expected:Ac.date,received:a.parsedType}),Ph}if(isNaN(e.data.getTime())){const a=this._getOrReturnCtx(e);return $l(a,{code:Jo.invalid_date}),Ph}const n=new e3;let i;for(const a of this._def.checks)a.kind==="min"?e.data.getTime()<a.value&&(i=this._getOrReturnCtx(e,i),$l(i,{code:Jo.too_small,message:a.message,inclusive:!0,exact:!1,minimum:a.value,type:"date"}),n.dirty()):a.kind==="max"?e.data.getTime()>a.value&&(i=this._getOrReturnCtx(e,i),$l(i,{code:Jo.too_big,message:a.message,inclusive:!0,exact:!1,maximum:a.value,type:"date"}),n.dirty()):Tv.assertNever(a);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new Hze({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:Ju.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:Ju.toString(t)})}get minDate(){let e=null;for(const 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(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e!=null?new Date(e):null}};bC.create=r=>new bC({checks:[],coerce:(r==null?void 0:r.coerce)||!1,typeName:dh.ZodDate,...p0(r)});var $O=class extends F0{_parse(r){if(this._getType(r)!==Ac.symbol){const t=this._getOrReturnCtx(r);return $l(t,{code:Jo.invalid_type,expected:Ac.symbol,received:t.parsedType}),Ph}return T5(r.data)}};$O.create=r=>new $O({typeName:dh.ZodSymbol,...p0(r)});var SC=class extends F0{_parse(r){if(this._getType(r)!==Ac.undefined){const t=this._getOrReturnCtx(r);return $l(t,{code:Jo.invalid_type,expected:Ac.undefined,received:t.parsedType}),Ph}return T5(r.data)}};SC.create=r=>new SC({typeName:dh.ZodUndefined,...p0(r)});var EC=class extends F0{_parse(r){if(this._getType(r)!==Ac.null){const t=this._getOrReturnCtx(r);return $l(t,{code:Jo.invalid_type,expected:Ac.null,received:t.parsedType}),Ph}return T5(r.data)}};EC.create=r=>new EC({typeName:dh.ZodNull,...p0(r)});var TT=class extends F0{constructor(){super(...arguments),this._any=!0}_parse(r){return T5(r.data)}};TT.create=r=>new TT({typeName:dh.ZodAny,...p0(r)});var xw=class extends F0{constructor(){super(...arguments),this._unknown=!0}_parse(r){return T5(r.data)}};xw.create=r=>new xw({typeName:dh.ZodUnknown,...p0(r)});var XS=class extends F0{_parse(r){const e=this._getOrReturnCtx(r);return $l(e,{code:Jo.invalid_type,expected:Ac.never,received:e.parsedType}),Ph}};XS.create=r=>new XS({typeName:dh.ZodNever,...p0(r)});var ZO=class extends F0{_parse(r){if(this._getType(r)!==Ac.undefined){const t=this._getOrReturnCtx(r);return $l(t,{code:Jo.invalid_type,expected:Ac.void,received:t.parsedType}),Ph}return T5(r.data)}};ZO.create=r=>new ZO({typeName:dh.ZodVoid,...p0(r)});var bw=class oI extends F0{_parse(e){const{ctx:t,status:n}=this._processInputParams(e),i=this._def;if(t.parsedType!==Ac.array)return $l(t,{code:Jo.invalid_type,expected:Ac.array,received:t.parsedType}),Ph;if(i.exactLength!==null){const o=t.data.length>i.exactLength.value,s=t.data.length<i.exactLength.value;(o||s)&&($l(t,{code:o?Jo.too_big:Jo.too_small,minimum:s?i.exactLength.value:void 0,maximum:o?i.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:i.exactLength.message}),n.dirty())}if(i.minLength!==null&&t.data.length<i.minLength.value&&($l(t,{code:Jo.too_small,minimum:i.minLength.value,type:"array",inclusive:!0,exact:!1,message:i.minLength.message}),n.dirty()),i.maxLength!==null&&t.data.length>i.maxLength.value&&($l(t,{code:Jo.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),n.dirty()),t.common.async)return Promise.all([...t.data].map((o,s)=>i.type._parseAsync(new rS(t,o,t.path,s)))).then(o=>e3.mergeArray(n,o));const a=[...t.data].map((o,s)=>i.type._parseSync(new rS(t,o,t.path,s)));return e3.mergeArray(n,a)}get element(){return this._def.type}min(e,t){return new oI({...this._def,minLength:{value:e,message:Ju.toString(t)}})}max(e,t){return new oI({...this._def,maxLength:{value:e,message:Ju.toString(t)}})}length(e,t){return new oI({...this._def,exactLength:{value:e,message:Ju.toString(t)}})}nonempty(e){return this.min(1,e)}};bw.create=(r,e)=>new bw({type:r,minLength:null,maxLength:null,exactLength:null,typeName:dh.ZodArray,...p0(e)});function MT(r){if(r instanceof q3){const e={};for(const t in r.shape){const n=r.shape[t];e[t]=iS.create(MT(n))}return new q3({...r._def,shape:()=>e})}else return r instanceof bw?new bw({...r._def,type:MT(r.element)}):r instanceof iS?iS.create(MT(r.unwrap())):r instanceof H4?H4.create(MT(r.unwrap())):r instanceof B4?B4.create(r.items.map(e=>MT(e))):r}var q3=class Ab extends F0{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const e=this._def.shape(),t=Tv.objectKeys(e);return this._cached={shape:e,keys:t}}_parse(e){if(this._getType(e)!==Ac.object){const c=this._getOrReturnCtx(e);return $l(c,{code:Jo.invalid_type,expected:Ac.object,received:c.parsedType}),Ph}const{status:n,ctx:i}=this._processInputParams(e),{shape:a,keys:o}=this._getCached(),s=[];if(!(this._def.catchall instanceof XS&&this._def.unknownKeys==="strip"))for(const c in i.data)o.includes(c)||s.push(c);const l=[];for(const c of o){const u=a[c],f=i.data[c];l.push({key:{status:"valid",value:c},value:u._parse(new rS(i,f,i.path,c)),alwaysSet:c in i.data})}if(this._def.catchall instanceof XS){const c=this._def.unknownKeys;if(c==="passthrough")for(const u of s)l.push({key:{status:"valid",value:u},value:{status:"valid",value:i.data[u]}});else if(c==="strict")s.length>0&&($l(i,{code:Jo.unrecognized_keys,keys:s}),n.dirty());else if(c!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const c=this._def.catchall;for(const u of s){const f=i.data[u];l.push({key:{status:"valid",value:u},value:c._parse(new rS(i,f,i.path,u)),alwaysSet:u in i.data})}}return i.common.async?Promise.resolve().then(async()=>{const c=[];for(const u of l){const f=await u.key,y=await u.value;c.push({key:f,value:y,alwaysSet:u.alwaysSet})}return c}).then(c=>e3.mergeObjectSync(n,c)):e3.mergeObjectSync(n,l)}get shape(){return this._def.shape()}strict(e){return Ju.errToObj,new Ab({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(t,n)=>{var i,a,o,s;const l=(o=(a=(i=this._def).errorMap)===null||a===void 0?void 0:a.call(i,t,n).message)!==null&&o!==void 0?o:n.defaultError;return t.code==="unrecognized_keys"?{message:(s=Ju.errToObj(e).message)!==null&&s!==void 0?s:l}:{message:l}}}:{}})}strip(){return new Ab({...this._def,unknownKeys:"strip"})}passthrough(){return new Ab({...this._def,unknownKeys:"passthrough"})}extend(e){return new Ab({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new Ab({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:dh.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new Ab({...this._def,catchall:e})}pick(e){const t={};return Tv.objectKeys(e).forEach(n=>{e[n]&&this.shape[n]&&(t[n]=this.shape[n])}),new Ab({...this._def,shape:()=>t})}omit(e){const t={};return Tv.objectKeys(this.shape).forEach(n=>{e[n]||(t[n]=this.shape[n])}),new Ab({...this._def,shape:()=>t})}deepPartial(){return MT(this)}partial(e){const t={};return Tv.objectKeys(this.shape).forEach(n=>{const i=this.shape[n];e&&!e[n]?t[n]=i:t[n]=i.optional()}),new Ab({...this._def,shape:()=>t})}required(e){const t={};return Tv.objectKeys(this.shape).forEach(n=>{if(e&&!e[n])t[n]=this.shape[n];else{let a=this.shape[n];for(;a instanceof iS;)a=a._def.innerType;t[n]=a}}),new Ab({...this._def,shape:()=>t})}keyof(){return WMe(Tv.objectKeys(this.shape))}};q3.create=(r,e)=>new q3({shape:()=>r,unknownKeys:"strip",catchall:XS.create(),typeName:dh.ZodObject,...p0(e)}),q3.strictCreate=(r,e)=>new q3({shape:()=>r,unknownKeys:"strict",catchall:XS.create(),typeName:dh.ZodObject,...p0(e)}),q3.lazycreate=(r,e)=>new q3({shape:r,unknownKeys:"strip",catchall:XS.create(),typeName:dh.ZodObject,...p0(e)});var wC=class extends F0{_parse(r){const{ctx:e}=this._processInputParams(r),t=this._def.options;function n(i){for(const o of i)if(o.result.status==="valid")return o.result;for(const o of i)if(o.result.status==="dirty")return e.common.issues.push(...o.ctx.common.issues),o.result;const a=i.map(o=>new yb(o.ctx.common.issues));return $l(e,{code:Jo.invalid_union,unionErrors:a}),Ph}if(e.common.async)return Promise.all(t.map(async i=>{const a={...e,common:{...e.common,issues:[]},parent:null};return{result:await i._parseAsync({data:e.data,path:e.path,parent:a}),ctx:a}})).then(n);{let i;const a=[];for(const s of t){const l={...e,common:{...e.common,issues:[]},parent:null},c=s._parseSync({data:e.data,path:e.path,parent:l});if(c.status==="valid")return c;c.status==="dirty"&&!i&&(i={result:c,ctx:l}),l.common.issues.length&&a.push(l.common.issues)}if(i)return e.common.issues.push(...i.ctx.common.issues),i.result;const o=a.map(s=>new yb(s));return $l(e,{code:Jo.invalid_union,unionErrors:o}),Ph}}get options(){return this._def.options}};wC.create=(r,e)=>new wC({options:r,typeName:dh.ZodUnion,...p0(e)});var WS=r=>r instanceof MC?WS(r.schema):r instanceof gb?WS(r.innerType()):r instanceof CC?[r.value]:r instanceof RC?r.options:r instanceof AC?Tv.objectValues(r.enum):r instanceof NC?WS(r._def.innerType):r instanceof SC?[void 0]:r instanceof EC?[null]:r instanceof iS?[void 0,...WS(r.unwrap())]:r instanceof H4?[null,...WS(r.unwrap())]:r instanceof Zee||r instanceof DC?WS(r.unwrap()):r instanceof PC?WS(r._def.innerType):[],qMe=class jze extends F0{_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==Ac.object)return $l(t,{code:Jo.invalid_type,expected:Ac.object,received:t.parsedType}),Ph;const n=this.discriminator,i=t.data[n],a=this.optionsMap.get(i);return a?t.common.async?a._parseAsync({data:t.data,path:t.path,parent:t}):a._parseSync({data:t.data,path:t.path,parent:t}):($l(t,{code:Jo.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),Ph)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,t,n){const i=new Map;for(const a of t){const o=WS(a.shape[e]);if(!o.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(const s of o){if(i.has(s))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(s)}`);i.set(s,a)}}return new jze({typeName:dh.ZodDiscriminatedUnion,discriminator:e,options:t,optionsMap:i,...p0(n)})}};function $ee(r,e){const t=YS(r),n=YS(e);if(r===e)return{valid:!0,data:r};if(t===Ac.object&&n===Ac.object){const i=Tv.objectKeys(e),a=Tv.objectKeys(r).filter(s=>i.indexOf(s)!==-1),o={...r,...e};for(const s of a){const l=$ee(r[s],e[s]);if(!l.valid)return{valid:!1};o[s]=l.data}return{valid:!0,data:o}}else if(t===Ac.array&&n===Ac.array){if(r.length!==e.length)return{valid:!1};const i=[];for(let a=0;a<r.length;a++){const o=r[a],s=e[a],l=$ee(o,s);if(!l.valid)return{valid:!1};i.push(l.data)}return{valid:!0,data:i}}else return t===Ac.date&&n===Ac.date&&+r==+e?{valid:!0,data:r}:{valid:!1}}var TC=class extends F0{_parse(r){const{status:e,ctx:t}=this._processInputParams(r),n=(i,a)=>{if(Yee(i)||Yee(a))return Ph;const o=$ee(i.value,a.value);return o.valid?((Xee(i)||Xee(a))&&e.dirty(),{status:e.value,value:o.data}):($l(t,{code:Jo.invalid_intersection_types}),Ph)};return t.common.async?Promise.all([this._def.left._parseAsync({data:t.data,path:t.path,parent:t}),this._def.right._parseAsync({data:t.data,path:t.path,parent:t})]).then(([i,a])=>n(i,a)):n(this._def.left._parseSync({data:t.data,path:t.path,parent:t}),this._def.right._parseSync({data:t.data,path:t.path,parent:t}))}};TC.create=(r,e,t)=>new TC({left:r,right:e,typeName:dh.ZodIntersection,...p0(t)});var B4=class Vze extends F0{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==Ac.array)return $l(n,{code:Jo.invalid_type,expected:Ac.array,received:n.parsedType}),Ph;if(n.data.length<this._def.items.length)return $l(n,{code:Jo.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),Ph;!this._def.rest&&n.data.length>this._def.items.length&&($l(n,{code:Jo.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t.dirty());const a=[...n.data].map((o,s)=>{const l=this._def.items[s]||this._def.rest;return l?l._parse(new rS(n,o,n.path,s)):null}).filter(o=>!!o);return n.common.async?Promise.all(a).then(o=>e3.mergeArray(t,o)):e3.mergeArray(t,a)}get items(){return this._def.items}rest(e){return new Vze({...this._def,rest:e})}};B4.create=(r,e)=>{if(!Array.isArray(r))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new B4({items:r,typeName:dh.ZodTuple,rest:null,...p0(e)})};var YMe=class Oie extends F0{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==Ac.object)return $l(n,{code:Jo.invalid_type,expected:Ac.object,received:n.parsedType}),Ph;const i=[],a=this._def.keyType,o=this._def.valueType;for(const s in n.data)i.push({key:a._parse(new rS(n,s,n.path,s)),value:o._parse(new rS(n,n.data[s],n.path,s)),alwaysSet:s in n.data});return n.common.async?e3.mergeObjectAsync(t,i):e3.mergeObjectSync(t,i)}get element(){return this._def.valueType}static create(e,t,n){return t instanceof F0?new Oie({keyType:e,valueType:t,typeName:dh.ZodRecord,...p0(n)}):new Oie({keyType:wT.create(),valueType:e,typeName:dh.ZodRecord,...p0(t)})}},QO=class extends F0{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(r){const{status:e,ctx:t}=this._processInputParams(r);if(t.parsedType!==Ac.map)return $l(t,{code:Jo.invalid_type,expected:Ac.map,received:t.parsedType}),Ph;const n=this._def.keyType,i=this._def.valueType,a=[...t.data.entries()].map(([o,s],l)=>({key:n._parse(new rS(t,o,t.path,[l,"key"])),value:i._parse(new rS(t,s,t.path,[l,"value"]))}));if(t.common.async){const o=new Map;return Promise.resolve().then(async()=>{for(const s of a){const l=await s.key,c=await s.value;if(l.status==="aborted"||c.status==="aborted")return Ph;(l.status==="dirty"||c.status==="dirty")&&e.dirty(),o.set(l.value,c.value)}return{status:e.value,value:o}})}else{const o=new Map;for(const s of a){const l=s.key,c=s.value;if(l.status==="aborted"||c.status==="aborted")return Ph;(l.status==="dirty"||c.status==="dirty")&&e.dirty(),o.set(l.value,c.value)}return{status:e.value,value:o}}}};QO.create=(r,e,t)=>new QO({valueType:e,keyType:r,typeName:dh.ZodMap,...p0(t)});var KO=class zie extends F0{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==Ac.set)return $l(n,{code:Jo.invalid_type,expected:Ac.set,received:n.parsedType}),Ph;const i=this._def;i.minSize!==null&&n.data.size<i.minSize.value&&($l(n,{code:Jo.too_small,minimum:i.minSize.value,type:"set",inclusive:!0,exact:!1,message:i.minSize.message}),t.dirty()),i.maxSize!==null&&n.data.size>i.maxSize.value&&($l(n,{code:Jo.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),t.dirty());const a=this._def.valueType;function o(l){const c=new Set;for(const u of l){if(u.status==="aborted")return Ph;u.status==="dirty"&&t.dirty(),c.add(u.value)}return{status:t.value,value:c}}const s=[...n.data.values()].map((l,c)=>a._parse(new rS(n,l,n.path,c)));return n.common.async?Promise.all(s).then(l=>o(l)):o(s)}min(e,t){return new zie({...this._def,minSize:{value:e,message:Ju.toString(t)}})}max(e,t){return new zie({...this._def,maxSize:{value:e,message:Ju.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}};KO.create=(r,e)=>new KO({valueType:r,minSize:null,maxSize:null,typeName:dh.ZodSet,...p0(e)});var XMe=class sI extends F0{constructor(){super(...arguments),this.validate=this.implement}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==Ac.function)return $l(t,{code:Jo.invalid_type,expected:Ac.function,received:t.parsedType}),Ph;function n(s,l){return XO({data:s,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,YO(),ST].filter(c=>!!c),issueData:{code:Jo.invalid_arguments,argumentsError:l}})}function i(s,l){return XO({data:s,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,YO(),ST].filter(c=>!!c),issueData:{code:Jo.invalid_return_type,returnTypeError:l}})}const a={errorMap:t.common.contextualErrorMap},o=t.data;if(this._def.returns instanceof CT){const s=this;return T5(async function(...l){const c=new yb([]),u=await s._def.args.parseAsync(l,a).catch(_=>{throw c.addIssue(n(l,_)),c}),f=await Reflect.apply(o,this,u);return await s._def.returns._def.type.parseAsync(f,a).catch(_=>{throw c.addIssue(i(f,_)),c})})}else{const s=this;return T5(function(...l){const c=s._def.args.safeParse(l,a);if(!c.success)throw new yb([n(l,c.error)]);const u=Reflect.apply(o,this,c.data),f=s._def.returns.safeParse(u,a);if(!f.success)throw new yb([i(u,f.error)]);return f.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new sI({...this._def,args:B4.create(e).rest(xw.create())})}returns(e){return new sI({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,t,n){return new sI({args:e||B4.create([]).rest(xw.create()),returns:t||xw.create(),typeName:dh.ZodFunction,...p0(n)})}},MC=class extends F0{get schema(){return this._def.getter()}_parse(r){const{ctx:e}=this._processInputParams(r);return this._def.getter()._parse({data:e.data,path:e.path,parent:e})}};MC.create=(r,e)=>new MC({getter:r,typeName:dh.ZodLazy,...p0(e)});var CC=class extends F0{_parse(r){if(r.data!==this._def.value){const e=this._getOrReturnCtx(r);return $l(e,{received:e.data,code:Jo.invalid_literal,expected:this._def.value}),Ph}return{status:"valid",value:r.data}}get value(){return this._def.value}};CC.create=(r,e)=>new CC({value:r,typeName:dh.ZodLiteral,...p0(e)});function WMe(r,e){return new RC({values:r,typeName:dh.ZodEnum,...p0(e)})}var RC=class Uie extends F0{constructor(){super(...arguments),vC.set(this,void 0)}_parse(e){if(typeof e.data!="string"){const t=this._getOrReturnCtx(e),n=this._def.values;return $l(t,{expected:Tv.joinValues(n),received:t.parsedType,code:Jo.invalid_type}),Ph}if(WO(this,vC)||BMe(this,vC,new Set(this._def.values)),!WO(this,vC).has(e.data)){const t=this._getOrReturnCtx(e),n=this._def.values;return $l(t,{received:t.data,code:Jo.invalid_enum_value,options:n}),Ph}return T5(e.data)}get options(){return this._def.values}get enum(){const e={};for(const t of this._def.values)e[t]=t;return e}get Values(){const e={};for(const t of this._def.values)e[t]=t;return e}get Enum(){const e={};for(const t of this._def.values)e[t]=t;return e}extract(e,t=this._def){return Uie.create(e,{...this._def,...t})}exclude(e,t=this._def){return Uie.create(this.options.filter(n=>!e.includes(n)),{...this._def,...t})}};vC=new WeakMap,RC.create=WMe;var AC=class extends F0{constructor(){super(...arguments),yC.set(this,void 0)}_parse(r){const e=Tv.getValidEnumValues(this._def.values),t=this._getOrReturnCtx(r);if(t.parsedType!==Ac.string&&t.parsedType!==Ac.number){const n=Tv.objectValues(e);return $l(t,{expected:Tv.joinValues(n),received:t.parsedType,code:Jo.invalid_type}),Ph}if(WO(this,yC)||BMe(this,yC,new Set(Tv.getValidEnumValues(this._def.values))),!WO(this,yC).has(r.data)){const n=Tv.objectValues(e);return $l(t,{received:t.data,code:Jo.invalid_enum_value,options:n}),Ph}return T5(r.data)}get enum(){return this._def.values}};yC=new WeakMap,AC.create=(r,e)=>new AC({values:r,typeName:dh.ZodNativeEnum,...p0(e)});var CT=class extends F0{unwrap(){return this._def.type}_parse(r){const{ctx:e}=this._processInputParams(r);if(e.parsedType!==Ac.promise&&e.common.async===!1)return $l(e,{code:Jo.invalid_type,expected:Ac.promise,received:e.parsedType}),Ph;const t=e.parsedType===Ac.promise?e.data:Promise.resolve(e.data);return T5(t.then(n=>this._def.type.parseAsync(n,{path:e.path,errorMap:e.common.contextualErrorMap})))}};CT.create=(r,e)=>new CT({type:r,typeName:dh.ZodPromise,...p0(e)});var gb=class extends F0{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===dh.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(r){const{status:e,ctx:t}=this._processInputParams(r),n=this._def.effect||null,i={addIssue:a=>{$l(t,a),a.fatal?e.abort():e.dirty()},get path(){return t.path}};if(i.addIssue=i.addIssue.bind(i),n.type==="preprocess"){const a=n.transform(t.data,i);if(t.common.async)return Promise.resolve(a).then(async o=>{if(e.value==="aborted")return Ph;const s=await this._def.schema._parseAsync({data:o,path:t.path,parent:t});return s.status==="aborted"?Ph:s.status==="dirty"||e.value==="dirty"?ET(s.value):s});{if(e.value==="aborted")return Ph;const o=this._def.schema._parseSync({data:a,path:t.path,parent:t});return o.status==="aborted"?Ph:o.status==="dirty"||e.value==="dirty"?ET(o.value):o}}if(n.type==="refinement"){const a=o=>{const s=n.refinement(o,i);if(t.common.async)return Promise.resolve(s);if(s instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return o};if(t.common.async===!1){const o=this._def.schema._parseSync({data:t.data,path:t.path,parent:t});return o.status==="aborted"?Ph:(o.status==="dirty"&&e.dirty(),a(o.value),{status:e.value,value:o.value})}else return this._def.schema._parseAsync({data:t.data,path:t.path,parent:t}).then(o=>o.status==="aborted"?Ph:(o.status==="dirty"&&e.dirty(),a(o.value).then(()=>({status:e.value,value:o.value}))))}if(n.type==="transform")if(t.common.async===!1){const a=this._def.schema._parseSync({data:t.data,path:t.path,parent:t});if(!_w(a))return a;const o=n.transform(a.value,i);if(o instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:e.value,value:o}}else return this._def.schema._parseAsync({data:t.data,path:t.path,parent:t}).then(a=>_w(a)?Promise.resolve(n.transform(a.value,i)).then(o=>({status:e.value,value:o})):a);Tv.assertNever(n)}};gb.create=(r,e,t)=>new gb({schema:r,typeName:dh.ZodEffects,effect:e,...p0(t)}),gb.createWithPreprocess=(r,e,t)=>new gb({schema:e,effect:{type:"preprocess",transform:r},typeName:dh.ZodEffects,...p0(t)});var iS=class extends F0{_parse(r){return this._getType(r)===Ac.undefined?T5(void 0):this._def.innerType._parse(r)}unwrap(){return this._def.innerType}};iS.create=(r,e)=>new iS({innerType:r,typeName:dh.ZodOptional,...p0(e)});var H4=class extends F0{_parse(r){return this._getType(r)===Ac.null?T5(null):this._def.innerType._parse(r)}unwrap(){return this._def.innerType}};H4.create=(r,e)=>new H4({innerType:r,typeName:dh.ZodNullable,...p0(e)});var NC=class extends F0{_parse(r){const{ctx:e}=this._processInputParams(r);let t=e.data;return e.parsedType===Ac.undefined&&(t=this._def.defaultValue()),this._def.innerType._parse({data:t,path:e.path,parent:e})}removeDefault(){return this._def.innerType}};NC.create=(r,e)=>new NC({innerType:r,typeName:dh.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...p0(e)});var PC=class extends F0{_parse(r){const{ctx:e}=this._processInputParams(r),t={...e,common:{...e.common,issues:[]}},n=this._def.innerType._parse({data:t.data,path:t.path,parent:{...t}});return mC(n)?n.then(i=>({status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new yb(t.common.issues)},input:t.data})})):{status:"valid",value:n.status==="valid"?n.value:this._def.catchValue({get error(){return new yb(t.common.issues)},input:t.data})}}removeCatch(){return this._def.innerType}};PC.create=(r,e)=>new PC({innerType:r,typeName:dh.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...p0(e)});var JO=class extends F0{_parse(r){if(this._getType(r)!==Ac.nan){const t=this._getOrReturnCtx(r);return $l(t,{code:Jo.invalid_type,expected:Ac.nan,received:t.parsedType}),Ph}return{status:"valid",value:r.data}}};JO.create=r=>new JO({typeName:dh.ZodNaN,...p0(r)});var P4t=Symbol("zod_brand"),Zee=class extends F0{_parse(r){const{ctx:e}=this._processInputParams(r),t=e.data;return this._def.type._parse({data:t,path:e.path,parent:e})}unwrap(){return this._def.type}},Qee=class Gze extends F0{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{const a=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return a.status==="aborted"?Ph:a.status==="dirty"?(t.dirty(),ET(a.value)):this._def.out._parseAsync({data:a.value,path:n.path,parent:n})})();{const i=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?Ph:i.status==="dirty"?(t.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:n.path,parent:n})}}static create(e,t){return new Gze({in:e,out:t,typeName:dh.ZodPipeline})}},DC=class extends F0{_parse(r){const e=this._def.innerType._parse(r),t=n=>(_w(n)&&(n.value=Object.freeze(n.value)),n);return mC(e)?e.then(n=>t(n)):t(e)}unwrap(){return this._def.innerType}};DC.create=(r,e)=>new DC({innerType:r,typeName:dh.ZodReadonly,...p0(e)});function $Me(r,e){const t=typeof r=="function"?r(e):typeof r=="string"?{message:r}:r;return typeof t=="string"?{message:t}:t}function ZMe(r,e={},t){return r?TT.create().superRefine((n,i)=>{var a,o;const s=r(n);if(s instanceof Promise)return s.then(l=>{var c,u;if(!l){const f=$Me(e,n),y=(u=(c=f.fatal)!==null&&c!==void 0?c:t)!==null&&u!==void 0?u:!0;i.addIssue({code:"custom",...f,fatal:y})}});if(!s){const l=$Me(e,n),c=(o=(a=l.fatal)!==null&&a!==void 0?a:t)!==null&&o!==void 0?o:!0;i.addIssue({code:"custom",...l,fatal:c})}}):TT.create()}var D4t={object:q3.lazycreate},dh;(function(r){r.ZodString="ZodString",r.ZodNumber="ZodNumber",r.ZodNaN="ZodNaN",r.ZodBigInt="ZodBigInt",r.ZodBoolean="ZodBoolean",r.ZodDate="ZodDate",r.ZodSymbol="ZodSymbol",r.ZodUndefined="ZodUndefined",r.ZodNull="ZodNull",r.ZodAny="ZodAny",r.ZodUnknown="ZodUnknown",r.ZodNever="ZodNever",r.ZodVoid="ZodVoid",r.ZodArray="ZodArray",r.ZodObject="ZodObject",r.ZodUnion="ZodUnion",r.ZodDiscriminatedUnion="ZodDiscriminatedUnion",r.ZodIntersection="ZodIntersection",r.ZodTuple="ZodTuple",r.ZodRecord="ZodRecord",r.ZodMap="ZodMap",r.ZodSet="ZodSet",r.ZodFunction="ZodFunction",r.ZodLazy="ZodLazy",r.ZodLiteral="ZodLiteral",r.ZodEnum="ZodEnum",r.ZodEffects="ZodEffects",r.ZodNativeEnum="ZodNativeEnum",r.ZodOptional="ZodOptional",r.ZodNullable="ZodNullable",r.ZodDefault="ZodDefault",r.ZodCatch="ZodCatch",r.ZodPromise="ZodPromise",r.ZodBranded="ZodBranded",r.ZodPipeline="ZodPipeline",r.ZodReadonly="ZodReadonly"})(dh||(dh={}));var L4t=(r,e={message:`Input not instance of ${r.name}`})=>ZMe(t=>t instanceof r,e),QMe=wT.create,KMe=gC.create,O4t=JO.create,z4t=_C.create,JMe=xC.create,U4t=bC.create,I4t=$O.create,k4t=SC.create,F4t=EC.create,B4t=TT.create,H4t=xw.create,j4t=XS.create,V4t=ZO.create,G4t=bw.create,q4t=q3.create,Y4t=q3.strictCreate,X4t=wC.create,W4t=qMe.create,$4t=TC.create,Z4t=B4.create,Q4t=YMe.create,K4t=QO.create,J4t=KO.create,eEt=XMe.create,tEt=MC.create,nEt=CC.create,rEt=RC.create,iEt=AC.create,aEt=CT.create,e7e=gb.create,oEt=iS.create,sEt=H4.create,lEt=gb.createWithPreprocess,cEt=Qee.create,uEt=()=>QMe().optional(),fEt=()=>KMe().optional(),dEt=()=>JMe().optional(),hEt={string:r=>wT.create({...r,coerce:!0}),number:r=>gC.create({...r,coerce:!0}),boolean:r=>xC.create({...r,coerce:!0}),bigint:r=>_C.create({...r,coerce:!0}),date:r=>bC.create({...r,coerce:!0})},pEt=Ph,xt=Object.freeze({__proto__:null,defaultErrorMap:ST,setErrorMap:l4t,getErrorMap:YO,makeIssue:XO,EMPTY_PATH:c4t,addIssueToContext:$l,ParseStatus:e3,INVALID:Ph,DIRTY:ET,OK:T5,isAborted:Yee,isDirty:Xee,isValid:_w,isAsync:mC,get util(){return Tv},get objectUtil(){return qee},ZodParsedType:Ac,getParsedType:YS,ZodType:F0,datetimeRegex:GMe,ZodString:wT,ZodNumber:gC,ZodBigInt:_C,ZodBoolean:xC,ZodDate:bC,ZodSymbol:$O,ZodUndefined:SC,ZodNull:EC,ZodAny:TT,ZodUnknown:xw,ZodNever:XS,ZodVoid:ZO,ZodArray:bw,ZodObject:q3,ZodUnion:wC,ZodDiscriminatedUnion:qMe,ZodIntersection:TC,ZodTuple:B4,ZodRecord:YMe,ZodMap:QO,ZodSet:KO,ZodFunction:XMe,ZodLazy:MC,ZodLiteral:CC,ZodEnum:RC,ZodNativeEnum:AC,ZodPromise:CT,ZodEffects:gb,ZodTransformer:gb,ZodOptional:iS,ZodNullable:H4,ZodDefault:NC,ZodCatch:PC,ZodNaN:JO,BRAND:P4t,ZodBranded:Zee,ZodPipeline:Qee,ZodReadonly:DC,custom:ZMe,Schema:F0,ZodSchema:F0,late:D4t,get ZodFirstPartyTypeKind(){return dh},coerce:hEt,any:B4t,array:G4t,bigint:z4t,boolean:JMe,date:U4t,discriminatedUnion:W4t,effect:e7e,enum:rEt,function:eEt,instanceof:L4t,intersection:$4t,lazy:tEt,literal:nEt,map:K4t,nan:O4t,nativeEnum:iEt,never:j4t,null:F4t,nullable:sEt,number:KMe,object:q4t,oboolean:dEt,onumber:fEt,optional:oEt,ostring:uEt,pipeline:cEt,preprocess:lEt,promise:aEt,record:Q4t,set:J4t,strictObject:Y4t,string:QMe,symbol:I4t,transformer:e7e,tuple:Z4t,undefined:k4t,union:X4t,unknown:H4t,void:V4t,NEVER:pEt,ZodIssueCode:Jo,quotelessJson:s4t,ZodError:yb}),mEt="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",vEt=(r=21)=>{let e="",t=crypto.getRandomValues(new Uint8Array(r|=0));for(;r--;)e+=mEt[t[r]&63];return e},t7e={Hz:{baseUnit:"Hz",variants:{MHz:1e6,kHz:1e3,Hz:1}},g:{baseUnit:"g",variants:{kg:1e3,g:1}},Ω:{baseUnit:"Ω",variants:{mΩ:.001,Ω:1,kΩ:1e3,KΩ:1e3,kohm:1e3,MΩ:1e6,GΩ:1e9,TΩ:1e12}},V:{baseUnit:"V",variants:{mV:.001,V:1,kV:1e3,KV:1e3,MV:1e6,GV:1e9,TV:1e12}},A:{baseUnit:"A",variants:{µA:1e-6,mA:.001,ma:.001,A:1,kA:1e3,MA:1e6}},F:{baseUnit:"F",variants:{pF:1e-12,nF:1e-9,µF:1e-6,uF:1e-6,mF:.001,F:1}},ml:{baseUnit:"ml",variants:{ml:1,mL:1,l:1e3,L:1e3}},deg:{baseUnit:"deg",variants:{rad:180/Math.PI}},ms:{baseUnit:"ms",variants:{s:1e3}},mm:{baseUnit:"mm",variants:{nm:1e-6,µm:.001,um:.001,mm:1,cm:10,dm:100,m:1e3,km:1e6,in:25.4,ft:304.8,IN:25.4,FT:304.8,yd:914.4,mi:1609344,mil:.0254}}},Kee=new Set;for(const[r,e]of Object.entries(t7e)){Kee.add(r);for(const t of Object.keys(e.variants))Kee.add(t)}function yEt(r){for(const[e,t]of Object.entries(t7e))if(r in t.variants)return{baseUnit:t.baseUnit,conversionFactor:t.variants[r]};return{baseUnit:r,conversionFactor:1}}var n7e={tera:1e12,T:1e12,giga:1e9,G:1e9,mega:1e6,M:1e6,kilo:1e3,k:1e3,deci:.1,d:.1,centi:.01,c:.01,milli:.001,m:.001,micro:1e-6,u:1e-6,µ:1e-6,nano:1e-9,n:1e-9,pico:1e-12,p:1e-12},_b=r=>{var s;if(typeof r>"u")return{parsedUnit:null,unitOfValue:null,value:null};if(typeof r=="string"&&r.match(/^-?[\d\.]+$/))return{value:Number.parseFloat(r),parsedUnit:null,unitOfValue:null};if(typeof r=="number")return{value:r,parsedUnit:null,unitOfValue:null};if(typeof r=="object"&&"x"in r&&"y"in r){const{parsedUnit:l,unitOfValue:c}=_b(r.x);return{parsedUnit:l,unitOfValue:c,value:{x:_b(r.x).value,y:_b(r.y).value}}}const t=(s=r.toString().split("").reverse().join("").match(/[^\d\s]+/))==null?void 0:s[0];if(!t)throw new Error(`Could not determine unit: "${r}"`);const n=t.split("").reverse().join(""),i=r.slice(0,-n.length);if(n in n7e&&!Kee.has(n)){const l=n7e[n];return{parsedUnit:null,unitOfValue:null,value:Number.parseFloat(i)*l}}const{baseUnit:a,conversionFactor:o}=yEt(n);return{parsedUnit:n,unitOfValue:a,value:o*Number.parseFloat(i)}},ez=xt.string().or(xt.number()).transform(r=>_b(r).value),Jee=xt.string().or(xt.number()).transform(r=>_b(r).value).transform(r=>Number.parseFloat(r.toPrecision(12))),r7e=xt.string().or(xt.number()).transform(r=>_b(r).value),tz=xt.string().or(xt.number()).transform(r=>_b(r).value),Wg=xt.string().or(xt.number()).transform(r=>_b(r).value),i7e=xt.string().or(xt.number()).transform(r=>_b(r).value),mc=Wg,gEt=xt.string().or(xt.number()).transform(r=>_b(r).value),_Et=xt.string().or(xt.number()).transform(r=>_b(r).value),ete=xt.string().or(xt.number()).transform(r=>typeof r=="number"?r:r.endsWith("deg")?Number.parseFloat(r.split("deg")[0]):r.endsWith("rad")?Number.parseFloat(r.split("rad")[0])*180/Math.PI:Number.parseFloat(r)),a7e=xt.number().or(xt.string().endsWith("mAh")).transform(r=>{if(typeof r=="string"){const e=r.replace("mAh",""),t=Number.parseFloat(e);if(Number.isNaN(t))throw new Error("Invalid capacity");return t}return r}).describe("Battery capacity in mAh"),ig=xt.object({x:mc,y:mc}),xEt=ig,LC=xt.object({x:mc,y:mc,z:mc}),bEt=LC,tte=xt.object({width:xt.number(),height:xt.number()}),Mv=r=>xt.string().optional().default(()=>`${r}_${vEt(10)}`),o7e=xt.enum(["jlcpcb","macrofab","pcbway","digikey","mouser","lcsc"]),s2=xt.object({type:xt.literal("source_component"),ftype:xt.string().optional(),source_component_id:xt.string(),name:xt.string(),manufacturer_part_number:xt.string().optional(),supplier_part_numbers:xt.record(o7e,xt.array(xt.string())).optional(),display_value:xt.string().optional()}),nte=s2.extend({ftype:xt.literal("simple_capacitor"),capacitance:Jee,max_voltage_rating:tz.optional(),display_capacitance:xt.string().optional(),max_decoupling_trace_length:mc.optional()}),rte=s2.extend({ftype:xt.literal("simple_resistor"),resistance:ez,display_resistance:xt.string().optional()}),nz=s2.extend({ftype:xt.literal("simple_diode")}),s7e=s2.extend({ftype:xt.literal("simple_ground")}),ite=s2.extend({ftype:xt.literal("simple_bug")}).describe("@deprecated"),ate=s2.extend({ftype:xt.literal("simple_chip")}),ote=nz.extend({ftype:xt.literal("led")}),ste=s2.extend({ftype:xt.literal("simple_power_source"),voltage:tz}),lte=s2.extend({ftype:xt.literal("simple_battery"),capacity:a7e}),cte=s2.extend({ftype:xt.literal("simple_inductor"),inductance:r7e}),ute=s2.extend({ftype:xt.literal("simple_push_button")}),fte=s2.extend({ftype:xt.literal("simple_potentiometer"),max_resistance:ez}),l7e=s2.extend({ftype:xt.literal("simple_crystal"),frequency:xt.number().describe("Frequency in Hz"),load_capacitance:xt.number().optional().describe("Load capacitance in pF")}),dte=s2.extend({ftype:xt.literal("simple_pin_header"),pin_count:xt.number(),gender:xt.enum(["male","female"]).optional().default("male")}),hte=s2.extend({ftype:xt.literal("simple_resonator"),load_capacitance:Jee,equivalent_series_resistance:ez.optional(),frequency:i7e}),pte=s2.extend({ftype:xt.literal("simple_transistor"),transistor_type:xt.enum(["npn","pnp"])}),mte=s2.extend({ftype:xt.literal("simple_mosfet"),channel_type:xt.enum(["n","p"]),mosfet_mode:xt.enum(["enhancement","depletion"])}),vte=s2.extend({ftype:xt.literal("simple_switch")}),c7e=xt.union([rte,nte,nz,s7e,ate,ite,ote,ste,lte,cte,ute,fte,l7e,dte,hte,vte,pte,mte]),u7e=xt.object({type:xt.literal("source_port"),pin_number:xt.number().optional(),port_hints:xt.array(xt.string()).optional(),name:xt.string(),source_port_id:xt.string(),source_component_id:xt.string(),subcircuit_id:xt.string().optional()}),f7e=xt.object({type:xt.literal("source_trace"),source_trace_id:xt.string(),connected_source_port_ids:xt.array(xt.string()),connected_source_net_ids:xt.array(xt.string()),subcircuit_id:xt.string().optional(),subcircuit_connectivity_map_key:xt.string().optional(),max_length:xt.number().optional(),display_name:xt.string().optional()}),d7e=xt.object({type:xt.literal("source_group"),source_group_id:xt.string(),subcircuit_id:xt.string().optional(),parent_subcircuit_id:xt.string().optional(),is_subcircuit:xt.boolean().optional(),name:xt.string().optional()}),h7e=xt.object({type:xt.literal("source_net"),source_net_id:xt.string(),name:xt.string(),member_source_group_ids:xt.array(xt.string()),is_power:xt.boolean().optional(),is_ground:xt.boolean().optional(),is_digital_signal:xt.boolean().optional(),is_analog_signal:xt.boolean().optional(),trace_width:xt.number().optional(),subcircuit_id:xt.string().optional()}),p7e=xt.object({type:xt.literal("schematic_box"),schematic_component_id:xt.string(),width:mc,height:mc,x:mc,y:mc}).describe("Draws a box on the schematic"),m7e=xt.object({type:xt.literal("schematic_path"),schematic_component_id:xt.string(),fill_color:xt.enum(["red","blue"]).optional(),is_filled:xt.boolean().optional(),points:xt.array(ig)}),v7e=xt.record(xt.object({left_margin:Wg.optional(),right_margin:Wg.optional(),top_margin:Wg.optional(),bottom_margin:Wg.optional()})),y7e=xt.object({left_size:xt.number(),right_size:xt.number(),top_size:xt.number().optional(),bottom_size:xt.number().optional()}),g7e=xt.object({left_side:xt.object({pins:xt.array(xt.number()),direction:xt.enum(["top-to-bottom","bottom-to-top"]).optional()}).optional(),right_side:xt.object({pins:xt.array(xt.number()),direction:xt.enum(["top-to-bottom","bottom-to-top"]).optional()}).optional(),top_side:xt.object({pins:xt.array(xt.number()),direction:xt.enum(["left-to-right","right-to-left"]).optional()}).optional(),bottom_side:xt.object({pins:xt.array(xt.number()),direction:xt.enum(["left-to-right","right-to-left"]).optional()}).optional()}),_7e=xt.union([y7e,g7e]),x7e=xt.object({type:xt.literal("schematic_component"),size:tte,center:ig,source_component_id:xt.string(),schematic_component_id:xt.string(),pin_spacing:Wg.optional(),pin_styles:v7e.optional(),box_width:Wg.optional(),symbol_name:xt.string().optional(),port_arrangement:_7e.optional(),port_labels:xt.record(xt.string()).optional(),symbol_display_value:xt.string().optional()}),b7e=xt.object({type:xt.literal("schematic_line"),schematic_component_id:xt.string(),x1:mc,x2:mc,y1:mc,y2:mc}),S7e=xt.object({type:xt.literal("schematic_trace"),schematic_trace_id:xt.string(),source_trace_id:xt.string(),junctions:xt.array(xt.object({x:xt.number(),y:xt.number()})),edges:xt.array(xt.object({from:xt.object({x:xt.number(),y:xt.number()}),to:xt.object({x:xt.number(),y:xt.number()}),is_crossing:xt.boolean().optional(),from_schematic_port_id:xt.string().optional(),to_schematic_port_id:xt.string().optional()}))}),E7e=xt.object({type:xt.literal("schematic_text"),schematic_component_id:xt.string(),schematic_text_id:xt.string(),text:xt.string(),position:xt.object({x:mc,y:mc}),rotation:xt.number().default(0),anchor:xt.enum(["center","left","right","top","bottom"]).default("center"),color:xt.string().default("#000000")}),w7e=xt.object({type:xt.literal("schematic_port"),schematic_port_id:xt.string(),source_port_id:xt.string(),schematic_component_id:xt.string().optional(),center:ig,facing_direction:xt.enum(["up","down","left","right"]).optional(),distance_from_component_edge:xt.number().optional(),side_of_component:xt.enum(["top","bottom","left","right"]).optional(),true_ccw_index:xt.number().optional(),pin_number:xt.number().optional(),display_pin_label:xt.string().optional()}).describe("Defines a port on a schematic component"),T7e=xt.object({type:xt.literal("schematic_net_label"),source_net_id:xt.string(),center:ig,anchor_position:ig.optional(),anchor_side:xt.enum(["top","bottom","left","right"]),text:xt.string(),symbol_name:xt.string().optional()}),M7e=xt.object({type:xt.literal("schematic_error"),schematic_error_id:xt.string(),error_type:xt.literal("schematic_port_not_found"),message:xt.string()}).describe("Defines a schematic error on the schematic"),rz=xt.object({type:xt.literal("schematic_debug_object"),label:xt.string().optional()}),C7e=rz.extend({shape:xt.literal("rect"),center:ig,size:tte}),R7e=rz.extend({shape:xt.literal("line"),start:ig,end:ig}),A7e=rz.extend({shape:xt.literal("point"),center:ig}),N7e=xt.discriminatedUnion("shape",[C7e,R7e,A7e]),P7e=xt.object({type:xt.literal("schematic_voltage_probe"),schematic_voltage_probe_id:xt.string(),position:ig,schematic_trace_id:xt.string(),voltage:tz.optional()}).describe("Defines a voltage probe measurement point on a schematic trace"),yte=["top","bottom","inner1","inner2","inner3","inner4","inner5","inner6"],gte=xt.enum(yte),c_=gte.or(xt.object({name:gte})).transform(r=>typeof r=="string"?r:r.name),RT=xt.enum(["top","bottom"]),D7e=xt.object({x:mc,y:mc,via:xt.boolean().optional(),via_to_layer:c_.optional()}),SEt=xt.array(D7e),L7e=xt.object({x:mc,y:mc,via:xt.boolean().optional(),to_layer:c_.optional(),trace_width:mc.optional()}),O7e=xt.object({type:xt.literal("pcb_component"),pcb_component_id:Mv("pcb_component"),source_component_id:xt.string(),center:ig,layer:c_,rotation:ete,width:Wg,height:Wg,subcircuit_id:xt.string().optional()}).describe("Defines a component on the PCB"),z7e=xt.object({type:xt.literal("pcb_hole"),pcb_hole_id:Mv("pcb_hole"),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),hole_shape:xt.enum(["circle","square"]),hole_diameter:xt.number(),x:mc,y:mc}),EEt=z7e.describe("Defines a circular or square hole on the PCB"),U7e=xt.object({type:xt.literal("pcb_hole"),pcb_hole_id:Mv("pcb_hole"),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),hole_shape:xt.literal("oval"),hole_width:xt.number(),hole_height:xt.number(),x:mc,y:mc}),wEt=U7e.describe("Defines an oval hole on the PCB"),I7e=z7e.or(U7e),TEt=xt.object({type:xt.literal("pcb_plated_hole"),shape:xt.literal("circle"),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),outer_diameter:xt.number(),hole_diameter:xt.number(),x:mc,y:mc,layers:xt.array(c_),port_hints:xt.array(xt.string()).optional(),pcb_component_id:xt.string().optional(),pcb_port_id:xt.string().optional(),pcb_plated_hole_id:Mv("pcb_plated_hole")}),MEt=xt.object({type:xt.literal("pcb_plated_hole"),shape:xt.enum(["oval","pill"]),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),outer_width:xt.number(),outer_height:xt.number(),hole_width:xt.number(),hole_height:xt.number(),x:mc,y:mc,layers:xt.array(c_),port_hints:xt.array(xt.string()).optional(),pcb_component_id:xt.string().optional(),pcb_port_id:xt.string().optional(),pcb_plated_hole_id:Mv("pcb_plated_hole")}),CEt=xt.object({type:xt.literal("pcb_plated_hole"),shape:xt.literal("circular_hole_with_rect_pad"),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),hole_shape:xt.literal("circle"),pad_shape:xt.literal("rect"),hole_diameter:xt.number(),rect_pad_width:xt.number(),rect_pad_height:xt.number(),x:mc,y:mc,layers:xt.array(c_),port_hints:xt.array(xt.string()).optional(),pcb_component_id:xt.string().optional(),pcb_port_id:xt.string().optional(),pcb_plated_hole_id:Mv("pcb_plated_hole")}),k7e=xt.union([TEt,MEt,CEt]),F7e=xt.object({type:xt.literal("pcb_port"),pcb_port_id:Mv("pcb_port"),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),source_port_id:xt.string(),pcb_component_id:xt.string(),x:mc,y:mc,layers:xt.array(c_)}).describe("Defines a port on the PCB"),REt=xt.object({type:xt.literal("pcb_smtpad"),shape:xt.literal("circle"),pcb_smtpad_id:Mv("pcb_smtpad"),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),x:mc,y:mc,radius:xt.number(),layer:c_,port_hints:xt.array(xt.string()).optional(),pcb_component_id:xt.string().optional(),pcb_port_id:xt.string().optional()}),AEt=xt.object({type:xt.literal("pcb_smtpad"),shape:xt.literal("rect"),pcb_smtpad_id:Mv("pcb_smtpad"),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),x:mc,y:mc,width:xt.number(),height:xt.number(),layer:c_,port_hints:xt.array(xt.string()).optional(),pcb_component_id:xt.string().optional(),pcb_port_id:xt.string().optional()}),NEt=xt.object({type:xt.literal("pcb_smtpad"),shape:xt.literal("rotated_rect"),pcb_smtpad_id:Mv("pcb_smtpad"),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),x:mc,y:mc,width:xt.number(),height:xt.number(),ccw_rotation:ete,layer:c_,port_hints:xt.array(xt.string()).optional(),pcb_component_id:xt.string().optional(),pcb_port_id:xt.string().optional()}),B7e=xt.object({type:xt.literal("pcb_smtpad"),shape:xt.literal("pill"),pcb_smtpad_id:Mv("pcb_smtpad"),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),x:mc,y:mc,width:xt.number(),height:xt.number(),radius:xt.number(),layer:c_,port_hints:xt.array(xt.string()).optional(),pcb_component_id:xt.string().optional(),pcb_port_id:xt.string().optional()}),H7e=xt.union([REt,AEt,NEt,B7e]).describe("Defines an SMT pad on the PCB"),PEt=xt.object({type:xt.literal("pcb_solder_paste"),shape:xt.literal("circle"),pcb_solder_paste_id:Mv("pcb_solder_paste"),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),x:mc,y:mc,radius:xt.number(),layer:c_,pcb_component_id:xt.string().optional(),pcb_smtpad_id:xt.string().optional()}),DEt=xt.object({type:xt.literal("pcb_solder_paste"),shape:xt.literal("rect"),pcb_solder_paste_id:Mv("pcb_solder_paste"),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),x:mc,y:mc,width:xt.number(),height:xt.number(),layer:c_,pcb_component_id:xt.string().optional(),pcb_smtpad_id:xt.string().optional()}),j7e=xt.union([PEt,DEt]).describe("Defines solderpaste on the PCB"),V7e=xt.object({type:xt.literal("pcb_text"),pcb_text_id:Mv("pcb_text"),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),text:xt.string(),center:ig,layer:c_,width:Wg,height:Wg,lines:xt.number(),align:xt.enum(["bottom-left"])}).describe("Defines text on the PCB"),G7e=xt.object({route_type:xt.literal("wire"),x:mc,y:mc,width:mc,start_pcb_port_id:xt.string().optional(),end_pcb_port_id:xt.string().optional(),layer:c_}),q7e=xt.object({route_type:xt.literal("via"),x:mc,y:mc,from_layer:xt.string(),to_layer:xt.string()}),LEt=xt.union([G7e,q7e]),Y7e=xt.object({type:xt.literal("pcb_trace"),source_trace_id:xt.string().optional(),pcb_component_id:xt.string().optional(),pcb_trace_id:Mv("pcb_trace"),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),route_thickness_mode:xt.enum(["constant","interpolated"]).default("constant").optional(),route_order_index:xt.number().optional(),should_round_corners:xt.boolean().optional(),trace_length:xt.number().optional(),route:xt.array(xt.union([xt.object({route_type:xt.literal("wire"),x:mc,y:mc,width:mc,start_pcb_port_id:xt.string().optional(),end_pcb_port_id:xt.string().optional(),layer:c_}),xt.object({route_type:xt.literal("via"),x:mc,y:mc,from_layer:xt.string(),to_layer:xt.string()})]))}).describe("Defines a trace on the PCB"),X7e=xt.object({type:xt.literal("pcb_trace_error"),pcb_trace_error_id:Mv("pcb_trace_error"),error_type:xt.literal("pcb_trace_error"),message:xt.string(),center:ig.optional(),pcb_trace_id:xt.string(),source_trace_id:xt.string(),pcb_component_ids:xt.array(xt.string()),pcb_port_ids:xt.array(xt.string())}).describe("Defines a trace error on the PCB"),W7e=xt.object({type:xt.literal("pcb_port_not_matched_error"),pcb_error_id:Mv("pcb_error"),message:xt.string(),pcb_component_ids:xt.array(xt.string())}).describe("Defines a trace error on the PCB where a port is not matched"),$7e=xt.object({type:xt.literal("pcb_via"),pcb_via_id:Mv("pcb_via"),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),x:mc,y:mc,outer_diameter:mc.default("0.6mm"),hole_diameter:mc.default("0.25mm"),from_layer:c_.optional(),to_layer:c_.optional(),layers:xt.array(c_),pcb_trace_id:xt.string().optional()}).describe("Defines a via on the PCB"),Z7e=xt.object({type:xt.literal("pcb_board"),pcb_board_id:Mv("pcb_board"),is_subcircuit:xt.boolean().optional(),subcircuit_id:xt.string().optional(),width:Wg,height:Wg,center:ig,thickness:Wg.optional().default(1.4),num_layers:xt.number().optional().default(4),outline:xt.array(ig).optional()}).describe("Defines the board outline of the PCB"),Q7e=xt.object({type:xt.literal("pcb_placement_error"),pcb_placement_error_id:Mv("pcb_placement_error"),message:xt.string()}).describe("Defines a placement error on the PCB"),K7e=xt.object({type:xt.literal("pcb_trace_hint"),pcb_trace_hint_id:Mv("pcb_trace_hint"),pcb_port_id:xt.string(),pcb_component_id:xt.string(),route:xt.array(L7e)}).describe("A hint that can be used during generation of a PCB trace"),J7e=xt.object({type:xt.literal("pcb_silkscreen_line"),pcb_silkscreen_line_id:Mv("pcb_silkscreen_line"),pcb_component_id:xt.string(),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),stroke_width:mc.default("0.1mm"),x1:mc,y1:mc,x2:mc,y2:mc,layer:RT}).describe("Defines a silkscreen line on the PCB"),eCe=xt.object({type:xt.literal("pcb_silkscreen_path"),pcb_silkscreen_path_id:Mv("pcb_silkscreen_path"),pcb_component_id:xt.string(),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),layer:RT,route:xt.array(ig),stroke_width:Wg}).describe("Defines a silkscreen path on the PCB"),tCe=xt.object({type:xt.literal("pcb_silkscreen_text"),pcb_silkscreen_text_id:Mv("pcb_silkscreen_text"),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),font:xt.literal("tscircuit2024").default("tscircuit2024"),font_size:mc.default("0.2mm"),stroke_width:Wg.optional().default("1mm"),pcb_component_id:xt.string(),text:xt.string(),ccw_rotation:xt.number().optional(),layer:c_,is_mirrored:xt.boolean().default(!1).optional(),anchor_position:ig.default({x:0,y:0}),anchor_alignment:xt.enum(["center","top_left","top_right","bottom_left","bottom_right"]).default("center")}).describe("Defines silkscreen text on the PCB"),nCe=xt.object({type:xt.literal("pcb_silkscreen_rect"),pcb_silkscreen_rect_id:Mv("pcb_silkscreen_rect"),pcb_component_id:xt.string(),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),center:ig,width:Wg,height:Wg,layer:c_,stroke_width:Wg.default("1mm")}).describe("Defines a silkscreen rect on the PCB"),rCe=xt.object({type:xt.literal("pcb_silkscreen_circle"),pcb_silkscreen_circle_id:Mv("pcb_silkscreen_circle"),pcb_component_id:xt.string(),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),center:ig,radius:Wg,layer:RT,stroke_width:Wg.default("1mm")}).describe("Defines a silkscreen circle on the PCB"),iCe=xt.object({type:xt.literal("pcb_silkscreen_oval"),pcb_silkscreen_oval_id:Mv("pcb_silkscreen_oval"),pcb_component_id:xt.string(),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),center:ig,radius_x:mc,radius_y:mc,layer:RT}).describe("Defines a silkscreen oval on the PCB"),aCe=xt.object({type:xt.literal("pcb_fabrication_note_text"),pcb_fabrication_note_text_id:Mv("pcb_fabrication_note_text"),subcircuit_id:xt.string().optional(),pcb_group_id:xt.string().optional(),font:xt.literal("tscircuit2024").default("tscircuit2024"),font_size:mc.default("1mm"),pcb_component_id:xt.string(),text:xt.string(),layer:RT,anchor_position:ig.default({x:0,y:0}),anchor_alignment:xt.enum(["center","top_left","top_right","bottom_left","bottom_right"]).default("center"),color:xt.string().optional()}).describe("Defines a fabrication note in text on the PCB, useful for leaving notes for assemblers or fabricators"),oCe=xt.object({type:xt.literal("pcb_fabrication_note_path"),pcb_fabrication_note_path_id:Mv("pcb_fabrication_note_path"),pcb_component_id:xt.string(),subcircuit_id:xt.string().optional(),layer:c_,route:xt.array(ig),stroke_width:Wg,color:xt.string().optional()}).describe("Defines a fabrication path on the PCB for fabricators or assemblers"),sCe=xt.object({type:xt.literal("pcb_keepout"),shape:xt.literal("rect"),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),center:ig,width:mc,height:mc,pcb_keepout_id:xt.string(),layers:xt.array(xt.string()),description:xt.string().optional()}).or(xt.object({type:xt.literal("pcb_keepout"),shape:xt.literal("circle"),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),center:ig,radius:mc,pcb_keepout_id:xt.string(),layers:xt.array(xt.string()),description:xt.string().optional()})),lCe=xt.object({type:xt.literal("pcb_missing_footprint_error"),pcb_missing_footprint_error_id:Mv("pcb_missing_footprint_error"),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),error_type:xt.literal("pcb_missing_footprint_error"),source_component_id:xt.string(),message:xt.string()}).describe("Defines a missing footprint error on the PCB"),cCe=xt.object({type:xt.literal("pcb_manual_edit_conflict_error"),pcb_error_id:Mv("pcb_manual_edit_conflict_error"),message:xt.string(),pcb_component_id:xt.string(),pcb_group_id:xt.string().optional(),subcircuit_id:xt.string().optional(),source_component_id:xt.string()}).describe("Error emitted when a component has both manual placement and explicit pcbX/pcbY coordinates"),uCe=xt.object({type:xt.literal("pcb_group"),pcb_group_id:Mv("pcb_group"),source_group_id:xt.string(),is_subcircuit:xt.boolean().optional(),subcircuit_id:xt.string().optional(),width:Wg,height:Wg,center:ig,pcb_component_ids:xt.array(xt.string()),name:xt.string().optional(),description:xt.string().optional()}).describe("Defines a group of components on the PCB"),fCe=xt.object({type:xt.literal("pcb_autorouting_error"),pcb_error_id:Mv("pcb_autorouting_error"),message:xt.string()}).describe("The autorouting has failed to route a portion of the board"),dCe=xt.object({type:xt.literal("cad_component"),cad_component_id:xt.string(),pcb_component_id:xt.string(),source_component_id:xt.string(),position:LC,rotation:LC.optional(),size:LC.optional(),layer:c_.optional(),footprinter_string:xt.string().optional(),model_obj_url:xt.string().optional(),model_stl_url:xt.string().optional(),model_3mf_url:xt.string().optional(),model_jscad:xt.any().optional()}).describe("Defines a component on the PCB"),hCe=xt.union([f7e,u7e,c7e,ote,h7e,d7e,ite,ate,nte,nz,rte,ste,lte,cte,dte,hte,vte,pte,mte,fte,ute,O7e,I7e,lCe,cCe,k7e,sCe,F7e,V7e,Y7e,$7e,H7e,j7e,Z7e,uCe,K7e,J7e,eCe,tCe,nCe,rCe,iCe,X7e,Q7e,W7e,oCe,aCe,fCe,p7e,E7e,b7e,x7e,w7e,S7e,m7e,M7e,T7e,N7e,P7e,dCe]),pCe=hCe,_te=(r,e={})=>{let t=r._internal_store;if(!t){t={counts:{}},r._internal_store=t;for(const i of r){const a=i.type,o=i[`${a}_id`];if(!o)continue;const s=Number.parseInt(o.split("_").pop());Number.isNaN(s)||(t.counts[a]=Math.max(t.counts[a]??0,s))}}return new Proxy({},{get:(i,a)=>a==="toArray"?()=>r:{get:o=>r.find(s=>s.type===a&&s[`${a}_id`]===o),getUsing:o=>{const s=Object.keys(o);if(s.length!==1)throw new Error("getUsing requires exactly one key, e.g. { pcb_component_id }");const l=s[0],c=l.replace("_id",""),u=r.find(f=>f.type===c&&f[l]===o[l]);return u?r.find(f=>f.type===a&&f[`${a}_id`]===u[`${a}_id`]):null},getWhere:o=>{const s=Object.keys(o);return r.find(l=>l.type===a&&s.every(c=>l[c]===o[c]))},list:o=>{const s=o?Object.keys(o):[];return r.filter(l=>l.type===a&&s.every(c=>l[c]===o[c]))},insert:o=>{var c;(c=t.counts)[a]??(c[a]=-1),t.counts[a]++;const s=t.counts[a],l={type:a,[`${a}_id`]:`${a}_${s}`,...o};return e.validateInserts&&(kMe[a]??pCe).parse(l),r.push(l),l},delete:o=>{const s=r.find(l=>l[`${a}_id`]===o);s&&r.splice(r.indexOf(s),1)},update:(o,s)=>{const l=r.find(c=>c.type===a&&c[`${a}_id`]===o);if(l)return Object.assign(l,s),l},select:o=>{if(a==="source_component")return r.find(s=>s.type==="source_component"&&s.name===o.replace(/\./g,""));if(a==="pcb_port"||a==="source_port"||a==="schematic_port"){const[s,l]=o.replace(/\./g,"").split(/[\s\>]+/),c=r.find(f=>f.type==="source_component"&&f.name===s);if(!c)return null;const u=r.find(f=>f.type==="source_port"&&f.source_component_id===c.source_component_id&&(f.name===l||(f.port_hints??[]).includes(l)));if(!u)return null;if(a==="source_port")return u;if(a==="pcb_port")return r.find(f=>f.type==="pcb_port"&&f.source_port_id===u.source_port_id);if(a==="schematic_port")return r.find(f=>f.type==="schematic_port"&&f.source_port_id===u.source_port_id)}}}})};_te.unparsed=_te;var Sw=_te,OEt=(r,e)=>{if(r.type==="pcb_plated_hole"||r.type==="pcb_hole"||r.type==="pcb_via"||r.type==="pcb_smtpad"||r.type==="pcb_port"){const{x:t,y:n}=ai(e,{x:r.x,y:r.y});r.x=t,r.y=n}else if(r.type==="pcb_keepout"||r.type==="pcb_board")r.center=ai(e,r.center);else if(r.type==="pcb_silkscreen_text"||r.type==="pcb_fabrication_note_text")r.anchor_position=ai(e,r.anchor_position);else if(r.type==="pcb_silkscreen_circle"||r.type==="pcb_silkscreen_rect"||r.type==="pcb_component")r.center=ai(e,r.center);else if(r.type==="pcb_silkscreen_path"||r.type==="pcb_trace"||r.type==="pcb_fabrication_note_path")r.route=r.route.map(t=>{const n=ai(e,t);return t.x=n.x,t.y=n.y,t});else if(r.type==="pcb_silkscreen_line"){const t={x:r.x1,y:r.y1},n={x:r.x2,y:r.y2},i=ai(e,t),a=ai(e,n);r.x1=i.x,r.y1=i.y,r.x2=a.x,r.y2=a.y}else if(r.type==="cad_component"){const t=ai(e,{x:r.position.x,y:r.position.y});r.position.x=t.x,r.position.y=t.y}return r};function zEt(r){let e=0;if(r.length==0)return e;for(var t=0;t<r.length;t++){var n=r.charCodeAt(t);e=(e<<5)-e+n,e=e&e}return Math.abs(e)}var mCe=[["#69d2e7","#a7dbd8","#e0e4cc","#f38630","#fa6900"],["#fe4365","#fc9d9a","#f9cdad","#c8c8a9","#83af9b"],["#ecd078","#d95b43","#c02942","#542437","#53777a"],["#556270","#4ecdc4","#c7f464","#ff6b6b","#c44d58"],["#774f38","#e08e79","#f1d4af","#ece5ce","#c5e0dc"],["#e8ddcb","#cdb380","#036564","#033649","#031634"],["#490a3d","#bd1550","#e97f02","#f8ca00","#8a9b0f"],["#594f4f","#547980","#45ada8","#9de0ad","#e5fcc2"],["#00a0b0","#6a4a3c","#cc333f","#eb6841","#edc951"],["#e94e77","#d68189","#c6a49a","#c6e5d9","#f4ead5"],["#3fb8af","#7fc7af","#dad8a7","#ff9e9d","#ff3d7f"],["#d9ceb2","#948c75","#d5ded9","#7a6a53","#99b2b7"],["#ffffff","#cbe86b","#f2e9e1","#1c140d","#cbe86b"],["#efffcd","#dce9be","#555152","#2e2633","#99173c"],["#343838","#005f6b","#008c9e","#00b4cc","#00dffc"],["#413e4a","#73626e","#b38184","#f0b49e","#f7e4be"],["#ff4e50","#fc913a","#f9d423","#ede574","#e1f5c4"],["#99b898","#fecea8","#ff847c","#e84a5f","#2a363b"],["#655643","#80bca3","#f6f7bd","#e6ac27","#bf4d28"],["#00a8c6","#40c0cb","#f9f2e7","#aee239","#8fbe00"],["#351330","#424254","#64908a","#e8caa4","#cc2a41"],["#554236","#f77825","#d3ce3d","#f1efa5","#60b99a"],["#5d4157","#838689","#a8caba","#cad7b2","#ebe3aa"],["#8c2318","#5e8c6a","#88a65e","#bfb35a","#f2c45a"],["#fad089","#ff9c5b","#f5634a","#ed303c","#3b8183"],["#ff4242","#f4fad2","#d4ee5e","#e1edb9","#f0f2eb"],["#f8b195","#f67280","#c06c84","#6c5b7b","#355c7d"],["#d1e751","#ffffff","#000000","#4dbce9","#26ade4"],["#1b676b","#519548","#88c425","#bef202","#eafde6"],["#5e412f","#fcebb6","#78c0a8","#f07818","#f0a830"],["#bcbdac","#cfbe27","#f27435","#f02475","#3b2d38"],["#452632","#91204d","#e4844a","#e8bf56","#e2f7ce"],["#eee6ab","#c5bc8e","#696758","#45484b","#36393b"],["#f0d8a8","#3d1c00","#86b8b1","#f2d694","#fa2a00"],["#2a044a","#0b2e59","#0d6759","#7ab317","#a0c55f"],["#f04155","#ff823a","#f2f26f","#fff7bd","#95cfb7"],["#b9d7d9","#668284","#2a2829","#493736","#7b3b3b"],["#bbbb88","#ccc68d","#eedd99","#eec290","#eeaa88"],["#b3cc57","#ecf081","#ffbe40","#ef746f","#ab3e5b"],["#a3a948","#edb92e","#f85931","#ce1836","#009989"],["#300030","#480048","#601848","#c04848","#f07241"],["#67917a","#170409","#b8af03","#ccbf82","#e33258"],["#aab3ab","#c4cbb7","#ebefc9","#eee0b7","#e8caaf"],["#e8d5b7","#0e2430","#fc3a51","#f5b349","#e8d5b9"],["#ab526b","#bca297","#c5ceae","#f0e2a4","#f4ebc3"],["#607848","#789048","#c0d860","#f0f0d8","#604848"],["#b6d8c0","#c8d9bf","#dadabd","#ecdbbc","#fedcba"],["#a8e6ce","#dcedc2","#ffd3b5","#ffaaa6","#ff8c94"],["#3e4147","#fffedf","#dfba69","#5a2e2e","#2a2c31"],["#fc354c","#29221f","#13747d","#0abfbc","#fcf7c5"],["#cc0c39","#e6781e","#c8cf02","#f8fcc1","#1693a7"],["#1c2130","#028f76","#b3e099","#ffeaad","#d14334"],["#a7c5bd","#e5ddcb","#eb7b59","#cf4647","#524656"],["#dad6ca","#1bb0ce","#4f8699","#6a5e72","#563444"],["#5c323e","#a82743","#e15e32","#c0d23e","#e5f04c"],["#edebe6","#d6e1c7","#94c7b6","#403b33","#d3643b"],["#fdf1cc","#c6d6b8","#987f69","#e3ad40","#fcd036"],["#230f2b","#f21d41","#ebebbc","#bce3c5","#82b3ae"],["#b9d3b0","#81bda4","#b28774","#f88f79","#f6aa93"],["#3a111c","#574951","#83988e","#bcdea5","#e6f9bc"],["#5e3929","#cd8c52","#b7d1a3","#dee8be","#fcf7d3"],["#1c0113","#6b0103","#a30006","#c21a01","#f03c02"],["#000000","#9f111b","#b11623","#292c37","#cccccc"],["#382f32","#ffeaf2","#fcd9e5","#fbc5d8","#f1396d"],["#e3dfba","#c8d6bf","#93ccc6","#6cbdb5","#1a1f1e"],["#f6f6f6","#e8e8e8","#333333","#990100","#b90504"],["#1b325f","#9cc4e4","#e9f2f9","#3a89c9","#f26c4f"],["#a1dbb2","#fee5ad","#faca66","#f7a541","#f45d4c"],["#c1b398","#605951","#fbeec2","#61a6ab","#accec0"],["#5e9fa3","#dcd1b4","#fab87f","#f87e7b","#b05574"],["#951f2b","#f5f4d7","#e0dfb1","#a5a36c","#535233"],["#8dccad","#988864","#fea6a2","#f9d6ac","#ffe9af"],["#2d2d29","#215a6d","#3ca2a2","#92c7a3","#dfece6"],["#413d3d","#040004","#c8ff00","#fa023c","#4b000f"],["#eff3cd","#b2d5ba","#61ada0","#248f8d","#605063"],["#ffefd3","#fffee4","#d0ecea","#9fd6d2","#8b7a5e"],["#cfffdd","#b4dec1","#5c5863","#a85163","#ff1f4c"],["#9dc9ac","#fffec7","#f56218","#ff9d2e","#919167"],["#4e395d","#827085","#8ebe94","#ccfc8e","#dc5b3e"],["#a8a7a7","#cc527a","#e8175d","#474747","#363636"],["#f8edd1","#d88a8a","#474843","#9d9d93","#c5cfc6"],["#046d8b","#309292","#2fb8ac","#93a42a","#ecbe13"],["#f38a8a","#55443d","#a0cab5","#cde9ca","#f1edd0"],["#a70267","#f10c49","#fb6b41","#f6d86b","#339194"],["#ff003c","#ff8a00","#fabe28","#88c100","#00c176"],["#ffedbf","#f7803c","#f54828","#2e0d23","#f8e4c1"],["#4e4d4a","#353432","#94ba65","#2790b0","#2b4e72"],["#0ca5b0","#4e3f30","#fefeeb","#f8f4e4","#a5b3aa"],["#4d3b3b","#de6262","#ffb88c","#ffd0b3","#f5e0d3"],["#fffbb7","#a6f6af","#66b6ab","#5b7c8d","#4f2958"],["#edf6ee","#d1c089","#b3204d","#412e28","#151101"],["#9d7e79","#ccac95","#9a947c","#748b83","#5b756c"],["#fcfef5","#e9ffe1","#cdcfb7","#d6e6c3","#fafbe3"],["#9cddc8","#bfd8ad","#ddd9ab","#f7af63","#633d2e"],["#30261c","#403831","#36544f","#1f5f61","#0b8185"],["#aaff00","#ffaa00","#ff00aa","#aa00ff","#00aaff"],["#d1313d","#e5625c","#f9bf76","#8eb2c5","#615375"],["#ffe181","#eee9e5","#fad3b2","#ffba7f","#ff9c97"],["#73c8a9","#dee1b6","#e1b866","#bd5532","#373b44"],["#805841","#dcf7f3","#fffcdd","#ffd8d8","#f5a2a2"]],UEt=r=>{var s,l,c;let{x:e,y:t,width:n,height:i}={...r,...r.size,...r.center,...r.position};r.x1!==void 0&&r.x2!==void 0&&r.y1!==void 0&&r.y2!==void 0&&(e=(r.x1+r.x2)/2,t=(r.y1+r.y2)/2,n=Math.abs(r.x1-r.x2),i=Math.abs(r.y1-r.y2));const a=r.text||r.name||((s=r.source)==null?void 0:s.text)||((l=r.source)==null?void 0:l.name)||"?",o=r;return e===void 0||t===void 0?null:(n===void 0&&"outer_diameter"in r&&(n=r.outer_diameter,i=r.outer_diameter),(n===void 0||i===void 0)&&(n=.1,i=.1),{x:e,y:t,width:n,height:i,title:a,content:o,bg_color:((c=mCe[zEt(r.type||a)%mCe.length])==null?void 0:c[4])??"#f00"})},IEt=r=>!!r,kEt=r=>{const e=r.filter(c=>c.type.startsWith("pcb_")).concat(r.filter(c=>c.type==="pcb_trace").flatMap(c=>c.route)).map(c=>UEt(c)).filter(IEt);if(e.length===0)return{center:{x:0,y:0},width:0,height:0};let t=e[0].x-e[0].width/2,n=e[0].x+e[0].width/2,i=e[0].y-e[0].height/2,a=e[0].y+e[0].height/2;for(const c of e.slice(1))t=Math.min(t,c.x-c.width/2),n=Math.max(n,c.x+c.width/2),i=Math.min(i,c.y-c.height/2),a=Math.max(a,c.y+c.height/2);const o=n-t,s=a-i;return{center:{x:t+o/2,y:i+s/2},width:o,height:s}},FEt=(r={})=>Fpt(e=>({selected_layer:"top",pcb_viewer_id:`pcb_viewer_${Math.random().toString().slice(2,10)}`,in_edit_mode:!1,in_move_footprint_mode:!1,in_draw_trace_mode:!1,is_moving_component:!1,is_drawing_trace:!1,is_mouse_over_container:!1,is_showing_multiple_traces_length:!1,is_showing_rats_nest:!1,is_showing_autorouting:!0,...r,selectLayer:t=>e({selected_layer:t}),setEditMode:t=>e({in_edit_mode:t!=="off",in_move_footprint_mode:t==="move_footprint",in_draw_trace_mode:t==="draw_trace",is_moving_component:!1,is_drawing_trace:!1}),setIsShowingRatsNest:t=>e({is_showing_rats_nest:t}),setIsMovingComponent:t=>e({is_moving_component:t}),setIsDrawingTrace:t=>e({is_drawing_trace:t}),setIsMouseOverContainer:t=>e({is_mouse_over_container:t}),setIsShowingMultipleTracesLength:t=>e({is_showing_multiple_traces_length:t}),setIsShowingAutorouting:t=>e({is_showing_autorouting:t})})),l2=r=>{const e=wt.useContext(vCe);return Zpt(e,r)},vCe=wt.createContext(null),BEt=({children:r,initialState:e})=>{const t=wt.useMemo(()=>FEt(e),[]);return ft.jsx(vCe.Provider,{value:t,children:r})},HEt=(r,e)=>{if(r.find(n=>n.type==="pcb_trace_hint"&&n.pcb_trace_hint_id===e.pcb_trace_hint_id))r=r.map(n=>n.pcb_trace_hint_id===e.pcb_trace_hint_id?{...n,route:e.route}:n);else{const n=Sw(r).pcb_port.get(e.pcb_port_id);r=r.filter(i=>!(i.type==="pcb_trace_hint"&&i.pcb_port_id===e.pcb_port_id)).concat([{type:"pcb_trace_hint",pcb_trace_hint_id:e.pcb_trace_hint_id,route:e.route,pcb_port_id:e.pcb_port_id,pcb_component_id:n==null?void 0:n.pcb_component_id}])}return r},jEt=(r,e)=>{r=JSON.parse(JSON.stringify(r));for(const t of e)if(t.edit_event_type==="edit_pcb_component_location"){const n=u0(t.new_center.x-t.original_center.x,t.new_center.y-t.original_center.y);r=r.map(i=>i.pcb_component_id!==t.pcb_component_id?i:OEt(i,n))}else t.edit_event_type==="edit_pcb_trace_hint"&&(r=HEt(r,t));return r},VEt=()=>{const r=l2(t=>t.pcb_viewer_id),e=(t,n)=>By(t,{containerId:r,...n});return e.error=(t,n)=>By.error(t,{containerId:r,...n}),e.promise=By.promise,e},GEt=()=>{wt.useEffect(()=>{jbt()},[]);const r=l2(e=>e.pcb_viewer_id);return ft.jsx(Hbt,{position:"top-center",containerId:r})},qEt=function(){},yCe=typeof window<"u",YEt=yCe?wt.useLayoutEffect:wt.useEffect,XEt=YEt,gCe={x:0,y:0,width:0,height:0,top:0,left:0,bottom:0,right:0};function WEt(){var r=wt.useState(null),e=r[0],t=r[1],n=wt.useState(gCe),i=n[0],a=n[1],o=wt.useMemo(function(){return new window.ResizeObserver(function(s){if(s[0]){var l=s[0].contentRect,c=l.x,u=l.y,f=l.width,y=l.height,_=l.top,x=l.left,M=l.bottom,w=l.right;a({x:c,y:u,width:f,height:y,top:_,left:x,bottom:M,right:w})}})},[]);return XEt(function(){if(e)return o.observe(e),function(){o.disconnect()}},[e]),[t,i]}var _Ce=yCe&&typeof window.ResizeObserver<"u"?WEt:function(){return[qEt,gCe]},$Et=(r={})=>{const e=wt.useRef(null),[t,n]=wt.useState(0),i=r.canvasElm??e.current,[a,o]=wt.useState(r.initialTransform??Q_()),[s,l]=wt.useState(0),[c,u]=wt.useReducer(w=>w+1,0),f=wt.useCallback(w=>{r.onSetTransform&&r.onSetTransform(w),r.transform||o(w)},[r.onSetTransform,o]),y=wt.useCallback(w=>{f(w),u()},[f]),_=r.transform??a,x=wt.useCallback(()=>{n(Date.now())},[]);wt.useEffect(()=>{const w=r.canvasElm??e.current;if(w&&!i){l(s+1);return}if(!w){const pe=setTimeout(()=>{l(s+1)},100);return()=>clearTimeout(pe)}let T=r.transform??a,L={x:0,y:0},O={x:0,y:0},B=!1;const W=pe=>({x:pe.pageX-w.getBoundingClientRect().left-window.scrollX,y:pe.pageY-w.getBoundingClientRect().top-window.scrollY});function $(pe){r.enabled!==!1&&(r.shouldDrag&&!r.shouldDrag(pe)||(L=W(pe),!(Date.now()-t<100)&&(B=!0,pe.preventDefault())))}function Q(pe){if(!B||r.enabled===!1||r.shouldDrag&&!r.shouldDrag(pe))return;O=W(pe);const ve=Hd(u0(O.x-L.x,O.y-L.y),T);f(ve),T=ve,B=!1}function te(pe){W(pe),!(!B||r.enabled===!1)&&(r.shouldDrag&&!r.shouldDrag(pe)||(O=W(pe),f(Hd(u0(O.x-L.x,O.y-L.y),T))))}function ae(pe){if(r.enabled===!1||r.shouldDrag&&!r.shouldDrag(pe))return;const ve=W(pe),be=Hd(u0(ve.x,ve.y),n2(1-pe.deltaY/1e3,1-pe.deltaY/1e3),u0(-ve.x,-ve.y),T);f(be),T=be,pe.preventDefault()}function K(pe){if(!B||r.shouldDrag&&!r.shouldDrag(pe))return;if(w){const be=w.getBoundingClientRect();if(pe.clientX>=be.left+10&&pe.clientX<=be.right-10&&pe.clientY>=be.top+10&&pe.clientY<=be.bottom-10)return}B=!1,O=W(pe);const ve=Hd(u0(O.x-L.x,O.y-L.y),T);f(ve),T=ve}return w.addEventListener("mousedown",$),w.addEventListener("mouseup",Q),window.addEventListener("mousemove",te),w.addEventListener("mouseout",K),w.addEventListener("wheel",ae),()=>{w.removeEventListener("mousedown",$),w.removeEventListener("mouseup",Q),window.removeEventListener("mousemove",te),w.removeEventListener("mouseout",K),w.removeEventListener("wheel",ae)}},[i,s,c,t,r.enabled,r.shouldDrag]);const M=wt.useCallback(w=>ai(_,w),[_]);return{ref:e,transform:_,applyTransformToPoint:M,setTransform:y,cancelDrag:x}},ZEt=$Et,c2={board:{anchor:"rgb(255, 38, 226)",aux_items:"rgb(255, 255, 255)",b_adhes:"rgb(0, 0, 132)",b_crtyd:"rgb(255, 38, 226)",b_fab:"rgb(88, 93, 132)",b_mask:"rgba(2, 255, 238, 0.400)",b_paste:"rgb(0, 194, 194)",b_silks:"rgb(94, 153, 230)",background:"rgb(0, 16, 35)",cmts_user:"rgb(89, 148, 220)",copper:{b:"rgb(77, 127, 196)",f:"rgb(200, 52, 52)",in1:"rgb(127, 200, 127)",in10:"rgb(237, 124, 51)",in11:"rgb(91, 195, 235)",in12:"rgb(247, 111, 142)",in13:"rgb(167, 165, 198)",in14:"rgb(40, 204, 217)",in15:"rgb(232, 178, 167)",in16:"rgb(242, 237, 161)",in17:"rgb(237, 124, 51)",in18:"rgb(91, 195, 235)",in19:"rgb(247, 111, 142)",in2:"rgb(206, 125, 44)",in20:"rgb(167, 165, 198)",in21:"rgb(40, 204, 217)",in22:"rgb(232, 178, 167)",in23:"rgb(242, 237, 161)",in24:"rgb(237, 124, 51)",in25:"rgb(91, 195, 235)",in26:"rgb(247, 111, 142)",in27:"rgb(167, 165, 198)",in28:"rgb(40, 204, 217)",in29:"rgb(232, 178, 167)",in3:"rgb(79, 203, 203)",in30:"rgb(242, 237, 161)",in4:"rgb(219, 98, 139)",in5:"rgb(167, 165, 198)",in6:"rgb(40, 204, 217)",in7:"rgb(232, 178, 167)",in8:"rgb(242, 237, 161)",in9:"rgb(141, 203, 129)"},cursor:"rgb(255, 255, 255)",drc:"rgb(194, 194, 194)",drc_error:"rgba(215, 91, 107, 0.800)",drc_exclusion:"rgb(255, 255, 255)",drc_warning:"rgba(255, 208, 66, 0.902)",dwgs_user:"rgb(194, 194, 194)",eco1_user:"rgb(180, 219, 210)",eco2_user:"rgb(216, 200, 82)",edge_cuts:"rgb(208, 210, 205)",f_adhes:"rgb(132, 0, 132)",f_crtyd:"rgb(255, 0, 245)",f_fab:"rgb(175, 175, 175)",f_mask:"rgba(216, 100, 255, 0.400)",f_paste:"rgba(180, 160, 154, 0.902)",f_silks:"rgb(242, 237, 161)",footprint_text_back:"rgb(0, 0, 132)",footprint_text_front:"rgb(194, 194, 194)",footprint_text_invisible:"rgb(132, 132, 132)",grid:"rgb(132, 132, 132)",grid_axes:"rgb(194, 194, 194)",margin:"rgb(255, 38, 226)",microvia:"rgb(0, 132, 132)",no_connect:"rgb(0, 0, 132)",pad_back:"rgb(77, 127, 196)",pad_front:"rgb(200, 52, 52)",pad_plated_hole:"rgb(194, 194, 0)",pad_through_hole:"rgb(227, 183, 46)",plated_hole:"rgb(26, 196, 210)",ratsnest:"rgba(245, 255, 213, 0.702)",select_overlay:"rgb(4, 255, 67)",through_via:"rgb(236, 236, 236)",user_1:"rgb(194, 194, 194)",user_2:"rgb(89, 148, 220)",user_3:"rgb(180, 219, 210)",user_4:"rgb(216, 200, 82)",user_5:"rgb(194, 194, 194)",user_6:"rgb(89, 148, 220)",user_7:"rgb(180, 219, 210)",user_8:"rgb(216, 200, 82)",user_9:"rgb(232, 178, 167)",via_blind_buried:"rgb(187, 151, 38)",via_hole:"rgb(227, 183, 46)",via_micro:"rgb(0, 132, 132)",via_through:"rgb(236, 236, 236)",worksheet:"rgb(200, 114, 171)"}},aS=(r,e=1)=>{if(Math.abs(r.a)!==Math.abs(r.d))throw new Error("Cannot scale non-uniformly");return e*Math.abs(r.a)},Y3={elementOverlay:30,dimensionOverlay:30,editTraceHintOverlay:30,errorOverlay:30,ratsNestOverlay:20,toolbarOverlay:20,topLayer:10},AT={red:"red",black:"black",green:"green",board:"rgb(255, 255, 255)",other:"#eee",top:c2.board.copper.f,inner1:c2.board.copper.in1,inner2:c2.board.copper.in2,inner4:c2.board.copper.in4,inner5:c2.board.copper.in5,inner6:c2.board.copper.in6,inner7:c2.board.copper.in7,inner8:c2.board.copper.in8,bottom:c2.board.copper.b,drill:c2.board.anchor,keepout:c2.board.background,tkeepout:c2.board.b_crtyd,tplace:c2.board.b_silks,top_silkscreen:c2.board.f_silks,bottom_silkscreen:c2.board.b_silks,top_fabrication:c2.board.f_fab,bottom_fabrication:c2.board.b_fab,...c2.board},QEt=["top","top_silkscreen","bottom_silkscreen","bottom","inner1","inner2","inner3","inner4","inner5","inner6"],KEt=class{constructor(r){rn(this,"canvasLayerMap");rn(this,"ctxLayerMap");rn(this,"aperture");rn(this,"transform");rn(this,"foregroundLayer","top");rn(this,"lastPoint");this.canvasLayerMap=r,this.ctxLayerMap=Object.fromEntries(Object.entries(r).map(([e,t])=>[e,t.getContext("2d")])),this.transform=Q_(),this.transform.d*=-1,this.transform=Hd(this.transform,u0(0,-500)),this.lastPoint={x:0,y:0},this.equip({})}clear(){for(const r of Object.values(this.ctxLayerMap))r.clearRect(0,0,r.canvas.width,r.canvas.height)}equip(r){this.aperture={fontSize:0,shape:"circle",mode:"add",size:0,color:"red",layer:"top",opacity:this.foregroundLayer===r.color?1:.5,...r}}drawMeshPattern(r,e,t,n,i,a=45){const o=this.getLayerCtx(),[s,l]=ai(this.transform,[r,e]),[c,u]=ai(this.transform,[r+t,e+n]),f=aS(this.transform,i);o.lineWidth=1,o.strokeStyle=this.aperture.color;const y=_=>{const x=Math.sin(_),M=Math.cos(_),w=Math.sqrt(Math.pow(c-s,2)+Math.pow(u-l,2));for(let T=-w;T<=w;T+=f)o.beginPath(),o.moveTo(s+T*M-w*x,l+T*x+w*M),o.lineTo(s+T*M+w*x,l+T*x-w*M),o.stroke()};y(a*Math.PI/180),y((a+90)*Math.PI/180)}rect(r,e,t,n,i){const[a,o]=ai(this.transform,[r-t/2,e-n/2]),[s,l]=ai(this.transform,[r+t/2,e+n/2]);this.applyAperture();const c=this.getLayerCtx();i?(c.save(),c.beginPath(),c.rect(a,o,s-a,l-o),c.clip(),this.drawMeshPattern(r-t/2,e-n/2,t,n,.15),c.restore(),c.strokeRect(a,o,s-a,l-o)):c.fillRect(a,o,s-a,l-o)}rotatedRect(r,e,t,n,i,a){const o=this.getLayerCtx();this.applyAperture();const[s,l]=ai(this.transform,[r-t/2,e-n/2]),[c,u]=ai(this.transform,[r+t/2,e+n/2]);o.save();const[f,y]=ai(this.transform,[r,e]);o.translate(f,y);const _=360-i;i&&o.rotate(_*Math.PI/180),o.translate(-f,-y),a?(o.beginPath(),o.rect(s,l,c-s,u-l),o.clip(),this.drawMeshPattern(r-t/2,e-n/2,t,n,.15),o.strokeRect(s,l,c-s,u-l)):o.fillRect(s,l,c-s,u-l),o.restore()}circle(r,e,t,n){const i=aS(this.transform,t),[a,o]=ai(this.transform,[r,e]);this.applyAperture();const s=this.getLayerCtx();n?(s.save(),s.beginPath(),s.arc(a,o,i,0,2*Math.PI),s.clip(),this.drawMeshPattern(r-t,e-t,t*2,t*2,.15),s.restore(),s.beginPath(),s.arc(a,o,i,0,2*Math.PI),s.stroke()):(s.beginPath(),s.arc(a,o,i,0,2*Math.PI),s.fill())}oval(r,e,t,n){const i=aS(this.transform,t),a=aS(this.transform,n),[o,s]=ai(this.transform,[r,e]);this.applyAperture();const l=this.getLayerCtx();l.beginPath(),l.ellipse(o,s,i,a,0,0,2*Math.PI),l.fill(),l.closePath()}pill(r,e,t,n){const[i,a]=ai(this.transform,[r-t/2,e+n/2]),o=aS(this.transform,t),s=aS(this.transform,n),l=Math.min(o,s)/2;this.applyAperture();const c=this.getLayerCtx();c.beginPath(),c.arc(i+l,a+l,l,Math.PI,Math.PI*1.5),c.arc(i+o-l,a+l,l,Math.PI*1.5,0),c.arc(i+o-l,a+s-l,l,0,Math.PI*.5),c.arc(i+l,a+s-l,l,Math.PI*.5,Math.PI),c.fill(),c.closePath()}polygon(r){if(r.length<3)return;this.applyAperture();const e=this.getLayerCtx(),t=r.map(i=>ai(this.transform,[i.x,i.y]));e.beginPath(),e.moveTo(t[0][0],t[0][1]);for(let i=1;i<t.length;i++)e.lineTo(t[i][0],t[i][1]);e.closePath(),e.fill();const n=aS(this.transform,this.aperture.size);e.lineWidth=n,e.stroke()}debugText(r,e,t){const[n,i]=ai(this.transform,[e,t]);this.applyAperture();const a=this.getLayerCtx();a.font="10px sans-serif",a.fillText(r,n,i)}getLayerCtx(){const r=this.ctxLayerMap[this.aperture.layer];if(!r)throw new Error(`No context for layer "${this.aperture.layer}"`);return r}orderAndFadeLayers(){const{canvasLayerMap:r,foregroundLayer:e}=this,t=new Set([e,"drill","other","board",e==="top"?"top_silkscreen":e==="bottom"?"bottom_silkscreen":""]);["drill","board",e,...QEt.filter(i=>i!==e)].forEach((i,a)=>{const o=r[i];o&&(i==="bottom_silkscreen"&&e==="bottom"||i==="top_silkscreen"&&e==="top"?o.style.zIndex=`${Y3.topLayer}`:o.style.zIndex=`${Y3.topLayer-a}`,o.style.opacity=t.has(i)?"1":"0.5")})}applyAperture(){const{transform:r,aperture:e}=this;let{size:t,mode:n,color:i,fontSize:a,layer:o}=e;o in this.ctxLayerMap||(this.aperture.layer="other");const s=this.getLayerCtx();if(!s)throw new Error(`No context for layer "${this.foregroundLayer}"`);if(i||(i="undefined"),s.lineWidth=aS(r,t),s.lineCap="round",n==="add"){let l=(i==null?void 0:i[0])==="#"||i!=null&&i.startsWith("rgb")?i:AT[i==null?void 0:i.toLowerCase()]?AT[i==null?void 0:i.toLowerCase()]:null;l===null&&(console.warn(`Color mapping for "${i}" not found`),l="white"),s.fillStyle=l,s.strokeStyle=l}else s.globalCompositeOperation="destination-out",s.fillStyle="rgba(0,0,0,1)",s.strokeStyle="rgba(0,0,0,1)";s.font=`${aS(zb(r),a)}px sans-serif`}moveTo(r,e){this.lastPoint={x:r,y:e}}lineTo(r,e){const[t,n]=ai(this.transform,[r,e]),{size:i,shape:a,mode:o}=this.aperture,s=aS(this.transform,i);let{lastPoint:l}=this;const c=ai(this.transform,l);this.applyAperture();const u=this.getLayerCtx();a==="square"&&u.fillRect(c.x-s/2,c.y-s/2,s,s),u.beginPath(),u.moveTo(c.x,c.y),u.lineTo(t,n),u.stroke(),u.closePath(),a==="square"&&u.fillRect(t-s/2,n-s/2,s,s),this.lastPoint={x:r,y:e}}};function JEt(r){const{lines:e,anchorPoint:t,ccwRotation:n}=r;if(!n)return e;const i=n*Math.PI/180,a=c3(i),o=Hd(u0(t.x,t.y),a,u0(-t.x,-t.y));return ai(o,t),e.map(s=>({...s,x1:ai(o,{x:s.x1,y:s.y1}).x,y1:ai(o,{x:s.x1,y:s.y1}).y,x2:ai(o,{x:s.x2,y:s.y2}).x,y2:ai(o,{x:s.x2,y:s.y2}).y}))}var xCe={0:"M0.4544564813877358 0L0.2723441540828736 0.03592830447352719L0.1086847233315459 0.14528754990019965L0.020630545837255005 0.3040632652221331L0 0.5395277421960205L0.049259221760993496 0.7369487828466779L0.18080513776237842 0.9005494166306564L0.37036887043974215 0.9872116270037247L0.5864663759301132 1L0.8148695622827444 0.9332890276148733L0.9326583645506394 0.8113052246023419L1 0.4031281830668562L0.833288960385582 0.09886798567812842L0.6801767918233781 0.02483708485091681L0.4544564813877358 0",1:"M 0.198 0.272 L 0.537 0 L 0.54 1",2:"M0.069593147751606 0.19461498231706575L0.1039380353319058 0.1224291500164194L0.20543361884368308 0.05510832064153169L0.3717712794432549 0.009452970962689482L0.4785344452623127 0L0.663238590738758 0.008714098643339864L0.8017933618843684 0.04769189395915288L0.8775637379550322 0.10746757678258442L0.9047778372591005 0.17693069668193287L0.9029710920770878 0.2231347105796246L0.8704496788008566 0.30047744598157516L0.7292906538577354 0.4508486051631194L0.3737955032119913 0.7369006417749693L0 1L1 1",3:"M0.03917438899874637 0.19855364635107545L0.15510940508963084 0.06745632622133718L0.37598645522339846 0L0.8486391893813088 0.0652271323161611L0.9782182415054349 0.21747394183735683L0.9213133780517754 0.3547560290117714L0.6504271515903481 0.4543436297681271L0.22975249764129613 0.48476611625264143L0.7659038682744629 0.5411919558122493L0.9258712987734741 0.6203185665660985L1 0.7458360609169667L0.8938813281118737 0.9059190913045964L0.6166890258875837 1L0.261528440153542 0.9874861530507921L0 0.8837289530851273",4:"M0.7328897338403042 0L0 0.6684672518568535L1 0.6684672518568535M0.7243346007604563 0.4530722484807562L0.7243346007604563 1",5:"M 0 0 L 0 0.4973 L 0.4262 0.4319 L 0.7305 0.4565 L 0.8516 0.5009 L 0.9357 0.5639 L 1 0.7356 L 0.9696 0.8248 L 0.8898 0.895 L 0.733 0.9602 L 0.5518 0.9945 L 0.3814 1 L 0.2379 0.9821 L 0.1219 0.947 L 0 0.8748 M 0 0 L 1 0",6:"M0.6964601700926856 0L0.3639239026215478 0.0743562375769351L0.1415931962925719 0.21735490179786915L0.009977939399608712 0.46336322325406004L0.00029622007592593224 0.7083131475173043L0.09408885043224748 0.8746809149767036L0.3379247445101846 0.9876686500961888L0.7109203869569624 1L0.9260852957913362 0.9103558029693921L1 0.7716571969091733L0.9824294723385016 0.6390635485705886L0.7446504992867332 0.4733643097729175L0.31028858071607296 0.47578021640899115L0.1208702146816024 0.5481452483973847L0 0.6616669755788906",7:"M0 0L1 0L0.9246479649697582 0.030539772727272752L0.8850302419354837 0.05075757575757579L0.7922946068548385 0.11079545454545457L0.7419268208165322 0.15213068181818185L0.6907258064516127 0.20202020202020204L0.6400666267641127 0.26122159090909086L0.5913243447580644 0.33049242424242414L0.5458740234374998 0.4105902777777778L0.5050907258064514 0.5022727272727272L0.4703495148689514 0.6062973484848484L0.43257456133442534 0.787133049242424L0.41612903225806447 1",8:"M0.5143001078924863 0L0.16007477667923162 0.10731570786949331L0.14924628550868277 0.3146018498698755L0.2939585848842112 0.41617921794558677L0.8648302624811545 0.5385163833653317L1 0.7775820770511038L0.8180842915260376 0.9505845566922285L0.41968938540525413 1L0.08062381919779889 0.882831681184498L0 0.6936376947135333L0.17150171673893433 0.5188652309607817L0.6529263782780712 0.4242818653203618L0.8650205888491803 0.29644027376796367L0.8702067371119496 0.09910067291661573L0.5143001078924863 0",9:"M1 0.25379591792994305L0.9514789771111742 0.11679361536614272L0.8702482473521467 0.05711741614054847L0.7327445265851579 0.015213872471965633L0.525248180711544 0L0.3292056884418538 0.012928195113745608L0.15997632037247655 0.058762870026191856L0.05266940041228321 0.12882439350476L0 0.2562067822770946L0.11316462894512366 0.4121335905917837L0.2403060136479954 0.4603365890068938L0.4097241967586011 0.4745978388276783L0.8642414300184816 0.420815170259988L0.9732054796346318 0.34537434075898393L1 0.25379591792994305M0.9647426784191072 0.35488595400360495L0.4756895081034974 1",A:"M0 1L0.4808333333333333 0L1 1M0.24250000000000002 0.6099439775910365L0.7341666666666666 0.6099439775910365",B:"M0 1L0 0.0117369978777208L0.30665717153513444 0L0.5874522807082946 0.03451403469442413L0.7766202217193218 0.15033936404895643L0.7471969743588041 0.31967962568332936L0.5246013359741988 0.4102978954282461L0.04378745314885416 0.44918617613783574L0.5112949594180156 0.469692928091109L0.8540266515643348 0.5552749498651879L1 0.6868463175009967L0.9880091196159324 0.8570018204672155L0.922301719975498 0.9321708046604659L0.7584266951758925 0.9932594737131338L0 1",C:"M1 0.23038928858890784L0.9328355511865092 0.12426412616785204L0.8096380839483327 0.04912601676267708L0.5763225801788256 0L0.4039037709527492 0.015028068281399815L0.2519579390951737 0.06533979308999706L0.10359458463139784 0.18146243506591617L0 0.4862728453971315L0.08129580872733055 0.792689266886982L0.20257034847159672 0.9160822255736587L0.3286572892798542 0.9738230826074175L0.5742878414421707 1L0.7883510303801312 0.9665431511195721L0.946851033994232 0.8689071500976585L1 0.7311049027121912",D:"M0 1L0.015604366822624637 0.020770988281483303L0.22564758265176144 0L0.3865476147957666 0.0024153386496795644L0.6479126635475078 0.051745644338731314L0.841191887805517 0.15827717679529366L0.9517008345536152 0.30172260586872185L0.9957536578687336 0.4504541551987709L1 0.5624359222498485L0.9798483279164735 0.6584121775234548L0.9386273319285215 0.7395945263504481L0.806292129480815 0.8624239259880274L0.6296239151398265 0.9406169638094516L0.3397492767598845 0.9954164354263132L0 1",E:"M0 0L0 1M0 0L1 0M0 0.5L0.7 0.5M0 1L1 1",F:"M0 0L0 1M0.011363636363636364 0.006802721088435374L1 0.006802721088435374M0.011363636363636364 0.4965986394557823L0.8409090909090909 0.4965986394557823",G:"M0.902666857540557 0.03860785012651126L0.6504261864675637 0L0.3838947267237336 0.015442305268228053L0.21293332876776194 0.07706794377239819L0.07799659974941617 0.1994951236187481L0 0.46380381528937314L0.04159964421546915 0.7502491408002389L0.13176692977834842 0.8535497868383203L0.2709176262273927 0.936767572377719L0.4386472596876406 0.9891638569283179L0.6145513562841309 1L0.7782254421419019 0.9585373611026471L0.9092650433859927 0.8540372997461425L1 0.5556012645283437L0.5583959277303046 0.55491741080559",H:"M0 0L0 1M0 0.4788732394366197L0.989010989010989 0.4788732394366197M1 0L1 1",I:"M0.5 0L0.5 1",J:"M0.9976457238788704 0L1 0.7396412315872798L0.9773931362096968 0.8322033314977973L0.9345115952458736 0.882296255506608L0.8743862896259549 0.9221331222466961L0.8024024079884948 0.9526431718061675L0.6443996712151668 0.9893997797356828L0.5035848940343224 1L0.3127211130319937 0.9877004749449337L0.17201910858386513 0.9539509911894274L0.10357419806379677 0.9212555066079295L0.053656568662899015 0.8816079295154184L0.020759483663648916 0.8360407488986785L0.003376206348523566 0.7855864537444934L0 0.7312775330396476",K:"M0 0L0 1M0.8787878787878788 0.06666666666666667L0 0.6148148148148148M0.3333333333333333 0.45925925925925926L1 0.9777777777777777",L:"M0 0L0 1L1 1",M:"M0 1L0 0L0.5 0.6512L1 0L1 1",N:"M0 1L0 0L1 1L0.9803729146221786 0",O:"M0.4718499217948183 1L0.2896765846490613 0.9606979309189402L0.12315162147934663 0.8411184486080473L0 0.4352399966492615L0.11730398524516283 0.13145645436014852L0.2612197451988078 0.04493357858878059L0.5104071592772554 0L0.7450113425917159 0.05393013710105273L0.882367950645524 0.15242300282020502L1 0.5224527406249126L0.9414597290654386 0.7560662329321755L0.8371289514446183 0.8910800547287298L0.6518259868433511 0.9830452628933628L0.4718499217948183 1",P:"M0 1L0 0.018871774228013626L0.29609603495819875 0L0.5609840637427541 0.011794858892508529L0.7332142696692472 0.04353904702296349L0.8102258645858864 0.0691965055027166L0.9330504315465442 0.14445061754775845L0.9876391714147118 0.22527816445836535L1 0.3434414070631638L0.9510549958116356 0.41772808046663146L0.8746646891596713 0.45879131862541683L0.7528523813396283 0.49171525113425024L0.5766919939969619 0.5153253033973054L0.33725744877712827 0.5284469008187558L0.025622667325582785 0.529905468802775",Q:"M0.4618887943546369 0.9755918167206952L0.28356128136544534 0.9372490397450218L0.12055179272160406 0.8205882753548176L0 0.4246165790405623L0.1148276047430244 0.12824784112887844L0.25570518844754375 0.043836831567190586L0.49963205786237674 0L0.7292835601228574 0.0526138004304122L0.8637404608452104 0.14870263423138746L0.9788892040030622 0.5097006183769648L0.9215847647858059 0.7376120297474734L0.8194564929275405 0.869330409436378L0.6380654214095985 0.9590509139448092L0.4618887943546369 0.9755918167206952M0.5824181120212351 0.6861805006946525L1 1",R:"M0 0.9928375167236815L0 0.02590227442068435L0.3611517274211098 0L0.6146286724700761 0.008660554424468435L0.7675462459194776 0.035269459580494614L0.831839975516866 0.056961676692569484L0.8847592491838954 0.08519560521497332L0.9238557535364527 0.120683646438422L0.9583303225312839 0.21691797435320384L0.955092470586235 0.3022616904894429L0.9198097669001631 0.3640573439322699L0.8564862239866702 0.40639258627024005L0.7691258543593579 0.43335506909190874L0.601775027203482 0.4539166070813109L0.023939064200217658 0.46997623755243123M0.5038084874863982 0.5108023922274467L1 1",S:"M0.8886929689221953 0.15146982162688968L0.7276173683050475 0.013780286031594946L0.34582323121005076 0L0.1318235250900008 0.09920162734298861L0.0444543935052531 0.2811287071349243L0.08064065829108809 0.3709571405906485L0.21603115127470426 0.4485505768228281L0.7525409135992945 0.5111160926769565L0.9330263665417677 0.5850732219351329L1 0.7129938124702524L0.9117772389978691 0.9130572743138187L0.6423187128058188 1L0.29586019579751677 0.9935291584506244L0.10638454191462794 0.9229845198431584L0 0.7570771288048773",T:"M0 0L1 0M0.5148514851485149 0L0.5148514851485149 1",U:"M0 0L0.0023103778751369115 0.5467447428390111L0.01823032542100219 0.6954785891481812L0.05895528135268338 0.8056480226151669L0.13703402031421133 0.8894445726483398L0.23918400876232196 0.9448524533417946L0.3917887458926616 0.9848674531975652L0.584341627875137 1L0.7194816196604602 0.9848501456716763L0.8303268115073934 0.9449411544119768L0.8966613970084885 0.898186315516197L0.9251437568455642 0.867453197565408L0.9687114937020809 0.7890904895145239L0.9890470974808324 0.6852857184065537L1 0.0014769088758762145",V:"M0 0L0.5348837209302325 1L1 0",W:"M0 0L0.23300090661831369 0.9873417721518988L0.49954669084315495 0.30081906180193585L0.7851314596554849 1L1 0.0215934475055845",X:"M0 0L0.9893617021276596 1M1 0L0.010638297872340425 1",Y:"M0 0L0.4860515021459227 0.44712562100780695M1 0.0014194464158977947L0.48927038626609437 0.44996451383960256L0.5075107296137339 1",Z:"M0 0L1 0L0 1L1 1",".":"M 0.49 1 L 0.41 1","*":"M 0.5 0.25 L 0.8 0.25 M 0.5 0.25 L 0.5927 0.4402 M 0.5 0.25 L 0.2573 0.3676 M 0.5 0.25 L 0.2573 0.1324 M 0.5 0.25 L 0.599 0.055","(":"M0.75 0L0.25 0.5L0.25 0.5L0.75 1",")":"M0.25 0L0.75 0.5L0.75 0.5L0.25 1","-":"M0 0.5L1 0.5","+":"M 0 0.5 L 1 0.5 M 0.5 0.125 L 0.5 0.875","=":"M0 0.25L1 0.25M0 0.75L1 0.75",_:"M0 1 L1 1","[":"M0.75 0L0.25 0L0.25 1L0.75 1","]":"M0.25 0L0.75 0L0.75 1L0.25 1","<":"M0.75 0L0.25 0.5L0.25 0.5L0.75 1",">":"M0.25 0L0.75 0.5L0.75 0.5L0.25 1","'":"M 0.5 0 L 0.5 0.5",'"':"M 0.25 0 L 0.25 0.5 M 0.75 0 L 0.75 0.5"},xte={};for(const r in xCe){xte[r]=[];const e=xCe[r].split("M").slice(1).map(t=>t.split("L").map(n=>n.trim().split(" ").map(parseFloat)));for(const t of e)for(let n=0;n<t.length-1;n++)xte[r].push({x1:t[n][0],y1:1-t[n][1],x2:t[n+1][0],y2:1-t[n+1][1]})}function ewt(r,e){if(r.length<2)throw new Error("Stroke must have at least two points");const t=r.map(f=>Array.isArray(f)?{x:f[0],y:f[1]}:f),n=[],i=[];function a(f,y){const _=y.x-f.x,x=y.y-f.y,M=Math.sqrt(_*_+x*x);return{x:-x/M,y:_/M}}function o(f,y,_,x){const M=x/2,w={x:f.x+y.x*M*_,y:f.y+y.y*M*_};_>0?n.push(w):i.unshift(w)}const s=a(t[0],t[1]),l=t[0].trace_width??e;o(t[0],s,1,l),o(t[0],s,-1,l);for(let f=1;f<t.length-1;f++){const y=t[f-1],_=t[f],x=t[f+1],M=a(y,_),w=a(_,x),T=M.x+w.x,L=M.y+w.y,O=Math.sqrt(T*T+L*L),B=_.trace_width??e;if(O/2>2*(B/2))o(_,M,1,B),o(_,w,1,B),o(_,M,-1,B),o(_,w,-1,B);else{const $=1/O;o(_,{x:T*$,y:L*$},1,B),o(_,{x:T*$,y:L*$},-1,B)}}const c=a(t[t.length-2],t[t.length-1]),u=t[t.length-1].trace_width??e;return o(t[t.length-1],c,1,u),o(t[t.length-1],c,-1,u),[...n,...i]}var v1=0,twt=r=>`${r}_${v1++}`,nwt=(r,e)=>{var o;const t="pcb_component_id"in r?e.find(s=>s.type==="pcb_component"&&s.pcb_component_id===r.pcb_component_id):void 0,n=t&&"source_component_id"in t?e.find(s=>s.type==="source_component"&&s.source_component_id===t.source_component_id):void 0,i="source_port_id"in r?r.source_port_id:"pcb_port_id"in r?(o=Sw(e).pcb_port.get(r.pcb_port_id))==null?void 0:o.source_port_id:void 0,a=i?e.find(s=>s.type==="source_port"&&s.source_port_id===i):void 0;switch(r.type){case"pcb_board":{const{width:s,height:l,center:c,outline:u}=r;return u&&u.length>2?u.map((f,y,_)=>({_pcb_drawing_object_id:`line_${v1++}`,pcb_drawing_type:"line",x1:f.x,y1:f.y,x2:y===_.length-1?_[0].x:_[y+1].x,y2:y===_.length-1?_[0].y:_[y+1].y,width:1,zoomIndependent:!0,layer:"board",_element:r})):[{_pcb_drawing_object_id:`line_${v1++}`,pcb_drawing_type:"line",x1:c.x-s/2,y1:c.y-l/2,x2:c.x+s/2,y2:c.y-l/2,width:1,zoomIndependent:!0,layer:"board",_element:r},{_pcb_drawing_object_id:`line_${v1++}`,pcb_drawing_type:"line",x1:c.x-s/2,y1:c.y+l/2,x2:c.x+s/2,y2:c.y+l/2,width:1,zoomIndependent:!0,layer:"board",_element:r},{_pcb_drawing_object_id:`line_${v1++}`,pcb_drawing_type:"line",x1:c.x-s/2,y1:c.y-l/2,x2:c.x-s/2,y2:c.y+l/2,width:1,zoomIndependent:!0,layer:"board",_element:r},{_pcb_drawing_object_id:`line_${v1++}`,pcb_drawing_type:"line",x1:c.x+s/2,y1:c.y-l/2,x2:c.x+s/2,y2:c.y+l/2,width:1,zoomIndependent:!0,layer:"board",_element:r}]}case"pcb_smtpad":{if(r.shape==="rect"||r.shape==="rotated_rect"){const{shape:s,x:l,y:c,width:u,height:f,layer:y}=r;return[{_pcb_drawing_object_id:`rect_${v1++}`,pcb_drawing_type:"rect",x:l,y:c,w:u,h:f,layer:y||"top",_element:r,_parent_pcb_component:t,_parent_source_component:n,_source_port:a}]}else if(r.shape==="circle"){const{x:s,y:l,radius:c,layer:u}=r;return[{_pcb_drawing_object_id:`circle_${v1++}`,pcb_drawing_type:"circle",x:s,y:l,r:c,layer:u||"top",_element:r,_parent_pcb_component:t,_parent_source_component:n,_source_port:a}]}return[]}case"pcb_hole":{if(r.hole_shape==="circle"||!r.hole_shape){const{x:s,y:l,hole_diameter:c}=r;return[{_pcb_drawing_object_id:`circle_${v1++}`,pcb_drawing_type:"circle",x:s,y:l,r:c/2,layer:"drill",_element:r,_parent_pcb_component:t,_parent_source_component:n}]}return[]}case"pcb_plated_hole":if(r.shape==="circle"){const{x:s,y:l,hole_diameter:c,outer_diameter:u}=r;return[{_pcb_drawing_object_id:`circle_${v1++}`,pcb_drawing_type:"circle",x:s,y:l,r:u/2,layer:"top",_element:r,_parent_pcb_component:t,_parent_source_component:n,_source_port:a},{_pcb_drawing_object_id:`circle_${v1++}`,pcb_drawing_type:"circle",x:s,y:l,r:c/2,layer:"drill",_element:r}]}else if(r.shape==="oval"){const{x:s,y:l,outer_height:c,outer_width:u,hole_height:f,hole_width:y}=r;return[{_pcb_drawing_object_id:`oval_${v1++}`,pcb_drawing_type:"oval",x:s,y:l,rX:u/2,rY:c/2,layer:"top",_element:r,_parent_pcb_component:t,_parent_source_component:n,_source_port:a},{_pcb_drawing_object_id:`oval_${v1++}`,_element:r,pcb_drawing_type:"oval",x:s,y:l,rX:y/2,rY:f/2,layer:"drill"}]}else if(r.shape==="pill"){const{x:s,y:l,outer_height:c,outer_width:u,hole_height:f,hole_width:y}=r;return[{_pcb_drawing_object_id:`pill_${v1++}`,pcb_drawing_type:"pill",x:s,y:l,w:u,h:c,layer:"top",_element:r,_parent_pcb_component:t,_parent_source_component:n,_source_port:a},{_pcb_drawing_object_id:`pill_${v1++}`,_element:r,pcb_drawing_type:"pill",x:s,y:l,w:y,h:f,layer:"drill"}]}else return[];case"pcb_keepout":{if(r.shape==="circle"){const{center:s,radius:l}=r;return[{_pcb_drawing_object_id:`circle_${v1++}`,pcb_drawing_type:"circle",x:s.x,y:s.y,r:l,layer:"top",_element:r,_parent_pcb_component:t,_parent_source_component:n,mesh_fill:!0}]}else if(r.shape==="rect"){const{center:s,width:l,height:c}=r;return[{_pcb_drawing_object_id:`rect_${v1++}`,pcb_drawing_type:"rect",x:s.x,y:s.y,w:l,h:c,layer:"top",_element:r,_parent_pcb_component:t,_parent_source_component:n,mesh_fill:!0}]}break}case"pcb_trace":{const s=[];if(r.route_thickness_mode==="interpolated"){const u=r.route.map(_=>({x:_.x,y:_.y,trace_width:_.route_type==="wire"?_.width:.5})),f=ewt(u,.5),y=r.route[0].layer;return s.push({_pcb_drawing_object_id:`polygon_${v1++}`,_element:r,pcb_drawing_type:"polygon",points:f,layer:y}),r.route.forEach(_=>{_.route_type==="via"&&s.push({_pcb_drawing_object_id:`circle_${v1++}`,_element:r,pcb_drawing_type:"circle",x:_.x,y:_.y,r:_.outer_diameter/2,layer:_.from_layer})}),s}let l=null,c=null;for(const u of r.route)u.route_type==="wire"&&(l!==null&&c!==null&&s.push({_pcb_drawing_object_id:`line_${v1++}`,_element:r,pcb_drawing_type:"line",x1:l,y1:c,x2:u.x,y2:u.y,width:u.width,squareCap:!1,layer:u.layer}),l=u.x,c=u.y);return s}case"pcb_via":{const{x:s,y:l,outer_diameter:c,hole_diameter:u,from_layer:f,to_layer:y}=r;return[{_pcb_drawing_object_id:`circle_${v1++}`,pcb_drawing_type:"circle",x:s,y:l,r:c/2,layer:f,_element:r,_parent_pcb_component:t,_parent_source_component:n},{_pcb_drawing_object_id:`circle_${v1++}`,_element:r,pcb_drawing_type:"circle",x:s,y:l,r:u/2,layer:"drill",_parent_pcb_component:t,_parent_source_component:n},{_pcb_drawing_object_id:`circle_${v1++}`,pcb_drawing_type:"circle",x:s,y:l,r:c/2,layer:y,_element:r,_parent_pcb_component:t,_parent_source_component:n}]}case"pcb_silkscreen_rect":return[{_pcb_drawing_object_id:`rect_${v1++}`,pcb_drawing_type:"rect",x:r.center.x,y:r.center.y,w:r.width,h:r.height,layer:r.layer==="bottom"?"bottom_silkscreen":"top_silkscreen"}];case"pcb_silkscreen_circle":return[{_pcb_drawing_object_id:`circle_${v1++}`,pcb_drawing_type:"circle",x:r.center.x,y:r.center.y,r:r.radius,layer:r.layer==="bottom"?"bottom_silkscreen":"top_silkscreen"}];case"pcb_silkscreen_oval":return[{_pcb_drawing_object_id:`oval_${v1++}`,pcb_drawing_type:"oval",x:r.center.x,y:r.center.y,rX:r.radius_x/2,rY:r.radius_y/2,layer:r.layer==="bottom"?"bottom_silkscreen":"top_silkscreen"}];case"pcb_silkscreen_pill":return[{_pcb_drawing_object_id:`pill_${v1++}`,pcb_drawing_type:"pill",x:r.center.x,y:r.center.y,w:r.width,h:r.height,layer:r.layer==="bottom"?"bottom_silkscreen":"top_silkscreen"}];case"pcb_silkscreen_line":return[{_pcb_drawing_object_id:`line_${v1++}`,pcb_drawing_type:"line",x1:r.x1,y1:r.y1,x2:r.x2,y2:r.y2,width:.1,squareCap:!1,layer:r.layer==="bottom"?"bottom_silkscreen":"top_silkscreen"}];case"pcb_fabrication_note_path":case"pcb_silkscreen_path":{const{pcb_component_id:s,route:l,type:c}=r;let u;return c==="pcb_silkscreen_path"?u=r.layer==="bottom"?"bottom_silkscreen":"top_silkscreen":c==="pcb_fabrication_note_path"&&(u="top_fabrication"),l.slice(0,-1).map((f,y)=>{const _=l[y+1];return{_pcb_drawing_object_id:`line_${v1++}`,pcb_drawing_type:"line",x1:f.x,y1:f.y,x2:_.x,y2:_.y,width:r.stroke_width??.1,squareCap:!1,layer:u,_element:r,_parent_pcb_component:t,_parent_source_component:n,_source_port:a}}).filter(Boolean)}case"pcb_silkscreen_text":return[{_pcb_drawing_object_id:`text_${v1++}`,pcb_drawing_type:"text",x:r.anchor_position.x,y:r.anchor_position.y,layer:r.layer==="bottom"?"bottom_silkscreen":"top_silkscreen",align:r.anchor_alignment??"center",text:r.text,size:r.font_size,ccw_rotation:r.ccw_rotation}];case"pcb_fabrication_note_text":return[{_pcb_drawing_object_id:`text_${v1++}`,pcb_drawing_type:"text",x:r.anchor_position.x,y:r.anchor_position.y,layer:r.layer==="bottom"?"bottom_fabrication":"top_fabrication",size:r.font_size,align:r.anchor_alignment??"center",text:r.text}]}return[]},bCe=.6,SCe=.2,rwt=r=>r.text.length*r.size*bCe+(r.text.length-1)*r.size*SCe,iwt=r=>{const e=r.size/8,t=r.size*bCe,n=r.size*SCe,i=[];for(let a=0;a<r.text.length;a++){const o=r.text[a],s=xte[o.toUpperCase()];if(s)for(const{x1:l,y1:c,x2:u,y2:f}of s)i.push({_pcb_drawing_object_id:twt("line"),pcb_drawing_type:"line",x1:r.x+(t+n)*a+t*l,y1:r.y+r.size*c,x2:r.x+(t+n)*a+t*u,y2:r.y+r.size*f,width:e,layer:r.layer,unit:r.unit})}return i};function Ew(r){return r.is_mouse_over||r.is_in_highlighted_net?dbe(AT[r.layer]).lighten(.5).rgb().toString():AT[r.layer]}var ECe=(r,e)=>{r.equip({size:e.zoomIndependent?e.width/r.transform.a:e.width,shape:e.squareCap?"square":"circle",color:Ew(e),layer:e.layer}),r.moveTo(e.x1,e.y1),r.lineTo(e.x2,e.y2)},awt=(r,e)=>{r.equip({fontSize:e.size,color:e.layer});let t={x:0,y:0};const n=rwt(e),i=e.size;e.align==="top_left"?t.y=-i:e.align==="bottom_right"?t.x=-n:e.align==="top_right"?(t.x=-n,t.y=-i):e.align==="center"&&(t.x=-n/2,t.y=-i/2),e.x??(e.x=0),e.y??(e.y=0);const a={x:e.x,y:e.y};let o=iwt({...e,x:e.x+t.x,y:e.y+t.y});if(e.ccw_rotation){const s={lines:o,anchorPoint:a,ccwRotation:e.ccw_rotation};o=JEt(s)}for(const s of o)ECe(r,s)},owt=(r,e)=>{r.equip({color:Ew(e),layer:e.layer}),r.rect(e.x,e.y,e.w,e.h,e.mesh_fill)},swt=(r,e)=>{r.equip({color:Ew(e),layer:e.layer}),r.rotatedRect(e.x,e.y,e.w,e.h,e.ccw_rotation)},lwt=(r,e)=>{r.equip({color:Ew(e),layer:e.layer}),r.circle(e.x,e.y,e.r,e.mesh_fill)},cwt=(r,e)=>{r.equip({color:Ew(e),layer:e.layer}),r.oval(e.x,e.y,e.rX,e.rY)},uwt=(r,e)=>{r.equip({color:Ew(e),layer:e.layer}),r.pill(e.x,e.y,e.w,e.h)},fwt=(r,e)=>{r.equip({color:Ew(e),layer:e.layer}),r.polygon(e.points)},dwt=(r,e)=>{var t;switch(e.pcb_drawing_type){case"line":return ECe(r,e);case"text":return awt(r,e);case"rect":return((t=e._element)==null?void 0:t.shape)==="rotated_rect"?swt(r,{...e,ccw_rotation:e._element.ccw_rotation,mesh_fill:e.mesh_fill}):owt(r,e);case"circle":return lwt(r,e);case"oval":return cwt(r,e);case"pill":return uwt(r,e);case"polygon":return fwt(r,e)}},hwt=(r,e)=>{for(const t of e)dwt(r,t)},pwt=["bottom_silkscreen","bottom","top","top_silkscreen","inner1","inner2","inner3","inner4","inner5","inner6","drill","other"],mwt=({primitives:r,transform:e,grid:t,width:n=500,height:i=500})=>{const a=wt.useRef(),o=l2(s=>s.selected_layer);return wt.useEffect(()=>{if(!a.current||Object.keys(a.current).length===0)return;const s=new KEt(a.current);e&&(s.transform=e),s.clear(),s.foregroundLayer=o,hwt(s,r),s.orderAndFadeLayers()},[r,e,o]),ft.jsxs("div",{style:{backgroundColor:"black",width:n,height:i,position:"relative"},children:[ft.jsx(ree.SuperGrid,{textColor:"rgba(0,255,0,0.8)",majorColor:"rgba(0,255,0,0.4)",minorColor:"rgba(0,255,0,0.2)",screenSpaceCellSize:200,width:n,height:i,transform:e,stringifyCoord:(s,l,c)=>`${ree.toMMSI(s,c)}, ${ree.toMMSI(l,c)}`}),pwt.map(s=>s.replace(/-/g,"")).map((s,l)=>ft.jsx("canvas",{className:`pcb-layer-${s}`,ref:c=>{a.current??(a.current={}),a.current[s]=c},style:{position:"absolute",zIndex:l,left:0,top:0,pointerEvents:"none"},width:n,height:i},s))]})};function vwt({primitiveElement:r,elements:e}){let t=r.trace_length?`${r.trace_length.toFixed(3)}`:"";const n=Sw(e).source_trace.get(r==null?void 0:r.source_trace_id);if(n!=null&&n.display_name&&(n!=null&&n.max_length?t+=` / ${n.max_length}mm `:t+=" mm ",t+=`(${n.display_name})`),!t)return null;const i=r.trace_length&&(n==null?void 0:n.max_length)&&r.trace_length>n.max_length;return{text:t,isOverLength:i}}function ywt(r){const{primitives:e,is_showing_multiple_traces_length:t,elements:n}=r,i=e.filter(l=>l._element.type==="pcb_trace"),a=n.filter(l=>l.type==="source_trace"),o=e.filter(l=>l._element.type!=="pcb_trace"),s=i.filter(l=>a.some(c=>l._element.type==="pcb_trace"&&l._element.source_trace_id===c.source_trace_id&&c.max_length!==void 0));if(!t)return[...o,...s];if(i.length>1){const l=i.reduce((c,u)=>{const f=c._element.trace_length;return u._element.trace_length<f?u:c},i[0]);return[...o,l]}return e}var gwt={position:"absolute",left:0,top:0,pointerEvents:"none",color:"red",fontFamily:"sans-serif",fontSize:12,textShadow:"0 0 2px black"},_wt=r=>{const{_element:e,_parent_pcb_component:t,_parent_source_component:n,_source_port:i}=r;switch(e.type){case"pcb_trace":return e.trace_length?`${e.trace_length.toFixed(3)}`:"";case"pcb_smtpad":case"pcb_plated_hole":{let a="";n&&"name"in n&&n.name&&(a+=`.${n.name} > `);const o=Array.from(new Set((e.port_hints??[]).concat((i==null?void 0:i.port_hints)??[]))).sort((s,l)=>l.localeCompare(s));return a+=o.map(s=>s.match(/^[0-9]+$/)?`port.${s}`:`.${s}`).join(", "),a}default:return""}},xwt={top:"red",bottom:"aqua"},bwt=({primitive:r,mousePos:e,elements:t})=>{var x;const[n,i]=wt.useState(!1),a=r._element;wt.useEffect(()=>{setTimeout(()=>{i(!0)},100)},[]);let[o,s,l,c]=[r.screen_x,r.screen_y,r.screen_w,r.screen_h];const u=r.same_space_index??0,f=26,y=xwt[(x=r==null?void 0:r._element)==null?void 0:x.layer]??"red";let _=0;if(a.type==="pcb_smtpad"&&(a==null?void 0:a.shape)==="rotated_rect"&&(_=a==null?void 0:a.ccw_rotation),a.type==="pcb_trace"){const w=vwt({primitiveElement:a,elements:t});if(!w)return null;const T=e.y-35;return ft.jsx("div",{style:{zIndex:Y3.elementOverlay,position:"absolute",left:e.x,top:T,color:y,pointerEvents:"none",transform:"translateX(-50%)"},children:ft.jsx("div",{style:{backgroundColor:"#f2efcc",color:w.isOverLength?"red":"black",textShadow:"none",WebkitFontSmoothing:"antialiased",MozOsxFontSmoothing:"grayscale",padding:"6px 6px",borderRadius:"6px",fontSize:"14px",minWidth:"45px",textAlign:"center",whiteSpace:"nowrap"},children:w.text})})}return ft.jsx("div",{style:{zIndex:Y3.elementOverlay,position:"absolute",left:o-l/2-8,top:s-c/2-8,width:l+16,height:c+16,color:y,transform:`rotate(${-_}deg)`,transformOrigin:"center center"},children:ft.jsx("div",{style:{width:n?`calc(100% + ${f*2*u}px)`:"100%",height:n?`calc(100% + ${f*2*u}px)`:"100%",marginLeft:n?`${-26*u}px`:0,marginTop:n?`${-26*u}px`:0,border:`1px solid ${y}`,opacity:n||u===0?1:0,transition:"width 0.2s, height 0.2s, margin-left 0.2s, margin-top 0.2s, opacity 0.2s"},children:ft.jsx("div",{style:{position:"absolute",bottom:c+20+f*u,marginRight:n?`${-26*u}px`:0,marginBottom:n?0:-26*u,transition:"margin-right 0.2s, margin-bottom 0.2s",backgroundColor:"#f2efcc",color:"black",textShadow:"none",WebkitFontSmoothing:"antialiased",MozOsxFontSmoothing:"grayscale",padding:"6px 6px",borderRadius:"6px",fontSize:"14px",transform:`rotate(${_}deg)`,minWidth:"45px",textAlign:"center"},children:_wt(r)})})})},Swt=({highlightedPrimitives:r,mousePos:e,elements:t})=>{const[n,i]=l2(s=>[s.is_moving_component,s.is_showing_multiple_traces_length]),a=r.some(s=>s._element.type==="pcb_smtpad")&&r.some(s=>s._element.type==="pcb_trace");let o=r;return a&&(o=o.filter(s=>s._element.type==="pcb_smtpad")),o=ywt({primitives:o,is_showing_multiple_traces_length:i,elements:t}),ft.jsx("div",{style:gwt,children:!n&&o.map((s,l)=>ft.jsx(bwt,{primitive:s,mousePos:e,elements:t},l))})};function Ewt(r,e){return r.size!==e.size?!1:Array.from(r).every(t=>e.has(t))}var wwt=({elements:r,children:e,transform:t,primitives:n,onMouseHoverOverPrimitives:i})=>{const[a,o]=wt.useState([]),[s,l]=wt.useState({x:0,y:0}),c=wt.useMemo(()=>{var f,y;const u=[];for(const _ of a){if(((f=_._element)==null?void 0:f.type)==="pcb_via"||((y=_._element)==null?void 0:y.type)==="pcb_component"||(_==null?void 0:_.layer)==="drill")continue;const x=ai(t,_),M="w"in _?_.w:"r"in _?_.r*2:0,w="h"in _?_.h:"r"in _?_.r*2:0,T={w:M*t.a,h:w*t.a},L=u.filter(O=>x.x===O.screen_x&&x.y===O.screen_y&&T.w===O.screen_w&&T.h===O.screen_h).length;u.push({..._,screen_x:x.x,screen_y:x.y,screen_w:T.w,screen_h:T.h,same_space_index:L})}return u},[a,t]);return ft.jsxs("div",{style:{position:"relative"},onMouseMove:u=>{var f;if(t){const y=u.currentTarget.getBoundingClientRect(),_=u.clientX-y.left,x=u.clientY-y.top;l({x:_,y:x});const M=ai(zb(t),{x:_,y:x}),w=[];for(const T of n){if(!T._element)continue;if("x1"in T&&((f=T._element)==null?void 0:f.type)==="pcb_trace"){const B=qbt({x:M.x,y:M.y},{x:T.x1,y:T.y1},{x:T.x2,y:T.y2}),W=T.width||.5,$=Math.max(W*25,2)/t.a;B<$&&w.push(T);continue}if(!("x"in T&&"y"in T))continue;let L=0,O=0;if("w"in T&&"h"in T)L=T.w,O=T.h;else if("r"in T)L=T.r*2,O=T.r*2;else continue;Math.abs(T.x-M.x)<L/2&&Math.abs(T.y-M.y)<O/2&&w.push(T)}if(Ewt(new Set(w.map(T=>T._pcb_drawing_object_id)),new Set(a.map(T=>T._pcb_drawing_object_id))))return;o(w),i(w)}},children:[e,ft.jsx(Swt,{elements:r,mousePos:s,highlightedPrimitives:c})]})},Twt=({children:r,transform:e,focusOnHover:t=!1})=>{e||(e=Q_());const[n,i]=wt.useState(!1),[a,o]=wt.useState(!1),[s,l]=wt.useState({x:0,y:0}),[c,u]=wt.useState({x:0,y:0}),f=wt.useRef({x:0,y:0}),y=wt.useRef(null),_=y.current,x=_==null?void 0:_.getBoundingClientRect();wt.useEffect(()=>{const L=y.current,O=$=>{$.key==="d"&&(l({x:f.current.x,y:f.current.y}),u({x:f.current.x,y:f.current.y}),i(Q=>!Q),o(!0)),$.key==="Escape"&&(i(!1),o(!1))},B=()=>{L&&window.addEventListener("keydown",O)},W=()=>{L&&window.removeEventListener("keydown",O)};return L&&(L.addEventListener("focus",B),L.addEventListener("blur",W),L.addEventListener("mouseenter",B),L.addEventListener("mouseleave",W)),()=>{L&&(L.removeEventListener("focus",B),L.removeEventListener("blur",W),L.removeEventListener("mouseenter",B),L.removeEventListener("mouseleave",W))}},[y]);const M=ai(e,s),w=ai(e,c),T={left:Math.min(M.x,w.x),right:Math.max(M.x,w.x),top:Math.min(M.y,w.y),bottom:Math.max(M.y,w.y),flipX:M.x>w.x,flipY:M.y>w.y,width:0,height:0};return T.width=T.right-T.left,T.height=T.bottom-T.top,ft.jsxs("div",{ref:y,tabIndex:0,style:{position:"relative"},onMouseEnter:()=>{t&&y.current&&y.current.focus()},onMouseLeave:()=>{y.current&&y.current.blur()},onMouseMove:L=>{const O=L.currentTarget.getBoundingClientRect(),B=L.clientX-O.left,W=L.clientY-O.top,$=ai(zb(e),{x:B,y:W});f.current.x=$.x,f.current.y=$.y,a&&u({x:$.x,y:$.y})},onMouseDown:()=>{a?o(!1):n&&i(!1)},children:[r,n&&ft.jsxs(ft.Fragment,{children:[ft.jsx("div",{style:{position:"absolute",left:T.left,width:T.width,textAlign:"center",top:M.y+2,color:"red",mixBlendMode:"difference",pointerEvents:"none",marginTop:T.flipY?0:-20,fontSize:12,fontFamily:"sans-serif",zIndex:Y3.dimensionOverlay},children:Math.abs(s.x-c.x).toFixed(2)}),ft.jsx("div",{style:{position:"absolute",left:w.x,height:T.height,display:"flex",flexDirection:"column",justifyContent:"center",top:T.top,color:"red",pointerEvents:"none",mixBlendMode:"difference",fontSize:12,fontFamily:"sans-serif",zIndex:Y3.dimensionOverlay},children:ft.jsx("div",{style:{marginLeft:T.flipX?"-100%":4,paddingRight:4},children:Math.abs(s.y-c.y).toFixed(2)})}),ft.jsxs("svg",{style:{position:"absolute",left:0,top:0,pointerEvents:"none",mixBlendMode:"difference",zIndex:Y3.dimensionOverlay},width:x.width,height:x.height,children:[ft.jsx("defs",{children:ft.jsx("marker",{id:"head",orient:"auto",markerWidth:"3",markerHeight:"4",refX:"2",refY:"2",children:ft.jsx("path",{d:"M0,0 V4 L2,2 Z",fill:"red"})})}),ft.jsx("line",{x1:M.x,y1:M.y,x2:w.x,y2:w.y,markerEnd:"url(#head)",strokeWidth:1.5,fill:"none",stroke:"red"}),ft.jsx("line",{x1:M.x,y1:M.y,x2:w.x,y2:M.y,strokeWidth:1.5,fill:"none",strokeDasharray:"2,2",stroke:"red"}),ft.jsx("line",{x1:w.x,y1:M.y,x2:w.x,y2:w.y,strokeWidth:1.5,fill:"none",strokeDasharray:"2,2",stroke:"red"})]}),ft.jsxs("div",{style:{right:0,bottom:0,position:"absolute",color:"red",fontFamily:"sans-serif",fontSize:12,margin:4},children:["(",s.x.toFixed(2),",",s.y.toFixed(2),")",ft.jsx("br",{}),"(",c.x.toFixed(2),",",c.y.toFixed(2),")",ft.jsx("br",{}),"dist:"," ",Math.sqrt((c.x-s.x)**2+(c.y-s.y)**2).toFixed(2)]})]})]})},Mwt={version:"1.11.66"},j4=(r,e)=>{const t=l2(n=>n.is_mouse_over_container);wt.useEffect(()=>{if(!r||typeof e!="function")return;const n=i=>{const a=r.split("+"),o=a.includes("ctrl"),s=a.includes("shift"),l=a.includes("alt"),c=a.includes("meta"),u=a[a.length-1];t&&(!o||i.ctrlKey)&&(!s||i.shiftKey)&&(!l||i.altKey)&&(!c||i.metaKey)&&i.key.toLowerCase()===u.toLowerCase()&&(i.preventDefault(),e())};return window.addEventListener("keydown",n),()=>{window.removeEventListener("keydown",n)}},[r,e])},Cwt=({name:r,selected:e,onClick:t})=>ft.jsxs("div",{className:xT`
13089
13089
  margin-top: 2px;
13090
13090
  padding: 4px;
13091
13091
  padding-left: 8px;
@@ -13141,7 +13141,7 @@ $1`).replace(/>(\s*)(?=<!--\s*\/)/g,"> ")}return Gee}n4t();function IMe(r,e,t,n=
13141
13141
  height: 10px;
13142
13142
  transform: translate(0, 5px) rotate(45deg);
13143
13143
  background-color: red;
13144
- `})]})]})})]})},Pwt=(r,e,t=0)=>{const n=r.width/2,i=r.height/2,a=r.center.x-n-t,o=r.center.x+n+t,s=r.center.y-i-t,l=r.center.y+i+t;return e.x>a&&e.x<o&&e.y>s&&e.y<l},Dwt=({children:r,disabled:e,transform:t,soup:n,cancelPanDrag:i,onCreateEditEvent:a,onModifyEditEvent:o})=>{t||(t=Q_());const s=wt.useRef(null),[l,c]=wt.useState(null),[u,f]=wt.useState(null),y=l!==null;l2(w=>w.in_edit_mode);const _=l2(w=>w.in_move_footprint_mode),x=l2(w=>w.setIsMovingComponent),M=e||!_;return ft.jsxs("div",{ref:s,style:{position:"relative",overflow:"hidden"},onMouseDown:w=>{if(M)return;const T=w.currentTarget.getBoundingClientRect(),L=w.clientX-T.left,O=w.clientY-T.top;if(isNaN(L)||isNaN(O))return;const B=ai(zb(t),{x:L,y:O});let W=!1;for(const $ of n)if($.type==="pcb_component"&&Pwt($,B,10/t.a)){i(),c($.pcb_component_id),W=!0;const Q=Math.random().toString();f({dragStart:B,originalCenter:$.center,dragEnd:B,edit_event_id:Q}),a({edit_event_id:Q,pcb_edit_event_type:"edit_component_location",pcb_component_id:$.pcb_component_id,original_center:$.center,new_center:$.center,in_progress:!0,created_at:Date.now()}),x(!0);break}if(W||c(null),W)return w.preventDefault(),!1},onMouseMove:w=>{if(!l||!u)return;const T=w.currentTarget.getBoundingClientRect(),L=w.clientX-T.left,O=w.clientY-T.top;if(isNaN(L)||isNaN(O))return;const B=ai(zb(t),{x:L,y:O});f({...u,dragEnd:B}),o({edit_event_id:u.edit_event_id,new_center:{x:u.originalCenter.x+B.x-u.dragStart.x,y:u.originalCenter.y+B.y-u.dragStart.y}})},onMouseUp:w=>{l&&(c(null),x(!1),u&&(o({edit_event_id:u.edit_event_id,in_progress:!1}),f(null)))},children:[r,!M&&n.filter(w=>w.type==="pcb_component").map(w=>{if(!(w!=null&&w.center))return null;const T=ai(t,w.center);return ft.jsx("div",{style:{position:"absolute",pointerEvents:"none",left:T.x,top:T.y,width:w.width*t.a+20,height:w.height*t.a+20,transform:"translate(-50%, -50%)",background:y&&l===w.pcb_component_id?"rgba(255, 0, 0, 0.2)":""}},w.pcb_component_id)})]})},Lwt=({hotkeys:r})=>(wt.useEffect(()=>{const e=t=>{r.forEach(n=>{t.key===n.key&&n.onUse()})};return window.addEventListener("keydown",e),()=>{window.removeEventListener("keydown",e)}},[r]),ft.jsx("div",{className:xT`
13144
+ `})]})]})})]})},Pwt=(r,e,t=0)=>{const n=r.width/2,i=r.height/2,a=r.center.x-n-t,o=r.center.x+n+t,s=r.center.y-i-t,l=r.center.y+i+t;return e.x>a&&e.x<o&&e.y>s&&e.y<l},Dwt=({children:r,disabled:e,transform:t,soup:n,cancelPanDrag:i,onCreateEditEvent:a,onModifyEditEvent:o})=>{t||(t=Q_());const s=wt.useRef(null),[l,c]=wt.useState(null),[u,f]=wt.useState(null),y=l!==null;l2(w=>w.in_edit_mode);const _=l2(w=>w.in_move_footprint_mode),x=l2(w=>w.setIsMovingComponent),M=e||!_;return ft.jsxs("div",{ref:s,style:{position:"relative",overflow:"hidden"},onMouseDown:w=>{if(M)return;const T=w.currentTarget.getBoundingClientRect(),L=w.clientX-T.left,O=w.clientY-T.top;if(isNaN(L)||isNaN(O))return;const B=ai(zb(t),{x:L,y:O});let W=!1;for(const $ of n)if($.type==="pcb_component"&&Pwt($,B,10/t.a)){i(),c($.pcb_component_id),W=!0;const Q=Math.random().toString();f({dragStart:B,originalCenter:$.center,dragEnd:B,edit_event_id:Q}),a({edit_event_id:Q,edit_event_type:"edit_pcb_component_location",pcb_edit_event_type:"edit_component_location",pcb_component_id:$.pcb_component_id,original_center:$.center,new_center:$.center,in_progress:!0,created_at:Date.now()}),x(!0);break}if(W||c(null),W)return w.preventDefault(),!1},onMouseMove:w=>{if(!l||!u)return;const T=w.currentTarget.getBoundingClientRect(),L=w.clientX-T.left,O=w.clientY-T.top;if(isNaN(L)||isNaN(O))return;const B=ai(zb(t),{x:L,y:O});f({...u,dragEnd:B}),o({edit_event_id:u.edit_event_id,new_center:{x:u.originalCenter.x+B.x-u.dragStart.x,y:u.originalCenter.y+B.y-u.dragStart.y}})},onMouseUp:w=>{l&&(c(null),x(!1),u&&(o({edit_event_id:u.edit_event_id,in_progress:!1}),f(null)))},children:[r,!M&&n.filter(w=>w.type==="pcb_component").map(w=>{if(!(w!=null&&w.center))return null;const T=ai(t,w.center);return ft.jsx("div",{style:{position:"absolute",pointerEvents:"none",left:T.x,top:T.y,width:w.width*t.a+20,height:w.height*t.a+20,transform:"translate(-50%, -50%)",background:y&&l===w.pcb_component_id?"rgba(255, 0, 0, 0.2)":""}},w.pcb_component_id)})]})},Lwt=({hotkeys:r})=>(wt.useEffect(()=>{const e=t=>{r.forEach(n=>{t.key===n.key&&n.onUse()})};return window.addEventListener("keydown",e),()=>{window.removeEventListener("keydown",e)}},[r]),ft.jsx("div",{className:xT`
13145
13145
  display: flex;
13146
13146
  flex-direction: column;
13147
13147
  font-family: sans-serif;
@@ -13341,4 +13341,4 @@ ${n.slice(0,2e3)}
13341
13341
  50% { opacity: 0.2; }
13342
13342
  100% { opacity: 0.6; }
13343
13343
  }
13344
- `,i.appendChild(O)}})}};a();const o=new MutationObserver(a);return o.observe(i,{childList:!0,subtree:!1,characterData:!1}),()=>{o.disconnect()}},[r,t,e,n])},vDt=({circuitJson:r,containerStyle:e,editEvents:t=[],onEditEvent:n,defaultEditMode:i=!1,debugGrid:a=!1,editingEnabled:o=!1,debug:s=!1})=>{s&&uDt();const[l,c]=wt.useState(i),u=wt.useRef(null),{ref:f,cancelDrag:y,transform:_}=HAe({onSetTransform($){u.current&&(u.current.style.transform=aE($))}}),{containerWidth:x,containerHeight:M}=lDt(f),w=wt.useMemo(()=>!x||!M?"":Tre(r,{width:x,height:M||720,grid:a?{cellSize:1,labelCells:!0}:void 0}),[r,x,M]),T=wt.useMemo(()=>{var Q;if(!w)return Q_();const $=(Q=w.match(/data-real-to-screen-transform="([^"]+)"/))==null?void 0:Q[1];try{return hk($)}catch(te){return console.error(te),Q_()}},[w]),{handleMouseDown:L,isDragging:O,activeEditEvent:B}=hDt({onEditEvent:n,cancelDrag:y,realToSvgProjection:T,svgToScreenProjection:_,circuitJson:r,editEvents:t,enabled:l});pDt({svgDivRef:u,editEvents:t,realToSvgProjection:T,svgToScreenProjection:_,activeEditEvent:B}),mDt({svgDivRef:u,circuitJson:r,activeEditEvent:B,editEvents:t});const W=wt.useMemo(()=>ft.jsx("div",{ref:u,style:{pointerEvents:"auto",transformOrigin:"0 0"},dangerouslySetInnerHTML:{__html:w}}),[w]);return ft.jsxs("div",{ref:f,style:{position:"relative",backgroundColor:"#F5F1ED",overflow:"hidden",cursor:O?"grabbing":"grab",minHeight:"300px",...e},onMouseDown:L,children:[o&&ft.jsx(sDt,{active:l,onClick:()=>c(!l)}),W]})},yDt=r=>{const[e,t]=wt.useState(0),[n,i]=wt.useState(0);return wt.useEffect(()=>{if(!r.current)return;const a=()=>{var l;const s=(l=r.current)==null?void 0:l.getBoundingClientRect();t((s==null?void 0:s.width)||0),i((s==null?void 0:s.height)||0)};a();const o=new ResizeObserver(a);return o.observe(r.current),window.addEventListener("resize",a),()=>{o.disconnect(),window.removeEventListener("resize",a)}},[]),{containerWidth:e,containerHeight:n}};J2("assembly-viewer");var gDt=()=>{J2.enable("assembly-viewer*")},_Dt=({circuitJson:r,containerStyle:e,debugGrid:t=!1,debug:n=!1})=>{n&&gDt();const i=wt.useRef(null),{ref:a}=HAe({onSetTransform(u){i.current&&(i.current.style.transform=aE(u))}}),{containerWidth:o,containerHeight:s}=yDt(a),l=wt.useMemo(()=>!o||!s?"":QDe(r,{width:o,height:s||720}),[r,o,s]);wt.useMemo(()=>{var f;if(!l)return Q_();const u=(f=l.match(/data-real-to-screen-transform="([^"]+)"/))==null?void 0:f[1];try{return hk(u)}catch(y){return console.error(y),Q_()}},[l]);const c=wt.useMemo(()=>ft.jsx("div",{ref:i,style:{pointerEvents:"auto",transformOrigin:"0 0"},dangerouslySetInnerHTML:{__html:l}}),[l]);return ft.jsx("div",{ref:a,style:{position:"relative",backgroundColor:"#F5F1ED",overflow:"hidden",minHeight:"300px",...e},children:c})};const Rw=({onRunClicked:r})=>ft.jsxs("div",{className:"rf-flex rf-items-center rf-gap-3 rf-bg-gray-100 rf-text-center rf-justify-center rf-py-10",children:["No circuit json loaded",r&&ft.jsxs(V4,{className:"rf-bg-blue-600 rf-hover:bg-blue-500",onClick:r,children:["Run Code",ft.jsx(a8t,{className:"rf-w-3 rf-h-3 rf-ml-2"})]})]}),AU=({text:r,onClick:e})=>ft.jsx("span",{className:"rf-cursor-pointer rf-underline rf-text-blue-600 rf-mx-2",onClick:e,children:r}),NU=r=>{var e;return ft.jsxs("div",{className:"rf-leading-5",children:[ft.jsx("div",{className:"rf-py-2 rf-font-bold",children:r.column.name}),ft.jsx("div",{children:((e=r.field)==null?void 0:e.call(r))??ft.jsx("input",{type:"text",className:"rf-border rf-rounded rf-p-1 rf-w-full",onChange:t=>{var n;(n=r.onTextChange)==null||n.call(r,t.target.value)}})})]})},xDt=({open:r,children:e,title:t,onClose:n})=>r?ft.jsx("div",{className:"rf-fixed rf-inset-0 rf-bg-black rf-bg-opacity-50 rf-flex rf-justify-center rf-items-center rf-z-50",onClick:n,children:ft.jsxs("div",{className:"rf-bg-white rf-p-5 rf-rounded-lg rf-relative rf-w-11/12 rf-max-w-2xl",onClick:i=>{i.preventDefault(),i.stopPropagation()},children:[ft.jsx("h2",{className:"rf-mt-0 rf-text-md rf-pb-4",children:t}),ft.jsx("button",{type:"button",className:"rf-absolute rf-top-2 rf-right-4 rf-text-2xl rf-font-bold",onClick:n,children:"×"}),e]})}):null,bDt=({elements:r})=>{const[e,t]=wt.useState({open:!1}),[n,i]=wt.useReducer((u,f)=>({...u,...f}),{}),a=[...new Set(r.map(u=>u.type))],o=r.map(u=>{const f=u[`${u.type}_id`],y=Object.fromEntries(Object.entries(u).filter(([x])=>!(x===`${u.type}_id`||!x.endsWith("_id")))),_=Object.fromEntries(Object.entries(u).filter(([x])=>!x.endsWith("_id")));return{primary_id:f,other_ids:y,..._,_og_elm:u}}),s=o.map(u=>{let f="";const y=_=>{const x=Object.keys(_.other_ids).find(T=>T.startsWith("source_"));if(!x)return`.${_.name}`;const M=x.slice(0,-3),w=o.find(T=>T.type===M&&T.primary_id===_.other_ids[x]);return w?"name"in w?`${y(w)} > .${_.name}`:`#${w.primary_id} > .${_.name}`:`??? > .${_.name}`};return"name"in u&&(f=y(u)),{...u,selector_path:f}}),l=[{key:"primary_id",name:"primary_id",renderCell:u=>ft.jsxs("div",{className:"rf-flex rf-items-center",children:[ft.jsx(AU,{text:u.primary_id,onClick:()=>i({focused_id:u.primary_id,id_search:void 0,selector_search:void 0})}),ft.jsx("span",{className:"rf-flex-grow"}),ft.jsx(AU,{text:"(JSON)",onClick:()=>t({open:!0,element:u._og_elm,title:u.primary_id})})]}),renderHeaderCell:u=>ft.jsx(NU,{column:u,onTextChange:f=>i({id_search:f}),field:n.focused_id?()=>ft.jsxs("div",{children:["Focus:"," ",ft.jsx("span",{className:"rf-underline",children:n.focused_id}),ft.jsx(AU,{text:"(unfocus)",onClick:()=>i({focused_id:void 0})})]}):void 0})},{key:"type",name:"type",renderHeaderCell:u=>ft.jsx(NU,{column:u,field:()=>ft.jsxs("select",{onChange:f=>i({component_type_filter:f.target.value}),className:"rf-border rf-rounded rf-p-1 rf-w-full",children:[ft.jsx("option",{value:"any",children:"any"},"any"),ft.jsx("option",{value:"source",children:"source"},"source"),ft.jsx("option",{value:"source/pcb",children:"source/pcb"},"source/pcb"),ft.jsx("option",{value:"source/schematic",children:"source/schematic"},"source/schematic"),a.map(f=>ft.jsx("option",{value:f,children:f},f))]})})},{key:"name",name:"name",renderHeaderCell:u=>ft.jsx(NU,{column:u,onTextChange:f=>i({name_search:f})})},{key:"selector_path",name:"selector_path",renderHeaderCell:u=>ft.jsx(NU,{column:u,onTextChange:f=>i({selector_search:f})})},{key:"other_ids",name:"other_ids",renderCell:u=>ft.jsx("div",{className:"rf-space-x-2",children:Object.entries(u.other_ids).map(([f,y])=>ft.jsx(AU,{text:y,onClick:()=>i({focused_id:y})},y))})}],c=s.filter(u=>{var f,y;return n.name_search?(y=(f=u.name)==null?void 0:f.toLowerCase())==null?void 0:y.includes(n.name_search.toLowerCase()):!0}).filter(u=>{var f;return!n.component_type_filter||n.component_type_filter==="any"?!0:n.component_type_filter==="source"?u.type.startsWith("source_"):n.component_type_filter==="source/pcb"?u.type.startsWith("source_")||u.type.startsWith("pcb_"):n.component_type_filter==="source/schematic"?u.type.startsWith("source_")||u.type.startsWith("schematic_"):(f=u.type)==null?void 0:f.includes(n.component_type_filter)}).filter(u=>n.selector_search?n.selector_search.split(" ").filter(y=>y.length>0).every(y=>{var _;return(_=u.selector_path)==null?void 0:_.includes(y)}):!0).filter(u=>{var f;return n.id_search?(f=u.primary_id)==null?void 0:f.includes(n.id_search):!0}).filter(u=>!!(!n.focused_id||u.primary_id===n.focused_id||Object.values(u.other_ids).includes(n.focused_id)));return ft.jsxs("div",{className:"rf-font-mono rf-text-xs rf-bg-white",children:[ft.jsx("div",{className:"rf-overflow-x-auto",children:ft.jsxs("table",{className:"rf-table-auto rf-w-full rf-text-left",children:[ft.jsx("thead",{children:ft.jsx("tr",{children:l.map(u=>ft.jsx("th",{className:"rf-px-4 rf-py-2 rf-border-b",children:u.renderHeaderCell?u.renderHeaderCell(u):u.name},u.key))})}),ft.jsx("tbody",{children:c.map((u,f)=>ft.jsx("tr",{className:"rf-hover:bg-gray-100",children:l.map(y=>ft.jsx("td",{className:"rf-px-4 rf-py-2 rf-border-b",children:y.renderCell?y.renderCell(u):u[y.key]},y.key))},f))})]})}),ft.jsx(xDt,{open:e.open,onClose:()=>t({open:!1}),title:e.open?e.title:"",children:ft.jsx("div",{className:"rf-bg-gray-800 rf-p-3 rf-text-white rf-rounded",children:ft.jsx("pre",{className:"rf-whitespace-pre-wrap",children:e.open?JSON.stringify(e.element,null,2):""})})})]})},SDt=(r,e)=>r==="jlcpcb"?ft.jsx("a",{className:"rf-underline rf-text-blue-500",target:"_blank",rel:"noreferrer",href:`https://jlcpcb.com/partdetail/${e}`,children:e}):e,EDt=({circuitJson:r})=>{const e=r.filter(n=>n.type==="source_component"),t=new Set;for(const n of e)if(n.supplier_part_numbers)for(const i of Object.keys(n.supplier_part_numbers))t.add(i);return ft.jsx("div",{className:"rf-overflow-x-auto",children:ft.jsxs("table",{className:"rf-w-full rf-text-left rf-text-sm",children:[ft.jsx("thead",{children:ft.jsxs("tr",{className:"rf-border-b",children:[ft.jsx("th",{className:"rf-p-2",children:"Name"}),Array.from(t).map(n=>ft.jsx("th",{className:"rf-p-2 rf-capitalize",children:n},n))]})}),ft.jsx("tbody",{children:e.map(n=>ft.jsxs("tr",{className:"rf-border-b",children:[ft.jsx("td",{className:"rf-p-2",children:n.name}),Array.from(t).map(i=>{var a,o;return ft.jsx("td",{className:"rf-p-2",children:SDt(i,((o=(a=n.supplier_part_numbers)==null?void 0:a[i])==null?void 0:o[0])||"")},i)})]},n.source_component_id))})]})})},wDt=({containerClassName:r,...e})=>{const t=wt.useRef(null),[n,i]=wt.useState(620);return wt.useLayoutEffect(()=>{const a=()=>{if(t.current){const s=t.current.clientHeight,l=window.innerHeight;i(Math.min(Math.max(s,620),l))}};a();const o=new ResizeObserver(a);return t.current&&o.observe(t.current),window.addEventListener("resize",a),()=>{o.disconnect(),window.removeEventListener("resize",a)}},[]),ft.jsx("div",{ref:t,className:r||"rf-w-full rf-h-full",children:ft.jsx(jwt,{...e,height:n})})},TDt='*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}:root{--radius:0.5rem}.rf-pointer-events-none{pointer-events:none}.rf-invisible{visibility:hidden}.rf-fixed{position:fixed}.rf-absolute{position:absolute}.rf-relative{position:relative}.rf-inset-0{inset:0}.-rf-left-2{left:-.5rem}.-rf-right-10{right:-2.5rem}.-rf-right-2{right:-.5rem}.-rf-right-4{right:-1rem}.-rf-right-6{right:-1.5rem}.-rf-right-7{right:-1.75rem}.-rf-right-8{right:-2rem}.-rf-right-9{right:-2.25rem}.rf-bottom-full{bottom:100%}.rf-left-0{left:0}.rf-left-1{left:.25rem}.rf-left-1\\/2{left:50%}.rf-left-2{left:.5rem}.rf-left-\\[50\\%\\]{left:50%}.rf-right-0{right:0}.rf-right-4{right:1rem}.rf-right-\\[4px\\]{right:4px}.rf-top-0{top:0}.rf-top-1{top:.25rem}.rf-top-2{top:.5rem}.rf-top-\\[50\\%\\]{top:50%}.rf-top-\\[6px\\]{top:6px}.rf-z-50{z-index:50}.rf-z-\\[100\\]{z-index:100}.rf--mx-1{margin-left:-.25rem;margin-right:-.25rem}.rf-mx-1{margin-left:.25rem;margin-right:.25rem}.rf-mx-2{margin-left:.5rem;margin-right:.5rem}.rf-my-1{margin-bottom:.25rem;margin-top:.25rem}.rf-my-auto{margin-bottom:auto;margin-top:auto}.rf-mb-2{margin-bottom:.5rem}.rf-mb-3{margin-bottom:.75rem}.rf-mb-4{margin-bottom:1rem}.rf-ml-1{margin-left:.25rem}.rf-ml-2{margin-left:.5rem}.rf-ml-auto{margin-left:auto}.rf-mr-1{margin-right:.25rem}.rf-mr-2{margin-right:.5rem}.rf-mt-0{margin-top:0}.rf-mt-1{margin-top:.25rem}.rf-mt-2{margin-top:.5rem}.rf-mt-4{margin-top:1rem}.rf-inline{display:inline}.rf-flex{display:flex}.rf-inline-flex{display:inline-flex}.rf-grid{display:grid}.rf-size-4{height:1rem;width:1rem}.\\!rf-h-2{height:.5rem!important}.\\!rf-h-2\\.5{height:.625rem!important}.\\!rf-h-3{height:.75rem!important}.\\!rf-h-full{height:100%!important}.rf-h-1{height:.25rem}.rf-h-10{height:2.5rem}.rf-h-2{height:.5rem}.rf-h-3{height:.75rem}.rf-h-3\\.5{height:.875rem}.rf-h-4{height:1rem}.rf-h-60{height:15rem}.rf-h-8{height:2rem}.rf-h-9{height:2.25rem}.rf-h-\\[620px\\]{height:620px}.rf-h-\\[calc\\(100vh-96px\\)\\]{height:calc(100vh - 96px)}.rf-h-fit{height:-moz-fit-content;height:fit-content}.rf-h-full{height:100%}.rf-h-px{height:1px}.rf-max-h-\\[500px\\]{max-height:500px}.rf-min-h-\\[620px\\]{min-height:620px}.rf-min-h-\\[calc\\(100vh-240px\\)\\]{min-height:calc(100vh - 240px)}.\\!rf-w-2{width:.5rem!important}.\\!rf-w-2\\.5{width:.625rem!important}.rf-w-1{width:.25rem}.rf-w-11{width:2.75rem}.rf-w-11\\/12{width:91.666667%}.rf-w-16{width:4rem}.rf-w-2{width:.5rem}.rf-w-3{width:.75rem}.rf-w-3\\.5{width:.875rem}.rf-w-32{width:8rem}.rf-w-4{width:1rem}.rf-w-64{width:16rem}.rf-w-72{width:18rem}.rf-w-8{width:2rem}.rf-w-9{width:2.25rem}.rf-w-96{width:24rem}.rf-w-fit{width:-moz-fit-content;width:fit-content}.rf-w-full{width:100%}.rf-min-w-10{min-width:2.5rem}.rf-min-w-16{min-width:4rem}.rf-min-w-\\[8rem\\]{min-width:8rem}.rf-max-w-2xl{max-width:42rem}.rf-max-w-lg{max-width:32rem}.rf-max-w-xl{max-width:36rem}.rf-shrink-0{flex-shrink:0}.rf-flex-grow{flex-grow:1}.rf-table-auto{table-layout:auto}.-rf-translate-x-1{--tw-translate-x:-0.25rem}.-rf-translate-x-1,.-rf-translate-x-1\\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rf-translate-x-1\\/2{--tw-translate-x:-50%}.-rf-translate-y-1{--tw-translate-y:-0.25rem}.-rf-translate-y-1,.rf--translate-x-1{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rf--translate-x-1{--tw-translate-x:-0.25rem}.rf-translate-x-\\[-50\\%\\]{--tw-translate-x:-50%}.rf-translate-x-\\[-50\\%\\],.rf-translate-y-\\[-50\\%\\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rf-translate-y-\\[-50\\%\\]{--tw-translate-y:-50%}.rf-transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes rf-spin{to{transform:rotate(1turn)}}.rf-animate-spin{animation:rf-spin 1s linear infinite}.rf-cursor-default{cursor:default}.rf-cursor-pointer{cursor:pointer}.rf-select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.rf-flex-col{flex-direction:column}.rf-flex-col-reverse{flex-direction:column-reverse}.rf-place-items-center{place-items:center}.rf-items-center{align-items:center}.rf-justify-end{justify-content:flex-end}.rf-justify-center{justify-content:center}.rf-justify-between{justify-content:space-between}.rf-gap-0{gap:0}.rf-gap-1{gap:.25rem}.rf-gap-2{gap:.5rem}.rf-gap-3{gap:.75rem}.rf-gap-4{gap:1rem}.rf-gap-5{gap:1.25rem}.rf-gap-6{gap:1.5rem}.rf-space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.rf-space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.rf-overflow-auto{overflow:auto}.rf-overflow-hidden{overflow:hidden}.rf-overflow-visible{overflow:visible}.rf-overflow-x-auto{overflow-x:auto}.rf-overflow-y-auto{overflow-y:auto}.rf-overflow-x-hidden{overflow-x:hidden}.rf-truncate{overflow:hidden;text-overflow:ellipsis}.rf-truncate,.rf-whitespace-nowrap{white-space:nowrap}.rf-whitespace-pre-wrap{white-space:pre-wrap}.rf-break-words{overflow-wrap:break-word}.rf-rounded{border-radius:.25rem}.rf-rounded-full{border-radius:9999px}.rf-rounded-lg{border-radius:var(--radius)}.rf-rounded-md{border-radius:calc(var(--radius) - 2px)}.rf-rounded-sm{border-radius:calc(var(--radius) - 4px)}.rf-border{border-width:1px}.rf-border-b{border-bottom-width:1px}.rf-border-green-200{--tw-border-opacity:1;border-color:rgb(187 247 208/var(--tw-border-opacity,1))}.rf-border-neutral-200{--tw-border-opacity:1;border-color:rgb(229 229 229/var(--tw-border-opacity,1))}.rf-border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.rf-border-zinc-200{--tw-border-opacity:1;border-color:rgb(228 228 231/var(--tw-border-opacity,1))}.rf-bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.rf-bg-black\\/80{background-color:rgba(0,0,0,.8)}.rf-bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.rf-bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.rf-bg-blue-600\\/70{background-color:rgba(37,99,235,.7)}.rf-bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.rf-bg-gray-500{--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity,1))}.rf-bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.rf-bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.rf-bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.rf-bg-neutral-100{--tw-bg-opacity:1;background-color:rgb(245 245 245/var(--tw-bg-opacity,1))}.rf-bg-neutral-50{--tw-bg-opacity:1;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))}.rf-bg-neutral-800{--tw-bg-opacity:1;background-color:rgb(38 38 38/var(--tw-bg-opacity,1))}.rf-bg-neutral-900{--tw-bg-opacity:1;background-color:rgb(23 23 23/var(--tw-bg-opacity,1))}.rf-bg-orange-400{--tw-bg-opacity:1;background-color:rgb(251 146 60/var(--tw-bg-opacity,1))}.rf-bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.rf-bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.rf-bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.rf-bg-red-900{--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.rf-bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.rf-bg-zinc-100{--tw-bg-opacity:1;background-color:rgb(244 244 245/var(--tw-bg-opacity,1))}.rf-bg-zinc-200{--tw-bg-opacity:1;background-color:rgb(228 228 231/var(--tw-bg-opacity,1))}.rf-bg-zinc-50{--tw-bg-opacity:1;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))}.rf-bg-zinc-800{--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))}.rf-bg-zinc-900{--tw-bg-opacity:1;background-color:rgb(24 24 27/var(--tw-bg-opacity,1))}.rf-bg-opacity-50{--tw-bg-opacity:0.5}.rf-fill-current{fill:currentColor}.rf-p-0{padding:0}.rf-p-0\\.5{padding:.125rem}.rf-p-1{padding:.25rem}.rf-p-2{padding:.5rem}.rf-p-3{padding:.75rem}.rf-p-4{padding:1rem}.rf-p-5{padding:1.25rem}.rf-p-6{padding:1.5rem}.rf-px-1{padding-left:.25rem;padding-right:.25rem}.rf-px-1\\.5{padding-left:.375rem;padding-right:.375rem}.rf-px-2{padding-left:.5rem;padding-right:.5rem}.rf-px-3{padding-left:.75rem;padding-right:.75rem}.rf-px-4{padding-left:1rem;padding-right:1rem}.rf-px-8{padding-left:2rem;padding-right:2rem}.rf-py-0{padding-bottom:0;padding-top:0}.rf-py-1{padding-bottom:.25rem;padding-top:.25rem}.rf-py-1\\.5{padding-bottom:.375rem;padding-top:.375rem}.rf-py-10{padding-bottom:2.5rem;padding-top:2.5rem}.rf-py-2{padding-bottom:.5rem;padding-top:.5rem}.rf-pb-0{padding-bottom:0}.rf-pb-4{padding-bottom:1rem}.rf-pl-2{padding-left:.5rem}.rf-pl-8{padding-left:2rem}.rf-pr-2{padding-right:.5rem}.rf-text-left{text-align:left}.rf-text-center{text-align:center}.rf-font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.rf-text-2xl{font-size:1.5rem;line-height:2rem}.rf-text-\\[8px\\]{font-size:8px}.rf-text-lg{font-size:1.125rem;line-height:1.75rem}.rf-text-sm{font-size:.875rem;line-height:1.25rem}.rf-text-xs{font-size:.75rem;line-height:1rem}.rf-font-bold{font-weight:700}.rf-font-medium{font-weight:500}.rf-font-semibold{font-weight:600}.rf-capitalize{text-transform:capitalize}.rf-tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.rf-leading-5{line-height:1.25rem}.rf-tracking-widest{letter-spacing:.1em}.rf-text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.rf-text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.rf-text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.rf-text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.rf-text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.rf-text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.rf-text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.rf-text-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.rf-text-neutral-50{--tw-text-opacity:1;color:rgb(250 250 250/var(--tw-text-opacity,1))}.rf-text-neutral-500{--tw-text-opacity:1;color:rgb(115 115 115/var(--tw-text-opacity,1))}.rf-text-neutral-900{--tw-text-opacity:1;color:rgb(23 23 23/var(--tw-text-opacity,1))}.rf-text-neutral-950{--tw-text-opacity:1;color:rgb(10 10 10/var(--tw-text-opacity,1))}.rf-text-red-200{--tw-text-opacity:1;color:rgb(254 202 202/var(--tw-text-opacity,1))}.rf-text-red-300{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.rf-text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.rf-text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.rf-text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.rf-text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.rf-text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.rf-text-red-900{--tw-text-opacity:1;color:rgb(127 29 29/var(--tw-text-opacity,1))}.rf-text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.rf-text-zinc-200{--tw-text-opacity:1;color:rgb(228 228 231/var(--tw-text-opacity,1))}.rf-text-zinc-300{--tw-text-opacity:1;color:rgb(212 212 216/var(--tw-text-opacity,1))}.rf-text-zinc-400{--tw-text-opacity:1;color:rgb(161 161 170/var(--tw-text-opacity,1))}.rf-text-zinc-50{--tw-text-opacity:1;color:rgb(250 250 250/var(--tw-text-opacity,1))}.rf-text-zinc-500{--tw-text-opacity:1;color:rgb(113 113 122/var(--tw-text-opacity,1))}.rf-text-zinc-900{--tw-text-opacity:1;color:rgb(24 24 27/var(--tw-text-opacity,1))}.rf-text-zinc-950{--tw-text-opacity:1;color:rgb(9 9 11/var(--tw-text-opacity,1))}.rf-underline{text-decoration-line:underline}.rf-underline-offset-4{text-underline-offset:4px}.rf-opacity-0{opacity:0}.rf-opacity-25{opacity:.25}.rf-opacity-30{opacity:.3}.rf-opacity-50{opacity:.5}.rf-opacity-60{opacity:.6}.rf-shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.rf-shadow,.rf-shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.rf-shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.rf-shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.rf-shadow-md,.rf-shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.rf-shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.rf-outline-none{outline:2px solid transparent;outline-offset:2px}.rf-ring-offset-white{--tw-ring-offset-color:#fff}.rf-transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.rf-transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.rf-transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.rf-duration-200{transition-duration:.2s}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.rf-slide-in-from-left-1{--tw-enter-translate-x:-0.25rem}.rf-slide-out-to-left-1{--tw-exit-translate-x:-0.25rem}.rf-duration-200{animation-duration:.2s}.hover\\:\\!rf-bg-transparent:hover{background-color:transparent!important}.hover\\:rf-bg-blue-700:hover{--tw-bg-opacity:1;background-color:rgb(29 78 216/var(--tw-bg-opacity,1))}.hover\\:rf-bg-red-500\\/90:hover{background-color:rgba(239,68,68,.9)}.hover\\:rf-bg-zinc-100:hover{--tw-bg-opacity:1;background-color:rgb(244 244 245/var(--tw-bg-opacity,1))}.hover\\:rf-bg-zinc-100\\/80:hover{background-color:hsla(240,5%,96%,.8)}.hover\\:rf-bg-zinc-900\\/90:hover{background-color:rgba(24,24,27,.9)}.hover\\:rf-text-red-400:hover{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.hover\\:rf-text-zinc-900:hover{--tw-text-opacity:1;color:rgb(24 24 27/var(--tw-text-opacity,1))}.hover\\:rf-underline:hover{text-decoration-line:underline}.focus\\:rf-bg-zinc-100:focus{--tw-bg-opacity:1;background-color:rgb(244 244 245/var(--tw-bg-opacity,1))}.focus\\:rf-text-zinc-900:focus{--tw-text-opacity:1;color:rgb(24 24 27/var(--tw-text-opacity,1))}.focus-visible\\:rf-outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\\:rf-ring-1:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\\:rf-ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\\:rf-ring-zinc-950:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgb(9 9 11/var(--tw-ring-opacity,1))}.focus-visible\\:rf-ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.disabled\\:rf-pointer-events-none:disabled{pointer-events:none}.disabled\\:rf-bg-blue-600\\/60:disabled{background-color:rgba(37,99,235,.6)}.disabled\\:rf-opacity-50:disabled{opacity:.5}.rf-group\\/bar:hover .group-hover\\/bar\\:rf-opacity-100{opacity:1}.data-\\[disabled\\]\\:rf-pointer-events-none[data-disabled]{pointer-events:none}.data-\\[state\\=active\\]\\:rf-bg-white[data-state=active]{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.data-\\[state\\=open\\]\\:rf-bg-zinc-100[data-state=open]{--tw-bg-opacity:1;background-color:rgb(244 244 245/var(--tw-bg-opacity,1))}.data-\\[state\\=active\\]\\:rf-text-zinc-950[data-state=active]{--tw-text-opacity:1;color:rgb(9 9 11/var(--tw-text-opacity,1))}.data-\\[disabled\\]\\:rf-opacity-50[data-disabled]{opacity:.5}.data-\\[state\\=active\\]\\:rf-shadow[data-state=active]{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.data-\\[state\\=open\\]\\:rf-animate-in[data-state=open]{animation-duration:.15s;animation-name:enter;--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial}.data-\\[state\\=closed\\]\\:rf-animate-out[data-state=closed]{animation-duration:.15s;animation-name:exit;--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial}.data-\\[state\\=closed\\]\\:rf-fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\\[state\\=open\\]\\:rf-fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\\[state\\=closed\\]\\:rf-zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\\[state\\=open\\]\\:rf-zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\\[side\\=bottom\\]\\:rf-slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:-0.5rem}.data-\\[side\\=left\\]\\:rf-slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:0.5rem}.data-\\[side\\=right\\]\\:rf-slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:-0.5rem}.data-\\[side\\=top\\]\\:rf-slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:0.5rem}.data-\\[state\\=closed\\]\\:rf-slide-out-to-left-1\\/2[data-state=closed]{--tw-exit-translate-x:-50%}.data-\\[state\\=closed\\]\\:rf-slide-out-to-top-\\[48\\%\\][data-state=closed]{--tw-exit-translate-y:-48%}.data-\\[state\\=open\\]\\:rf-slide-in-from-left-1\\/2[data-state=open]{--tw-enter-translate-x:-50%}.data-\\[state\\=open\\]\\:rf-slide-in-from-top-\\[48\\%\\][data-state=open]{--tw-enter-translate-y:-48%}.dark\\:rf-border-zinc-800:is(.rf-dark *){--tw-border-opacity:1;border-color:rgb(39 39 42/var(--tw-border-opacity,1))}.dark\\:rf-bg-red-900:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.dark\\:rf-bg-zinc-50:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))}.dark\\:rf-bg-zinc-800:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))}.dark\\:rf-bg-zinc-950:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(9 9 11/var(--tw-bg-opacity,1))}.dark\\:rf-text-zinc-400:is(.rf-dark *){--tw-text-opacity:1;color:rgb(161 161 170/var(--tw-text-opacity,1))}.dark\\:rf-text-zinc-50:is(.rf-dark *){--tw-text-opacity:1;color:rgb(250 250 250/var(--tw-text-opacity,1))}.dark\\:rf-text-zinc-900:is(.rf-dark *){--tw-text-opacity:1;color:rgb(24 24 27/var(--tw-text-opacity,1))}.dark\\:rf-ring-offset-zinc-950:is(.rf-dark *){--tw-ring-offset-color:#09090b}.dark\\:hover\\:rf-bg-red-900\\/90:hover:is(.rf-dark *){background-color:rgba(127,29,29,.9)}.dark\\:hover\\:rf-bg-zinc-50\\/90:hover:is(.rf-dark *){background-color:hsla(0,0%,98%,.9)}.dark\\:hover\\:rf-bg-zinc-800:hover:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))}.dark\\:hover\\:rf-bg-zinc-800\\/80:hover:is(.rf-dark *){background-color:rgba(39,39,42,.8)}.dark\\:hover\\:rf-text-zinc-50:hover:is(.rf-dark *){--tw-text-opacity:1;color:rgb(250 250 250/var(--tw-text-opacity,1))}.dark\\:focus\\:rf-bg-zinc-800:focus:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))}.dark\\:focus\\:rf-text-zinc-50:focus:is(.rf-dark *){--tw-text-opacity:1;color:rgb(250 250 250/var(--tw-text-opacity,1))}.dark\\:focus-visible\\:rf-ring-zinc-300:focus-visible:is(.rf-dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(212 212 216/var(--tw-ring-opacity,1))}.dark\\:data-\\[state\\=active\\]\\:rf-bg-zinc-950[data-state=active]:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(9 9 11/var(--tw-bg-opacity,1))}.dark\\:data-\\[state\\=open\\]\\:rf-bg-zinc-800[data-state=open]:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))}.dark\\:data-\\[state\\=active\\]\\:rf-text-zinc-50[data-state=active]:is(.rf-dark *){--tw-text-opacity:1;color:rgb(250 250 250/var(--tw-text-opacity,1))}@media (min-width:640px){.sm\\:rf-mt-0{margin-top:0}.sm\\:rf-flex-row{flex-direction:row}.sm\\:rf-justify-end{justify-content:flex-end}.sm\\:rf-space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.sm\\:rf-rounded-lg{border-radius:var(--radius)}.sm\\:rf-text-left{text-align:left}}.\\[\\&\\>svg\\]\\:rf-size-4>svg{height:1rem;width:1rem}.\\[\\&\\>svg\\]\\:rf-shrink-0>svg{flex-shrink:0}.\\[\\&\\>svg\\]\\:rf-text-red-300>svg{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.\\[\\&\\>svg\\]\\:hover\\:rf-text-red-400:hover>svg{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.\\[\\&_svg\\]\\:rf-pointer-events-none svg{pointer-events:none}.\\[\\&_svg\\]\\:rf-size-4 svg{height:1rem;width:1rem}.\\[\\&_svg\\]\\:rf-shrink-0 svg{flex-shrink:0}',MDt=()=>{wt.useEffect(()=>{if(document.querySelector('style[data-styles="tscircuit-runframe"]'))return;const e=document.createElement("style");e.setAttribute("data-styles","tscircuit-runframe"),e.textContent=TDt,document.head.appendChild(e)},[])},rLe=r=>`hsl(${O3.indexOf(r)*137.5%360}, 70%, 50%)`,CDt=({phaseTimings:r})=>{if(!r)return null;const e=Object.values(r).reduce((t,n)=>t+n,0);return ft.jsxs("div",{className:"rf-space-y-2 rf-w-full rf-px-4",children:[ft.jsx("div",{className:"rf-relative rf-h-8 rf-flex rf-rounded-sm",children:O3.map(t=>{const n=r[t]||0,i=n/e*100;return ft.jsx("div",{className:"rf-group/bar rf-relative rf-overflow-visible",style:{width:`${i}%`,backgroundColor:rLe(t)},children:ft.jsxs("div",{className:"rf-opacity-0 group-hover/bar:rf-opacity-100 rf-transition-opacity rf-absolute rf-bottom-full rf-left-1/2 rf-transform -rf-translate-x-1/2 rf-mb-2 rf-px-2 rf-py-1 rf-text-xs rf-whitespace-nowrap rf-rounded rf-bg-gray-900 rf-text-white rf-pointer-events-none",children:[t,": ",n.toFixed(1),"ms"]})},t)})}),ft.jsxs("div",{className:"rf-text-xs rf-text-gray-500",children:["Total: ",e.toFixed(2),"ms"]})]})},RDt=({renderLog:r})=>{const[e,t]=wt.useState("chronological");if(!r)return ft.jsx("div",{className:"rf-p-4 rf-bg-gray-100 rf-rounded-md",children:"No render log, make sure this tab is open when you render (TODO add a rerender button here)"});const n=Object.entries((r==null?void 0:r.phaseTimings)??{});e==="chronological"?n.sort((a,o)=>O3.indexOf(a[0])-O3.indexOf(o[0])):n.sort((a,o)=>o[1]-a[1]);const i=n.reduce((a,[o,s])=>a+s,0);return ft.jsxs("div",{className:"rf-bg-white",children:[ft.jsxs("div",{className:"rf-flex rf-justify-between rf-items-center",children:[ft.jsx("div",{children:"Render Logs"}),ft.jsxs("div",{className:"rf-mb-4 rf-pr-2 rf-flex rf-text-xs rf-items-center",children:[ft.jsx("div",{className:"rf-mr-2",children:"Sort by:"}),ft.jsxs("select",{value:e,onChange:a=>t(a.target.value),className:"rf-px-2 rf-py-1 rf-border rf-rounded rf-text-xs",children:[ft.jsx("option",{value:"chronological",children:"Phase Order"}),ft.jsx("option",{value:"longest",children:"Duration"})]})]})]}),ft.jsx(CDt,{phaseTimings:r.phaseTimings}),ft.jsxs("table",{className:"rf-w-full rf-text-xs",children:[ft.jsx("thead",{children:ft.jsxs("tr",{children:[ft.jsx("th",{className:"rf-text-left rf-p-2",children:"Phase Order"}),ft.jsx("th",{className:"rf-text-left rf-p-2",children:"Phase"}),ft.jsx("th",{className:"rf-text-left rf-p-2",children:"Duration (ms)"})]})}),ft.jsx("tbody",{children:n.map(([a,o])=>ft.jsxs("tr",{children:[ft.jsx("td",{className:"rf-p-2",children:O3.indexOf(a)}),ft.jsx("td",{className:"rf-p-2",children:a}),ft.jsx("td",{className:"rf-p-2",children:ft.jsx("div",{className:"rf-w-8",children:ft.jsx("div",{className:"rf-h-2 rf-rounded-sm",style:{backgroundColor:rLe(a),width:`${o/i*100}%`}})})}),ft.jsx("td",{className:"rf-p-2",children:ft.jsxs("div",{className:"rf-flex w-full",children:[ft.jsxs("span",{className:"rf-flex-grow",children:[o,"ms"]}),ft.jsxs("span",{className:"rf-text-gray-500 rf-pr-2",children:[(o/i*100).toFixed(1),"%"]})]})})]},a))})]})]})},ADt="0.0.238",NDt=["assembly","bom","circuit_json","errors","render_log"],PDt=({code:r,onRunClicked:e=void 0,errorMessage:t,circuitJsonKey:n="",circuitJson:i,autoroutingGraphics:a,showRightHeaderContent:o=!0,showCodeTab:s=!1,codeTabContent:l,showJsonTab:c=!0,showRenderLogTab:u=!0,onActiveTabChange:f,renderLog:y,showImportAndFormatButtons:_=!0,className:x,headerClassName:M,leftHeaderContent:w,readOnly:T,isStreaming:L,autoroutingLog:O,onReportAutoroutingLog:B,isRunningCode:W,hasCodeChangedSinceLastRun:$,onEditEvent:Q,editEvents:te,defaultActiveTab:ae,autoRotate3dViewerDisabled:K,showSchematicDebugGrid:pe=!1,showToggleFullScreen:ve=!0})=>{var je;MDt();const[be,Pe]=wt.useState(ae??"pcb"),[Oe,we]=wt.useState(!1),Le=wt.useCallback(ze=>{Pe(ze),f==null||f(ze)},[f]),Me=()=>{we(!Oe)};return wt.useEffect(()=>{t&&Le("errors")},[t]),wt.useEffect(()=>{(be==="code"||be==="errors")&&i&&!t&&Le(ae??"pcb")},[i]),ft.jsx("div",{className:Yg("flex flex-col relative rf-overflow-x-hidden",x),children:ft.jsx("div",{className:Yg("rf-md:sticky rf-md:top-2",Oe&&"rf-fixed rf-top-0 rf-left-0 rf-w-full rf-bg-white"),children:ft.jsxs(aIe,{value:be,onValueChange:Le,className:"rf-flex-grow rf-flex rf-flex-col",children:[ft.jsxs("div",{className:Yg("rf-flex rf-items-center rf-gap-2 rf-p-2 rf-pb-0",M),children:[w,w&&ft.jsx("div",{className:"rf-flex-grow"}),!w&&W&&ft.jsx(RCe,{className:"rf-w-4 rf-h-4 rf-animate-spin"}),!w&&ft.jsx("div",{className:"rf-flex-grow"}),y&&y.progress!==1&&ft.jsxs("div",{className:"rf-flex rf-items-center rf-gap-2",children:[y.lastRenderEvent&&ft.jsx("div",{className:"rf-text-xs rf-text-gray-500",children:(je=y.lastRenderEvent)==null?void 0:je.type.split("renderable:renderLifecycle:")[1].split(":")[0]}),ft.jsx("div",{className:"rf-w-4 rf-h-4 rf-bg-blue-500 rf-opacity-50 rf-rounded-full rf-text-white",children:ft.jsx(RCe,{className:"rf-w-4 rf-h-4 rf-animate-spin"})}),ft.jsxs("div",{className:"rf-text-xs rf-font-bold rf-text-gray-700 rf-tabular-nums",children:[((y.progress??0)*100).toFixed(1),"%"]})]}),o&&ft.jsxs(Pae,{children:[s&&ft.jsx(Vw,{value:"code",children:"Code"}),ft.jsxs(Vw,{value:"pcb",className:"rf-whitespace-nowrap",children:[i&&ft.jsx("span",{className:Yg("rf-inline-flex rf-items-center rf-justify-center rf-w-2 rf-h-2 rf-mr-1 rf-text-xs rf-font-bold rf-text-white rf-rounded-full",$?"rf-bg-gray-500":"rf-bg-blue-500")}),"PCB"]}),ft.jsxs(Vw,{value:"schematic",className:"rf-whitespace-nowrap",children:[i&&ft.jsx("span",{className:Yg("rf-inline-flex rf-items-center rf-justify-center rf-w-2 rf-h-2 rf-mr-1 rf-text-xs rf-font-bold rf-text-white rf-rounded-full",$?"rf-bg-gray-500":"rf-bg-blue-500")}),"Schematic"]}),ft.jsxs(Vw,{value:"cad",children:[i&&ft.jsx("span",{className:Yg("inline-flex items-center justify-center w-2 h-2 mr-1 text-xs font-bold text-white rounded-full",$?"rf-bg-gray-500":"rf-bg-blue-500")}),"3D"]}),!["pcb","cad","schematic"].includes(be)&&ft.jsx(Vw,{value:be,children:Nae(be)}),ft.jsxs(kAe,{children:[ft.jsx(FAe,{asChild:!0,children:ft.jsxs("div",{className:"rf-whitespace-nowrap rf-p-2 rf-mr-1 rf-cursor-pointer rf-relative",children:[ft.jsx(n8t,{className:"rf-w-4 rf-h-4"}),t&&ft.jsx("span",{className:"rf-inline-flex rf-absolute rf-top-[6px] rf-right-[4px] rf-items-center rf-justify-center rf-w-1 rf-h-1 rf-ml-2 rf-text-[8px] rf-font-bold rf-text-white rf-bg-red-500 rf-rounded-full"})]})}),ft.jsxs(lne,{className:"rf-*:text-xs",children:[NDt.map(ze=>ft.jsxs(Tz,{onSelect:()=>Le(ze),children:[be!==ze&&ft.jsx(CCe,{className:"rf-w-3 rf-h-3 rf-opacity-30"}),be===ze&&ft.jsx(MCe,{className:"rf-w-3 rf-h-3"}),ft.jsx("div",{className:"rf-pr-2",children:Nae(ze)}),ze==="errors"&&t&&ft.jsx("span",{className:"rf-inline-flex rf-items-center rf-justify-center rf-w-3 rf-h-3 rf-ml-2 rf-text-[8px] rf-font-bold rf-text-white rf-bg-red-500 rf-rounded-full",children:"1"})]},ze)),ft.jsx(Tz,{disabled:!0,className:"rf-opacity-60 rf-cursor-default rf-select-none",children:ft.jsxs("div",{className:"rf-pr-2 rf-text-xs rf-text-gray-500",children:["@tscircuit/runframe@",ADt.split(".").map((ze,Ve)=>Ve===2?parseInt(ze)+1:ze).join(".")]})})]})]})]}),ve&&ft.jsx(V4,{onClick:Me,variant:"ghost",children:Oe?ft.jsx(i8t,{size:16}):ft.jsx(r8t,{size:16})})]}),s&&ft.jsx(Pb,{value:"code",className:"rf-flex-grow rf-overflow-hidden",children:ft.jsx("div",{className:"rf-h-full",children:l})}),ft.jsx(Pb,{value:"pcb",children:ft.jsx("div",{className:Yg("rf-overflow-hidden",Oe?"rf-h-[calc(100vh-96px)]":"rf-h-[620px]"),children:ft.jsx(PT,{fallbackRender:({error:ze})=>ft.jsx("div",{className:"rf-mt-4 rf-bg-red-50 rf-rounded-md rf-border rf-border-red-200",children:ft.jsxs("div",{className:"rf-p-4",children:[ft.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-text-red-800 rf-mb-3",children:"Error loading PCB viewer"}),ft.jsx("p",{className:"rf-text-xs rf-font-mono rf-whitespace-pre-wrap rf-text-red-600 rf-mt-2",children:(ze==null?void 0:ze.message)||"An unknown error occurred"})]})}),children:i?ft.jsx(wDt,{disableAutoFocus:!0,focusOnHover:!1,circuitJson:i,debugGraphics:a,containerClassName:Yg("rf-h-full rf-w-full",Oe?"rf-min-h-[calc(100vh-240px)]":"rf-min-h-[620px]")},n):ft.jsx(Rw,{onRunClicked:e})})})}),ft.jsx(Pb,{value:"assembly",children:ft.jsx("div",{className:Yg("rf-overflow-auto",Oe?"rf-h-[calc(100vh-96px)]":"rf-h-[620px]"),children:ft.jsx(PT,{fallback:ft.jsx("div",{children:"Error loading Assembly"}),children:i?ft.jsx(_Dt,{circuitJson:i,containerStyle:{height:"100%"},editingEnabled:!0,debugGrid:!0}):ft.jsx(Rw,{onRunClicked:e})})})}),ft.jsx(Pb,{value:"schematic",children:ft.jsx("div",{className:Yg("rf-overflow-auto",Oe?"rf-h-[calc(100vh-96px)]":"rf-h-[620px]"),children:ft.jsx(PT,{fallbackRender:({error:ze})=>ft.jsx("div",{className:"rf-mt-4 rf-bg-red-50 rf-rounded-md rf-border rf-border-red-200",children:ft.jsxs("div",{className:"rf-p-4",children:[ft.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-text-red-800 rf-mb-3",children:"Error loading Schematic"}),ft.jsx("p",{className:"rf-text-xs rf-font-mono rf-whitespace-pre-wrap rf-text-red-600 rf-mt-2",children:(ze==null?void 0:ze.message)||"An unknown error occurred"})]})}),children:i?ft.jsx(vDt,{circuitJson:i,containerStyle:{height:"100%"},editingEnabled:!0,onEditEvent:ze=>Q==null?void 0:Q(ze),editEvents:te,debugGrid:pe}):ft.jsx(Rw,{onRunClicked:e})})})}),ft.jsx(Pb,{value:"cad",children:ft.jsx("div",{className:Yg("rf-overflow-auto",Oe?"rf-h-[calc(100vh-96px)]":"rf-h-[620px]"),children:ft.jsx(PT,{FallbackComponent:Vwt,children:i?ft.jsx(Rbt,{soup:i,autoRotateDisabled:K}):ft.jsx(Rw,{onRunClicked:e})})})}),ft.jsx(Pb,{value:"bom",children:ft.jsx("div",{className:Yg("rf-overflow-auto",Oe?"rf-h-[calc(100vh-96px)]":"rf-h-[620px]"),children:ft.jsx(PT,{fallbackRender:({error:ze})=>ft.jsx("div",{className:"rf-mt-4 rf-bg-red-50 rf-rounded-md rf-border rf-border-red-200",children:ft.jsxs("div",{className:"rf-p-4",children:[ft.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-text-red-800 rf-mb-3",children:"Error loading Bill of Materials"}),ft.jsx("p",{className:"rf-text-xs rf-font-mono rf-whitespace-pre-wrap rf-text-red-600 rf-mt-2",children:(ze==null?void 0:ze.message)||"An unknown error occurred"})]})}),children:i?ft.jsx(EDt,{circuitJson:i}):ft.jsx(Rw,{onRunClicked:e})})})}),ft.jsx(Pb,{value:"circuit_json",children:ft.jsx("div",{className:Yg("rf-overflow-auto",Oe?"rf-h-[calc(100vh-96px)]":"rf-h-[620px]"),children:ft.jsx(PT,{fallback:ft.jsx("div",{children:"Error loading JSON viewer"}),children:i?ft.jsx(bDt,{elements:i}):ft.jsx(Rw,{onRunClicked:e})})})}),ft.jsx(Pb,{value:"errors",children:i||t?ft.jsx(e7t,{code:r,errorMessage:t,autoroutingLog:O,onReportAutoroutingLog:B}):ft.jsx(Rw,{onRunClicked:e})}),u&&ft.jsx(Pb,{value:"render_log",children:ft.jsx(RDt,{renderLog:y})})]})})})};Kie.createRoot(document.getElementById("root")).render(ft.jsx(PDt,{defaultActiveTab:"cad",autoRotate3dViewerDisabled:!0,showRightHeaderContent:!1,circuitJson:window.CIRCUIT_JSON||{},...window.CIRCUIT_JSON_PREVIEW_PROPS||{}}))});
13344
+ `,i.appendChild(O)}})}};a();const o=new MutationObserver(a);return o.observe(i,{childList:!0,subtree:!1,characterData:!1}),()=>{o.disconnect()}},[r,t,e,n])},vDt=({circuitJson:r,containerStyle:e,editEvents:t=[],onEditEvent:n,defaultEditMode:i=!1,debugGrid:a=!1,editingEnabled:o=!1,debug:s=!1})=>{s&&uDt();const[l,c]=wt.useState(i),u=wt.useRef(null),{ref:f,cancelDrag:y,transform:_}=HAe({onSetTransform($){u.current&&(u.current.style.transform=aE($))}}),{containerWidth:x,containerHeight:M}=lDt(f),w=wt.useMemo(()=>!x||!M?"":Tre(r,{width:x,height:M||720,grid:a?{cellSize:1,labelCells:!0}:void 0}),[r,x,M]),T=wt.useMemo(()=>{var Q;if(!w)return Q_();const $=(Q=w.match(/data-real-to-screen-transform="([^"]+)"/))==null?void 0:Q[1];try{return hk($)}catch(te){return console.error(te),Q_()}},[w]),{handleMouseDown:L,isDragging:O,activeEditEvent:B}=hDt({onEditEvent:n,cancelDrag:y,realToSvgProjection:T,svgToScreenProjection:_,circuitJson:r,editEvents:t,enabled:l});pDt({svgDivRef:u,editEvents:t,realToSvgProjection:T,svgToScreenProjection:_,activeEditEvent:B}),mDt({svgDivRef:u,circuitJson:r,activeEditEvent:B,editEvents:t});const W=wt.useMemo(()=>ft.jsx("div",{ref:u,style:{pointerEvents:"auto",transformOrigin:"0 0"},dangerouslySetInnerHTML:{__html:w}}),[w]);return ft.jsxs("div",{ref:f,style:{position:"relative",backgroundColor:"#F5F1ED",overflow:"hidden",cursor:O?"grabbing":"grab",minHeight:"300px",...e},onMouseDown:L,children:[o&&ft.jsx(sDt,{active:l,onClick:()=>c(!l)}),W]})},yDt=r=>{const[e,t]=wt.useState(0),[n,i]=wt.useState(0);return wt.useEffect(()=>{if(!r.current)return;const a=()=>{var l;const s=(l=r.current)==null?void 0:l.getBoundingClientRect();t((s==null?void 0:s.width)||0),i((s==null?void 0:s.height)||0)};a();const o=new ResizeObserver(a);return o.observe(r.current),window.addEventListener("resize",a),()=>{o.disconnect(),window.removeEventListener("resize",a)}},[]),{containerWidth:e,containerHeight:n}};J2("assembly-viewer");var gDt=()=>{J2.enable("assembly-viewer*")},_Dt=({circuitJson:r,containerStyle:e,debugGrid:t=!1,debug:n=!1})=>{n&&gDt();const i=wt.useRef(null),{ref:a}=HAe({onSetTransform(u){i.current&&(i.current.style.transform=aE(u))}}),{containerWidth:o,containerHeight:s}=yDt(a),l=wt.useMemo(()=>!o||!s?"":QDe(r,{width:o,height:s||720}),[r,o,s]);wt.useMemo(()=>{var f;if(!l)return Q_();const u=(f=l.match(/data-real-to-screen-transform="([^"]+)"/))==null?void 0:f[1];try{return hk(u)}catch(y){return console.error(y),Q_()}},[l]);const c=wt.useMemo(()=>ft.jsx("div",{ref:i,style:{pointerEvents:"auto",transformOrigin:"0 0"},dangerouslySetInnerHTML:{__html:l}}),[l]);return ft.jsx("div",{ref:a,style:{position:"relative",backgroundColor:"#F5F1ED",overflow:"hidden",minHeight:"300px",...e},children:c})};const Rw=({onRunClicked:r})=>ft.jsxs("div",{className:"rf-flex rf-items-center rf-gap-3 rf-bg-gray-100 rf-text-center rf-justify-center rf-py-10",children:["No circuit json loaded",r&&ft.jsxs(V4,{className:"rf-bg-blue-600 rf-hover:bg-blue-500",onClick:r,children:["Run Code",ft.jsx(a8t,{className:"rf-w-3 rf-h-3 rf-ml-2"})]})]}),AU=({text:r,onClick:e})=>ft.jsx("span",{className:"rf-cursor-pointer rf-underline rf-text-blue-600 rf-mx-2",onClick:e,children:r}),NU=r=>{var e;return ft.jsxs("div",{className:"rf-leading-5",children:[ft.jsx("div",{className:"rf-py-2 rf-font-bold",children:r.column.name}),ft.jsx("div",{children:((e=r.field)==null?void 0:e.call(r))??ft.jsx("input",{type:"text",className:"rf-border rf-rounded rf-p-1 rf-w-full",onChange:t=>{var n;(n=r.onTextChange)==null||n.call(r,t.target.value)}})})]})},xDt=({open:r,children:e,title:t,onClose:n})=>r?ft.jsx("div",{className:"rf-fixed rf-inset-0 rf-bg-black rf-bg-opacity-50 rf-flex rf-justify-center rf-items-center rf-z-50",onClick:n,children:ft.jsxs("div",{className:"rf-bg-white rf-p-5 rf-rounded-lg rf-relative rf-w-11/12 rf-max-w-2xl",onClick:i=>{i.preventDefault(),i.stopPropagation()},children:[ft.jsx("h2",{className:"rf-mt-0 rf-text-md rf-pb-4",children:t}),ft.jsx("button",{type:"button",className:"rf-absolute rf-top-2 rf-right-4 rf-text-2xl rf-font-bold",onClick:n,children:"×"}),e]})}):null,bDt=({elements:r})=>{const[e,t]=wt.useState({open:!1}),[n,i]=wt.useReducer((u,f)=>({...u,...f}),{}),a=[...new Set(r.map(u=>u.type))],o=r.map(u=>{const f=u[`${u.type}_id`],y=Object.fromEntries(Object.entries(u).filter(([x])=>!(x===`${u.type}_id`||!x.endsWith("_id")))),_=Object.fromEntries(Object.entries(u).filter(([x])=>!x.endsWith("_id")));return{primary_id:f,other_ids:y,..._,_og_elm:u}}),s=o.map(u=>{let f="";const y=_=>{const x=Object.keys(_.other_ids).find(T=>T.startsWith("source_"));if(!x)return`.${_.name}`;const M=x.slice(0,-3),w=o.find(T=>T.type===M&&T.primary_id===_.other_ids[x]);return w?"name"in w?`${y(w)} > .${_.name}`:`#${w.primary_id} > .${_.name}`:`??? > .${_.name}`};return"name"in u&&(f=y(u)),{...u,selector_path:f}}),l=[{key:"primary_id",name:"primary_id",renderCell:u=>ft.jsxs("div",{className:"rf-flex rf-items-center",children:[ft.jsx(AU,{text:u.primary_id,onClick:()=>i({focused_id:u.primary_id,id_search:void 0,selector_search:void 0})}),ft.jsx("span",{className:"rf-flex-grow"}),ft.jsx(AU,{text:"(JSON)",onClick:()=>t({open:!0,element:u._og_elm,title:u.primary_id})})]}),renderHeaderCell:u=>ft.jsx(NU,{column:u,onTextChange:f=>i({id_search:f}),field:n.focused_id?()=>ft.jsxs("div",{children:["Focus:"," ",ft.jsx("span",{className:"rf-underline",children:n.focused_id}),ft.jsx(AU,{text:"(unfocus)",onClick:()=>i({focused_id:void 0})})]}):void 0})},{key:"type",name:"type",renderHeaderCell:u=>ft.jsx(NU,{column:u,field:()=>ft.jsxs("select",{onChange:f=>i({component_type_filter:f.target.value}),className:"rf-border rf-rounded rf-p-1 rf-w-full",children:[ft.jsx("option",{value:"any",children:"any"},"any"),ft.jsx("option",{value:"source",children:"source"},"source"),ft.jsx("option",{value:"source/pcb",children:"source/pcb"},"source/pcb"),ft.jsx("option",{value:"source/schematic",children:"source/schematic"},"source/schematic"),a.map(f=>ft.jsx("option",{value:f,children:f},f))]})})},{key:"name",name:"name",renderHeaderCell:u=>ft.jsx(NU,{column:u,onTextChange:f=>i({name_search:f})})},{key:"selector_path",name:"selector_path",renderHeaderCell:u=>ft.jsx(NU,{column:u,onTextChange:f=>i({selector_search:f})})},{key:"other_ids",name:"other_ids",renderCell:u=>ft.jsx("div",{className:"rf-space-x-2",children:Object.entries(u.other_ids).map(([f,y])=>ft.jsx(AU,{text:y,onClick:()=>i({focused_id:y})},y))})}],c=s.filter(u=>{var f,y;return n.name_search?(y=(f=u.name)==null?void 0:f.toLowerCase())==null?void 0:y.includes(n.name_search.toLowerCase()):!0}).filter(u=>{var f;return!n.component_type_filter||n.component_type_filter==="any"?!0:n.component_type_filter==="source"?u.type.startsWith("source_"):n.component_type_filter==="source/pcb"?u.type.startsWith("source_")||u.type.startsWith("pcb_"):n.component_type_filter==="source/schematic"?u.type.startsWith("source_")||u.type.startsWith("schematic_"):(f=u.type)==null?void 0:f.includes(n.component_type_filter)}).filter(u=>n.selector_search?n.selector_search.split(" ").filter(y=>y.length>0).every(y=>{var _;return(_=u.selector_path)==null?void 0:_.includes(y)}):!0).filter(u=>{var f;return n.id_search?(f=u.primary_id)==null?void 0:f.includes(n.id_search):!0}).filter(u=>!!(!n.focused_id||u.primary_id===n.focused_id||Object.values(u.other_ids).includes(n.focused_id)));return ft.jsxs("div",{className:"rf-font-mono rf-text-xs rf-bg-white",children:[ft.jsx("div",{className:"rf-overflow-x-auto",children:ft.jsxs("table",{className:"rf-table-auto rf-w-full rf-text-left",children:[ft.jsx("thead",{children:ft.jsx("tr",{children:l.map(u=>ft.jsx("th",{className:"rf-px-4 rf-py-2 rf-border-b",children:u.renderHeaderCell?u.renderHeaderCell(u):u.name},u.key))})}),ft.jsx("tbody",{children:c.map((u,f)=>ft.jsx("tr",{className:"rf-hover:bg-gray-100",children:l.map(y=>ft.jsx("td",{className:"rf-px-4 rf-py-2 rf-border-b",children:y.renderCell?y.renderCell(u):u[y.key]},y.key))},f))})]})}),ft.jsx(xDt,{open:e.open,onClose:()=>t({open:!1}),title:e.open?e.title:"",children:ft.jsx("div",{className:"rf-bg-gray-800 rf-p-3 rf-text-white rf-rounded",children:ft.jsx("pre",{className:"rf-whitespace-pre-wrap",children:e.open?JSON.stringify(e.element,null,2):""})})})]})},SDt=(r,e)=>r==="jlcpcb"?ft.jsx("a",{className:"rf-underline rf-text-blue-500",target:"_blank",rel:"noreferrer",href:`https://jlcpcb.com/partdetail/${e}`,children:e}):e,EDt=({circuitJson:r})=>{const e=r.filter(n=>n.type==="source_component"),t=new Set;for(const n of e)if(n.supplier_part_numbers)for(const i of Object.keys(n.supplier_part_numbers))t.add(i);return ft.jsx("div",{className:"rf-overflow-x-auto",children:ft.jsxs("table",{className:"rf-w-full rf-text-left rf-text-sm",children:[ft.jsx("thead",{children:ft.jsxs("tr",{className:"rf-border-b",children:[ft.jsx("th",{className:"rf-p-2",children:"Name"}),Array.from(t).map(n=>ft.jsx("th",{className:"rf-p-2 rf-capitalize",children:n},n))]})}),ft.jsx("tbody",{children:e.map(n=>ft.jsxs("tr",{className:"rf-border-b",children:[ft.jsx("td",{className:"rf-p-2",children:n.name}),Array.from(t).map(i=>{var a,o;return ft.jsx("td",{className:"rf-p-2",children:SDt(i,((o=(a=n.supplier_part_numbers)==null?void 0:a[i])==null?void 0:o[0])||"")},i)})]},n.source_component_id))})]})})},wDt=({containerClassName:r,...e})=>{const t=wt.useRef(null),[n,i]=wt.useState(620);return wt.useLayoutEffect(()=>{const a=()=>{if(t.current){const s=t.current.clientHeight,l=window.innerHeight;i(Math.min(Math.max(s,620),l))}};a();const o=new ResizeObserver(a);return t.current&&o.observe(t.current),window.addEventListener("resize",a),()=>{o.disconnect(),window.removeEventListener("resize",a)}},[]),ft.jsx("div",{ref:t,className:r||"rf-w-full rf-h-full",children:ft.jsx(jwt,{...e,height:n})})},TDt='*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}:root{--radius:0.5rem}.rf-pointer-events-none{pointer-events:none}.rf-invisible{visibility:hidden}.rf-fixed{position:fixed}.rf-absolute{position:absolute}.rf-relative{position:relative}.rf-inset-0{inset:0}.-rf-left-2{left:-.5rem}.-rf-right-10{right:-2.5rem}.-rf-right-2{right:-.5rem}.-rf-right-4{right:-1rem}.-rf-right-6{right:-1.5rem}.-rf-right-7{right:-1.75rem}.-rf-right-8{right:-2rem}.-rf-right-9{right:-2.25rem}.rf-bottom-full{bottom:100%}.rf-left-0{left:0}.rf-left-1{left:.25rem}.rf-left-1\\/2{left:50%}.rf-left-2{left:.5rem}.rf-left-\\[50\\%\\]{left:50%}.rf-right-0{right:0}.rf-right-4{right:1rem}.rf-right-\\[4px\\]{right:4px}.rf-top-0{top:0}.rf-top-1{top:.25rem}.rf-top-2{top:.5rem}.rf-top-\\[50\\%\\]{top:50%}.rf-top-\\[6px\\]{top:6px}.rf-z-50{z-index:50}.rf-z-\\[100\\]{z-index:100}.rf--mx-1{margin-left:-.25rem;margin-right:-.25rem}.rf-mx-1{margin-left:.25rem;margin-right:.25rem}.rf-mx-2{margin-left:.5rem;margin-right:.5rem}.rf-my-1{margin-bottom:.25rem;margin-top:.25rem}.rf-my-auto{margin-bottom:auto;margin-top:auto}.rf-mb-2{margin-bottom:.5rem}.rf-mb-3{margin-bottom:.75rem}.rf-mb-4{margin-bottom:1rem}.rf-ml-1{margin-left:.25rem}.rf-ml-2{margin-left:.5rem}.rf-ml-auto{margin-left:auto}.rf-mr-1{margin-right:.25rem}.rf-mr-2{margin-right:.5rem}.rf-mt-0{margin-top:0}.rf-mt-1{margin-top:.25rem}.rf-mt-2{margin-top:.5rem}.rf-mt-4{margin-top:1rem}.rf-inline{display:inline}.rf-flex{display:flex}.rf-inline-flex{display:inline-flex}.rf-grid{display:grid}.rf-size-4{height:1rem;width:1rem}.\\!rf-h-2{height:.5rem!important}.\\!rf-h-2\\.5{height:.625rem!important}.\\!rf-h-3{height:.75rem!important}.\\!rf-h-full{height:100%!important}.rf-h-1{height:.25rem}.rf-h-10{height:2.5rem}.rf-h-2{height:.5rem}.rf-h-3{height:.75rem}.rf-h-3\\.5{height:.875rem}.rf-h-4{height:1rem}.rf-h-60{height:15rem}.rf-h-8{height:2rem}.rf-h-9{height:2.25rem}.rf-h-\\[620px\\]{height:620px}.rf-h-\\[calc\\(100vh-96px\\)\\]{height:calc(100vh - 96px)}.rf-h-fit{height:-moz-fit-content;height:fit-content}.rf-h-full{height:100%}.rf-h-px{height:1px}.rf-max-h-\\[500px\\]{max-height:500px}.rf-min-h-\\[620px\\]{min-height:620px}.rf-min-h-\\[calc\\(100vh-240px\\)\\]{min-height:calc(100vh - 240px)}.\\!rf-w-2{width:.5rem!important}.\\!rf-w-2\\.5{width:.625rem!important}.rf-w-1{width:.25rem}.rf-w-11{width:2.75rem}.rf-w-11\\/12{width:91.666667%}.rf-w-16{width:4rem}.rf-w-2{width:.5rem}.rf-w-3{width:.75rem}.rf-w-3\\.5{width:.875rem}.rf-w-32{width:8rem}.rf-w-4{width:1rem}.rf-w-64{width:16rem}.rf-w-72{width:18rem}.rf-w-8{width:2rem}.rf-w-9{width:2.25rem}.rf-w-96{width:24rem}.rf-w-fit{width:-moz-fit-content;width:fit-content}.rf-w-full{width:100%}.rf-min-w-10{min-width:2.5rem}.rf-min-w-16{min-width:4rem}.rf-min-w-\\[8rem\\]{min-width:8rem}.rf-max-w-2xl{max-width:42rem}.rf-max-w-lg{max-width:32rem}.rf-max-w-xl{max-width:36rem}.rf-shrink-0{flex-shrink:0}.rf-flex-grow{flex-grow:1}.rf-table-auto{table-layout:auto}.-rf-translate-x-1{--tw-translate-x:-0.25rem}.-rf-translate-x-1,.-rf-translate-x-1\\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rf-translate-x-1\\/2{--tw-translate-x:-50%}.-rf-translate-y-1{--tw-translate-y:-0.25rem}.-rf-translate-y-1,.rf--translate-x-1{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rf--translate-x-1{--tw-translate-x:-0.25rem}.rf-translate-x-\\[-50\\%\\]{--tw-translate-x:-50%}.rf-translate-x-\\[-50\\%\\],.rf-translate-y-\\[-50\\%\\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rf-translate-y-\\[-50\\%\\]{--tw-translate-y:-50%}.rf-transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes rf-spin{to{transform:rotate(1turn)}}.rf-animate-spin{animation:rf-spin 1s linear infinite}.rf-cursor-default{cursor:default}.rf-cursor-pointer{cursor:pointer}.rf-select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.rf-flex-col{flex-direction:column}.rf-flex-col-reverse{flex-direction:column-reverse}.rf-place-items-center{place-items:center}.rf-items-center{align-items:center}.rf-justify-end{justify-content:flex-end}.rf-justify-center{justify-content:center}.rf-justify-between{justify-content:space-between}.rf-gap-0{gap:0}.rf-gap-1{gap:.25rem}.rf-gap-2{gap:.5rem}.rf-gap-3{gap:.75rem}.rf-gap-4{gap:1rem}.rf-gap-5{gap:1.25rem}.rf-gap-6{gap:1.5rem}.rf-space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.rf-space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.rf-overflow-auto{overflow:auto}.rf-overflow-hidden{overflow:hidden}.rf-overflow-visible{overflow:visible}.rf-overflow-x-auto{overflow-x:auto}.rf-overflow-y-auto{overflow-y:auto}.rf-overflow-x-hidden{overflow-x:hidden}.rf-truncate{overflow:hidden;text-overflow:ellipsis}.rf-truncate,.rf-whitespace-nowrap{white-space:nowrap}.rf-whitespace-pre-wrap{white-space:pre-wrap}.rf-break-words{overflow-wrap:break-word}.rf-rounded{border-radius:.25rem}.rf-rounded-full{border-radius:9999px}.rf-rounded-lg{border-radius:var(--radius)}.rf-rounded-md{border-radius:calc(var(--radius) - 2px)}.rf-rounded-sm{border-radius:calc(var(--radius) - 4px)}.rf-border{border-width:1px}.rf-border-b{border-bottom-width:1px}.rf-border-green-200{--tw-border-opacity:1;border-color:rgb(187 247 208/var(--tw-border-opacity,1))}.rf-border-neutral-200{--tw-border-opacity:1;border-color:rgb(229 229 229/var(--tw-border-opacity,1))}.rf-border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.rf-border-zinc-200{--tw-border-opacity:1;border-color:rgb(228 228 231/var(--tw-border-opacity,1))}.rf-bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.rf-bg-black\\/80{background-color:rgba(0,0,0,.8)}.rf-bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.rf-bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.rf-bg-blue-600\\/70{background-color:rgba(37,99,235,.7)}.rf-bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.rf-bg-gray-500{--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity,1))}.rf-bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.rf-bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.rf-bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.rf-bg-neutral-100{--tw-bg-opacity:1;background-color:rgb(245 245 245/var(--tw-bg-opacity,1))}.rf-bg-neutral-50{--tw-bg-opacity:1;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))}.rf-bg-neutral-800{--tw-bg-opacity:1;background-color:rgb(38 38 38/var(--tw-bg-opacity,1))}.rf-bg-neutral-900{--tw-bg-opacity:1;background-color:rgb(23 23 23/var(--tw-bg-opacity,1))}.rf-bg-orange-400{--tw-bg-opacity:1;background-color:rgb(251 146 60/var(--tw-bg-opacity,1))}.rf-bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.rf-bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.rf-bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.rf-bg-red-900{--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.rf-bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.rf-bg-zinc-100{--tw-bg-opacity:1;background-color:rgb(244 244 245/var(--tw-bg-opacity,1))}.rf-bg-zinc-200{--tw-bg-opacity:1;background-color:rgb(228 228 231/var(--tw-bg-opacity,1))}.rf-bg-zinc-50{--tw-bg-opacity:1;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))}.rf-bg-zinc-800{--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))}.rf-bg-zinc-900{--tw-bg-opacity:1;background-color:rgb(24 24 27/var(--tw-bg-opacity,1))}.rf-bg-opacity-50{--tw-bg-opacity:0.5}.rf-fill-current{fill:currentColor}.rf-p-0{padding:0}.rf-p-0\\.5{padding:.125rem}.rf-p-1{padding:.25rem}.rf-p-2{padding:.5rem}.rf-p-3{padding:.75rem}.rf-p-4{padding:1rem}.rf-p-5{padding:1.25rem}.rf-p-6{padding:1.5rem}.rf-px-1{padding-left:.25rem;padding-right:.25rem}.rf-px-1\\.5{padding-left:.375rem;padding-right:.375rem}.rf-px-2{padding-left:.5rem;padding-right:.5rem}.rf-px-3{padding-left:.75rem;padding-right:.75rem}.rf-px-4{padding-left:1rem;padding-right:1rem}.rf-px-8{padding-left:2rem;padding-right:2rem}.rf-py-0{padding-bottom:0;padding-top:0}.rf-py-1{padding-bottom:.25rem;padding-top:.25rem}.rf-py-1\\.5{padding-bottom:.375rem;padding-top:.375rem}.rf-py-10{padding-bottom:2.5rem;padding-top:2.5rem}.rf-py-2{padding-bottom:.5rem;padding-top:.5rem}.rf-pb-0{padding-bottom:0}.rf-pb-4{padding-bottom:1rem}.rf-pl-2{padding-left:.5rem}.rf-pl-8{padding-left:2rem}.rf-pr-2{padding-right:.5rem}.rf-text-left{text-align:left}.rf-text-center{text-align:center}.rf-font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.rf-text-2xl{font-size:1.5rem;line-height:2rem}.rf-text-\\[8px\\]{font-size:8px}.rf-text-lg{font-size:1.125rem;line-height:1.75rem}.rf-text-sm{font-size:.875rem;line-height:1.25rem}.rf-text-xs{font-size:.75rem;line-height:1rem}.rf-font-bold{font-weight:700}.rf-font-medium{font-weight:500}.rf-font-semibold{font-weight:600}.rf-capitalize{text-transform:capitalize}.rf-tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.rf-leading-5{line-height:1.25rem}.rf-tracking-widest{letter-spacing:.1em}.rf-text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.rf-text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.rf-text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.rf-text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.rf-text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.rf-text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.rf-text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.rf-text-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.rf-text-neutral-50{--tw-text-opacity:1;color:rgb(250 250 250/var(--tw-text-opacity,1))}.rf-text-neutral-500{--tw-text-opacity:1;color:rgb(115 115 115/var(--tw-text-opacity,1))}.rf-text-neutral-900{--tw-text-opacity:1;color:rgb(23 23 23/var(--tw-text-opacity,1))}.rf-text-neutral-950{--tw-text-opacity:1;color:rgb(10 10 10/var(--tw-text-opacity,1))}.rf-text-red-200{--tw-text-opacity:1;color:rgb(254 202 202/var(--tw-text-opacity,1))}.rf-text-red-300{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.rf-text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.rf-text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.rf-text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.rf-text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.rf-text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.rf-text-red-900{--tw-text-opacity:1;color:rgb(127 29 29/var(--tw-text-opacity,1))}.rf-text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.rf-text-zinc-200{--tw-text-opacity:1;color:rgb(228 228 231/var(--tw-text-opacity,1))}.rf-text-zinc-300{--tw-text-opacity:1;color:rgb(212 212 216/var(--tw-text-opacity,1))}.rf-text-zinc-400{--tw-text-opacity:1;color:rgb(161 161 170/var(--tw-text-opacity,1))}.rf-text-zinc-50{--tw-text-opacity:1;color:rgb(250 250 250/var(--tw-text-opacity,1))}.rf-text-zinc-500{--tw-text-opacity:1;color:rgb(113 113 122/var(--tw-text-opacity,1))}.rf-text-zinc-900{--tw-text-opacity:1;color:rgb(24 24 27/var(--tw-text-opacity,1))}.rf-text-zinc-950{--tw-text-opacity:1;color:rgb(9 9 11/var(--tw-text-opacity,1))}.rf-underline{text-decoration-line:underline}.rf-underline-offset-4{text-underline-offset:4px}.rf-opacity-0{opacity:0}.rf-opacity-25{opacity:.25}.rf-opacity-30{opacity:.3}.rf-opacity-50{opacity:.5}.rf-opacity-60{opacity:.6}.rf-shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.rf-shadow,.rf-shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.rf-shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.rf-shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.rf-shadow-md,.rf-shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.rf-shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.rf-outline-none{outline:2px solid transparent;outline-offset:2px}.rf-ring-offset-white{--tw-ring-offset-color:#fff}.rf-transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.rf-transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.rf-transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.rf-duration-200{transition-duration:.2s}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.rf-slide-in-from-left-1{--tw-enter-translate-x:-0.25rem}.rf-slide-out-to-left-1{--tw-exit-translate-x:-0.25rem}.rf-duration-200{animation-duration:.2s}.hover\\:\\!rf-bg-transparent:hover{background-color:transparent!important}.hover\\:rf-bg-blue-700:hover{--tw-bg-opacity:1;background-color:rgb(29 78 216/var(--tw-bg-opacity,1))}.hover\\:rf-bg-red-500\\/90:hover{background-color:rgba(239,68,68,.9)}.hover\\:rf-bg-zinc-100:hover{--tw-bg-opacity:1;background-color:rgb(244 244 245/var(--tw-bg-opacity,1))}.hover\\:rf-bg-zinc-100\\/80:hover{background-color:hsla(240,5%,96%,.8)}.hover\\:rf-bg-zinc-900\\/90:hover{background-color:rgba(24,24,27,.9)}.hover\\:rf-text-red-400:hover{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.hover\\:rf-text-zinc-900:hover{--tw-text-opacity:1;color:rgb(24 24 27/var(--tw-text-opacity,1))}.hover\\:rf-underline:hover{text-decoration-line:underline}.focus\\:rf-bg-zinc-100:focus{--tw-bg-opacity:1;background-color:rgb(244 244 245/var(--tw-bg-opacity,1))}.focus\\:rf-text-zinc-900:focus{--tw-text-opacity:1;color:rgb(24 24 27/var(--tw-text-opacity,1))}.focus-visible\\:rf-outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\\:rf-ring-1:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\\:rf-ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\\:rf-ring-zinc-950:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgb(9 9 11/var(--tw-ring-opacity,1))}.focus-visible\\:rf-ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.disabled\\:rf-pointer-events-none:disabled{pointer-events:none}.disabled\\:rf-bg-blue-600\\/60:disabled{background-color:rgba(37,99,235,.6)}.disabled\\:rf-opacity-50:disabled{opacity:.5}.rf-group\\/bar:hover .group-hover\\/bar\\:rf-opacity-100{opacity:1}.data-\\[disabled\\]\\:rf-pointer-events-none[data-disabled]{pointer-events:none}.data-\\[state\\=active\\]\\:rf-bg-white[data-state=active]{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.data-\\[state\\=open\\]\\:rf-bg-zinc-100[data-state=open]{--tw-bg-opacity:1;background-color:rgb(244 244 245/var(--tw-bg-opacity,1))}.data-\\[state\\=active\\]\\:rf-text-zinc-950[data-state=active]{--tw-text-opacity:1;color:rgb(9 9 11/var(--tw-text-opacity,1))}.data-\\[disabled\\]\\:rf-opacity-50[data-disabled]{opacity:.5}.data-\\[state\\=active\\]\\:rf-shadow[data-state=active]{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.data-\\[state\\=open\\]\\:rf-animate-in[data-state=open]{animation-duration:.15s;animation-name:enter;--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial}.data-\\[state\\=closed\\]\\:rf-animate-out[data-state=closed]{animation-duration:.15s;animation-name:exit;--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial}.data-\\[state\\=closed\\]\\:rf-fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\\[state\\=open\\]\\:rf-fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\\[state\\=closed\\]\\:rf-zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\\[state\\=open\\]\\:rf-zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\\[side\\=bottom\\]\\:rf-slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:-0.5rem}.data-\\[side\\=left\\]\\:rf-slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:0.5rem}.data-\\[side\\=right\\]\\:rf-slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:-0.5rem}.data-\\[side\\=top\\]\\:rf-slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:0.5rem}.data-\\[state\\=closed\\]\\:rf-slide-out-to-left-1\\/2[data-state=closed]{--tw-exit-translate-x:-50%}.data-\\[state\\=closed\\]\\:rf-slide-out-to-top-\\[48\\%\\][data-state=closed]{--tw-exit-translate-y:-48%}.data-\\[state\\=open\\]\\:rf-slide-in-from-left-1\\/2[data-state=open]{--tw-enter-translate-x:-50%}.data-\\[state\\=open\\]\\:rf-slide-in-from-top-\\[48\\%\\][data-state=open]{--tw-enter-translate-y:-48%}.dark\\:rf-border-zinc-800:is(.rf-dark *){--tw-border-opacity:1;border-color:rgb(39 39 42/var(--tw-border-opacity,1))}.dark\\:rf-bg-red-900:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.dark\\:rf-bg-zinc-50:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))}.dark\\:rf-bg-zinc-800:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))}.dark\\:rf-bg-zinc-950:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(9 9 11/var(--tw-bg-opacity,1))}.dark\\:rf-text-zinc-400:is(.rf-dark *){--tw-text-opacity:1;color:rgb(161 161 170/var(--tw-text-opacity,1))}.dark\\:rf-text-zinc-50:is(.rf-dark *){--tw-text-opacity:1;color:rgb(250 250 250/var(--tw-text-opacity,1))}.dark\\:rf-text-zinc-900:is(.rf-dark *){--tw-text-opacity:1;color:rgb(24 24 27/var(--tw-text-opacity,1))}.dark\\:rf-ring-offset-zinc-950:is(.rf-dark *){--tw-ring-offset-color:#09090b}.dark\\:hover\\:rf-bg-red-900\\/90:hover:is(.rf-dark *){background-color:rgba(127,29,29,.9)}.dark\\:hover\\:rf-bg-zinc-50\\/90:hover:is(.rf-dark *){background-color:hsla(0,0%,98%,.9)}.dark\\:hover\\:rf-bg-zinc-800:hover:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))}.dark\\:hover\\:rf-bg-zinc-800\\/80:hover:is(.rf-dark *){background-color:rgba(39,39,42,.8)}.dark\\:hover\\:rf-text-zinc-50:hover:is(.rf-dark *){--tw-text-opacity:1;color:rgb(250 250 250/var(--tw-text-opacity,1))}.dark\\:focus\\:rf-bg-zinc-800:focus:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))}.dark\\:focus\\:rf-text-zinc-50:focus:is(.rf-dark *){--tw-text-opacity:1;color:rgb(250 250 250/var(--tw-text-opacity,1))}.dark\\:focus-visible\\:rf-ring-zinc-300:focus-visible:is(.rf-dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(212 212 216/var(--tw-ring-opacity,1))}.dark\\:data-\\[state\\=active\\]\\:rf-bg-zinc-950[data-state=active]:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(9 9 11/var(--tw-bg-opacity,1))}.dark\\:data-\\[state\\=open\\]\\:rf-bg-zinc-800[data-state=open]:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))}.dark\\:data-\\[state\\=active\\]\\:rf-text-zinc-50[data-state=active]:is(.rf-dark *){--tw-text-opacity:1;color:rgb(250 250 250/var(--tw-text-opacity,1))}@media (min-width:640px){.sm\\:rf-mt-0{margin-top:0}.sm\\:rf-flex-row{flex-direction:row}.sm\\:rf-justify-end{justify-content:flex-end}.sm\\:rf-space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.sm\\:rf-rounded-lg{border-radius:var(--radius)}.sm\\:rf-text-left{text-align:left}}.\\[\\&\\>svg\\]\\:rf-size-4>svg{height:1rem;width:1rem}.\\[\\&\\>svg\\]\\:rf-shrink-0>svg{flex-shrink:0}.\\[\\&\\>svg\\]\\:rf-text-red-300>svg{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.\\[\\&\\>svg\\]\\:hover\\:rf-text-red-400:hover>svg{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.\\[\\&_svg\\]\\:rf-pointer-events-none svg{pointer-events:none}.\\[\\&_svg\\]\\:rf-size-4 svg{height:1rem;width:1rem}.\\[\\&_svg\\]\\:rf-shrink-0 svg{flex-shrink:0}',MDt=()=>{wt.useEffect(()=>{if(document.querySelector('style[data-styles="tscircuit-runframe"]'))return;const e=document.createElement("style");e.setAttribute("data-styles","tscircuit-runframe"),e.textContent=TDt,document.head.appendChild(e)},[])},rLe=r=>`hsl(${O3.indexOf(r)*137.5%360}, 70%, 50%)`,CDt=({phaseTimings:r})=>{if(!r)return null;const e=Object.values(r).reduce((t,n)=>t+n,0);return ft.jsxs("div",{className:"rf-space-y-2 rf-w-full rf-px-4",children:[ft.jsx("div",{className:"rf-relative rf-h-8 rf-flex rf-rounded-sm",children:O3.map(t=>{const n=r[t]||0,i=n/e*100;return ft.jsx("div",{className:"rf-group/bar rf-relative rf-overflow-visible",style:{width:`${i}%`,backgroundColor:rLe(t)},children:ft.jsxs("div",{className:"rf-opacity-0 group-hover/bar:rf-opacity-100 rf-transition-opacity rf-absolute rf-bottom-full rf-left-1/2 rf-transform -rf-translate-x-1/2 rf-mb-2 rf-px-2 rf-py-1 rf-text-xs rf-whitespace-nowrap rf-rounded rf-bg-gray-900 rf-text-white rf-pointer-events-none",children:[t,": ",n.toFixed(1),"ms"]})},t)})}),ft.jsxs("div",{className:"rf-text-xs rf-text-gray-500",children:["Total: ",e.toFixed(2),"ms"]})]})},RDt=({renderLog:r})=>{const[e,t]=wt.useState("chronological");if(!r)return ft.jsx("div",{className:"rf-p-4 rf-bg-gray-100 rf-rounded-md",children:"No render log, make sure this tab is open when you render (TODO add a rerender button here)"});const n=Object.entries((r==null?void 0:r.phaseTimings)??{});e==="chronological"?n.sort((a,o)=>O3.indexOf(a[0])-O3.indexOf(o[0])):n.sort((a,o)=>o[1]-a[1]);const i=n.reduce((a,[o,s])=>a+s,0);return ft.jsxs("div",{className:"rf-bg-white",children:[ft.jsxs("div",{className:"rf-flex rf-justify-between rf-items-center",children:[ft.jsx("div",{children:"Render Logs"}),ft.jsxs("div",{className:"rf-mb-4 rf-pr-2 rf-flex rf-text-xs rf-items-center",children:[ft.jsx("div",{className:"rf-mr-2",children:"Sort by:"}),ft.jsxs("select",{value:e,onChange:a=>t(a.target.value),className:"rf-px-2 rf-py-1 rf-border rf-rounded rf-text-xs",children:[ft.jsx("option",{value:"chronological",children:"Phase Order"}),ft.jsx("option",{value:"longest",children:"Duration"})]})]})]}),ft.jsx(CDt,{phaseTimings:r.phaseTimings}),ft.jsxs("table",{className:"rf-w-full rf-text-xs",children:[ft.jsx("thead",{children:ft.jsxs("tr",{children:[ft.jsx("th",{className:"rf-text-left rf-p-2",children:"Phase Order"}),ft.jsx("th",{className:"rf-text-left rf-p-2",children:"Phase"}),ft.jsx("th",{className:"rf-text-left rf-p-2",children:"Duration (ms)"})]})}),ft.jsx("tbody",{children:n.map(([a,o])=>ft.jsxs("tr",{children:[ft.jsx("td",{className:"rf-p-2",children:O3.indexOf(a)}),ft.jsx("td",{className:"rf-p-2",children:a}),ft.jsx("td",{className:"rf-p-2",children:ft.jsx("div",{className:"rf-w-8",children:ft.jsx("div",{className:"rf-h-2 rf-rounded-sm",style:{backgroundColor:rLe(a),width:`${o/i*100}%`}})})}),ft.jsx("td",{className:"rf-p-2",children:ft.jsxs("div",{className:"rf-flex w-full",children:[ft.jsxs("span",{className:"rf-flex-grow",children:[o,"ms"]}),ft.jsxs("span",{className:"rf-text-gray-500 rf-pr-2",children:[(o/i*100).toFixed(1),"%"]})]})})]},a))})]})]})},ADt="0.0.239",NDt=["assembly","bom","circuit_json","errors","render_log"],PDt=({code:r,onRunClicked:e=void 0,errorMessage:t,circuitJsonKey:n="",circuitJson:i,autoroutingGraphics:a,showRightHeaderContent:o=!0,showCodeTab:s=!1,codeTabContent:l,showJsonTab:c=!0,showRenderLogTab:u=!0,onActiveTabChange:f,renderLog:y,showImportAndFormatButtons:_=!0,className:x,headerClassName:M,leftHeaderContent:w,readOnly:T,isStreaming:L,autoroutingLog:O,onReportAutoroutingLog:B,isRunningCode:W,hasCodeChangedSinceLastRun:$,onEditEvent:Q,editEvents:te,defaultActiveTab:ae,autoRotate3dViewerDisabled:K,showSchematicDebugGrid:pe=!1,showToggleFullScreen:ve=!0})=>{var je;MDt();const[be,Pe]=wt.useState(ae??"pcb"),[Oe,we]=wt.useState(!1),Le=wt.useCallback(ze=>{Pe(ze),f==null||f(ze)},[f]),Me=()=>{we(!Oe)};return wt.useEffect(()=>{t&&Le("errors")},[t]),wt.useEffect(()=>{(be==="code"||be==="errors")&&i&&!t&&Le(ae??"pcb")},[i]),ft.jsx("div",{className:Yg("flex flex-col relative rf-overflow-x-hidden",x),children:ft.jsx("div",{className:Yg("rf-md:sticky rf-md:top-2",Oe&&"rf-fixed rf-top-0 rf-left-0 rf-w-full rf-bg-white"),children:ft.jsxs(aIe,{value:be,onValueChange:Le,className:"rf-flex-grow rf-flex rf-flex-col",children:[ft.jsxs("div",{className:Yg("rf-flex rf-items-center rf-gap-2 rf-p-2 rf-pb-0",M),children:[w,w&&ft.jsx("div",{className:"rf-flex-grow"}),!w&&W&&ft.jsx(RCe,{className:"rf-w-4 rf-h-4 rf-animate-spin"}),!w&&ft.jsx("div",{className:"rf-flex-grow"}),y&&y.progress!==1&&ft.jsxs("div",{className:"rf-flex rf-items-center rf-gap-2",children:[y.lastRenderEvent&&ft.jsx("div",{className:"rf-text-xs rf-text-gray-500",children:(je=y.lastRenderEvent)==null?void 0:je.type.split("renderable:renderLifecycle:")[1].split(":")[0]}),ft.jsx("div",{className:"rf-w-4 rf-h-4 rf-bg-blue-500 rf-opacity-50 rf-rounded-full rf-text-white",children:ft.jsx(RCe,{className:"rf-w-4 rf-h-4 rf-animate-spin"})}),ft.jsxs("div",{className:"rf-text-xs rf-font-bold rf-text-gray-700 rf-tabular-nums",children:[((y.progress??0)*100).toFixed(1),"%"]})]}),o&&ft.jsxs(Pae,{children:[s&&ft.jsx(Vw,{value:"code",children:"Code"}),ft.jsxs(Vw,{value:"pcb",className:"rf-whitespace-nowrap",children:[i&&ft.jsx("span",{className:Yg("rf-inline-flex rf-items-center rf-justify-center rf-w-2 rf-h-2 rf-mr-1 rf-text-xs rf-font-bold rf-text-white rf-rounded-full",$?"rf-bg-gray-500":"rf-bg-blue-500")}),"PCB"]}),ft.jsxs(Vw,{value:"schematic",className:"rf-whitespace-nowrap",children:[i&&ft.jsx("span",{className:Yg("rf-inline-flex rf-items-center rf-justify-center rf-w-2 rf-h-2 rf-mr-1 rf-text-xs rf-font-bold rf-text-white rf-rounded-full",$?"rf-bg-gray-500":"rf-bg-blue-500")}),"Schematic"]}),ft.jsxs(Vw,{value:"cad",children:[i&&ft.jsx("span",{className:Yg("inline-flex items-center justify-center w-2 h-2 mr-1 text-xs font-bold text-white rounded-full",$?"rf-bg-gray-500":"rf-bg-blue-500")}),"3D"]}),!["pcb","cad","schematic"].includes(be)&&ft.jsx(Vw,{value:be,children:Nae(be)}),ft.jsxs(kAe,{children:[ft.jsx(FAe,{asChild:!0,children:ft.jsxs("div",{className:"rf-whitespace-nowrap rf-p-2 rf-mr-1 rf-cursor-pointer rf-relative",children:[ft.jsx(n8t,{className:"rf-w-4 rf-h-4"}),t&&ft.jsx("span",{className:"rf-inline-flex rf-absolute rf-top-[6px] rf-right-[4px] rf-items-center rf-justify-center rf-w-1 rf-h-1 rf-ml-2 rf-text-[8px] rf-font-bold rf-text-white rf-bg-red-500 rf-rounded-full"})]})}),ft.jsxs(lne,{className:"rf-*:text-xs",children:[NDt.map(ze=>ft.jsxs(Tz,{onSelect:()=>Le(ze),children:[be!==ze&&ft.jsx(CCe,{className:"rf-w-3 rf-h-3 rf-opacity-30"}),be===ze&&ft.jsx(MCe,{className:"rf-w-3 rf-h-3"}),ft.jsx("div",{className:"rf-pr-2",children:Nae(ze)}),ze==="errors"&&t&&ft.jsx("span",{className:"rf-inline-flex rf-items-center rf-justify-center rf-w-3 rf-h-3 rf-ml-2 rf-text-[8px] rf-font-bold rf-text-white rf-bg-red-500 rf-rounded-full",children:"1"})]},ze)),ft.jsx(Tz,{disabled:!0,className:"rf-opacity-60 rf-cursor-default rf-select-none",children:ft.jsxs("div",{className:"rf-pr-2 rf-text-xs rf-text-gray-500",children:["@tscircuit/runframe@",ADt.split(".").map((ze,Ve)=>Ve===2?parseInt(ze)+1:ze).join(".")]})})]})]})]}),ve&&ft.jsx(V4,{onClick:Me,variant:"ghost",children:Oe?ft.jsx(i8t,{size:16}):ft.jsx(r8t,{size:16})})]}),s&&ft.jsx(Pb,{value:"code",className:"rf-flex-grow rf-overflow-hidden",children:ft.jsx("div",{className:"rf-h-full",children:l})}),ft.jsx(Pb,{value:"pcb",children:ft.jsx("div",{className:Yg("rf-overflow-hidden",Oe?"rf-h-[calc(100vh-96px)]":"rf-h-[620px]"),children:ft.jsx(PT,{fallbackRender:({error:ze})=>ft.jsx("div",{className:"rf-mt-4 rf-bg-red-50 rf-rounded-md rf-border rf-border-red-200",children:ft.jsxs("div",{className:"rf-p-4",children:[ft.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-text-red-800 rf-mb-3",children:"Error loading PCB viewer"}),ft.jsx("p",{className:"rf-text-xs rf-font-mono rf-whitespace-pre-wrap rf-text-red-600 rf-mt-2",children:(ze==null?void 0:ze.message)||"An unknown error occurred"})]})}),children:i?ft.jsx(wDt,{disableAutoFocus:!0,focusOnHover:!1,circuitJson:i,debugGraphics:a,containerClassName:Yg("rf-h-full rf-w-full",Oe?"rf-min-h-[calc(100vh-240px)]":"rf-min-h-[620px]"),onEditEventsChanged:ze=>{Q&&ze.forEach(Ve=>Q(Ve))}},n):ft.jsx(Rw,{onRunClicked:e})})})}),ft.jsx(Pb,{value:"assembly",children:ft.jsx("div",{className:Yg("rf-overflow-auto",Oe?"rf-h-[calc(100vh-96px)]":"rf-h-[620px]"),children:ft.jsx(PT,{fallback:ft.jsx("div",{children:"Error loading Assembly"}),children:i?ft.jsx(_Dt,{circuitJson:i,containerStyle:{height:"100%"},editingEnabled:!0,debugGrid:!0}):ft.jsx(Rw,{onRunClicked:e})})})}),ft.jsx(Pb,{value:"schematic",children:ft.jsx("div",{className:Yg("rf-overflow-auto",Oe?"rf-h-[calc(100vh-96px)]":"rf-h-[620px]"),children:ft.jsx(PT,{fallbackRender:({error:ze})=>ft.jsx("div",{className:"rf-mt-4 rf-bg-red-50 rf-rounded-md rf-border rf-border-red-200",children:ft.jsxs("div",{className:"rf-p-4",children:[ft.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-text-red-800 rf-mb-3",children:"Error loading Schematic"}),ft.jsx("p",{className:"rf-text-xs rf-font-mono rf-whitespace-pre-wrap rf-text-red-600 rf-mt-2",children:(ze==null?void 0:ze.message)||"An unknown error occurred"})]})}),children:i?ft.jsx(vDt,{circuitJson:i,containerStyle:{height:"100%"},editingEnabled:!0,onEditEvent:ze=>Q==null?void 0:Q(ze),editEvents:te,debugGrid:pe}):ft.jsx(Rw,{onRunClicked:e})})})}),ft.jsx(Pb,{value:"cad",children:ft.jsx("div",{className:Yg("rf-overflow-auto",Oe?"rf-h-[calc(100vh-96px)]":"rf-h-[620px]"),children:ft.jsx(PT,{FallbackComponent:Vwt,children:i?ft.jsx(Rbt,{soup:i,autoRotateDisabled:K}):ft.jsx(Rw,{onRunClicked:e})})})}),ft.jsx(Pb,{value:"bom",children:ft.jsx("div",{className:Yg("rf-overflow-auto",Oe?"rf-h-[calc(100vh-96px)]":"rf-h-[620px]"),children:ft.jsx(PT,{fallbackRender:({error:ze})=>ft.jsx("div",{className:"rf-mt-4 rf-bg-red-50 rf-rounded-md rf-border rf-border-red-200",children:ft.jsxs("div",{className:"rf-p-4",children:[ft.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-text-red-800 rf-mb-3",children:"Error loading Bill of Materials"}),ft.jsx("p",{className:"rf-text-xs rf-font-mono rf-whitespace-pre-wrap rf-text-red-600 rf-mt-2",children:(ze==null?void 0:ze.message)||"An unknown error occurred"})]})}),children:i?ft.jsx(EDt,{circuitJson:i}):ft.jsx(Rw,{onRunClicked:e})})})}),ft.jsx(Pb,{value:"circuit_json",children:ft.jsx("div",{className:Yg("rf-overflow-auto",Oe?"rf-h-[calc(100vh-96px)]":"rf-h-[620px]"),children:ft.jsx(PT,{fallback:ft.jsx("div",{children:"Error loading JSON viewer"}),children:i?ft.jsx(bDt,{elements:i}):ft.jsx(Rw,{onRunClicked:e})})})}),ft.jsx(Pb,{value:"errors",children:i||t?ft.jsx(e7t,{code:r,errorMessage:t,autoroutingLog:O,onReportAutoroutingLog:B}):ft.jsx(Rw,{onRunClicked:e})}),u&&ft.jsx(Pb,{value:"render_log",children:ft.jsx(RDt,{renderLog:y})})]})})})};Kie.createRoot(document.getElementById("root")).render(ft.jsx(PDt,{defaultActiveTab:"cad",autoRotate3dViewerDisabled:!0,showRightHeaderContent:!1,circuitJson:window.CIRCUIT_JSON||{},...window.CIRCUIT_JSON_PREVIEW_PROPS||{}}))});