@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.
- package/dist/{chunk-LA5Z7XHL.js → chunk-L5MGTEEA.js} +486 -172
- package/dist/preview.js +1 -1
- package/dist/runner.js +59 -30
- package/dist/standalone-preview.min.js +1006 -1017
- package/dist/standalone.min.js +1024 -1035
- package/package.json +11 -5
|
@@ -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
|
|
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
|
-
|
|
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
|
|
1171
|
+
import { useEffect as useEffect3 } from "react";
|
|
1159
1172
|
var useFullscreenBodyScroll = (isFullScreen) => {
|
|
1160
|
-
|
|
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
|
|
1423
|
+
import { useEffect as useEffect4 } from "react";
|
|
1411
1424
|
var useErrorTelemetry = ({
|
|
1412
1425
|
errorMessage,
|
|
1413
1426
|
errorStack,
|
|
1414
1427
|
circuitJsonErrors
|
|
1415
1428
|
}) => {
|
|
1416
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
1495
|
-
"@tscircuit/fake-snippets": "^0.0.
|
|
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.
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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/
|
|
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] =
|
|
4032
|
-
const [hasUnsavedChanges, setHasUnsavedChanges] =
|
|
4033
|
-
const [hasNeverBeenSaved, setHasNeverBeenSaved] =
|
|
4034
|
-
const [isSaving, setIsSaving] =
|
|
4035
|
-
const [requestToSaveSentAt, setRequestToSaveSentAt] =
|
|
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] =
|
|
4340
|
+
const [availableSnippets, setAvailableSnippets] = useState19(
|
|
4039
4341
|
null
|
|
4040
4342
|
);
|
|
4041
|
-
const [isSelectSnippetDialogOpen, setIsSelectSnippetDialogOpen] =
|
|
4042
|
-
const [notificationMessage, setNotificationMessage] =
|
|
4343
|
+
const [isSelectSnippetDialogOpen, setIsSelectSnippetDialogOpen] = useState19(false);
|
|
4344
|
+
const [notificationMessage, setNotificationMessage] = useState19(
|
|
4043
4345
|
null
|
|
4044
4346
|
);
|
|
4045
|
-
const [errorMessage, setErrorMessage] =
|
|
4046
|
-
const [isError, setIsError] =
|
|
4047
|
-
const [isExporting, setisExporting] =
|
|
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 =
|
|
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
|
-
|
|
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] =
|
|
4120
|
-
const [isAiReviewDialogOpen, setIsAiReviewDialogOpen] =
|
|
4121
|
-
|
|
4122
|
-
|
|
4123
|
-
|
|
4124
|
-
/* @__PURE__ */
|
|
4125
|
-
|
|
4126
|
-
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
4170
|
-
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
4199
|
-
/* @__PURE__ */
|
|
4200
|
-
/* @__PURE__ */
|
|
4201
|
-
/* @__PURE__ */
|
|
4202
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
4243
|
-
/* @__PURE__ */
|
|
4244
|
-
/* @__PURE__ */
|
|
4245
|
-
/* @__PURE__ */
|
|
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__ */
|
|
4560
|
+
/* @__PURE__ */ jsx35(AlertDialogFooter, { children: /* @__PURE__ */ jsx35(AlertDialogCancel, { onClick: () => setIsError(false), children: "Dismiss" }) })
|
|
4248
4561
|
] }) }),
|
|
4249
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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 =
|
|
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 =
|
|
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] =
|
|
4698
|
+
const [activeTab, setActiveTabState] = useState20(
|
|
4385
4699
|
defaultActiveTab ?? defaultTab ?? availableTabs?.[0] ?? "pcb"
|
|
4386
4700
|
);
|
|
4387
|
-
const [lastActiveTab, setLastActiveTab] =
|
|
4388
|
-
const [isFullScreen, setIsFullScreen] =
|
|
4701
|
+
const [lastActiveTab, setLastActiveTab] = useState20(null);
|
|
4702
|
+
const [isFullScreen, setIsFullScreen] = useState20(defaultToFullScreen);
|
|
4389
4703
|
useFullscreenBodyScroll(isFullScreen);
|
|
4390
|
-
const setActiveTab =
|
|
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
|
-
|
|
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
|
-
|
|
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 =
|
|
4729
|
+
const setCadViewerRef = useCallback9((value) => {
|
|
4416
4730
|
window.TSCIRCUIT_3D_OBJECT_REF = value === null ? void 0 : value;
|
|
4417
4731
|
}, []);
|
|
4418
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
4457
|
-
!leftHeaderContent && !showFileMenu && isRunningCode && /* @__PURE__ */
|
|
4458
|
-
!leftHeaderContent && !showFileMenu && /* @__PURE__ */
|
|
4459
|
-
renderLog && renderLog.progress !== 1 && !errorMessage && /* @__PURE__ */
|
|
4460
|
-
activeEffectName ? /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
4476
|
-
/* @__PURE__ */
|
|
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__ */
|
|
4482
|
-
showCodeTab && /* @__PURE__ */
|
|
4483
|
-
!availableTabs || availableTabs.includes("pcb") ? /* @__PURE__ */
|
|
4484
|
-
circuitJson && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
4515
|
-
circuitJson && /* @__PURE__ */
|
|
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__ */
|
|
4527
|
-
/* @__PURE__ */
|
|
4528
|
-
/* @__PURE__ */
|
|
4529
|
-
/* @__PURE__ */
|
|
4530
|
-
(circuitJsonErrors && circuitJsonErrors.length > 0 || errorMessage) && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
4849
|
+
).map((item) => /* @__PURE__ */ jsxs26(
|
|
4536
4850
|
DropdownMenuItem,
|
|
4537
4851
|
{
|
|
4538
4852
|
onSelect: () => setActiveTab(item),
|
|
4539
4853
|
children: [
|
|
4540
|
-
activeTab !== item && /* @__PURE__ */
|
|
4541
|
-
activeTab === item && /* @__PURE__ */
|
|
4542
|
-
/* @__PURE__ */
|
|
4543
|
-
item === "errors" && (circuitJsonErrors && circuitJsonErrors.length > 0 || errorMessage) && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
4875
|
+
allowSelectingVersion ? /* @__PURE__ */ jsxs26(
|
|
4562
4876
|
DropdownMenuSub,
|
|
4563
4877
|
{
|
|
4564
4878
|
onOpenChange: (open) => !open && setEvalSearch(""),
|
|
4565
4879
|
children: [
|
|
4566
|
-
/* @__PURE__ */
|
|
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__ */
|
|
4571
|
-
/* @__PURE__ */
|
|
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__ */
|
|
4581
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
4936
|
+
children: /* @__PURE__ */ jsx36("div", { className: "rf-h-full", children: codeTabContent })
|
|
4623
4937
|
}
|
|
4624
4938
|
),
|
|
4625
|
-
(!availableTabs || availableTabs.includes("pcb")) && /* @__PURE__ */
|
|
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__ */
|
|
4946
|
+
children: /* @__PURE__ */ jsx36(
|
|
4633
4947
|
ErrorBoundary,
|
|
4634
4948
|
{
|
|
4635
|
-
fallbackRender: ({ error }) => /* @__PURE__ */
|
|
4636
|
-
/* @__PURE__ */
|
|
4637
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
4971
|
+
) : /* @__PURE__ */ jsx36(PreviewEmptyState_default, { onRunClicked })
|
|
4658
4972
|
}
|
|
4659
4973
|
)
|
|
4660
4974
|
}
|
|
4661
4975
|
) }),
|
|
4662
|
-
(!availableTabs || availableTabs.includes("assembly")) && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
4993
|
+
) : /* @__PURE__ */ jsx36(PreviewEmptyState_default, { onRunClicked }) })
|
|
4680
4994
|
}
|
|
4681
4995
|
) }),
|
|
4682
|
-
(!availableTabs || availableTabs.includes("pinout")) && /* @__PURE__ */
|
|
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__ */
|
|
5003
|
+
children: /* @__PURE__ */ jsx36(
|
|
4690
5004
|
ErrorBoundary,
|
|
4691
5005
|
{
|
|
4692
|
-
fallback: /* @__PURE__ */
|
|
4693
|
-
children: circuitJson ? /* @__PURE__ */
|
|
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__ */
|
|
5015
|
+
) : /* @__PURE__ */ jsx36(PreviewEmptyState_default, { onRunClicked })
|
|
4702
5016
|
}
|
|
4703
5017
|
)
|
|
4704
5018
|
}
|
|
4705
5019
|
) }),
|
|
4706
|
-
(!availableTabs || availableTabs.includes("schematic")) && /* @__PURE__ */
|
|
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__ */
|
|
5027
|
+
children: /* @__PURE__ */ jsx36(
|
|
4714
5028
|
ErrorBoundary,
|
|
4715
5029
|
{
|
|
4716
|
-
fallbackRender: ({ error }) => /* @__PURE__ */
|
|
4717
|
-
/* @__PURE__ */
|
|
4718
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
5048
|
+
) : /* @__PURE__ */ jsx36(PreviewEmptyState_default, { onRunClicked })
|
|
4735
5049
|
}
|
|
4736
5050
|
)
|
|
4737
5051
|
}
|
|
4738
5052
|
) }),
|
|
4739
|
-
(!availableTabs || availableTabs.includes("cad")) && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
5067
|
+
) : /* @__PURE__ */ jsx36(PreviewEmptyState_default, { onRunClicked }) })
|
|
4754
5068
|
}
|
|
4755
5069
|
) }),
|
|
4756
|
-
(!availableTabs || availableTabs.includes("bom")) && /* @__PURE__ */
|
|
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__ */
|
|
5077
|
+
children: /* @__PURE__ */ jsx36(
|
|
4764
5078
|
ErrorBoundary,
|
|
4765
5079
|
{
|
|
4766
|
-
fallbackRender: ({ error }) => /* @__PURE__ */
|
|
4767
|
-
/* @__PURE__ */
|
|
4768
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
5120
|
+
) : /* @__PURE__ */ jsx36(PreviewEmptyState_default, { onRunClicked })
|
|
4807
5121
|
}
|
|
4808
5122
|
) }),
|
|
4809
|
-
showRenderLogTab && (!availableTabs || availableTabs.includes("render_log")) && /* @__PURE__ */
|
|
5123
|
+
showRenderLogTab && (!availableTabs || availableTabs.includes("render_log")) && /* @__PURE__ */ jsx36(TabsContent, { value: "render_log", children: /* @__PURE__ */ jsx36(
|
|
4810
5124
|
RenderLogViewer,
|
|
4811
5125
|
{
|
|
4812
5126
|
renderLog,
|