@tscircuit/runframe 0.0.437 → 0.0.439

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.
@@ -1092,7 +1092,7 @@ var RenderLogViewer = ({
1092
1092
  };
1093
1093
 
1094
1094
  // package.json
1095
- var version = "0.0.436";
1095
+ var version = "0.0.438";
1096
1096
 
1097
1097
  // lib/components/CircuitJsonPreview/CircuitJsonPreview.tsx
1098
1098
  import { jsx as jsx16, jsxs as jsxs12 } from "react/jsx-runtime";
@@ -1194,7 +1194,7 @@ var CircuitJsonPreview = ({
1194
1194
  !leftHeaderContent && isRunningCode && /* @__PURE__ */ jsx16(Loader2, { className: "rf-w-4 rf-h-4 rf-animate-spin" }),
1195
1195
  !leftHeaderContent && /* @__PURE__ */ jsx16("div", { className: "rf-flex-grow" }),
1196
1196
  renderLog && renderLog.progress !== 1 && /* @__PURE__ */ jsxs12("div", { className: "rf-flex rf-items-center rf-gap-2", children: [
1197
- renderLog.lastRenderEvent && /* @__PURE__ */ jsx16("div", { className: "rf-text-xs rf-text-gray-500", children: renderLog.lastRenderEvent?.type.split("renderable:renderLifecycle:")[1].split(":")[0] }),
1197
+ renderLog.lastRenderEvent && /* @__PURE__ */ jsx16("div", { className: "rf-text-xs rf-text-gray-500", children: renderLog.lastRenderEvent?.phase ?? "" }),
1198
1198
  /* @__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" }) }),
1199
1199
  /* @__PURE__ */ jsxs12("div", { className: "rf-text-xs rf-font-bold rf-text-gray-700 rf-tabular-nums", children: [
1200
1200
  ((renderLog.progress ?? 0) * 100).toFixed(1),
package/dist/preview.d.ts CHANGED
@@ -9,13 +9,14 @@ export { CadViewer } from '@tscircuit/3d-viewer';
9
9
  export { SchematicViewer } from '@tscircuit/schematic-viewer';
10
10
 
11
11
  type RenderEvent = {
12
- type: `renderable:renderLifecycle:${string}:start` | `renderable:renderLifecycle:${string}:end`;
12
+ type: `renderable:renderLifecycle:${string}:start` | `renderable:renderLifecycle:${string}:end` | `board:renderPhaseStarted`;
13
13
  /**
14
14
  * Corresponds to the element that was rendered
15
15
  */
16
16
  renderId: string;
17
17
  eventsProcessed: number;
18
18
  createdAt: number;
19
+ phase?: string;
19
20
  };
20
21
  interface RenderLog {
21
22
  lastRenderEvent?: RenderEvent;
package/dist/preview.js CHANGED
@@ -8,7 +8,7 @@ import {
8
8
  linkify,
9
9
  useOrderDialog,
10
10
  useOrderDialogCli
11
- } from "./chunk-JALPVOGQ.js";
11
+ } from "./chunk-UDQFHNUB.js";
12
12
  export {
13
13
  BomTable,
14
14
  CadViewer,
package/dist/runner.js CHANGED
@@ -26,13 +26,16 @@ import {
26
26
  useOrderDialog,
27
27
  useOrderDialogCli,
28
28
  useRunFrameStore
29
- } from "./chunk-JALPVOGQ.js";
29
+ } from "./chunk-UDQFHNUB.js";
30
30
 
31
31
  // lib/components/RunFrame/RunFrame.tsx
32
32
  import { createCircuitWebWorker } from "@tscircuit/eval/worker";
33
33
  import Debug from "debug";
34
34
  import { Loader2, Play, Square } from "lucide-react";
35
35
  import { useEffect, useReducer, useRef as useRef2, useState } from "react";
36
+ import {
37
+ orderedRenderPhases as orderedRenderPhases2
38
+ } from "@tscircuit/core";
36
39
 
37
40
  // lib/render-logging/getPhaseTimingsFromRenderEvents.ts
38
41
  import { orderedRenderPhases } from "@tscircuit/core";
@@ -235,23 +238,17 @@ var RunFrame = (props) => {
235
238
  }
236
239
  });
237
240
  });
238
- worker.on("renderable:renderLifecycle:anyEvent", (event) => {
241
+ worker.on("board:renderPhaseStarted", (event) => {
239
242
  renderLog2.lastRenderEvent = event;
240
243
  renderLog2.eventsProcessed = (renderLog2.eventsProcessed ?? 0) + 1;
241
- if (!renderIds.has(event.renderId)) {
242
- renderIds.add(event.renderId);
243
- }
244
- const estTotalRenderEvents = renderIds.size * numRenderPhases * 2;
245
- const hasProcessedEnoughToEstimateProgress = renderLog2.eventsProcessed > renderIds.size * 2;
246
- const estProgressLinear = renderLog2.eventsProcessed / estTotalRenderEvents;
244
+ const hasProcessedEnoughToEstimateProgress = renderLog2.eventsProcessed > 2;
245
+ const estProgressLinear = orderedRenderPhases2.indexOf(event.phase) / numRenderPhases * 0.75 + renderLog2.eventsProcessed / 1e3 * 0.25;
247
246
  const estProgress = 1 - Math.exp(-estProgressLinear * 3);
248
- renderLog2.progress = hasProcessedEnoughToEstimateProgress ? estProgress : (
249
- // Until we have enough events to estimate progress, we use the 0-5%
250
- // range and assume that there are ~500 renderIds, this will usually
251
- // be an underestimate.
252
- (1 - Math.exp(-(renderLog2.eventsProcessed ?? 0) / 1e3)) * 0.05
253
- );
254
- if (activeTab === "render_log") {
247
+ renderLog2.progress = estProgress;
248
+ setRenderLog({ ...renderLog2 });
249
+ });
250
+ if (activeTab === "render_log") {
251
+ worker.on("renderable:renderLifecycle:anyEvent", (event) => {
255
252
  renderLog2.renderEvents = renderLog2.renderEvents ?? [];
256
253
  event.createdAt = Date.now();
257
254
  renderLog2.renderEvents.push(event);
@@ -261,9 +258,9 @@ var RunFrame = (props) => {
261
258
  );
262
259
  lastRenderLogSet = Date.now();
263
260
  }
264
- }
265
- setRenderLog({ ...renderLog2 });
266
- });
261
+ setRenderLog({ ...renderLog2 });
262
+ });
263
+ }
267
264
  worker.on("autorouting:progress", (event) => {
268
265
  setAutoroutingGraphics(event.debugGraphics);
269
266
  });