@opentui/core 0.1.77 → 0.1.78

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-h3dbfsf6.js";
9
+ } from "./index-rje6z21e.js";
10
10
 
11
11
  // ../../node_modules/.bun/omggif@1.0.10/node_modules/omggif/omggif.js
12
12
  var require_omggif = __commonJS((exports) => {
package/Renderable.d.ts CHANGED
@@ -47,11 +47,15 @@ export interface LayoutOptions extends BaseRenderableOptions {
47
47
  maxWidth?: number | "auto" | `${number}%`;
48
48
  maxHeight?: number | "auto" | `${number}%`;
49
49
  margin?: number | "auto" | `${number}%`;
50
+ marginX?: number | "auto" | `${number}%`;
51
+ marginY?: number | "auto" | `${number}%`;
50
52
  marginTop?: number | "auto" | `${number}%`;
51
53
  marginRight?: number | "auto" | `${number}%`;
52
54
  marginBottom?: number | "auto" | `${number}%`;
53
55
  marginLeft?: number | "auto" | `${number}%`;
54
56
  padding?: number | `${number}%`;
57
+ paddingX?: number | `${number}%`;
58
+ paddingY?: number | `${number}%`;
55
59
  paddingTop?: number | `${number}%`;
56
60
  paddingRight?: number | `${number}%`;
57
61
  paddingBottom?: number | `${number}%`;
@@ -225,11 +229,15 @@ export declare abstract class Renderable extends BaseRenderable {
225
229
  set minHeight(minHeight: number | `${number}%` | null | undefined);
226
230
  set maxHeight(maxHeight: number | `${number}%` | null | undefined);
227
231
  set margin(margin: number | "auto" | `${number}%` | null | undefined);
232
+ set marginX(marginX: number | "auto" | `${number}%` | null | undefined);
233
+ set marginY(marginY: number | "auto" | `${number}%` | null | undefined);
228
234
  set marginTop(margin: number | "auto" | `${number}%` | null | undefined);
229
235
  set marginRight(margin: number | "auto" | `${number}%` | null | undefined);
230
236
  set marginBottom(margin: number | "auto" | `${number}%` | null | undefined);
231
237
  set marginLeft(margin: number | "auto" | `${number}%` | null | undefined);
232
238
  set padding(padding: number | `${number}%` | null | undefined);
239
+ set paddingX(paddingX: number | `${number}%` | null | undefined);
240
+ set paddingY(paddingY: number | `${number}%` | null | undefined);
233
241
  set paddingTop(padding: number | `${number}%` | null | undefined);
234
242
  set paddingRight(padding: number | `${number}%` | null | undefined);
235
243
  set paddingBottom(padding: number | `${number}%` | null | undefined);
@@ -1833,23 +1833,23 @@ var kittyKeyMap = {
1833
1833
  57396: "f33",
1834
1834
  57397: "f34",
1835
1835
  57398: "f35",
1836
- 57400: "kp0",
1837
- 57401: "kp1",
1838
- 57402: "kp2",
1839
- 57403: "kp3",
1840
- 57404: "kp4",
1841
- 57405: "kp5",
1842
- 57406: "kp6",
1843
- 57407: "kp7",
1844
- 57408: "kp8",
1845
- 57409: "kp9",
1846
- 57410: "kpdecimal",
1847
- 57411: "kpdivide",
1848
- 57412: "kpmultiply",
1849
- 57413: "kpminus",
1850
- 57414: "kpplus",
1851
- 57415: "kpenter",
1852
- 57416: "kpequal",
1836
+ 57399: "kp0",
1837
+ 57400: "kp1",
1838
+ 57401: "kp2",
1839
+ 57402: "kp3",
1840
+ 57403: "kp4",
1841
+ 57404: "kp5",
1842
+ 57405: "kp6",
1843
+ 57406: "kp7",
1844
+ 57407: "kp8",
1845
+ 57408: "kp9",
1846
+ 57409: "kpdecimal",
1847
+ 57410: "kpdivide",
1848
+ 57411: "kpmultiply",
1849
+ 57412: "kpminus",
1850
+ 57413: "kpplus",
1851
+ 57414: "kpenter",
1852
+ 57415: "kpequal",
1853
1853
  57428: "mediaplay",
1854
1854
  57429: "mediapause",
1855
1855
  57430: "mediaplaypause",
@@ -5956,6 +5956,9 @@ function isCompleteSequence(data) {
5956
5956
  return "incomplete";
5957
5957
  }
5958
5958
  const afterEsc = data.slice(1);
5959
+ if (afterEsc.startsWith(ESC)) {
5960
+ return isCompleteSequence(afterEsc);
5961
+ }
5959
5962
  if (afterEsc.startsWith("[")) {
5960
5963
  if (afterEsc.startsWith("[M")) {
5961
5964
  return data.length >= 6 ? "complete" : "incomplete";
@@ -6034,6 +6037,9 @@ function isCompleteApcSequence(data) {
6034
6037
  }
6035
6038
  return "incomplete";
6036
6039
  }
6040
+ function isNestedEscapeSequenceStart(char) {
6041
+ return char === "[" || char === "]" || char === "O" || char === "N" || char === "P" || char === "_";
6042
+ }
6037
6043
  function extractCompleteSequences(buffer) {
6038
6044
  const sequences = [];
6039
6045
  let pos = 0;
@@ -6049,6 +6055,14 @@ function extractCompleteSequences(buffer) {
6049
6055
  pos += seqEnd;
6050
6056
  break;
6051
6057
  } else if (status === "incomplete") {
6058
+ if (candidate === ESC + ESC) {
6059
+ const nextChar = remaining[seqEnd];
6060
+ if (seqEnd < remaining.length && !isNestedEscapeSequenceStart(nextChar)) {
6061
+ sequences.push(candidate);
6062
+ pos += seqEnd;
6063
+ break;
6064
+ }
6065
+ }
6052
6066
  seqEnd++;
6053
6067
  } else {
6054
6068
  sequences.push(candidate);
@@ -10629,6 +10643,10 @@ function getOpenTUILib(libPath) {
10629
10643
  args: ["ptr", "i64"],
10630
10644
  returns: "void"
10631
10645
  },
10646
+ restoreTerminalModes: {
10647
+ args: ["ptr"],
10648
+ returns: "void"
10649
+ },
10632
10650
  enableMouse: {
10633
10651
  args: ["ptr", "bool"],
10634
10652
  returns: "void"
@@ -11763,6 +11781,9 @@ class FFIRenderLib {
11763
11781
  const ts = timestamp ?? Date.now();
11764
11782
  this.opentui.symbols.dumpStdoutBuffer(renderer, ts);
11765
11783
  }
11784
+ restoreTerminalModes(renderer) {
11785
+ this.opentui.symbols.restoreTerminalModes(renderer);
11786
+ }
11766
11787
  enableMouse(renderer, enableMovement) {
11767
11788
  this.opentui.symbols.enableMouse(renderer, enableMovement);
11768
11789
  }
@@ -13352,10 +13373,13 @@ class Renderable extends BaseRenderable {
13352
13373
  setupMarginAndPadding(options) {
13353
13374
  const node = this.yogaNode;
13354
13375
  if (isMarginType(options.margin)) {
13355
- node.setMargin(Edge.Top, options.margin);
13356
- node.setMargin(Edge.Right, options.margin);
13357
- node.setMargin(Edge.Bottom, options.margin);
13358
- node.setMargin(Edge.Left, options.margin);
13376
+ node.setMargin(Edge.All, options.margin);
13377
+ }
13378
+ if (isMarginType(options.marginX)) {
13379
+ node.setMargin(Edge.Horizontal, options.marginX);
13380
+ }
13381
+ if (isMarginType(options.marginY)) {
13382
+ node.setMargin(Edge.Vertical, options.marginY);
13359
13383
  }
13360
13384
  if (isMarginType(options.marginTop)) {
13361
13385
  node.setMargin(Edge.Top, options.marginTop);
@@ -13370,10 +13394,13 @@ class Renderable extends BaseRenderable {
13370
13394
  node.setMargin(Edge.Left, options.marginLeft);
13371
13395
  }
13372
13396
  if (isPaddingType(options.padding)) {
13373
- node.setPadding(Edge.Top, options.padding);
13374
- node.setPadding(Edge.Right, options.padding);
13375
- node.setPadding(Edge.Bottom, options.padding);
13376
- node.setPadding(Edge.Left, options.padding);
13397
+ node.setPadding(Edge.All, options.padding);
13398
+ }
13399
+ if (isPaddingType(options.paddingX)) {
13400
+ node.setPadding(Edge.Horizontal, options.paddingX);
13401
+ }
13402
+ if (isPaddingType(options.paddingY)) {
13403
+ node.setPadding(Edge.Vertical, options.paddingY);
13377
13404
  }
13378
13405
  if (isPaddingType(options.paddingTop)) {
13379
13406
  node.setPadding(Edge.Top, options.paddingTop);
@@ -13508,11 +13535,19 @@ class Renderable extends BaseRenderable {
13508
13535
  }
13509
13536
  set margin(margin) {
13510
13537
  if (isMarginType(margin)) {
13511
- const node = this.yogaNode;
13512
- node.setMargin(Edge.Top, margin);
13513
- node.setMargin(Edge.Right, margin);
13514
- node.setMargin(Edge.Bottom, margin);
13515
- node.setMargin(Edge.Left, margin);
13538
+ this.yogaNode.setMargin(Edge.All, margin);
13539
+ this.requestRender();
13540
+ }
13541
+ }
13542
+ set marginX(marginX) {
13543
+ if (isMarginType(marginX)) {
13544
+ this.yogaNode.setMargin(Edge.Horizontal, marginX);
13545
+ this.requestRender();
13546
+ }
13547
+ }
13548
+ set marginY(marginY) {
13549
+ if (isMarginType(marginY)) {
13550
+ this.yogaNode.setMargin(Edge.Vertical, marginY);
13516
13551
  this.requestRender();
13517
13552
  }
13518
13553
  }
@@ -13542,11 +13577,19 @@ class Renderable extends BaseRenderable {
13542
13577
  }
13543
13578
  set padding(padding) {
13544
13579
  if (isPaddingType(padding)) {
13545
- const node = this.yogaNode;
13546
- node.setPadding(Edge.Top, padding);
13547
- node.setPadding(Edge.Right, padding);
13548
- node.setPadding(Edge.Bottom, padding);
13549
- node.setPadding(Edge.Left, padding);
13580
+ this.yogaNode.setPadding(Edge.All, padding);
13581
+ this.requestRender();
13582
+ }
13583
+ }
13584
+ set paddingX(paddingX) {
13585
+ if (isPaddingType(paddingX)) {
13586
+ this.yogaNode.setPadding(Edge.Horizontal, paddingX);
13587
+ this.requestRender();
13588
+ }
13589
+ }
13590
+ set paddingY(paddingY) {
13591
+ if (isPaddingType(paddingY)) {
13592
+ this.yogaNode.setPadding(Edge.Vertical, paddingY);
13550
13593
  this.requestRender();
13551
13594
  }
13552
13595
  }
@@ -15786,6 +15829,7 @@ class CliRenderer extends EventEmitter9 {
15786
15829
  _cachedPalette = null;
15787
15830
  _paletteDetectionPromise = null;
15788
15831
  _onDestroy;
15832
+ _themeMode = null;
15789
15833
  inputHandlers = [];
15790
15834
  prependedInputHandlers = [];
15791
15835
  idleResolvers = [];
@@ -16115,6 +16159,9 @@ Captured output:
16115
16159
  get capabilities() {
16116
16160
  return this._capabilities;
16117
16161
  }
16162
+ get themeMode() {
16163
+ return this._themeMode;
16164
+ }
16118
16165
  getDebugInputs() {
16119
16166
  return [...this._debugInputs];
16120
16167
  }
@@ -16272,6 +16319,7 @@ Captured output:
16272
16319
  }).bind(this);
16273
16320
  focusHandler = ((sequence) => {
16274
16321
  if (sequence === "\x1B[I") {
16322
+ this.lib.restoreTerminalModes(this.rendererPtr);
16275
16323
  this.emit("focus");
16276
16324
  return true;
16277
16325
  }
@@ -16281,6 +16329,23 @@ Captured output:
16281
16329
  }
16282
16330
  return false;
16283
16331
  }).bind(this);
16332
+ themeModeHandler = ((sequence) => {
16333
+ if (sequence === "\x1B[?997;1n") {
16334
+ if (this._themeMode !== "dark") {
16335
+ this._themeMode = "dark";
16336
+ this.emit("theme_mode", "dark");
16337
+ }
16338
+ return true;
16339
+ }
16340
+ if (sequence === "\x1B[?997;2n") {
16341
+ if (this._themeMode !== "light") {
16342
+ this._themeMode = "light";
16343
+ this.emit("theme_mode", "light");
16344
+ }
16345
+ return true;
16346
+ }
16347
+ return false;
16348
+ }).bind(this);
16284
16349
  setupInput() {
16285
16350
  for (const handler of this.prependedInputHandlers) {
16286
16351
  this.addInputHandler(handler);
@@ -16298,6 +16363,7 @@ Captured output:
16298
16363
  });
16299
16364
  this.addInputHandler(this.capabilityHandler);
16300
16365
  this.addInputHandler(this.focusHandler);
16366
+ this.addInputHandler(this.themeModeHandler);
16301
16367
  this.addInputHandler((sequence) => {
16302
16368
  return this._keyHandler.processInput(sequence);
16303
16369
  });
@@ -17129,5 +17195,5 @@ Captured output:
17129
17195
 
17130
17196
  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, 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 };
17131
17197
 
17132
- //# debugId=D20D2D363CAB456C64756E2164756E21
17133
- //# sourceMappingURL=index-h3dbfsf6.js.map
17198
+ //# debugId=786F48BD0A97DA2664756E2164756E21
17199
+ //# sourceMappingURL=index-rje6z21e.js.map