tscircuit 0.0.1051 → 0.0.1052
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser.min.js +2 -2
- package/package.json +4 -4
package/dist/browser.min.js
CHANGED
|
@@ -5878,7 +5878,7 @@ $1`).replace(/>(\s*)(?=<!--\s*\/)/g,"> ")}}});function fte(t,A,e){if(!A||!e)retu
|
|
|
5878
5878
|
* Copyright (c) 2013-2015, 2017, Jon Schlinkert.
|
|
5879
5879
|
* Released under the MIT License.
|
|
5880
5880
|
*)
|
|
5881
|
-
*/const A1t=({containerClassName:t,...A})=>{const e=$.useRef(null),[i,n]=$.useState(620);return $.useLayoutEffect(()=>{const o=()=>{if(e.current){const r=e.current.clientHeight,a=window.innerHeight;n(Math.min(Math.max(r,620),a))}};o();const s=new ResizeObserver(o);return e.current&&s.observe(e.current),window.addEventListener("resize",o),()=>{s.disconnect(),window.removeEventListener("resize",o)}},[]),V.jsx("div",{ref:e,className:t||"rf-w-full rf-h-full",children:V.jsx($vt,{...A,height:i})})},e1t='*,: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}',q8=()=>{$.useEffect(()=>{if(document.querySelector('style[data-styles="tscircuit-runframe"]'))return;const A=document.createElement("style");A.setAttribute("data-styles","tscircuit-runframe"),A.textContent=e1t,document.head.appendChild(A)},[])},t1t=t=>{$.useEffect(()=>(t?document.body.style.overflow="hidden":document.body.style.overflow="",()=>{document.body.style.overflow=""}),[t])};function XN(t,A){const[e,i]=$.useState(()=>{try{const n=window.localStorage.getItem(t);return n?JSON.parse(n):A}catch(n){return console.error("Error reading from localStorage:",n),A}});return $.useEffect(()=>{try{window.localStorage.setItem(t,JSON.stringify(e))}catch(n){console.error("Error writing to localStorage:",n)}},[t,e]),[e,i]}const Wte=t=>`hsl(${Dp.indexOf(t)*137.5%360}, 70%, 50%)`,i1t=({phaseTimings:t})=>{if(!t)return null;const A=Object.values(t).reduce((e,i)=>e+i,0);return V.jsxs("div",{className:"rf-space-y-2 rf-w-full rf-px-4",children:[V.jsx("div",{className:"rf-relative rf-h-8 rf-flex rf-rounded-sm",children:Dp.map(e=>{const i=t[e]||0,n=i/A*100;return V.jsx("div",{className:"rf-group/bar rf-relative rf-overflow-visible",style:{width:`${n}%`,backgroundColor:Wte(e)},children:V.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:[e,": ",i.toFixed(1),"ms"]})},e)})}),V.jsxs("div",{className:"rf-text-xs rf-text-gray-500",children:["Total: ",A.toFixed(2),"ms"]})]})},n1t=t=>{if(t instanceof Blob)return t;if(t==null)return"";if(typeof t=="string")return t;if(typeof t=="object")try{return JSON.stringify(t,null,2)}catch{return String(t)}return String(t)},o1t=({renderLog:t,onRerunWithDebug:A})=>{const[e,i]=$.useState("chronological"),[n,o]=$.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(!t)return V.jsxs("div",{className:"rf-p-4 rf-bg-gray-100 rf-rounded-md",children:[V.jsx("div",{className:"rf-mb-4",children:"No render log, make sure this tab is open when you render"}),A&&V.jsxs("div",{className:"rf-flex rf-gap-2 rf-items-center",children:[V.jsx("select",{value:n,onChange:g=>o(g.target.value),className:"rf-px-3 rf-py-1 rf-border rf-rounded rf-text-xs rf-bg-white",children:s.map(g=>V.jsx("option",{value:g.value,children:g.label},g.value))}),V.jsx(Ma,{onClick:()=>A(n),size:"sm",className:"rf-text-xs",children:"Rerun Render with Debug"})]})]});const r=Object.entries(t?.phaseTimings??{});e==="chronological"?r.sort((g,I)=>Dp.indexOf(g[0])-Dp.indexOf(I[0])):r.sort((g,I)=>I[1]-g[1]);const a=r.reduce((g,[I,c])=>g+c,0);return V.jsxs("div",{className:"rf-bg-white",children:[V.jsxs("div",{className:"rf-flex rf-justify-between rf-items-center rf-mb-4",children:[V.jsx("div",{children:"Render Logs"}),V.jsxs("div",{className:"rf-flex rf-gap-4 rf-items-center",children:[A&&V.jsxs("div",{className:"rf-flex rf-gap-2 rf-items-center",children:[V.jsx("select",{value:n,onChange:g=>o(g.target.value),className:"rf-px-3 rf-py-1 rf-border rf-rounded rf-text-xs rf-bg-white",children:s.map(g=>V.jsx("option",{value:g.value,children:g.label},g.value))}),V.jsx(Ma,{onClick:()=>A(n),size:"sm",className:"rf-text-xs",children:"Rerun Render with Debug"})]}),V.jsx("div",{className:"rf-flex rf-gap-2 rf-items-center",children:V.jsxs("select",{onChange:g=>{if(g.target.value){const I=t?.debugOutputs?.find(c=>c.name===g.target.value);if(I){const c=n1t(I.content),B=c instanceof Blob?c:new Blob([c],{type:"text/plain"}),C=URL.createObjectURL(B),l=document.createElement("a");l.href=C,l.download=`debug-${I.name}.txt`,document.body.appendChild(l),l.click(),document.body.removeChild(l),URL.revokeObjectURL(C)}g.target.value=""}},disabled:!t?.debugOutputs||t.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:[V.jsx("option",{value:"",children:"Download Debug Output"}),t?.debugOutputs?.map(g=>V.jsx("option",{value:g.name,children:g.name},g.name))]})}),V.jsxs("div",{className:"rf-flex rf-text-xs rf-items-center",children:[V.jsx("div",{className:"rf-mr-2",children:"Sort by:"}),V.jsxs("select",{value:e,onChange:g=>i(g.target.value),className:"rf-px-2 rf-py-1 rf-border rf-rounded rf-text-xs",children:[V.jsx("option",{value:"chronological",children:"Phase Order"}),V.jsx("option",{value:"longest",children:"Duration"})]})]})]})]}),V.jsx(i1t,{phaseTimings:t.phaseTimings}),V.jsxs("table",{className:"rf-w-full rf-text-xs",children:[V.jsx("thead",{children:V.jsxs("tr",{children:[V.jsx("th",{className:"rf-text-left rf-p-2",children:"Phase Order"}),V.jsx("th",{className:"rf-text-left rf-p-2",children:"Phase"}),V.jsx("th",{className:"rf-text-left rf-p-2",children:"Duration (ms)"})]})}),V.jsx("tbody",{children:r.map(([g,I])=>V.jsxs("tr",{children:[V.jsx("td",{className:"rf-p-2",children:Dp.indexOf(g)}),V.jsx("td",{className:"rf-p-2",children:g}),V.jsx("td",{className:"rf-p-2",children:V.jsx("div",{className:"rf-w-8",children:V.jsx("div",{className:"rf-h-2 rf-rounded-sm",style:{backgroundColor:Wte(g),width:`${I/a*100}%`}})})}),V.jsx("td",{className:"rf-p-2",children:V.jsxs("div",{className:"rf-flex w-full",children:[V.jsxs("span",{className:"rf-flex-grow",children:[I,"ms"]}),V.jsxs("span",{className:"rf-text-gray-500 rf-pr-2",children:[(I/a*100).toFixed(1),"%"]})]})})]},g))})]})]})},Zte=({errorMessage:t,errorStack:A,circuitJsonErrors:e})=>{$.useEffect(()=>{if(t){const i=new Error(t);A&&(i.stack=A);try{IP.captureException(i)}catch{}}},[t,A]),$.useEffect(()=>{if(e&&e.length>0)for(const i of e){const n=new Error(i.message||"Circuit JSON Error");i.stack&&(n.stack=i.stack);try{IP.captureException(n,{error_type:i.type})}catch{}}},[e])},Vte="0.0.1396",s1t={version:Vte},P8=MMA()(vMA(t=>({lastRunEvalVersion:void 0,setLastRunEvalVersion:A=>{t({lastRunEvalVersion:A})}}),{name:"runframe-runner-store"})),r1t=t=>{const[A,e]=$.useState([]),[i,n]=$.useState(null),[o,s]=$.useState(""),[r,a]=XN("eval-version-selection",null),g=P8(C=>C.setLastRunEvalVersion),I=P8(C=>C.lastRunEvalVersion);return $.useEffect(()=>{t&&fetch("https://data.jsdelivr.com/v1/package/npm/@tscircuit/eval").then(C=>C.json()).then(C=>{if(Array.isArray(C?.versions)){let l=[...C.versions];C.tags?.latest&&(n(C.tags.latest),l=l.filter(Q=>Q!==C.tags.latest)),e(l)}}).catch(()=>{})},[t]),$.useEffect(()=>{t&&(r?(window.TSCIRCUIT_LATEST_EVAL_VERSION=r,g(r)):i&&(window.TSCIRCUIT_LATEST_EVAL_VERSION=i,g(i)))},[t,r,i]),{versions:$.useMemo(()=>A.filter(C=>C.includes(o)).slice(0,50),[A,o]),latestVersion:i,lastRunEvalVersion:I,search:o,setSearch:s,selectVersion:C=>{a(C),s("")}}},a1t=({snippetNames:t,onSelect:A,onCancel:e,isOpen:i})=>{const[n,o]=$.useState(""),[s,r]=$.useState("");if(!i)return null;const a=t.filter(c=>c.toLowerCase().includes(s.toLowerCase())),g=s&&!t.includes(s),I=c=>{c.key==="Enter"&&(a.length===1?o(a[0]):g&&o(s))};return V.jsx("div",{className:"rf-fixed rf-inset-0 rf-bg-black rf-bg-opacity-50 rf-flex rf-items-center rf-justify-center rf-z-[100]",children:V.jsxs("div",{className:"rf-bg-white rf-rounded-lg rf-p-6 rf-w-96",children:[V.jsx("h2",{className:"rf-text-lg rf-font-semibold rf-mb-4",children:"Select Snippet"}),V.jsx("input",{type:"text",className:"rf-w-full rf-px-4 rf-py-2 rf-border rf-rounded rf-mb-4",placeholder:"Search snippets or new snippet name...",value:s,onChange:c=>r(c.target.value),onKeyDown:I}),V.jsxs("div",{className:"rf-h-60 rf-overflow-y-auto",children:[a.map(c=>V.jsx("button",{type:"button",className:`w-full text-left px-4 py-2 rounded hover:bg-gray-100 ${n===c?"bg-blue-50":""}`,onClick:()=>o(c),children:c},c)),g&&V.jsxs("button",{type:"button",className:`w-full text-left px-4 py-2 rounded hover:bg-gray-100 text-blue-500 ${n===s?"bg-blue-50":""}`,onClick:()=>o(s),children:['Create new "',s,'"']})]}),V.jsxs("div",{className:"rf-mt-4 rf-flex rf-justify-end rf-gap-2",children:[V.jsx("button",{type:"button",className:"rf-px-4 rf-py-2 rf-text-gray-600 rf-hover:text-gray-800",onClick:e,children:"Cancel"}),V.jsx("button",{type:"button",className:"rf-px-4 rf-py-2 rf-bg-blue-500 rf-text-white rf-rounded rf-hover:bg-blue-600 rf-disabled:opacity-50",onClick:()=>n&&A(n),disabled:!n,children:n===s?`Create "${n}"`:`Save to ${n}`})]})]})})},g1t=t=>{const A=$.useRef(null),e=_c(i=>i.recentEvents);$.useEffect(()=>{if(e.length===0)return;const i=e[0];i.event_id!==A.current&&(t(i),A.current=i.event_id)},[e,t])};var O8="Dialog",[jte,zte]=Vw(O8),[I1t,lw]=jte(O8),Xte=t=>{const{__scopeDialog:A,children:e,open:i,defaultOpen:n,onOpenChange:o,modal:s=!0}=t,r=$.useRef(null),a=$.useRef(null),[g,I]=Gx({prop:i,defaultProp:n??!1,onChange:o,caller:O8});return V.jsx(I1t,{scope:A,triggerRef:r,contentRef:a,contentId:au(),titleId:au(),descriptionId:au(),open:g,onOpenChange:I,onOpenToggle:$.useCallback(()=>I(c=>!c),[I]),modal:s,children:e})};Xte.displayName=O8;var $te="DialogTrigger",Aie=$.forwardRef((t,A)=>{const{__scopeDialog:e,...i}=t,n=lw($te,e),o=lB(A,n.triggerRef);return V.jsx(gr.button,{type:"button","aria-haspopup":"dialog","aria-expanded":n.open,"aria-controls":n.contentId,"data-state":dEA(n.open),...i,ref:o,onClick:Io(t.onClick,n.onOpenToggle)})});Aie.displayName=$te;var hEA="DialogPortal",[c1t,eie]=jte(hEA,{forceMount:void 0}),tie=t=>{const{__scopeDialog:A,forceMount:e,children:i,container:n}=t,o=lw(hEA,A);return V.jsx(c1t,{scope:A,forceMount:e,children:$.Children.map(i,s=>V.jsx(q0,{present:e||o.open,children:V.jsx(E5,{asChild:!0,container:n,children:s})}))})};tie.displayName=hEA;var W8="DialogOverlay",iie=$.forwardRef((t,A)=>{const e=eie(W8,t.__scopeDialog),{forceMount:i=e.forceMount,...n}=t,o=lw(W8,t.__scopeDialog);return o.modal?V.jsx(q0,{present:i||o.open,children:V.jsx(C1t,{...n,ref:A})}):null});iie.displayName=W8;var B1t=xx("DialogOverlay.RemoveScroll"),C1t=$.forwardRef((t,A)=>{const{__scopeDialog:e,...i}=t,n=lw(W8,e);return V.jsx(m5,{as:B1t,allowPinchZoom:!0,shards:[n.contentRef],children:V.jsx(gr.div,{"data-state":dEA(n.open),...i,ref:A,style:{pointerEvents:"auto",...i.style}})})}),LG="DialogContent",nie=$.forwardRef((t,A)=>{const e=eie(LG,t.__scopeDialog),{forceMount:i=e.forceMount,...n}=t,o=lw(LG,t.__scopeDialog);return V.jsx(q0,{present:i||o.open,children:o.modal?V.jsx(l1t,{...n,ref:A}):V.jsx(Q1t,{...n,ref:A})})});nie.displayName=LG;var l1t=$.forwardRef((t,A)=>{const e=lw(LG,t.__scopeDialog),i=$.useRef(null),n=lB(A,e.contentRef,i);return $.useEffect(()=>{const o=i.current;if(o)return glA(o)},[]),V.jsx(oie,{...t,ref:n,trapFocus:e.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Io(t.onCloseAutoFocus,o=>{o.preventDefault(),e.triggerRef.current?.focus()}),onPointerDownOutside:Io(t.onPointerDownOutside,o=>{const s=o.detail.originalEvent,r=s.button===0&&s.ctrlKey===!0;(s.button===2||r)&&o.preventDefault()}),onFocusOutside:Io(t.onFocusOutside,o=>o.preventDefault())})}),Q1t=$.forwardRef((t,A)=>{const e=lw(LG,t.__scopeDialog),i=$.useRef(!1),n=$.useRef(!1);return V.jsx(oie,{...t,ref:A,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:o=>{t.onCloseAutoFocus?.(o),o.defaultPrevented||(i.current||e.triggerRef.current?.focus(),o.preventDefault()),i.current=!1,n.current=!1},onInteractOutside:o=>{t.onInteractOutside?.(o),o.defaultPrevented||(i.current=!0,o.detail.originalEvent.type==="pointerdown"&&(n.current=!0));const s=o.target;e.triggerRef.current?.contains(s)&&o.preventDefault(),o.detail.originalEvent.type==="focusin"&&n.current&&o.preventDefault()}})}),oie=$.forwardRef((t,A)=>{const{__scopeDialog:e,trapFocus:i,onOpenAutoFocus:n,onCloseAutoFocus:o,...s}=t,r=lw(LG,e),a=$.useRef(null),g=lB(A,a);return qCA(),V.jsxs(V.Fragment,{children:[V.jsx(n5,{asChild:!0,loop:!0,trapped:i,onMountAutoFocus:n,onUnmountAutoFocus:o,children:V.jsx(i5,{role:"dialog",id:r.contentId,"aria-describedby":r.descriptionId,"aria-labelledby":r.titleId,"data-state":dEA(r.open),...s,ref:g,onDismiss:()=>r.onOpenChange(!1)})}),V.jsxs(V.Fragment,{children:[V.jsx(h1t,{titleId:r.titleId}),V.jsx(d1t,{contentRef:a,descriptionId:r.descriptionId})]})]})}),uEA="DialogTitle",sie=$.forwardRef((t,A)=>{const{__scopeDialog:e,...i}=t,n=lw(uEA,e);return V.jsx(gr.h2,{id:n.titleId,...i,ref:A})});sie.displayName=uEA;var rie="DialogDescription",aie=$.forwardRef((t,A)=>{const{__scopeDialog:e,...i}=t,n=lw(rie,e);return V.jsx(gr.p,{id:n.descriptionId,...i,ref:A})});aie.displayName=rie;var gie="DialogClose",Iie=$.forwardRef((t,A)=>{const{__scopeDialog:e,...i}=t,n=lw(gie,e);return V.jsx(gr.button,{type:"button",...i,ref:A,onClick:Io(t.onClick,()=>n.onOpenChange(!1))})});Iie.displayName=gie;function dEA(t){return t?"open":"closed"}var cie="DialogTitleWarning",[E1t,Bie]=f4e(cie,{contentName:LG,titleName:uEA,docsSlug:"dialog"}),h1t=({titleId:t})=>{const A=Bie(cie),e=`\`${A.contentName}\` requires a \`${A.titleName}\` for the component to be accessible for screen reader users.
|
|
5881
|
+
*/const A1t=({containerClassName:t,...A})=>{const e=$.useRef(null),[i,n]=$.useState(620);return $.useLayoutEffect(()=>{const o=()=>{if(e.current){const r=e.current.clientHeight,a=window.innerHeight;n(Math.min(Math.max(r,620),a))}};o();const s=new ResizeObserver(o);return e.current&&s.observe(e.current),window.addEventListener("resize",o),()=>{s.disconnect(),window.removeEventListener("resize",o)}},[]),V.jsx("div",{ref:e,className:t||"rf-w-full rf-h-full",children:V.jsx($vt,{...A,height:i})})},e1t='*,: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}',q8=()=>{$.useEffect(()=>{if(document.querySelector('style[data-styles="tscircuit-runframe"]'))return;const A=document.createElement("style");A.setAttribute("data-styles","tscircuit-runframe"),A.textContent=e1t,document.head.appendChild(A)},[])},t1t=t=>{$.useEffect(()=>(t?document.body.style.overflow="hidden":document.body.style.overflow="",()=>{document.body.style.overflow=""}),[t])};function XN(t,A){const[e,i]=$.useState(()=>{try{const n=window.localStorage.getItem(t);return n?JSON.parse(n):A}catch(n){return console.error("Error reading from localStorage:",n),A}});return $.useEffect(()=>{try{window.localStorage.setItem(t,JSON.stringify(e))}catch(n){console.error("Error writing to localStorage:",n)}},[t,e]),[e,i]}const Wte=t=>`hsl(${Dp.indexOf(t)*137.5%360}, 70%, 50%)`,i1t=({phaseTimings:t})=>{if(!t)return null;const A=Object.values(t).reduce((e,i)=>e+i,0);return V.jsxs("div",{className:"rf-space-y-2 rf-w-full rf-px-4",children:[V.jsx("div",{className:"rf-relative rf-h-8 rf-flex rf-rounded-sm",children:Dp.map(e=>{const i=t[e]||0,n=i/A*100;return V.jsx("div",{className:"rf-group/bar rf-relative rf-overflow-visible",style:{width:`${n}%`,backgroundColor:Wte(e)},children:V.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:[e,": ",i.toFixed(1),"ms"]})},e)})}),V.jsxs("div",{className:"rf-text-xs rf-text-gray-500",children:["Total: ",A.toFixed(2),"ms"]})]})},n1t=t=>{if(t instanceof Blob)return t;if(t==null)return"";if(typeof t=="string")return t;if(typeof t=="object")try{return JSON.stringify(t,null,2)}catch{return String(t)}return String(t)},o1t=({renderLog:t,onRerunWithDebug:A})=>{const[e,i]=$.useState("chronological"),[n,o]=$.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(!t)return V.jsxs("div",{className:"rf-p-4 rf-bg-gray-100 rf-rounded-md",children:[V.jsx("div",{className:"rf-mb-4",children:"No render log, make sure this tab is open when you render"}),A&&V.jsxs("div",{className:"rf-flex rf-gap-2 rf-items-center",children:[V.jsx("select",{value:n,onChange:g=>o(g.target.value),className:"rf-px-3 rf-py-1 rf-border rf-rounded rf-text-xs rf-bg-white",children:s.map(g=>V.jsx("option",{value:g.value,children:g.label},g.value))}),V.jsx(Ma,{onClick:()=>A(n),size:"sm",className:"rf-text-xs",children:"Rerun Render with Debug"})]})]});const r=Object.entries(t?.phaseTimings??{});e==="chronological"?r.sort((g,I)=>Dp.indexOf(g[0])-Dp.indexOf(I[0])):r.sort((g,I)=>I[1]-g[1]);const a=r.reduce((g,[I,c])=>g+c,0);return V.jsxs("div",{className:"rf-bg-white",children:[V.jsxs("div",{className:"rf-flex rf-justify-between rf-items-center rf-mb-4",children:[V.jsx("div",{children:"Render Logs"}),V.jsxs("div",{className:"rf-flex rf-gap-4 rf-items-center",children:[A&&V.jsxs("div",{className:"rf-flex rf-gap-2 rf-items-center",children:[V.jsx("select",{value:n,onChange:g=>o(g.target.value),className:"rf-px-3 rf-py-1 rf-border rf-rounded rf-text-xs rf-bg-white",children:s.map(g=>V.jsx("option",{value:g.value,children:g.label},g.value))}),V.jsx(Ma,{onClick:()=>A(n),size:"sm",className:"rf-text-xs",children:"Rerun Render with Debug"})]}),V.jsx("div",{className:"rf-flex rf-gap-2 rf-items-center",children:V.jsxs("select",{onChange:g=>{if(g.target.value){const I=t?.debugOutputs?.find(c=>c.name===g.target.value);if(I){const c=n1t(I.content),B=c instanceof Blob?c:new Blob([c],{type:"text/plain"}),C=URL.createObjectURL(B),l=document.createElement("a");l.href=C,l.download=`debug-${I.name}.txt`,document.body.appendChild(l),l.click(),document.body.removeChild(l),URL.revokeObjectURL(C)}g.target.value=""}},disabled:!t?.debugOutputs||t.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:[V.jsx("option",{value:"",children:"Download Debug Output"}),t?.debugOutputs?.map(g=>V.jsx("option",{value:g.name,children:g.name},g.name))]})}),V.jsxs("div",{className:"rf-flex rf-text-xs rf-items-center",children:[V.jsx("div",{className:"rf-mr-2",children:"Sort by:"}),V.jsxs("select",{value:e,onChange:g=>i(g.target.value),className:"rf-px-2 rf-py-1 rf-border rf-rounded rf-text-xs",children:[V.jsx("option",{value:"chronological",children:"Phase Order"}),V.jsx("option",{value:"longest",children:"Duration"})]})]})]})]}),V.jsx(i1t,{phaseTimings:t.phaseTimings}),V.jsxs("table",{className:"rf-w-full rf-text-xs",children:[V.jsx("thead",{children:V.jsxs("tr",{children:[V.jsx("th",{className:"rf-text-left rf-p-2",children:"Phase Order"}),V.jsx("th",{className:"rf-text-left rf-p-2",children:"Phase"}),V.jsx("th",{className:"rf-text-left rf-p-2",children:"Duration (ms)"})]})}),V.jsx("tbody",{children:r.map(([g,I])=>V.jsxs("tr",{children:[V.jsx("td",{className:"rf-p-2",children:Dp.indexOf(g)}),V.jsx("td",{className:"rf-p-2",children:g}),V.jsx("td",{className:"rf-p-2",children:V.jsx("div",{className:"rf-w-8",children:V.jsx("div",{className:"rf-h-2 rf-rounded-sm",style:{backgroundColor:Wte(g),width:`${I/a*100}%`}})})}),V.jsx("td",{className:"rf-p-2",children:V.jsxs("div",{className:"rf-flex w-full",children:[V.jsxs("span",{className:"rf-flex-grow",children:[I,"ms"]}),V.jsxs("span",{className:"rf-text-gray-500 rf-pr-2",children:[(I/a*100).toFixed(1),"%"]})]})})]},g))})]})]})},Zte=({errorMessage:t,errorStack:A,circuitJsonErrors:e})=>{$.useEffect(()=>{if(t){const i=new Error(t);A&&(i.stack=A);try{IP.captureException(i)}catch{}}},[t,A]),$.useEffect(()=>{if(e&&e.length>0)for(const i of e){const n=new Error(i.message||"Circuit JSON Error");i.stack&&(n.stack=i.stack);try{IP.captureException(n,{error_type:i.type})}catch{}}},[e])},Vte="0.0.1398",s1t={version:Vte},P8=MMA()(vMA(t=>({lastRunEvalVersion:void 0,setLastRunEvalVersion:A=>{t({lastRunEvalVersion:A})}}),{name:"runframe-runner-store"})),r1t=t=>{const[A,e]=$.useState([]),[i,n]=$.useState(null),[o,s]=$.useState(""),[r,a]=XN("eval-version-selection",null),g=P8(C=>C.setLastRunEvalVersion),I=P8(C=>C.lastRunEvalVersion);return $.useEffect(()=>{t&&fetch("https://data.jsdelivr.com/v1/package/npm/@tscircuit/eval").then(C=>C.json()).then(C=>{if(Array.isArray(C?.versions)){let l=[...C.versions];C.tags?.latest&&(n(C.tags.latest),l=l.filter(Q=>Q!==C.tags.latest)),e(l)}}).catch(()=>{})},[t]),$.useEffect(()=>{t&&(r?(window.TSCIRCUIT_LATEST_EVAL_VERSION=r,g(r)):i&&(window.TSCIRCUIT_LATEST_EVAL_VERSION=i,g(i)))},[t,r,i]),{versions:$.useMemo(()=>A.filter(C=>C.includes(o)).slice(0,50),[A,o]),latestVersion:i,lastRunEvalVersion:I,search:o,setSearch:s,selectVersion:C=>{a(C),s("")}}},a1t=({snippetNames:t,onSelect:A,onCancel:e,isOpen:i})=>{const[n,o]=$.useState(""),[s,r]=$.useState("");if(!i)return null;const a=t.filter(c=>c.toLowerCase().includes(s.toLowerCase())),g=s&&!t.includes(s),I=c=>{c.key==="Enter"&&(a.length===1?o(a[0]):g&&o(s))};return V.jsx("div",{className:"rf-fixed rf-inset-0 rf-bg-black rf-bg-opacity-50 rf-flex rf-items-center rf-justify-center rf-z-[100]",children:V.jsxs("div",{className:"rf-bg-white rf-rounded-lg rf-p-6 rf-w-96",children:[V.jsx("h2",{className:"rf-text-lg rf-font-semibold rf-mb-4",children:"Select Snippet"}),V.jsx("input",{type:"text",className:"rf-w-full rf-px-4 rf-py-2 rf-border rf-rounded rf-mb-4",placeholder:"Search snippets or new snippet name...",value:s,onChange:c=>r(c.target.value),onKeyDown:I}),V.jsxs("div",{className:"rf-h-60 rf-overflow-y-auto",children:[a.map(c=>V.jsx("button",{type:"button",className:`w-full text-left px-4 py-2 rounded hover:bg-gray-100 ${n===c?"bg-blue-50":""}`,onClick:()=>o(c),children:c},c)),g&&V.jsxs("button",{type:"button",className:`w-full text-left px-4 py-2 rounded hover:bg-gray-100 text-blue-500 ${n===s?"bg-blue-50":""}`,onClick:()=>o(s),children:['Create new "',s,'"']})]}),V.jsxs("div",{className:"rf-mt-4 rf-flex rf-justify-end rf-gap-2",children:[V.jsx("button",{type:"button",className:"rf-px-4 rf-py-2 rf-text-gray-600 rf-hover:text-gray-800",onClick:e,children:"Cancel"}),V.jsx("button",{type:"button",className:"rf-px-4 rf-py-2 rf-bg-blue-500 rf-text-white rf-rounded rf-hover:bg-blue-600 rf-disabled:opacity-50",onClick:()=>n&&A(n),disabled:!n,children:n===s?`Create "${n}"`:`Save to ${n}`})]})]})})},g1t=t=>{const A=$.useRef(null),e=_c(i=>i.recentEvents);$.useEffect(()=>{if(e.length===0)return;const i=e[0];i.event_id!==A.current&&(t(i),A.current=i.event_id)},[e,t])};var O8="Dialog",[jte,zte]=Vw(O8),[I1t,lw]=jte(O8),Xte=t=>{const{__scopeDialog:A,children:e,open:i,defaultOpen:n,onOpenChange:o,modal:s=!0}=t,r=$.useRef(null),a=$.useRef(null),[g,I]=Gx({prop:i,defaultProp:n??!1,onChange:o,caller:O8});return V.jsx(I1t,{scope:A,triggerRef:r,contentRef:a,contentId:au(),titleId:au(),descriptionId:au(),open:g,onOpenChange:I,onOpenToggle:$.useCallback(()=>I(c=>!c),[I]),modal:s,children:e})};Xte.displayName=O8;var $te="DialogTrigger",Aie=$.forwardRef((t,A)=>{const{__scopeDialog:e,...i}=t,n=lw($te,e),o=lB(A,n.triggerRef);return V.jsx(gr.button,{type:"button","aria-haspopup":"dialog","aria-expanded":n.open,"aria-controls":n.contentId,"data-state":dEA(n.open),...i,ref:o,onClick:Io(t.onClick,n.onOpenToggle)})});Aie.displayName=$te;var hEA="DialogPortal",[c1t,eie]=jte(hEA,{forceMount:void 0}),tie=t=>{const{__scopeDialog:A,forceMount:e,children:i,container:n}=t,o=lw(hEA,A);return V.jsx(c1t,{scope:A,forceMount:e,children:$.Children.map(i,s=>V.jsx(q0,{present:e||o.open,children:V.jsx(E5,{asChild:!0,container:n,children:s})}))})};tie.displayName=hEA;var W8="DialogOverlay",iie=$.forwardRef((t,A)=>{const e=eie(W8,t.__scopeDialog),{forceMount:i=e.forceMount,...n}=t,o=lw(W8,t.__scopeDialog);return o.modal?V.jsx(q0,{present:i||o.open,children:V.jsx(C1t,{...n,ref:A})}):null});iie.displayName=W8;var B1t=xx("DialogOverlay.RemoveScroll"),C1t=$.forwardRef((t,A)=>{const{__scopeDialog:e,...i}=t,n=lw(W8,e);return V.jsx(m5,{as:B1t,allowPinchZoom:!0,shards:[n.contentRef],children:V.jsx(gr.div,{"data-state":dEA(n.open),...i,ref:A,style:{pointerEvents:"auto",...i.style}})})}),LG="DialogContent",nie=$.forwardRef((t,A)=>{const e=eie(LG,t.__scopeDialog),{forceMount:i=e.forceMount,...n}=t,o=lw(LG,t.__scopeDialog);return V.jsx(q0,{present:i||o.open,children:o.modal?V.jsx(l1t,{...n,ref:A}):V.jsx(Q1t,{...n,ref:A})})});nie.displayName=LG;var l1t=$.forwardRef((t,A)=>{const e=lw(LG,t.__scopeDialog),i=$.useRef(null),n=lB(A,e.contentRef,i);return $.useEffect(()=>{const o=i.current;if(o)return glA(o)},[]),V.jsx(oie,{...t,ref:n,trapFocus:e.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Io(t.onCloseAutoFocus,o=>{o.preventDefault(),e.triggerRef.current?.focus()}),onPointerDownOutside:Io(t.onPointerDownOutside,o=>{const s=o.detail.originalEvent,r=s.button===0&&s.ctrlKey===!0;(s.button===2||r)&&o.preventDefault()}),onFocusOutside:Io(t.onFocusOutside,o=>o.preventDefault())})}),Q1t=$.forwardRef((t,A)=>{const e=lw(LG,t.__scopeDialog),i=$.useRef(!1),n=$.useRef(!1);return V.jsx(oie,{...t,ref:A,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:o=>{t.onCloseAutoFocus?.(o),o.defaultPrevented||(i.current||e.triggerRef.current?.focus(),o.preventDefault()),i.current=!1,n.current=!1},onInteractOutside:o=>{t.onInteractOutside?.(o),o.defaultPrevented||(i.current=!0,o.detail.originalEvent.type==="pointerdown"&&(n.current=!0));const s=o.target;e.triggerRef.current?.contains(s)&&o.preventDefault(),o.detail.originalEvent.type==="focusin"&&n.current&&o.preventDefault()}})}),oie=$.forwardRef((t,A)=>{const{__scopeDialog:e,trapFocus:i,onOpenAutoFocus:n,onCloseAutoFocus:o,...s}=t,r=lw(LG,e),a=$.useRef(null),g=lB(A,a);return qCA(),V.jsxs(V.Fragment,{children:[V.jsx(n5,{asChild:!0,loop:!0,trapped:i,onMountAutoFocus:n,onUnmountAutoFocus:o,children:V.jsx(i5,{role:"dialog",id:r.contentId,"aria-describedby":r.descriptionId,"aria-labelledby":r.titleId,"data-state":dEA(r.open),...s,ref:g,onDismiss:()=>r.onOpenChange(!1)})}),V.jsxs(V.Fragment,{children:[V.jsx(h1t,{titleId:r.titleId}),V.jsx(d1t,{contentRef:a,descriptionId:r.descriptionId})]})]})}),uEA="DialogTitle",sie=$.forwardRef((t,A)=>{const{__scopeDialog:e,...i}=t,n=lw(uEA,e);return V.jsx(gr.h2,{id:n.titleId,...i,ref:A})});sie.displayName=uEA;var rie="DialogDescription",aie=$.forwardRef((t,A)=>{const{__scopeDialog:e,...i}=t,n=lw(rie,e);return V.jsx(gr.p,{id:n.descriptionId,...i,ref:A})});aie.displayName=rie;var gie="DialogClose",Iie=$.forwardRef((t,A)=>{const{__scopeDialog:e,...i}=t,n=lw(gie,e);return V.jsx(gr.button,{type:"button",...i,ref:A,onClick:Io(t.onClick,()=>n.onOpenChange(!1))})});Iie.displayName=gie;function dEA(t){return t?"open":"closed"}var cie="DialogTitleWarning",[E1t,Bie]=f4e(cie,{contentName:LG,titleName:uEA,docsSlug:"dialog"}),h1t=({titleId:t})=>{const A=Bie(cie),e=`\`${A.contentName}\` requires a \`${A.titleName}\` for the component to be accessible for screen reader users.
|
|
5882
5882
|
|
|
5883
5883
|
If you want to hide the \`${A.titleName}\`, you can wrap it with our VisuallyHidden component.
|
|
5884
5884
|
|
|
@@ -5888,7 +5888,7 @@ You can add a description to the \`${$N}\` by passing a \`${fie}\` component as
|
|
|
5888
5888
|
|
|
5889
5889
|
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 \`${$N}\`. 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.
|
|
5890
5890
|
|
|
5891
|
-
For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return $.useEffect(()=>{document.getElementById(t.current?.getAttribute("aria-describedby"))||console.warn(A)},[A,t]),null},F1t=Qie,_1t=Eie,Sie=hie,bie=uie,kie=wie,xie=Die,Gie=pie,Fie=yie;const _ie=F1t,R1t=_1t,Rie=$.forwardRef(({className:t,...A},e)=>V.jsx(Sie,{className:Ji("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",t),...A,ref:e}));Rie.displayName=Sie.displayName;const mEA=$.forwardRef(({className:t,...A},e)=>V.jsxs(R1t,{children:[V.jsx(Rie,{}),V.jsx(bie,{ref:e,className:Ji("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",t),...A})]}));mEA.displayName=bie.displayName;const DEA=({className:t,...A})=>V.jsx("div",{className:Ji("rf-flex rf-flex-col rf-space-y-2 rf-text-center sm:rf-text-left",t),...A});DEA.displayName="AlertDialogHeader";const SEA=({className:t,...A})=>V.jsx("div",{className:Ji("rf-flex rf-flex-col-reverse sm:rf-flex-row sm:rf-justify-end sm:rf-space-x-2",t),...A});SEA.displayName="AlertDialogFooter";const bEA=$.forwardRef(({className:t,...A},e)=>V.jsx(Gie,{ref:e,className:Ji("rf-text-lg rf-font-semibold",t),...A}));bEA.displayName=Gie.displayName;const kEA=$.forwardRef(({className:t,...A},e)=>V.jsx(Fie,{ref:e,className:Ji("rf-text-sm rf-text-zinc-500 dark:rf-text-zinc-400",t),...A}));kEA.displayName=Fie.displayName;const N1t=$.forwardRef(({className:t,...A},e)=>V.jsx(kie,{ref:e,className:Ji(DN(),t),...A}));N1t.displayName=kie.displayName;const xEA=$.forwardRef(({className:t,...A},e)=>V.jsx(xie,{ref:e,className:Ji(DN({variant:"outline"}),"rf-mt-2 sm:rf-mt-0",t),...A}));xEA.displayName=xie.displayName;function M1t(t){const A=$.useRef({value:t,previous:t});return $.useMemo(()=>(A.current.value!==t&&(A.current.previous=A.current.value,A.current.value=t),A.current.previous),[t])}var j8="Checkbox",[v1t]=Vw(j8),[U1t,GEA]=v1t(j8);function L1t(t){const{__scopeCheckbox:A,checked:e,children:i,defaultChecked:n,disabled:o,form:s,name:r,onCheckedChange:a,required:g,value:I="on",internal_do_not_use_render:c}=t,[B,C]=Gx({prop:e,defaultProp:n??!1,onChange:a,caller:j8}),[l,Q]=$.useState(null),[E,h]=$.useState(null),u=$.useRef(!1),d=l?!!s||!!l.closest("form"):!0,f={checked:B,disabled:o,setChecked:C,control:l,setControl:Q,name:r,form:s,value:I,hasConsumerStoppedPropagationRef:u,required:g,defaultChecked:hk(n)?!1:n,isFormControl:d,bubbleInput:E,setBubbleInput:h};return V.jsx(U1t,{scope:A,...f,children:H1t(c)?c(f):i})}var Nie="CheckboxTrigger",Mie=$.forwardRef(({__scopeCheckbox:t,onKeyDown:A,onClick:e,...i},n)=>{const{control:o,value:s,disabled:r,checked:a,required:g,setControl:I,setChecked:c,hasConsumerStoppedPropagationRef:B,isFormControl:C,bubbleInput:l}=GEA(Nie,t),Q=lB(n,I),E=$.useRef(a);return $.useEffect(()=>{const h=o?.form;if(h){const u=()=>c(E.current);return h.addEventListener("reset",u),()=>h.removeEventListener("reset",u)}},[o,c]),V.jsx(gr.button,{type:"button",role:"checkbox","aria-checked":hk(a)?"mixed":a,"aria-required":g,"data-state":Yie(a),"data-disabled":r?"":void 0,disabled:r,value:s,...i,ref:Q,onKeyDown:Io(A,h=>{h.key==="Enter"&&h.preventDefault()}),onClick:Io(e,h=>{c(u=>hk(u)?!0:!u),l&&C&&(B.current=h.isPropagationStopped(),B.current||h.stopPropagation())})})});Mie.displayName=Nie;var FEA=$.forwardRef((t,A)=>{const{__scopeCheckbox:e,name:i,checked:n,defaultChecked:o,required:s,disabled:r,value:a,onCheckedChange:g,form:I,...c}=t;return V.jsx(L1t,{__scopeCheckbox:e,checked:n,defaultChecked:o,disabled:r,required:s,onCheckedChange:g,name:i,form:I,value:a,internal_do_not_use_render:({isFormControl:B})=>V.jsxs(V.Fragment,{children:[V.jsx(Mie,{...c,ref:A,__scopeCheckbox:e}),B&&V.jsx(Hie,{__scopeCheckbox:e})]})})});FEA.displayName=j8;var vie="CheckboxIndicator",Uie=$.forwardRef((t,A)=>{const{__scopeCheckbox:e,forceMount:i,...n}=t,o=GEA(vie,e);return V.jsx(q0,{present:i||hk(o.checked)||o.checked===!0,children:V.jsx(gr.span,{"data-state":Yie(o.checked),"data-disabled":o.disabled?"":void 0,...n,ref:A,style:{pointerEvents:"none",...t.style}})})});Uie.displayName=vie;var Lie="CheckboxBubbleInput",Hie=$.forwardRef(({__scopeCheckbox:t,...A},e)=>{const{control:i,hasConsumerStoppedPropagationRef:n,checked:o,defaultChecked:s,required:r,disabled:a,name:g,value:I,form:c,bubbleInput:B,setBubbleInput:C}=GEA(Lie,t),l=lB(e,C),Q=M1t(o),E=ZjA(i);$.useEffect(()=>{const u=B;if(!u)return;const d=window.HTMLInputElement.prototype,b=Object.getOwnPropertyDescriptor(d,"checked").set,m=!n.current;if(Q!==o&&b){const x=new Event("click",{bubbles:m});u.indeterminate=hk(o),b.call(u,hk(o)?!1:o),u.dispatchEvent(x)}},[B,Q,o,n]);const h=$.useRef(hk(o)?!1:o);return V.jsx(gr.input,{type:"checkbox","aria-hidden":!0,defaultChecked:s??h.current,required:r,disabled:a,name:g,value:I,form:c,...A,tabIndex:-1,ref:l,style:{...A.style,...E,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});Hie.displayName=Lie;function H1t(t){return typeof t=="function"}function hk(t){return t==="indeterminate"}function Yie(t){return hk(t)?"indeterminate":t?"checked":"unchecked"}const _EA=$.forwardRef(({className:t,...A},e)=>V.jsx(FEA,{ref:e,className:Ji("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",t),...A,children:V.jsx(Uie,{className:Ji("rf-flex rf-items-center rf-justify-center rf-text-current"),children:V.jsx(ek,{className:"rf-h-4 rf-w-4"})})}));_EA.displayName=FEA.displayName;const AM=pEA,Y1t=fEA,Jie=$.forwardRef(({className:t,...A},e)=>V.jsx(Z8,{className:Ji("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",t),...A,ref:e}));Jie.displayName=Z8.displayName;const HG=$.forwardRef(({className:t,children:A,showOverlay:e=!0,...i},n)=>V.jsxs(Y1t,{children:[V.jsx(Jie,{className:Ji(e?"":"rf-hidden")}),V.jsx(V8,{ref:n,className:Ji("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",t),...i,children:A})]}));HG.displayName=V8.displayName;const YG=({className:t,...A})=>V.jsx("div",{className:Ji("rf-flex rf-flex-col rf-space-y-2 rf-text-center sm:rf-text-left",t),...A});YG.displayName="DialogHeader";const bL=({className:t,...A})=>V.jsx("div",{className:Ji("rf-flex rf-flex-col-reverse sm:rf-flex-row sm:rf-justify-end sm:rf-space-x-2",t),...A});bL.displayName="DialogFooter";const JG=$.forwardRef(({className:t,...A},e)=>V.jsx(yEA,{ref:e,className:Ji("rf-text-lg rf-font-semibold",t),...A}));JG.displayName=yEA.displayName;const eM=$.forwardRef(({className:t,...A},e)=>V.jsx(wEA,{ref:e,className:Ji("rf-text-sm rf-text-zinc-500 dark:rf-text-zinc-400",t),...A}));eM.displayName=wEA.displayName;const REA={"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"}},J1t="https://cdn.jsdelivr.net/npm/easyeda@latest/dist/browser/index.js";let NEA=null;const K1t=async()=>(NEA||(NEA=import(J1t)),NEA),T1t=async(t,A=10)=>{const e=encodeURIComponent(t),i=await fetch(`https://jlcsearch.tscircuit.com/api/search?limit=${A}&q=${e}`);if(!i.ok)throw new Error(`JLCPCB API error: ${i.status}`);return(await i.json()).components??[]},q1t=t=>({lcscId:t.lcsc,manufacturer:t.mfr,description:t.description,partNumber:`C${t.lcsc}`,package:t.package,price:t.price,stock:t.stock}),P1t=async(t,A)=>{const{fetchEasyEDAComponent:e,convertRawEasyToTsx:i}=await K1t(),n=await e(t,{fetch:(o,s)=>fetch(`${A?.apiBase??Sp}/proxy`,{...s,headers:{...s?.headers,"X-Target-Url":o.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(n)},O1t=({query:t,placeholder:A,isSearching:e,onQueryChange:i,onSubmit:n})=>{const o=$.useCallback(s=>{s.key==="Enter"&&(s.preventDefault(),n())},[n]);return V.jsxs("div",{className:"rf-flex rf-items-center rf-gap-2 rf-mt-4",children:[V.jsxs("div",{className:"rf-relative rf-flex-grow",children:[V.jsx(JCA,{className:"rf-absolute rf-left-2 rf-top-2.5 rf-h-4 rf-w-4 rf-text-muted-foreground"}),V.jsx(hQA,{placeholder:A,className:"rf-pl-8",spellCheck:!1,autoComplete:"off",value:t,onChange:s=>i(s.target.value),onKeyDown:o})]}),V.jsx(Ma,{onClick:n,disabled:e||t.trim().length<1,className:"sm:rf-px-4 rf-px-3",children:e?V.jsx($D,{className:"rf-h-4 rf-w-4 rf-animate-spin"}):V.jsxs(V.Fragment,{children:[V.jsx(JCA,{className:"rf-h-4 rf-w-4 sm:rf-hidden"}),V.jsx("span",{className:"rf-hidden sm:rf-inline",children:"Search"})]})})]})},Kie=t=>{switch(t.source){case"tscircuit.com":{const A=t.package;return`tscircuit-${A.package_id??`${A.owner_github_username??"unknown"}-${A.unscoped_name??A.name??"package"}`}`}case"jlcpcb":return`jlc-${t.component.lcscId}`;case"kicad":return`kicad-${t.footprint.path}`;default:return"unknown"}},W1t=t=>{switch(t.source){case"tscircuit.com":return t.package.unscoped_name;case"jlcpcb":return t.component.manufacturer;case"kicad":return t.footprint.qualifiedName}},Z1t=t=>{switch(t.source){case"tscircuit.com":return t.package.description||(t.package.owner_github_username?`Component by ${t.package.owner_github_username}`:void 0);case"jlcpcb":return t.component.description;case"kicad":return t.footprint.description}},V1t=t=>{switch(t.source){case"tscircuit.com":return t.package.name;case"jlcpcb":return t.component.partNumber;case"kicad":return}},j1t=({results:t,selected:A,onSelect:e,onShowDetails:i})=>{const n=A?Kie(A):null;return V.jsx("div",{className:"rf-divide-y",children:t.map(o=>{const s=Kie(o),r=n===s,a=W1t(o),g=Z1t(o),I=V1t(o),c=o.source==="jlcpcb"?o.component.stock:null;return V.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:()=>e(o),children:[V.jsxs("div",{className:"rf-min-w-0 rf-overflow-hidden rf-w-full",children:[V.jsxs("div",{className:"rf-flex rf-items-start rf-gap-2",children:[V.jsx("div",{className:"rf-font-medium rf-text-sm rf-truncate rf-flex-1 rf-min-w-0",children:a}),o.source==="jlcpcb"&&c!=null?V.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]}),V.jsxs("div",{className:"rf-text-xs rf-text-zinc-500 rf-truncate",children:[I?V.jsx("span",{className:"rf-mr-2",children:I}):null,g]})]}),o.source==="tscircuit.com"&&i?V.jsx("div",{className:"rf-flex rf-gap-2 rf-flex-shrink-0 rf-w-full sm:rf-w-auto",children:V.jsx(Ma,{variant:"outline",size:"sm",className:"rf-text-xs rf-w-full sm:rf-w-auto",onClick:B=>{B.stopPropagation(),i(o)},children:"See Details"})}):o.source==="jlcpcb"&&c!=null?V.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)})})},z1t=({packageResult:t,isOpen:A,onOpenChange:e,isLoading:i,details:n,previewTab:o,onPreviewTabChange:s,isSubmitting:r,onImport:a})=>{const g=t?.package??null,I=g?.latest_pcb_preview_image_url,c=g?.latest_sch_preview_image_url,B=g?.latest_cad_preview_image_url,C=g?.unscoped_name?.split("/").pop()??g?.unscoped_name,l=g?.owner_github_username??void 0,Q=l?`https://tscircuit.com/${l}`:void 0,E=l&&C?`https://tscircuit.com/${l}/${C}`:void 0;return V.jsx(AM,{open:A,onOpenChange:e,children:V.jsxs(HG,{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:[V.jsx(YG,{className:"rf-pb-4 rf-border-b",children:V.jsx("div",{className:"rf-flex rf-items-start rf-justify-between rf-gap-4",children:V.jsxs("div",{className:"rf-flex-1 rf-min-w-0",children:[V.jsx(JG,{className:"rf-text-xl rf-font-semibold rf-truncate",children:C}),V.jsx(eM,{children:g?.description})]})})}),V.jsxs("div",{className:"rf-flex-1 rf-overflow-y-auto rf-py-4 rf-space-y-6",children:[l?V.jsxs("div",{children:[V.jsx("span",{className:"rf-text-xs rf-font-medium rf-text-gray-500 rf-uppercase rf-tracking-wide",children:"Created by"}),V.jsx("div",{className:"rf-mt-1 rf-text-sm rf-font-medium",children:Q?V.jsx("a",{href:Q,target:"_blank",rel:"noopener noreferrer",className:"rf-text-black hover:rf-underline",children:l}):l})]}):null,(B||I||c)&&V.jsx(V.Fragment,{children:V.jsxs("div",{children:[V.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-mb-4",children:"Preview"}),V.jsxs(JeA,{value:o,onValueChange:h=>s(h),children:[V.jsxs(BP,{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&&V.jsx(em,{value:"pcb",children:"PCB"}),c&&V.jsx(em,{value:"schematic",children:"Schematic"}),B&&V.jsx(em,{value:"3d",children:"3D"})]}),V.jsxs("div",{className:"rf-mt-4",children:[V.jsx(Fp,{value:"pcb",className:"rf-border rf-rounded-lg rf-overflow-hidden rf-bg-gray-50",children:I?V.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}),V.jsx(Fp,{value:"schematic",className:"rf-border rf-rounded-lg rf-overflow-hidden rf-bg-gray-50",children:c?V.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}),V.jsx(Fp,{value:"3d",className:"rf-border rf-rounded-lg rf-overflow-hidden rf-bg-gray-50",children:B?V.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})]})]})]})}),n?.ai_description?V.jsxs("section",{children:[V.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-mb-3",children:"AI Description"}),V.jsx("div",{className:"rf-bg-gray-50 rf-border rf-border-gray-200 rf-rounded-lg rf-p-4",children:V.jsx("p",{className:"rf-text-sm rf-text-gray-700 rf-leading-relaxed",children:n.ai_description})})]}):null,n?.ai_usage_instructions?V.jsxs("section",{children:[V.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-mb-3",children:"Usage Instructions"}),V.jsx("div",{className:"rf-bg-gray-50 rf-border rf-border-gray-200 rf-rounded-lg rf-p-4",children:V.jsx("p",{className:"rf-text-sm rf-text-gray-700 rf-leading-relaxed rf-whitespace-pre-wrap",children:n.ai_usage_instructions})})]}):null,i?V.jsxs("div",{className:"rf-flex rf-justify-center rf-items-center rf-gap-2 rf-text-gray-500",children:[V.jsx($D,{className:"rf-h-4 rf-w-4 rf-animate-spin"}),V.jsx("span",{className:"rf-text-sm",children:"Loading package details..."})]}):null]}),V.jsxs(bL,{className:"rf-pt-4 rf-border-t rf-flex rf-flex-col sm:rf-flex-row rf-justify-between rf-gap-2",children:[V.jsx("div",{className:"rf-flex-1",children:E?V.jsxs(Ma,{variant:"outline",size:"sm",className:"rf-gap-2 rf-w-full sm:rf-w-auto",onClick:()=>window.open(E,"_blank"),children:[V.jsx(Byt,{className:"rf-h-4 rf-w-4"}),"View on tscircuit.com"]}):null}),V.jsxs("div",{className:"rf-flex rf-flex-col sm:rf-flex-row rf-gap-2",children:[V.jsx(Ma,{variant:"outline",onClick:()=>e(!1),className:"rf-order-2 sm:rf-order-1",children:"Close"}),V.jsx(Ma,{onClick:a,disabled:r,className:"rf-bg-blue-600 hover:rf-bg-blue-700",children:r?V.jsx($D,{className:"rf-h-4 rf-w-4 rf-animate-spin"}):"Import Component"})]})]})]})})},X1t=()=>{const[t,A]=$.useState(null),[e,i]=$.useState(!1),n=$.useCallback(async(s,r)=>{i(!0);try{const a=await fetch(`https://api.tscircuit.com/packages/get?name=${encodeURIComponent(`${s}/${r}`)}`);if(!a.ok)throw new Error(`Failed to load package details: ${a.status}`);const g=await a.json();A(g.package??null)}catch(a){console.error("Failed to fetch package details",a),A(null)}finally{i(!1)}},[]),o=$.useCallback(()=>{A(null),i(!1)},[]);return{details:t,isLoading:e,fetchDetails:n,reset:o}},$1t=async t=>{const A=await fetch("https://registry-api.tscircuit.com/packages/search",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:t})});if(!A.ok)throw new Error(`tscircuit registry error: ${A.status}`);return(await A.json()).packages??[]},A2t=()=>{const[t,A]=$.useState([]),[e,i]=$.useState(!1),[n,o]=$.useState(null),[s,r]=$.useState(!1),a=$.useCallback(async I=>{const c=I.trim();if(!c)return[];i(!0),o(null);try{const C=(await $1t(c)).map(l=>({source:"tscircuit.com",package:l}));return A(C),C}catch(B){return console.error("Error searching tscircuit packages",B),A([]),o(B instanceof Error?B.message:"Failed to search tscircuit packages"),[]}finally{i(!1),r(!0)}},[]),g=$.useCallback(()=>{A([]),i(!1),o(null),r(!1)},[]);return{results:t,isSearching:e,error:n,hasSearched:s,search:a,reset:g}},e2t=t=>{const A=t.trim();return/^C\d+/i.test(A)?A.replace(/^C/i,""):A},t2t=()=>{const[t,A]=$.useState([]),[e,i]=$.useState(!1),[n,o]=$.useState(null),[s,r]=$.useState(!1),a=$.useCallback(async I=>{const c=e2t(I);if(!c)return[];i(!0),o(null);try{const C=(await T1t(c,10)).map(l=>({source:"jlcpcb",component:q1t(l)}));return A(C),C}catch(B){return console.error("Error searching JLCPCB components",B),A([]),o(B instanceof Error?B.message:"Failed to search JLCPCB components"),[]}finally{i(!1),r(!0)}},[]),g=$.useCallback(()=>{A([]),i(!1),o(null),r(!1)},[]);return{results:t,isSearching:e,error:n,hasSearched:s,search:a,reset:g}};function aS(t){return Array.isArray?Array.isArray(t):Pie(t)==="[object Array]"}function i2t(t){if(typeof t=="string")return t;let A=t+"";return A=="0"&&1/t==-1/0?"-0":A}function n2t(t){return t==null?"":i2t(t)}function Nm(t){return typeof t=="string"}function Tie(t){return typeof t=="number"}function o2t(t){return t===!0||t===!1||s2t(t)&&Pie(t)=="[object Boolean]"}function qie(t){return typeof t=="object"}function s2t(t){return qie(t)&&t!==null}function zf(t){return t!=null}function MEA(t){return!t.trim().length}function Pie(t){return t==null?t===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(t)}const r2t="Incorrect 'index' type",a2t=t=>`Invalid value for key ${t}`,g2t=t=>`Pattern length exceeds max of ${t}.`,I2t=t=>`Missing ${t} property in key`,c2t=t=>`Property 'weight' in key '${t}' must be a positive integer`,Oie=Object.prototype.hasOwnProperty;class B2t{constructor(A){this._keys=[],this._keyMap={};let e=0;A.forEach(i=>{let n=Wie(i);this._keys.push(n),this._keyMap[n.id]=n,e+=n.weight}),this._keys.forEach(i=>{i.weight/=e})}get(A){return this._keyMap[A]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}}function Wie(t){let A=null,e=null,i=null,n=1,o=null;if(Nm(t)||aS(t))i=t,A=Zie(t),e=vEA(t);else{if(!Oie.call(t,"name"))throw new Error(I2t("name"));const s=t.name;if(i=s,Oie.call(t,"weight")&&(n=t.weight,n<=0))throw new Error(c2t(s));A=Zie(s),e=vEA(s),o=t.getFn}return{path:A,id:e,weight:n,src:i,getFn:o}}function Zie(t){return aS(t)?t:t.split(".")}function vEA(t){return aS(t)?t.join("."):t}function C2t(t,A){let e=[],i=!1;const n=(o,s,r)=>{if(zf(o))if(!s[r])e.push(o);else{let a=s[r];const g=o[a];if(!zf(g))return;if(r===s.length-1&&(Nm(g)||Tie(g)||o2t(g)))e.push(n2t(g));else if(aS(g)){i=!0;for(let I=0,c=g.length;I<c;I+=1)n(g[I],s,r+1)}else s.length&&n(g,s,r+1)}};return n(t,Nm(A)?A.split("."):A,0),i?e:e[0]}var Ro={...{isCaseSensitive:!1,ignoreDiacritics:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:(t,A)=>t.score===A.score?t.idx<A.idx?-1:1:t.score<A.score?-1:1},...{includeMatches:!1,findAllMatches:!1,minMatchCharLength:1},...{location:0,threshold:.6,distance:100},...{useExtendedSearch:!1,getFn:C2t,ignoreLocation:!1,ignoreFieldNorm:!1,fieldNormWeight:1}};const l2t=/[^ ]+/g;function Q2t(t=1,A=3){const e=new Map,i=Math.pow(10,A);return{get(n){const o=n.match(l2t).length;if(e.has(o))return e.get(o);const s=1/Math.pow(o,.5*t),r=parseFloat(Math.round(s*i)/i);return e.set(o,r),r},clear(){e.clear()}}}class UEA{constructor({getFn:A=Ro.getFn,fieldNormWeight:e=Ro.fieldNormWeight}={}){this.norm=Q2t(e,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((e,i)=>{this._keysMap[e.id]=i})}create(){this.isCreated||!this.docs.length||(this.isCreated=!0,Nm(this.docs[0])?this.docs.forEach((A,e)=>{this._addString(A,e)}):this.docs.forEach((A,e)=>{this._addObject(A,e)}),this.norm.clear())}add(A){const e=this.size();Nm(A)?this._addString(A,e):this._addObject(A,e)}removeAt(A){this.records.splice(A,1);for(let e=A,i=this.size();e<i;e+=1)this.records[e].i-=1}getValueForItemAtKeyId(A,e){return A[this._keysMap[e]]}size(){return this.records.length}_addString(A,e){if(!zf(A)||MEA(A))return;let i={v:A,i:e,n:this.norm.get(A)};this.records.push(i)}_addObject(A,e){let i={i:e,$:{}};this.keys.forEach((n,o)=>{let s=n.getFn?n.getFn(A):this.getFn(A,n.path);if(zf(s)){if(aS(s)){let r=[];const a=[{nestedArrIndex:-1,value:s}];for(;a.length;){const{nestedArrIndex:g,value:I}=a.pop();if(zf(I))if(Nm(I)&&!MEA(I)){let c={v:I,i:g,n:this.norm.get(I)};r.push(c)}else aS(I)&&I.forEach((c,B)=>{a.push({nestedArrIndex:B,value:c})})}i.$[o]=r}else if(Nm(s)&&!MEA(s)){let r={v:s,n:this.norm.get(s)};i.$[o]=r}}}),this.records.push(i)}toJSON(){return{keys:this.keys,records:this.records}}}function Vie(t,A,{getFn:e=Ro.getFn,fieldNormWeight:i=Ro.fieldNormWeight}={}){const n=new UEA({getFn:e,fieldNormWeight:i});return n.setKeys(t.map(Wie)),n.setSources(A),n.create(),n}function E2t(t,{getFn:A=Ro.getFn,fieldNormWeight:e=Ro.fieldNormWeight}={}){const{keys:i,records:n}=t,o=new UEA({getFn:A,fieldNormWeight:e});return o.setKeys(i),o.setIndexRecords(n),o}function z8(t,{errors:A=0,currentLocation:e=0,expectedLocation:i=0,distance:n=Ro.distance,ignoreLocation:o=Ro.ignoreLocation}={}){const s=A/t.length;if(o)return s;const r=Math.abs(i-e);return n?s+r/n:r?1:s}function h2t(t=[],A=Ro.minMatchCharLength){let e=[],i=-1,n=-1,o=0;for(let s=t.length;o<s;o+=1){let r=t[o];r&&i===-1?i=o:!r&&i!==-1&&(n=o-1,n-i+1>=A&&e.push([i,n]),i=-1)}return t[o-1]&&o-i>=A&&e.push([i,o-1]),e}const KG=32;function u2t(t,A,e,{location:i=Ro.location,distance:n=Ro.distance,threshold:o=Ro.threshold,findAllMatches:s=Ro.findAllMatches,minMatchCharLength:r=Ro.minMatchCharLength,includeMatches:a=Ro.includeMatches,ignoreLocation:g=Ro.ignoreLocation}={}){if(A.length>KG)throw new Error(g2t(KG));const I=A.length,c=t.length,B=Math.max(0,Math.min(i,c));let C=o,l=B;const Q=r>1||a,E=Q?Array(c):[];let h;for(;(h=t.indexOf(A,l))>-1;){let x=z8(A,{currentLocation:h,expectedLocation:B,distance:n,ignoreLocation:g});if(C=Math.min(x,C),l=h+I,Q){let D=0;for(;D<I;)E[h+D]=1,D+=1}}l=-1;let u=[],d=1,f=I+c;const b=1<<I-1;for(let x=0;x<I;x+=1){let D=0,F=f;for(;D<F;)z8(A,{errors:x,currentLocation:B+F,expectedLocation:B,distance:n,ignoreLocation:g})<=C?D=F:f=F,F=Math.floor((f-D)/2+D);f=F;let k=Math.max(1,B-F+1),U=s?c:Math.min(B+F,c)+I,M=Array(U+2);M[U+1]=(1<<x)-1;for(let P=U;P>=k;P-=1){let T=P-1,O=e[t.charAt(T)];if(Q&&(E[T]=+!!O),M[P]=(M[P+1]<<1|1)&O,x&&(M[P]|=(u[P+1]|u[P])<<1|1|u[P+1]),M[P]&b&&(d=z8(A,{errors:x,currentLocation:T,expectedLocation:B,distance:n,ignoreLocation:g}),d<=C)){if(C=d,l=T,l<=B)break;k=Math.max(1,2*B-l)}}if(z8(A,{errors:x+1,currentLocation:B,expectedLocation:B,distance:n,ignoreLocation:g})>C)break;u=M}const m={isMatch:l>=0,score:Math.max(.001,d)};if(Q){const x=h2t(E,r);x.length?a&&(m.indices=x):m.isMatch=!1}return m}function d2t(t){let A={};for(let e=0,i=t.length;e<i;e+=1){const n=t.charAt(e);A[n]=(A[n]||0)|1<<i-e-1}return A}const X8=String.prototype.normalize?(t=>t.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,"")):(t=>t);class jie{constructor(A,{location:e=Ro.location,threshold:i=Ro.threshold,distance:n=Ro.distance,includeMatches:o=Ro.includeMatches,findAllMatches:s=Ro.findAllMatches,minMatchCharLength:r=Ro.minMatchCharLength,isCaseSensitive:a=Ro.isCaseSensitive,ignoreDiacritics:g=Ro.ignoreDiacritics,ignoreLocation:I=Ro.ignoreLocation}={}){if(this.options={location:e,threshold:i,distance:n,includeMatches:o,findAllMatches:s,minMatchCharLength:r,isCaseSensitive:a,ignoreDiacritics:g,ignoreLocation:I},A=a?A:A.toLowerCase(),A=g?X8(A):A,this.pattern=A,this.chunks=[],!this.pattern.length)return;const c=(C,l)=>{this.chunks.push({pattern:C,alphabet:d2t(C),startIndex:l})},B=this.pattern.length;if(B>KG){let C=0;const l=B%KG,Q=B-l;for(;C<Q;)c(this.pattern.substr(C,KG),C),C+=KG;if(l){const E=B-KG;c(this.pattern.substr(E),E)}}else c(this.pattern,0)}searchIn(A){const{isCaseSensitive:e,ignoreDiacritics:i,includeMatches:n}=this.options;if(A=e?A:A.toLowerCase(),A=i?X8(A):A,this.pattern===A){let Q={isMatch:!0,score:0};return n&&(Q.indices=[[0,A.length-1]]),Q}const{location:o,distance:s,threshold:r,findAllMatches:a,minMatchCharLength:g,ignoreLocation:I}=this.options;let c=[],B=0,C=!1;this.chunks.forEach(({pattern:Q,alphabet:E,startIndex:h})=>{const{isMatch:u,score:d,indices:f}=u2t(A,Q,E,{location:o+h,distance:s,threshold:r,findAllMatches:a,minMatchCharLength:g,includeMatches:n,ignoreLocation:I});u&&(C=!0),B+=d,u&&f&&(c=[...c,...f])});let l={isMatch:C,score:C?B/this.chunks.length:1};return C&&n&&(l.indices=c),l}}class uk{constructor(A){this.pattern=A}static isMultiMatch(A){return zie(A,this.multiRegex)}static isSingleMatch(A){return zie(A,this.singleRegex)}search(){}}function zie(t,A){const e=t.match(A);return e?e[1]:null}class p2t extends uk{constructor(A){super(A)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(A){const e=A===this.pattern;return{isMatch:e,score:e?0:1,indices:[0,this.pattern.length-1]}}}class f2t extends uk{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 y2t extends uk{constructor(A){super(A)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(A){const e=A.startsWith(this.pattern);return{isMatch:e,score:e?0:1,indices:[0,this.pattern.length-1]}}}class w2t extends uk{constructor(A){super(A)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(A){const e=!A.startsWith(this.pattern);return{isMatch:e,score:e?0:1,indices:[0,A.length-1]}}}class m2t extends uk{constructor(A){super(A)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(A){const e=A.endsWith(this.pattern);return{isMatch:e,score:e?0:1,indices:[A.length-this.pattern.length,A.length-1]}}}class D2t extends uk{constructor(A){super(A)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(A){const e=!A.endsWith(this.pattern);return{isMatch:e,score:e?0:1,indices:[0,A.length-1]}}}class Xie extends uk{constructor(A,{location:e=Ro.location,threshold:i=Ro.threshold,distance:n=Ro.distance,includeMatches:o=Ro.includeMatches,findAllMatches:s=Ro.findAllMatches,minMatchCharLength:r=Ro.minMatchCharLength,isCaseSensitive:a=Ro.isCaseSensitive,ignoreDiacritics:g=Ro.ignoreDiacritics,ignoreLocation:I=Ro.ignoreLocation}={}){super(A),this._bitapSearch=new jie(A,{location:e,threshold:i,distance:n,includeMatches:o,findAllMatches:s,minMatchCharLength:r,isCaseSensitive:a,ignoreDiacritics:g,ignoreLocation:I})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(A){return this._bitapSearch.searchIn(A)}}class $ie extends uk{constructor(A){super(A)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(A){let e=0,i;const n=[],o=this.pattern.length;for(;(i=A.indexOf(this.pattern,e))>-1;)e=i+o,n.push([i,e-1]);const s=!!n.length;return{isMatch:s,score:s?0:1,indices:n}}}const LEA=[p2t,$ie,y2t,w2t,D2t,m2t,f2t,Xie],Ane=LEA.length,S2t=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/,b2t="|";function k2t(t,A={}){return t.split(b2t).map(e=>{let i=e.trim().split(S2t).filter(o=>o&&!!o.trim()),n=[];for(let o=0,s=i.length;o<s;o+=1){const r=i[o];let a=!1,g=-1;for(;!a&&++g<Ane;){const I=LEA[g];let c=I.isMultiMatch(r);c&&(n.push(new I(c,A)),a=!0)}if(!a)for(g=-1;++g<Ane;){const I=LEA[g];let c=I.isSingleMatch(r);if(c){n.push(new I(c,A));break}}}return n})}const x2t=new Set([Xie.type,$ie.type]);class G2t{constructor(A,{isCaseSensitive:e=Ro.isCaseSensitive,ignoreDiacritics:i=Ro.ignoreDiacritics,includeMatches:n=Ro.includeMatches,minMatchCharLength:o=Ro.minMatchCharLength,ignoreLocation:s=Ro.ignoreLocation,findAllMatches:r=Ro.findAllMatches,location:a=Ro.location,threshold:g=Ro.threshold,distance:I=Ro.distance}={}){this.query=null,this.options={isCaseSensitive:e,ignoreDiacritics:i,includeMatches:n,minMatchCharLength:o,findAllMatches:r,ignoreLocation:s,location:a,threshold:g,distance:I},A=e?A:A.toLowerCase(),A=i?X8(A):A,this.pattern=A,this.query=k2t(this.pattern,this.options)}static condition(A,e){return e.useExtendedSearch}searchIn(A){const e=this.query;if(!e)return{isMatch:!1,score:1};const{includeMatches:i,isCaseSensitive:n,ignoreDiacritics:o}=this.options;A=n?A:A.toLowerCase(),A=o?X8(A):A;let s=0,r=[],a=0;for(let g=0,I=e.length;g<I;g+=1){const c=e[g];r.length=0,s=0;for(let B=0,C=c.length;B<C;B+=1){const l=c[B],{isMatch:Q,indices:E,score:h}=l.search(A);if(Q){if(s+=1,a+=h,i){const u=l.constructor.type;x2t.has(u)?r=[...r,...E]:r.push(E)}}else{a=0,s=0,r.length=0;break}}if(s){let B={isMatch:!0,score:a/s};return i&&(B.indices=r),B}}return{isMatch:!1,score:1}}}const HEA=[];function F2t(...t){HEA.push(...t)}function YEA(t,A){for(let e=0,i=HEA.length;e<i;e+=1){let n=HEA[e];if(n.condition(t,A))return new n(t,A)}return new jie(t,A)}const $8={AND:"$and",OR:"$or"},JEA={PATH:"$path",PATTERN:"$val"},KEA=t=>!!(t[$8.AND]||t[$8.OR]),_2t=t=>!!t[JEA.PATH],R2t=t=>!aS(t)&&qie(t)&&!KEA(t),ene=t=>({[$8.AND]:Object.keys(t).map(A=>({[A]:t[A]}))});function tne(t,A,{auto:e=!0}={}){const i=n=>{let o=Object.keys(n);const s=_2t(n);if(!s&&o.length>1&&!KEA(n))return i(ene(n));if(R2t(n)){const a=s?n[JEA.PATH]:o[0],g=s?n[JEA.PATTERN]:n[a];if(!Nm(g))throw new Error(a2t(a));const I={keyId:vEA(a),pattern:g};return e&&(I.searcher=YEA(g,A)),I}let r={children:[],operator:o[0]};return o.forEach(a=>{const g=n[a];aS(g)&&g.forEach(I=>{r.children.push(i(I))})}),r};return KEA(t)||(t=ene(t)),i(t)}function N2t(t,{ignoreFieldNorm:A=Ro.ignoreFieldNorm}){t.forEach(e=>{let i=1;e.matches.forEach(({key:n,norm:o,score:s})=>{const r=n?n.weight:null;i*=Math.pow(s===0&&r?Number.EPSILON:s,(r||1)*(A?1:o))}),e.score=i})}function M2t(t,A){const e=t.matches;A.matches=[],zf(e)&&e.forEach(i=>{if(!zf(i.indices)||!i.indices.length)return;const{indices:n,value:o}=i;let s={indices:n,value:o};i.key&&(s.key=i.key.src),i.idx>-1&&(s.refIndex=i.idx),A.matches.push(s)})}function v2t(t,A){A.score=t.score}function U2t(t,A,{includeMatches:e=Ro.includeMatches,includeScore:i=Ro.includeScore}={}){const n=[];return e&&n.push(M2t),i&&n.push(v2t),t.map(o=>{const{idx:s}=o,r={item:A[s],refIndex:s};return n.length&&n.forEach(a=>{a(o,r)}),r})}class tM{constructor(A,e={},i){this.options={...Ro,...e},this.options.useExtendedSearch,this._keyStore=new B2t(this.options.keys),this.setCollection(A,i)}setCollection(A,e){if(this._docs=A,e&&!(e instanceof UEA))throw new Error(r2t);this._myIndex=e||Vie(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}add(A){zf(A)&&(this._docs.push(A),this._myIndex.add(A))}remove(A=()=>!1){const e=[];for(let i=0,n=this._docs.length;i<n;i+=1){const o=this._docs[i];A(o,i)&&(this.removeAt(i),i-=1,n-=1,e.push(o))}return e}removeAt(A){this._docs.splice(A,1),this._myIndex.removeAt(A)}getIndex(){return this._myIndex}search(A,{limit:e=-1}={}){const{includeMatches:i,includeScore:n,shouldSort:o,sortFn:s,ignoreFieldNorm:r}=this.options;let a=Nm(A)?Nm(this._docs[0])?this._searchStringList(A):this._searchObjectList(A):this._searchLogical(A);return N2t(a,{ignoreFieldNorm:r}),o&&a.sort(s),Tie(e)&&e>-1&&(a=a.slice(0,e)),U2t(a,this._docs,{includeMatches:i,includeScore:n})}_searchStringList(A){const e=YEA(A,this.options),{records:i}=this._myIndex,n=[];return i.forEach(({v:o,i:s,n:r})=>{if(!zf(o))return;const{isMatch:a,score:g,indices:I}=e.searchIn(o);a&&n.push({item:o,idx:s,matches:[{score:g,value:o,norm:r,indices:I}]})}),n}_searchLogical(A){const e=tne(A,this.options),i=(r,a,g)=>{if(!r.children){const{keyId:c,searcher:B}=r,C=this._findMatches({key:this._keyStore.get(c),value:this._myIndex.getValueForItemAtKeyId(a,c),searcher:B});return C&&C.length?[{idx:g,item:a,matches:C}]:[]}const I=[];for(let c=0,B=r.children.length;c<B;c+=1){const C=r.children[c],l=i(C,a,g);if(l.length)I.push(...l);else if(r.operator===$8.AND)return[]}return I},n=this._myIndex.records,o={},s=[];return n.forEach(({$:r,i:a})=>{if(zf(r)){let g=i(e,r,a);g.length&&(o[a]||(o[a]={idx:a,item:r,matches:[]},s.push(o[a])),g.forEach(({matches:I})=>{o[a].matches.push(...I)}))}}),s}_searchObjectList(A){const e=YEA(A,this.options),{keys:i,records:n}=this._myIndex,o=[];return n.forEach(({$:s,i:r})=>{if(!zf(s))return;let a=[];i.forEach((g,I)=>{a.push(...this._findMatches({key:g,value:s[I],searcher:e}))}),a.length&&o.push({idx:r,item:s,matches:a})}),o}_findMatches({key:A,value:e,searcher:i}){if(!zf(e))return[];let n=[];if(aS(e))e.forEach(({v:o,i:s,n:r})=>{if(!zf(o))return;const{isMatch:a,score:g,indices:I}=i.searchIn(o);a&&n.push({score:g,key:A,value:o,idx:s,norm:r,indices:I})});else{const{v:o,n:s}=e,{isMatch:r,score:a,indices:g}=i.searchIn(o);r&&n.push({score:a,key:A,value:o,norm:s,indices:g})}return n}}tM.version="7.1.0",tM.createIndex=Vie,tM.parseIndex=E2t,tM.config=Ro,tM.parseQuery=tne,F2t(G2t);let TEA=null,kL=null,qEA=null;const L2t=async()=>TEA||kL||(kL=fetch("https://kicad-mod-cache.tscircuit.com/kicad_files.json").then(t=>t.json()).then(t=>(TEA=t,kL=null,t)),kL),H2t=async(t,A=20)=>{const e=await L2t();return qEA||(qEA=new tM(e)),qEA.search(t).slice(0,A).map(i=>i.item)},Y2t=t=>{const A=t.replace(".pretty/",":").replace(".kicad_mod",""),e=`kicad:${A}`;return{path:t,qualifiedName:e,description:A}},J2t=()=>{const[t,A]=$.useState([]),[e,i]=$.useState(!1),[n,o]=$.useState(null),[s,r]=$.useState(!1),a=$.useCallback(async I=>{const c=I.trim();if(!c)return[];i(!0),o(null);try{const C=(await H2t(c,20)).map(l=>({source:"kicad",footprint:Y2t(l)}));return A(C),C}catch(B){return console.error("Error searching KiCad footprints",B),A([]),o(B instanceof Error?B.message:"Failed to search KiCad footprints"),[]}finally{i(!1),r(!0)}},[]),g=$.useCallback(()=>{A([]),i(!1),o(null),r(!1)},[]);return{results:t,isSearching:e,error:n,hasSearched:s,search:a,reset:g}},K2t=({onTscircuitPackageSelected:t,onJlcpcbComponentTsxLoaded:A,onKicadStringSelected:e})=>{const i=[];return t&&i.push("tscircuit.com"),A&&i.push("jlcpcb"),e&&i.push("kicad"),i},T2t=({isOpen:t,onClose:A,jlcpcbProxyRequestHeaders:e,onKicadStringSelected:i,onTscircuitPackageSelected:n,onJlcpcbComponentTsxLoaded:o,jlcpcbProxyApiBase:s})=>{q8();const r=$.useMemo(()=>K2t({onKicadStringSelected:i,onTscircuitPackageSelected:n,onJlcpcbComponentTsxLoaded:o}),[i,n,o]),a=r.length>0,[g,I]=$.useState(r[0]??"tscircuit.com"),[c,B]=$.useState(""),[C,l]=$.useState(null),{results:Q,isSearching:E,error:h,hasSearched:u,search:d,reset:f}=A2t(),{results:b,isSearching:m,error:x,hasSearched:D,search:F,reset:k}=t2t(),{results:U,isSearching:M,error:Y,hasSearched:P,search:T,reset:O}=J2t(),{details:W,isLoading:eA,fetchDetails:oA,reset:IA}=X1t(),[iA,nA]=$.useState(null),[aA,lA]=$.useState(!1),[fA,xA]=$.useState("pcb"),[_A,RA]=$.useState(null),[CA,SA]=$.useState(!1);$.useEffect(()=>{RA(null)},[C]);const DA=$.useCallback(()=>{f(),k(),O(),l(null)},[k,O,f]);$.useEffect(()=>{t||(DA(),B(""),lA(!1),nA(null),RA(null))},[t,DA]),$.useEffect(()=>{B(""),l(null),g==="tscircuit.com"?f():g==="jlcpcb"?k():g==="kicad"&&O()},[g,k,O,f]);const qA=HA=>{l(HA),nA(HA),xA("pcb"),lA(!0),IA();const FA=HA.package.owner_github_username,KA=HA.package.unscoped_name;if(FA&&KA){const OA=KA.split("/").pop()??KA;oA(FA,OA)}},oe=async()=>{c.trim()&&(l(null),g==="tscircuit.com"?await d(c):g==="jlcpcb"?await F(c):g==="kicad"&&await T(c))},Ie=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(!o)throw new Error("JLCPCB handler not provided");const FA=await P1t(HA.component.partNumber,{headers:e,apiBase:s});await o({result:HA,tsx:FA})}else if(HA.source==="tscircuit.com"){if(!n)throw new Error("tscircuit package handler not provided");const FA=HA.package.owner_github_username,KA=HA.package.unscoped_name;if(!FA||!KA)throw new Error("Missing package metadata");const OA=KA.split("/").pop()??KA,ee=`@tsci/${FA}.${OA}`;await n({result:HA,fullPackageName:ee})}return!0}catch(FA){return console.error("Failed to import component",FA),RA(FA instanceof Error?FA.message:"Failed to import component"),!1}finally{SA(!1)}};let yA=[],ae=!1,PA=null,TA=!1;g==="tscircuit.com"?(yA=Q,ae=E,PA=h,TA=u):g==="jlcpcb"?(yA=b,ae=m,PA=x,TA=D):g==="kicad"&&(yA=U,ae=M,PA=Y,TA=P);const XA=async()=>{if(!C)return;await Ie(C)&&(A(),DA(),B(""))},NA=HA=>{HA||A()},mA=HA=>{lA(HA),HA||nA(null)};return V.jsxs(AM,{open:t,onOpenChange:NA,children:[V.jsxs(HG,{style:{width:"calc(100vw - 2rem)"},className:"rf-rounded-sm rf-max-h-[90vh] rf-overflow-y-auto rf-flex rf-flex-col",children:[V.jsxs(YG,{children:[V.jsx(JG,{className:"rf-text-lg sm:rf-text-xl",children:"Import Component"}),V.jsx(eM,{className:"rf-text-sm",children:a?"Search for components from available sources.":"Import options are disabled because no handlers were provided."})]}),a?V.jsxs(JeA,{value:g,onValueChange:HA=>I(HA),children:[V.jsx(BP,{className:"rf-flex rf-w-full rf-gap-2",children:r.map(HA=>V.jsx(em,{value:HA,className:"rf-flex-1 rf-text-xs sm:rf-text-sm",children:REA[HA].label},HA))}),V.jsx(O1t,{query:c,placeholder:REA[g].placeholder,isSearching:ae,onQueryChange:B,onSubmit:oe}),V.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:ae?V.jsxs("div",{className:"rf-p-8 rf-text-center rf-text-zinc-500",children:[V.jsx($D,{className:"rf-h-8 rf-w-8 rf-animate-spin rf-mx-auto rf-mb-2"}),V.jsx("p",{children:"Searching..."})]}):yA.length>0?V.jsx(j1t,{results:yA,selected:C,onSelect:l,onShowDetails:g==="tscircuit.com"?qA:void 0}):V.jsx("div",{className:"rf-p-8 rf-text-center rf-text-zinc-500",children:PA?`Error: ${PA}`:TA?REA[g].emptyMessage:"Enter a search term to find components"})})]}):null,_A?V.jsx("div",{className:"rf-text-sm rf-text-red-600 rf-mt-2",children:_A}):null,V.jsxs(bL,{className:"rf-flex rf-flex-col sm:rf-flex-row rf-gap-2",children:[V.jsx(Ma,{variant:"outline",onClick:A,className:"rf-order-2 sm:rf-order-1",children:"Cancel"}),V.jsx(Ma,{onClick:XA,disabled:!C||CA,className:"rf-order-1 sm:rf-order-2",children:CA?V.jsx($D,{className:"rf-h-4 rf-w-4 rf-animate-spin"}):"Import"})]})]}),V.jsx(z1t,{packageResult:iA,isOpen:aA,onOpenChange:mA,isLoading:eA,details:W,previewTab:fA,onPreviewTabChange:HA=>xA(HA),isSubmitting:CA,onImport:()=>{iA&&Ie(iA).then(HA=>{HA&&(lA(!1),A(),DA(),B(""))})}})]})},q2t=t=>{const A=t.match(/export const (\w+) =/);if(!A)throw new Error("Could not determine component name from TSX contents");return A[1]},ine=t=>{const A=_c(s=>s.pushEvent),e=_c(s=>s.upsertFile),i=async({result:s,fullPackageName:r})=>{const g=s.package.unscoped_name??s.package.name;await Cs.promise(A({event_type:"INSTALL_PACKAGE",full_package_name:r}),{loading:`Requesting install for "${g}"`,success:`Install requested for "${g}"`,error:I=>`Failed to request install: ${I instanceof Error?I.message:String(I)}`})},n=async({footprint:s})=>{await Cs.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)}`})},o=async({result:s,tsx:r})=>{const g=`imports/${q2t(r)}.tsx`;await Cs.promise(e(g,r),{loading:`Importing ${s.component.partNumber}`,success:`Imported to "${g}"`,error:I=>`Failed to import component: ${I instanceof Error?I.message:String(I)}`})};return V.jsx(T2t,{...t,onTscircuitPackageSelected:i,onKicadStringSelected:n,onJlcpcbComponentTsxLoaded:o})};ine.displayName="ImportComponentDialogForCli";var PEA={exports:{}},nne;function P2t(){return nne||(nne=1,(function(t,A){var e={env:{},version:""};/*!
|
|
5891
|
+
For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return $.useEffect(()=>{document.getElementById(t.current?.getAttribute("aria-describedby"))||console.warn(A)},[A,t]),null},F1t=Qie,_1t=Eie,Sie=hie,bie=uie,kie=wie,xie=Die,Gie=pie,Fie=yie;const _ie=F1t,R1t=_1t,Rie=$.forwardRef(({className:t,...A},e)=>V.jsx(Sie,{className:Ji("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",t),...A,ref:e}));Rie.displayName=Sie.displayName;const mEA=$.forwardRef(({className:t,...A},e)=>V.jsxs(R1t,{children:[V.jsx(Rie,{}),V.jsx(bie,{ref:e,className:Ji("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",t),...A})]}));mEA.displayName=bie.displayName;const DEA=({className:t,...A})=>V.jsx("div",{className:Ji("rf-flex rf-flex-col rf-space-y-2 rf-text-center sm:rf-text-left",t),...A});DEA.displayName="AlertDialogHeader";const SEA=({className:t,...A})=>V.jsx("div",{className:Ji("rf-flex rf-flex-col-reverse sm:rf-flex-row sm:rf-justify-end sm:rf-space-x-2",t),...A});SEA.displayName="AlertDialogFooter";const bEA=$.forwardRef(({className:t,...A},e)=>V.jsx(Gie,{ref:e,className:Ji("rf-text-lg rf-font-semibold",t),...A}));bEA.displayName=Gie.displayName;const kEA=$.forwardRef(({className:t,...A},e)=>V.jsx(Fie,{ref:e,className:Ji("rf-text-sm rf-text-zinc-500 dark:rf-text-zinc-400",t),...A}));kEA.displayName=Fie.displayName;const N1t=$.forwardRef(({className:t,...A},e)=>V.jsx(kie,{ref:e,className:Ji(DN(),t),...A}));N1t.displayName=kie.displayName;const xEA=$.forwardRef(({className:t,...A},e)=>V.jsx(xie,{ref:e,className:Ji(DN({variant:"outline"}),"rf-mt-2 sm:rf-mt-0",t),...A}));xEA.displayName=xie.displayName;function M1t(t){const A=$.useRef({value:t,previous:t});return $.useMemo(()=>(A.current.value!==t&&(A.current.previous=A.current.value,A.current.value=t),A.current.previous),[t])}var j8="Checkbox",[v1t]=Vw(j8),[U1t,GEA]=v1t(j8);function L1t(t){const{__scopeCheckbox:A,checked:e,children:i,defaultChecked:n,disabled:o,form:s,name:r,onCheckedChange:a,required:g,value:I="on",internal_do_not_use_render:c}=t,[B,C]=Gx({prop:e,defaultProp:n??!1,onChange:a,caller:j8}),[l,Q]=$.useState(null),[E,h]=$.useState(null),u=$.useRef(!1),d=l?!!s||!!l.closest("form"):!0,f={checked:B,disabled:o,setChecked:C,control:l,setControl:Q,name:r,form:s,value:I,hasConsumerStoppedPropagationRef:u,required:g,defaultChecked:hk(n)?!1:n,isFormControl:d,bubbleInput:E,setBubbleInput:h};return V.jsx(U1t,{scope:A,...f,children:H1t(c)?c(f):i})}var Nie="CheckboxTrigger",Mie=$.forwardRef(({__scopeCheckbox:t,onKeyDown:A,onClick:e,...i},n)=>{const{control:o,value:s,disabled:r,checked:a,required:g,setControl:I,setChecked:c,hasConsumerStoppedPropagationRef:B,isFormControl:C,bubbleInput:l}=GEA(Nie,t),Q=lB(n,I),E=$.useRef(a);return $.useEffect(()=>{const h=o?.form;if(h){const u=()=>c(E.current);return h.addEventListener("reset",u),()=>h.removeEventListener("reset",u)}},[o,c]),V.jsx(gr.button,{type:"button",role:"checkbox","aria-checked":hk(a)?"mixed":a,"aria-required":g,"data-state":Yie(a),"data-disabled":r?"":void 0,disabled:r,value:s,...i,ref:Q,onKeyDown:Io(A,h=>{h.key==="Enter"&&h.preventDefault()}),onClick:Io(e,h=>{c(u=>hk(u)?!0:!u),l&&C&&(B.current=h.isPropagationStopped(),B.current||h.stopPropagation())})})});Mie.displayName=Nie;var FEA=$.forwardRef((t,A)=>{const{__scopeCheckbox:e,name:i,checked:n,defaultChecked:o,required:s,disabled:r,value:a,onCheckedChange:g,form:I,...c}=t;return V.jsx(L1t,{__scopeCheckbox:e,checked:n,defaultChecked:o,disabled:r,required:s,onCheckedChange:g,name:i,form:I,value:a,internal_do_not_use_render:({isFormControl:B})=>V.jsxs(V.Fragment,{children:[V.jsx(Mie,{...c,ref:A,__scopeCheckbox:e}),B&&V.jsx(Hie,{__scopeCheckbox:e})]})})});FEA.displayName=j8;var vie="CheckboxIndicator",Uie=$.forwardRef((t,A)=>{const{__scopeCheckbox:e,forceMount:i,...n}=t,o=GEA(vie,e);return V.jsx(q0,{present:i||hk(o.checked)||o.checked===!0,children:V.jsx(gr.span,{"data-state":Yie(o.checked),"data-disabled":o.disabled?"":void 0,...n,ref:A,style:{pointerEvents:"none",...t.style}})})});Uie.displayName=vie;var Lie="CheckboxBubbleInput",Hie=$.forwardRef(({__scopeCheckbox:t,...A},e)=>{const{control:i,hasConsumerStoppedPropagationRef:n,checked:o,defaultChecked:s,required:r,disabled:a,name:g,value:I,form:c,bubbleInput:B,setBubbleInput:C}=GEA(Lie,t),l=lB(e,C),Q=M1t(o),E=ZjA(i);$.useEffect(()=>{const u=B;if(!u)return;const d=window.HTMLInputElement.prototype,b=Object.getOwnPropertyDescriptor(d,"checked").set,m=!n.current;if(Q!==o&&b){const x=new Event("click",{bubbles:m});u.indeterminate=hk(o),b.call(u,hk(o)?!1:o),u.dispatchEvent(x)}},[B,Q,o,n]);const h=$.useRef(hk(o)?!1:o);return V.jsx(gr.input,{type:"checkbox","aria-hidden":!0,defaultChecked:s??h.current,required:r,disabled:a,name:g,value:I,form:c,...A,tabIndex:-1,ref:l,style:{...A.style,...E,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});Hie.displayName=Lie;function H1t(t){return typeof t=="function"}function hk(t){return t==="indeterminate"}function Yie(t){return hk(t)?"indeterminate":t?"checked":"unchecked"}const _EA=$.forwardRef(({className:t,...A},e)=>V.jsx(FEA,{ref:e,className:Ji("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",t),...A,children:V.jsx(Uie,{className:Ji("rf-flex rf-items-center rf-justify-center rf-text-current"),children:V.jsx(ek,{className:"rf-h-4 rf-w-4"})})}));_EA.displayName=FEA.displayName;const AM=pEA,Y1t=fEA,Jie=$.forwardRef(({className:t,...A},e)=>V.jsx(Z8,{className:Ji("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",t),...A,ref:e}));Jie.displayName=Z8.displayName;const HG=$.forwardRef(({className:t,children:A,showOverlay:e=!0,...i},n)=>V.jsxs(Y1t,{children:[V.jsx(Jie,{className:Ji(e?"":"rf-hidden")}),V.jsx(V8,{ref:n,className:Ji("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",t),...i,children:A})]}));HG.displayName=V8.displayName;const YG=({className:t,...A})=>V.jsx("div",{className:Ji("rf-flex rf-flex-col rf-space-y-2 rf-text-center sm:rf-text-left",t),...A});YG.displayName="DialogHeader";const bL=({className:t,...A})=>V.jsx("div",{className:Ji("rf-flex rf-flex-col-reverse sm:rf-flex-row sm:rf-justify-end sm:rf-space-x-2",t),...A});bL.displayName="DialogFooter";const JG=$.forwardRef(({className:t,...A},e)=>V.jsx(yEA,{ref:e,className:Ji("rf-text-lg rf-font-semibold",t),...A}));JG.displayName=yEA.displayName;const eM=$.forwardRef(({className:t,...A},e)=>V.jsx(wEA,{ref:e,className:Ji("rf-text-sm rf-text-zinc-500 dark:rf-text-zinc-400",t),...A}));eM.displayName=wEA.displayName;const REA={"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"}},J1t="https://cdn.jsdelivr.net/npm/easyeda@latest/dist/browser/index.js";let NEA=null;const K1t=async()=>(NEA||(NEA=import(J1t)),NEA),T1t=async(t,A=10)=>{const e=encodeURIComponent(t),i=await fetch(`https://jlcsearch.tscircuit.com/api/search?limit=${A}&q=${e}`);if(!i.ok)throw new Error(`JLCPCB API error: ${i.status}`);return(await i.json()).components??[]},q1t=t=>({lcscId:t.lcsc,manufacturer:t.mfr,description:t.description,partNumber:`C${t.lcsc}`,package:t.package,price:t.price,stock:t.stock}),P1t=async(t,A)=>{const{fetchEasyEDAComponent:e,convertRawEasyToTsx:i}=await K1t(),n=await e(t,{fetch:(o,s)=>fetch(`${A?.apiBase??Sp}/proxy`,{...s,headers:{...s?.headers,"X-Target-Url":o.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(n)},O1t=({query:t,placeholder:A,isSearching:e,onQueryChange:i,onSubmit:n})=>{const o=$.useCallback(s=>{s.key==="Enter"&&(s.preventDefault(),n())},[n]);return V.jsxs("div",{className:"rf-flex rf-items-center rf-gap-2 rf-mt-4",children:[V.jsxs("div",{className:"rf-relative rf-flex-grow",children:[V.jsx(JCA,{className:"rf-absolute rf-left-2 rf-top-2.5 rf-h-4 rf-w-4 rf-text-muted-foreground"}),V.jsx(hQA,{placeholder:A,className:"rf-pl-8",spellCheck:!1,autoComplete:"off",value:t,onChange:s=>i(s.target.value),onKeyDown:o})]}),V.jsx(Ma,{onClick:n,disabled:e||t.trim().length<1,className:"sm:rf-px-4 rf-px-3",children:e?V.jsx($D,{className:"rf-h-4 rf-w-4 rf-animate-spin"}):V.jsxs(V.Fragment,{children:[V.jsx(JCA,{className:"rf-h-4 rf-w-4 sm:rf-hidden"}),V.jsx("span",{className:"rf-hidden sm:rf-inline",children:"Search"})]})})]})},Kie=t=>{switch(t.source){case"tscircuit.com":{const A=t.package;return`tscircuit-${A.package_id??`${A.org_owner_tscircuit_handle??"unknown"}-${A.unscoped_name??A.name??"package"}`}`}case"jlcpcb":return`jlc-${t.component.lcscId}`;case"kicad":return`kicad-${t.footprint.path}`;default:return"unknown"}},W1t=t=>{switch(t.source){case"tscircuit.com":return t.package.unscoped_name;case"jlcpcb":return t.component.manufacturer;case"kicad":return t.footprint.qualifiedName}},Z1t=t=>{switch(t.source){case"tscircuit.com":return t.package.description||(t.package.org_owner_tscircuit_handle?`Component by ${t.package.org_owner_tscircuit_handle}`:void 0);case"jlcpcb":return t.component.description;case"kicad":return t.footprint.description}},V1t=t=>{switch(t.source){case"tscircuit.com":return t.package.name;case"jlcpcb":return t.component.partNumber;case"kicad":return}},j1t=({results:t,selected:A,onSelect:e,onShowDetails:i})=>{const n=A?Kie(A):null;return V.jsx("div",{className:"rf-divide-y rf-w-full rf-overflow-hidden",children:t.map(o=>{const s=Kie(o),r=n===s,a=W1t(o),g=Z1t(o),I=V1t(o),c=o.source==="jlcpcb"?o.component.stock:null;return V.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:()=>e(o),children:[V.jsxs("div",{className:"rf-min-w-0 rf-overflow-hidden rf-w-full",children:[V.jsxs("div",{className:"rf-flex rf-items-start rf-gap-2 rf-min-w-0",children:[V.jsx("div",{className:"rf-font-medium rf-text-sm rf-truncate rf-flex-1 rf-min-w-0",children:a}),o.source==="jlcpcb"&&c!=null?V.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]}),V.jsxs("div",{className:"rf-text-xs rf-text-zinc-500 rf-truncate rf-w-full",children:[I?V.jsx("span",{className:"rf-mr-2",children:I}):null,g]})]}),o.source==="tscircuit.com"&&i?V.jsx("div",{className:"rf-flex-shrink-0 rf-w-full sm:rf-w-auto",children:V.jsx(Ma,{variant:"outline",size:"sm",className:"rf-text-xs rf-w-full sm:rf-w-auto",onClick:B=>{B.stopPropagation(),i(o)},children:"See Details"})}):o.source==="jlcpcb"&&c!=null?V.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)})})},z1t=({packageResult:t,isOpen:A,onOpenChange:e,isLoading:i,details:n,previewTab:o,onPreviewTabChange:s,isSubmitting:r,onImport:a})=>{const g=t?.package??null,I=g?.latest_pcb_preview_image_url,c=g?.latest_sch_preview_image_url,B=g?.latest_cad_preview_image_url,C=g?.unscoped_name?.split("/").pop()??g?.unscoped_name,l=g?.org_owner_tscircuit_handle??void 0,Q=l?`https://tscircuit.com/${l}`:void 0,E=l&&C?`https://tscircuit.com/${l}/${C}`:void 0;return V.jsx(AM,{open:A,onOpenChange:e,children:V.jsxs(HG,{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:[V.jsx(YG,{className:"rf-pb-4 rf-border-b",children:V.jsx("div",{className:"rf-flex rf-items-start rf-justify-between rf-gap-4",children:V.jsxs("div",{className:"rf-flex-1 rf-min-w-0",children:[V.jsx(JG,{className:"rf-text-xl rf-font-semibold rf-truncate",children:C}),V.jsx(eM,{children:g?.description})]})})}),V.jsxs("div",{className:"rf-flex-1 rf-overflow-y-auto rf-py-4 rf-space-y-6",children:[l?V.jsxs("div",{children:[V.jsx("span",{className:"rf-text-xs rf-font-medium rf-text-gray-500 rf-uppercase rf-tracking-wide",children:"Created by"}),V.jsx("div",{className:"rf-mt-1 rf-text-sm rf-font-medium",children:Q?V.jsx("a",{href:Q,target:"_blank",rel:"noopener noreferrer",className:"rf-text-black hover:rf-underline",children:l}):l})]}):null,(B||I||c)&&V.jsx(V.Fragment,{children:V.jsxs("div",{children:[V.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-mb-4",children:"Preview"}),V.jsxs(JeA,{value:o,onValueChange:h=>s(h),children:[V.jsxs(BP,{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&&V.jsx(em,{value:"pcb",children:"PCB"}),c&&V.jsx(em,{value:"schematic",children:"Schematic"}),B&&V.jsx(em,{value:"3d",children:"3D"})]}),V.jsxs("div",{className:"rf-mt-4",children:[V.jsx(Fp,{value:"pcb",className:"rf-border rf-rounded-lg rf-overflow-hidden rf-bg-gray-50",children:I?V.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}),V.jsx(Fp,{value:"schematic",className:"rf-border rf-rounded-lg rf-overflow-hidden rf-bg-gray-50",children:c?V.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}),V.jsx(Fp,{value:"3d",className:"rf-border rf-rounded-lg rf-overflow-hidden rf-bg-gray-50",children:B?V.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})]})]})]})}),n?.ai_description?V.jsxs("section",{children:[V.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-mb-3",children:"AI Description"}),V.jsx("div",{className:"rf-bg-gray-50 rf-border rf-border-gray-200 rf-rounded-lg rf-p-4",children:V.jsx("p",{className:"rf-text-sm rf-text-gray-700 rf-leading-relaxed",children:n.ai_description})})]}):null,n?.ai_usage_instructions?V.jsxs("section",{children:[V.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-mb-3",children:"Usage Instructions"}),V.jsx("div",{className:"rf-bg-gray-50 rf-border rf-border-gray-200 rf-rounded-lg rf-p-4",children:V.jsx("p",{className:"rf-text-sm rf-text-gray-700 rf-leading-relaxed rf-whitespace-pre-wrap",children:n.ai_usage_instructions})})]}):null,i?V.jsxs("div",{className:"rf-flex rf-justify-center rf-items-center rf-gap-2 rf-text-gray-500",children:[V.jsx($D,{className:"rf-h-4 rf-w-4 rf-animate-spin"}),V.jsx("span",{className:"rf-text-sm",children:"Loading package details..."})]}):null]}),V.jsxs(bL,{className:"rf-pt-4 rf-border-t rf-flex rf-flex-col sm:rf-flex-row rf-justify-between rf-gap-2",children:[V.jsx("div",{className:"rf-flex-1",children:E?V.jsxs(Ma,{variant:"outline",size:"sm",className:"rf-gap-2 rf-w-full sm:rf-w-auto",onClick:()=>window.open(E,"_blank"),children:[V.jsx(Byt,{className:"rf-h-4 rf-w-4"}),"View on tscircuit.com"]}):null}),V.jsxs("div",{className:"rf-flex rf-flex-col sm:rf-flex-row rf-gap-2",children:[V.jsx(Ma,{variant:"outline",onClick:()=>e(!1),className:"rf-order-2 sm:rf-order-1",children:"Close"}),V.jsx(Ma,{onClick:a,disabled:r,className:"rf-bg-blue-600 hover:rf-bg-blue-700",children:r?V.jsx($D,{className:"rf-h-4 rf-w-4 rf-animate-spin"}):"Import Component"})]})]})]})})},X1t=()=>{const[t,A]=$.useState(null),[e,i]=$.useState(!1),n=$.useCallback(async(s,r)=>{i(!0);try{const a=await fetch(`https://api.tscircuit.com/packages/get?name=${encodeURIComponent(`${s}/${r}`)}`);if(!a.ok)throw new Error(`Failed to load package details: ${a.status}`);const g=await a.json();A(g.package??null)}catch(a){console.error("Failed to fetch package details",a),A(null)}finally{i(!1)}},[]),o=$.useCallback(()=>{A(null),i(!1)},[]);return{details:t,isLoading:e,fetchDetails:n,reset:o}},$1t=async t=>{const A=await fetch("https://registry-api.tscircuit.com/packages/search",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:t})});if(!A.ok)throw new Error(`tscircuit registry error: ${A.status}`);return(await A.json()).packages??[]},A2t=()=>{const[t,A]=$.useState([]),[e,i]=$.useState(!1),[n,o]=$.useState(null),[s,r]=$.useState(!1),a=$.useCallback(async I=>{const c=I.trim();if(!c)return[];i(!0),o(null);try{const C=(await $1t(c)).map(l=>({source:"tscircuit.com",package:l}));return A(C),C}catch(B){return console.error("Error searching tscircuit packages",B),A([]),o(B instanceof Error?B.message:"Failed to search tscircuit packages"),[]}finally{i(!1),r(!0)}},[]),g=$.useCallback(()=>{A([]),i(!1),o(null),r(!1)},[]);return{results:t,isSearching:e,error:n,hasSearched:s,search:a,reset:g}},e2t=t=>{const A=t.trim();return/^C\d+/i.test(A)?A.replace(/^C/i,""):A},t2t=()=>{const[t,A]=$.useState([]),[e,i]=$.useState(!1),[n,o]=$.useState(null),[s,r]=$.useState(!1),a=$.useCallback(async I=>{const c=e2t(I);if(!c)return[];i(!0),o(null);try{const C=(await T1t(c,10)).map(l=>({source:"jlcpcb",component:q1t(l)}));return A(C),C}catch(B){return console.error("Error searching JLCPCB components",B),A([]),o(B instanceof Error?B.message:"Failed to search JLCPCB components"),[]}finally{i(!1),r(!0)}},[]),g=$.useCallback(()=>{A([]),i(!1),o(null),r(!1)},[]);return{results:t,isSearching:e,error:n,hasSearched:s,search:a,reset:g}};function aS(t){return Array.isArray?Array.isArray(t):Pie(t)==="[object Array]"}function i2t(t){if(typeof t=="string")return t;let A=t+"";return A=="0"&&1/t==-1/0?"-0":A}function n2t(t){return t==null?"":i2t(t)}function Nm(t){return typeof t=="string"}function Tie(t){return typeof t=="number"}function o2t(t){return t===!0||t===!1||s2t(t)&&Pie(t)=="[object Boolean]"}function qie(t){return typeof t=="object"}function s2t(t){return qie(t)&&t!==null}function zf(t){return t!=null}function MEA(t){return!t.trim().length}function Pie(t){return t==null?t===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(t)}const r2t="Incorrect 'index' type",a2t=t=>`Invalid value for key ${t}`,g2t=t=>`Pattern length exceeds max of ${t}.`,I2t=t=>`Missing ${t} property in key`,c2t=t=>`Property 'weight' in key '${t}' must be a positive integer`,Oie=Object.prototype.hasOwnProperty;class B2t{constructor(A){this._keys=[],this._keyMap={};let e=0;A.forEach(i=>{let n=Wie(i);this._keys.push(n),this._keyMap[n.id]=n,e+=n.weight}),this._keys.forEach(i=>{i.weight/=e})}get(A){return this._keyMap[A]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}}function Wie(t){let A=null,e=null,i=null,n=1,o=null;if(Nm(t)||aS(t))i=t,A=Zie(t),e=vEA(t);else{if(!Oie.call(t,"name"))throw new Error(I2t("name"));const s=t.name;if(i=s,Oie.call(t,"weight")&&(n=t.weight,n<=0))throw new Error(c2t(s));A=Zie(s),e=vEA(s),o=t.getFn}return{path:A,id:e,weight:n,src:i,getFn:o}}function Zie(t){return aS(t)?t:t.split(".")}function vEA(t){return aS(t)?t.join("."):t}function C2t(t,A){let e=[],i=!1;const n=(o,s,r)=>{if(zf(o))if(!s[r])e.push(o);else{let a=s[r];const g=o[a];if(!zf(g))return;if(r===s.length-1&&(Nm(g)||Tie(g)||o2t(g)))e.push(n2t(g));else if(aS(g)){i=!0;for(let I=0,c=g.length;I<c;I+=1)n(g[I],s,r+1)}else s.length&&n(g,s,r+1)}};return n(t,Nm(A)?A.split("."):A,0),i?e:e[0]}var Ro={...{isCaseSensitive:!1,ignoreDiacritics:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:(t,A)=>t.score===A.score?t.idx<A.idx?-1:1:t.score<A.score?-1:1},...{includeMatches:!1,findAllMatches:!1,minMatchCharLength:1},...{location:0,threshold:.6,distance:100},...{useExtendedSearch:!1,getFn:C2t,ignoreLocation:!1,ignoreFieldNorm:!1,fieldNormWeight:1}};const l2t=/[^ ]+/g;function Q2t(t=1,A=3){const e=new Map,i=Math.pow(10,A);return{get(n){const o=n.match(l2t).length;if(e.has(o))return e.get(o);const s=1/Math.pow(o,.5*t),r=parseFloat(Math.round(s*i)/i);return e.set(o,r),r},clear(){e.clear()}}}class UEA{constructor({getFn:A=Ro.getFn,fieldNormWeight:e=Ro.fieldNormWeight}={}){this.norm=Q2t(e,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((e,i)=>{this._keysMap[e.id]=i})}create(){this.isCreated||!this.docs.length||(this.isCreated=!0,Nm(this.docs[0])?this.docs.forEach((A,e)=>{this._addString(A,e)}):this.docs.forEach((A,e)=>{this._addObject(A,e)}),this.norm.clear())}add(A){const e=this.size();Nm(A)?this._addString(A,e):this._addObject(A,e)}removeAt(A){this.records.splice(A,1);for(let e=A,i=this.size();e<i;e+=1)this.records[e].i-=1}getValueForItemAtKeyId(A,e){return A[this._keysMap[e]]}size(){return this.records.length}_addString(A,e){if(!zf(A)||MEA(A))return;let i={v:A,i:e,n:this.norm.get(A)};this.records.push(i)}_addObject(A,e){let i={i:e,$:{}};this.keys.forEach((n,o)=>{let s=n.getFn?n.getFn(A):this.getFn(A,n.path);if(zf(s)){if(aS(s)){let r=[];const a=[{nestedArrIndex:-1,value:s}];for(;a.length;){const{nestedArrIndex:g,value:I}=a.pop();if(zf(I))if(Nm(I)&&!MEA(I)){let c={v:I,i:g,n:this.norm.get(I)};r.push(c)}else aS(I)&&I.forEach((c,B)=>{a.push({nestedArrIndex:B,value:c})})}i.$[o]=r}else if(Nm(s)&&!MEA(s)){let r={v:s,n:this.norm.get(s)};i.$[o]=r}}}),this.records.push(i)}toJSON(){return{keys:this.keys,records:this.records}}}function Vie(t,A,{getFn:e=Ro.getFn,fieldNormWeight:i=Ro.fieldNormWeight}={}){const n=new UEA({getFn:e,fieldNormWeight:i});return n.setKeys(t.map(Wie)),n.setSources(A),n.create(),n}function E2t(t,{getFn:A=Ro.getFn,fieldNormWeight:e=Ro.fieldNormWeight}={}){const{keys:i,records:n}=t,o=new UEA({getFn:A,fieldNormWeight:e});return o.setKeys(i),o.setIndexRecords(n),o}function z8(t,{errors:A=0,currentLocation:e=0,expectedLocation:i=0,distance:n=Ro.distance,ignoreLocation:o=Ro.ignoreLocation}={}){const s=A/t.length;if(o)return s;const r=Math.abs(i-e);return n?s+r/n:r?1:s}function h2t(t=[],A=Ro.minMatchCharLength){let e=[],i=-1,n=-1,o=0;for(let s=t.length;o<s;o+=1){let r=t[o];r&&i===-1?i=o:!r&&i!==-1&&(n=o-1,n-i+1>=A&&e.push([i,n]),i=-1)}return t[o-1]&&o-i>=A&&e.push([i,o-1]),e}const KG=32;function u2t(t,A,e,{location:i=Ro.location,distance:n=Ro.distance,threshold:o=Ro.threshold,findAllMatches:s=Ro.findAllMatches,minMatchCharLength:r=Ro.minMatchCharLength,includeMatches:a=Ro.includeMatches,ignoreLocation:g=Ro.ignoreLocation}={}){if(A.length>KG)throw new Error(g2t(KG));const I=A.length,c=t.length,B=Math.max(0,Math.min(i,c));let C=o,l=B;const Q=r>1||a,E=Q?Array(c):[];let h;for(;(h=t.indexOf(A,l))>-1;){let x=z8(A,{currentLocation:h,expectedLocation:B,distance:n,ignoreLocation:g});if(C=Math.min(x,C),l=h+I,Q){let D=0;for(;D<I;)E[h+D]=1,D+=1}}l=-1;let u=[],d=1,f=I+c;const b=1<<I-1;for(let x=0;x<I;x+=1){let D=0,F=f;for(;D<F;)z8(A,{errors:x,currentLocation:B+F,expectedLocation:B,distance:n,ignoreLocation:g})<=C?D=F:f=F,F=Math.floor((f-D)/2+D);f=F;let k=Math.max(1,B-F+1),U=s?c:Math.min(B+F,c)+I,M=Array(U+2);M[U+1]=(1<<x)-1;for(let P=U;P>=k;P-=1){let T=P-1,O=e[t.charAt(T)];if(Q&&(E[T]=+!!O),M[P]=(M[P+1]<<1|1)&O,x&&(M[P]|=(u[P+1]|u[P])<<1|1|u[P+1]),M[P]&b&&(d=z8(A,{errors:x,currentLocation:T,expectedLocation:B,distance:n,ignoreLocation:g}),d<=C)){if(C=d,l=T,l<=B)break;k=Math.max(1,2*B-l)}}if(z8(A,{errors:x+1,currentLocation:B,expectedLocation:B,distance:n,ignoreLocation:g})>C)break;u=M}const m={isMatch:l>=0,score:Math.max(.001,d)};if(Q){const x=h2t(E,r);x.length?a&&(m.indices=x):m.isMatch=!1}return m}function d2t(t){let A={};for(let e=0,i=t.length;e<i;e+=1){const n=t.charAt(e);A[n]=(A[n]||0)|1<<i-e-1}return A}const X8=String.prototype.normalize?(t=>t.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,"")):(t=>t);class jie{constructor(A,{location:e=Ro.location,threshold:i=Ro.threshold,distance:n=Ro.distance,includeMatches:o=Ro.includeMatches,findAllMatches:s=Ro.findAllMatches,minMatchCharLength:r=Ro.minMatchCharLength,isCaseSensitive:a=Ro.isCaseSensitive,ignoreDiacritics:g=Ro.ignoreDiacritics,ignoreLocation:I=Ro.ignoreLocation}={}){if(this.options={location:e,threshold:i,distance:n,includeMatches:o,findAllMatches:s,minMatchCharLength:r,isCaseSensitive:a,ignoreDiacritics:g,ignoreLocation:I},A=a?A:A.toLowerCase(),A=g?X8(A):A,this.pattern=A,this.chunks=[],!this.pattern.length)return;const c=(C,l)=>{this.chunks.push({pattern:C,alphabet:d2t(C),startIndex:l})},B=this.pattern.length;if(B>KG){let C=0;const l=B%KG,Q=B-l;for(;C<Q;)c(this.pattern.substr(C,KG),C),C+=KG;if(l){const E=B-KG;c(this.pattern.substr(E),E)}}else c(this.pattern,0)}searchIn(A){const{isCaseSensitive:e,ignoreDiacritics:i,includeMatches:n}=this.options;if(A=e?A:A.toLowerCase(),A=i?X8(A):A,this.pattern===A){let Q={isMatch:!0,score:0};return n&&(Q.indices=[[0,A.length-1]]),Q}const{location:o,distance:s,threshold:r,findAllMatches:a,minMatchCharLength:g,ignoreLocation:I}=this.options;let c=[],B=0,C=!1;this.chunks.forEach(({pattern:Q,alphabet:E,startIndex:h})=>{const{isMatch:u,score:d,indices:f}=u2t(A,Q,E,{location:o+h,distance:s,threshold:r,findAllMatches:a,minMatchCharLength:g,includeMatches:n,ignoreLocation:I});u&&(C=!0),B+=d,u&&f&&(c=[...c,...f])});let l={isMatch:C,score:C?B/this.chunks.length:1};return C&&n&&(l.indices=c),l}}class uk{constructor(A){this.pattern=A}static isMultiMatch(A){return zie(A,this.multiRegex)}static isSingleMatch(A){return zie(A,this.singleRegex)}search(){}}function zie(t,A){const e=t.match(A);return e?e[1]:null}class p2t extends uk{constructor(A){super(A)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(A){const e=A===this.pattern;return{isMatch:e,score:e?0:1,indices:[0,this.pattern.length-1]}}}class f2t extends uk{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 y2t extends uk{constructor(A){super(A)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(A){const e=A.startsWith(this.pattern);return{isMatch:e,score:e?0:1,indices:[0,this.pattern.length-1]}}}class w2t extends uk{constructor(A){super(A)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(A){const e=!A.startsWith(this.pattern);return{isMatch:e,score:e?0:1,indices:[0,A.length-1]}}}class m2t extends uk{constructor(A){super(A)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(A){const e=A.endsWith(this.pattern);return{isMatch:e,score:e?0:1,indices:[A.length-this.pattern.length,A.length-1]}}}class D2t extends uk{constructor(A){super(A)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(A){const e=!A.endsWith(this.pattern);return{isMatch:e,score:e?0:1,indices:[0,A.length-1]}}}class Xie extends uk{constructor(A,{location:e=Ro.location,threshold:i=Ro.threshold,distance:n=Ro.distance,includeMatches:o=Ro.includeMatches,findAllMatches:s=Ro.findAllMatches,minMatchCharLength:r=Ro.minMatchCharLength,isCaseSensitive:a=Ro.isCaseSensitive,ignoreDiacritics:g=Ro.ignoreDiacritics,ignoreLocation:I=Ro.ignoreLocation}={}){super(A),this._bitapSearch=new jie(A,{location:e,threshold:i,distance:n,includeMatches:o,findAllMatches:s,minMatchCharLength:r,isCaseSensitive:a,ignoreDiacritics:g,ignoreLocation:I})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(A){return this._bitapSearch.searchIn(A)}}class $ie extends uk{constructor(A){super(A)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(A){let e=0,i;const n=[],o=this.pattern.length;for(;(i=A.indexOf(this.pattern,e))>-1;)e=i+o,n.push([i,e-1]);const s=!!n.length;return{isMatch:s,score:s?0:1,indices:n}}}const LEA=[p2t,$ie,y2t,w2t,D2t,m2t,f2t,Xie],Ane=LEA.length,S2t=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/,b2t="|";function k2t(t,A={}){return t.split(b2t).map(e=>{let i=e.trim().split(S2t).filter(o=>o&&!!o.trim()),n=[];for(let o=0,s=i.length;o<s;o+=1){const r=i[o];let a=!1,g=-1;for(;!a&&++g<Ane;){const I=LEA[g];let c=I.isMultiMatch(r);c&&(n.push(new I(c,A)),a=!0)}if(!a)for(g=-1;++g<Ane;){const I=LEA[g];let c=I.isSingleMatch(r);if(c){n.push(new I(c,A));break}}}return n})}const x2t=new Set([Xie.type,$ie.type]);class G2t{constructor(A,{isCaseSensitive:e=Ro.isCaseSensitive,ignoreDiacritics:i=Ro.ignoreDiacritics,includeMatches:n=Ro.includeMatches,minMatchCharLength:o=Ro.minMatchCharLength,ignoreLocation:s=Ro.ignoreLocation,findAllMatches:r=Ro.findAllMatches,location:a=Ro.location,threshold:g=Ro.threshold,distance:I=Ro.distance}={}){this.query=null,this.options={isCaseSensitive:e,ignoreDiacritics:i,includeMatches:n,minMatchCharLength:o,findAllMatches:r,ignoreLocation:s,location:a,threshold:g,distance:I},A=e?A:A.toLowerCase(),A=i?X8(A):A,this.pattern=A,this.query=k2t(this.pattern,this.options)}static condition(A,e){return e.useExtendedSearch}searchIn(A){const e=this.query;if(!e)return{isMatch:!1,score:1};const{includeMatches:i,isCaseSensitive:n,ignoreDiacritics:o}=this.options;A=n?A:A.toLowerCase(),A=o?X8(A):A;let s=0,r=[],a=0;for(let g=0,I=e.length;g<I;g+=1){const c=e[g];r.length=0,s=0;for(let B=0,C=c.length;B<C;B+=1){const l=c[B],{isMatch:Q,indices:E,score:h}=l.search(A);if(Q){if(s+=1,a+=h,i){const u=l.constructor.type;x2t.has(u)?r=[...r,...E]:r.push(E)}}else{a=0,s=0,r.length=0;break}}if(s){let B={isMatch:!0,score:a/s};return i&&(B.indices=r),B}}return{isMatch:!1,score:1}}}const HEA=[];function F2t(...t){HEA.push(...t)}function YEA(t,A){for(let e=0,i=HEA.length;e<i;e+=1){let n=HEA[e];if(n.condition(t,A))return new n(t,A)}return new jie(t,A)}const $8={AND:"$and",OR:"$or"},JEA={PATH:"$path",PATTERN:"$val"},KEA=t=>!!(t[$8.AND]||t[$8.OR]),_2t=t=>!!t[JEA.PATH],R2t=t=>!aS(t)&&qie(t)&&!KEA(t),ene=t=>({[$8.AND]:Object.keys(t).map(A=>({[A]:t[A]}))});function tne(t,A,{auto:e=!0}={}){const i=n=>{let o=Object.keys(n);const s=_2t(n);if(!s&&o.length>1&&!KEA(n))return i(ene(n));if(R2t(n)){const a=s?n[JEA.PATH]:o[0],g=s?n[JEA.PATTERN]:n[a];if(!Nm(g))throw new Error(a2t(a));const I={keyId:vEA(a),pattern:g};return e&&(I.searcher=YEA(g,A)),I}let r={children:[],operator:o[0]};return o.forEach(a=>{const g=n[a];aS(g)&&g.forEach(I=>{r.children.push(i(I))})}),r};return KEA(t)||(t=ene(t)),i(t)}function N2t(t,{ignoreFieldNorm:A=Ro.ignoreFieldNorm}){t.forEach(e=>{let i=1;e.matches.forEach(({key:n,norm:o,score:s})=>{const r=n?n.weight:null;i*=Math.pow(s===0&&r?Number.EPSILON:s,(r||1)*(A?1:o))}),e.score=i})}function M2t(t,A){const e=t.matches;A.matches=[],zf(e)&&e.forEach(i=>{if(!zf(i.indices)||!i.indices.length)return;const{indices:n,value:o}=i;let s={indices:n,value:o};i.key&&(s.key=i.key.src),i.idx>-1&&(s.refIndex=i.idx),A.matches.push(s)})}function v2t(t,A){A.score=t.score}function U2t(t,A,{includeMatches:e=Ro.includeMatches,includeScore:i=Ro.includeScore}={}){const n=[];return e&&n.push(M2t),i&&n.push(v2t),t.map(o=>{const{idx:s}=o,r={item:A[s],refIndex:s};return n.length&&n.forEach(a=>{a(o,r)}),r})}class tM{constructor(A,e={},i){this.options={...Ro,...e},this.options.useExtendedSearch,this._keyStore=new B2t(this.options.keys),this.setCollection(A,i)}setCollection(A,e){if(this._docs=A,e&&!(e instanceof UEA))throw new Error(r2t);this._myIndex=e||Vie(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}add(A){zf(A)&&(this._docs.push(A),this._myIndex.add(A))}remove(A=()=>!1){const e=[];for(let i=0,n=this._docs.length;i<n;i+=1){const o=this._docs[i];A(o,i)&&(this.removeAt(i),i-=1,n-=1,e.push(o))}return e}removeAt(A){this._docs.splice(A,1),this._myIndex.removeAt(A)}getIndex(){return this._myIndex}search(A,{limit:e=-1}={}){const{includeMatches:i,includeScore:n,shouldSort:o,sortFn:s,ignoreFieldNorm:r}=this.options;let a=Nm(A)?Nm(this._docs[0])?this._searchStringList(A):this._searchObjectList(A):this._searchLogical(A);return N2t(a,{ignoreFieldNorm:r}),o&&a.sort(s),Tie(e)&&e>-1&&(a=a.slice(0,e)),U2t(a,this._docs,{includeMatches:i,includeScore:n})}_searchStringList(A){const e=YEA(A,this.options),{records:i}=this._myIndex,n=[];return i.forEach(({v:o,i:s,n:r})=>{if(!zf(o))return;const{isMatch:a,score:g,indices:I}=e.searchIn(o);a&&n.push({item:o,idx:s,matches:[{score:g,value:o,norm:r,indices:I}]})}),n}_searchLogical(A){const e=tne(A,this.options),i=(r,a,g)=>{if(!r.children){const{keyId:c,searcher:B}=r,C=this._findMatches({key:this._keyStore.get(c),value:this._myIndex.getValueForItemAtKeyId(a,c),searcher:B});return C&&C.length?[{idx:g,item:a,matches:C}]:[]}const I=[];for(let c=0,B=r.children.length;c<B;c+=1){const C=r.children[c],l=i(C,a,g);if(l.length)I.push(...l);else if(r.operator===$8.AND)return[]}return I},n=this._myIndex.records,o={},s=[];return n.forEach(({$:r,i:a})=>{if(zf(r)){let g=i(e,r,a);g.length&&(o[a]||(o[a]={idx:a,item:r,matches:[]},s.push(o[a])),g.forEach(({matches:I})=>{o[a].matches.push(...I)}))}}),s}_searchObjectList(A){const e=YEA(A,this.options),{keys:i,records:n}=this._myIndex,o=[];return n.forEach(({$:s,i:r})=>{if(!zf(s))return;let a=[];i.forEach((g,I)=>{a.push(...this._findMatches({key:g,value:s[I],searcher:e}))}),a.length&&o.push({idx:r,item:s,matches:a})}),o}_findMatches({key:A,value:e,searcher:i}){if(!zf(e))return[];let n=[];if(aS(e))e.forEach(({v:o,i:s,n:r})=>{if(!zf(o))return;const{isMatch:a,score:g,indices:I}=i.searchIn(o);a&&n.push({score:g,key:A,value:o,idx:s,norm:r,indices:I})});else{const{v:o,n:s}=e,{isMatch:r,score:a,indices:g}=i.searchIn(o);r&&n.push({score:a,key:A,value:o,norm:s,indices:g})}return n}}tM.version="7.1.0",tM.createIndex=Vie,tM.parseIndex=E2t,tM.config=Ro,tM.parseQuery=tne,F2t(G2t);let TEA=null,kL=null,qEA=null;const L2t=async()=>TEA||kL||(kL=fetch("https://kicad-mod-cache.tscircuit.com/kicad_files.json").then(t=>t.json()).then(t=>(TEA=t,kL=null,t)),kL),H2t=async(t,A=20)=>{const e=await L2t();return qEA||(qEA=new tM(e)),qEA.search(t).slice(0,A).map(i=>i.item)},Y2t=t=>{const A=t.replace(".pretty/",":").replace(".kicad_mod",""),e=`kicad:${A}`;return{path:t,qualifiedName:e,description:A}},J2t=()=>{const[t,A]=$.useState([]),[e,i]=$.useState(!1),[n,o]=$.useState(null),[s,r]=$.useState(!1),a=$.useCallback(async I=>{const c=I.trim();if(!c)return[];i(!0),o(null);try{const C=(await H2t(c,20)).map(l=>({source:"kicad",footprint:Y2t(l)}));return A(C),C}catch(B){return console.error("Error searching KiCad footprints",B),A([]),o(B instanceof Error?B.message:"Failed to search KiCad footprints"),[]}finally{i(!1),r(!0)}},[]),g=$.useCallback(()=>{A([]),i(!1),o(null),r(!1)},[]);return{results:t,isSearching:e,error:n,hasSearched:s,search:a,reset:g}},K2t=({onTscircuitPackageSelected:t,onJlcpcbComponentTsxLoaded:A,onKicadStringSelected:e})=>{const i=[];return t&&i.push("tscircuit.com"),A&&i.push("jlcpcb"),e&&i.push("kicad"),i},T2t=({isOpen:t,onClose:A,jlcpcbProxyRequestHeaders:e,onKicadStringSelected:i,onTscircuitPackageSelected:n,onJlcpcbComponentTsxLoaded:o,jlcpcbProxyApiBase:s})=>{q8();const r=$.useMemo(()=>K2t({onKicadStringSelected:i,onTscircuitPackageSelected:n,onJlcpcbComponentTsxLoaded:o}),[i,n,o]),a=r.length>0,[g,I]=$.useState(r[0]??"tscircuit.com"),[c,B]=$.useState(""),[C,l]=$.useState(null),{results:Q,isSearching:E,error:h,hasSearched:u,search:d,reset:f}=A2t(),{results:b,isSearching:m,error:x,hasSearched:D,search:F,reset:k}=t2t(),{results:U,isSearching:M,error:Y,hasSearched:P,search:T,reset:O}=J2t(),{details:W,isLoading:eA,fetchDetails:oA,reset:IA}=X1t(),[iA,nA]=$.useState(null),[aA,lA]=$.useState(!1),[fA,xA]=$.useState("pcb"),[_A,RA]=$.useState(null),[CA,SA]=$.useState(!1);$.useEffect(()=>{RA(null)},[C]);const DA=$.useCallback(()=>{f(),k(),O(),l(null)},[k,O,f]);$.useEffect(()=>{t||(DA(),B(""),lA(!1),nA(null),RA(null))},[t,DA]),$.useEffect(()=>{B(""),l(null),g==="tscircuit.com"?f():g==="jlcpcb"?k():g==="kicad"&&O()},[g,k,O,f]);const qA=HA=>{l(HA),nA(HA),xA("pcb"),lA(!0),IA();const FA=HA.package.org_owner_tscircuit_handle,KA=HA.package.unscoped_name;if(FA&&KA){const OA=KA.split("/").pop()??KA;oA(FA,OA)}},oe=async()=>{c.trim()&&(l(null),g==="tscircuit.com"?await d(c):g==="jlcpcb"?await F(c):g==="kicad"&&await T(c))},Ie=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(!o)throw new Error("JLCPCB handler not provided");const FA=await P1t(HA.component.partNumber,{headers:e,apiBase:s});await o({result:HA,tsx:FA})}else if(HA.source==="tscircuit.com"){if(!n)throw new Error("tscircuit package handler not provided");const FA=HA.package.org_owner_tscircuit_handle,KA=HA.package.unscoped_name;if(!FA||!KA)throw new Error("Missing package metadata");const OA=KA.split("/").pop()??KA,ee=`@tsci/${FA}.${OA}`;await n({result:HA,fullPackageName:ee})}return!0}catch(FA){return console.error("Failed to import component",FA),RA(FA instanceof Error?FA.message:"Failed to import component"),!1}finally{SA(!1)}};let yA=[],ae=!1,PA=null,TA=!1;g==="tscircuit.com"?(yA=Q,ae=E,PA=h,TA=u):g==="jlcpcb"?(yA=b,ae=m,PA=x,TA=D):g==="kicad"&&(yA=U,ae=M,PA=Y,TA=P);const XA=async()=>{if(!C)return;await Ie(C)&&(A(),DA(),B(""))},NA=HA=>{HA||A()},mA=HA=>{lA(HA),HA||nA(null)};return V.jsxs(AM,{open:t,onOpenChange:NA,children:[V.jsxs(HG,{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:[V.jsxs(YG,{children:[V.jsx(JG,{className:"rf-text-lg sm:rf-text-xl",children:"Import Component"}),V.jsx(eM,{className:"rf-text-sm",children:a?"Search for components from available sources.":"Import options are disabled because no handlers were provided."})]}),a?V.jsxs(JeA,{value:g,onValueChange:HA=>I(HA),className:"rf-min-w-0 rf-w-full",children:[V.jsx(BP,{className:"rf-flex rf-w-full rf-gap-2",children:r.map(HA=>V.jsx(em,{value:HA,className:"rf-flex-1 rf-text-xs sm:rf-text-sm",children:REA[HA].label},HA))}),V.jsx(O1t,{query:c,placeholder:REA[g].placeholder,isSearching:ae,onQueryChange:B,onSubmit:oe}),V.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:ae?V.jsxs("div",{className:"rf-p-8 rf-text-center rf-text-zinc-500",children:[V.jsx($D,{className:"rf-h-8 rf-w-8 rf-animate-spin rf-mx-auto rf-mb-2"}),V.jsx("p",{children:"Searching..."})]}):yA.length>0?V.jsx(j1t,{results:yA,selected:C,onSelect:l,onShowDetails:g==="tscircuit.com"?qA:void 0}):V.jsx("div",{className:"rf-p-8 rf-text-center rf-text-zinc-500",children:PA?`Error: ${PA}`:TA?REA[g].emptyMessage:"Enter a search term to find components"})})]}):null,_A?V.jsx("div",{className:"rf-text-sm rf-text-red-600 rf-mt-2",children:_A}):null,V.jsxs(bL,{className:"rf-flex rf-flex-col sm:rf-flex-row rf-gap-2",children:[V.jsx(Ma,{variant:"outline",onClick:A,className:"rf-order-2 sm:rf-order-1",children:"Cancel"}),V.jsx(Ma,{onClick:XA,disabled:!C||CA,className:"rf-order-1 sm:rf-order-2",children:CA?V.jsx($D,{className:"rf-h-4 rf-w-4 rf-animate-spin"}):"Import"})]})]}),V.jsx(z1t,{packageResult:iA,isOpen:aA,onOpenChange:mA,isLoading:eA,details:W,previewTab:fA,onPreviewTabChange:HA=>xA(HA),isSubmitting:CA,onImport:()=>{iA&&Ie(iA).then(HA=>{HA&&(lA(!1),A(),DA(),B(""))})}})]})},q2t=t=>{const A=t.match(/export const (\w+) =/);if(!A)throw new Error("Could not determine component name from TSX contents");return A[1]},ine=t=>{const A=_c(s=>s.pushEvent),e=_c(s=>s.upsertFile),i=async({result:s,fullPackageName:r})=>{const g=s.package.unscoped_name??s.package.name;await Cs.promise(A({event_type:"INSTALL_PACKAGE",full_package_name:r}),{loading:`Requesting install for "${g}"`,success:`Install requested for "${g}"`,error:I=>`Failed to request install: ${I instanceof Error?I.message:String(I)}`})},n=async({footprint:s})=>{await Cs.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)}`})},o=async({result:s,tsx:r})=>{const g=`imports/${q2t(r)}.tsx`;await Cs.promise(e(g,r),{loading:`Importing ${s.component.partNumber}`,success:`Imported to "${g}"`,error:I=>`Failed to import component: ${I instanceof Error?I.message:String(I)}`})};return V.jsx(T2t,{...t,onTscircuitPackageSelected:i,onKicadStringSelected:n,onJlcpcbComponentTsxLoaded:o})};ine.displayName="ImportComponentDialogForCli";var PEA={exports:{}},nne;function P2t(){return nne||(nne=1,(function(t,A){var e={env:{},version:""};/*!
|
|
5892
5892
|
|
|
5893
5893
|
JSZip v3.10.1 - A JavaScript class for generating and reading zip files
|
|
5894
5894
|
<http://stuartk.com/jszip>
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"main": "dist/index.js",
|
|
4
4
|
"types": "dist/index.d.ts",
|
|
5
5
|
"type": "module",
|
|
6
|
-
"version": "0.0.
|
|
6
|
+
"version": "0.0.1052",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
9
9
|
"url": "https://github.com/tscircuit/tscircuit"
|
|
@@ -54,9 +54,9 @@
|
|
|
54
54
|
"@tscircuit/checks": "^0.0.87",
|
|
55
55
|
"@tscircuit/circuit-json-flex": "^0.0.3",
|
|
56
56
|
"@tscircuit/circuit-json-util": "^0.0.73",
|
|
57
|
-
"@tscircuit/cli": "^0.1.
|
|
57
|
+
"@tscircuit/cli": "^0.1.649",
|
|
58
58
|
"@tscircuit/copper-pour-solver": "^0.0.14",
|
|
59
|
-
"@tscircuit/core": "^0.0.
|
|
59
|
+
"@tscircuit/core": "^0.0.929",
|
|
60
60
|
"@tscircuit/eval": "^0.0.537",
|
|
61
61
|
"@tscircuit/footprinter": "^0.0.236",
|
|
62
62
|
"@tscircuit/infgrid-ijump-astar": "^0.0.33",
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
"@tscircuit/miniflex": "^0.0.4",
|
|
66
66
|
"@tscircuit/ngspice-spice-engine": "^0.0.8",
|
|
67
67
|
"@tscircuit/props": "^0.0.428",
|
|
68
|
-
"@tscircuit/runframe": "^0.0.
|
|
68
|
+
"@tscircuit/runframe": "^0.0.1399",
|
|
69
69
|
"@tscircuit/schematic-match-adapt": "^0.0.16",
|
|
70
70
|
"@tscircuit/schematic-trace-solver": "^v0.0.45",
|
|
71
71
|
"@tscircuit/simple-3d-svg": "^0.0.41",
|