@f0rbit/overview 0.2.1 → 0.2.2
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/dist/overview.js +2648 -1111
- package/package.json +2 -2
package/dist/overview.js
CHANGED
|
@@ -15,6 +15,7 @@ var __export = (target, all) => {
|
|
|
15
15
|
};
|
|
16
16
|
|
|
17
17
|
// packages/render/src/overview.tsx
|
|
18
|
+
import { createComponent as _$createComponent19 } from "@opentui/solid";
|
|
18
19
|
import { render } from "@opentui/solid";
|
|
19
20
|
|
|
20
21
|
// node_modules/.bun/@f0rbit+corpus@0.3.5+8e50f884e35f3403/node_modules/@f0rbit/corpus/dist/types.js
|
|
@@ -2494,10 +2495,25 @@ function mergeCliArgs(config, args) {
|
|
|
2494
2495
|
}
|
|
2495
2496
|
|
|
2496
2497
|
// packages/render/src/screens/main-screen.tsx
|
|
2498
|
+
import { memo as _$memo7 } from "@opentui/solid";
|
|
2499
|
+
import { insert as _$insert18 } from "@opentui/solid";
|
|
2500
|
+
import { createComponent as _$createComponent18 } from "@opentui/solid";
|
|
2501
|
+
import { effect as _$effect18 } from "@opentui/solid";
|
|
2502
|
+
import { createTextNode as _$createTextNode } from "@opentui/solid";
|
|
2503
|
+
import { insertNode as _$insertNode17 } from "@opentui/solid";
|
|
2504
|
+
import { setProp as _$setProp18 } from "@opentui/solid";
|
|
2505
|
+
import { createElement as _$createElement18 } from "@opentui/solid";
|
|
2497
2506
|
import { createSignal as createSignal6, createEffect as createEffect5, createMemo as createMemo12, onMount, onCleanup, Show as Show16 } from "solid-js";
|
|
2498
2507
|
import { useKeyboard as useKeyboard4, useTerminalDimensions, useRenderer } from "@opentui/solid";
|
|
2499
2508
|
|
|
2500
2509
|
// packages/render/src/components/git-graph.tsx
|
|
2510
|
+
import { insertNode as _$insertNode } from "@opentui/solid";
|
|
2511
|
+
import { memo as _$memo } from "@opentui/solid";
|
|
2512
|
+
import { effect as _$effect } from "@opentui/solid";
|
|
2513
|
+
import { insert as _$insert } from "@opentui/solid";
|
|
2514
|
+
import { createComponent as _$createComponent } from "@opentui/solid";
|
|
2515
|
+
import { setProp as _$setProp } from "@opentui/solid";
|
|
2516
|
+
import { createElement as _$createElement } from "@opentui/solid";
|
|
2501
2517
|
import { Show, For } from "solid-js";
|
|
2502
2518
|
|
|
2503
2519
|
// packages/render/src/theme/index.ts
|
|
@@ -2543,15 +2559,27 @@ function parseGraphLine(line) {
|
|
|
2543
2559
|
if (graphPart.includes("*")) {
|
|
2544
2560
|
const starIdx = graphPart.indexOf("*");
|
|
2545
2561
|
if (starIdx > 0) {
|
|
2546
|
-
segments.push({
|
|
2562
|
+
segments.push({
|
|
2563
|
+
text: graphPart.slice(0, starIdx),
|
|
2564
|
+
color: theme.fg_dim
|
|
2565
|
+
});
|
|
2547
2566
|
}
|
|
2548
|
-
segments.push({
|
|
2567
|
+
segments.push({
|
|
2568
|
+
text: "*",
|
|
2569
|
+
color: theme.green
|
|
2570
|
+
});
|
|
2549
2571
|
const after = graphPart.slice(starIdx + 1);
|
|
2550
2572
|
if (after) {
|
|
2551
|
-
segments.push({
|
|
2573
|
+
segments.push({
|
|
2574
|
+
text: after,
|
|
2575
|
+
color: theme.fg_dim
|
|
2576
|
+
});
|
|
2552
2577
|
}
|
|
2553
2578
|
} else {
|
|
2554
|
-
segments.push({
|
|
2579
|
+
segments.push({
|
|
2580
|
+
text: graphPart,
|
|
2581
|
+
color: theme.fg_dim
|
|
2582
|
+
});
|
|
2555
2583
|
}
|
|
2556
2584
|
rest = line.slice(graphPart.length);
|
|
2557
2585
|
}
|
|
@@ -2559,104 +2587,211 @@ function parseGraphLine(line) {
|
|
|
2559
2587
|
return segments;
|
|
2560
2588
|
const hashMatch = rest.match(HASH_RE);
|
|
2561
2589
|
if (hashMatch) {
|
|
2562
|
-
segments.push({
|
|
2590
|
+
segments.push({
|
|
2591
|
+
text: hashMatch[0],
|
|
2592
|
+
color: theme.yellow
|
|
2593
|
+
});
|
|
2563
2594
|
rest = rest.slice(hashMatch[0].length);
|
|
2564
2595
|
}
|
|
2565
2596
|
if (!rest)
|
|
2566
2597
|
return segments;
|
|
2567
2598
|
if (rest.startsWith(" ")) {
|
|
2568
|
-
segments.push({
|
|
2599
|
+
segments.push({
|
|
2600
|
+
text: " ",
|
|
2601
|
+
color: theme.fg
|
|
2602
|
+
});
|
|
2569
2603
|
rest = rest.slice(1);
|
|
2570
2604
|
}
|
|
2571
2605
|
const refMatch = rest.match(REF_RE);
|
|
2572
2606
|
if (refMatch) {
|
|
2573
|
-
segments.push({
|
|
2607
|
+
segments.push({
|
|
2608
|
+
text: refMatch[0],
|
|
2609
|
+
color: theme.cyan
|
|
2610
|
+
});
|
|
2574
2611
|
rest = rest.slice(refMatch[0].length);
|
|
2575
2612
|
}
|
|
2576
2613
|
if (rest) {
|
|
2577
|
-
segments.push({
|
|
2614
|
+
segments.push({
|
|
2615
|
+
text: rest,
|
|
2616
|
+
color: theme.fg
|
|
2617
|
+
});
|
|
2578
2618
|
}
|
|
2579
2619
|
return segments;
|
|
2580
2620
|
}
|
|
2581
2621
|
function GraphLine(props) {
|
|
2582
2622
|
const segments = () => parseGraphLine(props.line);
|
|
2583
|
-
return
|
|
2584
|
-
|
|
2585
|
-
|
|
2586
|
-
|
|
2587
|
-
|
|
2588
|
-
|
|
2589
|
-
|
|
2590
|
-
|
|
2591
|
-
|
|
2623
|
+
return (() => {
|
|
2624
|
+
var _el$ = _$createElement("box");
|
|
2625
|
+
_$setProp(_el$, "flexDirection", "row");
|
|
2626
|
+
_$setProp(_el$, "height", 1);
|
|
2627
|
+
_$insert(_el$, _$createComponent(For, {
|
|
2628
|
+
get each() {
|
|
2629
|
+
return segments();
|
|
2630
|
+
},
|
|
2631
|
+
children: (seg) => (() => {
|
|
2632
|
+
var _el$2 = _$createElement("text");
|
|
2633
|
+
_$effect((_p$) => {
|
|
2634
|
+
var { color: _v$, text: _v$2 } = seg;
|
|
2635
|
+
_v$ !== _p$.e && (_p$.e = _$setProp(_el$2, "fg", _v$, _p$.e));
|
|
2636
|
+
_v$2 !== _p$.t && (_p$.t = _$setProp(_el$2, "content", _v$2, _p$.t));
|
|
2637
|
+
return _p$;
|
|
2638
|
+
}, {
|
|
2639
|
+
e: undefined,
|
|
2640
|
+
t: undefined
|
|
2641
|
+
});
|
|
2642
|
+
return _el$2;
|
|
2643
|
+
})()
|
|
2644
|
+
}));
|
|
2645
|
+
return _el$;
|
|
2646
|
+
})();
|
|
2592
2647
|
}
|
|
2593
2648
|
function GitGraph(props) {
|
|
2594
|
-
return
|
|
2595
|
-
|
|
2596
|
-
|
|
2597
|
-
|
|
2598
|
-
|
|
2599
|
-
|
|
2600
|
-
|
|
2601
|
-
|
|
2602
|
-
|
|
2603
|
-
|
|
2604
|
-
|
|
2605
|
-
|
|
2606
|
-
|
|
2607
|
-
|
|
2608
|
-
|
|
2609
|
-
|
|
2610
|
-
|
|
2611
|
-
|
|
2612
|
-
|
|
2613
|
-
|
|
2614
|
-
|
|
2615
|
-
|
|
2616
|
-
|
|
2617
|
-
|
|
2618
|
-
|
|
2619
|
-
|
|
2620
|
-
|
|
2621
|
-
|
|
2649
|
+
return (() => {
|
|
2650
|
+
var _el$3 = _$createElement("box");
|
|
2651
|
+
_$setProp(_el$3, "borderStyle", "rounded");
|
|
2652
|
+
_$setProp(_el$3, "titleAlignment", "left");
|
|
2653
|
+
_$setProp(_el$3, "flexDirection", "column");
|
|
2654
|
+
_$setProp(_el$3, "flexGrow", 1);
|
|
2655
|
+
_$insert(_el$3, _$createComponent(Show, {
|
|
2656
|
+
get when() {
|
|
2657
|
+
return _$memo(() => !!(!props.loading && props.graph))() && props.graph.lines.length > 0;
|
|
2658
|
+
},
|
|
2659
|
+
get fallback() {
|
|
2660
|
+
return (() => {
|
|
2661
|
+
var _el$7 = _$createElement("text");
|
|
2662
|
+
_$effect((_p$) => {
|
|
2663
|
+
var _v$8 = theme.fg_dim, _v$9 = props.loading ? "loading..." : "(no commits)";
|
|
2664
|
+
_v$8 !== _p$.e && (_p$.e = _$setProp(_el$7, "fg", _v$8, _p$.e));
|
|
2665
|
+
_v$9 !== _p$.t && (_p$.t = _$setProp(_el$7, "content", _v$9, _p$.t));
|
|
2666
|
+
return _p$;
|
|
2667
|
+
}, {
|
|
2668
|
+
e: undefined,
|
|
2669
|
+
t: undefined
|
|
2670
|
+
});
|
|
2671
|
+
return _el$7;
|
|
2672
|
+
})();
|
|
2673
|
+
},
|
|
2674
|
+
get children() {
|
|
2675
|
+
return [(() => {
|
|
2676
|
+
var _el$4 = _$createElement("scrollbox");
|
|
2677
|
+
_$setProp(_el$4, "viewportCulling", true);
|
|
2678
|
+
_$setProp(_el$4, "flexGrow", 1);
|
|
2679
|
+
_$insert(_el$4, _$createComponent(For, {
|
|
2680
|
+
get each() {
|
|
2681
|
+
return props.graph.lines;
|
|
2682
|
+
},
|
|
2683
|
+
children: (line) => _$createComponent(GraphLine, {
|
|
2684
|
+
line
|
|
2685
|
+
})
|
|
2686
|
+
}));
|
|
2687
|
+
_$effect((_$p) => _$setProp(_el$4, "focused", props.focused, _$p));
|
|
2688
|
+
return _el$4;
|
|
2689
|
+
})(), (() => {
|
|
2690
|
+
var _el$5 = _$createElement("box"), _el$6 = _$createElement("text");
|
|
2691
|
+
_$insertNode(_el$5, _el$6);
|
|
2692
|
+
_$setProp(_el$5, "height", 1);
|
|
2693
|
+
_$effect((_p$) => {
|
|
2694
|
+
var _v$3 = theme.fg_dim, _v$4 = `(${props.graph.total_lines} commits)`;
|
|
2695
|
+
_v$3 !== _p$.e && (_p$.e = _$setProp(_el$6, "fg", _v$3, _p$.e));
|
|
2696
|
+
_v$4 !== _p$.t && (_p$.t = _$setProp(_el$6, "content", _v$4, _p$.t));
|
|
2697
|
+
return _p$;
|
|
2698
|
+
}, {
|
|
2699
|
+
e: undefined,
|
|
2700
|
+
t: undefined
|
|
2701
|
+
});
|
|
2702
|
+
return _el$5;
|
|
2703
|
+
})()];
|
|
2704
|
+
}
|
|
2705
|
+
}));
|
|
2706
|
+
_$effect((_p$) => {
|
|
2707
|
+
var _v$5 = props.focused ? theme.border_highlight : theme.border, _v$6 = `git graph: ${props.repoName}`, _v$7 = props.height;
|
|
2708
|
+
_v$5 !== _p$.e && (_p$.e = _$setProp(_el$3, "borderColor", _v$5, _p$.e));
|
|
2709
|
+
_v$6 !== _p$.t && (_p$.t = _$setProp(_el$3, "title", _v$6, _p$.t));
|
|
2710
|
+
_v$7 !== _p$.a && (_p$.a = _$setProp(_el$3, "height", _v$7, _p$.a));
|
|
2711
|
+
return _p$;
|
|
2712
|
+
}, {
|
|
2713
|
+
e: undefined,
|
|
2714
|
+
t: undefined,
|
|
2715
|
+
a: undefined
|
|
2716
|
+
});
|
|
2717
|
+
return _el$3;
|
|
2718
|
+
})();
|
|
2622
2719
|
}
|
|
2623
2720
|
// packages/render/src/components/repo-list.tsx
|
|
2721
|
+
import { effect as _$effect3 } from "@opentui/solid";
|
|
2722
|
+
import { insertNode as _$insertNode2 } from "@opentui/solid";
|
|
2723
|
+
import { insert as _$insert3 } from "@opentui/solid";
|
|
2724
|
+
import { createComponent as _$createComponent3 } from "@opentui/solid";
|
|
2725
|
+
import { setProp as _$setProp3 } from "@opentui/solid";
|
|
2726
|
+
import { createElement as _$createElement3 } from "@opentui/solid";
|
|
2624
2727
|
import { createSignal, createMemo, createEffect, For as For3 } from "solid-js";
|
|
2625
2728
|
import { useKeyboard } from "@opentui/solid";
|
|
2626
2729
|
|
|
2627
2730
|
// packages/render/src/components/status-badge.tsx
|
|
2731
|
+
import { effect as _$effect2 } from "@opentui/solid";
|
|
2732
|
+
import { insert as _$insert2 } from "@opentui/solid";
|
|
2733
|
+
import { createComponent as _$createComponent2 } from "@opentui/solid";
|
|
2734
|
+
import { setProp as _$setProp2 } from "@opentui/solid";
|
|
2735
|
+
import { createElement as _$createElement2 } from "@opentui/solid";
|
|
2628
2736
|
import { For as For2 } from "solid-js";
|
|
2629
2737
|
function buildBadgeParts(status) {
|
|
2630
2738
|
const parts = [];
|
|
2631
2739
|
if (status.ocn_status) {
|
|
2632
2740
|
switch (status.ocn_status.status) {
|
|
2633
2741
|
case "busy":
|
|
2634
|
-
parts.push({
|
|
2742
|
+
parts.push({
|
|
2743
|
+
text: "*",
|
|
2744
|
+
color: theme.yellow
|
|
2745
|
+
});
|
|
2635
2746
|
break;
|
|
2636
2747
|
case "prompting":
|
|
2637
|
-
parts.push({
|
|
2748
|
+
parts.push({
|
|
2749
|
+
text: ">",
|
|
2750
|
+
color: theme.magenta
|
|
2751
|
+
});
|
|
2638
2752
|
break;
|
|
2639
2753
|
case "error":
|
|
2640
|
-
parts.push({
|
|
2754
|
+
parts.push({
|
|
2755
|
+
text: "!",
|
|
2756
|
+
color: theme.red
|
|
2757
|
+
});
|
|
2641
2758
|
break;
|
|
2642
2759
|
}
|
|
2643
2760
|
}
|
|
2644
2761
|
if (status.health === "conflict") {
|
|
2645
|
-
parts.push({
|
|
2762
|
+
parts.push({
|
|
2763
|
+
text: "!",
|
|
2764
|
+
color: theme.status.conflict
|
|
2765
|
+
});
|
|
2646
2766
|
} else if (status.health === "clean" && status.modified_count === 0 && status.untracked_count === 0) {
|
|
2647
|
-
parts.push({
|
|
2767
|
+
parts.push({
|
|
2768
|
+
text: "\u2713",
|
|
2769
|
+
color: theme.status.clean
|
|
2770
|
+
});
|
|
2648
2771
|
} else {
|
|
2649
2772
|
if (status.modified_count > 0) {
|
|
2650
|
-
parts.push({
|
|
2773
|
+
parts.push({
|
|
2774
|
+
text: `~${status.modified_count}`,
|
|
2775
|
+
color: theme.status.modified
|
|
2776
|
+
});
|
|
2651
2777
|
}
|
|
2652
2778
|
if (status.untracked_count > 0 && status.modified_count === 0 && status.ahead === 0 && status.behind === 0) {
|
|
2653
|
-
parts.push({
|
|
2779
|
+
parts.push({
|
|
2780
|
+
text: "?",
|
|
2781
|
+
color: theme.status.untracked
|
|
2782
|
+
});
|
|
2654
2783
|
}
|
|
2655
2784
|
if (status.ahead > 0) {
|
|
2656
|
-
parts.push({
|
|
2785
|
+
parts.push({
|
|
2786
|
+
text: `\u2191${status.ahead}`,
|
|
2787
|
+
color: theme.status.ahead
|
|
2788
|
+
});
|
|
2657
2789
|
}
|
|
2658
2790
|
if (status.behind > 0) {
|
|
2659
|
-
parts.push({
|
|
2791
|
+
parts.push({
|
|
2792
|
+
text: `\u2193${status.behind}`,
|
|
2793
|
+
color: theme.status.behind
|
|
2794
|
+
});
|
|
2660
2795
|
}
|
|
2661
2796
|
}
|
|
2662
2797
|
return parts;
|
|
@@ -2665,23 +2800,45 @@ function StatusBadge(props) {
|
|
|
2665
2800
|
const parts = () => {
|
|
2666
2801
|
const s = props.status;
|
|
2667
2802
|
if (!s)
|
|
2668
|
-
return [{
|
|
2803
|
+
return [{
|
|
2804
|
+
text: "\u2026",
|
|
2805
|
+
color: theme.fg_dim
|
|
2806
|
+
}];
|
|
2669
2807
|
return buildBadgeParts(s);
|
|
2670
2808
|
};
|
|
2671
|
-
return
|
|
2672
|
-
|
|
2673
|
-
|
|
2674
|
-
|
|
2675
|
-
|
|
2676
|
-
|
|
2677
|
-
|
|
2678
|
-
|
|
2809
|
+
return (() => {
|
|
2810
|
+
var _el$ = _$createElement2("box");
|
|
2811
|
+
_$setProp2(_el$, "flexDirection", "row");
|
|
2812
|
+
_$insert2(_el$, _$createComponent2(For2, {
|
|
2813
|
+
get each() {
|
|
2814
|
+
return parts();
|
|
2815
|
+
},
|
|
2816
|
+
children: (p) => (() => {
|
|
2817
|
+
var _el$2 = _$createElement2("text");
|
|
2818
|
+
_$effect2((_p$) => {
|
|
2819
|
+
var { color: _v$, text: _v$2 } = p;
|
|
2820
|
+
_v$ !== _p$.e && (_p$.e = _$setProp2(_el$2, "fg", _v$, _p$.e));
|
|
2821
|
+
_v$2 !== _p$.t && (_p$.t = _$setProp2(_el$2, "content", _v$2, _p$.t));
|
|
2822
|
+
return _p$;
|
|
2823
|
+
}, {
|
|
2824
|
+
e: undefined,
|
|
2825
|
+
t: undefined
|
|
2826
|
+
});
|
|
2827
|
+
return _el$2;
|
|
2828
|
+
})()
|
|
2829
|
+
}));
|
|
2830
|
+
return _el$;
|
|
2831
|
+
})();
|
|
2679
2832
|
}
|
|
2680
2833
|
|
|
2681
2834
|
// packages/render/src/components/repo-list.tsx
|
|
2682
2835
|
function flattenTree(nodes, depth = 0) {
|
|
2683
2836
|
return nodes.flatMap((node, i) => {
|
|
2684
|
-
const entry = {
|
|
2837
|
+
const entry = {
|
|
2838
|
+
node,
|
|
2839
|
+
depth,
|
|
2840
|
+
is_last: i === nodes.length - 1
|
|
2841
|
+
};
|
|
2685
2842
|
if (node.type === "directory" && node.expanded && node.children.length > 0) {
|
|
2686
2843
|
return [entry, ...flattenTree(node.children, depth + 1)];
|
|
2687
2844
|
}
|
|
@@ -2763,34 +2920,59 @@ function RepoList(props) {
|
|
|
2763
2920
|
}
|
|
2764
2921
|
}
|
|
2765
2922
|
});
|
|
2766
|
-
return
|
|
2767
|
-
|
|
2768
|
-
|
|
2769
|
-
|
|
2770
|
-
|
|
2771
|
-
|
|
2772
|
-
|
|
2773
|
-
|
|
2774
|
-
|
|
2775
|
-
|
|
2776
|
-
|
|
2777
|
-
|
|
2778
|
-
|
|
2779
|
-
|
|
2780
|
-
|
|
2781
|
-
|
|
2782
|
-
|
|
2783
|
-
|
|
2784
|
-
|
|
2785
|
-
|
|
2786
|
-
|
|
2787
|
-
|
|
2788
|
-
|
|
2789
|
-
|
|
2923
|
+
return (() => {
|
|
2924
|
+
var _el$ = _$createElement3("box");
|
|
2925
|
+
_$setProp3(_el$, "flexDirection", "column");
|
|
2926
|
+
_$setProp3(_el$, "width", "100%");
|
|
2927
|
+
_$setProp3(_el$, "height", "100%");
|
|
2928
|
+
_$insert3(_el$, _$createComponent3(For3, {
|
|
2929
|
+
get each() {
|
|
2930
|
+
return visible();
|
|
2931
|
+
},
|
|
2932
|
+
children: (entry, i) => {
|
|
2933
|
+
const selected = () => i() === selectedIndex();
|
|
2934
|
+
const indent = " ".repeat(entry.depth);
|
|
2935
|
+
const conn = connector(entry.is_last);
|
|
2936
|
+
const prefix = icon(entry.node);
|
|
2937
|
+
const label = `${indent}${conn} ${prefix}${entry.node.name}`;
|
|
2938
|
+
return (() => {
|
|
2939
|
+
var _el$2 = _$createElement3("box"), _el$3 = _$createElement3("text"), _el$4 = _$createElement3("box");
|
|
2940
|
+
_$insertNode2(_el$2, _el$3);
|
|
2941
|
+
_$insertNode2(_el$2, _el$4);
|
|
2942
|
+
_$setProp3(_el$2, "flexDirection", "row");
|
|
2943
|
+
_$setProp3(_el$2, "width", "100%");
|
|
2944
|
+
_$setProp3(_el$2, "height", 1);
|
|
2945
|
+
_$setProp3(_el$3, "content", label);
|
|
2946
|
+
_$setProp3(_el$4, "flexGrow", 1);
|
|
2947
|
+
_$insert3(_el$2, _$createComponent3(StatusBadge, {
|
|
2948
|
+
get status() {
|
|
2949
|
+
return entry.node.status;
|
|
2950
|
+
}
|
|
2951
|
+
}), null);
|
|
2952
|
+
_$effect3((_p$) => {
|
|
2953
|
+
var _v$ = selected() ? theme.selection : undefined, _v$2 = selected() ? theme.fg : theme.fg_dark;
|
|
2954
|
+
_v$ !== _p$.e && (_p$.e = _$setProp3(_el$2, "backgroundColor", _v$, _p$.e));
|
|
2955
|
+
_v$2 !== _p$.t && (_p$.t = _$setProp3(_el$3, "fg", _v$2, _p$.t));
|
|
2956
|
+
return _p$;
|
|
2957
|
+
}, {
|
|
2958
|
+
e: undefined,
|
|
2959
|
+
t: undefined
|
|
2960
|
+
});
|
|
2961
|
+
return _el$2;
|
|
2962
|
+
})();
|
|
2963
|
+
}
|
|
2790
2964
|
}));
|
|
2791
|
-
|
|
2965
|
+
return _el$;
|
|
2966
|
+
})();
|
|
2792
2967
|
}
|
|
2793
2968
|
// packages/render/src/components/widget-container.tsx
|
|
2969
|
+
import { effect as _$effect15 } from "@opentui/solid";
|
|
2970
|
+
import { insertNode as _$insertNode14 } from "@opentui/solid";
|
|
2971
|
+
import { insert as _$insert15 } from "@opentui/solid";
|
|
2972
|
+
import { createComponent as _$createComponent15 } from "@opentui/solid";
|
|
2973
|
+
import { use as _$use } from "@opentui/solid";
|
|
2974
|
+
import { setProp as _$setProp15 } from "@opentui/solid";
|
|
2975
|
+
import { createElement as _$createElement15 } from "@opentui/solid";
|
|
2794
2976
|
import { For as For11, Show as Show13, createMemo as createMemo10, createSignal as createSignal5, createEffect as createEffect4, on } from "solid-js";
|
|
2795
2977
|
import { useKeyboard as useKeyboard2 } from "@opentui/solid";
|
|
2796
2978
|
|
|
@@ -2804,6 +2986,12 @@ function getWidget(id) {
|
|
|
2804
2986
|
}
|
|
2805
2987
|
|
|
2806
2988
|
// packages/render/src/components/widgets/git-status.tsx
|
|
2989
|
+
import { insertNode as _$insertNode3 } from "@opentui/solid";
|
|
2990
|
+
import { effect as _$effect4 } from "@opentui/solid";
|
|
2991
|
+
import { insert as _$insert4 } from "@opentui/solid";
|
|
2992
|
+
import { createComponent as _$createComponent4 } from "@opentui/solid";
|
|
2993
|
+
import { setProp as _$setProp4 } from "@opentui/solid";
|
|
2994
|
+
import { createElement as _$createElement4 } from "@opentui/solid";
|
|
2807
2995
|
import { Show as Show2 } from "solid-js";
|
|
2808
2996
|
|
|
2809
2997
|
// packages/render/src/lib/format.ts
|
|
@@ -2845,7 +3033,10 @@ function formatRelativeTime(timestamp) {
|
|
|
2845
3033
|
}
|
|
2846
3034
|
|
|
2847
3035
|
// packages/render/src/components/widgets/git-status.tsx
|
|
2848
|
-
var size_hint = {
|
|
3036
|
+
var size_hint = {
|
|
3037
|
+
span: "third",
|
|
3038
|
+
min_height: 2
|
|
3039
|
+
};
|
|
2849
3040
|
var health_color = {
|
|
2850
3041
|
clean: theme.green,
|
|
2851
3042
|
dirty: theme.yellow,
|
|
@@ -2867,99 +3058,239 @@ function healthIndicator(health) {
|
|
|
2867
3058
|
}
|
|
2868
3059
|
function GitStatusWidget(props) {
|
|
2869
3060
|
const s = () => props.status;
|
|
2870
|
-
return
|
|
2871
|
-
|
|
2872
|
-
|
|
2873
|
-
|
|
2874
|
-
|
|
2875
|
-
|
|
2876
|
-
|
|
2877
|
-
|
|
2878
|
-
|
|
2879
|
-
|
|
2880
|
-
|
|
2881
|
-
|
|
2882
|
-
|
|
2883
|
-
|
|
2884
|
-
|
|
2885
|
-
|
|
2886
|
-
|
|
2887
|
-
|
|
2888
|
-
|
|
2889
|
-
|
|
2890
|
-
|
|
2891
|
-
|
|
2892
|
-
|
|
2893
|
-
|
|
2894
|
-
|
|
2895
|
-
|
|
2896
|
-
|
|
2897
|
-
|
|
2898
|
-
|
|
2899
|
-
|
|
2900
|
-
|
|
2901
|
-
|
|
2902
|
-
|
|
2903
|
-
|
|
2904
|
-
|
|
2905
|
-
|
|
2906
|
-
|
|
2907
|
-
|
|
2908
|
-
|
|
2909
|
-
|
|
2910
|
-
|
|
2911
|
-
|
|
2912
|
-
|
|
2913
|
-
|
|
2914
|
-
|
|
2915
|
-
|
|
2916
|
-
|
|
2917
|
-
|
|
2918
|
-
|
|
2919
|
-
|
|
2920
|
-
|
|
2921
|
-
|
|
2922
|
-
|
|
2923
|
-
|
|
2924
|
-
|
|
2925
|
-
|
|
2926
|
-
|
|
2927
|
-
|
|
2928
|
-
|
|
2929
|
-
|
|
2930
|
-
|
|
2931
|
-
|
|
2932
|
-
|
|
2933
|
-
|
|
2934
|
-
|
|
2935
|
-
|
|
2936
|
-
|
|
2937
|
-
|
|
2938
|
-
|
|
2939
|
-
|
|
2940
|
-
|
|
2941
|
-
|
|
2942
|
-
|
|
2943
|
-
|
|
2944
|
-
|
|
2945
|
-
|
|
2946
|
-
|
|
2947
|
-
|
|
2948
|
-
|
|
2949
|
-
|
|
2950
|
-
|
|
2951
|
-
|
|
2952
|
-
|
|
2953
|
-
|
|
2954
|
-
|
|
2955
|
-
|
|
2956
|
-
|
|
2957
|
-
|
|
2958
|
-
|
|
2959
|
-
|
|
2960
|
-
|
|
2961
|
-
|
|
2962
|
-
|
|
3061
|
+
return (() => {
|
|
3062
|
+
var _el$ = _$createElement4("box");
|
|
3063
|
+
_$setProp4(_el$, "flexDirection", "column");
|
|
3064
|
+
_$insert4(_el$, _$createComponent4(Show2, {
|
|
3065
|
+
get when() {
|
|
3066
|
+
return s();
|
|
3067
|
+
},
|
|
3068
|
+
get fallback() {
|
|
3069
|
+
return (() => {
|
|
3070
|
+
var _el$2 = _$createElement4("text");
|
|
3071
|
+
_$setProp4(_el$2, "content", "no repo selected");
|
|
3072
|
+
_$effect4((_$p) => _$setProp4(_el$2, "fg", theme.fg_dim, _$p));
|
|
3073
|
+
return _el$2;
|
|
3074
|
+
})();
|
|
3075
|
+
},
|
|
3076
|
+
children: (status) => {
|
|
3077
|
+
const color = () => health_color[status().health];
|
|
3078
|
+
const has_sync = () => status().ahead > 0 || status().behind > 0;
|
|
3079
|
+
const has_wt = () => status().modified_count > 0 || status().staged_count > 0;
|
|
3080
|
+
const has_extra = () => status().untracked_count > 0 || status().conflict_count > 0;
|
|
3081
|
+
const has_stash = () => status().stash_count > 0;
|
|
3082
|
+
return [(() => {
|
|
3083
|
+
var _el$3 = _$createElement4("box"), _el$4 = _$createElement4("text"), _el$5 = _$createElement4("text");
|
|
3084
|
+
_$insertNode3(_el$3, _el$4);
|
|
3085
|
+
_$insertNode3(_el$3, _el$5);
|
|
3086
|
+
_$setProp4(_el$3, "flexDirection", "row");
|
|
3087
|
+
_$setProp4(_el$3, "height", 1);
|
|
3088
|
+
_$setProp4(_el$3, "gap", 1);
|
|
3089
|
+
_$effect4((_p$) => {
|
|
3090
|
+
var _v$ = color(), _v$2 = healthIndicator(status().health), _v$3 = theme.cyan, _v$4 = status().current_branch;
|
|
3091
|
+
_v$ !== _p$.e && (_p$.e = _$setProp4(_el$4, "fg", _v$, _p$.e));
|
|
3092
|
+
_v$2 !== _p$.t && (_p$.t = _$setProp4(_el$4, "content", _v$2, _p$.t));
|
|
3093
|
+
_v$3 !== _p$.a && (_p$.a = _$setProp4(_el$5, "fg", _v$3, _p$.a));
|
|
3094
|
+
_v$4 !== _p$.o && (_p$.o = _$setProp4(_el$5, "content", _v$4, _p$.o));
|
|
3095
|
+
return _p$;
|
|
3096
|
+
}, {
|
|
3097
|
+
e: undefined,
|
|
3098
|
+
t: undefined,
|
|
3099
|
+
a: undefined,
|
|
3100
|
+
o: undefined
|
|
3101
|
+
});
|
|
3102
|
+
return _el$3;
|
|
3103
|
+
})(), _$createComponent4(Show2, {
|
|
3104
|
+
get when() {
|
|
3105
|
+
return has_sync();
|
|
3106
|
+
},
|
|
3107
|
+
get fallback() {
|
|
3108
|
+
return (() => {
|
|
3109
|
+
var _el$16 = _$createElement4("box"), _el$17 = _$createElement4("text");
|
|
3110
|
+
_$insertNode3(_el$16, _el$17);
|
|
3111
|
+
_$setProp4(_el$16, "flexDirection", "row");
|
|
3112
|
+
_$setProp4(_el$16, "height", 1);
|
|
3113
|
+
_$setProp4(_el$17, "content", "up to date");
|
|
3114
|
+
_$effect4((_$p) => _$setProp4(_el$17, "fg", theme.fg_dim, _$p));
|
|
3115
|
+
return _el$16;
|
|
3116
|
+
})();
|
|
3117
|
+
},
|
|
3118
|
+
get children() {
|
|
3119
|
+
var _el$6 = _$createElement4("box");
|
|
3120
|
+
_$setProp4(_el$6, "flexDirection", "row");
|
|
3121
|
+
_$setProp4(_el$6, "height", 1);
|
|
3122
|
+
_$setProp4(_el$6, "gap", 2);
|
|
3123
|
+
_$insert4(_el$6, _$createComponent4(Show2, {
|
|
3124
|
+
get when() {
|
|
3125
|
+
return status().ahead > 0;
|
|
3126
|
+
},
|
|
3127
|
+
get children() {
|
|
3128
|
+
var _el$7 = _$createElement4("text");
|
|
3129
|
+
_$effect4((_p$) => {
|
|
3130
|
+
var _v$5 = theme.status.ahead, _v$6 = `\u2191${status().ahead} ahead`;
|
|
3131
|
+
_v$5 !== _p$.e && (_p$.e = _$setProp4(_el$7, "fg", _v$5, _p$.e));
|
|
3132
|
+
_v$6 !== _p$.t && (_p$.t = _$setProp4(_el$7, "content", _v$6, _p$.t));
|
|
3133
|
+
return _p$;
|
|
3134
|
+
}, {
|
|
3135
|
+
e: undefined,
|
|
3136
|
+
t: undefined
|
|
3137
|
+
});
|
|
3138
|
+
return _el$7;
|
|
3139
|
+
}
|
|
3140
|
+
}), null);
|
|
3141
|
+
_$insert4(_el$6, _$createComponent4(Show2, {
|
|
3142
|
+
get when() {
|
|
3143
|
+
return status().behind > 0;
|
|
3144
|
+
},
|
|
3145
|
+
get children() {
|
|
3146
|
+
var _el$8 = _$createElement4("text");
|
|
3147
|
+
_$effect4((_p$) => {
|
|
3148
|
+
var _v$7 = theme.status.behind, _v$8 = `\u2193${status().behind} behind`;
|
|
3149
|
+
_v$7 !== _p$.e && (_p$.e = _$setProp4(_el$8, "fg", _v$7, _p$.e));
|
|
3150
|
+
_v$8 !== _p$.t && (_p$.t = _$setProp4(_el$8, "content", _v$8, _p$.t));
|
|
3151
|
+
return _p$;
|
|
3152
|
+
}, {
|
|
3153
|
+
e: undefined,
|
|
3154
|
+
t: undefined
|
|
3155
|
+
});
|
|
3156
|
+
return _el$8;
|
|
3157
|
+
}
|
|
3158
|
+
}), null);
|
|
3159
|
+
return _el$6;
|
|
3160
|
+
}
|
|
3161
|
+
}), _$createComponent4(Show2, {
|
|
3162
|
+
get when() {
|
|
3163
|
+
return has_wt();
|
|
3164
|
+
},
|
|
3165
|
+
get children() {
|
|
3166
|
+
var _el$9 = _$createElement4("box");
|
|
3167
|
+
_$setProp4(_el$9, "flexDirection", "row");
|
|
3168
|
+
_$setProp4(_el$9, "height", 1);
|
|
3169
|
+
_$setProp4(_el$9, "gap", 2);
|
|
3170
|
+
_$insert4(_el$9, _$createComponent4(Show2, {
|
|
3171
|
+
get when() {
|
|
3172
|
+
return status().modified_count > 0;
|
|
3173
|
+
},
|
|
3174
|
+
get children() {
|
|
3175
|
+
var _el$0 = _$createElement4("text");
|
|
3176
|
+
_$effect4((_p$) => {
|
|
3177
|
+
var _v$9 = theme.status.modified, _v$0 = `~${status().modified_count} mod`;
|
|
3178
|
+
_v$9 !== _p$.e && (_p$.e = _$setProp4(_el$0, "fg", _v$9, _p$.e));
|
|
3179
|
+
_v$0 !== _p$.t && (_p$.t = _$setProp4(_el$0, "content", _v$0, _p$.t));
|
|
3180
|
+
return _p$;
|
|
3181
|
+
}, {
|
|
3182
|
+
e: undefined,
|
|
3183
|
+
t: undefined
|
|
3184
|
+
});
|
|
3185
|
+
return _el$0;
|
|
3186
|
+
}
|
|
3187
|
+
}), null);
|
|
3188
|
+
_$insert4(_el$9, _$createComponent4(Show2, {
|
|
3189
|
+
get when() {
|
|
3190
|
+
return status().staged_count > 0;
|
|
3191
|
+
},
|
|
3192
|
+
get children() {
|
|
3193
|
+
var _el$1 = _$createElement4("text");
|
|
3194
|
+
_$effect4((_p$) => {
|
|
3195
|
+
var _v$1 = theme.green, _v$10 = `+${status().staged_count} staged`;
|
|
3196
|
+
_v$1 !== _p$.e && (_p$.e = _$setProp4(_el$1, "fg", _v$1, _p$.e));
|
|
3197
|
+
_v$10 !== _p$.t && (_p$.t = _$setProp4(_el$1, "content", _v$10, _p$.t));
|
|
3198
|
+
return _p$;
|
|
3199
|
+
}, {
|
|
3200
|
+
e: undefined,
|
|
3201
|
+
t: undefined
|
|
3202
|
+
});
|
|
3203
|
+
return _el$1;
|
|
3204
|
+
}
|
|
3205
|
+
}), null);
|
|
3206
|
+
return _el$9;
|
|
3207
|
+
}
|
|
3208
|
+
}), _$createComponent4(Show2, {
|
|
3209
|
+
get when() {
|
|
3210
|
+
return has_extra();
|
|
3211
|
+
},
|
|
3212
|
+
get children() {
|
|
3213
|
+
var _el$10 = _$createElement4("box");
|
|
3214
|
+
_$setProp4(_el$10, "flexDirection", "row");
|
|
3215
|
+
_$setProp4(_el$10, "height", 1);
|
|
3216
|
+
_$setProp4(_el$10, "gap", 2);
|
|
3217
|
+
_$insert4(_el$10, _$createComponent4(Show2, {
|
|
3218
|
+
get when() {
|
|
3219
|
+
return status().untracked_count > 0;
|
|
3220
|
+
},
|
|
3221
|
+
get children() {
|
|
3222
|
+
var _el$11 = _$createElement4("text");
|
|
3223
|
+
_$effect4((_p$) => {
|
|
3224
|
+
var _v$11 = theme.status.untracked, _v$12 = `?${status().untracked_count} untracked`;
|
|
3225
|
+
_v$11 !== _p$.e && (_p$.e = _$setProp4(_el$11, "fg", _v$11, _p$.e));
|
|
3226
|
+
_v$12 !== _p$.t && (_p$.t = _$setProp4(_el$11, "content", _v$12, _p$.t));
|
|
3227
|
+
return _p$;
|
|
3228
|
+
}, {
|
|
3229
|
+
e: undefined,
|
|
3230
|
+
t: undefined
|
|
3231
|
+
});
|
|
3232
|
+
return _el$11;
|
|
3233
|
+
}
|
|
3234
|
+
}), null);
|
|
3235
|
+
_$insert4(_el$10, _$createComponent4(Show2, {
|
|
3236
|
+
get when() {
|
|
3237
|
+
return status().conflict_count > 0;
|
|
3238
|
+
},
|
|
3239
|
+
get children() {
|
|
3240
|
+
var _el$12 = _$createElement4("text");
|
|
3241
|
+
_$effect4((_p$) => {
|
|
3242
|
+
var _v$13 = theme.status.conflict, _v$14 = `!${status().conflict_count} conflicts`;
|
|
3243
|
+
_v$13 !== _p$.e && (_p$.e = _$setProp4(_el$12, "fg", _v$13, _p$.e));
|
|
3244
|
+
_v$14 !== _p$.t && (_p$.t = _$setProp4(_el$12, "content", _v$14, _p$.t));
|
|
3245
|
+
return _p$;
|
|
3246
|
+
}, {
|
|
3247
|
+
e: undefined,
|
|
3248
|
+
t: undefined
|
|
3249
|
+
});
|
|
3250
|
+
return _el$12;
|
|
3251
|
+
}
|
|
3252
|
+
}), null);
|
|
3253
|
+
return _el$10;
|
|
3254
|
+
}
|
|
3255
|
+
}), (() => {
|
|
3256
|
+
var _el$13 = _$createElement4("box"), _el$15 = _$createElement4("text");
|
|
3257
|
+
_$insertNode3(_el$13, _el$15);
|
|
3258
|
+
_$setProp4(_el$13, "flexDirection", "row");
|
|
3259
|
+
_$setProp4(_el$13, "height", 1);
|
|
3260
|
+
_$setProp4(_el$13, "gap", 2);
|
|
3261
|
+
_$insert4(_el$13, _$createComponent4(Show2, {
|
|
3262
|
+
get when() {
|
|
3263
|
+
return has_stash();
|
|
3264
|
+
},
|
|
3265
|
+
get children() {
|
|
3266
|
+
var _el$14 = _$createElement4("text");
|
|
3267
|
+
_$effect4((_p$) => {
|
|
3268
|
+
var _v$15 = theme.status.stash, _v$16 = `\u2702 ${status().stash_count} stash`;
|
|
3269
|
+
_v$15 !== _p$.e && (_p$.e = _$setProp4(_el$14, "fg", _v$15, _p$.e));
|
|
3270
|
+
_v$16 !== _p$.t && (_p$.t = _$setProp4(_el$14, "content", _v$16, _p$.t));
|
|
3271
|
+
return _p$;
|
|
3272
|
+
}, {
|
|
3273
|
+
e: undefined,
|
|
3274
|
+
t: undefined
|
|
3275
|
+
});
|
|
3276
|
+
return _el$14;
|
|
3277
|
+
}
|
|
3278
|
+
}), _el$15);
|
|
3279
|
+
_$effect4((_p$) => {
|
|
3280
|
+
var _v$17 = theme.fg_dim, _v$18 = formatRelativeTime(status().head_time);
|
|
3281
|
+
_v$17 !== _p$.e && (_p$.e = _$setProp4(_el$15, "fg", _v$17, _p$.e));
|
|
3282
|
+
_v$18 !== _p$.t && (_p$.t = _$setProp4(_el$15, "content", _v$18, _p$.t));
|
|
3283
|
+
return _p$;
|
|
3284
|
+
}, {
|
|
3285
|
+
e: undefined,
|
|
3286
|
+
t: undefined
|
|
3287
|
+
});
|
|
3288
|
+
return _el$13;
|
|
3289
|
+
})()];
|
|
3290
|
+
}
|
|
3291
|
+
}));
|
|
3292
|
+
return _el$;
|
|
3293
|
+
})();
|
|
2963
3294
|
}
|
|
2964
3295
|
registerWidget({
|
|
2965
3296
|
id: "git-status",
|
|
@@ -2969,20 +3300,56 @@ registerWidget({
|
|
|
2969
3300
|
});
|
|
2970
3301
|
|
|
2971
3302
|
// packages/render/src/components/widgets/file-changes.tsx
|
|
3303
|
+
import { insert as _$insert5 } from "@opentui/solid";
|
|
3304
|
+
import { createComponent as _$createComponent5 } from "@opentui/solid";
|
|
3305
|
+
import { effect as _$effect5 } from "@opentui/solid";
|
|
3306
|
+
import { insertNode as _$insertNode4 } from "@opentui/solid";
|
|
3307
|
+
import { setProp as _$setProp5 } from "@opentui/solid";
|
|
3308
|
+
import { createElement as _$createElement5 } from "@opentui/solid";
|
|
2972
3309
|
import { For as For4, Show as Show3 } from "solid-js";
|
|
2973
|
-
var size_hint2 = {
|
|
3310
|
+
var size_hint2 = {
|
|
3311
|
+
span: "half",
|
|
3312
|
+
min_height: 2
|
|
3313
|
+
};
|
|
2974
3314
|
function statusIcon(change) {
|
|
2975
3315
|
const icons = {
|
|
2976
|
-
modified: {
|
|
2977
|
-
|
|
2978
|
-
|
|
2979
|
-
|
|
2980
|
-
|
|
2981
|
-
|
|
2982
|
-
|
|
2983
|
-
|
|
3316
|
+
modified: {
|
|
3317
|
+
icon: "M",
|
|
3318
|
+
color: theme.status.modified
|
|
3319
|
+
},
|
|
3320
|
+
added: {
|
|
3321
|
+
icon: "A",
|
|
3322
|
+
color: theme.green
|
|
3323
|
+
},
|
|
3324
|
+
deleted: {
|
|
3325
|
+
icon: "D",
|
|
3326
|
+
color: theme.red
|
|
3327
|
+
},
|
|
3328
|
+
renamed: {
|
|
3329
|
+
icon: "R",
|
|
3330
|
+
color: theme.cyan
|
|
3331
|
+
},
|
|
3332
|
+
copied: {
|
|
3333
|
+
icon: "C",
|
|
3334
|
+
color: theme.magenta
|
|
3335
|
+
},
|
|
3336
|
+
untracked: {
|
|
3337
|
+
icon: "?",
|
|
3338
|
+
color: theme.status.untracked
|
|
3339
|
+
},
|
|
3340
|
+
ignored: {
|
|
3341
|
+
icon: "!",
|
|
3342
|
+
color: theme.fg_dim
|
|
3343
|
+
},
|
|
3344
|
+
conflicted: {
|
|
3345
|
+
icon: "!",
|
|
3346
|
+
color: theme.status.conflict
|
|
3347
|
+
}
|
|
3348
|
+
};
|
|
3349
|
+
return icons[change.status] ?? {
|
|
3350
|
+
icon: " ",
|
|
3351
|
+
color: theme.fg
|
|
2984
3352
|
};
|
|
2985
|
-
return icons[change.status] ?? { icon: " ", color: theme.fg };
|
|
2986
3353
|
}
|
|
2987
3354
|
function basename3(path) {
|
|
2988
3355
|
const parts = path.split("/");
|
|
@@ -2991,46 +3358,92 @@ function basename3(path) {
|
|
|
2991
3358
|
function FileChangesWidget(props) {
|
|
2992
3359
|
const changes = () => props.status?.changes ?? [];
|
|
2993
3360
|
const header = () => `File Changes (${changes().length})`;
|
|
2994
|
-
return
|
|
2995
|
-
|
|
2996
|
-
|
|
2997
|
-
|
|
2998
|
-
|
|
2999
|
-
|
|
3000
|
-
|
|
3001
|
-
|
|
3002
|
-
|
|
3003
|
-
|
|
3004
|
-
|
|
3005
|
-
|
|
3006
|
-
|
|
3007
|
-
|
|
3008
|
-
|
|
3009
|
-
|
|
3010
|
-
|
|
3011
|
-
|
|
3012
|
-
|
|
3013
|
-
|
|
3014
|
-
|
|
3015
|
-
|
|
3016
|
-
|
|
3017
|
-
|
|
3018
|
-
|
|
3019
|
-
|
|
3020
|
-
|
|
3021
|
-
|
|
3022
|
-
|
|
3023
|
-
|
|
3024
|
-
|
|
3025
|
-
|
|
3026
|
-
|
|
3027
|
-
|
|
3028
|
-
|
|
3029
|
-
|
|
3030
|
-
|
|
3031
|
-
|
|
3361
|
+
return (() => {
|
|
3362
|
+
var _el$ = _$createElement5("box");
|
|
3363
|
+
_$setProp5(_el$, "flexDirection", "column");
|
|
3364
|
+
_$insert5(_el$, _$createComponent5(Show3, {
|
|
3365
|
+
get when() {
|
|
3366
|
+
return props.status;
|
|
3367
|
+
},
|
|
3368
|
+
get fallback() {
|
|
3369
|
+
return (() => {
|
|
3370
|
+
var _el$4 = _$createElement5("text");
|
|
3371
|
+
_$setProp5(_el$4, "content", "no repo selected");
|
|
3372
|
+
_$effect5((_$p) => _$setProp5(_el$4, "fg", theme.fg_dim, _$p));
|
|
3373
|
+
return _el$4;
|
|
3374
|
+
})();
|
|
3375
|
+
},
|
|
3376
|
+
get children() {
|
|
3377
|
+
return [(() => {
|
|
3378
|
+
var _el$2 = _$createElement5("box"), _el$3 = _$createElement5("text");
|
|
3379
|
+
_$insertNode4(_el$2, _el$3);
|
|
3380
|
+
_$setProp5(_el$2, "flexDirection", "row");
|
|
3381
|
+
_$setProp5(_el$2, "height", 1);
|
|
3382
|
+
_$effect5((_p$) => {
|
|
3383
|
+
var _v$ = theme.fg, _v$2 = header();
|
|
3384
|
+
_v$ !== _p$.e && (_p$.e = _$setProp5(_el$3, "fg", _v$, _p$.e));
|
|
3385
|
+
_v$2 !== _p$.t && (_p$.t = _$setProp5(_el$3, "content", _v$2, _p$.t));
|
|
3386
|
+
return _p$;
|
|
3387
|
+
}, {
|
|
3388
|
+
e: undefined,
|
|
3389
|
+
t: undefined
|
|
3390
|
+
});
|
|
3391
|
+
return _el$2;
|
|
3392
|
+
})(), _$createComponent5(Show3, {
|
|
3393
|
+
get when() {
|
|
3394
|
+
return changes().length > 0;
|
|
3395
|
+
},
|
|
3396
|
+
get fallback() {
|
|
3397
|
+
return (() => {
|
|
3398
|
+
var _el$5 = _$createElement5("text");
|
|
3399
|
+
_$setProp5(_el$5, "content", "(no changes)");
|
|
3400
|
+
_$effect5((_$p) => _$setProp5(_el$5, "fg", theme.fg_dim, _$p));
|
|
3401
|
+
return _el$5;
|
|
3402
|
+
})();
|
|
3403
|
+
},
|
|
3404
|
+
get children() {
|
|
3405
|
+
return _$createComponent5(For4, {
|
|
3406
|
+
get each() {
|
|
3407
|
+
return changes();
|
|
3408
|
+
},
|
|
3409
|
+
children: (change) => {
|
|
3410
|
+
const si = () => statusIcon(change);
|
|
3411
|
+
const staged_prefix = () => change.staged ? "+" : " ";
|
|
3412
|
+
const label = () => truncate(basename3(change.path), props.width - 5);
|
|
3413
|
+
return (() => {
|
|
3414
|
+
var _el$6 = _$createElement5("box"), _el$7 = _$createElement5("text"), _el$8 = _$createElement5("text"), _el$9 = _$createElement5("text");
|
|
3415
|
+
_$insertNode4(_el$6, _el$7);
|
|
3416
|
+
_$insertNode4(_el$6, _el$8);
|
|
3417
|
+
_$insertNode4(_el$6, _el$9);
|
|
3418
|
+
_$setProp5(_el$6, "flexDirection", "row");
|
|
3419
|
+
_$setProp5(_el$6, "height", 1);
|
|
3420
|
+
_$effect5((_p$) => {
|
|
3421
|
+
var _v$3 = change.staged ? theme.green : si().color, _v$4 = staged_prefix(), _v$5 = si().color, _v$6 = si().icon + " ", _v$7 = theme.fg, _v$8 = label();
|
|
3422
|
+
_v$3 !== _p$.e && (_p$.e = _$setProp5(_el$7, "fg", _v$3, _p$.e));
|
|
3423
|
+
_v$4 !== _p$.t && (_p$.t = _$setProp5(_el$7, "content", _v$4, _p$.t));
|
|
3424
|
+
_v$5 !== _p$.a && (_p$.a = _$setProp5(_el$8, "fg", _v$5, _p$.a));
|
|
3425
|
+
_v$6 !== _p$.o && (_p$.o = _$setProp5(_el$8, "content", _v$6, _p$.o));
|
|
3426
|
+
_v$7 !== _p$.i && (_p$.i = _$setProp5(_el$9, "fg", _v$7, _p$.i));
|
|
3427
|
+
_v$8 !== _p$.n && (_p$.n = _$setProp5(_el$9, "content", _v$8, _p$.n));
|
|
3428
|
+
return _p$;
|
|
3429
|
+
}, {
|
|
3430
|
+
e: undefined,
|
|
3431
|
+
t: undefined,
|
|
3432
|
+
a: undefined,
|
|
3433
|
+
o: undefined,
|
|
3434
|
+
i: undefined,
|
|
3435
|
+
n: undefined
|
|
3436
|
+
});
|
|
3437
|
+
return _el$6;
|
|
3438
|
+
})();
|
|
3439
|
+
}
|
|
3440
|
+
});
|
|
3441
|
+
}
|
|
3442
|
+
})];
|
|
3443
|
+
}
|
|
3032
3444
|
}));
|
|
3033
|
-
|
|
3445
|
+
return _el$;
|
|
3446
|
+
})();
|
|
3034
3447
|
}
|
|
3035
3448
|
registerWidget({
|
|
3036
3449
|
id: "file-changes",
|
|
@@ -3040,83 +3453,141 @@ registerWidget({
|
|
|
3040
3453
|
});
|
|
3041
3454
|
|
|
3042
3455
|
// packages/render/src/components/widgets/repo-meta.tsx
|
|
3456
|
+
import { insertNode as _$insertNode5 } from "@opentui/solid";
|
|
3457
|
+
import { effect as _$effect6 } from "@opentui/solid";
|
|
3458
|
+
import { insert as _$insert6 } from "@opentui/solid";
|
|
3459
|
+
import { createComponent as _$createComponent6 } from "@opentui/solid";
|
|
3460
|
+
import { setProp as _$setProp6 } from "@opentui/solid";
|
|
3461
|
+
import { createElement as _$createElement6 } from "@opentui/solid";
|
|
3043
3462
|
import { Show as Show4 } from "solid-js";
|
|
3044
|
-
var size_hint3 = {
|
|
3463
|
+
var size_hint3 = {
|
|
3464
|
+
span: "third",
|
|
3465
|
+
min_height: 2
|
|
3466
|
+
};
|
|
3045
3467
|
var SEMVER_RE = /^v?\d+\.\d+/;
|
|
3046
3468
|
function RepoMetaWidget(props) {
|
|
3047
3469
|
const s = () => props.status;
|
|
3048
|
-
return
|
|
3049
|
-
|
|
3050
|
-
|
|
3051
|
-
|
|
3052
|
-
|
|
3053
|
-
|
|
3054
|
-
|
|
3055
|
-
|
|
3056
|
-
|
|
3057
|
-
|
|
3058
|
-
|
|
3059
|
-
|
|
3060
|
-
|
|
3061
|
-
|
|
3062
|
-
|
|
3063
|
-
|
|
3064
|
-
|
|
3065
|
-
|
|
3066
|
-
|
|
3067
|
-
|
|
3068
|
-
|
|
3069
|
-
|
|
3070
|
-
|
|
3071
|
-
|
|
3072
|
-
|
|
3073
|
-
|
|
3074
|
-
|
|
3075
|
-
|
|
3076
|
-
|
|
3077
|
-
|
|
3078
|
-
|
|
3079
|
-
|
|
3080
|
-
|
|
3081
|
-
|
|
3082
|
-
|
|
3083
|
-
|
|
3084
|
-
|
|
3085
|
-
|
|
3086
|
-
|
|
3087
|
-
|
|
3088
|
-
|
|
3089
|
-
|
|
3090
|
-
|
|
3091
|
-
|
|
3092
|
-
|
|
3093
|
-
|
|
3094
|
-
|
|
3095
|
-
|
|
3096
|
-
|
|
3097
|
-
|
|
3098
|
-
|
|
3099
|
-
|
|
3100
|
-
|
|
3101
|
-
|
|
3102
|
-
|
|
3103
|
-
|
|
3104
|
-
|
|
3105
|
-
|
|
3106
|
-
|
|
3107
|
-
|
|
3108
|
-
|
|
3109
|
-
|
|
3110
|
-
|
|
3111
|
-
|
|
3112
|
-
|
|
3113
|
-
|
|
3114
|
-
|
|
3115
|
-
|
|
3116
|
-
|
|
3117
|
-
|
|
3118
|
-
|
|
3119
|
-
|
|
3470
|
+
return (() => {
|
|
3471
|
+
var _el$ = _$createElement6("box");
|
|
3472
|
+
_$setProp6(_el$, "flexDirection", "column");
|
|
3473
|
+
_$insert6(_el$, _$createComponent6(Show4, {
|
|
3474
|
+
get when() {
|
|
3475
|
+
return s();
|
|
3476
|
+
},
|
|
3477
|
+
get fallback() {
|
|
3478
|
+
return (() => {
|
|
3479
|
+
var _el$2 = _$createElement6("text");
|
|
3480
|
+
_$setProp6(_el$2, "content", "(no data)");
|
|
3481
|
+
_$effect6((_$p) => _$setProp6(_el$2, "fg", theme.fg_dim, _$p));
|
|
3482
|
+
return _el$2;
|
|
3483
|
+
})();
|
|
3484
|
+
},
|
|
3485
|
+
children: (status) => {
|
|
3486
|
+
const latest_tag = () => status().tags[0] ?? null;
|
|
3487
|
+
const tag_is_semver = () => {
|
|
3488
|
+
const tag = latest_tag();
|
|
3489
|
+
return tag !== null && SEMVER_RE.test(tag);
|
|
3490
|
+
};
|
|
3491
|
+
return [(() => {
|
|
3492
|
+
var _el$3 = _$createElement6("box"), _el$4 = _$createElement6("box"), _el$5 = _$createElement6("text"), _el$6 = _$createElement6("text"), _el$7 = _$createElement6("box"), _el$8 = _$createElement6("text"), _el$9 = _$createElement6("text");
|
|
3493
|
+
_$insertNode5(_el$3, _el$4);
|
|
3494
|
+
_$insertNode5(_el$3, _el$7);
|
|
3495
|
+
_$setProp6(_el$3, "flexDirection", "row");
|
|
3496
|
+
_$setProp6(_el$3, "height", 1);
|
|
3497
|
+
_$setProp6(_el$3, "gap", 2);
|
|
3498
|
+
_$insertNode5(_el$4, _el$5);
|
|
3499
|
+
_$insertNode5(_el$4, _el$6);
|
|
3500
|
+
_$setProp6(_el$4, "flexDirection", "row");
|
|
3501
|
+
_$setProp6(_el$4, "gap", 1);
|
|
3502
|
+
_$setProp6(_el$6, "content", "commits");
|
|
3503
|
+
_$insertNode5(_el$7, _el$8);
|
|
3504
|
+
_$insertNode5(_el$7, _el$9);
|
|
3505
|
+
_$setProp6(_el$7, "flexDirection", "row");
|
|
3506
|
+
_$setProp6(_el$7, "gap", 1);
|
|
3507
|
+
_$setProp6(_el$9, "content", "contributors");
|
|
3508
|
+
_$effect6((_p$) => {
|
|
3509
|
+
var _v$ = theme.yellow, _v$2 = `${status().total_commits}`, _v$3 = theme.fg_dim, _v$4 = theme.yellow, _v$5 = `${status().contributor_count}`, _v$6 = theme.fg_dim;
|
|
3510
|
+
_v$ !== _p$.e && (_p$.e = _$setProp6(_el$5, "fg", _v$, _p$.e));
|
|
3511
|
+
_v$2 !== _p$.t && (_p$.t = _$setProp6(_el$5, "content", _v$2, _p$.t));
|
|
3512
|
+
_v$3 !== _p$.a && (_p$.a = _$setProp6(_el$6, "fg", _v$3, _p$.a));
|
|
3513
|
+
_v$4 !== _p$.o && (_p$.o = _$setProp6(_el$8, "fg", _v$4, _p$.o));
|
|
3514
|
+
_v$5 !== _p$.i && (_p$.i = _$setProp6(_el$8, "content", _v$5, _p$.i));
|
|
3515
|
+
_v$6 !== _p$.n && (_p$.n = _$setProp6(_el$9, "fg", _v$6, _p$.n));
|
|
3516
|
+
return _p$;
|
|
3517
|
+
}, {
|
|
3518
|
+
e: undefined,
|
|
3519
|
+
t: undefined,
|
|
3520
|
+
a: undefined,
|
|
3521
|
+
o: undefined,
|
|
3522
|
+
i: undefined,
|
|
3523
|
+
n: undefined
|
|
3524
|
+
});
|
|
3525
|
+
return _el$3;
|
|
3526
|
+
})(), (() => {
|
|
3527
|
+
var _el$0 = _$createElement6("box"), _el$1 = _$createElement6("box"), _el$10 = _$createElement6("text"), _el$11 = _$createElement6("text"), _el$12 = _$createElement6("box"), _el$13 = _$createElement6("text"), _el$14 = _$createElement6("text");
|
|
3528
|
+
_$insertNode5(_el$0, _el$1);
|
|
3529
|
+
_$insertNode5(_el$0, _el$12);
|
|
3530
|
+
_$setProp6(_el$0, "flexDirection", "row");
|
|
3531
|
+
_$setProp6(_el$0, "height", 1);
|
|
3532
|
+
_$setProp6(_el$0, "gap", 2);
|
|
3533
|
+
_$insertNode5(_el$1, _el$10);
|
|
3534
|
+
_$insertNode5(_el$1, _el$11);
|
|
3535
|
+
_$setProp6(_el$1, "flexDirection", "row");
|
|
3536
|
+
_$setProp6(_el$1, "gap", 1);
|
|
3537
|
+
_$setProp6(_el$11, "content", "on disk");
|
|
3538
|
+
_$insertNode5(_el$12, _el$13);
|
|
3539
|
+
_$insertNode5(_el$12, _el$14);
|
|
3540
|
+
_$setProp6(_el$12, "flexDirection", "row");
|
|
3541
|
+
_$setProp6(_el$12, "gap", 1);
|
|
3542
|
+
_$setProp6(_el$14, "content", "tags");
|
|
3543
|
+
_$effect6((_p$) => {
|
|
3544
|
+
var _v$7 = theme.yellow, _v$8 = formatBytes(status().repo_size_bytes), _v$9 = theme.fg_dim, _v$0 = theme.yellow, _v$1 = `${status().tags.length}`, _v$10 = theme.fg_dim;
|
|
3545
|
+
_v$7 !== _p$.e && (_p$.e = _$setProp6(_el$10, "fg", _v$7, _p$.e));
|
|
3546
|
+
_v$8 !== _p$.t && (_p$.t = _$setProp6(_el$10, "content", _v$8, _p$.t));
|
|
3547
|
+
_v$9 !== _p$.a && (_p$.a = _$setProp6(_el$11, "fg", _v$9, _p$.a));
|
|
3548
|
+
_v$0 !== _p$.o && (_p$.o = _$setProp6(_el$13, "fg", _v$0, _p$.o));
|
|
3549
|
+
_v$1 !== _p$.i && (_p$.i = _$setProp6(_el$13, "content", _v$1, _p$.i));
|
|
3550
|
+
_v$10 !== _p$.n && (_p$.n = _$setProp6(_el$14, "fg", _v$10, _p$.n));
|
|
3551
|
+
return _p$;
|
|
3552
|
+
}, {
|
|
3553
|
+
e: undefined,
|
|
3554
|
+
t: undefined,
|
|
3555
|
+
a: undefined,
|
|
3556
|
+
o: undefined,
|
|
3557
|
+
i: undefined,
|
|
3558
|
+
n: undefined
|
|
3559
|
+
});
|
|
3560
|
+
return _el$0;
|
|
3561
|
+
})(), _$createComponent6(Show4, {
|
|
3562
|
+
get when() {
|
|
3563
|
+
return latest_tag();
|
|
3564
|
+
},
|
|
3565
|
+
get children() {
|
|
3566
|
+
var _el$15 = _$createElement6("box"), _el$16 = _$createElement6("text"), _el$17 = _$createElement6("text");
|
|
3567
|
+
_$insertNode5(_el$15, _el$16);
|
|
3568
|
+
_$insertNode5(_el$15, _el$17);
|
|
3569
|
+
_$setProp6(_el$15, "flexDirection", "row");
|
|
3570
|
+
_$setProp6(_el$15, "height", 1);
|
|
3571
|
+
_$setProp6(_el$15, "gap", 1);
|
|
3572
|
+
_$setProp6(_el$16, "content", "latest:");
|
|
3573
|
+
_$effect6((_p$) => {
|
|
3574
|
+
var _v$11 = theme.fg_dim, _v$12 = tag_is_semver() ? theme.green : theme.fg, _v$13 = latest_tag();
|
|
3575
|
+
_v$11 !== _p$.e && (_p$.e = _$setProp6(_el$16, "fg", _v$11, _p$.e));
|
|
3576
|
+
_v$12 !== _p$.t && (_p$.t = _$setProp6(_el$17, "fg", _v$12, _p$.t));
|
|
3577
|
+
_v$13 !== _p$.a && (_p$.a = _$setProp6(_el$17, "content", _v$13, _p$.a));
|
|
3578
|
+
return _p$;
|
|
3579
|
+
}, {
|
|
3580
|
+
e: undefined,
|
|
3581
|
+
t: undefined,
|
|
3582
|
+
a: undefined
|
|
3583
|
+
});
|
|
3584
|
+
return _el$15;
|
|
3585
|
+
}
|
|
3586
|
+
})];
|
|
3587
|
+
}
|
|
3588
|
+
}));
|
|
3589
|
+
return _el$;
|
|
3590
|
+
})();
|
|
3120
3591
|
}
|
|
3121
3592
|
registerWidget({
|
|
3122
3593
|
id: "repo-meta",
|
|
@@ -3126,8 +3597,17 @@ registerWidget({
|
|
|
3126
3597
|
});
|
|
3127
3598
|
|
|
3128
3599
|
// packages/render/src/components/widgets/branch-list.tsx
|
|
3600
|
+
import { insertNode as _$insertNode6 } from "@opentui/solid";
|
|
3601
|
+
import { effect as _$effect7 } from "@opentui/solid";
|
|
3602
|
+
import { insert as _$insert7 } from "@opentui/solid";
|
|
3603
|
+
import { createComponent as _$createComponent7 } from "@opentui/solid";
|
|
3604
|
+
import { setProp as _$setProp7 } from "@opentui/solid";
|
|
3605
|
+
import { createElement as _$createElement7 } from "@opentui/solid";
|
|
3129
3606
|
import { For as For5, Show as Show5, createMemo as createMemo2 } from "solid-js";
|
|
3130
|
-
var size_hint4 = {
|
|
3607
|
+
var size_hint4 = {
|
|
3608
|
+
span: "half",
|
|
3609
|
+
min_height: 2
|
|
3610
|
+
};
|
|
3131
3611
|
var MAX_VISIBLE = 10;
|
|
3132
3612
|
var STALE_THRESHOLD = 30 * 24 * 60 * 60;
|
|
3133
3613
|
function sortBranches(branches) {
|
|
@@ -3146,57 +3626,147 @@ function BranchListWidget(props) {
|
|
|
3146
3626
|
const visible = () => branches().slice(0, MAX_VISIBLE);
|
|
3147
3627
|
const overflow = () => Math.max(0, branches().length - MAX_VISIBLE);
|
|
3148
3628
|
const has_sync = (b) => b.ahead > 0 || b.behind > 0;
|
|
3149
|
-
return
|
|
3150
|
-
|
|
3151
|
-
|
|
3152
|
-
|
|
3153
|
-
|
|
3154
|
-
|
|
3155
|
-
|
|
3156
|
-
|
|
3157
|
-
|
|
3158
|
-
|
|
3159
|
-
|
|
3160
|
-
|
|
3161
|
-
|
|
3162
|
-
|
|
3163
|
-
|
|
3164
|
-
|
|
3165
|
-
|
|
3166
|
-
|
|
3167
|
-
|
|
3168
|
-
|
|
3169
|
-
|
|
3170
|
-
|
|
3171
|
-
|
|
3172
|
-
|
|
3173
|
-
|
|
3174
|
-
|
|
3175
|
-
|
|
3176
|
-
|
|
3177
|
-
|
|
3178
|
-
|
|
3179
|
-
|
|
3180
|
-
|
|
3181
|
-
|
|
3182
|
-
|
|
3183
|
-
|
|
3184
|
-
|
|
3185
|
-
|
|
3186
|
-
|
|
3187
|
-
|
|
3188
|
-
|
|
3189
|
-
|
|
3190
|
-
|
|
3191
|
-
|
|
3192
|
-
|
|
3193
|
-
|
|
3194
|
-
|
|
3195
|
-
|
|
3196
|
-
|
|
3197
|
-
|
|
3198
|
-
|
|
3199
|
-
|
|
3629
|
+
return (() => {
|
|
3630
|
+
var _el$ = _$createElement7("box");
|
|
3631
|
+
_$setProp7(_el$, "flexDirection", "column");
|
|
3632
|
+
_$insert7(_el$, _$createComponent7(Show5, {
|
|
3633
|
+
get when() {
|
|
3634
|
+
return props.status;
|
|
3635
|
+
},
|
|
3636
|
+
get fallback() {
|
|
3637
|
+
return (() => {
|
|
3638
|
+
var _el$2 = _$createElement7("text");
|
|
3639
|
+
_$setProp7(_el$2, "content", "no repo selected");
|
|
3640
|
+
_$effect7((_$p) => _$setProp7(_el$2, "fg", theme.fg_dim, _$p));
|
|
3641
|
+
return _el$2;
|
|
3642
|
+
})();
|
|
3643
|
+
},
|
|
3644
|
+
children: (status) => [(() => {
|
|
3645
|
+
var _el$3 = _$createElement7("text");
|
|
3646
|
+
_$effect7((_p$) => {
|
|
3647
|
+
var _v$ = theme.fg_dark, _v$2 = `Branches (${status().branches.length})`;
|
|
3648
|
+
_v$ !== _p$.e && (_p$.e = _$setProp7(_el$3, "fg", _v$, _p$.e));
|
|
3649
|
+
_v$2 !== _p$.t && (_p$.t = _$setProp7(_el$3, "content", _v$2, _p$.t));
|
|
3650
|
+
return _p$;
|
|
3651
|
+
}, {
|
|
3652
|
+
e: undefined,
|
|
3653
|
+
t: undefined
|
|
3654
|
+
});
|
|
3655
|
+
return _el$3;
|
|
3656
|
+
})(), _$createComponent7(Show5, {
|
|
3657
|
+
get when() {
|
|
3658
|
+
return branches().length > 0;
|
|
3659
|
+
},
|
|
3660
|
+
get fallback() {
|
|
3661
|
+
return (() => {
|
|
3662
|
+
var _el$5 = _$createElement7("text");
|
|
3663
|
+
_$setProp7(_el$5, "content", "(no branches)");
|
|
3664
|
+
_$effect7((_$p) => _$setProp7(_el$5, "fg", theme.fg_dim, _$p));
|
|
3665
|
+
return _el$5;
|
|
3666
|
+
})();
|
|
3667
|
+
},
|
|
3668
|
+
get children() {
|
|
3669
|
+
return [_$createComponent7(For5, {
|
|
3670
|
+
get each() {
|
|
3671
|
+
return visible();
|
|
3672
|
+
},
|
|
3673
|
+
children: (branch) => (() => {
|
|
3674
|
+
var _el$6 = _$createElement7("box"), _el$7 = _$createElement7("text"), _el$8 = _$createElement7("text");
|
|
3675
|
+
_$insertNode6(_el$6, _el$7);
|
|
3676
|
+
_$insertNode6(_el$6, _el$8);
|
|
3677
|
+
_$setProp7(_el$6, "flexDirection", "row");
|
|
3678
|
+
_$setProp7(_el$6, "height", 1);
|
|
3679
|
+
_$insert7(_el$6, _$createComponent7(Show5, {
|
|
3680
|
+
get when() {
|
|
3681
|
+
return has_sync(branch);
|
|
3682
|
+
},
|
|
3683
|
+
get children() {
|
|
3684
|
+
return [_$createComponent7(Show5, {
|
|
3685
|
+
get when() {
|
|
3686
|
+
return branch.ahead > 0;
|
|
3687
|
+
},
|
|
3688
|
+
get children() {
|
|
3689
|
+
var _el$9 = _$createElement7("text");
|
|
3690
|
+
_$effect7((_p$) => {
|
|
3691
|
+
var _v$5 = theme.yellow, _v$6 = ` \u2191${branch.ahead}`;
|
|
3692
|
+
_v$5 !== _p$.e && (_p$.e = _$setProp7(_el$9, "fg", _v$5, _p$.e));
|
|
3693
|
+
_v$6 !== _p$.t && (_p$.t = _$setProp7(_el$9, "content", _v$6, _p$.t));
|
|
3694
|
+
return _p$;
|
|
3695
|
+
}, {
|
|
3696
|
+
e: undefined,
|
|
3697
|
+
t: undefined
|
|
3698
|
+
});
|
|
3699
|
+
return _el$9;
|
|
3700
|
+
}
|
|
3701
|
+
}), _$createComponent7(Show5, {
|
|
3702
|
+
get when() {
|
|
3703
|
+
return branch.behind > 0;
|
|
3704
|
+
},
|
|
3705
|
+
get children() {
|
|
3706
|
+
var _el$0 = _$createElement7("text");
|
|
3707
|
+
_$effect7((_p$) => {
|
|
3708
|
+
var _v$7 = theme.cyan, _v$8 = ` \u2193${branch.behind}`;
|
|
3709
|
+
_v$7 !== _p$.e && (_p$.e = _$setProp7(_el$0, "fg", _v$7, _p$.e));
|
|
3710
|
+
_v$8 !== _p$.t && (_p$.t = _$setProp7(_el$0, "content", _v$8, _p$.t));
|
|
3711
|
+
return _p$;
|
|
3712
|
+
}, {
|
|
3713
|
+
e: undefined,
|
|
3714
|
+
t: undefined
|
|
3715
|
+
});
|
|
3716
|
+
return _el$0;
|
|
3717
|
+
}
|
|
3718
|
+
})];
|
|
3719
|
+
}
|
|
3720
|
+
}), null);
|
|
3721
|
+
_$insert7(_el$6, _$createComponent7(Show5, {
|
|
3722
|
+
get when() {
|
|
3723
|
+
return isStale(branch);
|
|
3724
|
+
},
|
|
3725
|
+
get children() {
|
|
3726
|
+
var _el$1 = _$createElement7("text");
|
|
3727
|
+
_$setProp7(_el$1, "content", " (stale)");
|
|
3728
|
+
_$effect7((_$p) => _$setProp7(_el$1, "fg", theme.orange, _$p));
|
|
3729
|
+
return _el$1;
|
|
3730
|
+
}
|
|
3731
|
+
}), null);
|
|
3732
|
+
_$effect7((_p$) => {
|
|
3733
|
+
var _v$9 = branch.is_current ? theme.green : theme.fg, _v$0 = branch.is_current ? "* " : " ", _v$1 = branch.is_current ? theme.green : theme.fg, _v$10 = truncate(branch.name, props.width - 20);
|
|
3734
|
+
_v$9 !== _p$.e && (_p$.e = _$setProp7(_el$7, "fg", _v$9, _p$.e));
|
|
3735
|
+
_v$0 !== _p$.t && (_p$.t = _$setProp7(_el$7, "content", _v$0, _p$.t));
|
|
3736
|
+
_v$1 !== _p$.a && (_p$.a = _$setProp7(_el$8, "fg", _v$1, _p$.a));
|
|
3737
|
+
_v$10 !== _p$.o && (_p$.o = _$setProp7(_el$8, "content", _v$10, _p$.o));
|
|
3738
|
+
return _p$;
|
|
3739
|
+
}, {
|
|
3740
|
+
e: undefined,
|
|
3741
|
+
t: undefined,
|
|
3742
|
+
a: undefined,
|
|
3743
|
+
o: undefined
|
|
3744
|
+
});
|
|
3745
|
+
return _el$6;
|
|
3746
|
+
})()
|
|
3747
|
+
}), _$createComponent7(Show5, {
|
|
3748
|
+
get when() {
|
|
3749
|
+
return overflow() > 0;
|
|
3750
|
+
},
|
|
3751
|
+
get children() {
|
|
3752
|
+
var _el$4 = _$createElement7("text");
|
|
3753
|
+
_$effect7((_p$) => {
|
|
3754
|
+
var _v$3 = theme.fg_dim, _v$4 = `+${overflow()} more`;
|
|
3755
|
+
_v$3 !== _p$.e && (_p$.e = _$setProp7(_el$4, "fg", _v$3, _p$.e));
|
|
3756
|
+
_v$4 !== _p$.t && (_p$.t = _$setProp7(_el$4, "content", _v$4, _p$.t));
|
|
3757
|
+
return _p$;
|
|
3758
|
+
}, {
|
|
3759
|
+
e: undefined,
|
|
3760
|
+
t: undefined
|
|
3761
|
+
});
|
|
3762
|
+
return _el$4;
|
|
3763
|
+
}
|
|
3764
|
+
})];
|
|
3765
|
+
}
|
|
3766
|
+
})]
|
|
3767
|
+
}));
|
|
3768
|
+
return _el$;
|
|
3769
|
+
})();
|
|
3200
3770
|
}
|
|
3201
3771
|
registerWidget({
|
|
3202
3772
|
id: "branch-list",
|
|
@@ -3206,6 +3776,13 @@ registerWidget({
|
|
|
3206
3776
|
});
|
|
3207
3777
|
|
|
3208
3778
|
// packages/render/src/components/widgets/github-prs.tsx
|
|
3779
|
+
import { insertNode as _$insertNode7 } from "@opentui/solid";
|
|
3780
|
+
import { insert as _$insert8 } from "@opentui/solid";
|
|
3781
|
+
import { memo as _$memo2 } from "@opentui/solid";
|
|
3782
|
+
import { createComponent as _$createComponent8 } from "@opentui/solid";
|
|
3783
|
+
import { effect as _$effect8 } from "@opentui/solid";
|
|
3784
|
+
import { setProp as _$setProp8 } from "@opentui/solid";
|
|
3785
|
+
import { createElement as _$createElement8 } from "@opentui/solid";
|
|
3209
3786
|
import { For as For6, Show as Show6, Switch, Match, createMemo as createMemo3 } from "solid-js";
|
|
3210
3787
|
|
|
3211
3788
|
// packages/render/src/lib/use-github.ts
|
|
@@ -3284,32 +3861,62 @@ function useGithub(repo_path, remote_url) {
|
|
|
3284
3861
|
}
|
|
3285
3862
|
|
|
3286
3863
|
// packages/render/src/components/widgets/github-prs.tsx
|
|
3287
|
-
var size_hint5 = {
|
|
3864
|
+
var size_hint5 = {
|
|
3865
|
+
span: "half",
|
|
3866
|
+
min_height: 2
|
|
3867
|
+
};
|
|
3288
3868
|
var MAX_VISIBLE2 = 10;
|
|
3289
3869
|
function statusIcon2(pr) {
|
|
3290
3870
|
if (pr.is_draft)
|
|
3291
|
-
return {
|
|
3871
|
+
return {
|
|
3872
|
+
char: "\u25CF",
|
|
3873
|
+
color: theme.orange
|
|
3874
|
+
};
|
|
3292
3875
|
if (pr.state === "closed" || pr.state === "CLOSED")
|
|
3293
|
-
return {
|
|
3294
|
-
|
|
3876
|
+
return {
|
|
3877
|
+
char: "\u25CF",
|
|
3878
|
+
color: theme.fg_dim
|
|
3879
|
+
};
|
|
3880
|
+
return {
|
|
3881
|
+
char: "\u25CF",
|
|
3882
|
+
color: theme.green
|
|
3883
|
+
};
|
|
3295
3884
|
}
|
|
3296
3885
|
function ciIndicator(pr) {
|
|
3297
3886
|
if (pr.ci_status === "success")
|
|
3298
|
-
return {
|
|
3887
|
+
return {
|
|
3888
|
+
char: "\u2713",
|
|
3889
|
+
color: theme.green
|
|
3890
|
+
};
|
|
3299
3891
|
if (pr.ci_status === "failure")
|
|
3300
|
-
return {
|
|
3892
|
+
return {
|
|
3893
|
+
char: "\u2717",
|
|
3894
|
+
color: theme.red
|
|
3895
|
+
};
|
|
3301
3896
|
if (pr.ci_status === "pending")
|
|
3302
|
-
return {
|
|
3897
|
+
return {
|
|
3898
|
+
char: "\u25CC",
|
|
3899
|
+
color: theme.yellow
|
|
3900
|
+
};
|
|
3303
3901
|
return null;
|
|
3304
3902
|
}
|
|
3305
3903
|
function reviewIndicator(pr) {
|
|
3306
3904
|
const d = pr.review_decision;
|
|
3307
3905
|
if (d === "APPROVED")
|
|
3308
|
-
return {
|
|
3906
|
+
return {
|
|
3907
|
+
char: "R",
|
|
3908
|
+
color: theme.green
|
|
3909
|
+
};
|
|
3309
3910
|
if (d === "CHANGES_REQUESTED")
|
|
3310
|
-
return {
|
|
3911
|
+
return {
|
|
3912
|
+
char: "R",
|
|
3913
|
+
color: theme.orange
|
|
3914
|
+
};
|
|
3311
3915
|
if (d === "REVIEW_REQUIRED")
|
|
3312
|
-
return {
|
|
3916
|
+
return {
|
|
3917
|
+
char: "R",
|
|
3918
|
+
color: theme.fg_dim
|
|
3919
|
+
};
|
|
3313
3920
|
return null;
|
|
3314
3921
|
}
|
|
3315
3922
|
function GithubPRsWidget(props) {
|
|
@@ -3327,81 +3934,197 @@ function GithubPRsWidget(props) {
|
|
|
3327
3934
|
const suffix_len = (ci ? 2 : 0) + (rv ? 2 : 0);
|
|
3328
3935
|
const available = props.width - 2 - number_str.length - 1 - suffix_len;
|
|
3329
3936
|
const title = truncate(pr.title, Math.max(1, available));
|
|
3330
|
-
return {
|
|
3937
|
+
return {
|
|
3938
|
+
si,
|
|
3939
|
+
ci,
|
|
3940
|
+
rv,
|
|
3941
|
+
number_str,
|
|
3942
|
+
title
|
|
3943
|
+
};
|
|
3331
3944
|
};
|
|
3332
|
-
return
|
|
3333
|
-
|
|
3334
|
-
|
|
3335
|
-
|
|
3336
|
-
|
|
3337
|
-
|
|
3338
|
-
|
|
3339
|
-
|
|
3340
|
-
|
|
3341
|
-
|
|
3342
|
-
|
|
3343
|
-
|
|
3344
|
-
|
|
3345
|
-
|
|
3346
|
-
|
|
3347
|
-
|
|
3348
|
-
|
|
3349
|
-
|
|
3350
|
-
|
|
3351
|
-
|
|
3352
|
-
|
|
3353
|
-
|
|
3354
|
-
|
|
3355
|
-
|
|
3356
|
-
|
|
3357
|
-
|
|
3358
|
-
|
|
3359
|
-
|
|
3360
|
-
|
|
3361
|
-
|
|
3362
|
-
|
|
3363
|
-
|
|
3364
|
-
|
|
3365
|
-
|
|
3366
|
-
|
|
3367
|
-
|
|
3368
|
-
|
|
3369
|
-
|
|
3370
|
-
|
|
3371
|
-
|
|
3372
|
-
|
|
3373
|
-
|
|
3374
|
-
|
|
3375
|
-
|
|
3376
|
-
|
|
3377
|
-
|
|
3378
|
-
|
|
3379
|
-
|
|
3380
|
-
|
|
3381
|
-
|
|
3382
|
-
|
|
3383
|
-
|
|
3384
|
-
|
|
3385
|
-
|
|
3386
|
-
|
|
3387
|
-
|
|
3388
|
-
|
|
3389
|
-
|
|
3390
|
-
|
|
3391
|
-
|
|
3392
|
-
|
|
3393
|
-
|
|
3394
|
-
|
|
3395
|
-
|
|
3396
|
-
|
|
3397
|
-
|
|
3398
|
-
|
|
3399
|
-
|
|
3400
|
-
|
|
3401
|
-
|
|
3402
|
-
|
|
3403
|
-
|
|
3404
|
-
|
|
3945
|
+
return (() => {
|
|
3946
|
+
var _el$ = _$createElement8("box");
|
|
3947
|
+
_$setProp8(_el$, "flexDirection", "column");
|
|
3948
|
+
_$insert8(_el$, _$createComponent8(Switch, {
|
|
3949
|
+
get children() {
|
|
3950
|
+
return [_$createComponent8(Match, {
|
|
3951
|
+
get when() {
|
|
3952
|
+
return github2.error()?.kind === "gh_cli_not_found";
|
|
3953
|
+
},
|
|
3954
|
+
get children() {
|
|
3955
|
+
return [(() => {
|
|
3956
|
+
var _el$2 = _$createElement8("text");
|
|
3957
|
+
_$setProp8(_el$2, "content", "gh not available");
|
|
3958
|
+
_$effect8((_$p) => _$setProp8(_el$2, "fg", theme.fg_dim, _$p));
|
|
3959
|
+
return _el$2;
|
|
3960
|
+
})(), (() => {
|
|
3961
|
+
var _el$3 = _$createElement8("text");
|
|
3962
|
+
_$setProp8(_el$3, "content", "install: https://cli.github.com");
|
|
3963
|
+
_$effect8((_$p) => _$setProp8(_el$3, "fg", theme.fg_dim, _$p));
|
|
3964
|
+
return _el$3;
|
|
3965
|
+
})()];
|
|
3966
|
+
}
|
|
3967
|
+
}), _$createComponent8(Match, {
|
|
3968
|
+
get when() {
|
|
3969
|
+
return github2.error()?.kind === "not_github_repo";
|
|
3970
|
+
},
|
|
3971
|
+
get children() {
|
|
3972
|
+
var _el$4 = _$createElement8("text");
|
|
3973
|
+
_$setProp8(_el$4, "content", "not a GitHub repo");
|
|
3974
|
+
_$effect8((_$p) => _$setProp8(_el$4, "fg", theme.fg_dim, _$p));
|
|
3975
|
+
return _el$4;
|
|
3976
|
+
}
|
|
3977
|
+
}), _$createComponent8(Match, {
|
|
3978
|
+
get when() {
|
|
3979
|
+
return github2.error()?.kind === "gh_auth_required";
|
|
3980
|
+
},
|
|
3981
|
+
get children() {
|
|
3982
|
+
var _el$5 = _$createElement8("text");
|
|
3983
|
+
_$setProp8(_el$5, "content", "gh auth required");
|
|
3984
|
+
_$effect8((_$p) => _$setProp8(_el$5, "fg", theme.fg_dim, _$p));
|
|
3985
|
+
return _el$5;
|
|
3986
|
+
}
|
|
3987
|
+
}), _$createComponent8(Match, {
|
|
3988
|
+
get when() {
|
|
3989
|
+
return github2.error();
|
|
3990
|
+
},
|
|
3991
|
+
get children() {
|
|
3992
|
+
var _el$6 = _$createElement8("text");
|
|
3993
|
+
_$setProp8(_el$6, "content", "GitHub error");
|
|
3994
|
+
_$effect8((_$p) => _$setProp8(_el$6, "fg", theme.fg_dim, _$p));
|
|
3995
|
+
return _el$6;
|
|
3996
|
+
}
|
|
3997
|
+
}), _$createComponent8(Match, {
|
|
3998
|
+
get when() {
|
|
3999
|
+
return _$memo2(() => !!github2.loading())() && !github2.data();
|
|
4000
|
+
},
|
|
4001
|
+
get children() {
|
|
4002
|
+
var _el$7 = _$createElement8("text");
|
|
4003
|
+
_$setProp8(_el$7, "content", "loading\u2026");
|
|
4004
|
+
_$effect8((_$p) => _$setProp8(_el$7, "fg", theme.fg_dim, _$p));
|
|
4005
|
+
return _el$7;
|
|
4006
|
+
}
|
|
4007
|
+
}), _$createComponent8(Match, {
|
|
4008
|
+
when: true,
|
|
4009
|
+
get children() {
|
|
4010
|
+
return [(() => {
|
|
4011
|
+
var _el$8 = _$createElement8("text");
|
|
4012
|
+
_$effect8((_p$) => {
|
|
4013
|
+
var _v$ = theme.fg_dark, _v$2 = `GitHub PRs (${prs().length})`;
|
|
4014
|
+
_v$ !== _p$.e && (_p$.e = _$setProp8(_el$8, "fg", _v$, _p$.e));
|
|
4015
|
+
_v$2 !== _p$.t && (_p$.t = _$setProp8(_el$8, "content", _v$2, _p$.t));
|
|
4016
|
+
return _p$;
|
|
4017
|
+
}, {
|
|
4018
|
+
e: undefined,
|
|
4019
|
+
t: undefined
|
|
4020
|
+
});
|
|
4021
|
+
return _el$8;
|
|
4022
|
+
})(), _$createComponent8(Show6, {
|
|
4023
|
+
get when() {
|
|
4024
|
+
return prs().length > 0;
|
|
4025
|
+
},
|
|
4026
|
+
get fallback() {
|
|
4027
|
+
return (() => {
|
|
4028
|
+
var _el$0 = _$createElement8("text");
|
|
4029
|
+
_$setProp8(_el$0, "content", "(no open PRs)");
|
|
4030
|
+
_$effect8((_$p) => _$setProp8(_el$0, "fg", theme.fg_dim, _$p));
|
|
4031
|
+
return _el$0;
|
|
4032
|
+
})();
|
|
4033
|
+
},
|
|
4034
|
+
get children() {
|
|
4035
|
+
return [_$createComponent8(For6, {
|
|
4036
|
+
get each() {
|
|
4037
|
+
return visible();
|
|
4038
|
+
},
|
|
4039
|
+
children: (pr) => {
|
|
4040
|
+
const line = () => formatPrLine(pr);
|
|
4041
|
+
return (() => {
|
|
4042
|
+
var _el$1 = _$createElement8("box"), _el$10 = _$createElement8("text"), _el$11 = _$createElement8("text"), _el$12 = _$createElement8("text");
|
|
4043
|
+
_$insertNode7(_el$1, _el$10);
|
|
4044
|
+
_$insertNode7(_el$1, _el$11);
|
|
4045
|
+
_$insertNode7(_el$1, _el$12);
|
|
4046
|
+
_$setProp8(_el$1, "flexDirection", "row");
|
|
4047
|
+
_$setProp8(_el$1, "height", 1);
|
|
4048
|
+
_$insert8(_el$1, _$createComponent8(Show6, {
|
|
4049
|
+
get when() {
|
|
4050
|
+
return line().ci;
|
|
4051
|
+
},
|
|
4052
|
+
children: (ci) => (() => {
|
|
4053
|
+
var _el$13 = _$createElement8("text");
|
|
4054
|
+
_$effect8((_p$) => {
|
|
4055
|
+
var _v$0 = ci().color, _v$1 = ` ${ci().char}`;
|
|
4056
|
+
_v$0 !== _p$.e && (_p$.e = _$setProp8(_el$13, "fg", _v$0, _p$.e));
|
|
4057
|
+
_v$1 !== _p$.t && (_p$.t = _$setProp8(_el$13, "content", _v$1, _p$.t));
|
|
4058
|
+
return _p$;
|
|
4059
|
+
}, {
|
|
4060
|
+
e: undefined,
|
|
4061
|
+
t: undefined
|
|
4062
|
+
});
|
|
4063
|
+
return _el$13;
|
|
4064
|
+
})()
|
|
4065
|
+
}), null);
|
|
4066
|
+
_$insert8(_el$1, _$createComponent8(Show6, {
|
|
4067
|
+
get when() {
|
|
4068
|
+
return line().rv;
|
|
4069
|
+
},
|
|
4070
|
+
children: (rv) => (() => {
|
|
4071
|
+
var _el$14 = _$createElement8("text");
|
|
4072
|
+
_$effect8((_p$) => {
|
|
4073
|
+
var _v$10 = rv().color, _v$11 = ` ${rv().char}`;
|
|
4074
|
+
_v$10 !== _p$.e && (_p$.e = _$setProp8(_el$14, "fg", _v$10, _p$.e));
|
|
4075
|
+
_v$11 !== _p$.t && (_p$.t = _$setProp8(_el$14, "content", _v$11, _p$.t));
|
|
4076
|
+
return _p$;
|
|
4077
|
+
}, {
|
|
4078
|
+
e: undefined,
|
|
4079
|
+
t: undefined
|
|
4080
|
+
});
|
|
4081
|
+
return _el$14;
|
|
4082
|
+
})()
|
|
4083
|
+
}), null);
|
|
4084
|
+
_$effect8((_p$) => {
|
|
4085
|
+
var _v$5 = line().si.color, _v$6 = `${line().si.char} `, _v$7 = theme.fg_dim, _v$8 = line().number_str, _v$9 = ` ${line().title}`;
|
|
4086
|
+
_v$5 !== _p$.e && (_p$.e = _$setProp8(_el$10, "fg", _v$5, _p$.e));
|
|
4087
|
+
_v$6 !== _p$.t && (_p$.t = _$setProp8(_el$10, "content", _v$6, _p$.t));
|
|
4088
|
+
_v$7 !== _p$.a && (_p$.a = _$setProp8(_el$11, "fg", _v$7, _p$.a));
|
|
4089
|
+
_v$8 !== _p$.o && (_p$.o = _$setProp8(_el$11, "content", _v$8, _p$.o));
|
|
4090
|
+
_v$9 !== _p$.i && (_p$.i = _$setProp8(_el$12, "content", _v$9, _p$.i));
|
|
4091
|
+
return _p$;
|
|
4092
|
+
}, {
|
|
4093
|
+
e: undefined,
|
|
4094
|
+
t: undefined,
|
|
4095
|
+
a: undefined,
|
|
4096
|
+
o: undefined,
|
|
4097
|
+
i: undefined
|
|
4098
|
+
});
|
|
4099
|
+
return _el$1;
|
|
4100
|
+
})();
|
|
4101
|
+
}
|
|
4102
|
+
}), _$createComponent8(Show6, {
|
|
4103
|
+
get when() {
|
|
4104
|
+
return overflow() > 0;
|
|
4105
|
+
},
|
|
4106
|
+
get children() {
|
|
4107
|
+
var _el$9 = _$createElement8("text");
|
|
4108
|
+
_$effect8((_p$) => {
|
|
4109
|
+
var _v$3 = theme.fg_dim, _v$4 = `+${overflow()} more`;
|
|
4110
|
+
_v$3 !== _p$.e && (_p$.e = _$setProp8(_el$9, "fg", _v$3, _p$.e));
|
|
4111
|
+
_v$4 !== _p$.t && (_p$.t = _$setProp8(_el$9, "content", _v$4, _p$.t));
|
|
4112
|
+
return _p$;
|
|
4113
|
+
}, {
|
|
4114
|
+
e: undefined,
|
|
4115
|
+
t: undefined
|
|
4116
|
+
});
|
|
4117
|
+
return _el$9;
|
|
4118
|
+
}
|
|
4119
|
+
})];
|
|
4120
|
+
}
|
|
4121
|
+
})];
|
|
4122
|
+
}
|
|
4123
|
+
})];
|
|
4124
|
+
}
|
|
4125
|
+
}));
|
|
4126
|
+
return _el$;
|
|
4127
|
+
})();
|
|
3405
4128
|
}
|
|
3406
4129
|
registerWidget({
|
|
3407
4130
|
id: "github-prs",
|
|
@@ -3411,18 +4134,43 @@ registerWidget({
|
|
|
3411
4134
|
});
|
|
3412
4135
|
|
|
3413
4136
|
// packages/render/src/components/widgets/github-ci.tsx
|
|
4137
|
+
import { insert as _$insert9 } from "@opentui/solid";
|
|
4138
|
+
import { memo as _$memo3 } from "@opentui/solid";
|
|
4139
|
+
import { createComponent as _$createComponent9 } from "@opentui/solid";
|
|
4140
|
+
import { effect as _$effect9 } from "@opentui/solid";
|
|
4141
|
+
import { insertNode as _$insertNode8 } from "@opentui/solid";
|
|
4142
|
+
import { setProp as _$setProp9 } from "@opentui/solid";
|
|
4143
|
+
import { createElement as _$createElement9 } from "@opentui/solid";
|
|
3414
4144
|
import { For as For7, Show as Show7, createMemo as createMemo4 } from "solid-js";
|
|
3415
|
-
var size_hint6 = {
|
|
4145
|
+
var size_hint6 = {
|
|
4146
|
+
span: "third",
|
|
4147
|
+
min_height: 1
|
|
4148
|
+
};
|
|
3416
4149
|
function statusIcon3(run) {
|
|
3417
4150
|
if (run.conclusion === "success")
|
|
3418
|
-
return {
|
|
4151
|
+
return {
|
|
4152
|
+
icon: "\u2713",
|
|
4153
|
+
color: theme.green
|
|
4154
|
+
};
|
|
3419
4155
|
if (run.conclusion === "failure")
|
|
3420
|
-
return {
|
|
4156
|
+
return {
|
|
4157
|
+
icon: "\u2717",
|
|
4158
|
+
color: theme.red
|
|
4159
|
+
};
|
|
3421
4160
|
if (run.conclusion === "cancelled")
|
|
3422
|
-
return {
|
|
4161
|
+
return {
|
|
4162
|
+
icon: "\u2298",
|
|
4163
|
+
color: theme.fg_dim
|
|
4164
|
+
};
|
|
3423
4165
|
if (run.status === "in_progress" || run.status === "queued")
|
|
3424
|
-
return {
|
|
3425
|
-
|
|
4166
|
+
return {
|
|
4167
|
+
icon: "\u25CC",
|
|
4168
|
+
color: theme.yellow
|
|
4169
|
+
};
|
|
4170
|
+
return {
|
|
4171
|
+
icon: "\u25CC",
|
|
4172
|
+
color: theme.fg_dim
|
|
4173
|
+
};
|
|
3426
4174
|
}
|
|
3427
4175
|
function GithubCIWidget(props) {
|
|
3428
4176
|
const repo_path = createMemo4(() => props.status?.path ?? null);
|
|
@@ -3436,67 +4184,130 @@ function GithubCIWidget(props) {
|
|
|
3436
4184
|
const visible_runs = createMemo4(() => {
|
|
3437
4185
|
return runs().slice(0, 6);
|
|
3438
4186
|
});
|
|
3439
|
-
return
|
|
3440
|
-
|
|
3441
|
-
|
|
3442
|
-
|
|
3443
|
-
|
|
3444
|
-
|
|
3445
|
-
|
|
3446
|
-
|
|
3447
|
-
|
|
3448
|
-
|
|
3449
|
-
|
|
3450
|
-
|
|
3451
|
-
|
|
3452
|
-
|
|
3453
|
-
|
|
3454
|
-
|
|
3455
|
-
|
|
3456
|
-
|
|
3457
|
-
|
|
3458
|
-
|
|
3459
|
-
|
|
3460
|
-
|
|
3461
|
-
|
|
3462
|
-
|
|
3463
|
-
|
|
3464
|
-
|
|
3465
|
-
|
|
3466
|
-
|
|
3467
|
-
|
|
3468
|
-
|
|
3469
|
-
|
|
3470
|
-
|
|
3471
|
-
|
|
3472
|
-
|
|
3473
|
-
|
|
3474
|
-
|
|
3475
|
-
|
|
3476
|
-
|
|
3477
|
-
|
|
3478
|
-
|
|
3479
|
-
|
|
3480
|
-
|
|
3481
|
-
|
|
3482
|
-
|
|
3483
|
-
|
|
3484
|
-
|
|
3485
|
-
|
|
3486
|
-
|
|
3487
|
-
|
|
3488
|
-
},
|
|
3489
|
-
|
|
3490
|
-
|
|
3491
|
-
|
|
3492
|
-
|
|
3493
|
-
|
|
3494
|
-
|
|
3495
|
-
|
|
3496
|
-
|
|
3497
|
-
|
|
3498
|
-
|
|
3499
|
-
|
|
4187
|
+
return (() => {
|
|
4188
|
+
var _el$ = _$createElement9("box");
|
|
4189
|
+
_$setProp9(_el$, "flexDirection", "column");
|
|
4190
|
+
_$insert9(_el$, _$createComponent9(Show7, {
|
|
4191
|
+
get when() {
|
|
4192
|
+
return github2.error()?.kind === "gh_cli_not_found";
|
|
4193
|
+
},
|
|
4194
|
+
get children() {
|
|
4195
|
+
var _el$2 = _$createElement9("box"), _el$3 = _$createElement9("text"), _el$4 = _$createElement9("text");
|
|
4196
|
+
_$insertNode8(_el$2, _el$3);
|
|
4197
|
+
_$insertNode8(_el$2, _el$4);
|
|
4198
|
+
_$setProp9(_el$2, "flexDirection", "row");
|
|
4199
|
+
_$setProp9(_el$2, "height", 1);
|
|
4200
|
+
_$setProp9(_el$2, "gap", 1);
|
|
4201
|
+
_$setProp9(_el$3, "content", "gh not available");
|
|
4202
|
+
_$setProp9(_el$4, "content", "https://cli.github.com");
|
|
4203
|
+
_$effect9((_p$) => {
|
|
4204
|
+
var _v$ = theme.fg_dim, _v$2 = theme.blue;
|
|
4205
|
+
_v$ !== _p$.e && (_p$.e = _$setProp9(_el$3, "fg", _v$, _p$.e));
|
|
4206
|
+
_v$2 !== _p$.t && (_p$.t = _$setProp9(_el$4, "fg", _v$2, _p$.t));
|
|
4207
|
+
return _p$;
|
|
4208
|
+
}, {
|
|
4209
|
+
e: undefined,
|
|
4210
|
+
t: undefined
|
|
4211
|
+
});
|
|
4212
|
+
return _el$2;
|
|
4213
|
+
}
|
|
4214
|
+
}), null);
|
|
4215
|
+
_$insert9(_el$, _$createComponent9(Show7, {
|
|
4216
|
+
get when() {
|
|
4217
|
+
return github2.error()?.kind === "not_github_repo";
|
|
4218
|
+
},
|
|
4219
|
+
get children() {
|
|
4220
|
+
var _el$5 = _$createElement9("text");
|
|
4221
|
+
_$setProp9(_el$5, "content", "not a GitHub repo");
|
|
4222
|
+
_$effect9((_$p) => _$setProp9(_el$5, "fg", theme.fg_dim, _$p));
|
|
4223
|
+
return _el$5;
|
|
4224
|
+
}
|
|
4225
|
+
}), null);
|
|
4226
|
+
_$insert9(_el$, _$createComponent9(Show7, {
|
|
4227
|
+
get when() {
|
|
4228
|
+
return _$memo3(() => !!!github2.error())() && github2.loading();
|
|
4229
|
+
},
|
|
4230
|
+
get children() {
|
|
4231
|
+
var _el$6 = _$createElement9("text");
|
|
4232
|
+
_$setProp9(_el$6, "content", "loading\u2026");
|
|
4233
|
+
_$effect9((_$p) => _$setProp9(_el$6, "fg", theme.fg_dim, _$p));
|
|
4234
|
+
return _el$6;
|
|
4235
|
+
}
|
|
4236
|
+
}), null);
|
|
4237
|
+
_$insert9(_el$, _$createComponent9(Show7, {
|
|
4238
|
+
get when() {
|
|
4239
|
+
return _$memo3(() => !!!github2.error())() && !github2.loading();
|
|
4240
|
+
},
|
|
4241
|
+
get children() {
|
|
4242
|
+
return [_$createComponent9(Show7, {
|
|
4243
|
+
get when() {
|
|
4244
|
+
return runs().length === 0;
|
|
4245
|
+
},
|
|
4246
|
+
get children() {
|
|
4247
|
+
var _el$7 = _$createElement9("text");
|
|
4248
|
+
_$setProp9(_el$7, "content", "no CI runs");
|
|
4249
|
+
_$effect9((_$p) => _$setProp9(_el$7, "fg", theme.fg_dim, _$p));
|
|
4250
|
+
return _el$7;
|
|
4251
|
+
}
|
|
4252
|
+
}), _$createComponent9(Show7, {
|
|
4253
|
+
get when() {
|
|
4254
|
+
return all_green();
|
|
4255
|
+
},
|
|
4256
|
+
get children() {
|
|
4257
|
+
var _el$8 = _$createElement9("text");
|
|
4258
|
+
_$setProp9(_el$8, "content", "CI: all green \u2713");
|
|
4259
|
+
_$effect9((_$p) => _$setProp9(_el$8, "fg", theme.green, _$p));
|
|
4260
|
+
return _el$8;
|
|
4261
|
+
}
|
|
4262
|
+
}), _$createComponent9(Show7, {
|
|
4263
|
+
get when() {
|
|
4264
|
+
return _$memo3(() => !!!all_green())() && runs().length > 0;
|
|
4265
|
+
},
|
|
4266
|
+
get children() {
|
|
4267
|
+
return _$createComponent9(For7, {
|
|
4268
|
+
get each() {
|
|
4269
|
+
return visible_runs();
|
|
4270
|
+
},
|
|
4271
|
+
children: (run) => {
|
|
4272
|
+
const si = () => statusIcon3(run);
|
|
4273
|
+
const name_budget = () => {
|
|
4274
|
+
const branch_str = ` ${run.head_branch}`;
|
|
4275
|
+
return Math.max(1, props.width - 2 - branch_str.length);
|
|
4276
|
+
};
|
|
4277
|
+
return (() => {
|
|
4278
|
+
var _el$9 = _$createElement9("box"), _el$0 = _$createElement9("text"), _el$1 = _$createElement9("text"), _el$10 = _$createElement9("text"), _el$11 = _$createElement9("text");
|
|
4279
|
+
_$insertNode8(_el$9, _el$0);
|
|
4280
|
+
_$insertNode8(_el$9, _el$1);
|
|
4281
|
+
_$insertNode8(_el$9, _el$10);
|
|
4282
|
+
_$insertNode8(_el$9, _el$11);
|
|
4283
|
+
_$setProp9(_el$9, "flexDirection", "row");
|
|
4284
|
+
_$setProp9(_el$9, "height", 1);
|
|
4285
|
+
_$setProp9(_el$1, "content", " ");
|
|
4286
|
+
_$effect9((_p$) => {
|
|
4287
|
+
var _v$3 = si().color, _v$4 = si().icon, _v$5 = truncate(run.name, name_budget()), _v$6 = theme.fg_dim, _v$7 = ` ${run.head_branch}`;
|
|
4288
|
+
_v$3 !== _p$.e && (_p$.e = _$setProp9(_el$0, "fg", _v$3, _p$.e));
|
|
4289
|
+
_v$4 !== _p$.t && (_p$.t = _$setProp9(_el$0, "content", _v$4, _p$.t));
|
|
4290
|
+
_v$5 !== _p$.a && (_p$.a = _$setProp9(_el$10, "content", _v$5, _p$.a));
|
|
4291
|
+
_v$6 !== _p$.o && (_p$.o = _$setProp9(_el$11, "fg", _v$6, _p$.o));
|
|
4292
|
+
_v$7 !== _p$.i && (_p$.i = _$setProp9(_el$11, "content", _v$7, _p$.i));
|
|
4293
|
+
return _p$;
|
|
4294
|
+
}, {
|
|
4295
|
+
e: undefined,
|
|
4296
|
+
t: undefined,
|
|
4297
|
+
a: undefined,
|
|
4298
|
+
o: undefined,
|
|
4299
|
+
i: undefined
|
|
4300
|
+
});
|
|
4301
|
+
return _el$9;
|
|
4302
|
+
})();
|
|
4303
|
+
}
|
|
4304
|
+
});
|
|
4305
|
+
}
|
|
4306
|
+
})];
|
|
4307
|
+
}
|
|
4308
|
+
}), null);
|
|
4309
|
+
return _el$;
|
|
4310
|
+
})();
|
|
3500
4311
|
}
|
|
3501
4312
|
registerWidget({
|
|
3502
4313
|
id: "github-ci",
|
|
@@ -3506,8 +4317,17 @@ registerWidget({
|
|
|
3506
4317
|
});
|
|
3507
4318
|
|
|
3508
4319
|
// packages/render/src/components/widgets/github-release.tsx
|
|
4320
|
+
import { insert as _$insert10 } from "@opentui/solid";
|
|
4321
|
+
import { effect as _$effect10 } from "@opentui/solid";
|
|
4322
|
+
import { insertNode as _$insertNode9 } from "@opentui/solid";
|
|
4323
|
+
import { createComponent as _$createComponent10 } from "@opentui/solid";
|
|
4324
|
+
import { setProp as _$setProp10 } from "@opentui/solid";
|
|
4325
|
+
import { createElement as _$createElement10 } from "@opentui/solid";
|
|
3509
4326
|
import { Show as Show8, createMemo as createMemo5 } from "solid-js";
|
|
3510
|
-
var size_hint7 = {
|
|
4327
|
+
var size_hint7 = {
|
|
4328
|
+
span: "third",
|
|
4329
|
+
min_height: 1
|
|
4330
|
+
};
|
|
3511
4331
|
function GithubReleaseWidget(props) {
|
|
3512
4332
|
const repo_path = createMemo5(() => props.status?.path ?? null);
|
|
3513
4333
|
const remote_url = createMemo5(() => props.status?.remote_url ?? null);
|
|
@@ -3519,54 +4339,109 @@ function GithubReleaseWidget(props) {
|
|
|
3519
4339
|
const ts = Math.floor(new Date(release.published_at).getTime() / 1000);
|
|
3520
4340
|
return formatRelativeTime(ts);
|
|
3521
4341
|
};
|
|
3522
|
-
return
|
|
3523
|
-
|
|
3524
|
-
|
|
3525
|
-
|
|
3526
|
-
|
|
3527
|
-
|
|
3528
|
-
|
|
3529
|
-
|
|
3530
|
-
|
|
3531
|
-
|
|
3532
|
-
|
|
3533
|
-
|
|
3534
|
-
|
|
3535
|
-
|
|
3536
|
-
|
|
3537
|
-
|
|
3538
|
-
|
|
3539
|
-
|
|
3540
|
-
|
|
3541
|
-
|
|
3542
|
-
|
|
3543
|
-
|
|
3544
|
-
|
|
3545
|
-
|
|
3546
|
-
|
|
3547
|
-
|
|
3548
|
-
|
|
3549
|
-
|
|
3550
|
-
|
|
3551
|
-
|
|
3552
|
-
|
|
3553
|
-
|
|
3554
|
-
|
|
3555
|
-
|
|
3556
|
-
|
|
3557
|
-
|
|
3558
|
-
|
|
3559
|
-
|
|
3560
|
-
|
|
3561
|
-
|
|
3562
|
-
|
|
3563
|
-
|
|
3564
|
-
|
|
3565
|
-
|
|
3566
|
-
|
|
3567
|
-
|
|
3568
|
-
|
|
3569
|
-
|
|
4342
|
+
return (() => {
|
|
4343
|
+
var _el$ = _$createElement10("box");
|
|
4344
|
+
_$setProp10(_el$, "flexDirection", "column");
|
|
4345
|
+
_$insert10(_el$, _$createComponent10(Show8, {
|
|
4346
|
+
get when() {
|
|
4347
|
+
return !github2.error();
|
|
4348
|
+
},
|
|
4349
|
+
get children() {
|
|
4350
|
+
return _$createComponent10(Show8, {
|
|
4351
|
+
get when() {
|
|
4352
|
+
return github2.data()?.latest_release;
|
|
4353
|
+
},
|
|
4354
|
+
get fallback() {
|
|
4355
|
+
return (() => {
|
|
4356
|
+
var _el$6 = _$createElement10("text");
|
|
4357
|
+
_$setProp10(_el$6, "content", "no releases");
|
|
4358
|
+
_$effect10((_$p) => _$setProp10(_el$6, "fg", theme.fg_dim, _$p));
|
|
4359
|
+
return _el$6;
|
|
4360
|
+
})();
|
|
4361
|
+
},
|
|
4362
|
+
children: (release) => [(() => {
|
|
4363
|
+
var _el$7 = _$createElement10("box"), _el$8 = _$createElement10("text"), _el$9 = _$createElement10("text");
|
|
4364
|
+
_$insertNode9(_el$7, _el$8);
|
|
4365
|
+
_$insertNode9(_el$7, _el$9);
|
|
4366
|
+
_$setProp10(_el$7, "flexDirection", "row");
|
|
4367
|
+
_$setProp10(_el$7, "height", 1);
|
|
4368
|
+
_$setProp10(_el$7, "gap", 1);
|
|
4369
|
+
_$effect10((_p$) => {
|
|
4370
|
+
var _v$3 = theme.green, _v$4 = release().tag_name, _v$5 = theme.fg_dim, _v$6 = published_relative();
|
|
4371
|
+
_v$3 !== _p$.e && (_p$.e = _$setProp10(_el$8, "fg", _v$3, _p$.e));
|
|
4372
|
+
_v$4 !== _p$.t && (_p$.t = _$setProp10(_el$8, "content", _v$4, _p$.t));
|
|
4373
|
+
_v$5 !== _p$.a && (_p$.a = _$setProp10(_el$9, "fg", _v$5, _p$.a));
|
|
4374
|
+
_v$6 !== _p$.o && (_p$.o = _$setProp10(_el$9, "content", _v$6, _p$.o));
|
|
4375
|
+
return _p$;
|
|
4376
|
+
}, {
|
|
4377
|
+
e: undefined,
|
|
4378
|
+
t: undefined,
|
|
4379
|
+
a: undefined,
|
|
4380
|
+
o: undefined
|
|
4381
|
+
});
|
|
4382
|
+
return _el$7;
|
|
4383
|
+
})(), (() => {
|
|
4384
|
+
var _el$0 = _$createElement10("box"), _el$1 = _$createElement10("text"), _el$10 = _$createElement10("text");
|
|
4385
|
+
_$insertNode9(_el$0, _el$1);
|
|
4386
|
+
_$insertNode9(_el$0, _el$10);
|
|
4387
|
+
_$setProp10(_el$0, "flexDirection", "row");
|
|
4388
|
+
_$setProp10(_el$0, "height", 1);
|
|
4389
|
+
_$setProp10(_el$0, "gap", 1);
|
|
4390
|
+
_$setProp10(_el$10, "content", "commits since release");
|
|
4391
|
+
_$effect10((_p$) => {
|
|
4392
|
+
var _v$7 = release().commits_since > 0 ? theme.yellow : theme.green, _v$8 = `${release().commits_since}`, _v$9 = theme.fg_dim;
|
|
4393
|
+
_v$7 !== _p$.e && (_p$.e = _$setProp10(_el$1, "fg", _v$7, _p$.e));
|
|
4394
|
+
_v$8 !== _p$.t && (_p$.t = _$setProp10(_el$1, "content", _v$8, _p$.t));
|
|
4395
|
+
_v$9 !== _p$.a && (_p$.a = _$setProp10(_el$10, "fg", _v$9, _p$.a));
|
|
4396
|
+
return _p$;
|
|
4397
|
+
}, {
|
|
4398
|
+
e: undefined,
|
|
4399
|
+
t: undefined,
|
|
4400
|
+
a: undefined
|
|
4401
|
+
});
|
|
4402
|
+
return _el$0;
|
|
4403
|
+
})()]
|
|
4404
|
+
});
|
|
4405
|
+
}
|
|
4406
|
+
}), null);
|
|
4407
|
+
_$insert10(_el$, _$createComponent10(Show8, {
|
|
4408
|
+
get when() {
|
|
4409
|
+
return github2.error()?.kind === "gh_cli_not_found";
|
|
4410
|
+
},
|
|
4411
|
+
get children() {
|
|
4412
|
+
var _el$2 = _$createElement10("box"), _el$3 = _$createElement10("text"), _el$4 = _$createElement10("text");
|
|
4413
|
+
_$insertNode9(_el$2, _el$3);
|
|
4414
|
+
_$insertNode9(_el$2, _el$4);
|
|
4415
|
+
_$setProp10(_el$2, "flexDirection", "row");
|
|
4416
|
+
_$setProp10(_el$2, "height", 1);
|
|
4417
|
+
_$setProp10(_el$2, "gap", 1);
|
|
4418
|
+
_$setProp10(_el$3, "content", "gh not available");
|
|
4419
|
+
_$setProp10(_el$4, "content", "https://cli.github.com");
|
|
4420
|
+
_$effect10((_p$) => {
|
|
4421
|
+
var _v$ = theme.fg_dim, _v$2 = theme.cyan;
|
|
4422
|
+
_v$ !== _p$.e && (_p$.e = _$setProp10(_el$3, "fg", _v$, _p$.e));
|
|
4423
|
+
_v$2 !== _p$.t && (_p$.t = _$setProp10(_el$4, "fg", _v$2, _p$.t));
|
|
4424
|
+
return _p$;
|
|
4425
|
+
}, {
|
|
4426
|
+
e: undefined,
|
|
4427
|
+
t: undefined
|
|
4428
|
+
});
|
|
4429
|
+
return _el$2;
|
|
4430
|
+
}
|
|
4431
|
+
}), null);
|
|
4432
|
+
_$insert10(_el$, _$createComponent10(Show8, {
|
|
4433
|
+
get when() {
|
|
4434
|
+
return github2.error()?.kind === "not_github_repo";
|
|
4435
|
+
},
|
|
4436
|
+
get children() {
|
|
4437
|
+
var _el$5 = _$createElement10("text");
|
|
4438
|
+
_$setProp10(_el$5, "content", "not a GitHub repo");
|
|
4439
|
+
_$effect10((_$p) => _$setProp10(_el$5, "fg", theme.fg_dim, _$p));
|
|
4440
|
+
return _el$5;
|
|
4441
|
+
}
|
|
4442
|
+
}), null);
|
|
4443
|
+
return _el$;
|
|
4444
|
+
})();
|
|
3570
4445
|
}
|
|
3571
4446
|
registerWidget({
|
|
3572
4447
|
id: "github-release",
|
|
@@ -3576,6 +4451,13 @@ registerWidget({
|
|
|
3576
4451
|
});
|
|
3577
4452
|
|
|
3578
4453
|
// packages/render/src/components/widgets/devpad-tasks.tsx
|
|
4454
|
+
import { insertNode as _$insertNode10 } from "@opentui/solid";
|
|
4455
|
+
import { insert as _$insert11 } from "@opentui/solid";
|
|
4456
|
+
import { effect as _$effect11 } from "@opentui/solid";
|
|
4457
|
+
import { memo as _$memo4 } from "@opentui/solid";
|
|
4458
|
+
import { createComponent as _$createComponent11 } from "@opentui/solid";
|
|
4459
|
+
import { setProp as _$setProp11 } from "@opentui/solid";
|
|
4460
|
+
import { createElement as _$createElement11 } from "@opentui/solid";
|
|
3579
4461
|
import { For as For8, Show as Show9, Switch as Switch2, Match as Match2, createMemo as createMemo6 } from "solid-js";
|
|
3580
4462
|
|
|
3581
4463
|
// packages/render/src/lib/use-devpad.ts
|
|
@@ -8981,17 +9863,38 @@ function useDevpad(remote_url, repo_name) {
|
|
|
8981
9863
|
}
|
|
8982
9864
|
|
|
8983
9865
|
// packages/render/src/components/widgets/devpad-tasks.tsx
|
|
8984
|
-
var size_hint8 = {
|
|
9866
|
+
var size_hint8 = {
|
|
9867
|
+
span: "full",
|
|
9868
|
+
min_height: 2
|
|
9869
|
+
};
|
|
8985
9870
|
var MAX_VISIBLE3 = 10;
|
|
8986
9871
|
var priority_indicator = {
|
|
8987
|
-
HIGH: {
|
|
8988
|
-
|
|
8989
|
-
|
|
9872
|
+
HIGH: {
|
|
9873
|
+
char: "!",
|
|
9874
|
+
color: theme.red
|
|
9875
|
+
},
|
|
9876
|
+
MEDIUM: {
|
|
9877
|
+
char: "\xB7",
|
|
9878
|
+
color: theme.yellow
|
|
9879
|
+
},
|
|
9880
|
+
LOW: {
|
|
9881
|
+
char: "\xB7",
|
|
9882
|
+
color: theme.fg_dim
|
|
9883
|
+
}
|
|
8990
9884
|
};
|
|
8991
9885
|
var progress_indicator = {
|
|
8992
|
-
UNSTARTED: {
|
|
8993
|
-
|
|
8994
|
-
|
|
9886
|
+
UNSTARTED: {
|
|
9887
|
+
char: "\u25CB",
|
|
9888
|
+
color: theme.fg_dim
|
|
9889
|
+
},
|
|
9890
|
+
IN_PROGRESS: {
|
|
9891
|
+
char: "\u25D1",
|
|
9892
|
+
color: theme.blue
|
|
9893
|
+
},
|
|
9894
|
+
COMPLETED: {
|
|
9895
|
+
char: "\u25CF",
|
|
9896
|
+
color: theme.green
|
|
9897
|
+
}
|
|
8995
9898
|
};
|
|
8996
9899
|
function DevpadTasksWidget(props) {
|
|
8997
9900
|
const remote_url = createMemo6(() => props.status?.remote_url ?? null);
|
|
@@ -9000,58 +9903,135 @@ function DevpadTasksWidget(props) {
|
|
|
9000
9903
|
const tasks = createMemo6(() => devpad2.data()?.tasks ?? []);
|
|
9001
9904
|
const visible = () => tasks().slice(0, MAX_VISIBLE3);
|
|
9002
9905
|
const overflow = () => Math.max(0, tasks().length - MAX_VISIBLE3);
|
|
9003
|
-
return
|
|
9004
|
-
|
|
9005
|
-
|
|
9006
|
-
|
|
9007
|
-
|
|
9008
|
-
|
|
9009
|
-
|
|
9010
|
-
|
|
9011
|
-
|
|
9012
|
-
|
|
9013
|
-
|
|
9014
|
-
|
|
9015
|
-
|
|
9016
|
-
|
|
9017
|
-
|
|
9018
|
-
|
|
9019
|
-
|
|
9020
|
-
|
|
9021
|
-
|
|
9022
|
-
|
|
9023
|
-
|
|
9024
|
-
|
|
9025
|
-
|
|
9026
|
-
|
|
9027
|
-
|
|
9028
|
-
|
|
9029
|
-
|
|
9030
|
-
|
|
9031
|
-
|
|
9032
|
-
|
|
9033
|
-
|
|
9034
|
-
|
|
9035
|
-
|
|
9036
|
-
|
|
9037
|
-
|
|
9038
|
-
|
|
9039
|
-
|
|
9040
|
-
|
|
9041
|
-
|
|
9042
|
-
|
|
9043
|
-
|
|
9044
|
-
|
|
9045
|
-
|
|
9046
|
-
|
|
9047
|
-
|
|
9906
|
+
return (() => {
|
|
9907
|
+
var _el$ = _$createElement11("box");
|
|
9908
|
+
_$setProp11(_el$, "flexDirection", "column");
|
|
9909
|
+
_$insert11(_el$, _$createComponent11(Switch2, {
|
|
9910
|
+
get children() {
|
|
9911
|
+
return [_$createComponent11(Match2, {
|
|
9912
|
+
get when() {
|
|
9913
|
+
return devpad2.error();
|
|
9914
|
+
},
|
|
9915
|
+
children: (err3) => (() => {
|
|
9916
|
+
var _el$6 = _$createElement11("text");
|
|
9917
|
+
_$effect11((_p$) => {
|
|
9918
|
+
var _v$5 = theme.fg_dim, _v$6 = err3();
|
|
9919
|
+
_v$5 !== _p$.e && (_p$.e = _$setProp11(_el$6, "fg", _v$5, _p$.e));
|
|
9920
|
+
_v$6 !== _p$.t && (_p$.t = _$setProp11(_el$6, "content", _v$6, _p$.t));
|
|
9921
|
+
return _p$;
|
|
9922
|
+
}, {
|
|
9923
|
+
e: undefined,
|
|
9924
|
+
t: undefined
|
|
9925
|
+
});
|
|
9926
|
+
return _el$6;
|
|
9927
|
+
})()
|
|
9928
|
+
}), _$createComponent11(Match2, {
|
|
9929
|
+
get when() {
|
|
9930
|
+
return _$memo4(() => !!devpad2.loading())() && !devpad2.data();
|
|
9931
|
+
},
|
|
9932
|
+
get children() {
|
|
9933
|
+
var _el$2 = _$createElement11("text");
|
|
9934
|
+
_$setProp11(_el$2, "content", "loading\u2026");
|
|
9935
|
+
_$effect11((_$p) => _$setProp11(_el$2, "fg", theme.fg_dim, _$p));
|
|
9936
|
+
return _el$2;
|
|
9937
|
+
}
|
|
9938
|
+
}), _$createComponent11(Match2, {
|
|
9939
|
+
get when() {
|
|
9940
|
+
return _$memo4(() => !!!devpad2.data()?.project)() && devpad2.data() !== null;
|
|
9941
|
+
},
|
|
9942
|
+
get children() {
|
|
9943
|
+
var _el$3 = _$createElement11("text");
|
|
9944
|
+
_$setProp11(_el$3, "content", "no devpad project");
|
|
9945
|
+
_$effect11((_$p) => _$setProp11(_el$3, "fg", theme.fg_dim, _$p));
|
|
9946
|
+
return _el$3;
|
|
9947
|
+
}
|
|
9948
|
+
}), _$createComponent11(Match2, {
|
|
9949
|
+
when: true,
|
|
9950
|
+
get children() {
|
|
9951
|
+
return [(() => {
|
|
9952
|
+
var _el$4 = _$createElement11("text");
|
|
9953
|
+
_$effect11((_p$) => {
|
|
9954
|
+
var _v$ = theme.fg_dark, _v$2 = `Tasks (${tasks().length})`;
|
|
9955
|
+
_v$ !== _p$.e && (_p$.e = _$setProp11(_el$4, "fg", _v$, _p$.e));
|
|
9956
|
+
_v$2 !== _p$.t && (_p$.t = _$setProp11(_el$4, "content", _v$2, _p$.t));
|
|
9957
|
+
return _p$;
|
|
9958
|
+
}, {
|
|
9959
|
+
e: undefined,
|
|
9960
|
+
t: undefined
|
|
9961
|
+
});
|
|
9962
|
+
return _el$4;
|
|
9963
|
+
})(), _$createComponent11(Show9, {
|
|
9964
|
+
get when() {
|
|
9965
|
+
return tasks().length > 0;
|
|
9966
|
+
},
|
|
9967
|
+
get fallback() {
|
|
9968
|
+
return (() => {
|
|
9969
|
+
var _el$7 = _$createElement11("text");
|
|
9970
|
+
_$setProp11(_el$7, "content", "(no open tasks)");
|
|
9971
|
+
_$effect11((_$p) => _$setProp11(_el$7, "fg", theme.fg_dim, _$p));
|
|
9972
|
+
return _el$7;
|
|
9973
|
+
})();
|
|
9974
|
+
},
|
|
9975
|
+
get children() {
|
|
9976
|
+
return [_$createComponent11(For8, {
|
|
9977
|
+
get each() {
|
|
9978
|
+
return visible();
|
|
9979
|
+
},
|
|
9980
|
+
children: (task) => {
|
|
9981
|
+
const pi = () => priority_indicator[task.priority];
|
|
9982
|
+
const si = () => progress_indicator[task.progress];
|
|
9983
|
+
const available = () => Math.max(1, props.width - 4);
|
|
9984
|
+
return (() => {
|
|
9985
|
+
var _el$8 = _$createElement11("box"), _el$9 = _$createElement11("text"), _el$0 = _$createElement11("text"), _el$1 = _$createElement11("text");
|
|
9986
|
+
_$insertNode10(_el$8, _el$9);
|
|
9987
|
+
_$insertNode10(_el$8, _el$0);
|
|
9988
|
+
_$insertNode10(_el$8, _el$1);
|
|
9989
|
+
_$setProp11(_el$8, "flexDirection", "row");
|
|
9990
|
+
_$setProp11(_el$8, "height", 1);
|
|
9991
|
+
_$effect11((_p$) => {
|
|
9992
|
+
var _v$7 = si().color, _v$8 = `${si().char} `, _v$9 = pi().color, _v$0 = `${pi().char} `, _v$1 = truncate(task.title, available());
|
|
9993
|
+
_v$7 !== _p$.e && (_p$.e = _$setProp11(_el$9, "fg", _v$7, _p$.e));
|
|
9994
|
+
_v$8 !== _p$.t && (_p$.t = _$setProp11(_el$9, "content", _v$8, _p$.t));
|
|
9995
|
+
_v$9 !== _p$.a && (_p$.a = _$setProp11(_el$0, "fg", _v$9, _p$.a));
|
|
9996
|
+
_v$0 !== _p$.o && (_p$.o = _$setProp11(_el$0, "content", _v$0, _p$.o));
|
|
9997
|
+
_v$1 !== _p$.i && (_p$.i = _$setProp11(_el$1, "content", _v$1, _p$.i));
|
|
9998
|
+
return _p$;
|
|
9999
|
+
}, {
|
|
10000
|
+
e: undefined,
|
|
10001
|
+
t: undefined,
|
|
10002
|
+
a: undefined,
|
|
10003
|
+
o: undefined,
|
|
10004
|
+
i: undefined
|
|
10005
|
+
});
|
|
10006
|
+
return _el$8;
|
|
10007
|
+
})();
|
|
10008
|
+
}
|
|
10009
|
+
}), _$createComponent11(Show9, {
|
|
10010
|
+
get when() {
|
|
10011
|
+
return overflow() > 0;
|
|
10012
|
+
},
|
|
10013
|
+
get children() {
|
|
10014
|
+
var _el$5 = _$createElement11("text");
|
|
10015
|
+
_$effect11((_p$) => {
|
|
10016
|
+
var _v$3 = theme.fg_dim, _v$4 = `+${overflow()} more`;
|
|
10017
|
+
_v$3 !== _p$.e && (_p$.e = _$setProp11(_el$5, "fg", _v$3, _p$.e));
|
|
10018
|
+
_v$4 !== _p$.t && (_p$.t = _$setProp11(_el$5, "content", _v$4, _p$.t));
|
|
10019
|
+
return _p$;
|
|
10020
|
+
}, {
|
|
10021
|
+
e: undefined,
|
|
10022
|
+
t: undefined
|
|
10023
|
+
});
|
|
10024
|
+
return _el$5;
|
|
10025
|
+
}
|
|
10026
|
+
})];
|
|
10027
|
+
}
|
|
10028
|
+
})];
|
|
10029
|
+
}
|
|
10030
|
+
})];
|
|
10031
|
+
}
|
|
9048
10032
|
}));
|
|
9049
|
-
|
|
9050
|
-
|
|
9051
|
-
}, /* @__PURE__ */ React.createElement("text", {
|
|
9052
|
-
fg: theme.fg_dim,
|
|
9053
|
-
content: `+${overflow()} more`
|
|
9054
|
-
}))))));
|
|
10033
|
+
return _el$;
|
|
10034
|
+
})();
|
|
9055
10035
|
}
|
|
9056
10036
|
registerWidget({
|
|
9057
10037
|
id: "devpad-tasks",
|
|
@@ -9061,8 +10041,18 @@ registerWidget({
|
|
|
9061
10041
|
});
|
|
9062
10042
|
|
|
9063
10043
|
// packages/render/src/components/widgets/devpad-milestones.tsx
|
|
10044
|
+
import { insertNode as _$insertNode11 } from "@opentui/solid";
|
|
10045
|
+
import { insert as _$insert12 } from "@opentui/solid";
|
|
10046
|
+
import { effect as _$effect12 } from "@opentui/solid";
|
|
10047
|
+
import { memo as _$memo5 } from "@opentui/solid";
|
|
10048
|
+
import { createComponent as _$createComponent12 } from "@opentui/solid";
|
|
10049
|
+
import { setProp as _$setProp12 } from "@opentui/solid";
|
|
10050
|
+
import { createElement as _$createElement12 } from "@opentui/solid";
|
|
9064
10051
|
import { For as For9, Show as Show10, Switch as Switch3, Match as Match3, createMemo as createMemo7 } from "solid-js";
|
|
9065
|
-
var size_hint9 = {
|
|
10052
|
+
var size_hint9 = {
|
|
10053
|
+
span: "half",
|
|
10054
|
+
min_height: 2
|
|
10055
|
+
};
|
|
9066
10056
|
function progressBar(total, completed, width) {
|
|
9067
10057
|
if (total === 0)
|
|
9068
10058
|
return "\u2591".repeat(width);
|
|
@@ -9077,69 +10067,139 @@ function DevpadMilestonesWidget(props) {
|
|
|
9077
10067
|
const max_visible = 4;
|
|
9078
10068
|
const visible = () => milestones().slice(0, max_visible);
|
|
9079
10069
|
const overflow = () => Math.max(0, milestones().length - max_visible);
|
|
9080
|
-
return
|
|
9081
|
-
|
|
9082
|
-
|
|
9083
|
-
|
|
9084
|
-
|
|
9085
|
-
|
|
9086
|
-
|
|
9087
|
-
|
|
9088
|
-
|
|
9089
|
-
|
|
9090
|
-
|
|
9091
|
-
|
|
9092
|
-
|
|
9093
|
-
|
|
9094
|
-
|
|
9095
|
-
|
|
9096
|
-
|
|
9097
|
-
|
|
9098
|
-
|
|
9099
|
-
|
|
9100
|
-
|
|
9101
|
-
|
|
9102
|
-
|
|
9103
|
-
|
|
9104
|
-
|
|
9105
|
-
|
|
9106
|
-
|
|
9107
|
-
|
|
9108
|
-
|
|
9109
|
-
|
|
9110
|
-
|
|
9111
|
-
|
|
9112
|
-
|
|
9113
|
-
|
|
9114
|
-
|
|
9115
|
-
|
|
9116
|
-
|
|
9117
|
-
|
|
9118
|
-
|
|
9119
|
-
|
|
9120
|
-
|
|
9121
|
-
|
|
9122
|
-
|
|
9123
|
-
|
|
9124
|
-
|
|
9125
|
-
|
|
9126
|
-
|
|
9127
|
-
|
|
9128
|
-
|
|
9129
|
-
|
|
9130
|
-
|
|
9131
|
-
|
|
9132
|
-
|
|
9133
|
-
|
|
9134
|
-
|
|
9135
|
-
|
|
9136
|
-
|
|
9137
|
-
|
|
9138
|
-
|
|
9139
|
-
|
|
9140
|
-
|
|
9141
|
-
|
|
9142
|
-
|
|
10070
|
+
return (() => {
|
|
10071
|
+
var _el$ = _$createElement12("box");
|
|
10072
|
+
_$setProp12(_el$, "flexDirection", "column");
|
|
10073
|
+
_$insert12(_el$, _$createComponent12(Switch3, {
|
|
10074
|
+
get children() {
|
|
10075
|
+
return [_$createComponent12(Match3, {
|
|
10076
|
+
get when() {
|
|
10077
|
+
return devpad2.error();
|
|
10078
|
+
},
|
|
10079
|
+
children: (err3) => (() => {
|
|
10080
|
+
var _el$5 = _$createElement12("text");
|
|
10081
|
+
_$effect12((_p$) => {
|
|
10082
|
+
var _v$3 = theme.fg_dim, _v$4 = err3();
|
|
10083
|
+
_v$3 !== _p$.e && (_p$.e = _$setProp12(_el$5, "fg", _v$3, _p$.e));
|
|
10084
|
+
_v$4 !== _p$.t && (_p$.t = _$setProp12(_el$5, "content", _v$4, _p$.t));
|
|
10085
|
+
return _p$;
|
|
10086
|
+
}, {
|
|
10087
|
+
e: undefined,
|
|
10088
|
+
t: undefined
|
|
10089
|
+
});
|
|
10090
|
+
return _el$5;
|
|
10091
|
+
})()
|
|
10092
|
+
}), _$createComponent12(Match3, {
|
|
10093
|
+
get when() {
|
|
10094
|
+
return _$memo5(() => !!devpad2.loading())() && !devpad2.data();
|
|
10095
|
+
},
|
|
10096
|
+
get children() {
|
|
10097
|
+
var _el$2 = _$createElement12("text");
|
|
10098
|
+
_$setProp12(_el$2, "content", "loading\u2026");
|
|
10099
|
+
_$effect12((_$p) => _$setProp12(_el$2, "fg", theme.fg_dim, _$p));
|
|
10100
|
+
return _el$2;
|
|
10101
|
+
}
|
|
10102
|
+
}), _$createComponent12(Match3, {
|
|
10103
|
+
get when() {
|
|
10104
|
+
return _$memo5(() => !!!devpad2.data()?.project)() && devpad2.data() !== null;
|
|
10105
|
+
},
|
|
10106
|
+
get children() {
|
|
10107
|
+
var _el$3 = _$createElement12("text");
|
|
10108
|
+
_$setProp12(_el$3, "content", "no devpad project");
|
|
10109
|
+
_$effect12((_$p) => _$setProp12(_el$3, "fg", theme.fg_dim, _$p));
|
|
10110
|
+
return _el$3;
|
|
10111
|
+
}
|
|
10112
|
+
}), _$createComponent12(Match3, {
|
|
10113
|
+
when: true,
|
|
10114
|
+
get children() {
|
|
10115
|
+
return _$createComponent12(Show10, {
|
|
10116
|
+
get when() {
|
|
10117
|
+
return milestones().length > 0;
|
|
10118
|
+
},
|
|
10119
|
+
get fallback() {
|
|
10120
|
+
return (() => {
|
|
10121
|
+
var _el$6 = _$createElement12("text");
|
|
10122
|
+
_$setProp12(_el$6, "content", "no milestones");
|
|
10123
|
+
_$effect12((_$p) => _$setProp12(_el$6, "fg", theme.fg_dim, _$p));
|
|
10124
|
+
return _el$6;
|
|
10125
|
+
})();
|
|
10126
|
+
},
|
|
10127
|
+
get children() {
|
|
10128
|
+
return [_$createComponent12(For9, {
|
|
10129
|
+
get each() {
|
|
10130
|
+
return visible();
|
|
10131
|
+
},
|
|
10132
|
+
children: (ms) => {
|
|
10133
|
+
const pct = () => ms.goals_total > 0 ? Math.round(ms.goals_completed / ms.goals_total * 100) : 0;
|
|
10134
|
+
const bar_width = 12;
|
|
10135
|
+
const label = () => {
|
|
10136
|
+
const version_str = ms.target_version ? ` (${ms.target_version})` : "";
|
|
10137
|
+
return truncate(`${ms.name}${version_str}`, Math.max(1, props.width - bar_width - 8));
|
|
10138
|
+
};
|
|
10139
|
+
const bar = () => progressBar(ms.goals_total, ms.goals_completed, bar_width);
|
|
10140
|
+
const bar_color = () => pct() === 100 ? theme.green : theme.blue;
|
|
10141
|
+
return (() => {
|
|
10142
|
+
var _el$7 = _$createElement12("box"), _el$8 = _$createElement12("box"), _el$9 = _$createElement12("text"), _el$0 = _$createElement12("text"), _el$1 = _$createElement12("box"), _el$10 = _$createElement12("text"), _el$11 = _$createElement12("text");
|
|
10143
|
+
_$insertNode11(_el$7, _el$8);
|
|
10144
|
+
_$insertNode11(_el$7, _el$1);
|
|
10145
|
+
_$setProp12(_el$7, "flexDirection", "column");
|
|
10146
|
+
_$setProp12(_el$7, "height", 2);
|
|
10147
|
+
_$insertNode11(_el$8, _el$9);
|
|
10148
|
+
_$insertNode11(_el$8, _el$0);
|
|
10149
|
+
_$setProp12(_el$8, "flexDirection", "row");
|
|
10150
|
+
_$setProp12(_el$8, "height", 1);
|
|
10151
|
+
_$insertNode11(_el$1, _el$10);
|
|
10152
|
+
_$insertNode11(_el$1, _el$11);
|
|
10153
|
+
_$setProp12(_el$1, "flexDirection", "row");
|
|
10154
|
+
_$setProp12(_el$1, "height", 1);
|
|
10155
|
+
_$effect12((_p$) => {
|
|
10156
|
+
var _v$5 = label(), _v$6 = theme.fg_dim, _v$7 = ` ${ms.goals_completed}/${ms.goals_total}`, _v$8 = bar_color(), _v$9 = bar(), _v$0 = theme.fg_dim, _v$1 = ` ${pct()}%`;
|
|
10157
|
+
_v$5 !== _p$.e && (_p$.e = _$setProp12(_el$9, "content", _v$5, _p$.e));
|
|
10158
|
+
_v$6 !== _p$.t && (_p$.t = _$setProp12(_el$0, "fg", _v$6, _p$.t));
|
|
10159
|
+
_v$7 !== _p$.a && (_p$.a = _$setProp12(_el$0, "content", _v$7, _p$.a));
|
|
10160
|
+
_v$8 !== _p$.o && (_p$.o = _$setProp12(_el$10, "fg", _v$8, _p$.o));
|
|
10161
|
+
_v$9 !== _p$.i && (_p$.i = _$setProp12(_el$10, "content", _v$9, _p$.i));
|
|
10162
|
+
_v$0 !== _p$.n && (_p$.n = _$setProp12(_el$11, "fg", _v$0, _p$.n));
|
|
10163
|
+
_v$1 !== _p$.s && (_p$.s = _$setProp12(_el$11, "content", _v$1, _p$.s));
|
|
10164
|
+
return _p$;
|
|
10165
|
+
}, {
|
|
10166
|
+
e: undefined,
|
|
10167
|
+
t: undefined,
|
|
10168
|
+
a: undefined,
|
|
10169
|
+
o: undefined,
|
|
10170
|
+
i: undefined,
|
|
10171
|
+
n: undefined,
|
|
10172
|
+
s: undefined
|
|
10173
|
+
});
|
|
10174
|
+
return _el$7;
|
|
10175
|
+
})();
|
|
10176
|
+
}
|
|
10177
|
+
}), _$createComponent12(Show10, {
|
|
10178
|
+
get when() {
|
|
10179
|
+
return overflow() > 0;
|
|
10180
|
+
},
|
|
10181
|
+
get children() {
|
|
10182
|
+
var _el$4 = _$createElement12("text");
|
|
10183
|
+
_$effect12((_p$) => {
|
|
10184
|
+
var _v$ = theme.fg_dim, _v$2 = `+${overflow()} more`;
|
|
10185
|
+
_v$ !== _p$.e && (_p$.e = _$setProp12(_el$4, "fg", _v$, _p$.e));
|
|
10186
|
+
_v$2 !== _p$.t && (_p$.t = _$setProp12(_el$4, "content", _v$2, _p$.t));
|
|
10187
|
+
return _p$;
|
|
10188
|
+
}, {
|
|
10189
|
+
e: undefined,
|
|
10190
|
+
t: undefined
|
|
10191
|
+
});
|
|
10192
|
+
return _el$4;
|
|
10193
|
+
}
|
|
10194
|
+
})];
|
|
10195
|
+
}
|
|
10196
|
+
});
|
|
10197
|
+
}
|
|
10198
|
+
})];
|
|
10199
|
+
}
|
|
10200
|
+
}));
|
|
10201
|
+
return _el$;
|
|
10202
|
+
})();
|
|
9143
10203
|
}
|
|
9144
10204
|
registerWidget({
|
|
9145
10205
|
id: "devpad-milestones",
|
|
@@ -9149,17 +10209,20 @@ registerWidget({
|
|
|
9149
10209
|
});
|
|
9150
10210
|
|
|
9151
10211
|
// packages/render/src/components/widgets/github-issues.tsx
|
|
10212
|
+
import { insertNode as _$insertNode12 } from "@opentui/solid";
|
|
10213
|
+
import { insert as _$insert13 } from "@opentui/solid";
|
|
10214
|
+
import { memo as _$memo6 } from "@opentui/solid";
|
|
10215
|
+
import { createComponent as _$createComponent13 } from "@opentui/solid";
|
|
10216
|
+
import { effect as _$effect13 } from "@opentui/solid";
|
|
10217
|
+
import { setProp as _$setProp13 } from "@opentui/solid";
|
|
10218
|
+
import { createElement as _$createElement13 } from "@opentui/solid";
|
|
9152
10219
|
import { For as For10, Show as Show11, Switch as Switch4, Match as Match4, createMemo as createMemo8 } from "solid-js";
|
|
9153
|
-
var size_hint10 = {
|
|
10220
|
+
var size_hint10 = {
|
|
10221
|
+
span: "half",
|
|
10222
|
+
min_height: 2
|
|
10223
|
+
};
|
|
9154
10224
|
var MAX_VISIBLE4 = 10;
|
|
9155
|
-
var label_colors = [
|
|
9156
|
-
theme.cyan,
|
|
9157
|
-
theme.magenta,
|
|
9158
|
-
theme.yellow,
|
|
9159
|
-
theme.green,
|
|
9160
|
-
theme.red,
|
|
9161
|
-
theme.orange
|
|
9162
|
-
];
|
|
10225
|
+
var label_colors = [theme.cyan, theme.magenta, theme.yellow, theme.green, theme.red, theme.orange];
|
|
9163
10226
|
function labelColor(index2) {
|
|
9164
10227
|
return label_colors[index2 % label_colors.length];
|
|
9165
10228
|
}
|
|
@@ -9175,74 +10238,166 @@ function GithubIssuesWidget(props) {
|
|
|
9175
10238
|
const dots_len = issue.labels.length > 0 ? issue.labels.length * 2 : 0;
|
|
9176
10239
|
const available = props.width - 2 - number_str.length - 1 - dots_len;
|
|
9177
10240
|
const title = truncate(issue.title, Math.max(1, available));
|
|
9178
|
-
return {
|
|
10241
|
+
return {
|
|
10242
|
+
number_str,
|
|
10243
|
+
title
|
|
10244
|
+
};
|
|
9179
10245
|
};
|
|
9180
|
-
return
|
|
9181
|
-
|
|
9182
|
-
|
|
9183
|
-
|
|
9184
|
-
|
|
9185
|
-
|
|
9186
|
-
|
|
9187
|
-
|
|
9188
|
-
|
|
9189
|
-
|
|
9190
|
-
|
|
9191
|
-
|
|
9192
|
-
|
|
9193
|
-
|
|
9194
|
-
|
|
9195
|
-
|
|
9196
|
-
|
|
9197
|
-
|
|
9198
|
-
|
|
9199
|
-
|
|
9200
|
-
|
|
9201
|
-
|
|
9202
|
-
|
|
9203
|
-
|
|
9204
|
-
|
|
9205
|
-
|
|
9206
|
-
|
|
9207
|
-
|
|
9208
|
-
|
|
9209
|
-
|
|
9210
|
-
|
|
9211
|
-
|
|
9212
|
-
|
|
9213
|
-
|
|
9214
|
-
|
|
9215
|
-
|
|
9216
|
-
|
|
9217
|
-
|
|
9218
|
-
|
|
9219
|
-
|
|
9220
|
-
|
|
9221
|
-
|
|
9222
|
-
|
|
9223
|
-
|
|
9224
|
-
|
|
9225
|
-
|
|
9226
|
-
|
|
9227
|
-
|
|
9228
|
-
|
|
9229
|
-
|
|
9230
|
-
|
|
9231
|
-
|
|
9232
|
-
|
|
9233
|
-
|
|
9234
|
-
|
|
9235
|
-
|
|
9236
|
-
|
|
9237
|
-
|
|
9238
|
-
|
|
9239
|
-
|
|
9240
|
-
|
|
9241
|
-
|
|
9242
|
-
|
|
9243
|
-
|
|
9244
|
-
|
|
9245
|
-
|
|
10246
|
+
return (() => {
|
|
10247
|
+
var _el$ = _$createElement13("box");
|
|
10248
|
+
_$setProp13(_el$, "flexDirection", "column");
|
|
10249
|
+
_$insert13(_el$, _$createComponent13(Switch4, {
|
|
10250
|
+
get children() {
|
|
10251
|
+
return [_$createComponent13(Match4, {
|
|
10252
|
+
get when() {
|
|
10253
|
+
return github2.error()?.kind === "gh_cli_not_found";
|
|
10254
|
+
},
|
|
10255
|
+
get children() {
|
|
10256
|
+
return [(() => {
|
|
10257
|
+
var _el$2 = _$createElement13("text");
|
|
10258
|
+
_$setProp13(_el$2, "content", "gh not available");
|
|
10259
|
+
_$effect13((_$p) => _$setProp13(_el$2, "fg", theme.fg_dim, _$p));
|
|
10260
|
+
return _el$2;
|
|
10261
|
+
})(), (() => {
|
|
10262
|
+
var _el$3 = _$createElement13("text");
|
|
10263
|
+
_$setProp13(_el$3, "content", "install: https://cli.github.com");
|
|
10264
|
+
_$effect13((_$p) => _$setProp13(_el$3, "fg", theme.fg_dim, _$p));
|
|
10265
|
+
return _el$3;
|
|
10266
|
+
})()];
|
|
10267
|
+
}
|
|
10268
|
+
}), _$createComponent13(Match4, {
|
|
10269
|
+
get when() {
|
|
10270
|
+
return github2.error()?.kind === "not_github_repo";
|
|
10271
|
+
},
|
|
10272
|
+
get children() {
|
|
10273
|
+
var _el$4 = _$createElement13("text");
|
|
10274
|
+
_$setProp13(_el$4, "content", "not a GitHub repo");
|
|
10275
|
+
_$effect13((_$p) => _$setProp13(_el$4, "fg", theme.fg_dim, _$p));
|
|
10276
|
+
return _el$4;
|
|
10277
|
+
}
|
|
10278
|
+
}), _$createComponent13(Match4, {
|
|
10279
|
+
get when() {
|
|
10280
|
+
return github2.error()?.kind === "gh_auth_required";
|
|
10281
|
+
},
|
|
10282
|
+
get children() {
|
|
10283
|
+
var _el$5 = _$createElement13("text");
|
|
10284
|
+
_$setProp13(_el$5, "content", "gh auth required");
|
|
10285
|
+
_$effect13((_$p) => _$setProp13(_el$5, "fg", theme.fg_dim, _$p));
|
|
10286
|
+
return _el$5;
|
|
10287
|
+
}
|
|
10288
|
+
}), _$createComponent13(Match4, {
|
|
10289
|
+
get when() {
|
|
10290
|
+
return github2.error();
|
|
10291
|
+
},
|
|
10292
|
+
get children() {
|
|
10293
|
+
var _el$6 = _$createElement13("text");
|
|
10294
|
+
_$setProp13(_el$6, "content", "GitHub error");
|
|
10295
|
+
_$effect13((_$p) => _$setProp13(_el$6, "fg", theme.fg_dim, _$p));
|
|
10296
|
+
return _el$6;
|
|
10297
|
+
}
|
|
10298
|
+
}), _$createComponent13(Match4, {
|
|
10299
|
+
get when() {
|
|
10300
|
+
return _$memo6(() => !!github2.loading())() && !github2.data();
|
|
10301
|
+
},
|
|
10302
|
+
get children() {
|
|
10303
|
+
var _el$7 = _$createElement13("text");
|
|
10304
|
+
_$setProp13(_el$7, "content", "loading\u2026");
|
|
10305
|
+
_$effect13((_$p) => _$setProp13(_el$7, "fg", theme.fg_dim, _$p));
|
|
10306
|
+
return _el$7;
|
|
10307
|
+
}
|
|
10308
|
+
}), _$createComponent13(Match4, {
|
|
10309
|
+
when: true,
|
|
10310
|
+
get children() {
|
|
10311
|
+
return [(() => {
|
|
10312
|
+
var _el$8 = _$createElement13("text");
|
|
10313
|
+
_$effect13((_p$) => {
|
|
10314
|
+
var _v$ = theme.fg_dark, _v$2 = `Issues (${issues().length})`;
|
|
10315
|
+
_v$ !== _p$.e && (_p$.e = _$setProp13(_el$8, "fg", _v$, _p$.e));
|
|
10316
|
+
_v$2 !== _p$.t && (_p$.t = _$setProp13(_el$8, "content", _v$2, _p$.t));
|
|
10317
|
+
return _p$;
|
|
10318
|
+
}, {
|
|
10319
|
+
e: undefined,
|
|
10320
|
+
t: undefined
|
|
10321
|
+
});
|
|
10322
|
+
return _el$8;
|
|
10323
|
+
})(), _$createComponent13(Show11, {
|
|
10324
|
+
get when() {
|
|
10325
|
+
return issues().length > 0;
|
|
10326
|
+
},
|
|
10327
|
+
get fallback() {
|
|
10328
|
+
return (() => {
|
|
10329
|
+
var _el$0 = _$createElement13("text");
|
|
10330
|
+
_$setProp13(_el$0, "content", "(no issues)");
|
|
10331
|
+
_$effect13((_$p) => _$setProp13(_el$0, "fg", theme.fg_dim, _$p));
|
|
10332
|
+
return _el$0;
|
|
10333
|
+
})();
|
|
10334
|
+
},
|
|
10335
|
+
get children() {
|
|
10336
|
+
return [_$createComponent13(For10, {
|
|
10337
|
+
get each() {
|
|
10338
|
+
return visible();
|
|
10339
|
+
},
|
|
10340
|
+
children: (issue) => {
|
|
10341
|
+
const line = () => formatIssueLine(issue);
|
|
10342
|
+
return (() => {
|
|
10343
|
+
var _el$1 = _$createElement13("box"), _el$10 = _$createElement13("text"), _el$11 = _$createElement13("text");
|
|
10344
|
+
_$insertNode12(_el$1, _el$10);
|
|
10345
|
+
_$insertNode12(_el$1, _el$11);
|
|
10346
|
+
_$setProp13(_el$1, "flexDirection", "row");
|
|
10347
|
+
_$setProp13(_el$1, "height", 1);
|
|
10348
|
+
_$insert13(_el$1, _$createComponent13(For10, {
|
|
10349
|
+
get each() {
|
|
10350
|
+
return issue.labels;
|
|
10351
|
+
},
|
|
10352
|
+
children: (_, i) => (() => {
|
|
10353
|
+
var _el$12 = _$createElement13("text");
|
|
10354
|
+
_$setProp13(_el$12, "content", " \u25CF");
|
|
10355
|
+
_$effect13((_$p) => _$setProp13(_el$12, "fg", labelColor(i()), _$p));
|
|
10356
|
+
return _el$12;
|
|
10357
|
+
})()
|
|
10358
|
+
}), null);
|
|
10359
|
+
_$effect13((_p$) => {
|
|
10360
|
+
var _v$5 = theme.fg_dim, _v$6 = `${line().number_str} `, _v$7 = theme.fg, _v$8 = line().title;
|
|
10361
|
+
_v$5 !== _p$.e && (_p$.e = _$setProp13(_el$10, "fg", _v$5, _p$.e));
|
|
10362
|
+
_v$6 !== _p$.t && (_p$.t = _$setProp13(_el$10, "content", _v$6, _p$.t));
|
|
10363
|
+
_v$7 !== _p$.a && (_p$.a = _$setProp13(_el$11, "fg", _v$7, _p$.a));
|
|
10364
|
+
_v$8 !== _p$.o && (_p$.o = _$setProp13(_el$11, "content", _v$8, _p$.o));
|
|
10365
|
+
return _p$;
|
|
10366
|
+
}, {
|
|
10367
|
+
e: undefined,
|
|
10368
|
+
t: undefined,
|
|
10369
|
+
a: undefined,
|
|
10370
|
+
o: undefined
|
|
10371
|
+
});
|
|
10372
|
+
return _el$1;
|
|
10373
|
+
})();
|
|
10374
|
+
}
|
|
10375
|
+
}), _$createComponent13(Show11, {
|
|
10376
|
+
get when() {
|
|
10377
|
+
return overflow() > 0;
|
|
10378
|
+
},
|
|
10379
|
+
get children() {
|
|
10380
|
+
var _el$9 = _$createElement13("text");
|
|
10381
|
+
_$effect13((_p$) => {
|
|
10382
|
+
var _v$3 = theme.fg_dim, _v$4 = `+${overflow()} more`;
|
|
10383
|
+
_v$3 !== _p$.e && (_p$.e = _$setProp13(_el$9, "fg", _v$3, _p$.e));
|
|
10384
|
+
_v$4 !== _p$.t && (_p$.t = _$setProp13(_el$9, "content", _v$4, _p$.t));
|
|
10385
|
+
return _p$;
|
|
10386
|
+
}, {
|
|
10387
|
+
e: undefined,
|
|
10388
|
+
t: undefined
|
|
10389
|
+
});
|
|
10390
|
+
return _el$9;
|
|
10391
|
+
}
|
|
10392
|
+
})];
|
|
10393
|
+
}
|
|
10394
|
+
})];
|
|
10395
|
+
}
|
|
10396
|
+
})];
|
|
10397
|
+
}
|
|
10398
|
+
}));
|
|
10399
|
+
return _el$;
|
|
10400
|
+
})();
|
|
9246
10401
|
}
|
|
9247
10402
|
registerWidget({
|
|
9248
10403
|
id: "github-issues",
|
|
@@ -9252,8 +10407,17 @@ registerWidget({
|
|
|
9252
10407
|
});
|
|
9253
10408
|
|
|
9254
10409
|
// packages/render/src/components/widgets/commit-activity.tsx
|
|
10410
|
+
import { createComponent as _$createComponent14 } from "@opentui/solid";
|
|
10411
|
+
import { effect as _$effect14 } from "@opentui/solid";
|
|
10412
|
+
import { insertNode as _$insertNode13 } from "@opentui/solid";
|
|
10413
|
+
import { insert as _$insert14 } from "@opentui/solid";
|
|
10414
|
+
import { setProp as _$setProp14 } from "@opentui/solid";
|
|
10415
|
+
import { createElement as _$createElement14 } from "@opentui/solid";
|
|
9255
10416
|
import { Show as Show12, createMemo as createMemo9 } from "solid-js";
|
|
9256
|
-
var size_hint11 = {
|
|
10417
|
+
var size_hint11 = {
|
|
10418
|
+
span: "third",
|
|
10419
|
+
min_height: 2
|
|
10420
|
+
};
|
|
9257
10421
|
var BLOCKS = " \u2581\u2582\u2583\u2584\u2585\u2586\u2587\u2588";
|
|
9258
10422
|
function renderSparkline(counts) {
|
|
9259
10423
|
const max = Math.max(...counts, 1);
|
|
@@ -9307,62 +10471,112 @@ function CommitActivityWidget(props) {
|
|
|
9307
10471
|
color: c > 0 ? theme.green : theme.fg_dim
|
|
9308
10472
|
}));
|
|
9309
10473
|
});
|
|
9310
|
-
return
|
|
9311
|
-
|
|
9312
|
-
|
|
9313
|
-
|
|
9314
|
-
|
|
9315
|
-
|
|
9316
|
-
|
|
9317
|
-
|
|
9318
|
-
|
|
9319
|
-
|
|
9320
|
-
|
|
9321
|
-
|
|
9322
|
-
|
|
9323
|
-
|
|
9324
|
-
|
|
9325
|
-
|
|
9326
|
-
|
|
9327
|
-
|
|
9328
|
-
|
|
9329
|
-
|
|
9330
|
-
|
|
9331
|
-
|
|
9332
|
-
|
|
9333
|
-
|
|
9334
|
-
|
|
9335
|
-
|
|
9336
|
-
|
|
9337
|
-
|
|
9338
|
-
|
|
9339
|
-
|
|
9340
|
-
|
|
9341
|
-
|
|
9342
|
-
|
|
9343
|
-
|
|
9344
|
-
|
|
9345
|
-
|
|
9346
|
-
|
|
9347
|
-
|
|
9348
|
-
|
|
9349
|
-
|
|
9350
|
-
|
|
9351
|
-
|
|
9352
|
-
|
|
9353
|
-
|
|
9354
|
-
|
|
9355
|
-
|
|
9356
|
-
|
|
9357
|
-
|
|
9358
|
-
|
|
9359
|
-
|
|
9360
|
-
|
|
9361
|
-
|
|
9362
|
-
|
|
9363
|
-
|
|
9364
|
-
|
|
9365
|
-
|
|
10474
|
+
return (() => {
|
|
10475
|
+
var _el$ = _$createElement14("box");
|
|
10476
|
+
_$setProp14(_el$, "flexDirection", "column");
|
|
10477
|
+
_$insert14(_el$, _$createComponent14(Show12, {
|
|
10478
|
+
get when() {
|
|
10479
|
+
return activity();
|
|
10480
|
+
},
|
|
10481
|
+
get fallback() {
|
|
10482
|
+
return (() => {
|
|
10483
|
+
var _el$14 = _$createElement14("text");
|
|
10484
|
+
_$setProp14(_el$14, "content", "(no activity data)");
|
|
10485
|
+
_$effect14((_$p) => _$setProp14(_el$14, "fg", theme.fg_dim, _$p));
|
|
10486
|
+
return _el$14;
|
|
10487
|
+
})();
|
|
10488
|
+
},
|
|
10489
|
+
get children() {
|
|
10490
|
+
return [(() => {
|
|
10491
|
+
var _el$2 = _$createElement14("box");
|
|
10492
|
+
_$setProp14(_el$2, "flexDirection", "row");
|
|
10493
|
+
_$setProp14(_el$2, "height", 1);
|
|
10494
|
+
_$insert14(_el$2, () => sparkline_colored().map((s) => (() => {
|
|
10495
|
+
var _el$15 = _$createElement14("text");
|
|
10496
|
+
_$effect14((_p$) => {
|
|
10497
|
+
var { color: _v$11, char: _v$12 } = s;
|
|
10498
|
+
_v$11 !== _p$.e && (_p$.e = _$setProp14(_el$15, "fg", _v$11, _p$.e));
|
|
10499
|
+
_v$12 !== _p$.t && (_p$.t = _$setProp14(_el$15, "content", _v$12, _p$.t));
|
|
10500
|
+
return _p$;
|
|
10501
|
+
}, {
|
|
10502
|
+
e: undefined,
|
|
10503
|
+
t: undefined
|
|
10504
|
+
});
|
|
10505
|
+
return _el$15;
|
|
10506
|
+
})()));
|
|
10507
|
+
return _el$2;
|
|
10508
|
+
})(), (() => {
|
|
10509
|
+
var _el$3 = _$createElement14("box"), _el$4 = _$createElement14("box"), _el$5 = _$createElement14("text"), _el$6 = _$createElement14("text"), _el$7 = _$createElement14("box"), _el$8 = _$createElement14("text"), _el$9 = _$createElement14("text"), _el$0 = _$createElement14("box"), _el$1 = _$createElement14("text"), _el$10 = _$createElement14("text");
|
|
10510
|
+
_$insertNode13(_el$3, _el$4);
|
|
10511
|
+
_$insertNode13(_el$3, _el$7);
|
|
10512
|
+
_$insertNode13(_el$3, _el$0);
|
|
10513
|
+
_$setProp14(_el$3, "flexDirection", "row");
|
|
10514
|
+
_$setProp14(_el$3, "height", 1);
|
|
10515
|
+
_$setProp14(_el$3, "gap", 2);
|
|
10516
|
+
_$insertNode13(_el$4, _el$5);
|
|
10517
|
+
_$insertNode13(_el$4, _el$6);
|
|
10518
|
+
_$setProp14(_el$4, "flexDirection", "row");
|
|
10519
|
+
_$setProp14(_el$4, "gap", 1);
|
|
10520
|
+
_$setProp14(_el$5, "content", "this week:");
|
|
10521
|
+
_$insertNode13(_el$7, _el$8);
|
|
10522
|
+
_$insertNode13(_el$7, _el$9);
|
|
10523
|
+
_$setProp14(_el$7, "flexDirection", "row");
|
|
10524
|
+
_$setProp14(_el$7, "gap", 1);
|
|
10525
|
+
_$setProp14(_el$8, "content", "last week:");
|
|
10526
|
+
_$insertNode13(_el$0, _el$1);
|
|
10527
|
+
_$insertNode13(_el$0, _el$10);
|
|
10528
|
+
_$setProp14(_el$0, "flexDirection", "row");
|
|
10529
|
+
_$setProp14(_el$0, "gap", 1);
|
|
10530
|
+
_$setProp14(_el$1, "content", "delta:");
|
|
10531
|
+
_$effect14((_p$) => {
|
|
10532
|
+
var _v$ = theme.fg_dim, _v$2 = theme.yellow, _v$3 = `${activity().total_this_week}`, _v$4 = theme.fg_dim, _v$5 = theme.yellow, _v$6 = `${activity().total_last_week}`, _v$7 = theme.fg_dim, _v$8 = delta_color(), _v$9 = delta_str();
|
|
10533
|
+
_v$ !== _p$.e && (_p$.e = _$setProp14(_el$5, "fg", _v$, _p$.e));
|
|
10534
|
+
_v$2 !== _p$.t && (_p$.t = _$setProp14(_el$6, "fg", _v$2, _p$.t));
|
|
10535
|
+
_v$3 !== _p$.a && (_p$.a = _$setProp14(_el$6, "content", _v$3, _p$.a));
|
|
10536
|
+
_v$4 !== _p$.o && (_p$.o = _$setProp14(_el$8, "fg", _v$4, _p$.o));
|
|
10537
|
+
_v$5 !== _p$.i && (_p$.i = _$setProp14(_el$9, "fg", _v$5, _p$.i));
|
|
10538
|
+
_v$6 !== _p$.n && (_p$.n = _$setProp14(_el$9, "content", _v$6, _p$.n));
|
|
10539
|
+
_v$7 !== _p$.s && (_p$.s = _$setProp14(_el$1, "fg", _v$7, _p$.s));
|
|
10540
|
+
_v$8 !== _p$.h && (_p$.h = _$setProp14(_el$10, "fg", _v$8, _p$.h));
|
|
10541
|
+
_v$9 !== _p$.r && (_p$.r = _$setProp14(_el$10, "content", _v$9, _p$.r));
|
|
10542
|
+
return _p$;
|
|
10543
|
+
}, {
|
|
10544
|
+
e: undefined,
|
|
10545
|
+
t: undefined,
|
|
10546
|
+
a: undefined,
|
|
10547
|
+
o: undefined,
|
|
10548
|
+
i: undefined,
|
|
10549
|
+
n: undefined,
|
|
10550
|
+
s: undefined,
|
|
10551
|
+
h: undefined,
|
|
10552
|
+
r: undefined
|
|
10553
|
+
});
|
|
10554
|
+
return _el$3;
|
|
10555
|
+
})(), (() => {
|
|
10556
|
+
var _el$11 = _$createElement14("box"), _el$12 = _$createElement14("text"), _el$13 = _$createElement14("text");
|
|
10557
|
+
_$insertNode13(_el$11, _el$12);
|
|
10558
|
+
_$insertNode13(_el$11, _el$13);
|
|
10559
|
+
_$setProp14(_el$11, "flexDirection", "row");
|
|
10560
|
+
_$setProp14(_el$11, "height", 1);
|
|
10561
|
+
_$setProp14(_el$11, "gap", 1);
|
|
10562
|
+
_$setProp14(_el$13, "content", "commits in 14 days");
|
|
10563
|
+
_$effect14((_p$) => {
|
|
10564
|
+
var _v$0 = theme.yellow, _v$1 = `${total_14d()}`, _v$10 = theme.fg_dim;
|
|
10565
|
+
_v$0 !== _p$.e && (_p$.e = _$setProp14(_el$12, "fg", _v$0, _p$.e));
|
|
10566
|
+
_v$1 !== _p$.t && (_p$.t = _$setProp14(_el$12, "content", _v$1, _p$.t));
|
|
10567
|
+
_v$10 !== _p$.a && (_p$.a = _$setProp14(_el$13, "fg", _v$10, _p$.a));
|
|
10568
|
+
return _p$;
|
|
10569
|
+
}, {
|
|
10570
|
+
e: undefined,
|
|
10571
|
+
t: undefined,
|
|
10572
|
+
a: undefined
|
|
10573
|
+
});
|
|
10574
|
+
return _el$11;
|
|
10575
|
+
})()];
|
|
10576
|
+
}
|
|
10577
|
+
}));
|
|
10578
|
+
return _el$;
|
|
10579
|
+
})();
|
|
9366
10580
|
}
|
|
9367
10581
|
registerWidget({
|
|
9368
10582
|
id: "commit-activity",
|
|
@@ -9517,7 +10731,11 @@ function WidgetContainer(props) {
|
|
|
9517
10731
|
const def = getWidget(c.id);
|
|
9518
10732
|
if (!def)
|
|
9519
10733
|
return null;
|
|
9520
|
-
return {
|
|
10734
|
+
return {
|
|
10735
|
+
id: c.id,
|
|
10736
|
+
size_hint: def.size_hint,
|
|
10737
|
+
config: c
|
|
10738
|
+
};
|
|
9521
10739
|
}).filter((gw) => gw !== null);
|
|
9522
10740
|
});
|
|
9523
10741
|
const content_width = createMemo10(() => props.availableWidth - 1);
|
|
@@ -9569,14 +10787,23 @@ function WidgetContainer(props) {
|
|
|
9569
10787
|
if (region_height <= vp_height) {
|
|
9570
10788
|
if (!top_visible) {
|
|
9571
10789
|
const target = Math.max(0, region_top);
|
|
9572
|
-
scrollbox_ref.scrollTo({
|
|
10790
|
+
scrollbox_ref.scrollTo({
|
|
10791
|
+
x: 0,
|
|
10792
|
+
y: target
|
|
10793
|
+
});
|
|
9573
10794
|
} else {
|
|
9574
10795
|
const target = region_bottom - vp_height;
|
|
9575
|
-
scrollbox_ref.scrollTo({
|
|
10796
|
+
scrollbox_ref.scrollTo({
|
|
10797
|
+
x: 0,
|
|
10798
|
+
y: target
|
|
10799
|
+
});
|
|
9576
10800
|
}
|
|
9577
10801
|
} else {
|
|
9578
10802
|
const target = Math.max(0, region_top);
|
|
9579
|
-
scrollbox_ref.scrollTo({
|
|
10803
|
+
scrollbox_ref.scrollTo({
|
|
10804
|
+
x: 0,
|
|
10805
|
+
y: target
|
|
10806
|
+
});
|
|
9580
10807
|
}
|
|
9581
10808
|
}
|
|
9582
10809
|
createEffect4(on(focused_idx, () => scrollToFocused()));
|
|
@@ -9597,14 +10824,20 @@ function WidgetContainer(props) {
|
|
|
9597
10824
|
if (key.raw === "c") {
|
|
9598
10825
|
const widget_id = ids[focused_idx()];
|
|
9599
10826
|
if (widget_id) {
|
|
9600
|
-
const updated = props.widgetConfigs.map((c) => c.id === widget_id ? {
|
|
10827
|
+
const updated = props.widgetConfigs.map((c) => c.id === widget_id ? {
|
|
10828
|
+
...c,
|
|
10829
|
+
collapsed: !c.collapsed
|
|
10830
|
+
} : c);
|
|
9601
10831
|
props.onWidgetConfigChange?.(updated);
|
|
9602
10832
|
}
|
|
9603
10833
|
return;
|
|
9604
10834
|
}
|
|
9605
10835
|
if (key.raw === "C") {
|
|
9606
10836
|
const all_collapsed = props.widgetConfigs.every((c) => !c.enabled || c.collapsed);
|
|
9607
|
-
const updated = props.widgetConfigs.map((c) => ({
|
|
10837
|
+
const updated = props.widgetConfigs.map((c) => ({
|
|
10838
|
+
...c,
|
|
10839
|
+
collapsed: !all_collapsed
|
|
10840
|
+
}));
|
|
9608
10841
|
props.onWidgetConfigChange?.(updated);
|
|
9609
10842
|
return;
|
|
9610
10843
|
}
|
|
@@ -9618,114 +10851,224 @@ function WidgetContainer(props) {
|
|
|
9618
10851
|
function borderLine(type, prev, next) {
|
|
9619
10852
|
return buildBorderLine(type, content_width(), prev, next);
|
|
9620
10853
|
}
|
|
9621
|
-
return
|
|
9622
|
-
|
|
9623
|
-
|
|
9624
|
-
|
|
9625
|
-
|
|
9626
|
-
|
|
9627
|
-
fallback: /* @__PURE__ */ React.createElement("text", {
|
|
9628
|
-
fg: theme.fg_dim,
|
|
9629
|
-
content: "loading..."
|
|
9630
|
-
})
|
|
9631
|
-
}, /* @__PURE__ */ React.createElement(Show13, {
|
|
9632
|
-
when: props.status,
|
|
9633
|
-
fallback: /* @__PURE__ */ React.createElement("text", {
|
|
9634
|
-
fg: theme.fg_dim,
|
|
9635
|
-
content: "(select a repo)"
|
|
9636
|
-
})
|
|
9637
|
-
}, /* @__PURE__ */ React.createElement("scrollbox", {
|
|
9638
|
-
ref: scrollbox_ref,
|
|
9639
|
-
flexGrow: 1
|
|
9640
|
-
}, /* @__PURE__ */ React.createElement("box", {
|
|
9641
|
-
flexDirection: "column",
|
|
9642
|
-
width: content_width(),
|
|
9643
|
-
flexShrink: 0
|
|
9644
|
-
}, /* @__PURE__ */ React.createElement(For11, {
|
|
9645
|
-
each: grid_layout().rows
|
|
9646
|
-
}, (row, row_index) => {
|
|
9647
|
-
const rows = grid_layout().rows;
|
|
9648
|
-
const prev_row = () => row_index() > 0 ? rows[row_index() - 1] : null;
|
|
9649
|
-
const is_first = () => row_index() === 0;
|
|
9650
|
-
const is_last = () => row_index() === rows.length - 1;
|
|
9651
|
-
const top_line = () => {
|
|
9652
|
-
const type = is_first() ? "top" : "mid";
|
|
9653
|
-
const line = borderLine(type, prev_row(), row);
|
|
9654
|
-
if (is_first()) {
|
|
9655
|
-
return buildBorderLineWithTitle(line, `widgets: ${props.repoName}`);
|
|
9656
|
-
}
|
|
9657
|
-
return line;
|
|
9658
|
-
};
|
|
9659
|
-
return /* @__PURE__ */ React.createElement(Fragment, null, /* @__PURE__ */ React.createElement("text", {
|
|
9660
|
-
fg: props.focused && is_first() ? theme.border_highlight : theme.border,
|
|
9661
|
-
content: top_line()
|
|
9662
|
-
}), /* @__PURE__ */ React.createElement("box", {
|
|
9663
|
-
ref: (el) => {
|
|
9664
|
-
row_refs.set(row_index(), el);
|
|
10854
|
+
return (() => {
|
|
10855
|
+
var _el$ = _$createElement15("box");
|
|
10856
|
+
_$setProp15(_el$, "flexDirection", "column");
|
|
10857
|
+
_$insert15(_el$, _$createComponent15(Show13, {
|
|
10858
|
+
get when() {
|
|
10859
|
+
return !props.loading;
|
|
9665
10860
|
},
|
|
9666
|
-
|
|
9667
|
-
|
|
9668
|
-
|
|
9669
|
-
|
|
9670
|
-
|
|
9671
|
-
|
|
9672
|
-
|
|
9673
|
-
|
|
9674
|
-
|
|
9675
|
-
|
|
9676
|
-
|
|
9677
|
-
|
|
9678
|
-
|
|
9679
|
-
|
|
9680
|
-
|
|
9681
|
-
|
|
9682
|
-
|
|
9683
|
-
|
|
9684
|
-
|
|
9685
|
-
|
|
9686
|
-
|
|
9687
|
-
|
|
9688
|
-
|
|
9689
|
-
|
|
9690
|
-
|
|
9691
|
-
|
|
9692
|
-
|
|
9693
|
-
|
|
9694
|
-
|
|
9695
|
-
|
|
9696
|
-
|
|
9697
|
-
|
|
9698
|
-
|
|
9699
|
-
|
|
9700
|
-
|
|
9701
|
-
|
|
9702
|
-
|
|
9703
|
-
|
|
9704
|
-
|
|
9705
|
-
|
|
9706
|
-
|
|
9707
|
-
|
|
9708
|
-
|
|
9709
|
-
|
|
9710
|
-
|
|
9711
|
-
|
|
9712
|
-
|
|
9713
|
-
|
|
9714
|
-
|
|
9715
|
-
|
|
9716
|
-
|
|
9717
|
-
|
|
9718
|
-
|
|
9719
|
-
|
|
9720
|
-
|
|
9721
|
-
|
|
9722
|
-
|
|
9723
|
-
|
|
9724
|
-
|
|
9725
|
-
|
|
9726
|
-
|
|
10861
|
+
get fallback() {
|
|
10862
|
+
return (() => {
|
|
10863
|
+
var _el$4 = _$createElement15("text");
|
|
10864
|
+
_$setProp15(_el$4, "content", "loading...");
|
|
10865
|
+
_$effect15((_$p) => _$setProp15(_el$4, "fg", theme.fg_dim, _$p));
|
|
10866
|
+
return _el$4;
|
|
10867
|
+
})();
|
|
10868
|
+
},
|
|
10869
|
+
get children() {
|
|
10870
|
+
return _$createComponent15(Show13, {
|
|
10871
|
+
get when() {
|
|
10872
|
+
return props.status;
|
|
10873
|
+
},
|
|
10874
|
+
get fallback() {
|
|
10875
|
+
return (() => {
|
|
10876
|
+
var _el$5 = _$createElement15("text");
|
|
10877
|
+
_$setProp15(_el$5, "content", "(select a repo)");
|
|
10878
|
+
_$effect15((_$p) => _$setProp15(_el$5, "fg", theme.fg_dim, _$p));
|
|
10879
|
+
return _el$5;
|
|
10880
|
+
})();
|
|
10881
|
+
},
|
|
10882
|
+
get children() {
|
|
10883
|
+
var _el$2 = _$createElement15("scrollbox"), _el$3 = _$createElement15("box");
|
|
10884
|
+
_$insertNode14(_el$2, _el$3);
|
|
10885
|
+
var _ref$ = scrollbox_ref;
|
|
10886
|
+
typeof _ref$ === "function" ? _$use(_ref$, _el$2) : scrollbox_ref = _el$2;
|
|
10887
|
+
_$setProp15(_el$2, "flexGrow", 1);
|
|
10888
|
+
_$setProp15(_el$3, "flexDirection", "column");
|
|
10889
|
+
_$setProp15(_el$3, "flexShrink", 0);
|
|
10890
|
+
_$insert15(_el$3, _$createComponent15(For11, {
|
|
10891
|
+
get each() {
|
|
10892
|
+
return grid_layout().rows;
|
|
10893
|
+
},
|
|
10894
|
+
children: (row, row_index) => {
|
|
10895
|
+
const rows = grid_layout().rows;
|
|
10896
|
+
const prev_row = () => row_index() > 0 ? rows[row_index() - 1] : null;
|
|
10897
|
+
const is_first = () => row_index() === 0;
|
|
10898
|
+
const is_last = () => row_index() === rows.length - 1;
|
|
10899
|
+
const top_line = () => {
|
|
10900
|
+
const type = is_first() ? "top" : "mid";
|
|
10901
|
+
const line = borderLine(type, prev_row(), row);
|
|
10902
|
+
if (is_first()) {
|
|
10903
|
+
return buildBorderLineWithTitle(line, `widgets: ${props.repoName}`);
|
|
10904
|
+
}
|
|
10905
|
+
return line;
|
|
10906
|
+
};
|
|
10907
|
+
return [(() => {
|
|
10908
|
+
var _el$6 = _$createElement15("text");
|
|
10909
|
+
_$effect15((_p$) => {
|
|
10910
|
+
var _v$3 = props.focused && is_first() ? theme.border_highlight : theme.border, _v$4 = top_line();
|
|
10911
|
+
_v$3 !== _p$.e && (_p$.e = _$setProp15(_el$6, "fg", _v$3, _p$.e));
|
|
10912
|
+
_v$4 !== _p$.t && (_p$.t = _$setProp15(_el$6, "content", _v$4, _p$.t));
|
|
10913
|
+
return _p$;
|
|
10914
|
+
}, {
|
|
10915
|
+
e: undefined,
|
|
10916
|
+
t: undefined
|
|
10917
|
+
});
|
|
10918
|
+
return _el$6;
|
|
10919
|
+
})(), (() => {
|
|
10920
|
+
var _el$7 = _$createElement15("box");
|
|
10921
|
+
_$use((el) => {
|
|
10922
|
+
row_refs.set(row_index(), el);
|
|
10923
|
+
}, _el$7);
|
|
10924
|
+
_$setProp15(_el$7, "flexDirection", "row");
|
|
10925
|
+
_$setProp15(_el$7, "alignItems", "stretch");
|
|
10926
|
+
_$insert15(_el$7, _$createComponent15(For11, {
|
|
10927
|
+
get each() {
|
|
10928
|
+
return row.widgets;
|
|
10929
|
+
},
|
|
10930
|
+
children: (gw, widget_idx) => {
|
|
10931
|
+
const def = getWidget(gw.id);
|
|
10932
|
+
if (!def)
|
|
10933
|
+
return null;
|
|
10934
|
+
const focused = () => isFocused(gw.id);
|
|
10935
|
+
const box_width = () => {
|
|
10936
|
+
if (row.columns === 1)
|
|
10937
|
+
return content_width();
|
|
10938
|
+
if (row.columns === 2) {
|
|
10939
|
+
const junction = Math.floor(content_width() / 2);
|
|
10940
|
+
if (widget_idx() === 0)
|
|
10941
|
+
return junction;
|
|
10942
|
+
return content_width() - junction;
|
|
10943
|
+
}
|
|
10944
|
+
const j1 = Math.floor(content_width() / 3);
|
|
10945
|
+
const j2 = Math.floor(2 * content_width() / 3);
|
|
10946
|
+
if (widget_idx() === 0)
|
|
10947
|
+
return j1;
|
|
10948
|
+
if (widget_idx() === 1)
|
|
10949
|
+
return j2 - j1;
|
|
10950
|
+
return content_width() - j2;
|
|
10951
|
+
};
|
|
10952
|
+
const widget_content_width = () => {
|
|
10953
|
+
const sides = getWidgetBorderSides(row, widget_idx());
|
|
10954
|
+
return Math.max(1, box_width() - sides.length);
|
|
10955
|
+
};
|
|
10956
|
+
return (() => {
|
|
10957
|
+
var _el$9 = _$createElement15("box");
|
|
10958
|
+
_$setProp15(_el$9, "borderStyle", "rounded");
|
|
10959
|
+
_$setProp15(_el$9, "flexDirection", "column");
|
|
10960
|
+
_$setProp15(_el$9, "overflow", "hidden");
|
|
10961
|
+
_$insert15(_el$9, _$createComponent15(Show13, {
|
|
10962
|
+
get when() {
|
|
10963
|
+
return !gw.config.collapsed;
|
|
10964
|
+
},
|
|
10965
|
+
get fallback() {
|
|
10966
|
+
return (() => {
|
|
10967
|
+
var _el$1 = _$createElement15("text");
|
|
10968
|
+
_$effect15((_p$) => {
|
|
10969
|
+
var _v$12 = focused() ? theme.yellow : theme.fg_dim, _v$13 = focused() ? `\u25B8 [>] ${def.label} (collapsed)` : `[>] ${def.label} (collapsed)`;
|
|
10970
|
+
_v$12 !== _p$.e && (_p$.e = _$setProp15(_el$1, "fg", _v$12, _p$.e));
|
|
10971
|
+
_v$13 !== _p$.t && (_p$.t = _$setProp15(_el$1, "content", _v$13, _p$.t));
|
|
10972
|
+
return _p$;
|
|
10973
|
+
}, {
|
|
10974
|
+
e: undefined,
|
|
10975
|
+
t: undefined
|
|
10976
|
+
});
|
|
10977
|
+
return _el$1;
|
|
10978
|
+
})();
|
|
10979
|
+
},
|
|
10980
|
+
get children() {
|
|
10981
|
+
return [(() => {
|
|
10982
|
+
var _el$0 = _$createElement15("text");
|
|
10983
|
+
_$effect15((_p$) => {
|
|
10984
|
+
var _v$7 = focused() ? theme.yellow : theme.fg_dim, _v$8 = focused() ? `\u25B8 ${def.label}` : ` ${def.label}`;
|
|
10985
|
+
_v$7 !== _p$.e && (_p$.e = _$setProp15(_el$0, "fg", _v$7, _p$.e));
|
|
10986
|
+
_v$8 !== _p$.t && (_p$.t = _$setProp15(_el$0, "content", _v$8, _p$.t));
|
|
10987
|
+
return _p$;
|
|
10988
|
+
}, {
|
|
10989
|
+
e: undefined,
|
|
10990
|
+
t: undefined
|
|
10991
|
+
});
|
|
10992
|
+
return _el$0;
|
|
10993
|
+
})(), _$createComponent15(def.component, {
|
|
10994
|
+
get width() {
|
|
10995
|
+
return widget_content_width();
|
|
10996
|
+
},
|
|
10997
|
+
get focused() {
|
|
10998
|
+
return focused();
|
|
10999
|
+
},
|
|
11000
|
+
get status() {
|
|
11001
|
+
return props.status;
|
|
11002
|
+
}
|
|
11003
|
+
})];
|
|
11004
|
+
}
|
|
11005
|
+
}));
|
|
11006
|
+
_$effect15((_p$) => {
|
|
11007
|
+
var _v$9 = box_width(), _v$0 = getWidgetBorderSides(row, widget_idx()), _v$1 = focused() || props.focused && (widget_idx() === 0 || widget_idx() === row.columns - 1) ? theme.border_highlight : theme.border, _v$10 = focused() ? theme.bg_highlight : undefined, _v$11 = gw.size_hint.min_height;
|
|
11008
|
+
_v$9 !== _p$.e && (_p$.e = _$setProp15(_el$9, "width", _v$9, _p$.e));
|
|
11009
|
+
_v$0 !== _p$.t && (_p$.t = _$setProp15(_el$9, "border", _v$0, _p$.t));
|
|
11010
|
+
_v$1 !== _p$.a && (_p$.a = _$setProp15(_el$9, "borderColor", _v$1, _p$.a));
|
|
11011
|
+
_v$10 !== _p$.o && (_p$.o = _$setProp15(_el$9, "backgroundColor", _v$10, _p$.o));
|
|
11012
|
+
_v$11 !== _p$.i && (_p$.i = _$setProp15(_el$9, "minHeight", _v$11, _p$.i));
|
|
11013
|
+
return _p$;
|
|
11014
|
+
}, {
|
|
11015
|
+
e: undefined,
|
|
11016
|
+
t: undefined,
|
|
11017
|
+
a: undefined,
|
|
11018
|
+
o: undefined,
|
|
11019
|
+
i: undefined
|
|
11020
|
+
});
|
|
11021
|
+
return _el$9;
|
|
11022
|
+
})();
|
|
11023
|
+
}
|
|
11024
|
+
}));
|
|
11025
|
+
_$effect15((_$p) => _$setProp15(_el$7, "width", content_width(), _$p));
|
|
11026
|
+
return _el$7;
|
|
11027
|
+
})(), _$createComponent15(Show13, {
|
|
11028
|
+
get when() {
|
|
11029
|
+
return is_last();
|
|
11030
|
+
},
|
|
11031
|
+
get children() {
|
|
11032
|
+
var _el$8 = _$createElement15("text");
|
|
11033
|
+
_$effect15((_p$) => {
|
|
11034
|
+
var _v$5 = props.focused ? theme.border_highlight : theme.border, _v$6 = borderLine("bottom", row, null);
|
|
11035
|
+
_v$5 !== _p$.e && (_p$.e = _$setProp15(_el$8, "fg", _v$5, _p$.e));
|
|
11036
|
+
_v$6 !== _p$.t && (_p$.t = _$setProp15(_el$8, "content", _v$6, _p$.t));
|
|
11037
|
+
return _p$;
|
|
11038
|
+
}, {
|
|
11039
|
+
e: undefined,
|
|
11040
|
+
t: undefined
|
|
11041
|
+
});
|
|
11042
|
+
return _el$8;
|
|
11043
|
+
}
|
|
11044
|
+
})];
|
|
11045
|
+
}
|
|
11046
|
+
}));
|
|
11047
|
+
_$effect15((_$p) => _$setProp15(_el$3, "width", content_width(), _$p));
|
|
11048
|
+
return _el$2;
|
|
11049
|
+
}
|
|
11050
|
+
});
|
|
11051
|
+
}
|
|
11052
|
+
}));
|
|
11053
|
+
_$effect15((_p$) => {
|
|
11054
|
+
var { availableWidth: _v$, height: _v$2 } = props;
|
|
11055
|
+
_v$ !== _p$.e && (_p$.e = _$setProp15(_el$, "width", _v$, _p$.e));
|
|
11056
|
+
_v$2 !== _p$.t && (_p$.t = _$setProp15(_el$, "height", _v$2, _p$.t));
|
|
11057
|
+
return _p$;
|
|
11058
|
+
}, {
|
|
11059
|
+
e: undefined,
|
|
11060
|
+
t: undefined
|
|
11061
|
+
});
|
|
11062
|
+
return _el$;
|
|
11063
|
+
})();
|
|
9727
11064
|
}
|
|
9728
11065
|
// packages/render/src/components/status-bar.tsx
|
|
11066
|
+
import { insert as _$insert16 } from "@opentui/solid";
|
|
11067
|
+
import { insertNode as _$insertNode15 } from "@opentui/solid";
|
|
11068
|
+
import { createComponent as _$createComponent16 } from "@opentui/solid";
|
|
11069
|
+
import { effect as _$effect16 } from "@opentui/solid";
|
|
11070
|
+
import { setProp as _$setProp16 } from "@opentui/solid";
|
|
11071
|
+
import { createElement as _$createElement16 } from "@opentui/solid";
|
|
9729
11072
|
import { createMemo as createMemo11, Show as Show14 } from "solid-js";
|
|
9730
11073
|
var KEY_HINTS = {
|
|
9731
11074
|
NORMAL: "j/k:nav Enter:expand g:ggi r:refresh q:quit ?:help",
|
|
@@ -9755,106 +11098,216 @@ function StatusBar(props) {
|
|
|
9755
11098
|
parts.push(`${props.aheadCount} ahead`);
|
|
9756
11099
|
return parts.join(", ");
|
|
9757
11100
|
});
|
|
9758
|
-
return
|
|
9759
|
-
|
|
9760
|
-
|
|
9761
|
-
|
|
9762
|
-
|
|
9763
|
-
|
|
9764
|
-
|
|
9765
|
-
|
|
9766
|
-
|
|
9767
|
-
|
|
9768
|
-
|
|
9769
|
-
|
|
9770
|
-
|
|
9771
|
-
|
|
9772
|
-
|
|
9773
|
-
|
|
9774
|
-
|
|
9775
|
-
|
|
9776
|
-
|
|
9777
|
-
|
|
9778
|
-
|
|
9779
|
-
|
|
9780
|
-
|
|
9781
|
-
|
|
9782
|
-
|
|
9783
|
-
|
|
9784
|
-
|
|
9785
|
-
|
|
9786
|
-
|
|
9787
|
-
|
|
11101
|
+
return (() => {
|
|
11102
|
+
var _el$ = _$createElement16("box"), _el$2 = _$createElement16("text"), _el$4 = _$createElement16("box"), _el$6 = _$createElement16("text");
|
|
11103
|
+
_$insertNode15(_el$, _el$2);
|
|
11104
|
+
_$insertNode15(_el$, _el$4);
|
|
11105
|
+
_$insertNode15(_el$, _el$6);
|
|
11106
|
+
_$setProp16(_el$, "height", 1);
|
|
11107
|
+
_$setProp16(_el$, "width", "100%");
|
|
11108
|
+
_$setProp16(_el$, "flexDirection", "row");
|
|
11109
|
+
_$setProp16(_el$, "paddingLeft", 1);
|
|
11110
|
+
_$setProp16(_el$, "paddingRight", 1);
|
|
11111
|
+
_$insert16(_el$, _$createComponent16(Show14, {
|
|
11112
|
+
get when() {
|
|
11113
|
+
return props.message;
|
|
11114
|
+
},
|
|
11115
|
+
get fallback() {
|
|
11116
|
+
return (() => {
|
|
11117
|
+
var _el$7 = _$createElement16("text");
|
|
11118
|
+
_$effect16((_p$) => {
|
|
11119
|
+
var _v$0 = theme.fg_dim, _v$1 = ` ${keyHints()}`;
|
|
11120
|
+
_v$0 !== _p$.e && (_p$.e = _$setProp16(_el$7, "fg", _v$0, _p$.e));
|
|
11121
|
+
_v$1 !== _p$.t && (_p$.t = _$setProp16(_el$7, "content", _v$1, _p$.t));
|
|
11122
|
+
return _p$;
|
|
11123
|
+
}, {
|
|
11124
|
+
e: undefined,
|
|
11125
|
+
t: undefined
|
|
11126
|
+
});
|
|
11127
|
+
return _el$7;
|
|
11128
|
+
})();
|
|
11129
|
+
},
|
|
11130
|
+
get children() {
|
|
11131
|
+
var _el$3 = _$createElement16("text");
|
|
11132
|
+
_$effect16((_p$) => {
|
|
11133
|
+
var _v$ = theme.yellow, _v$2 = ` ${props.message}`;
|
|
11134
|
+
_v$ !== _p$.e && (_p$.e = _$setProp16(_el$3, "fg", _v$, _p$.e));
|
|
11135
|
+
_v$2 !== _p$.t && (_p$.t = _$setProp16(_el$3, "content", _v$2, _p$.t));
|
|
11136
|
+
return _p$;
|
|
11137
|
+
}, {
|
|
11138
|
+
e: undefined,
|
|
11139
|
+
t: undefined
|
|
11140
|
+
});
|
|
11141
|
+
return _el$3;
|
|
11142
|
+
}
|
|
11143
|
+
}), _el$4);
|
|
11144
|
+
_$setProp16(_el$4, "flexGrow", 1);
|
|
11145
|
+
_$insert16(_el$, _$createComponent16(Show14, {
|
|
11146
|
+
get when() {
|
|
11147
|
+
return props.widgetSummary;
|
|
11148
|
+
},
|
|
11149
|
+
get children() {
|
|
11150
|
+
var _el$5 = _$createElement16("text");
|
|
11151
|
+
_$effect16((_p$) => {
|
|
11152
|
+
var _v$3 = theme.fg_dim, _v$4 = `${props.widgetSummary} `;
|
|
11153
|
+
_v$3 !== _p$.e && (_p$.e = _$setProp16(_el$5, "fg", _v$3, _p$.e));
|
|
11154
|
+
_v$4 !== _p$.t && (_p$.t = _$setProp16(_el$5, "content", _v$4, _p$.t));
|
|
11155
|
+
return _p$;
|
|
11156
|
+
}, {
|
|
11157
|
+
e: undefined,
|
|
11158
|
+
t: undefined
|
|
11159
|
+
});
|
|
11160
|
+
return _el$5;
|
|
11161
|
+
}
|
|
11162
|
+
}), _el$6);
|
|
11163
|
+
_$effect16((_p$) => {
|
|
11164
|
+
var _v$5 = theme.bg_dark, _v$6 = theme.blue, _v$7 = `[${props.mode}]`, _v$8 = summaryColor(), _v$9 = summaryText();
|
|
11165
|
+
_v$5 !== _p$.e && (_p$.e = _$setProp16(_el$, "backgroundColor", _v$5, _p$.e));
|
|
11166
|
+
_v$6 !== _p$.t && (_p$.t = _$setProp16(_el$2, "fg", _v$6, _p$.t));
|
|
11167
|
+
_v$7 !== _p$.a && (_p$.a = _$setProp16(_el$2, "content", _v$7, _p$.a));
|
|
11168
|
+
_v$8 !== _p$.o && (_p$.o = _$setProp16(_el$6, "fg", _v$8, _p$.o));
|
|
11169
|
+
_v$9 !== _p$.i && (_p$.i = _$setProp16(_el$6, "content", _v$9, _p$.i));
|
|
11170
|
+
return _p$;
|
|
11171
|
+
}, {
|
|
11172
|
+
e: undefined,
|
|
11173
|
+
t: undefined,
|
|
11174
|
+
a: undefined,
|
|
11175
|
+
o: undefined,
|
|
11176
|
+
i: undefined
|
|
11177
|
+
});
|
|
11178
|
+
return _el$;
|
|
11179
|
+
})();
|
|
9788
11180
|
}
|
|
9789
11181
|
// packages/render/src/components/help-overlay.tsx
|
|
11182
|
+
import { effect as _$effect17 } from "@opentui/solid";
|
|
11183
|
+
import { insert as _$insert17 } from "@opentui/solid";
|
|
11184
|
+
import { insertNode as _$insertNode16 } from "@opentui/solid";
|
|
11185
|
+
import { createComponent as _$createComponent17 } from "@opentui/solid";
|
|
11186
|
+
import { setProp as _$setProp17 } from "@opentui/solid";
|
|
11187
|
+
import { createElement as _$createElement17 } from "@opentui/solid";
|
|
9790
11188
|
import { Show as Show15, For as For12 } from "solid-js";
|
|
9791
11189
|
import { useKeyboard as useKeyboard3 } from "@opentui/solid";
|
|
9792
|
-
var SECTIONS = [
|
|
9793
|
-
|
|
9794
|
-
|
|
9795
|
-
|
|
9796
|
-
|
|
9797
|
-
|
|
9798
|
-
|
|
9799
|
-
|
|
9800
|
-
|
|
9801
|
-
|
|
9802
|
-
|
|
9803
|
-
{
|
|
9804
|
-
|
|
9805
|
-
|
|
9806
|
-
|
|
9807
|
-
|
|
9808
|
-
|
|
9809
|
-
|
|
9810
|
-
|
|
9811
|
-
|
|
9812
|
-
|
|
9813
|
-
|
|
9814
|
-
|
|
9815
|
-
|
|
9816
|
-
|
|
9817
|
-
|
|
9818
|
-
|
|
9819
|
-
|
|
9820
|
-
|
|
9821
|
-
|
|
9822
|
-
|
|
9823
|
-
|
|
9824
|
-
|
|
9825
|
-
|
|
9826
|
-
|
|
9827
|
-
|
|
9828
|
-
|
|
9829
|
-
|
|
9830
|
-
|
|
9831
|
-
|
|
9832
|
-
|
|
9833
|
-
|
|
9834
|
-
|
|
9835
|
-
|
|
9836
|
-
|
|
9837
|
-
|
|
9838
|
-
|
|
9839
|
-
|
|
11190
|
+
var SECTIONS = [{
|
|
11191
|
+
title: "Navigation",
|
|
11192
|
+
items: [{
|
|
11193
|
+
key: "j / \u2193",
|
|
11194
|
+
desc: "Move down"
|
|
11195
|
+
}, {
|
|
11196
|
+
key: "k / \u2191",
|
|
11197
|
+
desc: "Move up"
|
|
11198
|
+
}, {
|
|
11199
|
+
key: "g",
|
|
11200
|
+
desc: "First repo"
|
|
11201
|
+
}, {
|
|
11202
|
+
key: "G",
|
|
11203
|
+
desc: "Last repo"
|
|
11204
|
+
}, {
|
|
11205
|
+
key: "Enter",
|
|
11206
|
+
desc: "Expand/collapse or enter detail mode"
|
|
11207
|
+
}]
|
|
11208
|
+
}, {
|
|
11209
|
+
title: "Actions",
|
|
11210
|
+
items: [{
|
|
11211
|
+
key: "g (in detail)",
|
|
11212
|
+
desc: "Launch ggi"
|
|
11213
|
+
}, {
|
|
11214
|
+
key: "o",
|
|
11215
|
+
desc: "Open in $EDITOR"
|
|
11216
|
+
}, {
|
|
11217
|
+
key: "t",
|
|
11218
|
+
desc: "Open tmux session"
|
|
11219
|
+
}, {
|
|
11220
|
+
key: "r",
|
|
11221
|
+
desc: "Refresh selected repo"
|
|
11222
|
+
}, {
|
|
11223
|
+
key: "R",
|
|
11224
|
+
desc: "Full rescan"
|
|
11225
|
+
}]
|
|
11226
|
+
}, {
|
|
11227
|
+
title: "View",
|
|
11228
|
+
items: [{
|
|
11229
|
+
key: "h / l",
|
|
11230
|
+
desc: "Switch panel focus"
|
|
11231
|
+
}, {
|
|
11232
|
+
key: "Tab",
|
|
11233
|
+
desc: "Cycle panel focus"
|
|
11234
|
+
}, {
|
|
11235
|
+
key: "f",
|
|
11236
|
+
desc: "Cycle filter (all/dirty/clean/ahead/behind)"
|
|
11237
|
+
}, {
|
|
11238
|
+
key: "s",
|
|
11239
|
+
desc: "Cycle sort (name/status/last-commit)"
|
|
11240
|
+
}, {
|
|
11241
|
+
key: "/",
|
|
11242
|
+
desc: "Search repos"
|
|
11243
|
+
}]
|
|
11244
|
+
}, {
|
|
11245
|
+
title: "Widgets (stats panel focused)",
|
|
11246
|
+
items: [{
|
|
11247
|
+
key: "j / k",
|
|
11248
|
+
desc: "Navigate between widgets"
|
|
11249
|
+
}, {
|
|
11250
|
+
key: "c",
|
|
11251
|
+
desc: "Collapse/expand focused widget"
|
|
11252
|
+
}, {
|
|
11253
|
+
key: "C",
|
|
11254
|
+
desc: "Collapse/expand all widgets"
|
|
11255
|
+
}]
|
|
11256
|
+
}, {
|
|
11257
|
+
title: "General",
|
|
11258
|
+
items: [{
|
|
11259
|
+
key: "q",
|
|
11260
|
+
desc: "Quit / back"
|
|
11261
|
+
}, {
|
|
11262
|
+
key: "?",
|
|
11263
|
+
desc: "Toggle help"
|
|
11264
|
+
}, {
|
|
11265
|
+
key: "Esc",
|
|
11266
|
+
desc: "Cancel / close"
|
|
11267
|
+
}]
|
|
11268
|
+
}];
|
|
9840
11269
|
function Section(props) {
|
|
9841
|
-
return
|
|
9842
|
-
|
|
9843
|
-
|
|
9844
|
-
|
|
9845
|
-
|
|
9846
|
-
|
|
9847
|
-
|
|
9848
|
-
|
|
9849
|
-
|
|
9850
|
-
|
|
9851
|
-
|
|
9852
|
-
|
|
9853
|
-
|
|
9854
|
-
|
|
9855
|
-
|
|
9856
|
-
|
|
9857
|
-
|
|
11270
|
+
return (() => {
|
|
11271
|
+
var _el$ = _$createElement17("box"), _el$2 = _$createElement17("text");
|
|
11272
|
+
_$insertNode16(_el$, _el$2);
|
|
11273
|
+
_$setProp17(_el$, "flexDirection", "column");
|
|
11274
|
+
_$insert17(_el$, _$createComponent17(For12, {
|
|
11275
|
+
get each() {
|
|
11276
|
+
return props.items;
|
|
11277
|
+
},
|
|
11278
|
+
children: (item) => (() => {
|
|
11279
|
+
var _el$3 = _$createElement17("box"), _el$4 = _$createElement17("text"), _el$5 = _$createElement17("text");
|
|
11280
|
+
_$insertNode16(_el$3, _el$4);
|
|
11281
|
+
_$insertNode16(_el$3, _el$5);
|
|
11282
|
+
_$setProp17(_el$3, "flexDirection", "row");
|
|
11283
|
+
_$setProp17(_el$3, "height", 1);
|
|
11284
|
+
_$effect17((_p$) => {
|
|
11285
|
+
var _v$3 = theme.blue, _v$4 = item.key.padEnd(16), _v$5 = theme.fg, _v$6 = item.desc;
|
|
11286
|
+
_v$3 !== _p$.e && (_p$.e = _$setProp17(_el$4, "fg", _v$3, _p$.e));
|
|
11287
|
+
_v$4 !== _p$.t && (_p$.t = _$setProp17(_el$4, "content", _v$4, _p$.t));
|
|
11288
|
+
_v$5 !== _p$.a && (_p$.a = _$setProp17(_el$5, "fg", _v$5, _p$.a));
|
|
11289
|
+
_v$6 !== _p$.o && (_p$.o = _$setProp17(_el$5, "content", _v$6, _p$.o));
|
|
11290
|
+
return _p$;
|
|
11291
|
+
}, {
|
|
11292
|
+
e: undefined,
|
|
11293
|
+
t: undefined,
|
|
11294
|
+
a: undefined,
|
|
11295
|
+
o: undefined
|
|
11296
|
+
});
|
|
11297
|
+
return _el$3;
|
|
11298
|
+
})()
|
|
11299
|
+
}), null);
|
|
11300
|
+
_$effect17((_p$) => {
|
|
11301
|
+
var _v$ = theme.yellow, _v$2 = props.title;
|
|
11302
|
+
_v$ !== _p$.e && (_p$.e = _$setProp17(_el$2, "fg", _v$, _p$.e));
|
|
11303
|
+
_v$2 !== _p$.t && (_p$.t = _$setProp17(_el$2, "content", _v$2, _p$.t));
|
|
11304
|
+
return _p$;
|
|
11305
|
+
}, {
|
|
11306
|
+
e: undefined,
|
|
11307
|
+
t: undefined
|
|
11308
|
+
});
|
|
11309
|
+
return _el$;
|
|
11310
|
+
})();
|
|
9858
11311
|
}
|
|
9859
11312
|
function HelpOverlay(props) {
|
|
9860
11313
|
useKeyboard3((key) => {
|
|
@@ -9864,29 +11317,47 @@ function HelpOverlay(props) {
|
|
|
9864
11317
|
props.onClose();
|
|
9865
11318
|
}
|
|
9866
11319
|
});
|
|
9867
|
-
return
|
|
9868
|
-
when
|
|
9869
|
-
|
|
9870
|
-
|
|
9871
|
-
|
|
9872
|
-
|
|
9873
|
-
|
|
9874
|
-
|
|
9875
|
-
|
|
9876
|
-
|
|
9877
|
-
|
|
9878
|
-
|
|
9879
|
-
|
|
9880
|
-
|
|
9881
|
-
|
|
9882
|
-
|
|
9883
|
-
|
|
9884
|
-
|
|
9885
|
-
|
|
9886
|
-
|
|
9887
|
-
|
|
9888
|
-
|
|
9889
|
-
|
|
11320
|
+
return _$createComponent17(Show15, {
|
|
11321
|
+
get when() {
|
|
11322
|
+
return props.visible;
|
|
11323
|
+
},
|
|
11324
|
+
get children() {
|
|
11325
|
+
var _el$6 = _$createElement17("box");
|
|
11326
|
+
_$setProp17(_el$6, "position", "absolute");
|
|
11327
|
+
_$setProp17(_el$6, "width", "60%");
|
|
11328
|
+
_$setProp17(_el$6, "height", "80%");
|
|
11329
|
+
_$setProp17(_el$6, "left", "20%");
|
|
11330
|
+
_$setProp17(_el$6, "top", "10%");
|
|
11331
|
+
_$setProp17(_el$6, "borderStyle", "rounded");
|
|
11332
|
+
_$setProp17(_el$6, "title", "Help");
|
|
11333
|
+
_$setProp17(_el$6, "titleAlignment", "center");
|
|
11334
|
+
_$setProp17(_el$6, "padding", 2);
|
|
11335
|
+
_$setProp17(_el$6, "flexDirection", "column");
|
|
11336
|
+
_$setProp17(_el$6, "gap", 1);
|
|
11337
|
+
_$setProp17(_el$6, "zIndex", 100);
|
|
11338
|
+
_$insert17(_el$6, _$createComponent17(For12, {
|
|
11339
|
+
each: SECTIONS,
|
|
11340
|
+
children: (section) => _$createComponent17(Section, {
|
|
11341
|
+
get title() {
|
|
11342
|
+
return section.title;
|
|
11343
|
+
},
|
|
11344
|
+
get items() {
|
|
11345
|
+
return section.items;
|
|
11346
|
+
}
|
|
11347
|
+
})
|
|
11348
|
+
}));
|
|
11349
|
+
_$effect17((_p$) => {
|
|
11350
|
+
var _v$7 = theme.bg_dark, _v$8 = theme.blue;
|
|
11351
|
+
_v$7 !== _p$.e && (_p$.e = _$setProp17(_el$6, "backgroundColor", _v$7, _p$.e));
|
|
11352
|
+
_v$8 !== _p$.t && (_p$.t = _$setProp17(_el$6, "borderColor", _v$8, _p$.t));
|
|
11353
|
+
return _p$;
|
|
11354
|
+
}, {
|
|
11355
|
+
e: undefined,
|
|
11356
|
+
t: undefined
|
|
11357
|
+
});
|
|
11358
|
+
return _el$6;
|
|
11359
|
+
}
|
|
11360
|
+
});
|
|
9890
11361
|
}
|
|
9891
11362
|
// packages/render/src/lib/filter.ts
|
|
9892
11363
|
var FILTER_MODES = ["all", "dirty", "clean", "ahead", "behind"];
|
|
@@ -10055,7 +11526,10 @@ function MainScreen(props) {
|
|
|
10055
11526
|
});
|
|
10056
11527
|
async function handleWidgetConfigChange(configs) {
|
|
10057
11528
|
setWidgetConfigs(configs);
|
|
10058
|
-
const state = {
|
|
11529
|
+
const state = {
|
|
11530
|
+
...getWidgetState(),
|
|
11531
|
+
widgets: configs
|
|
11532
|
+
};
|
|
10059
11533
|
updateWidgetState(state);
|
|
10060
11534
|
await saveWidgetState(state);
|
|
10061
11535
|
}
|
|
@@ -10071,11 +11545,7 @@ function MainScreen(props) {
|
|
|
10071
11545
|
const my_request_id = _details_request_id;
|
|
10072
11546
|
setGraphLoading(true);
|
|
10073
11547
|
setStatsLoading(true);
|
|
10074
|
-
const [graphResult, statsResult, activityResult] = await Promise.all([
|
|
10075
|
-
captureGraph(node.path),
|
|
10076
|
-
collectStats(node.path),
|
|
10077
|
-
collectCommitActivity(node.path)
|
|
10078
|
-
]);
|
|
11548
|
+
const [graphResult, statsResult, activityResult] = await Promise.all([captureGraph(node.path), collectStats(node.path), collectCommitActivity(node.path)]);
|
|
10079
11549
|
if (my_request_id !== _details_request_id)
|
|
10080
11550
|
return;
|
|
10081
11551
|
if (graphResult.ok)
|
|
@@ -10283,69 +11753,136 @@ function MainScreen(props) {
|
|
|
10283
11753
|
}
|
|
10284
11754
|
}
|
|
10285
11755
|
});
|
|
10286
|
-
return
|
|
10287
|
-
|
|
10288
|
-
|
|
10289
|
-
|
|
10290
|
-
|
|
10291
|
-
|
|
10292
|
-
height
|
|
10293
|
-
|
|
10294
|
-
|
|
10295
|
-
|
|
10296
|
-
|
|
10297
|
-
|
|
10298
|
-
|
|
10299
|
-
|
|
10300
|
-
|
|
10301
|
-
|
|
10302
|
-
|
|
10303
|
-
|
|
10304
|
-
|
|
10305
|
-
|
|
10306
|
-
|
|
10307
|
-
|
|
10308
|
-
|
|
10309
|
-
|
|
10310
|
-
|
|
10311
|
-
|
|
10312
|
-
|
|
10313
|
-
|
|
10314
|
-
|
|
10315
|
-
|
|
10316
|
-
|
|
10317
|
-
|
|
10318
|
-
|
|
10319
|
-
|
|
10320
|
-
|
|
10321
|
-
|
|
10322
|
-
|
|
10323
|
-
|
|
10324
|
-
|
|
10325
|
-
|
|
10326
|
-
|
|
10327
|
-
|
|
10328
|
-
|
|
10329
|
-
|
|
10330
|
-
|
|
10331
|
-
|
|
10332
|
-
|
|
10333
|
-
|
|
10334
|
-
|
|
10335
|
-
|
|
10336
|
-
|
|
10337
|
-
|
|
10338
|
-
|
|
10339
|
-
|
|
10340
|
-
|
|
10341
|
-
|
|
10342
|
-
|
|
10343
|
-
|
|
10344
|
-
|
|
10345
|
-
|
|
10346
|
-
|
|
10347
|
-
|
|
10348
|
-
|
|
11756
|
+
return (() => {
|
|
11757
|
+
var _el$ = _$createElement18("box"), _el$2 = _$createElement18("box"), _el$3 = _$createElement18("text"), _el$5 = _$createElement18("box"), _el$6 = _$createElement18("text"), _el$9 = _$createElement18("box"), _el$0 = _$createElement18("box"), _el$1 = _$createElement18("box");
|
|
11758
|
+
_$insertNode17(_el$, _el$2);
|
|
11759
|
+
_$insertNode17(_el$, _el$9);
|
|
11760
|
+
_$setProp18(_el$, "flexDirection", "column");
|
|
11761
|
+
_$setProp18(_el$, "width", "100%");
|
|
11762
|
+
_$setProp18(_el$, "height", "100%");
|
|
11763
|
+
_$insertNode17(_el$2, _el$3);
|
|
11764
|
+
_$insertNode17(_el$2, _el$5);
|
|
11765
|
+
_$insertNode17(_el$2, _el$6);
|
|
11766
|
+
_$setProp18(_el$2, "height", 1);
|
|
11767
|
+
_$setProp18(_el$2, "width", "100%");
|
|
11768
|
+
_$setProp18(_el$2, "paddingLeft", 1);
|
|
11769
|
+
_$insertNode17(_el$3, _$createTextNode(`overview`));
|
|
11770
|
+
_$setProp18(_el$5, "flexGrow", 1);
|
|
11771
|
+
_$insert18(_el$2, _$createComponent18(Show16, {
|
|
11772
|
+
get when() {
|
|
11773
|
+
return scanning();
|
|
11774
|
+
},
|
|
11775
|
+
get children() {
|
|
11776
|
+
var _el$7 = _$createElement18("text");
|
|
11777
|
+
_$insertNode17(_el$7, _$createTextNode(` scanning...`));
|
|
11778
|
+
_$effect18((_$p) => _$setProp18(_el$7, "fg", theme.yellow, _$p));
|
|
11779
|
+
return _el$7;
|
|
11780
|
+
}
|
|
11781
|
+
}), null);
|
|
11782
|
+
_$insertNode17(_el$9, _el$0);
|
|
11783
|
+
_$insertNode17(_el$9, _el$1);
|
|
11784
|
+
_$setProp18(_el$9, "flexDirection", "row");
|
|
11785
|
+
_$setProp18(_el$9, "flexGrow", 1);
|
|
11786
|
+
_$setProp18(_el$0, "flexDirection", "column");
|
|
11787
|
+
_$setProp18(_el$0, "borderStyle", "rounded");
|
|
11788
|
+
_$insert18(_el$0, _$createComponent18(RepoList, {
|
|
11789
|
+
get repos() {
|
|
11790
|
+
return processedRepos();
|
|
11791
|
+
},
|
|
11792
|
+
get focused() {
|
|
11793
|
+
return focusPanel() === "list";
|
|
11794
|
+
},
|
|
11795
|
+
onSelect: handleSelect
|
|
11796
|
+
}));
|
|
11797
|
+
_$setProp18(_el$1, "flexDirection", "column");
|
|
11798
|
+
_$setProp18(_el$1, "flexGrow", 1);
|
|
11799
|
+
_$insert18(_el$1, _$createComponent18(GitGraph, {
|
|
11800
|
+
get graph() {
|
|
11801
|
+
return graph();
|
|
11802
|
+
},
|
|
11803
|
+
get repoName() {
|
|
11804
|
+
return selectedNode()?.name ?? "";
|
|
11805
|
+
},
|
|
11806
|
+
get loading() {
|
|
11807
|
+
return graphLoading();
|
|
11808
|
+
},
|
|
11809
|
+
get focused() {
|
|
11810
|
+
return focusPanel() === "graph";
|
|
11811
|
+
},
|
|
11812
|
+
height: "50%"
|
|
11813
|
+
}), null);
|
|
11814
|
+
_$insert18(_el$1, _$createComponent18(WidgetContainer, {
|
|
11815
|
+
get status() {
|
|
11816
|
+
return selectedNode()?.status ?? null;
|
|
11817
|
+
},
|
|
11818
|
+
get repoName() {
|
|
11819
|
+
return selectedNode()?.name ?? "";
|
|
11820
|
+
},
|
|
11821
|
+
get loading() {
|
|
11822
|
+
return statsLoading();
|
|
11823
|
+
},
|
|
11824
|
+
get focused() {
|
|
11825
|
+
return focusPanel() === "stats";
|
|
11826
|
+
},
|
|
11827
|
+
height: "50%",
|
|
11828
|
+
get availableWidth() {
|
|
11829
|
+
return rightPanelWidth();
|
|
11830
|
+
},
|
|
11831
|
+
get widgetConfigs() {
|
|
11832
|
+
return widgetConfigs();
|
|
11833
|
+
},
|
|
11834
|
+
onWidgetConfigChange: handleWidgetConfigChange
|
|
11835
|
+
}), null);
|
|
11836
|
+
_$insert18(_el$, _$createComponent18(StatusBar, {
|
|
11837
|
+
get mode() {
|
|
11838
|
+
return mode();
|
|
11839
|
+
},
|
|
11840
|
+
get repoCount() {
|
|
11841
|
+
return repoCount();
|
|
11842
|
+
},
|
|
11843
|
+
get dirtyCount() {
|
|
11844
|
+
return dirtyCount();
|
|
11845
|
+
},
|
|
11846
|
+
get aheadCount() {
|
|
11847
|
+
return aheadCount();
|
|
11848
|
+
},
|
|
11849
|
+
get scanning() {
|
|
11850
|
+
return scanning();
|
|
11851
|
+
},
|
|
11852
|
+
get message() {
|
|
11853
|
+
return statusMessage();
|
|
11854
|
+
},
|
|
11855
|
+
get widgetSummary() {
|
|
11856
|
+
return widgetSummary();
|
|
11857
|
+
}
|
|
11858
|
+
}), null);
|
|
11859
|
+
_$insert18(_el$, _$createComponent18(HelpOverlay, {
|
|
11860
|
+
get visible() {
|
|
11861
|
+
return showHelp();
|
|
11862
|
+
},
|
|
11863
|
+
onClose: () => setShowHelp(false)
|
|
11864
|
+
}), null);
|
|
11865
|
+
_$effect18((_p$) => {
|
|
11866
|
+
var _v$ = theme.bg, _v$2 = theme.bg_dark, _v$3 = theme.blue, _v$4 = theme.fg_dim, _v$5 = `${props.config.scan_dirs[0]} \u2014 ${repoCount()} repos`, _v$6 = leftWidth(), _v$7 = focusPanel() === "list" ? theme.border_highlight : theme.border;
|
|
11867
|
+
_v$ !== _p$.e && (_p$.e = _$setProp18(_el$, "backgroundColor", _v$, _p$.e));
|
|
11868
|
+
_v$2 !== _p$.t && (_p$.t = _$setProp18(_el$2, "backgroundColor", _v$2, _p$.t));
|
|
11869
|
+
_v$3 !== _p$.a && (_p$.a = _$setProp18(_el$3, "fg", _v$3, _p$.a));
|
|
11870
|
+
_v$4 !== _p$.o && (_p$.o = _$setProp18(_el$6, "fg", _v$4, _p$.o));
|
|
11871
|
+
_v$5 !== _p$.i && (_p$.i = _$setProp18(_el$6, "content", _v$5, _p$.i));
|
|
11872
|
+
_v$6 !== _p$.n && (_p$.n = _$setProp18(_el$0, "width", _v$6, _p$.n));
|
|
11873
|
+
_v$7 !== _p$.s && (_p$.s = _$setProp18(_el$0, "borderColor", _v$7, _p$.s));
|
|
11874
|
+
return _p$;
|
|
11875
|
+
}, {
|
|
11876
|
+
e: undefined,
|
|
11877
|
+
t: undefined,
|
|
11878
|
+
a: undefined,
|
|
11879
|
+
o: undefined,
|
|
11880
|
+
i: undefined,
|
|
11881
|
+
n: undefined,
|
|
11882
|
+
s: undefined
|
|
11883
|
+
});
|
|
11884
|
+
return _el$;
|
|
11885
|
+
})();
|
|
10349
11886
|
}
|
|
10350
11887
|
// packages/render/src/overview.tsx
|
|
10351
11888
|
var configResult = await loadConfig();
|
|
@@ -10355,7 +11892,7 @@ if (!configResult.ok) {
|
|
|
10355
11892
|
}
|
|
10356
11893
|
var cliArgs = parseCliArgs(Bun.argv);
|
|
10357
11894
|
var config = mergeCliArgs(configResult.value, cliArgs);
|
|
10358
|
-
var App = () =>
|
|
11895
|
+
var App = () => _$createComponent19(MainScreen, {
|
|
10359
11896
|
config
|
|
10360
11897
|
});
|
|
10361
11898
|
render(App);
|