@tscircuit/runframe 0.0.1205 → 0.0.1206

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.
@@ -1187,9 +1187,31 @@ var useFullscreenBodyScroll = (isFullScreen) => {
1187
1187
  }, [isFullScreen]);
1188
1188
  };
1189
1189
 
1190
+ // lib/hooks/use-local-storage-state.ts
1191
+ import { useState as useState4, useEffect as useEffect4 } from "react";
1192
+ function useLocalStorageState(key, initialValue) {
1193
+ const [state, setState] = useState4(() => {
1194
+ try {
1195
+ const item = window.localStorage.getItem(key);
1196
+ return item ? JSON.parse(item) : initialValue;
1197
+ } catch (error) {
1198
+ console.error("Error reading from localStorage:", error);
1199
+ return initialValue;
1200
+ }
1201
+ });
1202
+ useEffect4(() => {
1203
+ try {
1204
+ window.localStorage.setItem(key, JSON.stringify(state));
1205
+ } catch (error) {
1206
+ console.error("Error writing to localStorage:", error);
1207
+ }
1208
+ }, [key, state]);
1209
+ return [state, setState];
1210
+ }
1211
+
1190
1212
  // lib/components/RenderLogViewer/RenderLogViewer.tsx
1191
1213
  import { orderedRenderPhases as orderedRenderPhases2 } from "@tscircuit/core";
1192
- import { useState as useState4 } from "react";
1214
+ import { useState as useState5 } from "react";
1193
1215
 
1194
1216
  // lib/components/RenderLogViewer/RenderTimingsBar.tsx
1195
1217
  import { orderedRenderPhases } from "@tscircuit/core";
@@ -1258,10 +1280,10 @@ var RenderLogViewer = ({
1258
1280
  renderLog,
1259
1281
  onRerunWithDebug
1260
1282
  }) => {
1261
- const [sortOption, setSortOption] = useState4(
1283
+ const [sortOption, setSortOption] = useState5(
1262
1284
  "chronological"
1263
1285
  );
1264
- const [selectedDebugOption, setSelectedDebugOption] = useState4("");
1286
+ const [selectedDebugOption, setSelectedDebugOption] = useState5("");
1265
1287
  const debugOptions = [
1266
1288
  { value: "", label: "None" },
1267
1289
  {
@@ -1425,13 +1447,13 @@ var RenderLogViewer = ({
1425
1447
  };
1426
1448
 
1427
1449
  // lib/hooks/use-error-telemetry.ts
1428
- import { useEffect as useEffect4 } from "react";
1450
+ import { useEffect as useEffect5 } from "react";
1429
1451
  var useErrorTelemetry = ({
1430
1452
  errorMessage,
1431
1453
  errorStack,
1432
1454
  circuitJsonErrors
1433
1455
  }) => {
1434
- useEffect4(() => {
1456
+ useEffect5(() => {
1435
1457
  if (errorMessage) {
1436
1458
  const err = new Error(errorMessage);
1437
1459
  if (errorStack) err.stack = errorStack;
@@ -1441,7 +1463,7 @@ var useErrorTelemetry = ({
1441
1463
  }
1442
1464
  }
1443
1465
  }, [errorMessage, errorStack]);
1444
- useEffect4(() => {
1466
+ useEffect5(() => {
1445
1467
  if (circuitJsonErrors && circuitJsonErrors.length > 0) {
1446
1468
  for (const error of circuitJsonErrors) {
1447
1469
  const err = new Error(error.message || "Circuit JSON Error");
@@ -1459,7 +1481,7 @@ var useErrorTelemetry = ({
1459
1481
  };
1460
1482
 
1461
1483
  // package.json
1462
- var version = "0.0.1204";
1484
+ var version = "0.0.1205";
1463
1485
  var package_default = {
1464
1486
  name: "@tscircuit/runframe",
1465
1487
  main: "dist/preview.js",
@@ -1583,28 +1605,6 @@ var package_default = {
1583
1605
  // lib/hooks/use-eval-versions.ts
1584
1606
  import { useEffect as useEffect6, useMemo as useMemo2, useState as useState6 } from "react";
1585
1607
 
1586
- // lib/hooks/use-local-storage-state.ts
1587
- import { useState as useState5, useEffect as useEffect5 } from "react";
1588
- function useLocalStorageState(key, initialValue) {
1589
- const [state, setState] = useState5(() => {
1590
- try {
1591
- const item = window.localStorage.getItem(key);
1592
- return item ? JSON.parse(item) : initialValue;
1593
- } catch (error) {
1594
- console.error("Error reading from localStorage:", error);
1595
- return initialValue;
1596
- }
1597
- });
1598
- useEffect5(() => {
1599
- try {
1600
- window.localStorage.setItem(key, JSON.stringify(state));
1601
- } catch (error) {
1602
- console.error("Error writing to localStorage:", error);
1603
- }
1604
- }, [key, state]);
1605
- return [state, setState];
1606
- }
1607
-
1608
1608
  // lib/components/RunFrame/runner-store/use-runner-store.ts
1609
1609
  import { create } from "zustand";
1610
1610
  import { devtools } from "zustand/middleware";
@@ -4710,7 +4710,8 @@ var CircuitJsonPreview = ({
4710
4710
  errorStack,
4711
4711
  circuitJsonErrors
4712
4712
  });
4713
- const [activeTab, setActiveTabState] = useState20(
4713
+ const [activeTab, setActiveTabState] = useLocalStorageState(
4714
+ "runframe-active-tab",
4714
4715
  defaultActiveTab ?? defaultTab ?? availableTabs?.[0] ?? "pcb"
4715
4716
  );
4716
4717
  const [lastActiveTab, setLastActiveTab] = useState20(null);
@@ -4721,7 +4722,7 @@ var CircuitJsonPreview = ({
4721
4722
  setActiveTabState(tab);
4722
4723
  onActiveTabChange?.(tab);
4723
4724
  },
4724
- [onActiveTabChange]
4725
+ [onActiveTabChange, setActiveTabState]
4725
4726
  );
4726
4727
  const toggleFullScreen = () => {
4727
4728
  setIsFullScreen(!isFullScreen);
package/dist/preview.js CHANGED
@@ -8,7 +8,7 @@ import {
8
8
  linkify,
9
9
  useOrderDialog,
10
10
  useOrderDialogCli
11
- } from "./chunk-VWVP4WZI.js";
11
+ } from "./chunk-A4MTJRWL.js";
12
12
  export {
13
13
  BomTable,
14
14
  CadViewer,
package/dist/runner.js CHANGED
@@ -32,7 +32,7 @@ import {
32
32
  useRunFrameStore,
33
33
  useRunnerStore,
34
34
  useStyles
35
- } from "./chunk-VWVP4WZI.js";
35
+ } from "./chunk-A4MTJRWL.js";
36
36
 
37
37
  // lib/components/RunFrame/RunFrame.tsx
38
38
  import { createCircuitWebWorker } from "@tscircuit/eval/worker";