@tscircuit/runframe 0.0.559 → 0.0.561
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-6APZUCLA.js → chunk-G55JSW6D.js} +4 -3
- package/dist/preview.d.ts +5 -1
- package/dist/preview.js +1 -1
- package/dist/runner.js +25 -1
- package/dist/standalone-preview.min.js +898 -896
- package/dist/standalone.min.js +1060 -1058
- package/package.json +2 -2
|
@@ -1105,7 +1105,7 @@ var RenderLogViewer = ({
|
|
|
1105
1105
|
};
|
|
1106
1106
|
|
|
1107
1107
|
// package.json
|
|
1108
|
-
var version = "0.0.
|
|
1108
|
+
var version = "0.0.560";
|
|
1109
1109
|
|
|
1110
1110
|
// lib/components/CircuitJsonPreview/CircuitJsonPreview.tsx
|
|
1111
1111
|
import { jsx as jsx16, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
@@ -1146,7 +1146,8 @@ var CircuitJsonPreview = ({
|
|
|
1146
1146
|
autoRotate3dViewerDisabled,
|
|
1147
1147
|
showSchematicDebugGrid = false,
|
|
1148
1148
|
showToggleFullScreen = true,
|
|
1149
|
-
defaultToFullScreen = false
|
|
1149
|
+
defaultToFullScreen = false,
|
|
1150
|
+
activeEffectName
|
|
1150
1151
|
}) => {
|
|
1151
1152
|
useStyles();
|
|
1152
1153
|
const circuitJsonErrors = useMemo2(() => {
|
|
@@ -1213,7 +1214,7 @@ var CircuitJsonPreview = ({
|
|
|
1213
1214
|
!leftHeaderContent && isRunningCode && /* @__PURE__ */ jsx16(Loader2, { className: "rf-w-4 rf-h-4 rf-animate-spin" }),
|
|
1214
1215
|
!leftHeaderContent && /* @__PURE__ */ jsx16("div", { className: "rf-flex-grow" }),
|
|
1215
1216
|
renderLog && renderLog.progress !== 1 && !errorMessage && /* @__PURE__ */ jsxs12("div", { className: "rf-flex rf-items-center rf-gap-2", children: [
|
|
1216
|
-
renderLog.lastRenderEvent && /* @__PURE__ */ jsx16("div", { className: "rf-text-xs rf-text-gray-500", children: renderLog.lastRenderEvent?.phase ?? "" }),
|
|
1217
|
+
activeEffectName ? /* @__PURE__ */ jsx16("div", { className: "rf-text-xs rf-text-gray-500", children: activeEffectName }) : renderLog.lastRenderEvent && /* @__PURE__ */ jsx16("div", { className: "rf-text-xs rf-text-gray-500", children: renderLog.lastRenderEvent?.phase ?? "" }),
|
|
1217
1218
|
/* @__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" }) }),
|
|
1218
1219
|
/* @__PURE__ */ jsxs12("div", { className: "rf-text-xs rf-font-bold rf-text-gray-700 rf-tabular-nums", children: [
|
|
1219
1220
|
((renderLog.progress ?? 0) * 100).toFixed(1),
|
package/dist/preview.d.ts
CHANGED
|
@@ -67,6 +67,10 @@ interface PreviewContentProps {
|
|
|
67
67
|
hasCodeChangedSinceLastRun?: boolean;
|
|
68
68
|
defaultActiveTab?: TabId;
|
|
69
69
|
renderLog?: RenderLog | null;
|
|
70
|
+
/**
|
|
71
|
+
* Name of the currently running async effect from @tscircuit/core, if any
|
|
72
|
+
*/
|
|
73
|
+
activeEffectName?: string;
|
|
70
74
|
onEditEvent?: (editEvent: ManualEditEvent) => void;
|
|
71
75
|
editEvents?: ManualEditEvent[];
|
|
72
76
|
onActiveTabChange?: (tab: TabId) => any;
|
|
@@ -83,7 +87,7 @@ declare global {
|
|
|
83
87
|
}
|
|
84
88
|
}
|
|
85
89
|
|
|
86
|
-
declare const CircuitJsonPreview: ({ code, onRunClicked, errorMessage, errorStack, circuitJson, autoroutingGraphics, showRightHeaderContent, showCodeTab, codeTabContent, showJsonTab, showRenderLogTab, onActiveTabChange, renderLog, showImportAndFormatButtons, className, headerClassName, leftHeaderContent, readOnly, isStreaming, autoroutingLog, onReportAutoroutingLog, isRunningCode, hasCodeChangedSinceLastRun, onEditEvent, editEvents, defaultActiveTab, autoRotate3dViewerDisabled, showSchematicDebugGrid, showToggleFullScreen, defaultToFullScreen, }: PreviewContentProps) => react_jsx_runtime.JSX.Element;
|
|
90
|
+
declare const CircuitJsonPreview: ({ code, onRunClicked, errorMessage, errorStack, circuitJson, autoroutingGraphics, showRightHeaderContent, showCodeTab, codeTabContent, showJsonTab, showRenderLogTab, onActiveTabChange, renderLog, showImportAndFormatButtons, className, headerClassName, leftHeaderContent, readOnly, isStreaming, autoroutingLog, onReportAutoroutingLog, isRunningCode, hasCodeChangedSinceLastRun, onEditEvent, editEvents, defaultActiveTab, autoRotate3dViewerDisabled, showSchematicDebugGrid, showToggleFullScreen, defaultToFullScreen, activeEffectName, }: PreviewContentProps) => react_jsx_runtime.JSX.Element;
|
|
87
91
|
|
|
88
92
|
interface BomTableProps {
|
|
89
93
|
circuitJson: AnyCircuitElement[];
|
package/dist/preview.js
CHANGED
package/dist/runner.js
CHANGED
|
@@ -27,7 +27,7 @@ import {
|
|
|
27
27
|
useOrderDialog,
|
|
28
28
|
useOrderDialogCli,
|
|
29
29
|
useRunFrameStore
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-G55JSW6D.js";
|
|
31
31
|
|
|
32
32
|
// lib/components/RunFrame/RunFrame.tsx
|
|
33
33
|
import { createCircuitWebWorker } from "@tscircuit/eval/worker";
|
|
@@ -165,6 +165,10 @@ var RunFrame = (props) => {
|
|
|
165
165
|
const runMutex = useMutex();
|
|
166
166
|
const [isRunning, setIsRunning] = useState(false);
|
|
167
167
|
const [dependenciesLoaded, setDependenciesLoaded] = useState(false);
|
|
168
|
+
const [activeAsyncEffects, setActiveAsyncEffects] = useState({});
|
|
169
|
+
const activeEffectName = Object.values(activeAsyncEffects).sort(
|
|
170
|
+
(a, b) => a.startTime - b.startTime
|
|
171
|
+
)[0]?.effectName;
|
|
168
172
|
useEffect(() => {
|
|
169
173
|
const handleKeyDown = (e) => {
|
|
170
174
|
if ((e.ctrlKey || e.metaKey) && e.key === "Enter" && !isRunning) {
|
|
@@ -244,6 +248,7 @@ var RunFrame = (props) => {
|
|
|
244
248
|
debug("running render worker");
|
|
245
249
|
setError(null);
|
|
246
250
|
setRenderLog(null);
|
|
251
|
+
setActiveAsyncEffects({});
|
|
247
252
|
const renderLog2 = { progress: 0 };
|
|
248
253
|
let cancelled = false;
|
|
249
254
|
cancelExecutionRef.current = () => {
|
|
@@ -276,6 +281,20 @@ var RunFrame = (props) => {
|
|
|
276
281
|
const renderIds = /* @__PURE__ */ new Set();
|
|
277
282
|
const startRenderTime = Date.now();
|
|
278
283
|
let lastRenderLogSet = Date.now();
|
|
284
|
+
worker.on("asyncEffect:start", (event) => {
|
|
285
|
+
const id = `${event.phase}|${event.componentDisplayName ?? ""}|${event.effectName}`;
|
|
286
|
+
setActiveAsyncEffects((effects) => ({
|
|
287
|
+
...effects,
|
|
288
|
+
[id]: { ...event, startTime: Date.now() }
|
|
289
|
+
}));
|
|
290
|
+
});
|
|
291
|
+
worker.on("asyncEffect:end", (event) => {
|
|
292
|
+
const id = `${event.phase}|${event.componentDisplayName ?? ""}|${event.effectName}`;
|
|
293
|
+
setActiveAsyncEffects((effects) => {
|
|
294
|
+
const { [id]: _removed, ...rest } = effects;
|
|
295
|
+
return rest;
|
|
296
|
+
});
|
|
297
|
+
});
|
|
279
298
|
worker.on("autorouting:start", (event) => {
|
|
280
299
|
setAutoroutingLog({
|
|
281
300
|
...autoroutingLog,
|
|
@@ -330,6 +349,7 @@ var RunFrame = (props) => {
|
|
|
330
349
|
});
|
|
331
350
|
if (!evalResult.success) {
|
|
332
351
|
setIsRunning(false);
|
|
352
|
+
setActiveAsyncEffects({});
|
|
333
353
|
return;
|
|
334
354
|
}
|
|
335
355
|
const $renderResult = worker.renderUntilSettled();
|
|
@@ -340,6 +360,7 @@ var RunFrame = (props) => {
|
|
|
340
360
|
setError({ error: e.message, stack: e.stack });
|
|
341
361
|
setRenderLog(null);
|
|
342
362
|
setIsRunning(false);
|
|
363
|
+
setActiveAsyncEffects({});
|
|
343
364
|
return null;
|
|
344
365
|
});
|
|
345
366
|
if (!circuitJson2) return;
|
|
@@ -364,6 +385,7 @@ var RunFrame = (props) => {
|
|
|
364
385
|
setRenderLog({ ...renderLog2 });
|
|
365
386
|
}
|
|
366
387
|
setIsRunning(false);
|
|
388
|
+
setActiveAsyncEffects({});
|
|
367
389
|
cancelExecutionRef.current = null;
|
|
368
390
|
};
|
|
369
391
|
runMutex.runWithMutex(runWorker);
|
|
@@ -461,6 +483,7 @@ var RunFrame = (props) => {
|
|
|
461
483
|
cancelExecutionRef.current = null;
|
|
462
484
|
}
|
|
463
485
|
runMutex.cancel();
|
|
486
|
+
setActiveAsyncEffects({});
|
|
464
487
|
if (globalThis.runFrameWorker) {
|
|
465
488
|
globalThis.runFrameWorker.kill();
|
|
466
489
|
globalThis.runFrameWorker = null;
|
|
@@ -485,6 +508,7 @@ var RunFrame = (props) => {
|
|
|
485
508
|
onActiveTabChange: setActiveTab,
|
|
486
509
|
circuitJson,
|
|
487
510
|
renderLog,
|
|
511
|
+
activeEffectName,
|
|
488
512
|
isRunningCode: isRunning,
|
|
489
513
|
errorMessage: error?.error,
|
|
490
514
|
errorStack: error?.stack,
|