@tscircuit/runframe 0.0.1397 → 0.0.1398
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.
|
@@ -5809,7 +5809,7 @@ $1`).replace(/>(\s*)(?=<!--\s*\/)/g,"> ")}}});function stt(e,A,t){if(!A||!t)retu
|
|
|
5809
5809
|
* Copyright (c) 2013-2015, 2017, Jon Schlinkert.
|
|
5810
5810
|
* Released under the MIT License.
|
|
5811
5811
|
*)
|
|
5812
|
-
*/const pNe=({containerClassName:e,...A})=>{const t=iA.useRef(null),[i,o]=iA.useState(620);return iA.useLayoutEffect(()=>{const n=()=>{if(t.current){const r=t.current.clientHeight,g=window.innerHeight;o(Math.min(Math.max(r,620),g))}};n();const s=new ResizeObserver(n);return t.current&&s.observe(t.current),window.addEventListener("resize",n),()=>{s.disconnect(),window.removeEventListener("resize",n)}},[]),X.jsx("div",{ref:t,className:e||"rf-w-full rf-h-full",children:X.jsx(dNe,{...A,height:i})})},fNe='*,: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.18 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}:root{--radius:0.5rem}.rf-pointer-events-none{pointer-events:none}.rf-invisible{visibility:hidden}.rf-fixed{position:fixed}.rf-absolute{position:absolute}.rf-relative{position:relative}.rf-inset-0{inset:0}.-rf-left-2{left:-.5rem}.-rf-right-10{right:-2.5rem}.-rf-right-2{right:-.5rem}.-rf-right-4{right:-1rem}.-rf-right-6{right:-1.5rem}.-rf-right-7{right:-1.75rem}.-rf-right-8{right:-2rem}.-rf-right-9{right:-2.25rem}.rf-bottom-full{bottom:100%}.rf-left-0{left:0}.rf-left-1{left:.25rem}.rf-left-1\\/2{left:50%}.rf-left-2{left:.5rem}.rf-left-\\[50\\%\\]{left:50%}.rf-right-0{right:0}.rf-right-1{right:.25rem}.rf-right-4{right:1rem}.rf-right-\\[4px\\]{right:4px}.rf-top-0{top:0}.rf-top-1{top:.25rem}.rf-top-2{top:.5rem}.rf-top-2\\.5{top:.625rem}.rf-top-\\[50\\%\\]{top:50%}.rf-top-\\[6px\\]{top:6px}.\\!rf-z-\\[101\\]{z-index:101!important}.\\!rf-z-\\[200\\]{z-index:200!important}.rf-z-10{z-index:10}.rf-z-50{z-index:50}.rf-z-\\[100\\]{z-index:100}.rf-z-\\[101\\]{z-index:101}.rf-order-1{order:1}.rf-order-2{order:2}.rf-order-3{order:3}.rf-m-1{margin:.25rem}.rf-m-6{margin:1.5rem}.-rf-mx-1,.rf--mx-1{margin-left:-.25rem;margin-right:-.25rem}.rf-mx-1{margin-left:.25rem;margin-right:.25rem}.rf-mx-2{margin-left:.5rem;margin-right:.5rem}.rf-mx-4{margin-left:1rem;margin-right:1rem}.rf-mx-auto{margin-left:auto;margin-right:auto}.rf-my-1{margin-bottom:.25rem;margin-top:.25rem}.rf-my-12{margin-bottom:3rem;margin-top:3rem}.rf-my-4{margin-bottom:1rem;margin-top:1rem}.rf-my-auto{margin-bottom:auto;margin-top:auto}.rf-mb-0{margin-bottom:0}.rf-mb-0\\.5{margin-bottom:.125rem}.rf-mb-1{margin-bottom:.25rem}.rf-mb-12{margin-bottom:3rem}.rf-mb-2{margin-bottom:.5rem}.rf-mb-3{margin-bottom:.75rem}.rf-mb-4{margin-bottom:1rem}.rf-mb-6{margin-bottom:1.5rem}.rf-mb-8{margin-bottom:2rem}.rf-ml-1{margin-left:.25rem}.rf-ml-2{margin-left:.5rem}.rf-ml-6{margin-left:1.5rem}.rf-ml-auto{margin-left:auto}.rf-mr-1{margin-right:.25rem}.rf-mr-2{margin-right:.5rem}.rf-mr-4{margin-right:1rem}.rf-mt-0{margin-top:0}.rf-mt-0\\.5{margin-top:.125rem}.rf-mt-1{margin-top:.25rem}.rf-mt-2{margin-top:.5rem}.rf-mt-3{margin-top:.75rem}.rf-mt-4{margin-top:1rem}.rf-mt-5{margin-top:1.25rem}.rf-mt-auto{margin-top:auto}.rf-block{display:block}.rf-inline-block{display:inline-block}.rf-inline{display:inline}.rf-flex{display:flex}.rf-inline-flex{display:inline-flex}.rf-grid{display:grid}.rf-hidden{display:none}.rf-aspect-square{aspect-ratio:1/1}.rf-aspect-video{aspect-ratio:16/9}.rf-size-14{height:3.5rem;width:3.5rem}.rf-size-4{height:1rem;width:1rem}.\\!rf-h-2{height:.5rem!important}.\\!rf-h-2\\.5{height:.625rem!important}.\\!rf-h-3{height:.75rem!important}.\\!rf-h-full{height:100%!important}.rf-h-1{height:.25rem}.rf-h-10{height:2.5rem}.rf-h-12{height:3rem}.rf-h-2{height:.5rem}.rf-h-2\\.5{height:.625rem}.rf-h-20{height:5rem}.rf-h-24{height:6rem}.rf-h-3{height:.75rem}.rf-h-3\\.5{height:.875rem}.rf-h-4{height:1rem}.rf-h-5{height:1.25rem}.rf-h-6{height:1.5rem}.rf-h-60{height:15rem}.rf-h-64{height:16rem}.rf-h-7{height:1.75rem}.rf-h-8{height:2rem}.rf-h-9{height:2.25rem}.rf-h-\\[400px\\]{height:400px}.rf-h-\\[calc\\(100vh-52px\\)\\]{height:calc(100vh - 52px)}.rf-h-\\[calc\\(100vh-60px\\)\\]{height:calc(100vh - 60px)}.rf-h-\\[var\\(--radix-select-trigger-height\\)\\]{height:var(--radix-select-trigger-height)}.rf-h-auto{height:auto}.rf-h-fit{height:-moz-fit-content;height:fit-content}.rf-h-full{height:100%}.rf-h-px{height:1px}.rf-h-screen{height:100vh}.\\!rf-max-h-\\[40vh\\]{max-height:40vh!important}.rf-max-h-16{max-height:4rem}.rf-max-h-20{max-height:5rem}.rf-max-h-24{max-height:6rem}.rf-max-h-28{max-height:7rem}.rf-max-h-32{max-height:8rem}.rf-max-h-96{max-height:24rem}.rf-max-h-\\[120px\\]{max-height:120px}.rf-max-h-\\[150px\\]{max-height:150px}.rf-max-h-\\[200px\\]{max-height:200px}.rf-max-h-\\[300px\\]{max-height:300px}.rf-max-h-\\[70vh\\]{max-height:70vh}.rf-max-h-\\[90vh\\]{max-height:90vh}.rf-max-h-full{max-height:100%}.rf-min-h-0{min-height:0}.rf-min-h-\\[100px\\]{min-height:100px}.rf-min-h-\\[200px\\]{min-height:200px}.rf-min-h-\\[300px\\]{min-height:300px}.rf-min-h-\\[620px\\]{min-height:620px}.rf-min-h-\\[calc\\(100vh-240px\\)\\]{min-height:calc(100vh - 240px)}.rf-min-h-full{min-height:100%}.\\!rf-w-2{width:.5rem!important}.\\!rf-w-2\\.5{width:.625rem!important}.\\!rf-w-\\[95vw\\]{width:95vw!important}.rf-w-1{width:.25rem}.rf-w-10{width:2.5rem}.rf-w-11{width:2.75rem}.rf-w-11\\/12{width:91.666667%}.rf-w-12{width:3rem}.rf-w-16{width:4rem}.rf-w-2{width:.5rem}.rf-w-2\\.5{width:.625rem}.rf-w-20{width:5rem}.rf-w-24{width:6rem}.rf-w-28{width:7rem}.rf-w-3{width:.75rem}.rf-w-3\\.5{width:.875rem}.rf-w-32{width:8rem}.rf-w-4{width:1rem}.rf-w-40{width:10rem}.rf-w-48{width:12rem}.rf-w-5{width:1.25rem}.rf-w-6{width:1.5rem}.rf-w-64{width:16rem}.rf-w-72{width:18rem}.rf-w-8{width:2rem}.rf-w-80{width:20rem}.rf-w-9{width:2.25rem}.rf-w-96{width:24rem}.rf-w-fit{width:-moz-fit-content;width:fit-content}.rf-w-full{width:100%}.rf-w-screen{width:100vw}.rf-min-w-0{min-width:0}.rf-min-w-10{min-width:2.5rem}.rf-min-w-16{min-width:4rem}.rf-min-w-32{min-width:8rem}.rf-min-w-80{min-width:20rem}.rf-min-w-96{min-width:24rem}.rf-min-w-\\[148px\\]{min-width:148px}.rf-min-w-\\[600px\\]{min-width:600px}.rf-min-w-\\[8rem\\]{min-width:8rem}.rf-min-w-\\[var\\(--radix-select-trigger-width\\)\\]{min-width:var(--radix-select-trigger-width)}.\\!rf-max-w-\\[95vw\\]{max-width:95vw!important}.rf-max-w-2xl{max-width:42rem}.rf-max-w-3xl{max-width:48rem}.rf-max-w-4xl{max-width:56rem}.rf-max-w-5xl{max-width:64rem}.rf-max-w-64{max-width:16rem}.rf-max-w-96{max-width:24rem}.rf-max-w-\\[1000px\\]{max-width:1000px}.rf-max-w-\\[150px\\]{max-width:150px}.rf-max-w-\\[200px\\]{max-width:200px}.rf-max-w-\\[40\\%\\]{max-width:40%}.rf-max-w-\\[600px\\]{max-width:600px}.rf-max-w-full{max-width:100%}.rf-max-w-lg{max-width:32rem}.rf-max-w-md{max-width:28rem}.rf-max-w-none{max-width:none}.rf-max-w-xl{max-width:36rem}.rf-max-w-xs{max-width:20rem}.rf-flex-1{flex:1 1 0%}.rf-flex-shrink-0,.rf-shrink-0{flex-shrink:0}.rf-flex-grow{flex-grow:1}.rf-table-auto{table-layout:auto}.rf-origin-\\[--radix-popover-content-transform-origin\\]{transform-origin:var(--radix-popover-content-transform-origin)}.-rf-translate-x-1{--tw-translate-x:-0.25rem}.-rf-translate-x-1,.-rf-translate-x-1\\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rf-translate-x-1\\/2{--tw-translate-x:-50%}.-rf-translate-y-1{--tw-translate-y:-0.25rem}.-rf-translate-y-1,.rf--translate-x-1{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rf--translate-x-1{--tw-translate-x:-0.25rem}.rf--translate-x-1\\/2{--tw-translate-x:-50%}.rf--translate-x-1\\/2,.rf--translate-y-1{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rf--translate-y-1{--tw-translate-y:-0.25rem}.rf-translate-x-\\[-50\\%\\]{--tw-translate-x:-50%}.rf-translate-x-\\[-50\\%\\],.rf-translate-y-\\[-50\\%\\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rf-translate-y-\\[-50\\%\\]{--tw-translate-y:-50%}.rf-rotate-90{--tw-rotate:90deg}.rf-rotate-90,.rf-transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes rf-pulse{50%{opacity:.5}}.rf-animate-pulse{animation:rf-pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes rf-spin{to{transform:rotate(1turn)}}.rf-animate-spin{animation:rf-spin 1s linear infinite}.rf-cursor-default{cursor:default}.rf-cursor-not-allowed{cursor:not-allowed}.rf-cursor-pointer{cursor:pointer}.rf-select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.rf-grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.rf-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.rf-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.rf-flex-row{flex-direction:row}.rf-flex-col{flex-direction:column}.rf-flex-col-reverse{flex-direction:column-reverse}.rf-flex-wrap{flex-wrap:wrap}.rf-place-content-center{place-content:center}.rf-place-items-center{place-items:center}.rf-items-start{align-items:flex-start}.rf-items-end{align-items:flex-end}.rf-items-center{align-items:center}.rf-items-baseline{align-items:baseline}.rf-items-stretch{align-items:stretch}.rf-justify-end{justify-content:flex-end}.rf-justify-center{justify-content:center}.rf-justify-between{justify-content:space-between}.rf-gap-0{gap:0}.rf-gap-1{gap:.25rem}.rf-gap-2{gap:.5rem}.rf-gap-3{gap:.75rem}.rf-gap-4{gap:1rem}.rf-gap-5{gap:1.25rem}.rf-gap-6{gap:1.5rem}.rf-gap-8{gap:2rem}.rf-space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.rf-space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}.rf-space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.rf-space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.75rem*var(--tw-space-y-reverse));margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)))}.rf-space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.rf-space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.5rem*var(--tw-space-y-reverse));margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)))}.rf-divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-bottom-width:calc(1px*var(--tw-divide-y-reverse));border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)))}.rf-overflow-auto{overflow:auto}.\\!rf-overflow-hidden{overflow:hidden!important}.rf-overflow-hidden{overflow:hidden}.rf-overflow-visible{overflow:visible}.rf-overflow-x-auto{overflow-x:auto}.\\!rf-overflow-y-auto{overflow-y:auto!important}.rf-overflow-y-auto{overflow-y:auto}.rf-overflow-x-hidden{overflow-x:hidden}.rf-overflow-x-clip{overflow-x:clip}.rf-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rf-whitespace-normal{white-space:normal}.rf-whitespace-nowrap{white-space:nowrap}.rf-whitespace-pre-wrap{white-space:pre-wrap}.rf-text-nowrap{text-wrap:nowrap}.rf-break-words{overflow-wrap:break-word}.rf-break-all{word-break:break-all}.rf-rounded{border-radius:.25rem}.rf-rounded-2xl{border-radius:1rem}.rf-rounded-full{border-radius:9999px}.rf-rounded-lg{border-radius:var(--radius)}.rf-rounded-md{border-radius:calc(var(--radius) - 2px)}.rf-rounded-sm{border-radius:calc(var(--radius) - 4px)}.rf-rounded-xl{border-radius:.75rem}.rf-border{border-width:1px}.rf-border-2{border-width:2px}.rf-border-b{border-bottom-width:1px}.rf-border-l-2{border-left-width:2px}.rf-border-l-4{border-left-width:4px}.rf-border-t{border-top-width:1px}.rf-border-none{border-style:none}.rf-border-blue-200{--tw-border-opacity:1;border-color:rgb(191 219 254/var(--tw-border-opacity,1))}.rf-border-blue-300{--tw-border-opacity:1;border-color:rgb(147 197 253/var(--tw-border-opacity,1))}.rf-border-blue-400{--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.rf-border-blue-500{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.rf-border-blue-600{--tw-border-opacity:1;border-color:rgb(37 99 235/var(--tw-border-opacity,1))}.rf-border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.rf-border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.rf-border-green-200{--tw-border-opacity:1;border-color:rgb(187 247 208/var(--tw-border-opacity,1))}.rf-border-green-400{--tw-border-opacity:1;border-color:rgb(74 222 128/var(--tw-border-opacity,1))}.rf-border-input{border-color:hsl(var(--input))}.rf-border-neutral-200{--tw-border-opacity:1;border-color:rgb(229 229 229/var(--tw-border-opacity,1))}.rf-border-orange-100{--tw-border-opacity:1;border-color:rgb(255 237 213/var(--tw-border-opacity,1))}.rf-border-orange-200{--tw-border-opacity:1;border-color:rgb(254 215 170/var(--tw-border-opacity,1))}.rf-border-orange-500{--tw-border-opacity:1;border-color:rgb(249 115 22/var(--tw-border-opacity,1))}.rf-border-primary{border-color:hsl(var(--primary))}.rf-border-red-100{--tw-border-opacity:1;border-color:rgb(254 226 226/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-red-400{--tw-border-opacity:1;border-color:rgb(248 113 113/var(--tw-border-opacity,1))}.rf-border-red-500{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.rf-border-red-600{--tw-border-opacity:1;border-color:rgb(220 38 38/var(--tw-border-opacity,1))}.rf-border-red-700{--tw-border-opacity:1;border-color:rgb(185 28 28/var(--tw-border-opacity,1))}.rf-border-red-800{--tw-border-opacity:1;border-color:rgb(153 27 27/var(--tw-border-opacity,1))}.rf-border-zinc-200{--tw-border-opacity:1;border-color:rgb(228 228 231/var(--tw-border-opacity,1))}.rf-border-zinc-900{--tw-border-opacity:1;border-color:rgb(24 24 27/var(--tw-border-opacity,1))}.rf-border-t-blue-600{--tw-border-opacity:1;border-top-color:rgb(37 99 235/var(--tw-border-opacity,1))}.rf-bg-amber-50{--tw-bg-opacity:1;background-color:rgb(255 251 235/var(--tw-bg-opacity,1))}.rf-bg-amber-50\\/30{background-color:rgba(255,251,235,.3)}.rf-bg-background{background-color:hsl(var(--background))}.rf-bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.rf-bg-black\\/80{background-color:rgba(0,0,0,.8)}.rf-bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.rf-bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.rf-bg-blue-50\\/30{background-color:rgba(239,246,255,.3)}.rf-bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.rf-bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.rf-bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.rf-bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.rf-bg-gray-300{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity,1))}.rf-bg-gray-400{--tw-bg-opacity:1;background-color:rgb(156 163 175/var(--tw-bg-opacity,1))}.rf-bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.rf-bg-gray-500{--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity,1))}.rf-bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.rf-bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.rf-bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.rf-bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.rf-bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.rf-bg-muted{background-color:hsl(var(--muted))}.rf-bg-neutral-100{--tw-bg-opacity:1;background-color:rgb(245 245 245/var(--tw-bg-opacity,1))}.rf-bg-neutral-50{--tw-bg-opacity:1;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))}.rf-bg-neutral-800{--tw-bg-opacity:1;background-color:rgb(38 38 38/var(--tw-bg-opacity,1))}.rf-bg-neutral-900{--tw-bg-opacity:1;background-color:rgb(23 23 23/var(--tw-bg-opacity,1))}.rf-bg-orange-400{--tw-bg-opacity:1;background-color:rgb(251 146 60/var(--tw-bg-opacity,1))}.rf-bg-orange-50{--tw-bg-opacity:1;background-color:rgb(255 247 237/var(--tw-bg-opacity,1))}.rf-bg-orange-50\\/50{background-color:rgba(255,247,237,.5)}.rf-bg-orange-500{--tw-bg-opacity:1;background-color:rgb(249 115 22/var(--tw-bg-opacity,1))}.rf-bg-popover{background-color:hsl(var(--popover))}.rf-bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.rf-bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.rf-bg-red-50\\/50{background-color:hsla(0,86%,97%,.5)}.rf-bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.rf-bg-red-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/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-red-950{--tw-bg-opacity:1;background-color:rgb(69 10 10/var(--tw-bg-opacity,1))}.rf-bg-slate-50{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.rf-bg-transparent{background-color:transparent}.rf-bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.rf-bg-yellow-100{--tw-bg-opacity:1;background-color:rgb(254 249 195/var(--tw-bg-opacity,1))}.rf-bg-zinc-100{--tw-bg-opacity:1;background-color:rgb(244 244 245/var(--tw-bg-opacity,1))}.rf-bg-zinc-200{--tw-bg-opacity:1;background-color:rgb(228 228 231/var(--tw-bg-opacity,1))}.rf-bg-zinc-50{--tw-bg-opacity:1;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))}.rf-bg-zinc-800{--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))}.rf-bg-zinc-900{--tw-bg-opacity:1;background-color:rgb(24 24 27/var(--tw-bg-opacity,1))}.rf-bg-zinc-950{--tw-bg-opacity:1;background-color:rgb(9 9 11/var(--tw-bg-opacity,1))}.rf-bg-opacity-50{--tw-bg-opacity:0.5}.rf-fill-amber-500{fill:#f59e0b}.rf-fill-current{fill:currentColor}.rf-object-contain{-o-object-fit:contain;object-fit:contain}.rf-object-cover{-o-object-fit:cover;object-fit:cover}.\\!rf-p-0{padding:0!important}.rf-p-0{padding:0}.rf-p-1{padding:.25rem}.rf-p-2{padding:.5rem}.rf-p-3{padding:.75rem}.rf-p-4{padding:1rem}.rf-p-5{padding:1.25rem}.rf-p-6{padding:1.5rem}.rf-p-8{padding:2rem}.rf-px-1{padding-left:.25rem;padding-right:.25rem}.rf-px-2{padding-left:.5rem;padding-right:.5rem}.rf-px-3{padding-left:.75rem;padding-right:.75rem}.rf-px-4{padding-left:1rem;padding-right:1rem}.rf-px-6{padding-left:1.5rem;padding-right:1.5rem}.rf-px-8{padding-left:2rem;padding-right:2rem}.rf-py-0{padding-bottom:0;padding-top:0}.rf-py-0\\.5{padding-bottom:.125rem;padding-top:.125rem}.rf-py-1{padding-bottom:.25rem;padding-top:.25rem}.rf-py-1\\.5{padding-bottom:.375rem;padding-top:.375rem}.rf-py-10{padding-bottom:2.5rem;padding-top:2.5rem}.rf-py-12{padding-bottom:3rem;padding-top:3rem}.rf-py-2{padding-bottom:.5rem;padding-top:.5rem}.rf-py-3{padding-bottom:.75rem;padding-top:.75rem}.rf-py-4{padding-bottom:1rem;padding-top:1rem}.rf-py-6{padding-bottom:1.5rem;padding-top:1.5rem}.rf-py-8{padding-bottom:2rem;padding-top:2rem}.rf-pb-0{padding-bottom:0}.rf-pb-1{padding-bottom:.25rem}.rf-pb-2{padding-bottom:.5rem}.rf-pb-3{padding-bottom:.75rem}.rf-pb-4{padding-bottom:1rem}.rf-pb-px{padding-bottom:1px}.rf-pl-10{padding-left:2.5rem}.rf-pl-11{padding-left:2.75rem}.rf-pl-12{padding-left:3rem}.rf-pl-2{padding-left:.5rem}.rf-pl-4{padding-left:1rem}.rf-pl-8{padding-left:2rem}.rf-pr-2{padding-right:.5rem}.rf-pt-0{padding-top:0}.rf-pt-1{padding-top:.25rem}.rf-pt-2{padding-top:.5rem}.rf-pt-4{padding-top:1rem}.rf-text-left{text-align:left}.rf-text-center{text-align:center}.rf-text-right{text-align:right}.rf-font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.rf-text-2xl{font-size:1.5rem;line-height:2rem}.rf-text-3xl{font-size:1.875rem;line-height:2.25rem}.rf-text-\\[8px\\]{font-size:8px}.rf-text-base{font-size:1rem;line-height:1.5rem}.rf-text-lg{font-size:1.125rem;line-height:1.75rem}.rf-text-sm{font-size:.875rem;line-height:1.25rem}.rf-text-xl{font-size:1.25rem;line-height:1.75rem}.rf-text-xs{font-size:.75rem;line-height:1rem}.\\!rf-font-normal{font-weight:400!important}.rf-font-bold{font-weight:700}.rf-font-medium{font-weight:500}.rf-font-semibold{font-weight:600}.rf-uppercase{text-transform:uppercase}.rf-capitalize{text-transform:capitalize}.rf-tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.rf-leading-5{line-height:1.25rem}.rf-leading-\\[0\\.95rem\\]{line-height:.95rem}.rf-leading-\\[1rem\\]{line-height:1rem}.rf-leading-none{line-height:1}.rf-leading-relaxed{line-height:1.625}.rf-leading-tight{line-height:1.25}.rf-tracking-wide{letter-spacing:.025em}.rf-tracking-widest{letter-spacing:.1em}.rf-text-amber-500{--tw-text-opacity:1;color:rgb(245 158 11/var(--tw-text-opacity,1))}.rf-text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.rf-text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.rf-text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.rf-text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.rf-text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.rf-text-blue-900{--tw-text-opacity:1;color:rgb(30 58 138/var(--tw-text-opacity,1))}.rf-text-current{color:currentColor}.rf-text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.rf-text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.rf-text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.rf-text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.rf-text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.rf-text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.rf-text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.rf-text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.rf-text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.rf-text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.rf-text-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.rf-text-green-900{--tw-text-opacity:1;color:rgb(20 83 45/var(--tw-text-opacity,1))}.rf-text-muted-foreground{color:hsl(var(--muted-foreground))}.rf-text-neutral-50{--tw-text-opacity:1;color:rgb(250 250 250/var(--tw-text-opacity,1))}.rf-text-neutral-500{--tw-text-opacity:1;color:rgb(115 115 115/var(--tw-text-opacity,1))}.rf-text-neutral-900{--tw-text-opacity:1;color:rgb(23 23 23/var(--tw-text-opacity,1))}.rf-text-neutral-950{--tw-text-opacity:1;color:rgb(10 10 10/var(--tw-text-opacity,1))}.rf-text-orange-400{--tw-text-opacity:1;color:rgb(251 146 60/var(--tw-text-opacity,1))}.rf-text-orange-500{--tw-text-opacity:1;color:rgb(249 115 22/var(--tw-text-opacity,1))}.rf-text-orange-600{--tw-text-opacity:1;color:rgb(234 88 12/var(--tw-text-opacity,1))}.rf-text-orange-700{--tw-text-opacity:1;color:rgb(194 65 12/var(--tw-text-opacity,1))}.rf-text-orange-800{--tw-text-opacity:1;color:rgb(154 52 18/var(--tw-text-opacity,1))}.rf-text-popover-foreground{color:hsl(var(--popover-foreground))}.rf-text-red-200{--tw-text-opacity:1;color:rgb(254 202 202/var(--tw-text-opacity,1))}.rf-text-red-300{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.rf-text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.rf-text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.rf-text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.rf-text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.rf-text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.rf-text-red-900{--tw-text-opacity:1;color:rgb(127 29 29/var(--tw-text-opacity,1))}.rf-text-slate-400{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.rf-text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.rf-text-slate-600{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity,1))}.rf-text-slate-800{--tw-text-opacity:1;color:rgb(30 41 59/var(--tw-text-opacity,1))}.rf-text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.rf-text-yellow-400{--tw-text-opacity:1;color:rgb(250 204 21/var(--tw-text-opacity,1))}.rf-text-yellow-500{--tw-text-opacity:1;color:rgb(234 179 8/var(--tw-text-opacity,1))}.rf-text-yellow-600{--tw-text-opacity:1;color:rgb(202 138 4/var(--tw-text-opacity,1))}.rf-text-yellow-900{--tw-text-opacity:1;color:rgb(113 63 18/var(--tw-text-opacity,1))}.rf-text-zinc-200{--tw-text-opacity:1;color:rgb(228 228 231/var(--tw-text-opacity,1))}.rf-text-zinc-300{--tw-text-opacity:1;color:rgb(212 212 216/var(--tw-text-opacity,1))}.rf-text-zinc-400{--tw-text-opacity:1;color:rgb(161 161 170/var(--tw-text-opacity,1))}.rf-text-zinc-50{--tw-text-opacity:1;color:rgb(250 250 250/var(--tw-text-opacity,1))}.rf-text-zinc-500{--tw-text-opacity:1;color:rgb(113 113 122/var(--tw-text-opacity,1))}.rf-text-zinc-900{--tw-text-opacity:1;color:rgb(24 24 27/var(--tw-text-opacity,1))}.rf-text-zinc-950{--tw-text-opacity:1;color:rgb(9 9 11/var(--tw-text-opacity,1))}.rf-underline{text-decoration-line:underline}.rf-line-through{text-decoration-line:line-through}.rf-underline-offset-4{text-underline-offset:4px}.rf-opacity-0{opacity:0}.rf-opacity-100{opacity:1}.rf-opacity-25{opacity:.25}.rf-opacity-30{opacity:.3}.rf-opacity-50{opacity:.5}.rf-opacity-60{opacity:.6}.rf-opacity-70{opacity:.7}.rf-opacity-75{opacity:.75}.rf-shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.rf-shadow,.rf-shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.rf-shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.rf-shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.rf-shadow-md,.rf-shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.rf-shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.rf-outline-none{outline:2px solid transparent;outline-offset:2px}.rf-ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.rf-ring-blue-500{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}.rf-ring-primary{--tw-ring-color:hsl(var(--primary))}.rf-ring-offset-background{--tw-ring-offset-color:hsl(var(--background))}.rf-ring-offset-white{--tw-ring-offset-color:#fff}.rf-transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.rf-transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.rf-transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.rf-transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.rf-transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.rf-duration-150{transition-duration:.15s}.rf-duration-200{transition-duration:.2s}.rf-ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.rf-slide-in-from-left-1{--tw-enter-translate-x:-0.25rem}.rf-slide-out-to-left-1{--tw-exit-translate-x:-0.25rem}.rf-duration-150{animation-duration:.15s}.rf-duration-200{animation-duration:.2s}.rf-ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.file\\:rf-border-0::file-selector-button{border-width:0}.file\\:rf-bg-transparent::file-selector-button{background-color:transparent}.file\\:rf-text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\\:rf-font-medium::file-selector-button{font-weight:500}.placeholder\\:rf-text-zinc-500::-moz-placeholder{--tw-text-opacity:1;color:rgb(113 113 122/var(--tw-text-opacity,1))}.placeholder\\:rf-text-zinc-500::placeholder{--tw-text-opacity:1;color:rgb(113 113 122/var(--tw-text-opacity,1))}.hover\\:rf-border-blue-300:hover{--tw-border-opacity:1;border-color:rgb(147 197 253/var(--tw-border-opacity,1))}.hover\\:\\!rf-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-orange-100:hover{--tw-bg-opacity:1;background-color:rgb(255 237 213/var(--tw-bg-opacity,1))}.hover\\:rf-bg-red-100:hover{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.hover\\:rf-bg-red-500\\/90:hover{background-color:rgba(239,68,68,.9)}.hover\\:rf-bg-slate-200:hover{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity,1))}.hover\\:rf-bg-zinc-100:hover{--tw-bg-opacity:1;background-color:rgb(244 244 245/var(--tw-bg-opacity,1))}.hover\\:rf-bg-zinc-100\\/80:hover{background-color:hsla(240,5%,96%,.8)}.hover\\:rf-bg-zinc-900\\/90:hover{background-color:rgba(24,24,27,.9)}.hover\\:rf-text-blue-800:hover{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.hover\\:rf-text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.hover\\:rf-text-red-400:hover{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.hover\\:rf-text-slate-800:hover{--tw-text-opacity:1;color:rgb(30 41 59/var(--tw-text-opacity,1))}.hover\\:rf-text-slate-900:hover{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.hover\\:rf-text-zinc-900:hover{--tw-text-opacity:1;color:rgb(24 24 27/var(--tw-text-opacity,1))}.hover\\:rf-underline:hover{text-decoration-line:underline}.focus\\:rf-bg-gray-100:focus{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.focus\\:rf-bg-zinc-100:focus{--tw-bg-opacity:1;background-color:rgb(244 244 245/var(--tw-bg-opacity,1))}.focus\\:rf-text-gray-900:focus{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.focus\\:rf-text-zinc-900:focus{--tw-text-opacity:1;color:rgb(24 24 27/var(--tw-text-opacity,1))}.focus\\:rf-outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\\:rf-ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\\:rf-ring-blue-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}.focus\\:rf-ring-ring:focus{--tw-ring-color:hsl(var(--ring))}.focus\\:rf-ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\\:rf-outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\\:rf-ring-1:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\\:rf-ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\\:rf-ring-zinc-950:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgb(9 9 11/var(--tw-ring-opacity,1))}.focus-visible\\:rf-ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.disabled\\:rf-pointer-events-none:disabled{pointer-events:none}.disabled\\:rf-cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:rf-opacity-50:disabled{opacity:.5}.rf-group:hover .group-hover\\:rf-opacity-100,.rf-group\\/bar:hover .group-hover\\/bar\\:rf-opacity-100{opacity:1}.rf-peer:disabled~.peer-disabled\\:rf-cursor-not-allowed{cursor:not-allowed}.rf-peer:disabled~.peer-disabled\\:rf-opacity-70{opacity:.7}.data-\\[disabled\\=true\\]\\:rf-pointer-events-none[data-disabled=true],.data-\\[disabled\\]\\:rf-pointer-events-none[data-disabled]{pointer-events:none}.data-\\[side\\=bottom\\]\\:rf-translate-y-1[data-side=bottom]{--tw-translate-y:0.25rem}.data-\\[side\\=bottom\\]\\:rf-translate-y-1[data-side=bottom],.data-\\[side\\=left\\]\\:-rf-translate-x-1[data-side=left]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\\[side\\=left\\]\\:-rf-translate-x-1[data-side=left]{--tw-translate-x:-0.25rem}.data-\\[side\\=right\\]\\:rf-translate-x-1[data-side=right]{--tw-translate-x:0.25rem}.data-\\[side\\=right\\]\\:rf-translate-x-1[data-side=right],.data-\\[side\\=top\\]\\:-rf-translate-y-1[data-side=top]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\\[side\\=top\\]\\:-rf-translate-y-1[data-side=top]{--tw-translate-y:-0.25rem}.data-\\[selected\\=true\\]\\:rf-bg-zinc-100[data-selected=true]{--tw-bg-opacity:1;background-color:rgb(244 244 245/var(--tw-bg-opacity,1))}.data-\\[state\\=active\\]\\:rf-bg-white[data-state=active]{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.data-\\[state\\=checked\\]\\:rf-bg-zinc-900[data-state=checked]{--tw-bg-opacity:1;background-color:rgb(24 24 27/var(--tw-bg-opacity,1))}.data-\\[state\\=open\\]\\:rf-bg-zinc-100[data-state=open]{--tw-bg-opacity:1;background-color:rgb(244 244 245/var(--tw-bg-opacity,1))}.data-\\[selected\\=true\\]\\:rf-text-zinc-900[data-selected=true]{--tw-text-opacity:1;color:rgb(24 24 27/var(--tw-text-opacity,1))}.data-\\[state\\=active\\]\\:rf-text-zinc-950[data-state=active]{--tw-text-opacity:1;color:rgb(9 9 11/var(--tw-text-opacity,1))}.data-\\[state\\=checked\\]\\:rf-text-zinc-50[data-state=checked]{--tw-text-opacity:1;color:rgb(250 250 250/var(--tw-text-opacity,1))}.data-\\[disabled\\=true\\]\\:rf-opacity-50[data-disabled=true],.data-\\[disabled\\]\\:rf-opacity-50[data-disabled]{opacity:.5}.data-\\[state\\=active\\]\\:rf-shadow[data-state=active]{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.data-\\[state\\=open\\]\\:rf-animate-in[data-state=open]{animation-duration:.15s;animation-name:enter;--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial}.data-\\[state\\=closed\\]\\:rf-animate-out[data-state=closed]{animation-duration:.15s;animation-name:exit;--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial}.data-\\[state\\=closed\\]\\:rf-fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\\[state\\=open\\]\\:rf-fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\\[state\\=closed\\]\\:rf-zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\\[state\\=open\\]\\:rf-zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\\[side\\=bottom\\]\\:rf-slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:-0.5rem}.data-\\[side\\=left\\]\\:rf-slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:0.5rem}.data-\\[side\\=right\\]\\:rf-slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:-0.5rem}.data-\\[side\\=top\\]\\:rf-slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:0.5rem}.data-\\[state\\=closed\\]\\:rf-slide-out-to-left-1\\/2[data-state=closed]{--tw-exit-translate-x:-50%}.data-\\[state\\=closed\\]\\:rf-slide-out-to-top-\\[48\\%\\][data-state=closed]{--tw-exit-translate-y:-48%}.data-\\[state\\=open\\]\\:rf-slide-in-from-left-1\\/2[data-state=open]{--tw-enter-translate-x:-50%}.data-\\[state\\=open\\]\\:rf-slide-in-from-top-\\[48\\%\\][data-state=open]{--tw-enter-translate-y:-48%}.dark\\:rf-border-zinc-50:is(.rf-dark *){--tw-border-opacity:1;border-color:rgb(250 250 250/var(--tw-border-opacity,1))}.dark\\:rf-border-zinc-800:is(.rf-dark *){--tw-border-opacity:1;border-color:rgb(39 39 42/var(--tw-border-opacity,1))}.dark\\:rf-bg-gray-700:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.dark\\:rf-bg-gray-800:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.dark\\:rf-bg-red-900:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.dark\\:rf-bg-zinc-50:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))}.dark\\:rf-bg-zinc-800:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))}.dark\\:rf-bg-zinc-950:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(9 9 11/var(--tw-bg-opacity,1))}.dark\\:rf-text-gray-500:is(.rf-dark *){--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.dark\\:rf-text-zinc-400:is(.rf-dark *){--tw-text-opacity:1;color:rgb(161 161 170/var(--tw-text-opacity,1))}.dark\\:rf-text-zinc-50:is(.rf-dark *){--tw-text-opacity:1;color:rgb(250 250 250/var(--tw-text-opacity,1))}.dark\\:rf-text-zinc-900:is(.rf-dark *){--tw-text-opacity:1;color:rgb(24 24 27/var(--tw-text-opacity,1))}.dark\\:rf-placeholder-zinc-400:is(.rf-dark *)::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(161 161 170/var(--tw-placeholder-opacity,1))}.dark\\:rf-placeholder-zinc-400:is(.rf-dark *)::placeholder{--tw-placeholder-opacity:1;color:rgb(161 161 170/var(--tw-placeholder-opacity,1))}.dark\\:rf-ring-offset-zinc-950:is(.rf-dark *){--tw-ring-offset-color:#09090b}.dark\\:placeholder\\:rf-text-zinc-400:is(.rf-dark *)::-moz-placeholder{--tw-text-opacity:1;color:rgb(161 161 170/var(--tw-text-opacity,1))}.dark\\:placeholder\\:rf-text-zinc-400:is(.rf-dark *)::placeholder{--tw-text-opacity:1;color:rgb(161 161 170/var(--tw-text-opacity,1))}.dark\\:hover\\:rf-bg-red-900\\/90:hover:is(.rf-dark *){background-color:rgba(127,29,29,.9)}.dark\\:hover\\:rf-bg-zinc-50\\/90:hover:is(.rf-dark *){background-color:hsla(0,0%,98%,.9)}.dark\\:hover\\:rf-bg-zinc-800:hover:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))}.dark\\:hover\\:rf-bg-zinc-800\\/80:hover:is(.rf-dark *){background-color:rgba(39,39,42,.8)}.dark\\:hover\\:rf-text-zinc-50:hover:is(.rf-dark *){--tw-text-opacity:1;color:rgb(250 250 250/var(--tw-text-opacity,1))}.dark\\:focus\\:rf-bg-zinc-800:focus:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))}.dark\\:focus\\:rf-text-zinc-50:focus:is(.rf-dark *){--tw-text-opacity:1;color:rgb(250 250 250/var(--tw-text-opacity,1))}.dark\\:focus-visible\\:rf-ring-zinc-300:focus-visible:is(.rf-dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(212 212 216/var(--tw-ring-opacity,1))}.dark\\:data-\\[selected\\=true\\]\\:rf-bg-zinc-800[data-selected=true]:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))}.dark\\:data-\\[state\\=active\\]\\:rf-bg-zinc-950[data-state=active]:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(9 9 11/var(--tw-bg-opacity,1))}.dark\\:data-\\[state\\=checked\\]\\:rf-bg-zinc-50[data-state=checked]:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))}.dark\\:data-\\[state\\=open\\]\\:rf-bg-zinc-800[data-state=open]:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))}.dark\\:data-\\[selected\\=true\\]\\:rf-text-zinc-50[data-selected=true]:is(.rf-dark *){--tw-text-opacity:1;color:rgb(250 250 250/var(--tw-text-opacity,1))}.dark\\:data-\\[state\\=active\\]\\:rf-text-zinc-50[data-state=active]:is(.rf-dark *){--tw-text-opacity:1;color:rgb(250 250 250/var(--tw-text-opacity,1))}.dark\\:data-\\[state\\=checked\\]\\:rf-text-zinc-900[data-state=checked]:is(.rf-dark *){--tw-text-opacity:1;color:rgb(24 24 27/var(--tw-text-opacity,1))}@media (min-width:640px){.sm\\:rf-order-1{order:1}.sm\\:rf-order-2{order:2}.sm\\:rf-mt-0{margin-top:0}.sm\\:rf-mt-4{margin-top:1rem}.sm\\:rf-block{display:block}.sm\\:rf-inline{display:inline}.sm\\:rf-grid{display:grid}.sm\\:rf-hidden{display:none}.sm\\:rf-h-5{height:1.25rem}.sm\\:rf-w-1\\/2{width:50%}.sm\\:rf-w-5{width:1.25rem}.sm\\:rf-w-\\[90vw\\]{width:90vw}.sm\\:rf-w-auto{width:auto}.sm\\:rf-max-w-\\[500px\\]{max-width:500px}.sm\\:rf-max-w-md{max-width:28rem}.sm\\:rf-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\\:rf-grid-cols-\\[1fr_auto\\]{grid-template-columns:1fr auto}.sm\\:rf-flex-row{flex-direction:row}.sm\\:rf-items-center{align-items:center}.sm\\:rf-justify-end{justify-content:flex-end}.sm\\:rf-gap-3{gap:.75rem}.sm\\:rf-gap-4{gap:1rem}.sm\\:rf-space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.sm\\:rf-justify-self-end{justify-self:end}.sm\\:rf-rounded-lg{border-radius:var(--radius)}.sm\\:rf-p-3{padding:.75rem}.sm\\:rf-p-6{padding:1.5rem}.sm\\:rf-px-4{padding-left:1rem;padding-right:1rem}.sm\\:rf-px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\\:rf-py-6{padding-bottom:1.5rem;padding-top:1.5rem}.sm\\:rf-text-left{text-align:left}.sm\\:rf-text-right{text-align:right}.sm\\:rf-text-2xl{font-size:1.5rem;line-height:2rem}.sm\\:rf-text-base{font-size:1rem;line-height:1.5rem}.sm\\:rf-text-sm{font-size:.875rem;line-height:1.25rem}.sm\\:rf-text-xl{font-size:1.25rem;line-height:1.75rem}}@media (min-width:768px){.md\\:rf-w-auto{width:auto}.md\\:rf-max-w-\\[660px\\]{max-width:660px}.md\\:rf-max-w-lg{max-width:32rem}.md\\:rf-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\\:rf-p-8{padding:2rem}.md\\:rf-py-8{padding-bottom:2rem;padding-top:2rem}.md\\:rf-text-3xl{font-size:1.875rem;line-height:2.25rem}}@media (min-width:1024px){.lg\\:rf-max-w-\\[720px\\]{max-width:720px}.lg\\:rf-max-w-xl{max-width:36rem}}@media (min-width:1280px){.xl\\:rf-max-w-\\[800px\\]{max-width:800px}}.\\[\\&\\>span\\]\\:rf-line-clamp-1>span{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\\[\\&\\>svg\\]\\:rf-size-4>svg{height:1rem;width:1rem}.\\[\\&\\>svg\\]\\:rf-shrink-0>svg{flex-shrink:0}.\\[\\&\\>svg\\]\\:rf-text-red-300>svg{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.\\[\\&\\>svg\\]\\:hover\\:rf-text-red-400:hover>svg{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.\\[\\&_\\[cmdk-group-heading\\]\\]\\:rf-px-2 [cmdk-group-heading]{padding-left:.5rem;padding-right:.5rem}.\\[\\&_\\[cmdk-group-heading\\]\\]\\:rf-py-1\\.5 [cmdk-group-heading]{padding-bottom:.375rem;padding-top:.375rem}.\\[\\&_\\[cmdk-group-heading\\]\\]\\:rf-text-xs [cmdk-group-heading]{font-size:.75rem;line-height:1rem}.\\[\\&_\\[cmdk-group-heading\\]\\]\\:rf-font-medium [cmdk-group-heading]{font-weight:500}.\\[\\&_\\[cmdk-group-heading\\]\\]\\:rf-text-zinc-500 [cmdk-group-heading]{--tw-text-opacity:1;color:rgb(113 113 122/var(--tw-text-opacity,1))}.dark\\:\\[\\&_\\[cmdk-group-heading\\]\\]\\:rf-text-zinc-400 [cmdk-group-heading]:is(.rf-dark *){--tw-text-opacity:1;color:rgb(161 161 170/var(--tw-text-opacity,1))}.\\[\\&_\\[cmdk-group\\]\\:not\\(\\[hidden\\]\\)_\\~\\[cmdk-group\\]\\]\\:rf-pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:0}.\\[\\&_\\[cmdk-group\\]\\]\\:rf-px-2 [cmdk-group]{padding-left:.5rem;padding-right:.5rem}.\\[\\&_\\[cmdk-input-wrapper\\]_svg\\]\\:rf-h-5 [cmdk-input-wrapper] svg{height:1.25rem}.\\[\\&_\\[cmdk-input-wrapper\\]_svg\\]\\:rf-w-5 [cmdk-input-wrapper] svg{width:1.25rem}.\\[\\&_\\[cmdk-input\\]\\]\\:rf-h-12 [cmdk-input]{height:3rem}.\\[\\&_\\[cmdk-item\\]\\]\\:rf-px-2 [cmdk-item]{padding-left:.5rem;padding-right:.5rem}.\\[\\&_\\[cmdk-item\\]\\]\\:rf-py-3 [cmdk-item]{padding-bottom:.75rem;padding-top:.75rem}.\\[\\&_\\[cmdk-item\\]_svg\\]\\:rf-h-5 [cmdk-item] svg{height:1.25rem}.\\[\\&_\\[cmdk-item\\]_svg\\]\\:rf-w-5 [cmdk-item] svg{width:1.25rem}.\\[\\&_svg\\]\\:rf-pointer-events-none svg{pointer-events:none}.\\[\\&_svg\\]\\:rf-size-4 svg{height:1rem;width:1rem}.\\[\\&_svg\\]\\:rf-shrink-0 svg{flex-shrink:0}',_tt=()=>{iA.useEffect(()=>{if(document.querySelector('style[data-styles="tscircuit-runframe"]'))return;const A=document.createElement("style");A.setAttribute("data-styles","tscircuit-runframe"),A.textContent=fNe,document.head.appendChild(A)},[])},yNe=e=>{iA.useEffect(()=>(e?document.body.style.overflow="hidden":document.body.style.overflow="",()=>{document.body.style.overflow=""}),[e])};function Rtt(e,A){const[t,i]=iA.useState(()=>{try{const o=window.localStorage.getItem(e);return o?JSON.parse(o):A}catch(o){return console.error("Error reading from localStorage:",o),A}});return iA.useEffect(()=>{try{window.localStorage.setItem(e,JSON.stringify(t))}catch(o){console.error("Error writing to localStorage:",o)}},[e,t]),[t,i]}const Ntt=e=>`hsl(${T0.indexOf(e)*137.5%360}, 70%, 50%)`,wNe=({phaseTimings:e})=>{if(!e)return null;const A=Object.values(e).reduce((t,i)=>t+i,0);return X.jsxs("div",{className:"rf-space-y-2 rf-w-full rf-px-4",children:[X.jsx("div",{className:"rf-relative rf-h-8 rf-flex rf-rounded-sm",children:T0.map(t=>{const i=e[t]||0,o=i/A*100;return X.jsx("div",{className:"rf-group/bar rf-relative rf-overflow-visible",style:{width:`${o}%`,backgroundColor:Ntt(t)},children:X.jsxs("div",{className:"rf-opacity-0 group-hover/bar:rf-opacity-100 rf-transition-opacity rf-absolute rf-bottom-full rf-left-1/2 rf-transform -rf-translate-x-1/2 rf-mb-2 rf-px-2 rf-py-1 rf-text-xs rf-whitespace-nowrap rf-rounded rf-bg-gray-900 rf-text-white rf-pointer-events-none",children:[t,": ",i.toFixed(1),"ms"]})},t)})}),X.jsxs("div",{className:"rf-text-xs rf-text-gray-500",children:["Total: ",A.toFixed(2),"ms"]})]})},DNe=e=>{if(e instanceof Blob)return e;if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="object")try{return JSON.stringify(e,null,2)}catch{return String(e)}return String(e)},mNe=({renderLog:e,onRerunWithDebug:A})=>{const[t,i]=iA.useState("chronological"),[o,n]=iA.useState(""),s=[{value:"",label:"None"},{value:"DEBUG=Group_doInitialSchematicTraceRender",label:"DEBUG=Group_doInitialSchematicTraceRender"},{value:"DEBUG=Group_doInitialSchematicLayoutMatchpack",label:"DEBUG=Group_doInitialSchematicLayoutMatchpack"},{value:"DEBUG=Group_doInitialPcbLayoutPack",label:"DEBUG=Group_doInitialPcbLayoutPack"}];if(!e)return X.jsxs("div",{className:"rf-p-4 rf-bg-gray-100 rf-rounded-md",children:[X.jsx("div",{className:"rf-mb-4",children:"No render log, make sure this tab is open when you render"}),A&&X.jsxs("div",{className:"rf-flex rf-gap-2 rf-items-center",children:[X.jsx("select",{value:o,onChange:a=>n(a.target.value),className:"rf-px-3 rf-py-1 rf-border rf-rounded rf-text-xs rf-bg-white",children:s.map(a=>X.jsx("option",{value:a.value,children:a.label},a.value))}),X.jsx(Ic,{onClick:()=>A(o),size:"sm",className:"rf-text-xs",children:"Rerun Render with Debug"})]})]});const r=Object.entries(e?.phaseTimings??{});t==="chronological"?r.sort((a,I)=>T0.indexOf(a[0])-T0.indexOf(I[0])):r.sort((a,I)=>I[1]-a[1]);const g=r.reduce((a,[I,c])=>a+c,0);return X.jsxs("div",{className:"rf-bg-white",children:[X.jsxs("div",{className:"rf-flex rf-justify-between rf-items-center rf-mb-4",children:[X.jsx("div",{children:"Render Logs"}),X.jsxs("div",{className:"rf-flex rf-gap-4 rf-items-center",children:[A&&X.jsxs("div",{className:"rf-flex rf-gap-2 rf-items-center",children:[X.jsx("select",{value:o,onChange:a=>n(a.target.value),className:"rf-px-3 rf-py-1 rf-border rf-rounded rf-text-xs rf-bg-white",children:s.map(a=>X.jsx("option",{value:a.value,children:a.label},a.value))}),X.jsx(Ic,{onClick:()=>A(o),size:"sm",className:"rf-text-xs",children:"Rerun Render with Debug"})]}),X.jsx("div",{className:"rf-flex rf-gap-2 rf-items-center",children:X.jsxs("select",{onChange:a=>{if(a.target.value){const I=e?.debugOutputs?.find(c=>c.name===a.target.value);if(I){const c=DNe(I.content),B=c instanceof Blob?c:new Blob([c],{type:"text/plain"}),C=URL.createObjectURL(B),Q=document.createElement("a");Q.href=C,Q.download=`debug-${I.name}.txt`,document.body.appendChild(Q),Q.click(),document.body.removeChild(Q),URL.revokeObjectURL(C)}a.target.value=""}},disabled:!e?.debugOutputs||e.debugOutputs.length===0,className:"rf-px-3 rf-py-1 rf-border rf-rounded rf-text-xs rf-bg-white disabled:rf-opacity-50 disabled:rf-cursor-not-allowed",children:[X.jsx("option",{value:"",children:"Download Debug Output"}),e?.debugOutputs?.map(a=>X.jsx("option",{value:a.name,children:a.name},a.name))]})}),X.jsxs("div",{className:"rf-flex rf-text-xs rf-items-center",children:[X.jsx("div",{className:"rf-mr-2",children:"Sort by:"}),X.jsxs("select",{value:t,onChange:a=>i(a.target.value),className:"rf-px-2 rf-py-1 rf-border rf-rounded rf-text-xs",children:[X.jsx("option",{value:"chronological",children:"Phase Order"}),X.jsx("option",{value:"longest",children:"Duration"})]})]})]})]}),X.jsx(wNe,{phaseTimings:e.phaseTimings}),X.jsxs("table",{className:"rf-w-full rf-text-xs",children:[X.jsx("thead",{children:X.jsxs("tr",{children:[X.jsx("th",{className:"rf-text-left rf-p-2",children:"Phase Order"}),X.jsx("th",{className:"rf-text-left rf-p-2",children:"Phase"}),X.jsx("th",{className:"rf-text-left rf-p-2",children:"Duration (ms)"})]})}),X.jsx("tbody",{children:r.map(([a,I])=>X.jsxs("tr",{children:[X.jsx("td",{className:"rf-p-2",children:T0.indexOf(a)}),X.jsx("td",{className:"rf-p-2",children:a}),X.jsx("td",{className:"rf-p-2",children:X.jsx("div",{className:"rf-w-8",children:X.jsx("div",{className:"rf-h-2 rf-rounded-sm",style:{backgroundColor:Ntt(a),width:`${I/g*100}%`}})})}),X.jsx("td",{className:"rf-p-2",children:X.jsxs("div",{className:"rf-flex w-full",children:[X.jsxs("span",{className:"rf-flex-grow",children:[I,"ms"]}),X.jsxs("span",{className:"rf-text-gray-500 rf-pr-2",children:[(I/g*100).toFixed(1),"%"]})]})})]},a))})]})]})},Mtt=({errorMessage:e,errorStack:A,circuitJsonErrors:t})=>{iA.useEffect(()=>{if(e){const i=new Error(e);A&&(i.stack=A);try{TY.captureException(i)}catch{}}},[e,A]),iA.useEffect(()=>{if(t&&t.length>0)for(const i of t){const o=new Error(i.message||"Circuit JSON Error");i.stack&&(o.stack=i.stack);try{TY.captureException(o,{error_type:i.type})}catch{}}},[t])},vtt="0.0.1396",SNe={version:vtt},plA={BASE_URL:"/",DEV:!1,MODE:"production",PROD:!0,SSR:!1},flA=new Map,g5=e=>{const A=flA.get(e);return A?Object.fromEntries(Object.entries(A.stores).map(([t,i])=>[t,i.getState()])):{}},bNe=(e,A,t)=>{if(e===void 0)return{type:"untracked",connection:A.connect(t)};const i=flA.get(t.name);if(i)return{type:"tracked",store:e,...i};const o={connection:A.connect(t),stores:{}};return flA.set(t.name,o),{type:"tracked",store:e,...o}},Utt=(e,A={})=>(t,i,o)=>{const{enabled:n,anonymousActionType:s,store:r,...g}=A;let a;try{a=(n??(plA?"production":void 0)!=="production")&&window.__REDUX_DEVTOOLS_EXTENSION__}catch{}if(!a)return(plA?"production":void 0)!=="production"&&n&&console.warn("[zustand devtools middleware] Please install/enable Redux devtools extension"),e(t,i,o);const{connection:I,...c}=bNe(r,a,g);let B=!0;o.setState=(E,l,h)=>{const u=t(E,l);if(!B)return u;const d=h===void 0?{type:s||"anonymous"}:typeof h=="string"?{type:h}:h;return r===void 0?(I?.send(d,i()),u):(I?.send({...d,type:`${r}/${d.type}`},{...g5(g.name),[r]:o.getState()}),u)};const C=(...E)=>{const l=B;B=!1,t(...E),B=l},Q=e(o.setState,i,o);if(c.type==="untracked"?I?.init(Q):(c.stores[c.store]=o,I?.init(Object.fromEntries(Object.entries(c.stores).map(([E,l])=>[E,E===c.store?Q:l.getState()])))),o.dispatchFromDevtools&&typeof o.dispatch=="function"){let E=!1;const l=o.dispatch;o.dispatch=(...h)=>{(plA?"production":void 0)!=="production"&&h[0].type==="__setState"&&!E&&(console.warn('[zustand devtools middleware] "__setState" action type is reserved to set state from the devtools. Avoid using it.'),E=!0),l(...h)}}return I.subscribe(E=>{var l;switch(E.type){case"ACTION":if(typeof E.payload!="string"){console.error("[zustand devtools middleware] Unsupported action format");return}return ylA(E.payload,h=>{if(h.type==="__setState"){if(r===void 0){C(h.state);return}Object.keys(h.state).length!==1&&console.error(`
|
|
5812
|
+
*/const pNe=({containerClassName:e,...A})=>{const t=iA.useRef(null),[i,o]=iA.useState(620);return iA.useLayoutEffect(()=>{const n=()=>{if(t.current){const r=t.current.clientHeight,g=window.innerHeight;o(Math.min(Math.max(r,620),g))}};n();const s=new ResizeObserver(n);return t.current&&s.observe(t.current),window.addEventListener("resize",n),()=>{s.disconnect(),window.removeEventListener("resize",n)}},[]),X.jsx("div",{ref:t,className:e||"rf-w-full rf-h-full",children:X.jsx(dNe,{...A,height:i})})},fNe='*,: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.18 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}:root{--radius:0.5rem}.rf-pointer-events-none{pointer-events:none}.rf-invisible{visibility:hidden}.rf-fixed{position:fixed}.rf-absolute{position:absolute}.rf-relative{position:relative}.rf-inset-0{inset:0}.-rf-left-2{left:-.5rem}.-rf-right-10{right:-2.5rem}.-rf-right-2{right:-.5rem}.-rf-right-4{right:-1rem}.-rf-right-6{right:-1.5rem}.-rf-right-7{right:-1.75rem}.-rf-right-8{right:-2rem}.-rf-right-9{right:-2.25rem}.rf-bottom-full{bottom:100%}.rf-left-0{left:0}.rf-left-1{left:.25rem}.rf-left-1\\/2{left:50%}.rf-left-2{left:.5rem}.rf-left-\\[50\\%\\]{left:50%}.rf-right-0{right:0}.rf-right-1{right:.25rem}.rf-right-4{right:1rem}.rf-right-\\[4px\\]{right:4px}.rf-top-0{top:0}.rf-top-1{top:.25rem}.rf-top-2{top:.5rem}.rf-top-2\\.5{top:.625rem}.rf-top-\\[50\\%\\]{top:50%}.rf-top-\\[6px\\]{top:6px}.\\!rf-z-\\[101\\]{z-index:101!important}.\\!rf-z-\\[200\\]{z-index:200!important}.rf-z-10{z-index:10}.rf-z-50{z-index:50}.rf-z-\\[100\\]{z-index:100}.rf-z-\\[101\\]{z-index:101}.rf-order-1{order:1}.rf-order-2{order:2}.rf-order-3{order:3}.rf-m-1{margin:.25rem}.rf-m-6{margin:1.5rem}.-rf-mx-1,.rf--mx-1{margin-left:-.25rem;margin-right:-.25rem}.rf-mx-1{margin-left:.25rem;margin-right:.25rem}.rf-mx-2{margin-left:.5rem;margin-right:.5rem}.rf-mx-4{margin-left:1rem;margin-right:1rem}.rf-mx-auto{margin-left:auto;margin-right:auto}.rf-my-1{margin-bottom:.25rem;margin-top:.25rem}.rf-my-12{margin-bottom:3rem;margin-top:3rem}.rf-my-4{margin-bottom:1rem;margin-top:1rem}.rf-my-auto{margin-bottom:auto;margin-top:auto}.rf-mb-0{margin-bottom:0}.rf-mb-0\\.5{margin-bottom:.125rem}.rf-mb-1{margin-bottom:.25rem}.rf-mb-12{margin-bottom:3rem}.rf-mb-2{margin-bottom:.5rem}.rf-mb-3{margin-bottom:.75rem}.rf-mb-4{margin-bottom:1rem}.rf-mb-6{margin-bottom:1.5rem}.rf-mb-8{margin-bottom:2rem}.rf-ml-1{margin-left:.25rem}.rf-ml-2{margin-left:.5rem}.rf-ml-6{margin-left:1.5rem}.rf-ml-auto{margin-left:auto}.rf-mr-1{margin-right:.25rem}.rf-mr-2{margin-right:.5rem}.rf-mr-4{margin-right:1rem}.rf-mt-0{margin-top:0}.rf-mt-0\\.5{margin-top:.125rem}.rf-mt-1{margin-top:.25rem}.rf-mt-2{margin-top:.5rem}.rf-mt-3{margin-top:.75rem}.rf-mt-4{margin-top:1rem}.rf-mt-5{margin-top:1.25rem}.rf-mt-auto{margin-top:auto}.rf-block{display:block}.rf-inline-block{display:inline-block}.rf-inline{display:inline}.rf-flex{display:flex}.rf-inline-flex{display:inline-flex}.rf-grid{display:grid}.rf-hidden{display:none}.rf-aspect-square{aspect-ratio:1/1}.rf-aspect-video{aspect-ratio:16/9}.rf-size-14{height:3.5rem;width:3.5rem}.rf-size-4{height:1rem;width:1rem}.\\!rf-h-2{height:.5rem!important}.\\!rf-h-2\\.5{height:.625rem!important}.\\!rf-h-3{height:.75rem!important}.\\!rf-h-full{height:100%!important}.rf-h-1{height:.25rem}.rf-h-10{height:2.5rem}.rf-h-12{height:3rem}.rf-h-2{height:.5rem}.rf-h-2\\.5{height:.625rem}.rf-h-20{height:5rem}.rf-h-24{height:6rem}.rf-h-3{height:.75rem}.rf-h-3\\.5{height:.875rem}.rf-h-4{height:1rem}.rf-h-5{height:1.25rem}.rf-h-6{height:1.5rem}.rf-h-60{height:15rem}.rf-h-64{height:16rem}.rf-h-7{height:1.75rem}.rf-h-8{height:2rem}.rf-h-9{height:2.25rem}.rf-h-\\[400px\\]{height:400px}.rf-h-\\[calc\\(100vh-52px\\)\\]{height:calc(100vh - 52px)}.rf-h-\\[calc\\(100vh-60px\\)\\]{height:calc(100vh - 60px)}.rf-h-\\[var\\(--radix-select-trigger-height\\)\\]{height:var(--radix-select-trigger-height)}.rf-h-auto{height:auto}.rf-h-fit{height:-moz-fit-content;height:fit-content}.rf-h-full{height:100%}.rf-h-px{height:1px}.rf-h-screen{height:100vh}.\\!rf-max-h-\\[40vh\\]{max-height:40vh!important}.rf-max-h-16{max-height:4rem}.rf-max-h-20{max-height:5rem}.rf-max-h-24{max-height:6rem}.rf-max-h-28{max-height:7rem}.rf-max-h-32{max-height:8rem}.rf-max-h-96{max-height:24rem}.rf-max-h-\\[120px\\]{max-height:120px}.rf-max-h-\\[150px\\]{max-height:150px}.rf-max-h-\\[200px\\]{max-height:200px}.rf-max-h-\\[300px\\]{max-height:300px}.rf-max-h-\\[70vh\\]{max-height:70vh}.rf-max-h-\\[90vh\\]{max-height:90vh}.rf-max-h-full{max-height:100%}.rf-min-h-0{min-height:0}.rf-min-h-\\[100px\\]{min-height:100px}.rf-min-h-\\[200px\\]{min-height:200px}.rf-min-h-\\[300px\\]{min-height:300px}.rf-min-h-\\[620px\\]{min-height:620px}.rf-min-h-\\[calc\\(100vh-240px\\)\\]{min-height:calc(100vh - 240px)}.rf-min-h-full{min-height:100%}.\\!rf-w-2{width:.5rem!important}.\\!rf-w-2\\.5{width:.625rem!important}.\\!rf-w-\\[95vw\\]{width:95vw!important}.rf-w-1{width:.25rem}.rf-w-10{width:2.5rem}.rf-w-11{width:2.75rem}.rf-w-11\\/12{width:91.666667%}.rf-w-12{width:3rem}.rf-w-16{width:4rem}.rf-w-2{width:.5rem}.rf-w-2\\.5{width:.625rem}.rf-w-20{width:5rem}.rf-w-24{width:6rem}.rf-w-28{width:7rem}.rf-w-3{width:.75rem}.rf-w-3\\.5{width:.875rem}.rf-w-32{width:8rem}.rf-w-4{width:1rem}.rf-w-40{width:10rem}.rf-w-48{width:12rem}.rf-w-5{width:1.25rem}.rf-w-6{width:1.5rem}.rf-w-64{width:16rem}.rf-w-72{width:18rem}.rf-w-8{width:2rem}.rf-w-80{width:20rem}.rf-w-9{width:2.25rem}.rf-w-96{width:24rem}.rf-w-fit{width:-moz-fit-content;width:fit-content}.rf-w-full{width:100%}.rf-w-screen{width:100vw}.rf-min-w-0{min-width:0}.rf-min-w-10{min-width:2.5rem}.rf-min-w-16{min-width:4rem}.rf-min-w-32{min-width:8rem}.rf-min-w-80{min-width:20rem}.rf-min-w-96{min-width:24rem}.rf-min-w-\\[148px\\]{min-width:148px}.rf-min-w-\\[600px\\]{min-width:600px}.rf-min-w-\\[8rem\\]{min-width:8rem}.rf-min-w-\\[var\\(--radix-select-trigger-width\\)\\]{min-width:var(--radix-select-trigger-width)}.\\!rf-max-w-\\[95vw\\]{max-width:95vw!important}.rf-max-w-2xl{max-width:42rem}.rf-max-w-3xl{max-width:48rem}.rf-max-w-4xl{max-width:56rem}.rf-max-w-5xl{max-width:64rem}.rf-max-w-64{max-width:16rem}.rf-max-w-96{max-width:24rem}.rf-max-w-\\[1000px\\]{max-width:1000px}.rf-max-w-\\[150px\\]{max-width:150px}.rf-max-w-\\[200px\\]{max-width:200px}.rf-max-w-\\[40\\%\\]{max-width:40%}.rf-max-w-\\[600px\\]{max-width:600px}.rf-max-w-full{max-width:100%}.rf-max-w-lg{max-width:32rem}.rf-max-w-md{max-width:28rem}.rf-max-w-none{max-width:none}.rf-max-w-xl{max-width:36rem}.rf-max-w-xs{max-width:20rem}.rf-flex-1{flex:1 1 0%}.rf-flex-shrink-0,.rf-shrink-0{flex-shrink:0}.rf-flex-grow{flex-grow:1}.rf-table-auto{table-layout:auto}.rf-origin-\\[--radix-popover-content-transform-origin\\]{transform-origin:var(--radix-popover-content-transform-origin)}.-rf-translate-x-1{--tw-translate-x:-0.25rem}.-rf-translate-x-1,.-rf-translate-x-1\\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rf-translate-x-1\\/2{--tw-translate-x:-50%}.-rf-translate-y-1{--tw-translate-y:-0.25rem}.-rf-translate-y-1,.rf--translate-x-1{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rf--translate-x-1{--tw-translate-x:-0.25rem}.rf--translate-x-1\\/2{--tw-translate-x:-50%}.rf--translate-x-1\\/2,.rf--translate-y-1{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rf--translate-y-1{--tw-translate-y:-0.25rem}.rf-translate-x-\\[-50\\%\\]{--tw-translate-x:-50%}.rf-translate-x-\\[-50\\%\\],.rf-translate-y-\\[-50\\%\\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rf-translate-y-\\[-50\\%\\]{--tw-translate-y:-50%}.rf-rotate-90{--tw-rotate:90deg}.rf-rotate-90,.rf-transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes rf-pulse{50%{opacity:.5}}.rf-animate-pulse{animation:rf-pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes rf-spin{to{transform:rotate(1turn)}}.rf-animate-spin{animation:rf-spin 1s linear infinite}.rf-cursor-default{cursor:default}.rf-cursor-not-allowed{cursor:not-allowed}.rf-cursor-pointer{cursor:pointer}.rf-select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.rf-grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.rf-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.rf-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.rf-flex-row{flex-direction:row}.rf-flex-col{flex-direction:column}.rf-flex-col-reverse{flex-direction:column-reverse}.rf-flex-wrap{flex-wrap:wrap}.rf-place-content-center{place-content:center}.rf-place-items-center{place-items:center}.rf-items-start{align-items:flex-start}.rf-items-end{align-items:flex-end}.rf-items-center{align-items:center}.rf-items-baseline{align-items:baseline}.rf-items-stretch{align-items:stretch}.rf-justify-end{justify-content:flex-end}.rf-justify-center{justify-content:center}.rf-justify-between{justify-content:space-between}.rf-gap-0{gap:0}.rf-gap-1{gap:.25rem}.rf-gap-2{gap:.5rem}.rf-gap-3{gap:.75rem}.rf-gap-4{gap:1rem}.rf-gap-5{gap:1.25rem}.rf-gap-6{gap:1.5rem}.rf-gap-8{gap:2rem}.rf-space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.rf-space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}.rf-space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.rf-space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.75rem*var(--tw-space-y-reverse));margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)))}.rf-space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.rf-space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.5rem*var(--tw-space-y-reverse));margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)))}.rf-divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-bottom-width:calc(1px*var(--tw-divide-y-reverse));border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)))}.rf-overflow-auto{overflow:auto}.\\!rf-overflow-hidden{overflow:hidden!important}.rf-overflow-hidden{overflow:hidden}.rf-overflow-visible{overflow:visible}.rf-overflow-x-auto{overflow-x:auto}.\\!rf-overflow-y-auto{overflow-y:auto!important}.rf-overflow-y-auto{overflow-y:auto}.rf-overflow-x-hidden{overflow-x:hidden}.rf-overflow-x-clip{overflow-x:clip}.rf-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rf-whitespace-normal{white-space:normal}.rf-whitespace-nowrap{white-space:nowrap}.rf-whitespace-pre-wrap{white-space:pre-wrap}.rf-text-nowrap{text-wrap:nowrap}.rf-break-words{overflow-wrap:break-word}.rf-break-all{word-break:break-all}.rf-rounded{border-radius:.25rem}.rf-rounded-2xl{border-radius:1rem}.rf-rounded-full{border-radius:9999px}.rf-rounded-lg{border-radius:var(--radius)}.rf-rounded-md{border-radius:calc(var(--radius) - 2px)}.rf-rounded-sm{border-radius:calc(var(--radius) - 4px)}.rf-rounded-xl{border-radius:.75rem}.rf-border{border-width:1px}.rf-border-2{border-width:2px}.rf-border-b{border-bottom-width:1px}.rf-border-l-2{border-left-width:2px}.rf-border-l-4{border-left-width:4px}.rf-border-t{border-top-width:1px}.rf-border-none{border-style:none}.rf-border-blue-200{--tw-border-opacity:1;border-color:rgb(191 219 254/var(--tw-border-opacity,1))}.rf-border-blue-300{--tw-border-opacity:1;border-color:rgb(147 197 253/var(--tw-border-opacity,1))}.rf-border-blue-400{--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.rf-border-blue-500{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.rf-border-blue-600{--tw-border-opacity:1;border-color:rgb(37 99 235/var(--tw-border-opacity,1))}.rf-border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.rf-border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.rf-border-green-200{--tw-border-opacity:1;border-color:rgb(187 247 208/var(--tw-border-opacity,1))}.rf-border-green-400{--tw-border-opacity:1;border-color:rgb(74 222 128/var(--tw-border-opacity,1))}.rf-border-input{border-color:hsl(var(--input))}.rf-border-neutral-200{--tw-border-opacity:1;border-color:rgb(229 229 229/var(--tw-border-opacity,1))}.rf-border-orange-100{--tw-border-opacity:1;border-color:rgb(255 237 213/var(--tw-border-opacity,1))}.rf-border-orange-200{--tw-border-opacity:1;border-color:rgb(254 215 170/var(--tw-border-opacity,1))}.rf-border-orange-500{--tw-border-opacity:1;border-color:rgb(249 115 22/var(--tw-border-opacity,1))}.rf-border-primary{border-color:hsl(var(--primary))}.rf-border-red-100{--tw-border-opacity:1;border-color:rgb(254 226 226/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-red-400{--tw-border-opacity:1;border-color:rgb(248 113 113/var(--tw-border-opacity,1))}.rf-border-red-500{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.rf-border-red-600{--tw-border-opacity:1;border-color:rgb(220 38 38/var(--tw-border-opacity,1))}.rf-border-red-700{--tw-border-opacity:1;border-color:rgb(185 28 28/var(--tw-border-opacity,1))}.rf-border-red-800{--tw-border-opacity:1;border-color:rgb(153 27 27/var(--tw-border-opacity,1))}.rf-border-zinc-200{--tw-border-opacity:1;border-color:rgb(228 228 231/var(--tw-border-opacity,1))}.rf-border-zinc-900{--tw-border-opacity:1;border-color:rgb(24 24 27/var(--tw-border-opacity,1))}.rf-border-t-blue-600{--tw-border-opacity:1;border-top-color:rgb(37 99 235/var(--tw-border-opacity,1))}.rf-bg-amber-50{--tw-bg-opacity:1;background-color:rgb(255 251 235/var(--tw-bg-opacity,1))}.rf-bg-amber-50\\/30{background-color:rgba(255,251,235,.3)}.rf-bg-background{background-color:hsl(var(--background))}.rf-bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.rf-bg-black\\/80{background-color:rgba(0,0,0,.8)}.rf-bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.rf-bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.rf-bg-blue-50\\/30{background-color:rgba(239,246,255,.3)}.rf-bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.rf-bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.rf-bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.rf-bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.rf-bg-gray-300{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity,1))}.rf-bg-gray-400{--tw-bg-opacity:1;background-color:rgb(156 163 175/var(--tw-bg-opacity,1))}.rf-bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.rf-bg-gray-500{--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity,1))}.rf-bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.rf-bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.rf-bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.rf-bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.rf-bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.rf-bg-muted{background-color:hsl(var(--muted))}.rf-bg-neutral-100{--tw-bg-opacity:1;background-color:rgb(245 245 245/var(--tw-bg-opacity,1))}.rf-bg-neutral-50{--tw-bg-opacity:1;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))}.rf-bg-neutral-800{--tw-bg-opacity:1;background-color:rgb(38 38 38/var(--tw-bg-opacity,1))}.rf-bg-neutral-900{--tw-bg-opacity:1;background-color:rgb(23 23 23/var(--tw-bg-opacity,1))}.rf-bg-orange-400{--tw-bg-opacity:1;background-color:rgb(251 146 60/var(--tw-bg-opacity,1))}.rf-bg-orange-50{--tw-bg-opacity:1;background-color:rgb(255 247 237/var(--tw-bg-opacity,1))}.rf-bg-orange-50\\/50{background-color:rgba(255,247,237,.5)}.rf-bg-orange-500{--tw-bg-opacity:1;background-color:rgb(249 115 22/var(--tw-bg-opacity,1))}.rf-bg-popover{background-color:hsl(var(--popover))}.rf-bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.rf-bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.rf-bg-red-50\\/50{background-color:hsla(0,86%,97%,.5)}.rf-bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.rf-bg-red-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/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-red-950{--tw-bg-opacity:1;background-color:rgb(69 10 10/var(--tw-bg-opacity,1))}.rf-bg-slate-50{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.rf-bg-transparent{background-color:transparent}.rf-bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.rf-bg-yellow-100{--tw-bg-opacity:1;background-color:rgb(254 249 195/var(--tw-bg-opacity,1))}.rf-bg-zinc-100{--tw-bg-opacity:1;background-color:rgb(244 244 245/var(--tw-bg-opacity,1))}.rf-bg-zinc-200{--tw-bg-opacity:1;background-color:rgb(228 228 231/var(--tw-bg-opacity,1))}.rf-bg-zinc-50{--tw-bg-opacity:1;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))}.rf-bg-zinc-800{--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))}.rf-bg-zinc-900{--tw-bg-opacity:1;background-color:rgb(24 24 27/var(--tw-bg-opacity,1))}.rf-bg-zinc-950{--tw-bg-opacity:1;background-color:rgb(9 9 11/var(--tw-bg-opacity,1))}.rf-bg-opacity-50{--tw-bg-opacity:0.5}.rf-fill-amber-500{fill:#f59e0b}.rf-fill-current{fill:currentColor}.rf-object-contain{-o-object-fit:contain;object-fit:contain}.rf-object-cover{-o-object-fit:cover;object-fit:cover}.\\!rf-p-0{padding:0!important}.rf-p-0{padding:0}.rf-p-1{padding:.25rem}.rf-p-2{padding:.5rem}.rf-p-3{padding:.75rem}.rf-p-4{padding:1rem}.rf-p-5{padding:1.25rem}.rf-p-6{padding:1.5rem}.rf-p-8{padding:2rem}.rf-px-1{padding-left:.25rem;padding-right:.25rem}.rf-px-2{padding-left:.5rem;padding-right:.5rem}.rf-px-3{padding-left:.75rem;padding-right:.75rem}.rf-px-4{padding-left:1rem;padding-right:1rem}.rf-px-6{padding-left:1.5rem;padding-right:1.5rem}.rf-px-8{padding-left:2rem;padding-right:2rem}.rf-py-0{padding-bottom:0;padding-top:0}.rf-py-0\\.5{padding-bottom:.125rem;padding-top:.125rem}.rf-py-1{padding-bottom:.25rem;padding-top:.25rem}.rf-py-1\\.5{padding-bottom:.375rem;padding-top:.375rem}.rf-py-10{padding-bottom:2.5rem;padding-top:2.5rem}.rf-py-12{padding-bottom:3rem;padding-top:3rem}.rf-py-2{padding-bottom:.5rem;padding-top:.5rem}.rf-py-3{padding-bottom:.75rem;padding-top:.75rem}.rf-py-4{padding-bottom:1rem;padding-top:1rem}.rf-py-6{padding-bottom:1.5rem;padding-top:1.5rem}.rf-py-8{padding-bottom:2rem;padding-top:2rem}.rf-pb-0{padding-bottom:0}.rf-pb-1{padding-bottom:.25rem}.rf-pb-2{padding-bottom:.5rem}.rf-pb-3{padding-bottom:.75rem}.rf-pb-4{padding-bottom:1rem}.rf-pb-px{padding-bottom:1px}.rf-pl-10{padding-left:2.5rem}.rf-pl-11{padding-left:2.75rem}.rf-pl-12{padding-left:3rem}.rf-pl-2{padding-left:.5rem}.rf-pl-4{padding-left:1rem}.rf-pl-8{padding-left:2rem}.rf-pr-2{padding-right:.5rem}.rf-pt-0{padding-top:0}.rf-pt-1{padding-top:.25rem}.rf-pt-2{padding-top:.5rem}.rf-pt-4{padding-top:1rem}.rf-text-left{text-align:left}.rf-text-center{text-align:center}.rf-text-right{text-align:right}.rf-align-bottom{vertical-align:bottom}.rf-font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.rf-text-2xl{font-size:1.5rem;line-height:2rem}.rf-text-3xl{font-size:1.875rem;line-height:2.25rem}.rf-text-\\[8px\\]{font-size:8px}.rf-text-base{font-size:1rem;line-height:1.5rem}.rf-text-lg{font-size:1.125rem;line-height:1.75rem}.rf-text-sm{font-size:.875rem;line-height:1.25rem}.rf-text-xl{font-size:1.25rem;line-height:1.75rem}.rf-text-xs{font-size:.75rem;line-height:1rem}.\\!rf-font-normal{font-weight:400!important}.rf-font-bold{font-weight:700}.rf-font-medium{font-weight:500}.rf-font-semibold{font-weight:600}.rf-uppercase{text-transform:uppercase}.rf-capitalize{text-transform:capitalize}.rf-tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.rf-leading-5{line-height:1.25rem}.rf-leading-\\[0\\.95rem\\]{line-height:.95rem}.rf-leading-\\[1rem\\]{line-height:1rem}.rf-leading-none{line-height:1}.rf-leading-relaxed{line-height:1.625}.rf-leading-tight{line-height:1.25}.rf-tracking-wide{letter-spacing:.025em}.rf-tracking-widest{letter-spacing:.1em}.rf-text-amber-500{--tw-text-opacity:1;color:rgb(245 158 11/var(--tw-text-opacity,1))}.rf-text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.rf-text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.rf-text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.rf-text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.rf-text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.rf-text-blue-900{--tw-text-opacity:1;color:rgb(30 58 138/var(--tw-text-opacity,1))}.rf-text-current{color:currentColor}.rf-text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.rf-text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.rf-text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.rf-text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.rf-text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.rf-text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.rf-text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.rf-text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.rf-text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.rf-text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.rf-text-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.rf-text-green-900{--tw-text-opacity:1;color:rgb(20 83 45/var(--tw-text-opacity,1))}.rf-text-muted-foreground{color:hsl(var(--muted-foreground))}.rf-text-neutral-50{--tw-text-opacity:1;color:rgb(250 250 250/var(--tw-text-opacity,1))}.rf-text-neutral-500{--tw-text-opacity:1;color:rgb(115 115 115/var(--tw-text-opacity,1))}.rf-text-neutral-900{--tw-text-opacity:1;color:rgb(23 23 23/var(--tw-text-opacity,1))}.rf-text-neutral-950{--tw-text-opacity:1;color:rgb(10 10 10/var(--tw-text-opacity,1))}.rf-text-orange-400{--tw-text-opacity:1;color:rgb(251 146 60/var(--tw-text-opacity,1))}.rf-text-orange-500{--tw-text-opacity:1;color:rgb(249 115 22/var(--tw-text-opacity,1))}.rf-text-orange-600{--tw-text-opacity:1;color:rgb(234 88 12/var(--tw-text-opacity,1))}.rf-text-orange-700{--tw-text-opacity:1;color:rgb(194 65 12/var(--tw-text-opacity,1))}.rf-text-orange-800{--tw-text-opacity:1;color:rgb(154 52 18/var(--tw-text-opacity,1))}.rf-text-popover-foreground{color:hsl(var(--popover-foreground))}.rf-text-red-200{--tw-text-opacity:1;color:rgb(254 202 202/var(--tw-text-opacity,1))}.rf-text-red-300{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.rf-text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.rf-text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.rf-text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.rf-text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.rf-text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.rf-text-red-900{--tw-text-opacity:1;color:rgb(127 29 29/var(--tw-text-opacity,1))}.rf-text-slate-400{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.rf-text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.rf-text-slate-600{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity,1))}.rf-text-slate-800{--tw-text-opacity:1;color:rgb(30 41 59/var(--tw-text-opacity,1))}.rf-text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.rf-text-yellow-400{--tw-text-opacity:1;color:rgb(250 204 21/var(--tw-text-opacity,1))}.rf-text-yellow-500{--tw-text-opacity:1;color:rgb(234 179 8/var(--tw-text-opacity,1))}.rf-text-yellow-600{--tw-text-opacity:1;color:rgb(202 138 4/var(--tw-text-opacity,1))}.rf-text-yellow-900{--tw-text-opacity:1;color:rgb(113 63 18/var(--tw-text-opacity,1))}.rf-text-zinc-200{--tw-text-opacity:1;color:rgb(228 228 231/var(--tw-text-opacity,1))}.rf-text-zinc-300{--tw-text-opacity:1;color:rgb(212 212 216/var(--tw-text-opacity,1))}.rf-text-zinc-400{--tw-text-opacity:1;color:rgb(161 161 170/var(--tw-text-opacity,1))}.rf-text-zinc-50{--tw-text-opacity:1;color:rgb(250 250 250/var(--tw-text-opacity,1))}.rf-text-zinc-500{--tw-text-opacity:1;color:rgb(113 113 122/var(--tw-text-opacity,1))}.rf-text-zinc-900{--tw-text-opacity:1;color:rgb(24 24 27/var(--tw-text-opacity,1))}.rf-text-zinc-950{--tw-text-opacity:1;color:rgb(9 9 11/var(--tw-text-opacity,1))}.rf-underline{text-decoration-line:underline}.rf-line-through{text-decoration-line:line-through}.rf-underline-offset-4{text-underline-offset:4px}.rf-opacity-0{opacity:0}.rf-opacity-100{opacity:1}.rf-opacity-25{opacity:.25}.rf-opacity-30{opacity:.3}.rf-opacity-50{opacity:.5}.rf-opacity-60{opacity:.6}.rf-opacity-70{opacity:.7}.rf-opacity-75{opacity:.75}.rf-shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.rf-shadow,.rf-shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.rf-shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.rf-shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.rf-shadow-md,.rf-shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.rf-shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.rf-outline-none{outline:2px solid transparent;outline-offset:2px}.rf-ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.rf-ring-blue-500{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}.rf-ring-primary{--tw-ring-color:hsl(var(--primary))}.rf-ring-offset-background{--tw-ring-offset-color:hsl(var(--background))}.rf-ring-offset-white{--tw-ring-offset-color:#fff}.rf-transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.rf-transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.rf-transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.rf-transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.rf-transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.rf-duration-150{transition-duration:.15s}.rf-duration-200{transition-duration:.2s}.rf-ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.rf-slide-in-from-left-1{--tw-enter-translate-x:-0.25rem}.rf-slide-out-to-left-1{--tw-exit-translate-x:-0.25rem}.rf-duration-150{animation-duration:.15s}.rf-duration-200{animation-duration:.2s}.rf-ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.file\\:rf-border-0::file-selector-button{border-width:0}.file\\:rf-bg-transparent::file-selector-button{background-color:transparent}.file\\:rf-text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\\:rf-font-medium::file-selector-button{font-weight:500}.placeholder\\:rf-text-zinc-500::-moz-placeholder{--tw-text-opacity:1;color:rgb(113 113 122/var(--tw-text-opacity,1))}.placeholder\\:rf-text-zinc-500::placeholder{--tw-text-opacity:1;color:rgb(113 113 122/var(--tw-text-opacity,1))}.hover\\:rf-border-blue-300:hover{--tw-border-opacity:1;border-color:rgb(147 197 253/var(--tw-border-opacity,1))}.hover\\:\\!rf-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-orange-100:hover{--tw-bg-opacity:1;background-color:rgb(255 237 213/var(--tw-bg-opacity,1))}.hover\\:rf-bg-red-100:hover{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.hover\\:rf-bg-red-500\\/90:hover{background-color:rgba(239,68,68,.9)}.hover\\:rf-bg-slate-200:hover{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity,1))}.hover\\:rf-bg-zinc-100:hover{--tw-bg-opacity:1;background-color:rgb(244 244 245/var(--tw-bg-opacity,1))}.hover\\:rf-bg-zinc-100\\/80:hover{background-color:hsla(240,5%,96%,.8)}.hover\\:rf-bg-zinc-900\\/90:hover{background-color:rgba(24,24,27,.9)}.hover\\:rf-text-blue-800:hover{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.hover\\:rf-text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.hover\\:rf-text-red-400:hover{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.hover\\:rf-text-slate-800:hover{--tw-text-opacity:1;color:rgb(30 41 59/var(--tw-text-opacity,1))}.hover\\:rf-text-slate-900:hover{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.hover\\:rf-text-zinc-900:hover{--tw-text-opacity:1;color:rgb(24 24 27/var(--tw-text-opacity,1))}.hover\\:rf-underline:hover{text-decoration-line:underline}.focus\\:rf-bg-gray-100:focus{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.focus\\:rf-bg-zinc-100:focus{--tw-bg-opacity:1;background-color:rgb(244 244 245/var(--tw-bg-opacity,1))}.focus\\:rf-text-gray-900:focus{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.focus\\:rf-text-zinc-900:focus{--tw-text-opacity:1;color:rgb(24 24 27/var(--tw-text-opacity,1))}.focus\\:rf-outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\\:rf-ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\\:rf-ring-blue-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}.focus\\:rf-ring-ring:focus{--tw-ring-color:hsl(var(--ring))}.focus\\:rf-ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\\:rf-outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\\:rf-ring-1:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\\:rf-ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\\:rf-ring-zinc-950:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgb(9 9 11/var(--tw-ring-opacity,1))}.focus-visible\\:rf-ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.disabled\\:rf-pointer-events-none:disabled{pointer-events:none}.disabled\\:rf-cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:rf-opacity-50:disabled{opacity:.5}.rf-group:hover .group-hover\\:rf-opacity-100,.rf-group\\/bar:hover .group-hover\\/bar\\:rf-opacity-100{opacity:1}.rf-peer:disabled~.peer-disabled\\:rf-cursor-not-allowed{cursor:not-allowed}.rf-peer:disabled~.peer-disabled\\:rf-opacity-70{opacity:.7}.data-\\[disabled\\=true\\]\\:rf-pointer-events-none[data-disabled=true],.data-\\[disabled\\]\\:rf-pointer-events-none[data-disabled]{pointer-events:none}.data-\\[side\\=bottom\\]\\:rf-translate-y-1[data-side=bottom]{--tw-translate-y:0.25rem}.data-\\[side\\=bottom\\]\\:rf-translate-y-1[data-side=bottom],.data-\\[side\\=left\\]\\:-rf-translate-x-1[data-side=left]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\\[side\\=left\\]\\:-rf-translate-x-1[data-side=left]{--tw-translate-x:-0.25rem}.data-\\[side\\=right\\]\\:rf-translate-x-1[data-side=right]{--tw-translate-x:0.25rem}.data-\\[side\\=right\\]\\:rf-translate-x-1[data-side=right],.data-\\[side\\=top\\]\\:-rf-translate-y-1[data-side=top]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\\[side\\=top\\]\\:-rf-translate-y-1[data-side=top]{--tw-translate-y:-0.25rem}.data-\\[selected\\=true\\]\\:rf-bg-zinc-100[data-selected=true]{--tw-bg-opacity:1;background-color:rgb(244 244 245/var(--tw-bg-opacity,1))}.data-\\[state\\=active\\]\\:rf-bg-white[data-state=active]{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.data-\\[state\\=checked\\]\\:rf-bg-zinc-900[data-state=checked]{--tw-bg-opacity:1;background-color:rgb(24 24 27/var(--tw-bg-opacity,1))}.data-\\[state\\=open\\]\\:rf-bg-zinc-100[data-state=open]{--tw-bg-opacity:1;background-color:rgb(244 244 245/var(--tw-bg-opacity,1))}.data-\\[selected\\=true\\]\\:rf-text-zinc-900[data-selected=true]{--tw-text-opacity:1;color:rgb(24 24 27/var(--tw-text-opacity,1))}.data-\\[state\\=active\\]\\:rf-text-zinc-950[data-state=active]{--tw-text-opacity:1;color:rgb(9 9 11/var(--tw-text-opacity,1))}.data-\\[state\\=checked\\]\\:rf-text-zinc-50[data-state=checked]{--tw-text-opacity:1;color:rgb(250 250 250/var(--tw-text-opacity,1))}.data-\\[disabled\\=true\\]\\:rf-opacity-50[data-disabled=true],.data-\\[disabled\\]\\:rf-opacity-50[data-disabled]{opacity:.5}.data-\\[state\\=active\\]\\:rf-shadow[data-state=active]{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.data-\\[state\\=open\\]\\:rf-animate-in[data-state=open]{animation-duration:.15s;animation-name:enter;--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial}.data-\\[state\\=closed\\]\\:rf-animate-out[data-state=closed]{animation-duration:.15s;animation-name:exit;--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial}.data-\\[state\\=closed\\]\\:rf-fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\\[state\\=open\\]\\:rf-fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\\[state\\=closed\\]\\:rf-zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\\[state\\=open\\]\\:rf-zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\\[side\\=bottom\\]\\:rf-slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:-0.5rem}.data-\\[side\\=left\\]\\:rf-slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:0.5rem}.data-\\[side\\=right\\]\\:rf-slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:-0.5rem}.data-\\[side\\=top\\]\\:rf-slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:0.5rem}.data-\\[state\\=closed\\]\\:rf-slide-out-to-left-1\\/2[data-state=closed]{--tw-exit-translate-x:-50%}.data-\\[state\\=closed\\]\\:rf-slide-out-to-top-\\[48\\%\\][data-state=closed]{--tw-exit-translate-y:-48%}.data-\\[state\\=open\\]\\:rf-slide-in-from-left-1\\/2[data-state=open]{--tw-enter-translate-x:-50%}.data-\\[state\\=open\\]\\:rf-slide-in-from-top-\\[48\\%\\][data-state=open]{--tw-enter-translate-y:-48%}.dark\\:rf-border-zinc-50:is(.rf-dark *){--tw-border-opacity:1;border-color:rgb(250 250 250/var(--tw-border-opacity,1))}.dark\\:rf-border-zinc-800:is(.rf-dark *){--tw-border-opacity:1;border-color:rgb(39 39 42/var(--tw-border-opacity,1))}.dark\\:rf-bg-gray-700:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.dark\\:rf-bg-gray-800:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.dark\\:rf-bg-red-900:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.dark\\:rf-bg-zinc-50:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))}.dark\\:rf-bg-zinc-800:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))}.dark\\:rf-bg-zinc-950:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(9 9 11/var(--tw-bg-opacity,1))}.dark\\:rf-text-gray-500:is(.rf-dark *){--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.dark\\:rf-text-zinc-400:is(.rf-dark *){--tw-text-opacity:1;color:rgb(161 161 170/var(--tw-text-opacity,1))}.dark\\:rf-text-zinc-50:is(.rf-dark *){--tw-text-opacity:1;color:rgb(250 250 250/var(--tw-text-opacity,1))}.dark\\:rf-text-zinc-900:is(.rf-dark *){--tw-text-opacity:1;color:rgb(24 24 27/var(--tw-text-opacity,1))}.dark\\:rf-placeholder-zinc-400:is(.rf-dark *)::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(161 161 170/var(--tw-placeholder-opacity,1))}.dark\\:rf-placeholder-zinc-400:is(.rf-dark *)::placeholder{--tw-placeholder-opacity:1;color:rgb(161 161 170/var(--tw-placeholder-opacity,1))}.dark\\:rf-ring-offset-zinc-950:is(.rf-dark *){--tw-ring-offset-color:#09090b}.dark\\:placeholder\\:rf-text-zinc-400:is(.rf-dark *)::-moz-placeholder{--tw-text-opacity:1;color:rgb(161 161 170/var(--tw-text-opacity,1))}.dark\\:placeholder\\:rf-text-zinc-400:is(.rf-dark *)::placeholder{--tw-text-opacity:1;color:rgb(161 161 170/var(--tw-text-opacity,1))}.dark\\:hover\\:rf-bg-red-900\\/90:hover:is(.rf-dark *){background-color:rgba(127,29,29,.9)}.dark\\:hover\\:rf-bg-zinc-50\\/90:hover:is(.rf-dark *){background-color:hsla(0,0%,98%,.9)}.dark\\:hover\\:rf-bg-zinc-800:hover:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))}.dark\\:hover\\:rf-bg-zinc-800\\/80:hover:is(.rf-dark *){background-color:rgba(39,39,42,.8)}.dark\\:hover\\:rf-text-zinc-50:hover:is(.rf-dark *){--tw-text-opacity:1;color:rgb(250 250 250/var(--tw-text-opacity,1))}.dark\\:focus\\:rf-bg-zinc-800:focus:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))}.dark\\:focus\\:rf-text-zinc-50:focus:is(.rf-dark *){--tw-text-opacity:1;color:rgb(250 250 250/var(--tw-text-opacity,1))}.dark\\:focus-visible\\:rf-ring-zinc-300:focus-visible:is(.rf-dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(212 212 216/var(--tw-ring-opacity,1))}.dark\\:data-\\[selected\\=true\\]\\:rf-bg-zinc-800[data-selected=true]:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))}.dark\\:data-\\[state\\=active\\]\\:rf-bg-zinc-950[data-state=active]:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(9 9 11/var(--tw-bg-opacity,1))}.dark\\:data-\\[state\\=checked\\]\\:rf-bg-zinc-50[data-state=checked]:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))}.dark\\:data-\\[state\\=open\\]\\:rf-bg-zinc-800[data-state=open]:is(.rf-dark *){--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))}.dark\\:data-\\[selected\\=true\\]\\:rf-text-zinc-50[data-selected=true]:is(.rf-dark *){--tw-text-opacity:1;color:rgb(250 250 250/var(--tw-text-opacity,1))}.dark\\:data-\\[state\\=active\\]\\:rf-text-zinc-50[data-state=active]:is(.rf-dark *){--tw-text-opacity:1;color:rgb(250 250 250/var(--tw-text-opacity,1))}.dark\\:data-\\[state\\=checked\\]\\:rf-text-zinc-900[data-state=checked]:is(.rf-dark *){--tw-text-opacity:1;color:rgb(24 24 27/var(--tw-text-opacity,1))}@media (min-width:640px){.sm\\:rf-order-1{order:1}.sm\\:rf-order-2{order:2}.sm\\:rf-mt-0{margin-top:0}.sm\\:rf-mt-4{margin-top:1rem}.sm\\:rf-block{display:block}.sm\\:rf-inline{display:inline}.sm\\:rf-grid{display:grid}.sm\\:rf-hidden{display:none}.sm\\:rf-h-5{height:1.25rem}.sm\\:rf-w-1\\/2{width:50%}.sm\\:rf-w-5{width:1.25rem}.sm\\:rf-w-\\[90vw\\]{width:90vw}.sm\\:rf-w-auto{width:auto}.sm\\:rf-max-w-\\[500px\\]{max-width:500px}.sm\\:rf-max-w-md{max-width:28rem}.sm\\:rf-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\\:rf-grid-cols-\\[1fr_auto\\]{grid-template-columns:1fr auto}.sm\\:rf-grid-cols-\\[minmax\\(0\\2c 1fr\\)_auto\\]{grid-template-columns:minmax(0,1fr) auto}.sm\\:rf-flex-row{flex-direction:row}.sm\\:rf-items-center{align-items:center}.sm\\:rf-justify-end{justify-content:flex-end}.sm\\:rf-gap-3{gap:.75rem}.sm\\:rf-gap-4{gap:1rem}.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-p-3{padding:.75rem}.sm\\:rf-p-6{padding:1.5rem}.sm\\:rf-px-4{padding-left:1rem;padding-right:1rem}.sm\\:rf-px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\\:rf-py-6{padding-bottom:1.5rem;padding-top:1.5rem}.sm\\:rf-text-left{text-align:left}.sm\\:rf-text-2xl{font-size:1.5rem;line-height:2rem}.sm\\:rf-text-base{font-size:1rem;line-height:1.5rem}.sm\\:rf-text-sm{font-size:.875rem;line-height:1.25rem}.sm\\:rf-text-xl{font-size:1.25rem;line-height:1.75rem}}@media (min-width:768px){.md\\:rf-w-auto{width:auto}.md\\:rf-max-w-\\[660px\\]{max-width:660px}.md\\:rf-max-w-lg{max-width:32rem}.md\\:rf-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\\:rf-p-8{padding:2rem}.md\\:rf-py-8{padding-bottom:2rem;padding-top:2rem}.md\\:rf-text-3xl{font-size:1.875rem;line-height:2.25rem}}@media (min-width:1024px){.lg\\:rf-max-w-\\[720px\\]{max-width:720px}.lg\\:rf-max-w-xl{max-width:36rem}}@media (min-width:1280px){.xl\\:rf-max-w-\\[800px\\]{max-width:800px}}.\\[\\&\\>span\\]\\:rf-line-clamp-1>span{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\\[\\&\\>svg\\]\\:rf-size-4>svg{height:1rem;width:1rem}.\\[\\&\\>svg\\]\\:rf-shrink-0>svg{flex-shrink:0}.\\[\\&\\>svg\\]\\:rf-text-red-300>svg{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.\\[\\&\\>svg\\]\\:hover\\:rf-text-red-400:hover>svg{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.\\[\\&_\\[cmdk-group-heading\\]\\]\\:rf-px-2 [cmdk-group-heading]{padding-left:.5rem;padding-right:.5rem}.\\[\\&_\\[cmdk-group-heading\\]\\]\\:rf-py-1\\.5 [cmdk-group-heading]{padding-bottom:.375rem;padding-top:.375rem}.\\[\\&_\\[cmdk-group-heading\\]\\]\\:rf-text-xs [cmdk-group-heading]{font-size:.75rem;line-height:1rem}.\\[\\&_\\[cmdk-group-heading\\]\\]\\:rf-font-medium [cmdk-group-heading]{font-weight:500}.\\[\\&_\\[cmdk-group-heading\\]\\]\\:rf-text-zinc-500 [cmdk-group-heading]{--tw-text-opacity:1;color:rgb(113 113 122/var(--tw-text-opacity,1))}.dark\\:\\[\\&_\\[cmdk-group-heading\\]\\]\\:rf-text-zinc-400 [cmdk-group-heading]:is(.rf-dark *){--tw-text-opacity:1;color:rgb(161 161 170/var(--tw-text-opacity,1))}.\\[\\&_\\[cmdk-group\\]\\:not\\(\\[hidden\\]\\)_\\~\\[cmdk-group\\]\\]\\:rf-pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:0}.\\[\\&_\\[cmdk-group\\]\\]\\:rf-px-2 [cmdk-group]{padding-left:.5rem;padding-right:.5rem}.\\[\\&_\\[cmdk-input-wrapper\\]_svg\\]\\:rf-h-5 [cmdk-input-wrapper] svg{height:1.25rem}.\\[\\&_\\[cmdk-input-wrapper\\]_svg\\]\\:rf-w-5 [cmdk-input-wrapper] svg{width:1.25rem}.\\[\\&_\\[cmdk-input\\]\\]\\:rf-h-12 [cmdk-input]{height:3rem}.\\[\\&_\\[cmdk-item\\]\\]\\:rf-px-2 [cmdk-item]{padding-left:.5rem;padding-right:.5rem}.\\[\\&_\\[cmdk-item\\]\\]\\:rf-py-3 [cmdk-item]{padding-bottom:.75rem;padding-top:.75rem}.\\[\\&_\\[cmdk-item\\]_svg\\]\\:rf-h-5 [cmdk-item] svg{height:1.25rem}.\\[\\&_\\[cmdk-item\\]_svg\\]\\:rf-w-5 [cmdk-item] svg{width:1.25rem}.\\[\\&_svg\\]\\:rf-pointer-events-none svg{pointer-events:none}.\\[\\&_svg\\]\\:rf-size-4 svg{height:1rem;width:1rem}.\\[\\&_svg\\]\\:rf-shrink-0 svg{flex-shrink:0}',_tt=()=>{iA.useEffect(()=>{if(document.querySelector('style[data-styles="tscircuit-runframe"]'))return;const A=document.createElement("style");A.setAttribute("data-styles","tscircuit-runframe"),A.textContent=fNe,document.head.appendChild(A)},[])},yNe=e=>{iA.useEffect(()=>(e?document.body.style.overflow="hidden":document.body.style.overflow="",()=>{document.body.style.overflow=""}),[e])};function Rtt(e,A){const[t,i]=iA.useState(()=>{try{const o=window.localStorage.getItem(e);return o?JSON.parse(o):A}catch(o){return console.error("Error reading from localStorage:",o),A}});return iA.useEffect(()=>{try{window.localStorage.setItem(e,JSON.stringify(t))}catch(o){console.error("Error writing to localStorage:",o)}},[e,t]),[t,i]}const Ntt=e=>`hsl(${T0.indexOf(e)*137.5%360}, 70%, 50%)`,wNe=({phaseTimings:e})=>{if(!e)return null;const A=Object.values(e).reduce((t,i)=>t+i,0);return X.jsxs("div",{className:"rf-space-y-2 rf-w-full rf-px-4",children:[X.jsx("div",{className:"rf-relative rf-h-8 rf-flex rf-rounded-sm",children:T0.map(t=>{const i=e[t]||0,o=i/A*100;return X.jsx("div",{className:"rf-group/bar rf-relative rf-overflow-visible",style:{width:`${o}%`,backgroundColor:Ntt(t)},children:X.jsxs("div",{className:"rf-opacity-0 group-hover/bar:rf-opacity-100 rf-transition-opacity rf-absolute rf-bottom-full rf-left-1/2 rf-transform -rf-translate-x-1/2 rf-mb-2 rf-px-2 rf-py-1 rf-text-xs rf-whitespace-nowrap rf-rounded rf-bg-gray-900 rf-text-white rf-pointer-events-none",children:[t,": ",i.toFixed(1),"ms"]})},t)})}),X.jsxs("div",{className:"rf-text-xs rf-text-gray-500",children:["Total: ",A.toFixed(2),"ms"]})]})},DNe=e=>{if(e instanceof Blob)return e;if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="object")try{return JSON.stringify(e,null,2)}catch{return String(e)}return String(e)},mNe=({renderLog:e,onRerunWithDebug:A})=>{const[t,i]=iA.useState("chronological"),[o,n]=iA.useState(""),s=[{value:"",label:"None"},{value:"DEBUG=Group_doInitialSchematicTraceRender",label:"DEBUG=Group_doInitialSchematicTraceRender"},{value:"DEBUG=Group_doInitialSchematicLayoutMatchpack",label:"DEBUG=Group_doInitialSchematicLayoutMatchpack"},{value:"DEBUG=Group_doInitialPcbLayoutPack",label:"DEBUG=Group_doInitialPcbLayoutPack"}];if(!e)return X.jsxs("div",{className:"rf-p-4 rf-bg-gray-100 rf-rounded-md",children:[X.jsx("div",{className:"rf-mb-4",children:"No render log, make sure this tab is open when you render"}),A&&X.jsxs("div",{className:"rf-flex rf-gap-2 rf-items-center",children:[X.jsx("select",{value:o,onChange:a=>n(a.target.value),className:"rf-px-3 rf-py-1 rf-border rf-rounded rf-text-xs rf-bg-white",children:s.map(a=>X.jsx("option",{value:a.value,children:a.label},a.value))}),X.jsx(Ic,{onClick:()=>A(o),size:"sm",className:"rf-text-xs",children:"Rerun Render with Debug"})]})]});const r=Object.entries(e?.phaseTimings??{});t==="chronological"?r.sort((a,I)=>T0.indexOf(a[0])-T0.indexOf(I[0])):r.sort((a,I)=>I[1]-a[1]);const g=r.reduce((a,[I,c])=>a+c,0);return X.jsxs("div",{className:"rf-bg-white",children:[X.jsxs("div",{className:"rf-flex rf-justify-between rf-items-center rf-mb-4",children:[X.jsx("div",{children:"Render Logs"}),X.jsxs("div",{className:"rf-flex rf-gap-4 rf-items-center",children:[A&&X.jsxs("div",{className:"rf-flex rf-gap-2 rf-items-center",children:[X.jsx("select",{value:o,onChange:a=>n(a.target.value),className:"rf-px-3 rf-py-1 rf-border rf-rounded rf-text-xs rf-bg-white",children:s.map(a=>X.jsx("option",{value:a.value,children:a.label},a.value))}),X.jsx(Ic,{onClick:()=>A(o),size:"sm",className:"rf-text-xs",children:"Rerun Render with Debug"})]}),X.jsx("div",{className:"rf-flex rf-gap-2 rf-items-center",children:X.jsxs("select",{onChange:a=>{if(a.target.value){const I=e?.debugOutputs?.find(c=>c.name===a.target.value);if(I){const c=DNe(I.content),B=c instanceof Blob?c:new Blob([c],{type:"text/plain"}),C=URL.createObjectURL(B),Q=document.createElement("a");Q.href=C,Q.download=`debug-${I.name}.txt`,document.body.appendChild(Q),Q.click(),document.body.removeChild(Q),URL.revokeObjectURL(C)}a.target.value=""}},disabled:!e?.debugOutputs||e.debugOutputs.length===0,className:"rf-px-3 rf-py-1 rf-border rf-rounded rf-text-xs rf-bg-white disabled:rf-opacity-50 disabled:rf-cursor-not-allowed",children:[X.jsx("option",{value:"",children:"Download Debug Output"}),e?.debugOutputs?.map(a=>X.jsx("option",{value:a.name,children:a.name},a.name))]})}),X.jsxs("div",{className:"rf-flex rf-text-xs rf-items-center",children:[X.jsx("div",{className:"rf-mr-2",children:"Sort by:"}),X.jsxs("select",{value:t,onChange:a=>i(a.target.value),className:"rf-px-2 rf-py-1 rf-border rf-rounded rf-text-xs",children:[X.jsx("option",{value:"chronological",children:"Phase Order"}),X.jsx("option",{value:"longest",children:"Duration"})]})]})]})]}),X.jsx(wNe,{phaseTimings:e.phaseTimings}),X.jsxs("table",{className:"rf-w-full rf-text-xs",children:[X.jsx("thead",{children:X.jsxs("tr",{children:[X.jsx("th",{className:"rf-text-left rf-p-2",children:"Phase Order"}),X.jsx("th",{className:"rf-text-left rf-p-2",children:"Phase"}),X.jsx("th",{className:"rf-text-left rf-p-2",children:"Duration (ms)"})]})}),X.jsx("tbody",{children:r.map(([a,I])=>X.jsxs("tr",{children:[X.jsx("td",{className:"rf-p-2",children:T0.indexOf(a)}),X.jsx("td",{className:"rf-p-2",children:a}),X.jsx("td",{className:"rf-p-2",children:X.jsx("div",{className:"rf-w-8",children:X.jsx("div",{className:"rf-h-2 rf-rounded-sm",style:{backgroundColor:Ntt(a),width:`${I/g*100}%`}})})}),X.jsx("td",{className:"rf-p-2",children:X.jsxs("div",{className:"rf-flex w-full",children:[X.jsxs("span",{className:"rf-flex-grow",children:[I,"ms"]}),X.jsxs("span",{className:"rf-text-gray-500 rf-pr-2",children:[(I/g*100).toFixed(1),"%"]})]})})]},a))})]})]})},Mtt=({errorMessage:e,errorStack:A,circuitJsonErrors:t})=>{iA.useEffect(()=>{if(e){const i=new Error(e);A&&(i.stack=A);try{TY.captureException(i)}catch{}}},[e,A]),iA.useEffect(()=>{if(t&&t.length>0)for(const i of t){const o=new Error(i.message||"Circuit JSON Error");i.stack&&(o.stack=i.stack);try{TY.captureException(o,{error_type:i.type})}catch{}}},[t])},vtt="0.0.1397",SNe={version:vtt},plA={BASE_URL:"/",DEV:!1,MODE:"production",PROD:!0,SSR:!1},flA=new Map,g5=e=>{const A=flA.get(e);return A?Object.fromEntries(Object.entries(A.stores).map(([t,i])=>[t,i.getState()])):{}},bNe=(e,A,t)=>{if(e===void 0)return{type:"untracked",connection:A.connect(t)};const i=flA.get(t.name);if(i)return{type:"tracked",store:e,...i};const o={connection:A.connect(t),stores:{}};return flA.set(t.name,o),{type:"tracked",store:e,...o}},Utt=(e,A={})=>(t,i,o)=>{const{enabled:n,anonymousActionType:s,store:r,...g}=A;let a;try{a=(n??(plA?"production":void 0)!=="production")&&window.__REDUX_DEVTOOLS_EXTENSION__}catch{}if(!a)return(plA?"production":void 0)!=="production"&&n&&console.warn("[zustand devtools middleware] Please install/enable Redux devtools extension"),e(t,i,o);const{connection:I,...c}=bNe(r,a,g);let B=!0;o.setState=(E,l,h)=>{const u=t(E,l);if(!B)return u;const d=h===void 0?{type:s||"anonymous"}:typeof h=="string"?{type:h}:h;return r===void 0?(I?.send(d,i()),u):(I?.send({...d,type:`${r}/${d.type}`},{...g5(g.name),[r]:o.getState()}),u)};const C=(...E)=>{const l=B;B=!1,t(...E),B=l},Q=e(o.setState,i,o);if(c.type==="untracked"?I?.init(Q):(c.stores[c.store]=o,I?.init(Object.fromEntries(Object.entries(c.stores).map(([E,l])=>[E,E===c.store?Q:l.getState()])))),o.dispatchFromDevtools&&typeof o.dispatch=="function"){let E=!1;const l=o.dispatch;o.dispatch=(...h)=>{(plA?"production":void 0)!=="production"&&h[0].type==="__setState"&&!E&&(console.warn('[zustand devtools middleware] "__setState" action type is reserved to set state from the devtools. Avoid using it.'),E=!0),l(...h)}}return I.subscribe(E=>{var l;switch(E.type){case"ACTION":if(typeof E.payload!="string"){console.error("[zustand devtools middleware] Unsupported action format");return}return ylA(E.payload,h=>{if(h.type==="__setState"){if(r===void 0){C(h.state);return}Object.keys(h.state).length!==1&&console.error(`
|
|
5813
5813
|
[zustand devtools middleware] Unsupported __setState action format.
|
|
5814
5814
|
When using 'store' option in devtools(), the 'state' should have only one key, which is a value of 'store' that was passed in devtools(),
|
|
5815
5815
|
and value of this only key should be a state object. Example: { "type": "__setState", "state": { "abc123Store": { "foo": "bar" } } }
|
|
@@ -5823,7 +5823,7 @@ You can add a description to the \`${NN}\` by passing a \`${Cet}\` component as
|
|
|
5823
5823
|
|
|
5824
5824
|
Alternatively, you can use your own component as a description by assigning it an \`id\` and passing the same value to the \`aria-describedby\` prop in \`${NN}\`. If the description is confusing or duplicative for sighted users, you can use the \`@radix-ui/react-visually-hidden\` primitive as a wrapper around your description component.
|
|
5825
5825
|
|
|
5826
|
-
For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return iA.useEffect(()=>{document.getElementById(e.current?.getAttribute("aria-describedby"))||console.warn(A)},[A,e]),null},eMe=ret,iMe=get,det=aet,pet=Iet,fet=Eet,yet=uet,wet=Bet,Det=Qet;const met=eMe,oMe=iMe,bet=iA.forwardRef(({className:e,...A},t)=>X.jsx(det,{className:Un("rf-fixed rf-inset-0 rf-z-50 rf-bg-black/80 data-[state=open]:rf-animate-in data-[state=closed]:rf-animate-out data-[state=closed]:rf-fade-out-0 data-[state=open]:rf-fade-in-0",e),...A,ref:t}));bet.displayName=det.displayName;const _lA=iA.forwardRef(({className:e,...A},t)=>X.jsxs(oMe,{children:[X.jsx(bet,{}),X.jsx(pet,{ref:t,className:Un("rf-fixed rf-left-[50%] rf-top-[50%] rf-z-50 rf-grid rf-w-full rf-max-w-lg rf-translate-x-[-50%] rf-translate-y-[-50%] rf-gap-4 rf-border rf-border-zinc-200 rf-bg-white rf-p-6 rf-shadow-lg rf-duration-200 data-[state=open]:rf-animate-in data-[state=closed]:rf-animate-out data-[state=closed]:rf-fade-out-0 data-[state=open]:rf-fade-in-0 data-[state=closed]:rf-zoom-out-95 data-[state=open]:rf-zoom-in-95 data-[state=closed]:rf-slide-out-to-left-1/2 data-[state=closed]:rf-slide-out-to-top-[48%] data-[state=open]:rf-slide-in-from-left-1/2 data-[state=open]:rf-slide-in-from-top-[48%] sm:rf-rounded-lg dark:rf-border-zinc-800 dark:rf-bg-zinc-950",e),...A})]}));_lA.displayName=pet.displayName;const RlA=({className:e,...A})=>X.jsx("div",{className:Un("rf-flex rf-flex-col rf-space-y-2 rf-text-center sm:rf-text-left",e),...A});RlA.displayName="AlertDialogHeader";const NlA=({className:e,...A})=>X.jsx("div",{className:Un("rf-flex rf-flex-col-reverse sm:rf-flex-row sm:rf-justify-end sm:rf-space-x-2",e),...A});NlA.displayName="AlertDialogFooter";const MlA=iA.forwardRef(({className:e,...A},t)=>X.jsx(wet,{ref:t,className:Un("rf-text-lg rf-font-semibold",e),...A}));MlA.displayName=wet.displayName;const vlA=iA.forwardRef(({className:e,...A},t)=>X.jsx(Det,{ref:t,className:Un("rf-text-sm rf-text-zinc-500 dark:rf-text-zinc-400",e),...A}));vlA.displayName=Det.displayName;const nMe=iA.forwardRef(({className:e,...A},t)=>X.jsx(fet,{ref:t,className:Un(rN(),e),...A}));nMe.displayName=fet.displayName;const UlA=iA.forwardRef(({className:e,...A},t)=>X.jsx(yet,{ref:t,className:Un(rN({variant:"outline"}),"rf-mt-2 sm:rf-mt-0",e),...A}));UlA.displayName=yet.displayName;function sMe(e){const A=iA.useRef({value:e,previous:e});return iA.useMemo(()=>(A.current.value!==e&&(A.current.previous=A.current.value,A.current.value=e),A.current.previous),[e])}var c5="Checkbox",[rMe]=VD(c5),[gMe,LlA]=rMe(c5);function aMe(e){const{__scopeCheckbox:A,checked:t,children:i,defaultChecked:o,disabled:n,form:s,name:r,onCheckedChange:g,required:a,value:I="on",internal_do_not_use_render:c}=e,[B,C]=lF({prop:t,defaultProp:o??!1,onChange:g,caller:c5}),[Q,E]=iA.useState(null),[l,h]=iA.useState(null),u=iA.useRef(!1),d=Q?!!s||!!Q.closest("form"):!0,f={checked:B,disabled:n,setChecked:C,control:Q,setControl:E,name:r,form:s,value:I,hasConsumerStoppedPropagationRef:u,required:a,defaultChecked:gk(o)?!1:o,isFormControl:d,bubbleInput:l,setBubbleInput:h};return X.jsx(gMe,{scope:A,...f,children:IMe(c)?c(f):i})}var ket="CheckboxTrigger",Get=iA.forwardRef(({__scopeCheckbox:e,onKeyDown:A,onClick:t,...i},o)=>{const{control:n,value:s,disabled:r,checked:g,required:a,setControl:I,setChecked:c,hasConsumerStoppedPropagationRef:B,isFormControl:C,bubbleInput:Q}=LlA(ket,e),E=kC(o,I),l=iA.useRef(g);return iA.useEffect(()=>{const h=n?.form;if(h){const u=()=>c(l.current);return h.addEventListener("reset",u),()=>h.removeEventListener("reset",u)}},[n,c]),X.jsx(eI.button,{type:"button",role:"checkbox","aria-checked":gk(g)?"mixed":g,"aria-required":a,"data-state":Net(g),"data-disabled":r?"":void 0,disabled:r,value:s,...i,ref:E,onKeyDown:$n(A,h=>{h.key==="Enter"&&h.preventDefault()}),onClick:$n(t,h=>{c(u=>gk(u)?!0:!u),Q&&C&&(B.current=h.isPropagationStopped(),B.current||h.stopPropagation())})})});Get.displayName=ket;var HlA=iA.forwardRef((e,A)=>{const{__scopeCheckbox:t,name:i,checked:o,defaultChecked:n,required:s,disabled:r,value:g,onCheckedChange:a,form:I,...c}=e;return X.jsx(aMe,{__scopeCheckbox:t,checked:o,defaultChecked:n,disabled:r,required:s,onCheckedChange:a,name:i,form:I,value:g,internal_do_not_use_render:({isFormControl:B})=>X.jsxs(X.Fragment,{children:[X.jsx(Get,{...c,ref:A,__scopeCheckbox:t}),B&&X.jsx(Ret,{__scopeCheckbox:t})]})})});HlA.displayName=c5;var xet="CheckboxIndicator",Fet=iA.forwardRef((e,A)=>{const{__scopeCheckbox:t,forceMount:i,...o}=e,n=LlA(xet,t);return X.jsx(bw,{present:i||gk(n.checked)||n.checked===!0,children:X.jsx(eI.span,{"data-state":Net(n.checked),"data-disabled":n.disabled?"":void 0,...o,ref:A,style:{pointerEvents:"none",...e.style}})})});Fet.displayName=xet;var _et="CheckboxBubbleInput",Ret=iA.forwardRef(({__scopeCheckbox:e,...A},t)=>{const{control:i,hasConsumerStoppedPropagationRef:o,checked:n,defaultChecked:s,required:r,disabled:g,name:a,value:I,form:c,bubbleInput:B,setBubbleInput:C}=LlA(_et,e),Q=kC(t,C),E=sMe(n),l=d9A(i);iA.useEffect(()=>{const u=B;if(!u)return;const d=window.HTMLInputElement.prototype,G=Object.getOwnPropertyDescriptor(d,"checked").set,D=!o.current;if(E!==n&&G){const k=new Event("click",{bubbles:D});u.indeterminate=gk(n),G.call(u,gk(n)?!1:n),u.dispatchEvent(k)}},[B,E,n,o]);const h=iA.useRef(gk(n)?!1:n);return X.jsx(eI.input,{type:"checkbox","aria-hidden":!0,defaultChecked:s??h.current,required:r,disabled:g,name:a,value:I,form:c,...A,tabIndex:-1,ref:Q,style:{...A.style,...l,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});Ret.displayName=_et;function IMe(e){return typeof e=="function"}function gk(e){return e==="indeterminate"}function Net(e){return gk(e)?"indeterminate":e?"checked":"unchecked"}const YlA=iA.forwardRef(({className:e,...A},t)=>X.jsx(HlA,{ref:t,className:Un("rf-peer rf-h-4 rf-w-4 rf-shrink-0 rf-rounded-sm rf-border rf-border-zinc-200 rf-border-zinc-900 rf-shadow focus-visible:rf-outline-none focus-visible:rf-ring-1 focus-visible:rf-ring-zinc-950 disabled:rf-cursor-not-allowed disabled:rf-opacity-50 data-[state=checked]:rf-bg-zinc-900 data-[state=checked]:rf-text-zinc-50 dark:rf-border-zinc-800 dark:rf-border-zinc-50 dark:focus-visible:rf-ring-zinc-300 dark:data-[state=checked]:rf-bg-zinc-50 dark:data-[state=checked]:rf-text-zinc-900",e),...A,children:X.jsx(Fet,{className:Un("rf-flex rf-items-center rf-justify-center rf-text-current"),children:X.jsx(YBA,{className:"rf-h-4 rf-w-4"})})}));YlA.displayName=HlA.displayName;const sL=iet,cMe=oet,Met=iA.forwardRef(({className:e,...A},t)=>X.jsx(klA,{className:Un("rf-fixed rf-inset-0 rf-z-50 rf-bg-black/80 data-[state=open]:rf-animate-in data-[state=closed]:rf-animate-out data-[state=closed]:rf-fade-out-0 data-[state=open]:rf-fade-in-0",e),...A,ref:t}));Met.displayName=klA.displayName;const MN=iA.forwardRef(({className:e,children:A,showOverlay:t=!0,...i},o)=>X.jsxs(cMe,{children:[X.jsx(Met,{className:Un(t?"":"rf-hidden")}),X.jsx(GlA,{ref:o,className:Un("rf-fixed rf-left-[50%] rf-top-[50%] rf-z-50 rf-grid rf-w-full rf-max-w-lg rf-translate-x-[-50%] rf-translate-y-[-50%] rf-gap-4 rf-border rf-border-zinc-200 rf-bg-white rf-p-6 rf-shadow-lg rf-duration-200 data-[state=open]:rf-animate-in data-[state=closed]:rf-animate-out data-[state=closed]:rf-fade-out-0 data-[state=open]:rf-fade-in-0 data-[state=closed]:rf-zoom-out-95 data-[state=open]:rf-zoom-in-95 data-[state=closed]:rf-slide-out-to-left-1/2 data-[state=closed]:rf-slide-out-to-top-[48%] data-[state=open]:rf-slide-in-from-left-1/2 data-[state=open]:rf-slide-in-from-top-[48%] sm:rf-rounded-lg dark:rf-border-zinc-800 dark:rf-bg-zinc-950",e),...i,children:A})]}));MN.displayName=GlA.displayName;const vN=({className:e,...A})=>X.jsx("div",{className:Un("rf-flex rf-flex-col rf-space-y-2 rf-text-center sm:rf-text-left",e),...A});vN.displayName="DialogHeader";const rL=({className:e,...A})=>X.jsx("div",{className:Un("rf-flex rf-flex-col-reverse sm:rf-flex-row sm:rf-justify-end sm:rf-space-x-2",e),...A});rL.displayName="DialogFooter";const UN=iA.forwardRef(({className:e,...A},t)=>X.jsx(xlA,{ref:t,className:Un("rf-text-lg rf-font-semibold",e),...A}));UN.displayName=xlA.displayName;const gL=iA.forwardRef(({className:e,...A},t)=>X.jsx(FlA,{ref:t,className:Un("rf-text-sm rf-text-zinc-500 dark:rf-text-zinc-400",e),...A}));gL.displayName=FlA.displayName;const JlA={"tscircuit.com":{label:"tscircuit.com",placeholder:"Search tscircuit packages...",emptyMessage:"No packages found"},jlcpcb:{label:"JLCPCB Parts",placeholder:"Search JLCPCB parts (e.g. C14663)...",emptyMessage:"No parts found"},kicad:{label:"KiCad Footprints",placeholder:"Search KiCad footprints...",emptyMessage:"No footprints found"}},BMe="https://cdn.jsdelivr.net/npm/easyeda@latest/dist/browser/index.js";let KlA=null;const CMe=async()=>(KlA||(KlA=import(BMe)),KlA),QMe=async(e,A=10)=>{const t=encodeURIComponent(e),i=await fetch(`https://jlcsearch.tscircuit.com/api/search?limit=${A}&q=${t}`);if(!i.ok)throw new Error(`JLCPCB API error: ${i.status}`);return(await i.json()).components??[]},lMe=e=>({lcscId:e.lcsc,manufacturer:e.mfr,description:e.description,partNumber:`C${e.lcsc}`,package:e.package,price:e.price,stock:e.stock}),EMe=async(e,A)=>{const{fetchEasyEDAComponent:t,convertRawEasyToTsx:i}=await CMe(),o=await t(e,{fetch:(n,s)=>fetch(`${A?.apiBase??zm}/proxy`,{...s,headers:{...s?.headers,"X-Target-Url":n.toString(),"X-Sender-Origin":s?.headers?.origin??"","X-Sender-Host":s?.headers?.host??"https://easyeda.com","X-Sender-Referer":s?.headers?.referer??"","X-Sender-User-Agent":s?.headers?.userAgent??"","X-Sender-Cookie":s?.headers?.cookie??"",authority:s?.headers?.authority??"","content-type":s?.headers?.["content-type"]??"",...A?.headers}})});return i(o)},hMe=({query:e,placeholder:A,isSearching:t,onQueryChange:i,onSubmit:o})=>{const n=iA.useCallback(s=>{s.key==="Enter"&&(s.preventDefault(),o())},[o]);return X.jsxs("div",{className:"rf-flex rf-items-center rf-gap-2 rf-mt-4",children:[X.jsxs("div",{className:"rf-relative rf-flex-grow",children:[X.jsx(vVA,{className:"rf-absolute rf-left-2 rf-top-2.5 rf-h-4 rf-w-4 rf-text-muted-foreground"}),X.jsx(EQA,{placeholder:A,className:"rf-pl-8",spellCheck:!1,autoComplete:"off",value:e,onChange:s=>i(s.target.value),onKeyDown:n})]}),X.jsx(Ic,{onClick:o,disabled:t||e.trim().length<1,className:"sm:rf-px-4 rf-px-3",children:t?X.jsx(Ob,{className:"rf-h-4 rf-w-4 rf-animate-spin"}):X.jsxs(X.Fragment,{children:[X.jsx(vVA,{className:"rf-h-4 rf-w-4 sm:rf-hidden"}),X.jsx("span",{className:"rf-hidden sm:rf-inline",children:"Search"})]})})]})},vet=e=>{switch(e.source){case"tscircuit.com":{const A=e.package;return`tscircuit-${A.package_id??`${A.owner_github_username??"unknown"}-${A.unscoped_name??A.name??"package"}`}`}case"jlcpcb":return`jlc-${e.component.lcscId}`;case"kicad":return`kicad-${e.footprint.path}`;default:return"unknown"}},uMe=e=>{switch(e.source){case"tscircuit.com":return e.package.unscoped_name;case"jlcpcb":return e.component.manufacturer;case"kicad":return e.footprint.qualifiedName}},dMe=e=>{switch(e.source){case"tscircuit.com":return e.package.description||(e.package.owner_github_username?`Component by ${e.package.owner_github_username}`:void 0);case"jlcpcb":return e.component.description;case"kicad":return e.footprint.description}},pMe=e=>{switch(e.source){case"tscircuit.com":return e.package.name;case"jlcpcb":return e.component.partNumber;case"kicad":return}},fMe=({results:e,selected:A,onSelect:t,onShowDetails:i})=>{const o=A?vet(A):null;return X.jsx("div",{className:"rf-divide-y",children:e.map(n=>{const s=vet(n),r=o===s,g=uMe(n),a=dMe(n),I=pMe(n),c=n.source==="jlcpcb"?n.component.stock:null;return X.jsxs("div",{className:`rf-p-3 rf-flex rf-flex-col sm:rf-grid sm:rf-grid-cols-[1fr_auto] rf-items-start sm:rf-items-center rf-cursor-pointer hover:rf-bg-zinc-100 rf-gap-2 ${r?"rf-bg-zinc-100":""}`,onClick:()=>t(n),children:[X.jsxs("div",{className:"rf-min-w-0 rf-overflow-hidden rf-w-full",children:[X.jsxs("div",{className:"rf-flex rf-items-start rf-gap-2",children:[X.jsx("div",{className:"rf-font-medium rf-text-sm rf-truncate rf-flex-1 rf-min-w-0",children:g}),n.source==="jlcpcb"&&c!=null?X.jsxs("div",{className:"rf-text-xs rf-text-zinc-500 rf-font-medium rf-whitespace-nowrap sm:rf-hidden",children:[c.toLocaleString()," in stock"]}):null]}),X.jsxs("div",{className:"rf-text-xs rf-text-zinc-500 rf-truncate",children:[I?X.jsx("span",{className:"rf-mr-2",children:I}):null,a]})]}),n.source==="tscircuit.com"&&i?X.jsx("div",{className:"rf-flex rf-gap-2 rf-flex-shrink-0 rf-w-full sm:rf-w-auto",children:X.jsx(Ic,{variant:"outline",size:"sm",className:"rf-text-xs rf-w-full sm:rf-w-auto",onClick:B=>{B.stopPropagation(),i(n)},children:"See Details"})}):n.source==="jlcpcb"&&c!=null?X.jsxs("div",{className:"rf-hidden sm:rf-block rf-text-xs rf-text-zinc-500 rf-font-medium rf-w-full sm:rf-w-auto sm:rf-text-right sm:rf-justify-self-end rf-whitespace-nowrap",children:[c.toLocaleString()," in stock"]}):null]},s)})})},yMe=({packageResult:e,isOpen:A,onOpenChange:t,isLoading:i,details:o,previewTab:n,onPreviewTabChange:s,isSubmitting:r,onImport:g})=>{const a=e?.package??null,I=a?.latest_pcb_preview_image_url,c=a?.latest_sch_preview_image_url,B=a?.latest_cad_preview_image_url,C=a?.unscoped_name?.split("/").pop()??a?.unscoped_name,Q=a?.owner_github_username??void 0,E=Q?`https://tscircuit.com/${Q}`:void 0,l=Q&&C?`https://tscircuit.com/${Q}/${C}`:void 0;return X.jsx(sL,{open:A,onOpenChange:t,children:X.jsxs(MN,{showOverlay:!1,style:{width:"calc(100vw - 2rem)"},className:"rf-max-w-5xl no-scrollbar !rf-overflow-y-auto rf-max-h-[90vh] rf-overflow-hidden rf-flex rf-flex-col rf-rounded-sm",children:[X.jsx(vN,{className:"rf-pb-4 rf-border-b",children:X.jsx("div",{className:"rf-flex rf-items-start rf-justify-between rf-gap-4",children:X.jsxs("div",{className:"rf-flex-1 rf-min-w-0",children:[X.jsx(UN,{className:"rf-text-xl rf-font-semibold rf-truncate",children:C}),X.jsx(gL,{children:a?.description})]})})}),X.jsxs("div",{className:"rf-flex-1 rf-overflow-y-auto rf-py-4 rf-space-y-6",children:[Q?X.jsxs("div",{children:[X.jsx("span",{className:"rf-text-xs rf-font-medium rf-text-gray-500 rf-uppercase rf-tracking-wide",children:"Created by"}),X.jsx("div",{className:"rf-mt-1 rf-text-sm rf-font-medium",children:E?X.jsx("a",{href:E,target:"_blank",rel:"noopener noreferrer",className:"rf-text-black hover:rf-underline",children:Q}):Q})]}):null,(B||I||c)&&X.jsx(X.Fragment,{children:X.jsxs("div",{children:[X.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-mb-4",children:"Preview"}),X.jsxs(t9,{value:n,onValueChange:h=>s(h),children:[X.jsxs(PY,{className:"rf-inline-flex rf-h-9 rf-items-center rf-justify-center rf-rounded-lg rf-bg-zinc-100 rf-p-1 rf-text-zinc-500 dark:rf-bg-zinc-800 dark:rf-text-zinc-400",children:[I&&X.jsx(_w,{value:"pcb",children:"PCB"}),c&&X.jsx(_w,{value:"schematic",children:"Schematic"}),B&&X.jsx(_w,{value:"3d",children:"3D"})]}),X.jsxs("div",{className:"rf-mt-4",children:[X.jsx(dp,{value:"pcb",className:"rf-border rf-rounded-lg rf-overflow-hidden rf-bg-gray-50",children:I?X.jsx("img",{src:I,alt:`${C??"package"} PCB preview`,className:"rf-w-full rf-h-full rf-object-contain rf-bg-white rf-p-4"}):null}),X.jsx(dp,{value:"schematic",className:"rf-border rf-rounded-lg rf-overflow-hidden rf-bg-gray-50",children:c?X.jsx("img",{src:c,alt:`${C??"package"} schematic preview`,className:"rf-w-full rf-h-full rf-object-contain rf-bg-white rf-p-4"}):null}),X.jsx(dp,{value:"3d",className:"rf-border rf-rounded-lg rf-overflow-hidden rf-bg-gray-50",children:B?X.jsx("img",{src:B,alt:`${C??"package"} 3D preview`,className:"rf-w-full rf-h-full rf-object-contain rf-bg-white rf-p-4"}):null})]})]})]})}),o?.ai_description?X.jsxs("section",{children:[X.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-mb-3",children:"AI Description"}),X.jsx("div",{className:"rf-bg-gray-50 rf-border rf-border-gray-200 rf-rounded-lg rf-p-4",children:X.jsx("p",{className:"rf-text-sm rf-text-gray-700 rf-leading-relaxed",children:o.ai_description})})]}):null,o?.ai_usage_instructions?X.jsxs("section",{children:[X.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-mb-3",children:"Usage Instructions"}),X.jsx("div",{className:"rf-bg-gray-50 rf-border rf-border-gray-200 rf-rounded-lg rf-p-4",children:X.jsx("p",{className:"rf-text-sm rf-text-gray-700 rf-leading-relaxed rf-whitespace-pre-wrap",children:o.ai_usage_instructions})})]}):null,i?X.jsxs("div",{className:"rf-flex rf-justify-center rf-items-center rf-gap-2 rf-text-gray-500",children:[X.jsx(Ob,{className:"rf-h-4 rf-w-4 rf-animate-spin"}),X.jsx("span",{className:"rf-text-sm",children:"Loading package details..."})]}):null]}),X.jsxs(rL,{className:"rf-pt-4 rf-border-t rf-flex rf-flex-col sm:rf-flex-row rf-justify-between rf-gap-2",children:[X.jsx("div",{className:"rf-flex-1",children:l?X.jsxs(Ic,{variant:"outline",size:"sm",className:"rf-gap-2 rf-w-full sm:rf-w-auto",onClick:()=>window.open(l,"_blank"),children:[X.jsx(Dpe,{className:"rf-h-4 rf-w-4"}),"View on tscircuit.com"]}):null}),X.jsxs("div",{className:"rf-flex rf-flex-col sm:rf-flex-row rf-gap-2",children:[X.jsx(Ic,{variant:"outline",onClick:()=>t(!1),className:"rf-order-2 sm:rf-order-1",children:"Close"}),X.jsx(Ic,{onClick:g,disabled:r,className:"rf-bg-blue-600 hover:rf-bg-blue-700",children:r?X.jsx(Ob,{className:"rf-h-4 rf-w-4 rf-animate-spin"}):"Import Component"})]})]})]})})},wMe=()=>{const[e,A]=iA.useState(null),[t,i]=iA.useState(!1),o=iA.useCallback(async(s,r)=>{i(!0);try{const g=await fetch(`https://api.tscircuit.com/packages/get?name=${encodeURIComponent(`${s}/${r}`)}`);if(!g.ok)throw new Error(`Failed to load package details: ${g.status}`);const a=await g.json();A(a.package??null)}catch(g){console.error("Failed to fetch package details",g),A(null)}finally{i(!1)}},[]),n=iA.useCallback(()=>{A(null),i(!1)},[]);return{details:e,isLoading:t,fetchDetails:o,reset:n}},DMe=async e=>{const A=await fetch("https://registry-api.tscircuit.com/packages/search",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:e})});if(!A.ok)throw new Error(`tscircuit registry error: ${A.status}`);return(await A.json()).packages??[]},mMe=()=>{const[e,A]=iA.useState([]),[t,i]=iA.useState(!1),[o,n]=iA.useState(null),[s,r]=iA.useState(!1),g=iA.useCallback(async I=>{const c=I.trim();if(!c)return[];i(!0),n(null);try{const C=(await DMe(c)).map(Q=>({source:"tscircuit.com",package:Q}));return A(C),C}catch(B){return console.error("Error searching tscircuit packages",B),A([]),n(B instanceof Error?B.message:"Failed to search tscircuit packages"),[]}finally{i(!1),r(!0)}},[]),a=iA.useCallback(()=>{A([]),i(!1),n(null),r(!1)},[]);return{results:e,isSearching:t,error:o,hasSearched:s,search:g,reset:a}},SMe=e=>{const A=e.trim();return/^C\d+/i.test(A)?A.replace(/^C/i,""):A},bMe=()=>{const[e,A]=iA.useState([]),[t,i]=iA.useState(!1),[o,n]=iA.useState(null),[s,r]=iA.useState(!1),g=iA.useCallback(async I=>{const c=SMe(I);if(!c)return[];i(!0),n(null);try{const C=(await QMe(c,10)).map(Q=>({source:"jlcpcb",component:lMe(Q)}));return A(C),C}catch(B){return console.error("Error searching JLCPCB components",B),A([]),n(B instanceof Error?B.message:"Failed to search JLCPCB components"),[]}finally{i(!1),r(!0)}},[]),a=iA.useCallback(()=>{A([]),i(!1),n(null),r(!1)},[]);return{results:e,isSearching:t,error:o,hasSearched:s,search:g,reset:a}};function $m(e){return Array.isArray?Array.isArray(e):Het(e)==="[object Array]"}function kMe(e){if(typeof e=="string")return e;let A=e+"";return A=="0"&&1/e==-1/0?"-0":A}function GMe(e){return e==null?"":kMe(e)}function mD(e){return typeof e=="string"}function Uet(e){return typeof e=="number"}function xMe(e){return e===!0||e===!1||FMe(e)&&Het(e)=="[object Boolean]"}function Let(e){return typeof e=="object"}function FMe(e){return Let(e)&&e!==null}function qf(e){return e!=null}function TlA(e){return!e.trim().length}function Het(e){return e==null?e===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}const _Me="Incorrect 'index' type",RMe=e=>`Invalid value for key ${e}`,NMe=e=>`Pattern length exceeds max of ${e}.`,MMe=e=>`Missing ${e} property in key`,vMe=e=>`Property 'weight' in key '${e}' must be a positive integer`,Yet=Object.prototype.hasOwnProperty;class UMe{constructor(A){this._keys=[],this._keyMap={};let t=0;A.forEach(i=>{let o=Jet(i);this._keys.push(o),this._keyMap[o.id]=o,t+=o.weight}),this._keys.forEach(i=>{i.weight/=t})}get(A){return this._keyMap[A]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}}function Jet(e){let A=null,t=null,i=null,o=1,n=null;if(mD(e)||$m(e))i=e,A=Ket(e),t=qlA(e);else{if(!Yet.call(e,"name"))throw new Error(MMe("name"));const s=e.name;if(i=s,Yet.call(e,"weight")&&(o=e.weight,o<=0))throw new Error(vMe(s));A=Ket(s),t=qlA(s),n=e.getFn}return{path:A,id:t,weight:o,src:i,getFn:n}}function Ket(e){return $m(e)?e:e.split(".")}function qlA(e){return $m(e)?e.join("."):e}function LMe(e,A){let t=[],i=!1;const o=(n,s,r)=>{if(qf(n))if(!s[r])t.push(n);else{let g=s[r];const a=n[g];if(!qf(a))return;if(r===s.length-1&&(mD(a)||Uet(a)||xMe(a)))t.push(GMe(a));else if($m(a)){i=!0;for(let I=0,c=a.length;I<c;I+=1)o(a[I],s,r+1)}else s.length&&o(a,s,r+1)}};return o(e,mD(A)?A.split("."):A,0),i?t:t[0]}var Fn={...{isCaseSensitive:!1,ignoreDiacritics:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:(e,A)=>e.score===A.score?e.idx<A.idx?-1:1:e.score<A.score?-1:1},...{includeMatches:!1,findAllMatches:!1,minMatchCharLength:1},...{location:0,threshold:.6,distance:100},...{useExtendedSearch:!1,getFn:LMe,ignoreLocation:!1,ignoreFieldNorm:!1,fieldNormWeight:1}};const HMe=/[^ ]+/g;function YMe(e=1,A=3){const t=new Map,i=Math.pow(10,A);return{get(o){const n=o.match(HMe).length;if(t.has(n))return t.get(n);const s=1/Math.pow(n,.5*e),r=parseFloat(Math.round(s*i)/i);return t.set(n,r),r},clear(){t.clear()}}}class PlA{constructor({getFn:A=Fn.getFn,fieldNormWeight:t=Fn.fieldNormWeight}={}){this.norm=YMe(t,3),this.getFn=A,this.isCreated=!1,this.setIndexRecords()}setSources(A=[]){this.docs=A}setIndexRecords(A=[]){this.records=A}setKeys(A=[]){this.keys=A,this._keysMap={},A.forEach((t,i)=>{this._keysMap[t.id]=i})}create(){this.isCreated||!this.docs.length||(this.isCreated=!0,mD(this.docs[0])?this.docs.forEach((A,t)=>{this._addString(A,t)}):this.docs.forEach((A,t)=>{this._addObject(A,t)}),this.norm.clear())}add(A){const t=this.size();mD(A)?this._addString(A,t):this._addObject(A,t)}removeAt(A){this.records.splice(A,1);for(let t=A,i=this.size();t<i;t+=1)this.records[t].i-=1}getValueForItemAtKeyId(A,t){return A[this._keysMap[t]]}size(){return this.records.length}_addString(A,t){if(!qf(A)||TlA(A))return;let i={v:A,i:t,n:this.norm.get(A)};this.records.push(i)}_addObject(A,t){let i={i:t,$:{}};this.keys.forEach((o,n)=>{let s=o.getFn?o.getFn(A):this.getFn(A,o.path);if(qf(s)){if($m(s)){let r=[];const g=[{nestedArrIndex:-1,value:s}];for(;g.length;){const{nestedArrIndex:a,value:I}=g.pop();if(qf(I))if(mD(I)&&!TlA(I)){let c={v:I,i:a,n:this.norm.get(I)};r.push(c)}else $m(I)&&I.forEach((c,B)=>{g.push({nestedArrIndex:B,value:c})})}i.$[n]=r}else if(mD(s)&&!TlA(s)){let r={v:s,n:this.norm.get(s)};i.$[n]=r}}}),this.records.push(i)}toJSON(){return{keys:this.keys,records:this.records}}}function Tet(e,A,{getFn:t=Fn.getFn,fieldNormWeight:i=Fn.fieldNormWeight}={}){const o=new PlA({getFn:t,fieldNormWeight:i});return o.setKeys(e.map(Jet)),o.setSources(A),o.create(),o}function JMe(e,{getFn:A=Fn.getFn,fieldNormWeight:t=Fn.fieldNormWeight}={}){const{keys:i,records:o}=e,n=new PlA({getFn:A,fieldNormWeight:t});return n.setKeys(i),n.setIndexRecords(o),n}function B5(e,{errors:A=0,currentLocation:t=0,expectedLocation:i=0,distance:o=Fn.distance,ignoreLocation:n=Fn.ignoreLocation}={}){const s=A/e.length;if(n)return s;const r=Math.abs(i-t);return o?s+r/o:r?1:s}function KMe(e=[],A=Fn.minMatchCharLength){let t=[],i=-1,o=-1,n=0;for(let s=e.length;n<s;n+=1){let r=e[n];r&&i===-1?i=n:!r&&i!==-1&&(o=n-1,o-i+1>=A&&t.push([i,o]),i=-1)}return e[n-1]&&n-i>=A&&t.push([i,n-1]),t}const Dx=32;function TMe(e,A,t,{location:i=Fn.location,distance:o=Fn.distance,threshold:n=Fn.threshold,findAllMatches:s=Fn.findAllMatches,minMatchCharLength:r=Fn.minMatchCharLength,includeMatches:g=Fn.includeMatches,ignoreLocation:a=Fn.ignoreLocation}={}){if(A.length>Dx)throw new Error(NMe(Dx));const I=A.length,c=e.length,B=Math.max(0,Math.min(i,c));let C=n,Q=B;const E=r>1||g,l=E?Array(c):[];let h;for(;(h=e.indexOf(A,Q))>-1;){let k=B5(A,{currentLocation:h,expectedLocation:B,distance:o,ignoreLocation:a});if(C=Math.min(k,C),Q=h+I,E){let m=0;for(;m<I;)l[h+m]=1,m+=1}}Q=-1;let u=[],d=1,f=I+c;const G=1<<I-1;for(let k=0;k<I;k+=1){let m=0,F=f;for(;m<F;)B5(A,{errors:k,currentLocation:B+F,expectedLocation:B,distance:o,ignoreLocation:a})<=C?m=F:f=F,F=Math.floor((f-m)/2+m);f=F;let b=Math.max(1,B-F+1),U=s?c:Math.min(B+F,c)+I,M=Array(U+2);M[U+1]=(1<<k)-1;for(let P=U;P>=b;P-=1){let q=P-1,W=t[e.charAt(q)];if(E&&(l[q]=+!!W),M[P]=(M[P+1]<<1|1)&W,k&&(M[P]|=(u[P+1]|u[P])<<1|1|u[P+1]),M[P]&G&&(d=B5(A,{errors:k,currentLocation:q,expectedLocation:B,distance:o,ignoreLocation:a}),d<=C)){if(C=d,Q=q,Q<=B)break;b=Math.max(1,2*B-Q)}}if(B5(A,{errors:k+1,currentLocation:B,expectedLocation:B,distance:o,ignoreLocation:a})>C)break;u=M}const D={isMatch:Q>=0,score:Math.max(.001,d)};if(E){const k=KMe(l,r);k.length?g&&(D.indices=k):D.isMatch=!1}return D}function qMe(e){let A={};for(let t=0,i=e.length;t<i;t+=1){const o=e.charAt(t);A[o]=(A[o]||0)|1<<i-t-1}return A}const C5=String.prototype.normalize?(e=>e.normalize("NFD").replace(/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C04\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F]/g,"")):(e=>e);class qet{constructor(A,{location:t=Fn.location,threshold:i=Fn.threshold,distance:o=Fn.distance,includeMatches:n=Fn.includeMatches,findAllMatches:s=Fn.findAllMatches,minMatchCharLength:r=Fn.minMatchCharLength,isCaseSensitive:g=Fn.isCaseSensitive,ignoreDiacritics:a=Fn.ignoreDiacritics,ignoreLocation:I=Fn.ignoreLocation}={}){if(this.options={location:t,threshold:i,distance:o,includeMatches:n,findAllMatches:s,minMatchCharLength:r,isCaseSensitive:g,ignoreDiacritics:a,ignoreLocation:I},A=g?A:A.toLowerCase(),A=a?C5(A):A,this.pattern=A,this.chunks=[],!this.pattern.length)return;const c=(C,Q)=>{this.chunks.push({pattern:C,alphabet:qMe(C),startIndex:Q})},B=this.pattern.length;if(B>Dx){let C=0;const Q=B%Dx,E=B-Q;for(;C<E;)c(this.pattern.substr(C,Dx),C),C+=Dx;if(Q){const l=B-Dx;c(this.pattern.substr(l),l)}}else c(this.pattern,0)}searchIn(A){const{isCaseSensitive:t,ignoreDiacritics:i,includeMatches:o}=this.options;if(A=t?A:A.toLowerCase(),A=i?C5(A):A,this.pattern===A){let E={isMatch:!0,score:0};return o&&(E.indices=[[0,A.length-1]]),E}const{location:n,distance:s,threshold:r,findAllMatches:g,minMatchCharLength:a,ignoreLocation:I}=this.options;let c=[],B=0,C=!1;this.chunks.forEach(({pattern:E,alphabet:l,startIndex:h})=>{const{isMatch:u,score:d,indices:f}=TMe(A,E,l,{location:n+h,distance:s,threshold:r,findAllMatches:g,minMatchCharLength:a,includeMatches:o,ignoreLocation:I});u&&(C=!0),B+=d,u&&f&&(c=[...c,...f])});let Q={isMatch:C,score:C?B/this.chunks.length:1};return C&&o&&(Q.indices=c),Q}}class ak{constructor(A){this.pattern=A}static isMultiMatch(A){return Pet(A,this.multiRegex)}static isSingleMatch(A){return Pet(A,this.singleRegex)}search(){}}function Pet(e,A){const t=e.match(A);return t?t[1]:null}class PMe extends ak{constructor(A){super(A)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(A){const t=A===this.pattern;return{isMatch:t,score:t?0:1,indices:[0,this.pattern.length-1]}}}class OMe extends ak{constructor(A){super(A)}static get type(){return"inverse-exact"}static get multiRegex(){return/^!"(.*)"$/}static get singleRegex(){return/^!(.*)$/}search(A){const i=A.indexOf(this.pattern)===-1;return{isMatch:i,score:i?0:1,indices:[0,A.length-1]}}}class WMe extends ak{constructor(A){super(A)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(A){const t=A.startsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,this.pattern.length-1]}}}class ZMe extends ak{constructor(A){super(A)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(A){const t=!A.startsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,A.length-1]}}}class VMe extends ak{constructor(A){super(A)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(A){const t=A.endsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[A.length-this.pattern.length,A.length-1]}}}class jMe extends ak{constructor(A){super(A)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(A){const t=!A.endsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,A.length-1]}}}class Oet extends ak{constructor(A,{location:t=Fn.location,threshold:i=Fn.threshold,distance:o=Fn.distance,includeMatches:n=Fn.includeMatches,findAllMatches:s=Fn.findAllMatches,minMatchCharLength:r=Fn.minMatchCharLength,isCaseSensitive:g=Fn.isCaseSensitive,ignoreDiacritics:a=Fn.ignoreDiacritics,ignoreLocation:I=Fn.ignoreLocation}={}){super(A),this._bitapSearch=new qet(A,{location:t,threshold:i,distance:o,includeMatches:n,findAllMatches:s,minMatchCharLength:r,isCaseSensitive:g,ignoreDiacritics:a,ignoreLocation:I})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(A){return this._bitapSearch.searchIn(A)}}class Wet extends ak{constructor(A){super(A)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(A){let t=0,i;const o=[],n=this.pattern.length;for(;(i=A.indexOf(this.pattern,t))>-1;)t=i+n,o.push([i,t-1]);const s=!!o.length;return{isMatch:s,score:s?0:1,indices:o}}}const OlA=[PMe,Wet,WMe,ZMe,jMe,VMe,OMe,Oet],Zet=OlA.length,zMe=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/,XMe="|";function $Me(e,A={}){return e.split(XMe).map(t=>{let i=t.trim().split(zMe).filter(n=>n&&!!n.trim()),o=[];for(let n=0,s=i.length;n<s;n+=1){const r=i[n];let g=!1,a=-1;for(;!g&&++a<Zet;){const I=OlA[a];let c=I.isMultiMatch(r);c&&(o.push(new I(c,A)),g=!0)}if(!g)for(a=-1;++a<Zet;){const I=OlA[a];let c=I.isSingleMatch(r);if(c){o.push(new I(c,A));break}}}return o})}const Ave=new Set([Oet.type,Wet.type]);class tve{constructor(A,{isCaseSensitive:t=Fn.isCaseSensitive,ignoreDiacritics:i=Fn.ignoreDiacritics,includeMatches:o=Fn.includeMatches,minMatchCharLength:n=Fn.minMatchCharLength,ignoreLocation:s=Fn.ignoreLocation,findAllMatches:r=Fn.findAllMatches,location:g=Fn.location,threshold:a=Fn.threshold,distance:I=Fn.distance}={}){this.query=null,this.options={isCaseSensitive:t,ignoreDiacritics:i,includeMatches:o,minMatchCharLength:n,findAllMatches:r,ignoreLocation:s,location:g,threshold:a,distance:I},A=t?A:A.toLowerCase(),A=i?C5(A):A,this.pattern=A,this.query=$Me(this.pattern,this.options)}static condition(A,t){return t.useExtendedSearch}searchIn(A){const t=this.query;if(!t)return{isMatch:!1,score:1};const{includeMatches:i,isCaseSensitive:o,ignoreDiacritics:n}=this.options;A=o?A:A.toLowerCase(),A=n?C5(A):A;let s=0,r=[],g=0;for(let a=0,I=t.length;a<I;a+=1){const c=t[a];r.length=0,s=0;for(let B=0,C=c.length;B<C;B+=1){const Q=c[B],{isMatch:E,indices:l,score:h}=Q.search(A);if(E){if(s+=1,g+=h,i){const u=Q.constructor.type;Ave.has(u)?r=[...r,...l]:r.push(l)}}else{g=0,s=0,r.length=0;break}}if(s){let B={isMatch:!0,score:g/s};return i&&(B.indices=r),B}}return{isMatch:!1,score:1}}}const WlA=[];function eve(...e){WlA.push(...e)}function ZlA(e,A){for(let t=0,i=WlA.length;t<i;t+=1){let o=WlA[t];if(o.condition(e,A))return new o(e,A)}return new qet(e,A)}const Q5={AND:"$and",OR:"$or"},VlA={PATH:"$path",PATTERN:"$val"},jlA=e=>!!(e[Q5.AND]||e[Q5.OR]),ive=e=>!!e[VlA.PATH],ove=e=>!$m(e)&&Let(e)&&!jlA(e),Vet=e=>({[Q5.AND]:Object.keys(e).map(A=>({[A]:e[A]}))});function jet(e,A,{auto:t=!0}={}){const i=o=>{let n=Object.keys(o);const s=ive(o);if(!s&&n.length>1&&!jlA(o))return i(Vet(o));if(ove(o)){const g=s?o[VlA.PATH]:n[0],a=s?o[VlA.PATTERN]:o[g];if(!mD(a))throw new Error(RMe(g));const I={keyId:qlA(g),pattern:a};return t&&(I.searcher=ZlA(a,A)),I}let r={children:[],operator:n[0]};return n.forEach(g=>{const a=o[g];$m(a)&&a.forEach(I=>{r.children.push(i(I))})}),r};return jlA(e)||(e=Vet(e)),i(e)}function nve(e,{ignoreFieldNorm:A=Fn.ignoreFieldNorm}){e.forEach(t=>{let i=1;t.matches.forEach(({key:o,norm:n,score:s})=>{const r=o?o.weight:null;i*=Math.pow(s===0&&r?Number.EPSILON:s,(r||1)*(A?1:n))}),t.score=i})}function sve(e,A){const t=e.matches;A.matches=[],qf(t)&&t.forEach(i=>{if(!qf(i.indices)||!i.indices.length)return;const{indices:o,value:n}=i;let s={indices:o,value:n};i.key&&(s.key=i.key.src),i.idx>-1&&(s.refIndex=i.idx),A.matches.push(s)})}function rve(e,A){A.score=e.score}function gve(e,A,{includeMatches:t=Fn.includeMatches,includeScore:i=Fn.includeScore}={}){const o=[];return t&&o.push(sve),i&&o.push(rve),e.map(n=>{const{idx:s}=n,r={item:A[s],refIndex:s};return o.length&&o.forEach(g=>{g(n,r)}),r})}class LN{constructor(A,t={},i){this.options={...Fn,...t},this.options.useExtendedSearch,this._keyStore=new UMe(this.options.keys),this.setCollection(A,i)}setCollection(A,t){if(this._docs=A,t&&!(t instanceof PlA))throw new Error(_Me);this._myIndex=t||Tet(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}add(A){qf(A)&&(this._docs.push(A),this._myIndex.add(A))}remove(A=()=>!1){const t=[];for(let i=0,o=this._docs.length;i<o;i+=1){const n=this._docs[i];A(n,i)&&(this.removeAt(i),i-=1,o-=1,t.push(n))}return t}removeAt(A){this._docs.splice(A,1),this._myIndex.removeAt(A)}getIndex(){return this._myIndex}search(A,{limit:t=-1}={}){const{includeMatches:i,includeScore:o,shouldSort:n,sortFn:s,ignoreFieldNorm:r}=this.options;let g=mD(A)?mD(this._docs[0])?this._searchStringList(A):this._searchObjectList(A):this._searchLogical(A);return nve(g,{ignoreFieldNorm:r}),n&&g.sort(s),Uet(t)&&t>-1&&(g=g.slice(0,t)),gve(g,this._docs,{includeMatches:i,includeScore:o})}_searchStringList(A){const t=ZlA(A,this.options),{records:i}=this._myIndex,o=[];return i.forEach(({v:n,i:s,n:r})=>{if(!qf(n))return;const{isMatch:g,score:a,indices:I}=t.searchIn(n);g&&o.push({item:n,idx:s,matches:[{score:a,value:n,norm:r,indices:I}]})}),o}_searchLogical(A){const t=jet(A,this.options),i=(r,g,a)=>{if(!r.children){const{keyId:c,searcher:B}=r,C=this._findMatches({key:this._keyStore.get(c),value:this._myIndex.getValueForItemAtKeyId(g,c),searcher:B});return C&&C.length?[{idx:a,item:g,matches:C}]:[]}const I=[];for(let c=0,B=r.children.length;c<B;c+=1){const C=r.children[c],Q=i(C,g,a);if(Q.length)I.push(...Q);else if(r.operator===Q5.AND)return[]}return I},o=this._myIndex.records,n={},s=[];return o.forEach(({$:r,i:g})=>{if(qf(r)){let a=i(t,r,g);a.length&&(n[g]||(n[g]={idx:g,item:r,matches:[]},s.push(n[g])),a.forEach(({matches:I})=>{n[g].matches.push(...I)}))}}),s}_searchObjectList(A){const t=ZlA(A,this.options),{keys:i,records:o}=this._myIndex,n=[];return o.forEach(({$:s,i:r})=>{if(!qf(s))return;let g=[];i.forEach((a,I)=>{g.push(...this._findMatches({key:a,value:s[I],searcher:t}))}),g.length&&n.push({idx:r,item:s,matches:g})}),n}_findMatches({key:A,value:t,searcher:i}){if(!qf(t))return[];let o=[];if($m(t))t.forEach(({v:n,i:s,n:r})=>{if(!qf(n))return;const{isMatch:g,score:a,indices:I}=i.searchIn(n);g&&o.push({score:a,key:A,value:n,idx:s,norm:r,indices:I})});else{const{v:n,n:s}=t,{isMatch:r,score:g,indices:a}=i.searchIn(n);r&&o.push({score:g,key:A,value:n,norm:s,indices:a})}return o}}LN.version="7.1.0",LN.createIndex=Tet,LN.parseIndex=JMe,LN.config=Fn,LN.parseQuery=jet,eve(tve);let zlA=null,aL=null,XlA=null;const ave=async()=>zlA||aL||(aL=fetch("https://kicad-mod-cache.tscircuit.com/kicad_files.json").then(e=>e.json()).then(e=>(zlA=e,aL=null,e)),aL),Ive=async(e,A=20)=>{const t=await ave();return XlA||(XlA=new LN(t)),XlA.search(e).slice(0,A).map(i=>i.item)},cve=e=>{const A=e.replace(".pretty/",":").replace(".kicad_mod",""),t=`kicad:${A}`;return{path:e,qualifiedName:t,description:A}},Bve=()=>{const[e,A]=iA.useState([]),[t,i]=iA.useState(!1),[o,n]=iA.useState(null),[s,r]=iA.useState(!1),g=iA.useCallback(async I=>{const c=I.trim();if(!c)return[];i(!0),n(null);try{const C=(await Ive(c,20)).map(Q=>({source:"kicad",footprint:cve(Q)}));return A(C),C}catch(B){return console.error("Error searching KiCad footprints",B),A([]),n(B instanceof Error?B.message:"Failed to search KiCad footprints"),[]}finally{i(!1),r(!0)}},[]),a=iA.useCallback(()=>{A([]),i(!1),n(null),r(!1)},[]);return{results:e,isSearching:t,error:o,hasSearched:s,search:g,reset:a}},Cve=({onTscircuitPackageSelected:e,onJlcpcbComponentTsxLoaded:A,onKicadStringSelected:t})=>{const i=[];return e&&i.push("tscircuit.com"),A&&i.push("jlcpcb"),t&&i.push("kicad"),i},Qve=({isOpen:e,onClose:A,jlcpcbProxyRequestHeaders:t,onKicadStringSelected:i,onTscircuitPackageSelected:o,onJlcpcbComponentTsxLoaded:n,jlcpcbProxyApiBase:s})=>{_tt();const r=iA.useMemo(()=>Cve({onKicadStringSelected:i,onTscircuitPackageSelected:o,onJlcpcbComponentTsxLoaded:n}),[i,o,n]),g=r.length>0,[a,I]=iA.useState(r[0]??"tscircuit.com"),[c,B]=iA.useState(""),[C,Q]=iA.useState(null),{results:E,isSearching:l,error:h,hasSearched:u,search:d,reset:f}=mMe(),{results:G,isSearching:D,error:k,hasSearched:m,search:F,reset:b}=bMe(),{results:U,isSearching:M,error:J,hasSearched:P,search:q,reset:W}=Bve(),{details:Z,isLoading:AA,fetchDetails:oA,reset:BA}=wMe(),[eA,sA]=iA.useState(null),[cA,fA]=iA.useState(!1),[kA,vA]=iA.useState("pcb"),[LA,RA]=iA.useState(null),[CA,SA]=iA.useState(!1);iA.useEffect(()=>{RA(null)},[C]);const DA=iA.useCallback(()=>{f(),b(),W(),Q(null)},[b,W,f]);iA.useEffect(()=>{e||(DA(),B(""),fA(!1),sA(null),RA(null))},[e,DA]),iA.useEffect(()=>{B(""),Q(null),a==="tscircuit.com"?f():a==="jlcpcb"?b():a==="kicad"&&W()},[a,b,W,f]);const jA=HA=>{Q(HA),sA(HA),vA("pcb"),fA(!0),BA();const xA=HA.package.owner_github_username,KA=HA.package.unscoped_name;if(xA&&KA){const PA=KA.split("/").pop()??KA;oA(xA,PA)}},rt=async()=>{c.trim()&&(Q(null),a==="tscircuit.com"?await d(c):a==="jlcpcb"?await F(c):a==="kicad"&&await q(c))},ct=async HA=>{try{if(RA(null),SA(!0),HA.source==="kicad"){if(!i)throw new Error("KiCad handler not provided");await i({result:HA,footprint:HA.footprint.qualifiedName})}else if(HA.source==="jlcpcb"){if(!n)throw new Error("JLCPCB handler not provided");const xA=await EMe(HA.component.partNumber,{headers:t,apiBase:s});await n({result:HA,tsx:xA})}else if(HA.source==="tscircuit.com"){if(!o)throw new Error("tscircuit package handler not provided");const xA=HA.package.owner_github_username,KA=HA.package.unscoped_name;if(!xA||!KA)throw new Error("Missing package metadata");const PA=KA.split("/").pop()??KA,tt=`@tsci/${xA}.${PA}`;await o({result:HA,fullPackageName:tt})}return!0}catch(xA){return console.error("Failed to import component",xA),RA(xA instanceof Error?xA.message:"Failed to import component"),!1}finally{SA(!1)}};let pA=[],gt=!1,qA=null,TA=!1;a==="tscircuit.com"?(pA=E,gt=l,qA=h,TA=u):a==="jlcpcb"?(pA=G,gt=D,qA=k,TA=m):a==="kicad"&&(pA=U,gt=M,qA=J,TA=P);const XA=async()=>{if(!C)return;await ct(C)&&(A(),DA(),B(""))},FA=HA=>{HA||A()},wA=HA=>{fA(HA),HA||sA(null)};return X.jsxs(sL,{open:e,onOpenChange:FA,children:[X.jsxs(MN,{style:{width:"calc(100vw - 2rem)"},className:"rf-rounded-sm rf-max-h-[90vh] rf-overflow-y-auto rf-flex rf-flex-col",children:[X.jsxs(vN,{children:[X.jsx(UN,{className:"rf-text-lg sm:rf-text-xl",children:"Import Component"}),X.jsx(gL,{className:"rf-text-sm",children:g?"Search for components from available sources.":"Import options are disabled because no handlers were provided."})]}),g?X.jsxs(t9,{value:a,onValueChange:HA=>I(HA),children:[X.jsx(PY,{className:"rf-flex rf-w-full rf-gap-2",children:r.map(HA=>X.jsx(_w,{value:HA,className:"rf-flex-1 rf-text-xs sm:rf-text-sm",children:JlA[HA].label},HA))}),X.jsx(hMe,{query:c,placeholder:JlA[a].placeholder,isSearching:gt,onQueryChange:B,onSubmit:rt}),X.jsx("div",{className:"no-scrollbar rf-mt-4 rf-flex-1 rf-min-h-[200px] !rf-max-h-[40vh] !rf-overflow-y-auto rf-border rf-rounded-md",children:gt?X.jsxs("div",{className:"rf-p-8 rf-text-center rf-text-zinc-500",children:[X.jsx(Ob,{className:"rf-h-8 rf-w-8 rf-animate-spin rf-mx-auto rf-mb-2"}),X.jsx("p",{children:"Searching..."})]}):pA.length>0?X.jsx(fMe,{results:pA,selected:C,onSelect:Q,onShowDetails:a==="tscircuit.com"?jA:void 0}):X.jsx("div",{className:"rf-p-8 rf-text-center rf-text-zinc-500",children:qA?`Error: ${qA}`:TA?JlA[a].emptyMessage:"Enter a search term to find components"})})]}):null,LA?X.jsx("div",{className:"rf-text-sm rf-text-red-600 rf-mt-2",children:LA}):null,X.jsxs(rL,{className:"rf-flex rf-flex-col sm:rf-flex-row rf-gap-2",children:[X.jsx(Ic,{variant:"outline",onClick:A,className:"rf-order-2 sm:rf-order-1",children:"Cancel"}),X.jsx(Ic,{onClick:XA,disabled:!C||CA,className:"rf-order-1 sm:rf-order-2",children:CA?X.jsx(Ob,{className:"rf-h-4 rf-w-4 rf-animate-spin"}):"Import"})]})]}),X.jsx(yMe,{packageResult:eA,isOpen:cA,onOpenChange:wA,isLoading:AA,details:Z,previewTab:kA,onPreviewTabChange:HA=>vA(HA),isSubmitting:CA,onImport:()=>{eA&&ct(eA).then(HA=>{HA&&(fA(!1),A(),DA(),B(""))})}})]})},lve=e=>{const A=e.match(/export const (\w+) =/);if(!A)throw new Error("Could not determine component name from TSX contents");return A[1]},zet=e=>{const A=DD(s=>s.pushEvent),t=DD(s=>s.upsertFile),i=async({result:s,fullPackageName:r})=>{const a=s.package.unscoped_name??s.package.name;await xs.promise(A({event_type:"INSTALL_PACKAGE",full_package_name:r}),{loading:`Requesting install for "${a}"`,success:`Install requested for "${a}"`,error:I=>`Failed to request install: ${I instanceof Error?I.message:String(I)}`})},o=async({footprint:s})=>{await xs.promise(navigator.clipboard.writeText(s),{loading:`Copying "${s}"`,success:`Copied "${s}" to clipboard`,error:r=>`Failed to copy footprint: ${r instanceof Error?r.message:String(r)}`})},n=async({result:s,tsx:r})=>{const a=`imports/${lve(r)}.tsx`;await xs.promise(t(a,r),{loading:`Importing ${s.component.partNumber}`,success:`Imported to "${a}"`,error:I=>`Failed to import component: ${I instanceof Error?I.message:String(I)}`})};return X.jsx(Qve,{...e,onTscircuitPackageSelected:i,onKicadStringSelected:o,onJlcpcbComponentTsxLoaded:n})};zet.displayName="ImportComponentDialogForCli";var $lA={exports:{}},Xet;function Eve(){return Xet||(Xet=1,(function(e,A){var t={env:{},version:""};/*!
|
|
5826
|
+
For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return iA.useEffect(()=>{document.getElementById(e.current?.getAttribute("aria-describedby"))||console.warn(A)},[A,e]),null},eMe=ret,iMe=get,det=aet,pet=Iet,fet=Eet,yet=uet,wet=Bet,Det=Qet;const met=eMe,oMe=iMe,bet=iA.forwardRef(({className:e,...A},t)=>X.jsx(det,{className:Un("rf-fixed rf-inset-0 rf-z-50 rf-bg-black/80 data-[state=open]:rf-animate-in data-[state=closed]:rf-animate-out data-[state=closed]:rf-fade-out-0 data-[state=open]:rf-fade-in-0",e),...A,ref:t}));bet.displayName=det.displayName;const _lA=iA.forwardRef(({className:e,...A},t)=>X.jsxs(oMe,{children:[X.jsx(bet,{}),X.jsx(pet,{ref:t,className:Un("rf-fixed rf-left-[50%] rf-top-[50%] rf-z-50 rf-grid rf-w-full rf-max-w-lg rf-translate-x-[-50%] rf-translate-y-[-50%] rf-gap-4 rf-border rf-border-zinc-200 rf-bg-white rf-p-6 rf-shadow-lg rf-duration-200 data-[state=open]:rf-animate-in data-[state=closed]:rf-animate-out data-[state=closed]:rf-fade-out-0 data-[state=open]:rf-fade-in-0 data-[state=closed]:rf-zoom-out-95 data-[state=open]:rf-zoom-in-95 data-[state=closed]:rf-slide-out-to-left-1/2 data-[state=closed]:rf-slide-out-to-top-[48%] data-[state=open]:rf-slide-in-from-left-1/2 data-[state=open]:rf-slide-in-from-top-[48%] sm:rf-rounded-lg dark:rf-border-zinc-800 dark:rf-bg-zinc-950",e),...A})]}));_lA.displayName=pet.displayName;const RlA=({className:e,...A})=>X.jsx("div",{className:Un("rf-flex rf-flex-col rf-space-y-2 rf-text-center sm:rf-text-left",e),...A});RlA.displayName="AlertDialogHeader";const NlA=({className:e,...A})=>X.jsx("div",{className:Un("rf-flex rf-flex-col-reverse sm:rf-flex-row sm:rf-justify-end sm:rf-space-x-2",e),...A});NlA.displayName="AlertDialogFooter";const MlA=iA.forwardRef(({className:e,...A},t)=>X.jsx(wet,{ref:t,className:Un("rf-text-lg rf-font-semibold",e),...A}));MlA.displayName=wet.displayName;const vlA=iA.forwardRef(({className:e,...A},t)=>X.jsx(Det,{ref:t,className:Un("rf-text-sm rf-text-zinc-500 dark:rf-text-zinc-400",e),...A}));vlA.displayName=Det.displayName;const nMe=iA.forwardRef(({className:e,...A},t)=>X.jsx(fet,{ref:t,className:Un(rN(),e),...A}));nMe.displayName=fet.displayName;const UlA=iA.forwardRef(({className:e,...A},t)=>X.jsx(yet,{ref:t,className:Un(rN({variant:"outline"}),"rf-mt-2 sm:rf-mt-0",e),...A}));UlA.displayName=yet.displayName;function sMe(e){const A=iA.useRef({value:e,previous:e});return iA.useMemo(()=>(A.current.value!==e&&(A.current.previous=A.current.value,A.current.value=e),A.current.previous),[e])}var c5="Checkbox",[rMe]=VD(c5),[gMe,LlA]=rMe(c5);function aMe(e){const{__scopeCheckbox:A,checked:t,children:i,defaultChecked:o,disabled:n,form:s,name:r,onCheckedChange:g,required:a,value:I="on",internal_do_not_use_render:c}=e,[B,C]=lF({prop:t,defaultProp:o??!1,onChange:g,caller:c5}),[Q,E]=iA.useState(null),[l,h]=iA.useState(null),u=iA.useRef(!1),d=Q?!!s||!!Q.closest("form"):!0,f={checked:B,disabled:n,setChecked:C,control:Q,setControl:E,name:r,form:s,value:I,hasConsumerStoppedPropagationRef:u,required:a,defaultChecked:gk(o)?!1:o,isFormControl:d,bubbleInput:l,setBubbleInput:h};return X.jsx(gMe,{scope:A,...f,children:IMe(c)?c(f):i})}var ket="CheckboxTrigger",Get=iA.forwardRef(({__scopeCheckbox:e,onKeyDown:A,onClick:t,...i},o)=>{const{control:n,value:s,disabled:r,checked:g,required:a,setControl:I,setChecked:c,hasConsumerStoppedPropagationRef:B,isFormControl:C,bubbleInput:Q}=LlA(ket,e),E=kC(o,I),l=iA.useRef(g);return iA.useEffect(()=>{const h=n?.form;if(h){const u=()=>c(l.current);return h.addEventListener("reset",u),()=>h.removeEventListener("reset",u)}},[n,c]),X.jsx(eI.button,{type:"button",role:"checkbox","aria-checked":gk(g)?"mixed":g,"aria-required":a,"data-state":Net(g),"data-disabled":r?"":void 0,disabled:r,value:s,...i,ref:E,onKeyDown:$n(A,h=>{h.key==="Enter"&&h.preventDefault()}),onClick:$n(t,h=>{c(u=>gk(u)?!0:!u),Q&&C&&(B.current=h.isPropagationStopped(),B.current||h.stopPropagation())})})});Get.displayName=ket;var HlA=iA.forwardRef((e,A)=>{const{__scopeCheckbox:t,name:i,checked:o,defaultChecked:n,required:s,disabled:r,value:g,onCheckedChange:a,form:I,...c}=e;return X.jsx(aMe,{__scopeCheckbox:t,checked:o,defaultChecked:n,disabled:r,required:s,onCheckedChange:a,name:i,form:I,value:g,internal_do_not_use_render:({isFormControl:B})=>X.jsxs(X.Fragment,{children:[X.jsx(Get,{...c,ref:A,__scopeCheckbox:t}),B&&X.jsx(Ret,{__scopeCheckbox:t})]})})});HlA.displayName=c5;var xet="CheckboxIndicator",Fet=iA.forwardRef((e,A)=>{const{__scopeCheckbox:t,forceMount:i,...o}=e,n=LlA(xet,t);return X.jsx(bw,{present:i||gk(n.checked)||n.checked===!0,children:X.jsx(eI.span,{"data-state":Net(n.checked),"data-disabled":n.disabled?"":void 0,...o,ref:A,style:{pointerEvents:"none",...e.style}})})});Fet.displayName=xet;var _et="CheckboxBubbleInput",Ret=iA.forwardRef(({__scopeCheckbox:e,...A},t)=>{const{control:i,hasConsumerStoppedPropagationRef:o,checked:n,defaultChecked:s,required:r,disabled:g,name:a,value:I,form:c,bubbleInput:B,setBubbleInput:C}=LlA(_et,e),Q=kC(t,C),E=sMe(n),l=d9A(i);iA.useEffect(()=>{const u=B;if(!u)return;const d=window.HTMLInputElement.prototype,G=Object.getOwnPropertyDescriptor(d,"checked").set,D=!o.current;if(E!==n&&G){const k=new Event("click",{bubbles:D});u.indeterminate=gk(n),G.call(u,gk(n)?!1:n),u.dispatchEvent(k)}},[B,E,n,o]);const h=iA.useRef(gk(n)?!1:n);return X.jsx(eI.input,{type:"checkbox","aria-hidden":!0,defaultChecked:s??h.current,required:r,disabled:g,name:a,value:I,form:c,...A,tabIndex:-1,ref:Q,style:{...A.style,...l,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});Ret.displayName=_et;function IMe(e){return typeof e=="function"}function gk(e){return e==="indeterminate"}function Net(e){return gk(e)?"indeterminate":e?"checked":"unchecked"}const YlA=iA.forwardRef(({className:e,...A},t)=>X.jsx(HlA,{ref:t,className:Un("rf-peer rf-h-4 rf-w-4 rf-shrink-0 rf-rounded-sm rf-border rf-border-zinc-200 rf-border-zinc-900 rf-shadow focus-visible:rf-outline-none focus-visible:rf-ring-1 focus-visible:rf-ring-zinc-950 disabled:rf-cursor-not-allowed disabled:rf-opacity-50 data-[state=checked]:rf-bg-zinc-900 data-[state=checked]:rf-text-zinc-50 dark:rf-border-zinc-800 dark:rf-border-zinc-50 dark:focus-visible:rf-ring-zinc-300 dark:data-[state=checked]:rf-bg-zinc-50 dark:data-[state=checked]:rf-text-zinc-900",e),...A,children:X.jsx(Fet,{className:Un("rf-flex rf-items-center rf-justify-center rf-text-current"),children:X.jsx(YBA,{className:"rf-h-4 rf-w-4"})})}));YlA.displayName=HlA.displayName;const sL=iet,cMe=oet,Met=iA.forwardRef(({className:e,...A},t)=>X.jsx(klA,{className:Un("rf-fixed rf-inset-0 rf-z-50 rf-bg-black/80 data-[state=open]:rf-animate-in data-[state=closed]:rf-animate-out data-[state=closed]:rf-fade-out-0 data-[state=open]:rf-fade-in-0",e),...A,ref:t}));Met.displayName=klA.displayName;const MN=iA.forwardRef(({className:e,children:A,showOverlay:t=!0,...i},o)=>X.jsxs(cMe,{children:[X.jsx(Met,{className:Un(t?"":"rf-hidden")}),X.jsx(GlA,{ref:o,className:Un("rf-fixed rf-left-[50%] rf-top-[50%] rf-z-50 rf-grid rf-w-full rf-max-w-lg rf-translate-x-[-50%] rf-translate-y-[-50%] rf-gap-4 rf-border rf-border-zinc-200 rf-bg-white rf-p-6 rf-shadow-lg rf-duration-200 data-[state=open]:rf-animate-in data-[state=closed]:rf-animate-out data-[state=closed]:rf-fade-out-0 data-[state=open]:rf-fade-in-0 data-[state=closed]:rf-zoom-out-95 data-[state=open]:rf-zoom-in-95 data-[state=closed]:rf-slide-out-to-left-1/2 data-[state=closed]:rf-slide-out-to-top-[48%] data-[state=open]:rf-slide-in-from-left-1/2 data-[state=open]:rf-slide-in-from-top-[48%] sm:rf-rounded-lg dark:rf-border-zinc-800 dark:rf-bg-zinc-950",e),...i,children:A})]}));MN.displayName=GlA.displayName;const vN=({className:e,...A})=>X.jsx("div",{className:Un("rf-flex rf-flex-col rf-space-y-2 rf-text-center sm:rf-text-left",e),...A});vN.displayName="DialogHeader";const rL=({className:e,...A})=>X.jsx("div",{className:Un("rf-flex rf-flex-col-reverse sm:rf-flex-row sm:rf-justify-end sm:rf-space-x-2",e),...A});rL.displayName="DialogFooter";const UN=iA.forwardRef(({className:e,...A},t)=>X.jsx(xlA,{ref:t,className:Un("rf-text-lg rf-font-semibold",e),...A}));UN.displayName=xlA.displayName;const gL=iA.forwardRef(({className:e,...A},t)=>X.jsx(FlA,{ref:t,className:Un("rf-text-sm rf-text-zinc-500 dark:rf-text-zinc-400",e),...A}));gL.displayName=FlA.displayName;const JlA={"tscircuit.com":{label:"tscircuit.com",placeholder:"Search tscircuit packages...",emptyMessage:"No packages found"},jlcpcb:{label:"JLCPCB Parts",placeholder:"Search JLCPCB parts (e.g. C14663)...",emptyMessage:"No parts found"},kicad:{label:"KiCad Footprints",placeholder:"Search KiCad footprints...",emptyMessage:"No footprints found"}},BMe="https://cdn.jsdelivr.net/npm/easyeda@latest/dist/browser/index.js";let KlA=null;const CMe=async()=>(KlA||(KlA=import(BMe)),KlA),QMe=async(e,A=10)=>{const t=encodeURIComponent(e),i=await fetch(`https://jlcsearch.tscircuit.com/api/search?limit=${A}&q=${t}`);if(!i.ok)throw new Error(`JLCPCB API error: ${i.status}`);return(await i.json()).components??[]},lMe=e=>({lcscId:e.lcsc,manufacturer:e.mfr,description:e.description,partNumber:`C${e.lcsc}`,package:e.package,price:e.price,stock:e.stock}),EMe=async(e,A)=>{const{fetchEasyEDAComponent:t,convertRawEasyToTsx:i}=await CMe(),o=await t(e,{fetch:(n,s)=>fetch(`${A?.apiBase??zm}/proxy`,{...s,headers:{...s?.headers,"X-Target-Url":n.toString(),"X-Sender-Origin":s?.headers?.origin??"","X-Sender-Host":s?.headers?.host??"https://easyeda.com","X-Sender-Referer":s?.headers?.referer??"","X-Sender-User-Agent":s?.headers?.userAgent??"","X-Sender-Cookie":s?.headers?.cookie??"",authority:s?.headers?.authority??"","content-type":s?.headers?.["content-type"]??"",...A?.headers}})});return i(o)},hMe=({query:e,placeholder:A,isSearching:t,onQueryChange:i,onSubmit:o})=>{const n=iA.useCallback(s=>{s.key==="Enter"&&(s.preventDefault(),o())},[o]);return X.jsxs("div",{className:"rf-flex rf-items-center rf-gap-2 rf-mt-4",children:[X.jsxs("div",{className:"rf-relative rf-flex-grow",children:[X.jsx(vVA,{className:"rf-absolute rf-left-2 rf-top-2.5 rf-h-4 rf-w-4 rf-text-muted-foreground"}),X.jsx(EQA,{placeholder:A,className:"rf-pl-8",spellCheck:!1,autoComplete:"off",value:e,onChange:s=>i(s.target.value),onKeyDown:n})]}),X.jsx(Ic,{onClick:o,disabled:t||e.trim().length<1,className:"sm:rf-px-4 rf-px-3",children:t?X.jsx(Ob,{className:"rf-h-4 rf-w-4 rf-animate-spin"}):X.jsxs(X.Fragment,{children:[X.jsx(vVA,{className:"rf-h-4 rf-w-4 sm:rf-hidden"}),X.jsx("span",{className:"rf-hidden sm:rf-inline",children:"Search"})]})})]})},vet=e=>{switch(e.source){case"tscircuit.com":{const A=e.package;return`tscircuit-${A.package_id??`${A.owner_github_username??"unknown"}-${A.unscoped_name??A.name??"package"}`}`}case"jlcpcb":return`jlc-${e.component.lcscId}`;case"kicad":return`kicad-${e.footprint.path}`;default:return"unknown"}},uMe=e=>{switch(e.source){case"tscircuit.com":return e.package.unscoped_name;case"jlcpcb":return e.component.manufacturer;case"kicad":return e.footprint.qualifiedName}},dMe=e=>{switch(e.source){case"tscircuit.com":return e.package.description||(e.package.owner_github_username?`Component by ${e.package.owner_github_username}`:void 0);case"jlcpcb":return e.component.description;case"kicad":return e.footprint.description}},pMe=e=>{switch(e.source){case"tscircuit.com":return e.package.name;case"jlcpcb":return e.component.partNumber;case"kicad":return}},fMe=({results:e,selected:A,onSelect:t,onShowDetails:i})=>{const o=A?vet(A):null;return X.jsx("div",{className:"rf-divide-y rf-w-full rf-overflow-hidden",children:e.map(n=>{const s=vet(n),r=o===s,g=uMe(n),a=dMe(n),I=pMe(n),c=n.source==="jlcpcb"?n.component.stock:null;return X.jsxs("div",{className:`rf-p-3 rf-flex rf-flex-col sm:rf-grid sm:rf-grid-cols-[minmax(0,1fr)_auto] rf-items-start sm:rf-items-center rf-cursor-pointer hover:rf-bg-zinc-100 rf-gap-2 rf-overflow-hidden ${r?"rf-bg-zinc-100":""}`,onClick:()=>t(n),children:[X.jsxs("div",{className:"rf-min-w-0 rf-overflow-hidden rf-w-full",children:[X.jsxs("div",{className:"rf-flex rf-items-start rf-gap-2 rf-min-w-0",children:[X.jsx("div",{className:"rf-font-medium rf-text-sm rf-truncate rf-flex-1 rf-min-w-0",children:g}),n.source==="jlcpcb"&&c!=null?X.jsxs("div",{className:"rf-text-xs rf-text-zinc-500 rf-font-medium rf-whitespace-nowrap rf-flex-shrink-0 sm:rf-hidden",children:[c.toLocaleString()," in stock"]}):null]}),X.jsxs("div",{className:"rf-text-xs rf-text-zinc-500 rf-truncate rf-w-full",children:[I?X.jsx("span",{className:"rf-mr-2",children:I}):null,a]})]}),n.source==="tscircuit.com"&&i?X.jsx("div",{className:"rf-flex-shrink-0 rf-w-full sm:rf-w-auto",children:X.jsx(Ic,{variant:"outline",size:"sm",className:"rf-text-xs rf-w-full sm:rf-w-auto",onClick:B=>{B.stopPropagation(),i(n)},children:"See Details"})}):n.source==="jlcpcb"&&c!=null?X.jsxs("div",{className:"rf-hidden sm:rf-block rf-text-xs rf-text-zinc-500 rf-font-medium rf-whitespace-nowrap rf-flex-shrink-0",children:[c.toLocaleString()," in stock"]}):null]},s)})})},yMe=({packageResult:e,isOpen:A,onOpenChange:t,isLoading:i,details:o,previewTab:n,onPreviewTabChange:s,isSubmitting:r,onImport:g})=>{const a=e?.package??null,I=a?.latest_pcb_preview_image_url,c=a?.latest_sch_preview_image_url,B=a?.latest_cad_preview_image_url,C=a?.unscoped_name?.split("/").pop()??a?.unscoped_name,Q=a?.owner_github_username??void 0,E=Q?`https://tscircuit.com/${Q}`:void 0,l=Q&&C?`https://tscircuit.com/${Q}/${C}`:void 0;return X.jsx(sL,{open:A,onOpenChange:t,children:X.jsxs(MN,{showOverlay:!1,style:{width:"calc(100vw - 2rem)"},className:"rf-max-w-5xl no-scrollbar !rf-overflow-y-auto rf-max-h-[90vh] rf-overflow-hidden rf-flex rf-flex-col rf-rounded-sm",children:[X.jsx(vN,{className:"rf-pb-4 rf-border-b",children:X.jsx("div",{className:"rf-flex rf-items-start rf-justify-between rf-gap-4",children:X.jsxs("div",{className:"rf-flex-1 rf-min-w-0",children:[X.jsx(UN,{className:"rf-text-xl rf-font-semibold rf-truncate",children:C}),X.jsx(gL,{children:a?.description})]})})}),X.jsxs("div",{className:"rf-flex-1 rf-overflow-y-auto rf-py-4 rf-space-y-6",children:[Q?X.jsxs("div",{children:[X.jsx("span",{className:"rf-text-xs rf-font-medium rf-text-gray-500 rf-uppercase rf-tracking-wide",children:"Created by"}),X.jsx("div",{className:"rf-mt-1 rf-text-sm rf-font-medium",children:E?X.jsx("a",{href:E,target:"_blank",rel:"noopener noreferrer",className:"rf-text-black hover:rf-underline",children:Q}):Q})]}):null,(B||I||c)&&X.jsx(X.Fragment,{children:X.jsxs("div",{children:[X.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-mb-4",children:"Preview"}),X.jsxs(t9,{value:n,onValueChange:h=>s(h),children:[X.jsxs(PY,{className:"rf-inline-flex rf-h-9 rf-items-center rf-justify-center rf-rounded-lg rf-bg-zinc-100 rf-p-1 rf-text-zinc-500 dark:rf-bg-zinc-800 dark:rf-text-zinc-400",children:[I&&X.jsx(_w,{value:"pcb",children:"PCB"}),c&&X.jsx(_w,{value:"schematic",children:"Schematic"}),B&&X.jsx(_w,{value:"3d",children:"3D"})]}),X.jsxs("div",{className:"rf-mt-4",children:[X.jsx(dp,{value:"pcb",className:"rf-border rf-rounded-lg rf-overflow-hidden rf-bg-gray-50",children:I?X.jsx("img",{src:I,alt:`${C??"package"} PCB preview`,className:"rf-w-full rf-h-full rf-object-contain rf-bg-white rf-p-4"}):null}),X.jsx(dp,{value:"schematic",className:"rf-border rf-rounded-lg rf-overflow-hidden rf-bg-gray-50",children:c?X.jsx("img",{src:c,alt:`${C??"package"} schematic preview`,className:"rf-w-full rf-h-full rf-object-contain rf-bg-white rf-p-4"}):null}),X.jsx(dp,{value:"3d",className:"rf-border rf-rounded-lg rf-overflow-hidden rf-bg-gray-50",children:B?X.jsx("img",{src:B,alt:`${C??"package"} 3D preview`,className:"rf-w-full rf-h-full rf-object-contain rf-bg-white rf-p-4"}):null})]})]})]})}),o?.ai_description?X.jsxs("section",{children:[X.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-mb-3",children:"AI Description"}),X.jsx("div",{className:"rf-bg-gray-50 rf-border rf-border-gray-200 rf-rounded-lg rf-p-4",children:X.jsx("p",{className:"rf-text-sm rf-text-gray-700 rf-leading-relaxed",children:o.ai_description})})]}):null,o?.ai_usage_instructions?X.jsxs("section",{children:[X.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-mb-3",children:"Usage Instructions"}),X.jsx("div",{className:"rf-bg-gray-50 rf-border rf-border-gray-200 rf-rounded-lg rf-p-4",children:X.jsx("p",{className:"rf-text-sm rf-text-gray-700 rf-leading-relaxed rf-whitespace-pre-wrap",children:o.ai_usage_instructions})})]}):null,i?X.jsxs("div",{className:"rf-flex rf-justify-center rf-items-center rf-gap-2 rf-text-gray-500",children:[X.jsx(Ob,{className:"rf-h-4 rf-w-4 rf-animate-spin"}),X.jsx("span",{className:"rf-text-sm",children:"Loading package details..."})]}):null]}),X.jsxs(rL,{className:"rf-pt-4 rf-border-t rf-flex rf-flex-col sm:rf-flex-row rf-justify-between rf-gap-2",children:[X.jsx("div",{className:"rf-flex-1",children:l?X.jsxs(Ic,{variant:"outline",size:"sm",className:"rf-gap-2 rf-w-full sm:rf-w-auto",onClick:()=>window.open(l,"_blank"),children:[X.jsx(Dpe,{className:"rf-h-4 rf-w-4"}),"View on tscircuit.com"]}):null}),X.jsxs("div",{className:"rf-flex rf-flex-col sm:rf-flex-row rf-gap-2",children:[X.jsx(Ic,{variant:"outline",onClick:()=>t(!1),className:"rf-order-2 sm:rf-order-1",children:"Close"}),X.jsx(Ic,{onClick:g,disabled:r,className:"rf-bg-blue-600 hover:rf-bg-blue-700",children:r?X.jsx(Ob,{className:"rf-h-4 rf-w-4 rf-animate-spin"}):"Import Component"})]})]})]})})},wMe=()=>{const[e,A]=iA.useState(null),[t,i]=iA.useState(!1),o=iA.useCallback(async(s,r)=>{i(!0);try{const g=await fetch(`https://api.tscircuit.com/packages/get?name=${encodeURIComponent(`${s}/${r}`)}`);if(!g.ok)throw new Error(`Failed to load package details: ${g.status}`);const a=await g.json();A(a.package??null)}catch(g){console.error("Failed to fetch package details",g),A(null)}finally{i(!1)}},[]),n=iA.useCallback(()=>{A(null),i(!1)},[]);return{details:e,isLoading:t,fetchDetails:o,reset:n}},DMe=async e=>{const A=await fetch("https://registry-api.tscircuit.com/packages/search",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:e})});if(!A.ok)throw new Error(`tscircuit registry error: ${A.status}`);return(await A.json()).packages??[]},mMe=()=>{const[e,A]=iA.useState([]),[t,i]=iA.useState(!1),[o,n]=iA.useState(null),[s,r]=iA.useState(!1),g=iA.useCallback(async I=>{const c=I.trim();if(!c)return[];i(!0),n(null);try{const C=(await DMe(c)).map(Q=>({source:"tscircuit.com",package:Q}));return A(C),C}catch(B){return console.error("Error searching tscircuit packages",B),A([]),n(B instanceof Error?B.message:"Failed to search tscircuit packages"),[]}finally{i(!1),r(!0)}},[]),a=iA.useCallback(()=>{A([]),i(!1),n(null),r(!1)},[]);return{results:e,isSearching:t,error:o,hasSearched:s,search:g,reset:a}},SMe=e=>{const A=e.trim();return/^C\d+/i.test(A)?A.replace(/^C/i,""):A},bMe=()=>{const[e,A]=iA.useState([]),[t,i]=iA.useState(!1),[o,n]=iA.useState(null),[s,r]=iA.useState(!1),g=iA.useCallback(async I=>{const c=SMe(I);if(!c)return[];i(!0),n(null);try{const C=(await QMe(c,10)).map(Q=>({source:"jlcpcb",component:lMe(Q)}));return A(C),C}catch(B){return console.error("Error searching JLCPCB components",B),A([]),n(B instanceof Error?B.message:"Failed to search JLCPCB components"),[]}finally{i(!1),r(!0)}},[]),a=iA.useCallback(()=>{A([]),i(!1),n(null),r(!1)},[]);return{results:e,isSearching:t,error:o,hasSearched:s,search:g,reset:a}};function $m(e){return Array.isArray?Array.isArray(e):Het(e)==="[object Array]"}function kMe(e){if(typeof e=="string")return e;let A=e+"";return A=="0"&&1/e==-1/0?"-0":A}function GMe(e){return e==null?"":kMe(e)}function mD(e){return typeof e=="string"}function Uet(e){return typeof e=="number"}function xMe(e){return e===!0||e===!1||FMe(e)&&Het(e)=="[object Boolean]"}function Let(e){return typeof e=="object"}function FMe(e){return Let(e)&&e!==null}function qf(e){return e!=null}function TlA(e){return!e.trim().length}function Het(e){return e==null?e===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}const _Me="Incorrect 'index' type",RMe=e=>`Invalid value for key ${e}`,NMe=e=>`Pattern length exceeds max of ${e}.`,MMe=e=>`Missing ${e} property in key`,vMe=e=>`Property 'weight' in key '${e}' must be a positive integer`,Yet=Object.prototype.hasOwnProperty;class UMe{constructor(A){this._keys=[],this._keyMap={};let t=0;A.forEach(i=>{let o=Jet(i);this._keys.push(o),this._keyMap[o.id]=o,t+=o.weight}),this._keys.forEach(i=>{i.weight/=t})}get(A){return this._keyMap[A]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}}function Jet(e){let A=null,t=null,i=null,o=1,n=null;if(mD(e)||$m(e))i=e,A=Ket(e),t=qlA(e);else{if(!Yet.call(e,"name"))throw new Error(MMe("name"));const s=e.name;if(i=s,Yet.call(e,"weight")&&(o=e.weight,o<=0))throw new Error(vMe(s));A=Ket(s),t=qlA(s),n=e.getFn}return{path:A,id:t,weight:o,src:i,getFn:n}}function Ket(e){return $m(e)?e:e.split(".")}function qlA(e){return $m(e)?e.join("."):e}function LMe(e,A){let t=[],i=!1;const o=(n,s,r)=>{if(qf(n))if(!s[r])t.push(n);else{let g=s[r];const a=n[g];if(!qf(a))return;if(r===s.length-1&&(mD(a)||Uet(a)||xMe(a)))t.push(GMe(a));else if($m(a)){i=!0;for(let I=0,c=a.length;I<c;I+=1)o(a[I],s,r+1)}else s.length&&o(a,s,r+1)}};return o(e,mD(A)?A.split("."):A,0),i?t:t[0]}var Fn={...{isCaseSensitive:!1,ignoreDiacritics:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:(e,A)=>e.score===A.score?e.idx<A.idx?-1:1:e.score<A.score?-1:1},...{includeMatches:!1,findAllMatches:!1,minMatchCharLength:1},...{location:0,threshold:.6,distance:100},...{useExtendedSearch:!1,getFn:LMe,ignoreLocation:!1,ignoreFieldNorm:!1,fieldNormWeight:1}};const HMe=/[^ ]+/g;function YMe(e=1,A=3){const t=new Map,i=Math.pow(10,A);return{get(o){const n=o.match(HMe).length;if(t.has(n))return t.get(n);const s=1/Math.pow(n,.5*e),r=parseFloat(Math.round(s*i)/i);return t.set(n,r),r},clear(){t.clear()}}}class PlA{constructor({getFn:A=Fn.getFn,fieldNormWeight:t=Fn.fieldNormWeight}={}){this.norm=YMe(t,3),this.getFn=A,this.isCreated=!1,this.setIndexRecords()}setSources(A=[]){this.docs=A}setIndexRecords(A=[]){this.records=A}setKeys(A=[]){this.keys=A,this._keysMap={},A.forEach((t,i)=>{this._keysMap[t.id]=i})}create(){this.isCreated||!this.docs.length||(this.isCreated=!0,mD(this.docs[0])?this.docs.forEach((A,t)=>{this._addString(A,t)}):this.docs.forEach((A,t)=>{this._addObject(A,t)}),this.norm.clear())}add(A){const t=this.size();mD(A)?this._addString(A,t):this._addObject(A,t)}removeAt(A){this.records.splice(A,1);for(let t=A,i=this.size();t<i;t+=1)this.records[t].i-=1}getValueForItemAtKeyId(A,t){return A[this._keysMap[t]]}size(){return this.records.length}_addString(A,t){if(!qf(A)||TlA(A))return;let i={v:A,i:t,n:this.norm.get(A)};this.records.push(i)}_addObject(A,t){let i={i:t,$:{}};this.keys.forEach((o,n)=>{let s=o.getFn?o.getFn(A):this.getFn(A,o.path);if(qf(s)){if($m(s)){let r=[];const g=[{nestedArrIndex:-1,value:s}];for(;g.length;){const{nestedArrIndex:a,value:I}=g.pop();if(qf(I))if(mD(I)&&!TlA(I)){let c={v:I,i:a,n:this.norm.get(I)};r.push(c)}else $m(I)&&I.forEach((c,B)=>{g.push({nestedArrIndex:B,value:c})})}i.$[n]=r}else if(mD(s)&&!TlA(s)){let r={v:s,n:this.norm.get(s)};i.$[n]=r}}}),this.records.push(i)}toJSON(){return{keys:this.keys,records:this.records}}}function Tet(e,A,{getFn:t=Fn.getFn,fieldNormWeight:i=Fn.fieldNormWeight}={}){const o=new PlA({getFn:t,fieldNormWeight:i});return o.setKeys(e.map(Jet)),o.setSources(A),o.create(),o}function JMe(e,{getFn:A=Fn.getFn,fieldNormWeight:t=Fn.fieldNormWeight}={}){const{keys:i,records:o}=e,n=new PlA({getFn:A,fieldNormWeight:t});return n.setKeys(i),n.setIndexRecords(o),n}function B5(e,{errors:A=0,currentLocation:t=0,expectedLocation:i=0,distance:o=Fn.distance,ignoreLocation:n=Fn.ignoreLocation}={}){const s=A/e.length;if(n)return s;const r=Math.abs(i-t);return o?s+r/o:r?1:s}function KMe(e=[],A=Fn.minMatchCharLength){let t=[],i=-1,o=-1,n=0;for(let s=e.length;n<s;n+=1){let r=e[n];r&&i===-1?i=n:!r&&i!==-1&&(o=n-1,o-i+1>=A&&t.push([i,o]),i=-1)}return e[n-1]&&n-i>=A&&t.push([i,n-1]),t}const Dx=32;function TMe(e,A,t,{location:i=Fn.location,distance:o=Fn.distance,threshold:n=Fn.threshold,findAllMatches:s=Fn.findAllMatches,minMatchCharLength:r=Fn.minMatchCharLength,includeMatches:g=Fn.includeMatches,ignoreLocation:a=Fn.ignoreLocation}={}){if(A.length>Dx)throw new Error(NMe(Dx));const I=A.length,c=e.length,B=Math.max(0,Math.min(i,c));let C=n,Q=B;const E=r>1||g,l=E?Array(c):[];let h;for(;(h=e.indexOf(A,Q))>-1;){let k=B5(A,{currentLocation:h,expectedLocation:B,distance:o,ignoreLocation:a});if(C=Math.min(k,C),Q=h+I,E){let m=0;for(;m<I;)l[h+m]=1,m+=1}}Q=-1;let u=[],d=1,f=I+c;const G=1<<I-1;for(let k=0;k<I;k+=1){let m=0,F=f;for(;m<F;)B5(A,{errors:k,currentLocation:B+F,expectedLocation:B,distance:o,ignoreLocation:a})<=C?m=F:f=F,F=Math.floor((f-m)/2+m);f=F;let b=Math.max(1,B-F+1),U=s?c:Math.min(B+F,c)+I,M=Array(U+2);M[U+1]=(1<<k)-1;for(let P=U;P>=b;P-=1){let q=P-1,W=t[e.charAt(q)];if(E&&(l[q]=+!!W),M[P]=(M[P+1]<<1|1)&W,k&&(M[P]|=(u[P+1]|u[P])<<1|1|u[P+1]),M[P]&G&&(d=B5(A,{errors:k,currentLocation:q,expectedLocation:B,distance:o,ignoreLocation:a}),d<=C)){if(C=d,Q=q,Q<=B)break;b=Math.max(1,2*B-Q)}}if(B5(A,{errors:k+1,currentLocation:B,expectedLocation:B,distance:o,ignoreLocation:a})>C)break;u=M}const D={isMatch:Q>=0,score:Math.max(.001,d)};if(E){const k=KMe(l,r);k.length?g&&(D.indices=k):D.isMatch=!1}return D}function qMe(e){let A={};for(let t=0,i=e.length;t<i;t+=1){const o=e.charAt(t);A[o]=(A[o]||0)|1<<i-t-1}return A}const C5=String.prototype.normalize?(e=>e.normalize("NFD").replace(/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C04\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F]/g,"")):(e=>e);class qet{constructor(A,{location:t=Fn.location,threshold:i=Fn.threshold,distance:o=Fn.distance,includeMatches:n=Fn.includeMatches,findAllMatches:s=Fn.findAllMatches,minMatchCharLength:r=Fn.minMatchCharLength,isCaseSensitive:g=Fn.isCaseSensitive,ignoreDiacritics:a=Fn.ignoreDiacritics,ignoreLocation:I=Fn.ignoreLocation}={}){if(this.options={location:t,threshold:i,distance:o,includeMatches:n,findAllMatches:s,minMatchCharLength:r,isCaseSensitive:g,ignoreDiacritics:a,ignoreLocation:I},A=g?A:A.toLowerCase(),A=a?C5(A):A,this.pattern=A,this.chunks=[],!this.pattern.length)return;const c=(C,Q)=>{this.chunks.push({pattern:C,alphabet:qMe(C),startIndex:Q})},B=this.pattern.length;if(B>Dx){let C=0;const Q=B%Dx,E=B-Q;for(;C<E;)c(this.pattern.substr(C,Dx),C),C+=Dx;if(Q){const l=B-Dx;c(this.pattern.substr(l),l)}}else c(this.pattern,0)}searchIn(A){const{isCaseSensitive:t,ignoreDiacritics:i,includeMatches:o}=this.options;if(A=t?A:A.toLowerCase(),A=i?C5(A):A,this.pattern===A){let E={isMatch:!0,score:0};return o&&(E.indices=[[0,A.length-1]]),E}const{location:n,distance:s,threshold:r,findAllMatches:g,minMatchCharLength:a,ignoreLocation:I}=this.options;let c=[],B=0,C=!1;this.chunks.forEach(({pattern:E,alphabet:l,startIndex:h})=>{const{isMatch:u,score:d,indices:f}=TMe(A,E,l,{location:n+h,distance:s,threshold:r,findAllMatches:g,minMatchCharLength:a,includeMatches:o,ignoreLocation:I});u&&(C=!0),B+=d,u&&f&&(c=[...c,...f])});let Q={isMatch:C,score:C?B/this.chunks.length:1};return C&&o&&(Q.indices=c),Q}}class ak{constructor(A){this.pattern=A}static isMultiMatch(A){return Pet(A,this.multiRegex)}static isSingleMatch(A){return Pet(A,this.singleRegex)}search(){}}function Pet(e,A){const t=e.match(A);return t?t[1]:null}class PMe extends ak{constructor(A){super(A)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(A){const t=A===this.pattern;return{isMatch:t,score:t?0:1,indices:[0,this.pattern.length-1]}}}class OMe extends ak{constructor(A){super(A)}static get type(){return"inverse-exact"}static get multiRegex(){return/^!"(.*)"$/}static get singleRegex(){return/^!(.*)$/}search(A){const i=A.indexOf(this.pattern)===-1;return{isMatch:i,score:i?0:1,indices:[0,A.length-1]}}}class WMe extends ak{constructor(A){super(A)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(A){const t=A.startsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,this.pattern.length-1]}}}class ZMe extends ak{constructor(A){super(A)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(A){const t=!A.startsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,A.length-1]}}}class VMe extends ak{constructor(A){super(A)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(A){const t=A.endsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[A.length-this.pattern.length,A.length-1]}}}class jMe extends ak{constructor(A){super(A)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(A){const t=!A.endsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,A.length-1]}}}class Oet extends ak{constructor(A,{location:t=Fn.location,threshold:i=Fn.threshold,distance:o=Fn.distance,includeMatches:n=Fn.includeMatches,findAllMatches:s=Fn.findAllMatches,minMatchCharLength:r=Fn.minMatchCharLength,isCaseSensitive:g=Fn.isCaseSensitive,ignoreDiacritics:a=Fn.ignoreDiacritics,ignoreLocation:I=Fn.ignoreLocation}={}){super(A),this._bitapSearch=new qet(A,{location:t,threshold:i,distance:o,includeMatches:n,findAllMatches:s,minMatchCharLength:r,isCaseSensitive:g,ignoreDiacritics:a,ignoreLocation:I})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(A){return this._bitapSearch.searchIn(A)}}class Wet extends ak{constructor(A){super(A)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(A){let t=0,i;const o=[],n=this.pattern.length;for(;(i=A.indexOf(this.pattern,t))>-1;)t=i+n,o.push([i,t-1]);const s=!!o.length;return{isMatch:s,score:s?0:1,indices:o}}}const OlA=[PMe,Wet,WMe,ZMe,jMe,VMe,OMe,Oet],Zet=OlA.length,zMe=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/,XMe="|";function $Me(e,A={}){return e.split(XMe).map(t=>{let i=t.trim().split(zMe).filter(n=>n&&!!n.trim()),o=[];for(let n=0,s=i.length;n<s;n+=1){const r=i[n];let g=!1,a=-1;for(;!g&&++a<Zet;){const I=OlA[a];let c=I.isMultiMatch(r);c&&(o.push(new I(c,A)),g=!0)}if(!g)for(a=-1;++a<Zet;){const I=OlA[a];let c=I.isSingleMatch(r);if(c){o.push(new I(c,A));break}}}return o})}const Ave=new Set([Oet.type,Wet.type]);class tve{constructor(A,{isCaseSensitive:t=Fn.isCaseSensitive,ignoreDiacritics:i=Fn.ignoreDiacritics,includeMatches:o=Fn.includeMatches,minMatchCharLength:n=Fn.minMatchCharLength,ignoreLocation:s=Fn.ignoreLocation,findAllMatches:r=Fn.findAllMatches,location:g=Fn.location,threshold:a=Fn.threshold,distance:I=Fn.distance}={}){this.query=null,this.options={isCaseSensitive:t,ignoreDiacritics:i,includeMatches:o,minMatchCharLength:n,findAllMatches:r,ignoreLocation:s,location:g,threshold:a,distance:I},A=t?A:A.toLowerCase(),A=i?C5(A):A,this.pattern=A,this.query=$Me(this.pattern,this.options)}static condition(A,t){return t.useExtendedSearch}searchIn(A){const t=this.query;if(!t)return{isMatch:!1,score:1};const{includeMatches:i,isCaseSensitive:o,ignoreDiacritics:n}=this.options;A=o?A:A.toLowerCase(),A=n?C5(A):A;let s=0,r=[],g=0;for(let a=0,I=t.length;a<I;a+=1){const c=t[a];r.length=0,s=0;for(let B=0,C=c.length;B<C;B+=1){const Q=c[B],{isMatch:E,indices:l,score:h}=Q.search(A);if(E){if(s+=1,g+=h,i){const u=Q.constructor.type;Ave.has(u)?r=[...r,...l]:r.push(l)}}else{g=0,s=0,r.length=0;break}}if(s){let B={isMatch:!0,score:g/s};return i&&(B.indices=r),B}}return{isMatch:!1,score:1}}}const WlA=[];function eve(...e){WlA.push(...e)}function ZlA(e,A){for(let t=0,i=WlA.length;t<i;t+=1){let o=WlA[t];if(o.condition(e,A))return new o(e,A)}return new qet(e,A)}const Q5={AND:"$and",OR:"$or"},VlA={PATH:"$path",PATTERN:"$val"},jlA=e=>!!(e[Q5.AND]||e[Q5.OR]),ive=e=>!!e[VlA.PATH],ove=e=>!$m(e)&&Let(e)&&!jlA(e),Vet=e=>({[Q5.AND]:Object.keys(e).map(A=>({[A]:e[A]}))});function jet(e,A,{auto:t=!0}={}){const i=o=>{let n=Object.keys(o);const s=ive(o);if(!s&&n.length>1&&!jlA(o))return i(Vet(o));if(ove(o)){const g=s?o[VlA.PATH]:n[0],a=s?o[VlA.PATTERN]:o[g];if(!mD(a))throw new Error(RMe(g));const I={keyId:qlA(g),pattern:a};return t&&(I.searcher=ZlA(a,A)),I}let r={children:[],operator:n[0]};return n.forEach(g=>{const a=o[g];$m(a)&&a.forEach(I=>{r.children.push(i(I))})}),r};return jlA(e)||(e=Vet(e)),i(e)}function nve(e,{ignoreFieldNorm:A=Fn.ignoreFieldNorm}){e.forEach(t=>{let i=1;t.matches.forEach(({key:o,norm:n,score:s})=>{const r=o?o.weight:null;i*=Math.pow(s===0&&r?Number.EPSILON:s,(r||1)*(A?1:n))}),t.score=i})}function sve(e,A){const t=e.matches;A.matches=[],qf(t)&&t.forEach(i=>{if(!qf(i.indices)||!i.indices.length)return;const{indices:o,value:n}=i;let s={indices:o,value:n};i.key&&(s.key=i.key.src),i.idx>-1&&(s.refIndex=i.idx),A.matches.push(s)})}function rve(e,A){A.score=e.score}function gve(e,A,{includeMatches:t=Fn.includeMatches,includeScore:i=Fn.includeScore}={}){const o=[];return t&&o.push(sve),i&&o.push(rve),e.map(n=>{const{idx:s}=n,r={item:A[s],refIndex:s};return o.length&&o.forEach(g=>{g(n,r)}),r})}class LN{constructor(A,t={},i){this.options={...Fn,...t},this.options.useExtendedSearch,this._keyStore=new UMe(this.options.keys),this.setCollection(A,i)}setCollection(A,t){if(this._docs=A,t&&!(t instanceof PlA))throw new Error(_Me);this._myIndex=t||Tet(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}add(A){qf(A)&&(this._docs.push(A),this._myIndex.add(A))}remove(A=()=>!1){const t=[];for(let i=0,o=this._docs.length;i<o;i+=1){const n=this._docs[i];A(n,i)&&(this.removeAt(i),i-=1,o-=1,t.push(n))}return t}removeAt(A){this._docs.splice(A,1),this._myIndex.removeAt(A)}getIndex(){return this._myIndex}search(A,{limit:t=-1}={}){const{includeMatches:i,includeScore:o,shouldSort:n,sortFn:s,ignoreFieldNorm:r}=this.options;let g=mD(A)?mD(this._docs[0])?this._searchStringList(A):this._searchObjectList(A):this._searchLogical(A);return nve(g,{ignoreFieldNorm:r}),n&&g.sort(s),Uet(t)&&t>-1&&(g=g.slice(0,t)),gve(g,this._docs,{includeMatches:i,includeScore:o})}_searchStringList(A){const t=ZlA(A,this.options),{records:i}=this._myIndex,o=[];return i.forEach(({v:n,i:s,n:r})=>{if(!qf(n))return;const{isMatch:g,score:a,indices:I}=t.searchIn(n);g&&o.push({item:n,idx:s,matches:[{score:a,value:n,norm:r,indices:I}]})}),o}_searchLogical(A){const t=jet(A,this.options),i=(r,g,a)=>{if(!r.children){const{keyId:c,searcher:B}=r,C=this._findMatches({key:this._keyStore.get(c),value:this._myIndex.getValueForItemAtKeyId(g,c),searcher:B});return C&&C.length?[{idx:a,item:g,matches:C}]:[]}const I=[];for(let c=0,B=r.children.length;c<B;c+=1){const C=r.children[c],Q=i(C,g,a);if(Q.length)I.push(...Q);else if(r.operator===Q5.AND)return[]}return I},o=this._myIndex.records,n={},s=[];return o.forEach(({$:r,i:g})=>{if(qf(r)){let a=i(t,r,g);a.length&&(n[g]||(n[g]={idx:g,item:r,matches:[]},s.push(n[g])),a.forEach(({matches:I})=>{n[g].matches.push(...I)}))}}),s}_searchObjectList(A){const t=ZlA(A,this.options),{keys:i,records:o}=this._myIndex,n=[];return o.forEach(({$:s,i:r})=>{if(!qf(s))return;let g=[];i.forEach((a,I)=>{g.push(...this._findMatches({key:a,value:s[I],searcher:t}))}),g.length&&n.push({idx:r,item:s,matches:g})}),n}_findMatches({key:A,value:t,searcher:i}){if(!qf(t))return[];let o=[];if($m(t))t.forEach(({v:n,i:s,n:r})=>{if(!qf(n))return;const{isMatch:g,score:a,indices:I}=i.searchIn(n);g&&o.push({score:a,key:A,value:n,idx:s,norm:r,indices:I})});else{const{v:n,n:s}=t,{isMatch:r,score:g,indices:a}=i.searchIn(n);r&&o.push({score:g,key:A,value:n,norm:s,indices:a})}return o}}LN.version="7.1.0",LN.createIndex=Tet,LN.parseIndex=JMe,LN.config=Fn,LN.parseQuery=jet,eve(tve);let zlA=null,aL=null,XlA=null;const ave=async()=>zlA||aL||(aL=fetch("https://kicad-mod-cache.tscircuit.com/kicad_files.json").then(e=>e.json()).then(e=>(zlA=e,aL=null,e)),aL),Ive=async(e,A=20)=>{const t=await ave();return XlA||(XlA=new LN(t)),XlA.search(e).slice(0,A).map(i=>i.item)},cve=e=>{const A=e.replace(".pretty/",":").replace(".kicad_mod",""),t=`kicad:${A}`;return{path:e,qualifiedName:t,description:A}},Bve=()=>{const[e,A]=iA.useState([]),[t,i]=iA.useState(!1),[o,n]=iA.useState(null),[s,r]=iA.useState(!1),g=iA.useCallback(async I=>{const c=I.trim();if(!c)return[];i(!0),n(null);try{const C=(await Ive(c,20)).map(Q=>({source:"kicad",footprint:cve(Q)}));return A(C),C}catch(B){return console.error("Error searching KiCad footprints",B),A([]),n(B instanceof Error?B.message:"Failed to search KiCad footprints"),[]}finally{i(!1),r(!0)}},[]),a=iA.useCallback(()=>{A([]),i(!1),n(null),r(!1)},[]);return{results:e,isSearching:t,error:o,hasSearched:s,search:g,reset:a}},Cve=({onTscircuitPackageSelected:e,onJlcpcbComponentTsxLoaded:A,onKicadStringSelected:t})=>{const i=[];return e&&i.push("tscircuit.com"),A&&i.push("jlcpcb"),t&&i.push("kicad"),i},Qve=({isOpen:e,onClose:A,jlcpcbProxyRequestHeaders:t,onKicadStringSelected:i,onTscircuitPackageSelected:o,onJlcpcbComponentTsxLoaded:n,jlcpcbProxyApiBase:s})=>{_tt();const r=iA.useMemo(()=>Cve({onKicadStringSelected:i,onTscircuitPackageSelected:o,onJlcpcbComponentTsxLoaded:n}),[i,o,n]),g=r.length>0,[a,I]=iA.useState(r[0]??"tscircuit.com"),[c,B]=iA.useState(""),[C,Q]=iA.useState(null),{results:E,isSearching:l,error:h,hasSearched:u,search:d,reset:f}=mMe(),{results:G,isSearching:D,error:k,hasSearched:m,search:F,reset:b}=bMe(),{results:U,isSearching:M,error:J,hasSearched:P,search:q,reset:W}=Bve(),{details:Z,isLoading:AA,fetchDetails:oA,reset:BA}=wMe(),[eA,sA]=iA.useState(null),[cA,fA]=iA.useState(!1),[kA,vA]=iA.useState("pcb"),[LA,RA]=iA.useState(null),[CA,SA]=iA.useState(!1);iA.useEffect(()=>{RA(null)},[C]);const DA=iA.useCallback(()=>{f(),b(),W(),Q(null)},[b,W,f]);iA.useEffect(()=>{e||(DA(),B(""),fA(!1),sA(null),RA(null))},[e,DA]),iA.useEffect(()=>{B(""),Q(null),a==="tscircuit.com"?f():a==="jlcpcb"?b():a==="kicad"&&W()},[a,b,W,f]);const jA=HA=>{Q(HA),sA(HA),vA("pcb"),fA(!0),BA();const xA=HA.package.owner_github_username,KA=HA.package.unscoped_name;if(xA&&KA){const PA=KA.split("/").pop()??KA;oA(xA,PA)}},rt=async()=>{c.trim()&&(Q(null),a==="tscircuit.com"?await d(c):a==="jlcpcb"?await F(c):a==="kicad"&&await q(c))},ct=async HA=>{try{if(RA(null),SA(!0),HA.source==="kicad"){if(!i)throw new Error("KiCad handler not provided");await i({result:HA,footprint:HA.footprint.qualifiedName})}else if(HA.source==="jlcpcb"){if(!n)throw new Error("JLCPCB handler not provided");const xA=await EMe(HA.component.partNumber,{headers:t,apiBase:s});await n({result:HA,tsx:xA})}else if(HA.source==="tscircuit.com"){if(!o)throw new Error("tscircuit package handler not provided");const xA=HA.package.owner_github_username,KA=HA.package.unscoped_name;if(!xA||!KA)throw new Error("Missing package metadata");const PA=KA.split("/").pop()??KA,tt=`@tsci/${xA}.${PA}`;await o({result:HA,fullPackageName:tt})}return!0}catch(xA){return console.error("Failed to import component",xA),RA(xA instanceof Error?xA.message:"Failed to import component"),!1}finally{SA(!1)}};let pA=[],gt=!1,qA=null,TA=!1;a==="tscircuit.com"?(pA=E,gt=l,qA=h,TA=u):a==="jlcpcb"?(pA=G,gt=D,qA=k,TA=m):a==="kicad"&&(pA=U,gt=M,qA=J,TA=P);const XA=async()=>{if(!C)return;await ct(C)&&(A(),DA(),B(""))},FA=HA=>{HA||A()},wA=HA=>{fA(HA),HA||sA(null)};return X.jsxs(sL,{open:e,onOpenChange:FA,children:[X.jsxs(MN,{style:{width:"calc(100vw - 2rem)"},className:"rf-rounded-sm rf-max-h-[90vh] rf-overflow-y-auto rf-overflow-x-hidden rf-flex rf-flex-col",children:[X.jsxs(vN,{children:[X.jsx(UN,{className:"rf-text-lg sm:rf-text-xl",children:"Import Component"}),X.jsx(gL,{className:"rf-text-sm",children:g?"Search for components from available sources.":"Import options are disabled because no handlers were provided."})]}),g?X.jsxs(t9,{value:a,onValueChange:HA=>I(HA),className:"rf-min-w-0 rf-w-full",children:[X.jsx(PY,{className:"rf-flex rf-w-full rf-gap-2",children:r.map(HA=>X.jsx(_w,{value:HA,className:"rf-flex-1 rf-text-xs sm:rf-text-sm",children:JlA[HA].label},HA))}),X.jsx(hMe,{query:c,placeholder:JlA[a].placeholder,isSearching:gt,onQueryChange:B,onSubmit:rt}),X.jsx("div",{className:"no-scrollbar rf-mt-4 rf-flex-1 rf-min-h-[200px] !rf-max-h-[40vh] !rf-overflow-y-auto rf-overflow-x-hidden rf-border rf-rounded-md rf-min-w-0",children:gt?X.jsxs("div",{className:"rf-p-8 rf-text-center rf-text-zinc-500",children:[X.jsx(Ob,{className:"rf-h-8 rf-w-8 rf-animate-spin rf-mx-auto rf-mb-2"}),X.jsx("p",{children:"Searching..."})]}):pA.length>0?X.jsx(fMe,{results:pA,selected:C,onSelect:Q,onShowDetails:a==="tscircuit.com"?jA:void 0}):X.jsx("div",{className:"rf-p-8 rf-text-center rf-text-zinc-500",children:qA?`Error: ${qA}`:TA?JlA[a].emptyMessage:"Enter a search term to find components"})})]}):null,LA?X.jsx("div",{className:"rf-text-sm rf-text-red-600 rf-mt-2",children:LA}):null,X.jsxs(rL,{className:"rf-flex rf-flex-col sm:rf-flex-row rf-gap-2",children:[X.jsx(Ic,{variant:"outline",onClick:A,className:"rf-order-2 sm:rf-order-1",children:"Cancel"}),X.jsx(Ic,{onClick:XA,disabled:!C||CA,className:"rf-order-1 sm:rf-order-2",children:CA?X.jsx(Ob,{className:"rf-h-4 rf-w-4 rf-animate-spin"}):"Import"})]})]}),X.jsx(yMe,{packageResult:eA,isOpen:cA,onOpenChange:wA,isLoading:AA,details:Z,previewTab:kA,onPreviewTabChange:HA=>vA(HA),isSubmitting:CA,onImport:()=>{eA&&ct(eA).then(HA=>{HA&&(fA(!1),A(),DA(),B(""))})}})]})},lve=e=>{const A=e.match(/export const (\w+) =/);if(!A)throw new Error("Could not determine component name from TSX contents");return A[1]},zet=e=>{const A=DD(s=>s.pushEvent),t=DD(s=>s.upsertFile),i=async({result:s,fullPackageName:r})=>{const a=s.package.unscoped_name??s.package.name;await xs.promise(A({event_type:"INSTALL_PACKAGE",full_package_name:r}),{loading:`Requesting install for "${a}"`,success:`Install requested for "${a}"`,error:I=>`Failed to request install: ${I instanceof Error?I.message:String(I)}`})},o=async({footprint:s})=>{await xs.promise(navigator.clipboard.writeText(s),{loading:`Copying "${s}"`,success:`Copied "${s}" to clipboard`,error:r=>`Failed to copy footprint: ${r instanceof Error?r.message:String(r)}`})},n=async({result:s,tsx:r})=>{const a=`imports/${lve(r)}.tsx`;await xs.promise(t(a,r),{loading:`Importing ${s.component.partNumber}`,success:`Imported to "${a}"`,error:I=>`Failed to import component: ${I instanceof Error?I.message:String(I)}`})};return X.jsx(Qve,{...e,onTscircuitPackageSelected:i,onKicadStringSelected:o,onJlcpcbComponentTsxLoaded:n})};zet.displayName="ImportComponentDialogForCli";var $lA={exports:{}},Xet;function Eve(){return Xet||(Xet=1,(function(e,A){var t={env:{},version:""};/*!
|
|
5827
5827
|
|
|
5828
5828
|
JSZip v3.10.1 - A JavaScript class for generating and reading zip files
|
|
5829
5829
|
<http://stuartk.com/jszip>
|