@tscircuit/runframe 0.0.1137 → 0.0.1139

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.
@@ -83,7 +83,7 @@ TabsContent.displayName = TabsPrimitive.Content.displayName;
83
83
 
84
84
  // lib/components/CircuitJsonPreview/CircuitJsonPreview.tsx
85
85
  import { CadViewer } from "@tscircuit/3d-viewer";
86
- import { useCallback as useCallback8, useEffect as useEffect12, useState as useState19, useMemo as useMemo8 } from "react";
86
+ import { useCallback as useCallback9, useEffect as useEffect14, useState as useState20, useMemo as useMemo9 } from "react";
87
87
 
88
88
  // lib/components/ErrorFallback.tsx
89
89
  import "react";
@@ -376,7 +376,7 @@ var AutoroutingLogOptions = ({
376
376
  ] }) });
377
377
 
378
378
  // lib/components/ErrorTabContent/ErrorTabContent.tsx
379
- import { useState, useMemo } from "react";
379
+ import { useState, useMemo, useEffect } from "react";
380
380
  import { Fragment as Fragment2, jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
381
381
  var ErrorTabContent = ({
382
382
  code,
@@ -500,6 +500,19 @@ var ErrorTabContent = ({
500
500
  };
501
501
  const currentError = unifiedErrors[currentErrorIndex];
502
502
  const currentWarning = unifiedWarnings[currentWarningIndex];
503
+ useEffect(() => {
504
+ if (errorMessage) {
505
+ let errorText = errorMessage;
506
+ if (errorStack) {
507
+ errorText += `
508
+
509
+ ${errorStack}`;
510
+ }
511
+ if (typeof window !== "undefined") {
512
+ window.__TSCIRCUIT_LAST_EXECUTION_ERROR = errorText;
513
+ }
514
+ }
515
+ }, [errorMessage, errorStack]);
503
516
  return /* @__PURE__ */ jsx6(Fragment2, { children: /* @__PURE__ */ jsxs4("div", { className: "rf-w-[95%] rf-mx-auto", children: [
504
517
  unifiedErrors.length > 1 && /* @__PURE__ */ jsxs4("div", { className: "rf-flex rf-items-center rf-gap-2 rf-mb-2", children: [
505
518
  /* @__PURE__ */ jsx6(
@@ -1135,14 +1148,14 @@ var PcbViewerWithContainerHeight = ({
1135
1148
  };
1136
1149
 
1137
1150
  // lib/hooks/use-styles.ts
1138
- import { useEffect } from "react";
1151
+ import { useEffect as useEffect2 } from "react";
1139
1152
 
1140
1153
  // lib/hooks/styles.generated.ts
1141
- var styles_generated_default = '*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}:root{--radius:0.5rem}.rf-pointer-events-none{pointer-events:none}.rf-invisible{visibility:hidden}.rf-fixed{position:fixed}.rf-absolute{position:absolute}.rf-relative{position:relative}.rf-inset-0{inset:0}.-rf-left-2{left:-.5rem}.-rf-right-10{right:-2.5rem}.-rf-right-2{right:-.5rem}.-rf-right-4{right:-1rem}.-rf-right-6{right:-1.5rem}.-rf-right-7{right:-1.75rem}.-rf-right-8{right:-2rem}.-rf-right-9{right:-2.25rem}.rf-bottom-full{bottom:100%}.rf-left-0{left:0}.rf-left-1{left:.25rem}.rf-left-1\\/2{left:50%}.rf-left-2{left:.5rem}.rf-left-\\[50\\%\\]{left:50%}.rf-right-0{right:0}.rf-right-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-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-\\[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-\\[500px\\]{max-height:500px}.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-\\[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-1{width:.25rem}.rf-w-1\\/2{width:50%}.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-\\[400px\\]{width:400px}.rf-w-\\[95\\%\\]{width:95%}.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-\\[400px\\]{min-width:400px}.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-\\[660px\\]{max-width:660px!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-\\[100px\\]{max-width:100px}.rf-max-w-\\[120px\\]{max-width:120px}.rf-max-w-\\[150px\\]{max-width:150px}.rf-max-w-\\[400px\\]{max-width:400px}.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-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-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-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}.rf-overflow-visible{overflow:visible}.\\!rf-overflow-x-auto{overflow-x:auto!important}.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-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-200{--tw-border-opacity:1;border-color:rgb(254 215 170/var(--tw-border-opacity,1))}.rf-border-primary{border-color:hsl(var(--primary))}.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-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-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-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-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.rf-bg-red-900{--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.rf-bg-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-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-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-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-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-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-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-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-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-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-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-block{display:block}.sm\\:rf-inline{display:inline}.sm\\:rf-grid{display:grid}.sm\\:rf-hidden{display:none}.sm\\:rf-w-auto{width:auto}.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-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-px-4{padding-left:1rem;padding-right:1rem}.sm\\:rf-text-left{text-align:left}.sm\\:rf-text-right{text-align:right}.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-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}.\\[\\&\\>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}';
1154
+ var styles_generated_default = '*,: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-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-\\[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-\\[500px\\]{max-height:500px}.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-1{width:.25rem}.rf-w-1\\/2{width:50%}.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-\\[95\\%\\]{width:95%}.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-\\[660px\\]{max-width:660px!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-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-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-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-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-200{--tw-border-opacity:1;border-color:rgb(254 215 170/var(--tw-border-opacity,1))}.rf-border-primary{border-color:hsl(var(--primary))}.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-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-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-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-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.rf-bg-red-900{--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.rf-bg-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-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-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-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-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-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-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-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-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-block{display:block}.sm\\:rf-inline{display:inline}.sm\\:rf-grid{display:grid}.sm\\:rf-hidden{display:none}.sm\\:rf-w-auto{width:auto}.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-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-px-4{padding-left:1rem;padding-right:1rem}.sm\\:rf-text-left{text-align:left}.sm\\:rf-text-right{text-align:right}.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-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}.\\[\\&\\>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}';
1142
1155
 
1143
1156
  // lib/hooks/use-styles.ts
1144
1157
  var useStyles = () => {
1145
- useEffect(() => {
1158
+ useEffect2(() => {
1146
1159
  const existingStyle = document.querySelector(
1147
1160
  'style[data-styles="tscircuit-runframe"]'
1148
1161
  );
@@ -1155,9 +1168,9 @@ var useStyles = () => {
1155
1168
  };
1156
1169
 
1157
1170
  // lib/hooks/use-fullscreen-body-scroll.ts
1158
- import { useEffect as useEffect2 } from "react";
1171
+ import { useEffect as useEffect3 } from "react";
1159
1172
  var useFullscreenBodyScroll = (isFullScreen) => {
1160
- useEffect2(() => {
1173
+ useEffect3(() => {
1161
1174
  if (isFullScreen) {
1162
1175
  document.body.style.overflow = "hidden";
1163
1176
  } else {
@@ -1407,13 +1420,13 @@ var RenderLogViewer = ({
1407
1420
  };
1408
1421
 
1409
1422
  // lib/hooks/use-error-telemetry.ts
1410
- import { useEffect as useEffect3 } from "react";
1423
+ import { useEffect as useEffect4 } from "react";
1411
1424
  var useErrorTelemetry = ({
1412
1425
  errorMessage,
1413
1426
  errorStack,
1414
1427
  circuitJsonErrors
1415
1428
  }) => {
1416
- useEffect3(() => {
1429
+ useEffect4(() => {
1417
1430
  if (errorMessage) {
1418
1431
  const err = new Error(errorMessage);
1419
1432
  if (errorStack) err.stack = errorStack;
@@ -1423,7 +1436,7 @@ var useErrorTelemetry = ({
1423
1436
  }
1424
1437
  }
1425
1438
  }, [errorMessage, errorStack]);
1426
- useEffect3(() => {
1439
+ useEffect4(() => {
1427
1440
  if (circuitJsonErrors && circuitJsonErrors.length > 0) {
1428
1441
  for (const error of circuitJsonErrors) {
1429
1442
  const err = new Error(error.message || "Circuit JSON Error");
@@ -1441,7 +1454,7 @@ var useErrorTelemetry = ({
1441
1454
  };
1442
1455
 
1443
1456
  // package.json
1444
- var version = "0.0.1136";
1457
+ var version = "0.0.1138";
1445
1458
  var package_default = {
1446
1459
  name: "@tscircuit/runframe",
1447
1460
  main: "dist/preview.js",
@@ -1484,19 +1497,20 @@ var package_default = {
1484
1497
  "@radix-ui/react-icons": "^1.3.2",
1485
1498
  "@radix-ui/react-popover": "^1.1.14",
1486
1499
  "@radix-ui/react-progress": "^1.1.2",
1500
+ "@radix-ui/react-select": "^2.2.6",
1487
1501
  "@radix-ui/react-slot": "^1.1.1",
1488
1502
  "@radix-ui/react-tabs": "^1.1.2",
1489
1503
  "@resvg/resvg-wasm": "^2.6.2",
1490
- "@tscircuit/3d-viewer": "^0.0.418",
1504
+ "@tscircuit/3d-viewer": "^0.0.419",
1491
1505
  "@tscircuit/assembly-viewer": "^0.0.5",
1492
1506
  "@tscircuit/checks": "^0.0.78",
1493
1507
  "@tscircuit/create-snippet-url": "^0.0.9",
1494
- "@tscircuit/eval": "^0.0.415",
1495
- "@tscircuit/fake-snippets": "^0.0.87",
1508
+ "@tscircuit/eval": "^0.0.416",
1509
+ "@tscircuit/fake-snippets": "^0.0.122",
1496
1510
  "@tscircuit/file-server": "^0.0.32",
1497
1511
  "@tscircuit/footprinter": "^0.0.236",
1498
1512
  "@tscircuit/math-utils": "^0.0.25",
1499
- "@tscircuit/pcb-viewer": "1.11.236",
1513
+ "@tscircuit/pcb-viewer": "1.11.237",
1500
1514
  "@tscircuit/props": "^0.0.365",
1501
1515
  "@tscircuit/schematic-trace-solver": "^0.0.40",
1502
1516
  "@tscircuit/schematic-viewer": "2.0.45",
@@ -1519,6 +1533,7 @@ var package_default = {
1519
1533
  "circuit-to-svg": "^0.0.205",
1520
1534
  "class-variance-authority": "^0.7.1",
1521
1535
  clsx: "^2.1.1",
1536
+ cmdk: "^1.1.1",
1522
1537
  comlink: "^4.4.2",
1523
1538
  concurrently: "^9.1.2",
1524
1539
  cssnano: "^7.0.6",
@@ -1526,6 +1541,7 @@ var package_default = {
1526
1541
  easyeda: "^0.0.228",
1527
1542
  fflate: "^0.8.2",
1528
1543
  "fuse.js": "^7.1.0",
1544
+ jose: "^6.1.0",
1529
1545
  jszip: "^3.10.1",
1530
1546
  "kicad-component-converter": "^0.1.21",
1531
1547
  kicadts: "^0.0.10",
@@ -1557,14 +1573,17 @@ var package_default = {
1557
1573
  tsup: "^8.3.5",
1558
1574
  vite: "^7.1.2",
1559
1575
  yargs: "^17.7.2"
1576
+ },
1577
+ dependencies: {
1578
+ jose: "^6.1.0"
1560
1579
  }
1561
1580
  };
1562
1581
 
1563
1582
  // lib/hooks/use-eval-versions.ts
1564
- import { useEffect as useEffect5, useMemo as useMemo2, useState as useState6 } from "react";
1583
+ import { useEffect as useEffect6, useMemo as useMemo2, useState as useState6 } from "react";
1565
1584
 
1566
1585
  // lib/hooks/use-local-storage-state.ts
1567
- import { useState as useState5, useEffect as useEffect4 } from "react";
1586
+ import { useState as useState5, useEffect as useEffect5 } from "react";
1568
1587
  function useLocalStorageState(key, initialValue) {
1569
1588
  const [state, setState] = useState5(() => {
1570
1589
  try {
@@ -1575,7 +1594,7 @@ function useLocalStorageState(key, initialValue) {
1575
1594
  return initialValue;
1576
1595
  }
1577
1596
  });
1578
- useEffect4(() => {
1597
+ useEffect5(() => {
1579
1598
  try {
1580
1599
  window.localStorage.setItem(key, JSON.stringify(state));
1581
1600
  } catch (error) {
@@ -1611,7 +1630,7 @@ var useEvalVersions = (allowSelecting) => {
1611
1630
  );
1612
1631
  const setLastRunEvalVersion = useRunnerStore((s) => s.setLastRunEvalVersion);
1613
1632
  const lastRunEvalVersion = useRunnerStore((s) => s.lastRunEvalVersion);
1614
- useEffect5(() => {
1633
+ useEffect6(() => {
1615
1634
  if (!allowSelecting) return;
1616
1635
  fetch("https://data.jsdelivr.com/v1/package/npm/@tscircuit/eval").then((res) => res.json()).then((data) => {
1617
1636
  if (Array.isArray(data?.versions)) {
@@ -1625,7 +1644,7 @@ var useEvalVersions = (allowSelecting) => {
1625
1644
  }).catch(() => {
1626
1645
  });
1627
1646
  }, [allowSelecting]);
1628
- useEffect5(() => {
1647
+ useEffect6(() => {
1629
1648
  if (!allowSelecting) return;
1630
1649
  if (selected) {
1631
1650
  window.TSCIRCUIT_LATEST_EVAL_VERSION = selected;
@@ -1654,7 +1673,7 @@ var useEvalVersions = (allowSelecting) => {
1654
1673
  };
1655
1674
 
1656
1675
  // lib/components/FileMenuLeftHeader.tsx
1657
- import { useEffect as useEffect11, useMemo as useMemo7, useState as useState18 } from "react";
1676
+ import { useEffect as useEffect13, useMemo as useMemo8, useState as useState19 } from "react";
1658
1677
 
1659
1678
  // lib/components/RunFrameWithApi/store.ts
1660
1679
  import { applyEditEventsToManualEditsFile } from "@tscircuit/core";
@@ -1925,11 +1944,11 @@ var SelectSnippetDialog = ({
1925
1944
  };
1926
1945
 
1927
1946
  // lib/components/RunFrameForCli/useEventHandler.ts
1928
- import { useEffect as useEffect6, useRef as useRef2 } from "react";
1947
+ import { useEffect as useEffect7, useRef as useRef2 } from "react";
1929
1948
  var useEventHandler = (callback) => {
1930
1949
  const lastProcessedEventId = useRef2(null);
1931
1950
  const recentEvents = useRunFrameStore((state) => state.recentEvents);
1932
- useEffect6(() => {
1951
+ useEffect7(() => {
1933
1952
  if (recentEvents.length === 0) return;
1934
1953
  const latestEvent = recentEvents[0];
1935
1954
  if (latestEvent.event_id !== lastProcessedEventId.current) {
@@ -3400,7 +3419,7 @@ var exportAndDownload = async ({
3400
3419
  import { useState as useState15 } from "react";
3401
3420
 
3402
3421
  // lib/components/AiReviewDialog/ListAiReviewsView.tsx
3403
- import { useEffect as useEffect8, useState as useState13 } from "react";
3422
+ import { useEffect as useEffect9, useState as useState13 } from "react";
3404
3423
 
3405
3424
  // lib/utils/get-registry-ky.ts
3406
3425
  import ky from "ky";
@@ -3440,7 +3459,7 @@ var AiReviewListView = ({
3440
3459
  const [reviews, setReviews] = useState13([]);
3441
3460
  const [loading, setLoading] = useState13(false);
3442
3461
  const [creating, setCreating] = useState13(false);
3443
- useEffect8(() => {
3462
+ useEffect9(() => {
3444
3463
  if (!packageName || !hasRegistryToken()) return;
3445
3464
  setLoading(true);
3446
3465
  registryKy.get("ai_reviews/list", { searchParams: { package_name: packageName } }).json().then((data) => setReviews(data.ai_reviews)).catch((err) => {
@@ -3495,7 +3514,7 @@ var AiReviewListView = ({
3495
3514
  };
3496
3515
 
3497
3516
  // lib/components/AiReviewDialog/ViewAiReviewView.tsx
3498
- import { useEffect as useEffect9, useMemo as useMemo4, useState as useState14 } from "react";
3517
+ import { useEffect as useEffect10, useMemo as useMemo4, useState as useState14 } from "react";
3499
3518
  import { marked } from "marked";
3500
3519
  import { Fragment as Fragment5, jsx as jsx27, jsxs as jsxs20 } from "react/jsx-runtime";
3501
3520
  var AiReviewViewView = ({
@@ -3507,7 +3526,7 @@ var AiReviewViewView = ({
3507
3526
  );
3508
3527
  const registryKy2 = getRegistryKy();
3509
3528
  const aiReviewId = review.ai_review_id;
3510
- useEffect9(() => {
3529
+ useEffect10(() => {
3511
3530
  if (!aiReviewId) return;
3512
3531
  let timeout;
3513
3532
  async function loadAiReviewText() {
@@ -3638,7 +3657,7 @@ import { QueryClient, QueryClientProvider } from "react-query";
3638
3657
  // lib/components/OrderDialog/InitialOrder.tsx
3639
3658
  import { Loader2 as Loader24 } from "lucide-react";
3640
3659
  import { GitHubLogoIcon as GitHubLogoIcon2 } from "@radix-ui/react-icons";
3641
- import { useEffect as useEffect10, useMemo as useMemo5, useState as useState16 } from "react";
3660
+ import { useEffect as useEffect11, useMemo as useMemo5, useState as useState16 } from "react";
3642
3661
 
3643
3662
  // lib/components/OrderDialog/VendorQuoteCard.tsx
3644
3663
  import { Truck, Package } from "lucide-react";
@@ -3804,7 +3823,7 @@ var InitialOrderScreen = ({
3804
3823
  const [selectedShippingCarrier, setSelectedShippingCarrier] = useState16(null);
3805
3824
  const [orderQuoteId, setOrderQuoteId] = useState16(null);
3806
3825
  const { mutate: createOrderQuote2, error: createOrderQuoteError } = useCreateOrderQuote();
3807
- useEffect10(() => {
3826
+ useEffect11(() => {
3808
3827
  if (packageReleaseId) {
3809
3828
  createOrderQuote2(packageReleaseId, {
3810
3829
  onSuccess: (data) => {
@@ -3822,7 +3841,7 @@ var InitialOrderScreen = ({
3822
3841
  );
3823
3842
  window.location.href = `${stripeCheckoutBaseUrl}?client_reference_id=${orderQuoteId2}&shipping_option=${selectedShippingCarrier}`;
3824
3843
  };
3825
- useEffect10(() => {
3844
+ useEffect11(() => {
3826
3845
  if (selectedShippingCarrier === null && orderQuote && Array.isArray(orderQuote.shipping_options) && orderQuote.shipping_options.length > 0) {
3827
3846
  const lowest = orderQuote.shipping_options.reduce(
3828
3847
  (min, curr) => curr.cost < min.cost ? curr : min,
@@ -4024,31 +4043,314 @@ var useOrderDialog = ({
4024
4043
  };
4025
4044
  };
4026
4045
 
4027
- // lib/components/FileMenuLeftHeader.tsx
4046
+ // lib/components/useBugReportDialog.tsx
4047
+ import clsx2 from "clsx";
4048
+ import { HTTPError as HTTPError2 } from "ky";
4049
+ import {
4050
+ useCallback as useCallback8,
4051
+ useEffect as useEffect12,
4052
+ useMemo as useMemo7,
4053
+ useState as useState18
4054
+ } from "react";
4028
4055
  import { Fragment as Fragment7, jsx as jsx34, jsxs as jsxs24 } from "react/jsx-runtime";
4056
+ var DYNAMIC_FILE_EXTENSIONS2 = [".tsx", ".ts", ".jsx", ".js", ".json"];
4057
+ async function getFilesFromServer() {
4058
+ const response = await fetch(`${API_BASE}/files/list`);
4059
+ const { file_list } = await response.json();
4060
+ const fileMap = /* @__PURE__ */ new Map();
4061
+ for (const file of file_list) {
4062
+ if (DYNAMIC_FILE_EXTENSIONS2.some((ext) => file.file_path.endsWith(ext))) {
4063
+ const fileResponse = await fetch(
4064
+ `${API_BASE}/files/get?file_path=${encodeURIComponent(file.file_path)}`
4065
+ );
4066
+ const fileData = await fileResponse.json();
4067
+ if (fileData.file?.text_content) {
4068
+ fileMap.set(file.file_path, fileData.file.text_content);
4069
+ }
4070
+ }
4071
+ }
4072
+ return fileMap;
4073
+ }
4074
+ var buildBugReportUrl = (bugReportId) => {
4075
+ const normalizedApiBase = API_BASE.endsWith("/") ? API_BASE : `${API_BASE}/`;
4076
+ const baseForView = API_BASE.startsWith("http://") || API_BASE.startsWith("https://") ? normalizedApiBase : `${typeof window !== "undefined" ? window.location.origin : "https://api.tscircuit.com"}/${normalizedApiBase.replace(/^\//, "")}`;
4077
+ return new URL(
4078
+ `bug_reports/view?bug_report_id=${bugReportId}`,
4079
+ baseForView
4080
+ ).toString();
4081
+ };
4082
+ var useBugReportDialog = () => {
4083
+ const [isOpen, setIsOpen] = useState18(false);
4084
+ const [isSubmitting, setIsSubmitting] = useState18(false);
4085
+ const [errorMessage, setErrorMessage] = useState18(null);
4086
+ const [userText, setUserText] = useState18("");
4087
+ const [successState, setSuccessState] = useState18(null);
4088
+ const [bugReportFileCount, setBugReportFileCount] = useState18(0);
4089
+ const isSessionLoggedIn = useMemo7(() => {
4090
+ if (hasRegistryToken()) return true;
4091
+ if (typeof document === "undefined") return false;
4092
+ return document.cookie.split(";").some((cookie) => cookie.trim().startsWith("session="));
4093
+ }, [isOpen]);
4094
+ useEffect12(() => {
4095
+ if (isOpen && !successState) {
4096
+ const globalError = typeof window !== "undefined" ? window.__TSCIRCUIT_LAST_EXECUTION_ERROR : void 0;
4097
+ if (globalError) {
4098
+ setUserText(`I'm getting this execution error:
4099
+
4100
+ ${globalError}`);
4101
+ }
4102
+ }
4103
+ }, [isOpen, successState]);
4104
+ useEffect12(() => {
4105
+ if (isOpen && !successState) {
4106
+ getFilesFromServer().then((files) => {
4107
+ setBugReportFileCount(files.size);
4108
+ }).catch((error) => {
4109
+ console.error("Failed to fetch file count", error);
4110
+ setBugReportFileCount(0);
4111
+ });
4112
+ }
4113
+ }, [isOpen, successState]);
4114
+ const openBugReportDialog = useCallback8(() => {
4115
+ setErrorMessage(null);
4116
+ setSuccessState(null);
4117
+ setUserText("");
4118
+ setIsOpen(true);
4119
+ }, []);
4120
+ const closeBugReportDialog = useCallback8(() => {
4121
+ setIsOpen(false);
4122
+ }, []);
4123
+ const handleConfirmBugReport = useCallback8(async () => {
4124
+ setIsSubmitting(true);
4125
+ setErrorMessage(null);
4126
+ const registryKy2 = getRegistryKy();
4127
+ try {
4128
+ const filesFromServer = await getFilesFromServer();
4129
+ if (filesFromServer.size === 0) {
4130
+ toast.error("No project files available to include in the bug report");
4131
+ setIsSubmitting(false);
4132
+ return;
4133
+ }
4134
+ const deleteAt = new Date(Date.now() + 24 * 60 * 60 * 1e3).toISOString();
4135
+ const createResponse = await registryKy2.post("bug_reports/create", {
4136
+ json: {
4137
+ text: userText.trim() || void 0,
4138
+ is_auto_deleted: true,
4139
+ delete_at: deleteAt
4140
+ }
4141
+ }).json();
4142
+ const bugReportId = createResponse.bug_report.bug_report_id;
4143
+ for (const [filePath, fileContents] of filesFromServer.entries()) {
4144
+ await registryKy2.post("bug_reports/upload_file", {
4145
+ json: {
4146
+ bug_report_id: bugReportId,
4147
+ file_path: filePath,
4148
+ content_text: String(fileContents ?? "")
4149
+ }
4150
+ });
4151
+ }
4152
+ const bugReportUrl = buildBugReportUrl(bugReportId);
4153
+ setSuccessState({ bugReportUrl });
4154
+ } catch (error) {
4155
+ console.error("Failed to submit bug report", error);
4156
+ if (error instanceof HTTPError2) {
4157
+ if (error.response.status === 401) {
4158
+ const message = "You must be logged in to report a bug. Please sign in and try again.";
4159
+ setErrorMessage(message);
4160
+ toast.error(message);
4161
+ } else {
4162
+ const message = `Failed to submit bug report (${error.response.status})`;
4163
+ setErrorMessage(message);
4164
+ toast.error(message);
4165
+ }
4166
+ } else if (error instanceof Error) {
4167
+ setErrorMessage(error.message);
4168
+ toast.error(error.message);
4169
+ } else {
4170
+ const message = "Failed to submit bug report";
4171
+ setErrorMessage(message);
4172
+ toast.error(message);
4173
+ }
4174
+ } finally {
4175
+ setIsSubmitting(false);
4176
+ }
4177
+ }, [userText]);
4178
+ const BugReportDialog = useCallback8(() => {
4179
+ return /* @__PURE__ */ jsx34(
4180
+ AlertDialog,
4181
+ {
4182
+ open: isOpen,
4183
+ onOpenChange: (open) => {
4184
+ if (!open) {
4185
+ if (!isSubmitting) {
4186
+ closeBugReportDialog();
4187
+ }
4188
+ } else {
4189
+ setErrorMessage(null);
4190
+ setSuccessState(null);
4191
+ setIsOpen(true);
4192
+ }
4193
+ },
4194
+ children: /* @__PURE__ */ jsxs24(AlertDialogContent, { children: [
4195
+ /* @__PURE__ */ jsxs24(AlertDialogHeader, { children: [
4196
+ /* @__PURE__ */ jsx34(AlertDialogTitle, { children: successState ? "Bug Report Created" : "Report Bug" }),
4197
+ /* @__PURE__ */ jsx34(AlertDialogDescription, { asChild: true, children: successState ? /* @__PURE__ */ jsxs24("div", { className: "rf-text-left rf-space-y-3 rf-text-sm", children: [
4198
+ /* @__PURE__ */ jsx34("p", { children: "Bug report created successfully." }),
4199
+ /* @__PURE__ */ jsx34("div", { children: /* @__PURE__ */ jsx34(
4200
+ "a",
4201
+ {
4202
+ className: "rf-text-blue-600 hover:rf-underline",
4203
+ href: successState.bugReportUrl,
4204
+ target: "_blank",
4205
+ rel: "noreferrer",
4206
+ children: "View bug report"
4207
+ }
4208
+ ) }),
4209
+ /* @__PURE__ */ jsxs24("p", { children: [
4210
+ "Please share this link privately with tscircuit staff so we can help debug. Join the",
4211
+ /* @__PURE__ */ jsx34(
4212
+ "a",
4213
+ {
4214
+ className: "rf-ml-1 rf-text-blue-600 hover:rf-underline",
4215
+ href: "https://tscircuit.com/join",
4216
+ target: "_blank",
4217
+ rel: "noreferrer",
4218
+ children: "tscircuit Discord"
4219
+ }
4220
+ ),
4221
+ "."
4222
+ ] })
4223
+ ] }) : /* @__PURE__ */ jsxs24("div", { className: "rf-text-left rf-space-y-3 rf-text-sm", children: [
4224
+ /* @__PURE__ */ jsxs24("p", { children: [
4225
+ "Reporting a bug will upload your entire project",
4226
+ bugReportFileCount > 0 ? ` (${bugReportFileCount} file${bugReportFileCount === 1 ? "" : "s"})` : "",
4227
+ " ",
4228
+ "to tscircuit support."
4229
+ ] }),
4230
+ /* @__PURE__ */ jsxs24("div", { className: "rf-space-y-2", children: [
4231
+ /* @__PURE__ */ jsx34(
4232
+ "label",
4233
+ {
4234
+ htmlFor: "bug-description",
4235
+ className: "rf-block rf-font-medium",
4236
+ children: "Description (optional)"
4237
+ }
4238
+ ),
4239
+ /* @__PURE__ */ jsx34(
4240
+ "textarea",
4241
+ {
4242
+ id: "bug-description",
4243
+ className: "rf-w-full rf-min-h-[100px] rf-px-3 rf-py-2 rf-text-sm rf-border rf-border-gray-300 rf-rounded-md focus:rf-outline-none focus:rf-ring-2 focus:rf-ring-blue-500",
4244
+ placeholder: "Describe the issue you're experiencing...",
4245
+ value: userText,
4246
+ onChange: (e) => setUserText(e.target.value),
4247
+ disabled: isSubmitting
4248
+ }
4249
+ )
4250
+ ] }),
4251
+ /* @__PURE__ */ jsxs24("p", { children: [
4252
+ "Share the generated bug report link privately with tscircuit staff so we can help debug your issue. You can also reach out on our",
4253
+ /* @__PURE__ */ jsx34(
4254
+ "a",
4255
+ {
4256
+ className: "rf-ml-1 rf-text-blue-600 hover:rf-underline",
4257
+ href: "https://tscircuit.com/join",
4258
+ target: "_blank",
4259
+ rel: "noreferrer",
4260
+ children: "Discord community"
4261
+ }
4262
+ ),
4263
+ "."
4264
+ ] }),
4265
+ !isSessionLoggedIn && /* @__PURE__ */ jsx34("p", { className: "rf-text-red-600", children: "You appear to be logged out. Please log in before reporting a bug or the upload will fail." }),
4266
+ errorMessage && /* @__PURE__ */ jsx34("p", { className: "rf-text-red-600", children: errorMessage })
4267
+ ] }) })
4268
+ ] }),
4269
+ /* @__PURE__ */ jsx34(AlertDialogFooter, { children: successState ? /* @__PURE__ */ jsx34(
4270
+ "button",
4271
+ {
4272
+ type: "button",
4273
+ className: buttonVariants(),
4274
+ onClick: () => {
4275
+ closeBugReportDialog();
4276
+ },
4277
+ children: "Close"
4278
+ }
4279
+ ) : /* @__PURE__ */ jsxs24(Fragment7, { children: [
4280
+ /* @__PURE__ */ jsx34(
4281
+ AlertDialogCancel,
4282
+ {
4283
+ disabled: isSubmitting,
4284
+ onClick: () => {
4285
+ if (!isSubmitting) {
4286
+ closeBugReportDialog();
4287
+ }
4288
+ },
4289
+ children: "Cancel"
4290
+ }
4291
+ ),
4292
+ /* @__PURE__ */ jsx34(
4293
+ "button",
4294
+ {
4295
+ type: "button",
4296
+ className: clsx2(
4297
+ buttonVariants(),
4298
+ isSubmitting && "rf-opacity-70 rf-cursor-not-allowed"
4299
+ ),
4300
+ disabled: isSubmitting,
4301
+ onClick: (event) => {
4302
+ event.preventDefault();
4303
+ void handleConfirmBugReport();
4304
+ },
4305
+ children: isSubmitting ? "Reporting..." : "Upload & Report"
4306
+ }
4307
+ )
4308
+ ] }) })
4309
+ ] })
4310
+ }
4311
+ );
4312
+ }, [
4313
+ bugReportFileCount,
4314
+ closeBugReportDialog,
4315
+ errorMessage,
4316
+ handleConfirmBugReport,
4317
+ isOpen,
4318
+ isSessionLoggedIn,
4319
+ isSubmitting,
4320
+ successState,
4321
+ userText
4322
+ ]);
4323
+ return {
4324
+ BugReportDialog,
4325
+ openBugReportDialog
4326
+ };
4327
+ };
4328
+
4329
+ // lib/components/FileMenuLeftHeader.tsx
4330
+ import { Fragment as Fragment8, jsx as jsx35, jsxs as jsxs25 } from "react/jsx-runtime";
4029
4331
  var FileMenuLeftHeader = (props) => {
4030
4332
  const lastRunEvalVersion = useRunnerStore((s) => s.lastRunEvalVersion);
4031
- const [snippetName, setSnippetName] = useState18(null);
4032
- const [hasUnsavedChanges, setHasUnsavedChanges] = useState18(false);
4033
- const [hasNeverBeenSaved, setHasNeverBeenSaved] = useState18(true);
4034
- const [isSaving, setIsSaving] = useState18(false);
4035
- const [requestToSaveSentAt, setRequestToSaveSentAt] = useState18(
4333
+ const [snippetName, setSnippetName] = useState19(null);
4334
+ const [hasUnsavedChanges, setHasUnsavedChanges] = useState19(false);
4335
+ const [hasNeverBeenSaved, setHasNeverBeenSaved] = useState19(true);
4336
+ const [isSaving, setIsSaving] = useState19(false);
4337
+ const [requestToSaveSentAt, setRequestToSaveSentAt] = useState19(
4036
4338
  null
4037
4339
  );
4038
- const [availableSnippets, setAvailableSnippets] = useState18(
4340
+ const [availableSnippets, setAvailableSnippets] = useState19(
4039
4341
  null
4040
4342
  );
4041
- const [isSelectSnippetDialogOpen, setIsSelectSnippetDialogOpen] = useState18(false);
4042
- const [notificationMessage, setNotificationMessage] = useState18(
4343
+ const [isSelectSnippetDialogOpen, setIsSelectSnippetDialogOpen] = useState19(false);
4344
+ const [notificationMessage, setNotificationMessage] = useState19(
4043
4345
  null
4044
4346
  );
4045
- const [errorMessage, setErrorMessage] = useState18(null);
4046
- const [isError, setIsError] = useState18(false);
4047
- const [isExporting, setisExporting] = useState18(false);
4347
+ const [errorMessage, setErrorMessage] = useState19(null);
4348
+ const [isError, setIsError] = useState19(false);
4349
+ const [isExporting, setisExporting] = useState19(false);
4048
4350
  const orderDialog = useOrderDialogCli();
4049
4351
  const pushEvent = useRunFrameStore((state) => state.pushEvent);
4050
4352
  const recentEvents = useRunFrameStore((state) => state.recentEvents);
4051
- const firstRenderTime = useMemo7(() => Date.now(), []);
4353
+ const firstRenderTime = useMemo8(() => Date.now(), []);
4052
4354
  useEventHandler((event) => {
4053
4355
  if (new Date(event.created_at).valueOf() < firstRenderTime + 500) return;
4054
4356
  if (event.event_type === "FILE_UPDATED") {
@@ -4073,7 +4375,7 @@ var FileMenuLeftHeader = (props) => {
4073
4375
  setisExporting(false);
4074
4376
  }
4075
4377
  });
4076
- useEffect11(() => {
4378
+ useEffect13(() => {
4077
4379
  if (!isSaving || requestToSaveSentAt === null) return;
4078
4380
  const eventsSinceRequestToSave = recentEvents.filter(
4079
4381
  (event) => new Date(event.created_at).valueOf() > requestToSaveSentAt
@@ -4116,14 +4418,15 @@ var FileMenuLeftHeader = (props) => {
4116
4418
  };
4117
4419
  const storeCircuitJson = useRunFrameStore((state) => state.circuitJson);
4118
4420
  const circuitJson = storeCircuitJson ?? props.circuitJson;
4119
- const [isImportDialogOpen, setIsImportDialogOpen] = useState18(false);
4120
- const [isAiReviewDialogOpen, setIsAiReviewDialogOpen] = useState18(false);
4121
- return /* @__PURE__ */ jsxs24(Fragment7, { children: [
4122
- /* @__PURE__ */ jsxs24(DropdownMenu, { children: [
4123
- /* @__PURE__ */ jsx34(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx34("div", { className: "rf-whitespace-nowrap rf-text-xs font-medium rf-p-2 rf-mx-1 rf-cursor-pointer rf-relative", children: "File" }) }),
4124
- /* @__PURE__ */ jsxs24(DropdownMenuContent, { className: "rf-z-[101]", children: [
4125
- !props.isWebEmbedded && /* @__PURE__ */ jsxs24(Fragment7, { children: [
4126
- /* @__PURE__ */ jsx34(
4421
+ const [isImportDialogOpen, setIsImportDialogOpen] = useState19(false);
4422
+ const [isAiReviewDialogOpen, setIsAiReviewDialogOpen] = useState19(false);
4423
+ const { BugReportDialog, openBugReportDialog } = useBugReportDialog();
4424
+ return /* @__PURE__ */ jsxs25(Fragment8, { children: [
4425
+ /* @__PURE__ */ jsxs25(DropdownMenu, { children: [
4426
+ /* @__PURE__ */ jsx35(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx35("div", { className: "rf-whitespace-nowrap rf-text-xs font-medium rf-p-2 rf-mx-1 rf-cursor-pointer rf-relative", children: "File" }) }),
4427
+ /* @__PURE__ */ jsxs25(DropdownMenuContent, { className: "rf-z-[101]", children: [
4428
+ !props.isWebEmbedded && /* @__PURE__ */ jsxs25(Fragment8, { children: [
4429
+ /* @__PURE__ */ jsx35(
4127
4430
  DropdownMenuItem,
4128
4431
  {
4129
4432
  className: "rf-text-xs",
@@ -4132,7 +4435,7 @@ var FileMenuLeftHeader = (props) => {
4132
4435
  children: isSaving ? "Saving..." : "Push"
4133
4436
  }
4134
4437
  ),
4135
- parseInt(window.location.port) > 5e3 && /* @__PURE__ */ jsx34(
4438
+ parseInt(window.location.port) > 5e3 && /* @__PURE__ */ jsx35(
4136
4439
  DropdownMenuItem,
4137
4440
  {
4138
4441
  className: "rf-text-xs",
@@ -4142,7 +4445,7 @@ var FileMenuLeftHeader = (props) => {
4142
4445
  children: "Order"
4143
4446
  }
4144
4447
  ),
4145
- /* @__PURE__ */ jsx34(
4448
+ /* @__PURE__ */ jsx35(
4146
4449
  DropdownMenuItem,
4147
4450
  {
4148
4451
  className: "rf-text-xs",
@@ -4151,7 +4454,7 @@ var FileMenuLeftHeader = (props) => {
4151
4454
  children: "Import"
4152
4455
  }
4153
4456
  ),
4154
- /* @__PURE__ */ jsx34(
4457
+ /* @__PURE__ */ jsx35(
4155
4458
  DropdownMenuItem,
4156
4459
  {
4157
4460
  className: "rf-text-xs",
@@ -4166,8 +4469,18 @@ var FileMenuLeftHeader = (props) => {
4166
4469
  }
4167
4470
  )
4168
4471
  ] }),
4169
- /* @__PURE__ */ jsxs24(DropdownMenuSub, { children: [
4170
- /* @__PURE__ */ jsx34(
4472
+ !props.isWebEmbedded && /* @__PURE__ */ jsx35(
4473
+ DropdownMenuItem,
4474
+ {
4475
+ className: "rf-text-xs",
4476
+ onSelect: () => {
4477
+ openBugReportDialog();
4478
+ },
4479
+ children: "Report Bug"
4480
+ }
4481
+ ),
4482
+ /* @__PURE__ */ jsxs25(DropdownMenuSub, { children: [
4483
+ /* @__PURE__ */ jsx35(
4171
4484
  DropdownMenuSubTrigger,
4172
4485
  {
4173
4486
  className: "rf-text-xs",
@@ -4175,7 +4488,7 @@ var FileMenuLeftHeader = (props) => {
4175
4488
  children: isExporting ? "Exporting..." : "Export"
4176
4489
  }
4177
4490
  ),
4178
- /* @__PURE__ */ jsx34(DropdownMenuPortal, { children: /* @__PURE__ */ jsx34(DropdownMenuSubContent, { children: availableExports.map((exp, i) => /* @__PURE__ */ jsx34(
4491
+ /* @__PURE__ */ jsx35(DropdownMenuPortal, { children: /* @__PURE__ */ jsx35(DropdownMenuSubContent, { children: availableExports.map((exp, i) => /* @__PURE__ */ jsx35(
4179
4492
  DropdownMenuItem,
4180
4493
  {
4181
4494
  onSelect: () => {
@@ -4190,16 +4503,16 @@ var FileMenuLeftHeader = (props) => {
4190
4503
  });
4191
4504
  },
4192
4505
  disabled: isExporting,
4193
- children: /* @__PURE__ */ jsx34("span", { className: "rf-text-xs", children: exp.name })
4506
+ children: /* @__PURE__ */ jsx35("span", { className: "rf-text-xs", children: exp.name })
4194
4507
  },
4195
4508
  i
4196
4509
  )) }) })
4197
4510
  ] }),
4198
- !props.isWebEmbedded && /* @__PURE__ */ jsxs24(DropdownMenuSub, { children: [
4199
- /* @__PURE__ */ jsx34(DropdownMenuSubTrigger, { className: "rf-text-xs", children: "Advanced" }),
4200
- /* @__PURE__ */ jsx34(DropdownMenuPortal, { children: /* @__PURE__ */ jsxs24(DropdownMenuSubContent, { children: [
4201
- /* @__PURE__ */ jsx34(DropdownMenuItem, { className: "rf-flex rf-items-center rf-gap-2", children: /* @__PURE__ */ jsxs24("div", { className: "rf-flex rf-items-center rf-gap-2", children: [
4202
- /* @__PURE__ */ jsx34(
4511
+ !props.isWebEmbedded && /* @__PURE__ */ jsxs25(DropdownMenuSub, { children: [
4512
+ /* @__PURE__ */ jsx35(DropdownMenuSubTrigger, { className: "rf-text-xs", children: "Advanced" }),
4513
+ /* @__PURE__ */ jsx35(DropdownMenuPortal, { children: /* @__PURE__ */ jsxs25(DropdownMenuSubContent, { children: [
4514
+ /* @__PURE__ */ jsx35(DropdownMenuItem, { className: "rf-flex rf-items-center rf-gap-2", children: /* @__PURE__ */ jsxs25("div", { className: "rf-flex rf-items-center rf-gap-2", children: [
4515
+ /* @__PURE__ */ jsx35(
4203
4516
  Checkbox,
4204
4517
  {
4205
4518
  id: "load-latest-eval",
@@ -4209,7 +4522,7 @@ var FileMenuLeftHeader = (props) => {
4209
4522
  }
4210
4523
  }
4211
4524
  ),
4212
- /* @__PURE__ */ jsx34(
4525
+ /* @__PURE__ */ jsx35(
4213
4526
  "label",
4214
4527
  {
4215
4528
  htmlFor: "load-latest-eval",
@@ -4218,35 +4531,35 @@ var FileMenuLeftHeader = (props) => {
4218
4531
  }
4219
4532
  )
4220
4533
  ] }) }),
4221
- lastRunEvalVersion && /* @__PURE__ */ jsx34(DropdownMenuItem, { className: "rf-flex rf-items-center rf-gap-2", children: /* @__PURE__ */ jsx34("div", { className: "rf-flex rf-items-center rf-gap-2", children: /* @__PURE__ */ jsxs24("span", { className: "rf-text-xs", children: [
4534
+ lastRunEvalVersion && /* @__PURE__ */ jsx35(DropdownMenuItem, { className: "rf-flex rf-items-center rf-gap-2", children: /* @__PURE__ */ jsx35("div", { className: "rf-flex rf-items-center rf-gap-2", children: /* @__PURE__ */ jsxs25("span", { className: "rf-text-xs", children: [
4222
4535
  "@tscircuit/eval@",
4223
4536
  lastRunEvalVersion
4224
4537
  ] }) }) }),
4225
- /* @__PURE__ */ jsx34(DropdownMenuItem, { className: "rf-flex rf-items-center rf-gap-2", children: /* @__PURE__ */ jsx34("div", { className: "rf-flex rf-items-center rf-gap-2", children: /* @__PURE__ */ jsxs24("span", { className: "rf-text-xs", children: [
4538
+ /* @__PURE__ */ jsx35(DropdownMenuItem, { className: "rf-flex rf-items-center rf-gap-2", children: /* @__PURE__ */ jsx35("div", { className: "rf-flex rf-items-center rf-gap-2", children: /* @__PURE__ */ jsxs25("span", { className: "rf-text-xs", children: [
4226
4539
  "@tscircuit/runframe@",
4227
4540
  package_default.version
4228
4541
  ] }) }) }),
4229
- /* @__PURE__ */ jsx34(
4542
+ /* @__PURE__ */ jsx35(
4230
4543
  DropdownMenuItem,
4231
4544
  {
4232
4545
  className: "rf-flex rf-items-center rf-gap-2",
4233
4546
  onClick: () => {
4234
4547
  window.open("/api/admin", "_blank");
4235
4548
  },
4236
- children: /* @__PURE__ */ jsx34("div", { className: "rf-flex rf-items-center rf-gap-2", children: /* @__PURE__ */ jsx34("span", { className: "rf-text-xs", children: "CLI Admin Panel" }) })
4549
+ children: /* @__PURE__ */ jsx35("div", { className: "rf-flex rf-items-center rf-gap-2", children: /* @__PURE__ */ jsx35("span", { className: "rf-text-xs", children: "CLI Admin Panel" }) })
4237
4550
  }
4238
4551
  )
4239
4552
  ] }) })
4240
4553
  ] })
4241
4554
  ] }),
4242
- /* @__PURE__ */ jsx34(AlertDialog, { open: isError, onOpenChange: setIsError, children: /* @__PURE__ */ jsxs24(AlertDialogContent, { children: [
4243
- /* @__PURE__ */ jsxs24(AlertDialogHeader, { children: [
4244
- /* @__PURE__ */ jsx34(AlertDialogTitle, { children: "Error Saving Snippet" }),
4245
- /* @__PURE__ */ jsx34(AlertDialogDescription, { children: errorMessage })
4555
+ /* @__PURE__ */ jsx35(AlertDialog, { open: isError, onOpenChange: setIsError, children: /* @__PURE__ */ jsxs25(AlertDialogContent, { children: [
4556
+ /* @__PURE__ */ jsxs25(AlertDialogHeader, { children: [
4557
+ /* @__PURE__ */ jsx35(AlertDialogTitle, { children: "Error Saving Snippet" }),
4558
+ /* @__PURE__ */ jsx35(AlertDialogDescription, { children: errorMessage })
4246
4559
  ] }),
4247
- /* @__PURE__ */ jsx34(AlertDialogFooter, { children: /* @__PURE__ */ jsx34(AlertDialogCancel, { onClick: () => setIsError(false), children: "Dismiss" }) })
4560
+ /* @__PURE__ */ jsx35(AlertDialogFooter, { children: /* @__PURE__ */ jsx35(AlertDialogCancel, { onClick: () => setIsError(false), children: "Dismiss" }) })
4248
4561
  ] }) }),
4249
- /* @__PURE__ */ jsx34(
4562
+ /* @__PURE__ */ jsx35(
4250
4563
  SelectSnippetDialog,
4251
4564
  {
4252
4565
  snippetNames: availableSnippets ?? [],
@@ -4265,14 +4578,15 @@ var FileMenuLeftHeader = (props) => {
4265
4578
  }
4266
4579
  )
4267
4580
  ] }),
4268
- /* @__PURE__ */ jsx34(
4581
+ /* @__PURE__ */ jsx35(BugReportDialog, {}),
4582
+ /* @__PURE__ */ jsx35(
4269
4583
  ImportComponentDialogForCli,
4270
4584
  {
4271
4585
  isOpen: isImportDialogOpen,
4272
4586
  onClose: () => setIsImportDialogOpen(false)
4273
4587
  }
4274
4588
  ),
4275
- /* @__PURE__ */ jsx34(
4589
+ /* @__PURE__ */ jsx35(
4276
4590
  AiReviewDialog,
4277
4591
  {
4278
4592
  isOpen: isAiReviewDialogOpen,
@@ -4280,7 +4594,7 @@ var FileMenuLeftHeader = (props) => {
4280
4594
  packageName: snippetName
4281
4595
  }
4282
4596
  ),
4283
- /* @__PURE__ */ jsx34(
4597
+ /* @__PURE__ */ jsx35(
4284
4598
  Toaster,
4285
4599
  {
4286
4600
  position: "top-center",
@@ -4292,7 +4606,7 @@ var FileMenuLeftHeader = (props) => {
4292
4606
  }
4293
4607
  }
4294
4608
  ),
4295
- /* @__PURE__ */ jsx34(
4609
+ /* @__PURE__ */ jsx35(
4296
4610
  orderDialog.OrderDialog,
4297
4611
  {
4298
4612
  isOpen: orderDialog.isOpen,
@@ -4305,7 +4619,7 @@ var FileMenuLeftHeader = (props) => {
4305
4619
  };
4306
4620
 
4307
4621
  // lib/components/CircuitJsonPreview/CircuitJsonPreview.tsx
4308
- import { jsx as jsx35, jsxs as jsxs25 } from "react/jsx-runtime";
4622
+ import { jsx as jsx36, jsxs as jsxs26 } from "react/jsx-runtime";
4309
4623
  var dropdownMenuItems = [
4310
4624
  "assembly",
4311
4625
  "pinout",
@@ -4364,13 +4678,13 @@ var CircuitJsonPreview = ({
4364
4678
  setSearch: setEvalSearch,
4365
4679
  selectVersion: selectEvalVersion
4366
4680
  } = useEvalVersions(allowSelectingVersion);
4367
- const circuitJsonErrors = useMemo8(() => {
4681
+ const circuitJsonErrors = useMemo9(() => {
4368
4682
  if (!circuitJson) return null;
4369
4683
  return circuitJson.filter(
4370
4684
  (e) => e && "error_type" in e || e.type.includes("error")
4371
4685
  );
4372
4686
  }, [circuitJson]);
4373
- const circuitJsonWarnings = useMemo8(() => {
4687
+ const circuitJsonWarnings = useMemo9(() => {
4374
4688
  if (!circuitJson) return null;
4375
4689
  return circuitJson.filter(
4376
4690
  (e) => e && "warning_type" in e || e.type.includes("warning")
@@ -4381,13 +4695,13 @@ var CircuitJsonPreview = ({
4381
4695
  errorStack,
4382
4696
  circuitJsonErrors
4383
4697
  });
4384
- const [activeTab, setActiveTabState] = useState19(
4698
+ const [activeTab, setActiveTabState] = useState20(
4385
4699
  defaultActiveTab ?? defaultTab ?? availableTabs?.[0] ?? "pcb"
4386
4700
  );
4387
- const [lastActiveTab, setLastActiveTab] = useState19(null);
4388
- const [isFullScreen, setIsFullScreen] = useState19(defaultToFullScreen);
4701
+ const [lastActiveTab, setLastActiveTab] = useState20(null);
4702
+ const [isFullScreen, setIsFullScreen] = useState20(defaultToFullScreen);
4389
4703
  useFullscreenBodyScroll(isFullScreen);
4390
- const setActiveTab = useCallback8(
4704
+ const setActiveTab = useCallback9(
4391
4705
  (tab) => {
4392
4706
  setActiveTabState(tab);
4393
4707
  onActiveTabChange?.(tab);
@@ -4397,7 +4711,7 @@ var CircuitJsonPreview = ({
4397
4711
  const toggleFullScreen = () => {
4398
4712
  setIsFullScreen(!isFullScreen);
4399
4713
  };
4400
- useEffect12(() => {
4714
+ useEffect14(() => {
4401
4715
  if (errorMessage) {
4402
4716
  if (activeTab !== "errors") {
4403
4717
  setLastActiveTab(activeTab);
@@ -4405,38 +4719,38 @@ var CircuitJsonPreview = ({
4405
4719
  setActiveTab("errors");
4406
4720
  }
4407
4721
  }, [errorMessage]);
4408
- useEffect12(() => {
4722
+ useEffect14(() => {
4409
4723
  if ((activeTab === "code" || activeTab === "errors") && circuitJson && !errorMessage) {
4410
4724
  setActiveTab(
4411
4725
  lastActiveTab ?? defaultActiveTab ?? defaultTab ?? availableTabs?.[0] ?? "pcb"
4412
4726
  );
4413
4727
  }
4414
4728
  }, [circuitJson]);
4415
- const setCadViewerRef = useCallback8((value) => {
4729
+ const setCadViewerRef = useCallback9((value) => {
4416
4730
  window.TSCIRCUIT_3D_OBJECT_REF = value === null ? void 0 : value;
4417
4731
  }, []);
4418
- return /* @__PURE__ */ jsx35(
4732
+ return /* @__PURE__ */ jsx36(
4419
4733
  "div",
4420
4734
  {
4421
4735
  className: cn(
4422
4736
  "flex flex-col relative rf-overflow-x-hidden rf-h-full",
4423
4737
  className
4424
4738
  ),
4425
- children: /* @__PURE__ */ jsx35(
4739
+ children: /* @__PURE__ */ jsx36(
4426
4740
  "div",
4427
4741
  {
4428
4742
  className: cn(
4429
4743
  "rf-md:sticky rf-md:top-2 rf-h-full",
4430
4744
  isFullScreen && "rf-fixed rf-top-0 rf-left-0 rf-w-full rf-h-full rf-bg-white rf-overflow-hidden"
4431
4745
  ),
4432
- children: /* @__PURE__ */ jsxs25(
4746
+ children: /* @__PURE__ */ jsxs26(
4433
4747
  Tabs,
4434
4748
  {
4435
4749
  value: activeTab,
4436
4750
  onValueChange: setActiveTab,
4437
4751
  className: "rf-flex-grow rf-flex rf-flex-col rf-h-full",
4438
4752
  children: [
4439
- /* @__PURE__ */ jsxs25(
4753
+ /* @__PURE__ */ jsxs26(
4440
4754
  "div",
4441
4755
  {
4442
4756
  className: cn(
@@ -4445,7 +4759,7 @@ var CircuitJsonPreview = ({
4445
4759
  ),
4446
4760
  children: [
4447
4761
  leftHeaderContent,
4448
- showFileMenu && !leftHeaderContent && /* @__PURE__ */ jsx35(
4762
+ showFileMenu && !leftHeaderContent && /* @__PURE__ */ jsx36(
4449
4763
  FileMenuLeftHeader,
4450
4764
  {
4451
4765
  isWebEmbedded,
@@ -4453,18 +4767,18 @@ var CircuitJsonPreview = ({
4453
4767
  projectName
4454
4768
  }
4455
4769
  ),
4456
- (leftHeaderContent || showFileMenu) && /* @__PURE__ */ jsx35("div", { className: "rf-flex-grow" }),
4457
- !leftHeaderContent && !showFileMenu && isRunningCode && /* @__PURE__ */ jsx35(Loader25, { className: "rf-w-4 rf-h-4 rf-animate-spin" }),
4458
- !leftHeaderContent && !showFileMenu && /* @__PURE__ */ jsx35("div", { className: "rf-flex-grow" }),
4459
- renderLog && renderLog.progress !== 1 && !errorMessage && /* @__PURE__ */ jsxs25("div", { className: "rf-flex rf-items-center rf-gap-2 rf-min-w-0 rf-max-w-xs", children: [
4460
- activeEffectName ? /* @__PURE__ */ jsx35(
4770
+ (leftHeaderContent || showFileMenu) && /* @__PURE__ */ jsx36("div", { className: "rf-flex-grow" }),
4771
+ !leftHeaderContent && !showFileMenu && isRunningCode && /* @__PURE__ */ jsx36(Loader25, { className: "rf-w-4 rf-h-4 rf-animate-spin" }),
4772
+ !leftHeaderContent && !showFileMenu && /* @__PURE__ */ jsx36("div", { className: "rf-flex-grow" }),
4773
+ renderLog && renderLog.progress !== 1 && !errorMessage && /* @__PURE__ */ jsxs26("div", { className: "rf-flex rf-items-center rf-gap-2 rf-min-w-0 rf-max-w-xs", children: [
4774
+ activeEffectName ? /* @__PURE__ */ jsx36(
4461
4775
  "div",
4462
4776
  {
4463
4777
  className: "rf-text-xs rf-text-gray-500 rf-truncate rf-min-w-0",
4464
4778
  title: activeEffectName,
4465
4779
  children: activeEffectName
4466
4780
  }
4467
- ) : renderLog.lastRenderEvent && /* @__PURE__ */ jsx35(
4781
+ ) : renderLog.lastRenderEvent && /* @__PURE__ */ jsx36(
4468
4782
  "div",
4469
4783
  {
4470
4784
  className: "rf-text-xs rf-text-gray-500 rf-truncate rf-min-w-0",
@@ -4472,16 +4786,16 @@ var CircuitJsonPreview = ({
4472
4786
  children: renderLog.lastRenderEvent?.phase ?? ""
4473
4787
  }
4474
4788
  ),
4475
- /* @__PURE__ */ jsx35("div", { className: "rf-w-4 rf-h-4 rf-bg-blue-500 rf-opacity-50 rf-rounded-full rf-text-white rf-flex-shrink-0", children: /* @__PURE__ */ jsx35(LoaderCircleIcon, { className: "rf-w-4 rf-h-4 rf-animate-spin" }) }),
4476
- /* @__PURE__ */ jsxs25("div", { className: "rf-text-xs rf-font-bold rf-text-gray-700 rf-tabular-nums rf-flex-shrink-0", children: [
4789
+ /* @__PURE__ */ jsx36("div", { className: "rf-w-4 rf-h-4 rf-bg-blue-500 rf-opacity-50 rf-rounded-full rf-text-white rf-flex-shrink-0", children: /* @__PURE__ */ jsx36(LoaderCircleIcon, { className: "rf-w-4 rf-h-4 rf-animate-spin" }) }),
4790
+ /* @__PURE__ */ jsxs26("div", { className: "rf-text-xs rf-font-bold rf-text-gray-700 rf-tabular-nums rf-flex-shrink-0", children: [
4477
4791
  ((renderLog.progress ?? 0) * 100).toFixed(1),
4478
4792
  "%"
4479
4793
  ] })
4480
4794
  ] }),
4481
- showRightHeaderContent && /* @__PURE__ */ jsxs25(TabsList, { children: [
4482
- showCodeTab && /* @__PURE__ */ jsx35(TabsTrigger, { value: "code", children: "Code" }),
4483
- !availableTabs || availableTabs.includes("pcb") ? /* @__PURE__ */ jsxs25(TabsTrigger, { value: "pcb", className: "rf-whitespace-nowrap", children: [
4484
- circuitJson && /* @__PURE__ */ jsx35(
4795
+ showRightHeaderContent && /* @__PURE__ */ jsxs26(TabsList, { children: [
4796
+ showCodeTab && /* @__PURE__ */ jsx36(TabsTrigger, { value: "code", children: "Code" }),
4797
+ !availableTabs || availableTabs.includes("pcb") ? /* @__PURE__ */ jsxs26(TabsTrigger, { value: "pcb", className: "rf-whitespace-nowrap", children: [
4798
+ circuitJson && /* @__PURE__ */ jsx36(
4485
4799
  "span",
4486
4800
  {
4487
4801
  className: cn(
@@ -4492,13 +4806,13 @@ var CircuitJsonPreview = ({
4492
4806
  ),
4493
4807
  "PCB"
4494
4808
  ] }) : null,
4495
- !availableTabs || availableTabs.includes("schematic") ? /* @__PURE__ */ jsxs25(
4809
+ !availableTabs || availableTabs.includes("schematic") ? /* @__PURE__ */ jsxs26(
4496
4810
  TabsTrigger,
4497
4811
  {
4498
4812
  value: "schematic",
4499
4813
  className: "rf-whitespace-nowrap",
4500
4814
  children: [
4501
- circuitJson && /* @__PURE__ */ jsx35(
4815
+ circuitJson && /* @__PURE__ */ jsx36(
4502
4816
  "span",
4503
4817
  {
4504
4818
  className: cn(
@@ -4511,8 +4825,8 @@ var CircuitJsonPreview = ({
4511
4825
  ]
4512
4826
  }
4513
4827
  ) : null,
4514
- !availableTabs || availableTabs.includes("cad") ? /* @__PURE__ */ jsxs25(TabsTrigger, { value: "cad", children: [
4515
- circuitJson && /* @__PURE__ */ jsx35(
4828
+ !availableTabs || availableTabs.includes("cad") ? /* @__PURE__ */ jsxs26(TabsTrigger, { value: "cad", children: [
4829
+ circuitJson && /* @__PURE__ */ jsx36(
4516
4830
  "span",
4517
4831
  {
4518
4832
  className: cn(
@@ -4523,34 +4837,34 @@ var CircuitJsonPreview = ({
4523
4837
  ),
4524
4838
  "3D"
4525
4839
  ] }) : null,
4526
- !["pcb", "cad", "schematic"].includes(activeTab) && /* @__PURE__ */ jsx35(TabsTrigger, { value: activeTab, children: capitalizeFirstLetters(activeTab) }),
4527
- /* @__PURE__ */ jsxs25(DropdownMenu, { children: [
4528
- /* @__PURE__ */ jsx35(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs25("div", { className: "rf-whitespace-nowrap rf-p-2 rf-mr-1 rf-cursor-pointer rf-relative", children: [
4529
- /* @__PURE__ */ jsx35(EllipsisIcon, { className: "rf-w-4 rf-h-4" }),
4530
- (circuitJsonErrors && circuitJsonErrors.length > 0 || errorMessage) && /* @__PURE__ */ jsx35("span", { className: "rf-inline-flex rf-absolute rf-top-[6px] rf-right-[4px] rf-items-center rf-justify-center rf-w-1 rf-h-1 rf-ml-2 rf-text-[8px] rf-font-bold rf-text-white rf-bg-red-500 rf-rounded-full" })
4840
+ !["pcb", "cad", "schematic"].includes(activeTab) && /* @__PURE__ */ jsx36(TabsTrigger, { value: activeTab, children: capitalizeFirstLetters(activeTab) }),
4841
+ /* @__PURE__ */ jsxs26(DropdownMenu, { children: [
4842
+ /* @__PURE__ */ jsx36(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs26("div", { className: "rf-whitespace-nowrap rf-p-2 rf-mr-1 rf-cursor-pointer rf-relative", children: [
4843
+ /* @__PURE__ */ jsx36(EllipsisIcon, { className: "rf-w-4 rf-h-4" }),
4844
+ (circuitJsonErrors && circuitJsonErrors.length > 0 || errorMessage) && /* @__PURE__ */ jsx36("span", { className: "rf-inline-flex rf-absolute rf-top-[6px] rf-right-[4px] rf-items-center rf-justify-center rf-w-1 rf-h-1 rf-ml-2 rf-text-[8px] rf-font-bold rf-text-white rf-bg-red-500 rf-rounded-full" })
4531
4845
  ] }) }),
4532
- /* @__PURE__ */ jsxs25(DropdownMenuContent, { className: "rf-*:text-xs rf-z-[101]", children: [
4846
+ /* @__PURE__ */ jsxs26(DropdownMenuContent, { className: "rf-*:text-xs rf-z-[101]", children: [
4533
4847
  dropdownMenuItems.filter(
4534
4848
  (item) => !availableTabs || availableTabs.includes(item)
4535
- ).map((item) => /* @__PURE__ */ jsxs25(
4849
+ ).map((item) => /* @__PURE__ */ jsxs26(
4536
4850
  DropdownMenuItem,
4537
4851
  {
4538
4852
  onSelect: () => setActiveTab(item),
4539
4853
  children: [
4540
- activeTab !== item && /* @__PURE__ */ jsx35(Circle2, { className: "rf-w-3 rf-h-3 rf-opacity-30" }),
4541
- activeTab === item && /* @__PURE__ */ jsx35(CheckIcon, { className: "rf-w-3 rf-h-3" }),
4542
- /* @__PURE__ */ jsx35("div", { className: "rf-pr-2", children: capitalizeFirstLetters(item) }),
4543
- item === "errors" && (circuitJsonErrors && circuitJsonErrors.length > 0 || errorMessage) && /* @__PURE__ */ jsx35("span", { className: "rf-inline-flex rf-items-center rf-justify-center rf-w-3 rf-h-3 rf-ml-2 rf-text-[8px] rf-font-bold rf-text-white rf-bg-red-500 rf-rounded-full", children: errorMessage ? 1 : circuitJsonErrors?.length })
4854
+ activeTab !== item && /* @__PURE__ */ jsx36(Circle2, { className: "rf-w-3 rf-h-3 rf-opacity-30" }),
4855
+ activeTab === item && /* @__PURE__ */ jsx36(CheckIcon, { className: "rf-w-3 rf-h-3" }),
4856
+ /* @__PURE__ */ jsx36("div", { className: "rf-pr-2", children: capitalizeFirstLetters(item) }),
4857
+ item === "errors" && (circuitJsonErrors && circuitJsonErrors.length > 0 || errorMessage) && /* @__PURE__ */ jsx36("span", { className: "rf-inline-flex rf-items-center rf-justify-center rf-w-3 rf-h-3 rf-ml-2 rf-text-[8px] rf-font-bold rf-text-white rf-bg-red-500 rf-rounded-full", children: errorMessage ? 1 : circuitJsonErrors?.length })
4544
4858
  ]
4545
4859
  },
4546
4860
  item
4547
4861
  )),
4548
- /* @__PURE__ */ jsx35(
4862
+ /* @__PURE__ */ jsx36(
4549
4863
  DropdownMenuItem,
4550
4864
  {
4551
4865
  disabled: true,
4552
4866
  className: "rf-opacity-60 rf-cursor-default rf-select-none",
4553
- children: /* @__PURE__ */ jsxs25("div", { className: "rf-pr-2 rf-text-xs rf-text-gray-500", children: [
4867
+ children: /* @__PURE__ */ jsxs26("div", { className: "rf-pr-2 rf-text-xs rf-text-gray-500", children: [
4554
4868
  "@tscircuit/runframe@",
4555
4869
  version.split(".").map(
4556
4870
  (part, i) => i === 2 ? parseInt(part) + 1 : part
@@ -4558,17 +4872,17 @@ var CircuitJsonPreview = ({
4558
4872
  ] })
4559
4873
  }
4560
4874
  ),
4561
- allowSelectingVersion ? /* @__PURE__ */ jsxs25(
4875
+ allowSelectingVersion ? /* @__PURE__ */ jsxs26(
4562
4876
  DropdownMenuSub,
4563
4877
  {
4564
4878
  onOpenChange: (open) => !open && setEvalSearch(""),
4565
4879
  children: [
4566
- /* @__PURE__ */ jsx35(DropdownMenuSubTrigger, { className: "rf-text-xs rf-opacity-60", children: /* @__PURE__ */ jsxs25("div", { className: "rf-pr-2 rf-text-xs rf-text-gray-500", children: [
4880
+ /* @__PURE__ */ jsx36(DropdownMenuSubTrigger, { className: "rf-text-xs rf-opacity-60", children: /* @__PURE__ */ jsxs26("div", { className: "rf-pr-2 rf-text-xs rf-text-gray-500", children: [
4567
4881
  "@tscircuit/eval@",
4568
4882
  lastRunEvalVersion ?? latestVersion ?? "latest"
4569
4883
  ] }) }),
4570
- /* @__PURE__ */ jsx35(DropdownMenuPortal, { children: /* @__PURE__ */ jsxs25(DropdownMenuSubContent, { className: "rf-*:text-xs rf-w-40 rf-max-h-[200px] rf-overflow-y-auto", children: [
4571
- /* @__PURE__ */ jsx35("div", { className: "rf-p-1", children: /* @__PURE__ */ jsx35(
4884
+ /* @__PURE__ */ jsx36(DropdownMenuPortal, { children: /* @__PURE__ */ jsxs26(DropdownMenuSubContent, { className: "rf-*:text-xs rf-w-40 rf-max-h-[200px] rf-overflow-y-auto", children: [
4885
+ /* @__PURE__ */ jsx36("div", { className: "rf-p-1", children: /* @__PURE__ */ jsx36(
4572
4886
  Input,
4573
4887
  {
4574
4888
  value: evalSearch,
@@ -4577,15 +4891,15 @@ var CircuitJsonPreview = ({
4577
4891
  className: "rf-h-7 rf-text-xs"
4578
4892
  }
4579
4893
  ) }),
4580
- /* @__PURE__ */ jsx35(DropdownMenuSeparator, {}),
4581
- /* @__PURE__ */ jsx35(
4894
+ /* @__PURE__ */ jsx36(DropdownMenuSeparator, {}),
4895
+ /* @__PURE__ */ jsx36(
4582
4896
  DropdownMenuItem,
4583
4897
  {
4584
4898
  onSelect: () => selectEvalVersion(null),
4585
4899
  children: latestVersion ? `${latestVersion} (latest)` : "latest"
4586
4900
  }
4587
4901
  ),
4588
- evalVersions.map((v) => /* @__PURE__ */ jsx35(
4902
+ evalVersions.map((v) => /* @__PURE__ */ jsx36(
4589
4903
  DropdownMenuItem,
4590
4904
  {
4591
4905
  onSelect: () => selectEvalVersion(v),
@@ -4596,12 +4910,12 @@ var CircuitJsonPreview = ({
4596
4910
  ] }) })
4597
4911
  ]
4598
4912
  }
4599
- ) : lastRunEvalVersion && /* @__PURE__ */ jsx35(
4913
+ ) : lastRunEvalVersion && /* @__PURE__ */ jsx36(
4600
4914
  DropdownMenuItem,
4601
4915
  {
4602
4916
  disabled: true,
4603
4917
  className: "rf-opacity-60 rf-cursor-default rf-select-none",
4604
- children: /* @__PURE__ */ jsxs25("div", { className: "rf-pr-2 rf-text-xs rf-text-gray-500", children: [
4918
+ children: /* @__PURE__ */ jsxs26("div", { className: "rf-pr-2 rf-text-xs rf-text-gray-500", children: [
4605
4919
  "@tscircuit/eval@",
4606
4920
  lastRunEvalVersion
4607
4921
  ] })
@@ -4610,33 +4924,33 @@ var CircuitJsonPreview = ({
4610
4924
  ] })
4611
4925
  ] })
4612
4926
  ] }),
4613
- showToggleFullScreen && /* @__PURE__ */ jsx35(Button, { onClick: toggleFullScreen, variant: "ghost", children: isFullScreen ? /* @__PURE__ */ jsx35(MinimizeIcon, { size: 16 }) : /* @__PURE__ */ jsx35(FullscreenIcon, { size: 16 }) })
4927
+ showToggleFullScreen && /* @__PURE__ */ jsx36(Button, { onClick: toggleFullScreen, variant: "ghost", children: isFullScreen ? /* @__PURE__ */ jsx36(MinimizeIcon, { size: 16 }) : /* @__PURE__ */ jsx36(FullscreenIcon, { size: 16 }) })
4614
4928
  ]
4615
4929
  }
4616
4930
  ),
4617
- showCodeTab && /* @__PURE__ */ jsx35(
4931
+ showCodeTab && /* @__PURE__ */ jsx36(
4618
4932
  TabsContent,
4619
4933
  {
4620
4934
  value: "code",
4621
4935
  className: "rf-flex-grow rf-overflow-hidden",
4622
- children: /* @__PURE__ */ jsx35("div", { className: "rf-h-full", children: codeTabContent })
4936
+ children: /* @__PURE__ */ jsx36("div", { className: "rf-h-full", children: codeTabContent })
4623
4937
  }
4624
4938
  ),
4625
- (!availableTabs || availableTabs.includes("pcb")) && /* @__PURE__ */ jsx35(TabsContent, { value: "pcb", children: /* @__PURE__ */ jsx35(
4939
+ (!availableTabs || availableTabs.includes("pcb")) && /* @__PURE__ */ jsx36(TabsContent, { value: "pcb", children: /* @__PURE__ */ jsx36(
4626
4940
  "div",
4627
4941
  {
4628
4942
  className: cn(
4629
4943
  "rf-overflow-hidden",
4630
4944
  isFullScreen ? "rf-h-[calc(100vh-52px)]" : "rf-h-full"
4631
4945
  ),
4632
- children: /* @__PURE__ */ jsx35(
4946
+ children: /* @__PURE__ */ jsx36(
4633
4947
  ErrorBoundary,
4634
4948
  {
4635
- fallbackRender: ({ error }) => /* @__PURE__ */ jsx35("div", { className: "rf-mt-4 rf-bg-red-50 rf-rounded-md rf-border rf-border-red-200", children: /* @__PURE__ */ jsxs25("div", { className: "rf-p-4", children: [
4636
- /* @__PURE__ */ jsx35("h3", { className: "rf-text-lg rf-font-semibold rf-text-red-800 rf-mb-3", children: "Error loading PCB viewer" }),
4637
- /* @__PURE__ */ jsx35("p", { className: "rf-text-xs rf-font-mono rf-whitespace-pre-wrap rf-text-red-600 rf-mt-2", children: error?.message || "An unknown error occurred" })
4949
+ fallbackRender: ({ error }) => /* @__PURE__ */ jsx36("div", { className: "rf-mt-4 rf-bg-red-50 rf-rounded-md rf-border rf-border-red-200", children: /* @__PURE__ */ jsxs26("div", { className: "rf-p-4", children: [
4950
+ /* @__PURE__ */ jsx36("h3", { className: "rf-text-lg rf-font-semibold rf-text-red-800 rf-mb-3", children: "Error loading PCB viewer" }),
4951
+ /* @__PURE__ */ jsx36("p", { className: "rf-text-xs rf-font-mono rf-whitespace-pre-wrap rf-text-red-600 rf-mt-2", children: error?.message || "An unknown error occurred" })
4638
4952
  ] }) }),
4639
- children: circuitJson ? /* @__PURE__ */ jsx35(
4953
+ children: circuitJson ? /* @__PURE__ */ jsx36(
4640
4954
  PcbViewerWithContainerHeight,
4641
4955
  {
4642
4956
  focusOnHover: false,
@@ -4654,19 +4968,19 @@ var CircuitJsonPreview = ({
4654
4968
  }
4655
4969
  }
4656
4970
  }
4657
- ) : /* @__PURE__ */ jsx35(PreviewEmptyState_default, { onRunClicked })
4971
+ ) : /* @__PURE__ */ jsx36(PreviewEmptyState_default, { onRunClicked })
4658
4972
  }
4659
4973
  )
4660
4974
  }
4661
4975
  ) }),
4662
- (!availableTabs || availableTabs.includes("assembly")) && /* @__PURE__ */ jsx35(TabsContent, { value: "assembly", children: /* @__PURE__ */ jsx35(
4976
+ (!availableTabs || availableTabs.includes("assembly")) && /* @__PURE__ */ jsx36(TabsContent, { value: "assembly", children: /* @__PURE__ */ jsx36(
4663
4977
  "div",
4664
4978
  {
4665
4979
  className: cn(
4666
4980
  "rf-overflow-auto",
4667
4981
  isFullScreen ? "rf-h-screen" : "rf-h-full rf-min-h-[620px]"
4668
4982
  ),
4669
- children: /* @__PURE__ */ jsx35(ErrorBoundary, { fallback: /* @__PURE__ */ jsx35("div", { children: "Error loading Assembly" }), children: circuitJson ? /* @__PURE__ */ jsx35(
4983
+ children: /* @__PURE__ */ jsx36(ErrorBoundary, { fallback: /* @__PURE__ */ jsx36("div", { children: "Error loading Assembly" }), children: circuitJson ? /* @__PURE__ */ jsx36(
4670
4984
  AssemblyViewer,
4671
4985
  {
4672
4986
  circuitJson,
@@ -4676,21 +4990,21 @@ var CircuitJsonPreview = ({
4676
4990
  editingEnabled: true,
4677
4991
  debugGrid: true
4678
4992
  }
4679
- ) : /* @__PURE__ */ jsx35(PreviewEmptyState_default, { onRunClicked }) })
4993
+ ) : /* @__PURE__ */ jsx36(PreviewEmptyState_default, { onRunClicked }) })
4680
4994
  }
4681
4995
  ) }),
4682
- (!availableTabs || availableTabs.includes("pinout")) && /* @__PURE__ */ jsx35(TabsContent, { value: "pinout", children: /* @__PURE__ */ jsx35(
4996
+ (!availableTabs || availableTabs.includes("pinout")) && /* @__PURE__ */ jsx36(TabsContent, { value: "pinout", children: /* @__PURE__ */ jsx36(
4683
4997
  "div",
4684
4998
  {
4685
4999
  className: cn(
4686
5000
  "rf-overflow-auto",
4687
5001
  isFullScreen ? "rf-h-screen" : "rf-h-full rf-min-h-[620px]"
4688
5002
  ),
4689
- children: /* @__PURE__ */ jsx35(
5003
+ children: /* @__PURE__ */ jsx36(
4690
5004
  ErrorBoundary,
4691
5005
  {
4692
- fallback: /* @__PURE__ */ jsx35("div", { children: "Error loading Pinout Viewer" }),
4693
- children: circuitJson ? /* @__PURE__ */ jsx35(
5006
+ fallback: /* @__PURE__ */ jsx36("div", { children: "Error loading Pinout Viewer" }),
5007
+ children: circuitJson ? /* @__PURE__ */ jsx36(
4694
5008
  PinoutViewer,
4695
5009
  {
4696
5010
  circuitJson,
@@ -4698,26 +5012,26 @@ var CircuitJsonPreview = ({
4698
5012
  height: "100%"
4699
5013
  }
4700
5014
  }
4701
- ) : /* @__PURE__ */ jsx35(PreviewEmptyState_default, { onRunClicked })
5015
+ ) : /* @__PURE__ */ jsx36(PreviewEmptyState_default, { onRunClicked })
4702
5016
  }
4703
5017
  )
4704
5018
  }
4705
5019
  ) }),
4706
- (!availableTabs || availableTabs.includes("schematic")) && /* @__PURE__ */ jsx35(TabsContent, { value: "schematic", children: /* @__PURE__ */ jsx35(
5020
+ (!availableTabs || availableTabs.includes("schematic")) && /* @__PURE__ */ jsx36(TabsContent, { value: "schematic", children: /* @__PURE__ */ jsx36(
4707
5021
  "div",
4708
5022
  {
4709
5023
  className: cn(
4710
5024
  "rf-overflow-auto rf-bg-white",
4711
5025
  isFullScreen ? "rf-h-screen" : "rf-h-full rf-min-h-[620px]"
4712
5026
  ),
4713
- children: /* @__PURE__ */ jsx35(
5027
+ children: /* @__PURE__ */ jsx36(
4714
5028
  ErrorBoundary,
4715
5029
  {
4716
- fallbackRender: ({ error }) => /* @__PURE__ */ jsx35("div", { className: "rf-mt-4 rf-bg-red-50 rf-rounded-md rf-border rf-border-red-200", children: /* @__PURE__ */ jsxs25("div", { className: "rf-p-4", children: [
4717
- /* @__PURE__ */ jsx35("h3", { className: "rf-text-lg rf-font-semibold rf-text-red-800 rf-mb-3", children: "Error loading Schematic" }),
4718
- /* @__PURE__ */ jsx35("p", { className: "rf-text-xs rf-font-mono rf-whitespace-pre-wrap rf-text-red-600 rf-mt-2", children: error?.message || "An unknown error occurred" })
5030
+ fallbackRender: ({ error }) => /* @__PURE__ */ jsx36("div", { className: "rf-mt-4 rf-bg-red-50 rf-rounded-md rf-border rf-border-red-200", children: /* @__PURE__ */ jsxs26("div", { className: "rf-p-4", children: [
5031
+ /* @__PURE__ */ jsx36("h3", { className: "rf-text-lg rf-font-semibold rf-text-red-800 rf-mb-3", children: "Error loading Schematic" }),
5032
+ /* @__PURE__ */ jsx36("p", { className: "rf-text-xs rf-font-mono rf-whitespace-pre-wrap rf-text-red-600 rf-mt-2", children: error?.message || "An unknown error occurred" })
4719
5033
  ] }) }),
4720
- children: circuitJson ? /* @__PURE__ */ jsx35(
5034
+ children: circuitJson ? /* @__PURE__ */ jsx36(
4721
5035
  SchematicViewer,
4722
5036
  {
4723
5037
  spiceSimulationEnabled: true,
@@ -4731,65 +5045,65 @@ var CircuitJsonPreview = ({
4731
5045
  },
4732
5046
  debugGrid: showSchematicDebugGrid
4733
5047
  }
4734
- ) : /* @__PURE__ */ jsx35(PreviewEmptyState_default, { onRunClicked })
5048
+ ) : /* @__PURE__ */ jsx36(PreviewEmptyState_default, { onRunClicked })
4735
5049
  }
4736
5050
  )
4737
5051
  }
4738
5052
  ) }),
4739
- (!availableTabs || availableTabs.includes("cad")) && /* @__PURE__ */ jsx35(TabsContent, { value: "cad", children: /* @__PURE__ */ jsx35(
5053
+ (!availableTabs || availableTabs.includes("cad")) && /* @__PURE__ */ jsx36(TabsContent, { value: "cad", children: /* @__PURE__ */ jsx36(
4740
5054
  "div",
4741
5055
  {
4742
5056
  className: cn(
4743
5057
  "rf-overflow-auto",
4744
5058
  isFullScreen ? "rf-h-screen" : "rf-h-full rf-min-h-[620px]"
4745
5059
  ),
4746
- children: /* @__PURE__ */ jsx35(ErrorBoundary, { FallbackComponent: ErrorFallback, children: circuitJson ? /* @__PURE__ */ jsx35(
5060
+ children: /* @__PURE__ */ jsx36(ErrorBoundary, { FallbackComponent: ErrorFallback, children: circuitJson ? /* @__PURE__ */ jsx36(
4747
5061
  CadViewer,
4748
5062
  {
4749
5063
  ref: setCadViewerRef,
4750
5064
  circuitJson,
4751
5065
  autoRotateDisabled: autoRotate3dViewerDisabled
4752
5066
  }
4753
- ) : /* @__PURE__ */ jsx35(PreviewEmptyState_default, { onRunClicked }) })
5067
+ ) : /* @__PURE__ */ jsx36(PreviewEmptyState_default, { onRunClicked }) })
4754
5068
  }
4755
5069
  ) }),
4756
- (!availableTabs || availableTabs.includes("bom")) && /* @__PURE__ */ jsx35(TabsContent, { value: "bom", children: /* @__PURE__ */ jsx35(
5070
+ (!availableTabs || availableTabs.includes("bom")) && /* @__PURE__ */ jsx36(TabsContent, { value: "bom", children: /* @__PURE__ */ jsx36(
4757
5071
  "div",
4758
5072
  {
4759
5073
  className: cn(
4760
5074
  "rf-overflow-auto",
4761
5075
  isFullScreen ? "rf-h-screen" : "rf-h-full rf-min-h-[620px]"
4762
5076
  ),
4763
- children: /* @__PURE__ */ jsx35(
5077
+ children: /* @__PURE__ */ jsx36(
4764
5078
  ErrorBoundary,
4765
5079
  {
4766
- fallbackRender: ({ error }) => /* @__PURE__ */ jsx35("div", { className: "rf-mt-4 rf-bg-red-50 rf-rounded-md rf-border rf-border-red-200", children: /* @__PURE__ */ jsxs25("div", { className: "rf-p-4", children: [
4767
- /* @__PURE__ */ jsx35("h3", { className: "rf-text-lg rf-font-semibold rf-text-red-800 rf-mb-3", children: "Error loading Bill of Materials" }),
4768
- /* @__PURE__ */ jsx35("p", { className: "rf-text-xs rf-font-mono rf-whitespace-pre-wrap rf-text-red-600 rf-mt-2", children: error?.message || "An unknown error occurred" })
5080
+ fallbackRender: ({ error }) => /* @__PURE__ */ jsx36("div", { className: "rf-mt-4 rf-bg-red-50 rf-rounded-md rf-border rf-border-red-200", children: /* @__PURE__ */ jsxs26("div", { className: "rf-p-4", children: [
5081
+ /* @__PURE__ */ jsx36("h3", { className: "rf-text-lg rf-font-semibold rf-text-red-800 rf-mb-3", children: "Error loading Bill of Materials" }),
5082
+ /* @__PURE__ */ jsx36("p", { className: "rf-text-xs rf-font-mono rf-whitespace-pre-wrap rf-text-red-600 rf-mt-2", children: error?.message || "An unknown error occurred" })
4769
5083
  ] }) }),
4770
- children: circuitJson ? /* @__PURE__ */ jsx35(BomTable, { circuitJson }) : /* @__PURE__ */ jsx35(PreviewEmptyState_default, { onRunClicked })
5084
+ children: circuitJson ? /* @__PURE__ */ jsx36(BomTable, { circuitJson }) : /* @__PURE__ */ jsx36(PreviewEmptyState_default, { onRunClicked })
4771
5085
  }
4772
5086
  )
4773
5087
  }
4774
5088
  ) }),
4775
- (!availableTabs || availableTabs.includes("circuit_json")) && /* @__PURE__ */ jsx35(TabsContent, { value: "circuit_json", children: /* @__PURE__ */ jsx35(
5089
+ (!availableTabs || availableTabs.includes("circuit_json")) && /* @__PURE__ */ jsx36(TabsContent, { value: "circuit_json", children: /* @__PURE__ */ jsx36(
4776
5090
  "div",
4777
5091
  {
4778
5092
  className: cn(
4779
5093
  "rf-overflow-auto",
4780
5094
  isFullScreen ? "rf-h-screen" : "rf-h-full rf-min-h-[620px]"
4781
5095
  ),
4782
- children: /* @__PURE__ */ jsx35(ErrorBoundary, { fallback: /* @__PURE__ */ jsx35("div", { children: "Error loading JSON viewer" }), children: circuitJson ? /* @__PURE__ */ jsx35(CircuitJsonTableViewer, { elements: circuitJson }) : /* @__PURE__ */ jsx35(PreviewEmptyState_default, { onRunClicked }) })
5096
+ children: /* @__PURE__ */ jsx36(ErrorBoundary, { fallback: /* @__PURE__ */ jsx36("div", { children: "Error loading JSON viewer" }), children: circuitJson ? /* @__PURE__ */ jsx36(CircuitJsonTableViewer, { elements: circuitJson }) : /* @__PURE__ */ jsx36(PreviewEmptyState_default, { onRunClicked }) })
4783
5097
  }
4784
5098
  ) }),
4785
- (!availableTabs || availableTabs.includes("errors")) && /* @__PURE__ */ jsx35(TabsContent, { value: "errors", children: /* @__PURE__ */ jsx35(
5099
+ (!availableTabs || availableTabs.includes("errors")) && /* @__PURE__ */ jsx36(TabsContent, { value: "errors", children: /* @__PURE__ */ jsx36(
4786
5100
  "div",
4787
5101
  {
4788
5102
  className: cn(
4789
5103
  "rf-overflow-auto",
4790
5104
  isFullScreen ? "rf-h-screen" : "rf-h-full rf-min-h-[620px]"
4791
5105
  ),
4792
- children: errorMessage || circuitJsonErrors && circuitJsonErrors.length > 0 || circuitJson ? /* @__PURE__ */ jsx35(
5106
+ children: errorMessage || circuitJsonErrors && circuitJsonErrors.length > 0 || circuitJson ? /* @__PURE__ */ jsx36(
4793
5107
  ErrorTabContent,
4794
5108
  {
4795
5109
  code,
@@ -4803,10 +5117,10 @@ var CircuitJsonPreview = ({
4803
5117
  autoroutingLog,
4804
5118
  onReportAutoroutingLog
4805
5119
  }
4806
- ) : /* @__PURE__ */ jsx35(PreviewEmptyState_default, { onRunClicked })
5120
+ ) : /* @__PURE__ */ jsx36(PreviewEmptyState_default, { onRunClicked })
4807
5121
  }
4808
5122
  ) }),
4809
- showRenderLogTab && (!availableTabs || availableTabs.includes("render_log")) && /* @__PURE__ */ jsx35(TabsContent, { value: "render_log", children: /* @__PURE__ */ jsx35(
5123
+ showRenderLogTab && (!availableTabs || availableTabs.includes("render_log")) && /* @__PURE__ */ jsx36(TabsContent, { value: "render_log", children: /* @__PURE__ */ jsx36(
4810
5124
  RenderLogViewer,
4811
5125
  {
4812
5126
  renderLog,