opencode-sesh 2.1.2 → 2.1.3
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/AGENTS.md +8 -0
- package/CHANGELOG.md +7 -0
- package/README.md +4 -0
- package/dist/tui.js +533 -453
- package/package.json +9 -8
- package/tui-plugins/sesh-panel/tui.tsx +65 -16
package/dist/tui.js
CHANGED
|
@@ -2163,9 +2163,27 @@ function SidebarSessions(props) {
|
|
|
2163
2163
|
})();
|
|
2164
2164
|
}
|
|
2165
2165
|
const HOME_SESSION_LIMIT = 6;
|
|
2166
|
+
// Layout baseline: OpenCode 2.2.4. Re-check these assumptions and the matching
|
|
2167
|
+
// tests/tui-home.mjs fixture when upgrading OpenCode: the fixture mirrors the
|
|
2168
|
+
// host layout, so it cannot detect upstream layout changes on its own.
|
|
2169
|
+
// Sources pinned to that release:
|
|
2170
|
+
// https://github.com/anomalyco/opencode/blob/45898d0f8569225eb1ddb4ee13f8581b34dff311/packages/tui/src/routes/home.tsx
|
|
2171
|
+
// https://github.com/anomalyco/opencode/blob/45898d0f8569225eb1ddb4ee13f8581b34dff311/packages/tui/src/component/prompt/index.tsx#L1676
|
|
2172
|
+
// https://github.com/anomalyco/opencode/blob/45898d0f8569225eb1ddb4ee13f8581b34dff311/packages/tui/src/component/logo.tsx
|
|
2173
|
+
// https://github.com/anomalyco/opencode/blob/45898d0f8569225eb1ddb4ee13f8581b34dff311/packages/tui/src/feature-plugins/home/footer.tsx
|
|
2174
|
+
// The native home needs room for its logo, composer chrome and status footer.
|
|
2175
|
+
// Reserve the editor's *maximum* height (one third of the terminal, at least
|
|
2176
|
+
// six lines), so typing/wrapping a prompt cannot push it into our footer.
|
|
2177
|
+
// Chrome: logo (4) + gap (1) + composer (6) + status (3). Below 44 columns,
|
|
2178
|
+
// the logo stacks to seven lines but the three-line status footer disappears.
|
|
2179
|
+
const HOME_CHROME_ROWS = 14;
|
|
2166
2180
|
function HomeSessions(props) {
|
|
2167
2181
|
const theme = () => props.api.theme.current;
|
|
2168
2182
|
const home = process.env.HOME ?? "";
|
|
2183
|
+
const [dimensions, setDimensions] = createSignal({
|
|
2184
|
+
width: props.api.renderer.width,
|
|
2185
|
+
height: props.api.renderer.height
|
|
2186
|
+
});
|
|
2169
2187
|
const [entries, setEntries] = createSignal([]);
|
|
2170
2188
|
const [query, setQuery] = createSignal("");
|
|
2171
2189
|
const [hovered, setHovered] = createSignal();
|
|
@@ -2301,7 +2319,15 @@ function HomeSessions(props) {
|
|
|
2301
2319
|
onMount(() => {
|
|
2302
2320
|
ensureRootMouse(props.api.renderer);
|
|
2303
2321
|
rootMouseHandlers.add(onRootMouseDown);
|
|
2304
|
-
|
|
2322
|
+
const resize = () => setDimensions({
|
|
2323
|
+
width: props.api.renderer.width,
|
|
2324
|
+
height: props.api.renderer.height
|
|
2325
|
+
});
|
|
2326
|
+
props.api.renderer.on("resize", resize);
|
|
2327
|
+
onCleanup(() => {
|
|
2328
|
+
rootMouseHandlers.delete(onRootMouseDown);
|
|
2329
|
+
props.api.renderer.off("resize", resize);
|
|
2330
|
+
});
|
|
2305
2331
|
});
|
|
2306
2332
|
const appendQuery = input => {
|
|
2307
2333
|
if (input === "\b") setQuery(value => value.slice(0, -1));else setQuery(value => value + input);
|
|
@@ -2360,24 +2386,46 @@ function HomeSessions(props) {
|
|
|
2360
2386
|
setEntries(snapshot.entries);
|
|
2361
2387
|
setLoadFailed(snapshot.failed);
|
|
2362
2388
|
})));
|
|
2363
|
-
const
|
|
2389
|
+
const filtered = createMemo(() => {
|
|
2364
2390
|
const q = query().trim().toLowerCase();
|
|
2365
2391
|
const list = q ? entries().filter(entry => entry.title.toLowerCase().includes(q) || entry.dir.toLowerCase().includes(q)) : entries();
|
|
2366
|
-
return pinnedFirst(list, props.pins())
|
|
2392
|
+
return pinnedFirst(list, props.pins());
|
|
2393
|
+
});
|
|
2394
|
+
const layout = createMemo(() => {
|
|
2395
|
+
const rows = dimensions().height;
|
|
2396
|
+
const budget = Math.max(0, rows - Math.max(6, Math.floor(rows / 3)) - HOME_CHROME_ROWS);
|
|
2397
|
+
// Drop decorative padding/spacing before sessions. Keep the full list in
|
|
2398
|
+
// the picker when even a heading and one session cannot fit.
|
|
2399
|
+
const padding = budget >= HOME_SESSION_LIMIT + 2 ? 1 : 0;
|
|
2400
|
+
const limit = Math.min(HOME_SESSION_LIMIT, Math.max(0, budget - padding - 1));
|
|
2401
|
+
const count = Math.max(1, Math.min(filtered().length, limit));
|
|
2402
|
+
return {
|
|
2403
|
+
budget,
|
|
2404
|
+
limit,
|
|
2405
|
+
padding,
|
|
2406
|
+
gap: budget >= 1 + padding + count * 2 ? 1 : 0
|
|
2407
|
+
};
|
|
2408
|
+
});
|
|
2409
|
+
const visible = createMemo(() => filtered().slice(0, layout().limit));
|
|
2410
|
+
createEffect(() => {
|
|
2411
|
+
const ids = new Set(visible().map(entry => entry.id));
|
|
2412
|
+
if (hovered() && !ids.has(hovered())) setHovered(undefined);
|
|
2413
|
+
if (pendingDelete() && !ids.has(pendingDelete())) cancelDelete();
|
|
2414
|
+
if (layout().limit === 0) setSearching(false);
|
|
2367
2415
|
});
|
|
2368
2416
|
return (() => {
|
|
2369
2417
|
var _el$49 = _$createElement("box"),
|
|
2370
2418
|
_el$50 = _$createElement("box");
|
|
2371
2419
|
_$insertNode(_el$49, _el$50);
|
|
2372
2420
|
_$setProp(_el$49, "width", "100%");
|
|
2421
|
+
_$setProp(_el$49, "flexShrink", 0);
|
|
2422
|
+
_$setProp(_el$49, "overflow", "hidden");
|
|
2373
2423
|
_$setProp(_el$49, "alignItems", "center");
|
|
2374
2424
|
_$setProp(_el$50, "flexDirection", "column");
|
|
2375
2425
|
_$setProp(_el$50, "width", "100%");
|
|
2376
2426
|
_$setProp(_el$50, "maxWidth", 72);
|
|
2377
2427
|
_$setProp(_el$50, "paddingLeft", 1);
|
|
2378
2428
|
_$setProp(_el$50, "paddingRight", 1);
|
|
2379
|
-
_$setProp(_el$50, "paddingTop", 1);
|
|
2380
|
-
_$setProp(_el$50, "gap", 1);
|
|
2381
2429
|
_$insert(_el$50, _$createComponent(Show, {
|
|
2382
2430
|
get when() {
|
|
2383
2431
|
return entries().length > 0;
|
|
@@ -2386,27 +2434,17 @@ function HomeSessions(props) {
|
|
|
2386
2434
|
return (() => {
|
|
2387
2435
|
var _el$64 = _$createElement("box"),
|
|
2388
2436
|
_el$65 = _$createElement("text"),
|
|
2389
|
-
_el$
|
|
2437
|
+
_el$66 = _$createTextNode(`Recent sessions `);
|
|
2390
2438
|
_$insertNode(_el$64, _el$65);
|
|
2391
|
-
_$
|
|
2392
|
-
_$setProp(_el$64, "
|
|
2393
|
-
_$
|
|
2394
|
-
_$
|
|
2395
|
-
_$
|
|
2396
|
-
_$
|
|
2397
|
-
|
|
2398
|
-
|
|
2399
|
-
|
|
2400
|
-
_v$34 = {
|
|
2401
|
-
fg: theme().textMuted
|
|
2402
|
-
};
|
|
2403
|
-
_v$33 !== _p$.e && (_p$.e = _$setProp(_el$65, "style", _v$33, _p$.e));
|
|
2404
|
-
_v$34 !== _p$.t && (_p$.t = _$setProp(_el$67, "style", _v$34, _p$.t));
|
|
2405
|
-
return _p$;
|
|
2406
|
-
}, {
|
|
2407
|
-
e: undefined,
|
|
2408
|
-
t: undefined
|
|
2409
|
-
});
|
|
2439
|
+
_$setProp(_el$64, "height", 1);
|
|
2440
|
+
_$setProp(_el$64, "flexShrink", 0);
|
|
2441
|
+
_$insertNode(_el$65, _el$66);
|
|
2442
|
+
_$setProp(_el$65, "wrapMode", "none");
|
|
2443
|
+
_$setProp(_el$65, "overflow", "hidden");
|
|
2444
|
+
_$insert(_el$65, () => loadFailed() ? "· list unavailable, will retry" : "· none yet, option+o to browse", null);
|
|
2445
|
+
_$effect(_$p => _$setProp(_el$65, "style", {
|
|
2446
|
+
fg: theme().textMuted
|
|
2447
|
+
}, _$p));
|
|
2410
2448
|
return _el$64;
|
|
2411
2449
|
})();
|
|
2412
2450
|
},
|
|
@@ -2415,23 +2453,40 @@ function HomeSessions(props) {
|
|
|
2415
2453
|
var _el$51 = _$createElement("box"),
|
|
2416
2454
|
_el$52 = _$createElement("box"),
|
|
2417
2455
|
_el$53 = _$createElement("text"),
|
|
2418
|
-
_el$55 = _$createElement("text"),
|
|
2419
2456
|
_el$57 = _$createElement("box"),
|
|
2420
2457
|
_el$58 = _$createElement("box"),
|
|
2421
2458
|
_el$59 = _$createElement("text");
|
|
2422
2459
|
_$insertNode(_el$51, _el$52);
|
|
2423
2460
|
_$insertNode(_el$51, _el$57);
|
|
2461
|
+
_$setProp(_el$51, "height", 1);
|
|
2462
|
+
_$setProp(_el$51, "flexShrink", 0);
|
|
2424
2463
|
_$setProp(_el$51, "flexDirection", "row");
|
|
2425
2464
|
_$setProp(_el$51, "justifyContent", "space-between");
|
|
2426
2465
|
_$setProp(_el$51, "gap", 2);
|
|
2466
|
+
_$setProp(_el$51, "overflow", "hidden");
|
|
2427
2467
|
_$insertNode(_el$52, _el$53);
|
|
2428
|
-
_$insertNode(_el$52, _el$55);
|
|
2429
2468
|
_$setProp(_el$52, "flexDirection", "row");
|
|
2430
2469
|
_$setProp(_el$52, "gap", 1);
|
|
2470
|
+
_$setProp(_el$52, "flexShrink", 0);
|
|
2431
2471
|
_$insertNode(_el$53, _$createTextNode(`Recent sessions`));
|
|
2432
|
-
_$
|
|
2472
|
+
_$setProp(_el$53, "wrapMode", "none");
|
|
2473
|
+
_$insert(_el$52, _$createComponent(Show, {
|
|
2474
|
+
get when() {
|
|
2475
|
+
return dimensions().width >= 68;
|
|
2476
|
+
},
|
|
2477
|
+
get children() {
|
|
2478
|
+
var _el$55 = _$createElement("text");
|
|
2479
|
+
_$insertNode(_el$55, _$createTextNode(`· option+o for all`));
|
|
2480
|
+
_$effect(_$p => _$setProp(_el$55, "style", {
|
|
2481
|
+
fg: theme().textMuted
|
|
2482
|
+
}, _$p));
|
|
2483
|
+
return _el$55;
|
|
2484
|
+
}
|
|
2485
|
+
}), null);
|
|
2433
2486
|
_$insertNode(_el$57, _el$58);
|
|
2434
2487
|
_$setProp(_el$57, "flexDirection", "row");
|
|
2488
|
+
_$setProp(_el$57, "flexShrink", 1);
|
|
2489
|
+
_$setProp(_el$57, "minWidth", 0);
|
|
2435
2490
|
_$setProp(_el$57, "gap", 1);
|
|
2436
2491
|
_$setProp(_el$57, "paddingLeft", 1);
|
|
2437
2492
|
_$setProp(_el$57, "paddingRight", 1);
|
|
@@ -2441,6 +2496,8 @@ function HomeSessions(props) {
|
|
|
2441
2496
|
});
|
|
2442
2497
|
_$insertNode(_el$58, _el$59);
|
|
2443
2498
|
_$setProp(_el$58, "width", 24);
|
|
2499
|
+
_$setProp(_el$58, "flexShrink", 1);
|
|
2500
|
+
_$setProp(_el$58, "minWidth", 0);
|
|
2444
2501
|
_$setProp(_el$59, "flexGrow", 1);
|
|
2445
2502
|
_$setProp(_el$59, "flexShrink", 1);
|
|
2446
2503
|
_$setProp(_el$59, "overflow", "hidden");
|
|
@@ -2466,23 +2523,18 @@ function HomeSessions(props) {
|
|
|
2466
2523
|
var _v$29 = {
|
|
2467
2524
|
fg: theme().textMuted
|
|
2468
2525
|
},
|
|
2469
|
-
_v$30 =
|
|
2470
|
-
|
|
2471
|
-
},
|
|
2472
|
-
_v$31 = searching() ? theme().backgroundElement : RGBA.fromInts(0, 0, 0, 0),
|
|
2473
|
-
_v$32 = {
|
|
2526
|
+
_v$30 = searching() ? theme().backgroundElement : RGBA.fromInts(0, 0, 0, 0),
|
|
2527
|
+
_v$31 = {
|
|
2474
2528
|
fg: query() ? theme().text : theme().textMuted
|
|
2475
2529
|
};
|
|
2476
2530
|
_v$29 !== _p$.e && (_p$.e = _$setProp(_el$53, "style", _v$29, _p$.e));
|
|
2477
|
-
_v$30 !== _p$.t && (_p$.t = _$setProp(_el$
|
|
2478
|
-
_v$31 !== _p$.a && (_p$.a = _$setProp(_el$
|
|
2479
|
-
_v$32 !== _p$.o && (_p$.o = _$setProp(_el$59, "style", _v$32, _p$.o));
|
|
2531
|
+
_v$30 !== _p$.t && (_p$.t = _$setProp(_el$57, "backgroundColor", _v$30, _p$.t));
|
|
2532
|
+
_v$31 !== _p$.a && (_p$.a = _$setProp(_el$59, "style", _v$31, _p$.a));
|
|
2480
2533
|
return _p$;
|
|
2481
2534
|
}, {
|
|
2482
2535
|
e: undefined,
|
|
2483
2536
|
t: undefined,
|
|
2484
|
-
a: undefined
|
|
2485
|
-
o: undefined
|
|
2537
|
+
a: undefined
|
|
2486
2538
|
});
|
|
2487
2539
|
return _el$51;
|
|
2488
2540
|
})(), _$createComponent(For, {
|
|
@@ -2490,21 +2542,24 @@ function HomeSessions(props) {
|
|
|
2490
2542
|
return visible();
|
|
2491
2543
|
},
|
|
2492
2544
|
children: entry => (() => {
|
|
2493
|
-
var _el$
|
|
2494
|
-
_el$
|
|
2495
|
-
_el$
|
|
2496
|
-
_$insertNode(_el$
|
|
2497
|
-
_$insertNode(_el$
|
|
2498
|
-
_$setProp(_el$
|
|
2499
|
-
_$setProp(_el$
|
|
2500
|
-
_$setProp(_el$
|
|
2501
|
-
_$setProp(_el$
|
|
2502
|
-
_$setProp(_el$
|
|
2545
|
+
var _el$67 = _$createElement("box"),
|
|
2546
|
+
_el$68 = _$createElement("text"),
|
|
2547
|
+
_el$70 = _$createElement("text");
|
|
2548
|
+
_$insertNode(_el$67, _el$68);
|
|
2549
|
+
_$insertNode(_el$67, _el$70);
|
|
2550
|
+
_$setProp(_el$67, "height", 1);
|
|
2551
|
+
_$setProp(_el$67, "flexShrink", 0);
|
|
2552
|
+
_$setProp(_el$67, "overflow", "hidden");
|
|
2553
|
+
_$setProp(_el$67, "flexDirection", "row");
|
|
2554
|
+
_$setProp(_el$67, "gap", 1);
|
|
2555
|
+
_$setProp(_el$67, "onMouseOver", () => setHovered(entry.id));
|
|
2556
|
+
_$setProp(_el$67, "onMouseOut", () => setHovered(undefined));
|
|
2557
|
+
_$setProp(_el$67, "onMouseDown", event => event.button === RIGHT_BUTTON ? openInCmuxWorkspace(props.api, entry) : props.api.route.navigate("session", {
|
|
2503
2558
|
sessionID: entry.id
|
|
2504
2559
|
}));
|
|
2505
|
-
_$insertNode(_el$
|
|
2506
|
-
_$setProp(_el$
|
|
2507
|
-
_$insert(_el$
|
|
2560
|
+
_$insertNode(_el$68, _$createTextNode(`○`));
|
|
2561
|
+
_$setProp(_el$68, "flexShrink", 0);
|
|
2562
|
+
_$insert(_el$67, _$createComponent(Highlighted, {
|
|
2508
2563
|
get text() {
|
|
2509
2564
|
return `${props.pins().sessions.includes(entry.id) ? "★ " : ""}${truncate(entry.title, HOME_TITLE_WIDTH - (props.pins().sessions.includes(entry.id) ? 2 : 0))}`;
|
|
2510
2565
|
},
|
|
@@ -2517,30 +2572,35 @@ function HomeSessions(props) {
|
|
|
2517
2572
|
get matchColor() {
|
|
2518
2573
|
return theme().warning;
|
|
2519
2574
|
}
|
|
2520
|
-
}), _el$
|
|
2521
|
-
_$setProp(_el$
|
|
2522
|
-
_$
|
|
2575
|
+
}), _el$70);
|
|
2576
|
+
_$setProp(_el$70, "flexShrink", 1);
|
|
2577
|
+
_$setProp(_el$70, "wrapMode", "none");
|
|
2578
|
+
_$setProp(_el$70, "overflow", "hidden");
|
|
2579
|
+
_$insert(_el$70, (() => {
|
|
2523
2580
|
var _c$5 = _$memo(() => pendingDelete() === entry.id);
|
|
2524
2581
|
return () => _c$5() ? "option+d again" : `${props.pins().directories.includes(entry.dir) ? "★ " : ""}${prettyDir(entry.dir, home)} · ${ago(entry.updated)}`;
|
|
2525
2582
|
})());
|
|
2526
2583
|
_$effect(_p$ => {
|
|
2527
|
-
var _v$
|
|
2528
|
-
_v$
|
|
2584
|
+
var _v$36 = entry.id === hovered() ? theme().backgroundElement : RGBA.fromInts(0, 0, 0, 0),
|
|
2585
|
+
_v$37 = {
|
|
2529
2586
|
fg: theme().textMuted
|
|
2530
2587
|
},
|
|
2531
|
-
_v$
|
|
2588
|
+
_v$38 = Math.max(0, Math.floor((Math.min(72, dimensions().width) - 4) / 2)),
|
|
2589
|
+
_v$39 = {
|
|
2532
2590
|
fg: pendingDelete() === entry.id ? theme().error : theme().textMuted
|
|
2533
2591
|
};
|
|
2534
|
-
_v$
|
|
2535
|
-
_v$
|
|
2536
|
-
_v$
|
|
2592
|
+
_v$36 !== _p$.e && (_p$.e = _$setProp(_el$67, "backgroundColor", _v$36, _p$.e));
|
|
2593
|
+
_v$37 !== _p$.t && (_p$.t = _$setProp(_el$68, "style", _v$37, _p$.t));
|
|
2594
|
+
_v$38 !== _p$.a && (_p$.a = _$setProp(_el$70, "maxWidth", _v$38, _p$.a));
|
|
2595
|
+
_v$39 !== _p$.o && (_p$.o = _$setProp(_el$70, "style", _v$39, _p$.o));
|
|
2537
2596
|
return _p$;
|
|
2538
2597
|
}, {
|
|
2539
2598
|
e: undefined,
|
|
2540
2599
|
t: undefined,
|
|
2541
|
-
a: undefined
|
|
2600
|
+
a: undefined,
|
|
2601
|
+
o: undefined
|
|
2542
2602
|
});
|
|
2543
|
-
return _el$
|
|
2603
|
+
return _el$67;
|
|
2544
2604
|
})()
|
|
2545
2605
|
}), _$createComponent(Show, {
|
|
2546
2606
|
get when() {
|
|
@@ -2549,6 +2609,10 @@ function HomeSessions(props) {
|
|
|
2549
2609
|
get children() {
|
|
2550
2610
|
var _el$62 = _$createElement("text");
|
|
2551
2611
|
_$insertNode(_el$62, _$createTextNode(`No title or directory matches · option+o to search transcripts`));
|
|
2612
|
+
_$setProp(_el$62, "height", 1);
|
|
2613
|
+
_$setProp(_el$62, "flexShrink", 0);
|
|
2614
|
+
_$setProp(_el$62, "wrapMode", "none");
|
|
2615
|
+
_$setProp(_el$62, "overflow", "hidden");
|
|
2552
2616
|
_$effect(_$p => _$setProp(_el$62, "style", {
|
|
2553
2617
|
fg: theme().textMuted
|
|
2554
2618
|
}, _$p));
|
|
@@ -2557,6 +2621,22 @@ function HomeSessions(props) {
|
|
|
2557
2621
|
})];
|
|
2558
2622
|
}
|
|
2559
2623
|
}));
|
|
2624
|
+
_$effect(_p$ => {
|
|
2625
|
+
var _v$32 = layout().limit > 0,
|
|
2626
|
+
_v$33 = layout().budget,
|
|
2627
|
+
_v$34 = layout().padding,
|
|
2628
|
+
_v$35 = layout().gap;
|
|
2629
|
+
_v$32 !== _p$.e && (_p$.e = _$setProp(_el$49, "visible", _v$32, _p$.e));
|
|
2630
|
+
_v$33 !== _p$.t && (_p$.t = _$setProp(_el$49, "maxHeight", _v$33, _p$.t));
|
|
2631
|
+
_v$34 !== _p$.a && (_p$.a = _$setProp(_el$50, "paddingTop", _v$34, _p$.a));
|
|
2632
|
+
_v$35 !== _p$.o && (_p$.o = _$setProp(_el$50, "gap", _v$35, _p$.o));
|
|
2633
|
+
return _p$;
|
|
2634
|
+
}, {
|
|
2635
|
+
e: undefined,
|
|
2636
|
+
t: undefined,
|
|
2637
|
+
a: undefined,
|
|
2638
|
+
o: undefined
|
|
2639
|
+
});
|
|
2560
2640
|
return _el$49;
|
|
2561
2641
|
})();
|
|
2562
2642
|
}
|
|
@@ -3120,64 +3200,64 @@ const tui = async api => {
|
|
|
3120
3200
|
if (previewTimer) clearTimeout(previewTimer);
|
|
3121
3201
|
};
|
|
3122
3202
|
api.ui.dialog.replace(() => (() => {
|
|
3123
|
-
var _el$
|
|
3203
|
+
var _el$71 = _$createElement("box"),
|
|
3204
|
+
_el$72 = _$createElement("box"),
|
|
3124
3205
|
_el$73 = _$createElement("box"),
|
|
3125
|
-
_el$74 = _$createElement("
|
|
3126
|
-
_el$75 = _$
|
|
3127
|
-
_el$76 = _$
|
|
3128
|
-
_el$77 = _$
|
|
3129
|
-
_el$78 = _$createTextNode(`
|
|
3130
|
-
_el$79 = _$
|
|
3131
|
-
_el$
|
|
3132
|
-
_el$82 = _$createElement("
|
|
3133
|
-
_el$
|
|
3134
|
-
_el$86 = _$createElement("
|
|
3206
|
+
_el$74 = _$createElement("text"),
|
|
3207
|
+
_el$75 = _$createTextNode(`Sessions `),
|
|
3208
|
+
_el$76 = _$createElement("span"),
|
|
3209
|
+
_el$77 = _$createTextNode(`(`),
|
|
3210
|
+
_el$78 = _$createTextNode(`)`),
|
|
3211
|
+
_el$79 = _$createElement("text"),
|
|
3212
|
+
_el$81 = _$createElement("box"),
|
|
3213
|
+
_el$82 = _$createElement("input"),
|
|
3214
|
+
_el$85 = _$createElement("box"),
|
|
3215
|
+
_el$86 = _$createElement("text"),
|
|
3135
3216
|
_el$87 = _$createElement("text"),
|
|
3136
3217
|
_el$88 = _$createElement("text"),
|
|
3137
|
-
_el$89 = _$createElement("
|
|
3138
|
-
_el$
|
|
3139
|
-
_el$93 = _$createElement("
|
|
3140
|
-
|
|
3218
|
+
_el$89 = _$createElement("box"),
|
|
3219
|
+
_el$92 = _$createElement("box"),
|
|
3220
|
+
_el$93 = _$createElement("text");
|
|
3221
|
+
_$insertNode(_el$71, _el$72);
|
|
3222
|
+
_$insertNode(_el$71, _el$89);
|
|
3223
|
+
_$insertNode(_el$71, _el$92);
|
|
3224
|
+
_$setProp(_el$71, "flexDirection", "column");
|
|
3225
|
+
_$setProp(_el$71, "paddingTop", 1);
|
|
3226
|
+
_$setProp(_el$71, "paddingBottom", 1);
|
|
3227
|
+
_$setProp(_el$71, "gap", 1);
|
|
3141
3228
|
_$insertNode(_el$72, _el$73);
|
|
3142
|
-
_$insertNode(_el$72, _el$
|
|
3143
|
-
_$insertNode(_el$72, _el$
|
|
3144
|
-
_$setProp(_el$72, "
|
|
3145
|
-
_$setProp(_el$72, "
|
|
3146
|
-
_$setProp(_el$72, "paddingBottom", 1);
|
|
3147
|
-
_$setProp(_el$72, "gap", 1);
|
|
3229
|
+
_$insertNode(_el$72, _el$81);
|
|
3230
|
+
_$insertNode(_el$72, _el$85);
|
|
3231
|
+
_$setProp(_el$72, "paddingLeft", 4);
|
|
3232
|
+
_$setProp(_el$72, "paddingRight", 4);
|
|
3148
3233
|
_$insertNode(_el$73, _el$74);
|
|
3149
|
-
_$insertNode(_el$73, _el$
|
|
3150
|
-
_$
|
|
3151
|
-
_$setProp(_el$73, "
|
|
3152
|
-
_$setProp(_el$73, "paddingRight", 4);
|
|
3234
|
+
_$insertNode(_el$73, _el$79);
|
|
3235
|
+
_$setProp(_el$73, "flexDirection", "row");
|
|
3236
|
+
_$setProp(_el$73, "justifyContent", "space-between");
|
|
3153
3237
|
_$insertNode(_el$74, _el$75);
|
|
3154
|
-
_$insertNode(_el$74, _el$
|
|
3155
|
-
_$
|
|
3156
|
-
_$
|
|
3157
|
-
_$
|
|
3158
|
-
_$insertNode(_el$
|
|
3159
|
-
_$
|
|
3160
|
-
_$insertNode(_el$
|
|
3161
|
-
_$
|
|
3162
|
-
_$
|
|
3163
|
-
_$setProp(_el$
|
|
3164
|
-
_$
|
|
3165
|
-
_$setProp(_el$82, "paddingTop", 1);
|
|
3166
|
-
_$setProp(_el$83, "focused", true);
|
|
3167
|
-
_$setProp(_el$83, "placeholder", "Search title, directory, transcript…");
|
|
3168
|
-
_$setProp(_el$83, "cursorStyle", {
|
|
3238
|
+
_$insertNode(_el$74, _el$76);
|
|
3239
|
+
_$insertNode(_el$76, _el$77);
|
|
3240
|
+
_$insertNode(_el$76, _el$78);
|
|
3241
|
+
_$insert(_el$76, () => selectableEntries().length, _el$78);
|
|
3242
|
+
_$insertNode(_el$79, _$createTextNode(`esc`));
|
|
3243
|
+
_$setProp(_el$79, "onMouseUp", close);
|
|
3244
|
+
_$insertNode(_el$81, _el$82);
|
|
3245
|
+
_$setProp(_el$81, "paddingTop", 1);
|
|
3246
|
+
_$setProp(_el$82, "focused", true);
|
|
3247
|
+
_$setProp(_el$82, "placeholder", "Search title, directory, transcript…");
|
|
3248
|
+
_$setProp(_el$82, "cursorStyle", {
|
|
3169
3249
|
style: "line",
|
|
3170
3250
|
blinking: false
|
|
3171
3251
|
});
|
|
3172
|
-
_$setProp(_el$
|
|
3252
|
+
_$setProp(_el$82, "onInput", value => {
|
|
3173
3253
|
if (pendingDelete()) return;
|
|
3174
3254
|
setQuery(value);
|
|
3175
3255
|
});
|
|
3176
|
-
_$setProp(_el$
|
|
3256
|
+
_$setProp(_el$82, "onSubmit", () => {
|
|
3177
3257
|
if (confirmArmed()) return;
|
|
3178
3258
|
choose();
|
|
3179
3259
|
});
|
|
3180
|
-
_$setProp(_el$
|
|
3260
|
+
_$setProp(_el$82, "onKeyDown", event => {
|
|
3181
3261
|
if (event.name === "escape") {
|
|
3182
3262
|
event.preventDefault();
|
|
3183
3263
|
handleEscape();
|
|
@@ -3209,92 +3289,92 @@ const tui = async api => {
|
|
|
3209
3289
|
}
|
|
3210
3290
|
}
|
|
3211
3291
|
});
|
|
3212
|
-
_$insert(_el$
|
|
3292
|
+
_$insert(_el$72, _$createComponent(Show, {
|
|
3213
3293
|
get when() {
|
|
3214
3294
|
return coverageLabel();
|
|
3215
3295
|
},
|
|
3216
3296
|
get children() {
|
|
3217
|
-
var _el$
|
|
3218
|
-
_el$
|
|
3219
|
-
_$insertNode(_el$
|
|
3220
|
-
_$setProp(_el$
|
|
3221
|
-
_$insert(_el$
|
|
3222
|
-
_$effect(_$p => _$setProp(_el$
|
|
3297
|
+
var _el$83 = _$createElement("box"),
|
|
3298
|
+
_el$84 = _$createElement("text");
|
|
3299
|
+
_$insertNode(_el$83, _el$84);
|
|
3300
|
+
_$setProp(_el$83, "paddingTop", 1);
|
|
3301
|
+
_$insert(_el$84, coverageLabel);
|
|
3302
|
+
_$effect(_$p => _$setProp(_el$84, "style", {
|
|
3223
3303
|
fg: api.theme.current.textMuted
|
|
3224
3304
|
}, _$p));
|
|
3225
|
-
return _el$
|
|
3305
|
+
return _el$83;
|
|
3226
3306
|
}
|
|
3227
|
-
}), _el$
|
|
3228
|
-
_$insertNode(_el$
|
|
3229
|
-
_$insertNode(_el$
|
|
3230
|
-
_$insertNode(_el$
|
|
3231
|
-
_$setProp(_el$
|
|
3232
|
-
_$setProp(_el$
|
|
3233
|
-
_$setProp(_el$
|
|
3234
|
-
_$setProp(_el$
|
|
3307
|
+
}), _el$85);
|
|
3308
|
+
_$insertNode(_el$85, _el$86);
|
|
3309
|
+
_$insertNode(_el$85, _el$87);
|
|
3310
|
+
_$insertNode(_el$85, _el$88);
|
|
3311
|
+
_$setProp(_el$85, "flexDirection", "row");
|
|
3312
|
+
_$setProp(_el$85, "gap", 2);
|
|
3313
|
+
_$setProp(_el$85, "paddingTop", 1);
|
|
3314
|
+
_$setProp(_el$86, "onMouseDown", () => {
|
|
3235
3315
|
const group = currentProject();
|
|
3236
3316
|
if (group) setScope(scope() === group ? undefined : group);else api.ui.toast({
|
|
3237
3317
|
message: "No current project to filter",
|
|
3238
3318
|
variant: "info"
|
|
3239
3319
|
});
|
|
3240
3320
|
});
|
|
3241
|
-
_$insert(_el$
|
|
3321
|
+
_$insert(_el$86, (() => {
|
|
3242
3322
|
var _c$6 = _$memo(() => !!scope());
|
|
3243
3323
|
return () => _c$6() ? `Project: ${truncate(scope(), 22)}` : "Project: all";
|
|
3244
3324
|
})());
|
|
3245
|
-
_$setProp(_el$
|
|
3246
|
-
_$insert(_el$
|
|
3247
|
-
_$setProp(_el$
|
|
3248
|
-
_$insert(_el$
|
|
3249
|
-
_$setProp(_el$
|
|
3250
|
-
_$setProp(_el$
|
|
3251
|
-
_$setProp(_el$
|
|
3252
|
-
_$setProp(_el$
|
|
3325
|
+
_$setProp(_el$87, "onMouseDown", () => setWaitingOnly(value => !value));
|
|
3326
|
+
_$insert(_el$87, () => waitingOnly() ? "● Needs input" : "○ Needs input");
|
|
3327
|
+
_$setProp(_el$88, "onMouseDown", () => setPinnedOnly(value => !value));
|
|
3328
|
+
_$insert(_el$88, () => pinnedOnly() ? "★ Pinned" : "☆ Pinned");
|
|
3329
|
+
_$setProp(_el$89, "flexDirection", "column");
|
|
3330
|
+
_$setProp(_el$89, "flexGrow", 1);
|
|
3331
|
+
_$setProp(_el$89, "overflow", "hidden");
|
|
3332
|
+
_$setProp(_el$89, "onMouseScroll", event => {
|
|
3253
3333
|
scrollPicker(event.scroll);
|
|
3254
3334
|
});
|
|
3255
|
-
_$insert(_el$
|
|
3335
|
+
_$insert(_el$89, _$createComponent(For, {
|
|
3256
3336
|
get each() {
|
|
3257
3337
|
return visiblePickerRows();
|
|
3258
3338
|
},
|
|
3259
3339
|
children: row => {
|
|
3260
3340
|
if (row.kind === "group") return (() => {
|
|
3261
|
-
var _el$
|
|
3341
|
+
var _el$106 = _$createElement("box"),
|
|
3342
|
+
_el$107 = _$createElement("text"),
|
|
3262
3343
|
_el$108 = _$createElement("text"),
|
|
3263
|
-
_el$109 = _$
|
|
3264
|
-
_el$110 = _$createTextNode(`
|
|
3265
|
-
|
|
3266
|
-
_$insertNode(_el$
|
|
3267
|
-
_$
|
|
3268
|
-
_$setProp(_el$
|
|
3269
|
-
_$setProp(_el$
|
|
3270
|
-
_$setProp(_el$
|
|
3271
|
-
_$setProp(_el$107, "onMouseDown", () => setCollapsed(state => ({
|
|
3344
|
+
_el$109 = _$createTextNode(` (`),
|
|
3345
|
+
_el$110 = _$createTextNode(`)`);
|
|
3346
|
+
_$insertNode(_el$106, _el$107);
|
|
3347
|
+
_$insertNode(_el$106, _el$108);
|
|
3348
|
+
_$setProp(_el$106, "flexDirection", "row");
|
|
3349
|
+
_$setProp(_el$106, "paddingLeft", 4);
|
|
3350
|
+
_$setProp(_el$106, "paddingRight", 4);
|
|
3351
|
+
_$setProp(_el$106, "onMouseDown", () => setCollapsed(state => ({
|
|
3272
3352
|
...state,
|
|
3273
3353
|
[row.dir]: !state[row.dir]
|
|
3274
3354
|
})));
|
|
3275
|
-
_$setProp(_el$
|
|
3276
|
-
_$setProp(_el$
|
|
3277
|
-
_$setProp(_el$
|
|
3278
|
-
_$insert(_el$
|
|
3279
|
-
_$insert(_el$
|
|
3280
|
-
_$insert(_el$
|
|
3281
|
-
_$insertNode(_el$
|
|
3282
|
-
_$insertNode(_el$
|
|
3283
|
-
_$setProp(_el$
|
|
3284
|
-
_$insert(_el$
|
|
3355
|
+
_$setProp(_el$107, "flexGrow", 1);
|
|
3356
|
+
_$setProp(_el$107, "flexShrink", 1);
|
|
3357
|
+
_$setProp(_el$107, "wrapMode", "none");
|
|
3358
|
+
_$insert(_el$107, () => collapsed()[row.dir] && !query().trim() ? "▸ " : "▾ ", null);
|
|
3359
|
+
_$insert(_el$107, () => row.pinned ? "★ " : "", null);
|
|
3360
|
+
_$insert(_el$107, () => row.label, null);
|
|
3361
|
+
_$insertNode(_el$108, _el$109);
|
|
3362
|
+
_$insertNode(_el$108, _el$110);
|
|
3363
|
+
_$setProp(_el$108, "flexShrink", 0);
|
|
3364
|
+
_$insert(_el$108, () => row.count, _el$110);
|
|
3285
3365
|
_$effect(_p$ => {
|
|
3286
|
-
var _v$
|
|
3287
|
-
_v$
|
|
3366
|
+
var _v$60 = row.continued ? 0 : 1,
|
|
3367
|
+
_v$61 = {
|
|
3288
3368
|
fg: api.theme.current.accent
|
|
3289
3369
|
},
|
|
3290
|
-
_v$
|
|
3291
|
-
_v$
|
|
3370
|
+
_v$62 = TextAttributes.BOLD,
|
|
3371
|
+
_v$63 = {
|
|
3292
3372
|
fg: api.theme.current.textMuted
|
|
3293
3373
|
};
|
|
3294
|
-
_v$
|
|
3295
|
-
_v$
|
|
3296
|
-
_v$
|
|
3297
|
-
_v$
|
|
3374
|
+
_v$60 !== _p$.e && (_p$.e = _$setProp(_el$106, "paddingTop", _v$60, _p$.e));
|
|
3375
|
+
_v$61 !== _p$.t && (_p$.t = _$setProp(_el$107, "style", _v$61, _p$.t));
|
|
3376
|
+
_v$62 !== _p$.a && (_p$.a = _$setProp(_el$107, "attributes", _v$62, _p$.a));
|
|
3377
|
+
_v$63 !== _p$.o && (_p$.o = _$setProp(_el$108, "style", _v$63, _p$.o));
|
|
3298
3378
|
return _p$;
|
|
3299
3379
|
}, {
|
|
3300
3380
|
e: undefined,
|
|
@@ -3302,46 +3382,46 @@ const tui = async api => {
|
|
|
3302
3382
|
a: undefined,
|
|
3303
3383
|
o: undefined
|
|
3304
3384
|
});
|
|
3305
|
-
return _el$
|
|
3385
|
+
return _el$106;
|
|
3306
3386
|
})();
|
|
3307
3387
|
const excerpt = createMemo(() => transcriptMatchExcerpt(searchIndex().get(row.entry.id), row.entry, query()));
|
|
3308
3388
|
return (() => {
|
|
3309
|
-
var _el$
|
|
3310
|
-
_el$
|
|
3311
|
-
_el$
|
|
3312
|
-
_el$
|
|
3313
|
-
_$insertNode(_el$
|
|
3314
|
-
_$setProp(_el$
|
|
3315
|
-
_$setProp(_el$
|
|
3316
|
-
_$setProp(_el$
|
|
3317
|
-
_$setProp(_el$
|
|
3389
|
+
var _el$111 = _$createElement("box"),
|
|
3390
|
+
_el$112 = _$createElement("box"),
|
|
3391
|
+
_el$113 = _$createElement("text"),
|
|
3392
|
+
_el$116 = _$createElement("text");
|
|
3393
|
+
_$insertNode(_el$111, _el$112);
|
|
3394
|
+
_$setProp(_el$111, "flexDirection", "column");
|
|
3395
|
+
_$setProp(_el$111, "paddingLeft", 6);
|
|
3396
|
+
_$setProp(_el$111, "paddingRight", 4);
|
|
3397
|
+
_$setProp(_el$111, "onMouseMove", () => {
|
|
3318
3398
|
// Repainting under a stationary pointer must not select
|
|
3319
3399
|
// another row while the wheel is moving the viewport.
|
|
3320
3400
|
const index = selectableEntries().findIndex(entry => entry.id === row.entry.id);
|
|
3321
3401
|
if (index >= 0) setCursor(index);
|
|
3322
3402
|
});
|
|
3323
|
-
_$setProp(_el$
|
|
3324
|
-
_$insertNode(_el$
|
|
3325
|
-
_$insertNode(_el$
|
|
3326
|
-
_$setProp(_el$
|
|
3327
|
-
_$setProp(_el$
|
|
3328
|
-
_$setProp(_el$
|
|
3329
|
-
_$insert(_el$
|
|
3330
|
-
_$insert(_el$
|
|
3403
|
+
_$setProp(_el$111, "onMouseDown", event => event.button === RIGHT_BUTTON ? (cleanup(), api.ui.dialog.clear(), openInCmuxWorkspace(api, row.entry)) : choose(row.entry));
|
|
3404
|
+
_$insertNode(_el$112, _el$113);
|
|
3405
|
+
_$insertNode(_el$112, _el$116);
|
|
3406
|
+
_$setProp(_el$112, "flexDirection", "row");
|
|
3407
|
+
_$setProp(_el$112, "gap", 1);
|
|
3408
|
+
_$setProp(_el$113, "flexShrink", 0);
|
|
3409
|
+
_$insert(_el$113, () => row.last ? "└" : "├");
|
|
3410
|
+
_$insert(_el$112, _$createComponent(Show, {
|
|
3331
3411
|
get when() {
|
|
3332
3412
|
return row.entry.id === currentSessionID();
|
|
3333
3413
|
},
|
|
3334
3414
|
get children() {
|
|
3335
|
-
var _el$
|
|
3336
|
-
_$insertNode(_el$
|
|
3337
|
-
_$setProp(_el$
|
|
3338
|
-
_$effect(_$p => _$setProp(_el$
|
|
3415
|
+
var _el$114 = _$createElement("text");
|
|
3416
|
+
_$insertNode(_el$114, _$createTextNode(`●`));
|
|
3417
|
+
_$setProp(_el$114, "flexShrink", 0);
|
|
3418
|
+
_$effect(_$p => _$setProp(_el$114, "style", {
|
|
3339
3419
|
fg: row.entry.id === selectableEntries()[cursor()]?.id ? api.theme.current.text : api.theme.current.primary
|
|
3340
3420
|
}, _$p));
|
|
3341
|
-
return _el$
|
|
3421
|
+
return _el$114;
|
|
3342
3422
|
}
|
|
3343
|
-
}), _el$
|
|
3344
|
-
_$insert(_el$
|
|
3423
|
+
}), _el$116);
|
|
3424
|
+
_$insert(_el$112, _$createComponent(Highlighted, {
|
|
3345
3425
|
get text() {
|
|
3346
3426
|
return `${pins().sessions.includes(row.entry.id) ? "★ " : ""}${truncate(row.entry.title, pins().sessions.includes(row.entry.id) ? 59 : 61)}`;
|
|
3347
3427
|
},
|
|
@@ -3357,26 +3437,26 @@ const tui = async api => {
|
|
|
3357
3437
|
get matchColor() {
|
|
3358
3438
|
return _$memo(() => row.entry.id === selectableEntries()[cursor()]?.id)() ? api.theme.current.text : api.theme.current.warning;
|
|
3359
3439
|
}
|
|
3360
|
-
}), _el$
|
|
3361
|
-
_$setProp(_el$
|
|
3362
|
-
_$insert(_el$
|
|
3440
|
+
}), _el$116);
|
|
3441
|
+
_$setProp(_el$116, "flexShrink", 0);
|
|
3442
|
+
_$insert(_el$116, (() => {
|
|
3363
3443
|
var _c$0 = _$memo(() => pendingDelete()?.id === row.entry.id);
|
|
3364
3444
|
return () => _c$0() ? "press y to delete" : `${ago(row.entry.updated)}${query().trim() && !`${row.entry.title} ${row.entry.dir}`.toLowerCase().includes(query().trim().toLowerCase()) ? " · transcript match" : ""}`;
|
|
3365
3445
|
})());
|
|
3366
|
-
_$insert(_el$
|
|
3446
|
+
_$insert(_el$111, _$createComponent(Show, {
|
|
3367
3447
|
get when() {
|
|
3368
3448
|
return excerpt();
|
|
3369
3449
|
},
|
|
3370
3450
|
children: match => (() => {
|
|
3371
|
-
var _el$
|
|
3372
|
-
_el$
|
|
3373
|
-
_$insertNode(_el$
|
|
3374
|
-
_$setProp(_el$
|
|
3375
|
-
_$setProp(_el$
|
|
3376
|
-
_$setProp(_el$
|
|
3377
|
-
_$insertNode(_el$
|
|
3378
|
-
_$setProp(_el$
|
|
3379
|
-
_$insert(_el$
|
|
3451
|
+
var _el$117 = _$createElement("box"),
|
|
3452
|
+
_el$118 = _$createElement("text");
|
|
3453
|
+
_$insertNode(_el$117, _el$118);
|
|
3454
|
+
_$setProp(_el$117, "flexDirection", "row");
|
|
3455
|
+
_$setProp(_el$117, "gap", 1);
|
|
3456
|
+
_$setProp(_el$117, "paddingLeft", 2);
|
|
3457
|
+
_$insertNode(_el$118, _$createTextNode(`↳`));
|
|
3458
|
+
_$setProp(_el$118, "flexShrink", 0);
|
|
3459
|
+
_$insert(_el$117, _$createComponent(Highlighted, {
|
|
3380
3460
|
get text() {
|
|
3381
3461
|
return match();
|
|
3382
3462
|
},
|
|
@@ -3390,140 +3470,140 @@ const tui = async api => {
|
|
|
3390
3470
|
return api.theme.current.warning;
|
|
3391
3471
|
}
|
|
3392
3472
|
}), null);
|
|
3393
|
-
_$effect(_$p => _$setProp(_el$
|
|
3473
|
+
_$effect(_$p => _$setProp(_el$118, "style", {
|
|
3394
3474
|
fg: api.theme.current.textMuted
|
|
3395
3475
|
}, _$p));
|
|
3396
|
-
return _el$
|
|
3476
|
+
return _el$117;
|
|
3397
3477
|
})()
|
|
3398
3478
|
}), null);
|
|
3399
3479
|
_$effect(_p$ => {
|
|
3400
|
-
var _v$
|
|
3401
|
-
_v$
|
|
3480
|
+
var _v$64 = row.entry.id === selectableEntries()[cursor()]?.id ? api.theme.current.backgroundElement : RGBA.fromInts(0, 0, 0, 0),
|
|
3481
|
+
_v$65 = {
|
|
3402
3482
|
fg: row.entry.id === selectableEntries()[cursor()]?.id ? api.theme.current.text : api.theme.current.textMuted
|
|
3403
3483
|
},
|
|
3404
|
-
_v$
|
|
3484
|
+
_v$66 = {
|
|
3405
3485
|
fg: pendingDelete()?.id === row.entry.id ? api.theme.current.error : row.entry.id === selectableEntries()[cursor()]?.id ? api.theme.current.text : api.theme.current.textMuted
|
|
3406
3486
|
};
|
|
3407
|
-
_v$
|
|
3408
|
-
_v$
|
|
3409
|
-
_v$
|
|
3487
|
+
_v$64 !== _p$.e && (_p$.e = _$setProp(_el$111, "backgroundColor", _v$64, _p$.e));
|
|
3488
|
+
_v$65 !== _p$.t && (_p$.t = _$setProp(_el$113, "style", _v$65, _p$.t));
|
|
3489
|
+
_v$66 !== _p$.a && (_p$.a = _$setProp(_el$116, "style", _v$66, _p$.a));
|
|
3410
3490
|
return _p$;
|
|
3411
3491
|
}, {
|
|
3412
3492
|
e: undefined,
|
|
3413
3493
|
t: undefined,
|
|
3414
3494
|
a: undefined
|
|
3415
3495
|
});
|
|
3416
|
-
return _el$
|
|
3496
|
+
return _el$111;
|
|
3417
3497
|
})();
|
|
3418
3498
|
}
|
|
3419
3499
|
}), null);
|
|
3420
|
-
_$insert(_el$
|
|
3500
|
+
_$insert(_el$89, _$createComponent(Show, {
|
|
3421
3501
|
get when() {
|
|
3422
3502
|
return matchedGroups().length === 0;
|
|
3423
3503
|
},
|
|
3424
3504
|
get children() {
|
|
3425
|
-
var _el$
|
|
3426
|
-
_el$
|
|
3427
|
-
_$insertNode(_el$
|
|
3428
|
-
_$setProp(_el$
|
|
3429
|
-
_$setProp(_el$
|
|
3430
|
-
_$insert(_el$
|
|
3505
|
+
var _el$90 = _$createElement("box"),
|
|
3506
|
+
_el$91 = _$createElement("text");
|
|
3507
|
+
_$insertNode(_el$90, _el$91);
|
|
3508
|
+
_$setProp(_el$90, "paddingLeft", 4);
|
|
3509
|
+
_$setProp(_el$90, "paddingRight", 4);
|
|
3510
|
+
_$insert(_el$91, (() => {
|
|
3431
3511
|
var _c$7 = _$memo(() => !!(waitingOnly() && waitingCoverage() === "loading"));
|
|
3432
3512
|
return () => _c$7() ? "Checking which sessions need input…" : _$memo(() => !!(waitingOnly() && waitingCoverage() === "unavailable"))() ? "Needs-input data unavailable · turn off the filter" : _$memo(() => !!(pinnedOnly() && pins().sessions.length === 0))() ? "No pinned sessions yet · ctrl+s pins a session" : _$memo(() => !!(!indexProgress().complete && query().trim()))() ? "No matches yet · still searching transcripts…" : _$memo(() => !!scope())() ? `No matches in ${scope()} · ctrl+g for all projects` : waitingOnly() ? "No sessions need input with these filters" : "No sessions match · try another search";
|
|
3433
3513
|
})());
|
|
3434
|
-
_$effect(_$p => _$setProp(_el$
|
|
3514
|
+
_$effect(_$p => _$setProp(_el$91, "style", {
|
|
3435
3515
|
fg: api.theme.current.textMuted
|
|
3436
3516
|
}, _$p));
|
|
3437
|
-
return _el$
|
|
3517
|
+
return _el$90;
|
|
3438
3518
|
}
|
|
3439
3519
|
}), null);
|
|
3440
|
-
_$insertNode(_el$
|
|
3441
|
-
_$setProp(_el$
|
|
3442
|
-
_$setProp(_el$
|
|
3443
|
-
_$setProp(_el$
|
|
3444
|
-
_$setProp(_el$
|
|
3445
|
-
_$insert(_el$
|
|
3520
|
+
_$insertNode(_el$92, _el$93);
|
|
3521
|
+
_$setProp(_el$92, "paddingLeft", 4);
|
|
3522
|
+
_$setProp(_el$92, "paddingRight", 4);
|
|
3523
|
+
_$setProp(_el$92, "flexShrink", 0);
|
|
3524
|
+
_$setProp(_el$92, "flexDirection", "column");
|
|
3525
|
+
_$insert(_el$93, (() => {
|
|
3446
3526
|
var _c$8 = _$memo(() => !!pendingDelete());
|
|
3447
3527
|
return () => _c$8() ? `Delete "${truncate(pendingDelete().title, 40)}"? y confirm · n cancel` : "↑↓ move · enter open · ctrl+g project · option+w input · option+s pinned · option+p preview";
|
|
3448
3528
|
})());
|
|
3449
|
-
_$insert(_el$
|
|
3529
|
+
_$insert(_el$92, _$createComponent(Show, {
|
|
3450
3530
|
get when() {
|
|
3451
3531
|
return !pendingDelete();
|
|
3452
3532
|
},
|
|
3453
3533
|
get children() {
|
|
3454
|
-
var _el$
|
|
3455
|
-
_$insertNode(_el$
|
|
3456
|
-
_$effect(_$p => _$setProp(_el$
|
|
3534
|
+
var _el$94 = _$createElement("text");
|
|
3535
|
+
_$insertNode(_el$94, _$createTextNode(`ctrl+s/d pin · option+d delete · ctrl+f fork · esc close`));
|
|
3536
|
+
_$effect(_$p => _$setProp(_el$94, "style", {
|
|
3457
3537
|
fg: api.theme.current.textMuted
|
|
3458
3538
|
}, _$p));
|
|
3459
|
-
return _el$
|
|
3539
|
+
return _el$94;
|
|
3460
3540
|
}
|
|
3461
3541
|
}), null);
|
|
3462
|
-
_$insert(_el$
|
|
3542
|
+
_$insert(_el$71, _$createComponent(Show, {
|
|
3463
3543
|
get when() {
|
|
3464
3544
|
return showPreview();
|
|
3465
3545
|
},
|
|
3466
3546
|
get children() {
|
|
3467
|
-
var _el$
|
|
3468
|
-
_el$
|
|
3547
|
+
var _el$96 = _$createElement("box"),
|
|
3548
|
+
_el$97 = _$createElement("box"),
|
|
3549
|
+
_el$98 = _$createElement("text"),
|
|
3469
3550
|
_el$99 = _$createElement("text"),
|
|
3470
|
-
_el$
|
|
3471
|
-
_el$104 = _$createElement("
|
|
3472
|
-
|
|
3551
|
+
_el$103 = _$createElement("scrollbox"),
|
|
3552
|
+
_el$104 = _$createElement("text");
|
|
3553
|
+
_$insertNode(_el$96, _el$97);
|
|
3554
|
+
_$insertNode(_el$96, _el$103);
|
|
3555
|
+
_$insertNode(_el$96, _el$104);
|
|
3556
|
+
_$setProp(_el$96, "position", "absolute");
|
|
3557
|
+
_$setProp(_el$96, "left", 0);
|
|
3558
|
+
_$setProp(_el$96, "top", 0);
|
|
3559
|
+
_$setProp(_el$96, "width", dialogWidth);
|
|
3560
|
+
_$setProp(_el$96, "flexDirection", "column");
|
|
3561
|
+
_$setProp(_el$96, "paddingLeft", 4);
|
|
3562
|
+
_$setProp(_el$96, "paddingRight", 4);
|
|
3563
|
+
_$setProp(_el$96, "paddingTop", 1);
|
|
3564
|
+
_$setProp(_el$96, "paddingBottom", 1);
|
|
3565
|
+
_$setProp(_el$96, "gap", 1);
|
|
3473
3566
|
_$insertNode(_el$97, _el$98);
|
|
3474
|
-
_$insertNode(_el$97, _el$
|
|
3475
|
-
_$
|
|
3476
|
-
_$setProp(_el$97, "
|
|
3477
|
-
_$
|
|
3478
|
-
_$setProp(_el$97, "top", 0);
|
|
3479
|
-
_$setProp(_el$97, "width", dialogWidth);
|
|
3480
|
-
_$setProp(_el$97, "flexDirection", "column");
|
|
3481
|
-
_$setProp(_el$97, "paddingLeft", 4);
|
|
3482
|
-
_$setProp(_el$97, "paddingRight", 4);
|
|
3483
|
-
_$setProp(_el$97, "paddingTop", 1);
|
|
3484
|
-
_$setProp(_el$97, "paddingBottom", 1);
|
|
3485
|
-
_$setProp(_el$97, "gap", 1);
|
|
3486
|
-
_$insertNode(_el$98, _el$99);
|
|
3487
|
-
_$insertNode(_el$98, _el$100);
|
|
3488
|
-
_$setProp(_el$98, "flexDirection", "row");
|
|
3489
|
-
_$setProp(_el$98, "justifyContent", "space-between");
|
|
3490
|
-
_$insert(_el$99, (() => {
|
|
3567
|
+
_$insertNode(_el$97, _el$99);
|
|
3568
|
+
_$setProp(_el$97, "flexDirection", "row");
|
|
3569
|
+
_$setProp(_el$97, "justifyContent", "space-between");
|
|
3570
|
+
_$insert(_el$98, (() => {
|
|
3491
3571
|
var _c$9 = _$memo(() => !!previewID());
|
|
3492
3572
|
return () => _c$9() ? truncate(selectableEntries()[cursor()].title, dialogWidth - 18) : "Preview";
|
|
3493
3573
|
})());
|
|
3494
|
-
_$insertNode(_el$
|
|
3495
|
-
_$insert(_el$
|
|
3574
|
+
_$insertNode(_el$99, _$createTextNode(`esc close`));
|
|
3575
|
+
_$insert(_el$96, _$createComponent(Show, {
|
|
3496
3576
|
get when() {
|
|
3497
3577
|
return previewID();
|
|
3498
3578
|
},
|
|
3499
3579
|
get children() {
|
|
3500
|
-
var _el$
|
|
3501
|
-
_el$
|
|
3502
|
-
_$insertNode(_el$
|
|
3503
|
-
_$insert(_el$
|
|
3504
|
-
_$insert(_el$
|
|
3505
|
-
_$effect(_$p => _$setProp(_el$
|
|
3580
|
+
var _el$101 = _$createElement("text"),
|
|
3581
|
+
_el$102 = _$createTextNode(` · `);
|
|
3582
|
+
_$insertNode(_el$101, _el$102);
|
|
3583
|
+
_$insert(_el$101, () => prettyDir(selectableEntries()[cursor()].dir, process.env.HOME ?? ""), _el$102);
|
|
3584
|
+
_$insert(_el$101, () => ago(selectableEntries()[cursor()].updated), null);
|
|
3585
|
+
_$effect(_$p => _$setProp(_el$101, "style", {
|
|
3506
3586
|
fg: api.theme.current.textMuted
|
|
3507
3587
|
}, _$p));
|
|
3508
|
-
return _el$
|
|
3588
|
+
return _el$101;
|
|
3509
3589
|
}
|
|
3510
|
-
}), _el$
|
|
3511
|
-
_$setProp(_el$
|
|
3512
|
-
_$setProp(_el$
|
|
3590
|
+
}), _el$103);
|
|
3591
|
+
_$setProp(_el$103, "flexGrow", 1);
|
|
3592
|
+
_$setProp(_el$103, "scrollbarOptions", {
|
|
3513
3593
|
visible: false
|
|
3514
3594
|
});
|
|
3515
|
-
_$insert(_el$
|
|
3595
|
+
_$insert(_el$103, _$createComponent(Show, {
|
|
3516
3596
|
get when() {
|
|
3517
3597
|
return previewID();
|
|
3518
3598
|
},
|
|
3519
3599
|
get fallback() {
|
|
3520
3600
|
return (() => {
|
|
3521
|
-
var _el$
|
|
3522
|
-
_$insertNode(_el$
|
|
3523
|
-
_$effect(_$p => _$setProp(_el$
|
|
3601
|
+
var _el$120 = _$createElement("text");
|
|
3602
|
+
_$insertNode(_el$120, _$createTextNode(`Select a session to preview`));
|
|
3603
|
+
_$effect(_$p => _$setProp(_el$120, "style", {
|
|
3524
3604
|
fg: api.theme.current.textMuted
|
|
3525
3605
|
}, _$p));
|
|
3526
|
-
return _el$
|
|
3606
|
+
return _el$120;
|
|
3527
3607
|
})();
|
|
3528
3608
|
},
|
|
3529
3609
|
get children() {
|
|
@@ -3533,55 +3613,55 @@ const tui = async api => {
|
|
|
3533
3613
|
},
|
|
3534
3614
|
get fallback() {
|
|
3535
3615
|
return (() => {
|
|
3536
|
-
var _el$
|
|
3537
|
-
_$insertNode(_el$
|
|
3538
|
-
_$effect(_$p => _$setProp(_el$
|
|
3616
|
+
var _el$122 = _$createElement("text");
|
|
3617
|
+
_$insertNode(_el$122, _$createTextNode(`Loading…`));
|
|
3618
|
+
_$effect(_$p => _$setProp(_el$122, "style", {
|
|
3539
3619
|
fg: api.theme.current.textMuted
|
|
3540
3620
|
}, _$p));
|
|
3541
|
-
return _el$
|
|
3621
|
+
return _el$122;
|
|
3542
3622
|
})();
|
|
3543
3623
|
},
|
|
3544
3624
|
children: text => getMarkdownStyle(api.theme.current, api.renderer?.nativeSession) ? (() => {
|
|
3545
|
-
var _el$
|
|
3625
|
+
var _el$124 = _$createElement("markdown");
|
|
3546
3626
|
_$effect(_p$ => {
|
|
3547
|
-
var _v$
|
|
3548
|
-
_v$
|
|
3549
|
-
_v$
|
|
3550
|
-
_v$
|
|
3551
|
-
_v$
|
|
3552
|
-
_v$
|
|
3627
|
+
var _v$67 = text(),
|
|
3628
|
+
_v$68 = getMarkdownStyle(api.theme.current, api.renderer?.nativeSession),
|
|
3629
|
+
_v$69 = getTreeSitterClient();
|
|
3630
|
+
_v$67 !== _p$.e && (_p$.e = _$setProp(_el$124, "content", _v$67, _p$.e));
|
|
3631
|
+
_v$68 !== _p$.t && (_p$.t = _$setProp(_el$124, "syntaxStyle", _v$68, _p$.t));
|
|
3632
|
+
_v$69 !== _p$.a && (_p$.a = _$setProp(_el$124, "treeSitterClient", _v$69, _p$.a));
|
|
3553
3633
|
return _p$;
|
|
3554
3634
|
}, {
|
|
3555
3635
|
e: undefined,
|
|
3556
3636
|
t: undefined,
|
|
3557
3637
|
a: undefined
|
|
3558
3638
|
});
|
|
3559
|
-
return _el$
|
|
3639
|
+
return _el$124;
|
|
3560
3640
|
})() : (() => {
|
|
3561
|
-
var _el$
|
|
3562
|
-
_$setProp(_el$
|
|
3563
|
-
_$insert(_el$
|
|
3564
|
-
return _el$
|
|
3641
|
+
var _el$125 = _$createElement("text");
|
|
3642
|
+
_$setProp(_el$125, "wrapMode", "word");
|
|
3643
|
+
_$insert(_el$125, text);
|
|
3644
|
+
return _el$125;
|
|
3565
3645
|
})()
|
|
3566
3646
|
});
|
|
3567
3647
|
}
|
|
3568
3648
|
}));
|
|
3569
|
-
_$insertNode(_el$
|
|
3649
|
+
_$insertNode(_el$104, _$createTextNode(`↑↓ switch session · esc back to picker`));
|
|
3570
3650
|
_$effect(_p$ => {
|
|
3571
|
-
var _v$
|
|
3572
|
-
_v$
|
|
3573
|
-
_v$
|
|
3574
|
-
_v$
|
|
3651
|
+
var _v$40 = dialogHeight(),
|
|
3652
|
+
_v$41 = api.theme.current.backgroundPanel,
|
|
3653
|
+
_v$42 = TextAttributes.BOLD,
|
|
3654
|
+
_v$43 = {
|
|
3575
3655
|
fg: api.theme.current.textMuted
|
|
3576
3656
|
},
|
|
3577
|
-
_v$
|
|
3657
|
+
_v$44 = {
|
|
3578
3658
|
fg: api.theme.current.textMuted
|
|
3579
3659
|
};
|
|
3580
|
-
_v$
|
|
3581
|
-
_v$
|
|
3582
|
-
_v$
|
|
3583
|
-
_v$
|
|
3584
|
-
_v$
|
|
3660
|
+
_v$40 !== _p$.e && (_p$.e = _$setProp(_el$96, "height", _v$40, _p$.e));
|
|
3661
|
+
_v$41 !== _p$.t && (_p$.t = _$setProp(_el$96, "backgroundColor", _v$41, _p$.t));
|
|
3662
|
+
_v$42 !== _p$.a && (_p$.a = _$setProp(_el$98, "attributes", _v$42, _p$.a));
|
|
3663
|
+
_v$43 !== _p$.o && (_p$.o = _$setProp(_el$99, "style", _v$43, _p$.o));
|
|
3664
|
+
_v$44 !== _p$.i && (_p$.i = _$setProp(_el$104, "style", _v$44, _p$.i));
|
|
3585
3665
|
return _p$;
|
|
3586
3666
|
}, {
|
|
3587
3667
|
e: undefined,
|
|
@@ -3590,52 +3670,52 @@ const tui = async api => {
|
|
|
3590
3670
|
o: undefined,
|
|
3591
3671
|
i: undefined
|
|
3592
3672
|
});
|
|
3593
|
-
return _el$
|
|
3673
|
+
return _el$96;
|
|
3594
3674
|
}
|
|
3595
3675
|
}), null);
|
|
3596
3676
|
_$effect(_p$ => {
|
|
3597
|
-
var _v$
|
|
3598
|
-
_v$
|
|
3599
|
-
_v$
|
|
3600
|
-
_v$
|
|
3601
|
-
_v$
|
|
3677
|
+
var _v$45 = dialogHeight(),
|
|
3678
|
+
_v$46 = dialogOffset(),
|
|
3679
|
+
_v$47 = api.theme.current.backgroundPanel,
|
|
3680
|
+
_v$48 = TextAttributes.BOLD,
|
|
3681
|
+
_v$49 = {
|
|
3602
3682
|
fg: api.theme.current.textMuted
|
|
3603
3683
|
},
|
|
3604
|
-
_v$
|
|
3684
|
+
_v$50 = {
|
|
3605
3685
|
fg: api.theme.current.textMuted
|
|
3606
3686
|
},
|
|
3607
|
-
_v$
|
|
3608
|
-
_v$
|
|
3609
|
-
_v$
|
|
3610
|
-
_v$
|
|
3611
|
-
_v$
|
|
3612
|
-
_v$
|
|
3687
|
+
_v$51 = query(),
|
|
3688
|
+
_v$52 = api.theme.current.textMuted,
|
|
3689
|
+
_v$53 = api.theme.current.backgroundPanel,
|
|
3690
|
+
_v$54 = api.theme.current.text,
|
|
3691
|
+
_v$55 = api.theme.current.primary,
|
|
3692
|
+
_v$56 = {
|
|
3613
3693
|
fg: scope() ? api.theme.current.accent : api.theme.current.textMuted
|
|
3614
3694
|
},
|
|
3615
|
-
_v$
|
|
3695
|
+
_v$57 = {
|
|
3616
3696
|
fg: waitingOnly() ? api.theme.current.warning : api.theme.current.textMuted
|
|
3617
3697
|
},
|
|
3618
|
-
_v$
|
|
3698
|
+
_v$58 = {
|
|
3619
3699
|
fg: pinnedOnly() ? api.theme.current.accent : api.theme.current.textMuted
|
|
3620
3700
|
},
|
|
3621
|
-
_v$
|
|
3701
|
+
_v$59 = {
|
|
3622
3702
|
fg: pendingDelete() ? api.theme.current.warning : api.theme.current.textMuted
|
|
3623
3703
|
};
|
|
3624
|
-
_v$
|
|
3625
|
-
_v$
|
|
3626
|
-
_v$
|
|
3627
|
-
_v$
|
|
3628
|
-
_v$
|
|
3629
|
-
_v$
|
|
3630
|
-
_v$
|
|
3631
|
-
_v$
|
|
3632
|
-
_v$
|
|
3633
|
-
_v$
|
|
3634
|
-
_v$
|
|
3635
|
-
_v$
|
|
3636
|
-
_v$
|
|
3637
|
-
_v$
|
|
3638
|
-
_v$
|
|
3704
|
+
_v$45 !== _p$.e && (_p$.e = _$setProp(_el$71, "height", _v$45, _p$.e));
|
|
3705
|
+
_v$46 !== _p$.t && (_p$.t = _$setProp(_el$71, "marginTop", _v$46, _p$.t));
|
|
3706
|
+
_v$47 !== _p$.a && (_p$.a = _$setProp(_el$71, "backgroundColor", _v$47, _p$.a));
|
|
3707
|
+
_v$48 !== _p$.o && (_p$.o = _$setProp(_el$74, "attributes", _v$48, _p$.o));
|
|
3708
|
+
_v$49 !== _p$.i && (_p$.i = _$setProp(_el$76, "style", _v$49, _p$.i));
|
|
3709
|
+
_v$50 !== _p$.n && (_p$.n = _$setProp(_el$79, "style", _v$50, _p$.n));
|
|
3710
|
+
_v$51 !== _p$.s && (_p$.s = _$setProp(_el$82, "value", _v$51, _p$.s));
|
|
3711
|
+
_v$52 !== _p$.h && (_p$.h = _$setProp(_el$82, "placeholderColor", _v$52, _p$.h));
|
|
3712
|
+
_v$53 !== _p$.r && (_p$.r = _$setProp(_el$82, "focusedBackgroundColor", _v$53, _p$.r));
|
|
3713
|
+
_v$54 !== _p$.d && (_p$.d = _$setProp(_el$82, "focusedTextColor", _v$54, _p$.d));
|
|
3714
|
+
_v$55 !== _p$.l && (_p$.l = _$setProp(_el$82, "cursorColor", _v$55, _p$.l));
|
|
3715
|
+
_v$56 !== _p$.u && (_p$.u = _$setProp(_el$86, "style", _v$56, _p$.u));
|
|
3716
|
+
_v$57 !== _p$.c && (_p$.c = _$setProp(_el$87, "style", _v$57, _p$.c));
|
|
3717
|
+
_v$58 !== _p$.w && (_p$.w = _$setProp(_el$88, "style", _v$58, _p$.w));
|
|
3718
|
+
_v$59 !== _p$.m && (_p$.m = _$setProp(_el$93, "style", _v$59, _p$.m));
|
|
3639
3719
|
return _p$;
|
|
3640
3720
|
}, {
|
|
3641
3721
|
e: undefined,
|
|
@@ -3654,7 +3734,7 @@ const tui = async api => {
|
|
|
3654
3734
|
w: undefined,
|
|
3655
3735
|
m: undefined
|
|
3656
3736
|
});
|
|
3657
|
-
return _el$
|
|
3737
|
+
return _el$71;
|
|
3658
3738
|
})(), () => {
|
|
3659
3739
|
cleanup();
|
|
3660
3740
|
});
|
|
@@ -3700,105 +3780,105 @@ const tui = async api => {
|
|
|
3700
3780
|
}]
|
|
3701
3781
|
});
|
|
3702
3782
|
api.ui.dialog.replace(() => (() => {
|
|
3703
|
-
var _el$
|
|
3704
|
-
_el$
|
|
3705
|
-
_el$
|
|
3706
|
-
_el$
|
|
3707
|
-
_el$
|
|
3708
|
-
_el$
|
|
3783
|
+
var _el$126 = _$createElement("box"),
|
|
3784
|
+
_el$127 = _$createElement("text"),
|
|
3785
|
+
_el$128 = _$createTextNode(`Cost digest `),
|
|
3786
|
+
_el$130 = _$createElement("span"),
|
|
3787
|
+
_el$132 = _$createElement("box"),
|
|
3788
|
+
_el$133 = _$createElement("text");
|
|
3789
|
+
_$insertNode(_el$126, _el$127);
|
|
3790
|
+
_$insertNode(_el$126, _el$132);
|
|
3791
|
+
_$setProp(_el$126, "flexDirection", "column");
|
|
3792
|
+
_$setProp(_el$126, "paddingLeft", 4);
|
|
3793
|
+
_$setProp(_el$126, "paddingRight", 4);
|
|
3794
|
+
_$setProp(_el$126, "paddingTop", 1);
|
|
3795
|
+
_$setProp(_el$126, "gap", 1);
|
|
3709
3796
|
_$insertNode(_el$127, _el$128);
|
|
3710
|
-
_$insertNode(_el$127, _el$
|
|
3711
|
-
_$
|
|
3712
|
-
_$
|
|
3713
|
-
_$setProp(_el$127, "paddingRight", 4);
|
|
3714
|
-
_$setProp(_el$127, "paddingTop", 1);
|
|
3715
|
-
_$setProp(_el$127, "gap", 1);
|
|
3716
|
-
_$insertNode(_el$128, _el$129);
|
|
3717
|
-
_$insertNode(_el$128, _el$131);
|
|
3718
|
-
_$insertNode(_el$131, _$createTextNode(`(24h · lifetime)`));
|
|
3719
|
-
_$insert(_el$127, _$createComponent(Show, {
|
|
3797
|
+
_$insertNode(_el$127, _el$130);
|
|
3798
|
+
_$insertNode(_el$130, _$createTextNode(`(24h · lifetime)`));
|
|
3799
|
+
_$insert(_el$126, _$createComponent(Show, {
|
|
3720
3800
|
get when() {
|
|
3721
3801
|
return !failed && rows.length > 0;
|
|
3722
3802
|
},
|
|
3723
3803
|
get fallback() {
|
|
3724
3804
|
return (() => {
|
|
3725
|
-
var _el$
|
|
3726
|
-
_$insert(_el$
|
|
3727
|
-
_$effect(_$p => _$setProp(_el$
|
|
3805
|
+
var _el$135 = _$createElement("text");
|
|
3806
|
+
_$insert(_el$135, failed ? "Cost data unavailable." : "No assistant cost recorded.");
|
|
3807
|
+
_$effect(_$p => _$setProp(_el$135, "style", {
|
|
3728
3808
|
fg: api.theme.current.textMuted
|
|
3729
3809
|
}, _$p));
|
|
3730
|
-
return _el$
|
|
3810
|
+
return _el$135;
|
|
3731
3811
|
})();
|
|
3732
3812
|
},
|
|
3733
3813
|
get children() {
|
|
3734
3814
|
return _$createComponent(For, {
|
|
3735
3815
|
each: rows,
|
|
3736
3816
|
children: row => (() => {
|
|
3737
|
-
var _el$
|
|
3817
|
+
var _el$136 = _$createElement("box"),
|
|
3818
|
+
_el$137 = _$createElement("text"),
|
|
3738
3819
|
_el$138 = _$createElement("text"),
|
|
3739
3820
|
_el$139 = _$createElement("text"),
|
|
3740
|
-
_el$140 = _$
|
|
3741
|
-
_el$141 = _$createTextNode(`
|
|
3742
|
-
_el$142 = _$
|
|
3743
|
-
|
|
3744
|
-
_$insertNode(_el$
|
|
3745
|
-
_$insertNode(_el$
|
|
3746
|
-
_$insertNode(_el$
|
|
3747
|
-
_$
|
|
3748
|
-
_$setProp(_el$
|
|
3749
|
-
_$setProp(_el$137, "
|
|
3821
|
+
_el$140 = _$createTextNode(`(`),
|
|
3822
|
+
_el$141 = _$createTextNode(`)`),
|
|
3823
|
+
_el$142 = _$createElement("text");
|
|
3824
|
+
_$insertNode(_el$136, _el$137);
|
|
3825
|
+
_$insertNode(_el$136, _el$138);
|
|
3826
|
+
_$insertNode(_el$136, _el$139);
|
|
3827
|
+
_$insertNode(_el$136, _el$142);
|
|
3828
|
+
_$setProp(_el$136, "flexDirection", "row");
|
|
3829
|
+
_$setProp(_el$136, "gap", 2);
|
|
3830
|
+
_$setProp(_el$137, "flexShrink", 0);
|
|
3831
|
+
_$insert(_el$137, () => money(row.window));
|
|
3750
3832
|
_$setProp(_el$138, "flexShrink", 0);
|
|
3751
|
-
_$insert(_el$138, () => money(row.
|
|
3833
|
+
_$insert(_el$138, () => money(row.lifetime));
|
|
3834
|
+
_$insertNode(_el$139, _el$140);
|
|
3835
|
+
_$insertNode(_el$139, _el$141);
|
|
3752
3836
|
_$setProp(_el$139, "flexShrink", 0);
|
|
3753
|
-
_$insert(_el$139, () =>
|
|
3754
|
-
_$
|
|
3755
|
-
_$
|
|
3756
|
-
_$setProp(_el$
|
|
3757
|
-
_$insert(_el$
|
|
3758
|
-
_$setProp(_el$143, "flexGrow", 1);
|
|
3759
|
-
_$setProp(_el$143, "flexShrink", 1);
|
|
3760
|
-
_$setProp(_el$143, "wrapMode", "none");
|
|
3761
|
-
_$insert(_el$143, () => prettyDir(row.directory, home));
|
|
3837
|
+
_$insert(_el$139, () => row.sessions, _el$141);
|
|
3838
|
+
_$setProp(_el$142, "flexGrow", 1);
|
|
3839
|
+
_$setProp(_el$142, "flexShrink", 1);
|
|
3840
|
+
_$setProp(_el$142, "wrapMode", "none");
|
|
3841
|
+
_$insert(_el$142, () => prettyDir(row.directory, home));
|
|
3762
3842
|
_$effect(_p$ => {
|
|
3763
|
-
var _v$
|
|
3843
|
+
var _v$74 = {
|
|
3764
3844
|
fg: api.theme.current.success
|
|
3765
3845
|
},
|
|
3766
|
-
_v$
|
|
3846
|
+
_v$75 = {
|
|
3767
3847
|
fg: api.theme.current.textMuted
|
|
3768
3848
|
},
|
|
3769
|
-
_v$
|
|
3849
|
+
_v$76 = {
|
|
3770
3850
|
fg: api.theme.current.textMuted
|
|
3771
3851
|
};
|
|
3772
|
-
_v$
|
|
3773
|
-
_v$
|
|
3774
|
-
_v$
|
|
3852
|
+
_v$74 !== _p$.e && (_p$.e = _$setProp(_el$137, "style", _v$74, _p$.e));
|
|
3853
|
+
_v$75 !== _p$.t && (_p$.t = _$setProp(_el$138, "style", _v$75, _p$.t));
|
|
3854
|
+
_v$76 !== _p$.a && (_p$.a = _$setProp(_el$139, "style", _v$76, _p$.a));
|
|
3775
3855
|
return _p$;
|
|
3776
3856
|
}, {
|
|
3777
3857
|
e: undefined,
|
|
3778
3858
|
t: undefined,
|
|
3779
3859
|
a: undefined
|
|
3780
3860
|
});
|
|
3781
|
-
return _el$
|
|
3861
|
+
return _el$136;
|
|
3782
3862
|
})()
|
|
3783
3863
|
});
|
|
3784
3864
|
}
|
|
3785
|
-
}), _el$
|
|
3786
|
-
_$insertNode(_el$
|
|
3787
|
-
_$setProp(_el$
|
|
3788
|
-
_$insertNode(_el$
|
|
3865
|
+
}), _el$132);
|
|
3866
|
+
_$insertNode(_el$132, _el$133);
|
|
3867
|
+
_$setProp(_el$132, "flexShrink", 0);
|
|
3868
|
+
_$insertNode(_el$133, _$createTextNode(`esc close`));
|
|
3789
3869
|
_$effect(_p$ => {
|
|
3790
|
-
var _v$
|
|
3791
|
-
_v$
|
|
3792
|
-
_v$
|
|
3870
|
+
var _v$70 = api.theme.current.backgroundPanel,
|
|
3871
|
+
_v$71 = TextAttributes.BOLD,
|
|
3872
|
+
_v$72 = {
|
|
3793
3873
|
fg: api.theme.current.textMuted
|
|
3794
3874
|
},
|
|
3795
|
-
_v$
|
|
3875
|
+
_v$73 = {
|
|
3796
3876
|
fg: api.theme.current.textMuted
|
|
3797
3877
|
};
|
|
3798
|
-
_v$
|
|
3799
|
-
_v$
|
|
3800
|
-
_v$
|
|
3801
|
-
_v$
|
|
3878
|
+
_v$70 !== _p$.e && (_p$.e = _$setProp(_el$126, "backgroundColor", _v$70, _p$.e));
|
|
3879
|
+
_v$71 !== _p$.t && (_p$.t = _$setProp(_el$127, "attributes", _v$71, _p$.t));
|
|
3880
|
+
_v$72 !== _p$.a && (_p$.a = _$setProp(_el$130, "style", _v$72, _p$.a));
|
|
3881
|
+
_v$73 !== _p$.o && (_p$.o = _$setProp(_el$133, "style", _v$73, _p$.o));
|
|
3802
3882
|
return _p$;
|
|
3803
3883
|
}, {
|
|
3804
3884
|
e: undefined,
|
|
@@ -3806,7 +3886,7 @@ const tui = async api => {
|
|
|
3806
3886
|
a: undefined,
|
|
3807
3887
|
o: undefined
|
|
3808
3888
|
});
|
|
3809
|
-
return _el$
|
|
3889
|
+
return _el$126;
|
|
3810
3890
|
})(), () => {
|
|
3811
3891
|
disposeKeys();
|
|
3812
3892
|
});
|
|
@@ -3915,79 +3995,79 @@ const tui = async api => {
|
|
|
3915
3995
|
});
|
|
3916
3996
|
const home = process.env.HOME ?? "";
|
|
3917
3997
|
api.ui.dialog.replace(() => (() => {
|
|
3918
|
-
var _el$
|
|
3919
|
-
_el$
|
|
3920
|
-
_el$
|
|
3921
|
-
_el$
|
|
3922
|
-
_el$
|
|
3923
|
-
_el$
|
|
3924
|
-
_el$
|
|
3925
|
-
_el$
|
|
3926
|
-
_el$
|
|
3998
|
+
var _el$143 = _$createElement("box"),
|
|
3999
|
+
_el$144 = _$createElement("text"),
|
|
4000
|
+
_el$145 = _$createTextNode(`Needs input `),
|
|
4001
|
+
_el$147 = _$createElement("span"),
|
|
4002
|
+
_el$148 = _$createTextNode(`(`),
|
|
4003
|
+
_el$149 = _$createTextNode(` · longest waiting first)`),
|
|
4004
|
+
_el$150 = _$createElement("scrollbox"),
|
|
4005
|
+
_el$151 = _$createElement("box"),
|
|
4006
|
+
_el$152 = _$createElement("text");
|
|
4007
|
+
_$insertNode(_el$143, _el$144);
|
|
4008
|
+
_$insertNode(_el$143, _el$150);
|
|
4009
|
+
_$insertNode(_el$143, _el$151);
|
|
4010
|
+
_$setProp(_el$143, "flexDirection", "column");
|
|
4011
|
+
_$setProp(_el$143, "paddingLeft", 4);
|
|
4012
|
+
_$setProp(_el$143, "paddingRight", 4);
|
|
4013
|
+
_$setProp(_el$143, "paddingTop", 1);
|
|
4014
|
+
_$setProp(_el$143, "gap", 1);
|
|
3927
4015
|
_$insertNode(_el$144, _el$145);
|
|
3928
|
-
_$insertNode(_el$144, _el$
|
|
3929
|
-
_$insertNode(_el$
|
|
3930
|
-
_$
|
|
3931
|
-
_$
|
|
3932
|
-
_$setProp(_el$
|
|
3933
|
-
_$setProp(_el$
|
|
3934
|
-
_$setProp(_el$144, "gap", 1);
|
|
3935
|
-
_$insertNode(_el$145, _el$146);
|
|
3936
|
-
_$insertNode(_el$145, _el$148);
|
|
3937
|
-
_$insertNode(_el$148, _el$149);
|
|
3938
|
-
_$insertNode(_el$148, _el$150);
|
|
3939
|
-
_$insert(_el$148, () => items.length, _el$150);
|
|
3940
|
-
_$setProp(_el$151, "flexGrow", 1);
|
|
3941
|
-
_$setProp(_el$151, "scrollbarOptions", {
|
|
4016
|
+
_$insertNode(_el$144, _el$147);
|
|
4017
|
+
_$insertNode(_el$147, _el$148);
|
|
4018
|
+
_$insertNode(_el$147, _el$149);
|
|
4019
|
+
_$insert(_el$147, () => items.length, _el$149);
|
|
4020
|
+
_$setProp(_el$150, "flexGrow", 1);
|
|
4021
|
+
_$setProp(_el$150, "scrollbarOptions", {
|
|
3942
4022
|
visible: false
|
|
3943
4023
|
});
|
|
3944
|
-
_$insert(_el$
|
|
4024
|
+
_$insert(_el$150, _$createComponent(For, {
|
|
3945
4025
|
each: items,
|
|
3946
4026
|
children: (item, index) => (() => {
|
|
3947
|
-
var _el$
|
|
4027
|
+
var _el$154 = _$createElement("box"),
|
|
4028
|
+
_el$155 = _$createElement("text"),
|
|
3948
4029
|
_el$156 = _$createElement("text"),
|
|
3949
4030
|
_el$157 = _$createElement("text"),
|
|
3950
|
-
_el$158 = _$
|
|
3951
|
-
|
|
3952
|
-
_$insertNode(_el$
|
|
3953
|
-
_$insertNode(_el$
|
|
3954
|
-
_$
|
|
3955
|
-
_$setProp(_el$
|
|
3956
|
-
_$setProp(_el$
|
|
3957
|
-
_$setProp(_el$
|
|
3958
|
-
_$setProp(_el$
|
|
3959
|
-
_$setProp(_el$155, "onMouseDown", () => {
|
|
4031
|
+
_el$158 = _$createTextNode(` · `);
|
|
4032
|
+
_$insertNode(_el$154, _el$155);
|
|
4033
|
+
_$insertNode(_el$154, _el$156);
|
|
4034
|
+
_$insertNode(_el$154, _el$157);
|
|
4035
|
+
_$setProp(_el$154, "flexDirection", "row");
|
|
4036
|
+
_$setProp(_el$154, "gap", 2);
|
|
4037
|
+
_$setProp(_el$154, "paddingLeft", 1);
|
|
4038
|
+
_$setProp(_el$154, "paddingRight", 1);
|
|
4039
|
+
_$setProp(_el$154, "onMouseDown", () => {
|
|
3960
4040
|
setCursor(index());
|
|
3961
4041
|
choose(item);
|
|
3962
4042
|
});
|
|
3963
|
-
_$setProp(_el$
|
|
3964
|
-
_$setProp(_el$
|
|
3965
|
-
_$setProp(_el$
|
|
3966
|
-
_$insert(_el$
|
|
4043
|
+
_$setProp(_el$155, "flexGrow", 1);
|
|
4044
|
+
_$setProp(_el$155, "flexShrink", 1);
|
|
4045
|
+
_$setProp(_el$155, "wrapMode", "none");
|
|
4046
|
+
_$insert(_el$155, () => truncate(item.entry.title, 48));
|
|
4047
|
+
_$setProp(_el$156, "flexShrink", 0);
|
|
4048
|
+
_$insert(_el$156, () => item.reason);
|
|
4049
|
+
_$insertNode(_el$157, _el$158);
|
|
3967
4050
|
_$setProp(_el$157, "flexShrink", 0);
|
|
3968
|
-
_$insert(_el$157, () => item.
|
|
3969
|
-
_$
|
|
3970
|
-
_$setProp(_el$158, "flexShrink", 0);
|
|
3971
|
-
_$insert(_el$158, () => prettyDir(item.entry.dir, home), _el$159);
|
|
3972
|
-
_$insert(_el$158, (() => {
|
|
4051
|
+
_$insert(_el$157, () => prettyDir(item.entry.dir, home), _el$158);
|
|
4052
|
+
_$insert(_el$157, (() => {
|
|
3973
4053
|
var _c$1 = _$memo(() => item.since === undefined);
|
|
3974
4054
|
return () => _c$1() ? "time unknown" : `waiting ${ago(item.since)}`;
|
|
3975
4055
|
})(), null);
|
|
3976
4056
|
_$effect(_p$ => {
|
|
3977
|
-
var _v$
|
|
3978
|
-
_v$
|
|
4057
|
+
var _v$82 = index() === cursor() ? api.theme.current.backgroundElement : RGBA.fromInts(0, 0, 0, 0),
|
|
4058
|
+
_v$83 = {
|
|
3979
4059
|
fg: index() === cursor() ? api.theme.current.text : api.theme.current.text
|
|
3980
4060
|
},
|
|
3981
|
-
_v$
|
|
4061
|
+
_v$84 = {
|
|
3982
4062
|
fg: index() === cursor() ? api.theme.current.text : api.theme.current.warning
|
|
3983
4063
|
},
|
|
3984
|
-
_v$
|
|
4064
|
+
_v$85 = {
|
|
3985
4065
|
fg: index() === cursor() ? api.theme.current.text : api.theme.current.textMuted
|
|
3986
4066
|
};
|
|
3987
|
-
_v$
|
|
3988
|
-
_v$
|
|
3989
|
-
_v$
|
|
3990
|
-
_v$
|
|
4067
|
+
_v$82 !== _p$.e && (_p$.e = _$setProp(_el$154, "backgroundColor", _v$82, _p$.e));
|
|
4068
|
+
_v$83 !== _p$.t && (_p$.t = _$setProp(_el$155, "style", _v$83, _p$.t));
|
|
4069
|
+
_v$84 !== _p$.a && (_p$.a = _$setProp(_el$156, "style", _v$84, _p$.a));
|
|
4070
|
+
_v$85 !== _p$.o && (_p$.o = _$setProp(_el$157, "style", _v$85, _p$.o));
|
|
3991
4071
|
return _p$;
|
|
3992
4072
|
}, {
|
|
3993
4073
|
e: undefined,
|
|
@@ -3995,27 +4075,27 @@ const tui = async api => {
|
|
|
3995
4075
|
a: undefined,
|
|
3996
4076
|
o: undefined
|
|
3997
4077
|
});
|
|
3998
|
-
return _el$
|
|
4078
|
+
return _el$154;
|
|
3999
4079
|
})()
|
|
4000
4080
|
}));
|
|
4001
|
-
_$insertNode(_el$
|
|
4002
|
-
_$setProp(_el$
|
|
4003
|
-
_$insertNode(_el$
|
|
4081
|
+
_$insertNode(_el$151, _el$152);
|
|
4082
|
+
_$setProp(_el$151, "flexShrink", 0);
|
|
4083
|
+
_$insertNode(_el$152, _$createTextNode(`↑↓ navigate · enter open · n open next waiting · esc close`));
|
|
4004
4084
|
_$effect(_p$ => {
|
|
4005
|
-
var _v$
|
|
4006
|
-
_v$
|
|
4007
|
-
_v$
|
|
4085
|
+
var _v$77 = api.theme.current.backgroundPanel,
|
|
4086
|
+
_v$78 = TextAttributes.BOLD,
|
|
4087
|
+
_v$79 = {
|
|
4008
4088
|
fg: api.theme.current.textMuted
|
|
4009
4089
|
},
|
|
4010
|
-
_v$
|
|
4011
|
-
_v$
|
|
4090
|
+
_v$80 = Math.max(6, Math.floor(api.renderer.height / 2) - 10),
|
|
4091
|
+
_v$81 = {
|
|
4012
4092
|
fg: api.theme.current.textMuted
|
|
4013
4093
|
};
|
|
4014
|
-
_v$
|
|
4015
|
-
_v$
|
|
4016
|
-
_v$
|
|
4017
|
-
_v$
|
|
4018
|
-
_v$
|
|
4094
|
+
_v$77 !== _p$.e && (_p$.e = _$setProp(_el$143, "backgroundColor", _v$77, _p$.e));
|
|
4095
|
+
_v$78 !== _p$.t && (_p$.t = _$setProp(_el$144, "attributes", _v$78, _p$.t));
|
|
4096
|
+
_v$79 !== _p$.a && (_p$.a = _$setProp(_el$147, "style", _v$79, _p$.a));
|
|
4097
|
+
_v$80 !== _p$.o && (_p$.o = _$setProp(_el$150, "height", _v$80, _p$.o));
|
|
4098
|
+
_v$81 !== _p$.i && (_p$.i = _$setProp(_el$152, "style", _v$81, _p$.i));
|
|
4019
4099
|
return _p$;
|
|
4020
4100
|
}, {
|
|
4021
4101
|
e: undefined,
|
|
@@ -4024,7 +4104,7 @@ const tui = async api => {
|
|
|
4024
4104
|
o: undefined,
|
|
4025
4105
|
i: undefined
|
|
4026
4106
|
});
|
|
4027
|
-
return _el$
|
|
4107
|
+
return _el$143;
|
|
4028
4108
|
})(), () => {
|
|
4029
4109
|
disposeNav();
|
|
4030
4110
|
});
|