@tscircuit/runframe 0.0.227 → 0.0.229
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-VYMN7TD3.js → chunk-ODJJXLES.js} +427 -308
- package/dist/preview.d.ts +10 -1
- package/dist/preview.js +1 -1
- package/dist/runner.d.ts +3 -0
- package/dist/runner.js +12 -1
- package/dist/standalone-preview.min.js +729 -703
- package/dist/standalone.min.js +700 -674
- package/package.json +3 -2
|
@@ -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 {
|
|
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__ */
|
|
146
|
-
/* @__PURE__ */
|
|
147
|
-
|
|
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__ */
|
|
151
|
-
/* @__PURE__ */
|
|
152
|
-
/* @__PURE__ */
|
|
153
|
-
/* @__PURE__ */
|
|
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__ */
|
|
156
|
-
/* @__PURE__ */
|
|
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__ */
|
|
397
|
+
/* @__PURE__ */ jsx6(ClipboardIcon, { className: "rf-w-4 rf-h-4" }),
|
|
167
398
|
"Copy Error"
|
|
168
399
|
]
|
|
169
400
|
}
|
|
170
401
|
),
|
|
171
|
-
/* @__PURE__ */
|
|
402
|
+
/* @__PURE__ */ jsxs4(
|
|
172
403
|
Button,
|
|
173
404
|
{
|
|
174
405
|
variant: "outline",
|
|
175
406
|
onClick: () => {
|
|
176
|
-
|
|
177
|
-
|
|
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__ */
|
|
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
|
|
197
|
-
var PreviewEmptyState = ({ onRunClicked }) => /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
466
|
+
import { jsx as jsx8 } from "react/jsx-runtime";
|
|
218
467
|
var ClickableText = ({
|
|
219
468
|
text,
|
|
220
469
|
onClick
|
|
221
470
|
}) => {
|
|
222
|
-
return /* @__PURE__ */
|
|
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
|
|
482
|
+
import { jsx as jsx9, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
234
483
|
var HeaderCell = (p) => {
|
|
235
|
-
return /* @__PURE__ */
|
|
236
|
-
/* @__PURE__ */
|
|
237
|
-
/* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
269
|
-
/* @__PURE__ */
|
|
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
|
|
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__ */
|
|
348
|
-
/* @__PURE__ */
|
|
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__ */
|
|
360
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
626
|
+
field: !filters.focused_id ? void 0 : () => /* @__PURE__ */ jsxs8("div", { children: [
|
|
378
627
|
"Focus:",
|
|
379
628
|
" ",
|
|
380
|
-
/* @__PURE__ */
|
|
381
|
-
/* @__PURE__ */
|
|
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__ */
|
|
644
|
+
renderHeaderCell: (col) => /* @__PURE__ */ jsx11(
|
|
396
645
|
HeaderCell,
|
|
397
646
|
{
|
|
398
647
|
column: col,
|
|
399
|
-
field: () => /* @__PURE__ */
|
|
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__ */
|
|
406
|
-
/* @__PURE__ */
|
|
407
|
-
/* @__PURE__ */
|
|
408
|
-
/* @__PURE__ */
|
|
409
|
-
element_types.map((type) => /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
481
|
-
/* @__PURE__ */
|
|
482
|
-
/* @__PURE__ */
|
|
483
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
527
|
-
/* @__PURE__ */
|
|
528
|
-
/* @__PURE__ */
|
|
529
|
-
Array.from(supplierColumns).map((supplier) => /* @__PURE__ */
|
|
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__ */
|
|
532
|
-
/* @__PURE__ */
|
|
533
|
-
Array.from(supplierColumns).map((supplier) => /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
775
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
828
|
-
/* @__PURE__ */
|
|
829
|
-
/* @__PURE__ */
|
|
830
|
-
/* @__PURE__ */
|
|
831
|
-
/* @__PURE__ */
|
|
832
|
-
/* @__PURE__ */
|
|
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__ */
|
|
840
|
-
/* @__PURE__ */
|
|
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__ */
|
|
847
|
-
/* @__PURE__ */
|
|
848
|
-
/* @__PURE__ */
|
|
849
|
-
/* @__PURE__ */
|
|
850
|
-
/* @__PURE__ */
|
|
851
|
-
/* @__PURE__ */
|
|
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__ */
|
|
854
|
-
/* @__PURE__ */
|
|
855
|
-
/* @__PURE__ */
|
|
856
|
-
/* @__PURE__ */
|
|
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__ */
|
|
867
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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.
|
|
991
|
+
var version = "0.0.228";
|
|
883
992
|
|
|
884
993
|
// lib/components/CircuitJsonPreview/CircuitJsonPreview.tsx
|
|
885
|
-
import { jsx as
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
973
|
-
!leftHeaderContent && isRunningCode && /* @__PURE__ */
|
|
974
|
-
!leftHeaderContent && /* @__PURE__ */
|
|
975
|
-
renderLog && renderLog.progress !== 1 && /* @__PURE__ */
|
|
976
|
-
renderLog.lastRenderEvent && /* @__PURE__ */
|
|
977
|
-
/* @__PURE__ */
|
|
978
|
-
/* @__PURE__ */
|
|
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__ */
|
|
984
|
-
showCodeTab && /* @__PURE__ */
|
|
985
|
-
/* @__PURE__ */
|
|
986
|
-
circuitJson && /* @__PURE__ */
|
|
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__ */
|
|
998
|
-
circuitJson && /* @__PURE__ */
|
|
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__ */
|
|
1010
|
-
circuitJson && /* @__PURE__ */
|
|
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__ */
|
|
1022
|
-
/* @__PURE__ */
|
|
1023
|
-
/* @__PURE__ */
|
|
1024
|
-
/* @__PURE__ */
|
|
1025
|
-
errorMessage && /* @__PURE__ */
|
|
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__ */
|
|
1028
|
-
dropdownMenuItems.map((item) => /* @__PURE__ */
|
|
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__ */
|
|
1034
|
-
activeTab === item && /* @__PURE__ */
|
|
1035
|
-
/* @__PURE__ */
|
|
1036
|
-
item === "errors" && errorMessage && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
1177
|
+
children: /* @__PURE__ */ jsx16("div", { className: "rf-h-full", children: codeTabContent })
|
|
1067
1178
|
}
|
|
1068
1179
|
),
|
|
1069
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1187
|
+
children: /* @__PURE__ */ jsx16(
|
|
1077
1188
|
ErrorBoundary,
|
|
1078
1189
|
{
|
|
1079
|
-
fallbackRender: ({ error }) => /* @__PURE__ */
|
|
1080
|
-
/* @__PURE__ */
|
|
1081
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
1207
|
+
) : /* @__PURE__ */ jsx16(PreviewEmptyState_default, { onRunClicked })
|
|
1097
1208
|
}
|
|
1098
1209
|
)
|
|
1099
1210
|
}
|
|
1100
1211
|
) }),
|
|
1101
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
1229
|
+
) : /* @__PURE__ */ jsx16(PreviewEmptyState_default, { onRunClicked }) })
|
|
1119
1230
|
}
|
|
1120
1231
|
) }),
|
|
1121
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1239
|
+
children: /* @__PURE__ */ jsx16(
|
|
1129
1240
|
ErrorBoundary,
|
|
1130
1241
|
{
|
|
1131
|
-
fallbackRender: ({ error }) => /* @__PURE__ */
|
|
1132
|
-
/* @__PURE__ */
|
|
1133
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
1258
|
+
) : /* @__PURE__ */ jsx16(PreviewEmptyState_default, { onRunClicked })
|
|
1148
1259
|
}
|
|
1149
1260
|
)
|
|
1150
1261
|
}
|
|
1151
1262
|
) }),
|
|
1152
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
1276
|
+
) : /* @__PURE__ */ jsx16(PreviewEmptyState_default, { onRunClicked }) })
|
|
1166
1277
|
}
|
|
1167
1278
|
) }),
|
|
1168
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1286
|
+
children: /* @__PURE__ */ jsx16(
|
|
1176
1287
|
ErrorBoundary,
|
|
1177
1288
|
{
|
|
1178
|
-
fallbackRender: ({ error }) => /* @__PURE__ */
|
|
1179
|
-
/* @__PURE__ */
|
|
1180
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1293
|
+
children: circuitJson ? /* @__PURE__ */ jsx16(BomTable, { circuitJson }) : /* @__PURE__ */ jsx16(PreviewEmptyState_default, { onRunClicked })
|
|
1183
1294
|
}
|
|
1184
1295
|
)
|
|
1185
1296
|
}
|
|
1186
1297
|
) }),
|
|
1187
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
1198
|
-
|
|
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
|
)
|