termcast 1.4.0 → 1.5.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.
Files changed (144) hide show
  1. package/dist/build.d.ts.map +1 -1
  2. package/dist/build.js +8 -7
  3. package/dist/build.js.map +1 -1
  4. package/dist/cli.js +0 -40
  5. package/dist/cli.js.map +1 -1
  6. package/dist/components/bar-graph.d.ts +23 -8
  7. package/dist/components/bar-graph.d.ts.map +1 -1
  8. package/dist/components/bar-graph.js +84 -40
  9. package/dist/components/bar-graph.js.map +1 -1
  10. package/dist/components/dotted-line-graph.d.ts +86 -0
  11. package/dist/components/dotted-line-graph.d.ts.map +1 -0
  12. package/dist/components/dotted-line-graph.js +260 -0
  13. package/dist/components/dotted-line-graph.js.map +1 -0
  14. package/dist/components/extension-preferences.d.ts.map +1 -1
  15. package/dist/components/extension-preferences.js +1 -10
  16. package/dist/components/extension-preferences.js.map +1 -1
  17. package/dist/components/graph.d.ts.map +1 -1
  18. package/dist/components/graph.js +7 -1
  19. package/dist/components/graph.js.map +1 -1
  20. package/dist/components/histogram.d.ts +42 -0
  21. package/dist/components/histogram.d.ts.map +1 -0
  22. package/dist/components/histogram.js +115 -0
  23. package/dist/components/histogram.js.map +1 -0
  24. package/dist/components/horizontal-bar-graph.d.ts +47 -0
  25. package/dist/components/horizontal-bar-graph.d.ts.map +1 -0
  26. package/dist/components/horizontal-bar-graph.js +137 -0
  27. package/dist/components/horizontal-bar-graph.js.map +1 -0
  28. package/dist/components/list.d.ts +2 -0
  29. package/dist/components/list.d.ts.map +1 -1
  30. package/dist/components/list.js +10 -10
  31. package/dist/components/list.js.map +1 -1
  32. package/dist/examples/bar-graph-weekly.js +2 -2
  33. package/dist/examples/bar-graph-weekly.js.map +1 -1
  34. package/dist/examples/charts-showcase-barchart.d.ts +2 -0
  35. package/dist/examples/charts-showcase-barchart.d.ts.map +1 -0
  36. package/dist/examples/charts-showcase-barchart.js +10 -0
  37. package/dist/examples/charts-showcase-barchart.js.map +1 -0
  38. package/dist/examples/charts-showcase-bargraph.d.ts +2 -0
  39. package/dist/examples/charts-showcase-bargraph.d.ts.map +1 -0
  40. package/dist/examples/charts-showcase-bargraph.js +60 -0
  41. package/dist/examples/charts-showcase-bargraph.js.map +1 -0
  42. package/dist/examples/charts-showcase-candle.d.ts +2 -0
  43. package/dist/examples/charts-showcase-candle.d.ts.map +1 -0
  44. package/dist/examples/charts-showcase-candle.js +30 -0
  45. package/dist/examples/charts-showcase-candle.js.map +1 -0
  46. package/dist/examples/charts-showcase-graph.d.ts +2 -0
  47. package/dist/examples/charts-showcase-graph.d.ts.map +1 -0
  48. package/dist/examples/charts-showcase-graph.js +33 -0
  49. package/dist/examples/charts-showcase-graph.js.map +1 -0
  50. package/dist/examples/charts-showcase-heatmap.d.ts +2 -0
  51. package/dist/examples/charts-showcase-heatmap.d.ts.map +1 -0
  52. package/dist/examples/charts-showcase-heatmap.js +36 -0
  53. package/dist/examples/charts-showcase-heatmap.js.map +1 -0
  54. package/dist/examples/charts-showcase-mixed.d.ts +2 -0
  55. package/dist/examples/charts-showcase-mixed.d.ts.map +1 -0
  56. package/dist/examples/charts-showcase-mixed.js +30 -0
  57. package/dist/examples/charts-showcase-mixed.js.map +1 -0
  58. package/dist/examples/charts-showcase-progress.d.ts +2 -0
  59. package/dist/examples/charts-showcase-progress.d.ts.map +1 -0
  60. package/dist/examples/charts-showcase-progress.js +10 -0
  61. package/dist/examples/charts-showcase-progress.js.map +1 -0
  62. package/dist/examples/graph-multi-series.js +1 -1
  63. package/dist/examples/graph-multi-series.js.map +1 -1
  64. package/dist/examples/horizontal-bar-graph-weekly.d.ts +2 -0
  65. package/dist/examples/horizontal-bar-graph-weekly.d.ts.map +1 -0
  66. package/dist/examples/horizontal-bar-graph-weekly.js +67 -0
  67. package/dist/examples/horizontal-bar-graph-weekly.js.map +1 -0
  68. package/dist/examples/simple-dotted-line-graph.d.ts +2 -0
  69. package/dist/examples/simple-dotted-line-graph.d.ts.map +1 -0
  70. package/dist/examples/simple-dotted-line-graph.js +39 -0
  71. package/dist/examples/simple-dotted-line-graph.js.map +1 -0
  72. package/dist/examples/simple-histogram.d.ts +2 -0
  73. package/dist/examples/simple-histogram.d.ts.map +1 -0
  74. package/dist/examples/simple-histogram.js +47 -0
  75. package/dist/examples/simple-histogram.js.map +1 -0
  76. package/dist/index.d.ts +6 -0
  77. package/dist/index.d.ts.map +1 -1
  78. package/dist/index.js +6 -0
  79. package/dist/index.js.map +1 -1
  80. package/dist/logger.d.ts.map +1 -1
  81. package/dist/logger.js +15 -6
  82. package/dist/logger.js.map +1 -1
  83. package/dist/platform/node/sqlite.d.ts +6 -5
  84. package/dist/platform/node/sqlite.d.ts.map +1 -1
  85. package/dist/platform/node/sqlite.js +30 -14
  86. package/dist/platform/node/sqlite.js.map +1 -1
  87. package/dist/theme.d.ts.map +1 -1
  88. package/dist/theme.js +11 -9
  89. package/dist/theme.js.map +1 -1
  90. package/dist/utils/run-command.d.ts.map +1 -1
  91. package/dist/utils/run-command.js +8 -19
  92. package/dist/utils/run-command.js.map +1 -1
  93. package/dist/utils.d.ts +1 -19
  94. package/dist/utils.d.ts.map +1 -1
  95. package/dist/utils.js +1 -100
  96. package/dist/utils.js.map +1 -1
  97. package/package.json +14 -16
  98. package/src/build.tsx +11 -10
  99. package/src/cli.tsx +3 -40
  100. package/src/compile.vitest.tsx +3 -3
  101. package/src/components/bar-graph.tsx +217 -111
  102. package/src/components/dotted-line-graph.tsx +407 -0
  103. package/src/components/extension-preferences.tsx +2 -12
  104. package/src/components/graph.tsx +5 -1
  105. package/src/components/histogram.tsx +228 -0
  106. package/src/components/horizontal-bar-graph.tsx +279 -0
  107. package/src/components/list.tsx +20 -15
  108. package/src/examples/action-shortcut.vitest.tsx +17 -17
  109. package/src/examples/bar-graph-weekly.tsx +2 -2
  110. package/src/examples/bar-graph-weekly.vitest.tsx +63 -62
  111. package/src/examples/charts-showcase-bargraph.tsx +103 -0
  112. package/src/examples/detail-metadata-showcase.vitest.tsx +13 -18
  113. package/src/examples/form-basic.vitest.tsx +35 -35
  114. package/src/examples/form-dropdown.vitest.tsx +11 -11
  115. package/src/examples/form-scroll.vitest.tsx +1 -1
  116. package/src/examples/form-tagpicker.vitest.tsx +11 -11
  117. package/src/examples/github.vitest.tsx +22 -22
  118. package/src/examples/graph-bar-chart.vitest.tsx +8 -8
  119. package/src/examples/graph-multi-series.tsx +1 -1
  120. package/src/examples/graph-row.vitest.tsx +14 -14
  121. package/src/examples/graph-styles.vitest.tsx +77 -77
  122. package/src/examples/horizontal-bar-graph-weekly.tsx +138 -0
  123. package/src/examples/horizontal-bar-graph-weekly.vitest.tsx +164 -0
  124. package/src/examples/list-detail-metadata.vitest.tsx +4 -4
  125. package/src/examples/list-with-detail.vitest.tsx +46 -46
  126. package/src/examples/simple-candle-chart.vitest.tsx +8 -8
  127. package/src/examples/simple-dotted-line-graph.tsx +53 -0
  128. package/src/examples/simple-dotted-line-graph.vitest.tsx +62 -0
  129. package/src/examples/simple-grid.vitest.tsx +4 -4
  130. package/src/examples/simple-histogram.tsx +90 -0
  131. package/src/examples/simple-navigation.vitest.tsx +4 -4
  132. package/src/examples/swift-extension.vitest.tsx +3 -3
  133. package/src/examples/toast-variations.vitest.tsx +5 -5
  134. package/src/extensions/dev.vitest.tsx +8 -8
  135. package/src/index.tsx +21 -0
  136. package/src/logger.tsx +16 -6
  137. package/src/platform/node/sqlite.ts +29 -13
  138. package/src/theme.tsx +11 -10
  139. package/src/utils/run-command.tsx +10 -19
  140. package/src/utils.tsx +0 -163
  141. package/src/examples/store.tsx +0 -4
  142. package/src/examples/store.vitest.tsx +0 -78
  143. package/src/extensions/home.tsx +0 -227
  144. package/src/extensions/store.tsx +0 -375
@@ -0,0 +1,115 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "@opentui/react/jsx-runtime";
2
+ /**
3
+ * Histogram component for rendering horizontal distribution tables in the terminal.
4
+ *
5
+ * Each row displays a colored dot, label, count, percentage, and a horizontal
6
+ * bar made of repeated characters. Includes optional header and totals footer.
7
+ *
8
+ * Colors can be set per-item via props, or auto-assigned from the theme palette
9
+ * in row order (cycling when there are more items than palette colors).
10
+ */
11
+ import React, { useMemo } from 'react';
12
+ import { useTheme, getThemePalette } from 'termcast/src/theme';
13
+ import { resolveColor } from 'termcast/src/colors';
14
+ // ── Collect children recursively (handles fragments) ─────────────────
15
+ function collectItems(children, maxLabelWidth) {
16
+ const result = [];
17
+ const flatten = (node) => {
18
+ React.Children.forEach(node, (child) => {
19
+ if (!React.isValidElement(child))
20
+ return;
21
+ // Traverse fragments
22
+ if (child.type === React.Fragment) {
23
+ const fragmentProps = child.props;
24
+ flatten(fragmentProps.children);
25
+ return;
26
+ }
27
+ const p = child.props;
28
+ if (p.label === undefined || p.value === undefined)
29
+ return;
30
+ const displayLabel = p.label.length > maxLabelWidth
31
+ ? p.label.slice(0, maxLabelWidth - 1) + '…'
32
+ : p.label;
33
+ result.push({
34
+ label: p.label,
35
+ displayLabel,
36
+ value: p.value,
37
+ color: resolveColor(p.color),
38
+ });
39
+ });
40
+ };
41
+ flatten(children);
42
+ return result;
43
+ }
44
+ // ── Histogram.Item (data-only, renders null like BarChart.Segment) ───
45
+ const HistogramItem = (_props) => {
46
+ return null;
47
+ };
48
+ // ── Main Histogram component ─────────────────────────────────────────
49
+ const Histogram = (props) => {
50
+ const theme = useTheme();
51
+ const { maxBarWidth = 30, barCharacter = '╻', showHeader = true, showTotal = true, showPercentage = true, maxLabelWidth = 24, children, } = props;
52
+ const palette = getThemePalette(theme);
53
+ // Collect item data from children (traverses fragments)
54
+ const items = useMemo(() => {
55
+ return collectItems(children, maxLabelWidth);
56
+ }, [children, maxLabelWidth]);
57
+ // Resolve colors: explicit prop > row-order palette assignment
58
+ const coloredItems = useMemo(() => {
59
+ return items.map((item, index) => ({
60
+ ...item,
61
+ resolvedColor: item.color || palette[index % palette.length],
62
+ }));
63
+ }, [items, palette]);
64
+ const total = useMemo(() => {
65
+ return coloredItems.reduce((sum, item) => sum + item.value, 0);
66
+ }, [coloredItems]);
67
+ const maxValue = useMemo(() => {
68
+ return Math.max(...coloredItems.map((item) => item.value));
69
+ }, [coloredItems]);
70
+ if (coloredItems.length === 0 || total === 0)
71
+ return null;
72
+ // Compute column widths from data
73
+ const labelWidth = Math.max(...coloredItems.map((item) => item.displayLabel.length), 5);
74
+ const countWidth = Math.max(...coloredItems.map((item) => String(item.value).length), String(total).length, 5);
75
+ const pctWidth = 4; // "100%" = 4 chars
76
+ // ── Formatting helpers ───────────────────────────────────────────
77
+ function padLeft(str, width) {
78
+ return str.length >= width ? str : ' '.repeat(width - str.length) + str;
79
+ }
80
+ function padRight(str, width) {
81
+ return str.length >= width ? str : str + ' '.repeat(width - str.length);
82
+ }
83
+ function formatPct(value) {
84
+ const pct = Math.round((value / total) * 100);
85
+ return `${pct}%`;
86
+ }
87
+ function makeBar(value) {
88
+ if (value <= 0 || maxValue <= 0)
89
+ return '';
90
+ const barLen = Math.max(1, Math.round((value / maxValue) * maxBarWidth));
91
+ return barCharacter.repeat(barLen);
92
+ }
93
+ // ── Separator line ───────────────────────────────────────────────
94
+ const percentageWidth = showPercentage ? 2 + pctWidth : 0;
95
+ const separatorWidth = 2 + labelWidth + 2 + countWidth + percentageWidth + 2 + maxBarWidth;
96
+ const separator = '─'.repeat(separatorWidth);
97
+ // Build header text as a single string
98
+ const headerText = ` ${padRight('category', labelWidth)} ${padLeft('count', countWidth)}${showPercentage ? ` ${padLeft('%', pctWidth)}` : ''} distribution`;
99
+ // Build total text as a single string
100
+ const totalText = ` ${padRight('total', labelWidth)} ${padLeft(String(total), countWidth)}${showPercentage ? ` ${padLeft('100%', pctWidth)}` : ''}`;
101
+ // Build each data row as a single line string (without dot and bar)
102
+ function buildRowMiddle(item) {
103
+ return `${padRight(item.displayLabel, labelWidth)} ${padLeft(String(item.value), countWidth)}${showPercentage ? ` ${padLeft(formatPct(item.value), pctWidth)}` : ''} `;
104
+ }
105
+ return (_jsxs("box", { flexDirection: "column", flexShrink: 0, children: [showHeader && (_jsxs(_Fragment, { children: [_jsx("box", { height: 1, flexShrink: 0, children: _jsx("text", { fg: theme.textMuted, wrapMode: "none", children: headerText }) }), _jsx("box", { height: 1, flexShrink: 0, children: _jsx("text", { fg: theme.borderSubtle, wrapMode: "none", children: separator }) })] })), coloredItems.map((item, i) => {
106
+ const middle = buildRowMiddle(item);
107
+ const bar = makeBar(item.value);
108
+ // Prefix width: dot(2) + middle text length
109
+ const prefixWidth = 2 + middle.length;
110
+ return (_jsxs("box", { flexDirection: "row", height: 1, flexShrink: 0, children: [_jsxs("box", { width: prefixWidth, flexShrink: 0, flexDirection: "row", children: [_jsx("text", { fg: item.resolvedColor, wrapMode: "none", children: '● ' }), _jsx("text", { fg: theme.text, wrapMode: "none", children: middle })] }), bar && _jsx("text", { fg: item.resolvedColor, wrapMode: "none", children: bar })] }, i));
111
+ }), showTotal && (_jsxs(_Fragment, { children: [_jsx("box", { height: 1, flexShrink: 0, children: _jsx("text", { fg: theme.borderSubtle, wrapMode: "none", children: separator }) }), _jsx("box", { height: 1, flexShrink: 0, children: _jsx("text", { fg: theme.textMuted, wrapMode: "none", children: totalText }) })] }))] }));
112
+ };
113
+ Histogram.Item = HistogramItem;
114
+ export { Histogram };
115
+ //# sourceMappingURL=histogram.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"histogram.js","sourceRoot":"","sources":["../../src/components/histogram.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * HorizontalBarGraph renders multi-series horizontal stacked bars.
3
+ *
4
+ * Each row is one category, usually a time bucket. The left chart area grows to
5
+ * fill available space while the right legend uses only the width needed for
6
+ * colored series rows and percentages.
7
+ */
8
+ import { ReactNode } from 'react';
9
+ import { BoxProps } from '@opentui/react';
10
+ import { Color } from 'termcast/src/colors';
11
+ export interface HorizontalBarGraphSeriesProps {
12
+ /** One value per row/category position. */
13
+ data: number[];
14
+ /** Series label shown in the legend. */
15
+ title?: string;
16
+ /** Override the auto-assigned color. */
17
+ color?: Color.ColorLike;
18
+ }
19
+ export interface HorizontalBarGraphProps extends BoxProps {
20
+ /** Row labels, one per bar position. Usually time buckets. */
21
+ labels?: string[];
22
+ /** Maximum chart rows to render. Defaults to all rows. */
23
+ height?: number;
24
+ /** Character used for bar cells. Matches Histogram by default. */
25
+ barCharacter?: string;
26
+ /** Show header row. Default true. */
27
+ showHeader?: boolean;
28
+ /** Show right-side legend. Default true when any series has a title. */
29
+ showLegend?: boolean;
30
+ /** Max display width for labels; longer labels are truncated. Default 16. */
31
+ maxLabelWidth?: number;
32
+ /** Header text for the category column. Default "category". */
33
+ categoryTitle?: string;
34
+ /** Header text for the bar column. Default "distribution". */
35
+ distributionTitle?: string;
36
+ /** Header text for the legend column. Default "legend". */
37
+ legendTitle?: string;
38
+ /** HorizontalBarGraph.Series children. */
39
+ children: ReactNode;
40
+ }
41
+ interface HorizontalBarGraphType {
42
+ (props: HorizontalBarGraphProps): any;
43
+ Series: (props: HorizontalBarGraphSeriesProps) => any;
44
+ }
45
+ declare const HorizontalBarGraph: HorizontalBarGraphType;
46
+ export { HorizontalBarGraph };
47
+ //# sourceMappingURL=horizontal-bar-graph.d.ts.map
@@ -0,0 +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,EAAW,MAAM,OAAO,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,KAAK,EAAgB,MAAM,qBAAqB,CAAA;AAGzD,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,sBAgMzB,CAAA;AAID,OAAO,EAAE,kBAAkB,EAAE,CAAA"}
@@ -0,0 +1,137 @@
1
+ import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "@opentui/react/jsx-runtime";
2
+ /**
3
+ * HorizontalBarGraph renders multi-series horizontal stacked bars.
4
+ *
5
+ * Each row is one category, usually a time bucket. The left chart area grows to
6
+ * fill available space while the right legend uses only the width needed for
7
+ * colored series rows and percentages.
8
+ */
9
+ import React, { useMemo } from 'react';
10
+ import { resolveColor } from 'termcast/src/colors';
11
+ import { getThemePalette, useTheme } from 'termcast/src/theme';
12
+ function truncateLabel(label, maxLabelWidth) {
13
+ if (label.length <= maxLabelWidth) {
14
+ return label;
15
+ }
16
+ return label.slice(0, maxLabelWidth - 1) + '…';
17
+ }
18
+ function padRight(value, width) {
19
+ if (value.length >= width) {
20
+ return value;
21
+ }
22
+ return value + ' '.repeat(width - value.length);
23
+ }
24
+ function padLeft(value, width) {
25
+ if (value.length >= width) {
26
+ return value;
27
+ }
28
+ return ' '.repeat(width - value.length) + value;
29
+ }
30
+ function formatPercentage(value, total) {
31
+ if (total <= 0) {
32
+ return '0%';
33
+ }
34
+ return `${Math.round((value / total) * 100)}%`;
35
+ }
36
+ const HorizontalBarGraphSeries = (_props) => {
37
+ return null;
38
+ };
39
+ const HorizontalBarGraph = (props) => {
40
+ const theme = useTheme();
41
+ const { labels = [], height, barCharacter = '╻', showHeader = true, showLegend, maxLabelWidth = 16, categoryTitle = 'category', distributionTitle = 'distribution', legendTitle = 'legend', children, ...rest } = props;
42
+ const palette = getThemePalette(theme);
43
+ const seriesList = useMemo(() => {
44
+ const childArray = React.Children.toArray(children);
45
+ return childArray
46
+ .filter(React.isValidElement)
47
+ .map((child, index) => {
48
+ const childProps = child.props;
49
+ return {
50
+ data: childProps.data,
51
+ title: childProps.title,
52
+ color: resolveColor(childProps.color) || palette[index % palette.length],
53
+ };
54
+ })
55
+ .filter((series) => {
56
+ return Array.isArray(series.data);
57
+ });
58
+ }, [children, palette]);
59
+ const rowCount = useMemo(() => {
60
+ return Math.max(labels.length, ...seriesList.map((series) => series.data.length), 0);
61
+ }, [labels, seriesList]);
62
+ const rows = useMemo(() => {
63
+ return Array.from({ length: rowCount }, (_, rowIndex) => {
64
+ const values = seriesList.map((series) => {
65
+ return series.data[rowIndex] || 0;
66
+ });
67
+ const total = values.reduce((sum, value) => {
68
+ return sum + value;
69
+ }, 0);
70
+ return {
71
+ label: labels[rowIndex] ?? String(rowIndex + 1),
72
+ total,
73
+ values,
74
+ };
75
+ });
76
+ }, [labels, rowCount, seriesList]);
77
+ const visibleRows = useMemo(() => {
78
+ return rows.slice(0, height ?? rows.length);
79
+ }, [height, rows]);
80
+ const maxTotal = useMemo(() => {
81
+ return Math.max(0, ...rows.map((row) => row.total));
82
+ }, [rows]);
83
+ const legendRows = useMemo(() => {
84
+ const grandTotal = rows.reduce((sum, row) => {
85
+ return sum + row.total;
86
+ }, 0);
87
+ return seriesList
88
+ .map((series, seriesIndex) => {
89
+ const seriesTotal = series.data.reduce((sum, value) => {
90
+ return sum + value;
91
+ }, 0);
92
+ return {
93
+ title: series.title ?? `Series ${seriesIndex + 1}`,
94
+ color: series.color,
95
+ percentage: formatPercentage(seriesTotal, grandTotal),
96
+ total: seriesTotal,
97
+ };
98
+ })
99
+ .filter((row) => {
100
+ return row.title.length > 0;
101
+ })
102
+ .sort((a, b) => {
103
+ return b.total - a.total;
104
+ });
105
+ }, [rows, seriesList]);
106
+ const legendVisible = showLegend ?? seriesList.some((series) => {
107
+ return Boolean(series.title);
108
+ });
109
+ if (seriesList.length === 0 || visibleRows.length === 0 || maxTotal === 0) {
110
+ return null;
111
+ }
112
+ const displayLabels = visibleRows.map((row) => {
113
+ return truncateLabel(row.label, maxLabelWidth);
114
+ });
115
+ const displayCategoryTitle = truncateLabel(categoryTitle, maxLabelWidth);
116
+ const labelWidth = Math.max(5, displayCategoryTitle.length, ...displayLabels.map((label) => label.length));
117
+ const legendGap = 2;
118
+ const legendTitleWidth = Math.max(6, ...legendRows.map((row) => row.title.length));
119
+ const legendPercentageWidth = Math.max(3, ...legendRows.map((row) => row.percentage.length));
120
+ const legendWidth = legendVisible ? legendGap + 2 + legendTitleWidth + 2 + legendPercentageWidth : 0;
121
+ const headerHeight = showHeader ? 2 : 0;
122
+ 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) => {
124
+ 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
+ if (value <= 0) {
126
+ return null;
127
+ }
128
+ const series = seriesList[seriesIndex];
129
+ return (_jsx("box", { flexGrow: value, flexBasis: 0, flexShrink: 1, overflow: "hidden", children: _jsx("box", { position: "absolute", width: "100%", height: "100%", overflow: "hidden", children: _jsx("text", { fg: series.color, wrapMode: "none", children: barCharacter.repeat(200) }) }) }, seriesIndex));
130
+ }), maxTotal > row.total && (_jsx("box", { flexGrow: maxTotal - row.total, flexBasis: 0, flexShrink: 1 }))] })] }, row.label));
131
+ }) }), legendVisible && (_jsx("box", { flexDirection: "column", width: legendWidth, flexShrink: 0, overflow: "hidden", children: legendRows.map((row) => {
132
+ 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
+ }) }))] })] }));
134
+ };
135
+ HorizontalBarGraph.Series = HorizontalBarGraphSeries;
136
+ export { HorizontalBarGraph };
137
+ //# sourceMappingURL=horizontal-bar-graph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"horizontal-bar-graph.js","sourceRoot":"","sources":["../../src/components/horizontal-bar-graph.tsx"],"names":[],"mappings":"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"}
@@ -103,6 +103,8 @@ export interface DropdownProps extends SearchBarInterface, CommonProps {
103
103
  storeValue?: boolean;
104
104
  value?: string;
105
105
  defaultValue?: string;
106
+ /** Override the text shown in the search bar for the active selection. When set, this is displayed instead of the selected item's title. Useful for managed state where the display label doesn't match any dropdown item. */
107
+ displayValue?: string;
106
108
  onChange?: (newValue: string) => void;
107
109
  children?: ReactNode;
108
110
  }
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/components/list.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/components/list.tsx"],"names":[],"mappings":"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"}
@@ -348,7 +348,7 @@ function ListItemRow(props) {
348
348
  paddingLeft: 0,
349
349
  paddingRight: 1,
350
350
  marginBottom: 1,
351
- }, border: false, onMouseMove: handleMouseMove, onMouseOut: handleMouseOut, onMouseDown: handleMouseDown, children: [_jsxs("box", { style: { flexDirection: 'row', justifyContent: 'space-between', gap: 1 }, children: [_jsxs("box", { style: { flexDirection: 'row', flexGrow: 1, 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: 0, fg: active ? theme.background : theme.text, attributes: TextAttributes.BOLD, selectable: false, wrapMode: "none", children: title })] }), 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))) }))] }), subtitle && (_jsx("box", { style: { paddingLeft: subtitleIndent }, children: _jsx("text", { flexShrink: 0, fg: active ? theme.background : theme.text, selectable: false, wrapMode: "none", children: subtitle }) }))] }));
351
+ }, border: false, onMouseMove: handleMouseMove, onMouseOut: handleMouseOut, onMouseDown: handleMouseDown, children: [_jsxs("box", { style: { flexDirection: 'row', justifyContent: 'space-between', gap: 1 }, children: [_jsxs("box", { style: { flexDirection: 'row', flexGrow: 1, 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: TextAttributes.BOLD, selectable: false, wrapMode: "none", children: title })] }), 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))) }))] }), subtitle && (_jsx("box", { style: { paddingLeft: subtitleIndent, overflow: 'hidden' }, children: _jsx("text", { flexShrink: 1, truncate: true, fg: active ? theme.background : theme.text, selectable: false, wrapMode: "none", children: subtitle }) }))] }));
352
352
  }
353
353
  // Default mode: single-line layout
354
354
  return (_jsxs("box", { ref: ref, style: {
@@ -362,7 +362,7 @@ function ListItemRow(props) {
362
362
  paddingLeft: 0,
363
363
  paddingRight: 1,
364
364
  gap: 1,
365
- }, 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: 0 }, 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: 0, fg: active ? theme.background : theme.text, attributes: active ? TextAttributes.BOLD : undefined, selectable: false, wrapMode: "none", children: title })] }), subtitle && (_jsx("text", { flexShrink: 0, 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))) }))] }));
365
+ }, 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
366
  }
367
367
  export const List = (props) => {
368
368
  const { children, onSelectionChange, filtering, searchText: controlledSearchText, onSearchTextChange, searchBarPlaceholder = 'Search...', isLoading, navigationTitle, isShowingDetail, selectedItemId, searchBarAccessory, logo, spacingMode = 'default', accessoryTagsLayout, throttle, ...otherProps } = props;
@@ -1158,9 +1158,9 @@ const ListDropdown = (props) => {
1158
1158
  return null;
1159
1159
  }
1160
1160
  const { isDropdownOpen, setIsDropdownOpen } = listContext;
1161
- const setDropdownSelection = (props) => {
1162
- setDropdownState({ value: props.value, title: props.title });
1163
- useStore.setState({ dropdownFooterLabel: props.title || 'dropdown' });
1161
+ const setDropdownSelection = (selectionProps) => {
1162
+ setDropdownState({ value: selectionProps.value, title: selectionProps.title });
1163
+ useStore.setState({ dropdownFooterLabel: props.displayValue ?? (selectionProps.title || 'dropdown') });
1164
1164
  };
1165
1165
  // Store both value and title together
1166
1166
  const [dropdownState, setDropdownState] = useState(() => {
@@ -1190,7 +1190,7 @@ const ListDropdown = (props) => {
1190
1190
  }
1191
1191
  if (!valueToUse) {
1192
1192
  useStore.setState({
1193
- dropdownFooterLabel: dropdownState.title || 'dropdown',
1193
+ dropdownFooterLabel: props.displayValue ?? (dropdownState.title || 'dropdown'),
1194
1194
  });
1195
1195
  return;
1196
1196
  }
@@ -1208,8 +1208,8 @@ const ListDropdown = (props) => {
1208
1208
  setDropdownSelection({ value: valueToUse, title });
1209
1209
  return;
1210
1210
  }
1211
- useStore.setState({ dropdownFooterLabel: title || 'dropdown' });
1212
- }, [props.value]); // Run when props.value changes and on mount
1211
+ useStore.setState({ dropdownFooterLabel: props.displayValue ?? (title || 'dropdown') });
1212
+ }, [props.value, props.displayValue]); // Run when props.value or displayValue changes and on mount
1213
1213
  const dropdownContextValue = useMemo(() => ({
1214
1214
  currentSection: undefined,
1215
1215
  }), []);
@@ -1246,8 +1246,8 @@ const ListDropdown = (props) => {
1246
1246
  });
1247
1247
  }
1248
1248
  }, [isDropdownOpen, props.children]);
1249
- // Display the title from our state
1250
- const displayValue = dropdownState.title || 'All';
1249
+ // Display the title from our state, or use the caller's override
1250
+ const displayValue = props.displayValue ?? (dropdownState.title || 'All');
1251
1251
  const openDropdownIfClosed = () => {
1252
1252
  if (!isDropdownOpen) {
1253
1253
  listContext.openDropdown();