@tscircuit/runframe 0.0.1264 → 0.0.1265
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.
|
@@ -1545,7 +1545,7 @@ var useErrorTelemetry = ({
|
|
|
1545
1545
|
};
|
|
1546
1546
|
|
|
1547
1547
|
// package.json
|
|
1548
|
-
var version = "0.0.
|
|
1548
|
+
var version = "0.0.1264";
|
|
1549
1549
|
var package_default = {
|
|
1550
1550
|
name: "@tscircuit/runframe",
|
|
1551
1551
|
main: "dist/preview.js",
|
|
@@ -3207,7 +3207,6 @@ var ImportComponentDialogForCli = (props) => {
|
|
|
3207
3207
|
error: (error) => `Failed to request install: ${error instanceof Error ? error.message : String(error)}`
|
|
3208
3208
|
}
|
|
3209
3209
|
);
|
|
3210
|
-
throw new Error("Not implemented");
|
|
3211
3210
|
};
|
|
3212
3211
|
const handleKicadStringSelected = async ({
|
|
3213
3212
|
footprint
|
package/dist/preview.js
CHANGED
package/dist/runner.js
CHANGED
|
@@ -5815,7 +5815,7 @@ $1`).replace(/>(\s*)(?=<!--\s*\/)/g,"> ")}}});function Jht(e,A,t){if(!A||!t)retu
|
|
|
5815
5815
|
* Copyright (c) 2013-2015, 2017, Jon Schlinkert.
|
|
5816
5816
|
* Released under the MIT License.
|
|
5817
5817
|
*)
|
|
5818
|
-
*/const Aje=({containerClassName:e,...A})=>{const t=lA.useRef(null),[i,n]=lA.useState(620);return lA.useLayoutEffect(()=>{const o=()=>{if(t.current){const r=t.current.clientHeight,a=window.innerHeight;n(Math.min(Math.max(r,620),a))}};o();const s=new ResizeObserver(o);return t.current&&s.observe(t.current),window.addEventListener("resize",o),()=>{s.disconnect(),window.removeEventListener("resize",o)}},[]),gA.jsx("div",{ref:t,className:e||"rf-w-full rf-h-full",children:gA.jsx($Ve,{...A,height:i})})},tje='*,: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-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-32{max-height:8rem}.rf-max-h-96{max-height:24rem}.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-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-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-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-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-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-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-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-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-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-200{animation-duration:.2s}.rf-ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.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-border-blue-500:hover{--tw-border-opacity:1;border-color:rgb(59 130 246/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-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}.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}',aQt=()=>{lA.useEffect(()=>{if(document.querySelector('style[data-styles="tscircuit-runframe"]'))return;const A=document.createElement("style");A.setAttribute("data-styles","tscircuit-runframe"),A.textContent=tje,document.head.appendChild(A)},[])},eje=e=>{lA.useEffect(()=>(e?document.body.style.overflow="hidden":document.body.style.overflow="",()=>{document.body.style.overflow=""}),[e])};function gQt(e,A){const[t,i]=lA.useState(()=>{try{const n=window.localStorage.getItem(e);return n?JSON.parse(n):A}catch(n){return console.error("Error reading from localStorage:",n),A}});return lA.useEffect(()=>{try{window.localStorage.setItem(e,JSON.stringify(t))}catch(n){console.error("Error writing to localStorage:",n)}},[e,t]),[t,i]}const cQt=e=>`hsl(${bD.indexOf(e)*137.5%360}, 70%, 50%)`,ije=({phaseTimings:e})=>{if(!e)return null;const A=Object.values(e).reduce((t,i)=>t+i,0);return gA.jsxs("div",{className:"rf-space-y-2 rf-w-full rf-px-4",children:[gA.jsx("div",{className:"rf-relative rf-h-8 rf-flex rf-rounded-sm",children:bD.map(t=>{const i=e[t]||0,n=i/A*100;return gA.jsx("div",{className:"rf-group/bar rf-relative rf-overflow-visible",style:{width:`${n}%`,backgroundColor:cQt(t)},children:gA.jsxs("div",{className:"rf-opacity-0 group-hover/bar:rf-opacity-100 rf-transition-opacity rf-absolute rf-bottom-full rf-left-1/2 rf-transform -rf-translate-x-1/2 rf-mb-2 rf-px-2 rf-py-1 rf-text-xs rf-whitespace-nowrap rf-rounded rf-bg-gray-900 rf-text-white rf-pointer-events-none",children:[t,": ",i.toFixed(1),"ms"]})},t)})}),gA.jsxs("div",{className:"rf-text-xs rf-text-gray-500",children:["Total: ",A.toFixed(2),"ms"]})]})},nje=e=>{if(e instanceof Blob)return e;if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="object")try{return JSON.stringify(e,null,2)}catch{return String(e)}return String(e)},oje=({renderLog:e,onRerunWithDebug:A})=>{const[t,i]=lA.useState("chronological"),[n,o]=lA.useState(""),s=[{value:"",label:"None"},{value:"DEBUG=Group_doInitialSchematicTraceRender",label:"DEBUG=Group_doInitialSchematicTraceRender"},{value:"DEBUG=Group_doInitialSchematicLayoutMatchpack",label:"DEBUG=Group_doInitialSchematicLayoutMatchpack"},{value:"DEBUG=Group_doInitialPcbLayoutPack",label:"DEBUG=Group_doInitialPcbLayoutPack"}];if(!e)return gA.jsxs("div",{className:"rf-p-4 rf-bg-gray-100 rf-rounded-md",children:[gA.jsx("div",{className:"rf-mb-4",children:"No render log, make sure this tab is open when you render"}),A&&gA.jsxs("div",{className:"rf-flex rf-gap-2 rf-items-center",children:[gA.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=>gA.jsx("option",{value:g.value,children:g.label},g.value))}),gA.jsx(gE,{onClick:()=>A(n),size:"sm",className:"rf-text-xs",children:"Rerun Render with Debug"})]})]});const r=Object.entries(e?.phaseTimings??{});t==="chronological"?r.sort((g,c)=>bD.indexOf(g[0])-bD.indexOf(c[0])):r.sort((g,c)=>c[1]-g[1]);const a=r.reduce((g,[c,I])=>g+I,0);return gA.jsxs("div",{className:"rf-bg-white",children:[gA.jsxs("div",{className:"rf-flex rf-justify-between rf-items-center rf-mb-4",children:[gA.jsx("div",{children:"Render Logs"}),gA.jsxs("div",{className:"rf-flex rf-gap-4 rf-items-center",children:[A&&gA.jsxs("div",{className:"rf-flex rf-gap-2 rf-items-center",children:[gA.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=>gA.jsx("option",{value:g.value,children:g.label},g.value))}),gA.jsx(gE,{onClick:()=>A(n),size:"sm",className:"rf-text-xs",children:"Rerun Render with Debug"})]}),gA.jsx("div",{className:"rf-flex rf-gap-2 rf-items-center",children:gA.jsxs("select",{onChange:g=>{if(g.target.value){const c=e?.debugOutputs?.find(I=>I.name===g.target.value);if(c){const I=nje(c.content),l=I instanceof Blob?I:new Blob([I],{type:"text/plain"}),B=URL.createObjectURL(l),C=document.createElement("a");C.href=B,C.download=`debug-${c.name}.txt`,document.body.appendChild(C),C.click(),document.body.removeChild(C),URL.revokeObjectURL(B)}g.target.value=""}},disabled:!e?.debugOutputs||e.debugOutputs.length===0,className:"rf-px-3 rf-py-1 rf-border rf-rounded rf-text-xs rf-bg-white disabled:rf-opacity-50 disabled:rf-cursor-not-allowed",children:[gA.jsx("option",{value:"",children:"Download Debug Output"}),e?.debugOutputs?.map(g=>gA.jsx("option",{value:g.name,children:g.name},g.name))]})}),gA.jsxs("div",{className:"rf-flex rf-text-xs rf-items-center",children:[gA.jsx("div",{className:"rf-mr-2",children:"Sort by:"}),gA.jsxs("select",{value:t,onChange:g=>i(g.target.value),className:"rf-px-2 rf-py-1 rf-border rf-rounded rf-text-xs",children:[gA.jsx("option",{value:"chronological",children:"Phase Order"}),gA.jsx("option",{value:"longest",children:"Duration"})]})]})]})]}),gA.jsx(ije,{phaseTimings:e.phaseTimings}),gA.jsxs("table",{className:"rf-w-full rf-text-xs",children:[gA.jsx("thead",{children:gA.jsxs("tr",{children:[gA.jsx("th",{className:"rf-text-left rf-p-2",children:"Phase Order"}),gA.jsx("th",{className:"rf-text-left rf-p-2",children:"Phase"}),gA.jsx("th",{className:"rf-text-left rf-p-2",children:"Duration (ms)"})]})}),gA.jsx("tbody",{children:r.map(([g,c])=>gA.jsxs("tr",{children:[gA.jsx("td",{className:"rf-p-2",children:bD.indexOf(g)}),gA.jsx("td",{className:"rf-p-2",children:g}),gA.jsx("td",{className:"rf-p-2",children:gA.jsx("div",{className:"rf-w-8",children:gA.jsx("div",{className:"rf-h-2 rf-rounded-sm",style:{backgroundColor:cQt(g),width:`${c/a*100}%`}})})}),gA.jsx("td",{className:"rf-p-2",children:gA.jsxs("div",{className:"rf-flex w-full",children:[gA.jsxs("span",{className:"rf-flex-grow",children:[c,"ms"]}),gA.jsxs("span",{className:"rf-text-gray-500 rf-pr-2",children:[(c/a*100).toFixed(1),"%"]})]})})]},g))})]})]})},IQt=({errorMessage:e,errorStack:A,circuitJsonErrors:t})=>{lA.useEffect(()=>{if(e){const i=new Error(e);A&&(i.stack=A);try{Cq.captureException(i)}catch{}}},[e,A]),lA.useEffect(()=>{if(t&&t.length>0)for(const i of t){const n=new Error(i.message||"Circuit JSON Error");i.stack&&(n.stack=i.stack);try{Cq.captureException(n,{error_type:i.type})}catch{}}},[t])},lQt="0.0.1263",sje={version:lQt},HmA={BASE_URL:"/",DEV:!1,MODE:"production",PROD:!0,SSR:!1},YmA=new Map,Qj=e=>{const A=YmA.get(e);return A?Object.fromEntries(Object.entries(A.stores).map(([t,i])=>[t,i.getState()])):{}},rje=(e,A,t)=>{if(e===void 0)return{type:"untracked",connection:A.connect(t)};const i=YmA.get(t.name);if(i)return{type:"tracked",store:e,...i};const n={connection:A.connect(t),stores:{}};return YmA.set(t.name,n),{type:"tracked",store:e,...n}},BQt=(e,A={})=>(t,i,n)=>{const{enabled:o,anonymousActionType:s,store:r,...a}=A;let g;try{g=(o??(HmA?"production":void 0)!=="production")&&window.__REDUX_DEVTOOLS_EXTENSION__}catch{}if(!g)return(HmA?"production":void 0)!=="production"&&o&&console.warn("[zustand devtools middleware] Please install/enable Redux devtools extension"),e(t,i,n);const{connection:c,...I}=rje(r,g,a);let l=!0;n.setState=(Q,u,d)=>{const p=t(Q,u);if(!l)return p;const f=d===void 0?{type:s||"anonymous"}:typeof d=="string"?{type:d}:d;return r===void 0?(c?.send(f,i()),p):(c?.send({...f,type:`${r}/${f.type}`},{...Qj(a.name),[r]:n.getState()}),p)};const B=(...Q)=>{const u=l;l=!1,t(...Q),l=u},C=e(n.setState,i,n);if(I.type==="untracked"?c?.init(C):(I.stores[I.store]=n,c?.init(Object.fromEntries(Object.entries(I.stores).map(([Q,u])=>[Q,Q===I.store?C:u.getState()])))),n.dispatchFromDevtools&&typeof n.dispatch=="function"){let Q=!1;const u=n.dispatch;n.dispatch=(...d)=>{(HmA?"production":void 0)!=="production"&&d[0].type==="__setState"&&!Q&&(console.warn('[zustand devtools middleware] "__setState" action type is reserved to set state from the devtools. Avoid using it.'),Q=!0),u(...d)}}return c.subscribe(Q=>{var u;switch(Q.type){case"ACTION":if(typeof Q.payload!="string"){console.error("[zustand devtools middleware] Unsupported action format");return}return JmA(Q.payload,d=>{if(d.type==="__setState"){if(r===void 0){B(d.state);return}Object.keys(d.state).length!==1&&console.error(`
|
|
5818
|
+
*/const Aje=({containerClassName:e,...A})=>{const t=lA.useRef(null),[i,n]=lA.useState(620);return lA.useLayoutEffect(()=>{const o=()=>{if(t.current){const r=t.current.clientHeight,a=window.innerHeight;n(Math.min(Math.max(r,620),a))}};o();const s=new ResizeObserver(o);return t.current&&s.observe(t.current),window.addEventListener("resize",o),()=>{s.disconnect(),window.removeEventListener("resize",o)}},[]),gA.jsx("div",{ref:t,className:e||"rf-w-full rf-h-full",children:gA.jsx($Ve,{...A,height:i})})},tje='*,: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-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-32{max-height:8rem}.rf-max-h-96{max-height:24rem}.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-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-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-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-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-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-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-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-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-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-200{animation-duration:.2s}.rf-ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.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-border-blue-500:hover{--tw-border-opacity:1;border-color:rgb(59 130 246/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-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}.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}',aQt=()=>{lA.useEffect(()=>{if(document.querySelector('style[data-styles="tscircuit-runframe"]'))return;const A=document.createElement("style");A.setAttribute("data-styles","tscircuit-runframe"),A.textContent=tje,document.head.appendChild(A)},[])},eje=e=>{lA.useEffect(()=>(e?document.body.style.overflow="hidden":document.body.style.overflow="",()=>{document.body.style.overflow=""}),[e])};function gQt(e,A){const[t,i]=lA.useState(()=>{try{const n=window.localStorage.getItem(e);return n?JSON.parse(n):A}catch(n){return console.error("Error reading from localStorage:",n),A}});return lA.useEffect(()=>{try{window.localStorage.setItem(e,JSON.stringify(t))}catch(n){console.error("Error writing to localStorage:",n)}},[e,t]),[t,i]}const cQt=e=>`hsl(${bD.indexOf(e)*137.5%360}, 70%, 50%)`,ije=({phaseTimings:e})=>{if(!e)return null;const A=Object.values(e).reduce((t,i)=>t+i,0);return gA.jsxs("div",{className:"rf-space-y-2 rf-w-full rf-px-4",children:[gA.jsx("div",{className:"rf-relative rf-h-8 rf-flex rf-rounded-sm",children:bD.map(t=>{const i=e[t]||0,n=i/A*100;return gA.jsx("div",{className:"rf-group/bar rf-relative rf-overflow-visible",style:{width:`${n}%`,backgroundColor:cQt(t)},children:gA.jsxs("div",{className:"rf-opacity-0 group-hover/bar:rf-opacity-100 rf-transition-opacity rf-absolute rf-bottom-full rf-left-1/2 rf-transform -rf-translate-x-1/2 rf-mb-2 rf-px-2 rf-py-1 rf-text-xs rf-whitespace-nowrap rf-rounded rf-bg-gray-900 rf-text-white rf-pointer-events-none",children:[t,": ",i.toFixed(1),"ms"]})},t)})}),gA.jsxs("div",{className:"rf-text-xs rf-text-gray-500",children:["Total: ",A.toFixed(2),"ms"]})]})},nje=e=>{if(e instanceof Blob)return e;if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="object")try{return JSON.stringify(e,null,2)}catch{return String(e)}return String(e)},oje=({renderLog:e,onRerunWithDebug:A})=>{const[t,i]=lA.useState("chronological"),[n,o]=lA.useState(""),s=[{value:"",label:"None"},{value:"DEBUG=Group_doInitialSchematicTraceRender",label:"DEBUG=Group_doInitialSchematicTraceRender"},{value:"DEBUG=Group_doInitialSchematicLayoutMatchpack",label:"DEBUG=Group_doInitialSchematicLayoutMatchpack"},{value:"DEBUG=Group_doInitialPcbLayoutPack",label:"DEBUG=Group_doInitialPcbLayoutPack"}];if(!e)return gA.jsxs("div",{className:"rf-p-4 rf-bg-gray-100 rf-rounded-md",children:[gA.jsx("div",{className:"rf-mb-4",children:"No render log, make sure this tab is open when you render"}),A&&gA.jsxs("div",{className:"rf-flex rf-gap-2 rf-items-center",children:[gA.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=>gA.jsx("option",{value:g.value,children:g.label},g.value))}),gA.jsx(gE,{onClick:()=>A(n),size:"sm",className:"rf-text-xs",children:"Rerun Render with Debug"})]})]});const r=Object.entries(e?.phaseTimings??{});t==="chronological"?r.sort((g,c)=>bD.indexOf(g[0])-bD.indexOf(c[0])):r.sort((g,c)=>c[1]-g[1]);const a=r.reduce((g,[c,I])=>g+I,0);return gA.jsxs("div",{className:"rf-bg-white",children:[gA.jsxs("div",{className:"rf-flex rf-justify-between rf-items-center rf-mb-4",children:[gA.jsx("div",{children:"Render Logs"}),gA.jsxs("div",{className:"rf-flex rf-gap-4 rf-items-center",children:[A&&gA.jsxs("div",{className:"rf-flex rf-gap-2 rf-items-center",children:[gA.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=>gA.jsx("option",{value:g.value,children:g.label},g.value))}),gA.jsx(gE,{onClick:()=>A(n),size:"sm",className:"rf-text-xs",children:"Rerun Render with Debug"})]}),gA.jsx("div",{className:"rf-flex rf-gap-2 rf-items-center",children:gA.jsxs("select",{onChange:g=>{if(g.target.value){const c=e?.debugOutputs?.find(I=>I.name===g.target.value);if(c){const I=nje(c.content),l=I instanceof Blob?I:new Blob([I],{type:"text/plain"}),B=URL.createObjectURL(l),C=document.createElement("a");C.href=B,C.download=`debug-${c.name}.txt`,document.body.appendChild(C),C.click(),document.body.removeChild(C),URL.revokeObjectURL(B)}g.target.value=""}},disabled:!e?.debugOutputs||e.debugOutputs.length===0,className:"rf-px-3 rf-py-1 rf-border rf-rounded rf-text-xs rf-bg-white disabled:rf-opacity-50 disabled:rf-cursor-not-allowed",children:[gA.jsx("option",{value:"",children:"Download Debug Output"}),e?.debugOutputs?.map(g=>gA.jsx("option",{value:g.name,children:g.name},g.name))]})}),gA.jsxs("div",{className:"rf-flex rf-text-xs rf-items-center",children:[gA.jsx("div",{className:"rf-mr-2",children:"Sort by:"}),gA.jsxs("select",{value:t,onChange:g=>i(g.target.value),className:"rf-px-2 rf-py-1 rf-border rf-rounded rf-text-xs",children:[gA.jsx("option",{value:"chronological",children:"Phase Order"}),gA.jsx("option",{value:"longest",children:"Duration"})]})]})]})]}),gA.jsx(ije,{phaseTimings:e.phaseTimings}),gA.jsxs("table",{className:"rf-w-full rf-text-xs",children:[gA.jsx("thead",{children:gA.jsxs("tr",{children:[gA.jsx("th",{className:"rf-text-left rf-p-2",children:"Phase Order"}),gA.jsx("th",{className:"rf-text-left rf-p-2",children:"Phase"}),gA.jsx("th",{className:"rf-text-left rf-p-2",children:"Duration (ms)"})]})}),gA.jsx("tbody",{children:r.map(([g,c])=>gA.jsxs("tr",{children:[gA.jsx("td",{className:"rf-p-2",children:bD.indexOf(g)}),gA.jsx("td",{className:"rf-p-2",children:g}),gA.jsx("td",{className:"rf-p-2",children:gA.jsx("div",{className:"rf-w-8",children:gA.jsx("div",{className:"rf-h-2 rf-rounded-sm",style:{backgroundColor:cQt(g),width:`${c/a*100}%`}})})}),gA.jsx("td",{className:"rf-p-2",children:gA.jsxs("div",{className:"rf-flex w-full",children:[gA.jsxs("span",{className:"rf-flex-grow",children:[c,"ms"]}),gA.jsxs("span",{className:"rf-text-gray-500 rf-pr-2",children:[(c/a*100).toFixed(1),"%"]})]})})]},g))})]})]})},IQt=({errorMessage:e,errorStack:A,circuitJsonErrors:t})=>{lA.useEffect(()=>{if(e){const i=new Error(e);A&&(i.stack=A);try{Cq.captureException(i)}catch{}}},[e,A]),lA.useEffect(()=>{if(t&&t.length>0)for(const i of t){const n=new Error(i.message||"Circuit JSON Error");i.stack&&(n.stack=i.stack);try{Cq.captureException(n,{error_type:i.type})}catch{}}},[t])},lQt="0.0.1264",sje={version:lQt},HmA={BASE_URL:"/",DEV:!1,MODE:"production",PROD:!0,SSR:!1},YmA=new Map,Qj=e=>{const A=YmA.get(e);return A?Object.fromEntries(Object.entries(A.stores).map(([t,i])=>[t,i.getState()])):{}},rje=(e,A,t)=>{if(e===void 0)return{type:"untracked",connection:A.connect(t)};const i=YmA.get(t.name);if(i)return{type:"tracked",store:e,...i};const n={connection:A.connect(t),stores:{}};return YmA.set(t.name,n),{type:"tracked",store:e,...n}},BQt=(e,A={})=>(t,i,n)=>{const{enabled:o,anonymousActionType:s,store:r,...a}=A;let g;try{g=(o??(HmA?"production":void 0)!=="production")&&window.__REDUX_DEVTOOLS_EXTENSION__}catch{}if(!g)return(HmA?"production":void 0)!=="production"&&o&&console.warn("[zustand devtools middleware] Please install/enable Redux devtools extension"),e(t,i,n);const{connection:c,...I}=rje(r,g,a);let l=!0;n.setState=(Q,u,d)=>{const p=t(Q,u);if(!l)return p;const f=d===void 0?{type:s||"anonymous"}:typeof d=="string"?{type:d}:d;return r===void 0?(c?.send(f,i()),p):(c?.send({...f,type:`${r}/${f.type}`},{...Qj(a.name),[r]:n.getState()}),p)};const B=(...Q)=>{const u=l;l=!1,t(...Q),l=u},C=e(n.setState,i,n);if(I.type==="untracked"?c?.init(C):(I.stores[I.store]=n,c?.init(Object.fromEntries(Object.entries(I.stores).map(([Q,u])=>[Q,Q===I.store?C:u.getState()])))),n.dispatchFromDevtools&&typeof n.dispatch=="function"){let Q=!1;const u=n.dispatch;n.dispatch=(...d)=>{(HmA?"production":void 0)!=="production"&&d[0].type==="__setState"&&!Q&&(console.warn('[zustand devtools middleware] "__setState" action type is reserved to set state from the devtools. Avoid using it.'),Q=!0),u(...d)}}return c.subscribe(Q=>{var u;switch(Q.type){case"ACTION":if(typeof Q.payload!="string"){console.error("[zustand devtools middleware] Unsupported action format");return}return JmA(Q.payload,d=>{if(d.type==="__setState"){if(r===void 0){B(d.state);return}Object.keys(d.state).length!==1&&console.error(`
|
|
5819
5819
|
[zustand devtools middleware] Unsupported __setState action format.
|
|
5820
5820
|
When using 'store' option in devtools(), the 'state' should have only one key, which is a value of 'store' that was passed in devtools(),
|
|
5821
5821
|
and value of this only key should be a state object. Example: { "type": "__setState", "state": { "abc123Store": { "foo": "bar" } } }
|
|
@@ -6610,7 +6610,7 @@ ${i.stack}`),t.complete=!0,"root"in this&&this.root&&this.root.emit("asyncEffect
|
|
|
6610
6610
|
* This source code is licensed under the MIT license found in the
|
|
6611
6611
|
* LICENSE file in the root directory of this source tree.
|
|
6612
6612
|
*)
|
|
6613
|
-
*/const Ryi=async(e,A=10)=>{const t=encodeURIComponent(e),i=await fetch(`https://jlcsearch.tscircuit.com/api/search?limit=${A}&q=${t}`);if(!i.ok)throw new Error(`JLCPCB API error: ${i.status}`);return(await i.json()).components??[]},Fyi=e=>({lcscId:e.lcsc,manufacturer:e.mfr,description:e.description,partNumber:`C${e.lcsc}`,package:e.package,price:e.price,stock:e.stock}),Gyi=async(e,A)=>{const t=await kyi(e,{fetch:(i,n)=>fetch(`${A?.apiBase??TS}/proxy`,{...n,headers:{...n?.headers,"X-Target-Url":i.toString(),"X-Sender-Origin":n?.headers?.origin??"","X-Sender-Host":n?.headers?.host??"https://easyeda.com","X-Sender-Referer":n?.headers?.referer??"","X-Sender-User-Agent":n?.headers?.userAgent??"","X-Sender-Cookie":n?.headers?.cookie??"",authority:n?.headers?.authority??"","content-type":n?.headers?.["content-type"]??"",...A?.headers}})});return byi(t)},Nyi=({query:e,placeholder:A,isSearching:t,onQueryChange:i,onSubmit:n})=>{const o=lA.useCallback(s=>{s.key==="Enter"&&(s.preventDefault(),n())},[n]);return gA.jsxs("div",{className:"rf-flex rf-items-center rf-gap-2 rf-mt-4",children:[gA.jsxs("div",{className:"rf-relative rf-flex-grow",children:[gA.jsx(Brt,{className:"rf-absolute rf-left-2 rf-top-2.5 rf-h-4 rf-w-4 rf-text-muted-foreground"}),gA.jsx(NyA,{placeholder:A,className:"rf-pl-8",spellCheck:!1,autoComplete:"off",value:e,onChange:s=>i(s.target.value),onKeyDown:o})]}),gA.jsx(gE,{onClick:n,disabled:t||e.trim().length<1,className:"sm:rf-px-4 rf-px-3",children:t?gA.jsx(Y1,{className:"rf-h-4 rf-w-4 rf-animate-spin"}):gA.jsxs(gA.Fragment,{children:[gA.jsx(Brt,{className:"rf-h-4 rf-w-4 sm:rf-hidden"}),gA.jsx("span",{className:"rf-hidden sm:rf-inline",children:"Search"})]})})]})},F_t=e=>{switch(e.source){case"tscircuit.com":{const A=e.package;return`tscircuit-${A.package_id??`${A.owner_github_username??"unknown"}-${A.unscoped_name??A.name??"package"}`}`}case"jlcpcb":return`jlc-${e.component.lcscId}`;case"kicad":return`kicad-${e.footprint.path}`;default:return"unknown"}},Myi=e=>{switch(e.source){case"tscircuit.com":return e.package.unscoped_name;case"jlcpcb":return e.component.manufacturer;case"kicad":return e.footprint.qualifiedName}},Uyi=e=>{switch(e.source){case"tscircuit.com":return e.package.description||(e.package.owner_github_username?`Component by ${e.package.owner_github_username}`:void 0);case"jlcpcb":return e.component.description;case"kicad":return e.footprint.description}},Lyi=e=>{switch(e.source){case"tscircuit.com":return e.package.name;case"jlcpcb":return e.component.partNumber;case"kicad":return}},Hyi=({results:e,selected:A,onSelect:t,onShowDetails:i})=>{const n=A?F_t(A):null;return gA.jsx("div",{className:"rf-divide-y",children:e.map(o=>{const s=F_t(o),r=n===s,a=Myi(o),g=Uyi(o),c=Lyi(o),I=o.source==="jlcpcb"?o.component.stock:null;return gA.jsxs("div",{className:`rf-p-3 rf-flex rf-flex-col sm:rf-grid sm:rf-grid-cols-[1fr_auto] rf-items-start sm:rf-items-center rf-cursor-pointer hover:rf-bg-zinc-100 rf-gap-2 ${r?"rf-bg-zinc-100":""}`,onClick:()=>t(o),children:[gA.jsxs("div",{className:"rf-min-w-0 rf-overflow-hidden rf-w-full",children:[gA.jsxs("div",{className:"rf-flex rf-items-start rf-gap-2",children:[gA.jsx("div",{className:"rf-font-medium rf-text-sm rf-truncate rf-flex-1 rf-min-w-0",children:a}),o.source==="jlcpcb"&&I!=null?gA.jsxs("div",{className:"rf-text-xs rf-text-zinc-500 rf-font-medium rf-whitespace-nowrap sm:rf-hidden",children:[I.toLocaleString()," in stock"]}):null]}),gA.jsxs("div",{className:"rf-text-xs rf-text-zinc-500 rf-truncate",children:[c?gA.jsx("span",{className:"rf-mr-2",children:c}):null,g]})]}),o.source==="tscircuit.com"&&i?gA.jsx("div",{className:"rf-flex rf-gap-2 rf-flex-shrink-0 rf-w-full sm:rf-w-auto",children:gA.jsx(gE,{variant:"outline",size:"sm",className:"rf-text-xs rf-w-full sm:rf-w-auto",onClick:l=>{l.stopPropagation(),i(o)},children:"See Details"})}):o.source==="jlcpcb"&&I!=null?gA.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:[I.toLocaleString()," in stock"]}):null]},s)})})},G_t=(e,A)=>!e?.owner_github_username||!e?.unscoped_name?null:`https://registry-api.tscircuit.com/packages/images/${e.owner_github_username}/${e.unscoped_name}/${A}.png`,Yyi=({packageResult:e,isOpen:A,onOpenChange:t,isLoading:i,details:n,previewTab:o,onPreviewTabChange:s,isSubmitting:r,onImport:a})=>{const g=e?.package??null,c=G_t(g,"pcb"),I=G_t(g,"schematic"),l=g?.unscoped_name?.split("/").pop()??g?.unscoped_name,B=g?.owner_github_username??void 0,C=B?`https://tscircuit.com/${B}`:void 0,Q=B&&l?`https://tscircuit.com/${B}/${l}`:void 0;return gA.jsx(pj,{open:A,onOpenChange:t,children:gA.jsxs(YT,{showOverlay:!1,style:{width:"calc(100vw - 2rem)"},className:"rf-max-w-5xl !rf-overflow-y-auto rf-max-h-[90vh] rf-overflow-hidden rf-flex rf-flex-col rf-rounded-sm",children:[gA.jsx(JT,{className:"rf-pb-4 rf-border-b",children:gA.jsx("div",{className:"rf-flex rf-items-start rf-justify-between rf-gap-4",children:gA.jsxs("div",{className:"rf-flex-1 rf-min-w-0",children:[gA.jsx(TT,{className:"rf-text-xl rf-font-semibold rf-truncate",children:l}),gA.jsx(yj,{children:g?.description})]})})}),gA.jsxs("div",{className:"rf-flex-1 rf-overflow-y-auto rf-py-4 rf-space-y-6",children:[B?gA.jsxs("div",{children:[gA.jsx("span",{className:"rf-text-xs rf-font-medium rf-text-gray-500 rf-uppercase rf-tracking-wide",children:"Created by"}),gA.jsx("div",{className:"rf-mt-1 rf-text-sm rf-font-medium",children:C?gA.jsx("a",{href:C,target:"_blank",rel:"noopener noreferrer",className:"rf-text-black hover:rf-underline",children:B}):B})]}):null,gA.jsxs("div",{children:[gA.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-mb-4",children:"Preview"}),gA.jsxs(DeA,{value:o,onValueChange:u=>s(u),children:[gA.jsxs(Qq,{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:[gA.jsx(jb,{value:"pcb",children:"PCB"}),gA.jsx(jb,{value:"schematic",children:"Schematic"})]}),gA.jsxs("div",{className:"rf-mt-4",children:[gA.jsx(xw,{value:"pcb",className:"rf-border rf-rounded-lg rf-overflow-hidden rf-bg-gray-50",children:c?gA.jsx("img",{src:c,alt:`${l??"package"} PCB preview`,className:"rf-w-full rf-h-full rf-object-contain rf-bg-white rf-p-4"}):null}),gA.jsx(xw,{value:"schematic",className:"rf-border rf-rounded-lg rf-overflow-hidden rf-bg-gray-50",children:I?gA.jsx("img",{src:I,alt:`${l??"package"} schematic preview`,className:"rf-w-full rf-h-full rf-object-contain rf-bg-white rf-p-4"}):null})]})]})]}),n?.ai_description?gA.jsxs("section",{children:[gA.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-mb-3",children:"AI Description"}),gA.jsx("div",{className:"rf-bg-gray-50 rf-border rf-border-gray-200 rf-rounded-lg rf-p-4",children:gA.jsx("p",{className:"rf-text-sm rf-text-gray-700 rf-leading-relaxed",children:n.ai_description})})]}):null,n?.ai_usage_instructions?gA.jsxs("section",{children:[gA.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-mb-3",children:"Usage Instructions"}),gA.jsx("div",{className:"rf-bg-gray-50 rf-border rf-border-gray-200 rf-rounded-lg rf-p-4",children:gA.jsx("p",{className:"rf-text-sm rf-text-gray-700 rf-leading-relaxed rf-whitespace-pre-wrap",children:n.ai_usage_instructions})})]}):null,i?gA.jsxs("div",{className:"rf-flex rf-justify-center rf-items-center rf-gap-2 rf-text-gray-500",children:[gA.jsx(Y1,{className:"rf-h-4 rf-w-4 rf-animate-spin"}),gA.jsx("span",{className:"rf-text-sm",children:"Loading package details..."})]}):null]}),gA.jsxs(fj,{className:"rf-pt-4 rf-border-t rf-flex rf-flex-col sm:rf-flex-row rf-justify-between rf-gap-2",children:[gA.jsx("div",{className:"rf-flex-1",children:Q?gA.jsxs(gE,{variant:"outline",size:"sm",className:"rf-gap-2 rf-w-full sm:rf-w-auto",onClick:()=>window.open(Q,"_blank"),children:[gA.jsx(wHe,{className:"rf-h-4 rf-w-4"}),"View on tscircuit.com"]}):null}),gA.jsxs("div",{className:"rf-flex rf-flex-col sm:rf-flex-row rf-gap-2",children:[gA.jsx(gE,{variant:"outline",onClick:()=>t(!1),className:"rf-order-2 sm:rf-order-1",children:"Close"}),gA.jsx(gE,{onClick:a,disabled:r,className:"rf-bg-blue-600 hover:rf-bg-blue-700",children:r?gA.jsx(Y1,{className:"rf-h-4 rf-w-4 rf-animate-spin"}):"Import Component"})]})]})]})})},Jyi=()=>{const[e,A]=lA.useState(null),[t,i]=lA.useState(!1),n=lA.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=lA.useCallback(()=>{A(null),i(!1)},[]);return{details:e,isLoading:t,fetchDetails:n,reset:o}},Tyi=async e=>{const A=await fetch("https://registry-api.tscircuit.com/packages/search",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:e})});if(!A.ok)throw new Error(`tscircuit registry error: ${A.status}`);return(await A.json()).packages??[]},Kyi=()=>{const[e,A]=lA.useState([]),[t,i]=lA.useState(!1),[n,o]=lA.useState(null),[s,r]=lA.useState(!1),a=lA.useCallback(async c=>{const I=c.trim();if(!I)return[];i(!0),o(null);try{const B=(await Tyi(I)).map(C=>({source:"tscircuit.com",package:C}));return A(B),B}catch(l){return console.error("Error searching tscircuit packages",l),A([]),o(l instanceof Error?l.message:"Failed to search tscircuit packages"),[]}finally{i(!1),r(!0)}},[]),g=lA.useCallback(()=>{A([]),i(!1),o(null),r(!1)},[]);return{results:e,isSearching:t,error:n,hasSearched:s,search:a,reset:g}},qyi=e=>{const A=e.trim();return/^C\d+/i.test(A)?A.replace(/^C/i,""):A},Pyi=()=>{const[e,A]=lA.useState([]),[t,i]=lA.useState(!1),[n,o]=lA.useState(null),[s,r]=lA.useState(!1),a=lA.useCallback(async c=>{const I=qyi(c);if(!I)return[];i(!0),o(null);try{const B=(await Ryi(I,10)).map(C=>({source:"jlcpcb",component:Fyi(C)}));return A(B),B}catch(l){return console.error("Error searching JLCPCB components",l),A([]),o(l instanceof Error?l.message:"Failed to search JLCPCB components"),[]}finally{i(!1),r(!0)}},[]),g=lA.useCallback(()=>{A([]),i(!1),o(null),r(!1)},[]);return{results:e,isSearching:t,error:n,hasSearched:s,search:a,reset:g}};function Av(e){return Array.isArray?Array.isArray(e):U_t(e)==="[object Array]"}function Oyi(e){if(typeof e=="string")return e;let A=e+"";return A=="0"&&1/e==-1/0?"-0":A}function Wyi(e){return e==null?"":Oyi(e)}function Db(e){return typeof e=="string"}function N_t(e){return typeof e=="number"}function Zyi(e){return e===!0||e===!1||Vyi(e)&&U_t(e)=="[object Boolean]"}function M_t(e){return typeof e=="object"}function Vyi(e){return M_t(e)&&e!==null}function Vw(e){return e!=null}function xvA(e){return!e.trim().length}function U_t(e){return e==null?e===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}const jyi="Incorrect 'index' type",zyi=e=>`Invalid value for key ${e}`,Xyi=e=>`Pattern length exceeds max of ${e}.`,$yi=e=>`Missing ${e} property in key`,Ami=e=>`Property 'weight' in key '${e}' must be a positive integer`,L_t=Object.prototype.hasOwnProperty;class tmi{constructor(A){this._keys=[],this._keyMap={};let t=0;A.forEach(i=>{let n=H_t(i);this._keys.push(n),this._keyMap[n.id]=n,t+=n.weight}),this._keys.forEach(i=>{i.weight/=t})}get(A){return this._keyMap[A]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}}function H_t(e){let A=null,t=null,i=null,n=1,o=null;if(Db(e)||Av(e))i=e,A=Y_t(e),t=bvA(e);else{if(!L_t.call(e,"name"))throw new Error($yi("name"));const s=e.name;if(i=s,L_t.call(e,"weight")&&(n=e.weight,n<=0))throw new Error(Ami(s));A=Y_t(s),t=bvA(s),o=e.getFn}return{path:A,id:t,weight:n,src:i,getFn:o}}function Y_t(e){return Av(e)?e:e.split(".")}function bvA(e){return Av(e)?e.join("."):e}function emi(e,A){let t=[],i=!1;const n=(o,s,r)=>{if(Vw(o))if(!s[r])t.push(o);else{let a=s[r];const g=o[a];if(!Vw(g))return;if(r===s.length-1&&(Db(g)||N_t(g)||Zyi(g)))t.push(Wyi(g));else if(Av(g)){i=!0;for(let c=0,I=g.length;c<I;c+=1)n(g[c],s,r+1)}else s.length&&n(g,s,r+1)}};return n(e,Db(A)?A.split("."):A,0),i?t:t[0]}var Tr={...{isCaseSensitive:!1,ignoreDiacritics:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:(e,A)=>e.score===A.score?e.idx<A.idx?-1:1:e.score<A.score?-1:1},...{includeMatches:!1,findAllMatches:!1,minMatchCharLength:1},...{location:0,threshold:.6,distance:100},...{useExtendedSearch:!1,getFn:emi,ignoreLocation:!1,ignoreFieldNorm:!1,fieldNormWeight:1}};const imi=/[^ ]+/g;function nmi(e=1,A=3){const t=new Map,i=Math.pow(10,A);return{get(n){const o=n.match(imi).length;if(t.has(o))return t.get(o);const s=1/Math.pow(o,.5*e),r=parseFloat(Math.round(s*i)/i);return t.set(o,r),r},clear(){t.clear()}}}class SvA{constructor({getFn:A=Tr.getFn,fieldNormWeight:t=Tr.fieldNormWeight}={}){this.norm=nmi(t,3),this.getFn=A,this.isCreated=!1,this.setIndexRecords()}setSources(A=[]){this.docs=A}setIndexRecords(A=[]){this.records=A}setKeys(A=[]){this.keys=A,this._keysMap={},A.forEach((t,i)=>{this._keysMap[t.id]=i})}create(){this.isCreated||!this.docs.length||(this.isCreated=!0,Db(this.docs[0])?this.docs.forEach((A,t)=>{this._addString(A,t)}):this.docs.forEach((A,t)=>{this._addObject(A,t)}),this.norm.clear())}add(A){const t=this.size();Db(A)?this._addString(A,t):this._addObject(A,t)}removeAt(A){this.records.splice(A,1);for(let t=A,i=this.size();t<i;t+=1)this.records[t].i-=1}getValueForItemAtKeyId(A,t){return A[this._keysMap[t]]}size(){return this.records.length}_addString(A,t){if(!Vw(A)||xvA(A))return;let i={v:A,i:t,n:this.norm.get(A)};this.records.push(i)}_addObject(A,t){let i={i:t,$:{}};this.keys.forEach((n,o)=>{let s=n.getFn?n.getFn(A):this.getFn(A,n.path);if(Vw(s)){if(Av(s)){let r=[];const a=[{nestedArrIndex:-1,value:s}];for(;a.length;){const{nestedArrIndex:g,value:c}=a.pop();if(Vw(c))if(Db(c)&&!xvA(c)){let I={v:c,i:g,n:this.norm.get(c)};r.push(I)}else Av(c)&&c.forEach((I,l)=>{a.push({nestedArrIndex:l,value:I})})}i.$[o]=r}else if(Db(s)&&!xvA(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 J_t(e,A,{getFn:t=Tr.getFn,fieldNormWeight:i=Tr.fieldNormWeight}={}){const n=new SvA({getFn:t,fieldNormWeight:i});return n.setKeys(e.map(H_t)),n.setSources(A),n.create(),n}function omi(e,{getFn:A=Tr.getFn,fieldNormWeight:t=Tr.fieldNormWeight}={}){const{keys:i,records:n}=e,o=new SvA({getFn:A,fieldNormWeight:t});return o.setKeys(i),o.setIndexRecords(n),o}function J7(e,{errors:A=0,currentLocation:t=0,expectedLocation:i=0,distance:n=Tr.distance,ignoreLocation:o=Tr.ignoreLocation}={}){const s=A/e.length;if(o)return s;const r=Math.abs(i-t);return n?s+r/n:r?1:s}function smi(e=[],A=Tr.minMatchCharLength){let t=[],i=-1,n=-1,o=0;for(let s=e.length;o<s;o+=1){let r=e[o];r&&i===-1?i=o:!r&&i!==-1&&(n=o-1,n-i+1>=A&&t.push([i,n]),i=-1)}return e[o-1]&&o-i>=A&&t.push([i,o-1]),t}const OF=32;function rmi(e,A,t,{location:i=Tr.location,distance:n=Tr.distance,threshold:o=Tr.threshold,findAllMatches:s=Tr.findAllMatches,minMatchCharLength:r=Tr.minMatchCharLength,includeMatches:a=Tr.includeMatches,ignoreLocation:g=Tr.ignoreLocation}={}){if(A.length>OF)throw new Error(Xyi(OF));const c=A.length,I=e.length,l=Math.max(0,Math.min(i,I));let B=o,C=l;const Q=r>1||a,u=Q?Array(I):[];let d;for(;(d=e.indexOf(A,C))>-1;){let v=J7(A,{currentLocation:d,expectedLocation:l,distance:n,ignoreLocation:g});if(B=Math.min(v,B),C=d+c,Q){let D=0;for(;D<c;)u[d+D]=1,D+=1}}C=-1;let p=[],f=1,m=c+I;const S=1<<c-1;for(let v=0;v<c;v+=1){let D=0,k=m;for(;D<k;)J7(A,{errors:v,currentLocation:l+k,expectedLocation:l,distance:n,ignoreLocation:g})<=B?D=k:m=k,k=Math.floor((m-D)/2+D);m=k;let x=Math.max(1,l-k+1),L=s?I:Math.min(l+k,I)+c,G=Array(L+2);G[L+1]=(1<<v)-1;for(let q=L;q>=x;q-=1){let P=q-1,V=t[e.charAt(P)];if(Q&&(u[P]=+!!V),G[q]=(G[q+1]<<1|1)&V,v&&(G[q]|=(p[q+1]|p[q])<<1|1|p[q+1]),G[q]&S&&(f=J7(A,{errors:v,currentLocation:P,expectedLocation:l,distance:n,ignoreLocation:g}),f<=B)){if(B=f,C=P,C<=l)break;x=Math.max(1,2*l-C)}}if(J7(A,{errors:v+1,currentLocation:l,expectedLocation:l,distance:n,ignoreLocation:g})>B)break;p=G}const b={isMatch:C>=0,score:Math.max(.001,f)};if(Q){const v=smi(u,r);v.length?a&&(b.indices=v):b.isMatch=!1}return b}function ami(e){let A={};for(let t=0,i=e.length;t<i;t+=1){const n=e.charAt(t);A[n]=(A[n]||0)|1<<i-t-1}return A}const T7=String.prototype.normalize?(e=>e.normalize("NFD").replace(/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C04\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F]/g,"")):(e=>e);class T_t{constructor(A,{location:t=Tr.location,threshold:i=Tr.threshold,distance:n=Tr.distance,includeMatches:o=Tr.includeMatches,findAllMatches:s=Tr.findAllMatches,minMatchCharLength:r=Tr.minMatchCharLength,isCaseSensitive:a=Tr.isCaseSensitive,ignoreDiacritics:g=Tr.ignoreDiacritics,ignoreLocation:c=Tr.ignoreLocation}={}){if(this.options={location:t,threshold:i,distance:n,includeMatches:o,findAllMatches:s,minMatchCharLength:r,isCaseSensitive:a,ignoreDiacritics:g,ignoreLocation:c},A=a?A:A.toLowerCase(),A=g?T7(A):A,this.pattern=A,this.chunks=[],!this.pattern.length)return;const I=(B,C)=>{this.chunks.push({pattern:B,alphabet:ami(B),startIndex:C})},l=this.pattern.length;if(l>OF){let B=0;const C=l%OF,Q=l-C;for(;B<Q;)I(this.pattern.substr(B,OF),B),B+=OF;if(C){const u=l-OF;I(this.pattern.substr(u),u)}}else I(this.pattern,0)}searchIn(A){const{isCaseSensitive:t,ignoreDiacritics:i,includeMatches:n}=this.options;if(A=t?A:A.toLowerCase(),A=i?T7(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:c}=this.options;let I=[],l=0,B=!1;this.chunks.forEach(({pattern:Q,alphabet:u,startIndex:d})=>{const{isMatch:p,score:f,indices:m}=rmi(A,Q,u,{location:o+d,distance:s,threshold:r,findAllMatches:a,minMatchCharLength:g,includeMatches:n,ignoreLocation:c});p&&(B=!0),l+=f,p&&m&&(I=[...I,...m])});let C={isMatch:B,score:B?l/this.chunks.length:1};return B&&n&&(C.indices=I),C}}class wk{constructor(A){this.pattern=A}static isMultiMatch(A){return K_t(A,this.multiRegex)}static isSingleMatch(A){return K_t(A,this.singleRegex)}search(){}}function K_t(e,A){const t=e.match(A);return t?t[1]:null}class gmi extends wk{constructor(A){super(A)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(A){const t=A===this.pattern;return{isMatch:t,score:t?0:1,indices:[0,this.pattern.length-1]}}}class cmi extends wk{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 Imi extends wk{constructor(A){super(A)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(A){const t=A.startsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,this.pattern.length-1]}}}class lmi extends wk{constructor(A){super(A)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(A){const t=!A.startsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,A.length-1]}}}class Bmi extends wk{constructor(A){super(A)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(A){const t=A.endsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[A.length-this.pattern.length,A.length-1]}}}class Cmi extends wk{constructor(A){super(A)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(A){const t=!A.endsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,A.length-1]}}}class q_t extends wk{constructor(A,{location:t=Tr.location,threshold:i=Tr.threshold,distance:n=Tr.distance,includeMatches:o=Tr.includeMatches,findAllMatches:s=Tr.findAllMatches,minMatchCharLength:r=Tr.minMatchCharLength,isCaseSensitive:a=Tr.isCaseSensitive,ignoreDiacritics:g=Tr.ignoreDiacritics,ignoreLocation:c=Tr.ignoreLocation}={}){super(A),this._bitapSearch=new T_t(A,{location:t,threshold:i,distance:n,includeMatches:o,findAllMatches:s,minMatchCharLength:r,isCaseSensitive:a,ignoreDiacritics:g,ignoreLocation:c})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(A){return this._bitapSearch.searchIn(A)}}class P_t extends wk{constructor(A){super(A)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(A){let t=0,i;const n=[],o=this.pattern.length;for(;(i=A.indexOf(this.pattern,t))>-1;)t=i+o,n.push([i,t-1]);const s=!!n.length;return{isMatch:s,score:s?0:1,indices:n}}}const vvA=[gmi,P_t,Imi,lmi,Cmi,Bmi,cmi,q_t],O_t=vvA.length,hmi=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/,Qmi="|";function umi(e,A={}){return e.split(Qmi).map(t=>{let i=t.trim().split(hmi).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<O_t;){const c=vvA[g];let I=c.isMultiMatch(r);I&&(n.push(new c(I,A)),a=!0)}if(!a)for(g=-1;++g<O_t;){const c=vvA[g];let I=c.isSingleMatch(r);if(I){n.push(new c(I,A));break}}}return n})}const Emi=new Set([q_t.type,P_t.type]);class dmi{constructor(A,{isCaseSensitive:t=Tr.isCaseSensitive,ignoreDiacritics:i=Tr.ignoreDiacritics,includeMatches:n=Tr.includeMatches,minMatchCharLength:o=Tr.minMatchCharLength,ignoreLocation:s=Tr.ignoreLocation,findAllMatches:r=Tr.findAllMatches,location:a=Tr.location,threshold:g=Tr.threshold,distance:c=Tr.distance}={}){this.query=null,this.options={isCaseSensitive:t,ignoreDiacritics:i,includeMatches:n,minMatchCharLength:o,findAllMatches:r,ignoreLocation:s,location:a,threshold:g,distance:c},A=t?A:A.toLowerCase(),A=i?T7(A):A,this.pattern=A,this.query=umi(this.pattern,this.options)}static condition(A,t){return t.useExtendedSearch}searchIn(A){const t=this.query;if(!t)return{isMatch:!1,score:1};const{includeMatches:i,isCaseSensitive:n,ignoreDiacritics:o}=this.options;A=n?A:A.toLowerCase(),A=o?T7(A):A;let s=0,r=[],a=0;for(let g=0,c=t.length;g<c;g+=1){const I=t[g];r.length=0,s=0;for(let l=0,B=I.length;l<B;l+=1){const C=I[l],{isMatch:Q,indices:u,score:d}=C.search(A);if(Q){if(s+=1,a+=d,i){const p=C.constructor.type;Emi.has(p)?r=[...r,...u]:r.push(u)}}else{a=0,s=0,r.length=0;break}}if(s){let l={isMatch:!0,score:a/s};return i&&(l.indices=r),l}}return{isMatch:!1,score:1}}}const kvA=[];function pmi(...e){kvA.push(...e)}function RvA(e,A){for(let t=0,i=kvA.length;t<i;t+=1){let n=kvA[t];if(n.condition(e,A))return new n(e,A)}return new T_t(e,A)}const K7={AND:"$and",OR:"$or"},FvA={PATH:"$path",PATTERN:"$val"},GvA=e=>!!(e[K7.AND]||e[K7.OR]),fmi=e=>!!e[FvA.PATH],ymi=e=>!Av(e)&&M_t(e)&&!GvA(e),W_t=e=>({[K7.AND]:Object.keys(e).map(A=>({[A]:e[A]}))});function Z_t(e,A,{auto:t=!0}={}){const i=n=>{let o=Object.keys(n);const s=fmi(n);if(!s&&o.length>1&&!GvA(n))return i(W_t(n));if(ymi(n)){const a=s?n[FvA.PATH]:o[0],g=s?n[FvA.PATTERN]:n[a];if(!Db(g))throw new Error(zyi(a));const c={keyId:bvA(a),pattern:g};return t&&(c.searcher=RvA(g,A)),c}let r={children:[],operator:o[0]};return o.forEach(a=>{const g=n[a];Av(g)&&g.forEach(c=>{r.children.push(i(c))})}),r};return GvA(e)||(e=W_t(e)),i(e)}function mmi(e,{ignoreFieldNorm:A=Tr.ignoreFieldNorm}){e.forEach(t=>{let i=1;t.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))}),t.score=i})}function wmi(e,A){const t=e.matches;A.matches=[],Vw(t)&&t.forEach(i=>{if(!Vw(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 Dmi(e,A){A.score=e.score}function _mi(e,A,{includeMatches:t=Tr.includeMatches,includeScore:i=Tr.includeScore}={}){const n=[];return t&&n.push(wmi),i&&n.push(Dmi),e.map(o=>{const{idx:s}=o,r={item:A[s],refIndex:s};return n.length&&n.forEach(a=>{a(o,r)}),r})}class yU{constructor(A,t={},i){this.options={...Tr,...t},this.options.useExtendedSearch,this._keyStore=new tmi(this.options.keys),this.setCollection(A,i)}setCollection(A,t){if(this._docs=A,t&&!(t instanceof SvA))throw new Error(jyi);this._myIndex=t||J_t(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}add(A){Vw(A)&&(this._docs.push(A),this._myIndex.add(A))}remove(A=()=>!1){const t=[];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,t.push(o))}return t}removeAt(A){this._docs.splice(A,1),this._myIndex.removeAt(A)}getIndex(){return this._myIndex}search(A,{limit:t=-1}={}){const{includeMatches:i,includeScore:n,shouldSort:o,sortFn:s,ignoreFieldNorm:r}=this.options;let a=Db(A)?Db(this._docs[0])?this._searchStringList(A):this._searchObjectList(A):this._searchLogical(A);return mmi(a,{ignoreFieldNorm:r}),o&&a.sort(s),N_t(t)&&t>-1&&(a=a.slice(0,t)),_mi(a,this._docs,{includeMatches:i,includeScore:n})}_searchStringList(A){const t=RvA(A,this.options),{records:i}=this._myIndex,n=[];return i.forEach(({v:o,i:s,n:r})=>{if(!Vw(o))return;const{isMatch:a,score:g,indices:c}=t.searchIn(o);a&&n.push({item:o,idx:s,matches:[{score:g,value:o,norm:r,indices:c}]})}),n}_searchLogical(A){const t=Z_t(A,this.options),i=(r,a,g)=>{if(!r.children){const{keyId:I,searcher:l}=r,B=this._findMatches({key:this._keyStore.get(I),value:this._myIndex.getValueForItemAtKeyId(a,I),searcher:l});return B&&B.length?[{idx:g,item:a,matches:B}]:[]}const c=[];for(let I=0,l=r.children.length;I<l;I+=1){const B=r.children[I],C=i(B,a,g);if(C.length)c.push(...C);else if(r.operator===K7.AND)return[]}return c},n=this._myIndex.records,o={},s=[];return n.forEach(({$:r,i:a})=>{if(Vw(r)){let g=i(t,r,a);g.length&&(o[a]||(o[a]={idx:a,item:r,matches:[]},s.push(o[a])),g.forEach(({matches:c})=>{o[a].matches.push(...c)}))}}),s}_searchObjectList(A){const t=RvA(A,this.options),{keys:i,records:n}=this._myIndex,o=[];return n.forEach(({$:s,i:r})=>{if(!Vw(s))return;let a=[];i.forEach((g,c)=>{a.push(...this._findMatches({key:g,value:s[c],searcher:t}))}),a.length&&o.push({idx:r,item:s,matches:a})}),o}_findMatches({key:A,value:t,searcher:i}){if(!Vw(t))return[];let n=[];if(Av(t))t.forEach(({v:o,i:s,n:r})=>{if(!Vw(o))return;const{isMatch:a,score:g,indices:c}=i.searchIn(o);a&&n.push({score:g,key:A,value:o,idx:s,norm:r,indices:c})});else{const{v:o,n:s}=t,{isMatch:r,score:a,indices:g}=i.searchIn(o);r&&n.push({score:a,key:A,value:o,norm:s,indices:g})}return n}}yU.version="7.1.0",yU.createIndex=J_t,yU.parseIndex=omi,yU.config=Tr,yU.parseQuery=Z_t,pmi(dmi);let NvA=null,F4=null,MvA=null;const xmi=async()=>NvA||F4||(F4=fetch("https://kicad-mod-cache.tscircuit.com/kicad_files.json").then(e=>e.json()).then(e=>(NvA=e,F4=null,e)),F4),bmi=async(e,A=20)=>{const t=await xmi();return MvA||(MvA=new yU(t)),MvA.search(e).slice(0,A).map(i=>i.item)},Smi=e=>{const A=e.replace(".pretty/",":").replace(".kicad_mod",""),t=`kicad:${A}`;return{path:e,qualifiedName:t,description:A}},vmi=()=>{const[e,A]=lA.useState([]),[t,i]=lA.useState(!1),[n,o]=lA.useState(null),[s,r]=lA.useState(!1),a=lA.useCallback(async c=>{const I=c.trim();if(!I)return[];i(!0),o(null);try{const B=(await bmi(I,20)).map(C=>({source:"kicad",footprint:Smi(C)}));return A(B),B}catch(l){return console.error("Error searching KiCad footprints",l),A([]),o(l instanceof Error?l.message:"Failed to search KiCad footprints"),[]}finally{i(!1),r(!0)}},[]),g=lA.useCallback(()=>{A([]),i(!1),o(null),r(!1)},[]);return{results:e,isSearching:t,error:n,hasSearched:s,search:a,reset:g}},kmi=({onTscircuitPackageSelected:e,onJlcpcbComponentTsxLoaded:A,onKicadStringSelected:t})=>{const i=[];return e&&i.push("tscircuit.com"),A&&i.push("jlcpcb"),t&&i.push("kicad"),i},Rmi=({isOpen:e,onClose:A,jlcpcbProxyRequestHeaders:t,onKicadStringSelected:i,onTscircuitPackageSelected:n,onJlcpcbComponentTsxLoaded:o,jlcpcbProxyApiBase:s})=>{aQt();const r=lA.useMemo(()=>kmi({onKicadStringSelected:i,onTscircuitPackageSelected:n,onJlcpcbComponentTsxLoaded:o}),[i,n,o]),a=r.length>0,[g,c]=lA.useState(r[0]??"tscircuit.com"),[I,l]=lA.useState(""),[B,C]=lA.useState(null),{results:Q,isSearching:u,error:d,hasSearched:p,search:f,reset:m}=Kyi(),{results:S,isSearching:b,error:v,hasSearched:D,search:k,reset:x}=Pyi(),{results:L,isSearching:G,error:T,hasSearched:q,search:P,reset:V}=vmi(),{details:z,isLoading:oA,fetchDetails:aA,reset:QA}=Jyi(),[eA,rA]=lA.useState(null),[hA,xA]=lA.useState(!1),[MA,YA]=lA.useState("pcb"),[qA,RA]=lA.useState(null),[sA,_A]=lA.useState(!1);lA.useEffect(()=>{RA(null)},[B]);const mA=lA.useCallback(()=>{m(),x(),V(),C(null)},[x,V,m]);lA.useEffect(()=>{e||(mA(),l(""),xA(!1),rA(null),RA(null))},[e,mA]),lA.useEffect(()=>{l(""),C(null),g==="tscircuit.com"?m():g==="jlcpcb"?x():g==="kicad"&&V()},[g,x,V,m]);const VA=TA=>{C(TA),rA(TA),YA("pcb"),xA(!0),QA();const HA=TA.package.owner_github_username,XA=TA.package.unscoped_name;if(HA&&XA){const tt=XA.split("/").pop()??XA;aA(HA,tt)}},et=async()=>{I.trim()&&(C(null),g==="tscircuit.com"?await f(I):g==="jlcpcb"?await k(I):g==="kicad"&&await P(I))},at=async TA=>{try{if(RA(null),_A(!0),TA.source==="kicad"){if(!i)throw new Error("KiCad handler not provided");await i({result:TA,footprint:TA.footprint.qualifiedName})}else if(TA.source==="jlcpcb"){if(!o)throw new Error("JLCPCB handler not provided");const HA=await Gyi(TA.component.partNumber,{headers:t,apiBase:s});await o({result:TA,tsx:HA})}else if(TA.source==="tscircuit.com"){if(!n)throw new Error("tscircuit package handler not provided");const HA=TA.package.owner_github_username,XA=TA.package.unscoped_name;if(!HA||!XA)throw new Error("Missing package metadata");const tt=XA.split("/").pop()??XA,It=`@tsci/${HA}.${tt}`;await n({result:TA,fullPackageName:It})}return!0}catch(HA){return console.error("Failed to import component",HA),RA(HA instanceof Error?HA.message:"Failed to import component"),!1}finally{_A(!1)}};let vA=[],GA=!1,dA=null,uA=!1;g==="tscircuit.com"?(vA=Q,GA=u,dA=d,uA=p):g==="jlcpcb"?(vA=S,GA=b,dA=v,uA=D):g==="kicad"&&(vA=L,GA=G,dA=T,uA=q);const LA=async()=>{if(!B)return;await at(B)&&(A(),mA(),l(""))},kA=TA=>{TA||A()},SA=TA=>{xA(TA),TA||rA(null)};return gA.jsxs(pj,{open:e,onOpenChange:kA,children:[gA.jsxs(YT,{style:{width:"calc(100vw - 2rem)"},className:"rf-rounded-sm rf-max-h-[90vh] rf-overflow-y-auto rf-flex rf-flex-col",children:[gA.jsxs(JT,{children:[gA.jsx(TT,{className:"rf-text-lg sm:rf-text-xl",children:"Import Component"}),gA.jsx(yj,{className:"rf-text-sm",children:a?"Search for components from available sources.":"Import options are disabled because no handlers were provided."})]}),a?gA.jsxs(DeA,{value:g,onValueChange:TA=>c(TA),children:[gA.jsx(Qq,{className:"rf-flex rf-w-full rf-gap-2",children:r.map(TA=>gA.jsx(jb,{value:TA,className:"rf-flex-1 rf-text-xs sm:rf-text-sm",children:swA[TA].label},TA))}),gA.jsx(Nyi,{query:I,placeholder:swA[g].placeholder,isSearching:GA,onQueryChange:l,onSubmit:et}),gA.jsx("div",{className:"rf-mt-4 rf-flex-1 rf-min-h-[200px] !rf-max-h-[40vh] !rf-overflow-y-auto rf-border rf-rounded-md",children:GA?gA.jsxs("div",{className:"rf-p-8 rf-text-center rf-text-zinc-500",children:[gA.jsx(Y1,{className:"rf-h-8 rf-w-8 rf-animate-spin rf-mx-auto rf-mb-2"}),gA.jsx("p",{children:"Searching..."})]}):vA.length>0?gA.jsx(Hyi,{results:vA,selected:B,onSelect:C,onShowDetails:g==="tscircuit.com"?VA:void 0}):gA.jsx("div",{className:"rf-p-8 rf-text-center rf-text-zinc-500",children:dA?`Error: ${dA}`:uA?swA[g].emptyMessage:"Enter a search term to find components"})})]}):null,qA?gA.jsx("div",{className:"rf-text-sm rf-text-red-600 rf-mt-2",children:qA}):null,gA.jsxs(fj,{className:"rf-flex rf-flex-col sm:rf-flex-row rf-gap-2",children:[gA.jsx(gE,{variant:"outline",onClick:A,className:"rf-order-2 sm:rf-order-1",children:"Cancel"}),gA.jsx(gE,{onClick:LA,disabled:!B||sA,className:"rf-order-1 sm:rf-order-2",children:sA?gA.jsx(Y1,{className:"rf-h-4 rf-w-4 rf-animate-spin"}):"Import"})]})]}),gA.jsx(Yyi,{packageResult:eA,isOpen:hA,onOpenChange:SA,isLoading:oA,details:z,previewTab:MA,onPreviewTabChange:TA=>YA(TA),isSubmitting:sA,onImport:()=>{eA&&at(eA).then(TA=>{TA&&(xA(!1),A(),mA(),l(""))})}})]})},Fmi=e=>{const A=e.match(/export const (\w+) =/);if(!A)throw new Error("Could not determine component name from TSX contents");return A[1]},V_t=e=>{const A=lb(s=>s.pushEvent),t=lb(s=>s.upsertFile),i=async({result:s,fullPackageName:r})=>{const g=s.package.unscoped_name??s.package.name;throw await sc.promise(A({event_type:"INSTALL_PACKAGE",full_package_name:r}),{loading:`Requesting install for "${g}"`,success:`Install requested for "${g}"`,error:c=>`Failed to request install: ${c instanceof Error?c.message:String(c)}`}),new Error("Not implemented")},n=async({footprint:s})=>{await sc.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/${Fmi(r)}.tsx`;await sc.promise(t(g,r),{loading:`Importing ${s.component.partNumber}`,success:`Imported to "${g}"`,error:c=>`Failed to import component: ${c instanceof Error?c.message:String(c)}`})};return gA.jsx(Rmi,{...e,onTscircuitPackageSelected:i,onKicadStringSelected:n,onJlcpcbComponentTsxLoaded:o})};V_t.displayName="ImportComponentDialogForCli";var UvA={exports:{}},j_t;function Gmi(){return j_t||(j_t=1,(function(e,A){var t={env:{},version:""};/*!
|
|
6613
|
+
*/const Ryi=async(e,A=10)=>{const t=encodeURIComponent(e),i=await fetch(`https://jlcsearch.tscircuit.com/api/search?limit=${A}&q=${t}`);if(!i.ok)throw new Error(`JLCPCB API error: ${i.status}`);return(await i.json()).components??[]},Fyi=e=>({lcscId:e.lcsc,manufacturer:e.mfr,description:e.description,partNumber:`C${e.lcsc}`,package:e.package,price:e.price,stock:e.stock}),Gyi=async(e,A)=>{const t=await kyi(e,{fetch:(i,n)=>fetch(`${A?.apiBase??TS}/proxy`,{...n,headers:{...n?.headers,"X-Target-Url":i.toString(),"X-Sender-Origin":n?.headers?.origin??"","X-Sender-Host":n?.headers?.host??"https://easyeda.com","X-Sender-Referer":n?.headers?.referer??"","X-Sender-User-Agent":n?.headers?.userAgent??"","X-Sender-Cookie":n?.headers?.cookie??"",authority:n?.headers?.authority??"","content-type":n?.headers?.["content-type"]??"",...A?.headers}})});return byi(t)},Nyi=({query:e,placeholder:A,isSearching:t,onQueryChange:i,onSubmit:n})=>{const o=lA.useCallback(s=>{s.key==="Enter"&&(s.preventDefault(),n())},[n]);return gA.jsxs("div",{className:"rf-flex rf-items-center rf-gap-2 rf-mt-4",children:[gA.jsxs("div",{className:"rf-relative rf-flex-grow",children:[gA.jsx(Brt,{className:"rf-absolute rf-left-2 rf-top-2.5 rf-h-4 rf-w-4 rf-text-muted-foreground"}),gA.jsx(NyA,{placeholder:A,className:"rf-pl-8",spellCheck:!1,autoComplete:"off",value:e,onChange:s=>i(s.target.value),onKeyDown:o})]}),gA.jsx(gE,{onClick:n,disabled:t||e.trim().length<1,className:"sm:rf-px-4 rf-px-3",children:t?gA.jsx(Y1,{className:"rf-h-4 rf-w-4 rf-animate-spin"}):gA.jsxs(gA.Fragment,{children:[gA.jsx(Brt,{className:"rf-h-4 rf-w-4 sm:rf-hidden"}),gA.jsx("span",{className:"rf-hidden sm:rf-inline",children:"Search"})]})})]})},F_t=e=>{switch(e.source){case"tscircuit.com":{const A=e.package;return`tscircuit-${A.package_id??`${A.owner_github_username??"unknown"}-${A.unscoped_name??A.name??"package"}`}`}case"jlcpcb":return`jlc-${e.component.lcscId}`;case"kicad":return`kicad-${e.footprint.path}`;default:return"unknown"}},Myi=e=>{switch(e.source){case"tscircuit.com":return e.package.unscoped_name;case"jlcpcb":return e.component.manufacturer;case"kicad":return e.footprint.qualifiedName}},Uyi=e=>{switch(e.source){case"tscircuit.com":return e.package.description||(e.package.owner_github_username?`Component by ${e.package.owner_github_username}`:void 0);case"jlcpcb":return e.component.description;case"kicad":return e.footprint.description}},Lyi=e=>{switch(e.source){case"tscircuit.com":return e.package.name;case"jlcpcb":return e.component.partNumber;case"kicad":return}},Hyi=({results:e,selected:A,onSelect:t,onShowDetails:i})=>{const n=A?F_t(A):null;return gA.jsx("div",{className:"rf-divide-y",children:e.map(o=>{const s=F_t(o),r=n===s,a=Myi(o),g=Uyi(o),c=Lyi(o),I=o.source==="jlcpcb"?o.component.stock:null;return gA.jsxs("div",{className:`rf-p-3 rf-flex rf-flex-col sm:rf-grid sm:rf-grid-cols-[1fr_auto] rf-items-start sm:rf-items-center rf-cursor-pointer hover:rf-bg-zinc-100 rf-gap-2 ${r?"rf-bg-zinc-100":""}`,onClick:()=>t(o),children:[gA.jsxs("div",{className:"rf-min-w-0 rf-overflow-hidden rf-w-full",children:[gA.jsxs("div",{className:"rf-flex rf-items-start rf-gap-2",children:[gA.jsx("div",{className:"rf-font-medium rf-text-sm rf-truncate rf-flex-1 rf-min-w-0",children:a}),o.source==="jlcpcb"&&I!=null?gA.jsxs("div",{className:"rf-text-xs rf-text-zinc-500 rf-font-medium rf-whitespace-nowrap sm:rf-hidden",children:[I.toLocaleString()," in stock"]}):null]}),gA.jsxs("div",{className:"rf-text-xs rf-text-zinc-500 rf-truncate",children:[c?gA.jsx("span",{className:"rf-mr-2",children:c}):null,g]})]}),o.source==="tscircuit.com"&&i?gA.jsx("div",{className:"rf-flex rf-gap-2 rf-flex-shrink-0 rf-w-full sm:rf-w-auto",children:gA.jsx(gE,{variant:"outline",size:"sm",className:"rf-text-xs rf-w-full sm:rf-w-auto",onClick:l=>{l.stopPropagation(),i(o)},children:"See Details"})}):o.source==="jlcpcb"&&I!=null?gA.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:[I.toLocaleString()," in stock"]}):null]},s)})})},G_t=(e,A)=>!e?.owner_github_username||!e?.unscoped_name?null:`https://registry-api.tscircuit.com/packages/images/${e.owner_github_username}/${e.unscoped_name}/${A}.png`,Yyi=({packageResult:e,isOpen:A,onOpenChange:t,isLoading:i,details:n,previewTab:o,onPreviewTabChange:s,isSubmitting:r,onImport:a})=>{const g=e?.package??null,c=G_t(g,"pcb"),I=G_t(g,"schematic"),l=g?.unscoped_name?.split("/").pop()??g?.unscoped_name,B=g?.owner_github_username??void 0,C=B?`https://tscircuit.com/${B}`:void 0,Q=B&&l?`https://tscircuit.com/${B}/${l}`:void 0;return gA.jsx(pj,{open:A,onOpenChange:t,children:gA.jsxs(YT,{showOverlay:!1,style:{width:"calc(100vw - 2rem)"},className:"rf-max-w-5xl !rf-overflow-y-auto rf-max-h-[90vh] rf-overflow-hidden rf-flex rf-flex-col rf-rounded-sm",children:[gA.jsx(JT,{className:"rf-pb-4 rf-border-b",children:gA.jsx("div",{className:"rf-flex rf-items-start rf-justify-between rf-gap-4",children:gA.jsxs("div",{className:"rf-flex-1 rf-min-w-0",children:[gA.jsx(TT,{className:"rf-text-xl rf-font-semibold rf-truncate",children:l}),gA.jsx(yj,{children:g?.description})]})})}),gA.jsxs("div",{className:"rf-flex-1 rf-overflow-y-auto rf-py-4 rf-space-y-6",children:[B?gA.jsxs("div",{children:[gA.jsx("span",{className:"rf-text-xs rf-font-medium rf-text-gray-500 rf-uppercase rf-tracking-wide",children:"Created by"}),gA.jsx("div",{className:"rf-mt-1 rf-text-sm rf-font-medium",children:C?gA.jsx("a",{href:C,target:"_blank",rel:"noopener noreferrer",className:"rf-text-black hover:rf-underline",children:B}):B})]}):null,gA.jsxs("div",{children:[gA.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-mb-4",children:"Preview"}),gA.jsxs(DeA,{value:o,onValueChange:u=>s(u),children:[gA.jsxs(Qq,{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:[gA.jsx(jb,{value:"pcb",children:"PCB"}),gA.jsx(jb,{value:"schematic",children:"Schematic"})]}),gA.jsxs("div",{className:"rf-mt-4",children:[gA.jsx(xw,{value:"pcb",className:"rf-border rf-rounded-lg rf-overflow-hidden rf-bg-gray-50",children:c?gA.jsx("img",{src:c,alt:`${l??"package"} PCB preview`,className:"rf-w-full rf-h-full rf-object-contain rf-bg-white rf-p-4"}):null}),gA.jsx(xw,{value:"schematic",className:"rf-border rf-rounded-lg rf-overflow-hidden rf-bg-gray-50",children:I?gA.jsx("img",{src:I,alt:`${l??"package"} schematic preview`,className:"rf-w-full rf-h-full rf-object-contain rf-bg-white rf-p-4"}):null})]})]})]}),n?.ai_description?gA.jsxs("section",{children:[gA.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-mb-3",children:"AI Description"}),gA.jsx("div",{className:"rf-bg-gray-50 rf-border rf-border-gray-200 rf-rounded-lg rf-p-4",children:gA.jsx("p",{className:"rf-text-sm rf-text-gray-700 rf-leading-relaxed",children:n.ai_description})})]}):null,n?.ai_usage_instructions?gA.jsxs("section",{children:[gA.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-mb-3",children:"Usage Instructions"}),gA.jsx("div",{className:"rf-bg-gray-50 rf-border rf-border-gray-200 rf-rounded-lg rf-p-4",children:gA.jsx("p",{className:"rf-text-sm rf-text-gray-700 rf-leading-relaxed rf-whitespace-pre-wrap",children:n.ai_usage_instructions})})]}):null,i?gA.jsxs("div",{className:"rf-flex rf-justify-center rf-items-center rf-gap-2 rf-text-gray-500",children:[gA.jsx(Y1,{className:"rf-h-4 rf-w-4 rf-animate-spin"}),gA.jsx("span",{className:"rf-text-sm",children:"Loading package details..."})]}):null]}),gA.jsxs(fj,{className:"rf-pt-4 rf-border-t rf-flex rf-flex-col sm:rf-flex-row rf-justify-between rf-gap-2",children:[gA.jsx("div",{className:"rf-flex-1",children:Q?gA.jsxs(gE,{variant:"outline",size:"sm",className:"rf-gap-2 rf-w-full sm:rf-w-auto",onClick:()=>window.open(Q,"_blank"),children:[gA.jsx(wHe,{className:"rf-h-4 rf-w-4"}),"View on tscircuit.com"]}):null}),gA.jsxs("div",{className:"rf-flex rf-flex-col sm:rf-flex-row rf-gap-2",children:[gA.jsx(gE,{variant:"outline",onClick:()=>t(!1),className:"rf-order-2 sm:rf-order-1",children:"Close"}),gA.jsx(gE,{onClick:a,disabled:r,className:"rf-bg-blue-600 hover:rf-bg-blue-700",children:r?gA.jsx(Y1,{className:"rf-h-4 rf-w-4 rf-animate-spin"}):"Import Component"})]})]})]})})},Jyi=()=>{const[e,A]=lA.useState(null),[t,i]=lA.useState(!1),n=lA.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=lA.useCallback(()=>{A(null),i(!1)},[]);return{details:e,isLoading:t,fetchDetails:n,reset:o}},Tyi=async e=>{const A=await fetch("https://registry-api.tscircuit.com/packages/search",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:e})});if(!A.ok)throw new Error(`tscircuit registry error: ${A.status}`);return(await A.json()).packages??[]},Kyi=()=>{const[e,A]=lA.useState([]),[t,i]=lA.useState(!1),[n,o]=lA.useState(null),[s,r]=lA.useState(!1),a=lA.useCallback(async c=>{const I=c.trim();if(!I)return[];i(!0),o(null);try{const B=(await Tyi(I)).map(C=>({source:"tscircuit.com",package:C}));return A(B),B}catch(l){return console.error("Error searching tscircuit packages",l),A([]),o(l instanceof Error?l.message:"Failed to search tscircuit packages"),[]}finally{i(!1),r(!0)}},[]),g=lA.useCallback(()=>{A([]),i(!1),o(null),r(!1)},[]);return{results:e,isSearching:t,error:n,hasSearched:s,search:a,reset:g}},qyi=e=>{const A=e.trim();return/^C\d+/i.test(A)?A.replace(/^C/i,""):A},Pyi=()=>{const[e,A]=lA.useState([]),[t,i]=lA.useState(!1),[n,o]=lA.useState(null),[s,r]=lA.useState(!1),a=lA.useCallback(async c=>{const I=qyi(c);if(!I)return[];i(!0),o(null);try{const B=(await Ryi(I,10)).map(C=>({source:"jlcpcb",component:Fyi(C)}));return A(B),B}catch(l){return console.error("Error searching JLCPCB components",l),A([]),o(l instanceof Error?l.message:"Failed to search JLCPCB components"),[]}finally{i(!1),r(!0)}},[]),g=lA.useCallback(()=>{A([]),i(!1),o(null),r(!1)},[]);return{results:e,isSearching:t,error:n,hasSearched:s,search:a,reset:g}};function Av(e){return Array.isArray?Array.isArray(e):U_t(e)==="[object Array]"}function Oyi(e){if(typeof e=="string")return e;let A=e+"";return A=="0"&&1/e==-1/0?"-0":A}function Wyi(e){return e==null?"":Oyi(e)}function Db(e){return typeof e=="string"}function N_t(e){return typeof e=="number"}function Zyi(e){return e===!0||e===!1||Vyi(e)&&U_t(e)=="[object Boolean]"}function M_t(e){return typeof e=="object"}function Vyi(e){return M_t(e)&&e!==null}function Vw(e){return e!=null}function xvA(e){return!e.trim().length}function U_t(e){return e==null?e===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}const jyi="Incorrect 'index' type",zyi=e=>`Invalid value for key ${e}`,Xyi=e=>`Pattern length exceeds max of ${e}.`,$yi=e=>`Missing ${e} property in key`,Ami=e=>`Property 'weight' in key '${e}' must be a positive integer`,L_t=Object.prototype.hasOwnProperty;class tmi{constructor(A){this._keys=[],this._keyMap={};let t=0;A.forEach(i=>{let n=H_t(i);this._keys.push(n),this._keyMap[n.id]=n,t+=n.weight}),this._keys.forEach(i=>{i.weight/=t})}get(A){return this._keyMap[A]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}}function H_t(e){let A=null,t=null,i=null,n=1,o=null;if(Db(e)||Av(e))i=e,A=Y_t(e),t=bvA(e);else{if(!L_t.call(e,"name"))throw new Error($yi("name"));const s=e.name;if(i=s,L_t.call(e,"weight")&&(n=e.weight,n<=0))throw new Error(Ami(s));A=Y_t(s),t=bvA(s),o=e.getFn}return{path:A,id:t,weight:n,src:i,getFn:o}}function Y_t(e){return Av(e)?e:e.split(".")}function bvA(e){return Av(e)?e.join("."):e}function emi(e,A){let t=[],i=!1;const n=(o,s,r)=>{if(Vw(o))if(!s[r])t.push(o);else{let a=s[r];const g=o[a];if(!Vw(g))return;if(r===s.length-1&&(Db(g)||N_t(g)||Zyi(g)))t.push(Wyi(g));else if(Av(g)){i=!0;for(let c=0,I=g.length;c<I;c+=1)n(g[c],s,r+1)}else s.length&&n(g,s,r+1)}};return n(e,Db(A)?A.split("."):A,0),i?t:t[0]}var Tr={...{isCaseSensitive:!1,ignoreDiacritics:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:(e,A)=>e.score===A.score?e.idx<A.idx?-1:1:e.score<A.score?-1:1},...{includeMatches:!1,findAllMatches:!1,minMatchCharLength:1},...{location:0,threshold:.6,distance:100},...{useExtendedSearch:!1,getFn:emi,ignoreLocation:!1,ignoreFieldNorm:!1,fieldNormWeight:1}};const imi=/[^ ]+/g;function nmi(e=1,A=3){const t=new Map,i=Math.pow(10,A);return{get(n){const o=n.match(imi).length;if(t.has(o))return t.get(o);const s=1/Math.pow(o,.5*e),r=parseFloat(Math.round(s*i)/i);return t.set(o,r),r},clear(){t.clear()}}}class SvA{constructor({getFn:A=Tr.getFn,fieldNormWeight:t=Tr.fieldNormWeight}={}){this.norm=nmi(t,3),this.getFn=A,this.isCreated=!1,this.setIndexRecords()}setSources(A=[]){this.docs=A}setIndexRecords(A=[]){this.records=A}setKeys(A=[]){this.keys=A,this._keysMap={},A.forEach((t,i)=>{this._keysMap[t.id]=i})}create(){this.isCreated||!this.docs.length||(this.isCreated=!0,Db(this.docs[0])?this.docs.forEach((A,t)=>{this._addString(A,t)}):this.docs.forEach((A,t)=>{this._addObject(A,t)}),this.norm.clear())}add(A){const t=this.size();Db(A)?this._addString(A,t):this._addObject(A,t)}removeAt(A){this.records.splice(A,1);for(let t=A,i=this.size();t<i;t+=1)this.records[t].i-=1}getValueForItemAtKeyId(A,t){return A[this._keysMap[t]]}size(){return this.records.length}_addString(A,t){if(!Vw(A)||xvA(A))return;let i={v:A,i:t,n:this.norm.get(A)};this.records.push(i)}_addObject(A,t){let i={i:t,$:{}};this.keys.forEach((n,o)=>{let s=n.getFn?n.getFn(A):this.getFn(A,n.path);if(Vw(s)){if(Av(s)){let r=[];const a=[{nestedArrIndex:-1,value:s}];for(;a.length;){const{nestedArrIndex:g,value:c}=a.pop();if(Vw(c))if(Db(c)&&!xvA(c)){let I={v:c,i:g,n:this.norm.get(c)};r.push(I)}else Av(c)&&c.forEach((I,l)=>{a.push({nestedArrIndex:l,value:I})})}i.$[o]=r}else if(Db(s)&&!xvA(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 J_t(e,A,{getFn:t=Tr.getFn,fieldNormWeight:i=Tr.fieldNormWeight}={}){const n=new SvA({getFn:t,fieldNormWeight:i});return n.setKeys(e.map(H_t)),n.setSources(A),n.create(),n}function omi(e,{getFn:A=Tr.getFn,fieldNormWeight:t=Tr.fieldNormWeight}={}){const{keys:i,records:n}=e,o=new SvA({getFn:A,fieldNormWeight:t});return o.setKeys(i),o.setIndexRecords(n),o}function J7(e,{errors:A=0,currentLocation:t=0,expectedLocation:i=0,distance:n=Tr.distance,ignoreLocation:o=Tr.ignoreLocation}={}){const s=A/e.length;if(o)return s;const r=Math.abs(i-t);return n?s+r/n:r?1:s}function smi(e=[],A=Tr.minMatchCharLength){let t=[],i=-1,n=-1,o=0;for(let s=e.length;o<s;o+=1){let r=e[o];r&&i===-1?i=o:!r&&i!==-1&&(n=o-1,n-i+1>=A&&t.push([i,n]),i=-1)}return e[o-1]&&o-i>=A&&t.push([i,o-1]),t}const OF=32;function rmi(e,A,t,{location:i=Tr.location,distance:n=Tr.distance,threshold:o=Tr.threshold,findAllMatches:s=Tr.findAllMatches,minMatchCharLength:r=Tr.minMatchCharLength,includeMatches:a=Tr.includeMatches,ignoreLocation:g=Tr.ignoreLocation}={}){if(A.length>OF)throw new Error(Xyi(OF));const c=A.length,I=e.length,l=Math.max(0,Math.min(i,I));let B=o,C=l;const Q=r>1||a,u=Q?Array(I):[];let d;for(;(d=e.indexOf(A,C))>-1;){let v=J7(A,{currentLocation:d,expectedLocation:l,distance:n,ignoreLocation:g});if(B=Math.min(v,B),C=d+c,Q){let D=0;for(;D<c;)u[d+D]=1,D+=1}}C=-1;let p=[],f=1,m=c+I;const S=1<<c-1;for(let v=0;v<c;v+=1){let D=0,k=m;for(;D<k;)J7(A,{errors:v,currentLocation:l+k,expectedLocation:l,distance:n,ignoreLocation:g})<=B?D=k:m=k,k=Math.floor((m-D)/2+D);m=k;let x=Math.max(1,l-k+1),L=s?I:Math.min(l+k,I)+c,G=Array(L+2);G[L+1]=(1<<v)-1;for(let q=L;q>=x;q-=1){let P=q-1,V=t[e.charAt(P)];if(Q&&(u[P]=+!!V),G[q]=(G[q+1]<<1|1)&V,v&&(G[q]|=(p[q+1]|p[q])<<1|1|p[q+1]),G[q]&S&&(f=J7(A,{errors:v,currentLocation:P,expectedLocation:l,distance:n,ignoreLocation:g}),f<=B)){if(B=f,C=P,C<=l)break;x=Math.max(1,2*l-C)}}if(J7(A,{errors:v+1,currentLocation:l,expectedLocation:l,distance:n,ignoreLocation:g})>B)break;p=G}const b={isMatch:C>=0,score:Math.max(.001,f)};if(Q){const v=smi(u,r);v.length?a&&(b.indices=v):b.isMatch=!1}return b}function ami(e){let A={};for(let t=0,i=e.length;t<i;t+=1){const n=e.charAt(t);A[n]=(A[n]||0)|1<<i-t-1}return A}const T7=String.prototype.normalize?(e=>e.normalize("NFD").replace(/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C04\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F]/g,"")):(e=>e);class T_t{constructor(A,{location:t=Tr.location,threshold:i=Tr.threshold,distance:n=Tr.distance,includeMatches:o=Tr.includeMatches,findAllMatches:s=Tr.findAllMatches,minMatchCharLength:r=Tr.minMatchCharLength,isCaseSensitive:a=Tr.isCaseSensitive,ignoreDiacritics:g=Tr.ignoreDiacritics,ignoreLocation:c=Tr.ignoreLocation}={}){if(this.options={location:t,threshold:i,distance:n,includeMatches:o,findAllMatches:s,minMatchCharLength:r,isCaseSensitive:a,ignoreDiacritics:g,ignoreLocation:c},A=a?A:A.toLowerCase(),A=g?T7(A):A,this.pattern=A,this.chunks=[],!this.pattern.length)return;const I=(B,C)=>{this.chunks.push({pattern:B,alphabet:ami(B),startIndex:C})},l=this.pattern.length;if(l>OF){let B=0;const C=l%OF,Q=l-C;for(;B<Q;)I(this.pattern.substr(B,OF),B),B+=OF;if(C){const u=l-OF;I(this.pattern.substr(u),u)}}else I(this.pattern,0)}searchIn(A){const{isCaseSensitive:t,ignoreDiacritics:i,includeMatches:n}=this.options;if(A=t?A:A.toLowerCase(),A=i?T7(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:c}=this.options;let I=[],l=0,B=!1;this.chunks.forEach(({pattern:Q,alphabet:u,startIndex:d})=>{const{isMatch:p,score:f,indices:m}=rmi(A,Q,u,{location:o+d,distance:s,threshold:r,findAllMatches:a,minMatchCharLength:g,includeMatches:n,ignoreLocation:c});p&&(B=!0),l+=f,p&&m&&(I=[...I,...m])});let C={isMatch:B,score:B?l/this.chunks.length:1};return B&&n&&(C.indices=I),C}}class wk{constructor(A){this.pattern=A}static isMultiMatch(A){return K_t(A,this.multiRegex)}static isSingleMatch(A){return K_t(A,this.singleRegex)}search(){}}function K_t(e,A){const t=e.match(A);return t?t[1]:null}class gmi extends wk{constructor(A){super(A)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(A){const t=A===this.pattern;return{isMatch:t,score:t?0:1,indices:[0,this.pattern.length-1]}}}class cmi extends wk{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 Imi extends wk{constructor(A){super(A)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(A){const t=A.startsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,this.pattern.length-1]}}}class lmi extends wk{constructor(A){super(A)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(A){const t=!A.startsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,A.length-1]}}}class Bmi extends wk{constructor(A){super(A)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(A){const t=A.endsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[A.length-this.pattern.length,A.length-1]}}}class Cmi extends wk{constructor(A){super(A)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(A){const t=!A.endsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,A.length-1]}}}class q_t extends wk{constructor(A,{location:t=Tr.location,threshold:i=Tr.threshold,distance:n=Tr.distance,includeMatches:o=Tr.includeMatches,findAllMatches:s=Tr.findAllMatches,minMatchCharLength:r=Tr.minMatchCharLength,isCaseSensitive:a=Tr.isCaseSensitive,ignoreDiacritics:g=Tr.ignoreDiacritics,ignoreLocation:c=Tr.ignoreLocation}={}){super(A),this._bitapSearch=new T_t(A,{location:t,threshold:i,distance:n,includeMatches:o,findAllMatches:s,minMatchCharLength:r,isCaseSensitive:a,ignoreDiacritics:g,ignoreLocation:c})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(A){return this._bitapSearch.searchIn(A)}}class P_t extends wk{constructor(A){super(A)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(A){let t=0,i;const n=[],o=this.pattern.length;for(;(i=A.indexOf(this.pattern,t))>-1;)t=i+o,n.push([i,t-1]);const s=!!n.length;return{isMatch:s,score:s?0:1,indices:n}}}const vvA=[gmi,P_t,Imi,lmi,Cmi,Bmi,cmi,q_t],O_t=vvA.length,hmi=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/,Qmi="|";function umi(e,A={}){return e.split(Qmi).map(t=>{let i=t.trim().split(hmi).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<O_t;){const c=vvA[g];let I=c.isMultiMatch(r);I&&(n.push(new c(I,A)),a=!0)}if(!a)for(g=-1;++g<O_t;){const c=vvA[g];let I=c.isSingleMatch(r);if(I){n.push(new c(I,A));break}}}return n})}const Emi=new Set([q_t.type,P_t.type]);class dmi{constructor(A,{isCaseSensitive:t=Tr.isCaseSensitive,ignoreDiacritics:i=Tr.ignoreDiacritics,includeMatches:n=Tr.includeMatches,minMatchCharLength:o=Tr.minMatchCharLength,ignoreLocation:s=Tr.ignoreLocation,findAllMatches:r=Tr.findAllMatches,location:a=Tr.location,threshold:g=Tr.threshold,distance:c=Tr.distance}={}){this.query=null,this.options={isCaseSensitive:t,ignoreDiacritics:i,includeMatches:n,minMatchCharLength:o,findAllMatches:r,ignoreLocation:s,location:a,threshold:g,distance:c},A=t?A:A.toLowerCase(),A=i?T7(A):A,this.pattern=A,this.query=umi(this.pattern,this.options)}static condition(A,t){return t.useExtendedSearch}searchIn(A){const t=this.query;if(!t)return{isMatch:!1,score:1};const{includeMatches:i,isCaseSensitive:n,ignoreDiacritics:o}=this.options;A=n?A:A.toLowerCase(),A=o?T7(A):A;let s=0,r=[],a=0;for(let g=0,c=t.length;g<c;g+=1){const I=t[g];r.length=0,s=0;for(let l=0,B=I.length;l<B;l+=1){const C=I[l],{isMatch:Q,indices:u,score:d}=C.search(A);if(Q){if(s+=1,a+=d,i){const p=C.constructor.type;Emi.has(p)?r=[...r,...u]:r.push(u)}}else{a=0,s=0,r.length=0;break}}if(s){let l={isMatch:!0,score:a/s};return i&&(l.indices=r),l}}return{isMatch:!1,score:1}}}const kvA=[];function pmi(...e){kvA.push(...e)}function RvA(e,A){for(let t=0,i=kvA.length;t<i;t+=1){let n=kvA[t];if(n.condition(e,A))return new n(e,A)}return new T_t(e,A)}const K7={AND:"$and",OR:"$or"},FvA={PATH:"$path",PATTERN:"$val"},GvA=e=>!!(e[K7.AND]||e[K7.OR]),fmi=e=>!!e[FvA.PATH],ymi=e=>!Av(e)&&M_t(e)&&!GvA(e),W_t=e=>({[K7.AND]:Object.keys(e).map(A=>({[A]:e[A]}))});function Z_t(e,A,{auto:t=!0}={}){const i=n=>{let o=Object.keys(n);const s=fmi(n);if(!s&&o.length>1&&!GvA(n))return i(W_t(n));if(ymi(n)){const a=s?n[FvA.PATH]:o[0],g=s?n[FvA.PATTERN]:n[a];if(!Db(g))throw new Error(zyi(a));const c={keyId:bvA(a),pattern:g};return t&&(c.searcher=RvA(g,A)),c}let r={children:[],operator:o[0]};return o.forEach(a=>{const g=n[a];Av(g)&&g.forEach(c=>{r.children.push(i(c))})}),r};return GvA(e)||(e=W_t(e)),i(e)}function mmi(e,{ignoreFieldNorm:A=Tr.ignoreFieldNorm}){e.forEach(t=>{let i=1;t.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))}),t.score=i})}function wmi(e,A){const t=e.matches;A.matches=[],Vw(t)&&t.forEach(i=>{if(!Vw(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 Dmi(e,A){A.score=e.score}function _mi(e,A,{includeMatches:t=Tr.includeMatches,includeScore:i=Tr.includeScore}={}){const n=[];return t&&n.push(wmi),i&&n.push(Dmi),e.map(o=>{const{idx:s}=o,r={item:A[s],refIndex:s};return n.length&&n.forEach(a=>{a(o,r)}),r})}class yU{constructor(A,t={},i){this.options={...Tr,...t},this.options.useExtendedSearch,this._keyStore=new tmi(this.options.keys),this.setCollection(A,i)}setCollection(A,t){if(this._docs=A,t&&!(t instanceof SvA))throw new Error(jyi);this._myIndex=t||J_t(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}add(A){Vw(A)&&(this._docs.push(A),this._myIndex.add(A))}remove(A=()=>!1){const t=[];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,t.push(o))}return t}removeAt(A){this._docs.splice(A,1),this._myIndex.removeAt(A)}getIndex(){return this._myIndex}search(A,{limit:t=-1}={}){const{includeMatches:i,includeScore:n,shouldSort:o,sortFn:s,ignoreFieldNorm:r}=this.options;let a=Db(A)?Db(this._docs[0])?this._searchStringList(A):this._searchObjectList(A):this._searchLogical(A);return mmi(a,{ignoreFieldNorm:r}),o&&a.sort(s),N_t(t)&&t>-1&&(a=a.slice(0,t)),_mi(a,this._docs,{includeMatches:i,includeScore:n})}_searchStringList(A){const t=RvA(A,this.options),{records:i}=this._myIndex,n=[];return i.forEach(({v:o,i:s,n:r})=>{if(!Vw(o))return;const{isMatch:a,score:g,indices:c}=t.searchIn(o);a&&n.push({item:o,idx:s,matches:[{score:g,value:o,norm:r,indices:c}]})}),n}_searchLogical(A){const t=Z_t(A,this.options),i=(r,a,g)=>{if(!r.children){const{keyId:I,searcher:l}=r,B=this._findMatches({key:this._keyStore.get(I),value:this._myIndex.getValueForItemAtKeyId(a,I),searcher:l});return B&&B.length?[{idx:g,item:a,matches:B}]:[]}const c=[];for(let I=0,l=r.children.length;I<l;I+=1){const B=r.children[I],C=i(B,a,g);if(C.length)c.push(...C);else if(r.operator===K7.AND)return[]}return c},n=this._myIndex.records,o={},s=[];return n.forEach(({$:r,i:a})=>{if(Vw(r)){let g=i(t,r,a);g.length&&(o[a]||(o[a]={idx:a,item:r,matches:[]},s.push(o[a])),g.forEach(({matches:c})=>{o[a].matches.push(...c)}))}}),s}_searchObjectList(A){const t=RvA(A,this.options),{keys:i,records:n}=this._myIndex,o=[];return n.forEach(({$:s,i:r})=>{if(!Vw(s))return;let a=[];i.forEach((g,c)=>{a.push(...this._findMatches({key:g,value:s[c],searcher:t}))}),a.length&&o.push({idx:r,item:s,matches:a})}),o}_findMatches({key:A,value:t,searcher:i}){if(!Vw(t))return[];let n=[];if(Av(t))t.forEach(({v:o,i:s,n:r})=>{if(!Vw(o))return;const{isMatch:a,score:g,indices:c}=i.searchIn(o);a&&n.push({score:g,key:A,value:o,idx:s,norm:r,indices:c})});else{const{v:o,n:s}=t,{isMatch:r,score:a,indices:g}=i.searchIn(o);r&&n.push({score:a,key:A,value:o,norm:s,indices:g})}return n}}yU.version="7.1.0",yU.createIndex=J_t,yU.parseIndex=omi,yU.config=Tr,yU.parseQuery=Z_t,pmi(dmi);let NvA=null,F4=null,MvA=null;const xmi=async()=>NvA||F4||(F4=fetch("https://kicad-mod-cache.tscircuit.com/kicad_files.json").then(e=>e.json()).then(e=>(NvA=e,F4=null,e)),F4),bmi=async(e,A=20)=>{const t=await xmi();return MvA||(MvA=new yU(t)),MvA.search(e).slice(0,A).map(i=>i.item)},Smi=e=>{const A=e.replace(".pretty/",":").replace(".kicad_mod",""),t=`kicad:${A}`;return{path:e,qualifiedName:t,description:A}},vmi=()=>{const[e,A]=lA.useState([]),[t,i]=lA.useState(!1),[n,o]=lA.useState(null),[s,r]=lA.useState(!1),a=lA.useCallback(async c=>{const I=c.trim();if(!I)return[];i(!0),o(null);try{const B=(await bmi(I,20)).map(C=>({source:"kicad",footprint:Smi(C)}));return A(B),B}catch(l){return console.error("Error searching KiCad footprints",l),A([]),o(l instanceof Error?l.message:"Failed to search KiCad footprints"),[]}finally{i(!1),r(!0)}},[]),g=lA.useCallback(()=>{A([]),i(!1),o(null),r(!1)},[]);return{results:e,isSearching:t,error:n,hasSearched:s,search:a,reset:g}},kmi=({onTscircuitPackageSelected:e,onJlcpcbComponentTsxLoaded:A,onKicadStringSelected:t})=>{const i=[];return e&&i.push("tscircuit.com"),A&&i.push("jlcpcb"),t&&i.push("kicad"),i},Rmi=({isOpen:e,onClose:A,jlcpcbProxyRequestHeaders:t,onKicadStringSelected:i,onTscircuitPackageSelected:n,onJlcpcbComponentTsxLoaded:o,jlcpcbProxyApiBase:s})=>{aQt();const r=lA.useMemo(()=>kmi({onKicadStringSelected:i,onTscircuitPackageSelected:n,onJlcpcbComponentTsxLoaded:o}),[i,n,o]),a=r.length>0,[g,c]=lA.useState(r[0]??"tscircuit.com"),[I,l]=lA.useState(""),[B,C]=lA.useState(null),{results:Q,isSearching:u,error:d,hasSearched:p,search:f,reset:m}=Kyi(),{results:S,isSearching:b,error:v,hasSearched:D,search:k,reset:x}=Pyi(),{results:L,isSearching:G,error:T,hasSearched:q,search:P,reset:V}=vmi(),{details:z,isLoading:oA,fetchDetails:aA,reset:QA}=Jyi(),[eA,rA]=lA.useState(null),[hA,xA]=lA.useState(!1),[MA,YA]=lA.useState("pcb"),[qA,RA]=lA.useState(null),[sA,_A]=lA.useState(!1);lA.useEffect(()=>{RA(null)},[B]);const mA=lA.useCallback(()=>{m(),x(),V(),C(null)},[x,V,m]);lA.useEffect(()=>{e||(mA(),l(""),xA(!1),rA(null),RA(null))},[e,mA]),lA.useEffect(()=>{l(""),C(null),g==="tscircuit.com"?m():g==="jlcpcb"?x():g==="kicad"&&V()},[g,x,V,m]);const VA=TA=>{C(TA),rA(TA),YA("pcb"),xA(!0),QA();const HA=TA.package.owner_github_username,XA=TA.package.unscoped_name;if(HA&&XA){const tt=XA.split("/").pop()??XA;aA(HA,tt)}},et=async()=>{I.trim()&&(C(null),g==="tscircuit.com"?await f(I):g==="jlcpcb"?await k(I):g==="kicad"&&await P(I))},at=async TA=>{try{if(RA(null),_A(!0),TA.source==="kicad"){if(!i)throw new Error("KiCad handler not provided");await i({result:TA,footprint:TA.footprint.qualifiedName})}else if(TA.source==="jlcpcb"){if(!o)throw new Error("JLCPCB handler not provided");const HA=await Gyi(TA.component.partNumber,{headers:t,apiBase:s});await o({result:TA,tsx:HA})}else if(TA.source==="tscircuit.com"){if(!n)throw new Error("tscircuit package handler not provided");const HA=TA.package.owner_github_username,XA=TA.package.unscoped_name;if(!HA||!XA)throw new Error("Missing package metadata");const tt=XA.split("/").pop()??XA,It=`@tsci/${HA}.${tt}`;await n({result:TA,fullPackageName:It})}return!0}catch(HA){return console.error("Failed to import component",HA),RA(HA instanceof Error?HA.message:"Failed to import component"),!1}finally{_A(!1)}};let vA=[],GA=!1,dA=null,uA=!1;g==="tscircuit.com"?(vA=Q,GA=u,dA=d,uA=p):g==="jlcpcb"?(vA=S,GA=b,dA=v,uA=D):g==="kicad"&&(vA=L,GA=G,dA=T,uA=q);const LA=async()=>{if(!B)return;await at(B)&&(A(),mA(),l(""))},kA=TA=>{TA||A()},SA=TA=>{xA(TA),TA||rA(null)};return gA.jsxs(pj,{open:e,onOpenChange:kA,children:[gA.jsxs(YT,{style:{width:"calc(100vw - 2rem)"},className:"rf-rounded-sm rf-max-h-[90vh] rf-overflow-y-auto rf-flex rf-flex-col",children:[gA.jsxs(JT,{children:[gA.jsx(TT,{className:"rf-text-lg sm:rf-text-xl",children:"Import Component"}),gA.jsx(yj,{className:"rf-text-sm",children:a?"Search for components from available sources.":"Import options are disabled because no handlers were provided."})]}),a?gA.jsxs(DeA,{value:g,onValueChange:TA=>c(TA),children:[gA.jsx(Qq,{className:"rf-flex rf-w-full rf-gap-2",children:r.map(TA=>gA.jsx(jb,{value:TA,className:"rf-flex-1 rf-text-xs sm:rf-text-sm",children:swA[TA].label},TA))}),gA.jsx(Nyi,{query:I,placeholder:swA[g].placeholder,isSearching:GA,onQueryChange:l,onSubmit:et}),gA.jsx("div",{className:"rf-mt-4 rf-flex-1 rf-min-h-[200px] !rf-max-h-[40vh] !rf-overflow-y-auto rf-border rf-rounded-md",children:GA?gA.jsxs("div",{className:"rf-p-8 rf-text-center rf-text-zinc-500",children:[gA.jsx(Y1,{className:"rf-h-8 rf-w-8 rf-animate-spin rf-mx-auto rf-mb-2"}),gA.jsx("p",{children:"Searching..."})]}):vA.length>0?gA.jsx(Hyi,{results:vA,selected:B,onSelect:C,onShowDetails:g==="tscircuit.com"?VA:void 0}):gA.jsx("div",{className:"rf-p-8 rf-text-center rf-text-zinc-500",children:dA?`Error: ${dA}`:uA?swA[g].emptyMessage:"Enter a search term to find components"})})]}):null,qA?gA.jsx("div",{className:"rf-text-sm rf-text-red-600 rf-mt-2",children:qA}):null,gA.jsxs(fj,{className:"rf-flex rf-flex-col sm:rf-flex-row rf-gap-2",children:[gA.jsx(gE,{variant:"outline",onClick:A,className:"rf-order-2 sm:rf-order-1",children:"Cancel"}),gA.jsx(gE,{onClick:LA,disabled:!B||sA,className:"rf-order-1 sm:rf-order-2",children:sA?gA.jsx(Y1,{className:"rf-h-4 rf-w-4 rf-animate-spin"}):"Import"})]})]}),gA.jsx(Yyi,{packageResult:eA,isOpen:hA,onOpenChange:SA,isLoading:oA,details:z,previewTab:MA,onPreviewTabChange:TA=>YA(TA),isSubmitting:sA,onImport:()=>{eA&&at(eA).then(TA=>{TA&&(xA(!1),A(),mA(),l(""))})}})]})},Fmi=e=>{const A=e.match(/export const (\w+) =/);if(!A)throw new Error("Could not determine component name from TSX contents");return A[1]},V_t=e=>{const A=lb(s=>s.pushEvent),t=lb(s=>s.upsertFile),i=async({result:s,fullPackageName:r})=>{const g=s.package.unscoped_name??s.package.name;await sc.promise(A({event_type:"INSTALL_PACKAGE",full_package_name:r}),{loading:`Requesting install for "${g}"`,success:`Install requested for "${g}"`,error:c=>`Failed to request install: ${c instanceof Error?c.message:String(c)}`})},n=async({footprint:s})=>{await sc.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/${Fmi(r)}.tsx`;await sc.promise(t(g,r),{loading:`Importing ${s.component.partNumber}`,success:`Imported to "${g}"`,error:c=>`Failed to import component: ${c instanceof Error?c.message:String(c)}`})};return gA.jsx(Rmi,{...e,onTscircuitPackageSelected:i,onKicadStringSelected:n,onJlcpcbComponentTsxLoaded:o})};V_t.displayName="ImportComponentDialogForCli";var UvA={exports:{}},j_t;function Gmi(){return j_t||(j_t=1,(function(e,A){var t={env:{},version:""};/*!
|
|
6614
6614
|
|
|
6615
6615
|
JSZip v3.10.1 - A JavaScript class for generating and reading zip files
|
|
6616
6616
|
<http://stuartk.com/jszip>
|
package/dist/standalone.min.js
CHANGED
|
@@ -5874,7 +5874,7 @@ $1`).replace(/>(\s*)(?=<!--\s*\/)/g,"> ")}}});function Aut(e,A,t){if(!A||!t)retu
|
|
|
5874
5874
|
* Copyright (c) 2013-2015, 2017, Jon Schlinkert.
|
|
5875
5875
|
* Released under the MIT License.
|
|
5876
5876
|
*)
|
|
5877
|
-
*/const F6e=({containerClassName:e,...A})=>{const t=gA.useRef(null),[i,n]=gA.useState(620);return gA.useLayoutEffect(()=>{const o=()=>{if(t.current){const r=t.current.clientHeight,a=window.innerHeight;n(Math.min(Math.max(r,620),a))}};o();const s=new ResizeObserver(o);return t.current&&s.observe(t.current),window.addEventListener("resize",o),()=>{s.disconnect(),window.removeEventListener("resize",o)}},[]),rA.jsx("div",{ref:t,className:e||"rf-w-full rf-h-full",children:rA.jsx(R6e,{...A,height:i})})},G6e='*,: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-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-32{max-height:8rem}.rf-max-h-96{max-height:24rem}.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-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-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-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-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-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-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-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-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-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-200{animation-duration:.2s}.rf-ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.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-border-blue-500:hover{--tw-border-opacity:1;border-color:rgb(59 130 246/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-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}.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}',zj=()=>{gA.useEffect(()=>{if(document.querySelector('style[data-styles="tscircuit-runframe"]'))return;const A=document.createElement("style");A.setAttribute("data-styles","tscircuit-runframe"),A.textContent=G6e,document.head.appendChild(A)},[])},N6e=e=>{gA.useEffect(()=>(e?document.body.style.overflow="hidden":document.body.style.overflow="",()=>{document.body.style.overflow=""}),[e])};function j2(e,A){const[t,i]=gA.useState(()=>{try{const n=window.localStorage.getItem(e);return n?JSON.parse(n):A}catch(n){return console.error("Error reading from localStorage:",n),A}});return gA.useEffect(()=>{try{window.localStorage.setItem(e,JSON.stringify(t))}catch(n){console.error("Error writing to localStorage:",n)}},[e,t]),[t,i]}const fut=e=>`hsl(${Hm.indexOf(e)*137.5%360}, 70%, 50%)`,M6e=({phaseTimings:e})=>{if(!e)return null;const A=Object.values(e).reduce((t,i)=>t+i,0);return rA.jsxs("div",{className:"rf-space-y-2 rf-w-full rf-px-4",children:[rA.jsx("div",{className:"rf-relative rf-h-8 rf-flex rf-rounded-sm",children:Hm.map(t=>{const i=e[t]||0,n=i/A*100;return rA.jsx("div",{className:"rf-group/bar rf-relative rf-overflow-visible",style:{width:`${n}%`,backgroundColor:fut(t)},children:rA.jsxs("div",{className:"rf-opacity-0 group-hover/bar:rf-opacity-100 rf-transition-opacity rf-absolute rf-bottom-full rf-left-1/2 rf-transform -rf-translate-x-1/2 rf-mb-2 rf-px-2 rf-py-1 rf-text-xs rf-whitespace-nowrap rf-rounded rf-bg-gray-900 rf-text-white rf-pointer-events-none",children:[t,": ",i.toFixed(1),"ms"]})},t)})}),rA.jsxs("div",{className:"rf-text-xs rf-text-gray-500",children:["Total: ",A.toFixed(2),"ms"]})]})},U6e=e=>{if(e instanceof Blob)return e;if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="object")try{return JSON.stringify(e,null,2)}catch{return String(e)}return String(e)},L6e=({renderLog:e,onRerunWithDebug:A})=>{const[t,i]=gA.useState("chronological"),[n,o]=gA.useState(""),s=[{value:"",label:"None"},{value:"DEBUG=Group_doInitialSchematicTraceRender",label:"DEBUG=Group_doInitialSchematicTraceRender"},{value:"DEBUG=Group_doInitialSchematicLayoutMatchpack",label:"DEBUG=Group_doInitialSchematicLayoutMatchpack"},{value:"DEBUG=Group_doInitialPcbLayoutPack",label:"DEBUG=Group_doInitialPcbLayoutPack"}];if(!e)return rA.jsxs("div",{className:"rf-p-4 rf-bg-gray-100 rf-rounded-md",children:[rA.jsx("div",{className:"rf-mb-4",children:"No render log, make sure this tab is open when you render"}),A&&rA.jsxs("div",{className:"rf-flex rf-gap-2 rf-items-center",children:[rA.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=>rA.jsx("option",{value:g.value,children:g.label},g.value))}),rA.jsx(VQ,{onClick:()=>A(n),size:"sm",className:"rf-text-xs",children:"Rerun Render with Debug"})]})]});const r=Object.entries(e?.phaseTimings??{});t==="chronological"?r.sort((g,c)=>Hm.indexOf(g[0])-Hm.indexOf(c[0])):r.sort((g,c)=>c[1]-g[1]);const a=r.reduce((g,[c,I])=>g+I,0);return rA.jsxs("div",{className:"rf-bg-white",children:[rA.jsxs("div",{className:"rf-flex rf-justify-between rf-items-center rf-mb-4",children:[rA.jsx("div",{children:"Render Logs"}),rA.jsxs("div",{className:"rf-flex rf-gap-4 rf-items-center",children:[A&&rA.jsxs("div",{className:"rf-flex rf-gap-2 rf-items-center",children:[rA.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=>rA.jsx("option",{value:g.value,children:g.label},g.value))}),rA.jsx(VQ,{onClick:()=>A(n),size:"sm",className:"rf-text-xs",children:"Rerun Render with Debug"})]}),rA.jsx("div",{className:"rf-flex rf-gap-2 rf-items-center",children:rA.jsxs("select",{onChange:g=>{if(g.target.value){const c=e?.debugOutputs?.find(I=>I.name===g.target.value);if(c){const I=U6e(c.content),l=I instanceof Blob?I:new Blob([I],{type:"text/plain"}),B=URL.createObjectURL(l),C=document.createElement("a");C.href=B,C.download=`debug-${c.name}.txt`,document.body.appendChild(C),C.click(),document.body.removeChild(C),URL.revokeObjectURL(B)}g.target.value=""}},disabled:!e?.debugOutputs||e.debugOutputs.length===0,className:"rf-px-3 rf-py-1 rf-border rf-rounded rf-text-xs rf-bg-white disabled:rf-opacity-50 disabled:rf-cursor-not-allowed",children:[rA.jsx("option",{value:"",children:"Download Debug Output"}),e?.debugOutputs?.map(g=>rA.jsx("option",{value:g.name,children:g.name},g.name))]})}),rA.jsxs("div",{className:"rf-flex rf-text-xs rf-items-center",children:[rA.jsx("div",{className:"rf-mr-2",children:"Sort by:"}),rA.jsxs("select",{value:t,onChange:g=>i(g.target.value),className:"rf-px-2 rf-py-1 rf-border rf-rounded rf-text-xs",children:[rA.jsx("option",{value:"chronological",children:"Phase Order"}),rA.jsx("option",{value:"longest",children:"Duration"})]})]})]})]}),rA.jsx(M6e,{phaseTimings:e.phaseTimings}),rA.jsxs("table",{className:"rf-w-full rf-text-xs",children:[rA.jsx("thead",{children:rA.jsxs("tr",{children:[rA.jsx("th",{className:"rf-text-left rf-p-2",children:"Phase Order"}),rA.jsx("th",{className:"rf-text-left rf-p-2",children:"Phase"}),rA.jsx("th",{className:"rf-text-left rf-p-2",children:"Duration (ms)"})]})}),rA.jsx("tbody",{children:r.map(([g,c])=>rA.jsxs("tr",{children:[rA.jsx("td",{className:"rf-p-2",children:Hm.indexOf(g)}),rA.jsx("td",{className:"rf-p-2",children:g}),rA.jsx("td",{className:"rf-p-2",children:rA.jsx("div",{className:"rf-w-8",children:rA.jsx("div",{className:"rf-h-2 rf-rounded-sm",style:{backgroundColor:fut(g),width:`${c/a*100}%`}})})}),rA.jsx("td",{className:"rf-p-2",children:rA.jsxs("div",{className:"rf-flex w-full",children:[rA.jsxs("span",{className:"rf-flex-grow",children:[c,"ms"]}),rA.jsxs("span",{className:"rf-text-gray-500 rf-pr-2",children:[(c/a*100).toFixed(1),"%"]})]})})]},g))})]})]})},yut=({errorMessage:e,errorStack:A,circuitJsonErrors:t})=>{gA.useEffect(()=>{if(e){const i=new Error(e);A&&(i.stack=A);try{w9.captureException(i)}catch{}}},[e,A]),gA.useEffect(()=>{if(t&&t.length>0)for(const i of t){const n=new Error(i.message||"Circuit JSON Error");i.stack&&(n.stack=i.stack);try{w9.captureException(n,{error_type:i.type})}catch{}}},[t])},mut="0.0.1263",H6e={version:mut},Xj=d5A()(p5A(e=>({lastRunEvalVersion:void 0,setLastRunEvalVersion:A=>{e({lastRunEvalVersion:A})}}),{name:"runframe-runner-store"})),Y6e=e=>{const[A,t]=gA.useState([]),[i,n]=gA.useState(null),[o,s]=gA.useState(""),[r,a]=j2("eval-version-selection",null),g=Xj(B=>B.setLastRunEvalVersion),c=Xj(B=>B.lastRunEvalVersion);return gA.useEffect(()=>{e&&fetch("https://data.jsdelivr.com/v1/package/npm/@tscircuit/eval").then(B=>B.json()).then(B=>{if(Array.isArray(B?.versions)){let C=[...B.versions];B.tags?.latest&&(n(B.tags.latest),C=C.filter(Q=>Q!==B.tags.latest)),t(C)}}).catch(()=>{})},[e]),gA.useEffect(()=>{e&&(r?(window.TSCIRCUIT_LATEST_EVAL_VERSION=r,g(r)):i&&(window.TSCIRCUIT_LATEST_EVAL_VERSION=i,g(i)))},[e,r,i]),{versions:gA.useMemo(()=>A.filter(B=>B.includes(o)).slice(0,50),[A,o]),latestVersion:i,lastRunEvalVersion:c,search:o,setSearch:s,selectVersion:B=>{a(B),s("")}}},J6e=({snippetNames:e,onSelect:A,onCancel:t,isOpen:i})=>{const[n,o]=gA.useState(""),[s,r]=gA.useState("");if(!i)return null;const a=e.filter(I=>I.toLowerCase().includes(s.toLowerCase())),g=s&&!e.includes(s),c=I=>{I.key==="Enter"&&(a.length===1?o(a[0]):g&&o(s))};return rA.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:rA.jsxs("div",{className:"rf-bg-white rf-rounded-lg rf-p-6 rf-w-96",children:[rA.jsx("h2",{className:"rf-text-lg rf-font-semibold rf-mb-4",children:"Select Snippet"}),rA.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:I=>r(I.target.value),onKeyDown:c}),rA.jsxs("div",{className:"rf-h-60 rf-overflow-y-auto",children:[a.map(I=>rA.jsx("button",{type:"button",className:`w-full text-left px-4 py-2 rounded hover:bg-gray-100 ${n===I?"bg-blue-50":""}`,onClick:()=>o(I),children:I},I)),g&&rA.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,'"']})]}),rA.jsxs("div",{className:"rf-mt-4 rf-flex rf-justify-end rf-gap-2",children:[rA.jsx("button",{type:"button",className:"rf-px-4 rf-py-2 rf-text-gray-600 rf-hover:text-gray-800",onClick:t,children:"Cancel"}),rA.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}`})]})]})})},T6e=e=>{const A=gA.useRef(null),t=M0(i=>i.recentEvents);gA.useEffect(()=>{if(t.length===0)return;const i=t[0];i.event_id!==A.current&&(e(i),A.current=i.event_id)},[t,e])};var $j="Dialog",[wut,Dut]=Ux($j),[K6e,V_]=wut($j),_ut=e=>{const{__scopeDialog:A,children:t,open:i,defaultOpen:n,onOpenChange:o,modal:s=!0}=e,r=gA.useRef(null),a=gA.useRef(null),[g,c]=RR({prop:i,defaultProp:n??!1,onChange:o,caller:$j});return rA.jsx(K6e,{scope:A,triggerRef:r,contentRef:a,contentId:dy(),titleId:dy(),descriptionId:dy(),open:g,onOpenChange:c,onOpenToggle:gA.useCallback(()=>c(I=>!I),[c]),modal:s,children:t})};_ut.displayName=$j;var xut="DialogTrigger",but=gA.forwardRef((e,A)=>{const{__scopeDialog:t,...i}=e,n=V_(xut,t),o=aE(A,n.triggerRef);return rA.jsx(wc.button,{type:"button","aria-haspopup":"dialog","aria-expanded":n.open,"aria-controls":n.contentId,"data-state":HwA(n.open),...i,ref:o,onClick:hr(e.onClick,n.onOpenToggle)})});but.displayName=xut;var UwA="DialogPortal",[q6e,Sut]=wut(UwA,{forceMount:void 0}),vut=e=>{const{__scopeDialog:A,forceMount:t,children:i,container:n}=e,o=V_(UwA,A);return rA.jsx(q6e,{scope:A,forceMount:t,children:gA.Children.map(i,s=>rA.jsx(bD,{present:t||o.open,children:rA.jsx(uV,{asChild:!0,container:n,children:s})}))})};vut.displayName=UwA;var Az="DialogOverlay",kut=gA.forwardRef((e,A)=>{const t=Sut(Az,e.__scopeDialog),{forceMount:i=t.forceMount,...n}=e,o=V_(Az,e.__scopeDialog);return o.modal?rA.jsx(bD,{present:i||o.open,children:rA.jsx(O6e,{...n,ref:A})}):null});kut.displayName=Az;var P6e=kR("DialogOverlay.RemoveScroll"),O6e=gA.forwardRef((e,A)=>{const{__scopeDialog:t,...i}=e,n=V_(Az,t);return rA.jsx(DV,{as:P6e,allowPinchZoom:!0,shards:[n.contentRef],children:rA.jsx(wc.div,{"data-state":HwA(n.open),...i,ref:A,style:{pointerEvents:"auto",...i.style}})})}),LF="DialogContent",Rut=gA.forwardRef((e,A)=>{const t=Sut(LF,e.__scopeDialog),{forceMount:i=t.forceMount,...n}=e,o=V_(LF,e.__scopeDialog);return rA.jsx(bD,{present:i||o.open,children:o.modal?rA.jsx(W6e,{...n,ref:A}):rA.jsx(Z6e,{...n,ref:A})})});Rut.displayName=LF;var W6e=gA.forwardRef((e,A)=>{const t=V_(LF,e.__scopeDialog),i=gA.useRef(null),n=aE(A,t.contentRef,i);return gA.useEffect(()=>{const o=i.current;if(o)return _yA(o)},[]),rA.jsx(Fut,{...e,ref:n,trapFocus:t.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:hr(e.onCloseAutoFocus,o=>{o.preventDefault(),t.triggerRef.current?.focus()}),onPointerDownOutside:hr(e.onPointerDownOutside,o=>{const s=o.detail.originalEvent,r=s.button===0&&s.ctrlKey===!0;(s.button===2||r)&&o.preventDefault()}),onFocusOutside:hr(e.onFocusOutside,o=>o.preventDefault())})}),Z6e=gA.forwardRef((e,A)=>{const t=V_(LF,e.__scopeDialog),i=gA.useRef(!1),n=gA.useRef(!1);return rA.jsx(Fut,{...e,ref:A,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:o=>{e.onCloseAutoFocus?.(o),o.defaultPrevented||(i.current||t.triggerRef.current?.focus(),o.preventDefault()),i.current=!1,n.current=!1},onInteractOutside:o=>{e.onInteractOutside?.(o),o.defaultPrevented||(i.current=!0,o.detail.originalEvent.type==="pointerdown"&&(n.current=!0));const s=o.target;t.triggerRef.current?.contains(s)&&o.preventDefault(),o.detail.originalEvent.type==="focusin"&&n.current&&o.preventDefault()}})}),Fut=gA.forwardRef((e,A)=>{const{__scopeDialog:t,trapFocus:i,onOpenAutoFocus:n,onCloseAutoFocus:o,...s}=e,r=V_(LF,t),a=gA.useRef(null),g=aE(A,a);return ryA(),rA.jsxs(rA.Fragment,{children:[rA.jsx(oV,{asChild:!0,loop:!0,trapped:i,onMountAutoFocus:n,onUnmountAutoFocus:o,children:rA.jsx(nV,{role:"dialog",id:r.contentId,"aria-describedby":r.descriptionId,"aria-labelledby":r.titleId,"data-state":HwA(r.open),...s,ref:g,onDismiss:()=>r.onOpenChange(!1)})}),rA.jsxs(rA.Fragment,{children:[rA.jsx(j6e,{titleId:r.titleId}),rA.jsx(X6e,{contentRef:a,descriptionId:r.descriptionId})]})]})}),LwA="DialogTitle",Gut=gA.forwardRef((e,A)=>{const{__scopeDialog:t,...i}=e,n=V_(LwA,t);return rA.jsx(wc.h2,{id:n.titleId,...i,ref:A})});Gut.displayName=LwA;var Nut="DialogDescription",Mut=gA.forwardRef((e,A)=>{const{__scopeDialog:t,...i}=e,n=V_(Nut,t);return rA.jsx(wc.p,{id:n.descriptionId,...i,ref:A})});Mut.displayName=Nut;var Uut="DialogClose",Lut=gA.forwardRef((e,A)=>{const{__scopeDialog:t,...i}=e,n=V_(Uut,t);return rA.jsx(wc.button,{type:"button",...i,ref:A,onClick:hr(e.onClick,()=>n.onOpenChange(!1))})});Lut.displayName=Uut;function HwA(e){return e?"open":"closed"}var Hut="DialogTitleWarning",[V6e,Yut]=dre(Hut,{contentName:LF,titleName:LwA,docsSlug:"dialog"}),j6e=({titleId:e})=>{const A=Yut(Hut),t=`\`${A.contentName}\` requires a \`${A.titleName}\` for the component to be accessible for screen reader users.
|
|
5877
|
+
*/const F6e=({containerClassName:e,...A})=>{const t=gA.useRef(null),[i,n]=gA.useState(620);return gA.useLayoutEffect(()=>{const o=()=>{if(t.current){const r=t.current.clientHeight,a=window.innerHeight;n(Math.min(Math.max(r,620),a))}};o();const s=new ResizeObserver(o);return t.current&&s.observe(t.current),window.addEventListener("resize",o),()=>{s.disconnect(),window.removeEventListener("resize",o)}},[]),rA.jsx("div",{ref:t,className:e||"rf-w-full rf-h-full",children:rA.jsx(R6e,{...A,height:i})})},G6e='*,: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-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-32{max-height:8rem}.rf-max-h-96{max-height:24rem}.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-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-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-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-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-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-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-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-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-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-200{animation-duration:.2s}.rf-ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.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-border-blue-500:hover{--tw-border-opacity:1;border-color:rgb(59 130 246/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-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}.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}',zj=()=>{gA.useEffect(()=>{if(document.querySelector('style[data-styles="tscircuit-runframe"]'))return;const A=document.createElement("style");A.setAttribute("data-styles","tscircuit-runframe"),A.textContent=G6e,document.head.appendChild(A)},[])},N6e=e=>{gA.useEffect(()=>(e?document.body.style.overflow="hidden":document.body.style.overflow="",()=>{document.body.style.overflow=""}),[e])};function j2(e,A){const[t,i]=gA.useState(()=>{try{const n=window.localStorage.getItem(e);return n?JSON.parse(n):A}catch(n){return console.error("Error reading from localStorage:",n),A}});return gA.useEffect(()=>{try{window.localStorage.setItem(e,JSON.stringify(t))}catch(n){console.error("Error writing to localStorage:",n)}},[e,t]),[t,i]}const fut=e=>`hsl(${Hm.indexOf(e)*137.5%360}, 70%, 50%)`,M6e=({phaseTimings:e})=>{if(!e)return null;const A=Object.values(e).reduce((t,i)=>t+i,0);return rA.jsxs("div",{className:"rf-space-y-2 rf-w-full rf-px-4",children:[rA.jsx("div",{className:"rf-relative rf-h-8 rf-flex rf-rounded-sm",children:Hm.map(t=>{const i=e[t]||0,n=i/A*100;return rA.jsx("div",{className:"rf-group/bar rf-relative rf-overflow-visible",style:{width:`${n}%`,backgroundColor:fut(t)},children:rA.jsxs("div",{className:"rf-opacity-0 group-hover/bar:rf-opacity-100 rf-transition-opacity rf-absolute rf-bottom-full rf-left-1/2 rf-transform -rf-translate-x-1/2 rf-mb-2 rf-px-2 rf-py-1 rf-text-xs rf-whitespace-nowrap rf-rounded rf-bg-gray-900 rf-text-white rf-pointer-events-none",children:[t,": ",i.toFixed(1),"ms"]})},t)})}),rA.jsxs("div",{className:"rf-text-xs rf-text-gray-500",children:["Total: ",A.toFixed(2),"ms"]})]})},U6e=e=>{if(e instanceof Blob)return e;if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="object")try{return JSON.stringify(e,null,2)}catch{return String(e)}return String(e)},L6e=({renderLog:e,onRerunWithDebug:A})=>{const[t,i]=gA.useState("chronological"),[n,o]=gA.useState(""),s=[{value:"",label:"None"},{value:"DEBUG=Group_doInitialSchematicTraceRender",label:"DEBUG=Group_doInitialSchematicTraceRender"},{value:"DEBUG=Group_doInitialSchematicLayoutMatchpack",label:"DEBUG=Group_doInitialSchematicLayoutMatchpack"},{value:"DEBUG=Group_doInitialPcbLayoutPack",label:"DEBUG=Group_doInitialPcbLayoutPack"}];if(!e)return rA.jsxs("div",{className:"rf-p-4 rf-bg-gray-100 rf-rounded-md",children:[rA.jsx("div",{className:"rf-mb-4",children:"No render log, make sure this tab is open when you render"}),A&&rA.jsxs("div",{className:"rf-flex rf-gap-2 rf-items-center",children:[rA.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=>rA.jsx("option",{value:g.value,children:g.label},g.value))}),rA.jsx(VQ,{onClick:()=>A(n),size:"sm",className:"rf-text-xs",children:"Rerun Render with Debug"})]})]});const r=Object.entries(e?.phaseTimings??{});t==="chronological"?r.sort((g,c)=>Hm.indexOf(g[0])-Hm.indexOf(c[0])):r.sort((g,c)=>c[1]-g[1]);const a=r.reduce((g,[c,I])=>g+I,0);return rA.jsxs("div",{className:"rf-bg-white",children:[rA.jsxs("div",{className:"rf-flex rf-justify-between rf-items-center rf-mb-4",children:[rA.jsx("div",{children:"Render Logs"}),rA.jsxs("div",{className:"rf-flex rf-gap-4 rf-items-center",children:[A&&rA.jsxs("div",{className:"rf-flex rf-gap-2 rf-items-center",children:[rA.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=>rA.jsx("option",{value:g.value,children:g.label},g.value))}),rA.jsx(VQ,{onClick:()=>A(n),size:"sm",className:"rf-text-xs",children:"Rerun Render with Debug"})]}),rA.jsx("div",{className:"rf-flex rf-gap-2 rf-items-center",children:rA.jsxs("select",{onChange:g=>{if(g.target.value){const c=e?.debugOutputs?.find(I=>I.name===g.target.value);if(c){const I=U6e(c.content),l=I instanceof Blob?I:new Blob([I],{type:"text/plain"}),B=URL.createObjectURL(l),C=document.createElement("a");C.href=B,C.download=`debug-${c.name}.txt`,document.body.appendChild(C),C.click(),document.body.removeChild(C),URL.revokeObjectURL(B)}g.target.value=""}},disabled:!e?.debugOutputs||e.debugOutputs.length===0,className:"rf-px-3 rf-py-1 rf-border rf-rounded rf-text-xs rf-bg-white disabled:rf-opacity-50 disabled:rf-cursor-not-allowed",children:[rA.jsx("option",{value:"",children:"Download Debug Output"}),e?.debugOutputs?.map(g=>rA.jsx("option",{value:g.name,children:g.name},g.name))]})}),rA.jsxs("div",{className:"rf-flex rf-text-xs rf-items-center",children:[rA.jsx("div",{className:"rf-mr-2",children:"Sort by:"}),rA.jsxs("select",{value:t,onChange:g=>i(g.target.value),className:"rf-px-2 rf-py-1 rf-border rf-rounded rf-text-xs",children:[rA.jsx("option",{value:"chronological",children:"Phase Order"}),rA.jsx("option",{value:"longest",children:"Duration"})]})]})]})]}),rA.jsx(M6e,{phaseTimings:e.phaseTimings}),rA.jsxs("table",{className:"rf-w-full rf-text-xs",children:[rA.jsx("thead",{children:rA.jsxs("tr",{children:[rA.jsx("th",{className:"rf-text-left rf-p-2",children:"Phase Order"}),rA.jsx("th",{className:"rf-text-left rf-p-2",children:"Phase"}),rA.jsx("th",{className:"rf-text-left rf-p-2",children:"Duration (ms)"})]})}),rA.jsx("tbody",{children:r.map(([g,c])=>rA.jsxs("tr",{children:[rA.jsx("td",{className:"rf-p-2",children:Hm.indexOf(g)}),rA.jsx("td",{className:"rf-p-2",children:g}),rA.jsx("td",{className:"rf-p-2",children:rA.jsx("div",{className:"rf-w-8",children:rA.jsx("div",{className:"rf-h-2 rf-rounded-sm",style:{backgroundColor:fut(g),width:`${c/a*100}%`}})})}),rA.jsx("td",{className:"rf-p-2",children:rA.jsxs("div",{className:"rf-flex w-full",children:[rA.jsxs("span",{className:"rf-flex-grow",children:[c,"ms"]}),rA.jsxs("span",{className:"rf-text-gray-500 rf-pr-2",children:[(c/a*100).toFixed(1),"%"]})]})})]},g))})]})]})},yut=({errorMessage:e,errorStack:A,circuitJsonErrors:t})=>{gA.useEffect(()=>{if(e){const i=new Error(e);A&&(i.stack=A);try{w9.captureException(i)}catch{}}},[e,A]),gA.useEffect(()=>{if(t&&t.length>0)for(const i of t){const n=new Error(i.message||"Circuit JSON Error");i.stack&&(n.stack=i.stack);try{w9.captureException(n,{error_type:i.type})}catch{}}},[t])},mut="0.0.1264",H6e={version:mut},Xj=d5A()(p5A(e=>({lastRunEvalVersion:void 0,setLastRunEvalVersion:A=>{e({lastRunEvalVersion:A})}}),{name:"runframe-runner-store"})),Y6e=e=>{const[A,t]=gA.useState([]),[i,n]=gA.useState(null),[o,s]=gA.useState(""),[r,a]=j2("eval-version-selection",null),g=Xj(B=>B.setLastRunEvalVersion),c=Xj(B=>B.lastRunEvalVersion);return gA.useEffect(()=>{e&&fetch("https://data.jsdelivr.com/v1/package/npm/@tscircuit/eval").then(B=>B.json()).then(B=>{if(Array.isArray(B?.versions)){let C=[...B.versions];B.tags?.latest&&(n(B.tags.latest),C=C.filter(Q=>Q!==B.tags.latest)),t(C)}}).catch(()=>{})},[e]),gA.useEffect(()=>{e&&(r?(window.TSCIRCUIT_LATEST_EVAL_VERSION=r,g(r)):i&&(window.TSCIRCUIT_LATEST_EVAL_VERSION=i,g(i)))},[e,r,i]),{versions:gA.useMemo(()=>A.filter(B=>B.includes(o)).slice(0,50),[A,o]),latestVersion:i,lastRunEvalVersion:c,search:o,setSearch:s,selectVersion:B=>{a(B),s("")}}},J6e=({snippetNames:e,onSelect:A,onCancel:t,isOpen:i})=>{const[n,o]=gA.useState(""),[s,r]=gA.useState("");if(!i)return null;const a=e.filter(I=>I.toLowerCase().includes(s.toLowerCase())),g=s&&!e.includes(s),c=I=>{I.key==="Enter"&&(a.length===1?o(a[0]):g&&o(s))};return rA.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:rA.jsxs("div",{className:"rf-bg-white rf-rounded-lg rf-p-6 rf-w-96",children:[rA.jsx("h2",{className:"rf-text-lg rf-font-semibold rf-mb-4",children:"Select Snippet"}),rA.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:I=>r(I.target.value),onKeyDown:c}),rA.jsxs("div",{className:"rf-h-60 rf-overflow-y-auto",children:[a.map(I=>rA.jsx("button",{type:"button",className:`w-full text-left px-4 py-2 rounded hover:bg-gray-100 ${n===I?"bg-blue-50":""}`,onClick:()=>o(I),children:I},I)),g&&rA.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,'"']})]}),rA.jsxs("div",{className:"rf-mt-4 rf-flex rf-justify-end rf-gap-2",children:[rA.jsx("button",{type:"button",className:"rf-px-4 rf-py-2 rf-text-gray-600 rf-hover:text-gray-800",onClick:t,children:"Cancel"}),rA.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}`})]})]})})},T6e=e=>{const A=gA.useRef(null),t=M0(i=>i.recentEvents);gA.useEffect(()=>{if(t.length===0)return;const i=t[0];i.event_id!==A.current&&(e(i),A.current=i.event_id)},[t,e])};var $j="Dialog",[wut,Dut]=Ux($j),[K6e,V_]=wut($j),_ut=e=>{const{__scopeDialog:A,children:t,open:i,defaultOpen:n,onOpenChange:o,modal:s=!0}=e,r=gA.useRef(null),a=gA.useRef(null),[g,c]=RR({prop:i,defaultProp:n??!1,onChange:o,caller:$j});return rA.jsx(K6e,{scope:A,triggerRef:r,contentRef:a,contentId:dy(),titleId:dy(),descriptionId:dy(),open:g,onOpenChange:c,onOpenToggle:gA.useCallback(()=>c(I=>!I),[c]),modal:s,children:t})};_ut.displayName=$j;var xut="DialogTrigger",but=gA.forwardRef((e,A)=>{const{__scopeDialog:t,...i}=e,n=V_(xut,t),o=aE(A,n.triggerRef);return rA.jsx(wc.button,{type:"button","aria-haspopup":"dialog","aria-expanded":n.open,"aria-controls":n.contentId,"data-state":HwA(n.open),...i,ref:o,onClick:hr(e.onClick,n.onOpenToggle)})});but.displayName=xut;var UwA="DialogPortal",[q6e,Sut]=wut(UwA,{forceMount:void 0}),vut=e=>{const{__scopeDialog:A,forceMount:t,children:i,container:n}=e,o=V_(UwA,A);return rA.jsx(q6e,{scope:A,forceMount:t,children:gA.Children.map(i,s=>rA.jsx(bD,{present:t||o.open,children:rA.jsx(uV,{asChild:!0,container:n,children:s})}))})};vut.displayName=UwA;var Az="DialogOverlay",kut=gA.forwardRef((e,A)=>{const t=Sut(Az,e.__scopeDialog),{forceMount:i=t.forceMount,...n}=e,o=V_(Az,e.__scopeDialog);return o.modal?rA.jsx(bD,{present:i||o.open,children:rA.jsx(O6e,{...n,ref:A})}):null});kut.displayName=Az;var P6e=kR("DialogOverlay.RemoveScroll"),O6e=gA.forwardRef((e,A)=>{const{__scopeDialog:t,...i}=e,n=V_(Az,t);return rA.jsx(DV,{as:P6e,allowPinchZoom:!0,shards:[n.contentRef],children:rA.jsx(wc.div,{"data-state":HwA(n.open),...i,ref:A,style:{pointerEvents:"auto",...i.style}})})}),LF="DialogContent",Rut=gA.forwardRef((e,A)=>{const t=Sut(LF,e.__scopeDialog),{forceMount:i=t.forceMount,...n}=e,o=V_(LF,e.__scopeDialog);return rA.jsx(bD,{present:i||o.open,children:o.modal?rA.jsx(W6e,{...n,ref:A}):rA.jsx(Z6e,{...n,ref:A})})});Rut.displayName=LF;var W6e=gA.forwardRef((e,A)=>{const t=V_(LF,e.__scopeDialog),i=gA.useRef(null),n=aE(A,t.contentRef,i);return gA.useEffect(()=>{const o=i.current;if(o)return _yA(o)},[]),rA.jsx(Fut,{...e,ref:n,trapFocus:t.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:hr(e.onCloseAutoFocus,o=>{o.preventDefault(),t.triggerRef.current?.focus()}),onPointerDownOutside:hr(e.onPointerDownOutside,o=>{const s=o.detail.originalEvent,r=s.button===0&&s.ctrlKey===!0;(s.button===2||r)&&o.preventDefault()}),onFocusOutside:hr(e.onFocusOutside,o=>o.preventDefault())})}),Z6e=gA.forwardRef((e,A)=>{const t=V_(LF,e.__scopeDialog),i=gA.useRef(!1),n=gA.useRef(!1);return rA.jsx(Fut,{...e,ref:A,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:o=>{e.onCloseAutoFocus?.(o),o.defaultPrevented||(i.current||t.triggerRef.current?.focus(),o.preventDefault()),i.current=!1,n.current=!1},onInteractOutside:o=>{e.onInteractOutside?.(o),o.defaultPrevented||(i.current=!0,o.detail.originalEvent.type==="pointerdown"&&(n.current=!0));const s=o.target;t.triggerRef.current?.contains(s)&&o.preventDefault(),o.detail.originalEvent.type==="focusin"&&n.current&&o.preventDefault()}})}),Fut=gA.forwardRef((e,A)=>{const{__scopeDialog:t,trapFocus:i,onOpenAutoFocus:n,onCloseAutoFocus:o,...s}=e,r=V_(LF,t),a=gA.useRef(null),g=aE(A,a);return ryA(),rA.jsxs(rA.Fragment,{children:[rA.jsx(oV,{asChild:!0,loop:!0,trapped:i,onMountAutoFocus:n,onUnmountAutoFocus:o,children:rA.jsx(nV,{role:"dialog",id:r.contentId,"aria-describedby":r.descriptionId,"aria-labelledby":r.titleId,"data-state":HwA(r.open),...s,ref:g,onDismiss:()=>r.onOpenChange(!1)})}),rA.jsxs(rA.Fragment,{children:[rA.jsx(j6e,{titleId:r.titleId}),rA.jsx(X6e,{contentRef:a,descriptionId:r.descriptionId})]})]})}),LwA="DialogTitle",Gut=gA.forwardRef((e,A)=>{const{__scopeDialog:t,...i}=e,n=V_(LwA,t);return rA.jsx(wc.h2,{id:n.titleId,...i,ref:A})});Gut.displayName=LwA;var Nut="DialogDescription",Mut=gA.forwardRef((e,A)=>{const{__scopeDialog:t,...i}=e,n=V_(Nut,t);return rA.jsx(wc.p,{id:n.descriptionId,...i,ref:A})});Mut.displayName=Nut;var Uut="DialogClose",Lut=gA.forwardRef((e,A)=>{const{__scopeDialog:t,...i}=e,n=V_(Uut,t);return rA.jsx(wc.button,{type:"button",...i,ref:A,onClick:hr(e.onClick,()=>n.onOpenChange(!1))})});Lut.displayName=Uut;function HwA(e){return e?"open":"closed"}var Hut="DialogTitleWarning",[V6e,Yut]=dre(Hut,{contentName:LF,titleName:LwA,docsSlug:"dialog"}),j6e=({titleId:e})=>{const A=Yut(Hut),t=`\`${A.contentName}\` requires a \`${A.titleName}\` for the component to be accessible for screen reader users.
|
|
5878
5878
|
|
|
5879
5879
|
If you want to hide the \`${A.titleName}\`, you can wrap it with our VisuallyHidden component.
|
|
5880
5880
|
|
|
@@ -6665,7 +6665,7 @@ ${i.stack}`),t.complete=!0,"root"in this&&this.root&&this.root.emit("asyncEffect
|
|
|
6665
6665
|
* This source code is licensed under the MIT license found in the
|
|
6666
6666
|
* LICENSE file in the root directory of this source tree.
|
|
6667
6667
|
*)
|
|
6668
|
-
*/const sDi=async(e,A=10)=>{const t=encodeURIComponent(e),i=await fetch(`https://jlcsearch.tscircuit.com/api/search?limit=${A}&q=${t}`);if(!i.ok)throw new Error(`JLCPCB API error: ${i.status}`);return(await i.json()).components??[]},rDi=e=>({lcscId:e.lcsc,manufacturer:e.mfr,description:e.description,partNumber:`C${e.lcsc}`,package:e.package,price:e.price,stock:e.stock}),aDi=async(e,A)=>{const t=await oDi(e,{fetch:(i,n)=>fetch(`${A?.apiBase??Ym}/proxy`,{...n,headers:{...n?.headers,"X-Target-Url":i.toString(),"X-Sender-Origin":n?.headers?.origin??"","X-Sender-Host":n?.headers?.host??"https://easyeda.com","X-Sender-Referer":n?.headers?.referer??"","X-Sender-User-Agent":n?.headers?.userAgent??"","X-Sender-Cookie":n?.headers?.cookie??"",authority:n?.headers?.authority??"","content-type":n?.headers?.["content-type"]??"",...A?.headers}})});return eDi(t)},gDi=({query:e,placeholder:A,isSearching:t,onQueryChange:i,onSubmit:n})=>{const o=gA.useCallback(s=>{s.key==="Enter"&&(s.preventDefault(),n())},[n]);return rA.jsxs("div",{className:"rf-flex rf-items-center rf-gap-2 rf-mt-4",children:[rA.jsxs("div",{className:"rf-relative rf-flex-grow",children:[rA.jsx(nyA,{className:"rf-absolute rf-left-2 rf-top-2.5 rf-h-4 rf-w-4 rf-text-muted-foreground"}),rA.jsx(UmA,{placeholder:A,className:"rf-pl-8",spellCheck:!1,autoComplete:"off",value:e,onChange:s=>i(s.target.value),onKeyDown:o})]}),rA.jsx(VQ,{onClick:n,disabled:t||e.trim().length<1,className:"sm:rf-px-4 rf-px-3",children:t?rA.jsx(JS,{className:"rf-h-4 rf-w-4 rf-animate-spin"}):rA.jsxs(rA.Fragment,{children:[rA.jsx(nyA,{className:"rf-h-4 rf-w-4 sm:rf-hidden"}),rA.jsx("span",{className:"rf-hidden sm:rf-inline",children:"Search"})]})})]})},Yxt=e=>{switch(e.source){case"tscircuit.com":{const A=e.package;return`tscircuit-${A.package_id??`${A.owner_github_username??"unknown"}-${A.unscoped_name??A.name??"package"}`}`}case"jlcpcb":return`jlc-${e.component.lcscId}`;case"kicad":return`kicad-${e.footprint.path}`;default:return"unknown"}},cDi=e=>{switch(e.source){case"tscircuit.com":return e.package.unscoped_name;case"jlcpcb":return e.component.manufacturer;case"kicad":return e.footprint.qualifiedName}},IDi=e=>{switch(e.source){case"tscircuit.com":return e.package.description||(e.package.owner_github_username?`Component by ${e.package.owner_github_username}`:void 0);case"jlcpcb":return e.component.description;case"kicad":return e.footprint.description}},lDi=e=>{switch(e.source){case"tscircuit.com":return e.package.name;case"jlcpcb":return e.component.partNumber;case"kicad":return}},BDi=({results:e,selected:A,onSelect:t,onShowDetails:i})=>{const n=A?Yxt(A):null;return rA.jsx("div",{className:"rf-divide-y",children:e.map(o=>{const s=Yxt(o),r=n===s,a=cDi(o),g=IDi(o),c=lDi(o),I=o.source==="jlcpcb"?o.component.stock:null;return rA.jsxs("div",{className:`rf-p-3 rf-flex rf-flex-col sm:rf-grid sm:rf-grid-cols-[1fr_auto] rf-items-start sm:rf-items-center rf-cursor-pointer hover:rf-bg-zinc-100 rf-gap-2 ${r?"rf-bg-zinc-100":""}`,onClick:()=>t(o),children:[rA.jsxs("div",{className:"rf-min-w-0 rf-overflow-hidden rf-w-full",children:[rA.jsxs("div",{className:"rf-flex rf-items-start rf-gap-2",children:[rA.jsx("div",{className:"rf-font-medium rf-text-sm rf-truncate rf-flex-1 rf-min-w-0",children:a}),o.source==="jlcpcb"&&I!=null?rA.jsxs("div",{className:"rf-text-xs rf-text-zinc-500 rf-font-medium rf-whitespace-nowrap sm:rf-hidden",children:[I.toLocaleString()," in stock"]}):null]}),rA.jsxs("div",{className:"rf-text-xs rf-text-zinc-500 rf-truncate",children:[c?rA.jsx("span",{className:"rf-mr-2",children:c}):null,g]})]}),o.source==="tscircuit.com"&&i?rA.jsx("div",{className:"rf-flex rf-gap-2 rf-flex-shrink-0 rf-w-full sm:rf-w-auto",children:rA.jsx(VQ,{variant:"outline",size:"sm",className:"rf-text-xs rf-w-full sm:rf-w-auto",onClick:l=>{l.stopPropagation(),i(o)},children:"See Details"})}):o.source==="jlcpcb"&&I!=null?rA.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:[I.toLocaleString()," in stock"]}):null]},s)})})},Jxt=(e,A)=>!e?.owner_github_username||!e?.unscoped_name?null:`https://registry-api.tscircuit.com/packages/images/${e.owner_github_username}/${e.unscoped_name}/${A}.png`,CDi=({packageResult:e,isOpen:A,onOpenChange:t,isLoading:i,details:n,previewTab:o,onPreviewTabChange:s,isSubmitting:r,onImport:a})=>{const g=e?.package??null,c=Jxt(g,"pcb"),I=Jxt(g,"schematic"),l=g?.unscoped_name?.split("/").pop()??g?.unscoped_name,B=g?.owner_github_username??void 0,C=B?`https://tscircuit.com/${B}`:void 0,Q=B&&l?`https://tscircuit.com/${B}/${l}`:void 0;return rA.jsx(nz,{open:A,onOpenChange:t,children:rA.jsxs(s4,{showOverlay:!1,style:{width:"calc(100vw - 2rem)"},className:"rf-max-w-5xl !rf-overflow-y-auto rf-max-h-[90vh] rf-overflow-hidden rf-flex rf-flex-col rf-rounded-sm",children:[rA.jsx(r4,{className:"rf-pb-4 rf-border-b",children:rA.jsx("div",{className:"rf-flex rf-items-start rf-justify-between rf-gap-4",children:rA.jsxs("div",{className:"rf-flex-1 rf-min-w-0",children:[rA.jsx(a4,{className:"rf-text-xl rf-font-semibold rf-truncate",children:l}),rA.jsx(sz,{children:g?.description})]})})}),rA.jsxs("div",{className:"rf-flex-1 rf-overflow-y-auto rf-py-4 rf-space-y-6",children:[B?rA.jsxs("div",{children:[rA.jsx("span",{className:"rf-text-xs rf-font-medium rf-text-gray-500 rf-uppercase rf-tracking-wide",children:"Created by"}),rA.jsx("div",{className:"rf-mt-1 rf-text-sm rf-font-medium",children:C?rA.jsx("a",{href:C,target:"_blank",rel:"noopener noreferrer",className:"rf-text-black hover:rf-underline",children:B}):B})]}):null,rA.jsxs("div",{children:[rA.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-mb-4",children:"Preview"}),rA.jsxs(rIA,{value:o,onValueChange:u=>s(u),children:[rA.jsxs(_9,{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:[rA.jsx(mS,{value:"pcb",children:"PCB"}),rA.jsx(mS,{value:"schematic",children:"Schematic"})]}),rA.jsxs("div",{className:"rf-mt-4",children:[rA.jsx(Uw,{value:"pcb",className:"rf-border rf-rounded-lg rf-overflow-hidden rf-bg-gray-50",children:c?rA.jsx("img",{src:c,alt:`${l??"package"} PCB preview`,className:"rf-w-full rf-h-full rf-object-contain rf-bg-white rf-p-4"}):null}),rA.jsx(Uw,{value:"schematic",className:"rf-border rf-rounded-lg rf-overflow-hidden rf-bg-gray-50",children:I?rA.jsx("img",{src:I,alt:`${l??"package"} schematic preview`,className:"rf-w-full rf-h-full rf-object-contain rf-bg-white rf-p-4"}):null})]})]})]}),n?.ai_description?rA.jsxs("section",{children:[rA.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-mb-3",children:"AI Description"}),rA.jsx("div",{className:"rf-bg-gray-50 rf-border rf-border-gray-200 rf-rounded-lg rf-p-4",children:rA.jsx("p",{className:"rf-text-sm rf-text-gray-700 rf-leading-relaxed",children:n.ai_description})})]}):null,n?.ai_usage_instructions?rA.jsxs("section",{children:[rA.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-mb-3",children:"Usage Instructions"}),rA.jsx("div",{className:"rf-bg-gray-50 rf-border rf-border-gray-200 rf-rounded-lg rf-p-4",children:rA.jsx("p",{className:"rf-text-sm rf-text-gray-700 rf-leading-relaxed rf-whitespace-pre-wrap",children:n.ai_usage_instructions})})]}):null,i?rA.jsxs("div",{className:"rf-flex rf-justify-center rf-items-center rf-gap-2 rf-text-gray-500",children:[rA.jsx(JS,{className:"rf-h-4 rf-w-4 rf-animate-spin"}),rA.jsx("span",{className:"rf-text-sm",children:"Loading package details..."})]}):null]}),rA.jsxs(oz,{className:"rf-pt-4 rf-border-t rf-flex rf-flex-col sm:rf-flex-row rf-justify-between rf-gap-2",children:[rA.jsx("div",{className:"rf-flex-1",children:Q?rA.jsxs(VQ,{variant:"outline",size:"sm",className:"rf-gap-2 rf-w-full sm:rf-w-auto",onClick:()=>window.open(Q,"_blank"),children:[rA.jsx(BTe,{className:"rf-h-4 rf-w-4"}),"View on tscircuit.com"]}):null}),rA.jsxs("div",{className:"rf-flex rf-flex-col sm:rf-flex-row rf-gap-2",children:[rA.jsx(VQ,{variant:"outline",onClick:()=>t(!1),className:"rf-order-2 sm:rf-order-1",children:"Close"}),rA.jsx(VQ,{onClick:a,disabled:r,className:"rf-bg-blue-600 hover:rf-bg-blue-700",children:r?rA.jsx(JS,{className:"rf-h-4 rf-w-4 rf-animate-spin"}):"Import Component"})]})]})]})})},hDi=()=>{const[e,A]=gA.useState(null),[t,i]=gA.useState(!1),n=gA.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=gA.useCallback(()=>{A(null),i(!1)},[]);return{details:e,isLoading:t,fetchDetails:n,reset:o}},QDi=async e=>{const A=await fetch("https://registry-api.tscircuit.com/packages/search",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:e})});if(!A.ok)throw new Error(`tscircuit registry error: ${A.status}`);return(await A.json()).packages??[]},uDi=()=>{const[e,A]=gA.useState([]),[t,i]=gA.useState(!1),[n,o]=gA.useState(null),[s,r]=gA.useState(!1),a=gA.useCallback(async c=>{const I=c.trim();if(!I)return[];i(!0),o(null);try{const B=(await QDi(I)).map(C=>({source:"tscircuit.com",package:C}));return A(B),B}catch(l){return console.error("Error searching tscircuit packages",l),A([]),o(l instanceof Error?l.message:"Failed to search tscircuit packages"),[]}finally{i(!1),r(!0)}},[]),g=gA.useCallback(()=>{A([]),i(!1),o(null),r(!1)},[]);return{results:e,isSearching:t,error:n,hasSearched:s,search:a,reset:g}},EDi=e=>{const A=e.trim();return/^C\d+/i.test(A)?A.replace(/^C/i,""):A},dDi=()=>{const[e,A]=gA.useState([]),[t,i]=gA.useState(!1),[n,o]=gA.useState(null),[s,r]=gA.useState(!1),a=gA.useCallback(async c=>{const I=EDi(c);if(!I)return[];i(!0),o(null);try{const B=(await sDi(I,10)).map(C=>({source:"jlcpcb",component:rDi(C)}));return A(B),B}catch(l){return console.error("Error searching JLCPCB components",l),A([]),o(l instanceof Error?l.message:"Failed to search JLCPCB components"),[]}finally{i(!1),r(!0)}},[]),g=gA.useCallback(()=>{A([]),i(!1),o(null),r(!1)},[]);return{results:e,isSearching:t,error:n,hasSearched:s,search:a,reset:g}};function av(e){return Array.isArray?Array.isArray(e):qxt(e)==="[object Array]"}function pDi(e){if(typeof e=="string")return e;let A=e+"";return A=="0"&&1/e==-1/0?"-0":A}function fDi(e){return e==null?"":pDi(e)}function Gb(e){return typeof e=="string"}function Txt(e){return typeof e=="number"}function yDi(e){return e===!0||e===!1||mDi(e)&&qxt(e)=="[object Boolean]"}function Kxt(e){return typeof e=="object"}function mDi(e){return Kxt(e)&&e!==null}function eD(e){return e!=null}function d1A(e){return!e.trim().length}function qxt(e){return e==null?e===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}const wDi="Incorrect 'index' type",DDi=e=>`Invalid value for key ${e}`,_Di=e=>`Pattern length exceeds max of ${e}.`,xDi=e=>`Missing ${e} property in key`,bDi=e=>`Property 'weight' in key '${e}' must be a positive integer`,Pxt=Object.prototype.hasOwnProperty;class SDi{constructor(A){this._keys=[],this._keyMap={};let t=0;A.forEach(i=>{let n=Oxt(i);this._keys.push(n),this._keyMap[n.id]=n,t+=n.weight}),this._keys.forEach(i=>{i.weight/=t})}get(A){return this._keyMap[A]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}}function Oxt(e){let A=null,t=null,i=null,n=1,o=null;if(Gb(e)||av(e))i=e,A=Wxt(e),t=p1A(e);else{if(!Pxt.call(e,"name"))throw new Error(xDi("name"));const s=e.name;if(i=s,Pxt.call(e,"weight")&&(n=e.weight,n<=0))throw new Error(bDi(s));A=Wxt(s),t=p1A(s),o=e.getFn}return{path:A,id:t,weight:n,src:i,getFn:o}}function Wxt(e){return av(e)?e:e.split(".")}function p1A(e){return av(e)?e.join("."):e}function vDi(e,A){let t=[],i=!1;const n=(o,s,r)=>{if(eD(o))if(!s[r])t.push(o);else{let a=s[r];const g=o[a];if(!eD(g))return;if(r===s.length-1&&(Gb(g)||Txt(g)||yDi(g)))t.push(fDi(g));else if(av(g)){i=!0;for(let c=0,I=g.length;c<I;c+=1)n(g[c],s,r+1)}else s.length&&n(g,s,r+1)}};return n(e,Gb(A)?A.split("."):A,0),i?t:t[0]}var qr={...{isCaseSensitive:!1,ignoreDiacritics:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:(e,A)=>e.score===A.score?e.idx<A.idx?-1:1:e.score<A.score?-1:1},...{includeMatches:!1,findAllMatches:!1,minMatchCharLength:1},...{location:0,threshold:.6,distance:100},...{useExtendedSearch:!1,getFn:vDi,ignoreLocation:!1,ignoreFieldNorm:!1,fieldNormWeight:1}};const kDi=/[^ ]+/g;function RDi(e=1,A=3){const t=new Map,i=Math.pow(10,A);return{get(n){const o=n.match(kDi).length;if(t.has(o))return t.get(o);const s=1/Math.pow(o,.5*e),r=parseFloat(Math.round(s*i)/i);return t.set(o,r),r},clear(){t.clear()}}}class f1A{constructor({getFn:A=qr.getFn,fieldNormWeight:t=qr.fieldNormWeight}={}){this.norm=RDi(t,3),this.getFn=A,this.isCreated=!1,this.setIndexRecords()}setSources(A=[]){this.docs=A}setIndexRecords(A=[]){this.records=A}setKeys(A=[]){this.keys=A,this._keysMap={},A.forEach((t,i)=>{this._keysMap[t.id]=i})}create(){this.isCreated||!this.docs.length||(this.isCreated=!0,Gb(this.docs[0])?this.docs.forEach((A,t)=>{this._addString(A,t)}):this.docs.forEach((A,t)=>{this._addObject(A,t)}),this.norm.clear())}add(A){const t=this.size();Gb(A)?this._addString(A,t):this._addObject(A,t)}removeAt(A){this.records.splice(A,1);for(let t=A,i=this.size();t<i;t+=1)this.records[t].i-=1}getValueForItemAtKeyId(A,t){return A[this._keysMap[t]]}size(){return this.records.length}_addString(A,t){if(!eD(A)||d1A(A))return;let i={v:A,i:t,n:this.norm.get(A)};this.records.push(i)}_addObject(A,t){let i={i:t,$:{}};this.keys.forEach((n,o)=>{let s=n.getFn?n.getFn(A):this.getFn(A,n.path);if(eD(s)){if(av(s)){let r=[];const a=[{nestedArrIndex:-1,value:s}];for(;a.length;){const{nestedArrIndex:g,value:c}=a.pop();if(eD(c))if(Gb(c)&&!d1A(c)){let I={v:c,i:g,n:this.norm.get(c)};r.push(I)}else av(c)&&c.forEach((I,l)=>{a.push({nestedArrIndex:l,value:I})})}i.$[o]=r}else if(Gb(s)&&!d1A(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 Zxt(e,A,{getFn:t=qr.getFn,fieldNormWeight:i=qr.fieldNormWeight}={}){const n=new f1A({getFn:t,fieldNormWeight:i});return n.setKeys(e.map(Oxt)),n.setSources(A),n.create(),n}function FDi(e,{getFn:A=qr.getFn,fieldNormWeight:t=qr.fieldNormWeight}={}){const{keys:i,records:n}=e,o=new f1A({getFn:A,fieldNormWeight:t});return o.setKeys(i),o.setIndexRecords(n),o}function D$(e,{errors:A=0,currentLocation:t=0,expectedLocation:i=0,distance:n=qr.distance,ignoreLocation:o=qr.ignoreLocation}={}){const s=A/e.length;if(o)return s;const r=Math.abs(i-t);return n?s+r/n:r?1:s}function GDi(e=[],A=qr.minMatchCharLength){let t=[],i=-1,n=-1,o=0;for(let s=e.length;o<s;o+=1){let r=e[o];r&&i===-1?i=o:!r&&i!==-1&&(n=o-1,n-i+1>=A&&t.push([i,n]),i=-1)}return e[o-1]&&o-i>=A&&t.push([i,o-1]),t}const nG=32;function NDi(e,A,t,{location:i=qr.location,distance:n=qr.distance,threshold:o=qr.threshold,findAllMatches:s=qr.findAllMatches,minMatchCharLength:r=qr.minMatchCharLength,includeMatches:a=qr.includeMatches,ignoreLocation:g=qr.ignoreLocation}={}){if(A.length>nG)throw new Error(_Di(nG));const c=A.length,I=e.length,l=Math.max(0,Math.min(i,I));let B=o,C=l;const Q=r>1||a,u=Q?Array(I):[];let d;for(;(d=e.indexOf(A,C))>-1;){let v=D$(A,{currentLocation:d,expectedLocation:l,distance:n,ignoreLocation:g});if(B=Math.min(v,B),C=d+c,Q){let D=0;for(;D<c;)u[d+D]=1,D+=1}}C=-1;let p=[],f=1,m=c+I;const S=1<<c-1;for(let v=0;v<c;v+=1){let D=0,k=m;for(;D<k;)D$(A,{errors:v,currentLocation:l+k,expectedLocation:l,distance:n,ignoreLocation:g})<=B?D=k:m=k,k=Math.floor((m-D)/2+D);m=k;let b=Math.max(1,l-k+1),U=s?I:Math.min(l+k,I)+c,G=Array(U+2);G[U+1]=(1<<v)-1;for(let q=U;q>=b;q-=1){let P=q-1,V=t[e.charAt(P)];if(Q&&(u[P]=+!!V),G[q]=(G[q+1]<<1|1)&V,v&&(G[q]|=(p[q+1]|p[q])<<1|1|p[q+1]),G[q]&S&&(f=D$(A,{errors:v,currentLocation:P,expectedLocation:l,distance:n,ignoreLocation:g}),f<=B)){if(B=f,C=P,C<=l)break;b=Math.max(1,2*l-C)}}if(D$(A,{errors:v+1,currentLocation:l,expectedLocation:l,distance:n,ignoreLocation:g})>B)break;p=G}const x={isMatch:C>=0,score:Math.max(.001,f)};if(Q){const v=GDi(u,r);v.length?a&&(x.indices=v):x.isMatch=!1}return x}function MDi(e){let A={};for(let t=0,i=e.length;t<i;t+=1){const n=e.charAt(t);A[n]=(A[n]||0)|1<<i-t-1}return A}const _$=String.prototype.normalize?(e=>e.normalize("NFD").replace(/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C04\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F]/g,"")):(e=>e);class Vxt{constructor(A,{location:t=qr.location,threshold:i=qr.threshold,distance:n=qr.distance,includeMatches:o=qr.includeMatches,findAllMatches:s=qr.findAllMatches,minMatchCharLength:r=qr.minMatchCharLength,isCaseSensitive:a=qr.isCaseSensitive,ignoreDiacritics:g=qr.ignoreDiacritics,ignoreLocation:c=qr.ignoreLocation}={}){if(this.options={location:t,threshold:i,distance:n,includeMatches:o,findAllMatches:s,minMatchCharLength:r,isCaseSensitive:a,ignoreDiacritics:g,ignoreLocation:c},A=a?A:A.toLowerCase(),A=g?_$(A):A,this.pattern=A,this.chunks=[],!this.pattern.length)return;const I=(B,C)=>{this.chunks.push({pattern:B,alphabet:MDi(B),startIndex:C})},l=this.pattern.length;if(l>nG){let B=0;const C=l%nG,Q=l-C;for(;B<Q;)I(this.pattern.substr(B,nG),B),B+=nG;if(C){const u=l-nG;I(this.pattern.substr(u),u)}}else I(this.pattern,0)}searchIn(A){const{isCaseSensitive:t,ignoreDiacritics:i,includeMatches:n}=this.options;if(A=t?A:A.toLowerCase(),A=i?_$(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:c}=this.options;let I=[],l=0,B=!1;this.chunks.forEach(({pattern:Q,alphabet:u,startIndex:d})=>{const{isMatch:p,score:f,indices:m}=NDi(A,Q,u,{location:o+d,distance:s,threshold:r,findAllMatches:a,minMatchCharLength:g,includeMatches:n,ignoreLocation:c});p&&(B=!0),l+=f,p&&m&&(I=[...I,...m])});let C={isMatch:B,score:B?l/this.chunks.length:1};return B&&n&&(C.indices=I),C}}class Fk{constructor(A){this.pattern=A}static isMultiMatch(A){return jxt(A,this.multiRegex)}static isSingleMatch(A){return jxt(A,this.singleRegex)}search(){}}function jxt(e,A){const t=e.match(A);return t?t[1]:null}class UDi extends Fk{constructor(A){super(A)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(A){const t=A===this.pattern;return{isMatch:t,score:t?0:1,indices:[0,this.pattern.length-1]}}}class LDi extends Fk{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 HDi extends Fk{constructor(A){super(A)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(A){const t=A.startsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,this.pattern.length-1]}}}class YDi extends Fk{constructor(A){super(A)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(A){const t=!A.startsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,A.length-1]}}}class JDi extends Fk{constructor(A){super(A)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(A){const t=A.endsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[A.length-this.pattern.length,A.length-1]}}}class TDi extends Fk{constructor(A){super(A)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(A){const t=!A.endsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,A.length-1]}}}class zxt extends Fk{constructor(A,{location:t=qr.location,threshold:i=qr.threshold,distance:n=qr.distance,includeMatches:o=qr.includeMatches,findAllMatches:s=qr.findAllMatches,minMatchCharLength:r=qr.minMatchCharLength,isCaseSensitive:a=qr.isCaseSensitive,ignoreDiacritics:g=qr.ignoreDiacritics,ignoreLocation:c=qr.ignoreLocation}={}){super(A),this._bitapSearch=new Vxt(A,{location:t,threshold:i,distance:n,includeMatches:o,findAllMatches:s,minMatchCharLength:r,isCaseSensitive:a,ignoreDiacritics:g,ignoreLocation:c})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(A){return this._bitapSearch.searchIn(A)}}class Xxt extends Fk{constructor(A){super(A)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(A){let t=0,i;const n=[],o=this.pattern.length;for(;(i=A.indexOf(this.pattern,t))>-1;)t=i+o,n.push([i,t-1]);const s=!!n.length;return{isMatch:s,score:s?0:1,indices:n}}}const y1A=[UDi,Xxt,HDi,YDi,TDi,JDi,LDi,zxt],$xt=y1A.length,KDi=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/,qDi="|";function PDi(e,A={}){return e.split(qDi).map(t=>{let i=t.trim().split(KDi).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<$xt;){const c=y1A[g];let I=c.isMultiMatch(r);I&&(n.push(new c(I,A)),a=!0)}if(!a)for(g=-1;++g<$xt;){const c=y1A[g];let I=c.isSingleMatch(r);if(I){n.push(new c(I,A));break}}}return n})}const ODi=new Set([zxt.type,Xxt.type]);class WDi{constructor(A,{isCaseSensitive:t=qr.isCaseSensitive,ignoreDiacritics:i=qr.ignoreDiacritics,includeMatches:n=qr.includeMatches,minMatchCharLength:o=qr.minMatchCharLength,ignoreLocation:s=qr.ignoreLocation,findAllMatches:r=qr.findAllMatches,location:a=qr.location,threshold:g=qr.threshold,distance:c=qr.distance}={}){this.query=null,this.options={isCaseSensitive:t,ignoreDiacritics:i,includeMatches:n,minMatchCharLength:o,findAllMatches:r,ignoreLocation:s,location:a,threshold:g,distance:c},A=t?A:A.toLowerCase(),A=i?_$(A):A,this.pattern=A,this.query=PDi(this.pattern,this.options)}static condition(A,t){return t.useExtendedSearch}searchIn(A){const t=this.query;if(!t)return{isMatch:!1,score:1};const{includeMatches:i,isCaseSensitive:n,ignoreDiacritics:o}=this.options;A=n?A:A.toLowerCase(),A=o?_$(A):A;let s=0,r=[],a=0;for(let g=0,c=t.length;g<c;g+=1){const I=t[g];r.length=0,s=0;for(let l=0,B=I.length;l<B;l+=1){const C=I[l],{isMatch:Q,indices:u,score:d}=C.search(A);if(Q){if(s+=1,a+=d,i){const p=C.constructor.type;ODi.has(p)?r=[...r,...u]:r.push(u)}}else{a=0,s=0,r.length=0;break}}if(s){let l={isMatch:!0,score:a/s};return i&&(l.indices=r),l}}return{isMatch:!1,score:1}}}const m1A=[];function ZDi(...e){m1A.push(...e)}function w1A(e,A){for(let t=0,i=m1A.length;t<i;t+=1){let n=m1A[t];if(n.condition(e,A))return new n(e,A)}return new Vxt(e,A)}const x$={AND:"$and",OR:"$or"},D1A={PATH:"$path",PATTERN:"$val"},_1A=e=>!!(e[x$.AND]||e[x$.OR]),VDi=e=>!!e[D1A.PATH],jDi=e=>!av(e)&&Kxt(e)&&!_1A(e),Abt=e=>({[x$.AND]:Object.keys(e).map(A=>({[A]:e[A]}))});function tbt(e,A,{auto:t=!0}={}){const i=n=>{let o=Object.keys(n);const s=VDi(n);if(!s&&o.length>1&&!_1A(n))return i(Abt(n));if(jDi(n)){const a=s?n[D1A.PATH]:o[0],g=s?n[D1A.PATTERN]:n[a];if(!Gb(g))throw new Error(DDi(a));const c={keyId:p1A(a),pattern:g};return t&&(c.searcher=w1A(g,A)),c}let r={children:[],operator:o[0]};return o.forEach(a=>{const g=n[a];av(g)&&g.forEach(c=>{r.children.push(i(c))})}),r};return _1A(e)||(e=Abt(e)),i(e)}function zDi(e,{ignoreFieldNorm:A=qr.ignoreFieldNorm}){e.forEach(t=>{let i=1;t.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))}),t.score=i})}function XDi(e,A){const t=e.matches;A.matches=[],eD(t)&&t.forEach(i=>{if(!eD(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 $Di(e,A){A.score=e.score}function A_i(e,A,{includeMatches:t=qr.includeMatches,includeScore:i=qr.includeScore}={}){const n=[];return t&&n.push(XDi),i&&n.push($Di),e.map(o=>{const{idx:s}=o,r={item:A[s],refIndex:s};return n.length&&n.forEach(a=>{a(o,r)}),r})}class LU{constructor(A,t={},i){this.options={...qr,...t},this.options.useExtendedSearch,this._keyStore=new SDi(this.options.keys),this.setCollection(A,i)}setCollection(A,t){if(this._docs=A,t&&!(t instanceof f1A))throw new Error(wDi);this._myIndex=t||Zxt(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}add(A){eD(A)&&(this._docs.push(A),this._myIndex.add(A))}remove(A=()=>!1){const t=[];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,t.push(o))}return t}removeAt(A){this._docs.splice(A,1),this._myIndex.removeAt(A)}getIndex(){return this._myIndex}search(A,{limit:t=-1}={}){const{includeMatches:i,includeScore:n,shouldSort:o,sortFn:s,ignoreFieldNorm:r}=this.options;let a=Gb(A)?Gb(this._docs[0])?this._searchStringList(A):this._searchObjectList(A):this._searchLogical(A);return zDi(a,{ignoreFieldNorm:r}),o&&a.sort(s),Txt(t)&&t>-1&&(a=a.slice(0,t)),A_i(a,this._docs,{includeMatches:i,includeScore:n})}_searchStringList(A){const t=w1A(A,this.options),{records:i}=this._myIndex,n=[];return i.forEach(({v:o,i:s,n:r})=>{if(!eD(o))return;const{isMatch:a,score:g,indices:c}=t.searchIn(o);a&&n.push({item:o,idx:s,matches:[{score:g,value:o,norm:r,indices:c}]})}),n}_searchLogical(A){const t=tbt(A,this.options),i=(r,a,g)=>{if(!r.children){const{keyId:I,searcher:l}=r,B=this._findMatches({key:this._keyStore.get(I),value:this._myIndex.getValueForItemAtKeyId(a,I),searcher:l});return B&&B.length?[{idx:g,item:a,matches:B}]:[]}const c=[];for(let I=0,l=r.children.length;I<l;I+=1){const B=r.children[I],C=i(B,a,g);if(C.length)c.push(...C);else if(r.operator===x$.AND)return[]}return c},n=this._myIndex.records,o={},s=[];return n.forEach(({$:r,i:a})=>{if(eD(r)){let g=i(t,r,a);g.length&&(o[a]||(o[a]={idx:a,item:r,matches:[]},s.push(o[a])),g.forEach(({matches:c})=>{o[a].matches.push(...c)}))}}),s}_searchObjectList(A){const t=w1A(A,this.options),{keys:i,records:n}=this._myIndex,o=[];return n.forEach(({$:s,i:r})=>{if(!eD(s))return;let a=[];i.forEach((g,c)=>{a.push(...this._findMatches({key:g,value:s[c],searcher:t}))}),a.length&&o.push({idx:r,item:s,matches:a})}),o}_findMatches({key:A,value:t,searcher:i}){if(!eD(t))return[];let n=[];if(av(t))t.forEach(({v:o,i:s,n:r})=>{if(!eD(o))return;const{isMatch:a,score:g,indices:c}=i.searchIn(o);a&&n.push({score:g,key:A,value:o,idx:s,norm:r,indices:c})});else{const{v:o,n:s}=t,{isMatch:r,score:a,indices:g}=i.searchIn(o);r&&n.push({score:a,key:A,value:o,norm:s,indices:g})}return n}}LU.version="7.1.0",LU.createIndex=Zxt,LU.parseIndex=FDi,LU.config=qr,LU.parseQuery=tbt,ZDi(WDi);let x1A=null,$4=null,b1A=null;const t_i=async()=>x1A||$4||($4=fetch("https://kicad-mod-cache.tscircuit.com/kicad_files.json").then(e=>e.json()).then(e=>(x1A=e,$4=null,e)),$4),e_i=async(e,A=20)=>{const t=await t_i();return b1A||(b1A=new LU(t)),b1A.search(e).slice(0,A).map(i=>i.item)},i_i=e=>{const A=e.replace(".pretty/",":").replace(".kicad_mod",""),t=`kicad:${A}`;return{path:e,qualifiedName:t,description:A}},n_i=()=>{const[e,A]=gA.useState([]),[t,i]=gA.useState(!1),[n,o]=gA.useState(null),[s,r]=gA.useState(!1),a=gA.useCallback(async c=>{const I=c.trim();if(!I)return[];i(!0),o(null);try{const B=(await e_i(I,20)).map(C=>({source:"kicad",footprint:i_i(C)}));return A(B),B}catch(l){return console.error("Error searching KiCad footprints",l),A([]),o(l instanceof Error?l.message:"Failed to search KiCad footprints"),[]}finally{i(!1),r(!0)}},[]),g=gA.useCallback(()=>{A([]),i(!1),o(null),r(!1)},[]);return{results:e,isSearching:t,error:n,hasSearched:s,search:a,reset:g}},o_i=({onTscircuitPackageSelected:e,onJlcpcbComponentTsxLoaded:A,onKicadStringSelected:t})=>{const i=[];return e&&i.push("tscircuit.com"),A&&i.push("jlcpcb"),t&&i.push("kicad"),i},s_i=({isOpen:e,onClose:A,jlcpcbProxyRequestHeaders:t,onKicadStringSelected:i,onTscircuitPackageSelected:n,onJlcpcbComponentTsxLoaded:o,jlcpcbProxyApiBase:s})=>{zj();const r=gA.useMemo(()=>o_i({onKicadStringSelected:i,onTscircuitPackageSelected:n,onJlcpcbComponentTsxLoaded:o}),[i,n,o]),a=r.length>0,[g,c]=gA.useState(r[0]??"tscircuit.com"),[I,l]=gA.useState(""),[B,C]=gA.useState(null),{results:Q,isSearching:u,error:d,hasSearched:p,search:f,reset:m}=uDi(),{results:S,isSearching:x,error:v,hasSearched:D,search:k,reset:b}=dDi(),{results:U,isSearching:G,error:T,hasSearched:q,search:P,reset:V}=n_i(),{details:z,isLoading:nA,fetchDetails:cA,reset:QA}=hDi(),[tA,sA]=gA.useState(null),[IA,wA]=gA.useState(!1),[bA,HA]=gA.useState("pcb"),[JA,vA]=gA.useState(null),[aA,_A]=gA.useState(!1);gA.useEffect(()=>{vA(null)},[B]);const fA=gA.useCallback(()=>{m(),b(),V(),C(null)},[b,V,m]);gA.useEffect(()=>{e||(fA(),l(""),wA(!1),sA(null),vA(null))},[e,fA]),gA.useEffect(()=>{l(""),C(null),g==="tscircuit.com"?m():g==="jlcpcb"?b():g==="kicad"&&V()},[g,b,V,m]);const ZA=KA=>{C(KA),sA(KA),HA("pcb"),wA(!0),QA();const YA=KA.package.owner_github_username,XA=KA.package.unscoped_name;if(YA&&XA){const et=XA.split("/").pop()??XA;cA(YA,et)}},At=async()=>{I.trim()&&(C(null),g==="tscircuit.com"?await f(I):g==="jlcpcb"?await k(I):g==="kicad"&&await P(I))},at=async KA=>{try{if(vA(null),_A(!0),KA.source==="kicad"){if(!i)throw new Error("KiCad handler not provided");await i({result:KA,footprint:KA.footprint.qualifiedName})}else if(KA.source==="jlcpcb"){if(!o)throw new Error("JLCPCB handler not provided");const YA=await aDi(KA.component.partNumber,{headers:t,apiBase:s});await o({result:KA,tsx:YA})}else if(KA.source==="tscircuit.com"){if(!n)throw new Error("tscircuit package handler not provided");const YA=KA.package.owner_github_username,XA=KA.package.unscoped_name;if(!YA||!XA)throw new Error("Missing package metadata");const et=XA.split("/").pop()??XA,It=`@tsci/${YA}.${et}`;await n({result:KA,fullPackageName:It})}return!0}catch(YA){return console.error("Failed to import component",YA),vA(YA instanceof Error?YA.message:"Failed to import component"),!1}finally{_A(!1)}};let RA=[],NA=!1,dA=null,uA=!1;g==="tscircuit.com"?(RA=Q,NA=u,dA=d,uA=p):g==="jlcpcb"?(RA=S,NA=x,dA=v,uA=D):g==="kicad"&&(RA=U,NA=G,dA=T,uA=q);const LA=async()=>{if(!B)return;await at(B)&&(A(),fA(),l(""))},FA=KA=>{KA||A()},kA=KA=>{wA(KA),KA||sA(null)};return rA.jsxs(nz,{open:e,onOpenChange:FA,children:[rA.jsxs(s4,{style:{width:"calc(100vw - 2rem)"},className:"rf-rounded-sm rf-max-h-[90vh] rf-overflow-y-auto rf-flex rf-flex-col",children:[rA.jsxs(r4,{children:[rA.jsx(a4,{className:"rf-text-lg sm:rf-text-xl",children:"Import Component"}),rA.jsx(sz,{className:"rf-text-sm",children:a?"Search for components from available sources.":"Import options are disabled because no handlers were provided."})]}),a?rA.jsxs(rIA,{value:g,onValueChange:KA=>c(KA),children:[rA.jsx(_9,{className:"rf-flex rf-w-full rf-gap-2",children:r.map(KA=>rA.jsx(mS,{value:KA,className:"rf-flex-1 rf-text-xs sm:rf-text-sm",children:XwA[KA].label},KA))}),rA.jsx(gDi,{query:I,placeholder:XwA[g].placeholder,isSearching:NA,onQueryChange:l,onSubmit:At}),rA.jsx("div",{className:"rf-mt-4 rf-flex-1 rf-min-h-[200px] !rf-max-h-[40vh] !rf-overflow-y-auto rf-border rf-rounded-md",children:NA?rA.jsxs("div",{className:"rf-p-8 rf-text-center rf-text-zinc-500",children:[rA.jsx(JS,{className:"rf-h-8 rf-w-8 rf-animate-spin rf-mx-auto rf-mb-2"}),rA.jsx("p",{children:"Searching..."})]}):RA.length>0?rA.jsx(BDi,{results:RA,selected:B,onSelect:C,onShowDetails:g==="tscircuit.com"?ZA:void 0}):rA.jsx("div",{className:"rf-p-8 rf-text-center rf-text-zinc-500",children:dA?`Error: ${dA}`:uA?XwA[g].emptyMessage:"Enter a search term to find components"})})]}):null,JA?rA.jsx("div",{className:"rf-text-sm rf-text-red-600 rf-mt-2",children:JA}):null,rA.jsxs(oz,{className:"rf-flex rf-flex-col sm:rf-flex-row rf-gap-2",children:[rA.jsx(VQ,{variant:"outline",onClick:A,className:"rf-order-2 sm:rf-order-1",children:"Cancel"}),rA.jsx(VQ,{onClick:LA,disabled:!B||aA,className:"rf-order-1 sm:rf-order-2",children:aA?rA.jsx(JS,{className:"rf-h-4 rf-w-4 rf-animate-spin"}):"Import"})]})]}),rA.jsx(CDi,{packageResult:tA,isOpen:IA,onOpenChange:kA,isLoading:nA,details:z,previewTab:bA,onPreviewTabChange:KA=>HA(KA),isSubmitting:aA,onImport:()=>{tA&&at(tA).then(KA=>{KA&&(wA(!1),A(),fA(),l(""))})}})]})},r_i=e=>{const A=e.match(/export const (\w+) =/);if(!A)throw new Error("Could not determine component name from TSX contents");return A[1]},ebt=e=>{const A=M0(s=>s.pushEvent),t=M0(s=>s.upsertFile),i=async({result:s,fullPackageName:r})=>{const g=s.package.unscoped_name??s.package.name;throw await sc.promise(A({event_type:"INSTALL_PACKAGE",full_package_name:r}),{loading:`Requesting install for "${g}"`,success:`Install requested for "${g}"`,error:c=>`Failed to request install: ${c instanceof Error?c.message:String(c)}`}),new Error("Not implemented")},n=async({footprint:s})=>{await sc.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/${r_i(r)}.tsx`;await sc.promise(t(g,r),{loading:`Importing ${s.component.partNumber}`,success:`Imported to "${g}"`,error:c=>`Failed to import component: ${c instanceof Error?c.message:String(c)}`})};return rA.jsx(s_i,{...e,onTscircuitPackageSelected:i,onKicadStringSelected:n,onJlcpcbComponentTsxLoaded:o})};ebt.displayName="ImportComponentDialogForCli";var S1A={exports:{}},ibt;function a_i(){return ibt||(ibt=1,(function(e,A){var t={env:{},version:""};/*!
|
|
6668
|
+
*/const sDi=async(e,A=10)=>{const t=encodeURIComponent(e),i=await fetch(`https://jlcsearch.tscircuit.com/api/search?limit=${A}&q=${t}`);if(!i.ok)throw new Error(`JLCPCB API error: ${i.status}`);return(await i.json()).components??[]},rDi=e=>({lcscId:e.lcsc,manufacturer:e.mfr,description:e.description,partNumber:`C${e.lcsc}`,package:e.package,price:e.price,stock:e.stock}),aDi=async(e,A)=>{const t=await oDi(e,{fetch:(i,n)=>fetch(`${A?.apiBase??Ym}/proxy`,{...n,headers:{...n?.headers,"X-Target-Url":i.toString(),"X-Sender-Origin":n?.headers?.origin??"","X-Sender-Host":n?.headers?.host??"https://easyeda.com","X-Sender-Referer":n?.headers?.referer??"","X-Sender-User-Agent":n?.headers?.userAgent??"","X-Sender-Cookie":n?.headers?.cookie??"",authority:n?.headers?.authority??"","content-type":n?.headers?.["content-type"]??"",...A?.headers}})});return eDi(t)},gDi=({query:e,placeholder:A,isSearching:t,onQueryChange:i,onSubmit:n})=>{const o=gA.useCallback(s=>{s.key==="Enter"&&(s.preventDefault(),n())},[n]);return rA.jsxs("div",{className:"rf-flex rf-items-center rf-gap-2 rf-mt-4",children:[rA.jsxs("div",{className:"rf-relative rf-flex-grow",children:[rA.jsx(nyA,{className:"rf-absolute rf-left-2 rf-top-2.5 rf-h-4 rf-w-4 rf-text-muted-foreground"}),rA.jsx(UmA,{placeholder:A,className:"rf-pl-8",spellCheck:!1,autoComplete:"off",value:e,onChange:s=>i(s.target.value),onKeyDown:o})]}),rA.jsx(VQ,{onClick:n,disabled:t||e.trim().length<1,className:"sm:rf-px-4 rf-px-3",children:t?rA.jsx(JS,{className:"rf-h-4 rf-w-4 rf-animate-spin"}):rA.jsxs(rA.Fragment,{children:[rA.jsx(nyA,{className:"rf-h-4 rf-w-4 sm:rf-hidden"}),rA.jsx("span",{className:"rf-hidden sm:rf-inline",children:"Search"})]})})]})},Yxt=e=>{switch(e.source){case"tscircuit.com":{const A=e.package;return`tscircuit-${A.package_id??`${A.owner_github_username??"unknown"}-${A.unscoped_name??A.name??"package"}`}`}case"jlcpcb":return`jlc-${e.component.lcscId}`;case"kicad":return`kicad-${e.footprint.path}`;default:return"unknown"}},cDi=e=>{switch(e.source){case"tscircuit.com":return e.package.unscoped_name;case"jlcpcb":return e.component.manufacturer;case"kicad":return e.footprint.qualifiedName}},IDi=e=>{switch(e.source){case"tscircuit.com":return e.package.description||(e.package.owner_github_username?`Component by ${e.package.owner_github_username}`:void 0);case"jlcpcb":return e.component.description;case"kicad":return e.footprint.description}},lDi=e=>{switch(e.source){case"tscircuit.com":return e.package.name;case"jlcpcb":return e.component.partNumber;case"kicad":return}},BDi=({results:e,selected:A,onSelect:t,onShowDetails:i})=>{const n=A?Yxt(A):null;return rA.jsx("div",{className:"rf-divide-y",children:e.map(o=>{const s=Yxt(o),r=n===s,a=cDi(o),g=IDi(o),c=lDi(o),I=o.source==="jlcpcb"?o.component.stock:null;return rA.jsxs("div",{className:`rf-p-3 rf-flex rf-flex-col sm:rf-grid sm:rf-grid-cols-[1fr_auto] rf-items-start sm:rf-items-center rf-cursor-pointer hover:rf-bg-zinc-100 rf-gap-2 ${r?"rf-bg-zinc-100":""}`,onClick:()=>t(o),children:[rA.jsxs("div",{className:"rf-min-w-0 rf-overflow-hidden rf-w-full",children:[rA.jsxs("div",{className:"rf-flex rf-items-start rf-gap-2",children:[rA.jsx("div",{className:"rf-font-medium rf-text-sm rf-truncate rf-flex-1 rf-min-w-0",children:a}),o.source==="jlcpcb"&&I!=null?rA.jsxs("div",{className:"rf-text-xs rf-text-zinc-500 rf-font-medium rf-whitespace-nowrap sm:rf-hidden",children:[I.toLocaleString()," in stock"]}):null]}),rA.jsxs("div",{className:"rf-text-xs rf-text-zinc-500 rf-truncate",children:[c?rA.jsx("span",{className:"rf-mr-2",children:c}):null,g]})]}),o.source==="tscircuit.com"&&i?rA.jsx("div",{className:"rf-flex rf-gap-2 rf-flex-shrink-0 rf-w-full sm:rf-w-auto",children:rA.jsx(VQ,{variant:"outline",size:"sm",className:"rf-text-xs rf-w-full sm:rf-w-auto",onClick:l=>{l.stopPropagation(),i(o)},children:"See Details"})}):o.source==="jlcpcb"&&I!=null?rA.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:[I.toLocaleString()," in stock"]}):null]},s)})})},Jxt=(e,A)=>!e?.owner_github_username||!e?.unscoped_name?null:`https://registry-api.tscircuit.com/packages/images/${e.owner_github_username}/${e.unscoped_name}/${A}.png`,CDi=({packageResult:e,isOpen:A,onOpenChange:t,isLoading:i,details:n,previewTab:o,onPreviewTabChange:s,isSubmitting:r,onImport:a})=>{const g=e?.package??null,c=Jxt(g,"pcb"),I=Jxt(g,"schematic"),l=g?.unscoped_name?.split("/").pop()??g?.unscoped_name,B=g?.owner_github_username??void 0,C=B?`https://tscircuit.com/${B}`:void 0,Q=B&&l?`https://tscircuit.com/${B}/${l}`:void 0;return rA.jsx(nz,{open:A,onOpenChange:t,children:rA.jsxs(s4,{showOverlay:!1,style:{width:"calc(100vw - 2rem)"},className:"rf-max-w-5xl !rf-overflow-y-auto rf-max-h-[90vh] rf-overflow-hidden rf-flex rf-flex-col rf-rounded-sm",children:[rA.jsx(r4,{className:"rf-pb-4 rf-border-b",children:rA.jsx("div",{className:"rf-flex rf-items-start rf-justify-between rf-gap-4",children:rA.jsxs("div",{className:"rf-flex-1 rf-min-w-0",children:[rA.jsx(a4,{className:"rf-text-xl rf-font-semibold rf-truncate",children:l}),rA.jsx(sz,{children:g?.description})]})})}),rA.jsxs("div",{className:"rf-flex-1 rf-overflow-y-auto rf-py-4 rf-space-y-6",children:[B?rA.jsxs("div",{children:[rA.jsx("span",{className:"rf-text-xs rf-font-medium rf-text-gray-500 rf-uppercase rf-tracking-wide",children:"Created by"}),rA.jsx("div",{className:"rf-mt-1 rf-text-sm rf-font-medium",children:C?rA.jsx("a",{href:C,target:"_blank",rel:"noopener noreferrer",className:"rf-text-black hover:rf-underline",children:B}):B})]}):null,rA.jsxs("div",{children:[rA.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-mb-4",children:"Preview"}),rA.jsxs(rIA,{value:o,onValueChange:u=>s(u),children:[rA.jsxs(_9,{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:[rA.jsx(mS,{value:"pcb",children:"PCB"}),rA.jsx(mS,{value:"schematic",children:"Schematic"})]}),rA.jsxs("div",{className:"rf-mt-4",children:[rA.jsx(Uw,{value:"pcb",className:"rf-border rf-rounded-lg rf-overflow-hidden rf-bg-gray-50",children:c?rA.jsx("img",{src:c,alt:`${l??"package"} PCB preview`,className:"rf-w-full rf-h-full rf-object-contain rf-bg-white rf-p-4"}):null}),rA.jsx(Uw,{value:"schematic",className:"rf-border rf-rounded-lg rf-overflow-hidden rf-bg-gray-50",children:I?rA.jsx("img",{src:I,alt:`${l??"package"} schematic preview`,className:"rf-w-full rf-h-full rf-object-contain rf-bg-white rf-p-4"}):null})]})]})]}),n?.ai_description?rA.jsxs("section",{children:[rA.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-mb-3",children:"AI Description"}),rA.jsx("div",{className:"rf-bg-gray-50 rf-border rf-border-gray-200 rf-rounded-lg rf-p-4",children:rA.jsx("p",{className:"rf-text-sm rf-text-gray-700 rf-leading-relaxed",children:n.ai_description})})]}):null,n?.ai_usage_instructions?rA.jsxs("section",{children:[rA.jsx("h3",{className:"rf-text-lg rf-font-semibold rf-mb-3",children:"Usage Instructions"}),rA.jsx("div",{className:"rf-bg-gray-50 rf-border rf-border-gray-200 rf-rounded-lg rf-p-4",children:rA.jsx("p",{className:"rf-text-sm rf-text-gray-700 rf-leading-relaxed rf-whitespace-pre-wrap",children:n.ai_usage_instructions})})]}):null,i?rA.jsxs("div",{className:"rf-flex rf-justify-center rf-items-center rf-gap-2 rf-text-gray-500",children:[rA.jsx(JS,{className:"rf-h-4 rf-w-4 rf-animate-spin"}),rA.jsx("span",{className:"rf-text-sm",children:"Loading package details..."})]}):null]}),rA.jsxs(oz,{className:"rf-pt-4 rf-border-t rf-flex rf-flex-col sm:rf-flex-row rf-justify-between rf-gap-2",children:[rA.jsx("div",{className:"rf-flex-1",children:Q?rA.jsxs(VQ,{variant:"outline",size:"sm",className:"rf-gap-2 rf-w-full sm:rf-w-auto",onClick:()=>window.open(Q,"_blank"),children:[rA.jsx(BTe,{className:"rf-h-4 rf-w-4"}),"View on tscircuit.com"]}):null}),rA.jsxs("div",{className:"rf-flex rf-flex-col sm:rf-flex-row rf-gap-2",children:[rA.jsx(VQ,{variant:"outline",onClick:()=>t(!1),className:"rf-order-2 sm:rf-order-1",children:"Close"}),rA.jsx(VQ,{onClick:a,disabled:r,className:"rf-bg-blue-600 hover:rf-bg-blue-700",children:r?rA.jsx(JS,{className:"rf-h-4 rf-w-4 rf-animate-spin"}):"Import Component"})]})]})]})})},hDi=()=>{const[e,A]=gA.useState(null),[t,i]=gA.useState(!1),n=gA.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=gA.useCallback(()=>{A(null),i(!1)},[]);return{details:e,isLoading:t,fetchDetails:n,reset:o}},QDi=async e=>{const A=await fetch("https://registry-api.tscircuit.com/packages/search",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:e})});if(!A.ok)throw new Error(`tscircuit registry error: ${A.status}`);return(await A.json()).packages??[]},uDi=()=>{const[e,A]=gA.useState([]),[t,i]=gA.useState(!1),[n,o]=gA.useState(null),[s,r]=gA.useState(!1),a=gA.useCallback(async c=>{const I=c.trim();if(!I)return[];i(!0),o(null);try{const B=(await QDi(I)).map(C=>({source:"tscircuit.com",package:C}));return A(B),B}catch(l){return console.error("Error searching tscircuit packages",l),A([]),o(l instanceof Error?l.message:"Failed to search tscircuit packages"),[]}finally{i(!1),r(!0)}},[]),g=gA.useCallback(()=>{A([]),i(!1),o(null),r(!1)},[]);return{results:e,isSearching:t,error:n,hasSearched:s,search:a,reset:g}},EDi=e=>{const A=e.trim();return/^C\d+/i.test(A)?A.replace(/^C/i,""):A},dDi=()=>{const[e,A]=gA.useState([]),[t,i]=gA.useState(!1),[n,o]=gA.useState(null),[s,r]=gA.useState(!1),a=gA.useCallback(async c=>{const I=EDi(c);if(!I)return[];i(!0),o(null);try{const B=(await sDi(I,10)).map(C=>({source:"jlcpcb",component:rDi(C)}));return A(B),B}catch(l){return console.error("Error searching JLCPCB components",l),A([]),o(l instanceof Error?l.message:"Failed to search JLCPCB components"),[]}finally{i(!1),r(!0)}},[]),g=gA.useCallback(()=>{A([]),i(!1),o(null),r(!1)},[]);return{results:e,isSearching:t,error:n,hasSearched:s,search:a,reset:g}};function av(e){return Array.isArray?Array.isArray(e):qxt(e)==="[object Array]"}function pDi(e){if(typeof e=="string")return e;let A=e+"";return A=="0"&&1/e==-1/0?"-0":A}function fDi(e){return e==null?"":pDi(e)}function Gb(e){return typeof e=="string"}function Txt(e){return typeof e=="number"}function yDi(e){return e===!0||e===!1||mDi(e)&&qxt(e)=="[object Boolean]"}function Kxt(e){return typeof e=="object"}function mDi(e){return Kxt(e)&&e!==null}function eD(e){return e!=null}function d1A(e){return!e.trim().length}function qxt(e){return e==null?e===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}const wDi="Incorrect 'index' type",DDi=e=>`Invalid value for key ${e}`,_Di=e=>`Pattern length exceeds max of ${e}.`,xDi=e=>`Missing ${e} property in key`,bDi=e=>`Property 'weight' in key '${e}' must be a positive integer`,Pxt=Object.prototype.hasOwnProperty;class SDi{constructor(A){this._keys=[],this._keyMap={};let t=0;A.forEach(i=>{let n=Oxt(i);this._keys.push(n),this._keyMap[n.id]=n,t+=n.weight}),this._keys.forEach(i=>{i.weight/=t})}get(A){return this._keyMap[A]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}}function Oxt(e){let A=null,t=null,i=null,n=1,o=null;if(Gb(e)||av(e))i=e,A=Wxt(e),t=p1A(e);else{if(!Pxt.call(e,"name"))throw new Error(xDi("name"));const s=e.name;if(i=s,Pxt.call(e,"weight")&&(n=e.weight,n<=0))throw new Error(bDi(s));A=Wxt(s),t=p1A(s),o=e.getFn}return{path:A,id:t,weight:n,src:i,getFn:o}}function Wxt(e){return av(e)?e:e.split(".")}function p1A(e){return av(e)?e.join("."):e}function vDi(e,A){let t=[],i=!1;const n=(o,s,r)=>{if(eD(o))if(!s[r])t.push(o);else{let a=s[r];const g=o[a];if(!eD(g))return;if(r===s.length-1&&(Gb(g)||Txt(g)||yDi(g)))t.push(fDi(g));else if(av(g)){i=!0;for(let c=0,I=g.length;c<I;c+=1)n(g[c],s,r+1)}else s.length&&n(g,s,r+1)}};return n(e,Gb(A)?A.split("."):A,0),i?t:t[0]}var qr={...{isCaseSensitive:!1,ignoreDiacritics:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:(e,A)=>e.score===A.score?e.idx<A.idx?-1:1:e.score<A.score?-1:1},...{includeMatches:!1,findAllMatches:!1,minMatchCharLength:1},...{location:0,threshold:.6,distance:100},...{useExtendedSearch:!1,getFn:vDi,ignoreLocation:!1,ignoreFieldNorm:!1,fieldNormWeight:1}};const kDi=/[^ ]+/g;function RDi(e=1,A=3){const t=new Map,i=Math.pow(10,A);return{get(n){const o=n.match(kDi).length;if(t.has(o))return t.get(o);const s=1/Math.pow(o,.5*e),r=parseFloat(Math.round(s*i)/i);return t.set(o,r),r},clear(){t.clear()}}}class f1A{constructor({getFn:A=qr.getFn,fieldNormWeight:t=qr.fieldNormWeight}={}){this.norm=RDi(t,3),this.getFn=A,this.isCreated=!1,this.setIndexRecords()}setSources(A=[]){this.docs=A}setIndexRecords(A=[]){this.records=A}setKeys(A=[]){this.keys=A,this._keysMap={},A.forEach((t,i)=>{this._keysMap[t.id]=i})}create(){this.isCreated||!this.docs.length||(this.isCreated=!0,Gb(this.docs[0])?this.docs.forEach((A,t)=>{this._addString(A,t)}):this.docs.forEach((A,t)=>{this._addObject(A,t)}),this.norm.clear())}add(A){const t=this.size();Gb(A)?this._addString(A,t):this._addObject(A,t)}removeAt(A){this.records.splice(A,1);for(let t=A,i=this.size();t<i;t+=1)this.records[t].i-=1}getValueForItemAtKeyId(A,t){return A[this._keysMap[t]]}size(){return this.records.length}_addString(A,t){if(!eD(A)||d1A(A))return;let i={v:A,i:t,n:this.norm.get(A)};this.records.push(i)}_addObject(A,t){let i={i:t,$:{}};this.keys.forEach((n,o)=>{let s=n.getFn?n.getFn(A):this.getFn(A,n.path);if(eD(s)){if(av(s)){let r=[];const a=[{nestedArrIndex:-1,value:s}];for(;a.length;){const{nestedArrIndex:g,value:c}=a.pop();if(eD(c))if(Gb(c)&&!d1A(c)){let I={v:c,i:g,n:this.norm.get(c)};r.push(I)}else av(c)&&c.forEach((I,l)=>{a.push({nestedArrIndex:l,value:I})})}i.$[o]=r}else if(Gb(s)&&!d1A(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 Zxt(e,A,{getFn:t=qr.getFn,fieldNormWeight:i=qr.fieldNormWeight}={}){const n=new f1A({getFn:t,fieldNormWeight:i});return n.setKeys(e.map(Oxt)),n.setSources(A),n.create(),n}function FDi(e,{getFn:A=qr.getFn,fieldNormWeight:t=qr.fieldNormWeight}={}){const{keys:i,records:n}=e,o=new f1A({getFn:A,fieldNormWeight:t});return o.setKeys(i),o.setIndexRecords(n),o}function D$(e,{errors:A=0,currentLocation:t=0,expectedLocation:i=0,distance:n=qr.distance,ignoreLocation:o=qr.ignoreLocation}={}){const s=A/e.length;if(o)return s;const r=Math.abs(i-t);return n?s+r/n:r?1:s}function GDi(e=[],A=qr.minMatchCharLength){let t=[],i=-1,n=-1,o=0;for(let s=e.length;o<s;o+=1){let r=e[o];r&&i===-1?i=o:!r&&i!==-1&&(n=o-1,n-i+1>=A&&t.push([i,n]),i=-1)}return e[o-1]&&o-i>=A&&t.push([i,o-1]),t}const nG=32;function NDi(e,A,t,{location:i=qr.location,distance:n=qr.distance,threshold:o=qr.threshold,findAllMatches:s=qr.findAllMatches,minMatchCharLength:r=qr.minMatchCharLength,includeMatches:a=qr.includeMatches,ignoreLocation:g=qr.ignoreLocation}={}){if(A.length>nG)throw new Error(_Di(nG));const c=A.length,I=e.length,l=Math.max(0,Math.min(i,I));let B=o,C=l;const Q=r>1||a,u=Q?Array(I):[];let d;for(;(d=e.indexOf(A,C))>-1;){let v=D$(A,{currentLocation:d,expectedLocation:l,distance:n,ignoreLocation:g});if(B=Math.min(v,B),C=d+c,Q){let D=0;for(;D<c;)u[d+D]=1,D+=1}}C=-1;let p=[],f=1,m=c+I;const S=1<<c-1;for(let v=0;v<c;v+=1){let D=0,k=m;for(;D<k;)D$(A,{errors:v,currentLocation:l+k,expectedLocation:l,distance:n,ignoreLocation:g})<=B?D=k:m=k,k=Math.floor((m-D)/2+D);m=k;let b=Math.max(1,l-k+1),U=s?I:Math.min(l+k,I)+c,G=Array(U+2);G[U+1]=(1<<v)-1;for(let q=U;q>=b;q-=1){let P=q-1,V=t[e.charAt(P)];if(Q&&(u[P]=+!!V),G[q]=(G[q+1]<<1|1)&V,v&&(G[q]|=(p[q+1]|p[q])<<1|1|p[q+1]),G[q]&S&&(f=D$(A,{errors:v,currentLocation:P,expectedLocation:l,distance:n,ignoreLocation:g}),f<=B)){if(B=f,C=P,C<=l)break;b=Math.max(1,2*l-C)}}if(D$(A,{errors:v+1,currentLocation:l,expectedLocation:l,distance:n,ignoreLocation:g})>B)break;p=G}const x={isMatch:C>=0,score:Math.max(.001,f)};if(Q){const v=GDi(u,r);v.length?a&&(x.indices=v):x.isMatch=!1}return x}function MDi(e){let A={};for(let t=0,i=e.length;t<i;t+=1){const n=e.charAt(t);A[n]=(A[n]||0)|1<<i-t-1}return A}const _$=String.prototype.normalize?(e=>e.normalize("NFD").replace(/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C04\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F]/g,"")):(e=>e);class Vxt{constructor(A,{location:t=qr.location,threshold:i=qr.threshold,distance:n=qr.distance,includeMatches:o=qr.includeMatches,findAllMatches:s=qr.findAllMatches,minMatchCharLength:r=qr.minMatchCharLength,isCaseSensitive:a=qr.isCaseSensitive,ignoreDiacritics:g=qr.ignoreDiacritics,ignoreLocation:c=qr.ignoreLocation}={}){if(this.options={location:t,threshold:i,distance:n,includeMatches:o,findAllMatches:s,minMatchCharLength:r,isCaseSensitive:a,ignoreDiacritics:g,ignoreLocation:c},A=a?A:A.toLowerCase(),A=g?_$(A):A,this.pattern=A,this.chunks=[],!this.pattern.length)return;const I=(B,C)=>{this.chunks.push({pattern:B,alphabet:MDi(B),startIndex:C})},l=this.pattern.length;if(l>nG){let B=0;const C=l%nG,Q=l-C;for(;B<Q;)I(this.pattern.substr(B,nG),B),B+=nG;if(C){const u=l-nG;I(this.pattern.substr(u),u)}}else I(this.pattern,0)}searchIn(A){const{isCaseSensitive:t,ignoreDiacritics:i,includeMatches:n}=this.options;if(A=t?A:A.toLowerCase(),A=i?_$(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:c}=this.options;let I=[],l=0,B=!1;this.chunks.forEach(({pattern:Q,alphabet:u,startIndex:d})=>{const{isMatch:p,score:f,indices:m}=NDi(A,Q,u,{location:o+d,distance:s,threshold:r,findAllMatches:a,minMatchCharLength:g,includeMatches:n,ignoreLocation:c});p&&(B=!0),l+=f,p&&m&&(I=[...I,...m])});let C={isMatch:B,score:B?l/this.chunks.length:1};return B&&n&&(C.indices=I),C}}class Fk{constructor(A){this.pattern=A}static isMultiMatch(A){return jxt(A,this.multiRegex)}static isSingleMatch(A){return jxt(A,this.singleRegex)}search(){}}function jxt(e,A){const t=e.match(A);return t?t[1]:null}class UDi extends Fk{constructor(A){super(A)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(A){const t=A===this.pattern;return{isMatch:t,score:t?0:1,indices:[0,this.pattern.length-1]}}}class LDi extends Fk{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 HDi extends Fk{constructor(A){super(A)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(A){const t=A.startsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,this.pattern.length-1]}}}class YDi extends Fk{constructor(A){super(A)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(A){const t=!A.startsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,A.length-1]}}}class JDi extends Fk{constructor(A){super(A)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(A){const t=A.endsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[A.length-this.pattern.length,A.length-1]}}}class TDi extends Fk{constructor(A){super(A)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(A){const t=!A.endsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,A.length-1]}}}class zxt extends Fk{constructor(A,{location:t=qr.location,threshold:i=qr.threshold,distance:n=qr.distance,includeMatches:o=qr.includeMatches,findAllMatches:s=qr.findAllMatches,minMatchCharLength:r=qr.minMatchCharLength,isCaseSensitive:a=qr.isCaseSensitive,ignoreDiacritics:g=qr.ignoreDiacritics,ignoreLocation:c=qr.ignoreLocation}={}){super(A),this._bitapSearch=new Vxt(A,{location:t,threshold:i,distance:n,includeMatches:o,findAllMatches:s,minMatchCharLength:r,isCaseSensitive:a,ignoreDiacritics:g,ignoreLocation:c})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(A){return this._bitapSearch.searchIn(A)}}class Xxt extends Fk{constructor(A){super(A)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(A){let t=0,i;const n=[],o=this.pattern.length;for(;(i=A.indexOf(this.pattern,t))>-1;)t=i+o,n.push([i,t-1]);const s=!!n.length;return{isMatch:s,score:s?0:1,indices:n}}}const y1A=[UDi,Xxt,HDi,YDi,TDi,JDi,LDi,zxt],$xt=y1A.length,KDi=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/,qDi="|";function PDi(e,A={}){return e.split(qDi).map(t=>{let i=t.trim().split(KDi).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<$xt;){const c=y1A[g];let I=c.isMultiMatch(r);I&&(n.push(new c(I,A)),a=!0)}if(!a)for(g=-1;++g<$xt;){const c=y1A[g];let I=c.isSingleMatch(r);if(I){n.push(new c(I,A));break}}}return n})}const ODi=new Set([zxt.type,Xxt.type]);class WDi{constructor(A,{isCaseSensitive:t=qr.isCaseSensitive,ignoreDiacritics:i=qr.ignoreDiacritics,includeMatches:n=qr.includeMatches,minMatchCharLength:o=qr.minMatchCharLength,ignoreLocation:s=qr.ignoreLocation,findAllMatches:r=qr.findAllMatches,location:a=qr.location,threshold:g=qr.threshold,distance:c=qr.distance}={}){this.query=null,this.options={isCaseSensitive:t,ignoreDiacritics:i,includeMatches:n,minMatchCharLength:o,findAllMatches:r,ignoreLocation:s,location:a,threshold:g,distance:c},A=t?A:A.toLowerCase(),A=i?_$(A):A,this.pattern=A,this.query=PDi(this.pattern,this.options)}static condition(A,t){return t.useExtendedSearch}searchIn(A){const t=this.query;if(!t)return{isMatch:!1,score:1};const{includeMatches:i,isCaseSensitive:n,ignoreDiacritics:o}=this.options;A=n?A:A.toLowerCase(),A=o?_$(A):A;let s=0,r=[],a=0;for(let g=0,c=t.length;g<c;g+=1){const I=t[g];r.length=0,s=0;for(let l=0,B=I.length;l<B;l+=1){const C=I[l],{isMatch:Q,indices:u,score:d}=C.search(A);if(Q){if(s+=1,a+=d,i){const p=C.constructor.type;ODi.has(p)?r=[...r,...u]:r.push(u)}}else{a=0,s=0,r.length=0;break}}if(s){let l={isMatch:!0,score:a/s};return i&&(l.indices=r),l}}return{isMatch:!1,score:1}}}const m1A=[];function ZDi(...e){m1A.push(...e)}function w1A(e,A){for(let t=0,i=m1A.length;t<i;t+=1){let n=m1A[t];if(n.condition(e,A))return new n(e,A)}return new Vxt(e,A)}const x$={AND:"$and",OR:"$or"},D1A={PATH:"$path",PATTERN:"$val"},_1A=e=>!!(e[x$.AND]||e[x$.OR]),VDi=e=>!!e[D1A.PATH],jDi=e=>!av(e)&&Kxt(e)&&!_1A(e),Abt=e=>({[x$.AND]:Object.keys(e).map(A=>({[A]:e[A]}))});function tbt(e,A,{auto:t=!0}={}){const i=n=>{let o=Object.keys(n);const s=VDi(n);if(!s&&o.length>1&&!_1A(n))return i(Abt(n));if(jDi(n)){const a=s?n[D1A.PATH]:o[0],g=s?n[D1A.PATTERN]:n[a];if(!Gb(g))throw new Error(DDi(a));const c={keyId:p1A(a),pattern:g};return t&&(c.searcher=w1A(g,A)),c}let r={children:[],operator:o[0]};return o.forEach(a=>{const g=n[a];av(g)&&g.forEach(c=>{r.children.push(i(c))})}),r};return _1A(e)||(e=Abt(e)),i(e)}function zDi(e,{ignoreFieldNorm:A=qr.ignoreFieldNorm}){e.forEach(t=>{let i=1;t.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))}),t.score=i})}function XDi(e,A){const t=e.matches;A.matches=[],eD(t)&&t.forEach(i=>{if(!eD(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 $Di(e,A){A.score=e.score}function A_i(e,A,{includeMatches:t=qr.includeMatches,includeScore:i=qr.includeScore}={}){const n=[];return t&&n.push(XDi),i&&n.push($Di),e.map(o=>{const{idx:s}=o,r={item:A[s],refIndex:s};return n.length&&n.forEach(a=>{a(o,r)}),r})}class LU{constructor(A,t={},i){this.options={...qr,...t},this.options.useExtendedSearch,this._keyStore=new SDi(this.options.keys),this.setCollection(A,i)}setCollection(A,t){if(this._docs=A,t&&!(t instanceof f1A))throw new Error(wDi);this._myIndex=t||Zxt(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}add(A){eD(A)&&(this._docs.push(A),this._myIndex.add(A))}remove(A=()=>!1){const t=[];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,t.push(o))}return t}removeAt(A){this._docs.splice(A,1),this._myIndex.removeAt(A)}getIndex(){return this._myIndex}search(A,{limit:t=-1}={}){const{includeMatches:i,includeScore:n,shouldSort:o,sortFn:s,ignoreFieldNorm:r}=this.options;let a=Gb(A)?Gb(this._docs[0])?this._searchStringList(A):this._searchObjectList(A):this._searchLogical(A);return zDi(a,{ignoreFieldNorm:r}),o&&a.sort(s),Txt(t)&&t>-1&&(a=a.slice(0,t)),A_i(a,this._docs,{includeMatches:i,includeScore:n})}_searchStringList(A){const t=w1A(A,this.options),{records:i}=this._myIndex,n=[];return i.forEach(({v:o,i:s,n:r})=>{if(!eD(o))return;const{isMatch:a,score:g,indices:c}=t.searchIn(o);a&&n.push({item:o,idx:s,matches:[{score:g,value:o,norm:r,indices:c}]})}),n}_searchLogical(A){const t=tbt(A,this.options),i=(r,a,g)=>{if(!r.children){const{keyId:I,searcher:l}=r,B=this._findMatches({key:this._keyStore.get(I),value:this._myIndex.getValueForItemAtKeyId(a,I),searcher:l});return B&&B.length?[{idx:g,item:a,matches:B}]:[]}const c=[];for(let I=0,l=r.children.length;I<l;I+=1){const B=r.children[I],C=i(B,a,g);if(C.length)c.push(...C);else if(r.operator===x$.AND)return[]}return c},n=this._myIndex.records,o={},s=[];return n.forEach(({$:r,i:a})=>{if(eD(r)){let g=i(t,r,a);g.length&&(o[a]||(o[a]={idx:a,item:r,matches:[]},s.push(o[a])),g.forEach(({matches:c})=>{o[a].matches.push(...c)}))}}),s}_searchObjectList(A){const t=w1A(A,this.options),{keys:i,records:n}=this._myIndex,o=[];return n.forEach(({$:s,i:r})=>{if(!eD(s))return;let a=[];i.forEach((g,c)=>{a.push(...this._findMatches({key:g,value:s[c],searcher:t}))}),a.length&&o.push({idx:r,item:s,matches:a})}),o}_findMatches({key:A,value:t,searcher:i}){if(!eD(t))return[];let n=[];if(av(t))t.forEach(({v:o,i:s,n:r})=>{if(!eD(o))return;const{isMatch:a,score:g,indices:c}=i.searchIn(o);a&&n.push({score:g,key:A,value:o,idx:s,norm:r,indices:c})});else{const{v:o,n:s}=t,{isMatch:r,score:a,indices:g}=i.searchIn(o);r&&n.push({score:a,key:A,value:o,norm:s,indices:g})}return n}}LU.version="7.1.0",LU.createIndex=Zxt,LU.parseIndex=FDi,LU.config=qr,LU.parseQuery=tbt,ZDi(WDi);let x1A=null,$4=null,b1A=null;const t_i=async()=>x1A||$4||($4=fetch("https://kicad-mod-cache.tscircuit.com/kicad_files.json").then(e=>e.json()).then(e=>(x1A=e,$4=null,e)),$4),e_i=async(e,A=20)=>{const t=await t_i();return b1A||(b1A=new LU(t)),b1A.search(e).slice(0,A).map(i=>i.item)},i_i=e=>{const A=e.replace(".pretty/",":").replace(".kicad_mod",""),t=`kicad:${A}`;return{path:e,qualifiedName:t,description:A}},n_i=()=>{const[e,A]=gA.useState([]),[t,i]=gA.useState(!1),[n,o]=gA.useState(null),[s,r]=gA.useState(!1),a=gA.useCallback(async c=>{const I=c.trim();if(!I)return[];i(!0),o(null);try{const B=(await e_i(I,20)).map(C=>({source:"kicad",footprint:i_i(C)}));return A(B),B}catch(l){return console.error("Error searching KiCad footprints",l),A([]),o(l instanceof Error?l.message:"Failed to search KiCad footprints"),[]}finally{i(!1),r(!0)}},[]),g=gA.useCallback(()=>{A([]),i(!1),o(null),r(!1)},[]);return{results:e,isSearching:t,error:n,hasSearched:s,search:a,reset:g}},o_i=({onTscircuitPackageSelected:e,onJlcpcbComponentTsxLoaded:A,onKicadStringSelected:t})=>{const i=[];return e&&i.push("tscircuit.com"),A&&i.push("jlcpcb"),t&&i.push("kicad"),i},s_i=({isOpen:e,onClose:A,jlcpcbProxyRequestHeaders:t,onKicadStringSelected:i,onTscircuitPackageSelected:n,onJlcpcbComponentTsxLoaded:o,jlcpcbProxyApiBase:s})=>{zj();const r=gA.useMemo(()=>o_i({onKicadStringSelected:i,onTscircuitPackageSelected:n,onJlcpcbComponentTsxLoaded:o}),[i,n,o]),a=r.length>0,[g,c]=gA.useState(r[0]??"tscircuit.com"),[I,l]=gA.useState(""),[B,C]=gA.useState(null),{results:Q,isSearching:u,error:d,hasSearched:p,search:f,reset:m}=uDi(),{results:S,isSearching:x,error:v,hasSearched:D,search:k,reset:b}=dDi(),{results:U,isSearching:G,error:T,hasSearched:q,search:P,reset:V}=n_i(),{details:z,isLoading:nA,fetchDetails:cA,reset:QA}=hDi(),[tA,sA]=gA.useState(null),[IA,wA]=gA.useState(!1),[bA,HA]=gA.useState("pcb"),[JA,vA]=gA.useState(null),[aA,_A]=gA.useState(!1);gA.useEffect(()=>{vA(null)},[B]);const fA=gA.useCallback(()=>{m(),b(),V(),C(null)},[b,V,m]);gA.useEffect(()=>{e||(fA(),l(""),wA(!1),sA(null),vA(null))},[e,fA]),gA.useEffect(()=>{l(""),C(null),g==="tscircuit.com"?m():g==="jlcpcb"?b():g==="kicad"&&V()},[g,b,V,m]);const ZA=KA=>{C(KA),sA(KA),HA("pcb"),wA(!0),QA();const YA=KA.package.owner_github_username,XA=KA.package.unscoped_name;if(YA&&XA){const et=XA.split("/").pop()??XA;cA(YA,et)}},At=async()=>{I.trim()&&(C(null),g==="tscircuit.com"?await f(I):g==="jlcpcb"?await k(I):g==="kicad"&&await P(I))},at=async KA=>{try{if(vA(null),_A(!0),KA.source==="kicad"){if(!i)throw new Error("KiCad handler not provided");await i({result:KA,footprint:KA.footprint.qualifiedName})}else if(KA.source==="jlcpcb"){if(!o)throw new Error("JLCPCB handler not provided");const YA=await aDi(KA.component.partNumber,{headers:t,apiBase:s});await o({result:KA,tsx:YA})}else if(KA.source==="tscircuit.com"){if(!n)throw new Error("tscircuit package handler not provided");const YA=KA.package.owner_github_username,XA=KA.package.unscoped_name;if(!YA||!XA)throw new Error("Missing package metadata");const et=XA.split("/").pop()??XA,It=`@tsci/${YA}.${et}`;await n({result:KA,fullPackageName:It})}return!0}catch(YA){return console.error("Failed to import component",YA),vA(YA instanceof Error?YA.message:"Failed to import component"),!1}finally{_A(!1)}};let RA=[],NA=!1,dA=null,uA=!1;g==="tscircuit.com"?(RA=Q,NA=u,dA=d,uA=p):g==="jlcpcb"?(RA=S,NA=x,dA=v,uA=D):g==="kicad"&&(RA=U,NA=G,dA=T,uA=q);const LA=async()=>{if(!B)return;await at(B)&&(A(),fA(),l(""))},FA=KA=>{KA||A()},kA=KA=>{wA(KA),KA||sA(null)};return rA.jsxs(nz,{open:e,onOpenChange:FA,children:[rA.jsxs(s4,{style:{width:"calc(100vw - 2rem)"},className:"rf-rounded-sm rf-max-h-[90vh] rf-overflow-y-auto rf-flex rf-flex-col",children:[rA.jsxs(r4,{children:[rA.jsx(a4,{className:"rf-text-lg sm:rf-text-xl",children:"Import Component"}),rA.jsx(sz,{className:"rf-text-sm",children:a?"Search for components from available sources.":"Import options are disabled because no handlers were provided."})]}),a?rA.jsxs(rIA,{value:g,onValueChange:KA=>c(KA),children:[rA.jsx(_9,{className:"rf-flex rf-w-full rf-gap-2",children:r.map(KA=>rA.jsx(mS,{value:KA,className:"rf-flex-1 rf-text-xs sm:rf-text-sm",children:XwA[KA].label},KA))}),rA.jsx(gDi,{query:I,placeholder:XwA[g].placeholder,isSearching:NA,onQueryChange:l,onSubmit:At}),rA.jsx("div",{className:"rf-mt-4 rf-flex-1 rf-min-h-[200px] !rf-max-h-[40vh] !rf-overflow-y-auto rf-border rf-rounded-md",children:NA?rA.jsxs("div",{className:"rf-p-8 rf-text-center rf-text-zinc-500",children:[rA.jsx(JS,{className:"rf-h-8 rf-w-8 rf-animate-spin rf-mx-auto rf-mb-2"}),rA.jsx("p",{children:"Searching..."})]}):RA.length>0?rA.jsx(BDi,{results:RA,selected:B,onSelect:C,onShowDetails:g==="tscircuit.com"?ZA:void 0}):rA.jsx("div",{className:"rf-p-8 rf-text-center rf-text-zinc-500",children:dA?`Error: ${dA}`:uA?XwA[g].emptyMessage:"Enter a search term to find components"})})]}):null,JA?rA.jsx("div",{className:"rf-text-sm rf-text-red-600 rf-mt-2",children:JA}):null,rA.jsxs(oz,{className:"rf-flex rf-flex-col sm:rf-flex-row rf-gap-2",children:[rA.jsx(VQ,{variant:"outline",onClick:A,className:"rf-order-2 sm:rf-order-1",children:"Cancel"}),rA.jsx(VQ,{onClick:LA,disabled:!B||aA,className:"rf-order-1 sm:rf-order-2",children:aA?rA.jsx(JS,{className:"rf-h-4 rf-w-4 rf-animate-spin"}):"Import"})]})]}),rA.jsx(CDi,{packageResult:tA,isOpen:IA,onOpenChange:kA,isLoading:nA,details:z,previewTab:bA,onPreviewTabChange:KA=>HA(KA),isSubmitting:aA,onImport:()=>{tA&&at(tA).then(KA=>{KA&&(wA(!1),A(),fA(),l(""))})}})]})},r_i=e=>{const A=e.match(/export const (\w+) =/);if(!A)throw new Error("Could not determine component name from TSX contents");return A[1]},ebt=e=>{const A=M0(s=>s.pushEvent),t=M0(s=>s.upsertFile),i=async({result:s,fullPackageName:r})=>{const g=s.package.unscoped_name??s.package.name;await sc.promise(A({event_type:"INSTALL_PACKAGE",full_package_name:r}),{loading:`Requesting install for "${g}"`,success:`Install requested for "${g}"`,error:c=>`Failed to request install: ${c instanceof Error?c.message:String(c)}`})},n=async({footprint:s})=>{await sc.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/${r_i(r)}.tsx`;await sc.promise(t(g,r),{loading:`Importing ${s.component.partNumber}`,success:`Imported to "${g}"`,error:c=>`Failed to import component: ${c instanceof Error?c.message:String(c)}`})};return rA.jsx(s_i,{...e,onTscircuitPackageSelected:i,onKicadStringSelected:n,onJlcpcbComponentTsxLoaded:o})};ebt.displayName="ImportComponentDialogForCli";var S1A={exports:{}},ibt;function a_i(){return ibt||(ibt=1,(function(e,A){var t={env:{},version:""};/*!
|
|
6669
6669
|
|
|
6670
6670
|
JSZip v3.10.1 - A JavaScript class for generating and reading zip files
|
|
6671
6671
|
<http://stuartk.com/jszip>
|