@tscircuit/runframe 0.0.226 → 0.0.228

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.
@@ -85,7 +85,7 @@ var ErrorFallback = ({ error }) => {
85
85
  // lib/components/CircuitJsonPreview/CircuitJsonPreview.tsx
86
86
  import { ErrorBoundary } from "react-error-boundary";
87
87
 
88
- // lib/components/ErrorTabContent.tsx
88
+ // lib/components/ErrorTabContent/ErrorTabContent.tsx
89
89
  import { GitHubLogoIcon } from "@radix-ui/react-icons";
90
90
  import { ClipboardIcon } from "lucide-react";
91
91
 
@@ -134,26 +134,257 @@ var Button = React3.forwardRef(
134
134
  );
135
135
  Button.displayName = "Button";
136
136
 
137
- // lib/components/ErrorTabContent.tsx
138
- import { Fragment, jsx as jsx4, jsxs as jsxs2 } from "react/jsx-runtime";
137
+ // lib/components/ErrorTabContent/ErrorTabContent.tsx
138
+ import { createSnippetUrl } from "@tscircuit/create-snippet-url";
139
+
140
+ // lib/components/ErrorTabContent/AutoroutingLogOptions.tsx
141
+ import { CircuitBoardIcon, DownloadIcon, UploadIcon } from "lucide-react";
142
+
143
+ // lib/components/ui/dropdown-menu.tsx
144
+ import * as React4 from "react";
145
+ import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
146
+ import { Check, ChevronRight, Circle } from "lucide-react";
147
+ import { jsx as jsx4, jsxs as jsxs2 } from "react/jsx-runtime";
148
+ var DropdownMenu = DropdownMenuPrimitive.Root;
149
+ var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
150
+ var DropdownMenuPortal = DropdownMenuPrimitive.Portal;
151
+ var DropdownMenuSub = DropdownMenuPrimitive.Sub;
152
+ var DropdownMenuSubTrigger = React4.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs2(
153
+ DropdownMenuPrimitive.SubTrigger,
154
+ {
155
+ ref,
156
+ className: cn(
157
+ "rf-flex rf-cursor-default rf-gap-2 rf-select-none rf-items-center rf-rounded-sm rf-px-2 rf-py-1.5 rf-text-sm rf-outline-none focus:rf-bg-zinc-100 data-[state=open]:rf-bg-zinc-100 [&_svg]:rf-pointer-events-none [&_svg]:rf-size-4 [&_svg]:rf-shrink-0 dark:focus:rf-bg-zinc-800 dark:data-[state=open]:rf-bg-zinc-800",
158
+ inset && "rf-pl-8",
159
+ className
160
+ ),
161
+ ...props,
162
+ children: [
163
+ children,
164
+ /* @__PURE__ */ jsx4(ChevronRight, { className: "rf-ml-auto" })
165
+ ]
166
+ }
167
+ ));
168
+ DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
169
+ var DropdownMenuSubContent = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx4(
170
+ DropdownMenuPrimitive.SubContent,
171
+ {
172
+ ref,
173
+ className: cn(
174
+ "rf-z-50 rf-min-w-[8rem] rf-overflow-hidden rf-rounded-md rf-border rf-border-zinc-200 rf-bg-white rf-p-1 rf-text-zinc-950 rf-shadow-lg data-[state=open]:rf-animate-in data-[state=closed]:rf-animate-out data-[state=closed]:rf-fade-out-0 data-[state=open]:rf-fade-in-0 data-[state=closed]:rf-zoom-out-95 data-[state=open]:rf-zoom-in-95 data-[side=bottom]:rf-slide-in-from-top-2 data-[side=left]:rf-slide-in-from-right-2 data-[side=right]:rf-slide-in-from-left-2 data-[side=top]:rf-slide-in-from-bottom-2 dark:rf-border-zinc-800 dark:rf-bg-zinc-950 dark:rf-text-zinc-50",
175
+ className
176
+ ),
177
+ ...props
178
+ }
179
+ ));
180
+ DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
181
+ var DropdownMenuContent = React4.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx4(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx4(
182
+ DropdownMenuPrimitive.Content,
183
+ {
184
+ ref,
185
+ sideOffset,
186
+ className: cn(
187
+ "rf-z-50 rf-min-w-[8rem] rf-overflow-hidden rf-rounded-md rf-border rf-border-zinc-200 rf-bg-white rf-p-1 rf-text-zinc-950 rf-shadow-md dark:rf-border-zinc-800 dark:rf-bg-zinc-950 dark:rf-text-zinc-50",
188
+ "data-[state=open]:rf-animate-in data-[state=closed]:rf-animate-out data-[state=closed]:rf-fade-out-0 data-[state=open]:rf-fade-in-0 data-[state=closed]:rf-zoom-out-95 data-[state=open]:rf-zoom-in-95 data-[side=bottom]:rf-slide-in-from-top-2 data-[side=left]:rf-slide-in-from-right-2 data-[side=right]:rf-slide-in-from-left-2 data-[side=top]:rf-slide-in-from-bottom-2",
189
+ className
190
+ ),
191
+ ...props
192
+ }
193
+ ) }));
194
+ DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
195
+ var DropdownMenuItem = React4.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx4(
196
+ DropdownMenuPrimitive.Item,
197
+ {
198
+ ref,
199
+ className: cn(
200
+ "rf-relative rf-flex rf-cursor-default rf-select-none rf-items-center rf-gap-2 rf-rounded-sm rf-px-2 rf-py-1.5 rf-text-sm rf-outline-none rf-transition-colors focus:rf-bg-zinc-100 focus:rf-text-zinc-900 data-[disabled]:rf-pointer-events-none data-[disabled]:rf-opacity-50 [&>svg]:rf-size-4 [&>svg]:rf-shrink-0 dark:focus:rf-bg-zinc-800 dark:focus:rf-text-zinc-50",
201
+ inset && "rf-pl-8",
202
+ className
203
+ ),
204
+ ...props
205
+ }
206
+ ));
207
+ DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
208
+ var DropdownMenuCheckboxItem = React4.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs2(
209
+ DropdownMenuPrimitive.CheckboxItem,
210
+ {
211
+ ref,
212
+ className: cn(
213
+ "rf-relative rf-flex rf-cursor-default rf-select-none rf-items-center rf-rounded-sm rf-py-1.5 rf-pl-8 rf-pr-2 rf-text-sm rf-outline-none rf-transition-colors focus:rf-bg-zinc-100 focus:rf-text-zinc-900 data-[disabled]:rf-pointer-events-none data-[disabled]:rf-opacity-50 dark:focus:rf-bg-zinc-800 dark:focus:rf-text-zinc-50",
214
+ className
215
+ ),
216
+ checked,
217
+ ...props,
218
+ children: [
219
+ /* @__PURE__ */ jsx4("span", { className: "rf-absolute rf-left-2 rf-flex rf-h-3.5 rf-w-3.5 rf-items-center rf-justify-center", children: /* @__PURE__ */ jsx4(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx4(Check, { className: "rf-h-4 rf-w-4" }) }) }),
220
+ children
221
+ ]
222
+ }
223
+ ));
224
+ DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
225
+ var DropdownMenuRadioItem = React4.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs2(
226
+ DropdownMenuPrimitive.RadioItem,
227
+ {
228
+ ref,
229
+ className: cn(
230
+ "rf-relative rf-flex rf-cursor-default rf-select-none rf-items-center rf-rounded-sm rf-py-1.5 rf-pl-8 rf-pr-2 rf-text-sm rf-outline-none rf-transition-colors focus:rf-bg-zinc-100 focus:rf-text-zinc-900 data-[disabled]:rf-pointer-events-none data-[disabled]:rf-opacity-50 dark:focus:rf-bg-zinc-800 dark:focus:rf-text-zinc-50",
231
+ className
232
+ ),
233
+ ...props,
234
+ children: [
235
+ /* @__PURE__ */ jsx4("span", { className: "rf-absolute rf-left-2 rf-flex rf-h-3.5 rf-w-3.5 rf-items-center rf-justify-center", children: /* @__PURE__ */ jsx4(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx4(Circle, { className: "rf-h-2 rf-w-2 rf-fill-current" }) }) }),
236
+ children
237
+ ]
238
+ }
239
+ ));
240
+ DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
241
+ var DropdownMenuLabel = React4.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx4(
242
+ DropdownMenuPrimitive.Label,
243
+ {
244
+ ref,
245
+ className: cn(
246
+ "rf-px-2 rf-py-1.5 rf-text-sm rf-font-semibold",
247
+ inset && "rf-pl-8",
248
+ className
249
+ ),
250
+ ...props
251
+ }
252
+ ));
253
+ DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
254
+ var DropdownMenuSeparator = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx4(
255
+ DropdownMenuPrimitive.Separator,
256
+ {
257
+ ref,
258
+ className: cn(
259
+ "rf--mx-1 rf-my-1 rf-h-px rf-bg-zinc-100 dark:rf-bg-zinc-800",
260
+ className
261
+ ),
262
+ ...props
263
+ }
264
+ ));
265
+ DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
266
+ var DropdownMenuShortcut = ({
267
+ className,
268
+ ...props
269
+ }) => {
270
+ return /* @__PURE__ */ jsx4(
271
+ "span",
272
+ {
273
+ className: cn(
274
+ "rf-ml-auto rf-text-xs rf-tracking-widest rf-opacity-60",
275
+ className
276
+ ),
277
+ ...props
278
+ }
279
+ );
280
+ };
281
+ DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
282
+
283
+ // lib/components/ErrorTabContent/AutoroutingLogOptions.tsx
284
+ import { Fragment, jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
285
+ var AutoroutingLogOptions = ({
286
+ autoroutingLog,
287
+ onReportAutoroutingLog
288
+ }) => /* @__PURE__ */ jsx5(Fragment, { children: Object.keys(autoroutingLog ?? {}).length > 0 && /* @__PURE__ */ jsxs3(DropdownMenu, { children: [
289
+ /* @__PURE__ */ jsx5(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs3(Button, { variant: "outline", children: [
290
+ /* @__PURE__ */ jsx5(CircuitBoardIcon, { className: "rf-w-4 rf-h-4 rf-mr-2" }),
291
+ "Open Autorouting Log"
292
+ ] }) }),
293
+ /* @__PURE__ */ jsx5(DropdownMenuContent, { className: "rf-w-96", children: Object.entries(autoroutingLog ?? {}).map(
294
+ ([key, { simpleRouteJson }]) => /* @__PURE__ */ jsxs3(
295
+ DropdownMenuItem,
296
+ {
297
+ className: "rf-flex rf-justify-between rf-items-center",
298
+ children: [
299
+ /* @__PURE__ */ jsx5("span", { className: "rf-truncate rf-text-xs rf-mr-2", children: key }),
300
+ /* @__PURE__ */ jsxs3("div", { className: "rf-flex rf-gap-2", children: [
301
+ /* @__PURE__ */ jsxs3(
302
+ Button,
303
+ {
304
+ variant: "outline",
305
+ size: "sm",
306
+ onClick: (e) => {
307
+ e.stopPropagation();
308
+ const blob = new Blob(
309
+ [JSON.stringify(simpleRouteJson, null, 2)],
310
+ { type: "application/json" }
311
+ );
312
+ const url = URL.createObjectURL(blob);
313
+ const a = document.createElement("a");
314
+ a.href = url;
315
+ a.download = `${key}-autorouting.json`;
316
+ a.click();
317
+ URL.revokeObjectURL(url);
318
+ },
319
+ children: [
320
+ /* @__PURE__ */ jsx5(DownloadIcon, { className: "rf-w-3 rf-h-3" }),
321
+ "Download"
322
+ ]
323
+ }
324
+ ),
325
+ onReportAutoroutingLog && /* @__PURE__ */ jsxs3(
326
+ Button,
327
+ {
328
+ variant: "outline",
329
+ size: "sm",
330
+ onClick: (e) => {
331
+ e.stopPropagation();
332
+ if (onReportAutoroutingLog) {
333
+ onReportAutoroutingLog(key, simpleRouteJson);
334
+ }
335
+ },
336
+ children: [
337
+ /* @__PURE__ */ jsx5(UploadIcon, { className: "rf-w-3 rf-h-3" }),
338
+ "Report Bug"
339
+ ]
340
+ }
341
+ )
342
+ ] })
343
+ ]
344
+ },
345
+ key
346
+ )
347
+ ) })
348
+ ] }) });
349
+
350
+ // lib/components/ErrorTabContent/ErrorTabContent.tsx
351
+ import { Fragment as Fragment2, jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
139
352
  var ErrorTabContent = ({
140
353
  code,
354
+ autoroutingLog,
141
355
  isStreaming,
142
- errorMessage
356
+ errorMessage,
357
+ onReportAutoroutingLog
143
358
  }) => {
144
359
  if (!errorMessage) {
145
- return /* @__PURE__ */ jsx4("div", { className: "rf-mt-4 rf-bg-green-50 rf-rounded-md rf-border rf-border-green-200", children: /* @__PURE__ */ jsxs2("div", { className: "rf-p-4", children: [
146
- /* @__PURE__ */ jsx4("h3", { className: "rf-text-lg rf-font-semibold rf-text-green-800 rf-mb-3", children: "No Errors \u{1F44C}" }),
147
- /* @__PURE__ */ jsx4("p", { className: "rf-text-sm rf-text-green-700", children: "Your code is running without any errors." })
148
- ] }) });
360
+ return /* @__PURE__ */ jsxs4("div", { className: "px-2", children: [
361
+ /* @__PURE__ */ jsx6("div", { className: "rf-mt-4 rf-bg-green-50 rf-rounded-md rf-border rf-border-green-200", children: /* @__PURE__ */ jsxs4("div", { className: "rf-p-4", children: [
362
+ /* @__PURE__ */ jsx6("h3", { className: "rf-text-lg rf-font-semibold rf-text-green-800 rf-mb-3", children: "No Errors \u{1F44C}" }),
363
+ /* @__PURE__ */ jsx6("p", { className: "rf-text-sm rf-text-green-700", children: "Your code is running without any errors." })
364
+ ] }) }),
365
+ /* @__PURE__ */ jsx6("div", { className: "rf-mt-4", children: /* @__PURE__ */ jsx6(
366
+ AutoroutingLogOptions,
367
+ {
368
+ autoroutingLog,
369
+ onReportAutoroutingLog
370
+ }
371
+ ) })
372
+ ] });
149
373
  }
150
- return /* @__PURE__ */ jsxs2(Fragment, { children: [
151
- /* @__PURE__ */ jsx4("div", { className: "rf-mt-4 rf-bg-red-50 rf-rounded-md rf-border rf-border-red-200 rf-max-h-[500px] rf-overflow-y-auto", children: /* @__PURE__ */ jsxs2("div", { className: "rf-p-4", children: [
152
- /* @__PURE__ */ jsx4("h3", { className: "rf-text-lg rf-font-semibold rf-text-red-800 rf-mb-3", children: "Error" }),
153
- /* @__PURE__ */ jsx4("p", { className: "rf-text-xs rf-font-mono rf-whitespace-pre-wrap rf-text-red-600 rf-mt-2", children: errorMessage })
374
+ return /* @__PURE__ */ jsxs4(Fragment2, { children: [
375
+ /* @__PURE__ */ jsx6("div", { className: "rf-mt-4 rf-bg-red-50 rf-rounded-md rf-border rf-border-red-200 rf-max-h-[500px] rf-overflow-y-auto rf-px-2", children: /* @__PURE__ */ jsxs4("div", { className: "rf-p-4", children: [
376
+ /* @__PURE__ */ jsx6("h3", { className: "rf-text-lg rf-font-semibold rf-text-red-800 rf-mb-3", children: "Error" }),
377
+ /* @__PURE__ */ jsx6("p", { className: "rf-text-xs rf-font-mono rf-whitespace-pre-wrap rf-text-red-600 rf-mt-2", children: errorMessage })
154
378
  ] }) }),
155
- /* @__PURE__ */ jsxs2("div", { className: "rf-flex rf-gap-2 rf-mt-4 rf-justify-end", children: [
156
- /* @__PURE__ */ jsxs2(
379
+ /* @__PURE__ */ jsxs4("div", { className: "rf-flex rf-gap-2 rf-mt-4 rf-justify-end", children: [
380
+ /* @__PURE__ */ jsx6(
381
+ AutoroutingLogOptions,
382
+ {
383
+ autoroutingLog,
384
+ onReportAutoroutingLog
385
+ }
386
+ ),
387
+ /* @__PURE__ */ jsxs4(
157
388
  Button,
158
389
  {
159
390
  variant: "outline",
@@ -163,22 +394,40 @@ var ErrorTabContent = ({
163
394
  alert("Error copied to clipboard!");
164
395
  },
165
396
  children: [
166
- /* @__PURE__ */ jsx4(ClipboardIcon, { className: "rf-w-4 rf-h-4" }),
397
+ /* @__PURE__ */ jsx6(ClipboardIcon, { className: "rf-w-4 rf-h-4" }),
167
398
  "Copy Error"
168
399
  ]
169
400
  }
170
401
  ),
171
- /* @__PURE__ */ jsxs2(
402
+ /* @__PURE__ */ jsxs4(
172
403
  Button,
173
404
  {
174
405
  variant: "outline",
175
406
  onClick: () => {
176
- window.alert(
177
- "Not supported yet! Please report/upvote an issue on github.com/tscircuit/tscircuit"
407
+ const title = `Error: ${errorMessage.replace("Render Error:", "").replace(/\"_errors\":\[\]/g, "").replace(/\{,/g, "{").replace(/"_errors":\[/g, "").replace(/[^a-zA-Z0-9 ]/g, " ").replace(/\s+/g, " ").replace(/ \d+ /g, " ").slice(0, 100)}`;
408
+ const url = createSnippetUrl(code ?? "");
409
+ let body = `[Snippet code to reproduce](${url})
410
+
411
+ ### Error
412
+ \`\`\`
413
+ ${errorMessage.slice(0, 600)}
414
+ \`\`\``;
415
+ if (body.length > 4e3) {
416
+ body = `\`\`\`tsx
417
+ // Please paste the code here\`\`\`
418
+
419
+ ### Error
420
+ \`\`\`
421
+ ${errorMessage.slice(0, 2e3)}
422
+ \`\`\``;
423
+ }
424
+ window.open(
425
+ `https://github.com/tscircuit/tscircuit.com/issues/new?title=${encodeURIComponent(title)}&body=${encodeURIComponent(body)}`,
426
+ "_blank"
178
427
  );
179
428
  },
180
429
  children: [
181
- /* @__PURE__ */ jsx4(GitHubLogoIcon, { className: "rf-w-4 rf-h-4" }),
430
+ /* @__PURE__ */ jsx6(GitHubLogoIcon, { className: "rf-w-4 rf-h-4" }),
182
431
  "Report Issue"
183
432
  ]
184
433
  }
@@ -193,17 +442,17 @@ import { AssemblyViewer } from "@tscircuit/assembly-viewer";
193
442
 
194
443
  // lib/components/PreviewEmptyState.tsx
195
444
  import { PlayIcon } from "lucide-react";
196
- import { jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
197
- var PreviewEmptyState = ({ onRunClicked }) => /* @__PURE__ */ jsxs3("div", { className: "rf-flex rf-items-center rf-gap-3 rf-bg-gray-100 rf-text-center rf-justify-center rf-py-10", children: [
445
+ import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
446
+ var PreviewEmptyState = ({ onRunClicked }) => /* @__PURE__ */ jsxs5("div", { className: "rf-flex rf-items-center rf-gap-3 rf-bg-gray-100 rf-text-center rf-justify-center rf-py-10", children: [
198
447
  "No circuit json loaded",
199
- onRunClicked && /* @__PURE__ */ jsxs3(
448
+ onRunClicked && /* @__PURE__ */ jsxs5(
200
449
  Button,
201
450
  {
202
451
  className: "rf-bg-blue-600 rf-hover:bg-blue-500",
203
452
  onClick: onRunClicked,
204
453
  children: [
205
454
  "Run Code",
206
- /* @__PURE__ */ jsx5(PlayIcon, { className: "rf-w-3 rf-h-3 rf-ml-2" })
455
+ /* @__PURE__ */ jsx7(PlayIcon, { className: "rf-w-3 rf-h-3 rf-ml-2" })
207
456
  ]
208
457
  }
209
458
  )
@@ -214,12 +463,12 @@ var PreviewEmptyState_default = PreviewEmptyState;
214
463
  import { useReducer, useState } from "react";
215
464
 
216
465
  // lib/components/CircuitJsonTableViewer/ClickableText.tsx
217
- import { jsx as jsx6 } from "react/jsx-runtime";
466
+ import { jsx as jsx8 } from "react/jsx-runtime";
218
467
  var ClickableText = ({
219
468
  text,
220
469
  onClick
221
470
  }) => {
222
- return /* @__PURE__ */ jsx6(
471
+ return /* @__PURE__ */ jsx8(
223
472
  "span",
224
473
  {
225
474
  className: "rf-cursor-pointer rf-underline rf-text-blue-600 rf-mx-2",
@@ -230,11 +479,11 @@ var ClickableText = ({
230
479
  };
231
480
 
232
481
  // lib/components/CircuitJsonTableViewer/HeaderCell.tsx
233
- import { jsx as jsx7, jsxs as jsxs4 } from "react/jsx-runtime";
482
+ import { jsx as jsx9, jsxs as jsxs6 } from "react/jsx-runtime";
234
483
  var HeaderCell = (p) => {
235
- return /* @__PURE__ */ jsxs4("div", { className: "rf-leading-5", children: [
236
- /* @__PURE__ */ jsx7("div", { className: "rf-py-2 rf-font-bold", children: p.column.name }),
237
- /* @__PURE__ */ jsx7("div", { children: p.field?.() ?? /* @__PURE__ */ jsx7(
484
+ return /* @__PURE__ */ jsxs6("div", { className: "rf-leading-5", children: [
485
+ /* @__PURE__ */ jsx9("div", { className: "rf-py-2 rf-font-bold", children: p.column.name }),
486
+ /* @__PURE__ */ jsx9("div", { children: p.field?.() ?? /* @__PURE__ */ jsx9(
238
487
  "input",
239
488
  {
240
489
  type: "text",
@@ -248,15 +497,15 @@ var HeaderCell = (p) => {
248
497
  };
249
498
 
250
499
  // lib/components/CircuitJsonTableViewer/Modal.tsx
251
- import { jsx as jsx8, jsxs as jsxs5 } from "react/jsx-runtime";
500
+ import { jsx as jsx10, jsxs as jsxs7 } from "react/jsx-runtime";
252
501
  var Modal = ({ open, children, title, onClose }) => {
253
502
  if (!open) return null;
254
- return /* @__PURE__ */ jsx8(
503
+ return /* @__PURE__ */ jsx10(
255
504
  "div",
256
505
  {
257
506
  className: "rf-fixed rf-inset-0 rf-bg-black rf-bg-opacity-50 rf-flex rf-justify-center rf-items-center rf-z-50",
258
507
  onClick: onClose,
259
- children: /* @__PURE__ */ jsxs5(
508
+ children: /* @__PURE__ */ jsxs7(
260
509
  "div",
261
510
  {
262
511
  className: "rf-bg-white rf-p-5 rf-rounded-lg rf-relative rf-w-11/12 rf-max-w-2xl",
@@ -265,8 +514,8 @@ var Modal = ({ open, children, title, onClose }) => {
265
514
  e.stopPropagation();
266
515
  },
267
516
  children: [
268
- /* @__PURE__ */ jsx8("h2", { className: "rf-mt-0 rf-text-md rf-pb-4", children: title }),
269
- /* @__PURE__ */ jsx8(
517
+ /* @__PURE__ */ jsx10("h2", { className: "rf-mt-0 rf-text-md rf-pb-4", children: title }),
518
+ /* @__PURE__ */ jsx10(
270
519
  "button",
271
520
  {
272
521
  type: "button",
@@ -285,7 +534,7 @@ var Modal = ({ open, children, title, onClose }) => {
285
534
  var Modal_default = Modal;
286
535
 
287
536
  // lib/components/CircuitJsonTableViewer/CircuitJsonTableViewer.tsx
288
- import { jsx as jsx9, jsxs as jsxs6 } from "react/jsx-runtime";
537
+ import { jsx as jsx11, jsxs as jsxs8 } from "react/jsx-runtime";
289
538
  var CircuitJsonTableViewer = ({
290
539
  elements
291
540
  }) => {
@@ -344,8 +593,8 @@ var CircuitJsonTableViewer = ({
344
593
  {
345
594
  key: "primary_id",
346
595
  name: "primary_id",
347
- renderCell: (row) => /* @__PURE__ */ jsxs6("div", { className: "rf-flex rf-items-center", children: [
348
- /* @__PURE__ */ jsx9(
596
+ renderCell: (row) => /* @__PURE__ */ jsxs8("div", { className: "rf-flex rf-items-center", children: [
597
+ /* @__PURE__ */ jsx11(
349
598
  ClickableText,
350
599
  {
351
600
  text: row.primary_id,
@@ -356,8 +605,8 @@ var CircuitJsonTableViewer = ({
356
605
  })
357
606
  }
358
607
  ),
359
- /* @__PURE__ */ jsx9("span", { className: "rf-flex-grow" }),
360
- /* @__PURE__ */ jsx9(
608
+ /* @__PURE__ */ jsx11("span", { className: "rf-flex-grow" }),
609
+ /* @__PURE__ */ jsx11(
361
610
  ClickableText,
362
611
  {
363
612
  text: "(JSON)",
@@ -369,16 +618,16 @@ var CircuitJsonTableViewer = ({
369
618
  }
370
619
  )
371
620
  ] }),
372
- renderHeaderCell: (col) => /* @__PURE__ */ jsx9(
621
+ renderHeaderCell: (col) => /* @__PURE__ */ jsx11(
373
622
  HeaderCell,
374
623
  {
375
624
  column: col,
376
625
  onTextChange: (v) => setFilter({ id_search: v }),
377
- field: !filters.focused_id ? void 0 : () => /* @__PURE__ */ jsxs6("div", { children: [
626
+ field: !filters.focused_id ? void 0 : () => /* @__PURE__ */ jsxs8("div", { children: [
378
627
  "Focus:",
379
628
  " ",
380
- /* @__PURE__ */ jsx9("span", { className: "rf-underline", children: filters.focused_id }),
381
- /* @__PURE__ */ jsx9(
629
+ /* @__PURE__ */ jsx11("span", { className: "rf-underline", children: filters.focused_id }),
630
+ /* @__PURE__ */ jsx11(
382
631
  ClickableText,
383
632
  {
384
633
  text: "(unfocus)",
@@ -392,21 +641,21 @@ var CircuitJsonTableViewer = ({
392
641
  {
393
642
  key: "type",
394
643
  name: "type",
395
- renderHeaderCell: (col) => /* @__PURE__ */ jsx9(
644
+ renderHeaderCell: (col) => /* @__PURE__ */ jsx11(
396
645
  HeaderCell,
397
646
  {
398
647
  column: col,
399
- field: () => /* @__PURE__ */ jsxs6(
648
+ field: () => /* @__PURE__ */ jsxs8(
400
649
  "select",
401
650
  {
402
651
  onChange: (e) => setFilter({ component_type_filter: e.target.value }),
403
652
  className: "rf-border rf-rounded rf-p-1 rf-w-full",
404
653
  children: [
405
- /* @__PURE__ */ jsx9("option", { value: "any", children: "any" }, "any"),
406
- /* @__PURE__ */ jsx9("option", { value: "source", children: "source" }, "source"),
407
- /* @__PURE__ */ jsx9("option", { value: "source/pcb", children: "source/pcb" }, "source/pcb"),
408
- /* @__PURE__ */ jsx9("option", { value: "source/schematic", children: "source/schematic" }, "source/schematic"),
409
- element_types.map((type) => /* @__PURE__ */ jsx9("option", { value: type, children: type }, type))
654
+ /* @__PURE__ */ jsx11("option", { value: "any", children: "any" }, "any"),
655
+ /* @__PURE__ */ jsx11("option", { value: "source", children: "source" }, "source"),
656
+ /* @__PURE__ */ jsx11("option", { value: "source/pcb", children: "source/pcb" }, "source/pcb"),
657
+ /* @__PURE__ */ jsx11("option", { value: "source/schematic", children: "source/schematic" }, "source/schematic"),
658
+ element_types.map((type) => /* @__PURE__ */ jsx11("option", { value: type, children: type }, type))
410
659
  ]
411
660
  }
412
661
  )
@@ -416,7 +665,7 @@ var CircuitJsonTableViewer = ({
416
665
  {
417
666
  key: "name",
418
667
  name: "name",
419
- renderHeaderCell: (col) => /* @__PURE__ */ jsx9(
668
+ renderHeaderCell: (col) => /* @__PURE__ */ jsx11(
420
669
  HeaderCell,
421
670
  {
422
671
  column: col,
@@ -427,7 +676,7 @@ var CircuitJsonTableViewer = ({
427
676
  {
428
677
  key: "selector_path",
429
678
  name: "selector_path",
430
- renderHeaderCell: (col) => /* @__PURE__ */ jsx9(
679
+ renderHeaderCell: (col) => /* @__PURE__ */ jsx11(
431
680
  HeaderCell,
432
681
  {
433
682
  column: col,
@@ -438,7 +687,7 @@ var CircuitJsonTableViewer = ({
438
687
  {
439
688
  key: "other_ids",
440
689
  name: "other_ids",
441
- renderCell: (row) => /* @__PURE__ */ jsx9("div", { className: "rf-space-x-2", children: Object.entries(row.other_ids).map(([other_id, v]) => /* @__PURE__ */ jsx9(
690
+ renderCell: (row) => /* @__PURE__ */ jsx11("div", { className: "rf-space-x-2", children: Object.entries(row.other_ids).map(([other_id, v]) => /* @__PURE__ */ jsx11(
442
691
  ClickableText,
443
692
  {
444
693
  text: v,
@@ -477,28 +726,28 @@ var CircuitJsonTableViewer = ({
477
726
  if (Object.values(e.other_ids).includes(filters.focused_id)) return true;
478
727
  return false;
479
728
  });
480
- return /* @__PURE__ */ jsxs6("div", { className: "rf-font-mono rf-text-xs rf-bg-white", children: [
481
- /* @__PURE__ */ jsx9("div", { className: "rf-overflow-x-auto", children: /* @__PURE__ */ jsxs6("table", { className: "rf-table-auto rf-w-full rf-text-left", children: [
482
- /* @__PURE__ */ jsx9("thead", { children: /* @__PURE__ */ jsx9("tr", { children: columns.map((col) => /* @__PURE__ */ jsx9("th", { className: "rf-px-4 rf-py-2 rf-border-b", children: col.renderHeaderCell ? col.renderHeaderCell(col) : col.name }, col.key)) }) }),
483
- /* @__PURE__ */ jsx9("tbody", { children: elements4.map((row, rowIndex) => /* @__PURE__ */ jsx9("tr", { className: "rf-hover:bg-gray-100", children: columns.map((col) => /* @__PURE__ */ jsx9("td", { className: "rf-px-4 rf-py-2 rf-border-b", children: col.renderCell ? col.renderCell(row) : row[col.key] }, col.key)) }, rowIndex)) })
729
+ return /* @__PURE__ */ jsxs8("div", { className: "rf-font-mono rf-text-xs rf-bg-white", children: [
730
+ /* @__PURE__ */ jsx11("div", { className: "rf-overflow-x-auto", children: /* @__PURE__ */ jsxs8("table", { className: "rf-table-auto rf-w-full rf-text-left", children: [
731
+ /* @__PURE__ */ jsx11("thead", { children: /* @__PURE__ */ jsx11("tr", { children: columns.map((col) => /* @__PURE__ */ jsx11("th", { className: "rf-px-4 rf-py-2 rf-border-b", children: col.renderHeaderCell ? col.renderHeaderCell(col) : col.name }, col.key)) }) }),
732
+ /* @__PURE__ */ jsx11("tbody", { children: elements4.map((row, rowIndex) => /* @__PURE__ */ jsx11("tr", { className: "rf-hover:bg-gray-100", children: columns.map((col) => /* @__PURE__ */ jsx11("td", { className: "rf-px-4 rf-py-2 rf-border-b", children: col.renderCell ? col.renderCell(row) : row[col.key] }, col.key)) }, rowIndex)) })
484
733
  ] }) }),
485
- /* @__PURE__ */ jsx9(
734
+ /* @__PURE__ */ jsx11(
486
735
  Modal_default,
487
736
  {
488
737
  open: modal.open,
489
738
  onClose: () => setModal({ open: false }),
490
739
  title: modal.open ? modal.title : "",
491
- children: /* @__PURE__ */ jsx9("div", { className: "rf-bg-gray-800 rf-p-3 rf-text-white rf-rounded", children: /* @__PURE__ */ jsx9("pre", { className: "rf-whitespace-pre-wrap", children: modal.open ? JSON.stringify(modal.element, null, 2) : "" }) })
740
+ children: /* @__PURE__ */ jsx11("div", { className: "rf-bg-gray-800 rf-p-3 rf-text-white rf-rounded", children: /* @__PURE__ */ jsx11("pre", { className: "rf-whitespace-pre-wrap", children: modal.open ? JSON.stringify(modal.element, null, 2) : "" }) })
492
741
  }
493
742
  )
494
743
  ] });
495
744
  };
496
745
 
497
746
  // lib/components/BomTable.tsx
498
- import { jsx as jsx10, jsxs as jsxs7 } from "react/jsx-runtime";
747
+ import { jsx as jsx12, jsxs as jsxs9 } from "react/jsx-runtime";
499
748
  var linkify = (supplier, partNumber) => {
500
749
  if (supplier === "jlcpcb") {
501
- return /* @__PURE__ */ jsx10(
750
+ return /* @__PURE__ */ jsx12(
502
751
  "a",
503
752
  {
504
753
  className: "rf-underline rf-text-blue-500",
@@ -523,14 +772,14 @@ var BomTable = ({ circuitJson }) => {
523
772
  }
524
773
  }
525
774
  }
526
- return /* @__PURE__ */ jsx10("div", { className: "rf-overflow-x-auto", children: /* @__PURE__ */ jsxs7("table", { className: "rf-w-full rf-text-left rf-text-sm", children: [
527
- /* @__PURE__ */ jsx10("thead", { children: /* @__PURE__ */ jsxs7("tr", { className: "rf-border-b", children: [
528
- /* @__PURE__ */ jsx10("th", { className: "rf-p-2", children: "Name" }),
529
- Array.from(supplierColumns).map((supplier) => /* @__PURE__ */ jsx10("th", { className: "rf-p-2 rf-capitalize", children: supplier }, supplier))
775
+ return /* @__PURE__ */ jsx12("div", { className: "rf-overflow-x-auto", children: /* @__PURE__ */ jsxs9("table", { className: "rf-w-full rf-text-left rf-text-sm", children: [
776
+ /* @__PURE__ */ jsx12("thead", { children: /* @__PURE__ */ jsxs9("tr", { className: "rf-border-b", children: [
777
+ /* @__PURE__ */ jsx12("th", { className: "rf-p-2", children: "Name" }),
778
+ Array.from(supplierColumns).map((supplier) => /* @__PURE__ */ jsx12("th", { className: "rf-p-2 rf-capitalize", children: supplier }, supplier))
530
779
  ] }) }),
531
- /* @__PURE__ */ jsx10("tbody", { children: sourceComponents.map((comp) => /* @__PURE__ */ jsxs7("tr", { className: "rf-border-b", children: [
532
- /* @__PURE__ */ jsx10("td", { className: "rf-p-2", children: comp.name }),
533
- Array.from(supplierColumns).map((supplier) => /* @__PURE__ */ jsx10("td", { className: "rf-p-2", children: linkify(
780
+ /* @__PURE__ */ jsx12("tbody", { children: sourceComponents.map((comp) => /* @__PURE__ */ jsxs9("tr", { className: "rf-border-b", children: [
781
+ /* @__PURE__ */ jsx12("td", { className: "rf-p-2", children: comp.name }),
782
+ Array.from(supplierColumns).map((supplier) => /* @__PURE__ */ jsx12("td", { className: "rf-p-2", children: linkify(
534
783
  supplier,
535
784
  comp.supplier_part_numbers?.[supplier]?.[0] || ""
536
785
  ) }, supplier))
@@ -549,150 +798,10 @@ import {
549
798
  Circle as Circle2
550
799
  } from "lucide-react";
551
800
 
552
- // lib/components/ui/dropdown-menu.tsx
553
- import * as React4 from "react";
554
- import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
555
- import { Check, ChevronRight, Circle } from "lucide-react";
556
- import { jsx as jsx11, jsxs as jsxs8 } from "react/jsx-runtime";
557
- var DropdownMenu = DropdownMenuPrimitive.Root;
558
- var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
559
- var DropdownMenuPortal = DropdownMenuPrimitive.Portal;
560
- var DropdownMenuSub = DropdownMenuPrimitive.Sub;
561
- var DropdownMenuSubTrigger = React4.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs8(
562
- DropdownMenuPrimitive.SubTrigger,
563
- {
564
- ref,
565
- className: cn(
566
- "rf-flex rf-cursor-default rf-gap-2 rf-select-none rf-items-center rf-rounded-sm rf-px-2 rf-py-1.5 rf-text-sm rf-outline-none focus:rf-bg-zinc-100 data-[state=open]:rf-bg-zinc-100 [&_svg]:rf-pointer-events-none [&_svg]:rf-size-4 [&_svg]:rf-shrink-0 dark:focus:rf-bg-zinc-800 dark:data-[state=open]:rf-bg-zinc-800",
567
- inset && "rf-pl-8",
568
- className
569
- ),
570
- ...props,
571
- children: [
572
- children,
573
- /* @__PURE__ */ jsx11(ChevronRight, { className: "rf-ml-auto" })
574
- ]
575
- }
576
- ));
577
- DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
578
- var DropdownMenuSubContent = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx11(
579
- DropdownMenuPrimitive.SubContent,
580
- {
581
- ref,
582
- className: cn(
583
- "rf-z-50 rf-min-w-[8rem] rf-overflow-hidden rf-rounded-md rf-border rf-border-zinc-200 rf-bg-white rf-p-1 rf-text-zinc-950 rf-shadow-lg data-[state=open]:rf-animate-in data-[state=closed]:rf-animate-out data-[state=closed]:rf-fade-out-0 data-[state=open]:rf-fade-in-0 data-[state=closed]:rf-zoom-out-95 data-[state=open]:rf-zoom-in-95 data-[side=bottom]:rf-slide-in-from-top-2 data-[side=left]:rf-slide-in-from-right-2 data-[side=right]:rf-slide-in-from-left-2 data-[side=top]:rf-slide-in-from-bottom-2 dark:rf-border-zinc-800 dark:rf-bg-zinc-950 dark:rf-text-zinc-50",
584
- className
585
- ),
586
- ...props
587
- }
588
- ));
589
- DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
590
- var DropdownMenuContent = React4.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx11(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx11(
591
- DropdownMenuPrimitive.Content,
592
- {
593
- ref,
594
- sideOffset,
595
- className: cn(
596
- "rf-z-50 rf-min-w-[8rem] rf-overflow-hidden rf-rounded-md rf-border rf-border-zinc-200 rf-bg-white rf-p-1 rf-text-zinc-950 rf-shadow-md dark:rf-border-zinc-800 dark:rf-bg-zinc-950 dark:rf-text-zinc-50",
597
- "data-[state=open]:rf-animate-in data-[state=closed]:rf-animate-out data-[state=closed]:rf-fade-out-0 data-[state=open]:rf-fade-in-0 data-[state=closed]:rf-zoom-out-95 data-[state=open]:rf-zoom-in-95 data-[side=bottom]:rf-slide-in-from-top-2 data-[side=left]:rf-slide-in-from-right-2 data-[side=right]:rf-slide-in-from-left-2 data-[side=top]:rf-slide-in-from-bottom-2",
598
- className
599
- ),
600
- ...props
601
- }
602
- ) }));
603
- DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
604
- var DropdownMenuItem = React4.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx11(
605
- DropdownMenuPrimitive.Item,
606
- {
607
- ref,
608
- className: cn(
609
- "rf-relative rf-flex rf-cursor-default rf-select-none rf-items-center rf-gap-2 rf-rounded-sm rf-px-2 rf-py-1.5 rf-text-sm rf-outline-none rf-transition-colors focus:rf-bg-zinc-100 focus:rf-text-zinc-900 data-[disabled]:rf-pointer-events-none data-[disabled]:rf-opacity-50 [&>svg]:rf-size-4 [&>svg]:rf-shrink-0 dark:focus:rf-bg-zinc-800 dark:focus:rf-text-zinc-50",
610
- inset && "rf-pl-8",
611
- className
612
- ),
613
- ...props
614
- }
615
- ));
616
- DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
617
- var DropdownMenuCheckboxItem = React4.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs8(
618
- DropdownMenuPrimitive.CheckboxItem,
619
- {
620
- ref,
621
- className: cn(
622
- "rf-relative rf-flex rf-cursor-default rf-select-none rf-items-center rf-rounded-sm rf-py-1.5 rf-pl-8 rf-pr-2 rf-text-sm rf-outline-none rf-transition-colors focus:rf-bg-zinc-100 focus:rf-text-zinc-900 data-[disabled]:rf-pointer-events-none data-[disabled]:rf-opacity-50 dark:focus:rf-bg-zinc-800 dark:focus:rf-text-zinc-50",
623
- className
624
- ),
625
- checked,
626
- ...props,
627
- children: [
628
- /* @__PURE__ */ jsx11("span", { className: "rf-absolute rf-left-2 rf-flex rf-h-3.5 rf-w-3.5 rf-items-center rf-justify-center", children: /* @__PURE__ */ jsx11(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx11(Check, { className: "rf-h-4 rf-w-4" }) }) }),
629
- children
630
- ]
631
- }
632
- ));
633
- DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
634
- var DropdownMenuRadioItem = React4.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs8(
635
- DropdownMenuPrimitive.RadioItem,
636
- {
637
- ref,
638
- className: cn(
639
- "rf-relative rf-flex rf-cursor-default rf-select-none rf-items-center rf-rounded-sm rf-py-1.5 rf-pl-8 rf-pr-2 rf-text-sm rf-outline-none rf-transition-colors focus:rf-bg-zinc-100 focus:rf-text-zinc-900 data-[disabled]:rf-pointer-events-none data-[disabled]:rf-opacity-50 dark:focus:rf-bg-zinc-800 dark:focus:rf-text-zinc-50",
640
- className
641
- ),
642
- ...props,
643
- children: [
644
- /* @__PURE__ */ jsx11("span", { className: "rf-absolute rf-left-2 rf-flex rf-h-3.5 rf-w-3.5 rf-items-center rf-justify-center", children: /* @__PURE__ */ jsx11(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx11(Circle, { className: "rf-h-2 rf-w-2 rf-fill-current" }) }) }),
645
- children
646
- ]
647
- }
648
- ));
649
- DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
650
- var DropdownMenuLabel = React4.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx11(
651
- DropdownMenuPrimitive.Label,
652
- {
653
- ref,
654
- className: cn(
655
- "rf-px-2 rf-py-1.5 rf-text-sm rf-font-semibold",
656
- inset && "rf-pl-8",
657
- className
658
- ),
659
- ...props
660
- }
661
- ));
662
- DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
663
- var DropdownMenuSeparator = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx11(
664
- DropdownMenuPrimitive.Separator,
665
- {
666
- ref,
667
- className: cn(
668
- "rf--mx-1 rf-my-1 rf-h-px rf-bg-zinc-100 dark:rf-bg-zinc-800",
669
- className
670
- ),
671
- ...props
672
- }
673
- ));
674
- DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
675
- var DropdownMenuShortcut = ({
676
- className,
677
- ...props
678
- }) => {
679
- return /* @__PURE__ */ jsx11(
680
- "span",
681
- {
682
- className: cn(
683
- "rf-ml-auto rf-text-xs rf-tracking-widest rf-opacity-60",
684
- className
685
- ),
686
- ...props
687
- }
688
- );
689
- };
690
- DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
691
-
692
801
  // lib/components/PcbViewerWithContainerHeight.tsx
693
802
  import { useRef, useState as useState2, useLayoutEffect } from "react";
694
803
  import { PCBViewer } from "@tscircuit/pcb-viewer";
695
- import { jsx as jsx12 } from "react/jsx-runtime";
804
+ import { jsx as jsx13 } from "react/jsx-runtime";
696
805
  var PcbViewerWithContainerHeight = ({
697
806
  containerClassName,
698
807
  ...props
@@ -720,12 +829,12 @@ var PcbViewerWithContainerHeight = ({
720
829
  window.removeEventListener("resize", updateHeight);
721
830
  };
722
831
  }, []);
723
- return /* @__PURE__ */ jsx12(
832
+ return /* @__PURE__ */ jsx13(
724
833
  "div",
725
834
  {
726
835
  ref: containerRef,
727
836
  className: containerClassName || "rf-w-full rf-h-full",
728
- children: /* @__PURE__ */ jsx12(PCBViewer, { ...props, height: computedHeight })
837
+ children: /* @__PURE__ */ jsx13(PCBViewer, { ...props, height: computedHeight })
729
838
  }
730
839
  );
731
840
  };
@@ -734,7 +843,7 @@ var PcbViewerWithContainerHeight = ({
734
843
  import { useEffect } from "react";
735
844
 
736
845
  // lib/hooks/styles.generated.ts
737
- 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-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-\\[50\\%\\]{top:50%}.rf-top-\\[6px\\]{top:6px}.rf-z-50{z-index:50}.rf-z-\\[100\\]{z-index:100}.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-my-1{margin-bottom:.25rem;margin-top:.25rem}.rf-my-auto{margin-bottom:auto;margin-top:auto}.rf-mb-2{margin-bottom:.5rem}.rf-mb-3{margin-bottom:.75rem}.rf-mb-4{margin-bottom:1rem}.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-mt-0{margin-top:0}.rf-mt-1{margin-top:.25rem}.rf-mt-2{margin-top:.5rem}.rf-mt-4{margin-top:1rem}.rf-inline{display:inline}.rf-flex{display:flex}.rf-inline-flex{display:inline-flex}.rf-grid{display:grid}.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-2{height:.5rem}.rf-h-3{height:.75rem}.rf-h-3\\.5{height:.875rem}.rf-h-4{height:1rem}.rf-h-60{height:15rem}.rf-h-8{height:2rem}.rf-h-9{height:2.25rem}.rf-h-\\[620px\\]{height:620px}.rf-h-\\[calc\\(100vh-96px\\)\\]{height:calc(100vh - 96px)}.rf-h-fit{height:-moz-fit-content;height:fit-content}.rf-h-full{height:100%}.rf-h-px{height:1px}.rf-max-h-\\[500px\\]{max-height:500px}.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-11{width:2.75rem}.rf-w-11\\/12{width:91.666667%}.rf-w-16{width:4rem}.rf-w-2{width:.5rem}.rf-w-3{width:.75rem}.rf-w-3\\.5{width:.875rem}.rf-w-32{width:8rem}.rf-w-4{width:1rem}.rf-w-64{width:16rem}.rf-w-8{width:2rem}.rf-w-9{width:2.25rem}.rf-w-96{width:24rem}.rf-w-fit{width:-moz-fit-content;width:fit-content}.rf-w-full{width:100%}.rf-min-w-10{min-width:2.5rem}.rf-min-w-16{min-width:4rem}.rf-min-w-\\[8rem\\]{min-width:8rem}.rf-max-w-2xl{max-width:42rem}.rf-max-w-lg{max-width:32rem}.rf-max-w-xl{max-width:36rem}.rf-shrink-0{flex-shrink:0}.rf-flex-grow{flex-grow:1}.rf-table-auto{table-layout:auto}.-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-\\[-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-spin{to{transform:rotate(1turn)}}.rf-animate-spin{animation:rf-spin 1s linear infinite}.rf-cursor-default{cursor:default}.rf-cursor-pointer{cursor:pointer}.rf-select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.rf-flex-col{flex-direction:column}.rf-flex-col-reverse{flex-direction:column-reverse}.rf-place-items-center{place-items:center}.rf-items-center{align-items:center}.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-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-overflow-auto{overflow:auto}.rf-overflow-hidden{overflow:hidden}.rf-overflow-visible{overflow:visible}.rf-overflow-x-auto{overflow-x:auto}.rf-overflow-y-auto{overflow-y:auto}.rf-overflow-x-hidden{overflow-x:hidden}.rf-whitespace-nowrap{white-space:nowrap}.rf-whitespace-pre-wrap{white-space:pre-wrap}.rf-break-words{overflow-wrap:break-word}.rf-rounded{border-radius:.25rem}.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-border{border-width:1px}.rf-border-b{border-bottom-width:1px}.rf-border-green-200{--tw-border-opacity:1;border-color:rgb(187 247 208/var(--tw-border-opacity,1))}.rf-border-neutral-200{--tw-border-opacity:1;border-color:rgb(229 229 229/var(--tw-border-opacity,1))}.rf-border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.rf-border-zinc-200{--tw-border-opacity:1;border-color:rgb(228 228 231/var(--tw-border-opacity,1))}.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-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-blue-600\\/70{background-color:rgba(37,99,235,.7)}.rf-bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/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-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-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.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-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-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/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-current{fill:currentColor}.rf-p-0{padding:0}.rf-p-0\\.5{padding:.125rem}.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-px-1{padding-left:.25rem;padding-right:.25rem}.rf-px-1\\.5{padding-left:.375rem;padding-right:.375rem}.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-8{padding-left:2rem;padding-right:2rem}.rf-py-0{padding-bottom:0;padding-top:0}.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-2{padding-bottom:.5rem;padding-top:.5rem}.rf-pb-0{padding-bottom:0}.rf-pb-4{padding-bottom:1rem}.rf-pl-2{padding-left:.5rem}.rf-pl-8{padding-left:2rem}.rf-pr-2{padding-right:.5rem}.rf-text-left{text-align:left}.rf-text-center{text-align:center}.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-\\[8px\\]{font-size:8px}.rf-text-lg{font-size:1.125rem;line-height:1.75rem}.rf-text-sm{font-size:.875rem;line-height:1.25rem}.rf-text-xs{font-size:.75rem;line-height:1rem}.rf-font-bold{font-weight:700}.rf-font-medium{font-weight:500}.rf-font-semibold{font-weight:600}.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-tracking-widest{letter-spacing:.1em}.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-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-green-500{--tw-text-opacity:1;color:rgb(34 197 94/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-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-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-white{--tw-text-opacity:1;color:rgb(255 255 255/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-underline-offset-4{text-underline-offset:4px}.rf-opacity-0{opacity:0}.rf-opacity-25{opacity:.25}.rf-opacity-30{opacity:.3}.rf-opacity-50{opacity:.5}.rf-opacity-60{opacity:.6}.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-offset-white{--tw-ring-offset-color:#fff}.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}@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}.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-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-red-400:hover{--tw-text-opacity:1;color:rgb(248 113 113/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-zinc-100:focus{--tw-bg-opacity:1;background-color:rgb(244 244 245/var(--tw-bg-opacity,1))}.focus\\:rf-text-zinc-900:focus{--tw-text-opacity:1;color:rgb(24 24 27/var(--tw-text-opacity,1))}.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-bg-blue-600\\/60:disabled{background-color:rgba(37,99,235,.6)}.disabled\\:rf-opacity-50:disabled{opacity:.5}.rf-group\\/bar:hover .group-hover\\/bar\\:rf-opacity-100{opacity:1}.data-\\[disabled\\]\\:rf-pointer-events-none[data-disabled]{pointer-events:none}.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\\=open\\]\\:rf-bg-zinc-100[data-state=open]{--tw-bg-opacity:1;background-color:rgb(244 244 245/var(--tw-bg-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-\\[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-800:is(.rf-dark *){--tw-border-opacity:1;border-color:rgb(39 39 42/var(--tw-border-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-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-ring-offset-zinc-950:is(.rf-dark *){--tw-ring-offset-color:#09090b}.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-\\[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\\=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-\\[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))}@media (min-width:640px){.sm\\:rf-mt-0{margin-top:0}.sm\\:rf-flex-row{flex-direction:row}.sm\\:rf-justify-end{justify-content:flex-end}.sm\\:rf-space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.sm\\:rf-rounded-lg{border-radius:var(--radius)}.sm\\:rf-text-left{text-align:left}}.\\[\\&\\>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))}.\\[\\&_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}';
846
+ 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-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-\\[50\\%\\]{top:50%}.rf-top-\\[6px\\]{top:6px}.rf-z-50{z-index:50}.rf-z-\\[100\\]{z-index:100}.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-my-1{margin-bottom:.25rem;margin-top:.25rem}.rf-my-auto{margin-bottom:auto;margin-top:auto}.rf-mb-2{margin-bottom:.5rem}.rf-mb-3{margin-bottom:.75rem}.rf-mb-4{margin-bottom:1rem}.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-mt-0{margin-top:0}.rf-mt-1{margin-top:.25rem}.rf-mt-2{margin-top:.5rem}.rf-mt-4{margin-top:1rem}.rf-inline{display:inline}.rf-flex{display:flex}.rf-inline-flex{display:inline-flex}.rf-grid{display:grid}.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-2{height:.5rem}.rf-h-3{height:.75rem}.rf-h-3\\.5{height:.875rem}.rf-h-4{height:1rem}.rf-h-60{height:15rem}.rf-h-8{height:2rem}.rf-h-9{height:2.25rem}.rf-h-\\[620px\\]{height:620px}.rf-h-\\[calc\\(100vh-96px\\)\\]{height:calc(100vh - 96px)}.rf-h-fit{height:-moz-fit-content;height:fit-content}.rf-h-full{height:100%}.rf-h-px{height:1px}.rf-max-h-\\[500px\\]{max-height:500px}.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-11{width:2.75rem}.rf-w-11\\/12{width:91.666667%}.rf-w-16{width:4rem}.rf-w-2{width:.5rem}.rf-w-3{width:.75rem}.rf-w-3\\.5{width:.875rem}.rf-w-32{width:8rem}.rf-w-4{width:1rem}.rf-w-64{width:16rem}.rf-w-72{width:18rem}.rf-w-8{width:2rem}.rf-w-9{width:2.25rem}.rf-w-96{width:24rem}.rf-w-fit{width:-moz-fit-content;width:fit-content}.rf-w-full{width:100%}.rf-min-w-10{min-width:2.5rem}.rf-min-w-16{min-width:4rem}.rf-min-w-\\[8rem\\]{min-width:8rem}.rf-max-w-2xl{max-width:42rem}.rf-max-w-lg{max-width:32rem}.rf-max-w-xl{max-width:36rem}.rf-shrink-0{flex-shrink:0}.rf-flex-grow{flex-grow:1}.rf-table-auto{table-layout:auto}.-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-\\[-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-spin{to{transform:rotate(1turn)}}.rf-animate-spin{animation:rf-spin 1s linear infinite}.rf-cursor-default{cursor:default}.rf-cursor-pointer{cursor:pointer}.rf-select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.rf-flex-col{flex-direction:column}.rf-flex-col-reverse{flex-direction:column-reverse}.rf-place-items-center{place-items:center}.rf-items-center{align-items:center}.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-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-overflow-auto{overflow:auto}.rf-overflow-hidden{overflow:hidden}.rf-overflow-visible{overflow:visible}.rf-overflow-x-auto{overflow-x:auto}.rf-overflow-y-auto{overflow-y:auto}.rf-overflow-x-hidden{overflow-x:hidden}.rf-truncate{overflow:hidden;text-overflow:ellipsis}.rf-truncate,.rf-whitespace-nowrap{white-space:nowrap}.rf-whitespace-pre-wrap{white-space:pre-wrap}.rf-break-words{overflow-wrap:break-word}.rf-rounded{border-radius:.25rem}.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-border{border-width:1px}.rf-border-b{border-bottom-width:1px}.rf-border-green-200{--tw-border-opacity:1;border-color:rgb(187 247 208/var(--tw-border-opacity,1))}.rf-border-neutral-200{--tw-border-opacity:1;border-color:rgb(229 229 229/var(--tw-border-opacity,1))}.rf-border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.rf-border-zinc-200{--tw-border-opacity:1;border-color:rgb(228 228 231/var(--tw-border-opacity,1))}.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-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-blue-600\\/70{background-color:rgba(37,99,235,.7)}.rf-bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/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-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-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.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-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-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/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-current{fill:currentColor}.rf-p-0{padding:0}.rf-p-0\\.5{padding:.125rem}.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-px-1{padding-left:.25rem;padding-right:.25rem}.rf-px-1\\.5{padding-left:.375rem;padding-right:.375rem}.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-8{padding-left:2rem;padding-right:2rem}.rf-py-0{padding-bottom:0;padding-top:0}.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-2{padding-bottom:.5rem;padding-top:.5rem}.rf-pb-0{padding-bottom:0}.rf-pb-4{padding-bottom:1rem}.rf-pl-2{padding-left:.5rem}.rf-pl-8{padding-left:2rem}.rf-pr-2{padding-right:.5rem}.rf-text-left{text-align:left}.rf-text-center{text-align:center}.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-\\[8px\\]{font-size:8px}.rf-text-lg{font-size:1.125rem;line-height:1.75rem}.rf-text-sm{font-size:.875rem;line-height:1.25rem}.rf-text-xs{font-size:.75rem;line-height:1rem}.rf-font-bold{font-weight:700}.rf-font-medium{font-weight:500}.rf-font-semibold{font-weight:600}.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-tracking-widest{letter-spacing:.1em}.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-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-green-500{--tw-text-opacity:1;color:rgb(34 197 94/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-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-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-white{--tw-text-opacity:1;color:rgb(255 255 255/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-underline-offset-4{text-underline-offset:4px}.rf-opacity-0{opacity:0}.rf-opacity-25{opacity:.25}.rf-opacity-30{opacity:.3}.rf-opacity-50{opacity:.5}.rf-opacity-60{opacity:.6}.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-offset-white{--tw-ring-offset-color:#fff}.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}@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}.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-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-red-400:hover{--tw-text-opacity:1;color:rgb(248 113 113/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-zinc-100:focus{--tw-bg-opacity:1;background-color:rgb(244 244 245/var(--tw-bg-opacity,1))}.focus\\:rf-text-zinc-900:focus{--tw-text-opacity:1;color:rgb(24 24 27/var(--tw-text-opacity,1))}.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-bg-blue-600\\/60:disabled{background-color:rgba(37,99,235,.6)}.disabled\\:rf-opacity-50:disabled{opacity:.5}.rf-group\\/bar:hover .group-hover\\/bar\\:rf-opacity-100{opacity:1}.data-\\[disabled\\]\\:rf-pointer-events-none[data-disabled]{pointer-events:none}.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\\=open\\]\\:rf-bg-zinc-100[data-state=open]{--tw-bg-opacity:1;background-color:rgb(244 244 245/var(--tw-bg-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-\\[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-800:is(.rf-dark *){--tw-border-opacity:1;border-color:rgb(39 39 42/var(--tw-border-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-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-ring-offset-zinc-950:is(.rf-dark *){--tw-ring-offset-color:#09090b}.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-\\[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\\=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-\\[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))}@media (min-width:640px){.sm\\:rf-mt-0{margin-top:0}.sm\\:rf-flex-row{flex-direction:row}.sm\\:rf-justify-end{justify-content:flex-end}.sm\\:rf-space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.sm\\:rf-rounded-lg{border-radius:var(--radius)}.sm\\:rf-text-left{text-align:left}}.\\[\\&\\>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))}.\\[\\&_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}';
738
847
 
739
848
  // lib/hooks/use-styles.ts
740
849
  var useStyles = () => {
@@ -757,7 +866,7 @@ import { useState as useState3 } from "react";
757
866
  // lib/components/RenderLogViewer/RenderTimingsBar.tsx
758
867
  import { orderedRenderPhases } from "@tscircuit/core";
759
868
  import "react";
760
- import { jsx as jsx13, jsxs as jsxs9 } from "react/jsx-runtime";
869
+ import { jsx as jsx14, jsxs as jsxs10 } from "react/jsx-runtime";
761
870
  var getPhaseColor = (phase) => {
762
871
  const index = orderedRenderPhases.indexOf(phase);
763
872
  const hue = index * 137.5 % 360;
@@ -771,11 +880,11 @@ var RenderTimingsBar = ({
771
880
  (sum, time) => sum + time,
772
881
  0
773
882
  );
774
- return /* @__PURE__ */ jsxs9("div", { className: "rf-space-y-2 rf-w-full rf-px-4", children: [
775
- /* @__PURE__ */ jsx13("div", { className: "rf-relative rf-h-8 rf-flex rf-rounded-sm", children: orderedRenderPhases.map((phase) => {
883
+ return /* @__PURE__ */ jsxs10("div", { className: "rf-space-y-2 rf-w-full rf-px-4", children: [
884
+ /* @__PURE__ */ jsx14("div", { className: "rf-relative rf-h-8 rf-flex rf-rounded-sm", children: orderedRenderPhases.map((phase) => {
776
885
  const time = phaseTimings[phase] || 0;
777
886
  const width = time / totalTime * 100;
778
- return /* @__PURE__ */ jsx13(
887
+ return /* @__PURE__ */ jsx14(
779
888
  "div",
780
889
  {
781
890
  className: "rf-group/bar rf-relative rf-overflow-visible",
@@ -783,7 +892,7 @@ var RenderTimingsBar = ({
783
892
  width: `${width}%`,
784
893
  backgroundColor: getPhaseColor(phase)
785
894
  },
786
- children: /* @__PURE__ */ jsxs9("div", { className: "rf-opacity-0 group-hover/bar:rf-opacity-100 rf-transition-opacity rf-absolute rf-bottom-full rf-left-1/2 rf-transform -rf-translate-x-1/2 rf-mb-2 rf-px-2 rf-py-1 rf-text-xs rf-whitespace-nowrap rf-rounded rf-bg-gray-900 rf-text-white rf-pointer-events-none", children: [
895
+ children: /* @__PURE__ */ jsxs10("div", { className: "rf-opacity-0 group-hover/bar:rf-opacity-100 rf-transition-opacity rf-absolute rf-bottom-full rf-left-1/2 rf-transform -rf-translate-x-1/2 rf-mb-2 rf-px-2 rf-py-1 rf-text-xs rf-whitespace-nowrap rf-rounded rf-bg-gray-900 rf-text-white rf-pointer-events-none", children: [
787
896
  phase,
788
897
  ": ",
789
898
  time.toFixed(1),
@@ -793,7 +902,7 @@ var RenderTimingsBar = ({
793
902
  phase
794
903
  );
795
904
  }) }),
796
- /* @__PURE__ */ jsxs9("div", { className: "rf-text-xs rf-text-gray-500", children: [
905
+ /* @__PURE__ */ jsxs10("div", { className: "rf-text-xs rf-text-gray-500", children: [
797
906
  "Total: ",
798
907
  totalTime.toFixed(2),
799
908
  "ms"
@@ -803,7 +912,7 @@ var RenderTimingsBar = ({
803
912
  var RenderTimingsBar_default = RenderTimingsBar;
804
913
 
805
914
  // lib/components/RenderLogViewer/RenderLogViewer.tsx
806
- import { jsx as jsx14, jsxs as jsxs10 } from "react/jsx-runtime";
915
+ import { jsx as jsx15, jsxs as jsxs11 } from "react/jsx-runtime";
807
916
  var RenderLogViewer = ({
808
917
  renderLog
809
918
  }) => {
@@ -811,7 +920,7 @@ var RenderLogViewer = ({
811
920
  "chronological"
812
921
  );
813
922
  if (!renderLog)
814
- return /* @__PURE__ */ jsx14("div", { className: "rf-p-4 rf-bg-gray-100 rf-rounded-md", children: "No render log, make sure this tab is open when you render (TODO add a rerender button here)" });
923
+ return /* @__PURE__ */ jsx15("div", { className: "rf-p-4 rf-bg-gray-100 rf-rounded-md", children: "No render log, make sure this tab is open when you render (TODO add a rerender button here)" });
815
924
  const orderedPhaseTimings = Object.entries(renderLog?.phaseTimings ?? {});
816
925
  if (sortOption === "chronological") {
817
926
  orderedPhaseTimings.sort(
@@ -824,36 +933,36 @@ var RenderLogViewer = ({
824
933
  (sum, [_, time]) => sum + time,
825
934
  0
826
935
  );
827
- return /* @__PURE__ */ jsxs10("div", { className: "rf-bg-white", children: [
828
- /* @__PURE__ */ jsxs10("div", { className: "rf-flex rf-justify-between rf-items-center", children: [
829
- /* @__PURE__ */ jsx14("div", { children: "Render Logs" }),
830
- /* @__PURE__ */ jsxs10("div", { className: "rf-mb-4 rf-pr-2 rf-flex rf-text-xs rf-items-center", children: [
831
- /* @__PURE__ */ jsx14("div", { className: "rf-mr-2", children: "Sort by:" }),
832
- /* @__PURE__ */ jsxs10(
936
+ return /* @__PURE__ */ jsxs11("div", { className: "rf-bg-white", children: [
937
+ /* @__PURE__ */ jsxs11("div", { className: "rf-flex rf-justify-between rf-items-center", children: [
938
+ /* @__PURE__ */ jsx15("div", { children: "Render Logs" }),
939
+ /* @__PURE__ */ jsxs11("div", { className: "rf-mb-4 rf-pr-2 rf-flex rf-text-xs rf-items-center", children: [
940
+ /* @__PURE__ */ jsx15("div", { className: "rf-mr-2", children: "Sort by:" }),
941
+ /* @__PURE__ */ jsxs11(
833
942
  "select",
834
943
  {
835
944
  value: sortOption,
836
945
  onChange: (e) => setSortOption(e.target.value),
837
946
  className: "rf-px-2 rf-py-1 rf-border rf-rounded rf-text-xs",
838
947
  children: [
839
- /* @__PURE__ */ jsx14("option", { value: "chronological", children: "Phase Order" }),
840
- /* @__PURE__ */ jsx14("option", { value: "longest", children: "Duration" })
948
+ /* @__PURE__ */ jsx15("option", { value: "chronological", children: "Phase Order" }),
949
+ /* @__PURE__ */ jsx15("option", { value: "longest", children: "Duration" })
841
950
  ]
842
951
  }
843
952
  )
844
953
  ] })
845
954
  ] }),
846
- /* @__PURE__ */ jsx14(RenderTimingsBar_default, { phaseTimings: renderLog.phaseTimings }),
847
- /* @__PURE__ */ jsxs10("table", { className: "rf-w-full rf-text-xs", children: [
848
- /* @__PURE__ */ jsx14("thead", { children: /* @__PURE__ */ jsxs10("tr", { children: [
849
- /* @__PURE__ */ jsx14("th", { className: "rf-text-left rf-p-2", children: "Phase Order" }),
850
- /* @__PURE__ */ jsx14("th", { className: "rf-text-left rf-p-2", children: "Phase" }),
851
- /* @__PURE__ */ jsx14("th", { className: "rf-text-left rf-p-2", children: "Duration (ms)" })
955
+ /* @__PURE__ */ jsx15(RenderTimingsBar_default, { phaseTimings: renderLog.phaseTimings }),
956
+ /* @__PURE__ */ jsxs11("table", { className: "rf-w-full rf-text-xs", children: [
957
+ /* @__PURE__ */ jsx15("thead", { children: /* @__PURE__ */ jsxs11("tr", { children: [
958
+ /* @__PURE__ */ jsx15("th", { className: "rf-text-left rf-p-2", children: "Phase Order" }),
959
+ /* @__PURE__ */ jsx15("th", { className: "rf-text-left rf-p-2", children: "Phase" }),
960
+ /* @__PURE__ */ jsx15("th", { className: "rf-text-left rf-p-2", children: "Duration (ms)" })
852
961
  ] }) }),
853
- /* @__PURE__ */ jsx14("tbody", { children: orderedPhaseTimings.map(([phase, duration]) => /* @__PURE__ */ jsxs10("tr", { children: [
854
- /* @__PURE__ */ jsx14("td", { className: "rf-p-2", children: orderedRenderPhases2.indexOf(phase) }),
855
- /* @__PURE__ */ jsx14("td", { className: "rf-p-2", children: phase }),
856
- /* @__PURE__ */ jsx14("td", { className: "rf-p-2", children: /* @__PURE__ */ jsx14("div", { className: "rf-w-8", children: /* @__PURE__ */ jsx14(
962
+ /* @__PURE__ */ jsx15("tbody", { children: orderedPhaseTimings.map(([phase, duration]) => /* @__PURE__ */ jsxs11("tr", { children: [
963
+ /* @__PURE__ */ jsx15("td", { className: "rf-p-2", children: orderedRenderPhases2.indexOf(phase) }),
964
+ /* @__PURE__ */ jsx15("td", { className: "rf-p-2", children: phase }),
965
+ /* @__PURE__ */ jsx15("td", { className: "rf-p-2", children: /* @__PURE__ */ jsx15("div", { className: "rf-w-8", children: /* @__PURE__ */ jsx15(
857
966
  "div",
858
967
  {
859
968
  className: "rf-h-2 rf-rounded-sm",
@@ -863,12 +972,12 @@ var RenderLogViewer = ({
863
972
  }
864
973
  }
865
974
  ) }) }),
866
- /* @__PURE__ */ jsx14("td", { className: "rf-p-2", children: /* @__PURE__ */ jsxs10("div", { className: "rf-flex w-full", children: [
867
- /* @__PURE__ */ jsxs10("span", { className: "rf-flex-grow", children: [
975
+ /* @__PURE__ */ jsx15("td", { className: "rf-p-2", children: /* @__PURE__ */ jsxs11("div", { className: "rf-flex w-full", children: [
976
+ /* @__PURE__ */ jsxs11("span", { className: "rf-flex-grow", children: [
868
977
  duration,
869
978
  "ms"
870
979
  ] }),
871
- /* @__PURE__ */ jsxs10("span", { className: "rf-text-gray-500 rf-pr-2", children: [
980
+ /* @__PURE__ */ jsxs11("span", { className: "rf-text-gray-500 rf-pr-2", children: [
872
981
  (duration / totalTime * 100).toFixed(1),
873
982
  "%"
874
983
  ] })
@@ -879,10 +988,10 @@ var RenderLogViewer = ({
879
988
  };
880
989
 
881
990
  // package.json
882
- var version = "0.0.225";
991
+ var version = "0.0.227";
883
992
 
884
993
  // lib/components/CircuitJsonPreview/CircuitJsonPreview.tsx
885
- import { jsx as jsx15, jsxs as jsxs11 } from "react/jsx-runtime";
994
+ import { jsx as jsx16, jsxs as jsxs12 } from "react/jsx-runtime";
886
995
  var dropdownMenuItems = [
887
996
  "assembly",
888
997
  "bom",
@@ -910,6 +1019,8 @@ var CircuitJsonPreview = ({
910
1019
  leftHeaderContent,
911
1020
  readOnly,
912
1021
  isStreaming,
1022
+ autoroutingLog,
1023
+ onReportAutoroutingLog,
913
1024
  isRunningCode,
914
1025
  hasCodeChangedSinceLastRun,
915
1026
  onEditEvent,
@@ -942,25 +1053,25 @@ var CircuitJsonPreview = ({
942
1053
  setActiveTab(defaultActiveTab ?? "pcb");
943
1054
  }
944
1055
  }, [circuitJson]);
945
- return /* @__PURE__ */ jsx15(
1056
+ return /* @__PURE__ */ jsx16(
946
1057
  "div",
947
1058
  {
948
1059
  className: cn("flex flex-col relative rf-overflow-x-hidden", className),
949
- children: /* @__PURE__ */ jsx15(
1060
+ children: /* @__PURE__ */ jsx16(
950
1061
  "div",
951
1062
  {
952
1063
  className: cn(
953
1064
  "rf-md:sticky rf-md:top-2",
954
1065
  isFullScreen && "rf-fixed rf-top-0 rf-left-0 rf-w-full rf-bg-white"
955
1066
  ),
956
- children: /* @__PURE__ */ jsxs11(
1067
+ children: /* @__PURE__ */ jsxs12(
957
1068
  Tabs,
958
1069
  {
959
1070
  value: activeTab,
960
1071
  onValueChange: setActiveTab,
961
1072
  className: "rf-flex-grow rf-flex rf-flex-col",
962
1073
  children: [
963
- /* @__PURE__ */ jsxs11(
1074
+ /* @__PURE__ */ jsxs12(
964
1075
  "div",
965
1076
  {
966
1077
  className: cn(
@@ -969,21 +1080,21 @@ var CircuitJsonPreview = ({
969
1080
  ),
970
1081
  children: [
971
1082
  leftHeaderContent,
972
- leftHeaderContent && /* @__PURE__ */ jsx15("div", { className: "rf-flex-grow" }),
973
- !leftHeaderContent && isRunningCode && /* @__PURE__ */ jsx15(Loader2, { className: "rf-w-4 rf-h-4 rf-animate-spin" }),
974
- !leftHeaderContent && /* @__PURE__ */ jsx15("div", { className: "rf-flex-grow" }),
975
- renderLog && renderLog.progress !== 1 && /* @__PURE__ */ jsxs11("div", { className: "rf-flex rf-items-center rf-gap-2", children: [
976
- renderLog.lastRenderEvent && /* @__PURE__ */ jsx15("div", { className: "rf-text-xs rf-text-gray-500", children: renderLog.lastRenderEvent?.type.split("renderable:renderLifecycle:")[1].split(":")[0] }),
977
- /* @__PURE__ */ jsx15("div", { className: "rf-w-4 rf-h-4 rf-bg-blue-500 rf-opacity-50 rf-rounded-full rf-text-white", children: /* @__PURE__ */ jsx15(LoaderCircleIcon, { className: "rf-w-4 rf-h-4 rf-animate-spin" }) }),
978
- /* @__PURE__ */ jsxs11("div", { className: "rf-text-xs rf-font-bold rf-text-gray-700 rf-tabular-nums", children: [
1083
+ leftHeaderContent && /* @__PURE__ */ jsx16("div", { className: "rf-flex-grow" }),
1084
+ !leftHeaderContent && isRunningCode && /* @__PURE__ */ jsx16(Loader2, { className: "rf-w-4 rf-h-4 rf-animate-spin" }),
1085
+ !leftHeaderContent && /* @__PURE__ */ jsx16("div", { className: "rf-flex-grow" }),
1086
+ renderLog && renderLog.progress !== 1 && /* @__PURE__ */ jsxs12("div", { className: "rf-flex rf-items-center rf-gap-2", children: [
1087
+ renderLog.lastRenderEvent && /* @__PURE__ */ jsx16("div", { className: "rf-text-xs rf-text-gray-500", children: renderLog.lastRenderEvent?.type.split("renderable:renderLifecycle:")[1].split(":")[0] }),
1088
+ /* @__PURE__ */ jsx16("div", { className: "rf-w-4 rf-h-4 rf-bg-blue-500 rf-opacity-50 rf-rounded-full rf-text-white", children: /* @__PURE__ */ jsx16(LoaderCircleIcon, { className: "rf-w-4 rf-h-4 rf-animate-spin" }) }),
1089
+ /* @__PURE__ */ jsxs12("div", { className: "rf-text-xs rf-font-bold rf-text-gray-700 rf-tabular-nums", children: [
979
1090
  ((renderLog.progress ?? 0) * 100).toFixed(1),
980
1091
  "%"
981
1092
  ] })
982
1093
  ] }),
983
- showRightHeaderContent && /* @__PURE__ */ jsxs11(TabsList, { children: [
984
- showCodeTab && /* @__PURE__ */ jsx15(TabsTrigger, { value: "code", children: "Code" }),
985
- /* @__PURE__ */ jsxs11(TabsTrigger, { value: "pcb", className: "rf-whitespace-nowrap", children: [
986
- circuitJson && /* @__PURE__ */ jsx15(
1094
+ showRightHeaderContent && /* @__PURE__ */ jsxs12(TabsList, { children: [
1095
+ showCodeTab && /* @__PURE__ */ jsx16(TabsTrigger, { value: "code", children: "Code" }),
1096
+ /* @__PURE__ */ jsxs12(TabsTrigger, { value: "pcb", className: "rf-whitespace-nowrap", children: [
1097
+ circuitJson && /* @__PURE__ */ jsx16(
987
1098
  "span",
988
1099
  {
989
1100
  className: cn(
@@ -994,8 +1105,8 @@ var CircuitJsonPreview = ({
994
1105
  ),
995
1106
  "PCB"
996
1107
  ] }),
997
- /* @__PURE__ */ jsxs11(TabsTrigger, { value: "schematic", className: "rf-whitespace-nowrap", children: [
998
- circuitJson && /* @__PURE__ */ jsx15(
1108
+ /* @__PURE__ */ jsxs12(TabsTrigger, { value: "schematic", className: "rf-whitespace-nowrap", children: [
1109
+ circuitJson && /* @__PURE__ */ jsx16(
999
1110
  "span",
1000
1111
  {
1001
1112
  className: cn(
@@ -1006,8 +1117,8 @@ var CircuitJsonPreview = ({
1006
1117
  ),
1007
1118
  "Schematic"
1008
1119
  ] }),
1009
- /* @__PURE__ */ jsxs11(TabsTrigger, { value: "cad", children: [
1010
- circuitJson && /* @__PURE__ */ jsx15(
1120
+ /* @__PURE__ */ jsxs12(TabsTrigger, { value: "cad", children: [
1121
+ circuitJson && /* @__PURE__ */ jsx16(
1011
1122
  "span",
1012
1123
  {
1013
1124
  className: cn(
@@ -1018,32 +1129,32 @@ var CircuitJsonPreview = ({
1018
1129
  ),
1019
1130
  "3D"
1020
1131
  ] }),
1021
- !["pcb", "cad", "schematic"].includes(activeTab) && /* @__PURE__ */ jsx15(TabsTrigger, { value: activeTab, children: capitalizeFirstLetters(activeTab) }),
1022
- /* @__PURE__ */ jsxs11(DropdownMenu, { children: [
1023
- /* @__PURE__ */ jsx15(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs11("div", { className: "rf-whitespace-nowrap rf-p-2 rf-mr-1 rf-cursor-pointer rf-relative", children: [
1024
- /* @__PURE__ */ jsx15(EllipsisIcon, { className: "rf-w-4 rf-h-4" }),
1025
- errorMessage && /* @__PURE__ */ jsx15("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" })
1132
+ !["pcb", "cad", "schematic"].includes(activeTab) && /* @__PURE__ */ jsx16(TabsTrigger, { value: activeTab, children: capitalizeFirstLetters(activeTab) }),
1133
+ /* @__PURE__ */ jsxs12(DropdownMenu, { children: [
1134
+ /* @__PURE__ */ jsx16(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs12("div", { className: "rf-whitespace-nowrap rf-p-2 rf-mr-1 rf-cursor-pointer rf-relative", children: [
1135
+ /* @__PURE__ */ jsx16(EllipsisIcon, { className: "rf-w-4 rf-h-4" }),
1136
+ errorMessage && /* @__PURE__ */ jsx16("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" })
1026
1137
  ] }) }),
1027
- /* @__PURE__ */ jsxs11(DropdownMenuContent, { className: "rf-*:text-xs", children: [
1028
- dropdownMenuItems.map((item) => /* @__PURE__ */ jsxs11(
1138
+ /* @__PURE__ */ jsxs12(DropdownMenuContent, { className: "rf-*:text-xs", children: [
1139
+ dropdownMenuItems.map((item) => /* @__PURE__ */ jsxs12(
1029
1140
  DropdownMenuItem,
1030
1141
  {
1031
1142
  onSelect: () => setActiveTab(item),
1032
1143
  children: [
1033
- activeTab !== item && /* @__PURE__ */ jsx15(Circle2, { className: "rf-w-3 rf-h-3 rf-opacity-30" }),
1034
- activeTab === item && /* @__PURE__ */ jsx15(CheckIcon, { className: "rf-w-3 rf-h-3" }),
1035
- /* @__PURE__ */ jsx15("div", { className: "rf-pr-2", children: capitalizeFirstLetters(item) }),
1036
- item === "errors" && errorMessage && /* @__PURE__ */ jsx15("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: "1" })
1144
+ activeTab !== item && /* @__PURE__ */ jsx16(Circle2, { className: "rf-w-3 rf-h-3 rf-opacity-30" }),
1145
+ activeTab === item && /* @__PURE__ */ jsx16(CheckIcon, { className: "rf-w-3 rf-h-3" }),
1146
+ /* @__PURE__ */ jsx16("div", { className: "rf-pr-2", children: capitalizeFirstLetters(item) }),
1147
+ item === "errors" && errorMessage && /* @__PURE__ */ jsx16("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: "1" })
1037
1148
  ]
1038
1149
  },
1039
1150
  item
1040
1151
  )),
1041
- /* @__PURE__ */ jsx15(
1152
+ /* @__PURE__ */ jsx16(
1042
1153
  DropdownMenuItem,
1043
1154
  {
1044
1155
  disabled: true,
1045
1156
  className: "rf-opacity-60 rf-cursor-default rf-select-none",
1046
- children: /* @__PURE__ */ jsxs11("div", { className: "rf-pr-2 rf-text-xs rf-text-gray-500", children: [
1157
+ children: /* @__PURE__ */ jsxs12("div", { className: "rf-pr-2 rf-text-xs rf-text-gray-500", children: [
1047
1158
  "@tscircuit/runframe@",
1048
1159
  version.split(".").map(
1049
1160
  (part, i) => i === 2 ? parseInt(part) + 1 : part
@@ -1054,33 +1165,33 @@ var CircuitJsonPreview = ({
1054
1165
  ] })
1055
1166
  ] })
1056
1167
  ] }),
1057
- showToggleFullScreen && /* @__PURE__ */ jsx15(Button, { onClick: toggleFullScreen, variant: "ghost", children: isFullScreen ? /* @__PURE__ */ jsx15(MinimizeIcon, { size: 16 }) : /* @__PURE__ */ jsx15(FullscreenIcon, { size: 16 }) })
1168
+ showToggleFullScreen && /* @__PURE__ */ jsx16(Button, { onClick: toggleFullScreen, variant: "ghost", children: isFullScreen ? /* @__PURE__ */ jsx16(MinimizeIcon, { size: 16 }) : /* @__PURE__ */ jsx16(FullscreenIcon, { size: 16 }) })
1058
1169
  ]
1059
1170
  }
1060
1171
  ),
1061
- showCodeTab && /* @__PURE__ */ jsx15(
1172
+ showCodeTab && /* @__PURE__ */ jsx16(
1062
1173
  TabsContent,
1063
1174
  {
1064
1175
  value: "code",
1065
1176
  className: "rf-flex-grow rf-overflow-hidden",
1066
- children: /* @__PURE__ */ jsx15("div", { className: "rf-h-full", children: codeTabContent })
1177
+ children: /* @__PURE__ */ jsx16("div", { className: "rf-h-full", children: codeTabContent })
1067
1178
  }
1068
1179
  ),
1069
- /* @__PURE__ */ jsx15(TabsContent, { value: "pcb", children: /* @__PURE__ */ jsx15(
1180
+ /* @__PURE__ */ jsx16(TabsContent, { value: "pcb", children: /* @__PURE__ */ jsx16(
1070
1181
  "div",
1071
1182
  {
1072
1183
  className: cn(
1073
1184
  "rf-overflow-hidden",
1074
1185
  isFullScreen ? "rf-h-[calc(100vh-96px)]" : "rf-h-[620px]"
1075
1186
  ),
1076
- children: /* @__PURE__ */ jsx15(
1187
+ children: /* @__PURE__ */ jsx16(
1077
1188
  ErrorBoundary,
1078
1189
  {
1079
- fallbackRender: ({ error }) => /* @__PURE__ */ jsx15("div", { className: "rf-mt-4 rf-bg-red-50 rf-rounded-md rf-border rf-border-red-200", children: /* @__PURE__ */ jsxs11("div", { className: "rf-p-4", children: [
1080
- /* @__PURE__ */ jsx15("h3", { className: "rf-text-lg rf-font-semibold rf-text-red-800 rf-mb-3", children: "Error loading PCB viewer" }),
1081
- /* @__PURE__ */ jsx15("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" })
1190
+ fallbackRender: ({ error }) => /* @__PURE__ */ jsx16("div", { className: "rf-mt-4 rf-bg-red-50 rf-rounded-md rf-border rf-border-red-200", children: /* @__PURE__ */ jsxs12("div", { className: "rf-p-4", children: [
1191
+ /* @__PURE__ */ jsx16("h3", { className: "rf-text-lg rf-font-semibold rf-text-red-800 rf-mb-3", children: "Error loading PCB viewer" }),
1192
+ /* @__PURE__ */ jsx16("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" })
1082
1193
  ] }) }),
1083
- children: circuitJson ? /* @__PURE__ */ jsx15(
1194
+ children: circuitJson ? /* @__PURE__ */ jsx16(
1084
1195
  PcbViewerWithContainerHeight,
1085
1196
  {
1086
1197
  disableAutoFocus: true,
@@ -1093,19 +1204,19 @@ var CircuitJsonPreview = ({
1093
1204
  )
1094
1205
  },
1095
1206
  circuitJsonKey
1096
- ) : /* @__PURE__ */ jsx15(PreviewEmptyState_default, { onRunClicked })
1207
+ ) : /* @__PURE__ */ jsx16(PreviewEmptyState_default, { onRunClicked })
1097
1208
  }
1098
1209
  )
1099
1210
  }
1100
1211
  ) }),
1101
- /* @__PURE__ */ jsx15(TabsContent, { value: "assembly", children: /* @__PURE__ */ jsx15(
1212
+ /* @__PURE__ */ jsx16(TabsContent, { value: "assembly", children: /* @__PURE__ */ jsx16(
1102
1213
  "div",
1103
1214
  {
1104
1215
  className: cn(
1105
1216
  "rf-overflow-auto",
1106
1217
  isFullScreen ? "rf-h-[calc(100vh-96px)]" : "rf-h-[620px]"
1107
1218
  ),
1108
- children: /* @__PURE__ */ jsx15(ErrorBoundary, { fallback: /* @__PURE__ */ jsx15("div", { children: "Error loading Assembly" }), children: circuitJson ? /* @__PURE__ */ jsx15(
1219
+ children: /* @__PURE__ */ jsx16(ErrorBoundary, { fallback: /* @__PURE__ */ jsx16("div", { children: "Error loading Assembly" }), children: circuitJson ? /* @__PURE__ */ jsx16(
1109
1220
  AssemblyViewer,
1110
1221
  {
1111
1222
  circuitJson,
@@ -1115,24 +1226,24 @@ var CircuitJsonPreview = ({
1115
1226
  editingEnabled: true,
1116
1227
  debugGrid: true
1117
1228
  }
1118
- ) : /* @__PURE__ */ jsx15(PreviewEmptyState_default, { onRunClicked }) })
1229
+ ) : /* @__PURE__ */ jsx16(PreviewEmptyState_default, { onRunClicked }) })
1119
1230
  }
1120
1231
  ) }),
1121
- /* @__PURE__ */ jsx15(TabsContent, { value: "schematic", children: /* @__PURE__ */ jsx15(
1232
+ /* @__PURE__ */ jsx16(TabsContent, { value: "schematic", children: /* @__PURE__ */ jsx16(
1122
1233
  "div",
1123
1234
  {
1124
1235
  className: cn(
1125
1236
  "rf-overflow-auto",
1126
1237
  isFullScreen ? "rf-h-[calc(100vh-96px)]" : "rf-h-[620px]"
1127
1238
  ),
1128
- children: /* @__PURE__ */ jsx15(
1239
+ children: /* @__PURE__ */ jsx16(
1129
1240
  ErrorBoundary,
1130
1241
  {
1131
- fallbackRender: ({ error }) => /* @__PURE__ */ jsx15("div", { className: "rf-mt-4 rf-bg-red-50 rf-rounded-md rf-border rf-border-red-200", children: /* @__PURE__ */ jsxs11("div", { className: "rf-p-4", children: [
1132
- /* @__PURE__ */ jsx15("h3", { className: "rf-text-lg rf-font-semibold rf-text-red-800 rf-mb-3", children: "Error loading Schematic" }),
1133
- /* @__PURE__ */ jsx15("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" })
1242
+ fallbackRender: ({ error }) => /* @__PURE__ */ jsx16("div", { className: "rf-mt-4 rf-bg-red-50 rf-rounded-md rf-border rf-border-red-200", children: /* @__PURE__ */ jsxs12("div", { className: "rf-p-4", children: [
1243
+ /* @__PURE__ */ jsx16("h3", { className: "rf-text-lg rf-font-semibold rf-text-red-800 rf-mb-3", children: "Error loading Schematic" }),
1244
+ /* @__PURE__ */ jsx16("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" })
1134
1245
  ] }) }),
1135
- children: circuitJson ? /* @__PURE__ */ jsx15(
1246
+ children: circuitJson ? /* @__PURE__ */ jsx16(
1136
1247
  SchematicViewer,
1137
1248
  {
1138
1249
  circuitJson,
@@ -1144,58 +1255,66 @@ var CircuitJsonPreview = ({
1144
1255
  editEvents,
1145
1256
  debugGrid: showSchematicDebugGrid
1146
1257
  }
1147
- ) : /* @__PURE__ */ jsx15(PreviewEmptyState_default, { onRunClicked })
1258
+ ) : /* @__PURE__ */ jsx16(PreviewEmptyState_default, { onRunClicked })
1148
1259
  }
1149
1260
  )
1150
1261
  }
1151
1262
  ) }),
1152
- /* @__PURE__ */ jsx15(TabsContent, { value: "cad", children: /* @__PURE__ */ jsx15(
1263
+ /* @__PURE__ */ jsx16(TabsContent, { value: "cad", children: /* @__PURE__ */ jsx16(
1153
1264
  "div",
1154
1265
  {
1155
1266
  className: cn(
1156
1267
  "rf-overflow-auto",
1157
1268
  isFullScreen ? "rf-h-[calc(100vh-96px)]" : "rf-h-[620px]"
1158
1269
  ),
1159
- children: /* @__PURE__ */ jsx15(ErrorBoundary, { FallbackComponent: ErrorFallback, children: circuitJson ? /* @__PURE__ */ jsx15(
1270
+ children: /* @__PURE__ */ jsx16(ErrorBoundary, { FallbackComponent: ErrorFallback, children: circuitJson ? /* @__PURE__ */ jsx16(
1160
1271
  CadViewer,
1161
1272
  {
1162
1273
  soup: circuitJson,
1163
1274
  autoRotateDisabled: autoRotate3dViewerDisabled
1164
1275
  }
1165
- ) : /* @__PURE__ */ jsx15(PreviewEmptyState_default, { onRunClicked }) })
1276
+ ) : /* @__PURE__ */ jsx16(PreviewEmptyState_default, { onRunClicked }) })
1166
1277
  }
1167
1278
  ) }),
1168
- /* @__PURE__ */ jsx15(TabsContent, { value: "bom", children: /* @__PURE__ */ jsx15(
1279
+ /* @__PURE__ */ jsx16(TabsContent, { value: "bom", children: /* @__PURE__ */ jsx16(
1169
1280
  "div",
1170
1281
  {
1171
1282
  className: cn(
1172
1283
  "rf-overflow-auto",
1173
1284
  isFullScreen ? "rf-h-[calc(100vh-96px)]" : "rf-h-[620px]"
1174
1285
  ),
1175
- children: /* @__PURE__ */ jsx15(
1286
+ children: /* @__PURE__ */ jsx16(
1176
1287
  ErrorBoundary,
1177
1288
  {
1178
- fallbackRender: ({ error }) => /* @__PURE__ */ jsx15("div", { className: "rf-mt-4 rf-bg-red-50 rf-rounded-md rf-border rf-border-red-200", children: /* @__PURE__ */ jsxs11("div", { className: "rf-p-4", children: [
1179
- /* @__PURE__ */ jsx15("h3", { className: "rf-text-lg rf-font-semibold rf-text-red-800 rf-mb-3", children: "Error loading Bill of Materials" }),
1180
- /* @__PURE__ */ jsx15("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" })
1289
+ fallbackRender: ({ error }) => /* @__PURE__ */ jsx16("div", { className: "rf-mt-4 rf-bg-red-50 rf-rounded-md rf-border rf-border-red-200", children: /* @__PURE__ */ jsxs12("div", { className: "rf-p-4", children: [
1290
+ /* @__PURE__ */ jsx16("h3", { className: "rf-text-lg rf-font-semibold rf-text-red-800 rf-mb-3", children: "Error loading Bill of Materials" }),
1291
+ /* @__PURE__ */ jsx16("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" })
1181
1292
  ] }) }),
1182
- children: circuitJson ? /* @__PURE__ */ jsx15(BomTable, { circuitJson }) : /* @__PURE__ */ jsx15(PreviewEmptyState_default, { onRunClicked })
1293
+ children: circuitJson ? /* @__PURE__ */ jsx16(BomTable, { circuitJson }) : /* @__PURE__ */ jsx16(PreviewEmptyState_default, { onRunClicked })
1183
1294
  }
1184
1295
  )
1185
1296
  }
1186
1297
  ) }),
1187
- /* @__PURE__ */ jsx15(TabsContent, { value: "circuit_json", children: /* @__PURE__ */ jsx15(
1298
+ /* @__PURE__ */ jsx16(TabsContent, { value: "circuit_json", children: /* @__PURE__ */ jsx16(
1188
1299
  "div",
1189
1300
  {
1190
1301
  className: cn(
1191
1302
  "rf-overflow-auto",
1192
1303
  isFullScreen ? "rf-h-[calc(100vh-96px)]" : "rf-h-[620px]"
1193
1304
  ),
1194
- children: /* @__PURE__ */ jsx15(ErrorBoundary, { fallback: /* @__PURE__ */ jsx15("div", { children: "Error loading JSON viewer" }), children: circuitJson ? /* @__PURE__ */ jsx15(CircuitJsonTableViewer, { elements: circuitJson }) : /* @__PURE__ */ jsx15(PreviewEmptyState_default, { onRunClicked }) })
1305
+ children: /* @__PURE__ */ jsx16(ErrorBoundary, { fallback: /* @__PURE__ */ jsx16("div", { children: "Error loading JSON viewer" }), children: circuitJson ? /* @__PURE__ */ jsx16(CircuitJsonTableViewer, { elements: circuitJson }) : /* @__PURE__ */ jsx16(PreviewEmptyState_default, { onRunClicked }) })
1195
1306
  }
1196
1307
  ) }),
1197
- /* @__PURE__ */ jsx15(TabsContent, { value: "errors", children: circuitJson || errorMessage ? /* @__PURE__ */ jsx15(ErrorTabContent, { code, errorMessage }) : /* @__PURE__ */ jsx15(PreviewEmptyState_default, { onRunClicked }) }),
1198
- showRenderLogTab && /* @__PURE__ */ jsx15(TabsContent, { value: "render_log", children: /* @__PURE__ */ jsx15(RenderLogViewer, { renderLog }) })
1308
+ /* @__PURE__ */ jsx16(TabsContent, { value: "errors", children: circuitJson || errorMessage ? /* @__PURE__ */ jsx16(
1309
+ ErrorTabContent,
1310
+ {
1311
+ code,
1312
+ errorMessage,
1313
+ autoroutingLog,
1314
+ onReportAutoroutingLog
1315
+ }
1316
+ ) : /* @__PURE__ */ jsx16(PreviewEmptyState_default, { onRunClicked }) }),
1317
+ showRenderLogTab && /* @__PURE__ */ jsx16(TabsContent, { value: "render_log", children: /* @__PURE__ */ jsx16(RenderLogViewer, { renderLog }) })
1199
1318
  ]
1200
1319
  }
1201
1320
  )