@phenx-inc/ctlsurf 0.12.0 → 0.12.1

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 (30) hide show
  1. package/out/headless/index.mjs +5 -1
  2. package/out/headless/index.mjs.map +2 -2
  3. package/out/main/index.js +5 -1
  4. package/out/renderer/assets/{cssMode-R8fTFLae.js → cssMode-D7r66wvO.js} +3 -3
  5. package/out/renderer/assets/{freemarker2-CyjWzWoP.js → freemarker2-jSWJIjPG.js} +1 -1
  6. package/out/renderer/assets/{handlebars-CrhCGIRM.js → handlebars-BnFyz5RH.js} +1 -1
  7. package/out/renderer/assets/{html-Cc3dPNZr.js → html-Bl5UFavp.js} +1 -1
  8. package/out/renderer/assets/{htmlMode-BWtG6ywk.js → htmlMode-D4VByBT6.js} +3 -3
  9. package/out/renderer/assets/{index-BL9njXIL.css → index-Cc_TqOCL.css} +117 -0
  10. package/out/renderer/assets/{index-kkG56aKv.js → index-DxhW1emk.js} +173 -73
  11. package/out/renderer/assets/{javascript-C8T_SdLC.js → javascript-CMN1OmwG.js} +2 -2
  12. package/out/renderer/assets/{jsonMode-D1zR4VVU.js → jsonMode-CJ5AYSPV.js} +3 -3
  13. package/out/renderer/assets/{liquid-COSMe9Uf.js → liquid-BGMIDTEm.js} +1 -1
  14. package/out/renderer/assets/{lspLanguageFeatures-CXGfrtzl.js → lspLanguageFeatures-DGifVYB5.js} +1 -1
  15. package/out/renderer/assets/{mdx-RfS44T-L.js → mdx-B2Z7R10Q.js} +1 -1
  16. package/out/renderer/assets/{python-DFSWKHUu.js → python-LMDMSSdn.js} +1 -1
  17. package/out/renderer/assets/{razor-DtH2_uvo.js → razor-BZSrziPu.js} +1 -1
  18. package/out/renderer/assets/{tsMode-BYIQ-S9Z.js → tsMode-DF9m6_3n.js} +1 -1
  19. package/out/renderer/assets/{typescript-HhQUr1Rb.js → typescript-rZeCMf0a.js} +1 -1
  20. package/out/renderer/assets/{xml-KuhgdKfD.js → xml-fNSZ-7so.js} +1 -1
  21. package/out/renderer/assets/{yaml-W_kzCFH7.js → yaml-1wxIuvzh.js} +1 -1
  22. package/out/renderer/index.html +2 -2
  23. package/package.json +1 -1
  24. package/src/main/index.ts +4 -1
  25. package/src/main/orchestrator.ts +7 -0
  26. package/src/renderer/App.tsx +5 -1
  27. package/src/renderer/components/SpeakControls.tsx +8 -2
  28. package/src/renderer/components/TerminalPanel.tsx +134 -23
  29. package/src/renderer/components/TicketPanel.tsx +67 -26
  30. package/src/renderer/styles.css +117 -0
package/out/main/index.js CHANGED
@@ -11924,12 +11924,16 @@ class Orchestrator {
11924
11924
  }
11925
11925
  }
11926
11926
  setActiveTab(tabId) {
11927
+ const prevProjectPath = this.getActiveTabProjectPath();
11927
11928
  this.activeTabId = tabId;
11928
11929
  const tab = this.tabs.get(tabId);
11929
11930
  if (tab) {
11930
11931
  this.currentAgent = tab.agent;
11931
11932
  this.currentCwd = tab.cwd;
11932
11933
  }
11934
+ if (this.getActiveTabProjectPath() !== prevProjectPath) {
11935
+ this.events.onCwdChanged();
11936
+ }
11933
11937
  }
11934
11938
  getTabIds() {
11935
11939
  return [...this.tabs.keys()];
@@ -12270,7 +12274,7 @@ const orchestrator = new Orchestrator(
12270
12274
  },
12271
12275
  onCwdChanged: () => {
12272
12276
  mainWindow?.webContents.send("app:cwdChanged");
12273
- updateProjectBadge(orchestrator.cwd);
12277
+ updateProjectBadge(orchestrator.getActiveTabProjectPath() || orchestrator.cwd);
12274
12278
  }
12275
12279
  }
12276
12280
  );
@@ -1,6 +1,6 @@
1
- import { c as createWebWorker, l as languages } from "./index-kkG56aKv.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-CXGfrtzl.js";
3
- import { h, i, j, t, k } from "./lspLanguageFeatures-CXGfrtzl.js";
1
+ import { c as createWebWorker, l as languages } from "./index-DxhW1emk.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-DGifVYB5.js";
3
+ import { h, i, j, t, k } from "./lspLanguageFeatures-DGifVYB5.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-kkG56aKv.js";
1
+ import { l as languages } from "./index-DxhW1emk.js";
2
2
  const EMPTY_ELEMENTS = [
3
3
  "assign",
4
4
  "flush",
@@ -1,4 +1,4 @@
1
- import { l as languages } from "./index-kkG56aKv.js";
1
+ import { l as languages } from "./index-DxhW1emk.js";
2
2
  const EMPTY_ELEMENTS = [
3
3
  "area",
4
4
  "base",
@@ -1,4 +1,4 @@
1
- import { l as languages } from "./index-kkG56aKv.js";
1
+ import { l as languages } from "./index-DxhW1emk.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-kkG56aKv.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-CXGfrtzl.js";
3
- import { a, e, d, R, i, j, t, k } from "./lspLanguageFeatures-CXGfrtzl.js";
1
+ import { c as createWebWorker, l as languages } from "./index-DxhW1emk.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-DGifVYB5.js";
3
+ import { a, e, d, R, i, j, t, k } from "./lspLanguageFeatures-DGifVYB5.js";
4
4
  const STOP_WHEN_IDLE_FOR = 2 * 60 * 1e3;
5
5
  class WorkerManager {
6
6
  constructor(defaults) {
@@ -7486,6 +7486,17 @@ html, body, #root {
7486
7486
  background: #1f2335;
7487
7487
  }
7488
7488
 
7489
+ .titlebar-btn:disabled {
7490
+ opacity: 0.4;
7491
+ cursor: not-allowed;
7492
+ }
7493
+
7494
+ /* Keep the greyed-out look stable on hover for disabled buttons. */
7495
+ .titlebar-btn:disabled:hover {
7496
+ color: #565f89;
7497
+ border-color: #3b3d57;
7498
+ }
7499
+
7489
7500
  .titlebar-separator {
7490
7501
  width: 1px;
7491
7502
  height: 16px;
@@ -7652,6 +7663,15 @@ html, body, #root {
7652
7663
  }
7653
7664
 
7654
7665
  /* Terminal container */
7666
+ .terminal-wrap {
7667
+ position: relative;
7668
+ flex: 1;
7669
+ min-width: 0;
7670
+ min-height: 0;
7671
+ width: 100%;
7672
+ height: 100%;
7673
+ }
7674
+
7655
7675
  .terminal-container {
7656
7676
  width: 100%;
7657
7677
  height: 100%;
@@ -7663,6 +7683,34 @@ html, body, #root {
7663
7683
  height: 100%;
7664
7684
  }
7665
7685
 
7686
+ /* Floating "jump to latest" pill — shown only while scrolled up. */
7687
+ .term-jump-latest {
7688
+ position: absolute;
7689
+ bottom: 14px;
7690
+ right: 20px;
7691
+ z-index: 5;
7692
+ display: inline-flex;
7693
+ align-items: center;
7694
+ gap: 5px;
7695
+ padding: 5px 12px;
7696
+ border-radius: 14px;
7697
+ background: #2a2b3d;
7698
+ border: 1px solid #7aa2f7;
7699
+ color: #c0caf5;
7700
+ font-family: inherit;
7701
+ font-size: 11.5px;
7702
+ font-weight: 600;
7703
+ cursor: pointer;
7704
+ box-shadow: 0 4px 14px rgba(0, 0, 0, 0.45);
7705
+ transition: background 0.13s ease, transform 0.06s ease;
7706
+ }
7707
+ .term-jump-latest:hover {
7708
+ background: #343650;
7709
+ }
7710
+ .term-jump-latest:active {
7711
+ transform: translateY(1px);
7712
+ }
7713
+
7666
7714
  .terminal-fullscreen {
7667
7715
  width: 100%;
7668
7716
  height: 100%;
@@ -9098,6 +9146,32 @@ html, body, #root {
9098
9146
  color: #7aa2f7;
9099
9147
  font-weight: 600;
9100
9148
  }
9149
+ /* "+ New" action in the header (replaces the old footer button). */
9150
+ .ticket-drawer-new {
9151
+ flex-shrink: 0;
9152
+ align-self: center;
9153
+ display: inline-flex;
9154
+ align-items: center;
9155
+ gap: 3px;
9156
+ padding: 5px 11px;
9157
+ border-radius: 7px;
9158
+ background: rgba(122, 162, 247, 0.14);
9159
+ border: 1px solid rgba(122, 162, 247, 0.3);
9160
+ color: #9db4f5;
9161
+ font-family: inherit;
9162
+ font-size: 12px;
9163
+ font-weight: 600;
9164
+ cursor: pointer;
9165
+ transition: background 0.13s ease, border-color 0.13s ease, color 0.13s ease, transform 0.06s ease;
9166
+ }
9167
+ .ticket-drawer-new:hover {
9168
+ background: rgba(122, 162, 247, 0.22);
9169
+ border-color: rgba(122, 162, 247, 0.5);
9170
+ color: #c0d0fb;
9171
+ }
9172
+ .ticket-drawer-new:active {
9173
+ transform: translateY(1px);
9174
+ }
9101
9175
  .ticket-drawer-warn {
9102
9176
  color: #e0af68;
9103
9177
  }
@@ -9295,6 +9369,49 @@ html, body, #root {
9295
9369
  text-align: center;
9296
9370
  }
9297
9371
 
9372
+ /* ── collapsible "Done" section header ── */
9373
+ .ticket-done-toggle {
9374
+ display: flex;
9375
+ align-items: center;
9376
+ gap: 7px;
9377
+ width: 100%;
9378
+ margin-top: 3px;
9379
+ padding: 7px 4px;
9380
+ background: none;
9381
+ border: none;
9382
+ border-top: 1px solid #262a3f;
9383
+ color: #6b739b;
9384
+ font-family: inherit;
9385
+ font-size: 11.5px;
9386
+ font-weight: 600;
9387
+ letter-spacing: 0.03em;
9388
+ text-transform: uppercase;
9389
+ cursor: pointer;
9390
+ transition: color 0.13s ease;
9391
+ }
9392
+ .ticket-done-toggle:hover {
9393
+ color: #a9b1d6;
9394
+ }
9395
+ .ticket-done-caret {
9396
+ display: inline-block;
9397
+ font-size: 10px;
9398
+ transition: transform 0.13s ease;
9399
+ }
9400
+ .ticket-done-caret.open {
9401
+ transform: rotate(90deg);
9402
+ }
9403
+ .ticket-done-count {
9404
+ margin-left: auto;
9405
+ min-width: 18px;
9406
+ padding: 1px 6px;
9407
+ border-radius: 9px;
9408
+ background: #262a3f;
9409
+ color: #8088ac;
9410
+ font-size: 11px;
9411
+ font-weight: 600;
9412
+ text-align: center;
9413
+ }
9414
+
9298
9415
  .ticket-empty {
9299
9416
  display: flex;
9300
9417
  flex-direction: column;