@tscircuit/runframe 0.0.369 → 0.0.371

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/runner.js CHANGED
@@ -19,7 +19,6 @@ import {
19
19
  DropdownMenuSubContent,
20
20
  DropdownMenuSubTrigger,
21
21
  DropdownMenuTrigger,
22
- Input,
23
22
  PCBViewer,
24
23
  PcbViewerWithContainerHeight,
25
24
  SchematicViewer,
@@ -33,7 +32,7 @@ import {
33
32
  useOrderDialog,
34
33
  useOrderDialogCli,
35
34
  useRunFrameStore
36
- } from "./chunk-KJKBCW2H.js";
35
+ } from "./chunk-43JV2KDS.js";
37
36
 
38
37
  // lib/components/RunFrame/RunFrame.tsx
39
38
  import { createCircuitWebWorker } from "@tscircuit/eval/worker";
@@ -753,6 +752,27 @@ import "react";
753
752
  import { useState as useState5, useEffect as useEffect7 } from "react";
754
753
  import { Loader2 as Loader22, Search, ExternalLink } from "lucide-react";
755
754
 
755
+ // lib/components/ui/input.tsx
756
+ import * as React2 from "react";
757
+ import { jsx as jsx5 } from "react/jsx-runtime";
758
+ var Input = React2.forwardRef(
759
+ ({ className, type, ...props }, ref) => {
760
+ return /* @__PURE__ */ jsx5(
761
+ "input",
762
+ {
763
+ type,
764
+ className: cn(
765
+ "rf-flex rf-h-9 rf-w-full rf-rounded-md rf-border rf-border-zinc-200 rf-bg-white rf-px-3 rf-py-1 rf-text-sm rf-shadow-sm rf-transition-colors file:rf-border-0 file:rf-bg-transparent file:rf-text-sm file:rf-font-medium placeholder:rf-text-zinc-500 focus-visible:rf-outline-none focus-visible:rf-ring-1 focus-visible:rf-ring-zinc-950 disabled:rf-cursor-not-allowed disabled:rf-opacity-50 dark:rf-border-zinc-800 dark:rf-bg-zinc-950 dark:rf-placeholder-zinc-400 dark:focus-visible:rf-ring-zinc-300",
766
+ className
767
+ ),
768
+ ref,
769
+ ...props
770
+ }
771
+ );
772
+ }
773
+ );
774
+ Input.displayName = "Input";
775
+
756
776
  // lib/components/ImportComponentDialog/jlc-api.ts
757
777
  var searchJLCComponents = async (query, limit = 10) => {
758
778
  try {
@@ -819,7 +839,7 @@ var mapTscircuitSnippetToSearchResult = (tscircuitSnippet) => {
819
839
 
820
840
  // lib/components/ImportComponentDialog/ImportComponentDialog.tsx
821
841
  import { createSvgUrl as createPngUrl } from "@tscircuit/create-snippet-url";
822
- import { jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
842
+ import { jsx as jsx6, jsxs as jsxs3 } from "react/jsx-runtime";
823
843
  var ImportComponentDialog = ({
824
844
  isOpen,
825
845
  onClose,
@@ -884,8 +904,8 @@ var ImportComponentDialog = ({
884
904
  return /* @__PURE__ */ jsxs3(AlertDialog, { open: isOpen, onOpenChange: () => onClose(), children: [
885
905
  /* @__PURE__ */ jsxs3(AlertDialogContent, { className: "rf-max-w-3xl rf-w-full rf-max-h-[90vh] rf-overflow-y-auto rf-flex rf-flex-col", children: [
886
906
  /* @__PURE__ */ jsxs3(AlertDialogHeader, { children: [
887
- /* @__PURE__ */ jsx5(AlertDialogTitle, { children: "Import Component" }),
888
- /* @__PURE__ */ jsx5(AlertDialogDescription, { children: "Search for components from tscircuit.com or JLCPCB parts library." })
907
+ /* @__PURE__ */ jsx6(AlertDialogTitle, { children: "Import Component" }),
908
+ /* @__PURE__ */ jsx6(AlertDialogDescription, { children: "Search for components from tscircuit.com or JLCPCB parts library." })
889
909
  ] }),
890
910
  /* @__PURE__ */ jsxs3(
891
911
  Tabs,
@@ -894,13 +914,13 @@ var ImportComponentDialog = ({
894
914
  onValueChange: (value) => setActiveTab(value),
895
915
  children: [
896
916
  /* @__PURE__ */ jsxs3(TabsList, { className: "rf-grid rf-w-full rf-grid-cols-2", children: [
897
- /* @__PURE__ */ jsx5(TabsTrigger, { value: "tscircuit.com", children: "tscircuit.com" }),
898
- /* @__PURE__ */ jsx5(TabsTrigger, { value: "jlcpcb", children: "JLCPCB Parts" })
917
+ /* @__PURE__ */ jsx6(TabsTrigger, { value: "tscircuit.com", children: "tscircuit.com" }),
918
+ /* @__PURE__ */ jsx6(TabsTrigger, { value: "jlcpcb", children: "JLCPCB Parts" })
899
919
  ] }),
900
920
  /* @__PURE__ */ jsxs3("div", { className: "rf-flex rf-items-center rf-gap-2 rf-mt-4", children: [
901
921
  /* @__PURE__ */ jsxs3("div", { className: "rf-relative rf-flex-grow", children: [
902
- /* @__PURE__ */ jsx5(Search, { className: "rf-absolute rf-left-2 rf-top-2.5 rf-h-4 rf-w-4 rf-text-muted-foreground" }),
903
- /* @__PURE__ */ jsx5(
922
+ /* @__PURE__ */ jsx6(Search, { className: "rf-absolute rf-left-2 rf-top-2.5 rf-h-4 rf-w-4 rf-text-muted-foreground" }),
923
+ /* @__PURE__ */ jsx6(
904
924
  Input,
905
925
  {
906
926
  placeholder: activeTab === "tscircuit.com" ? "Search components..." : "Search JLCPCB parts (e.g. C14663)...",
@@ -911,22 +931,22 @@ var ImportComponentDialog = ({
911
931
  }
912
932
  )
913
933
  ] }),
914
- /* @__PURE__ */ jsx5(Button, { onClick: handleSearch, disabled: isLoading, children: isLoading ? /* @__PURE__ */ jsx5(Loader22, { className: "rf-h-4 rf-w-4 rf-animate-spin" }) : "Search" })
934
+ /* @__PURE__ */ jsx6(Button, { onClick: handleSearch, disabled: isLoading, children: isLoading ? /* @__PURE__ */ jsx6(Loader22, { className: "rf-h-4 rf-w-4 rf-animate-spin" }) : "Search" })
915
935
  ] }),
916
- /* @__PURE__ */ jsx5("div", { className: "rf-mt-4 rf-flex-1 rf-min-h-[200px] !rf-max-h-[40vh] !rf-overflow-y-auto rf-border rf-rounded-md", children: searchResults.length > 0 ? /* @__PURE__ */ jsx5("div", { className: "rf-divide-y", children: searchResults.map((result) => /* @__PURE__ */ jsxs3(
936
+ /* @__PURE__ */ jsx6("div", { className: "rf-mt-4 rf-flex-1 rf-min-h-[200px] !rf-max-h-[40vh] !rf-overflow-y-auto rf-border rf-rounded-md", children: searchResults.length > 0 ? /* @__PURE__ */ jsx6("div", { className: "rf-divide-y", children: searchResults.map((result) => /* @__PURE__ */ jsxs3(
917
937
  "div",
918
938
  {
919
939
  className: `rf-p-3 rf-flex rf-items-center rf-justify-between rf-cursor-pointer hover:rf-bg-zinc-100 ${selectedComponent?.id === result.id ? "rf-bg-zinc-100" : ""}`,
920
940
  onClick: () => setSelectedComponent(result),
921
941
  children: [
922
942
  /* @__PURE__ */ jsxs3("div", { children: [
923
- /* @__PURE__ */ jsx5("div", { className: "rf-font-medium", children: result.name }),
943
+ /* @__PURE__ */ jsx6("div", { className: "rf-font-medium", children: result.name }),
924
944
  /* @__PURE__ */ jsxs3("div", { className: "rf-text-sm rf-text-zinc-500", children: [
925
- result.partNumber && /* @__PURE__ */ jsx5("span", { className: "rf-mr-2", children: result.partNumber }),
945
+ result.partNumber && /* @__PURE__ */ jsx6("span", { className: "rf-mr-2", children: result.partNumber }),
926
946
  result.description
927
947
  ] })
928
948
  ] }),
929
- /* @__PURE__ */ jsx5("div", { className: "rf-flex rf-gap-2", children: result.source === "tscircuit.com" && /* @__PURE__ */ jsx5(
949
+ /* @__PURE__ */ jsx6("div", { className: "rf-flex rf-gap-2", children: result.source === "tscircuit.com" && /* @__PURE__ */ jsx6(
930
950
  Button,
931
951
  {
932
952
  variant: "outline",
@@ -942,15 +962,15 @@ var ImportComponentDialog = ({
942
962
  },
943
963
  result.id
944
964
  )) }) : isLoading ? /* @__PURE__ */ jsxs3("div", { className: "rf-p-8 rf-text-center rf-text-zinc-500", children: [
945
- /* @__PURE__ */ jsx5(Loader22, { className: "rf-h-8 rf-w-8 rf-animate-spin rf-mx-auto rf-mb-2" }),
946
- /* @__PURE__ */ jsx5("p", { children: "Searching..." })
947
- ] }) : /* @__PURE__ */ jsx5("div", { className: "rf-p-8 rf-text-center rf-text-zinc-500", children: hasSearched ? "No results found" : "Enter a search term to find components" }) })
965
+ /* @__PURE__ */ jsx6(Loader22, { className: "rf-h-8 rf-w-8 rf-animate-spin rf-mx-auto rf-mb-2" }),
966
+ /* @__PURE__ */ jsx6("p", { children: "Searching..." })
967
+ ] }) : /* @__PURE__ */ jsx6("div", { className: "rf-p-8 rf-text-center rf-text-zinc-500", children: hasSearched ? "No results found" : "Enter a search term to find components" }) })
948
968
  ]
949
969
  }
950
970
  ),
951
971
  /* @__PURE__ */ jsxs3(AlertDialogFooter, { children: [
952
- /* @__PURE__ */ jsx5(AlertDialogCancel, { onClick: onClose, children: "Cancel" }),
953
- /* @__PURE__ */ jsx5(
972
+ /* @__PURE__ */ jsx6(AlertDialogCancel, { onClick: onClose, children: "Cancel" }),
973
+ /* @__PURE__ */ jsx6(
954
974
  Button,
955
975
  {
956
976
  onClick: () => {
@@ -965,24 +985,24 @@ var ImportComponentDialog = ({
965
985
  )
966
986
  ] })
967
987
  ] }),
968
- /* @__PURE__ */ jsx5(AlertDialog, { open: detailsOpen, onOpenChange: setDetailsOpen, children: /* @__PURE__ */ jsxs3(AlertDialogContent, { className: "!rf-max-h-[70%] !rf-overflow-y-auto rf-flex rf-flex-col !rf-max-w-[60vw] !rf-overflow-x-hidden", children: [
988
+ /* @__PURE__ */ jsx6(AlertDialog, { open: detailsOpen, onOpenChange: setDetailsOpen, children: /* @__PURE__ */ jsxs3(AlertDialogContent, { className: "!rf-max-h-[70%] !rf-overflow-y-auto rf-flex rf-flex-col !rf-max-w-[60vw] !rf-overflow-x-hidden", children: [
969
989
  /* @__PURE__ */ jsxs3(AlertDialogHeader, { children: [
970
- /* @__PURE__ */ jsx5(AlertDialogTitle, { children: detailsComponent?.name }),
971
- /* @__PURE__ */ jsx5(AlertDialogDescription, { children: "Detailed information about the selected component" }),
990
+ /* @__PURE__ */ jsx6(AlertDialogTitle, { children: detailsComponent?.name }),
991
+ /* @__PURE__ */ jsx6(AlertDialogDescription, { children: "Detailed information about the selected component" }),
972
992
  /* @__PURE__ */ jsxs3("div", { className: "rf-text-sm rf-text-muted-foreground", children: [
973
- detailsComponent?.partNumber && /* @__PURE__ */ jsx5("div", { className: "rf-font-mono rf-text-sm rf-mb-2", children: detailsComponent.partNumber }),
993
+ detailsComponent?.partNumber && /* @__PURE__ */ jsx6("div", { className: "rf-font-mono rf-text-sm rf-mb-2", children: detailsComponent.partNumber }),
974
994
  detailsComponent?.description
975
995
  ] })
976
996
  ] }),
977
997
  detailsComponent?.source === "jlcpcb" && /* @__PURE__ */ jsxs3("div", { className: "rf-my-4 rf-border rf-rounded-md rf-p-4", children: [
978
- /* @__PURE__ */ jsx5("div", { className: "rf-text-sm rf-font-medium rf-mb-2", children: "JLCPCB Details" }),
998
+ /* @__PURE__ */ jsx6("div", { className: "rf-text-sm rf-font-medium rf-mb-2", children: "JLCPCB Details" }),
979
999
  /* @__PURE__ */ jsxs3("div", { className: "rf-grid rf-grid-cols-2 rf-gap-2", children: [
980
1000
  detailsComponent.package && /* @__PURE__ */ jsxs3("div", { className: "rf-flex rf-flex-col", children: [
981
- /* @__PURE__ */ jsx5("span", { className: "rf-text-xs rf-text-zinc-500", children: "Package" }),
982
- /* @__PURE__ */ jsx5("span", { className: "rf-font-medium", children: detailsComponent.package })
1001
+ /* @__PURE__ */ jsx6("span", { className: "rf-text-xs rf-text-zinc-500", children: "Package" }),
1002
+ /* @__PURE__ */ jsx6("span", { className: "rf-font-medium", children: detailsComponent.package })
983
1003
  ] }),
984
1004
  detailsComponent.price !== void 0 && /* @__PURE__ */ jsxs3("div", { className: "rf-flex rf-flex-col", children: [
985
- /* @__PURE__ */ jsx5("span", { className: "rf-text-xs rf-text-zinc-500", children: "Price" }),
1005
+ /* @__PURE__ */ jsx6("span", { className: "rf-text-xs rf-text-zinc-500", children: "Price" }),
986
1006
  /* @__PURE__ */ jsxs3("span", { className: "rf-font-medium", children: [
987
1007
  "$",
988
1008
  detailsComponent.price.toFixed(4)
@@ -991,13 +1011,13 @@ var ImportComponentDialog = ({
991
1011
  ] })
992
1012
  ] }),
993
1013
  detailsComponent?.source === "tscircuit.com" && /* @__PURE__ */ jsxs3("div", { className: "rf-my-4 rf-border rf-rounded-md rf-p-4 !rf-max-w-[60vw] !rf-overflow-x-hidden", children: [
994
- /* @__PURE__ */ jsx5("div", { className: "rf-text-sm rf-font-medium rf-mb-2", children: "tscircuit Details" }),
995
- /* @__PURE__ */ jsx5("div", { className: "rf-grid rf-grid-cols-2 rf-gap-2", children: detailsComponent.owner && /* @__PURE__ */ jsxs3("div", { className: "rf-flex rf-flex-col", children: [
996
- /* @__PURE__ */ jsx5("span", { className: "rf-text-xs rf-text-zinc-500", children: "Owner" }),
997
- /* @__PURE__ */ jsx5("span", { className: "rf-font-medium", children: detailsComponent.owner })
1014
+ /* @__PURE__ */ jsx6("div", { className: "rf-text-sm rf-font-medium rf-mb-2", children: "tscircuit Details" }),
1015
+ /* @__PURE__ */ jsx6("div", { className: "rf-grid rf-grid-cols-2 rf-gap-2", children: detailsComponent.owner && /* @__PURE__ */ jsxs3("div", { className: "rf-flex rf-flex-col", children: [
1016
+ /* @__PURE__ */ jsx6("span", { className: "rf-text-xs rf-text-zinc-500", children: "Owner" }),
1017
+ /* @__PURE__ */ jsx6("span", { className: "rf-font-medium", children: detailsComponent.owner })
998
1018
  ] }) }),
999
1019
  detailsComponent.code && /* @__PURE__ */ jsxs3("div", { className: "rf-mt-2", children: [
1000
- /* @__PURE__ */ jsx5("div", { className: "rf-text-xs rf-text-zinc-500 rf-mb-1", children: "Code Preview" }),
1020
+ /* @__PURE__ */ jsx6("div", { className: "rf-text-xs rf-text-zinc-500 rf-mb-1", children: "Code Preview" }),
1001
1021
  /* @__PURE__ */ jsxs3("pre", { className: "rf-bg-zinc-50 rf-p-2 rf-rounded rf-text-xs rf-font-mono rf-max-h-32 rf-overflow-y-auto", children: [
1002
1022
  detailsComponent.code.substring(0, 500),
1003
1023
  detailsComponent.code.length > 500 && "..."
@@ -1005,15 +1025,15 @@ var ImportComponentDialog = ({
1005
1025
  ] })
1006
1026
  ] }),
1007
1027
  /* @__PURE__ */ jsxs3("div", { className: "rf-my-4 rf-border rf-rounded-md rf-p-4", children: [
1008
- /* @__PURE__ */ jsx5("div", { className: "rf-text-sm rf-font-medium rf-mb-2", children: "Preview" }),
1009
- detailsComponent?.source === "tscircuit.com" && detailsComponent.code ? /* @__PURE__ */ jsx5("div", { className: "rf-flex rf-justify-center", children: /* @__PURE__ */ jsx5("div", { className: "rf-border rf-rounded rf-p-4 rf-bg-zinc-50", children: /* @__PURE__ */ jsx5(
1028
+ /* @__PURE__ */ jsx6("div", { className: "rf-text-sm rf-font-medium rf-mb-2", children: "Preview" }),
1029
+ detailsComponent?.source === "tscircuit.com" && detailsComponent.code ? /* @__PURE__ */ jsx6("div", { className: "rf-flex rf-justify-center", children: /* @__PURE__ */ jsx6("div", { className: "rf-border rf-rounded rf-p-4 rf-bg-zinc-50", children: /* @__PURE__ */ jsx6(
1010
1030
  "img",
1011
1031
  {
1012
1032
  src: createPngUrl(detailsComponent.code, "pcb"),
1013
1033
  alt: detailsComponent.name,
1014
1034
  className: "rf-w-full rf-aspect-video rf-object-contain"
1015
1035
  }
1016
- ) }) }) : /* @__PURE__ */ jsx5("div", { className: "rf-text-center rf-text-zinc-500 rf-p-4", children: "No preview available" })
1036
+ ) }) }) : /* @__PURE__ */ jsx6("div", { className: "rf-text-center rf-text-zinc-500 rf-p-4", children: "No preview available" })
1017
1037
  ] }),
1018
1038
  /* @__PURE__ */ jsxs3("div", { className: "rf-flex rf-justify-between", children: [
1019
1039
  /* @__PURE__ */ jsxs3(
@@ -1031,11 +1051,11 @@ var ImportComponentDialog = ({
1031
1051
  " ",
1032
1052
  detailsComponent?.source === "jlcpcb" ? "JLCPCB" : "tscircuit.com",
1033
1053
  " ",
1034
- /* @__PURE__ */ jsx5(ExternalLink, { className: "rf-h-3 rf-w-3" })
1054
+ /* @__PURE__ */ jsx6(ExternalLink, { className: "rf-h-3 rf-w-3" })
1035
1055
  ]
1036
1056
  }
1037
1057
  ),
1038
- /* @__PURE__ */ jsx5(
1058
+ /* @__PURE__ */ jsx6(
1039
1059
  Button,
1040
1060
  {
1041
1061
  onClick: () => {
@@ -1185,7 +1205,7 @@ var importComponentFromJlcpcb = async (jlcpcbPartNumber) => {
1185
1205
  };
1186
1206
 
1187
1207
  // lib/components/RunFrameForCli/LeftHeader.tsx
1188
- import { Fragment as Fragment2, jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
1208
+ import { Fragment as Fragment2, jsx as jsx7, jsxs as jsxs4 } from "react/jsx-runtime";
1189
1209
  var RunframeCliLeftHeader = (props) => {
1190
1210
  const lastRunEvalVersion = useRunnerStore((s) => s.lastRunEvalVersion);
1191
1211
  const [snippetName, setSnippetName] = useState6(null);
@@ -1278,9 +1298,9 @@ var RunframeCliLeftHeader = (props) => {
1278
1298
  const [isImportDialogOpen, setIsImportDialogOpen] = useState6(false);
1279
1299
  return /* @__PURE__ */ jsxs4(Fragment2, { children: [
1280
1300
  /* @__PURE__ */ jsxs4(DropdownMenu, { children: [
1281
- /* @__PURE__ */ jsx6(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx6("div", { className: "rf-whitespace-nowrap rf-text-xs font-medium rf-p-2 rf-mx-1 rf-cursor-pointer rf-relative", children: "File" }) }),
1301
+ /* @__PURE__ */ jsx7(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx7("div", { className: "rf-whitespace-nowrap rf-text-xs font-medium rf-p-2 rf-mx-1 rf-cursor-pointer rf-relative", children: "File" }) }),
1282
1302
  /* @__PURE__ */ jsxs4(DropdownMenuContent, { children: [
1283
- /* @__PURE__ */ jsx6(
1303
+ /* @__PURE__ */ jsx7(
1284
1304
  DropdownMenuItem,
1285
1305
  {
1286
1306
  className: "rf-text-xs",
@@ -1289,7 +1309,7 @@ var RunframeCliLeftHeader = (props) => {
1289
1309
  children: isSaving ? "Saving..." : "Push"
1290
1310
  }
1291
1311
  ),
1292
- parseInt(window.location.port) > 5e3 && /* @__PURE__ */ jsx6(
1312
+ parseInt(window.location.port) > 5e3 && /* @__PURE__ */ jsx7(
1293
1313
  DropdownMenuItem,
1294
1314
  {
1295
1315
  className: "rf-text-xs",
@@ -1299,7 +1319,7 @@ var RunframeCliLeftHeader = (props) => {
1299
1319
  children: "Order"
1300
1320
  }
1301
1321
  ),
1302
- /* @__PURE__ */ jsx6(
1322
+ /* @__PURE__ */ jsx7(
1303
1323
  DropdownMenuItem,
1304
1324
  {
1305
1325
  className: "rf-text-xs",
@@ -1309,7 +1329,7 @@ var RunframeCliLeftHeader = (props) => {
1309
1329
  }
1310
1330
  ),
1311
1331
  /* @__PURE__ */ jsxs4(DropdownMenuSub, { children: [
1312
- /* @__PURE__ */ jsx6(
1332
+ /* @__PURE__ */ jsx7(
1313
1333
  DropdownMenuSubTrigger,
1314
1334
  {
1315
1335
  className: "rf-text-xs",
@@ -1317,7 +1337,7 @@ var RunframeCliLeftHeader = (props) => {
1317
1337
  children: isExporting ? "Exporting..." : "Export"
1318
1338
  }
1319
1339
  ),
1320
- /* @__PURE__ */ jsx6(DropdownMenuPortal, { children: /* @__PURE__ */ jsx6(DropdownMenuSubContent, { children: availableExports.map((exp, i) => /* @__PURE__ */ jsx6(
1340
+ /* @__PURE__ */ jsx7(DropdownMenuPortal, { children: /* @__PURE__ */ jsx7(DropdownMenuSubContent, { children: availableExports.map((exp, i) => /* @__PURE__ */ jsx7(
1321
1341
  DropdownMenuItem,
1322
1342
  {
1323
1343
  onSelect: () => {
@@ -1332,16 +1352,16 @@ var RunframeCliLeftHeader = (props) => {
1332
1352
  });
1333
1353
  },
1334
1354
  disabled: isExporting,
1335
- children: /* @__PURE__ */ jsx6("span", { className: "rf-text-xs", children: exp.name })
1355
+ children: /* @__PURE__ */ jsx7("span", { className: "rf-text-xs", children: exp.name })
1336
1356
  },
1337
1357
  i
1338
1358
  )) }) })
1339
1359
  ] }),
1340
1360
  /* @__PURE__ */ jsxs4(DropdownMenuSub, { children: [
1341
- /* @__PURE__ */ jsx6(DropdownMenuSubTrigger, { className: "rf-text-xs", children: "Advanced" }),
1342
- /* @__PURE__ */ jsx6(DropdownMenuPortal, { children: /* @__PURE__ */ jsxs4(DropdownMenuSubContent, { children: [
1343
- /* @__PURE__ */ jsx6(DropdownMenuItem, { className: "rf-flex rf-items-center rf-gap-2", children: /* @__PURE__ */ jsxs4("div", { className: "rf-flex rf-items-center rf-gap-2", children: [
1344
- /* @__PURE__ */ jsx6(
1361
+ /* @__PURE__ */ jsx7(DropdownMenuSubTrigger, { className: "rf-text-xs", children: "Advanced" }),
1362
+ /* @__PURE__ */ jsx7(DropdownMenuPortal, { children: /* @__PURE__ */ jsxs4(DropdownMenuSubContent, { children: [
1363
+ /* @__PURE__ */ jsx7(DropdownMenuItem, { className: "rf-flex rf-items-center rf-gap-2", children: /* @__PURE__ */ jsxs4("div", { className: "rf-flex rf-items-center rf-gap-2", children: [
1364
+ /* @__PURE__ */ jsx7(
1345
1365
  Checkbox,
1346
1366
  {
1347
1367
  id: "load-latest-eval",
@@ -1351,7 +1371,7 @@ var RunframeCliLeftHeader = (props) => {
1351
1371
  }
1352
1372
  }
1353
1373
  ),
1354
- /* @__PURE__ */ jsx6(
1374
+ /* @__PURE__ */ jsx7(
1355
1375
  "label",
1356
1376
  {
1357
1377
  htmlFor: "load-latest-eval",
@@ -1360,31 +1380,31 @@ var RunframeCliLeftHeader = (props) => {
1360
1380
  }
1361
1381
  )
1362
1382
  ] }) }),
1363
- lastRunEvalVersion && /* @__PURE__ */ jsx6(DropdownMenuItem, { className: "rf-flex rf-items-center rf-gap-2", children: /* @__PURE__ */ jsx6("div", { className: "rf-flex rf-items-center rf-gap-2", children: /* @__PURE__ */ jsxs4("span", { className: "rf-text-xs", children: [
1383
+ lastRunEvalVersion && /* @__PURE__ */ jsx7(DropdownMenuItem, { className: "rf-flex rf-items-center rf-gap-2", children: /* @__PURE__ */ jsx7("div", { className: "rf-flex rf-items-center rf-gap-2", children: /* @__PURE__ */ jsxs4("span", { className: "rf-text-xs", children: [
1364
1384
  "@tscircuit/eval@",
1365
1385
  lastRunEvalVersion
1366
1386
  ] }) }) }),
1367
- /* @__PURE__ */ jsx6(
1387
+ /* @__PURE__ */ jsx7(
1368
1388
  DropdownMenuItem,
1369
1389
  {
1370
1390
  className: "rf-flex rf-items-center rf-gap-2",
1371
1391
  onClick: () => {
1372
1392
  window.open("/api/admin", "_blank");
1373
1393
  },
1374
- children: /* @__PURE__ */ jsx6("div", { className: "rf-flex rf-items-center rf-gap-2", children: /* @__PURE__ */ jsx6("span", { className: "rf-text-xs", children: "CLI Admin Panel" }) })
1394
+ children: /* @__PURE__ */ jsx7("div", { className: "rf-flex rf-items-center rf-gap-2", children: /* @__PURE__ */ jsx7("span", { className: "rf-text-xs", children: "CLI Admin Panel" }) })
1375
1395
  }
1376
1396
  )
1377
1397
  ] }) })
1378
1398
  ] })
1379
1399
  ] }),
1380
- /* @__PURE__ */ jsx6(AlertDialog, { open: isError, onOpenChange: setIsError, children: /* @__PURE__ */ jsxs4(AlertDialogContent, { children: [
1400
+ /* @__PURE__ */ jsx7(AlertDialog, { open: isError, onOpenChange: setIsError, children: /* @__PURE__ */ jsxs4(AlertDialogContent, { children: [
1381
1401
  /* @__PURE__ */ jsxs4(AlertDialogHeader, { children: [
1382
- /* @__PURE__ */ jsx6(AlertDialogTitle, { children: "Error Saving Snippet" }),
1383
- /* @__PURE__ */ jsx6(AlertDialogDescription, { children: errorMessage })
1402
+ /* @__PURE__ */ jsx7(AlertDialogTitle, { children: "Error Saving Snippet" }),
1403
+ /* @__PURE__ */ jsx7(AlertDialogDescription, { children: errorMessage })
1384
1404
  ] }),
1385
- /* @__PURE__ */ jsx6(AlertDialogFooter, { children: /* @__PURE__ */ jsx6(AlertDialogCancel, { onClick: () => setIsError(false), children: "Dismiss" }) })
1405
+ /* @__PURE__ */ jsx7(AlertDialogFooter, { children: /* @__PURE__ */ jsx7(AlertDialogCancel, { onClick: () => setIsError(false), children: "Dismiss" }) })
1386
1406
  ] }) }),
1387
- /* @__PURE__ */ jsx6(
1407
+ /* @__PURE__ */ jsx7(
1388
1408
  SelectSnippetDialog,
1389
1409
  {
1390
1410
  snippetNames: availableSnippets ?? [],
@@ -1403,7 +1423,7 @@ var RunframeCliLeftHeader = (props) => {
1403
1423
  }
1404
1424
  )
1405
1425
  ] }),
1406
- /* @__PURE__ */ jsx6(
1426
+ /* @__PURE__ */ jsx7(
1407
1427
  ImportComponentDialog,
1408
1428
  {
1409
1429
  isOpen: isImportDialogOpen,
@@ -1436,8 +1456,8 @@ var RunframeCliLeftHeader = (props) => {
1436
1456
  }
1437
1457
  }
1438
1458
  ),
1439
- /* @__PURE__ */ jsx6(Toaster, { position: "top-center", reverseOrder: false }),
1440
- /* @__PURE__ */ jsx6(
1459
+ /* @__PURE__ */ jsx7(Toaster, { position: "top-center", reverseOrder: false }),
1460
+ /* @__PURE__ */ jsx7(
1441
1461
  orderDialog.OrderDialog,
1442
1462
  {
1443
1463
  isOpen: orderDialog.isOpen,
@@ -1450,13 +1470,13 @@ var RunframeCliLeftHeader = (props) => {
1450
1470
  };
1451
1471
 
1452
1472
  // lib/components/RunFrameForCli/RunFrameForCli.tsx
1453
- import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
1473
+ import { jsx as jsx8, jsxs as jsxs5 } from "react/jsx-runtime";
1454
1474
  var RunFrameForCli = (props) => {
1455
1475
  const [shouldLoadLatestEval, setLoadLatestEval] = useLocalStorageState(
1456
1476
  "load-latest-eval",
1457
1477
  true
1458
1478
  );
1459
- return /* @__PURE__ */ jsx7(
1479
+ return /* @__PURE__ */ jsx8(
1460
1480
  RunFrameWithApi,
1461
1481
  {
1462
1482
  debug: props.debug,
@@ -1464,7 +1484,7 @@ var RunFrameForCli = (props) => {
1464
1484
  defaultToFullScreen: true,
1465
1485
  showToggleFullScreen: false,
1466
1486
  leftHeaderContent: /* @__PURE__ */ jsxs5("div", { className: "rf-flex rf-items-center rf-justify-between", children: [
1467
- /* @__PURE__ */ jsx7(
1487
+ /* @__PURE__ */ jsx8(
1468
1488
  RunframeCliLeftHeader,
1469
1489
  {
1470
1490
  shouldLoadLatestEval,