opencode-sesh 2.2.0 → 2.3.0
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 +9 -5
- package/CHANGELOG.md +7 -0
- package/README.md +1 -1
- package/dist/tui.js +647 -542
- package/package.json +1 -1
- package/tui-plugins/sesh-panel/tui.tsx +95 -39
package/dist/tui.js
CHANGED
|
@@ -299,7 +299,11 @@ function truncate(text, width) {
|
|
|
299
299
|
// so cap it a bit lower to guarantee separation.
|
|
300
300
|
const SIDEBAR_TITLE_WIDTH = 27;
|
|
301
301
|
const SIDEBAR_GROUP_WIDTH = 30;
|
|
302
|
-
const
|
|
302
|
+
const HOME_TITLE_MIN = 20;
|
|
303
|
+
const HOME_DIR_MIN = 8;
|
|
304
|
+
const HOME_HINT_MIN_WIDTH = 32;
|
|
305
|
+
const HOME_DIR_MAX = 22;
|
|
306
|
+
const HOME_AGE_WIDTH = 4;
|
|
303
307
|
|
|
304
308
|
// The sidebar lists every session (newest first, pins ahead) and fills
|
|
305
309
|
// whatever vertical space it gets: overflow scrolls inside the stretched
|
|
@@ -2409,12 +2413,11 @@ const HOME_SESSION_LIMIT = 6;
|
|
|
2409
2413
|
// https://github.com/anomalyco/opencode/blob/45898d0f8569225eb1ddb4ee13f8581b34dff311/packages/tui/src/component/prompt/index.tsx#L1676
|
|
2410
2414
|
// https://github.com/anomalyco/opencode/blob/45898d0f8569225eb1ddb4ee13f8581b34dff311/packages/tui/src/component/logo.tsx
|
|
2411
2415
|
// https://github.com/anomalyco/opencode/blob/45898d0f8569225eb1ddb4ee13f8581b34dff311/packages/tui/src/feature-plugins/home/footer.tsx
|
|
2412
|
-
// The
|
|
2413
|
-
//
|
|
2414
|
-
//
|
|
2415
|
-
//
|
|
2416
|
-
|
|
2417
|
-
const HOME_CHROME_ROWS = 14;
|
|
2416
|
+
// The list floats just under the composer instead of taking layout space, so
|
|
2417
|
+
// it budgets from its measured position: whatever lies between it and the
|
|
2418
|
+
// native status footer (three lines, hidden below 44 columns or 14 rows, plus
|
|
2419
|
+
// one line of slack for other footer plugins).
|
|
2420
|
+
const HOME_FOOTER_ROWS = 3;
|
|
2418
2421
|
function HomeSessions(props) {
|
|
2419
2422
|
const theme = () => props.api.theme.current;
|
|
2420
2423
|
const home = process.env.HOME ?? "";
|
|
@@ -2629,12 +2632,42 @@ function HomeSessions(props) {
|
|
|
2629
2632
|
const list = q ? entries().filter(entry => entry.title.toLowerCase().includes(q) || entry.dir.toLowerCase().includes(q)) : entries();
|
|
2630
2633
|
return pinnedFirst(list, props.pins());
|
|
2631
2634
|
});
|
|
2635
|
+
// Unmeasured (before the first frame) reads as no room.
|
|
2636
|
+
const [top, setTop] = createSignal(dimensions().height);
|
|
2637
|
+
const [listWidth, setListWidth] = createSignal(Math.min(75, dimensions().width));
|
|
2638
|
+
let anchor;
|
|
2639
|
+
// Fixed columns: marker, title (flexes), directory (last segment), age.
|
|
2640
|
+
const columns = () => {
|
|
2641
|
+
const width = Math.max(1, listWidth());
|
|
2642
|
+
const age = HOME_AGE_WIDTH;
|
|
2643
|
+
const wanted = Math.max(0, ...visible().map(entry => rowDir(entry).length));
|
|
2644
|
+
const room = Math.min(HOME_DIR_MAX, wanted, width - 1 - age - 3 - HOME_TITLE_MIN);
|
|
2645
|
+
// A starved title is worse than no directory: drop the column instead.
|
|
2646
|
+
const dir = room >= HOME_DIR_MIN || room >= wanted ? Math.max(0, room) : 0;
|
|
2647
|
+
// The armed-delete prompt may not push the age out of a narrow list.
|
|
2648
|
+
const pending = pendingDelete() ? Math.max(0, Math.min(Math.max(dir, 14), width - 1 - age - 3 - 1)) : dir;
|
|
2649
|
+
return {
|
|
2650
|
+
age,
|
|
2651
|
+
dir: pending,
|
|
2652
|
+
title: Math.max(1, width - 1 - age - pending - (pending > 0 ? 3 : 2))
|
|
2653
|
+
};
|
|
2654
|
+
};
|
|
2655
|
+
const rowDir = entry => `${props.pins().directories.includes(entry.dir) ? "★ " : ""}${home && entry.dir === home ? "~" : shortDir(entry.dir, home)}`;
|
|
2656
|
+
// Running state comes from the host's live session store: no polling here.
|
|
2657
|
+
const isRunning = id => {
|
|
2658
|
+
try {
|
|
2659
|
+
return sidebarMarker(false, props.api.state.session.status(id)) === "running";
|
|
2660
|
+
} catch {
|
|
2661
|
+
return false;
|
|
2662
|
+
}
|
|
2663
|
+
};
|
|
2632
2664
|
const layout = createMemo(() => {
|
|
2633
2665
|
const rows = dimensions().height;
|
|
2634
|
-
const
|
|
2666
|
+
const footer = dimensions().width >= 44 && rows >= 14 ? HOME_FOOTER_ROWS : 0;
|
|
2667
|
+
const budget = Math.max(0, rows - footer - 1 - top());
|
|
2635
2668
|
// Drop decorative padding/spacing before sessions. Keep the full list in
|
|
2636
2669
|
// the picker when even a heading and one session cannot fit.
|
|
2637
|
-
const padding = budget >=
|
|
2670
|
+
const padding = budget >= 4 ? 1 : 0;
|
|
2638
2671
|
const limit = Math.min(HOME_SESSION_LIMIT, Math.max(0, budget - padding - 1));
|
|
2639
2672
|
const count = Math.max(1, Math.min(filtered().length, limit));
|
|
2640
2673
|
return {
|
|
@@ -2655,47 +2688,50 @@ function HomeSessions(props) {
|
|
|
2655
2688
|
var _el$49 = _$createElement("box"),
|
|
2656
2689
|
_el$50 = _$createElement("box");
|
|
2657
2690
|
_$insertNode(_el$49, _el$50);
|
|
2658
|
-
_$
|
|
2659
|
-
|
|
2691
|
+
_$use(box => {
|
|
2692
|
+
anchor = box;
|
|
2693
|
+
}, _el$49);
|
|
2694
|
+
_$setProp(_el$49, "renderAfter", () => {
|
|
2695
|
+
const y = anchor?.y;
|
|
2696
|
+
if (y !== undefined && y !== top()) queueMicrotask(() => setTop(y));
|
|
2697
|
+
const width = anchor?.width;
|
|
2698
|
+
if (width && width !== listWidth()) queueMicrotask(() => setListWidth(width));
|
|
2699
|
+
});
|
|
2700
|
+
_$setProp(_el$49, "position", "absolute");
|
|
2701
|
+
_$setProp(_el$49, "top", 1);
|
|
2702
|
+
_$setProp(_el$49, "left", 0);
|
|
2703
|
+
_$setProp(_el$49, "right", 0);
|
|
2660
2704
|
_$setProp(_el$49, "overflow", "hidden");
|
|
2661
|
-
_$setProp(_el$49, "alignItems", "center");
|
|
2662
2705
|
_$setProp(_el$50, "flexDirection", "column");
|
|
2663
2706
|
_$setProp(_el$50, "width", "100%");
|
|
2664
|
-
_$setProp(_el$50, "maxWidth", 72);
|
|
2665
|
-
_$setProp(_el$50, "paddingLeft", 1);
|
|
2666
|
-
_$setProp(_el$50, "paddingRight", 1);
|
|
2667
2707
|
_$insert(_el$50, _$createComponent(Show, {
|
|
2668
2708
|
get when() {
|
|
2669
2709
|
return entries().length > 0;
|
|
2670
2710
|
},
|
|
2671
2711
|
get fallback() {
|
|
2672
2712
|
return (() => {
|
|
2673
|
-
var _el$
|
|
2674
|
-
_el$
|
|
2675
|
-
_el$
|
|
2676
|
-
_$insertNode(_el$
|
|
2677
|
-
_$setProp(_el$
|
|
2678
|
-
_$setProp(_el$
|
|
2679
|
-
_$insertNode(_el$
|
|
2680
|
-
_$setProp(_el$
|
|
2681
|
-
_$setProp(_el$
|
|
2682
|
-
_$insert(_el$
|
|
2683
|
-
_$effect(_$p => _$setProp(_el$
|
|
2713
|
+
var _el$62 = _$createElement("box"),
|
|
2714
|
+
_el$63 = _$createElement("text"),
|
|
2715
|
+
_el$64 = _$createTextNode(`Recent sessions `);
|
|
2716
|
+
_$insertNode(_el$62, _el$63);
|
|
2717
|
+
_$setProp(_el$62, "height", 1);
|
|
2718
|
+
_$setProp(_el$62, "flexShrink", 0);
|
|
2719
|
+
_$insertNode(_el$63, _el$64);
|
|
2720
|
+
_$setProp(_el$63, "wrapMode", "none");
|
|
2721
|
+
_$setProp(_el$63, "overflow", "hidden");
|
|
2722
|
+
_$insert(_el$63, () => loadFailed() ? "· list unavailable, will retry" : "· none yet, option+o to browse", null);
|
|
2723
|
+
_$effect(_$p => _$setProp(_el$63, "style", {
|
|
2684
2724
|
fg: theme().textMuted
|
|
2685
2725
|
}, _$p));
|
|
2686
|
-
return _el$
|
|
2726
|
+
return _el$62;
|
|
2687
2727
|
})();
|
|
2688
2728
|
},
|
|
2689
2729
|
get children() {
|
|
2690
2730
|
return [(() => {
|
|
2691
2731
|
var _el$51 = _$createElement("box"),
|
|
2692
2732
|
_el$52 = _$createElement("box"),
|
|
2693
|
-
_el$53 = _$createElement("text")
|
|
2694
|
-
_el$57 = _$createElement("box"),
|
|
2695
|
-
_el$58 = _$createElement("box"),
|
|
2696
|
-
_el$59 = _$createElement("text");
|
|
2733
|
+
_el$53 = _$createElement("text");
|
|
2697
2734
|
_$insertNode(_el$51, _el$52);
|
|
2698
|
-
_$insertNode(_el$51, _el$57);
|
|
2699
2735
|
_$setProp(_el$51, "height", 1);
|
|
2700
2736
|
_$setProp(_el$51, "flexShrink", 0);
|
|
2701
2737
|
_$setProp(_el$51, "flexDirection", "row");
|
|
@@ -2708,71 +2744,80 @@ function HomeSessions(props) {
|
|
|
2708
2744
|
_$setProp(_el$52, "flexShrink", 0);
|
|
2709
2745
|
_$insertNode(_el$53, _$createTextNode(`Recent sessions`));
|
|
2710
2746
|
_$setProp(_el$53, "wrapMode", "none");
|
|
2711
|
-
_$insert(_el$
|
|
2747
|
+
_$insert(_el$51, _$createComponent(Show, {
|
|
2712
2748
|
get when() {
|
|
2713
|
-
return
|
|
2749
|
+
return listWidth() >= HOME_HINT_MIN_WIDTH || query() || searching();
|
|
2714
2750
|
},
|
|
2715
2751
|
get children() {
|
|
2716
|
-
var _el$55 = _$createElement("
|
|
2717
|
-
|
|
2718
|
-
|
|
2719
|
-
|
|
2720
|
-
|
|
2752
|
+
var _el$55 = _$createElement("box"),
|
|
2753
|
+
_el$56 = _$createElement("box"),
|
|
2754
|
+
_el$57 = _$createElement("text");
|
|
2755
|
+
_$insertNode(_el$55, _el$56);
|
|
2756
|
+
_$setProp(_el$55, "flexDirection", "row");
|
|
2757
|
+
_$setProp(_el$55, "flexShrink", 1);
|
|
2758
|
+
_$setProp(_el$55, "minWidth", 0);
|
|
2759
|
+
_$setProp(_el$55, "gap", 1);
|
|
2760
|
+
_$setProp(_el$55, "paddingLeft", 1);
|
|
2761
|
+
_$setProp(_el$55, "onMouseDown", event => {
|
|
2762
|
+
event.stopPropagation();
|
|
2763
|
+
setSearching(true);
|
|
2764
|
+
});
|
|
2765
|
+
_$insertNode(_el$56, _el$57);
|
|
2766
|
+
_$setProp(_el$56, "flexShrink", 1);
|
|
2767
|
+
_$setProp(_el$56, "minWidth", 0);
|
|
2768
|
+
_$setProp(_el$57, "flexGrow", 1);
|
|
2769
|
+
_$setProp(_el$57, "flexShrink", 1);
|
|
2770
|
+
_$setProp(_el$57, "overflow", "hidden");
|
|
2771
|
+
_$setProp(_el$57, "wrapMode", "none");
|
|
2772
|
+
_$insert(_el$57, () => query() || (searching() ? "" : "option+o all"), null);
|
|
2773
|
+
_$insert(_el$57, () => searching() ? "▏" : "", null);
|
|
2774
|
+
_$insert(_el$55, _$createComponent(Show, {
|
|
2775
|
+
get when() {
|
|
2776
|
+
return query();
|
|
2777
|
+
},
|
|
2778
|
+
get children() {
|
|
2779
|
+
var _el$58 = _$createElement("text");
|
|
2780
|
+
_$insertNode(_el$58, _$createTextNode(`✕`));
|
|
2781
|
+
_$setProp(_el$58, "flexShrink", 0);
|
|
2782
|
+
_$setProp(_el$58, "onMouseDown", () => setQuery(""));
|
|
2783
|
+
_$effect(_$p => _$setProp(_el$58, "style", {
|
|
2784
|
+
fg: theme().textMuted
|
|
2785
|
+
}, _$p));
|
|
2786
|
+
return _el$58;
|
|
2787
|
+
}
|
|
2788
|
+
}), null);
|
|
2789
|
+
_$effect(_p$ => {
|
|
2790
|
+
var _v$29 = searching() ? theme().backgroundElement : RGBA.fromInts(0, 0, 0, 0),
|
|
2791
|
+
_v$30 = query() || searching() ? 24 : 12,
|
|
2792
|
+
_v$31 = query() ? undefined : TextAttributes.DIM,
|
|
2793
|
+
_v$32 = {
|
|
2794
|
+
fg: query() ? theme().text : theme().textMuted
|
|
2795
|
+
};
|
|
2796
|
+
_v$29 !== _p$.e && (_p$.e = _$setProp(_el$55, "backgroundColor", _v$29, _p$.e));
|
|
2797
|
+
_v$30 !== _p$.t && (_p$.t = _$setProp(_el$56, "width", _v$30, _p$.t));
|
|
2798
|
+
_v$31 !== _p$.a && (_p$.a = _$setProp(_el$57, "attributes", _v$31, _p$.a));
|
|
2799
|
+
_v$32 !== _p$.o && (_p$.o = _$setProp(_el$57, "style", _v$32, _p$.o));
|
|
2800
|
+
return _p$;
|
|
2801
|
+
}, {
|
|
2802
|
+
e: undefined,
|
|
2803
|
+
t: undefined,
|
|
2804
|
+
a: undefined,
|
|
2805
|
+
o: undefined
|
|
2806
|
+
});
|
|
2721
2807
|
return _el$55;
|
|
2722
2808
|
}
|
|
2723
2809
|
}), null);
|
|
2724
|
-
_$insertNode(_el$57, _el$58);
|
|
2725
|
-
_$setProp(_el$57, "flexDirection", "row");
|
|
2726
|
-
_$setProp(_el$57, "flexShrink", 1);
|
|
2727
|
-
_$setProp(_el$57, "minWidth", 0);
|
|
2728
|
-
_$setProp(_el$57, "gap", 1);
|
|
2729
|
-
_$setProp(_el$57, "paddingLeft", 1);
|
|
2730
|
-
_$setProp(_el$57, "paddingRight", 1);
|
|
2731
|
-
_$setProp(_el$57, "onMouseDown", event => {
|
|
2732
|
-
event.stopPropagation();
|
|
2733
|
-
setSearching(true);
|
|
2734
|
-
});
|
|
2735
|
-
_$insertNode(_el$58, _el$59);
|
|
2736
|
-
_$setProp(_el$58, "width", 24);
|
|
2737
|
-
_$setProp(_el$58, "flexShrink", 1);
|
|
2738
|
-
_$setProp(_el$58, "minWidth", 0);
|
|
2739
|
-
_$setProp(_el$59, "flexGrow", 1);
|
|
2740
|
-
_$setProp(_el$59, "flexShrink", 1);
|
|
2741
|
-
_$setProp(_el$59, "overflow", "hidden");
|
|
2742
|
-
_$setProp(_el$59, "wrapMode", "none");
|
|
2743
|
-
_$insert(_el$59, () => query() || (searching() ? "" : "search…"), null);
|
|
2744
|
-
_$insert(_el$59, () => searching() ? "▏" : "", null);
|
|
2745
|
-
_$insert(_el$57, _$createComponent(Show, {
|
|
2746
|
-
get when() {
|
|
2747
|
-
return query();
|
|
2748
|
-
},
|
|
2749
|
-
get children() {
|
|
2750
|
-
var _el$60 = _$createElement("text");
|
|
2751
|
-
_$insertNode(_el$60, _$createTextNode(`✕`));
|
|
2752
|
-
_$setProp(_el$60, "flexShrink", 0);
|
|
2753
|
-
_$setProp(_el$60, "onMouseDown", () => setQuery(""));
|
|
2754
|
-
_$effect(_$p => _$setProp(_el$60, "style", {
|
|
2755
|
-
fg: theme().textMuted
|
|
2756
|
-
}, _$p));
|
|
2757
|
-
return _el$60;
|
|
2758
|
-
}
|
|
2759
|
-
}), null);
|
|
2760
2810
|
_$effect(_p$ => {
|
|
2761
|
-
var _v$
|
|
2811
|
+
var _v$33 = TextAttributes.DIM,
|
|
2812
|
+
_v$34 = {
|
|
2762
2813
|
fg: theme().textMuted
|
|
2763
|
-
},
|
|
2764
|
-
_v$30 = searching() ? theme().backgroundElement : RGBA.fromInts(0, 0, 0, 0),
|
|
2765
|
-
_v$31 = {
|
|
2766
|
-
fg: query() ? theme().text : theme().textMuted
|
|
2767
2814
|
};
|
|
2768
|
-
_v$
|
|
2769
|
-
_v$
|
|
2770
|
-
_v$31 !== _p$.a && (_p$.a = _$setProp(_el$59, "style", _v$31, _p$.a));
|
|
2815
|
+
_v$33 !== _p$.e && (_p$.e = _$setProp(_el$53, "attributes", _v$33, _p$.e));
|
|
2816
|
+
_v$34 !== _p$.t && (_p$.t = _$setProp(_el$53, "style", _v$34, _p$.t));
|
|
2771
2817
|
return _p$;
|
|
2772
2818
|
}, {
|
|
2773
2819
|
e: undefined,
|
|
2774
|
-
t: undefined
|
|
2775
|
-
a: undefined
|
|
2820
|
+
t: undefined
|
|
2776
2821
|
});
|
|
2777
2822
|
return _el$51;
|
|
2778
2823
|
})(), _$createComponent(For, {
|
|
@@ -2780,26 +2825,31 @@ function HomeSessions(props) {
|
|
|
2780
2825
|
return visible();
|
|
2781
2826
|
},
|
|
2782
2827
|
children: entry => (() => {
|
|
2783
|
-
var _el$
|
|
2784
|
-
_el$
|
|
2785
|
-
_el$
|
|
2786
|
-
|
|
2787
|
-
_$insertNode(_el$
|
|
2788
|
-
_$
|
|
2789
|
-
_$
|
|
2790
|
-
_$setProp(_el$
|
|
2791
|
-
_$setProp(_el$
|
|
2792
|
-
_$setProp(_el$
|
|
2793
|
-
_$setProp(_el$
|
|
2794
|
-
_$setProp(_el$
|
|
2795
|
-
_$setProp(_el$
|
|
2828
|
+
var _el$65 = _$createElement("box"),
|
|
2829
|
+
_el$66 = _$createElement("text"),
|
|
2830
|
+
_el$67 = _$createElement("box"),
|
|
2831
|
+
_el$69 = _$createElement("text");
|
|
2832
|
+
_$insertNode(_el$65, _el$66);
|
|
2833
|
+
_$insertNode(_el$65, _el$67);
|
|
2834
|
+
_$insertNode(_el$65, _el$69);
|
|
2835
|
+
_$setProp(_el$65, "height", 1);
|
|
2836
|
+
_$setProp(_el$65, "flexShrink", 0);
|
|
2837
|
+
_$setProp(_el$65, "overflow", "hidden");
|
|
2838
|
+
_$setProp(_el$65, "flexDirection", "row");
|
|
2839
|
+
_$setProp(_el$65, "gap", 1);
|
|
2840
|
+
_$setProp(_el$65, "onMouseOver", () => setHovered(entry.id));
|
|
2841
|
+
_$setProp(_el$65, "onMouseOut", () => setHovered(undefined));
|
|
2842
|
+
_$setProp(_el$65, "onMouseDown", event => event.button === RIGHT_BUTTON ? openInCmuxWorkspace(props.api, entry) : props.api.route.navigate("session", {
|
|
2796
2843
|
sessionID: entry.id
|
|
2797
2844
|
}));
|
|
2798
|
-
_$
|
|
2799
|
-
_$setProp(_el$
|
|
2845
|
+
_$setProp(_el$66, "width", 1);
|
|
2846
|
+
_$setProp(_el$66, "flexShrink", 0);
|
|
2847
|
+
_$insert(_el$66, () => isRunning(entry.id) ? "●" : "○");
|
|
2848
|
+
_$setProp(_el$67, "flexShrink", 0);
|
|
2849
|
+
_$setProp(_el$67, "overflow", "hidden");
|
|
2800
2850
|
_$insert(_el$67, _$createComponent(Highlighted, {
|
|
2801
2851
|
get text() {
|
|
2802
|
-
return `${props.pins().sessions.includes(entry.id) ? "★ " : ""}${
|
|
2852
|
+
return truncate(`${props.pins().sessions.includes(entry.id) ? "★ " : ""}${entry.title}`, columns().title);
|
|
2803
2853
|
},
|
|
2804
2854
|
get query() {
|
|
2805
2855
|
return query();
|
|
@@ -2810,64 +2860,94 @@ function HomeSessions(props) {
|
|
|
2810
2860
|
get matchColor() {
|
|
2811
2861
|
return theme().warning;
|
|
2812
2862
|
}
|
|
2813
|
-
})
|
|
2814
|
-
_$
|
|
2815
|
-
|
|
2816
|
-
|
|
2817
|
-
|
|
2818
|
-
|
|
2819
|
-
|
|
2820
|
-
|
|
2863
|
+
}));
|
|
2864
|
+
_$insert(_el$65, _$createComponent(Show, {
|
|
2865
|
+
get when() {
|
|
2866
|
+
return columns().dir > 0;
|
|
2867
|
+
},
|
|
2868
|
+
get children() {
|
|
2869
|
+
var _el$68 = _$createElement("text");
|
|
2870
|
+
_$setProp(_el$68, "flexShrink", 0);
|
|
2871
|
+
_$setProp(_el$68, "wrapMode", "none");
|
|
2872
|
+
_$setProp(_el$68, "overflow", "hidden");
|
|
2873
|
+
_$insert(_el$68, () => truncate(pendingDelete() === entry.id ? "option+d again" : rowDir(entry), columns().dir));
|
|
2874
|
+
_$effect(_p$ => {
|
|
2875
|
+
var _v$39 = columns().dir,
|
|
2876
|
+
_v$40 = pendingDelete() === entry.id ? undefined : TextAttributes.DIM,
|
|
2877
|
+
_v$41 = {
|
|
2878
|
+
fg: pendingDelete() === entry.id ? theme().error : theme().textMuted
|
|
2879
|
+
};
|
|
2880
|
+
_v$39 !== _p$.e && (_p$.e = _$setProp(_el$68, "width", _v$39, _p$.e));
|
|
2881
|
+
_v$40 !== _p$.t && (_p$.t = _$setProp(_el$68, "attributes", _v$40, _p$.t));
|
|
2882
|
+
_v$41 !== _p$.a && (_p$.a = _$setProp(_el$68, "style", _v$41, _p$.a));
|
|
2883
|
+
return _p$;
|
|
2884
|
+
}, {
|
|
2885
|
+
e: undefined,
|
|
2886
|
+
t: undefined,
|
|
2887
|
+
a: undefined
|
|
2888
|
+
});
|
|
2889
|
+
return _el$68;
|
|
2890
|
+
}
|
|
2891
|
+
}), _el$69);
|
|
2892
|
+
_$setProp(_el$69, "flexShrink", 0);
|
|
2893
|
+
_$setProp(_el$69, "wrapMode", "none");
|
|
2894
|
+
_$insert(_el$69, () => ago(entry.updated).padStart(columns().age));
|
|
2821
2895
|
_$effect(_p$ => {
|
|
2822
|
-
var _v$
|
|
2823
|
-
_v$
|
|
2824
|
-
fg: theme().textMuted
|
|
2896
|
+
var _v$42 = entry.id === hovered() ? theme().backgroundElement : RGBA.fromInts(0, 0, 0, 0),
|
|
2897
|
+
_v$43 = {
|
|
2898
|
+
fg: isRunning(entry.id) ? theme().success : theme().textMuted
|
|
2825
2899
|
},
|
|
2826
|
-
_v$
|
|
2827
|
-
_v$
|
|
2828
|
-
|
|
2900
|
+
_v$44 = columns().title,
|
|
2901
|
+
_v$45 = columns().age,
|
|
2902
|
+
_v$46 = TextAttributes.DIM,
|
|
2903
|
+
_v$47 = {
|
|
2904
|
+
fg: theme().textMuted
|
|
2829
2905
|
};
|
|
2830
|
-
_v$
|
|
2831
|
-
_v$
|
|
2832
|
-
_v$
|
|
2833
|
-
_v$
|
|
2906
|
+
_v$42 !== _p$.e && (_p$.e = _$setProp(_el$65, "backgroundColor", _v$42, _p$.e));
|
|
2907
|
+
_v$43 !== _p$.t && (_p$.t = _$setProp(_el$66, "style", _v$43, _p$.t));
|
|
2908
|
+
_v$44 !== _p$.a && (_p$.a = _$setProp(_el$67, "width", _v$44, _p$.a));
|
|
2909
|
+
_v$45 !== _p$.o && (_p$.o = _$setProp(_el$69, "width", _v$45, _p$.o));
|
|
2910
|
+
_v$46 !== _p$.i && (_p$.i = _$setProp(_el$69, "attributes", _v$46, _p$.i));
|
|
2911
|
+
_v$47 !== _p$.n && (_p$.n = _$setProp(_el$69, "style", _v$47, _p$.n));
|
|
2834
2912
|
return _p$;
|
|
2835
2913
|
}, {
|
|
2836
2914
|
e: undefined,
|
|
2837
2915
|
t: undefined,
|
|
2838
2916
|
a: undefined,
|
|
2839
|
-
o: undefined
|
|
2917
|
+
o: undefined,
|
|
2918
|
+
i: undefined,
|
|
2919
|
+
n: undefined
|
|
2840
2920
|
});
|
|
2841
|
-
return _el$
|
|
2921
|
+
return _el$65;
|
|
2842
2922
|
})()
|
|
2843
2923
|
}), _$createComponent(Show, {
|
|
2844
2924
|
get when() {
|
|
2845
2925
|
return visible().length === 0;
|
|
2846
2926
|
},
|
|
2847
2927
|
get children() {
|
|
2848
|
-
var _el$
|
|
2849
|
-
_$insertNode(_el$
|
|
2850
|
-
_$setProp(_el$
|
|
2851
|
-
_$setProp(_el$
|
|
2852
|
-
_$setProp(_el$
|
|
2853
|
-
_$setProp(_el$
|
|
2854
|
-
_$effect(_$p => _$setProp(_el$
|
|
2928
|
+
var _el$60 = _$createElement("text");
|
|
2929
|
+
_$insertNode(_el$60, _$createTextNode(`No title or directory matches · option+o to search transcripts`));
|
|
2930
|
+
_$setProp(_el$60, "height", 1);
|
|
2931
|
+
_$setProp(_el$60, "flexShrink", 0);
|
|
2932
|
+
_$setProp(_el$60, "wrapMode", "none");
|
|
2933
|
+
_$setProp(_el$60, "overflow", "hidden");
|
|
2934
|
+
_$effect(_$p => _$setProp(_el$60, "style", {
|
|
2855
2935
|
fg: theme().textMuted
|
|
2856
2936
|
}, _$p));
|
|
2857
|
-
return _el$
|
|
2937
|
+
return _el$60;
|
|
2858
2938
|
}
|
|
2859
2939
|
})];
|
|
2860
2940
|
}
|
|
2861
2941
|
}));
|
|
2862
2942
|
_$effect(_p$ => {
|
|
2863
|
-
var _v$
|
|
2864
|
-
_v$
|
|
2865
|
-
_v$
|
|
2866
|
-
_v$
|
|
2867
|
-
_v$
|
|
2868
|
-
_v$
|
|
2869
|
-
_v$
|
|
2870
|
-
_v$
|
|
2943
|
+
var _v$35 = layout().budget,
|
|
2944
|
+
_v$36 = layout().limit > 0 && props.api.route.current.name === "home",
|
|
2945
|
+
_v$37 = layout().padding,
|
|
2946
|
+
_v$38 = layout().gap;
|
|
2947
|
+
_v$35 !== _p$.e && (_p$.e = _$setProp(_el$49, "maxHeight", _v$35, _p$.e));
|
|
2948
|
+
_v$36 !== _p$.t && (_p$.t = _$setProp(_el$50, "visible", _v$36, _p$.t));
|
|
2949
|
+
_v$37 !== _p$.a && (_p$.a = _$setProp(_el$50, "paddingTop", _v$37, _p$.a));
|
|
2950
|
+
_v$38 !== _p$.o && (_p$.o = _$setProp(_el$50, "gap", _v$38, _p$.o));
|
|
2871
2951
|
return _p$;
|
|
2872
2952
|
}, {
|
|
2873
2953
|
e: undefined,
|
|
@@ -2878,6 +2958,31 @@ function HomeSessions(props) {
|
|
|
2878
2958
|
return _el$49;
|
|
2879
2959
|
})();
|
|
2880
2960
|
}
|
|
2961
|
+
|
|
2962
|
+
// prompt.footer also mounts in session composers: only home subscribes to polling.
|
|
2963
|
+
function HomeBottom(props) {
|
|
2964
|
+
return _$createComponent(Show, {
|
|
2965
|
+
get when() {
|
|
2966
|
+
return props.api.route.current.name === "home";
|
|
2967
|
+
},
|
|
2968
|
+
get children() {
|
|
2969
|
+
return _$createComponent(HomeSessions, {
|
|
2970
|
+
get api() {
|
|
2971
|
+
return props.api;
|
|
2972
|
+
},
|
|
2973
|
+
get pins() {
|
|
2974
|
+
return props.pins;
|
|
2975
|
+
},
|
|
2976
|
+
get onTogglePin() {
|
|
2977
|
+
return props.onTogglePin;
|
|
2978
|
+
},
|
|
2979
|
+
get poll() {
|
|
2980
|
+
return props.poll;
|
|
2981
|
+
}
|
|
2982
|
+
});
|
|
2983
|
+
}
|
|
2984
|
+
});
|
|
2985
|
+
}
|
|
2881
2986
|
const tui = async api => {
|
|
2882
2987
|
const [pins, setPins] = createSignal(emptyPins());
|
|
2883
2988
|
// Keep exploratory context while the plugin remains loaded; a full OpenCode
|
|
@@ -2922,7 +3027,7 @@ const tui = async api => {
|
|
|
2922
3027
|
});
|
|
2923
3028
|
},
|
|
2924
3029
|
home_bottom() {
|
|
2925
|
-
return _$createComponent(
|
|
3030
|
+
return _$createComponent(HomeBottom, {
|
|
2926
3031
|
api: api,
|
|
2927
3032
|
pins: pins,
|
|
2928
3033
|
onTogglePin: onTogglePin,
|
|
@@ -3431,64 +3536,64 @@ const tui = async api => {
|
|
|
3431
3536
|
if (previewTimer) clearTimeout(previewTimer);
|
|
3432
3537
|
};
|
|
3433
3538
|
api.ui.dialog.replace(() => (() => {
|
|
3434
|
-
var _el$
|
|
3539
|
+
var _el$70 = _$createElement("box"),
|
|
3540
|
+
_el$71 = _$createElement("box"),
|
|
3435
3541
|
_el$72 = _$createElement("box"),
|
|
3436
|
-
_el$73 = _$createElement("
|
|
3437
|
-
_el$74 = _$
|
|
3438
|
-
_el$75 = _$
|
|
3439
|
-
_el$76 = _$
|
|
3440
|
-
_el$77 = _$createTextNode(`
|
|
3441
|
-
_el$78 = _$
|
|
3442
|
-
_el$
|
|
3443
|
-
_el$81 = _$createElement("
|
|
3444
|
-
_el$
|
|
3445
|
-
_el$85 = _$createElement("
|
|
3542
|
+
_el$73 = _$createElement("text"),
|
|
3543
|
+
_el$74 = _$createTextNode(`Sessions `),
|
|
3544
|
+
_el$75 = _$createElement("span"),
|
|
3545
|
+
_el$76 = _$createTextNode(`(`),
|
|
3546
|
+
_el$77 = _$createTextNode(`)`),
|
|
3547
|
+
_el$78 = _$createElement("text"),
|
|
3548
|
+
_el$80 = _$createElement("box"),
|
|
3549
|
+
_el$81 = _$createElement("input"),
|
|
3550
|
+
_el$84 = _$createElement("box"),
|
|
3551
|
+
_el$85 = _$createElement("text"),
|
|
3446
3552
|
_el$86 = _$createElement("text"),
|
|
3447
3553
|
_el$87 = _$createElement("text"),
|
|
3448
|
-
_el$88 = _$createElement("
|
|
3449
|
-
_el$
|
|
3450
|
-
_el$92 = _$createElement("
|
|
3451
|
-
|
|
3554
|
+
_el$88 = _$createElement("box"),
|
|
3555
|
+
_el$91 = _$createElement("box"),
|
|
3556
|
+
_el$92 = _$createElement("text");
|
|
3557
|
+
_$insertNode(_el$70, _el$71);
|
|
3558
|
+
_$insertNode(_el$70, _el$88);
|
|
3559
|
+
_$insertNode(_el$70, _el$91);
|
|
3560
|
+
_$setProp(_el$70, "flexDirection", "column");
|
|
3561
|
+
_$setProp(_el$70, "paddingTop", 1);
|
|
3562
|
+
_$setProp(_el$70, "paddingBottom", 1);
|
|
3563
|
+
_$setProp(_el$70, "gap", 1);
|
|
3452
3564
|
_$insertNode(_el$71, _el$72);
|
|
3453
|
-
_$insertNode(_el$71, _el$
|
|
3454
|
-
_$insertNode(_el$71, _el$
|
|
3455
|
-
_$setProp(_el$71, "
|
|
3456
|
-
_$setProp(_el$71, "
|
|
3457
|
-
_$setProp(_el$71, "paddingBottom", 1);
|
|
3458
|
-
_$setProp(_el$71, "gap", 1);
|
|
3565
|
+
_$insertNode(_el$71, _el$80);
|
|
3566
|
+
_$insertNode(_el$71, _el$84);
|
|
3567
|
+
_$setProp(_el$71, "paddingLeft", 4);
|
|
3568
|
+
_$setProp(_el$71, "paddingRight", 4);
|
|
3459
3569
|
_$insertNode(_el$72, _el$73);
|
|
3460
|
-
_$insertNode(_el$72, _el$
|
|
3461
|
-
_$
|
|
3462
|
-
_$setProp(_el$72, "
|
|
3463
|
-
_$setProp(_el$72, "paddingRight", 4);
|
|
3570
|
+
_$insertNode(_el$72, _el$78);
|
|
3571
|
+
_$setProp(_el$72, "flexDirection", "row");
|
|
3572
|
+
_$setProp(_el$72, "justifyContent", "space-between");
|
|
3464
3573
|
_$insertNode(_el$73, _el$74);
|
|
3465
|
-
_$insertNode(_el$73, _el$
|
|
3466
|
-
_$
|
|
3467
|
-
_$
|
|
3468
|
-
_$
|
|
3469
|
-
_$insertNode(_el$
|
|
3470
|
-
_$
|
|
3471
|
-
_$insertNode(_el$
|
|
3472
|
-
_$
|
|
3473
|
-
_$
|
|
3474
|
-
_$setProp(_el$
|
|
3475
|
-
_$
|
|
3476
|
-
_$setProp(_el$81, "paddingTop", 1);
|
|
3477
|
-
_$setProp(_el$82, "focused", true);
|
|
3478
|
-
_$setProp(_el$82, "placeholder", "Search title, directory, transcript…");
|
|
3479
|
-
_$setProp(_el$82, "cursorStyle", {
|
|
3574
|
+
_$insertNode(_el$73, _el$75);
|
|
3575
|
+
_$insertNode(_el$75, _el$76);
|
|
3576
|
+
_$insertNode(_el$75, _el$77);
|
|
3577
|
+
_$insert(_el$75, () => selectableEntries().length, _el$77);
|
|
3578
|
+
_$insertNode(_el$78, _$createTextNode(`esc`));
|
|
3579
|
+
_$setProp(_el$78, "onMouseUp", close);
|
|
3580
|
+
_$insertNode(_el$80, _el$81);
|
|
3581
|
+
_$setProp(_el$80, "paddingTop", 1);
|
|
3582
|
+
_$setProp(_el$81, "focused", true);
|
|
3583
|
+
_$setProp(_el$81, "placeholder", "Search title, directory, transcript…");
|
|
3584
|
+
_$setProp(_el$81, "cursorStyle", {
|
|
3480
3585
|
style: "line",
|
|
3481
3586
|
blinking: false
|
|
3482
3587
|
});
|
|
3483
|
-
_$setProp(_el$
|
|
3588
|
+
_$setProp(_el$81, "onInput", value => {
|
|
3484
3589
|
if (pendingDelete()) return;
|
|
3485
3590
|
setQuery(value);
|
|
3486
3591
|
});
|
|
3487
|
-
_$setProp(_el$
|
|
3592
|
+
_$setProp(_el$81, "onSubmit", () => {
|
|
3488
3593
|
if (confirmArmed()) return;
|
|
3489
3594
|
choose();
|
|
3490
3595
|
});
|
|
3491
|
-
_$setProp(_el$
|
|
3596
|
+
_$setProp(_el$81, "onKeyDown", event => {
|
|
3492
3597
|
if (event.name === "escape") {
|
|
3493
3598
|
event.preventDefault();
|
|
3494
3599
|
handleEscape();
|
|
@@ -3520,92 +3625,92 @@ const tui = async api => {
|
|
|
3520
3625
|
}
|
|
3521
3626
|
}
|
|
3522
3627
|
});
|
|
3523
|
-
_$insert(_el$
|
|
3628
|
+
_$insert(_el$71, _$createComponent(Show, {
|
|
3524
3629
|
get when() {
|
|
3525
3630
|
return coverageLabel();
|
|
3526
3631
|
},
|
|
3527
3632
|
get children() {
|
|
3528
|
-
var _el$
|
|
3529
|
-
_el$
|
|
3530
|
-
_$insertNode(_el$
|
|
3531
|
-
_$setProp(_el$
|
|
3532
|
-
_$insert(_el$
|
|
3533
|
-
_$effect(_$p => _$setProp(_el$
|
|
3633
|
+
var _el$82 = _$createElement("box"),
|
|
3634
|
+
_el$83 = _$createElement("text");
|
|
3635
|
+
_$insertNode(_el$82, _el$83);
|
|
3636
|
+
_$setProp(_el$82, "paddingTop", 1);
|
|
3637
|
+
_$insert(_el$83, coverageLabel);
|
|
3638
|
+
_$effect(_$p => _$setProp(_el$83, "style", {
|
|
3534
3639
|
fg: api.theme.current.textMuted
|
|
3535
3640
|
}, _$p));
|
|
3536
|
-
return _el$
|
|
3641
|
+
return _el$82;
|
|
3537
3642
|
}
|
|
3538
|
-
}), _el$
|
|
3539
|
-
_$insertNode(_el$
|
|
3540
|
-
_$insertNode(_el$
|
|
3541
|
-
_$insertNode(_el$
|
|
3542
|
-
_$setProp(_el$
|
|
3543
|
-
_$setProp(_el$
|
|
3544
|
-
_$setProp(_el$
|
|
3545
|
-
_$setProp(_el$
|
|
3643
|
+
}), _el$84);
|
|
3644
|
+
_$insertNode(_el$84, _el$85);
|
|
3645
|
+
_$insertNode(_el$84, _el$86);
|
|
3646
|
+
_$insertNode(_el$84, _el$87);
|
|
3647
|
+
_$setProp(_el$84, "flexDirection", "row");
|
|
3648
|
+
_$setProp(_el$84, "gap", 2);
|
|
3649
|
+
_$setProp(_el$84, "paddingTop", 1);
|
|
3650
|
+
_$setProp(_el$85, "onMouseDown", () => {
|
|
3546
3651
|
const group = currentProject();
|
|
3547
3652
|
if (group) setScope(scope() === group ? undefined : group);else api.ui.toast({
|
|
3548
3653
|
message: "No current project to filter",
|
|
3549
3654
|
variant: "info"
|
|
3550
3655
|
});
|
|
3551
3656
|
});
|
|
3552
|
-
_$insert(_el$
|
|
3553
|
-
var _c$
|
|
3554
|
-
return () => _c$
|
|
3657
|
+
_$insert(_el$85, (() => {
|
|
3658
|
+
var _c$5 = _$memo(() => !!scope());
|
|
3659
|
+
return () => _c$5() ? `Project: ${truncate(scope(), 22)}` : "Project: all";
|
|
3555
3660
|
})());
|
|
3556
|
-
_$setProp(_el$
|
|
3557
|
-
_$insert(_el$
|
|
3558
|
-
_$setProp(_el$
|
|
3559
|
-
_$insert(_el$
|
|
3560
|
-
_$setProp(_el$
|
|
3561
|
-
_$setProp(_el$
|
|
3562
|
-
_$setProp(_el$
|
|
3563
|
-
_$setProp(_el$
|
|
3661
|
+
_$setProp(_el$86, "onMouseDown", () => setWaitingOnly(value => !value));
|
|
3662
|
+
_$insert(_el$86, () => waitingOnly() ? "● Needs input" : "○ Needs input");
|
|
3663
|
+
_$setProp(_el$87, "onMouseDown", () => setPinnedOnly(value => !value));
|
|
3664
|
+
_$insert(_el$87, () => pinnedOnly() ? "★ Pinned" : "☆ Pinned");
|
|
3665
|
+
_$setProp(_el$88, "flexDirection", "column");
|
|
3666
|
+
_$setProp(_el$88, "flexGrow", 1);
|
|
3667
|
+
_$setProp(_el$88, "overflow", "hidden");
|
|
3668
|
+
_$setProp(_el$88, "onMouseScroll", event => {
|
|
3564
3669
|
scrollPicker(event.scroll);
|
|
3565
3670
|
});
|
|
3566
|
-
_$insert(_el$
|
|
3671
|
+
_$insert(_el$88, _$createComponent(For, {
|
|
3567
3672
|
get each() {
|
|
3568
3673
|
return visiblePickerRows();
|
|
3569
3674
|
},
|
|
3570
3675
|
children: row => {
|
|
3571
3676
|
if (row.kind === "group") return (() => {
|
|
3572
|
-
var _el$
|
|
3677
|
+
var _el$105 = _$createElement("box"),
|
|
3678
|
+
_el$106 = _$createElement("text"),
|
|
3573
3679
|
_el$107 = _$createElement("text"),
|
|
3574
|
-
_el$108 = _$
|
|
3575
|
-
_el$109 = _$createTextNode(`
|
|
3576
|
-
|
|
3577
|
-
_$insertNode(_el$
|
|
3578
|
-
_$
|
|
3579
|
-
_$setProp(_el$
|
|
3580
|
-
_$setProp(_el$
|
|
3581
|
-
_$setProp(_el$
|
|
3582
|
-
_$setProp(_el$106, "onMouseDown", () => setCollapsed(state => ({
|
|
3680
|
+
_el$108 = _$createTextNode(` (`),
|
|
3681
|
+
_el$109 = _$createTextNode(`)`);
|
|
3682
|
+
_$insertNode(_el$105, _el$106);
|
|
3683
|
+
_$insertNode(_el$105, _el$107);
|
|
3684
|
+
_$setProp(_el$105, "flexDirection", "row");
|
|
3685
|
+
_$setProp(_el$105, "paddingLeft", 4);
|
|
3686
|
+
_$setProp(_el$105, "paddingRight", 4);
|
|
3687
|
+
_$setProp(_el$105, "onMouseDown", () => setCollapsed(state => ({
|
|
3583
3688
|
...state,
|
|
3584
3689
|
[row.dir]: !state[row.dir]
|
|
3585
3690
|
})));
|
|
3586
|
-
_$setProp(_el$
|
|
3587
|
-
_$setProp(_el$
|
|
3588
|
-
_$setProp(_el$
|
|
3589
|
-
_$insert(_el$
|
|
3590
|
-
_$insert(_el$
|
|
3591
|
-
_$insert(_el$
|
|
3592
|
-
_$insertNode(_el$
|
|
3593
|
-
_$insertNode(_el$
|
|
3594
|
-
_$setProp(_el$
|
|
3595
|
-
_$insert(_el$
|
|
3691
|
+
_$setProp(_el$106, "flexGrow", 1);
|
|
3692
|
+
_$setProp(_el$106, "flexShrink", 1);
|
|
3693
|
+
_$setProp(_el$106, "wrapMode", "none");
|
|
3694
|
+
_$insert(_el$106, () => collapsed()[row.dir] && !query().trim() ? "▸ " : "▾ ", null);
|
|
3695
|
+
_$insert(_el$106, () => row.pinned ? "★ " : "", null);
|
|
3696
|
+
_$insert(_el$106, () => row.label, null);
|
|
3697
|
+
_$insertNode(_el$107, _el$108);
|
|
3698
|
+
_$insertNode(_el$107, _el$109);
|
|
3699
|
+
_$setProp(_el$107, "flexShrink", 0);
|
|
3700
|
+
_$insert(_el$107, () => row.count, _el$109);
|
|
3596
3701
|
_$effect(_p$ => {
|
|
3597
|
-
var _v$
|
|
3598
|
-
_v$
|
|
3702
|
+
var _v$68 = row.continued ? 0 : 1,
|
|
3703
|
+
_v$69 = {
|
|
3599
3704
|
fg: api.theme.current.accent
|
|
3600
3705
|
},
|
|
3601
|
-
_v$
|
|
3602
|
-
_v$
|
|
3706
|
+
_v$70 = TextAttributes.BOLD,
|
|
3707
|
+
_v$71 = {
|
|
3603
3708
|
fg: api.theme.current.textMuted
|
|
3604
3709
|
};
|
|
3605
|
-
_v$
|
|
3606
|
-
_v$
|
|
3607
|
-
_v$
|
|
3608
|
-
_v$
|
|
3710
|
+
_v$68 !== _p$.e && (_p$.e = _$setProp(_el$105, "paddingTop", _v$68, _p$.e));
|
|
3711
|
+
_v$69 !== _p$.t && (_p$.t = _$setProp(_el$106, "style", _v$69, _p$.t));
|
|
3712
|
+
_v$70 !== _p$.a && (_p$.a = _$setProp(_el$106, "attributes", _v$70, _p$.a));
|
|
3713
|
+
_v$71 !== _p$.o && (_p$.o = _$setProp(_el$107, "style", _v$71, _p$.o));
|
|
3609
3714
|
return _p$;
|
|
3610
3715
|
}, {
|
|
3611
3716
|
e: undefined,
|
|
@@ -3613,46 +3718,46 @@ const tui = async api => {
|
|
|
3613
3718
|
a: undefined,
|
|
3614
3719
|
o: undefined
|
|
3615
3720
|
});
|
|
3616
|
-
return _el$
|
|
3721
|
+
return _el$105;
|
|
3617
3722
|
})();
|
|
3618
3723
|
const excerpt = createMemo(() => transcriptMatchExcerpt(searchIndex().get(row.entry.id), row.entry, query()));
|
|
3619
3724
|
return (() => {
|
|
3620
|
-
var _el$
|
|
3621
|
-
_el$
|
|
3622
|
-
_el$
|
|
3623
|
-
_el$
|
|
3624
|
-
_$insertNode(_el$
|
|
3625
|
-
_$setProp(_el$
|
|
3626
|
-
_$setProp(_el$
|
|
3627
|
-
_$setProp(_el$
|
|
3628
|
-
_$setProp(_el$
|
|
3725
|
+
var _el$110 = _$createElement("box"),
|
|
3726
|
+
_el$111 = _$createElement("box"),
|
|
3727
|
+
_el$112 = _$createElement("text"),
|
|
3728
|
+
_el$115 = _$createElement("text");
|
|
3729
|
+
_$insertNode(_el$110, _el$111);
|
|
3730
|
+
_$setProp(_el$110, "flexDirection", "column");
|
|
3731
|
+
_$setProp(_el$110, "paddingLeft", 6);
|
|
3732
|
+
_$setProp(_el$110, "paddingRight", 4);
|
|
3733
|
+
_$setProp(_el$110, "onMouseMove", () => {
|
|
3629
3734
|
// Repainting under a stationary pointer must not select
|
|
3630
3735
|
// another row while the wheel is moving the viewport.
|
|
3631
3736
|
const index = selectableEntries().findIndex(entry => entry.id === row.entry.id);
|
|
3632
3737
|
if (index >= 0) setCursor(index);
|
|
3633
3738
|
});
|
|
3634
|
-
_$setProp(_el$
|
|
3635
|
-
_$insertNode(_el$
|
|
3636
|
-
_$insertNode(_el$
|
|
3637
|
-
_$setProp(_el$
|
|
3638
|
-
_$setProp(_el$
|
|
3639
|
-
_$setProp(_el$
|
|
3640
|
-
_$insert(_el$
|
|
3641
|
-
_$insert(_el$
|
|
3739
|
+
_$setProp(_el$110, "onMouseDown", event => event.button === RIGHT_BUTTON ? (cleanup(), api.ui.dialog.clear(), openInCmuxWorkspace(api, row.entry)) : choose(row.entry));
|
|
3740
|
+
_$insertNode(_el$111, _el$112);
|
|
3741
|
+
_$insertNode(_el$111, _el$115);
|
|
3742
|
+
_$setProp(_el$111, "flexDirection", "row");
|
|
3743
|
+
_$setProp(_el$111, "gap", 1);
|
|
3744
|
+
_$setProp(_el$112, "flexShrink", 0);
|
|
3745
|
+
_$insert(_el$112, () => row.last ? "└" : "├");
|
|
3746
|
+
_$insert(_el$111, _$createComponent(Show, {
|
|
3642
3747
|
get when() {
|
|
3643
3748
|
return row.entry.id === currentSessionID();
|
|
3644
3749
|
},
|
|
3645
3750
|
get children() {
|
|
3646
|
-
var _el$
|
|
3647
|
-
_$insertNode(_el$
|
|
3648
|
-
_$setProp(_el$
|
|
3649
|
-
_$effect(_$p => _$setProp(_el$
|
|
3751
|
+
var _el$113 = _$createElement("text");
|
|
3752
|
+
_$insertNode(_el$113, _$createTextNode(`●`));
|
|
3753
|
+
_$setProp(_el$113, "flexShrink", 0);
|
|
3754
|
+
_$effect(_$p => _$setProp(_el$113, "style", {
|
|
3650
3755
|
fg: row.entry.id === selectableEntries()[cursor()]?.id ? api.theme.current.text : api.theme.current.primary
|
|
3651
3756
|
}, _$p));
|
|
3652
|
-
return _el$
|
|
3757
|
+
return _el$113;
|
|
3653
3758
|
}
|
|
3654
|
-
}), _el$
|
|
3655
|
-
_$insert(_el$
|
|
3759
|
+
}), _el$115);
|
|
3760
|
+
_$insert(_el$111, _$createComponent(Highlighted, {
|
|
3656
3761
|
get text() {
|
|
3657
3762
|
return `${pins().sessions.includes(row.entry.id) ? "★ " : ""}${truncate(row.entry.title, pins().sessions.includes(row.entry.id) ? 59 : 61)}`;
|
|
3658
3763
|
},
|
|
@@ -3668,26 +3773,26 @@ const tui = async api => {
|
|
|
3668
3773
|
get matchColor() {
|
|
3669
3774
|
return _$memo(() => row.entry.id === selectableEntries()[cursor()]?.id)() ? api.theme.current.text : api.theme.current.warning;
|
|
3670
3775
|
}
|
|
3671
|
-
}), _el$
|
|
3672
|
-
_$setProp(_el$
|
|
3673
|
-
_$insert(_el$
|
|
3674
|
-
var _c$
|
|
3675
|
-
return () => _c$
|
|
3776
|
+
}), _el$115);
|
|
3777
|
+
_$setProp(_el$115, "flexShrink", 0);
|
|
3778
|
+
_$insert(_el$115, (() => {
|
|
3779
|
+
var _c$9 = _$memo(() => pendingDelete()?.id === row.entry.id);
|
|
3780
|
+
return () => _c$9() ? "press y to delete" : `${ago(row.entry.updated)}${query().trim() && !`${row.entry.title} ${row.entry.dir}`.toLowerCase().includes(query().trim().toLowerCase()) ? " · transcript match" : ""}`;
|
|
3676
3781
|
})());
|
|
3677
|
-
_$insert(_el$
|
|
3782
|
+
_$insert(_el$110, _$createComponent(Show, {
|
|
3678
3783
|
get when() {
|
|
3679
3784
|
return excerpt();
|
|
3680
3785
|
},
|
|
3681
3786
|
children: match => (() => {
|
|
3682
|
-
var _el$
|
|
3683
|
-
_el$
|
|
3684
|
-
_$insertNode(_el$
|
|
3685
|
-
_$setProp(_el$
|
|
3686
|
-
_$setProp(_el$
|
|
3687
|
-
_$setProp(_el$
|
|
3688
|
-
_$insertNode(_el$
|
|
3689
|
-
_$setProp(_el$
|
|
3690
|
-
_$insert(_el$
|
|
3787
|
+
var _el$116 = _$createElement("box"),
|
|
3788
|
+
_el$117 = _$createElement("text");
|
|
3789
|
+
_$insertNode(_el$116, _el$117);
|
|
3790
|
+
_$setProp(_el$116, "flexDirection", "row");
|
|
3791
|
+
_$setProp(_el$116, "gap", 1);
|
|
3792
|
+
_$setProp(_el$116, "paddingLeft", 2);
|
|
3793
|
+
_$insertNode(_el$117, _$createTextNode(`↳`));
|
|
3794
|
+
_$setProp(_el$117, "flexShrink", 0);
|
|
3795
|
+
_$insert(_el$116, _$createComponent(Highlighted, {
|
|
3691
3796
|
get text() {
|
|
3692
3797
|
return match();
|
|
3693
3798
|
},
|
|
@@ -3701,140 +3806,140 @@ const tui = async api => {
|
|
|
3701
3806
|
return api.theme.current.warning;
|
|
3702
3807
|
}
|
|
3703
3808
|
}), null);
|
|
3704
|
-
_$effect(_$p => _$setProp(_el$
|
|
3809
|
+
_$effect(_$p => _$setProp(_el$117, "style", {
|
|
3705
3810
|
fg: api.theme.current.textMuted
|
|
3706
3811
|
}, _$p));
|
|
3707
|
-
return _el$
|
|
3812
|
+
return _el$116;
|
|
3708
3813
|
})()
|
|
3709
3814
|
}), null);
|
|
3710
3815
|
_$effect(_p$ => {
|
|
3711
|
-
var _v$
|
|
3712
|
-
_v$
|
|
3816
|
+
var _v$72 = row.entry.id === selectableEntries()[cursor()]?.id ? api.theme.current.backgroundElement : RGBA.fromInts(0, 0, 0, 0),
|
|
3817
|
+
_v$73 = {
|
|
3713
3818
|
fg: row.entry.id === selectableEntries()[cursor()]?.id ? api.theme.current.text : api.theme.current.textMuted
|
|
3714
3819
|
},
|
|
3715
|
-
_v$
|
|
3820
|
+
_v$74 = {
|
|
3716
3821
|
fg: pendingDelete()?.id === row.entry.id ? api.theme.current.error : row.entry.id === selectableEntries()[cursor()]?.id ? api.theme.current.text : api.theme.current.textMuted
|
|
3717
3822
|
};
|
|
3718
|
-
_v$
|
|
3719
|
-
_v$
|
|
3720
|
-
_v$
|
|
3823
|
+
_v$72 !== _p$.e && (_p$.e = _$setProp(_el$110, "backgroundColor", _v$72, _p$.e));
|
|
3824
|
+
_v$73 !== _p$.t && (_p$.t = _$setProp(_el$112, "style", _v$73, _p$.t));
|
|
3825
|
+
_v$74 !== _p$.a && (_p$.a = _$setProp(_el$115, "style", _v$74, _p$.a));
|
|
3721
3826
|
return _p$;
|
|
3722
3827
|
}, {
|
|
3723
3828
|
e: undefined,
|
|
3724
3829
|
t: undefined,
|
|
3725
3830
|
a: undefined
|
|
3726
3831
|
});
|
|
3727
|
-
return _el$
|
|
3832
|
+
return _el$110;
|
|
3728
3833
|
})();
|
|
3729
3834
|
}
|
|
3730
3835
|
}), null);
|
|
3731
|
-
_$insert(_el$
|
|
3836
|
+
_$insert(_el$88, _$createComponent(Show, {
|
|
3732
3837
|
get when() {
|
|
3733
3838
|
return matchedGroups().length === 0;
|
|
3734
3839
|
},
|
|
3735
3840
|
get children() {
|
|
3736
|
-
var _el$
|
|
3737
|
-
_el$
|
|
3738
|
-
_$insertNode(_el$
|
|
3739
|
-
_$setProp(_el$
|
|
3740
|
-
_$setProp(_el$
|
|
3741
|
-
_$insert(_el$
|
|
3742
|
-
var _c$
|
|
3743
|
-
return () => _c$
|
|
3841
|
+
var _el$89 = _$createElement("box"),
|
|
3842
|
+
_el$90 = _$createElement("text");
|
|
3843
|
+
_$insertNode(_el$89, _el$90);
|
|
3844
|
+
_$setProp(_el$89, "paddingLeft", 4);
|
|
3845
|
+
_$setProp(_el$89, "paddingRight", 4);
|
|
3846
|
+
_$insert(_el$90, (() => {
|
|
3847
|
+
var _c$6 = _$memo(() => !!(waitingOnly() && waitingCoverage() === "loading"));
|
|
3848
|
+
return () => _c$6() ? "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";
|
|
3744
3849
|
})());
|
|
3745
|
-
_$effect(_$p => _$setProp(_el$
|
|
3850
|
+
_$effect(_$p => _$setProp(_el$90, "style", {
|
|
3746
3851
|
fg: api.theme.current.textMuted
|
|
3747
3852
|
}, _$p));
|
|
3748
|
-
return _el$
|
|
3853
|
+
return _el$89;
|
|
3749
3854
|
}
|
|
3750
3855
|
}), null);
|
|
3751
|
-
_$insertNode(_el$
|
|
3752
|
-
_$setProp(_el$
|
|
3753
|
-
_$setProp(_el$
|
|
3754
|
-
_$setProp(_el$
|
|
3755
|
-
_$setProp(_el$
|
|
3756
|
-
_$insert(_el$
|
|
3757
|
-
var _c$
|
|
3758
|
-
return () => _c$
|
|
3856
|
+
_$insertNode(_el$91, _el$92);
|
|
3857
|
+
_$setProp(_el$91, "paddingLeft", 4);
|
|
3858
|
+
_$setProp(_el$91, "paddingRight", 4);
|
|
3859
|
+
_$setProp(_el$91, "flexShrink", 0);
|
|
3860
|
+
_$setProp(_el$91, "flexDirection", "column");
|
|
3861
|
+
_$insert(_el$92, (() => {
|
|
3862
|
+
var _c$7 = _$memo(() => !!pendingDelete());
|
|
3863
|
+
return () => _c$7() ? `Delete "${truncate(pendingDelete().title, 40)}"? y confirm · n cancel` : "↑↓ move · enter open · ctrl+g project · option+w input · option+s pinned · option+p preview";
|
|
3759
3864
|
})());
|
|
3760
|
-
_$insert(_el$
|
|
3865
|
+
_$insert(_el$91, _$createComponent(Show, {
|
|
3761
3866
|
get when() {
|
|
3762
3867
|
return !pendingDelete();
|
|
3763
3868
|
},
|
|
3764
3869
|
get children() {
|
|
3765
|
-
var _el$
|
|
3766
|
-
_$insertNode(_el$
|
|
3767
|
-
_$effect(_$p => _$setProp(_el$
|
|
3870
|
+
var _el$93 = _$createElement("text");
|
|
3871
|
+
_$insertNode(_el$93, _$createTextNode(`ctrl+s/d pin · option+d delete · ctrl+f fork · esc close`));
|
|
3872
|
+
_$effect(_$p => _$setProp(_el$93, "style", {
|
|
3768
3873
|
fg: api.theme.current.textMuted
|
|
3769
3874
|
}, _$p));
|
|
3770
|
-
return _el$
|
|
3875
|
+
return _el$93;
|
|
3771
3876
|
}
|
|
3772
3877
|
}), null);
|
|
3773
|
-
_$insert(_el$
|
|
3878
|
+
_$insert(_el$70, _$createComponent(Show, {
|
|
3774
3879
|
get when() {
|
|
3775
3880
|
return showPreview();
|
|
3776
3881
|
},
|
|
3777
3882
|
get children() {
|
|
3778
|
-
var _el$
|
|
3779
|
-
_el$
|
|
3883
|
+
var _el$95 = _$createElement("box"),
|
|
3884
|
+
_el$96 = _$createElement("box"),
|
|
3885
|
+
_el$97 = _$createElement("text"),
|
|
3780
3886
|
_el$98 = _$createElement("text"),
|
|
3781
|
-
_el$
|
|
3782
|
-
_el$103 = _$createElement("
|
|
3783
|
-
|
|
3887
|
+
_el$102 = _$createElement("scrollbox"),
|
|
3888
|
+
_el$103 = _$createElement("text");
|
|
3889
|
+
_$insertNode(_el$95, _el$96);
|
|
3890
|
+
_$insertNode(_el$95, _el$102);
|
|
3891
|
+
_$insertNode(_el$95, _el$103);
|
|
3892
|
+
_$setProp(_el$95, "position", "absolute");
|
|
3893
|
+
_$setProp(_el$95, "left", 0);
|
|
3894
|
+
_$setProp(_el$95, "top", 0);
|
|
3895
|
+
_$setProp(_el$95, "width", dialogWidth);
|
|
3896
|
+
_$setProp(_el$95, "flexDirection", "column");
|
|
3897
|
+
_$setProp(_el$95, "paddingLeft", 4);
|
|
3898
|
+
_$setProp(_el$95, "paddingRight", 4);
|
|
3899
|
+
_$setProp(_el$95, "paddingTop", 1);
|
|
3900
|
+
_$setProp(_el$95, "paddingBottom", 1);
|
|
3901
|
+
_$setProp(_el$95, "gap", 1);
|
|
3784
3902
|
_$insertNode(_el$96, _el$97);
|
|
3785
|
-
_$insertNode(_el$96, _el$
|
|
3786
|
-
_$
|
|
3787
|
-
_$setProp(_el$96, "
|
|
3788
|
-
_$
|
|
3789
|
-
|
|
3790
|
-
|
|
3791
|
-
_$setProp(_el$96, "flexDirection", "column");
|
|
3792
|
-
_$setProp(_el$96, "paddingLeft", 4);
|
|
3793
|
-
_$setProp(_el$96, "paddingRight", 4);
|
|
3794
|
-
_$setProp(_el$96, "paddingTop", 1);
|
|
3795
|
-
_$setProp(_el$96, "paddingBottom", 1);
|
|
3796
|
-
_$setProp(_el$96, "gap", 1);
|
|
3797
|
-
_$insertNode(_el$97, _el$98);
|
|
3798
|
-
_$insertNode(_el$97, _el$99);
|
|
3799
|
-
_$setProp(_el$97, "flexDirection", "row");
|
|
3800
|
-
_$setProp(_el$97, "justifyContent", "space-between");
|
|
3801
|
-
_$insert(_el$98, (() => {
|
|
3802
|
-
var _c$9 = _$memo(() => !!previewID());
|
|
3803
|
-
return () => _c$9() ? truncate(selectableEntries()[cursor()].title, dialogWidth - 18) : "Preview";
|
|
3903
|
+
_$insertNode(_el$96, _el$98);
|
|
3904
|
+
_$setProp(_el$96, "flexDirection", "row");
|
|
3905
|
+
_$setProp(_el$96, "justifyContent", "space-between");
|
|
3906
|
+
_$insert(_el$97, (() => {
|
|
3907
|
+
var _c$8 = _$memo(() => !!previewID());
|
|
3908
|
+
return () => _c$8() ? truncate(selectableEntries()[cursor()].title, dialogWidth - 18) : "Preview";
|
|
3804
3909
|
})());
|
|
3805
|
-
_$insertNode(_el$
|
|
3806
|
-
_$insert(_el$
|
|
3910
|
+
_$insertNode(_el$98, _$createTextNode(`esc close`));
|
|
3911
|
+
_$insert(_el$95, _$createComponent(Show, {
|
|
3807
3912
|
get when() {
|
|
3808
3913
|
return previewID();
|
|
3809
3914
|
},
|
|
3810
3915
|
get children() {
|
|
3811
|
-
var _el$
|
|
3812
|
-
_el$
|
|
3813
|
-
_$insertNode(_el$
|
|
3814
|
-
_$insert(_el$
|
|
3815
|
-
_$insert(_el$
|
|
3816
|
-
_$effect(_$p => _$setProp(_el$
|
|
3916
|
+
var _el$100 = _$createElement("text"),
|
|
3917
|
+
_el$101 = _$createTextNode(` · `);
|
|
3918
|
+
_$insertNode(_el$100, _el$101);
|
|
3919
|
+
_$insert(_el$100, () => prettyDir(selectableEntries()[cursor()].dir, process.env.HOME ?? ""), _el$101);
|
|
3920
|
+
_$insert(_el$100, () => ago(selectableEntries()[cursor()].updated), null);
|
|
3921
|
+
_$effect(_$p => _$setProp(_el$100, "style", {
|
|
3817
3922
|
fg: api.theme.current.textMuted
|
|
3818
3923
|
}, _$p));
|
|
3819
|
-
return _el$
|
|
3924
|
+
return _el$100;
|
|
3820
3925
|
}
|
|
3821
|
-
}), _el$
|
|
3822
|
-
_$setProp(_el$
|
|
3823
|
-
_$setProp(_el$
|
|
3926
|
+
}), _el$102);
|
|
3927
|
+
_$setProp(_el$102, "flexGrow", 1);
|
|
3928
|
+
_$setProp(_el$102, "scrollbarOptions", {
|
|
3824
3929
|
visible: false
|
|
3825
3930
|
});
|
|
3826
|
-
_$insert(_el$
|
|
3931
|
+
_$insert(_el$102, _$createComponent(Show, {
|
|
3827
3932
|
get when() {
|
|
3828
3933
|
return previewID();
|
|
3829
3934
|
},
|
|
3830
3935
|
get fallback() {
|
|
3831
3936
|
return (() => {
|
|
3832
|
-
var _el$
|
|
3833
|
-
_$insertNode(_el$
|
|
3834
|
-
_$effect(_$p => _$setProp(_el$
|
|
3937
|
+
var _el$119 = _$createElement("text");
|
|
3938
|
+
_$insertNode(_el$119, _$createTextNode(`Select a session to preview`));
|
|
3939
|
+
_$effect(_$p => _$setProp(_el$119, "style", {
|
|
3835
3940
|
fg: api.theme.current.textMuted
|
|
3836
3941
|
}, _$p));
|
|
3837
|
-
return _el$
|
|
3942
|
+
return _el$119;
|
|
3838
3943
|
})();
|
|
3839
3944
|
},
|
|
3840
3945
|
get children() {
|
|
@@ -3844,55 +3949,55 @@ const tui = async api => {
|
|
|
3844
3949
|
},
|
|
3845
3950
|
get fallback() {
|
|
3846
3951
|
return (() => {
|
|
3847
|
-
var _el$
|
|
3848
|
-
_$insertNode(_el$
|
|
3849
|
-
_$effect(_$p => _$setProp(_el$
|
|
3952
|
+
var _el$121 = _$createElement("text");
|
|
3953
|
+
_$insertNode(_el$121, _$createTextNode(`Loading…`));
|
|
3954
|
+
_$effect(_$p => _$setProp(_el$121, "style", {
|
|
3850
3955
|
fg: api.theme.current.textMuted
|
|
3851
3956
|
}, _$p));
|
|
3852
|
-
return _el$
|
|
3957
|
+
return _el$121;
|
|
3853
3958
|
})();
|
|
3854
3959
|
},
|
|
3855
3960
|
children: text => getMarkdownStyle(api.theme.current, api.renderer?.nativeSession) ? (() => {
|
|
3856
|
-
var _el$
|
|
3961
|
+
var _el$123 = _$createElement("markdown");
|
|
3857
3962
|
_$effect(_p$ => {
|
|
3858
|
-
var _v$
|
|
3859
|
-
_v$
|
|
3860
|
-
_v$
|
|
3861
|
-
_v$
|
|
3862
|
-
_v$
|
|
3863
|
-
_v$
|
|
3963
|
+
var _v$75 = text(),
|
|
3964
|
+
_v$76 = getMarkdownStyle(api.theme.current, api.renderer?.nativeSession),
|
|
3965
|
+
_v$77 = getTreeSitterClient();
|
|
3966
|
+
_v$75 !== _p$.e && (_p$.e = _$setProp(_el$123, "content", _v$75, _p$.e));
|
|
3967
|
+
_v$76 !== _p$.t && (_p$.t = _$setProp(_el$123, "syntaxStyle", _v$76, _p$.t));
|
|
3968
|
+
_v$77 !== _p$.a && (_p$.a = _$setProp(_el$123, "treeSitterClient", _v$77, _p$.a));
|
|
3864
3969
|
return _p$;
|
|
3865
3970
|
}, {
|
|
3866
3971
|
e: undefined,
|
|
3867
3972
|
t: undefined,
|
|
3868
3973
|
a: undefined
|
|
3869
3974
|
});
|
|
3870
|
-
return _el$
|
|
3975
|
+
return _el$123;
|
|
3871
3976
|
})() : (() => {
|
|
3872
|
-
var _el$
|
|
3873
|
-
_$setProp(_el$
|
|
3874
|
-
_$insert(_el$
|
|
3875
|
-
return _el$
|
|
3977
|
+
var _el$124 = _$createElement("text");
|
|
3978
|
+
_$setProp(_el$124, "wrapMode", "word");
|
|
3979
|
+
_$insert(_el$124, text);
|
|
3980
|
+
return _el$124;
|
|
3876
3981
|
})()
|
|
3877
3982
|
});
|
|
3878
3983
|
}
|
|
3879
3984
|
}));
|
|
3880
|
-
_$insertNode(_el$
|
|
3985
|
+
_$insertNode(_el$103, _$createTextNode(`↑↓ switch session · esc back to picker`));
|
|
3881
3986
|
_$effect(_p$ => {
|
|
3882
|
-
var _v$
|
|
3883
|
-
_v$
|
|
3884
|
-
_v$
|
|
3885
|
-
_v$
|
|
3987
|
+
var _v$48 = dialogHeight(),
|
|
3988
|
+
_v$49 = api.theme.current.backgroundPanel,
|
|
3989
|
+
_v$50 = TextAttributes.BOLD,
|
|
3990
|
+
_v$51 = {
|
|
3886
3991
|
fg: api.theme.current.textMuted
|
|
3887
3992
|
},
|
|
3888
|
-
_v$
|
|
3993
|
+
_v$52 = {
|
|
3889
3994
|
fg: api.theme.current.textMuted
|
|
3890
3995
|
};
|
|
3891
|
-
_v$
|
|
3892
|
-
_v$
|
|
3893
|
-
_v$
|
|
3894
|
-
_v$
|
|
3895
|
-
_v$
|
|
3996
|
+
_v$48 !== _p$.e && (_p$.e = _$setProp(_el$95, "height", _v$48, _p$.e));
|
|
3997
|
+
_v$49 !== _p$.t && (_p$.t = _$setProp(_el$95, "backgroundColor", _v$49, _p$.t));
|
|
3998
|
+
_v$50 !== _p$.a && (_p$.a = _$setProp(_el$97, "attributes", _v$50, _p$.a));
|
|
3999
|
+
_v$51 !== _p$.o && (_p$.o = _$setProp(_el$98, "style", _v$51, _p$.o));
|
|
4000
|
+
_v$52 !== _p$.i && (_p$.i = _$setProp(_el$103, "style", _v$52, _p$.i));
|
|
3896
4001
|
return _p$;
|
|
3897
4002
|
}, {
|
|
3898
4003
|
e: undefined,
|
|
@@ -3901,52 +4006,52 @@ const tui = async api => {
|
|
|
3901
4006
|
o: undefined,
|
|
3902
4007
|
i: undefined
|
|
3903
4008
|
});
|
|
3904
|
-
return _el$
|
|
4009
|
+
return _el$95;
|
|
3905
4010
|
}
|
|
3906
4011
|
}), null);
|
|
3907
4012
|
_$effect(_p$ => {
|
|
3908
|
-
var _v$
|
|
3909
|
-
_v$
|
|
3910
|
-
_v$
|
|
3911
|
-
_v$
|
|
3912
|
-
_v$
|
|
4013
|
+
var _v$53 = dialogHeight(),
|
|
4014
|
+
_v$54 = dialogOffset(),
|
|
4015
|
+
_v$55 = api.theme.current.backgroundPanel,
|
|
4016
|
+
_v$56 = TextAttributes.BOLD,
|
|
4017
|
+
_v$57 = {
|
|
3913
4018
|
fg: api.theme.current.textMuted
|
|
3914
4019
|
},
|
|
3915
|
-
_v$
|
|
4020
|
+
_v$58 = {
|
|
3916
4021
|
fg: api.theme.current.textMuted
|
|
3917
4022
|
},
|
|
3918
|
-
_v$
|
|
3919
|
-
_v$
|
|
3920
|
-
_v$
|
|
3921
|
-
_v$
|
|
3922
|
-
_v$
|
|
3923
|
-
_v$
|
|
4023
|
+
_v$59 = query(),
|
|
4024
|
+
_v$60 = api.theme.current.textMuted,
|
|
4025
|
+
_v$61 = api.theme.current.backgroundPanel,
|
|
4026
|
+
_v$62 = api.theme.current.text,
|
|
4027
|
+
_v$63 = api.theme.current.primary,
|
|
4028
|
+
_v$64 = {
|
|
3924
4029
|
fg: scope() ? api.theme.current.accent : api.theme.current.textMuted
|
|
3925
4030
|
},
|
|
3926
|
-
_v$
|
|
4031
|
+
_v$65 = {
|
|
3927
4032
|
fg: waitingOnly() ? api.theme.current.warning : api.theme.current.textMuted
|
|
3928
4033
|
},
|
|
3929
|
-
_v$
|
|
4034
|
+
_v$66 = {
|
|
3930
4035
|
fg: pinnedOnly() ? api.theme.current.accent : api.theme.current.textMuted
|
|
3931
4036
|
},
|
|
3932
|
-
_v$
|
|
4037
|
+
_v$67 = {
|
|
3933
4038
|
fg: pendingDelete() ? api.theme.current.warning : api.theme.current.textMuted
|
|
3934
4039
|
};
|
|
3935
|
-
_v$
|
|
3936
|
-
_v$
|
|
3937
|
-
_v$
|
|
3938
|
-
_v$
|
|
3939
|
-
_v$
|
|
3940
|
-
_v$
|
|
3941
|
-
_v$
|
|
3942
|
-
_v$
|
|
3943
|
-
_v$
|
|
3944
|
-
_v$
|
|
3945
|
-
_v$
|
|
3946
|
-
_v$
|
|
3947
|
-
_v$
|
|
3948
|
-
_v$
|
|
3949
|
-
_v$
|
|
4040
|
+
_v$53 !== _p$.e && (_p$.e = _$setProp(_el$70, "height", _v$53, _p$.e));
|
|
4041
|
+
_v$54 !== _p$.t && (_p$.t = _$setProp(_el$70, "marginTop", _v$54, _p$.t));
|
|
4042
|
+
_v$55 !== _p$.a && (_p$.a = _$setProp(_el$70, "backgroundColor", _v$55, _p$.a));
|
|
4043
|
+
_v$56 !== _p$.o && (_p$.o = _$setProp(_el$73, "attributes", _v$56, _p$.o));
|
|
4044
|
+
_v$57 !== _p$.i && (_p$.i = _$setProp(_el$75, "style", _v$57, _p$.i));
|
|
4045
|
+
_v$58 !== _p$.n && (_p$.n = _$setProp(_el$78, "style", _v$58, _p$.n));
|
|
4046
|
+
_v$59 !== _p$.s && (_p$.s = _$setProp(_el$81, "value", _v$59, _p$.s));
|
|
4047
|
+
_v$60 !== _p$.h && (_p$.h = _$setProp(_el$81, "placeholderColor", _v$60, _p$.h));
|
|
4048
|
+
_v$61 !== _p$.r && (_p$.r = _$setProp(_el$81, "focusedBackgroundColor", _v$61, _p$.r));
|
|
4049
|
+
_v$62 !== _p$.d && (_p$.d = _$setProp(_el$81, "focusedTextColor", _v$62, _p$.d));
|
|
4050
|
+
_v$63 !== _p$.l && (_p$.l = _$setProp(_el$81, "cursorColor", _v$63, _p$.l));
|
|
4051
|
+
_v$64 !== _p$.u && (_p$.u = _$setProp(_el$85, "style", _v$64, _p$.u));
|
|
4052
|
+
_v$65 !== _p$.c && (_p$.c = _$setProp(_el$86, "style", _v$65, _p$.c));
|
|
4053
|
+
_v$66 !== _p$.w && (_p$.w = _$setProp(_el$87, "style", _v$66, _p$.w));
|
|
4054
|
+
_v$67 !== _p$.m && (_p$.m = _$setProp(_el$92, "style", _v$67, _p$.m));
|
|
3950
4055
|
return _p$;
|
|
3951
4056
|
}, {
|
|
3952
4057
|
e: undefined,
|
|
@@ -3965,7 +4070,7 @@ const tui = async api => {
|
|
|
3965
4070
|
w: undefined,
|
|
3966
4071
|
m: undefined
|
|
3967
4072
|
});
|
|
3968
|
-
return _el$
|
|
4073
|
+
return _el$70;
|
|
3969
4074
|
})(), () => {
|
|
3970
4075
|
cleanup();
|
|
3971
4076
|
});
|
|
@@ -4011,105 +4116,105 @@ const tui = async api => {
|
|
|
4011
4116
|
}]
|
|
4012
4117
|
});
|
|
4013
4118
|
api.ui.dialog.replace(() => (() => {
|
|
4014
|
-
var _el$
|
|
4015
|
-
_el$
|
|
4016
|
-
_el$
|
|
4017
|
-
_el$
|
|
4018
|
-
_el$
|
|
4019
|
-
_el$
|
|
4119
|
+
var _el$125 = _$createElement("box"),
|
|
4120
|
+
_el$126 = _$createElement("text"),
|
|
4121
|
+
_el$127 = _$createTextNode(`Cost digest `),
|
|
4122
|
+
_el$129 = _$createElement("span"),
|
|
4123
|
+
_el$131 = _$createElement("box"),
|
|
4124
|
+
_el$132 = _$createElement("text");
|
|
4125
|
+
_$insertNode(_el$125, _el$126);
|
|
4126
|
+
_$insertNode(_el$125, _el$131);
|
|
4127
|
+
_$setProp(_el$125, "flexDirection", "column");
|
|
4128
|
+
_$setProp(_el$125, "paddingLeft", 4);
|
|
4129
|
+
_$setProp(_el$125, "paddingRight", 4);
|
|
4130
|
+
_$setProp(_el$125, "paddingTop", 1);
|
|
4131
|
+
_$setProp(_el$125, "gap", 1);
|
|
4020
4132
|
_$insertNode(_el$126, _el$127);
|
|
4021
|
-
_$insertNode(_el$126, _el$
|
|
4022
|
-
_$
|
|
4023
|
-
_$
|
|
4024
|
-
_$setProp(_el$126, "paddingRight", 4);
|
|
4025
|
-
_$setProp(_el$126, "paddingTop", 1);
|
|
4026
|
-
_$setProp(_el$126, "gap", 1);
|
|
4027
|
-
_$insertNode(_el$127, _el$128);
|
|
4028
|
-
_$insertNode(_el$127, _el$130);
|
|
4029
|
-
_$insertNode(_el$130, _$createTextNode(`(24h · lifetime)`));
|
|
4030
|
-
_$insert(_el$126, _$createComponent(Show, {
|
|
4133
|
+
_$insertNode(_el$126, _el$129);
|
|
4134
|
+
_$insertNode(_el$129, _$createTextNode(`(24h · lifetime)`));
|
|
4135
|
+
_$insert(_el$125, _$createComponent(Show, {
|
|
4031
4136
|
get when() {
|
|
4032
4137
|
return !failed && rows.length > 0;
|
|
4033
4138
|
},
|
|
4034
4139
|
get fallback() {
|
|
4035
4140
|
return (() => {
|
|
4036
|
-
var _el$
|
|
4037
|
-
_$insert(_el$
|
|
4038
|
-
_$effect(_$p => _$setProp(_el$
|
|
4141
|
+
var _el$134 = _$createElement("text");
|
|
4142
|
+
_$insert(_el$134, failed ? "Cost data unavailable." : "No assistant cost recorded.");
|
|
4143
|
+
_$effect(_$p => _$setProp(_el$134, "style", {
|
|
4039
4144
|
fg: api.theme.current.textMuted
|
|
4040
4145
|
}, _$p));
|
|
4041
|
-
return _el$
|
|
4146
|
+
return _el$134;
|
|
4042
4147
|
})();
|
|
4043
4148
|
},
|
|
4044
4149
|
get children() {
|
|
4045
4150
|
return _$createComponent(For, {
|
|
4046
4151
|
each: rows,
|
|
4047
4152
|
children: row => (() => {
|
|
4048
|
-
var _el$
|
|
4153
|
+
var _el$135 = _$createElement("box"),
|
|
4154
|
+
_el$136 = _$createElement("text"),
|
|
4049
4155
|
_el$137 = _$createElement("text"),
|
|
4050
4156
|
_el$138 = _$createElement("text"),
|
|
4051
|
-
_el$139 = _$
|
|
4052
|
-
_el$140 = _$createTextNode(`
|
|
4053
|
-
_el$141 = _$
|
|
4054
|
-
|
|
4055
|
-
_$insertNode(_el$
|
|
4056
|
-
_$insertNode(_el$
|
|
4057
|
-
_$insertNode(_el$
|
|
4058
|
-
_$
|
|
4059
|
-
_$setProp(_el$
|
|
4060
|
-
_$setProp(_el$136, "
|
|
4157
|
+
_el$139 = _$createTextNode(`(`),
|
|
4158
|
+
_el$140 = _$createTextNode(`)`),
|
|
4159
|
+
_el$141 = _$createElement("text");
|
|
4160
|
+
_$insertNode(_el$135, _el$136);
|
|
4161
|
+
_$insertNode(_el$135, _el$137);
|
|
4162
|
+
_$insertNode(_el$135, _el$138);
|
|
4163
|
+
_$insertNode(_el$135, _el$141);
|
|
4164
|
+
_$setProp(_el$135, "flexDirection", "row");
|
|
4165
|
+
_$setProp(_el$135, "gap", 2);
|
|
4166
|
+
_$setProp(_el$136, "flexShrink", 0);
|
|
4167
|
+
_$insert(_el$136, () => money(row.window));
|
|
4061
4168
|
_$setProp(_el$137, "flexShrink", 0);
|
|
4062
|
-
_$insert(_el$137, () => money(row.
|
|
4169
|
+
_$insert(_el$137, () => money(row.lifetime));
|
|
4170
|
+
_$insertNode(_el$138, _el$139);
|
|
4171
|
+
_$insertNode(_el$138, _el$140);
|
|
4063
4172
|
_$setProp(_el$138, "flexShrink", 0);
|
|
4064
|
-
_$insert(_el$138, () =>
|
|
4065
|
-
_$
|
|
4066
|
-
_$
|
|
4067
|
-
_$setProp(_el$
|
|
4068
|
-
_$insert(_el$
|
|
4069
|
-
_$setProp(_el$142, "flexGrow", 1);
|
|
4070
|
-
_$setProp(_el$142, "flexShrink", 1);
|
|
4071
|
-
_$setProp(_el$142, "wrapMode", "none");
|
|
4072
|
-
_$insert(_el$142, () => prettyDir(row.directory, home));
|
|
4173
|
+
_$insert(_el$138, () => row.sessions, _el$140);
|
|
4174
|
+
_$setProp(_el$141, "flexGrow", 1);
|
|
4175
|
+
_$setProp(_el$141, "flexShrink", 1);
|
|
4176
|
+
_$setProp(_el$141, "wrapMode", "none");
|
|
4177
|
+
_$insert(_el$141, () => prettyDir(row.directory, home));
|
|
4073
4178
|
_$effect(_p$ => {
|
|
4074
|
-
var _v$
|
|
4179
|
+
var _v$82 = {
|
|
4075
4180
|
fg: api.theme.current.success
|
|
4076
4181
|
},
|
|
4077
|
-
_v$
|
|
4182
|
+
_v$83 = {
|
|
4078
4183
|
fg: api.theme.current.textMuted
|
|
4079
4184
|
},
|
|
4080
|
-
_v$
|
|
4185
|
+
_v$84 = {
|
|
4081
4186
|
fg: api.theme.current.textMuted
|
|
4082
4187
|
};
|
|
4083
|
-
_v$
|
|
4084
|
-
_v$
|
|
4085
|
-
_v$
|
|
4188
|
+
_v$82 !== _p$.e && (_p$.e = _$setProp(_el$136, "style", _v$82, _p$.e));
|
|
4189
|
+
_v$83 !== _p$.t && (_p$.t = _$setProp(_el$137, "style", _v$83, _p$.t));
|
|
4190
|
+
_v$84 !== _p$.a && (_p$.a = _$setProp(_el$138, "style", _v$84, _p$.a));
|
|
4086
4191
|
return _p$;
|
|
4087
4192
|
}, {
|
|
4088
4193
|
e: undefined,
|
|
4089
4194
|
t: undefined,
|
|
4090
4195
|
a: undefined
|
|
4091
4196
|
});
|
|
4092
|
-
return _el$
|
|
4197
|
+
return _el$135;
|
|
4093
4198
|
})()
|
|
4094
4199
|
});
|
|
4095
4200
|
}
|
|
4096
|
-
}), _el$
|
|
4097
|
-
_$insertNode(_el$
|
|
4098
|
-
_$setProp(_el$
|
|
4099
|
-
_$insertNode(_el$
|
|
4201
|
+
}), _el$131);
|
|
4202
|
+
_$insertNode(_el$131, _el$132);
|
|
4203
|
+
_$setProp(_el$131, "flexShrink", 0);
|
|
4204
|
+
_$insertNode(_el$132, _$createTextNode(`esc close`));
|
|
4100
4205
|
_$effect(_p$ => {
|
|
4101
|
-
var _v$
|
|
4102
|
-
_v$
|
|
4103
|
-
_v$
|
|
4206
|
+
var _v$78 = api.theme.current.backgroundPanel,
|
|
4207
|
+
_v$79 = TextAttributes.BOLD,
|
|
4208
|
+
_v$80 = {
|
|
4104
4209
|
fg: api.theme.current.textMuted
|
|
4105
4210
|
},
|
|
4106
|
-
_v$
|
|
4211
|
+
_v$81 = {
|
|
4107
4212
|
fg: api.theme.current.textMuted
|
|
4108
4213
|
};
|
|
4109
|
-
_v$
|
|
4110
|
-
_v$
|
|
4111
|
-
_v$
|
|
4112
|
-
_v$
|
|
4214
|
+
_v$78 !== _p$.e && (_p$.e = _$setProp(_el$125, "backgroundColor", _v$78, _p$.e));
|
|
4215
|
+
_v$79 !== _p$.t && (_p$.t = _$setProp(_el$126, "attributes", _v$79, _p$.t));
|
|
4216
|
+
_v$80 !== _p$.a && (_p$.a = _$setProp(_el$129, "style", _v$80, _p$.a));
|
|
4217
|
+
_v$81 !== _p$.o && (_p$.o = _$setProp(_el$132, "style", _v$81, _p$.o));
|
|
4113
4218
|
return _p$;
|
|
4114
4219
|
}, {
|
|
4115
4220
|
e: undefined,
|
|
@@ -4117,7 +4222,7 @@ const tui = async api => {
|
|
|
4117
4222
|
a: undefined,
|
|
4118
4223
|
o: undefined
|
|
4119
4224
|
});
|
|
4120
|
-
return _el$
|
|
4225
|
+
return _el$125;
|
|
4121
4226
|
})(), () => {
|
|
4122
4227
|
disposeKeys();
|
|
4123
4228
|
});
|
|
@@ -4222,79 +4327,79 @@ const tui = async api => {
|
|
|
4222
4327
|
});
|
|
4223
4328
|
const home = process.env.HOME ?? "";
|
|
4224
4329
|
api.ui.dialog.replace(() => (() => {
|
|
4225
|
-
var _el$
|
|
4226
|
-
_el$
|
|
4227
|
-
_el$
|
|
4228
|
-
_el$
|
|
4229
|
-
_el$
|
|
4230
|
-
_el$
|
|
4231
|
-
_el$
|
|
4232
|
-
_el$
|
|
4233
|
-
_el$
|
|
4330
|
+
var _el$142 = _$createElement("box"),
|
|
4331
|
+
_el$143 = _$createElement("text"),
|
|
4332
|
+
_el$144 = _$createTextNode(`Needs input `),
|
|
4333
|
+
_el$146 = _$createElement("span"),
|
|
4334
|
+
_el$147 = _$createTextNode(`(`),
|
|
4335
|
+
_el$148 = _$createTextNode(` · longest waiting first)`),
|
|
4336
|
+
_el$149 = _$createElement("scrollbox"),
|
|
4337
|
+
_el$150 = _$createElement("box"),
|
|
4338
|
+
_el$151 = _$createElement("text");
|
|
4339
|
+
_$insertNode(_el$142, _el$143);
|
|
4340
|
+
_$insertNode(_el$142, _el$149);
|
|
4341
|
+
_$insertNode(_el$142, _el$150);
|
|
4342
|
+
_$setProp(_el$142, "flexDirection", "column");
|
|
4343
|
+
_$setProp(_el$142, "paddingLeft", 4);
|
|
4344
|
+
_$setProp(_el$142, "paddingRight", 4);
|
|
4345
|
+
_$setProp(_el$142, "paddingTop", 1);
|
|
4346
|
+
_$setProp(_el$142, "gap", 1);
|
|
4234
4347
|
_$insertNode(_el$143, _el$144);
|
|
4235
|
-
_$insertNode(_el$143, _el$
|
|
4236
|
-
_$insertNode(_el$
|
|
4237
|
-
_$
|
|
4238
|
-
_$
|
|
4239
|
-
_$setProp(_el$
|
|
4240
|
-
_$setProp(_el$
|
|
4241
|
-
_$setProp(_el$143, "gap", 1);
|
|
4242
|
-
_$insertNode(_el$144, _el$145);
|
|
4243
|
-
_$insertNode(_el$144, _el$147);
|
|
4244
|
-
_$insertNode(_el$147, _el$148);
|
|
4245
|
-
_$insertNode(_el$147, _el$149);
|
|
4246
|
-
_$insert(_el$147, () => items.length, _el$149);
|
|
4247
|
-
_$setProp(_el$150, "flexGrow", 1);
|
|
4248
|
-
_$setProp(_el$150, "scrollbarOptions", {
|
|
4348
|
+
_$insertNode(_el$143, _el$146);
|
|
4349
|
+
_$insertNode(_el$146, _el$147);
|
|
4350
|
+
_$insertNode(_el$146, _el$148);
|
|
4351
|
+
_$insert(_el$146, () => items.length, _el$148);
|
|
4352
|
+
_$setProp(_el$149, "flexGrow", 1);
|
|
4353
|
+
_$setProp(_el$149, "scrollbarOptions", {
|
|
4249
4354
|
visible: false
|
|
4250
4355
|
});
|
|
4251
|
-
_$insert(_el$
|
|
4356
|
+
_$insert(_el$149, _$createComponent(For, {
|
|
4252
4357
|
each: items,
|
|
4253
4358
|
children: (item, index) => (() => {
|
|
4254
|
-
var _el$
|
|
4359
|
+
var _el$153 = _$createElement("box"),
|
|
4360
|
+
_el$154 = _$createElement("text"),
|
|
4255
4361
|
_el$155 = _$createElement("text"),
|
|
4256
4362
|
_el$156 = _$createElement("text"),
|
|
4257
|
-
_el$157 = _$
|
|
4258
|
-
|
|
4259
|
-
_$insertNode(_el$
|
|
4260
|
-
_$insertNode(_el$
|
|
4261
|
-
_$
|
|
4262
|
-
_$setProp(_el$
|
|
4263
|
-
_$setProp(_el$
|
|
4264
|
-
_$setProp(_el$
|
|
4265
|
-
_$setProp(_el$
|
|
4266
|
-
_$setProp(_el$154, "onMouseDown", () => {
|
|
4363
|
+
_el$157 = _$createTextNode(` · `);
|
|
4364
|
+
_$insertNode(_el$153, _el$154);
|
|
4365
|
+
_$insertNode(_el$153, _el$155);
|
|
4366
|
+
_$insertNode(_el$153, _el$156);
|
|
4367
|
+
_$setProp(_el$153, "flexDirection", "row");
|
|
4368
|
+
_$setProp(_el$153, "gap", 2);
|
|
4369
|
+
_$setProp(_el$153, "paddingLeft", 1);
|
|
4370
|
+
_$setProp(_el$153, "paddingRight", 1);
|
|
4371
|
+
_$setProp(_el$153, "onMouseDown", () => {
|
|
4267
4372
|
setCursor(index());
|
|
4268
4373
|
choose(item);
|
|
4269
4374
|
});
|
|
4270
|
-
_$setProp(_el$
|
|
4271
|
-
_$setProp(_el$
|
|
4272
|
-
_$setProp(_el$
|
|
4273
|
-
_$insert(_el$
|
|
4375
|
+
_$setProp(_el$154, "flexGrow", 1);
|
|
4376
|
+
_$setProp(_el$154, "flexShrink", 1);
|
|
4377
|
+
_$setProp(_el$154, "wrapMode", "none");
|
|
4378
|
+
_$insert(_el$154, () => truncate(item.entry.title, 48));
|
|
4379
|
+
_$setProp(_el$155, "flexShrink", 0);
|
|
4380
|
+
_$insert(_el$155, () => item.reason);
|
|
4381
|
+
_$insertNode(_el$156, _el$157);
|
|
4274
4382
|
_$setProp(_el$156, "flexShrink", 0);
|
|
4275
|
-
_$insert(_el$156, () => item.
|
|
4276
|
-
_$
|
|
4277
|
-
|
|
4278
|
-
|
|
4279
|
-
_$insert(_el$157, (() => {
|
|
4280
|
-
var _c$1 = _$memo(() => item.since === undefined);
|
|
4281
|
-
return () => _c$1() ? "time unknown" : `waiting ${ago(item.since)}`;
|
|
4383
|
+
_$insert(_el$156, () => prettyDir(item.entry.dir, home), _el$157);
|
|
4384
|
+
_$insert(_el$156, (() => {
|
|
4385
|
+
var _c$0 = _$memo(() => item.since === undefined);
|
|
4386
|
+
return () => _c$0() ? "time unknown" : `waiting ${ago(item.since)}`;
|
|
4282
4387
|
})(), null);
|
|
4283
4388
|
_$effect(_p$ => {
|
|
4284
|
-
var _v$
|
|
4285
|
-
_v$
|
|
4389
|
+
var _v$90 = index() === cursor() ? api.theme.current.backgroundElement : RGBA.fromInts(0, 0, 0, 0),
|
|
4390
|
+
_v$91 = {
|
|
4286
4391
|
fg: index() === cursor() ? api.theme.current.text : api.theme.current.text
|
|
4287
4392
|
},
|
|
4288
|
-
_v$
|
|
4393
|
+
_v$92 = {
|
|
4289
4394
|
fg: index() === cursor() ? api.theme.current.text : api.theme.current.warning
|
|
4290
4395
|
},
|
|
4291
|
-
_v$
|
|
4396
|
+
_v$93 = {
|
|
4292
4397
|
fg: index() === cursor() ? api.theme.current.text : api.theme.current.textMuted
|
|
4293
4398
|
};
|
|
4294
|
-
_v$
|
|
4295
|
-
_v$
|
|
4296
|
-
_v$
|
|
4297
|
-
_v$
|
|
4399
|
+
_v$90 !== _p$.e && (_p$.e = _$setProp(_el$153, "backgroundColor", _v$90, _p$.e));
|
|
4400
|
+
_v$91 !== _p$.t && (_p$.t = _$setProp(_el$154, "style", _v$91, _p$.t));
|
|
4401
|
+
_v$92 !== _p$.a && (_p$.a = _$setProp(_el$155, "style", _v$92, _p$.a));
|
|
4402
|
+
_v$93 !== _p$.o && (_p$.o = _$setProp(_el$156, "style", _v$93, _p$.o));
|
|
4298
4403
|
return _p$;
|
|
4299
4404
|
}, {
|
|
4300
4405
|
e: undefined,
|
|
@@ -4302,27 +4407,27 @@ const tui = async api => {
|
|
|
4302
4407
|
a: undefined,
|
|
4303
4408
|
o: undefined
|
|
4304
4409
|
});
|
|
4305
|
-
return _el$
|
|
4410
|
+
return _el$153;
|
|
4306
4411
|
})()
|
|
4307
4412
|
}));
|
|
4308
|
-
_$insertNode(_el$
|
|
4309
|
-
_$setProp(_el$
|
|
4310
|
-
_$insertNode(_el$
|
|
4413
|
+
_$insertNode(_el$150, _el$151);
|
|
4414
|
+
_$setProp(_el$150, "flexShrink", 0);
|
|
4415
|
+
_$insertNode(_el$151, _$createTextNode(`↑↓ navigate · enter open · n open next waiting · esc close`));
|
|
4311
4416
|
_$effect(_p$ => {
|
|
4312
|
-
var _v$
|
|
4313
|
-
_v$
|
|
4314
|
-
_v$
|
|
4417
|
+
var _v$85 = api.theme.current.backgroundPanel,
|
|
4418
|
+
_v$86 = TextAttributes.BOLD,
|
|
4419
|
+
_v$87 = {
|
|
4315
4420
|
fg: api.theme.current.textMuted
|
|
4316
4421
|
},
|
|
4317
|
-
_v$
|
|
4318
|
-
_v$
|
|
4422
|
+
_v$88 = Math.max(6, Math.floor(api.renderer.height / 2) - 10),
|
|
4423
|
+
_v$89 = {
|
|
4319
4424
|
fg: api.theme.current.textMuted
|
|
4320
4425
|
};
|
|
4321
|
-
_v$
|
|
4322
|
-
_v$
|
|
4323
|
-
_v$
|
|
4324
|
-
_v$
|
|
4325
|
-
_v$
|
|
4426
|
+
_v$85 !== _p$.e && (_p$.e = _$setProp(_el$142, "backgroundColor", _v$85, _p$.e));
|
|
4427
|
+
_v$86 !== _p$.t && (_p$.t = _$setProp(_el$143, "attributes", _v$86, _p$.t));
|
|
4428
|
+
_v$87 !== _p$.a && (_p$.a = _$setProp(_el$146, "style", _v$87, _p$.a));
|
|
4429
|
+
_v$88 !== _p$.o && (_p$.o = _$setProp(_el$149, "height", _v$88, _p$.o));
|
|
4430
|
+
_v$89 !== _p$.i && (_p$.i = _$setProp(_el$151, "style", _v$89, _p$.i));
|
|
4326
4431
|
return _p$;
|
|
4327
4432
|
}, {
|
|
4328
4433
|
e: undefined,
|
|
@@ -4331,7 +4436,7 @@ const tui = async api => {
|
|
|
4331
4436
|
o: undefined,
|
|
4332
4437
|
i: undefined
|
|
4333
4438
|
});
|
|
4334
|
-
return _el$
|
|
4439
|
+
return _el$142;
|
|
4335
4440
|
})(), () => {
|
|
4336
4441
|
disposeNav();
|
|
4337
4442
|
});
|
|
@@ -4569,7 +4674,7 @@ function createApi(ctx) {
|
|
|
4569
4674
|
}
|
|
4570
4675
|
if (cfg.slots.home_bottom && ctx.options?.showHome !== false) {
|
|
4571
4676
|
slotDisposers.push(ctx.ui.slot({
|
|
4572
|
-
|
|
4677
|
+
append: "prompt.footer",
|
|
4573
4678
|
render: cfg.slots.home_bottom
|
|
4574
4679
|
}));
|
|
4575
4680
|
}
|