@phenx-inc/ctlsurf 0.1.13 → 0.1.15

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.
Files changed (21) hide show
  1. package/out/renderer/assets/{cssMode-CY6x0qXW.js → cssMode-woG3Vtms.js} +3 -3
  2. package/out/renderer/assets/{freemarker2-BXSW9BAX.js → freemarker2-DgtqmvCd.js} +1 -1
  3. package/out/renderer/assets/{handlebars-BYUZ1IOs.js → handlebars-YEqC-zOn.js} +1 -1
  4. package/out/renderer/assets/{html-DPocQM4t.js → html-CwvkGxeB.js} +1 -1
  5. package/out/renderer/assets/{htmlMode-CsPinKYA.js → htmlMode-DzdyF21q.js} +3 -3
  6. package/out/renderer/assets/{index-Bml7oDn9.js → index-CpDga7fF.js} +44 -31
  7. package/out/renderer/assets/{javascript-_HVGB-lj.js → javascript-Dy9cX9Fu.js} +2 -2
  8. package/out/renderer/assets/{jsonMode-JbrRQBOU.js → jsonMode-CPhJ_ION.js} +3 -3
  9. package/out/renderer/assets/{liquid-B7izKdqo.js → liquid-BJdFPWrv.js} +1 -1
  10. package/out/renderer/assets/{lspLanguageFeatures-DzxH499X.js → lspLanguageFeatures-BMM3SRX4.js} +1 -1
  11. package/out/renderer/assets/{mdx-CmvUeYLw.js → mdx-kg2kuPRK.js} +1 -1
  12. package/out/renderer/assets/{python-DJqYTFoi.js → python-aIrmxkmH.js} +1 -1
  13. package/out/renderer/assets/{razor-CGEA5nUK.js → razor-DdymcPOc.js} +1 -1
  14. package/out/renderer/assets/{tsMode-CN0FOHMy.js → tsMode-D7kqIJ_o.js} +1 -1
  15. package/out/renderer/assets/{typescript-CIn-DSfY.js → typescript-Cq3g-z7h.js} +1 -1
  16. package/out/renderer/assets/{xml-C5t3U2jS.js → xml-BuBP5jOc.js} +1 -1
  17. package/out/renderer/assets/{yaml-n-Jb6xf1.js → yaml-B-3hWmol.js} +1 -1
  18. package/out/renderer/index.html +1 -1
  19. package/package.json +1 -1
  20. package/src/renderer/App.tsx +12 -0
  21. package/src/renderer/components/TerminalPanel.tsx +4 -1
@@ -1,6 +1,6 @@
1
- import { c as createWebWorker, l as languages } from "./index-Bml7oDn9.js";
2
- import { C as CompletionAdapter, H as HoverAdapter, D as DocumentHighlightAdapter, a as DefinitionAdapter, R as ReferenceAdapter, b as DocumentSymbolAdapter, c as RenameAdapter, d as DocumentColorAdapter, F as FoldingRangeAdapter, e as DiagnosticsAdapter, S as SelectionRangeAdapter, f as DocumentFormattingEditProvider, g as DocumentRangeFormattingEditProvider } from "./lspLanguageFeatures-DzxH499X.js";
3
- import { h, i, j, t, k } from "./lspLanguageFeatures-DzxH499X.js";
1
+ import { c as createWebWorker, l as languages } from "./index-CpDga7fF.js";
2
+ import { C as CompletionAdapter, H as HoverAdapter, D as DocumentHighlightAdapter, a as DefinitionAdapter, R as ReferenceAdapter, b as DocumentSymbolAdapter, c as RenameAdapter, d as DocumentColorAdapter, F as FoldingRangeAdapter, e as DiagnosticsAdapter, S as SelectionRangeAdapter, f as DocumentFormattingEditProvider, g as DocumentRangeFormattingEditProvider } from "./lspLanguageFeatures-BMM3SRX4.js";
3
+ import { h, i, j, t, k } from "./lspLanguageFeatures-BMM3SRX4.js";
4
4
  const STOP_WHEN_IDLE_FOR = 2 * 60 * 1e3;
5
5
  class WorkerManager {
6
6
  constructor(defaults) {
@@ -1,4 +1,4 @@
1
- import { l as languages } from "./index-Bml7oDn9.js";
1
+ import { l as languages } from "./index-CpDga7fF.js";
2
2
  const EMPTY_ELEMENTS = [
3
3
  "assign",
4
4
  "flush",
@@ -1,4 +1,4 @@
1
- import { l as languages } from "./index-Bml7oDn9.js";
1
+ import { l as languages } from "./index-CpDga7fF.js";
2
2
  const EMPTY_ELEMENTS = [
3
3
  "area",
4
4
  "base",
@@ -1,4 +1,4 @@
1
- import { l as languages } from "./index-Bml7oDn9.js";
1
+ import { l as languages } from "./index-CpDga7fF.js";
2
2
  const EMPTY_ELEMENTS = [
3
3
  "area",
4
4
  "base",
@@ -1,6 +1,6 @@
1
- import { c as createWebWorker, l as languages } from "./index-Bml7oDn9.js";
2
- import { H as HoverAdapter, D as DocumentHighlightAdapter, h as DocumentLinkAdapter, F as FoldingRangeAdapter, b as DocumentSymbolAdapter, S as SelectionRangeAdapter, c as RenameAdapter, f as DocumentFormattingEditProvider, g as DocumentRangeFormattingEditProvider, C as CompletionAdapter } from "./lspLanguageFeatures-DzxH499X.js";
3
- import { a, e, d, R, i, j, t, k } from "./lspLanguageFeatures-DzxH499X.js";
1
+ import { c as createWebWorker, l as languages } from "./index-CpDga7fF.js";
2
+ import { H as HoverAdapter, D as DocumentHighlightAdapter, h as DocumentLinkAdapter, F as FoldingRangeAdapter, b as DocumentSymbolAdapter, S as SelectionRangeAdapter, c as RenameAdapter, f as DocumentFormattingEditProvider, g as DocumentRangeFormattingEditProvider, C as CompletionAdapter } from "./lspLanguageFeatures-BMM3SRX4.js";
3
+ import { a, e, d, R, i, j, t, k } from "./lspLanguageFeatures-BMM3SRX4.js";
4
4
  const STOP_WHEN_IDLE_FOR = 2 * 60 * 1e3;
5
5
  class WorkerManager {
6
6
  constructor(defaults) {
@@ -1,4 +1,4 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./cssMode-CY6x0qXW.js","./lspLanguageFeatures-DzxH499X.js","./htmlMode-CsPinKYA.js","./jsonMode-JbrRQBOU.js","./javascript-_HVGB-lj.js","./typescript-CIn-DSfY.js"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./cssMode-woG3Vtms.js","./lspLanguageFeatures-BMM3SRX4.js","./htmlMode-DzdyF21q.js","./jsonMode-CPhJ_ION.js","./javascript-Dy9cX9Fu.js","./typescript-Cq3g-z7h.js"])))=>i.map(i=>d[i]);
2
2
  function getDefaultExportFromCjs(x) {
3
3
  return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
4
4
  }
@@ -18755,6 +18755,7 @@ function TerminalPanel({ agent, onSpawn, onExit }) {
18755
18755
  brightWhite: "#c0caf5"
18756
18756
  },
18757
18757
  scrollback: 1e4,
18758
+ scrollOnUserInput: true,
18758
18759
  allowTransparency: false
18759
18760
  });
18760
18761
  const fitAddon = new addonFitExports.FitAddon();
@@ -18781,6 +18782,7 @@ function TerminalPanel({ agent, onSpawn, onExit }) {
18781
18782
  resizeTimeout = setTimeout(() => {
18782
18783
  if (fitAddonRef.current && terminalRef.current) {
18783
18784
  fitAddonRef.current.fit();
18785
+ terminalRef.current.scrollToBottom();
18784
18786
  const { cols, rows } = terminalRef.current;
18785
18787
  window.worker.resizePty(cols, rows);
18786
18788
  }
@@ -18808,6 +18810,7 @@ function TerminalPanel({ agent, onSpawn, onExit }) {
18808
18810
  onSpawn(agent).then(() => {
18809
18811
  if (fitAddonRef.current && terminalRef.current) {
18810
18812
  fitAddonRef.current.fit();
18813
+ terminalRef.current.scrollToBottom();
18811
18814
  const { cols, rows } = terminalRef.current;
18812
18815
  window.worker.resizePty(cols, rows);
18813
18816
  }
@@ -206489,7 +206492,7 @@ const lessDefaults = new LanguageServiceDefaultsImpl$3(
206489
206492
  modeConfigurationDefault$2
206490
206493
  );
206491
206494
  function getMode$3() {
206492
- return __vitePreload(() => import("./cssMode-CY6x0qXW.js"), true ? __vite__mapDeps([0,1]) : void 0, import.meta.url);
206495
+ return __vitePreload(() => import("./cssMode-woG3Vtms.js"), true ? __vite__mapDeps([0,1]) : void 0, import.meta.url);
206493
206496
  }
206494
206497
  languages.onLanguage("less", () => {
206495
206498
  getMode$3().then((mode2) => mode2.setupMode(lessDefaults));
@@ -206594,7 +206597,7 @@ const razorLanguageService = registerHTMLLanguageService(
206594
206597
  );
206595
206598
  const razorDefaults = razorLanguageService.defaults;
206596
206599
  function getMode$2() {
206597
- return __vitePreload(() => import("./htmlMode-CsPinKYA.js"), true ? __vite__mapDeps([2,1]) : void 0, import.meta.url);
206600
+ return __vitePreload(() => import("./htmlMode-DzdyF21q.js"), true ? __vite__mapDeps([2,1]) : void 0, import.meta.url);
206598
206601
  }
206599
206602
  function registerHTMLLanguageService(languageId, options = optionsDefault, modeConfiguration = getConfigurationDefault(languageId)) {
206600
206603
  const defaults = new LanguageServiceDefaultsImpl$2(languageId, options, modeConfiguration);
@@ -206678,7 +206681,7 @@ const jsonDefaults = new LanguageServiceDefaultsImpl$1(
206678
206681
  );
206679
206682
  const getWorker$1 = () => getMode$1().then((mode2) => mode2.getWorker());
206680
206683
  function getMode$1() {
206681
- return __vitePreload(() => import("./jsonMode-JbrRQBOU.js"), true ? __vite__mapDeps([3,1]) : void 0, import.meta.url);
206684
+ return __vitePreload(() => import("./jsonMode-CPhJ_ION.js"), true ? __vite__mapDeps([3,1]) : void 0, import.meta.url);
206682
206685
  }
206683
206686
  languages.register({
206684
206687
  id: "json",
@@ -206924,7 +206927,7 @@ const getJavaScriptWorker = () => {
206924
206927
  return getMode().then((mode) => mode.getJavaScriptWorker());
206925
206928
  };
206926
206929
  function getMode() {
206927
- return __vitePreload(() => import("./tsMode-CN0FOHMy.js"), true ? [] : void 0, import.meta.url);
206930
+ return __vitePreload(() => import("./tsMode-D7kqIJ_o.js"), true ? [] : void 0, import.meta.url);
206928
206931
  }
206929
206932
  languages.onLanguage("typescript", () => {
206930
206933
  return getMode().then((mode) => mode.setupTypeScript(typescriptDefaults));
@@ -207119,49 +207122,49 @@ registerLanguage({
207119
207122
  extensions: [".ftl", ".ftlh", ".ftlx"],
207120
207123
  aliases: ["FreeMarker2", "Apache FreeMarker2"],
207121
207124
  loader: () => {
207122
- return __vitePreload(() => import("./freemarker2-BXSW9BAX.js"), true ? [] : void 0, import.meta.url).then((m) => m.TagAutoInterpolationDollar);
207125
+ return __vitePreload(() => import("./freemarker2-DgtqmvCd.js"), true ? [] : void 0, import.meta.url).then((m) => m.TagAutoInterpolationDollar);
207123
207126
  }
207124
207127
  });
207125
207128
  registerLanguage({
207126
207129
  id: "freemarker2.tag-angle.interpolation-dollar",
207127
207130
  aliases: ["FreeMarker2 (Angle/Dollar)", "Apache FreeMarker2 (Angle/Dollar)"],
207128
207131
  loader: () => {
207129
- return __vitePreload(() => import("./freemarker2-BXSW9BAX.js"), true ? [] : void 0, import.meta.url).then((m) => m.TagAngleInterpolationDollar);
207132
+ return __vitePreload(() => import("./freemarker2-DgtqmvCd.js"), true ? [] : void 0, import.meta.url).then((m) => m.TagAngleInterpolationDollar);
207130
207133
  }
207131
207134
  });
207132
207135
  registerLanguage({
207133
207136
  id: "freemarker2.tag-bracket.interpolation-dollar",
207134
207137
  aliases: ["FreeMarker2 (Bracket/Dollar)", "Apache FreeMarker2 (Bracket/Dollar)"],
207135
207138
  loader: () => {
207136
- return __vitePreload(() => import("./freemarker2-BXSW9BAX.js"), true ? [] : void 0, import.meta.url).then((m) => m.TagBracketInterpolationDollar);
207139
+ return __vitePreload(() => import("./freemarker2-DgtqmvCd.js"), true ? [] : void 0, import.meta.url).then((m) => m.TagBracketInterpolationDollar);
207137
207140
  }
207138
207141
  });
207139
207142
  registerLanguage({
207140
207143
  id: "freemarker2.tag-angle.interpolation-bracket",
207141
207144
  aliases: ["FreeMarker2 (Angle/Bracket)", "Apache FreeMarker2 (Angle/Bracket)"],
207142
207145
  loader: () => {
207143
- return __vitePreload(() => import("./freemarker2-BXSW9BAX.js"), true ? [] : void 0, import.meta.url).then((m) => m.TagAngleInterpolationBracket);
207146
+ return __vitePreload(() => import("./freemarker2-DgtqmvCd.js"), true ? [] : void 0, import.meta.url).then((m) => m.TagAngleInterpolationBracket);
207144
207147
  }
207145
207148
  });
207146
207149
  registerLanguage({
207147
207150
  id: "freemarker2.tag-bracket.interpolation-bracket",
207148
207151
  aliases: ["FreeMarker2 (Bracket/Bracket)", "Apache FreeMarker2 (Bracket/Bracket)"],
207149
207152
  loader: () => {
207150
- return __vitePreload(() => import("./freemarker2-BXSW9BAX.js"), true ? [] : void 0, import.meta.url).then((m) => m.TagBracketInterpolationBracket);
207153
+ return __vitePreload(() => import("./freemarker2-DgtqmvCd.js"), true ? [] : void 0, import.meta.url).then((m) => m.TagBracketInterpolationBracket);
207151
207154
  }
207152
207155
  });
207153
207156
  registerLanguage({
207154
207157
  id: "freemarker2.tag-auto.interpolation-dollar",
207155
207158
  aliases: ["FreeMarker2 (Auto/Dollar)", "Apache FreeMarker2 (Auto/Dollar)"],
207156
207159
  loader: () => {
207157
- return __vitePreload(() => import("./freemarker2-BXSW9BAX.js"), true ? [] : void 0, import.meta.url).then((m) => m.TagAutoInterpolationDollar);
207160
+ return __vitePreload(() => import("./freemarker2-DgtqmvCd.js"), true ? [] : void 0, import.meta.url).then((m) => m.TagAutoInterpolationDollar);
207158
207161
  }
207159
207162
  });
207160
207163
  registerLanguage({
207161
207164
  id: "freemarker2.tag-auto.interpolation-bracket",
207162
207165
  aliases: ["FreeMarker2 (Auto/Bracket)", "Apache FreeMarker2 (Auto/Bracket)"],
207163
207166
  loader: () => {
207164
- return __vitePreload(() => import("./freemarker2-BXSW9BAX.js"), true ? [] : void 0, import.meta.url).then((m) => m.TagAutoInterpolationBracket);
207167
+ return __vitePreload(() => import("./freemarker2-DgtqmvCd.js"), true ? [] : void 0, import.meta.url).then((m) => m.TagAutoInterpolationBracket);
207165
207168
  }
207166
207169
  });
207167
207170
  registerLanguage({
@@ -207182,7 +207185,7 @@ registerLanguage({
207182
207185
  extensions: [".handlebars", ".hbs"],
207183
207186
  aliases: ["Handlebars", "handlebars", "hbs"],
207184
207187
  mimetypes: ["text/x-handlebars-template"],
207185
- loader: () => __vitePreload(() => import("./handlebars-BYUZ1IOs.js"), true ? [] : void 0, import.meta.url)
207188
+ loader: () => __vitePreload(() => import("./handlebars-YEqC-zOn.js"), true ? [] : void 0, import.meta.url)
207186
207189
  });
207187
207190
  registerLanguage({
207188
207191
  id: "hcl",
@@ -207195,7 +207198,7 @@ registerLanguage({
207195
207198
  extensions: [".html", ".htm", ".shtml", ".xhtml", ".mdoc", ".jsp", ".asp", ".aspx", ".jshtm"],
207196
207199
  aliases: ["HTML", "htm", "html", "xhtml"],
207197
207200
  mimetypes: ["text/html", "text/x-jshtm", "text/template", "text/ng-template"],
207198
- loader: () => __vitePreload(() => import("./html-DPocQM4t.js"), true ? [] : void 0, import.meta.url)
207201
+ loader: () => __vitePreload(() => import("./html-CwvkGxeB.js"), true ? [] : void 0, import.meta.url)
207199
207202
  });
207200
207203
  registerLanguage({
207201
207204
  id: "ini",
@@ -207218,7 +207221,7 @@ registerLanguage({
207218
207221
  filenames: ["jakefile"],
207219
207222
  aliases: ["JavaScript", "javascript", "js"],
207220
207223
  mimetypes: ["text/javascript"],
207221
- loader: () => __vitePreload(() => import("./javascript-_HVGB-lj.js"), true ? __vite__mapDeps([4,5]) : void 0, import.meta.url)
207224
+ loader: () => __vitePreload(() => import("./javascript-Dy9cX9Fu.js"), true ? __vite__mapDeps([4,5]) : void 0, import.meta.url)
207222
207225
  });
207223
207226
  registerLanguage({
207224
207227
  id: "julia",
@@ -207257,7 +207260,7 @@ registerLanguage({
207257
207260
  extensions: [".liquid", ".html.liquid"],
207258
207261
  aliases: ["Liquid", "liquid"],
207259
207262
  mimetypes: ["application/liquid"],
207260
- loader: () => __vitePreload(() => import("./liquid-B7izKdqo.js"), true ? [] : void 0, import.meta.url)
207263
+ loader: () => __vitePreload(() => import("./liquid-BJdFPWrv.js"), true ? [] : void 0, import.meta.url)
207261
207264
  });
207262
207265
  registerLanguage({
207263
207266
  id: "m3",
@@ -207275,7 +207278,7 @@ registerLanguage({
207275
207278
  id: "mdx",
207276
207279
  extensions: [".mdx"],
207277
207280
  aliases: ["MDX", "mdx"],
207278
- loader: () => __vitePreload(() => import("./mdx-CmvUeYLw.js"), true ? [] : void 0, import.meta.url)
207281
+ loader: () => __vitePreload(() => import("./mdx-kg2kuPRK.js"), true ? [] : void 0, import.meta.url)
207279
207282
  });
207280
207283
  registerLanguage({
207281
207284
  id: "mips",
@@ -207374,7 +207377,7 @@ registerLanguage({
207374
207377
  extensions: [".py", ".rpy", ".pyw", ".cpy", ".gyp", ".gypi"],
207375
207378
  aliases: ["Python", "py"],
207376
207379
  firstLine: "^#!/.*\\bpython[0-9.-]*\\b",
207377
- loader: () => __vitePreload(() => import("./python-DJqYTFoi.js"), true ? [] : void 0, import.meta.url)
207380
+ loader: () => __vitePreload(() => import("./python-aIrmxkmH.js"), true ? [] : void 0, import.meta.url)
207378
207381
  });
207379
207382
  registerLanguage({
207380
207383
  id: "qsharp",
@@ -207393,7 +207396,7 @@ registerLanguage({
207393
207396
  extensions: [".cshtml"],
207394
207397
  aliases: ["Razor", "razor"],
207395
207398
  mimetypes: ["text/x-cshtml"],
207396
- loader: () => __vitePreload(() => import("./razor-CGEA5nUK.js"), true ? [] : void 0, import.meta.url)
207399
+ loader: () => __vitePreload(() => import("./razor-DdymcPOc.js"), true ? [] : void 0, import.meta.url)
207397
207400
  });
207398
207401
  registerLanguage({
207399
207402
  id: "redis",
@@ -207526,7 +207529,7 @@ registerLanguage({
207526
207529
  aliases: ["TypeScript", "ts", "typescript"],
207527
207530
  mimetypes: ["text/typescript"],
207528
207531
  loader: () => {
207529
- return __vitePreload(() => import("./typescript-CIn-DSfY.js"), true ? [] : void 0, import.meta.url);
207532
+ return __vitePreload(() => import("./typescript-Cq3g-z7h.js"), true ? [] : void 0, import.meta.url);
207530
207533
  }
207531
207534
  });
207532
207535
  registerLanguage({
@@ -207571,14 +207574,14 @@ registerLanguage({
207571
207574
  firstLine: "(\\<\\?xml.*)|(\\<svg)|(\\<\\!doctype\\s+svg)",
207572
207575
  aliases: ["XML", "xml"],
207573
207576
  mimetypes: ["text/xml", "application/xml", "application/xaml+xml", "application/xml-dtd"],
207574
- loader: () => __vitePreload(() => import("./xml-C5t3U2jS.js"), true ? [] : void 0, import.meta.url)
207577
+ loader: () => __vitePreload(() => import("./xml-BuBP5jOc.js"), true ? [] : void 0, import.meta.url)
207575
207578
  });
207576
207579
  registerLanguage({
207577
207580
  id: "yaml",
207578
207581
  extensions: [".yaml", ".yml"],
207579
207582
  aliases: ["YAML", "yaml", "YML", "yml"],
207580
207583
  mimetypes: ["application/x-yaml", "text/x-yaml"],
207581
- loader: () => __vitePreload(() => import("./yaml-n-Jb6xf1.js"), true ? [] : void 0, import.meta.url)
207584
+ loader: () => __vitePreload(() => import("./yaml-B-3hWmol.js"), true ? [] : void 0, import.meta.url)
207582
207585
  });
207583
207586
  var __defProp = Object.defineProperty;
207584
207587
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
@@ -211779,15 +211782,25 @@ function App() {
211779
211782
  ))
211780
211783
  ] })
211781
211784
  ] }),
211782
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "main-content", children: visiblePaneIds.length === 0 ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "multi-split-empty", children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: "All panes hidden. Use the titlebar buttons to show a pane." }) }) : /* @__PURE__ */ jsxRuntimeExports.jsx(
211783
- PaneLayout,
211784
- {
211785
- layout: layout2,
211786
- panes: panes.filter((p) => visiblePaneIds.includes(p.id)),
211787
- onLayoutChange: setLayout,
211788
- onToggle: togglePane
211789
- }
211790
- ) }),
211785
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "main-content", children: [
211786
+ visiblePaneIds.length === 0 ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "multi-split-empty", children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: "All panes hidden. Use the titlebar buttons to show a pane." }) }) : /* @__PURE__ */ jsxRuntimeExports.jsx(
211787
+ PaneLayout,
211788
+ {
211789
+ layout: layout2,
211790
+ panes: panes.filter((p) => visiblePaneIds.includes(p.id)),
211791
+ onLayoutChange: setLayout,
211792
+ onToggle: togglePane
211793
+ }
211794
+ ),
211795
+ panes.filter((p) => !visiblePaneIds.includes(p.id)).map((p) => /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: {
211796
+ position: "absolute",
211797
+ width: "1px",
211798
+ height: "1px",
211799
+ overflow: "hidden",
211800
+ opacity: 0,
211801
+ pointerEvents: "none"
211802
+ }, children: p.content }, p.id))
211803
+ ] }),
211791
211804
  /* @__PURE__ */ jsxRuntimeExports.jsx(StatusBar, { wsStatus, cwd: cwd2, onChangeCwd: handleChangeCwd }),
211792
211805
  /* @__PURE__ */ jsxRuntimeExports.jsx(SettingsDialog, { open: showSettings, onClose: () => setShowSettings(false) }),
211793
211806
  showAgentPicker && agents.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -1,5 +1,5 @@
1
- import { conf as conf$1, language as language$1 } from "./typescript-CIn-DSfY.js";
2
- import "./index-Bml7oDn9.js";
1
+ import { conf as conf$1, language as language$1 } from "./typescript-Cq3g-z7h.js";
2
+ import "./index-CpDga7fF.js";
3
3
  const conf = conf$1;
4
4
  const language = {
5
5
  // Set defaultToken to invalid to see what you do not tokenize yet
@@ -1,6 +1,6 @@
1
- import { c as createWebWorker, l as languages, e as editor } from "./index-Bml7oDn9.js";
2
- import { f as DocumentFormattingEditProvider, g as DocumentRangeFormattingEditProvider, C as CompletionAdapter, H as HoverAdapter, b as DocumentSymbolAdapter, d as DocumentColorAdapter, F as FoldingRangeAdapter, S as SelectionRangeAdapter, e as DiagnosticsAdapter } from "./lspLanguageFeatures-DzxH499X.js";
3
- import { a, D, h, R, c, i, j, t, k } from "./lspLanguageFeatures-DzxH499X.js";
1
+ import { c as createWebWorker, l as languages, e as editor } from "./index-CpDga7fF.js";
2
+ import { f as DocumentFormattingEditProvider, g as DocumentRangeFormattingEditProvider, C as CompletionAdapter, H as HoverAdapter, b as DocumentSymbolAdapter, d as DocumentColorAdapter, F as FoldingRangeAdapter, S as SelectionRangeAdapter, e as DiagnosticsAdapter } from "./lspLanguageFeatures-BMM3SRX4.js";
3
+ import { a, D, h, R, c, i, j, t, k } from "./lspLanguageFeatures-BMM3SRX4.js";
4
4
  const STOP_WHEN_IDLE_FOR = 2 * 60 * 1e3;
5
5
  class WorkerManager {
6
6
  constructor(defaults) {
@@ -1,4 +1,4 @@
1
- import { l as languages } from "./index-Bml7oDn9.js";
1
+ import { l as languages } from "./index-CpDga7fF.js";
2
2
  const EMPTY_ELEMENTS = [
3
3
  "area",
4
4
  "base",
@@ -1,4 +1,4 @@
1
- import { R as Range$1, l as languages, e as editor, U as Uri, M as MarkerSeverity } from "./index-Bml7oDn9.js";
1
+ import { R as Range$1, l as languages, e as editor, U as Uri, M as MarkerSeverity } from "./index-CpDga7fF.js";
2
2
  var DocumentUri;
3
3
  (function(DocumentUri2) {
4
4
  function is(value) {
@@ -1,4 +1,4 @@
1
- import { l as languages } from "./index-Bml7oDn9.js";
1
+ import { l as languages } from "./index-CpDga7fF.js";
2
2
  const conf = {
3
3
  comments: {
4
4
  blockComment: ["{/*", "*/}"]
@@ -1,4 +1,4 @@
1
- import { l as languages } from "./index-Bml7oDn9.js";
1
+ import { l as languages } from "./index-CpDga7fF.js";
2
2
  const conf = {
3
3
  comments: {
4
4
  lineComment: "#",
@@ -1,4 +1,4 @@
1
- import { l as languages } from "./index-Bml7oDn9.js";
1
+ import { l as languages } from "./index-CpDga7fF.js";
2
2
  const EMPTY_ELEMENTS = [
3
3
  "area",
4
4
  "base",
@@ -1,4 +1,4 @@
1
- import { c as createWebWorker, e as editor, U as Uri, a as MarkerTag, M as MarkerSeverity, l as languages, t as typescriptDefaults, R as Range } from "./index-Bml7oDn9.js";
1
+ import { c as createWebWorker, e as editor, U as Uri, a as MarkerTag, M as MarkerSeverity, l as languages, t as typescriptDefaults, R as Range } from "./index-CpDga7fF.js";
2
2
  class WorkerManager {
3
3
  constructor(_modeId, _defaults) {
4
4
  this._modeId = _modeId;
@@ -1,4 +1,4 @@
1
- import { l as languages } from "./index-Bml7oDn9.js";
1
+ import { l as languages } from "./index-CpDga7fF.js";
2
2
  const conf = {
3
3
  wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,
4
4
  comments: {
@@ -1,4 +1,4 @@
1
- import { l as languages } from "./index-Bml7oDn9.js";
1
+ import { l as languages } from "./index-CpDga7fF.js";
2
2
  const conf = {
3
3
  comments: {
4
4
  blockComment: ["<!--", "-->"]
@@ -1,4 +1,4 @@
1
- import { l as languages } from "./index-Bml7oDn9.js";
1
+ import { l as languages } from "./index-CpDga7fF.js";
2
2
  const conf = {
3
3
  comments: {
4
4
  lineComment: "#"
@@ -4,7 +4,7 @@
4
4
  <meta charset="UTF-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <title>ctlsurf-worker</title>
7
- <script type="module" crossorigin src="./assets/index-Bml7oDn9.js"></script>
7
+ <script type="module" crossorigin src="./assets/index-CpDga7fF.js"></script>
8
8
  <link rel="stylesheet" crossorigin href="./assets/index-DK9wLFFm.css">
9
9
  </head>
10
10
  <body>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@phenx-inc/ctlsurf",
3
- "version": "0.1.13",
3
+ "version": "0.1.15",
4
4
  "description": "Agent-agnostic terminal and desktop app for ctlsurf — run Claude Code, Codex, or any coding agent with live session logging and remote control",
5
5
  "main": "out/main/index.js",
6
6
  "bin": {
@@ -274,6 +274,18 @@ export default function App() {
274
274
  onToggle={togglePane}
275
275
  />
276
276
  )}
277
+ {panes.filter(p => !visiblePaneIds.includes(p.id)).map(p => (
278
+ <div key={p.id} style={{
279
+ position: 'absolute',
280
+ width: '1px',
281
+ height: '1px',
282
+ overflow: 'hidden',
283
+ opacity: 0,
284
+ pointerEvents: 'none',
285
+ }}>
286
+ {p.content}
287
+ </div>
288
+ ))}
277
289
  </div>
278
290
 
279
291
  <StatusBar wsStatus={wsStatus} cwd={cwd} onChangeCwd={handleChangeCwd} />
@@ -55,6 +55,7 @@ export function TerminalPanel({ agent, onSpawn, onExit }: TerminalPanelProps) {
55
55
  brightWhite: '#c0caf5'
56
56
  },
57
57
  scrollback: 10000,
58
+ scrollOnUserInput: true,
58
59
  allowTransparency: false
59
60
  })
60
61
 
@@ -84,13 +85,14 @@ export function TerminalPanel({ agent, onSpawn, onExit }: TerminalPanelProps) {
84
85
  onExit()
85
86
  })
86
87
 
87
- // Resize handling
88
+ // Resize handling — scroll to bottom after fit to prevent jumping to top
88
89
  let resizeTimeout: ReturnType<typeof setTimeout>
89
90
  const handleResize = () => {
90
91
  clearTimeout(resizeTimeout)
91
92
  resizeTimeout = setTimeout(() => {
92
93
  if (fitAddonRef.current && terminalRef.current) {
93
94
  fitAddonRef.current.fit()
95
+ terminalRef.current.scrollToBottom()
94
96
  const { cols, rows } = terminalRef.current
95
97
  window.worker.resizePty(cols, rows)
96
98
  }
@@ -127,6 +129,7 @@ export function TerminalPanel({ agent, onSpawn, onExit }: TerminalPanelProps) {
127
129
  // Send initial resize after spawn
128
130
  if (fitAddonRef.current && terminalRef.current) {
129
131
  fitAddonRef.current.fit()
132
+ terminalRef.current.scrollToBottom()
130
133
  const { cols, rows } = terminalRef.current
131
134
  window.worker.resizePty(cols, rows)
132
135
  }