@tscircuit/runframe 0.0.1136 → 0.0.1138
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-637ZREBK.js → chunk-RY7SHEFC.js} +483 -172
- package/dist/preview.js +1 -1
- package/dist/runner.js +1 -1
- package/dist/standalone-preview.min.js +1006 -1017
- package/dist/standalone.min.js +1031 -1042
- package/package.json +8 -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-\\[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-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.1137";
|
|
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",
|
|
@@ -1561,10 +1577,10 @@ var package_default = {
|
|
|
1561
1577
|
};
|
|
1562
1578
|
|
|
1563
1579
|
// lib/hooks/use-eval-versions.ts
|
|
1564
|
-
import { useEffect as
|
|
1580
|
+
import { useEffect as useEffect6, useMemo as useMemo2, useState as useState6 } from "react";
|
|
1565
1581
|
|
|
1566
1582
|
// lib/hooks/use-local-storage-state.ts
|
|
1567
|
-
import { useState as useState5, useEffect as
|
|
1583
|
+
import { useState as useState5, useEffect as useEffect5 } from "react";
|
|
1568
1584
|
function useLocalStorageState(key, initialValue) {
|
|
1569
1585
|
const [state, setState] = useState5(() => {
|
|
1570
1586
|
try {
|
|
@@ -1575,7 +1591,7 @@ function useLocalStorageState(key, initialValue) {
|
|
|
1575
1591
|
return initialValue;
|
|
1576
1592
|
}
|
|
1577
1593
|
});
|
|
1578
|
-
|
|
1594
|
+
useEffect5(() => {
|
|
1579
1595
|
try {
|
|
1580
1596
|
window.localStorage.setItem(key, JSON.stringify(state));
|
|
1581
1597
|
} catch (error) {
|
|
@@ -1611,7 +1627,7 @@ var useEvalVersions = (allowSelecting) => {
|
|
|
1611
1627
|
);
|
|
1612
1628
|
const setLastRunEvalVersion = useRunnerStore((s) => s.setLastRunEvalVersion);
|
|
1613
1629
|
const lastRunEvalVersion = useRunnerStore((s) => s.lastRunEvalVersion);
|
|
1614
|
-
|
|
1630
|
+
useEffect6(() => {
|
|
1615
1631
|
if (!allowSelecting) return;
|
|
1616
1632
|
fetch("https://data.jsdelivr.com/v1/package/npm/@tscircuit/eval").then((res) => res.json()).then((data) => {
|
|
1617
1633
|
if (Array.isArray(data?.versions)) {
|
|
@@ -1625,7 +1641,7 @@ var useEvalVersions = (allowSelecting) => {
|
|
|
1625
1641
|
}).catch(() => {
|
|
1626
1642
|
});
|
|
1627
1643
|
}, [allowSelecting]);
|
|
1628
|
-
|
|
1644
|
+
useEffect6(() => {
|
|
1629
1645
|
if (!allowSelecting) return;
|
|
1630
1646
|
if (selected) {
|
|
1631
1647
|
window.TSCIRCUIT_LATEST_EVAL_VERSION = selected;
|
|
@@ -1654,7 +1670,7 @@ var useEvalVersions = (allowSelecting) => {
|
|
|
1654
1670
|
};
|
|
1655
1671
|
|
|
1656
1672
|
// lib/components/FileMenuLeftHeader.tsx
|
|
1657
|
-
import { useEffect as
|
|
1673
|
+
import { useEffect as useEffect13, useMemo as useMemo8, useState as useState19 } from "react";
|
|
1658
1674
|
|
|
1659
1675
|
// lib/components/RunFrameWithApi/store.ts
|
|
1660
1676
|
import { applyEditEventsToManualEditsFile } from "@tscircuit/core";
|
|
@@ -1925,11 +1941,11 @@ var SelectSnippetDialog = ({
|
|
|
1925
1941
|
};
|
|
1926
1942
|
|
|
1927
1943
|
// lib/components/RunFrameForCli/useEventHandler.ts
|
|
1928
|
-
import { useEffect as
|
|
1944
|
+
import { useEffect as useEffect7, useRef as useRef2 } from "react";
|
|
1929
1945
|
var useEventHandler = (callback) => {
|
|
1930
1946
|
const lastProcessedEventId = useRef2(null);
|
|
1931
1947
|
const recentEvents = useRunFrameStore((state) => state.recentEvents);
|
|
1932
|
-
|
|
1948
|
+
useEffect7(() => {
|
|
1933
1949
|
if (recentEvents.length === 0) return;
|
|
1934
1950
|
const latestEvent = recentEvents[0];
|
|
1935
1951
|
if (latestEvent.event_id !== lastProcessedEventId.current) {
|
|
@@ -3400,7 +3416,7 @@ var exportAndDownload = async ({
|
|
|
3400
3416
|
import { useState as useState15 } from "react";
|
|
3401
3417
|
|
|
3402
3418
|
// lib/components/AiReviewDialog/ListAiReviewsView.tsx
|
|
3403
|
-
import { useEffect as
|
|
3419
|
+
import { useEffect as useEffect9, useState as useState13 } from "react";
|
|
3404
3420
|
|
|
3405
3421
|
// lib/utils/get-registry-ky.ts
|
|
3406
3422
|
import ky from "ky";
|
|
@@ -3440,7 +3456,7 @@ var AiReviewListView = ({
|
|
|
3440
3456
|
const [reviews, setReviews] = useState13([]);
|
|
3441
3457
|
const [loading, setLoading] = useState13(false);
|
|
3442
3458
|
const [creating, setCreating] = useState13(false);
|
|
3443
|
-
|
|
3459
|
+
useEffect9(() => {
|
|
3444
3460
|
if (!packageName || !hasRegistryToken()) return;
|
|
3445
3461
|
setLoading(true);
|
|
3446
3462
|
registryKy.get("ai_reviews/list", { searchParams: { package_name: packageName } }).json().then((data) => setReviews(data.ai_reviews)).catch((err) => {
|
|
@@ -3495,7 +3511,7 @@ var AiReviewListView = ({
|
|
|
3495
3511
|
};
|
|
3496
3512
|
|
|
3497
3513
|
// lib/components/AiReviewDialog/ViewAiReviewView.tsx
|
|
3498
|
-
import { useEffect as
|
|
3514
|
+
import { useEffect as useEffect10, useMemo as useMemo4, useState as useState14 } from "react";
|
|
3499
3515
|
import { marked } from "marked";
|
|
3500
3516
|
import { Fragment as Fragment5, jsx as jsx27, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
3501
3517
|
var AiReviewViewView = ({
|
|
@@ -3507,7 +3523,7 @@ var AiReviewViewView = ({
|
|
|
3507
3523
|
);
|
|
3508
3524
|
const registryKy2 = getRegistryKy();
|
|
3509
3525
|
const aiReviewId = review.ai_review_id;
|
|
3510
|
-
|
|
3526
|
+
useEffect10(() => {
|
|
3511
3527
|
if (!aiReviewId) return;
|
|
3512
3528
|
let timeout;
|
|
3513
3529
|
async function loadAiReviewText() {
|
|
@@ -3638,7 +3654,7 @@ import { QueryClient, QueryClientProvider } from "react-query";
|
|
|
3638
3654
|
// lib/components/OrderDialog/InitialOrder.tsx
|
|
3639
3655
|
import { Loader2 as Loader24 } from "lucide-react";
|
|
3640
3656
|
import { GitHubLogoIcon as GitHubLogoIcon2 } from "@radix-ui/react-icons";
|
|
3641
|
-
import { useEffect as
|
|
3657
|
+
import { useEffect as useEffect11, useMemo as useMemo5, useState as useState16 } from "react";
|
|
3642
3658
|
|
|
3643
3659
|
// lib/components/OrderDialog/VendorQuoteCard.tsx
|
|
3644
3660
|
import { Truck, Package } from "lucide-react";
|
|
@@ -3804,7 +3820,7 @@ var InitialOrderScreen = ({
|
|
|
3804
3820
|
const [selectedShippingCarrier, setSelectedShippingCarrier] = useState16(null);
|
|
3805
3821
|
const [orderQuoteId, setOrderQuoteId] = useState16(null);
|
|
3806
3822
|
const { mutate: createOrderQuote2, error: createOrderQuoteError } = useCreateOrderQuote();
|
|
3807
|
-
|
|
3823
|
+
useEffect11(() => {
|
|
3808
3824
|
if (packageReleaseId) {
|
|
3809
3825
|
createOrderQuote2(packageReleaseId, {
|
|
3810
3826
|
onSuccess: (data) => {
|
|
@@ -3822,7 +3838,7 @@ var InitialOrderScreen = ({
|
|
|
3822
3838
|
);
|
|
3823
3839
|
window.location.href = `${stripeCheckoutBaseUrl}?client_reference_id=${orderQuoteId2}&shipping_option=${selectedShippingCarrier}`;
|
|
3824
3840
|
};
|
|
3825
|
-
|
|
3841
|
+
useEffect11(() => {
|
|
3826
3842
|
if (selectedShippingCarrier === null && orderQuote && Array.isArray(orderQuote.shipping_options) && orderQuote.shipping_options.length > 0) {
|
|
3827
3843
|
const lowest = orderQuote.shipping_options.reduce(
|
|
3828
3844
|
(min, curr) => curr.cost < min.cost ? curr : min,
|
|
@@ -4024,31 +4040,314 @@ var useOrderDialog = ({
|
|
|
4024
4040
|
};
|
|
4025
4041
|
};
|
|
4026
4042
|
|
|
4027
|
-
// lib/components/
|
|
4043
|
+
// lib/components/useBugReportDialog.tsx
|
|
4044
|
+
import clsx2 from "clsx";
|
|
4045
|
+
import { HTTPError as HTTPError2 } from "ky";
|
|
4046
|
+
import {
|
|
4047
|
+
useCallback as useCallback8,
|
|
4048
|
+
useEffect as useEffect12,
|
|
4049
|
+
useMemo as useMemo7,
|
|
4050
|
+
useState as useState18
|
|
4051
|
+
} from "react";
|
|
4028
4052
|
import { Fragment as Fragment7, jsx as jsx34, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
4053
|
+
var DYNAMIC_FILE_EXTENSIONS2 = [".tsx", ".ts", ".jsx", ".js", ".json"];
|
|
4054
|
+
async function getFilesFromServer() {
|
|
4055
|
+
const response = await fetch(`${API_BASE}/files/list`);
|
|
4056
|
+
const { file_list } = await response.json();
|
|
4057
|
+
const fileMap = /* @__PURE__ */ new Map();
|
|
4058
|
+
for (const file of file_list) {
|
|
4059
|
+
if (DYNAMIC_FILE_EXTENSIONS2.some((ext) => file.file_path.endsWith(ext))) {
|
|
4060
|
+
const fileResponse = await fetch(
|
|
4061
|
+
`${API_BASE}/files/get?file_path=${encodeURIComponent(file.file_path)}`
|
|
4062
|
+
);
|
|
4063
|
+
const fileData = await fileResponse.json();
|
|
4064
|
+
if (fileData.file?.text_content) {
|
|
4065
|
+
fileMap.set(file.file_path, fileData.file.text_content);
|
|
4066
|
+
}
|
|
4067
|
+
}
|
|
4068
|
+
}
|
|
4069
|
+
return fileMap;
|
|
4070
|
+
}
|
|
4071
|
+
var buildBugReportUrl = (bugReportId) => {
|
|
4072
|
+
const normalizedApiBase = API_BASE.endsWith("/") ? API_BASE : `${API_BASE}/`;
|
|
4073
|
+
const baseForView = API_BASE.startsWith("http://") || API_BASE.startsWith("https://") ? normalizedApiBase : `${typeof window !== "undefined" ? window.location.origin : "https://api.tscircuit.com"}/${normalizedApiBase.replace(/^\//, "")}`;
|
|
4074
|
+
return new URL(
|
|
4075
|
+
`bug_reports/view?bug_report_id=${bugReportId}`,
|
|
4076
|
+
baseForView
|
|
4077
|
+
).toString();
|
|
4078
|
+
};
|
|
4079
|
+
var useBugReportDialog = () => {
|
|
4080
|
+
const [isOpen, setIsOpen] = useState18(false);
|
|
4081
|
+
const [isSubmitting, setIsSubmitting] = useState18(false);
|
|
4082
|
+
const [errorMessage, setErrorMessage] = useState18(null);
|
|
4083
|
+
const [userText, setUserText] = useState18("");
|
|
4084
|
+
const [successState, setSuccessState] = useState18(null);
|
|
4085
|
+
const [bugReportFileCount, setBugReportFileCount] = useState18(0);
|
|
4086
|
+
const isSessionLoggedIn = useMemo7(() => {
|
|
4087
|
+
if (hasRegistryToken()) return true;
|
|
4088
|
+
if (typeof document === "undefined") return false;
|
|
4089
|
+
return document.cookie.split(";").some((cookie) => cookie.trim().startsWith("session="));
|
|
4090
|
+
}, [isOpen]);
|
|
4091
|
+
useEffect12(() => {
|
|
4092
|
+
if (isOpen && !successState) {
|
|
4093
|
+
const globalError = typeof window !== "undefined" ? window.__TSCIRCUIT_LAST_EXECUTION_ERROR : void 0;
|
|
4094
|
+
if (globalError) {
|
|
4095
|
+
setUserText(`I'm getting this execution error:
|
|
4096
|
+
|
|
4097
|
+
${globalError}`);
|
|
4098
|
+
}
|
|
4099
|
+
}
|
|
4100
|
+
}, [isOpen, successState]);
|
|
4101
|
+
useEffect12(() => {
|
|
4102
|
+
if (isOpen && !successState) {
|
|
4103
|
+
getFilesFromServer().then((files) => {
|
|
4104
|
+
setBugReportFileCount(files.size);
|
|
4105
|
+
}).catch((error) => {
|
|
4106
|
+
console.error("Failed to fetch file count", error);
|
|
4107
|
+
setBugReportFileCount(0);
|
|
4108
|
+
});
|
|
4109
|
+
}
|
|
4110
|
+
}, [isOpen, successState]);
|
|
4111
|
+
const openBugReportDialog = useCallback8(() => {
|
|
4112
|
+
setErrorMessage(null);
|
|
4113
|
+
setSuccessState(null);
|
|
4114
|
+
setUserText("");
|
|
4115
|
+
setIsOpen(true);
|
|
4116
|
+
}, []);
|
|
4117
|
+
const closeBugReportDialog = useCallback8(() => {
|
|
4118
|
+
setIsOpen(false);
|
|
4119
|
+
}, []);
|
|
4120
|
+
const handleConfirmBugReport = useCallback8(async () => {
|
|
4121
|
+
setIsSubmitting(true);
|
|
4122
|
+
setErrorMessage(null);
|
|
4123
|
+
const registryKy2 = getRegistryKy();
|
|
4124
|
+
try {
|
|
4125
|
+
const filesFromServer = await getFilesFromServer();
|
|
4126
|
+
if (filesFromServer.size === 0) {
|
|
4127
|
+
toast.error("No project files available to include in the bug report");
|
|
4128
|
+
setIsSubmitting(false);
|
|
4129
|
+
return;
|
|
4130
|
+
}
|
|
4131
|
+
const deleteAt = new Date(Date.now() + 24 * 60 * 60 * 1e3).toISOString();
|
|
4132
|
+
const createResponse = await registryKy2.post("bug_reports/create", {
|
|
4133
|
+
json: {
|
|
4134
|
+
text: userText.trim() || void 0,
|
|
4135
|
+
is_auto_deleted: true,
|
|
4136
|
+
delete_at: deleteAt
|
|
4137
|
+
}
|
|
4138
|
+
}).json();
|
|
4139
|
+
const bugReportId = createResponse.bug_report.bug_report_id;
|
|
4140
|
+
for (const [filePath, fileContents] of filesFromServer.entries()) {
|
|
4141
|
+
await registryKy2.post("bug_reports/upload_file", {
|
|
4142
|
+
json: {
|
|
4143
|
+
bug_report_id: bugReportId,
|
|
4144
|
+
file_path: filePath,
|
|
4145
|
+
content_text: String(fileContents ?? "")
|
|
4146
|
+
}
|
|
4147
|
+
});
|
|
4148
|
+
}
|
|
4149
|
+
const bugReportUrl = buildBugReportUrl(bugReportId);
|
|
4150
|
+
setSuccessState({ bugReportUrl });
|
|
4151
|
+
} catch (error) {
|
|
4152
|
+
console.error("Failed to submit bug report", error);
|
|
4153
|
+
if (error instanceof HTTPError2) {
|
|
4154
|
+
if (error.response.status === 401) {
|
|
4155
|
+
const message = "You must be logged in to report a bug. Please sign in and try again.";
|
|
4156
|
+
setErrorMessage(message);
|
|
4157
|
+
toast.error(message);
|
|
4158
|
+
} else {
|
|
4159
|
+
const message = `Failed to submit bug report (${error.response.status})`;
|
|
4160
|
+
setErrorMessage(message);
|
|
4161
|
+
toast.error(message);
|
|
4162
|
+
}
|
|
4163
|
+
} else if (error instanceof Error) {
|
|
4164
|
+
setErrorMessage(error.message);
|
|
4165
|
+
toast.error(error.message);
|
|
4166
|
+
} else {
|
|
4167
|
+
const message = "Failed to submit bug report";
|
|
4168
|
+
setErrorMessage(message);
|
|
4169
|
+
toast.error(message);
|
|
4170
|
+
}
|
|
4171
|
+
} finally {
|
|
4172
|
+
setIsSubmitting(false);
|
|
4173
|
+
}
|
|
4174
|
+
}, [userText]);
|
|
4175
|
+
const BugReportDialog = useCallback8(() => {
|
|
4176
|
+
return /* @__PURE__ */ jsx34(
|
|
4177
|
+
AlertDialog,
|
|
4178
|
+
{
|
|
4179
|
+
open: isOpen,
|
|
4180
|
+
onOpenChange: (open) => {
|
|
4181
|
+
if (!open) {
|
|
4182
|
+
if (!isSubmitting) {
|
|
4183
|
+
closeBugReportDialog();
|
|
4184
|
+
}
|
|
4185
|
+
} else {
|
|
4186
|
+
setErrorMessage(null);
|
|
4187
|
+
setSuccessState(null);
|
|
4188
|
+
setIsOpen(true);
|
|
4189
|
+
}
|
|
4190
|
+
},
|
|
4191
|
+
children: /* @__PURE__ */ jsxs24(AlertDialogContent, { children: [
|
|
4192
|
+
/* @__PURE__ */ jsxs24(AlertDialogHeader, { children: [
|
|
4193
|
+
/* @__PURE__ */ jsx34(AlertDialogTitle, { children: successState ? "Bug Report Created" : "Report Bug" }),
|
|
4194
|
+
/* @__PURE__ */ jsx34(AlertDialogDescription, { asChild: true, children: successState ? /* @__PURE__ */ jsxs24("div", { className: "rf-text-left rf-space-y-3 rf-text-sm", children: [
|
|
4195
|
+
/* @__PURE__ */ jsx34("p", { children: "Bug report created successfully." }),
|
|
4196
|
+
/* @__PURE__ */ jsx34("div", { children: /* @__PURE__ */ jsx34(
|
|
4197
|
+
"a",
|
|
4198
|
+
{
|
|
4199
|
+
className: "rf-text-blue-600 hover:rf-underline",
|
|
4200
|
+
href: successState.bugReportUrl,
|
|
4201
|
+
target: "_blank",
|
|
4202
|
+
rel: "noreferrer",
|
|
4203
|
+
children: "View bug report"
|
|
4204
|
+
}
|
|
4205
|
+
) }),
|
|
4206
|
+
/* @__PURE__ */ jsxs24("p", { children: [
|
|
4207
|
+
"Please share this link privately with tscircuit staff so we can help debug. Join the",
|
|
4208
|
+
/* @__PURE__ */ jsx34(
|
|
4209
|
+
"a",
|
|
4210
|
+
{
|
|
4211
|
+
className: "rf-ml-1 rf-text-blue-600 hover:rf-underline",
|
|
4212
|
+
href: "https://tscircuit.com/join",
|
|
4213
|
+
target: "_blank",
|
|
4214
|
+
rel: "noreferrer",
|
|
4215
|
+
children: "tscircuit Discord"
|
|
4216
|
+
}
|
|
4217
|
+
),
|
|
4218
|
+
"."
|
|
4219
|
+
] })
|
|
4220
|
+
] }) : /* @__PURE__ */ jsxs24("div", { className: "rf-text-left rf-space-y-3 rf-text-sm", children: [
|
|
4221
|
+
/* @__PURE__ */ jsxs24("p", { children: [
|
|
4222
|
+
"Reporting a bug will upload your entire project",
|
|
4223
|
+
bugReportFileCount > 0 ? ` (${bugReportFileCount} file${bugReportFileCount === 1 ? "" : "s"})` : "",
|
|
4224
|
+
" ",
|
|
4225
|
+
"to tscircuit support."
|
|
4226
|
+
] }),
|
|
4227
|
+
/* @__PURE__ */ jsxs24("div", { className: "rf-space-y-2", children: [
|
|
4228
|
+
/* @__PURE__ */ jsx34(
|
|
4229
|
+
"label",
|
|
4230
|
+
{
|
|
4231
|
+
htmlFor: "bug-description",
|
|
4232
|
+
className: "rf-block rf-font-medium",
|
|
4233
|
+
children: "Description (optional)"
|
|
4234
|
+
}
|
|
4235
|
+
),
|
|
4236
|
+
/* @__PURE__ */ jsx34(
|
|
4237
|
+
"textarea",
|
|
4238
|
+
{
|
|
4239
|
+
id: "bug-description",
|
|
4240
|
+
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",
|
|
4241
|
+
placeholder: "Describe the issue you're experiencing...",
|
|
4242
|
+
value: userText,
|
|
4243
|
+
onChange: (e) => setUserText(e.target.value),
|
|
4244
|
+
disabled: isSubmitting
|
|
4245
|
+
}
|
|
4246
|
+
)
|
|
4247
|
+
] }),
|
|
4248
|
+
/* @__PURE__ */ jsxs24("p", { children: [
|
|
4249
|
+
"Share the generated bug report link privately with tscircuit staff so we can help debug your issue. You can also reach out on our",
|
|
4250
|
+
/* @__PURE__ */ jsx34(
|
|
4251
|
+
"a",
|
|
4252
|
+
{
|
|
4253
|
+
className: "rf-ml-1 rf-text-blue-600 hover:rf-underline",
|
|
4254
|
+
href: "https://tscircuit.com/join",
|
|
4255
|
+
target: "_blank",
|
|
4256
|
+
rel: "noreferrer",
|
|
4257
|
+
children: "Discord community"
|
|
4258
|
+
}
|
|
4259
|
+
),
|
|
4260
|
+
"."
|
|
4261
|
+
] }),
|
|
4262
|
+
!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." }),
|
|
4263
|
+
errorMessage && /* @__PURE__ */ jsx34("p", { className: "rf-text-red-600", children: errorMessage })
|
|
4264
|
+
] }) })
|
|
4265
|
+
] }),
|
|
4266
|
+
/* @__PURE__ */ jsx34(AlertDialogFooter, { children: successState ? /* @__PURE__ */ jsx34(
|
|
4267
|
+
"button",
|
|
4268
|
+
{
|
|
4269
|
+
type: "button",
|
|
4270
|
+
className: buttonVariants(),
|
|
4271
|
+
onClick: () => {
|
|
4272
|
+
closeBugReportDialog();
|
|
4273
|
+
},
|
|
4274
|
+
children: "Close"
|
|
4275
|
+
}
|
|
4276
|
+
) : /* @__PURE__ */ jsxs24(Fragment7, { children: [
|
|
4277
|
+
/* @__PURE__ */ jsx34(
|
|
4278
|
+
AlertDialogCancel,
|
|
4279
|
+
{
|
|
4280
|
+
disabled: isSubmitting,
|
|
4281
|
+
onClick: () => {
|
|
4282
|
+
if (!isSubmitting) {
|
|
4283
|
+
closeBugReportDialog();
|
|
4284
|
+
}
|
|
4285
|
+
},
|
|
4286
|
+
children: "Cancel"
|
|
4287
|
+
}
|
|
4288
|
+
),
|
|
4289
|
+
/* @__PURE__ */ jsx34(
|
|
4290
|
+
"button",
|
|
4291
|
+
{
|
|
4292
|
+
type: "button",
|
|
4293
|
+
className: clsx2(
|
|
4294
|
+
buttonVariants(),
|
|
4295
|
+
isSubmitting && "rf-opacity-70 rf-cursor-not-allowed"
|
|
4296
|
+
),
|
|
4297
|
+
disabled: isSubmitting,
|
|
4298
|
+
onClick: (event) => {
|
|
4299
|
+
event.preventDefault();
|
|
4300
|
+
void handleConfirmBugReport();
|
|
4301
|
+
},
|
|
4302
|
+
children: isSubmitting ? "Reporting..." : "Upload & Report"
|
|
4303
|
+
}
|
|
4304
|
+
)
|
|
4305
|
+
] }) })
|
|
4306
|
+
] })
|
|
4307
|
+
}
|
|
4308
|
+
);
|
|
4309
|
+
}, [
|
|
4310
|
+
bugReportFileCount,
|
|
4311
|
+
closeBugReportDialog,
|
|
4312
|
+
errorMessage,
|
|
4313
|
+
handleConfirmBugReport,
|
|
4314
|
+
isOpen,
|
|
4315
|
+
isSessionLoggedIn,
|
|
4316
|
+
isSubmitting,
|
|
4317
|
+
successState,
|
|
4318
|
+
userText
|
|
4319
|
+
]);
|
|
4320
|
+
return {
|
|
4321
|
+
BugReportDialog,
|
|
4322
|
+
openBugReportDialog
|
|
4323
|
+
};
|
|
4324
|
+
};
|
|
4325
|
+
|
|
4326
|
+
// lib/components/FileMenuLeftHeader.tsx
|
|
4327
|
+
import { Fragment as Fragment8, jsx as jsx35, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
4029
4328
|
var FileMenuLeftHeader = (props) => {
|
|
4030
4329
|
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] =
|
|
4330
|
+
const [snippetName, setSnippetName] = useState19(null);
|
|
4331
|
+
const [hasUnsavedChanges, setHasUnsavedChanges] = useState19(false);
|
|
4332
|
+
const [hasNeverBeenSaved, setHasNeverBeenSaved] = useState19(true);
|
|
4333
|
+
const [isSaving, setIsSaving] = useState19(false);
|
|
4334
|
+
const [requestToSaveSentAt, setRequestToSaveSentAt] = useState19(
|
|
4036
4335
|
null
|
|
4037
4336
|
);
|
|
4038
|
-
const [availableSnippets, setAvailableSnippets] =
|
|
4337
|
+
const [availableSnippets, setAvailableSnippets] = useState19(
|
|
4039
4338
|
null
|
|
4040
4339
|
);
|
|
4041
|
-
const [isSelectSnippetDialogOpen, setIsSelectSnippetDialogOpen] =
|
|
4042
|
-
const [notificationMessage, setNotificationMessage] =
|
|
4340
|
+
const [isSelectSnippetDialogOpen, setIsSelectSnippetDialogOpen] = useState19(false);
|
|
4341
|
+
const [notificationMessage, setNotificationMessage] = useState19(
|
|
4043
4342
|
null
|
|
4044
4343
|
);
|
|
4045
|
-
const [errorMessage, setErrorMessage] =
|
|
4046
|
-
const [isError, setIsError] =
|
|
4047
|
-
const [isExporting, setisExporting] =
|
|
4344
|
+
const [errorMessage, setErrorMessage] = useState19(null);
|
|
4345
|
+
const [isError, setIsError] = useState19(false);
|
|
4346
|
+
const [isExporting, setisExporting] = useState19(false);
|
|
4048
4347
|
const orderDialog = useOrderDialogCli();
|
|
4049
4348
|
const pushEvent = useRunFrameStore((state) => state.pushEvent);
|
|
4050
4349
|
const recentEvents = useRunFrameStore((state) => state.recentEvents);
|
|
4051
|
-
const firstRenderTime =
|
|
4350
|
+
const firstRenderTime = useMemo8(() => Date.now(), []);
|
|
4052
4351
|
useEventHandler((event) => {
|
|
4053
4352
|
if (new Date(event.created_at).valueOf() < firstRenderTime + 500) return;
|
|
4054
4353
|
if (event.event_type === "FILE_UPDATED") {
|
|
@@ -4073,7 +4372,7 @@ var FileMenuLeftHeader = (props) => {
|
|
|
4073
4372
|
setisExporting(false);
|
|
4074
4373
|
}
|
|
4075
4374
|
});
|
|
4076
|
-
|
|
4375
|
+
useEffect13(() => {
|
|
4077
4376
|
if (!isSaving || requestToSaveSentAt === null) return;
|
|
4078
4377
|
const eventsSinceRequestToSave = recentEvents.filter(
|
|
4079
4378
|
(event) => new Date(event.created_at).valueOf() > requestToSaveSentAt
|
|
@@ -4116,14 +4415,15 @@ var FileMenuLeftHeader = (props) => {
|
|
|
4116
4415
|
};
|
|
4117
4416
|
const storeCircuitJson = useRunFrameStore((state) => state.circuitJson);
|
|
4118
4417
|
const circuitJson = storeCircuitJson ?? props.circuitJson;
|
|
4119
|
-
const [isImportDialogOpen, setIsImportDialogOpen] =
|
|
4120
|
-
const [isAiReviewDialogOpen, setIsAiReviewDialogOpen] =
|
|
4121
|
-
|
|
4122
|
-
|
|
4123
|
-
|
|
4124
|
-
/* @__PURE__ */
|
|
4125
|
-
|
|
4126
|
-
|
|
4418
|
+
const [isImportDialogOpen, setIsImportDialogOpen] = useState19(false);
|
|
4419
|
+
const [isAiReviewDialogOpen, setIsAiReviewDialogOpen] = useState19(false);
|
|
4420
|
+
const { BugReportDialog, openBugReportDialog } = useBugReportDialog();
|
|
4421
|
+
return /* @__PURE__ */ jsxs25(Fragment8, { children: [
|
|
4422
|
+
/* @__PURE__ */ jsxs25(DropdownMenu, { children: [
|
|
4423
|
+
/* @__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" }) }),
|
|
4424
|
+
/* @__PURE__ */ jsxs25(DropdownMenuContent, { className: "rf-z-[101]", children: [
|
|
4425
|
+
!props.isWebEmbedded && /* @__PURE__ */ jsxs25(Fragment8, { children: [
|
|
4426
|
+
/* @__PURE__ */ jsx35(
|
|
4127
4427
|
DropdownMenuItem,
|
|
4128
4428
|
{
|
|
4129
4429
|
className: "rf-text-xs",
|
|
@@ -4132,7 +4432,7 @@ var FileMenuLeftHeader = (props) => {
|
|
|
4132
4432
|
children: isSaving ? "Saving..." : "Push"
|
|
4133
4433
|
}
|
|
4134
4434
|
),
|
|
4135
|
-
parseInt(window.location.port) > 5e3 && /* @__PURE__ */
|
|
4435
|
+
parseInt(window.location.port) > 5e3 && /* @__PURE__ */ jsx35(
|
|
4136
4436
|
DropdownMenuItem,
|
|
4137
4437
|
{
|
|
4138
4438
|
className: "rf-text-xs",
|
|
@@ -4142,7 +4442,7 @@ var FileMenuLeftHeader = (props) => {
|
|
|
4142
4442
|
children: "Order"
|
|
4143
4443
|
}
|
|
4144
4444
|
),
|
|
4145
|
-
/* @__PURE__ */
|
|
4445
|
+
/* @__PURE__ */ jsx35(
|
|
4146
4446
|
DropdownMenuItem,
|
|
4147
4447
|
{
|
|
4148
4448
|
className: "rf-text-xs",
|
|
@@ -4151,7 +4451,7 @@ var FileMenuLeftHeader = (props) => {
|
|
|
4151
4451
|
children: "Import"
|
|
4152
4452
|
}
|
|
4153
4453
|
),
|
|
4154
|
-
/* @__PURE__ */
|
|
4454
|
+
/* @__PURE__ */ jsx35(
|
|
4155
4455
|
DropdownMenuItem,
|
|
4156
4456
|
{
|
|
4157
4457
|
className: "rf-text-xs",
|
|
@@ -4166,8 +4466,18 @@ var FileMenuLeftHeader = (props) => {
|
|
|
4166
4466
|
}
|
|
4167
4467
|
)
|
|
4168
4468
|
] }),
|
|
4169
|
-
/* @__PURE__ */
|
|
4170
|
-
|
|
4469
|
+
!props.isWebEmbedded && /* @__PURE__ */ jsx35(
|
|
4470
|
+
DropdownMenuItem,
|
|
4471
|
+
{
|
|
4472
|
+
className: "rf-text-xs",
|
|
4473
|
+
onSelect: () => {
|
|
4474
|
+
openBugReportDialog();
|
|
4475
|
+
},
|
|
4476
|
+
children: "Report Bug"
|
|
4477
|
+
}
|
|
4478
|
+
),
|
|
4479
|
+
/* @__PURE__ */ jsxs25(DropdownMenuSub, { children: [
|
|
4480
|
+
/* @__PURE__ */ jsx35(
|
|
4171
4481
|
DropdownMenuSubTrigger,
|
|
4172
4482
|
{
|
|
4173
4483
|
className: "rf-text-xs",
|
|
@@ -4175,7 +4485,7 @@ var FileMenuLeftHeader = (props) => {
|
|
|
4175
4485
|
children: isExporting ? "Exporting..." : "Export"
|
|
4176
4486
|
}
|
|
4177
4487
|
),
|
|
4178
|
-
/* @__PURE__ */
|
|
4488
|
+
/* @__PURE__ */ jsx35(DropdownMenuPortal, { children: /* @__PURE__ */ jsx35(DropdownMenuSubContent, { children: availableExports.map((exp, i) => /* @__PURE__ */ jsx35(
|
|
4179
4489
|
DropdownMenuItem,
|
|
4180
4490
|
{
|
|
4181
4491
|
onSelect: () => {
|
|
@@ -4190,16 +4500,16 @@ var FileMenuLeftHeader = (props) => {
|
|
|
4190
4500
|
});
|
|
4191
4501
|
},
|
|
4192
4502
|
disabled: isExporting,
|
|
4193
|
-
children: /* @__PURE__ */
|
|
4503
|
+
children: /* @__PURE__ */ jsx35("span", { className: "rf-text-xs", children: exp.name })
|
|
4194
4504
|
},
|
|
4195
4505
|
i
|
|
4196
4506
|
)) }) })
|
|
4197
4507
|
] }),
|
|
4198
|
-
!props.isWebEmbedded && /* @__PURE__ */
|
|
4199
|
-
/* @__PURE__ */
|
|
4200
|
-
/* @__PURE__ */
|
|
4201
|
-
/* @__PURE__ */
|
|
4202
|
-
/* @__PURE__ */
|
|
4508
|
+
!props.isWebEmbedded && /* @__PURE__ */ jsxs25(DropdownMenuSub, { children: [
|
|
4509
|
+
/* @__PURE__ */ jsx35(DropdownMenuSubTrigger, { className: "rf-text-xs", children: "Advanced" }),
|
|
4510
|
+
/* @__PURE__ */ jsx35(DropdownMenuPortal, { children: /* @__PURE__ */ jsxs25(DropdownMenuSubContent, { children: [
|
|
4511
|
+
/* @__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: [
|
|
4512
|
+
/* @__PURE__ */ jsx35(
|
|
4203
4513
|
Checkbox,
|
|
4204
4514
|
{
|
|
4205
4515
|
id: "load-latest-eval",
|
|
@@ -4209,7 +4519,7 @@ var FileMenuLeftHeader = (props) => {
|
|
|
4209
4519
|
}
|
|
4210
4520
|
}
|
|
4211
4521
|
),
|
|
4212
|
-
/* @__PURE__ */
|
|
4522
|
+
/* @__PURE__ */ jsx35(
|
|
4213
4523
|
"label",
|
|
4214
4524
|
{
|
|
4215
4525
|
htmlFor: "load-latest-eval",
|
|
@@ -4218,35 +4528,35 @@ var FileMenuLeftHeader = (props) => {
|
|
|
4218
4528
|
}
|
|
4219
4529
|
)
|
|
4220
4530
|
] }) }),
|
|
4221
|
-
lastRunEvalVersion && /* @__PURE__ */
|
|
4531
|
+
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
4532
|
"@tscircuit/eval@",
|
|
4223
4533
|
lastRunEvalVersion
|
|
4224
4534
|
] }) }) }),
|
|
4225
|
-
/* @__PURE__ */
|
|
4535
|
+
/* @__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
4536
|
"@tscircuit/runframe@",
|
|
4227
4537
|
package_default.version
|
|
4228
4538
|
] }) }) }),
|
|
4229
|
-
/* @__PURE__ */
|
|
4539
|
+
/* @__PURE__ */ jsx35(
|
|
4230
4540
|
DropdownMenuItem,
|
|
4231
4541
|
{
|
|
4232
4542
|
className: "rf-flex rf-items-center rf-gap-2",
|
|
4233
4543
|
onClick: () => {
|
|
4234
4544
|
window.open("/api/admin", "_blank");
|
|
4235
4545
|
},
|
|
4236
|
-
children: /* @__PURE__ */
|
|
4546
|
+
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
4547
|
}
|
|
4238
4548
|
)
|
|
4239
4549
|
] }) })
|
|
4240
4550
|
] })
|
|
4241
4551
|
] }),
|
|
4242
|
-
/* @__PURE__ */
|
|
4243
|
-
/* @__PURE__ */
|
|
4244
|
-
/* @__PURE__ */
|
|
4245
|
-
/* @__PURE__ */
|
|
4552
|
+
/* @__PURE__ */ jsx35(AlertDialog, { open: isError, onOpenChange: setIsError, children: /* @__PURE__ */ jsxs25(AlertDialogContent, { children: [
|
|
4553
|
+
/* @__PURE__ */ jsxs25(AlertDialogHeader, { children: [
|
|
4554
|
+
/* @__PURE__ */ jsx35(AlertDialogTitle, { children: "Error Saving Snippet" }),
|
|
4555
|
+
/* @__PURE__ */ jsx35(AlertDialogDescription, { children: errorMessage })
|
|
4246
4556
|
] }),
|
|
4247
|
-
/* @__PURE__ */
|
|
4557
|
+
/* @__PURE__ */ jsx35(AlertDialogFooter, { children: /* @__PURE__ */ jsx35(AlertDialogCancel, { onClick: () => setIsError(false), children: "Dismiss" }) })
|
|
4248
4558
|
] }) }),
|
|
4249
|
-
/* @__PURE__ */
|
|
4559
|
+
/* @__PURE__ */ jsx35(
|
|
4250
4560
|
SelectSnippetDialog,
|
|
4251
4561
|
{
|
|
4252
4562
|
snippetNames: availableSnippets ?? [],
|
|
@@ -4265,14 +4575,15 @@ var FileMenuLeftHeader = (props) => {
|
|
|
4265
4575
|
}
|
|
4266
4576
|
)
|
|
4267
4577
|
] }),
|
|
4268
|
-
/* @__PURE__ */
|
|
4578
|
+
/* @__PURE__ */ jsx35(BugReportDialog, {}),
|
|
4579
|
+
/* @__PURE__ */ jsx35(
|
|
4269
4580
|
ImportComponentDialogForCli,
|
|
4270
4581
|
{
|
|
4271
4582
|
isOpen: isImportDialogOpen,
|
|
4272
4583
|
onClose: () => setIsImportDialogOpen(false)
|
|
4273
4584
|
}
|
|
4274
4585
|
),
|
|
4275
|
-
/* @__PURE__ */
|
|
4586
|
+
/* @__PURE__ */ jsx35(
|
|
4276
4587
|
AiReviewDialog,
|
|
4277
4588
|
{
|
|
4278
4589
|
isOpen: isAiReviewDialogOpen,
|
|
@@ -4280,7 +4591,7 @@ var FileMenuLeftHeader = (props) => {
|
|
|
4280
4591
|
packageName: snippetName
|
|
4281
4592
|
}
|
|
4282
4593
|
),
|
|
4283
|
-
/* @__PURE__ */
|
|
4594
|
+
/* @__PURE__ */ jsx35(
|
|
4284
4595
|
Toaster,
|
|
4285
4596
|
{
|
|
4286
4597
|
position: "top-center",
|
|
@@ -4292,7 +4603,7 @@ var FileMenuLeftHeader = (props) => {
|
|
|
4292
4603
|
}
|
|
4293
4604
|
}
|
|
4294
4605
|
),
|
|
4295
|
-
/* @__PURE__ */
|
|
4606
|
+
/* @__PURE__ */ jsx35(
|
|
4296
4607
|
orderDialog.OrderDialog,
|
|
4297
4608
|
{
|
|
4298
4609
|
isOpen: orderDialog.isOpen,
|
|
@@ -4305,7 +4616,7 @@ var FileMenuLeftHeader = (props) => {
|
|
|
4305
4616
|
};
|
|
4306
4617
|
|
|
4307
4618
|
// lib/components/CircuitJsonPreview/CircuitJsonPreview.tsx
|
|
4308
|
-
import { jsx as
|
|
4619
|
+
import { jsx as jsx36, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
4309
4620
|
var dropdownMenuItems = [
|
|
4310
4621
|
"assembly",
|
|
4311
4622
|
"pinout",
|
|
@@ -4364,13 +4675,13 @@ var CircuitJsonPreview = ({
|
|
|
4364
4675
|
setSearch: setEvalSearch,
|
|
4365
4676
|
selectVersion: selectEvalVersion
|
|
4366
4677
|
} = useEvalVersions(allowSelectingVersion);
|
|
4367
|
-
const circuitJsonErrors =
|
|
4678
|
+
const circuitJsonErrors = useMemo9(() => {
|
|
4368
4679
|
if (!circuitJson) return null;
|
|
4369
4680
|
return circuitJson.filter(
|
|
4370
4681
|
(e) => e && "error_type" in e || e.type.includes("error")
|
|
4371
4682
|
);
|
|
4372
4683
|
}, [circuitJson]);
|
|
4373
|
-
const circuitJsonWarnings =
|
|
4684
|
+
const circuitJsonWarnings = useMemo9(() => {
|
|
4374
4685
|
if (!circuitJson) return null;
|
|
4375
4686
|
return circuitJson.filter(
|
|
4376
4687
|
(e) => e && "warning_type" in e || e.type.includes("warning")
|
|
@@ -4381,13 +4692,13 @@ var CircuitJsonPreview = ({
|
|
|
4381
4692
|
errorStack,
|
|
4382
4693
|
circuitJsonErrors
|
|
4383
4694
|
});
|
|
4384
|
-
const [activeTab, setActiveTabState] =
|
|
4695
|
+
const [activeTab, setActiveTabState] = useState20(
|
|
4385
4696
|
defaultActiveTab ?? defaultTab ?? availableTabs?.[0] ?? "pcb"
|
|
4386
4697
|
);
|
|
4387
|
-
const [lastActiveTab, setLastActiveTab] =
|
|
4388
|
-
const [isFullScreen, setIsFullScreen] =
|
|
4698
|
+
const [lastActiveTab, setLastActiveTab] = useState20(null);
|
|
4699
|
+
const [isFullScreen, setIsFullScreen] = useState20(defaultToFullScreen);
|
|
4389
4700
|
useFullscreenBodyScroll(isFullScreen);
|
|
4390
|
-
const setActiveTab =
|
|
4701
|
+
const setActiveTab = useCallback9(
|
|
4391
4702
|
(tab) => {
|
|
4392
4703
|
setActiveTabState(tab);
|
|
4393
4704
|
onActiveTabChange?.(tab);
|
|
@@ -4397,7 +4708,7 @@ var CircuitJsonPreview = ({
|
|
|
4397
4708
|
const toggleFullScreen = () => {
|
|
4398
4709
|
setIsFullScreen(!isFullScreen);
|
|
4399
4710
|
};
|
|
4400
|
-
|
|
4711
|
+
useEffect14(() => {
|
|
4401
4712
|
if (errorMessage) {
|
|
4402
4713
|
if (activeTab !== "errors") {
|
|
4403
4714
|
setLastActiveTab(activeTab);
|
|
@@ -4405,38 +4716,38 @@ var CircuitJsonPreview = ({
|
|
|
4405
4716
|
setActiveTab("errors");
|
|
4406
4717
|
}
|
|
4407
4718
|
}, [errorMessage]);
|
|
4408
|
-
|
|
4719
|
+
useEffect14(() => {
|
|
4409
4720
|
if ((activeTab === "code" || activeTab === "errors") && circuitJson && !errorMessage) {
|
|
4410
4721
|
setActiveTab(
|
|
4411
4722
|
lastActiveTab ?? defaultActiveTab ?? defaultTab ?? availableTabs?.[0] ?? "pcb"
|
|
4412
4723
|
);
|
|
4413
4724
|
}
|
|
4414
4725
|
}, [circuitJson]);
|
|
4415
|
-
const setCadViewerRef =
|
|
4726
|
+
const setCadViewerRef = useCallback9((value) => {
|
|
4416
4727
|
window.TSCIRCUIT_3D_OBJECT_REF = value === null ? void 0 : value;
|
|
4417
4728
|
}, []);
|
|
4418
|
-
return /* @__PURE__ */
|
|
4729
|
+
return /* @__PURE__ */ jsx36(
|
|
4419
4730
|
"div",
|
|
4420
4731
|
{
|
|
4421
4732
|
className: cn(
|
|
4422
4733
|
"flex flex-col relative rf-overflow-x-hidden rf-h-full",
|
|
4423
4734
|
className
|
|
4424
4735
|
),
|
|
4425
|
-
children: /* @__PURE__ */
|
|
4736
|
+
children: /* @__PURE__ */ jsx36(
|
|
4426
4737
|
"div",
|
|
4427
4738
|
{
|
|
4428
4739
|
className: cn(
|
|
4429
4740
|
"rf-md:sticky rf-md:top-2 rf-h-full",
|
|
4430
4741
|
isFullScreen && "rf-fixed rf-top-0 rf-left-0 rf-w-full rf-h-full rf-bg-white rf-overflow-hidden"
|
|
4431
4742
|
),
|
|
4432
|
-
children: /* @__PURE__ */
|
|
4743
|
+
children: /* @__PURE__ */ jsxs26(
|
|
4433
4744
|
Tabs,
|
|
4434
4745
|
{
|
|
4435
4746
|
value: activeTab,
|
|
4436
4747
|
onValueChange: setActiveTab,
|
|
4437
4748
|
className: "rf-flex-grow rf-flex rf-flex-col rf-h-full",
|
|
4438
4749
|
children: [
|
|
4439
|
-
/* @__PURE__ */
|
|
4750
|
+
/* @__PURE__ */ jsxs26(
|
|
4440
4751
|
"div",
|
|
4441
4752
|
{
|
|
4442
4753
|
className: cn(
|
|
@@ -4445,7 +4756,7 @@ var CircuitJsonPreview = ({
|
|
|
4445
4756
|
),
|
|
4446
4757
|
children: [
|
|
4447
4758
|
leftHeaderContent,
|
|
4448
|
-
showFileMenu && !leftHeaderContent && /* @__PURE__ */
|
|
4759
|
+
showFileMenu && !leftHeaderContent && /* @__PURE__ */ jsx36(
|
|
4449
4760
|
FileMenuLeftHeader,
|
|
4450
4761
|
{
|
|
4451
4762
|
isWebEmbedded,
|
|
@@ -4453,18 +4764,18 @@ var CircuitJsonPreview = ({
|
|
|
4453
4764
|
projectName
|
|
4454
4765
|
}
|
|
4455
4766
|
),
|
|
4456
|
-
(leftHeaderContent || showFileMenu) && /* @__PURE__ */
|
|
4457
|
-
!leftHeaderContent && !showFileMenu && isRunningCode && /* @__PURE__ */
|
|
4458
|
-
!leftHeaderContent && !showFileMenu && /* @__PURE__ */
|
|
4459
|
-
renderLog && renderLog.progress !== 1 && !errorMessage && /* @__PURE__ */
|
|
4460
|
-
activeEffectName ? /* @__PURE__ */
|
|
4767
|
+
(leftHeaderContent || showFileMenu) && /* @__PURE__ */ jsx36("div", { className: "rf-flex-grow" }),
|
|
4768
|
+
!leftHeaderContent && !showFileMenu && isRunningCode && /* @__PURE__ */ jsx36(Loader25, { className: "rf-w-4 rf-h-4 rf-animate-spin" }),
|
|
4769
|
+
!leftHeaderContent && !showFileMenu && /* @__PURE__ */ jsx36("div", { className: "rf-flex-grow" }),
|
|
4770
|
+
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: [
|
|
4771
|
+
activeEffectName ? /* @__PURE__ */ jsx36(
|
|
4461
4772
|
"div",
|
|
4462
4773
|
{
|
|
4463
4774
|
className: "rf-text-xs rf-text-gray-500 rf-truncate rf-min-w-0",
|
|
4464
4775
|
title: activeEffectName,
|
|
4465
4776
|
children: activeEffectName
|
|
4466
4777
|
}
|
|
4467
|
-
) : renderLog.lastRenderEvent && /* @__PURE__ */
|
|
4778
|
+
) : renderLog.lastRenderEvent && /* @__PURE__ */ jsx36(
|
|
4468
4779
|
"div",
|
|
4469
4780
|
{
|
|
4470
4781
|
className: "rf-text-xs rf-text-gray-500 rf-truncate rf-min-w-0",
|
|
@@ -4472,16 +4783,16 @@ var CircuitJsonPreview = ({
|
|
|
4472
4783
|
children: renderLog.lastRenderEvent?.phase ?? ""
|
|
4473
4784
|
}
|
|
4474
4785
|
),
|
|
4475
|
-
/* @__PURE__ */
|
|
4476
|
-
/* @__PURE__ */
|
|
4786
|
+
/* @__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" }) }),
|
|
4787
|
+
/* @__PURE__ */ jsxs26("div", { className: "rf-text-xs rf-font-bold rf-text-gray-700 rf-tabular-nums rf-flex-shrink-0", children: [
|
|
4477
4788
|
((renderLog.progress ?? 0) * 100).toFixed(1),
|
|
4478
4789
|
"%"
|
|
4479
4790
|
] })
|
|
4480
4791
|
] }),
|
|
4481
|
-
showRightHeaderContent && /* @__PURE__ */
|
|
4482
|
-
showCodeTab && /* @__PURE__ */
|
|
4483
|
-
!availableTabs || availableTabs.includes("pcb") ? /* @__PURE__ */
|
|
4484
|
-
circuitJson && /* @__PURE__ */
|
|
4792
|
+
showRightHeaderContent && /* @__PURE__ */ jsxs26(TabsList, { children: [
|
|
4793
|
+
showCodeTab && /* @__PURE__ */ jsx36(TabsTrigger, { value: "code", children: "Code" }),
|
|
4794
|
+
!availableTabs || availableTabs.includes("pcb") ? /* @__PURE__ */ jsxs26(TabsTrigger, { value: "pcb", className: "rf-whitespace-nowrap", children: [
|
|
4795
|
+
circuitJson && /* @__PURE__ */ jsx36(
|
|
4485
4796
|
"span",
|
|
4486
4797
|
{
|
|
4487
4798
|
className: cn(
|
|
@@ -4492,13 +4803,13 @@ var CircuitJsonPreview = ({
|
|
|
4492
4803
|
),
|
|
4493
4804
|
"PCB"
|
|
4494
4805
|
] }) : null,
|
|
4495
|
-
!availableTabs || availableTabs.includes("schematic") ? /* @__PURE__ */
|
|
4806
|
+
!availableTabs || availableTabs.includes("schematic") ? /* @__PURE__ */ jsxs26(
|
|
4496
4807
|
TabsTrigger,
|
|
4497
4808
|
{
|
|
4498
4809
|
value: "schematic",
|
|
4499
4810
|
className: "rf-whitespace-nowrap",
|
|
4500
4811
|
children: [
|
|
4501
|
-
circuitJson && /* @__PURE__ */
|
|
4812
|
+
circuitJson && /* @__PURE__ */ jsx36(
|
|
4502
4813
|
"span",
|
|
4503
4814
|
{
|
|
4504
4815
|
className: cn(
|
|
@@ -4511,8 +4822,8 @@ var CircuitJsonPreview = ({
|
|
|
4511
4822
|
]
|
|
4512
4823
|
}
|
|
4513
4824
|
) : null,
|
|
4514
|
-
!availableTabs || availableTabs.includes("cad") ? /* @__PURE__ */
|
|
4515
|
-
circuitJson && /* @__PURE__ */
|
|
4825
|
+
!availableTabs || availableTabs.includes("cad") ? /* @__PURE__ */ jsxs26(TabsTrigger, { value: "cad", children: [
|
|
4826
|
+
circuitJson && /* @__PURE__ */ jsx36(
|
|
4516
4827
|
"span",
|
|
4517
4828
|
{
|
|
4518
4829
|
className: cn(
|
|
@@ -4523,34 +4834,34 @@ var CircuitJsonPreview = ({
|
|
|
4523
4834
|
),
|
|
4524
4835
|
"3D"
|
|
4525
4836
|
] }) : null,
|
|
4526
|
-
!["pcb", "cad", "schematic"].includes(activeTab) && /* @__PURE__ */
|
|
4527
|
-
/* @__PURE__ */
|
|
4528
|
-
/* @__PURE__ */
|
|
4529
|
-
/* @__PURE__ */
|
|
4530
|
-
(circuitJsonErrors && circuitJsonErrors.length > 0 || errorMessage) && /* @__PURE__ */
|
|
4837
|
+
!["pcb", "cad", "schematic"].includes(activeTab) && /* @__PURE__ */ jsx36(TabsTrigger, { value: activeTab, children: capitalizeFirstLetters(activeTab) }),
|
|
4838
|
+
/* @__PURE__ */ jsxs26(DropdownMenu, { children: [
|
|
4839
|
+
/* @__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: [
|
|
4840
|
+
/* @__PURE__ */ jsx36(EllipsisIcon, { className: "rf-w-4 rf-h-4" }),
|
|
4841
|
+
(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
4842
|
] }) }),
|
|
4532
|
-
/* @__PURE__ */
|
|
4843
|
+
/* @__PURE__ */ jsxs26(DropdownMenuContent, { className: "rf-*:text-xs rf-z-[101]", children: [
|
|
4533
4844
|
dropdownMenuItems.filter(
|
|
4534
4845
|
(item) => !availableTabs || availableTabs.includes(item)
|
|
4535
|
-
).map((item) => /* @__PURE__ */
|
|
4846
|
+
).map((item) => /* @__PURE__ */ jsxs26(
|
|
4536
4847
|
DropdownMenuItem,
|
|
4537
4848
|
{
|
|
4538
4849
|
onSelect: () => setActiveTab(item),
|
|
4539
4850
|
children: [
|
|
4540
|
-
activeTab !== item && /* @__PURE__ */
|
|
4541
|
-
activeTab === item && /* @__PURE__ */
|
|
4542
|
-
/* @__PURE__ */
|
|
4543
|
-
item === "errors" && (circuitJsonErrors && circuitJsonErrors.length > 0 || errorMessage) && /* @__PURE__ */
|
|
4851
|
+
activeTab !== item && /* @__PURE__ */ jsx36(Circle2, { className: "rf-w-3 rf-h-3 rf-opacity-30" }),
|
|
4852
|
+
activeTab === item && /* @__PURE__ */ jsx36(CheckIcon, { className: "rf-w-3 rf-h-3" }),
|
|
4853
|
+
/* @__PURE__ */ jsx36("div", { className: "rf-pr-2", children: capitalizeFirstLetters(item) }),
|
|
4854
|
+
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
4855
|
]
|
|
4545
4856
|
},
|
|
4546
4857
|
item
|
|
4547
4858
|
)),
|
|
4548
|
-
/* @__PURE__ */
|
|
4859
|
+
/* @__PURE__ */ jsx36(
|
|
4549
4860
|
DropdownMenuItem,
|
|
4550
4861
|
{
|
|
4551
4862
|
disabled: true,
|
|
4552
4863
|
className: "rf-opacity-60 rf-cursor-default rf-select-none",
|
|
4553
|
-
children: /* @__PURE__ */
|
|
4864
|
+
children: /* @__PURE__ */ jsxs26("div", { className: "rf-pr-2 rf-text-xs rf-text-gray-500", children: [
|
|
4554
4865
|
"@tscircuit/runframe@",
|
|
4555
4866
|
version.split(".").map(
|
|
4556
4867
|
(part, i) => i === 2 ? parseInt(part) + 1 : part
|
|
@@ -4558,17 +4869,17 @@ var CircuitJsonPreview = ({
|
|
|
4558
4869
|
] })
|
|
4559
4870
|
}
|
|
4560
4871
|
),
|
|
4561
|
-
allowSelectingVersion ? /* @__PURE__ */
|
|
4872
|
+
allowSelectingVersion ? /* @__PURE__ */ jsxs26(
|
|
4562
4873
|
DropdownMenuSub,
|
|
4563
4874
|
{
|
|
4564
4875
|
onOpenChange: (open) => !open && setEvalSearch(""),
|
|
4565
4876
|
children: [
|
|
4566
|
-
/* @__PURE__ */
|
|
4877
|
+
/* @__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
4878
|
"@tscircuit/eval@",
|
|
4568
4879
|
lastRunEvalVersion ?? latestVersion ?? "latest"
|
|
4569
4880
|
] }) }),
|
|
4570
|
-
/* @__PURE__ */
|
|
4571
|
-
/* @__PURE__ */
|
|
4881
|
+
/* @__PURE__ */ jsx36(DropdownMenuPortal, { children: /* @__PURE__ */ jsxs26(DropdownMenuSubContent, { className: "rf-*:text-xs rf-w-40 rf-max-h-[200px] rf-overflow-y-auto", children: [
|
|
4882
|
+
/* @__PURE__ */ jsx36("div", { className: "rf-p-1", children: /* @__PURE__ */ jsx36(
|
|
4572
4883
|
Input,
|
|
4573
4884
|
{
|
|
4574
4885
|
value: evalSearch,
|
|
@@ -4577,15 +4888,15 @@ var CircuitJsonPreview = ({
|
|
|
4577
4888
|
className: "rf-h-7 rf-text-xs"
|
|
4578
4889
|
}
|
|
4579
4890
|
) }),
|
|
4580
|
-
/* @__PURE__ */
|
|
4581
|
-
/* @__PURE__ */
|
|
4891
|
+
/* @__PURE__ */ jsx36(DropdownMenuSeparator, {}),
|
|
4892
|
+
/* @__PURE__ */ jsx36(
|
|
4582
4893
|
DropdownMenuItem,
|
|
4583
4894
|
{
|
|
4584
4895
|
onSelect: () => selectEvalVersion(null),
|
|
4585
4896
|
children: latestVersion ? `${latestVersion} (latest)` : "latest"
|
|
4586
4897
|
}
|
|
4587
4898
|
),
|
|
4588
|
-
evalVersions.map((v) => /* @__PURE__ */
|
|
4899
|
+
evalVersions.map((v) => /* @__PURE__ */ jsx36(
|
|
4589
4900
|
DropdownMenuItem,
|
|
4590
4901
|
{
|
|
4591
4902
|
onSelect: () => selectEvalVersion(v),
|
|
@@ -4596,12 +4907,12 @@ var CircuitJsonPreview = ({
|
|
|
4596
4907
|
] }) })
|
|
4597
4908
|
]
|
|
4598
4909
|
}
|
|
4599
|
-
) : lastRunEvalVersion && /* @__PURE__ */
|
|
4910
|
+
) : lastRunEvalVersion && /* @__PURE__ */ jsx36(
|
|
4600
4911
|
DropdownMenuItem,
|
|
4601
4912
|
{
|
|
4602
4913
|
disabled: true,
|
|
4603
4914
|
className: "rf-opacity-60 rf-cursor-default rf-select-none",
|
|
4604
|
-
children: /* @__PURE__ */
|
|
4915
|
+
children: /* @__PURE__ */ jsxs26("div", { className: "rf-pr-2 rf-text-xs rf-text-gray-500", children: [
|
|
4605
4916
|
"@tscircuit/eval@",
|
|
4606
4917
|
lastRunEvalVersion
|
|
4607
4918
|
] })
|
|
@@ -4610,33 +4921,33 @@ var CircuitJsonPreview = ({
|
|
|
4610
4921
|
] })
|
|
4611
4922
|
] })
|
|
4612
4923
|
] }),
|
|
4613
|
-
showToggleFullScreen && /* @__PURE__ */
|
|
4924
|
+
showToggleFullScreen && /* @__PURE__ */ jsx36(Button, { onClick: toggleFullScreen, variant: "ghost", children: isFullScreen ? /* @__PURE__ */ jsx36(MinimizeIcon, { size: 16 }) : /* @__PURE__ */ jsx36(FullscreenIcon, { size: 16 }) })
|
|
4614
4925
|
]
|
|
4615
4926
|
}
|
|
4616
4927
|
),
|
|
4617
|
-
showCodeTab && /* @__PURE__ */
|
|
4928
|
+
showCodeTab && /* @__PURE__ */ jsx36(
|
|
4618
4929
|
TabsContent,
|
|
4619
4930
|
{
|
|
4620
4931
|
value: "code",
|
|
4621
4932
|
className: "rf-flex-grow rf-overflow-hidden",
|
|
4622
|
-
children: /* @__PURE__ */
|
|
4933
|
+
children: /* @__PURE__ */ jsx36("div", { className: "rf-h-full", children: codeTabContent })
|
|
4623
4934
|
}
|
|
4624
4935
|
),
|
|
4625
|
-
(!availableTabs || availableTabs.includes("pcb")) && /* @__PURE__ */
|
|
4936
|
+
(!availableTabs || availableTabs.includes("pcb")) && /* @__PURE__ */ jsx36(TabsContent, { value: "pcb", children: /* @__PURE__ */ jsx36(
|
|
4626
4937
|
"div",
|
|
4627
4938
|
{
|
|
4628
4939
|
className: cn(
|
|
4629
4940
|
"rf-overflow-hidden",
|
|
4630
4941
|
isFullScreen ? "rf-h-[calc(100vh-52px)]" : "rf-h-full"
|
|
4631
4942
|
),
|
|
4632
|
-
children: /* @__PURE__ */
|
|
4943
|
+
children: /* @__PURE__ */ jsx36(
|
|
4633
4944
|
ErrorBoundary,
|
|
4634
4945
|
{
|
|
4635
|
-
fallbackRender: ({ error }) => /* @__PURE__ */
|
|
4636
|
-
/* @__PURE__ */
|
|
4637
|
-
/* @__PURE__ */
|
|
4946
|
+
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: [
|
|
4947
|
+
/* @__PURE__ */ jsx36("h3", { className: "rf-text-lg rf-font-semibold rf-text-red-800 rf-mb-3", children: "Error loading PCB viewer" }),
|
|
4948
|
+
/* @__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
4949
|
] }) }),
|
|
4639
|
-
children: circuitJson ? /* @__PURE__ */
|
|
4950
|
+
children: circuitJson ? /* @__PURE__ */ jsx36(
|
|
4640
4951
|
PcbViewerWithContainerHeight,
|
|
4641
4952
|
{
|
|
4642
4953
|
focusOnHover: false,
|
|
@@ -4654,19 +4965,19 @@ var CircuitJsonPreview = ({
|
|
|
4654
4965
|
}
|
|
4655
4966
|
}
|
|
4656
4967
|
}
|
|
4657
|
-
) : /* @__PURE__ */
|
|
4968
|
+
) : /* @__PURE__ */ jsx36(PreviewEmptyState_default, { onRunClicked })
|
|
4658
4969
|
}
|
|
4659
4970
|
)
|
|
4660
4971
|
}
|
|
4661
4972
|
) }),
|
|
4662
|
-
(!availableTabs || availableTabs.includes("assembly")) && /* @__PURE__ */
|
|
4973
|
+
(!availableTabs || availableTabs.includes("assembly")) && /* @__PURE__ */ jsx36(TabsContent, { value: "assembly", children: /* @__PURE__ */ jsx36(
|
|
4663
4974
|
"div",
|
|
4664
4975
|
{
|
|
4665
4976
|
className: cn(
|
|
4666
4977
|
"rf-overflow-auto",
|
|
4667
4978
|
isFullScreen ? "rf-h-screen" : "rf-h-full rf-min-h-[620px]"
|
|
4668
4979
|
),
|
|
4669
|
-
children: /* @__PURE__ */
|
|
4980
|
+
children: /* @__PURE__ */ jsx36(ErrorBoundary, { fallback: /* @__PURE__ */ jsx36("div", { children: "Error loading Assembly" }), children: circuitJson ? /* @__PURE__ */ jsx36(
|
|
4670
4981
|
AssemblyViewer,
|
|
4671
4982
|
{
|
|
4672
4983
|
circuitJson,
|
|
@@ -4676,21 +4987,21 @@ var CircuitJsonPreview = ({
|
|
|
4676
4987
|
editingEnabled: true,
|
|
4677
4988
|
debugGrid: true
|
|
4678
4989
|
}
|
|
4679
|
-
) : /* @__PURE__ */
|
|
4990
|
+
) : /* @__PURE__ */ jsx36(PreviewEmptyState_default, { onRunClicked }) })
|
|
4680
4991
|
}
|
|
4681
4992
|
) }),
|
|
4682
|
-
(!availableTabs || availableTabs.includes("pinout")) && /* @__PURE__ */
|
|
4993
|
+
(!availableTabs || availableTabs.includes("pinout")) && /* @__PURE__ */ jsx36(TabsContent, { value: "pinout", children: /* @__PURE__ */ jsx36(
|
|
4683
4994
|
"div",
|
|
4684
4995
|
{
|
|
4685
4996
|
className: cn(
|
|
4686
4997
|
"rf-overflow-auto",
|
|
4687
4998
|
isFullScreen ? "rf-h-screen" : "rf-h-full rf-min-h-[620px]"
|
|
4688
4999
|
),
|
|
4689
|
-
children: /* @__PURE__ */
|
|
5000
|
+
children: /* @__PURE__ */ jsx36(
|
|
4690
5001
|
ErrorBoundary,
|
|
4691
5002
|
{
|
|
4692
|
-
fallback: /* @__PURE__ */
|
|
4693
|
-
children: circuitJson ? /* @__PURE__ */
|
|
5003
|
+
fallback: /* @__PURE__ */ jsx36("div", { children: "Error loading Pinout Viewer" }),
|
|
5004
|
+
children: circuitJson ? /* @__PURE__ */ jsx36(
|
|
4694
5005
|
PinoutViewer,
|
|
4695
5006
|
{
|
|
4696
5007
|
circuitJson,
|
|
@@ -4698,26 +5009,26 @@ var CircuitJsonPreview = ({
|
|
|
4698
5009
|
height: "100%"
|
|
4699
5010
|
}
|
|
4700
5011
|
}
|
|
4701
|
-
) : /* @__PURE__ */
|
|
5012
|
+
) : /* @__PURE__ */ jsx36(PreviewEmptyState_default, { onRunClicked })
|
|
4702
5013
|
}
|
|
4703
5014
|
)
|
|
4704
5015
|
}
|
|
4705
5016
|
) }),
|
|
4706
|
-
(!availableTabs || availableTabs.includes("schematic")) && /* @__PURE__ */
|
|
5017
|
+
(!availableTabs || availableTabs.includes("schematic")) && /* @__PURE__ */ jsx36(TabsContent, { value: "schematic", children: /* @__PURE__ */ jsx36(
|
|
4707
5018
|
"div",
|
|
4708
5019
|
{
|
|
4709
5020
|
className: cn(
|
|
4710
5021
|
"rf-overflow-auto rf-bg-white",
|
|
4711
5022
|
isFullScreen ? "rf-h-screen" : "rf-h-full rf-min-h-[620px]"
|
|
4712
5023
|
),
|
|
4713
|
-
children: /* @__PURE__ */
|
|
5024
|
+
children: /* @__PURE__ */ jsx36(
|
|
4714
5025
|
ErrorBoundary,
|
|
4715
5026
|
{
|
|
4716
|
-
fallbackRender: ({ error }) => /* @__PURE__ */
|
|
4717
|
-
/* @__PURE__ */
|
|
4718
|
-
/* @__PURE__ */
|
|
5027
|
+
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: [
|
|
5028
|
+
/* @__PURE__ */ jsx36("h3", { className: "rf-text-lg rf-font-semibold rf-text-red-800 rf-mb-3", children: "Error loading Schematic" }),
|
|
5029
|
+
/* @__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
5030
|
] }) }),
|
|
4720
|
-
children: circuitJson ? /* @__PURE__ */
|
|
5031
|
+
children: circuitJson ? /* @__PURE__ */ jsx36(
|
|
4721
5032
|
SchematicViewer,
|
|
4722
5033
|
{
|
|
4723
5034
|
spiceSimulationEnabled: true,
|
|
@@ -4731,65 +5042,65 @@ var CircuitJsonPreview = ({
|
|
|
4731
5042
|
},
|
|
4732
5043
|
debugGrid: showSchematicDebugGrid
|
|
4733
5044
|
}
|
|
4734
|
-
) : /* @__PURE__ */
|
|
5045
|
+
) : /* @__PURE__ */ jsx36(PreviewEmptyState_default, { onRunClicked })
|
|
4735
5046
|
}
|
|
4736
5047
|
)
|
|
4737
5048
|
}
|
|
4738
5049
|
) }),
|
|
4739
|
-
(!availableTabs || availableTabs.includes("cad")) && /* @__PURE__ */
|
|
5050
|
+
(!availableTabs || availableTabs.includes("cad")) && /* @__PURE__ */ jsx36(TabsContent, { value: "cad", children: /* @__PURE__ */ jsx36(
|
|
4740
5051
|
"div",
|
|
4741
5052
|
{
|
|
4742
5053
|
className: cn(
|
|
4743
5054
|
"rf-overflow-auto",
|
|
4744
5055
|
isFullScreen ? "rf-h-screen" : "rf-h-full rf-min-h-[620px]"
|
|
4745
5056
|
),
|
|
4746
|
-
children: /* @__PURE__ */
|
|
5057
|
+
children: /* @__PURE__ */ jsx36(ErrorBoundary, { FallbackComponent: ErrorFallback, children: circuitJson ? /* @__PURE__ */ jsx36(
|
|
4747
5058
|
CadViewer,
|
|
4748
5059
|
{
|
|
4749
5060
|
ref: setCadViewerRef,
|
|
4750
5061
|
circuitJson,
|
|
4751
5062
|
autoRotateDisabled: autoRotate3dViewerDisabled
|
|
4752
5063
|
}
|
|
4753
|
-
) : /* @__PURE__ */
|
|
5064
|
+
) : /* @__PURE__ */ jsx36(PreviewEmptyState_default, { onRunClicked }) })
|
|
4754
5065
|
}
|
|
4755
5066
|
) }),
|
|
4756
|
-
(!availableTabs || availableTabs.includes("bom")) && /* @__PURE__ */
|
|
5067
|
+
(!availableTabs || availableTabs.includes("bom")) && /* @__PURE__ */ jsx36(TabsContent, { value: "bom", children: /* @__PURE__ */ jsx36(
|
|
4757
5068
|
"div",
|
|
4758
5069
|
{
|
|
4759
5070
|
className: cn(
|
|
4760
5071
|
"rf-overflow-auto",
|
|
4761
5072
|
isFullScreen ? "rf-h-screen" : "rf-h-full rf-min-h-[620px]"
|
|
4762
5073
|
),
|
|
4763
|
-
children: /* @__PURE__ */
|
|
5074
|
+
children: /* @__PURE__ */ jsx36(
|
|
4764
5075
|
ErrorBoundary,
|
|
4765
5076
|
{
|
|
4766
|
-
fallbackRender: ({ error }) => /* @__PURE__ */
|
|
4767
|
-
/* @__PURE__ */
|
|
4768
|
-
/* @__PURE__ */
|
|
5077
|
+
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: [
|
|
5078
|
+
/* @__PURE__ */ jsx36("h3", { className: "rf-text-lg rf-font-semibold rf-text-red-800 rf-mb-3", children: "Error loading Bill of Materials" }),
|
|
5079
|
+
/* @__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
5080
|
] }) }),
|
|
4770
|
-
children: circuitJson ? /* @__PURE__ */
|
|
5081
|
+
children: circuitJson ? /* @__PURE__ */ jsx36(BomTable, { circuitJson }) : /* @__PURE__ */ jsx36(PreviewEmptyState_default, { onRunClicked })
|
|
4771
5082
|
}
|
|
4772
5083
|
)
|
|
4773
5084
|
}
|
|
4774
5085
|
) }),
|
|
4775
|
-
(!availableTabs || availableTabs.includes("circuit_json")) && /* @__PURE__ */
|
|
5086
|
+
(!availableTabs || availableTabs.includes("circuit_json")) && /* @__PURE__ */ jsx36(TabsContent, { value: "circuit_json", children: /* @__PURE__ */ jsx36(
|
|
4776
5087
|
"div",
|
|
4777
5088
|
{
|
|
4778
5089
|
className: cn(
|
|
4779
5090
|
"rf-overflow-auto",
|
|
4780
5091
|
isFullScreen ? "rf-h-screen" : "rf-h-full rf-min-h-[620px]"
|
|
4781
5092
|
),
|
|
4782
|
-
children: /* @__PURE__ */
|
|
5093
|
+
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
5094
|
}
|
|
4784
5095
|
) }),
|
|
4785
|
-
(!availableTabs || availableTabs.includes("errors")) && /* @__PURE__ */
|
|
5096
|
+
(!availableTabs || availableTabs.includes("errors")) && /* @__PURE__ */ jsx36(TabsContent, { value: "errors", children: /* @__PURE__ */ jsx36(
|
|
4786
5097
|
"div",
|
|
4787
5098
|
{
|
|
4788
5099
|
className: cn(
|
|
4789
5100
|
"rf-overflow-auto",
|
|
4790
5101
|
isFullScreen ? "rf-h-screen" : "rf-h-full rf-min-h-[620px]"
|
|
4791
5102
|
),
|
|
4792
|
-
children: errorMessage || circuitJsonErrors && circuitJsonErrors.length > 0 || circuitJson ? /* @__PURE__ */
|
|
5103
|
+
children: errorMessage || circuitJsonErrors && circuitJsonErrors.length > 0 || circuitJson ? /* @__PURE__ */ jsx36(
|
|
4793
5104
|
ErrorTabContent,
|
|
4794
5105
|
{
|
|
4795
5106
|
code,
|
|
@@ -4803,10 +5114,10 @@ var CircuitJsonPreview = ({
|
|
|
4803
5114
|
autoroutingLog,
|
|
4804
5115
|
onReportAutoroutingLog
|
|
4805
5116
|
}
|
|
4806
|
-
) : /* @__PURE__ */
|
|
5117
|
+
) : /* @__PURE__ */ jsx36(PreviewEmptyState_default, { onRunClicked })
|
|
4807
5118
|
}
|
|
4808
5119
|
) }),
|
|
4809
|
-
showRenderLogTab && (!availableTabs || availableTabs.includes("render_log")) && /* @__PURE__ */
|
|
5120
|
+
showRenderLogTab && (!availableTabs || availableTabs.includes("render_log")) && /* @__PURE__ */ jsx36(TabsContent, { value: "render_log", children: /* @__PURE__ */ jsx36(
|
|
4810
5121
|
RenderLogViewer,
|
|
4811
5122
|
{
|
|
4812
5123
|
renderLog,
|