@cascadetui/core 0.1.9 → 0.1.10

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/3d.js CHANGED
@@ -6,7 +6,7 @@ import {
6
6
  __export,
7
7
  __require,
8
8
  __toESM
9
- } from "./index-9j6zba34.js";
9
+ } from "./index-2pvbxs43.js";
10
10
 
11
11
  // ../../node_modules/.bun/omggif@1.0.10/node_modules/omggif/omggif.js
12
12
  var require_omggif = __commonJS((exports) => {
@@ -16537,6 +16537,8 @@ class CliRenderer extends EventEmitter9 {
16537
16537
  _isDestroyed = false;
16538
16538
  _destroyPending = false;
16539
16539
  _destroyFinalized = false;
16540
+ destroyTimeoutId = null;
16541
+ destroyTimeoutMs = 100;
16540
16542
  nextRenderBuffer;
16541
16543
  currentRenderBuffer;
16542
16544
  _isRunning = false;
@@ -16578,6 +16580,10 @@ class CliRenderer extends EventEmitter9 {
16578
16580
  minTargetFrameTime = 1000 / this.maxFps;
16579
16581
  immediateRerenderRequested = false;
16580
16582
  updateScheduled = false;
16583
+ consecutiveImmediateRerenders = 0;
16584
+ lastImmediateRerenderTime = 0;
16585
+ maxConsecutiveImmediateRerenders = 10;
16586
+ immediateRerenderResetMs = 1000;
16581
16587
  liveRequestCounter = 0;
16582
16588
  _controlState = "idle" /* IDLE */;
16583
16589
  frameCallbacks = [];
@@ -17925,6 +17931,14 @@ Captured output:
17925
17931
  this._isDestroyed = true;
17926
17932
  this._destroyPending = true;
17927
17933
  if (this.rendering) {
17934
+ if (this.destroyTimeoutId === null) {
17935
+ this.destroyTimeoutId = setTimeout(() => {
17936
+ this.destroyTimeoutId = null;
17937
+ if (this._destroyPending && !this._destroyFinalized && !this.renderingNative) {
17938
+ this.finalizeDestroy();
17939
+ }
17940
+ }, this.destroyTimeoutMs);
17941
+ }
17928
17942
  return;
17929
17943
  }
17930
17944
  this.finalizeDestroy();
@@ -17934,6 +17948,10 @@ Captured output:
17934
17948
  return;
17935
17949
  this._destroyFinalized = true;
17936
17950
  this._destroyPending = false;
17951
+ if (this.destroyTimeoutId !== null) {
17952
+ clearTimeout(this.destroyTimeoutId);
17953
+ this.destroyTimeoutId = null;
17954
+ }
17937
17955
  process.removeListener("SIGWINCH", this.sigwinchHandler);
17938
17956
  process.removeListener("uncaughtException", this.uncaughtExceptionHandler);
17939
17957
  process.removeListener("unhandledRejection", this.unhandledRejectionHandler);
@@ -17964,6 +17982,9 @@ Captured output:
17964
17982
  this.renderTimeout = null;
17965
17983
  }
17966
17984
  this._isRunning = false;
17985
+ this.rendering = false;
17986
+ this.updateScheduled = false;
17987
+ this.immediateRerenderRequested = false;
17967
17988
  this.waitingForPixelResolution = false;
17968
17989
  this.setCapturedRenderable(undefined);
17969
17990
  try {
@@ -18043,6 +18064,9 @@ Captured output:
18043
18064
  }
18044
18065
  const end = performance.now();
18045
18066
  this.renderStats.frameCallbackTime = end - start;
18067
+ if (this._destroyPending) {
18068
+ return;
18069
+ }
18046
18070
  const renderTreeStart = traceEnabled ? trace.now() : 0;
18047
18071
  this.root.render(this.nextRenderBuffer, deltaTime);
18048
18072
  const renderTreeMs = traceEnabled ? trace.now() - renderTreeStart : 0;
@@ -18071,6 +18095,24 @@ Captured output:
18071
18095
  this.collectStatSample(overallFrameTime);
18072
18096
  }
18073
18097
  if (this._isRunning || this.immediateRerenderRequested) {
18098
+ const now2 = Date.now();
18099
+ if (this.immediateRerenderRequested) {
18100
+ if (now2 - this.lastImmediateRerenderTime > this.immediateRerenderResetMs) {
18101
+ this.consecutiveImmediateRerenders = 0;
18102
+ }
18103
+ this.consecutiveImmediateRerenders++;
18104
+ this.lastImmediateRerenderTime = now2;
18105
+ if (this.consecutiveImmediateRerenders > this.maxConsecutiveImmediateRerenders) {
18106
+ console.warn(`[Cascade] Too many consecutive immediate re-renders (${this.consecutiveImmediateRerenders}), forcing delay`);
18107
+ this.consecutiveImmediateRerenders = 0;
18108
+ this.immediateRerenderRequested = false;
18109
+ this.renderTimeout = setTimeout(() => {
18110
+ this.renderTimeout = null;
18111
+ this.loop();
18112
+ }, 100);
18113
+ return;
18114
+ }
18115
+ }
18074
18116
  const targetFrameTime = this.immediateRerenderRequested ? this.minTargetFrameTime : this.targetFrameTime;
18075
18117
  const delay = Math.max(1, targetFrameTime - Math.floor(overallFrameTime));
18076
18118
  this.immediateRerenderRequested = false;
@@ -18354,5 +18396,5 @@ Captured output:
18354
18396
 
18355
18397
  export { __toESM, __commonJS, __export, __require, Edge, Gutter, MeasureMode, exports_src, isValidBorderStyle, parseBorderStyle, BorderChars, getBorderFromSides, getBorderSides, borderCharsToArray, BorderCharArrays, nonAlphanumericKeys, parseKeypress, KeyEvent, PasteEvent, KeyHandler, InternalKeyHandler, RGBA, hexToRgb, rgbToHex, hsvToRgb, parseColor, fonts, measureText, getCharacterPositions, coordinateToCharacterIndex, renderFontToFrameBuffer, TextAttributes, ATTRIBUTE_BASE_BITS, ATTRIBUTE_BASE_MASK, getBaseAttributes, DebugOverlayCorner, createTextAttributes, attributesWithLink, getLinkId, visualizeRenderableTree, isStyledText, StyledText, stringToStyledText, black, red, green, yellow, blue, magenta, cyan, white, brightBlack, brightRed, brightGreen, brightYellow, brightBlue, brightMagenta, brightCyan, brightWhite, bgBlack, bgRed, bgGreen, bgYellow, bgBlue, bgMagenta, bgCyan, bgWhite, bold, italic, underline, strikethrough, dim, reverse, blink, fg, bg, link, t, hastToStyledText, LinearScrollAccel, MacOSScrollAccel, StdinBuffer, parseAlign, parseAlignItems, parseBoxSizing, parseDimension, parseDirection, parseDisplay, parseEdge, parseFlexDirection, parseGutter, parseJustify, parseLogLevel, parseMeasureMode, parseOverflow, parsePositionType, parseUnit, parseWrap, MouseParser, Selection, convertGlobalToLocalSelection, ASCIIFontSelectionHelper, envRegistry, registerEnvVar, clearEnvCache, generateEnvMarkdown, generateEnvColored, env, treeSitterToTextChunks, treeSitterToStyledText, addDefaultParsers, TreeSitterClient, DataPathsManager, getDataPaths, extToFiletype, pathToFiletype, main, getTreeSitterClient, ExtmarksController, createExtmarksController, TerminalPalette, createTerminalPalette, TextBuffer, SpanInfoStruct, LogLevel2 as LogLevel, setRenderLibPath, resolveRenderLib, OptimizedBuffer, h, isVNode, maybeMakeRenderable, wrapWithDelegates, instantiate, delegate, isValidPercentage, LayoutEvents, RenderableEvents, isRenderable, BaseRenderable, Renderable, RootRenderable, ANSI, defaultKeyAliases, mergeKeyAliases, mergeKeyBindings, getKeyBindingKey, buildKeyBindingsMap, capture, ConsolePosition, TerminalConsole, getObjectsInViewport, buildKittyKeyboardFlags, MouseEvent, MouseButton, createCliRenderer, CliRenderEvents, RendererControlState, CliRenderer };
18356
18398
 
18357
- //# debugId=417D82C6F387312F64756E2164756E21
18358
- //# sourceMappingURL=index-9j6zba34.js.map
18399
+ //# debugId=5A054962FAF3B29C64756E2164756E21
18400
+ //# sourceMappingURL=index-2pvbxs43.js.map