@industry-theme/xterm-terminal-panel 0.9.0 → 0.9.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/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +236 -82
- package/dist/src/components/ProgramStatusBadge.d.ts +10 -0
- package/dist/src/components/ProgramStatusBadge.d.ts.map +1 -0
- package/dist/src/panel-types/index.d.ts +3 -2
- package/dist/src/panel-types/index.d.ts.map +1 -1
- package/dist/src/panels/TabbedTerminalPanel.d.ts.map +1 -1
- package/dist/src/renderer/GhosttyRenderer.d.ts.map +1 -1
- package/dist/src/types/terminal.types.d.ts +11 -0
- package/dist/src/types/terminal.types.d.ts.map +1 -1
- package/dist/styles.css +25 -0
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,8 @@ export { ThemedTerminal } from './src/components/ThemedTerminal';
|
|
|
2
2
|
export { ThemedTerminalWithProvider } from './src/components/ThemedTerminalWithProvider';
|
|
3
3
|
export { WorkingOverlay } from './src/components/WorkingOverlay';
|
|
4
4
|
export type { WorkingOverlayProps } from './src/components/WorkingOverlay';
|
|
5
|
+
export { ProgramStatusBadge, formatProgramStatusRecord } from './src/components/ProgramStatusBadge';
|
|
6
|
+
export type { ProgramStatusBadgeProps } from './src/components/ProgramStatusBadge';
|
|
5
7
|
export { SelectionDragChip } from './src/components/SelectionDragChip';
|
|
6
8
|
export type { SelectionDragChipProps } from './src/components/SelectionDragChip';
|
|
7
9
|
export { XtermRenderer } from './src/renderer/XtermRenderer';
|
|
@@ -15,7 +17,7 @@ export { TerminalSession } from './src/components/TerminalSession';
|
|
|
15
17
|
export type { TerminalSessionProps, TerminalSessionHandle, } from './src/components/TerminalSession';
|
|
16
18
|
export { TerminalOverlay } from './src/components/TerminalOverlay';
|
|
17
19
|
export type { TerminalOverlayProps } from './src/components/TerminalOverlay';
|
|
18
|
-
export type { ThemedTerminalProps, ThemedTerminalRef, TerminalActivityState, TerminalHeaderBadge, TerminalOverlayState, TerminalScrollPosition, LinkClickModifiers, DroppedTerminalFile, } from './src/types/terminal.types';
|
|
20
|
+
export type { ThemedTerminalProps, ThemedTerminalRef, TerminalActivityState, TerminalHeaderBadge, TerminalOverlayState, TerminalScrollPosition, LinkClickModifiers, DroppedTerminalFile, ProgramStatusRecord, ProgramStatusState, ProgramStatusKind, } from './src/types/terminal.types';
|
|
19
21
|
export { useThemedTerminal } from './src/hooks/useThemedTerminal';
|
|
20
22
|
export type { UseThemedTerminalReturn } from './src/hooks/useThemedTerminal';
|
|
21
23
|
export { createTerminalTheme, getTerminalCSSVariables, } from './src/utils/terminalTheme';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AACzF,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,YAAY,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,YAAY,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAIjF,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,YAAY,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,YAAY,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACnF,YAAY,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,YAAY,EACV,qBAAqB,EACrB,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,iCAAiC,CAAC;AAKzC,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,YAAY,EACV,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,YAAY,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAG7E,YAAY,EACV,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -38,7 +38,7 @@ import {
|
|
|
38
38
|
// package.json
|
|
39
39
|
var package_default = {
|
|
40
40
|
name: "@industry-theme/xterm-terminal-panel",
|
|
41
|
-
version: "0.9.
|
|
41
|
+
version: "0.9.2",
|
|
42
42
|
description: "Industry-themed xterm.js terminal components with panel framework integration",
|
|
43
43
|
type: "module",
|
|
44
44
|
sideEffects: [
|
|
@@ -1548,9 +1548,122 @@ var ThemedTerminalWithProvider = forwardRef2((props, ref) => {
|
|
|
1548
1548
|
});
|
|
1549
1549
|
ThemedTerminalWithProvider.displayName = "ThemedTerminalWithProvider";
|
|
1550
1550
|
|
|
1551
|
+
// src/components/ProgramStatusBadge.tsx
|
|
1552
|
+
import { useTheme as useTheme2 } from "@principal-ade/industry-theme";
|
|
1553
|
+
import { jsx as jsx5 } from "react/jsx-runtime";
|
|
1554
|
+
var blockedColor = (kind, colors) => {
|
|
1555
|
+
switch (kind) {
|
|
1556
|
+
case "auth":
|
|
1557
|
+
return colors.error;
|
|
1558
|
+
case "question":
|
|
1559
|
+
return colors.info;
|
|
1560
|
+
case "permission":
|
|
1561
|
+
default:
|
|
1562
|
+
return colors.warning;
|
|
1563
|
+
}
|
|
1564
|
+
};
|
|
1565
|
+
var formatProgramStatusRecord = (record) => {
|
|
1566
|
+
const parts = [`state=${record.state}`];
|
|
1567
|
+
if (record.kind) parts.push(`kind=${record.kind}`);
|
|
1568
|
+
if (typeof record.progress === "number") parts.push(`progress=${record.progress}`);
|
|
1569
|
+
if (record.app) parts.push(`app=${record.app}`);
|
|
1570
|
+
if (record.msg) parts.push(`msg=${record.msg}`);
|
|
1571
|
+
if (record.title) parts.push(`title=${record.title}`);
|
|
1572
|
+
return parts.join("; ");
|
|
1573
|
+
};
|
|
1574
|
+
var WaveBars = ({ color, animate }) => /* @__PURE__ */ jsx5("div", { style: { display: "flex", gap: 1, alignItems: "center", height: 12 }, children: [0, 1, 2, 3, 4].map((i) => /* @__PURE__ */ jsx5(
|
|
1575
|
+
"div",
|
|
1576
|
+
{
|
|
1577
|
+
style: {
|
|
1578
|
+
width: 2,
|
|
1579
|
+
height: 10,
|
|
1580
|
+
backgroundColor: color,
|
|
1581
|
+
borderRadius: 1,
|
|
1582
|
+
transformOrigin: "center",
|
|
1583
|
+
transform: animate ? void 0 : "scaleY(0.4)",
|
|
1584
|
+
animation: animate ? `program-status-wave 1.2s ease-in-out ${i * 0.1}s infinite` : "none"
|
|
1585
|
+
}
|
|
1586
|
+
},
|
|
1587
|
+
i
|
|
1588
|
+
)) });
|
|
1589
|
+
var ProgramStatusBadge = ({
|
|
1590
|
+
record,
|
|
1591
|
+
animate = true
|
|
1592
|
+
}) => {
|
|
1593
|
+
const { theme } = useTheme2();
|
|
1594
|
+
switch (record.state) {
|
|
1595
|
+
case "working":
|
|
1596
|
+
return /* @__PURE__ */ jsx5(
|
|
1597
|
+
"span",
|
|
1598
|
+
{
|
|
1599
|
+
title: formatProgramStatusRecord(record),
|
|
1600
|
+
style: { display: "flex", alignItems: "center" },
|
|
1601
|
+
children: /* @__PURE__ */ jsx5(WaveBars, { color: theme.colors.primary, animate })
|
|
1602
|
+
}
|
|
1603
|
+
);
|
|
1604
|
+
case "blocked": {
|
|
1605
|
+
const color = blockedColor(record.kind, theme.colors);
|
|
1606
|
+
return /* @__PURE__ */ jsx5(
|
|
1607
|
+
"span",
|
|
1608
|
+
{
|
|
1609
|
+
title: formatProgramStatusRecord(record),
|
|
1610
|
+
style: {
|
|
1611
|
+
display: "flex",
|
|
1612
|
+
alignItems: "center",
|
|
1613
|
+
justifyContent: "center",
|
|
1614
|
+
width: 12,
|
|
1615
|
+
height: 12,
|
|
1616
|
+
borderRadius: 3,
|
|
1617
|
+
backgroundColor: color,
|
|
1618
|
+
color: theme.colors.background,
|
|
1619
|
+
fontSize: 10,
|
|
1620
|
+
fontWeight: 700,
|
|
1621
|
+
lineHeight: 1,
|
|
1622
|
+
boxShadow: `0 0 0 2px ${color}33`,
|
|
1623
|
+
animation: animate ? "program-status-fade 1.4s ease-in-out infinite" : "none"
|
|
1624
|
+
},
|
|
1625
|
+
children: "!"
|
|
1626
|
+
}
|
|
1627
|
+
);
|
|
1628
|
+
}
|
|
1629
|
+
case "done":
|
|
1630
|
+
return /* @__PURE__ */ jsx5(
|
|
1631
|
+
"span",
|
|
1632
|
+
{
|
|
1633
|
+
title: formatProgramStatusRecord(record),
|
|
1634
|
+
style: {
|
|
1635
|
+
display: "block",
|
|
1636
|
+
width: 8,
|
|
1637
|
+
height: 8,
|
|
1638
|
+
borderRadius: "50%",
|
|
1639
|
+
backgroundColor: theme.colors.success
|
|
1640
|
+
}
|
|
1641
|
+
}
|
|
1642
|
+
);
|
|
1643
|
+
case "error":
|
|
1644
|
+
return /* @__PURE__ */ jsx5(
|
|
1645
|
+
"span",
|
|
1646
|
+
{
|
|
1647
|
+
title: formatProgramStatusRecord(record),
|
|
1648
|
+
style: {
|
|
1649
|
+
display: "block",
|
|
1650
|
+
width: 12,
|
|
1651
|
+
height: 11,
|
|
1652
|
+
backgroundColor: theme.colors.error,
|
|
1653
|
+
clipPath: "polygon(50% 0%, 100% 100%, 0% 100%)"
|
|
1654
|
+
}
|
|
1655
|
+
}
|
|
1656
|
+
);
|
|
1657
|
+
// `idle` / `clear` render nothing — the tab is quiescent.
|
|
1658
|
+
default:
|
|
1659
|
+
return null;
|
|
1660
|
+
}
|
|
1661
|
+
};
|
|
1662
|
+
ProgramStatusBadge.displayName = "ProgramStatusBadge";
|
|
1663
|
+
|
|
1551
1664
|
// src/renderer/XtermRenderer.tsx
|
|
1552
1665
|
import { forwardRef as forwardRef3, useImperativeHandle as useImperativeHandle2, useRef as useRef2 } from "react";
|
|
1553
|
-
import { jsx as
|
|
1666
|
+
import { jsx as jsx6 } from "react/jsx-runtime";
|
|
1554
1667
|
var XtermRenderer = forwardRef3(
|
|
1555
1668
|
(props, ref) => {
|
|
1556
1669
|
const {
|
|
@@ -1589,7 +1702,7 @@ var XtermRenderer = forwardRef3(
|
|
|
1589
1702
|
}),
|
|
1590
1703
|
[]
|
|
1591
1704
|
);
|
|
1592
|
-
return /* @__PURE__ */
|
|
1705
|
+
return /* @__PURE__ */ jsx6(
|
|
1593
1706
|
ThemedTerminalWithProvider,
|
|
1594
1707
|
{
|
|
1595
1708
|
ref: innerRef,
|
|
@@ -1608,7 +1721,7 @@ var XtermRenderer = forwardRef3(
|
|
|
1608
1721
|
XtermRenderer.displayName = "XtermRenderer";
|
|
1609
1722
|
|
|
1610
1723
|
// src/renderer/GhosttyRenderer.tsx
|
|
1611
|
-
import { useTheme as
|
|
1724
|
+
import { useTheme as useTheme3 } from "@principal-ade/industry-theme";
|
|
1612
1725
|
import { FitAddon as FitAddon2, Terminal as Terminal2 } from "ghostty-web";
|
|
1613
1726
|
import { forwardRef as forwardRef4, useCallback as useCallback2, useEffect as useEffect2, useImperativeHandle as useImperativeHandle3, useRef as useRef3 } from "react";
|
|
1614
1727
|
|
|
@@ -1623,7 +1736,7 @@ function ensureGhostty() {
|
|
|
1623
1736
|
}
|
|
1624
1737
|
|
|
1625
1738
|
// src/renderer/GhosttyRenderer.tsx
|
|
1626
|
-
import { jsx as
|
|
1739
|
+
import { jsx as jsx7 } from "react/jsx-runtime";
|
|
1627
1740
|
var DEFAULT_FONT_STACK = "JetBrains Mono, Menlo, Monaco, monospace";
|
|
1628
1741
|
var GhosttyRenderer = forwardRef4(
|
|
1629
1742
|
(props, ref) => {
|
|
@@ -1645,11 +1758,14 @@ var GhosttyRenderer = forwardRef4(
|
|
|
1645
1758
|
// Accepted but intentionally not implemented yet:
|
|
1646
1759
|
// onLinkClick, onFilesDropped
|
|
1647
1760
|
} = props;
|
|
1648
|
-
const { theme } =
|
|
1761
|
+
const { theme } = useTheme3();
|
|
1649
1762
|
const containerRef = useRef3(null);
|
|
1650
1763
|
const termRef = useRef3(null);
|
|
1651
1764
|
const fitRef = useRef3(null);
|
|
1652
1765
|
const readyRef = useRef3(false);
|
|
1766
|
+
const pendingWritesRef = useRef3([]);
|
|
1767
|
+
const autoFocusRef = useRef3(autoFocus);
|
|
1768
|
+
autoFocusRef.current = autoFocus;
|
|
1653
1769
|
const callbacks = useRef3({ onData, onResize, onReady, onScrollPositionChange, onShortcut });
|
|
1654
1770
|
callbacks.current = { onData, onResize, onReady, onScrollPositionChange, onShortcut };
|
|
1655
1771
|
const readScrollPosition = useCallback2(() => {
|
|
@@ -1677,6 +1793,14 @@ var GhosttyRenderer = forwardRef4(
|
|
|
1677
1793
|
}
|
|
1678
1794
|
}
|
|
1679
1795
|
}, []);
|
|
1796
|
+
const write = useCallback2((data) => {
|
|
1797
|
+
const term = termRef.current;
|
|
1798
|
+
if (term) {
|
|
1799
|
+
term.write(data);
|
|
1800
|
+
} else {
|
|
1801
|
+
pendingWritesRef.current.push(data);
|
|
1802
|
+
}
|
|
1803
|
+
}, []);
|
|
1680
1804
|
useEffect2(() => {
|
|
1681
1805
|
const container = containerRef.current;
|
|
1682
1806
|
if (!container) return;
|
|
@@ -1725,7 +1849,12 @@ var GhosttyRenderer = forwardRef4(
|
|
|
1725
1849
|
return false;
|
|
1726
1850
|
});
|
|
1727
1851
|
fit();
|
|
1728
|
-
if (
|
|
1852
|
+
if (pendingWritesRef.current.length > 0) {
|
|
1853
|
+
const pending = pendingWritesRef.current;
|
|
1854
|
+
pendingWritesRef.current = [];
|
|
1855
|
+
for (const chunk of pending) term.write(chunk);
|
|
1856
|
+
}
|
|
1857
|
+
if (autoFocusRef.current) term.focus();
|
|
1729
1858
|
};
|
|
1730
1859
|
init2();
|
|
1731
1860
|
return () => {
|
|
@@ -1743,7 +1872,6 @@ var GhosttyRenderer = forwardRef4(
|
|
|
1743
1872
|
scrollback,
|
|
1744
1873
|
transparent,
|
|
1745
1874
|
backgroundColor,
|
|
1746
|
-
autoFocus,
|
|
1747
1875
|
theme.colors.background,
|
|
1748
1876
|
theme.colors.text,
|
|
1749
1877
|
theme.fonts.monospace,
|
|
@@ -1758,12 +1886,16 @@ var GhosttyRenderer = forwardRef4(
|
|
|
1758
1886
|
return () => observer.disconnect();
|
|
1759
1887
|
}, [fit]);
|
|
1760
1888
|
useEffect2(() => {
|
|
1761
|
-
if (isVisible)
|
|
1889
|
+
if (!isVisible) return;
|
|
1890
|
+
fit();
|
|
1762
1891
|
}, [isVisible, fit]);
|
|
1892
|
+
useEffect2(() => {
|
|
1893
|
+
if (isVisible && autoFocus) termRef.current?.focus();
|
|
1894
|
+
}, [isVisible, autoFocus]);
|
|
1763
1895
|
useImperativeHandle3(
|
|
1764
1896
|
ref,
|
|
1765
1897
|
() => ({
|
|
1766
|
-
write
|
|
1898
|
+
write,
|
|
1767
1899
|
clear: () => termRef.current?.clear(),
|
|
1768
1900
|
focus: () => termRef.current?.focus(),
|
|
1769
1901
|
blur: () => termRef.current?.blur(),
|
|
@@ -1778,9 +1910,9 @@ var GhosttyRenderer = forwardRef4(
|
|
|
1778
1910
|
},
|
|
1779
1911
|
getScrollPosition: readScrollPosition
|
|
1780
1912
|
}),
|
|
1781
|
-
[fit, readScrollPosition]
|
|
1913
|
+
[fit, readScrollPosition, write]
|
|
1782
1914
|
);
|
|
1783
|
-
return /* @__PURE__ */
|
|
1915
|
+
return /* @__PURE__ */ jsx7(
|
|
1784
1916
|
"div",
|
|
1785
1917
|
{
|
|
1786
1918
|
ref: containerRef,
|
|
@@ -1808,7 +1940,7 @@ function resolveRenderer(choice) {
|
|
|
1808
1940
|
}
|
|
1809
1941
|
|
|
1810
1942
|
// src/components/TerminalSession.tsx
|
|
1811
|
-
import { useTheme as
|
|
1943
|
+
import { useTheme as useTheme4 } from "@principal-ade/industry-theme";
|
|
1812
1944
|
import {
|
|
1813
1945
|
forwardRef as forwardRef5,
|
|
1814
1946
|
useCallback as useCallback3,
|
|
@@ -1820,7 +1952,7 @@ import {
|
|
|
1820
1952
|
|
|
1821
1953
|
// src/components/TerminalOverlay.tsx
|
|
1822
1954
|
import { Monitor as Monitor2 } from "lucide-react";
|
|
1823
|
-
import { jsx as
|
|
1955
|
+
import { jsx as jsx8, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
1824
1956
|
var TerminalOverlay = ({ state, theme }) => /* @__PURE__ */ jsxs4(
|
|
1825
1957
|
"div",
|
|
1826
1958
|
{
|
|
@@ -1841,8 +1973,8 @@ var TerminalOverlay = ({ state, theme }) => /* @__PURE__ */ jsxs4(
|
|
|
1841
1973
|
zIndex: 10
|
|
1842
1974
|
},
|
|
1843
1975
|
children: [
|
|
1844
|
-
/* @__PURE__ */
|
|
1845
|
-
/* @__PURE__ */
|
|
1976
|
+
/* @__PURE__ */ jsx8(Monitor2, { size: 48, color: theme.colors.textSecondary }),
|
|
1977
|
+
/* @__PURE__ */ jsx8(
|
|
1846
1978
|
"div",
|
|
1847
1979
|
{
|
|
1848
1980
|
style: {
|
|
@@ -1854,7 +1986,7 @@ var TerminalOverlay = ({ state, theme }) => /* @__PURE__ */ jsxs4(
|
|
|
1854
1986
|
children: state.message
|
|
1855
1987
|
}
|
|
1856
1988
|
),
|
|
1857
|
-
state.subtitle && /* @__PURE__ */
|
|
1989
|
+
state.subtitle && /* @__PURE__ */ jsx8(
|
|
1858
1990
|
"div",
|
|
1859
1991
|
{
|
|
1860
1992
|
style: {
|
|
@@ -1866,7 +1998,7 @@ var TerminalOverlay = ({ state, theme }) => /* @__PURE__ */ jsxs4(
|
|
|
1866
1998
|
children: state.subtitle
|
|
1867
1999
|
}
|
|
1868
2000
|
),
|
|
1869
|
-
state.actions && state.actions.length > 0 && /* @__PURE__ */
|
|
2001
|
+
state.actions && state.actions.length > 0 && /* @__PURE__ */ jsx8(
|
|
1870
2002
|
"div",
|
|
1871
2003
|
{
|
|
1872
2004
|
style: {
|
|
@@ -1921,7 +2053,7 @@ var TerminalOverlay = ({ state, theme }) => /* @__PURE__ */ jsxs4(
|
|
|
1921
2053
|
);
|
|
1922
2054
|
|
|
1923
2055
|
// src/components/TerminalSession.tsx
|
|
1924
|
-
import { jsx as
|
|
2056
|
+
import { jsx as jsx9, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
1925
2057
|
var TerminalSession = forwardRef5(
|
|
1926
2058
|
(props, ref) => {
|
|
1927
2059
|
const {
|
|
@@ -1953,7 +2085,7 @@ var TerminalSession = forwardRef5(
|
|
|
1953
2085
|
workingSubtitle
|
|
1954
2086
|
} = props;
|
|
1955
2087
|
const Renderer = resolveRenderer(rendererProp);
|
|
1956
|
-
const { theme } =
|
|
2088
|
+
const { theme } = useTheme4();
|
|
1957
2089
|
const rendererRef = useRef4(null);
|
|
1958
2090
|
const [localSessionId, setLocalSessionId] = useState2(sessionIdProp);
|
|
1959
2091
|
const [isInitialized, setIsInitialized] = useState2(false);
|
|
@@ -2274,7 +2406,7 @@ var TerminalSession = forwardRef5(
|
|
|
2274
2406
|
padding: "10px 0 0 10px"
|
|
2275
2407
|
},
|
|
2276
2408
|
children: [
|
|
2277
|
-
/* @__PURE__ */
|
|
2409
|
+
/* @__PURE__ */ jsx9(
|
|
2278
2410
|
"div",
|
|
2279
2411
|
{
|
|
2280
2412
|
style: {
|
|
@@ -2285,7 +2417,7 @@ var TerminalSession = forwardRef5(
|
|
|
2285
2417
|
}
|
|
2286
2418
|
}
|
|
2287
2419
|
),
|
|
2288
|
-
/* @__PURE__ */
|
|
2420
|
+
/* @__PURE__ */ jsx9("style", { children: `@keyframes terminal-session-cursor-blink {
|
|
2289
2421
|
0%, 100% { opacity: 1; }
|
|
2290
2422
|
50% { opacity: 0; }
|
|
2291
2423
|
}` })
|
|
@@ -2307,7 +2439,7 @@ var TerminalSession = forwardRef5(
|
|
|
2307
2439
|
} : void 0;
|
|
2308
2440
|
const effectiveOverlay = ownershipLostOverlay ?? overlayState;
|
|
2309
2441
|
return /* @__PURE__ */ jsxs5("div", { style: { position: "relative", height: "100%", width: "100%" }, children: [
|
|
2310
|
-
/* @__PURE__ */
|
|
2442
|
+
/* @__PURE__ */ jsx9(
|
|
2311
2443
|
Renderer,
|
|
2312
2444
|
{
|
|
2313
2445
|
ref: rendererRef,
|
|
@@ -2326,8 +2458,8 @@ var TerminalSession = forwardRef5(
|
|
|
2326
2458
|
},
|
|
2327
2459
|
shouldRenderTerminal ? "active" : "overlay"
|
|
2328
2460
|
),
|
|
2329
|
-
effectiveOverlay && /* @__PURE__ */
|
|
2330
|
-
isWorking && !effectiveOverlay && /* @__PURE__ */
|
|
2461
|
+
effectiveOverlay && /* @__PURE__ */ jsx9(TerminalOverlay, { state: effectiveOverlay, theme }),
|
|
2462
|
+
isWorking && !effectiveOverlay && /* @__PURE__ */ jsx9(
|
|
2331
2463
|
WorkingOverlay,
|
|
2332
2464
|
{
|
|
2333
2465
|
theme,
|
|
@@ -2341,10 +2473,10 @@ var TerminalSession = forwardRef5(
|
|
|
2341
2473
|
TerminalSession.displayName = "TerminalSession";
|
|
2342
2474
|
|
|
2343
2475
|
// src/hooks/useThemedTerminal.ts
|
|
2344
|
-
import { useTheme as
|
|
2476
|
+
import { useTheme as useTheme5 } from "@principal-ade/industry-theme";
|
|
2345
2477
|
import { useMemo } from "react";
|
|
2346
2478
|
function useThemedTerminal() {
|
|
2347
|
-
const { theme } =
|
|
2479
|
+
const { theme } = useTheme5();
|
|
2348
2480
|
const terminalOptions = useMemo(
|
|
2349
2481
|
() => ({
|
|
2350
2482
|
cursorBlink: true,
|
|
@@ -2381,14 +2513,14 @@ function useThemedTerminal() {
|
|
|
2381
2513
|
}
|
|
2382
2514
|
|
|
2383
2515
|
// src/components/TabBar/TabBar.tsx
|
|
2384
|
-
import { useTheme as
|
|
2516
|
+
import { useTheme as useTheme7 } from "@principal-ade/industry-theme";
|
|
2385
2517
|
import { Plus } from "lucide-react";
|
|
2386
2518
|
import { useState as useState3, useCallback as useCallback5 } from "react";
|
|
2387
2519
|
|
|
2388
2520
|
// src/components/TabBar/TabButton.tsx
|
|
2389
|
-
import { useTheme as
|
|
2521
|
+
import { useTheme as useTheme6 } from "@principal-ade/industry-theme";
|
|
2390
2522
|
import { useCallback as useCallback4 } from "react";
|
|
2391
|
-
import { jsx as
|
|
2523
|
+
import { jsx as jsx10, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
2392
2524
|
var TabButton = ({
|
|
2393
2525
|
tab,
|
|
2394
2526
|
isActive,
|
|
@@ -2412,7 +2544,7 @@ var TabButton = ({
|
|
|
2412
2544
|
onDragLeave,
|
|
2413
2545
|
isBeingDragged: _isBeingDragged = false
|
|
2414
2546
|
}) => {
|
|
2415
|
-
const { theme } =
|
|
2547
|
+
const { theme } = useTheme6();
|
|
2416
2548
|
const showCloseButton = isHovered || isActive;
|
|
2417
2549
|
const closable = tab.closable !== false;
|
|
2418
2550
|
const handleDragStart = useCallback4(
|
|
@@ -2531,7 +2663,7 @@ var TabButton = ({
|
|
|
2531
2663
|
...getDragOverStyles()
|
|
2532
2664
|
},
|
|
2533
2665
|
children: [
|
|
2534
|
-
closable && showCloseButton && /* @__PURE__ */
|
|
2666
|
+
closable && showCloseButton && /* @__PURE__ */ jsx10(
|
|
2535
2667
|
"button",
|
|
2536
2668
|
{
|
|
2537
2669
|
onClick: (e) => {
|
|
@@ -2566,12 +2698,12 @@ var TabButton = ({
|
|
|
2566
2698
|
(() => {
|
|
2567
2699
|
const icon = renderIcon ? renderIcon(tab) : void 0;
|
|
2568
2700
|
const displayIcon = icon !== void 0 ? icon : tab.icon;
|
|
2569
|
-
return displayIcon ? /* @__PURE__ */
|
|
2701
|
+
return displayIcon ? /* @__PURE__ */ jsx10("div", { style: { flexShrink: 0, display: "flex", alignItems: "center", pointerEvents: "none" }, children: displayIcon }) : null;
|
|
2570
2702
|
})(),
|
|
2571
2703
|
(() => {
|
|
2572
2704
|
const label = renderLabel ? renderLabel(tab) : void 0;
|
|
2573
2705
|
const displayLabel = label !== void 0 ? label : tab.label;
|
|
2574
|
-
return /* @__PURE__ */
|
|
2706
|
+
return /* @__PURE__ */ jsx10(
|
|
2575
2707
|
"span",
|
|
2576
2708
|
{
|
|
2577
2709
|
style: {
|
|
@@ -2585,7 +2717,7 @@ var TabButton = ({
|
|
|
2585
2717
|
}
|
|
2586
2718
|
);
|
|
2587
2719
|
})(),
|
|
2588
|
-
renderAccessory ? renderAccessory(tab) : keyboardHint && /* @__PURE__ */
|
|
2720
|
+
renderAccessory ? renderAccessory(tab) : keyboardHint && /* @__PURE__ */ jsx10(
|
|
2589
2721
|
"span",
|
|
2590
2722
|
{
|
|
2591
2723
|
style: {
|
|
@@ -2604,7 +2736,7 @@ var TabButton = ({
|
|
|
2604
2736
|
TabButton.displayName = "TabButton";
|
|
2605
2737
|
|
|
2606
2738
|
// src/components/TabBar/TabBar.tsx
|
|
2607
|
-
import { jsx as
|
|
2739
|
+
import { jsx as jsx11, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
2608
2740
|
var TabBar = ({
|
|
2609
2741
|
tabs,
|
|
2610
2742
|
activeTabId,
|
|
@@ -2623,7 +2755,7 @@ var TabBar = ({
|
|
|
2623
2755
|
canDropOnTab,
|
|
2624
2756
|
enableDragAndDrop = false
|
|
2625
2757
|
}) => {
|
|
2626
|
-
const { theme } =
|
|
2758
|
+
const { theme } = useTheme7();
|
|
2627
2759
|
const [hoveredTabId, setHoveredTabId] = useState3(null);
|
|
2628
2760
|
const [draggedTabId, setDraggedTabId] = useState3(null);
|
|
2629
2761
|
const [dragOverTabId, setDragOverTabId] = useState3(null);
|
|
@@ -2662,7 +2794,7 @@ var TabBar = ({
|
|
|
2662
2794
|
boxSizing: "border-box"
|
|
2663
2795
|
},
|
|
2664
2796
|
children: [
|
|
2665
|
-
leftSection && /* @__PURE__ */
|
|
2797
|
+
leftSection && /* @__PURE__ */ jsx11(
|
|
2666
2798
|
"div",
|
|
2667
2799
|
{
|
|
2668
2800
|
style: {
|
|
@@ -2678,7 +2810,7 @@ var TabBar = ({
|
|
|
2678
2810
|
children: leftSection
|
|
2679
2811
|
}
|
|
2680
2812
|
),
|
|
2681
|
-
/* @__PURE__ */
|
|
2813
|
+
/* @__PURE__ */ jsx11(
|
|
2682
2814
|
"div",
|
|
2683
2815
|
{
|
|
2684
2816
|
style: {
|
|
@@ -2691,7 +2823,7 @@ var TabBar = ({
|
|
|
2691
2823
|
},
|
|
2692
2824
|
children: tabs.map((tab, index) => {
|
|
2693
2825
|
const canDrop = enableDragAndDrop && draggedTabId !== null && draggedTabId !== tab.id ? canDropOnTab ? canDropOnTab(draggedTabId, tab.id) : true : false;
|
|
2694
|
-
return /* @__PURE__ */
|
|
2826
|
+
return /* @__PURE__ */ jsx11(
|
|
2695
2827
|
TabButton,
|
|
2696
2828
|
{
|
|
2697
2829
|
tab,
|
|
@@ -2720,7 +2852,7 @@ var TabBar = ({
|
|
|
2720
2852
|
})
|
|
2721
2853
|
}
|
|
2722
2854
|
),
|
|
2723
|
-
rightSection !== void 0 ? rightSection && /* @__PURE__ */
|
|
2855
|
+
rightSection !== void 0 ? rightSection && /* @__PURE__ */ jsx11(
|
|
2724
2856
|
"div",
|
|
2725
2857
|
{
|
|
2726
2858
|
style: {
|
|
@@ -2735,7 +2867,7 @@ var TabBar = ({
|
|
|
2735
2867
|
},
|
|
2736
2868
|
children: rightSection
|
|
2737
2869
|
}
|
|
2738
|
-
) : onNewTab && /* @__PURE__ */
|
|
2870
|
+
) : onNewTab && /* @__PURE__ */ jsx11(
|
|
2739
2871
|
"div",
|
|
2740
2872
|
{
|
|
2741
2873
|
style: {
|
|
@@ -2748,7 +2880,7 @@ var TabBar = ({
|
|
|
2748
2880
|
borderBottom: `1px solid ${theme.colors.border}`,
|
|
2749
2881
|
boxSizing: "border-box"
|
|
2750
2882
|
},
|
|
2751
|
-
children: /* @__PURE__ */
|
|
2883
|
+
children: /* @__PURE__ */ jsx11(
|
|
2752
2884
|
"button",
|
|
2753
2885
|
{
|
|
2754
2886
|
onClick: onNewTab,
|
|
@@ -2771,7 +2903,7 @@ var TabBar = ({
|
|
|
2771
2903
|
e.currentTarget.style.backgroundColor = "transparent";
|
|
2772
2904
|
},
|
|
2773
2905
|
title: "New Tab (\u2318T)",
|
|
2774
|
-
children: /* @__PURE__ */
|
|
2906
|
+
children: /* @__PURE__ */ jsx11(Plus, { size: 14 })
|
|
2775
2907
|
}
|
|
2776
2908
|
)
|
|
2777
2909
|
}
|
|
@@ -2825,7 +2957,7 @@ var useTabKeyboardShortcuts = ({
|
|
|
2825
2957
|
};
|
|
2826
2958
|
|
|
2827
2959
|
// src/panels/TabbedTerminalPanel.tsx
|
|
2828
|
-
import { useTheme as
|
|
2960
|
+
import { useTheme as useTheme9 } from "@principal-ade/industry-theme";
|
|
2829
2961
|
import { CollapsibleSplitPane } from "@principal-ade/panels";
|
|
2830
2962
|
import { Terminal as TerminalIcon2, Box, Boxes, Paperclip } from "lucide-react";
|
|
2831
2963
|
import React4, {
|
|
@@ -2836,16 +2968,16 @@ import React4, {
|
|
|
2836
2968
|
} from "react";
|
|
2837
2969
|
|
|
2838
2970
|
// src/components/TerminalStatusBar.tsx
|
|
2839
|
-
import { useTheme as
|
|
2971
|
+
import { useTheme as useTheme8 } from "@principal-ade/industry-theme";
|
|
2840
2972
|
import { Folder, GitBranch } from "lucide-react";
|
|
2841
2973
|
import React3 from "react";
|
|
2842
|
-
import { jsx as
|
|
2974
|
+
import { jsx as jsx12, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
2843
2975
|
var AVATAR_SIZE = 14;
|
|
2844
2976
|
var TerminalStatusBar = ({
|
|
2845
2977
|
directory,
|
|
2846
2978
|
repo
|
|
2847
2979
|
}) => {
|
|
2848
|
-
const { theme } =
|
|
2980
|
+
const { theme } = useTheme8();
|
|
2849
2981
|
const [avatarFailed, setAvatarFailed] = React3.useState(false);
|
|
2850
2982
|
const owner = repo?.owner;
|
|
2851
2983
|
React3.useEffect(() => {
|
|
@@ -2875,7 +3007,7 @@ var TerminalStatusBar = ({
|
|
|
2875
3007
|
style: containerStyle,
|
|
2876
3008
|
title: `${repo.owner}/${repo.repo}${repo.branch ? ` \u2014 ${repo.branch}` : ""}`,
|
|
2877
3009
|
children: [
|
|
2878
|
-
showAvatar ? /* @__PURE__ */
|
|
3010
|
+
showAvatar ? /* @__PURE__ */ jsx12(
|
|
2879
3011
|
"img",
|
|
2880
3012
|
{
|
|
2881
3013
|
src: avatarUrl,
|
|
@@ -2890,7 +3022,7 @@ var TerminalStatusBar = ({
|
|
|
2890
3022
|
borderRadius: "50%"
|
|
2891
3023
|
}
|
|
2892
3024
|
}
|
|
2893
|
-
) : /* @__PURE__ */
|
|
3025
|
+
) : /* @__PURE__ */ jsx12(Folder, { size: 12, style: { flex: "0 0 auto", opacity: 0.7 } }),
|
|
2894
3026
|
/* @__PURE__ */ jsxs8(
|
|
2895
3027
|
"span",
|
|
2896
3028
|
{
|
|
@@ -2905,7 +3037,7 @@ var TerminalStatusBar = ({
|
|
|
2905
3037
|
repo.owner,
|
|
2906
3038
|
"/"
|
|
2907
3039
|
] }),
|
|
2908
|
-
/* @__PURE__ */
|
|
3040
|
+
/* @__PURE__ */ jsx12("span", { style: { color: theme.colors.text }, children: repo.repo })
|
|
2909
3041
|
]
|
|
2910
3042
|
}
|
|
2911
3043
|
),
|
|
@@ -2920,9 +3052,9 @@ var TerminalStatusBar = ({
|
|
|
2920
3052
|
opacity: 0.85
|
|
2921
3053
|
},
|
|
2922
3054
|
children: [
|
|
2923
|
-
/* @__PURE__ */
|
|
2924
|
-
/* @__PURE__ */
|
|
2925
|
-
repo.isDirty && /* @__PURE__ */
|
|
3055
|
+
/* @__PURE__ */ jsx12(GitBranch, { size: 12, style: { flex: "0 0 auto", opacity: 0.7 } }),
|
|
3056
|
+
/* @__PURE__ */ jsx12("span", { children: repo.branch }),
|
|
3057
|
+
repo.isDirty && /* @__PURE__ */ jsx12(
|
|
2926
3058
|
"span",
|
|
2927
3059
|
{
|
|
2928
3060
|
title: "Uncommitted changes",
|
|
@@ -2950,8 +3082,8 @@ var TerminalStatusBar = ({
|
|
|
2950
3082
|
return null;
|
|
2951
3083
|
}
|
|
2952
3084
|
return /* @__PURE__ */ jsxs8("div", { style: containerStyle, title: directory, children: [
|
|
2953
|
-
/* @__PURE__ */
|
|
2954
|
-
/* @__PURE__ */
|
|
3085
|
+
/* @__PURE__ */ jsx12(Folder, { size: 12, style: { flex: "0 0 auto", opacity: 0.7 } }),
|
|
3086
|
+
/* @__PURE__ */ jsx12(
|
|
2955
3087
|
"span",
|
|
2956
3088
|
{
|
|
2957
3089
|
style: {
|
|
@@ -2962,7 +3094,7 @@ var TerminalStatusBar = ({
|
|
|
2962
3094
|
textOverflow: "ellipsis",
|
|
2963
3095
|
minWidth: 0
|
|
2964
3096
|
},
|
|
2965
|
-
children: /* @__PURE__ */
|
|
3097
|
+
children: /* @__PURE__ */ jsx12("bdi", { children: directory })
|
|
2966
3098
|
}
|
|
2967
3099
|
)
|
|
2968
3100
|
] });
|
|
@@ -2970,9 +3102,9 @@ var TerminalStatusBar = ({
|
|
|
2970
3102
|
TerminalStatusBar.displayName = "TerminalStatusBar";
|
|
2971
3103
|
|
|
2972
3104
|
// src/panels/TabbedTerminalPanel.tsx
|
|
2973
|
-
import { Fragment as Fragment2, jsx as
|
|
3105
|
+
import { Fragment as Fragment2, jsx as jsx13, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
2974
3106
|
var ActivityIndicator = ({ color, isAnimating }) => /* @__PURE__ */ jsxs9("div", { style: { display: "flex", gap: 1, alignItems: "center", height: 12 }, children: [
|
|
2975
|
-
[0, 1, 2, 3, 4].map((i) => /* @__PURE__ */
|
|
3107
|
+
[0, 1, 2, 3, 4].map((i) => /* @__PURE__ */ jsx13(
|
|
2976
3108
|
"div",
|
|
2977
3109
|
{
|
|
2978
3110
|
style: {
|
|
@@ -2987,7 +3119,7 @@ var ActivityIndicator = ({ color, isAnimating }) => /* @__PURE__ */ jsxs9("div",
|
|
|
2987
3119
|
},
|
|
2988
3120
|
i
|
|
2989
3121
|
)),
|
|
2990
|
-
/* @__PURE__ */
|
|
3122
|
+
/* @__PURE__ */ jsx13("style", { children: `
|
|
2991
3123
|
@keyframes waveSine {
|
|
2992
3124
|
0%, 100% { transform: scaleY(0.4); }
|
|
2993
3125
|
50% { transform: scaleY(1); }
|
|
@@ -3043,7 +3175,7 @@ function TerminalTabContentInner(props, ref) {
|
|
|
3043
3175
|
}),
|
|
3044
3176
|
[]
|
|
3045
3177
|
);
|
|
3046
|
-
return /* @__PURE__ */
|
|
3178
|
+
return /* @__PURE__ */ jsx13(
|
|
3047
3179
|
"div",
|
|
3048
3180
|
{
|
|
3049
3181
|
style: {
|
|
@@ -3057,7 +3189,7 @@ function TerminalTabContentInner(props, ref) {
|
|
|
3057
3189
|
height: "100%",
|
|
3058
3190
|
width: "100%"
|
|
3059
3191
|
},
|
|
3060
|
-
children: /* @__PURE__ */
|
|
3192
|
+
children: /* @__PURE__ */ jsx13(
|
|
3061
3193
|
TerminalSession,
|
|
3062
3194
|
{
|
|
3063
3195
|
ref: sessionRef,
|
|
@@ -3128,6 +3260,7 @@ var TabbedTerminalPanelInner = ({
|
|
|
3128
3260
|
onFocusTabHandled,
|
|
3129
3261
|
requestCloseTabId,
|
|
3130
3262
|
workingStates,
|
|
3263
|
+
programStatus,
|
|
3131
3264
|
activityDetection = true,
|
|
3132
3265
|
activityTimeout = 500,
|
|
3133
3266
|
autoShowBlinds = false,
|
|
@@ -3145,7 +3278,7 @@ var TabbedTerminalPanelInner = ({
|
|
|
3145
3278
|
bottomBarContent,
|
|
3146
3279
|
renderer
|
|
3147
3280
|
}) => {
|
|
3148
|
-
const { theme } =
|
|
3281
|
+
const { theme } = useTheme9();
|
|
3149
3282
|
const onTabAssociate = actions.onTabAssociate ?? onTabAssociateProp;
|
|
3150
3283
|
const [ownedTabs, setOwnedTabs] = useState4(initialTabs);
|
|
3151
3284
|
const [foreignTabs, setForeignTabs] = useState4([]);
|
|
@@ -3531,12 +3664,30 @@ var TabbedTerminalPanelInner = ({
|
|
|
3531
3664
|
});
|
|
3532
3665
|
const renderTabAccessory = useCallback6((tab) => {
|
|
3533
3666
|
const tabSessionId = sessionIds.get(tab.id);
|
|
3667
|
+
const isActive = tab.id === activeTabId;
|
|
3668
|
+
const record = tabSessionId ? programStatus?.[tabSessionId] : void 0;
|
|
3669
|
+
if (record && record.state !== "idle" && record.state !== "clear") {
|
|
3670
|
+
return /* @__PURE__ */ jsx13(
|
|
3671
|
+
"div",
|
|
3672
|
+
{
|
|
3673
|
+
style: {
|
|
3674
|
+
position: "absolute",
|
|
3675
|
+
right: "8px",
|
|
3676
|
+
display: "flex",
|
|
3677
|
+
alignItems: "center",
|
|
3678
|
+
justifyContent: "center",
|
|
3679
|
+
width: "16px",
|
|
3680
|
+
height: "16px"
|
|
3681
|
+
},
|
|
3682
|
+
children: /* @__PURE__ */ jsx13(ProgramStatusBadge, { record })
|
|
3683
|
+
}
|
|
3684
|
+
);
|
|
3685
|
+
}
|
|
3534
3686
|
const hasExternalWorkingState = tabSessionId ? workingStates?.[tabSessionId]?.isWorking : false;
|
|
3535
3687
|
const hasInternalActivity = tabSessionId ? activityStates.get(tabSessionId) : false;
|
|
3536
3688
|
const isWorking = hasExternalWorkingState || hasInternalActivity;
|
|
3537
|
-
const isActive = tab.id === activeTabId;
|
|
3538
3689
|
if (!isActive) return null;
|
|
3539
|
-
return /* @__PURE__ */
|
|
3690
|
+
return /* @__PURE__ */ jsx13(Fragment2, { children: /* @__PURE__ */ jsx13(
|
|
3540
3691
|
"div",
|
|
3541
3692
|
{
|
|
3542
3693
|
style: {
|
|
@@ -3549,12 +3700,12 @@ var TabbedTerminalPanelInner = ({
|
|
|
3549
3700
|
height: "16px"
|
|
3550
3701
|
},
|
|
3551
3702
|
title: isWorking ? "Terminal active" : "Terminal idle",
|
|
3552
|
-
children: /* @__PURE__ */
|
|
3703
|
+
children: /* @__PURE__ */ jsx13(ActivityIndicator, { color: theme.colors.primary, isAnimating: isWorking ?? false })
|
|
3553
3704
|
}
|
|
3554
3705
|
) });
|
|
3555
|
-
}, [activeTabId, theme, sessionIds, workingStates, activityStates]);
|
|
3706
|
+
}, [activeTabId, theme, sessionIds, workingStates, activityStates, programStatus]);
|
|
3556
3707
|
const renderTerminalWithAssociation = useCallback6((tab, isActive, sessionId, association) => {
|
|
3557
|
-
const terminalContent = /* @__PURE__ */
|
|
3708
|
+
const terminalContent = /* @__PURE__ */ jsx13(
|
|
3558
3709
|
TerminalTabContent,
|
|
3559
3710
|
{
|
|
3560
3711
|
ref: getRefCallback(tab.id),
|
|
@@ -3576,7 +3727,7 @@ var TabbedTerminalPanelInner = ({
|
|
|
3576
3727
|
`terminal-${tab.id}`
|
|
3577
3728
|
);
|
|
3578
3729
|
const hasAssociation = !!association;
|
|
3579
|
-
const secondaryContent = hasAssociation && renderAssociatedContent ? renderAssociatedContent(association.associatedTabId, isActive) : /* @__PURE__ */
|
|
3730
|
+
const secondaryContent = hasAssociation && renderAssociatedContent ? renderAssociatedContent(association.associatedTabId, isActive) : /* @__PURE__ */ jsx13("div", { style: {
|
|
3580
3731
|
height: "100%",
|
|
3581
3732
|
display: "flex",
|
|
3582
3733
|
alignItems: "center",
|
|
@@ -3585,10 +3736,10 @@ var TabbedTerminalPanelInner = ({
|
|
|
3585
3736
|
fontSize: "13px",
|
|
3586
3737
|
backgroundColor: theme.colors.backgroundSecondary
|
|
3587
3738
|
}, children: "Drag a tab here to associate it with this terminal" });
|
|
3588
|
-
const headerConfig = hasAssociation && getAssociatedHeader ? getAssociatedHeader(association.associatedTabId) : { title: "Drop zone", icon: /* @__PURE__ */
|
|
3739
|
+
const headerConfig = hasAssociation && getAssociatedHeader ? getAssociatedHeader(association.associatedTabId) : { title: "Drop zone", icon: /* @__PURE__ */ jsx13(Paperclip, { size: 14 }) };
|
|
3589
3740
|
const isCollapsed = hasAssociation ? association.collapsed : true;
|
|
3590
3741
|
const handleCollapsedChange = hasAssociation ? (collapsed) => onAssociationCollapsedChange?.(tab.id, collapsed) : void 0;
|
|
3591
|
-
return /* @__PURE__ */
|
|
3742
|
+
return /* @__PURE__ */ jsx13(
|
|
3592
3743
|
CollapsibleSplitPane,
|
|
3593
3744
|
{
|
|
3594
3745
|
style: { height: "100%" },
|
|
@@ -3680,7 +3831,7 @@ var TabbedTerminalPanelInner = ({
|
|
|
3680
3831
|
backgroundColor: theme.colors.background
|
|
3681
3832
|
},
|
|
3682
3833
|
children: [
|
|
3683
|
-
!hideHeader && /* @__PURE__ */
|
|
3834
|
+
!hideHeader && /* @__PURE__ */ jsx13("div", { ref: headerRef, children: /* @__PURE__ */ jsx13(
|
|
3684
3835
|
TabBar,
|
|
3685
3836
|
{
|
|
3686
3837
|
tabs: genericTabs,
|
|
@@ -3688,7 +3839,7 @@ var TabbedTerminalPanelInner = ({
|
|
|
3688
3839
|
onTabClick: switchTab,
|
|
3689
3840
|
onTabClose: closeTab,
|
|
3690
3841
|
onNewTab: addNewTab,
|
|
3691
|
-
leftSection: hideShowAllTerminalsButton ? void 0 : /* @__PURE__ */
|
|
3842
|
+
leftSection: hideShowAllTerminalsButton ? void 0 : /* @__PURE__ */ jsx13(
|
|
3692
3843
|
"button",
|
|
3693
3844
|
{
|
|
3694
3845
|
onClick: () => onShowAllTerminalsChange?.(!showAllTerminals),
|
|
@@ -3715,7 +3866,7 @@ var TabbedTerminalPanelInner = ({
|
|
|
3715
3866
|
}
|
|
3716
3867
|
},
|
|
3717
3868
|
title: showAllTerminals ? "Showing all terminals (click to filter by context)" : "Show all terminals",
|
|
3718
|
-
children: showAllTerminals ? /* @__PURE__ */
|
|
3869
|
+
children: showAllTerminals ? /* @__PURE__ */ jsx13(Boxes, { size: 14 }) : /* @__PURE__ */ jsx13(Box, { size: 14 })
|
|
3719
3870
|
}
|
|
3720
3871
|
),
|
|
3721
3872
|
renderTabAccessory,
|
|
@@ -3776,7 +3927,7 @@ var TabbedTerminalPanelInner = ({
|
|
|
3776
3927
|
const customContent = renderTabContent(tab, isActive, sessionId, width);
|
|
3777
3928
|
if (customContent === null && tab.contentType === "terminal") {
|
|
3778
3929
|
const association = associations?.[tab.id];
|
|
3779
|
-
return /* @__PURE__ */
|
|
3930
|
+
return /* @__PURE__ */ jsx13(
|
|
3780
3931
|
"div",
|
|
3781
3932
|
{
|
|
3782
3933
|
inert: !isActive,
|
|
@@ -3804,7 +3955,7 @@ var TabbedTerminalPanelInner = ({
|
|
|
3804
3955
|
);
|
|
3805
3956
|
}
|
|
3806
3957
|
const hasBeenActivated = activatedTabs.has(tab.id);
|
|
3807
|
-
return /* @__PURE__ */
|
|
3958
|
+
return /* @__PURE__ */ jsx13(
|
|
3808
3959
|
"div",
|
|
3809
3960
|
{
|
|
3810
3961
|
inert: !isActive,
|
|
@@ -3824,7 +3975,7 @@ var TabbedTerminalPanelInner = ({
|
|
|
3824
3975
|
}
|
|
3825
3976
|
if (tab.contentType === "terminal") {
|
|
3826
3977
|
const association = associations?.[tab.id];
|
|
3827
|
-
return /* @__PURE__ */
|
|
3978
|
+
return /* @__PURE__ */ jsx13(
|
|
3828
3979
|
"div",
|
|
3829
3980
|
{
|
|
3830
3981
|
inert: !isActive,
|
|
@@ -3862,7 +4013,7 @@ var TabbedTerminalPanelInner = ({
|
|
|
3862
4013
|
"Unknown content type: ",
|
|
3863
4014
|
tab.contentType
|
|
3864
4015
|
] }),
|
|
3865
|
-
/* @__PURE__ */
|
|
4016
|
+
/* @__PURE__ */ jsx13("p", { style: { fontSize: theme.fontSizes[0], marginTop: "8px" }, children: "Provide a renderTabContent prop to render custom tab types" })
|
|
3866
4017
|
]
|
|
3867
4018
|
},
|
|
3868
4019
|
tab.id
|
|
@@ -3880,14 +4031,14 @@ var TabbedTerminalPanelInner = ({
|
|
|
3880
4031
|
color: theme.colors.textSecondary
|
|
3881
4032
|
},
|
|
3882
4033
|
children: [
|
|
3883
|
-
/* @__PURE__ */
|
|
4034
|
+
/* @__PURE__ */ jsx13(
|
|
3884
4035
|
TerminalIcon2,
|
|
3885
4036
|
{
|
|
3886
4037
|
size: 32,
|
|
3887
4038
|
style: { opacity: 0.5, marginBottom: "16px" }
|
|
3888
4039
|
}
|
|
3889
4040
|
),
|
|
3890
|
-
/* @__PURE__ */
|
|
4041
|
+
/* @__PURE__ */ jsx13(
|
|
3891
4042
|
"button",
|
|
3892
4043
|
{
|
|
3893
4044
|
onClick: () => addNewTab(),
|
|
@@ -3915,14 +4066,14 @@ var TabbedTerminalPanelInner = ({
|
|
|
3915
4066
|
const activeTab = tabs.find((t) => t.id === activeTabId);
|
|
3916
4067
|
const activeDir = activeTab?.directory;
|
|
3917
4068
|
return /* @__PURE__ */ jsxs9("div", { style: { display: "flex", alignItems: "center", flex: "0 0 auto" }, children: [
|
|
3918
|
-
/* @__PURE__ */
|
|
4069
|
+
/* @__PURE__ */ jsx13(
|
|
3919
4070
|
TerminalStatusBar,
|
|
3920
4071
|
{
|
|
3921
4072
|
directory: activeDir,
|
|
3922
4073
|
repo: activeDir ? getRepoInfo?.(activeDir) : void 0
|
|
3923
4074
|
}
|
|
3924
4075
|
),
|
|
3925
|
-
bottomBarContent && /* @__PURE__ */
|
|
4076
|
+
bottomBarContent && /* @__PURE__ */ jsx13("div", { style: { marginLeft: "auto", display: "flex", alignItems: "center", height: 22 }, children: bottomBarContent })
|
|
3926
4077
|
] });
|
|
3927
4078
|
})()
|
|
3928
4079
|
]
|
|
@@ -3952,6 +4103,7 @@ var TabbedTerminalPanelMemoized = React4.memo(TabbedTerminalPanelInner, (prevPro
|
|
|
3952
4103
|
if (prevProps.activeTabId !== nextProps.activeTabId) changes.push("activeTabId");
|
|
3953
4104
|
if (prevProps.onActiveTabChange !== nextProps.onActiveTabChange) changes.push("onActiveTabChange");
|
|
3954
4105
|
if (prevProps.workingStates !== nextProps.workingStates) changes.push("workingStates");
|
|
4106
|
+
if (prevProps.programStatus !== nextProps.programStatus) changes.push("programStatus");
|
|
3955
4107
|
if (prevProps.activityDetection !== nextProps.activityDetection) changes.push("activityDetection");
|
|
3956
4108
|
if (prevProps.activityTimeout !== nextProps.activityTimeout) changes.push("activityTimeout");
|
|
3957
4109
|
if (prevProps.autoShowBlinds !== nextProps.autoShowBlinds) changes.push("autoShowBlinds");
|
|
@@ -4157,6 +4309,7 @@ function getTerminalSlice(context2) {
|
|
|
4157
4309
|
export {
|
|
4158
4310
|
DEFAULT_RENDERER,
|
|
4159
4311
|
GhosttyRenderer,
|
|
4312
|
+
ProgramStatusBadge,
|
|
4160
4313
|
SelectionDragChip,
|
|
4161
4314
|
SpanStatusCode,
|
|
4162
4315
|
TRACER_NAME,
|
|
@@ -4176,6 +4329,7 @@ export {
|
|
|
4176
4329
|
createTerminalSessionTool,
|
|
4177
4330
|
createTerminalTheme,
|
|
4178
4331
|
focusTerminalTool,
|
|
4332
|
+
formatProgramStatusRecord,
|
|
4179
4333
|
getActiveSpan,
|
|
4180
4334
|
getRepositoryPath,
|
|
4181
4335
|
getTerminalCSSVariables,
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import '../styles/terminal-theme.css';
|
|
3
|
+
import type { ProgramStatusRecord } from '../types/terminal.types';
|
|
4
|
+
export interface ProgramStatusBadgeProps {
|
|
5
|
+
record: ProgramStatusRecord;
|
|
6
|
+
animate?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare const formatProgramStatusRecord: (record: ProgramStatusRecord) => string;
|
|
9
|
+
export declare const ProgramStatusBadge: React.FC<ProgramStatusBadgeProps>;
|
|
10
|
+
//# sourceMappingURL=ProgramStatusBadge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProgramStatusBadge.d.ts","sourceRoot":"","sources":["../../../src/components/ProgramStatusBadge.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,MAAM,WAAW,uBAAuB;IAEtC,MAAM,EAAE,mBAAmB,CAAC;IAM5B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAsBD,eAAO,MAAM,yBAAyB,GAAI,QAAQ,mBAAmB,KAAG,MAQvE,CAAC;AAoCF,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CA6EhE,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export type { PanelComponentProps, PanelContextValue, PanelActions, PanelEventEmitter, PanelEvent, PanelEventType, PanelDefinition, PanelMetadata, PanelLifecycleHooks, DataSlice, RepositoryMetadata, WorkspaceMetadata, } from '@principal-ade/panel-framework-core';
|
|
2
2
|
import type { PanelActions as CorePanelActions, PanelComponentProps as CorePanelComponentProps, PanelContextValue, DataSlice } from '@principal-ade/panel-framework-core';
|
|
3
|
-
import type { DroppedTerminalFile } from '../types/terminal.types';
|
|
3
|
+
import type { DroppedTerminalFile, ProgramStatusKind, ProgramStatusRecord, ProgramStatusState } from '../types/terminal.types';
|
|
4
4
|
import type { TerminalRepoInfo } from '../components/TerminalStatusBar';
|
|
5
5
|
import type { RendererChoice } from '../renderer/resolveRenderer';
|
|
6
|
-
export type { DroppedTerminalFile, TerminalRepoInfo };
|
|
6
|
+
export type { DroppedTerminalFile, TerminalRepoInfo, ProgramStatusRecord, ProgramStatusState, ProgramStatusKind, };
|
|
7
7
|
export type TerminalEventType = 'terminal:data' | 'terminal:exit' | 'terminal:created' | 'terminal:title-change' | 'terminal:cwd-change' | 'terminal:link-click' | 'terminal:shortcut' | 'terminal:activity-changed';
|
|
8
8
|
export interface TerminalLinkClickEvent {
|
|
9
9
|
url: string;
|
|
@@ -142,6 +142,7 @@ export interface TabbedTerminalPanelProps<TTab extends BaseTab = TerminalTab> ex
|
|
|
142
142
|
renderTabLabel?: (tab: TTab) => React.ReactNode;
|
|
143
143
|
width?: number;
|
|
144
144
|
workingStates?: Record<string, TerminalWorkingState>;
|
|
145
|
+
programStatus?: Record<string, ProgramStatusRecord>;
|
|
145
146
|
activityDetection?: boolean;
|
|
146
147
|
activityTimeout?: number;
|
|
147
148
|
autoShowBlinds?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/panel-types/index.ts"],"names":[],"mappings":"AAQA,YAAY,EACV,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,SAAS,EACT,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,KAAK,EACV,YAAY,IAAI,gBAAgB,EAChC,mBAAmB,IAAI,uBAAuB,EAC9C,iBAAiB,EACjB,SAAS,EACV,MAAM,qCAAqC,CAAC;AAE7C,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/panel-types/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabbedTerminalPanel.d.ts","sourceRoot":"","sources":["../../../src/panels/TabbedTerminalPanel.tsx"],"names":[],"mappings":"AAIA,OAAO,KAKN,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"TabbedTerminalPanel.d.ts","sourceRoot":"","sources":["../../../src/panels/TabbedTerminalPanel.tsx"],"names":[],"mappings":"AAIA,OAAO,KAKN,MAAM,OAAO,CAAC;AASf,OAAO,KAAK,EACV,wBAAwB,EACxB,WAAW,EAGZ,MAAM,gBAAgB,CAAC;AAkExB,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,MAAM,IAAI,CAAC;CAC5B;AAsyCD,eAAO,MAAM,mBAAmB,EAAkC,CAAC,IAAI,SAAS,OAAO,cAAc,EAAE,OAAO,GAAG,WAAW,EAC1H,KAAK,EAAE,wBAAwB,CAAC,IAAI,CAAC,KAClC,KAAK,CAAC,YAAY,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GhosttyRenderer.d.ts","sourceRoot":"","sources":["../../../src/renderer/GhosttyRenderer.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,oBAAoB,CAAC;AAO5B,MAAM,WAAW,oBAAqB,SAAQ,qBAAqB;IACjE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,KAAK,CAAC;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;
|
|
1
|
+
{"version":3,"file":"GhosttyRenderer.d.ts","sourceRoot":"","sources":["../../../src/renderer/GhosttyRenderer.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,oBAAoB,CAAC;AAO5B,MAAM,WAAW,oBAAqB,SAAQ,qBAAqB;IACjE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,KAAK,CAAC;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAuBD,eAAO,MAAM,eAAe,yHA0O3B,CAAC"}
|
|
@@ -24,6 +24,17 @@ export interface TerminalActivityState {
|
|
|
24
24
|
startedAt?: number;
|
|
25
25
|
duration?: number;
|
|
26
26
|
}
|
|
27
|
+
export type ProgramStatusState = 'idle' | 'working' | 'done' | 'blocked' | 'error' | 'clear';
|
|
28
|
+
export type ProgramStatusKind = 'permission' | 'question' | 'auth';
|
|
29
|
+
export interface ProgramStatusRecord {
|
|
30
|
+
state: ProgramStatusState;
|
|
31
|
+
kind?: ProgramStatusKind;
|
|
32
|
+
progress?: number;
|
|
33
|
+
id?: string;
|
|
34
|
+
app?: string;
|
|
35
|
+
msg?: string;
|
|
36
|
+
title?: string;
|
|
37
|
+
}
|
|
27
38
|
export interface DroppedTerminalFile {
|
|
28
39
|
name: string;
|
|
29
40
|
mimeType: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal.types.d.ts","sourceRoot":"","sources":["../../../src/types/terminal.types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"terminal.types.d.ts","sourceRoot":"","sources":["../../../src/types/terminal.types.ts"],"names":[],"mappings":"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"}
|
package/dist/styles.css
CHANGED
|
@@ -228,3 +228,28 @@
|
|
|
228
228
|
.terminal-working-overlay.closing {
|
|
229
229
|
animation: blinds-up 0.3s ease-in forwards;
|
|
230
230
|
}
|
|
231
|
+
|
|
232
|
+
/* ===== PROGRAM STATUS BADGES (OSC 7501) ===== */
|
|
233
|
+
|
|
234
|
+
/* Animated wave bars for the "working" state */
|
|
235
|
+
@keyframes program-status-wave {
|
|
236
|
+
0%,
|
|
237
|
+
100% {
|
|
238
|
+
transform: scaleY(0.4);
|
|
239
|
+
}
|
|
240
|
+
50% {
|
|
241
|
+
transform: scaleY(1);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
/* Attention fade for the "blocked" badge. Opacity only — the badge keeps its
|
|
246
|
+
size (no grow/shrink). */
|
|
247
|
+
@keyframes program-status-fade {
|
|
248
|
+
0%,
|
|
249
|
+
100% {
|
|
250
|
+
opacity: 1;
|
|
251
|
+
}
|
|
252
|
+
50% {
|
|
253
|
+
opacity: 0.5;
|
|
254
|
+
}
|
|
255
|
+
}
|