@industry-theme/xterm-terminal-panel 0.3.17 → 0.4.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/index.js +40 -37
- package/dist/src/components/ThemedTerminal.d.ts.map +1 -1
- package/dist/src/mocks/panelContext.d.ts.map +1 -1
- package/dist/src/panel-exports.d.ts +2 -2
- package/dist/src/panel-exports.d.ts.map +1 -1
- package/dist/src/panel-types/index.d.ts +16 -19
- package/dist/src/panel-types/index.d.ts.map +1 -1
- package/dist/src/panels/TerminalPanel.d.ts.map +1 -1
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -113,7 +113,9 @@ var ThemedTerminal = forwardRef(({
|
|
|
113
113
|
const handleDroppedContent = useCallback((content) => {
|
|
114
114
|
if (terminal) {
|
|
115
115
|
terminal.paste(content);
|
|
116
|
-
|
|
116
|
+
setTimeout(() => {
|
|
117
|
+
terminal.focus();
|
|
118
|
+
}, 10);
|
|
117
119
|
}
|
|
118
120
|
}, [terminal]);
|
|
119
121
|
const { isDragOver, ...dropZoneProps } = useDropZone({
|
|
@@ -1076,7 +1078,7 @@ var useTabKeyboardShortcuts = ({
|
|
|
1076
1078
|
// src/panels/TerminalPanel.tsx
|
|
1077
1079
|
import { useTheme as useTheme5 } from "@principal-ade/industry-theme";
|
|
1078
1080
|
import { Lock, Unlock, ArrowDown } from "lucide-react";
|
|
1079
|
-
import { useEffect as useEffect3, useRef as useRef2, useState as useState3 } from "react";
|
|
1081
|
+
import { useCallback as useCallback2, useEffect as useEffect3, useRef as useRef2, useState as useState3 } from "react";
|
|
1080
1082
|
|
|
1081
1083
|
// src/panel-types/index.ts
|
|
1082
1084
|
function getTerminalSessions(context) {
|
|
@@ -1130,6 +1132,7 @@ var TerminalPanel = ({
|
|
|
1130
1132
|
});
|
|
1131
1133
|
const terminalRef = useRef2(null);
|
|
1132
1134
|
const dataPortRef = useRef2(null);
|
|
1135
|
+
const isScrollLockedRef = useRef2(scrollPosition.isScrollLocked);
|
|
1133
1136
|
const terminalDirectory = getTerminalDirectory(context, terminalScope);
|
|
1134
1137
|
const pendingSessionIdRef = useRef2(null);
|
|
1135
1138
|
useEffect3(() => {
|
|
@@ -1145,7 +1148,6 @@ var TerminalPanel = ({
|
|
|
1145
1148
|
}
|
|
1146
1149
|
unsubscribePortReady = actions.onTerminalPortReady((data, port) => {
|
|
1147
1150
|
if (data.sessionId === pendingSessionIdRef.current || data.sessionId === sessionId) {
|
|
1148
|
-
console.info(`[TerminalPanel] Received MessagePort for session ${data.sessionId}`);
|
|
1149
1151
|
dataPortRef.current = port;
|
|
1150
1152
|
if (typeof port.start === "function") {
|
|
1151
1153
|
port.start();
|
|
@@ -1204,8 +1206,9 @@ var TerminalPanel = ({
|
|
|
1204
1206
|
return () => clearTimeout(timeout);
|
|
1205
1207
|
}, [sessionId, usingMessagePort]);
|
|
1206
1208
|
useEffect3(() => {
|
|
1207
|
-
if (!usingMessagePort || !dataPortRef.current)
|
|
1209
|
+
if (!usingMessagePort || !dataPortRef.current) {
|
|
1208
1210
|
return;
|
|
1211
|
+
}
|
|
1209
1212
|
const port = dataPortRef.current;
|
|
1210
1213
|
let lastWriteTime = 0;
|
|
1211
1214
|
let cursorMovedToHome = false;
|
|
@@ -1218,7 +1221,7 @@ var TerminalPanel = ({
|
|
|
1218
1221
|
lastWriteTime = Date.now();
|
|
1219
1222
|
}
|
|
1220
1223
|
terminalRef.current.write(data);
|
|
1221
|
-
if (cursorMovedToHome &&
|
|
1224
|
+
if (cursorMovedToHome && isScrollLockedRef.current) {
|
|
1222
1225
|
if (autoScrollTimeout) {
|
|
1223
1226
|
clearTimeout(autoScrollTimeout);
|
|
1224
1227
|
}
|
|
@@ -1235,21 +1238,20 @@ var TerminalPanel = ({
|
|
|
1235
1238
|
}
|
|
1236
1239
|
};
|
|
1237
1240
|
port.onmessage = handleMessage;
|
|
1238
|
-
console.info("[TerminalPanel] Listening on MessagePort for terminal data");
|
|
1239
1241
|
return () => {
|
|
1240
1242
|
port.onmessage = null;
|
|
1241
1243
|
if (autoScrollTimeout) {
|
|
1242
1244
|
clearTimeout(autoScrollTimeout);
|
|
1243
1245
|
}
|
|
1244
1246
|
};
|
|
1245
|
-
}, [usingMessagePort
|
|
1246
|
-
const handleTerminalData = (data) => {
|
|
1247
|
+
}, [usingMessagePort]);
|
|
1248
|
+
const handleTerminalData = useCallback2((data) => {
|
|
1247
1249
|
if (sessionId && actions.writeToTerminal) {
|
|
1248
1250
|
actions.writeToTerminal(sessionId, data);
|
|
1249
1251
|
}
|
|
1250
|
-
};
|
|
1252
|
+
}, [sessionId, actions.writeToTerminal]);
|
|
1251
1253
|
const hasNotifiedPtyRef = useRef2(false);
|
|
1252
|
-
const handleTerminalResize = (cols, rows) => {
|
|
1254
|
+
const handleTerminalResize = useCallback2((cols, rows) => {
|
|
1253
1255
|
if (sessionId && actions.resizeTerminal) {
|
|
1254
1256
|
const isInitialNotification = !hasNotifiedPtyRef.current;
|
|
1255
1257
|
actions.resizeTerminal(sessionId, cols, rows);
|
|
@@ -1260,13 +1262,14 @@ var TerminalPanel = ({
|
|
|
1260
1262
|
}
|
|
1261
1263
|
hasNotifiedPtyRef.current = true;
|
|
1262
1264
|
}
|
|
1263
|
-
};
|
|
1265
|
+
}, [sessionId, actions.resizeTerminal, actions.writeToTerminal]);
|
|
1264
1266
|
useEffect3(() => {
|
|
1265
1267
|
hasNotifiedPtyRef.current = false;
|
|
1266
1268
|
}, [sessionId]);
|
|
1267
|
-
const handleScrollPositionChange = (position) => {
|
|
1269
|
+
const handleScrollPositionChange = useCallback2((position) => {
|
|
1268
1270
|
setScrollPosition(position);
|
|
1269
|
-
|
|
1271
|
+
isScrollLockedRef.current = position.isScrollLocked;
|
|
1272
|
+
}, []);
|
|
1270
1273
|
const sessionInfo = sessionId ? getTerminalSession(context, sessionId) : undefined;
|
|
1271
1274
|
if (error) {
|
|
1272
1275
|
return /* @__PURE__ */ jsxs4("div", {
|
|
@@ -1430,7 +1433,7 @@ import { useTheme as useTheme6 } from "@principal-ade/industry-theme";
|
|
|
1430
1433
|
import { Terminal as TerminalIcon2, Lock as Lock2, Unlock as Unlock2, Box, Boxes } from "lucide-react";
|
|
1431
1434
|
import React2, {
|
|
1432
1435
|
useState as useState4,
|
|
1433
|
-
useCallback as
|
|
1436
|
+
useCallback as useCallback3,
|
|
1434
1437
|
useEffect as useEffect4,
|
|
1435
1438
|
useRef as useRef3
|
|
1436
1439
|
} from "react";
|
|
@@ -1449,7 +1452,7 @@ function TerminalTabContentInner(props, ref) {
|
|
|
1449
1452
|
const [shouldRenderTerminal, setShouldRenderTerminal] = useState4(true);
|
|
1450
1453
|
const [ownerWindowId, setOwnerWindowId] = useState4(null);
|
|
1451
1454
|
const needsRefreshOnResizeRef = useRef3(false);
|
|
1452
|
-
const claimAndConnect =
|
|
1455
|
+
const claimAndConnect = useCallback3(async (targetSessionId, force = false) => {
|
|
1453
1456
|
try {
|
|
1454
1457
|
if (actions.claimTerminalOwnership) {
|
|
1455
1458
|
await actions.claimTerminalOwnership(targetSessionId, force);
|
|
@@ -1528,17 +1531,17 @@ function TerminalTabContentInner(props, ref) {
|
|
|
1528
1531
|
unsubscribe();
|
|
1529
1532
|
};
|
|
1530
1533
|
}, [localSessionId, isInitialized, actions, shouldRenderTerminal]);
|
|
1531
|
-
const handleData =
|
|
1534
|
+
const handleData = useCallback3((data) => {
|
|
1532
1535
|
if (localSessionId && actions.writeToTerminal) {
|
|
1533
1536
|
actions.writeToTerminal(localSessionId, data);
|
|
1534
1537
|
}
|
|
1535
1538
|
}, [localSessionId, actions]);
|
|
1536
|
-
const handleResize =
|
|
1539
|
+
const handleResize = useCallback3((cols, rows) => {
|
|
1537
1540
|
if (localSessionId && actions.resizeTerminal) {
|
|
1538
1541
|
actions.resizeTerminal(localSessionId, cols, rows);
|
|
1539
1542
|
}
|
|
1540
1543
|
}, [localSessionId, actions]);
|
|
1541
|
-
const handleReady =
|
|
1544
|
+
const handleReady = useCallback3((cols, rows) => {
|
|
1542
1545
|
if (localSessionId && actions.resizeTerminal) {
|
|
1543
1546
|
const shouldForce = needsRefreshOnResizeRef.current;
|
|
1544
1547
|
if (shouldForce) {
|
|
@@ -1547,7 +1550,7 @@ function TerminalTabContentInner(props, ref) {
|
|
|
1547
1550
|
actions.resizeTerminal(localSessionId, cols, rows, shouldForce);
|
|
1548
1551
|
}
|
|
1549
1552
|
}, [localSessionId, actions]);
|
|
1550
|
-
const handleLinkClick =
|
|
1553
|
+
const handleLinkClick = useCallback3((url, modifiers) => {
|
|
1551
1554
|
if (localSessionId) {
|
|
1552
1555
|
events.emit({
|
|
1553
1556
|
type: "terminal:link-click",
|
|
@@ -1578,17 +1581,17 @@ function TerminalTabContentInner(props, ref) {
|
|
|
1578
1581
|
unsubscribe();
|
|
1579
1582
|
};
|
|
1580
1583
|
}, [localSessionId, actions]);
|
|
1581
|
-
const handleTakeControl =
|
|
1584
|
+
const handleTakeControl = useCallback3(async () => {
|
|
1582
1585
|
if (!localSessionId) {
|
|
1583
1586
|
return;
|
|
1584
1587
|
}
|
|
1585
1588
|
await claimAndConnect(localSessionId, true);
|
|
1586
1589
|
}, [localSessionId, claimAndConnect]);
|
|
1587
|
-
const handleScrollPositionChange =
|
|
1590
|
+
const handleScrollPositionChange = useCallback3((position) => {
|
|
1588
1591
|
setScrollPosition(position);
|
|
1589
1592
|
onScrollPositionChange?.(tab.id, position);
|
|
1590
1593
|
}, [tab.id, onScrollPositionChange]);
|
|
1591
|
-
const handleShortcut =
|
|
1594
|
+
const handleShortcut = useCallback3((shortcutEvent) => {
|
|
1592
1595
|
if (localSessionId) {
|
|
1593
1596
|
events.emit({
|
|
1594
1597
|
type: "terminal:shortcut",
|
|
@@ -1601,10 +1604,10 @@ function TerminalTabContentInner(props, ref) {
|
|
|
1601
1604
|
});
|
|
1602
1605
|
}
|
|
1603
1606
|
}, [localSessionId, events]);
|
|
1604
|
-
const handleScrollToBottom =
|
|
1607
|
+
const handleScrollToBottom = useCallback3(() => {
|
|
1605
1608
|
terminalRef.current?.scrollToBottom();
|
|
1606
1609
|
}, []);
|
|
1607
|
-
const handleToggleScrollLock =
|
|
1610
|
+
const handleToggleScrollLock = useCallback3(() => {
|
|
1608
1611
|
if (scrollPosition.isScrollLocked) {
|
|
1609
1612
|
const terminal = terminalRef.current?.getTerminal();
|
|
1610
1613
|
if (terminal) {
|
|
@@ -1772,7 +1775,7 @@ var TabbedTerminalPanelInner = ({
|
|
|
1772
1775
|
onFocusTabHandled?.();
|
|
1773
1776
|
}
|
|
1774
1777
|
}, [requestFocusTabId, ownedTabs, foreignTabs, setActiveTabId, onFocusTabHandled, activeTabId]);
|
|
1775
|
-
const getOwnedTabLabel =
|
|
1778
|
+
const getOwnedTabLabel = useCallback3((index, _directory) => {
|
|
1776
1779
|
if (tabLabelPrefix) {
|
|
1777
1780
|
return `${tabLabelPrefix} ${index + 1}`;
|
|
1778
1781
|
}
|
|
@@ -1800,7 +1803,7 @@ var TabbedTerminalPanelInner = ({
|
|
|
1800
1803
|
}, [tabs]);
|
|
1801
1804
|
const tabRefsMap = useRef3(new Map);
|
|
1802
1805
|
const refCallbacksMap = useRef3(new Map);
|
|
1803
|
-
const getRefCallback =
|
|
1806
|
+
const getRefCallback = useCallback3((tabId) => {
|
|
1804
1807
|
let callback = refCallbacksMap.current.get(tabId);
|
|
1805
1808
|
if (!callback) {
|
|
1806
1809
|
callback = (ref) => {
|
|
@@ -1817,7 +1820,7 @@ var TabbedTerminalPanelInner = ({
|
|
|
1817
1820
|
const hasInitializedRef = useRef3(false);
|
|
1818
1821
|
const isCreatingTabRef = useRef3(false);
|
|
1819
1822
|
const headerRef = useRef3(null);
|
|
1820
|
-
const handleTabScrollPositionChange =
|
|
1823
|
+
const handleTabScrollPositionChange = useCallback3((tabId, position) => {
|
|
1821
1824
|
setScrollPositions((prev) => new Map(prev).set(tabId, position));
|
|
1822
1825
|
}, []);
|
|
1823
1826
|
const defaultScrollPosition = {
|
|
@@ -1825,12 +1828,12 @@ var TabbedTerminalPanelInner = ({
|
|
|
1825
1828
|
isAtBottom: true,
|
|
1826
1829
|
isScrollLocked: false
|
|
1827
1830
|
};
|
|
1828
|
-
const handleToggleScrollLock =
|
|
1831
|
+
const handleToggleScrollLock = useCallback3(() => {
|
|
1829
1832
|
if (activeTabId) {
|
|
1830
1833
|
tabRefsMap.current.get(activeTabId)?.toggleScrollLock();
|
|
1831
1834
|
}
|
|
1832
1835
|
}, [activeTabId]);
|
|
1833
|
-
const restoreOwnedSessions =
|
|
1836
|
+
const restoreOwnedSessions = useCallback3(async () => {
|
|
1834
1837
|
try {
|
|
1835
1838
|
let sessions = [];
|
|
1836
1839
|
if (actions.listTerminalSessions) {
|
|
@@ -1865,7 +1868,7 @@ var TabbedTerminalPanelInner = ({
|
|
|
1865
1868
|
console.error("[TabbedTerminalPanel] Failed to restore owned sessions:", err);
|
|
1866
1869
|
}
|
|
1867
1870
|
}, [terminalContext, initialTabs, onTabsChange, actions, directory]);
|
|
1868
|
-
const fetchForeignSessions =
|
|
1871
|
+
const fetchForeignSessions = useCallback3(async () => {
|
|
1869
1872
|
try {
|
|
1870
1873
|
if (!actions.listTerminalSessions) {
|
|
1871
1874
|
return;
|
|
@@ -1897,7 +1900,7 @@ var TabbedTerminalPanelInner = ({
|
|
|
1897
1900
|
console.error("[TabbedTerminalPanel] Failed to fetch foreign sessions:", err);
|
|
1898
1901
|
}
|
|
1899
1902
|
}, [terminalContext, actions]);
|
|
1900
|
-
const clearForeignTabs =
|
|
1903
|
+
const clearForeignTabs = useCallback3(() => {
|
|
1901
1904
|
setForeignTabs((prevForeign) => {
|
|
1902
1905
|
const foreignTabIds = new Set(prevForeign.map((t) => t.id));
|
|
1903
1906
|
setSessionIds((prev) => {
|
|
@@ -1935,10 +1938,10 @@ var TabbedTerminalPanelInner = ({
|
|
|
1935
1938
|
clearForeignTabs();
|
|
1936
1939
|
}
|
|
1937
1940
|
}, [showAllTerminals, fetchForeignSessions, clearForeignTabs]);
|
|
1938
|
-
const switchTab =
|
|
1941
|
+
const switchTab = useCallback3((tabId) => {
|
|
1939
1942
|
setActiveTabId(tabId);
|
|
1940
1943
|
}, [setActiveTabId]);
|
|
1941
|
-
const addNewTab =
|
|
1944
|
+
const addNewTab = useCallback3((label, command, targetDirectory) => {
|
|
1942
1945
|
const targetDir = targetDirectory || directory;
|
|
1943
1946
|
const directoryName = targetDir.split("/").pop() || targetDir;
|
|
1944
1947
|
const newTab = {
|
|
@@ -1956,10 +1959,10 @@ var TabbedTerminalPanelInner = ({
|
|
|
1956
1959
|
});
|
|
1957
1960
|
setActiveTabId(newTab.id);
|
|
1958
1961
|
}, [directory, onTabsChange]);
|
|
1959
|
-
const isForeignTab =
|
|
1962
|
+
const isForeignTab = useCallback3((tabId) => {
|
|
1960
1963
|
return tabId.startsWith("tab-foreign-");
|
|
1961
1964
|
}, []);
|
|
1962
|
-
const closeTab =
|
|
1965
|
+
const closeTab = useCallback3(async (tabId) => {
|
|
1963
1966
|
const sessionId = sessionIds.get(tabId);
|
|
1964
1967
|
const isForeign = isForeignTab(tabId);
|
|
1965
1968
|
if (!isForeign && sessionId && actions.destroyTerminalSession) {
|
|
@@ -2003,7 +2006,7 @@ var TabbedTerminalPanelInner = ({
|
|
|
2003
2006
|
});
|
|
2004
2007
|
}
|
|
2005
2008
|
}, [activeTabId, sessionIds, actions, onTabsChange, isForeignTab, ownedTabs, foreignTabs]);
|
|
2006
|
-
const handleSessionCreated =
|
|
2009
|
+
const handleSessionCreated = useCallback3((tabId, sessionId) => {
|
|
2007
2010
|
setSessionIds((prev) => new Map(prev).set(tabId, sessionId));
|
|
2008
2011
|
}, []);
|
|
2009
2012
|
useTabKeyboardShortcuts({
|
|
@@ -2026,7 +2029,7 @@ var TabbedTerminalPanelInner = ({
|
|
|
2026
2029
|
}
|
|
2027
2030
|
}
|
|
2028
2031
|
});
|
|
2029
|
-
const renderTabAccessory =
|
|
2032
|
+
const renderTabAccessory = useCallback3((tab) => {
|
|
2030
2033
|
if (tab.id !== activeTabId)
|
|
2031
2034
|
return null;
|
|
2032
2035
|
const scrollPosition = scrollPositions.get(tab.id) ?? defaultScrollPosition;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemedTerminal.d.ts","sourceRoot":"","sources":["../../../src/components/ThemedTerminal.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AA+B3D,OAAO,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EAEV,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,8BAA8B,CAAC;AAEtC,MAAM,WAAW,4BAA6B,SAAQ,mBAAmB;IACvE,KAAK,EAAE,KAAK,CAAC;CACd;AAsBD,eAAO,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"ThemedTerminal.d.ts","sourceRoot":"","sources":["../../../src/components/ThemedTerminal.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AA+B3D,OAAO,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EAEV,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,8BAA8B,CAAC;AAEtC,MAAM,WAAW,4BAA6B,SAAQ,mBAAmB;IACvE,KAAK,EAAE,KAAK,CAAC;CACd;AAsBD,eAAO,MAAM,cAAc,4HA20B1B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"panelContext.d.ts","sourceRoot":"","sources":["../../../src/mocks/panelContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EACV,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EAGjB,mBAAmB,EACnB,oBAAoB,EAGrB,MAAM,gBAAgB,CAAC;AAKxB,eAAO,MAAM,oBAAoB,EAAE,mBAAmB,EAUrD,CAAC;AAuEF,eAAO,MAAM,iBAAiB,GAC5B,YAAY,OAAO,CAAC,iBAAiB,CAAC,KACrC,iBAqEF,CAAC;AAKF,eAAO,MAAM,iBAAiB,GAC5B,YAAY,OAAO,CAAC,oBAAoB,CAAC,KACxC,
|
|
1
|
+
{"version":3,"file":"panelContext.d.ts","sourceRoot":"","sources":["../../../src/mocks/panelContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EACV,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EAGjB,mBAAmB,EACnB,oBAAoB,EAGrB,MAAM,gBAAgB,CAAC;AAKxB,eAAO,MAAM,oBAAoB,EAAE,mBAAmB,EAUrD,CAAC;AAuEF,eAAO,MAAM,iBAAiB,GAC5B,YAAY,OAAO,CAAC,iBAAiB,CAAC,KACrC,iBAqEF,CAAC;AAKF,eAAO,MAAM,iBAAiB,GAC5B,YAAY,OAAO,CAAC,oBAAoB,CAAC,KACxC,oBAmGD,CAAC;AAKH,eAAO,MAAM,gBAAgB,QAAO,iBAwCnC,CAAC;AASF,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC;IACvC,QAAQ,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,KAAK,CAAC,SAAS,CAAC;IAC1D,gBAAgB,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9C,gBAAgB,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;CAClD,CAmDA,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { PanelDefinition } from './panel-types';
|
|
1
|
+
import type { PanelDefinition, TerminalPanelActions } from './panel-types';
|
|
2
2
|
import { TabbedTerminalPanel } from './panels/TabbedTerminalPanel';
|
|
3
|
-
export declare const panels: PanelDefinition[];
|
|
3
|
+
export declare const panels: PanelDefinition<TerminalPanelActions>[];
|
|
4
4
|
export declare const onPackageLoad: () => Promise<void>;
|
|
5
5
|
export declare const onPackageUnload: () => Promise<void>;
|
|
6
6
|
export { TabbedTerminalPanel };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"panel-exports.d.ts","sourceRoot":"","sources":["../../src/panel-exports.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAqB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"panel-exports.d.ts","sourceRoot":"","sources":["../../src/panel-exports.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAqB,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC9F,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AASnE,eAAO,MAAM,MAAM,EAAE,eAAe,CAAC,oBAAoB,CAAC,EAmCzD,CAAC;AAMF,eAAO,MAAM,aAAa,qBAGzB,CAAC;AAMF,eAAO,MAAM,eAAe,qBAG3B,CAAC;AAGF,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAG/B,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC1B,yBAAyB,EACzB,mBAAmB,EACnB,wBAAwB,EACxB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,SAAS,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export type { PanelComponentProps, PanelContextValue, PanelActions, PanelEventEmitter, PanelEvent, PanelEventType, PanelDefinition, PanelMetadata, PanelLifecycleHooks, DataSlice, RepositoryMetadata, WorkspaceMetadata, } from '@principal-ade/panel-framework-core';
|
|
2
|
-
import type { PanelActions as CorePanelActions, PanelContextValue, DataSlice } from '@principal-ade/panel-framework-core';
|
|
2
|
+
import type { PanelActions as CorePanelActions, PanelComponentProps as CorePanelComponentProps, PanelContextValue, DataSlice } from '@principal-ade/panel-framework-core';
|
|
3
3
|
export type TerminalEventType = 'terminal:data' | 'terminal:exit' | 'terminal:created' | 'terminal:title-change' | 'terminal:cwd-change' | 'terminal:link-click' | 'terminal:shortcut';
|
|
4
4
|
export interface TerminalLinkClickEvent {
|
|
5
5
|
url: string;
|
|
@@ -48,35 +48,32 @@ export interface PortReadyData {
|
|
|
48
48
|
ownershipToken?: string;
|
|
49
49
|
}
|
|
50
50
|
export interface TerminalPanelActions extends CorePanelActions {
|
|
51
|
-
createTerminalSession
|
|
52
|
-
destroyTerminalSession
|
|
53
|
-
writeToTerminal
|
|
54
|
-
resizeTerminal
|
|
55
|
-
clearTerminal
|
|
56
|
-
onTerminalPortReady
|
|
57
|
-
checkTerminalOwnership
|
|
58
|
-
claimTerminalOwnership
|
|
59
|
-
releaseTerminalOwnership
|
|
60
|
-
onOwnershipLost
|
|
51
|
+
createTerminalSession: (options?: CreateTerminalSessionOptions) => Promise<string>;
|
|
52
|
+
destroyTerminalSession: (sessionId: string) => Promise<void>;
|
|
53
|
+
writeToTerminal: (sessionId: string, data: string) => void;
|
|
54
|
+
resizeTerminal: (sessionId: string, cols: number, rows: number, force?: boolean) => void;
|
|
55
|
+
clearTerminal: (sessionId: string) => void;
|
|
56
|
+
onTerminalPortReady: (callback: (data: PortReadyData, port: MessagePort) => void) => () => void;
|
|
57
|
+
checkTerminalOwnership: (sessionId: string) => Promise<OwnershipStatus>;
|
|
58
|
+
claimTerminalOwnership: (sessionId: string, force?: boolean) => Promise<OwnershipResult>;
|
|
59
|
+
releaseTerminalOwnership: (sessionId: string) => Promise<OwnershipResult>;
|
|
60
|
+
onOwnershipLost: (callback: (data: {
|
|
61
61
|
sessionId: string;
|
|
62
62
|
newOwnerWindowId: number;
|
|
63
63
|
}) => void) => () => void;
|
|
64
|
-
refreshTerminal
|
|
65
|
-
requestTerminalDataPort
|
|
64
|
+
refreshTerminal: (sessionId: string) => Promise<boolean>;
|
|
65
|
+
requestTerminalDataPort: (sessionId: string) => Promise<{
|
|
66
66
|
success: boolean;
|
|
67
67
|
reason?: string;
|
|
68
68
|
}>;
|
|
69
|
-
onTerminalData
|
|
70
|
-
listTerminalSessions
|
|
69
|
+
onTerminalData: (sessionId: string, callback: (data: string) => void) => () => void;
|
|
70
|
+
listTerminalSessions: () => Promise<TerminalSessionInfo[]>;
|
|
71
71
|
}
|
|
72
72
|
export declare function getTerminalSessions(context: PanelContextValue): TerminalSessionInfo[];
|
|
73
73
|
export declare function getTerminalSession(context: PanelContextValue, sessionId: string): TerminalSessionInfo | undefined;
|
|
74
74
|
export declare function isTerminalLoading(context: PanelContextValue): boolean;
|
|
75
75
|
export type TerminalScope = 'repository' | 'workspace';
|
|
76
|
-
export interface TerminalPanelProps extends
|
|
77
|
-
context: PanelContextValue;
|
|
78
|
-
actions: TerminalPanelActions;
|
|
79
|
-
events: import('@principal-ade/panel-framework-core').PanelEventEmitter;
|
|
76
|
+
export interface TerminalPanelProps extends CorePanelComponentProps<TerminalPanelActions> {
|
|
80
77
|
terminalScope?: TerminalScope;
|
|
81
78
|
}
|
|
82
79
|
export declare function getRepositoryPath(context: PanelContextValue): string | null;
|
|
@@ -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,iBAAiB,EACjB,SAAS,EACV,MAAM,qCAAqC,CAAC;AAK7C,MAAM,MAAM,iBAAiB,GACzB,eAAe,GACf,eAAe,GACf,kBAAkB,GAClB,uBAAuB,GACvB,qBAAqB,GACrB,qBAAqB,GACrB,mBAAmB,CAAC;AAKxB,MAAM,WAAW,sBAAsB;IAErC,GAAG,EAAE,MAAM,CAAC;IAEZ,SAAS,EAAE,MAAM,CAAC;IAElB,QAAQ,EAAE,OAAO,CAAC;IAElB,OAAO,EAAE,OAAO,CAAC;IAEjB,OAAO,EAAE,OAAO,CAAC;IAEjB,MAAM,EAAE,OAAO,CAAC;CACjB;AAKD,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;AAKnD,MAAM,WAAW,qBAAqB;IAEpC,QAAQ,EAAE,kBAAkB,CAAC;IAE7B,SAAS,EAAE,MAAM,CAAC;CACnB;AAMD,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAKD,MAAM,WAAW,4BAA4B;IAC3C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE7B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAKD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAKD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAKD,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;
|
|
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":"TerminalPanel.d.ts","sourceRoot":"","sources":["../../../src/panels/TerminalPanel.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAiB,MAAM,gBAAgB,CAAC;AAqBxE,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,
|
|
1
|
+
{"version":3,"file":"TerminalPanel.d.ts","sourceRoot":"","sources":["../../../src/panels/TerminalPanel.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAiB,MAAM,gBAAgB,CAAC;AAqBxE,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA8ZtD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@industry-theme/xterm-terminal-panel",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Industry-themed xterm.js terminal components with panel framework integration",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
},
|
|
60
60
|
"peerDependencies": {
|
|
61
61
|
"@principal-ade/industry-theme": ">=0.1.7",
|
|
62
|
-
"@principal-ade/panel-framework-core": ">=0.
|
|
62
|
+
"@principal-ade/panel-framework-core": ">=0.4.2",
|
|
63
63
|
"@xterm/addon-fit": ">=0.10.0",
|
|
64
64
|
"@xterm/addon-search": ">=0.15.0",
|
|
65
65
|
"@xterm/addon-web-links": ">=0.11.0",
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
"@eslint/js": "^9.32.0",
|
|
83
83
|
"@industry-theme/agent-panels": "^0.2.12",
|
|
84
84
|
"@principal-ade/industry-theme": "^0.1.7",
|
|
85
|
-
"@principal-ade/panel-framework-core": "^0.
|
|
85
|
+
"@principal-ade/panel-framework-core": "^0.4.2",
|
|
86
86
|
"@storybook/addon-docs": "10.1.2",
|
|
87
87
|
"@storybook/addon-links": "10.1.2",
|
|
88
88
|
"@storybook/addon-onboarding": "10.1.2",
|