termcast 1.5.0 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/build.d.ts.map +1 -1
- package/dist/build.js +22 -5
- package/dist/build.js.map +1 -1
- package/dist/compile.d.ts.map +1 -1
- package/dist/compile.js +7 -1
- package/dist/compile.js.map +1 -1
- package/dist/components/bar-chart.d.ts.map +1 -1
- package/dist/components/bar-chart.js +14 -3
- package/dist/components/bar-chart.js.map +1 -1
- package/dist/components/bar-graph.d.ts +4 -4
- package/dist/components/bar-graph.d.ts.map +1 -1
- package/dist/components/bar-graph.js +23 -5
- package/dist/components/bar-graph.js.map +1 -1
- package/dist/components/candle-chart.d.ts +15 -0
- package/dist/components/candle-chart.d.ts.map +1 -1
- package/dist/components/candle-chart.js +41 -3
- package/dist/components/candle-chart.js.map +1 -1
- package/dist/components/chart-tooltip.d.ts +83 -0
- package/dist/components/chart-tooltip.d.ts.map +1 -0
- package/dist/components/chart-tooltip.js +127 -0
- package/dist/components/chart-tooltip.js.map +1 -0
- package/dist/components/dotted-line-graph.d.ts +11 -0
- package/dist/components/dotted-line-graph.d.ts.map +1 -1
- package/dist/components/dotted-line-graph.js +43 -2
- package/dist/components/dotted-line-graph.js.map +1 -1
- package/dist/components/graph.d.ts +11 -0
- package/dist/components/graph.d.ts.map +1 -1
- package/dist/components/graph.js +53 -4
- package/dist/components/graph.js.map +1 -1
- package/dist/components/horizontal-bar-graph.d.ts.map +1 -1
- package/dist/components/horizontal-bar-graph.js +16 -5
- package/dist/components/horizontal-bar-graph.js.map +1 -1
- package/dist/components/list.d.ts +7 -0
- package/dist/components/list.d.ts.map +1 -1
- package/dist/components/list.js +75 -14
- package/dist/components/list.js.map +1 -1
- package/dist/examples/chart-tooltips.d.ts +2 -0
- package/dist/examples/chart-tooltips.d.ts.map +1 -0
- package/dist/examples/chart-tooltips.js +16 -0
- package/dist/examples/chart-tooltips.js.map +1 -0
- package/dist/examples/list-detail-height-ratchet.d.ts +2 -0
- package/dist/examples/list-detail-height-ratchet.d.ts.map +1 -0
- package/dist/examples/list-detail-height-ratchet.js +26 -0
- package/dist/examples/list-detail-height-ratchet.js.map +1 -0
- package/dist/extensions/dev.d.ts.map +1 -1
- package/dist/extensions/dev.js +1 -0
- package/dist/extensions/dev.js.map +1 -1
- package/dist/globals.js +8 -0
- package/dist/globals.js.map +1 -1
- package/dist/package-json.d.ts +2 -0
- package/dist/package-json.d.ts.map +1 -1
- package/dist/package-json.js +20 -17
- package/dist/package-json.js.map +1 -1
- package/dist/profiler.d.ts +2 -0
- package/dist/profiler.d.ts.map +1 -0
- package/dist/profiler.js +390 -0
- package/dist/profiler.js.map +1 -0
- package/package.json +14 -15
- package/src/build.tsx +27 -5
- package/src/cli.tsx +0 -0
- package/src/compile.tsx +9 -1
- package/src/compile.vitest.tsx +8 -8
- package/src/components/bar-chart.tsx +23 -3
- package/src/components/bar-graph.tsx +32 -13
- package/src/components/candle-chart.tsx +63 -16
- package/src/components/chart-tooltip.tsx +191 -0
- package/src/components/dotted-line-graph.tsx +49 -3
- package/src/components/graph.tsx +76 -18
- package/src/components/horizontal-bar-graph.tsx +24 -4
- package/src/components/list.tsx +93 -20
- package/src/examples/action-shortcut.vitest.tsx +4 -4
- package/src/examples/actions-context.vitest.tsx +2 -2
- package/src/examples/bar-graph-weekly.vitest.tsx +97 -97
- package/src/examples/chart-tooltips.tsx +54 -0
- package/src/examples/form-basic.vitest.tsx +8 -8
- package/src/examples/github.vitest.tsx +19 -28
- package/src/examples/graph-bar-chart.vitest.tsx +40 -40
- package/src/examples/graph-polymarket.vitest.tsx +24 -24
- package/src/examples/graph-row.vitest.tsx +8 -8
- package/src/examples/graph-styles.vitest.tsx +65 -65
- package/src/examples/horizontal-bar-graph-weekly.vitest.tsx +52 -52
- package/src/examples/list-detail-height-ratchet.tsx +48 -0
- package/src/examples/list-detail-height-ratchet.vitest.tsx +161 -0
- package/src/examples/list-detail-metadata.vitest.tsx +49 -49
- package/src/examples/list-dropdown-default.vitest.tsx +27 -27
- package/src/examples/list-fetch-data.vitest.tsx +3 -3
- package/src/examples/list-item-accessories.vitest.tsx +2 -2
- package/src/examples/list-loading-empty-view.vitest.tsx +1 -1
- package/src/examples/list-no-actions.vitest.tsx +3 -3
- package/src/examples/list-scrollbox.vitest.tsx +6 -6
- package/src/examples/list-spacing-mode.vitest.tsx +3 -3
- package/src/examples/list-with-detail.vitest.tsx +11 -11
- package/src/examples/list-with-dropdown.vitest.tsx +7 -7
- package/src/examples/list-with-sections.vitest.tsx +32 -32
- package/src/examples/list-with-toast.vitest.tsx +4 -4
- package/src/examples/simple-candle-chart.vitest.tsx +63 -61
- package/src/examples/simple-grid.vitest.tsx +13 -13
- package/src/examples/simple-navigation.vitest.tsx +25 -25
- package/src/examples/simple-progress-bar.vitest.tsx +8 -8
- package/src/examples/swift-extension.vitest.tsx +3 -3
- package/src/examples/toast-action.vitest.tsx +4 -4
- package/src/extensions/dev.tsx +2 -1
- package/src/extensions/dev.vitest.tsx +17 -17
- package/src/globals.ts +9 -0
- package/src/package-json.tsx +24 -23
- package/src/profiler.tsx +487 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"horizontal-bar-graph.d.ts","sourceRoot":"","sources":["../../src/components/horizontal-bar-graph.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAc,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"horizontal-bar-graph.d.ts","sourceRoot":"","sources":["../../src/components/horizontal-bar-graph.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAc,EAAE,SAAS,EAAmB,MAAM,OAAO,CAAA;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC,OAAO,EAAE,KAAK,EAAgB,MAAM,qBAAqB,CAAA;AAIzD,MAAM,WAAW,6BAA6B;IAC5C,2CAA2C;IAC3C,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wCAAwC;IACxC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CACxB;AAED,MAAM,WAAW,uBAAwB,SAAQ,QAAQ;IACvD,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,0DAA0D;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,qCAAqC;IACrC,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,wEAAwE;IACxE,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,6EAA6E;IAC7E,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,+DAA+D;IAC/D,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,8DAA8D;IAC9D,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,0CAA0C;IAC1C,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED,UAAU,sBAAsB;IAC9B,CAAC,KAAK,EAAE,uBAAuB,GAAG,GAAG,CAAA;IACrC,MAAM,EAAE,CAAC,KAAK,EAAE,6BAA6B,KAAK,GAAG,CAAA;CACtD;AAkCD,QAAA,MAAM,kBAAkB,EAAE,sBAkNzB,CAAA;AAID,OAAO,EAAE,kBAAkB,EAAE,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "@opentui/react/jsx-runtime";
|
|
2
2
|
/**
|
|
3
3
|
* HorizontalBarGraph renders multi-series horizontal stacked bars.
|
|
4
4
|
*
|
|
@@ -6,9 +6,10 @@ import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "@opentui/reac
|
|
|
6
6
|
* fill available space while the right legend uses only the width needed for
|
|
7
7
|
* colored series rows and percentages.
|
|
8
8
|
*/
|
|
9
|
-
import React, { useMemo } from 'react';
|
|
9
|
+
import React, { useMemo, useRef } from 'react';
|
|
10
10
|
import { resolveColor } from 'termcast/src/colors';
|
|
11
11
|
import { getThemePalette, useTheme } from 'termcast/src/theme';
|
|
12
|
+
import { ChartTooltip, useChartTooltip, formatTooltipLine } from 'termcast/src/components/chart-tooltip';
|
|
12
13
|
function truncateLabel(label, maxLabelWidth) {
|
|
13
14
|
if (label.length <= maxLabelWidth) {
|
|
14
15
|
return label;
|
|
@@ -40,6 +41,8 @@ const HorizontalBarGraph = (props) => {
|
|
|
40
41
|
const theme = useTheme();
|
|
41
42
|
const { labels = [], height, barCharacter = '╻', showHeader = true, showLegend, maxLabelWidth = 16, categoryTitle = 'category', distributionTitle = 'distribution', legendTitle = 'legend', children, ...rest } = props;
|
|
42
43
|
const palette = getThemePalette(theme);
|
|
44
|
+
const containerRef = useRef(null);
|
|
45
|
+
const { tooltip, show: showTooltip, hide: hideTooltip } = useChartTooltip();
|
|
43
46
|
const seriesList = useMemo(() => {
|
|
44
47
|
const childArray = React.Children.toArray(children);
|
|
45
48
|
return childArray
|
|
@@ -120,14 +123,22 @@ const HorizontalBarGraph = (props) => {
|
|
|
120
123
|
const legendWidth = legendVisible ? legendGap + 2 + legendTitleWidth + 2 + legendPercentageWidth : 0;
|
|
121
124
|
const headerHeight = showHeader ? 2 : 0;
|
|
122
125
|
const chartHeight = headerHeight + visibleRows.length;
|
|
123
|
-
return (_jsxs("box", { flexDirection: "column", width: "100%", flexShrink: 0, ...rest, children: [showHeader && (_jsxs(_Fragment, { children: [_jsxs("box", { flexDirection: "row", height: 1, flexShrink: 0, children: [_jsx("box", { width: labelWidth + 2, flexShrink: 0, overflow: "hidden", children: _jsxs("text", { fg: theme.textMuted, wrapMode: "none", children: [padRight(displayCategoryTitle, labelWidth), " "] }) }), _jsx("box", { flexGrow: 1, flexShrink: 1, overflow: "hidden", children: _jsx("text", { fg: theme.textMuted, wrapMode: "none", children: distributionTitle }) }), legendVisible && (_jsx("box", { width: legendWidth, flexShrink: 0, overflow: "hidden", children: _jsxs("text", { fg: theme.textMuted, wrapMode: "none", children: [' '.repeat(legendGap), legendTitle] }) }))] }), _jsxs("box", { flexDirection: "row", height: 1, flexShrink: 0, children: [_jsx("box", { width: labelWidth + 2, flexShrink: 0, overflow: "hidden", children: _jsxs("text", { fg: theme.borderSubtle, wrapMode: "none", children: ['─'.repeat(labelWidth), " "] }) }), _jsx("box", { flexGrow: 1, flexShrink: 1, overflow: "hidden", children: _jsx("text", { fg: theme.borderSubtle, wrapMode: "none", children: '─'.repeat(200) }) }), legendVisible && (_jsx("box", { width: legendWidth, flexShrink: 0, overflow: "hidden", children: _jsxs("text", { fg: theme.borderSubtle, wrapMode: "none", children: [' '.repeat(legendGap), '─'.repeat(legendWidth - legendGap)] }) }))] })] })), _jsxs("box", { flexDirection: "row", height: chartHeight - headerHeight, flexShrink: 0, children: [_jsx("box", { flexDirection: "column", flexGrow: 1, flexShrink: 1, overflow: "hidden", children: visibleRows.map((row, rowIndex) => {
|
|
126
|
+
return (_jsxs("box", { ref: containerRef, flexDirection: "column", width: "100%", flexShrink: 0, ...rest, onMouseOut: hideTooltip, children: [_jsx(ChartTooltip, { tooltip: tooltip, containerRef: containerRef }), showHeader && (_jsxs(_Fragment, { children: [_jsxs("box", { flexDirection: "row", height: 1, flexShrink: 0, children: [_jsx("box", { width: labelWidth + 2, flexShrink: 0, overflow: "hidden", children: _jsxs("text", { fg: theme.textMuted, wrapMode: "none", children: [padRight(displayCategoryTitle, labelWidth), " "] }) }), _jsx("box", { flexGrow: 1, flexShrink: 1, overflow: "hidden", children: _jsx("text", { fg: theme.textMuted, wrapMode: "none", children: distributionTitle }) }), legendVisible && (_jsx("box", { width: legendWidth, flexShrink: 0, overflow: "hidden", children: _jsxs("text", { fg: theme.textMuted, wrapMode: "none", children: [' '.repeat(legendGap), legendTitle] }) }))] }), _jsxs("box", { flexDirection: "row", height: 1, flexShrink: 0, children: [_jsx("box", { width: labelWidth + 2, flexShrink: 0, overflow: "hidden", children: _jsxs("text", { fg: theme.borderSubtle, wrapMode: "none", children: ['─'.repeat(labelWidth), " "] }) }), _jsx("box", { flexGrow: 1, flexShrink: 1, overflow: "hidden", children: _jsx("text", { fg: theme.borderSubtle, wrapMode: "none", children: '─'.repeat(200) }) }), legendVisible && (_jsx("box", { width: legendWidth, flexShrink: 0, overflow: "hidden", children: _jsxs("text", { fg: theme.borderSubtle, wrapMode: "none", children: [' '.repeat(legendGap), '─'.repeat(legendWidth - legendGap)] }) }))] })] })), _jsxs("box", { flexDirection: "row", height: chartHeight - headerHeight, flexShrink: 0, children: [_jsx("box", { flexDirection: "column", flexGrow: 1, flexShrink: 1, overflow: "hidden", children: visibleRows.map((row, rowIndex) => {
|
|
124
127
|
return (_jsxs("box", { flexDirection: "row", height: 1, flexShrink: 0, overflow: "hidden", children: [_jsx("box", { width: labelWidth + 2, flexShrink: 0, overflow: "hidden", children: _jsx("text", { fg: theme.text, wrapMode: "none", children: padRight(displayLabels[rowIndex], labelWidth) }) }), _jsxs("box", { flexDirection: "row", flexGrow: 1, flexShrink: 1, overflow: "hidden", children: [row.values.map((value, seriesIndex) => {
|
|
125
128
|
if (value <= 0) {
|
|
126
129
|
return null;
|
|
127
130
|
}
|
|
128
131
|
const series = seriesList[seriesIndex];
|
|
129
|
-
return (_jsx("box", { flexGrow: value, flexBasis: 0, flexShrink: 1, overflow: "hidden",
|
|
130
|
-
|
|
132
|
+
return (_jsx("box", { flexGrow: value, flexBasis: 0, flexShrink: 1, overflow: "hidden", onMouseMove: (evt) => {
|
|
133
|
+
const label = row.label;
|
|
134
|
+
const seriesTitle = series.title || `#${seriesIndex + 1}`;
|
|
135
|
+
showTooltip({
|
|
136
|
+
x: evt.x,
|
|
137
|
+
y: evt.y,
|
|
138
|
+
lines: [label, formatTooltipLine(seriesTitle, value)],
|
|
139
|
+
});
|
|
140
|
+
}, children: _jsx("box", { position: "absolute", width: "100%", height: "100%", overflow: "hidden", children: _jsx("text", { fg: series.color, wrapMode: "none", children: barCharacter.repeat(200) }) }) }, seriesIndex));
|
|
141
|
+
}), maxTotal > row.total && (_jsx("box", { flexGrow: maxTotal - row.total, flexBasis: 0, flexShrink: 1, onMouseMove: hideTooltip }))] })] }, row.label));
|
|
131
142
|
}) }), legendVisible && (_jsx("box", { flexDirection: "column", width: legendWidth, flexShrink: 0, overflow: "hidden", children: legendRows.map((row) => {
|
|
132
143
|
return (_jsxs("box", { height: 1, flexShrink: 0, flexDirection: "row", overflow: "hidden", children: [_jsx("box", { width: legendGap, flexShrink: 0 }), _jsx("text", { fg: row.color, wrapMode: "none", children: "\u25CF " }), _jsxs("text", { fg: theme.textMuted, wrapMode: "none", children: [padRight(row.title, legendTitleWidth), " ", padLeft(row.percentage, legendPercentageWidth)] })] }, row.title));
|
|
133
144
|
}) }))] })] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"horizontal-bar-graph.js","sourceRoot":"","sources":["../../src/components/horizontal-bar-graph.tsx"],"names":[],"mappings":";AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,EAAa,OAAO,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"horizontal-bar-graph.js","sourceRoot":"","sources":["../../src/components/horizontal-bar-graph.tsx"],"names":[],"mappings":"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"}
|
|
@@ -127,6 +127,13 @@ export interface ListProps extends ActionsInterface, NavigationChildInterface, S
|
|
|
127
127
|
searchBarPlaceholder?: string;
|
|
128
128
|
selectedItemId?: string;
|
|
129
129
|
isShowingDetail?: boolean;
|
|
130
|
+
/**
|
|
131
|
+
* Minimum terminal width in columns required to show the detail panel.
|
|
132
|
+
* When the terminal is narrower than this value, the detail panel is
|
|
133
|
+
* automatically hidden even if `isShowingDetail` is true.
|
|
134
|
+
* @default 80
|
|
135
|
+
*/
|
|
136
|
+
detailMinWidth?: number;
|
|
130
137
|
/**
|
|
131
138
|
* Controls the vertical spacing of list items.
|
|
132
139
|
* - 'default': Single-line items with title and subtitle on same row
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/components/list.tsx"],"names":[],"mappings":"AASA,OAAc,EACV,YAAY,EACZ,SAAS,EASZ,MAAM,OAAO,CAAA;AAed,OAAO,EAAE,KAAK,EAAgB,MAAM,qBAAqB,CAAA;AAKzD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAIhD,OAAO,EAAE,KAAK,EAAE,CAAA;AAkChB,UAAU,gBAAgB;IACxB,OAAO,CAAC,EAAE,SAAS,CAAA;CACpB;
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/components/list.tsx"],"names":[],"mappings":"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"}
|
package/dist/components/list.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "@opentui/react/jsx-runtime";
|
|
2
2
|
import { MouseButton, TextAttributes, } from '@opentui/core';
|
|
3
|
-
import { useKeyboard, flushSync } from '@opentui/react';
|
|
3
|
+
import { useKeyboard, flushSync, useTerminalDimensions } from '@opentui/react';
|
|
4
4
|
import React, { createContext, useCallback, useContext, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';
|
|
5
5
|
import { LoadingBar } from 'termcast/src/components/loading-bar';
|
|
6
6
|
import { LoadingText } from 'termcast/src/components/loading-text';
|
|
@@ -79,9 +79,7 @@ function ListFooter() {
|
|
|
79
79
|
useStore.setState({ shouldAutoExecuteFirstAction: true });
|
|
80
80
|
}, children: [_jsx("text", { flexShrink: 0, fg: theme.text, attributes: TextAttributes.BOLD, children: "\u21B5" }), _jsx("text", { flexShrink: 0, fg: theme.textMuted, children: firstActionTitle.toLowerCase() })] })), _jsxs("box", { style: { flexDirection: 'row', gap: 1, flexShrink: 0 }, children: [_jsx("text", { flexShrink: 0, fg: theme.text, attributes: TextAttributes.BOLD, children: isVim ? 'j/k' : '↑↓' }), _jsx("text", { flexShrink: 0, fg: theme.textMuted, children: "navigate" })] }), isVim && (_jsxs("box", { style: { flexDirection: 'row', gap: 1, flexShrink: 0 }, children: [_jsx("text", { flexShrink: 0, fg: theme.text, attributes: TextAttributes.BOLD, children: "/" }), _jsx("text", { flexShrink: 0, fg: theme.textMuted, children: "search" })] })), _jsxs(Hoverable, { onMouseDown: () => {
|
|
81
81
|
useStore.setState({ showActionsDialog: true });
|
|
82
|
-
}, children: [_jsx("text", { flexShrink: 0, fg: theme.text, attributes: TextAttributes.BOLD, children: "^k" }), _jsx("text", { flexShrink: 0, fg: theme.textMuted, children: "actions" })] }), hasDropdown && (_jsxs(Hoverable, { onMouseDown: openDropdownIfClosed, children: [_jsx("text", { flexShrink: 0, fg: theme.text, attributes: TextAttributes.BOLD, children: "^p" }), _jsx("text", { flexShrink: 0, fg: theme.textMuted, children: (dropdownTooltip || dropdownFooterLabel || 'dropdown').toLowerCase() })] }))
|
|
83
|
-
executeVimCommand('vim');
|
|
84
|
-
}, children: _jsx("text", { flexShrink: 0, fg: theme.textMuted, children: ":vim" }) }))] }));
|
|
82
|
+
}, children: [_jsx("text", { flexShrink: 0, fg: theme.text, attributes: TextAttributes.BOLD, children: "^k" }), _jsx("text", { flexShrink: 0, fg: theme.textMuted, children: "actions" })] }), hasDropdown && (_jsxs(Hoverable, { onMouseDown: openDropdownIfClosed, children: [_jsx("text", { flexShrink: 0, fg: theme.text, attributes: TextAttributes.BOLD, children: "^p" }), _jsx("text", { flexShrink: 0, fg: theme.textMuted, children: (dropdownTooltip || dropdownFooterLabel || 'dropdown').toLowerCase() })] }))] }));
|
|
85
83
|
return _jsx(Footer, { hidePoweredBy: isShowingDetail, children: content });
|
|
86
84
|
}
|
|
87
85
|
/**
|
|
@@ -119,14 +117,27 @@ function CurrentItemActionsOffscreen(props) {
|
|
|
119
117
|
function CurrentItemDetail(props) {
|
|
120
118
|
const theme = useTheme();
|
|
121
119
|
const descendantsMap = useListDescendantsRerender();
|
|
122
|
-
|
|
120
|
+
const boxRef = React.useRef(null);
|
|
121
|
+
// Grow-only height ratchet: once the detail panel reaches a certain height,
|
|
122
|
+
// it never shrinks below that. This prevents the footer from jumping up
|
|
123
|
+
// when navigating from a tall detail to a short one.
|
|
124
|
+
const maxHeightRef = React.useRef(0);
|
|
125
|
+
if (!props.isShowingDetail) {
|
|
126
|
+
// Reset ratchet when detail is hidden so next show starts fresh
|
|
127
|
+
maxHeightRef.current = 0;
|
|
123
128
|
return null;
|
|
129
|
+
}
|
|
124
130
|
const currentItem = Object.values(descendantsMap)
|
|
125
131
|
.find((item) => item.index === props.selectedIndex);
|
|
126
132
|
const detail = currentItem?.props?.detail ?? null;
|
|
127
133
|
if (!detail)
|
|
128
134
|
return null;
|
|
129
|
-
return (_jsx("box", {
|
|
135
|
+
return (_jsx("box", { ref: boxRef, minHeight: maxHeightRef.current || undefined, onSizeChange: () => {
|
|
136
|
+
const h = boxRef.current?.height ?? 0;
|
|
137
|
+
if (h > maxHeightRef.current) {
|
|
138
|
+
maxHeightRef.current = h;
|
|
139
|
+
}
|
|
140
|
+
}, style: {
|
|
130
141
|
width: '50%',
|
|
131
142
|
paddingLeft: 1,
|
|
132
143
|
paddingRight: 1,
|
|
@@ -365,8 +376,10 @@ function ListItemRow(props) {
|
|
|
365
376
|
}, border: false, onMouseMove: handleMouseMove, onMouseOut: handleMouseOut, onMouseDown: handleMouseDown, children: [_jsxs("box", { style: { flexDirection: 'row', flexGrow: 1, flexShrink: 1, overflow: 'hidden', gap: 1 }, children: [_jsxs("box", { style: { flexDirection: 'row', flexShrink: 1, overflow: 'hidden' }, children: [_jsx("text", { flexShrink: 0, fg: active ? theme.background : theme.text, attributes: active ? TextAttributes.BOLD : undefined, selectable: false, wrapMode: "none", children: active ? '›' : ' ' }), icon && _jsxs("text", { flexShrink: 0, fg: active ? theme.background : iconColor || theme.text, selectable: false, wrapMode: "none", children: [getIconEmoji(icon), " "] }), _jsx("text", { flexShrink: 1, truncate: true, fg: active ? theme.background : theme.text, attributes: active ? TextAttributes.BOLD : undefined, selectable: false, wrapMode: "none", children: title })] }), subtitle && (_jsx("text", { flexShrink: 3, truncate: true, fg: active ? theme.background : theme.textMuted, selectable: false, wrapMode: "none", children: subtitle }))] }), accessoryElements.length > 0 && (_jsx("box", { style: { flexDirection: 'row', flexShrink: 0 }, children: accessoryElements.map((elem, i) => (_jsxs("box", { style: { flexDirection: 'row' }, children: [i > 0 && _jsx("text", { flexShrink: 0, children: " " }), elem] }, i))) }))] }));
|
|
366
377
|
}
|
|
367
378
|
export const List = (props) => {
|
|
368
|
-
const { children, onSelectionChange, filtering, searchText: controlledSearchText, onSearchTextChange, searchBarPlaceholder = 'Search...', isLoading, navigationTitle, isShowingDetail, selectedItemId, searchBarAccessory, logo, spacingMode = 'default', accessoryTagsLayout, throttle, ...otherProps } = props;
|
|
379
|
+
const { children, onSelectionChange, filtering, searchText: controlledSearchText, onSearchTextChange, searchBarPlaceholder = 'Search...', isLoading, navigationTitle, isShowingDetail, detailMinWidth = 80, selectedItemId, searchBarAccessory, logo, spacingMode = 'default', accessoryTagsLayout, throttle, ...otherProps } = props;
|
|
369
380
|
const theme = useTheme();
|
|
381
|
+
const { width: terminalWidth } = useTerminalDimensions();
|
|
382
|
+
const effectiveIsShowingDetail = isShowingDetail && terminalWidth >= detailMinWidth;
|
|
370
383
|
const currentStackSelectedListIndex = useStore((state) => {
|
|
371
384
|
const stack = state.navigationStack;
|
|
372
385
|
const currentItem = stack[stack.length - 1];
|
|
@@ -539,13 +552,13 @@ export const List = (props) => {
|
|
|
539
552
|
setSelectedIndex: setSelectedIndexWithPersistence,
|
|
540
553
|
searchText,
|
|
541
554
|
isFiltering: isFilteringEnabled,
|
|
542
|
-
isShowingDetail,
|
|
555
|
+
isShowingDetail: effectiveIsShowingDetail,
|
|
543
556
|
customEmptyViewRef,
|
|
544
557
|
isLoading,
|
|
545
558
|
hasDropdown: !!searchBarAccessory,
|
|
546
559
|
spacingMode,
|
|
547
560
|
accessoryTagWidths: accessoryTagsLayout,
|
|
548
|
-
}), [isDropdownOpen, selectedIndex, searchText, isFilteringEnabled,
|
|
561
|
+
}), [isDropdownOpen, selectedIndex, searchText, isFilteringEnabled, effectiveIsShowingDetail, isLoading, searchBarAccessory, spacingMode, accessoryTagsLayout]);
|
|
549
562
|
// Handle selectedItemId prop changes (before paint to avoid flash)
|
|
550
563
|
useLayoutEffect(() => {
|
|
551
564
|
// Only update selection if selectedItemId is explicitly provided
|
|
@@ -613,6 +626,42 @@ export const List = (props) => {
|
|
|
613
626
|
props.pagination.onLoadMore();
|
|
614
627
|
}
|
|
615
628
|
};
|
|
629
|
+
// Trigger pagination when the user mouse-scrolls near the bottom of the list.
|
|
630
|
+
// Only fires on scroll-down so scrolling up near the bottom doesn't spuriously
|
|
631
|
+
// re-trigger onLoadMore. Uses queueMicrotask because opentui calls onMouseScroll
|
|
632
|
+
// before ScrollBox.onMouseEvent updates scrollTop in the same call stack;
|
|
633
|
+
// a microtask runs after the synchronous handler chain finishes.
|
|
634
|
+
const checkScrollPagination = (event) => {
|
|
635
|
+
if (event.scroll?.direction !== 'down')
|
|
636
|
+
return;
|
|
637
|
+
queueMicrotask(() => {
|
|
638
|
+
const scrollBox = scrollBoxRef.current;
|
|
639
|
+
if (!scrollBox || !props.pagination?.hasMore)
|
|
640
|
+
return;
|
|
641
|
+
// Reset pagination lock when new items arrive (same logic as in move())
|
|
642
|
+
const items = Object.values(descendantsContext.map.current)
|
|
643
|
+
.filter((item) => item.index !== -1 && item.props?.visible !== false);
|
|
644
|
+
if (items.length !== prevItemCountRef.current) {
|
|
645
|
+
prevItemCountRef.current = items.length;
|
|
646
|
+
paginationCalledRef.current = false;
|
|
647
|
+
}
|
|
648
|
+
if (paginationCalledRef.current)
|
|
649
|
+
return;
|
|
650
|
+
const scrollTop = scrollBox.scrollTop || 0;
|
|
651
|
+
const viewportHeight = scrollBox.viewport?.height || 0;
|
|
652
|
+
const contentHeight = scrollBox.scrollHeight || 0;
|
|
653
|
+
// Nothing to paginate if content fits in viewport
|
|
654
|
+
if (contentHeight <= viewportHeight)
|
|
655
|
+
return;
|
|
656
|
+
// Trigger when within 20% of the bottom (or 3 rows, whichever is larger)
|
|
657
|
+
const threshold = Math.max(3, Math.floor(viewportHeight * 0.2));
|
|
658
|
+
const distanceFromBottom = contentHeight - (scrollTop + viewportHeight);
|
|
659
|
+
if (distanceFromBottom <= threshold) {
|
|
660
|
+
paginationCalledRef.current = true;
|
|
661
|
+
props.pagination.onLoadMore();
|
|
662
|
+
}
|
|
663
|
+
});
|
|
664
|
+
};
|
|
616
665
|
const move = (direction) => {
|
|
617
666
|
// Get all visible items
|
|
618
667
|
const items = Object.values(descendantsContext.map.current)
|
|
@@ -851,7 +900,8 @@ export const List = (props) => {
|
|
|
851
900
|
evt.stopPropagation();
|
|
852
901
|
return;
|
|
853
902
|
}
|
|
854
|
-
// Ctrl+d
|
|
903
|
+
// Ctrl+d / Ctrl+u for half-page down/up
|
|
904
|
+
// Ctrl+f / Ctrl+b for full-page down/up
|
|
855
905
|
if (evt.ctrl && evt.name === 'd') {
|
|
856
906
|
const viewportHeight = scrollBoxRef.current?.viewport?.height || 20;
|
|
857
907
|
moveByN(Math.floor(viewportHeight / 2));
|
|
@@ -864,6 +914,18 @@ export const List = (props) => {
|
|
|
864
914
|
evt.stopPropagation();
|
|
865
915
|
return;
|
|
866
916
|
}
|
|
917
|
+
if (evt.ctrl && evt.name === 'f') {
|
|
918
|
+
const viewportHeight = scrollBoxRef.current?.viewport?.height || 20;
|
|
919
|
+
moveByN(viewportHeight);
|
|
920
|
+
evt.stopPropagation();
|
|
921
|
+
return;
|
|
922
|
+
}
|
|
923
|
+
if (evt.ctrl && evt.name === 'b') {
|
|
924
|
+
const viewportHeight = scrollBoxRef.current?.viewport?.height || 20;
|
|
925
|
+
moveByN(-viewportHeight);
|
|
926
|
+
evt.stopPropagation();
|
|
927
|
+
return;
|
|
928
|
+
}
|
|
867
929
|
// / to enter search mode
|
|
868
930
|
if (evt.sequence === '/' && !evt.ctrl && !evt.meta) {
|
|
869
931
|
useStore.setState({ vimInputSubMode: 'search' });
|
|
@@ -965,7 +1027,7 @@ export const List = (props) => {
|
|
|
965
1027
|
], placeholder: searchBarPlaceholder, focused: inFocus && !isDropdownOpen && searchBarFocused, initialValue: searchText, onContentChange: () => {
|
|
966
1028
|
const value = inputRef.current?.plainText || '';
|
|
967
1029
|
handleSearchChange(value);
|
|
968
|
-
}, focusedBackgroundColor: theme.backgroundPanel, cursorColor: theme.primary, focusedTextColor: isLoading ? theme.textMuted : theme.text })] }), searchBarAccessory, !navigationTitle && !searchBarAccessory && logo ? (_jsx("box", { flexShrink: 0, paddingLeft: 2, children: logo })) : null] }) }), _jsxs("box", { style: { flexDirection: 'row', flexGrow: 1, flexShrink: 1 }, children: [_jsxs("box", { style: { width:
|
|
1030
|
+
}, focusedBackgroundColor: theme.backgroundPanel, cursorColor: theme.primary, focusedTextColor: isLoading ? theme.textMuted : theme.text })] }), searchBarAccessory, !navigationTitle && !searchBarAccessory && logo ? (_jsx("box", { flexShrink: 0, paddingLeft: 2, children: logo })) : null] }) }), _jsxs("box", { style: { flexDirection: 'row', flexGrow: 1, flexShrink: 1 }, children: [_jsxs("box", { style: { width: effectiveIsShowingDetail ? '50%' : '100%', flexGrow: 1, flexShrink: 1, flexDirection: 'column' }, children: [_jsx(ScrollBox, { ref: scrollBoxRef, focused: false, flexGrow: 1, flexShrink: 1, minHeight: 10, onMouseScroll: checkScrollPagination, style: {
|
|
969
1031
|
rootOptions: {
|
|
970
1032
|
backgroundColor: undefined,
|
|
971
1033
|
},
|
|
@@ -975,7 +1037,7 @@ export const List = (props) => {
|
|
|
975
1037
|
scrollbarOptions: {
|
|
976
1038
|
visible: false,
|
|
977
1039
|
},
|
|
978
|
-
}, children: _jsx(ListItemsRenderer, { children: children }) }), _jsx(ListFooter, {}), _jsx(CurrentItemActionsOffscreen, { selectedIndex: selectedIndex, fallbackActions: props.actions })] }), _jsx(CurrentItemDetail, { selectedIndex: selectedIndex, isShowingDetail:
|
|
1040
|
+
}, children: _jsx(ListItemsRenderer, { children: children }) }), _jsx(ListFooter, {}), _jsx(CurrentItemActionsOffscreen, { selectedIndex: selectedIndex, fallbackActions: props.actions })] }), _jsx(CurrentItemDetail, { selectedIndex: selectedIndex, isShowingDetail: effectiveIsShowingDetail })] })] }) }) }));
|
|
979
1041
|
};
|
|
980
1042
|
// Wrapper component that only renders children when no visible items exist
|
|
981
1043
|
function ShowOnNoItems(props) {
|
|
@@ -1071,8 +1133,7 @@ const ListItem = (props) => {
|
|
|
1071
1133
|
}
|
|
1072
1134
|
}
|
|
1073
1135
|
};
|
|
1074
|
-
|
|
1075
|
-
const showAccessories = !props.detail && props.accessories;
|
|
1136
|
+
const showAccessories = Boolean(props.accessories);
|
|
1076
1137
|
// Get icon string and color from props.icon (can be string or object with value/tintColor)
|
|
1077
1138
|
const { iconValue, iconColor } = (() => {
|
|
1078
1139
|
if (!props.icon)
|