@industry-theme/xterm-terminal-panel 0.1.0 → 0.1.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 +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +234 -115
- package/dist/src/mocks/panelContext.d.ts.map +1 -1
- package/dist/src/panel-exports.d.ts +2 -1
- package/dist/src/panel-exports.d.ts.map +1 -1
- package/dist/src/panel-types/index.d.ts +1 -0
- package/dist/src/panel-types/index.d.ts.map +1 -1
- package/dist/src/panels/TabbedTerminalPanel.d.ts.map +1 -1
- package/dist/src/panels/TerminalPanel.d.ts.map +1 -1
- package/dist/src/tools/index.d.ts +9 -0
- package/dist/src/tools/index.d.ts.map +1 -0
- package/dist/tools.bundle.js +156 -0
- package/package.json +21 -15
package/dist/index.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export { TerminalPanel } from './src/panels/TerminalPanel';
|
|
|
8
8
|
export { TabbedTerminalPanel } from './src/panels/TabbedTerminalPanel';
|
|
9
9
|
export type { TerminalTabContentRef } from './src/panels/TabbedTerminalPanel';
|
|
10
10
|
export { panels, onPackageLoad, onPackageUnload } from './src/panel-exports';
|
|
11
|
+
export { terminalPanelTools, terminalPanelToolsMetadata, createTerminalSessionTool, writeToTerminalTool, closeTerminalSessionTool, clearTerminalTool, focusTerminalTool, } from './src/panel-exports';
|
|
11
12
|
export type { PanelDefinition, PanelMetadata, PanelComponentProps, PanelContextValue, PanelActions, PanelEventEmitter, TerminalSessionInfo, CreateTerminalSessionOptions, TerminalPanelActions, TerminalEventType, TerminalScope, TerminalPanelProps, TerminalTab, TabbedTerminalPanelProps, OwnershipStatus, OwnershipResult, PortReadyData, } from './src/panel-types';
|
|
12
13
|
export { getTerminalSessions, getTerminalSession, isTerminalLoading, getRepositoryPath, getWorkspacePath, getTerminalDirectory, getTerminalSlice, } from './src/panel-types';
|
|
13
14
|
export type { Theme } from '@principal-ade/industry-theme';
|
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;AAGzF,YAAY,EACV,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,YAAY,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAG7E,OAAO,EACL,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,2BAA2B,CAAC;AAOnC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,YAAY,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAG9E,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAG7E,YAAY,EACV,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,4BAA4B,EAC5B,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,wBAAwB,EACxB,eAAe,EACf,eAAe,EACf,aAAa,GACd,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAO3B,YAAY,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAG3D,YAAY,EAAE,QAAQ,EAAE,MAAM,IAAI,UAAU,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrF,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
|
|
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;AAGzF,YAAY,EACV,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,YAAY,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAG7E,OAAO,EACL,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,2BAA2B,CAAC;AAOnC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,YAAY,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAG9E,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAG7E,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC1B,yBAAyB,EACzB,mBAAmB,EACnB,wBAAwB,EACxB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAG7B,YAAY,EACV,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,4BAA4B,EAC5B,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,wBAAwB,EACxB,eAAe,EACf,eAAe,EACf,aAAa,GACd,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAO3B,YAAY,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAG3D,YAAY,EAAE,QAAQ,EAAE,MAAM,IAAI,UAAU,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrF,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -724,9 +724,9 @@ function useThemedTerminal() {
|
|
|
724
724
|
};
|
|
725
725
|
}
|
|
726
726
|
// src/panels/TerminalPanel.tsx
|
|
727
|
-
import { useEffect as useEffect2, useRef as useRef2, useState as useState2 } from "react";
|
|
728
|
-
import { Lock, Unlock, ArrowDown } from "lucide-react";
|
|
729
727
|
import { useTheme as useTheme3 } from "@principal-ade/industry-theme";
|
|
728
|
+
import { Lock, Unlock, ArrowDown } from "lucide-react";
|
|
729
|
+
import { useEffect as useEffect2, useRef as useRef2, useState as useState2 } from "react";
|
|
730
730
|
|
|
731
731
|
// src/panel-types/index.ts
|
|
732
732
|
function getTerminalSessions(context) {
|
|
@@ -1078,15 +1078,15 @@ var TerminalPanel = ({
|
|
|
1078
1078
|
});
|
|
1079
1079
|
};
|
|
1080
1080
|
// src/panels/TabbedTerminalPanel.tsx
|
|
1081
|
+
import { useTheme as useTheme4 } from "@principal-ade/industry-theme";
|
|
1082
|
+
import { Terminal as TerminalIcon2, X as X2, Plus, Lock as Lock2, Unlock as Unlock2, Box, Boxes } from "lucide-react";
|
|
1081
1083
|
import React, {
|
|
1082
1084
|
useState as useState3,
|
|
1083
1085
|
useCallback,
|
|
1084
1086
|
useEffect as useEffect3,
|
|
1085
1087
|
useRef as useRef3
|
|
1086
1088
|
} from "react";
|
|
1087
|
-
import {
|
|
1088
|
-
import { useTheme as useTheme4 } from "@principal-ade/industry-theme";
|
|
1089
|
-
import { jsx as jsx4, jsxs as jsxs3, Fragment as Fragment2 } from "react/jsx-runtime";
|
|
1089
|
+
import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
1090
1090
|
var TerminalTabContentInner = ({ tab, sessionId, isActive, isVisible, actions, terminalContext, onSessionCreated, onScrollPositionChange, isForeign = false }, ref) => {
|
|
1091
1091
|
const terminalRef = useRef3(null);
|
|
1092
1092
|
const [localSessionId, setLocalSessionId] = useState3(sessionId);
|
|
@@ -1303,7 +1303,8 @@ var TabbedTerminalPanel = ({
|
|
|
1303
1303
|
onTabsChange,
|
|
1304
1304
|
initialTabs = [],
|
|
1305
1305
|
showAllTerminals = false,
|
|
1306
|
-
onShowAllTerminalsChange
|
|
1306
|
+
onShowAllTerminalsChange,
|
|
1307
|
+
tabLabelPrefix
|
|
1307
1308
|
}) => {
|
|
1308
1309
|
const { theme } = useTheme4();
|
|
1309
1310
|
const [ownedTabs, setOwnedTabs] = useState3(initialTabs);
|
|
@@ -1312,25 +1313,24 @@ var TabbedTerminalPanel = ({
|
|
|
1312
1313
|
const [sessionIds, setSessionIds] = useState3(new Map);
|
|
1313
1314
|
const [hoveredTabId, setHoveredTabId] = useState3(null);
|
|
1314
1315
|
const [scrollPositions, setScrollPositions] = useState3(new Map);
|
|
1316
|
+
const getOwnedTabLabel = useCallback((index, directory2) => {
|
|
1317
|
+
if (tabLabelPrefix) {
|
|
1318
|
+
return `${tabLabelPrefix} ${index + 1}`;
|
|
1319
|
+
}
|
|
1320
|
+
return directory2.split("/").pop() || directory2;
|
|
1321
|
+
}, [tabLabelPrefix]);
|
|
1315
1322
|
const tabs = React.useMemo(() => {
|
|
1323
|
+
const labeledOwnedTabs = ownedTabs.map((tab, index) => ({
|
|
1324
|
+
...tab,
|
|
1325
|
+
label: getOwnedTabLabel(index, tab.directory)
|
|
1326
|
+
}));
|
|
1316
1327
|
const sortedForeignTabs = [...foreignTabs].sort((a, b) => a.label.localeCompare(b.label));
|
|
1317
|
-
return [...
|
|
1318
|
-
}, [ownedTabs, foreignTabs]);
|
|
1328
|
+
return [...labeledOwnedTabs, ...sortedForeignTabs];
|
|
1329
|
+
}, [ownedTabs, foreignTabs, getOwnedTabLabel]);
|
|
1319
1330
|
const tabRefsMap = useRef3(new Map);
|
|
1320
1331
|
const hasInitializedRef = useRef3(false);
|
|
1321
1332
|
const isCreatingTabRef = useRef3(false);
|
|
1322
1333
|
const headerRef = useRef3(null);
|
|
1323
|
-
const [isCompact, setIsCompact] = useState3(false);
|
|
1324
|
-
useEffect3(() => {
|
|
1325
|
-
if (!headerRef.current)
|
|
1326
|
-
return;
|
|
1327
|
-
const observer = new ResizeObserver((entries) => {
|
|
1328
|
-
const width = entries[0]?.contentRect.width ?? 0;
|
|
1329
|
-
setIsCompact(width < 400);
|
|
1330
|
-
});
|
|
1331
|
-
observer.observe(headerRef.current);
|
|
1332
|
-
return () => observer.disconnect();
|
|
1333
|
-
}, []);
|
|
1334
1334
|
const handleTabScrollPositionChange = useCallback((tabId, position) => {
|
|
1335
1335
|
setScrollPositions((prev) => new Map(prev).set(tabId, position));
|
|
1336
1336
|
}, []);
|
|
@@ -1339,12 +1339,6 @@ var TabbedTerminalPanel = ({
|
|
|
1339
1339
|
isAtBottom: true,
|
|
1340
1340
|
isScrollLocked: false
|
|
1341
1341
|
};
|
|
1342
|
-
const activeScrollPosition = activeTabId ? scrollPositions.get(activeTabId) ?? defaultScrollPosition : undefined;
|
|
1343
|
-
const handleScrollToBottom = useCallback(() => {
|
|
1344
|
-
if (activeTabId) {
|
|
1345
|
-
tabRefsMap.current.get(activeTabId)?.scrollToBottom();
|
|
1346
|
-
}
|
|
1347
|
-
}, [activeTabId]);
|
|
1348
1342
|
const handleToggleScrollLock = useCallback(() => {
|
|
1349
1343
|
if (activeTabId) {
|
|
1350
1344
|
tabRefsMap.current.get(activeTabId)?.toggleScrollLock();
|
|
@@ -1708,11 +1702,44 @@ var TabbedTerminalPanel = ({
|
|
|
1708
1702
|
/* @__PURE__ */ jsx4("span", {
|
|
1709
1703
|
title: tab.directory,
|
|
1710
1704
|
children: tab.label
|
|
1705
|
+
}),
|
|
1706
|
+
tab.isActive && /* @__PURE__ */ jsx4("button", {
|
|
1707
|
+
onClick: (e) => {
|
|
1708
|
+
e.stopPropagation();
|
|
1709
|
+
handleToggleScrollLock();
|
|
1710
|
+
},
|
|
1711
|
+
style: {
|
|
1712
|
+
display: "flex",
|
|
1713
|
+
alignItems: "center",
|
|
1714
|
+
justifyContent: "center",
|
|
1715
|
+
width: "16px",
|
|
1716
|
+
height: "16px",
|
|
1717
|
+
borderRadius: "3px",
|
|
1718
|
+
border: "none",
|
|
1719
|
+
backgroundColor: "transparent",
|
|
1720
|
+
cursor: "pointer",
|
|
1721
|
+
color: (scrollPositions.get(tab.id) ?? defaultScrollPosition).isScrollLocked ? theme.colors.success : theme.colors.warning,
|
|
1722
|
+
padding: 0,
|
|
1723
|
+
position: "absolute",
|
|
1724
|
+
right: "8px"
|
|
1725
|
+
},
|
|
1726
|
+
onMouseEnter: (e) => {
|
|
1727
|
+
e.currentTarget.style.backgroundColor = theme.colors.backgroundTertiary;
|
|
1728
|
+
},
|
|
1729
|
+
onMouseLeave: (e) => {
|
|
1730
|
+
e.currentTarget.style.backgroundColor = "transparent";
|
|
1731
|
+
},
|
|
1732
|
+
title: (scrollPositions.get(tab.id) ?? defaultScrollPosition).isScrollLocked ? "Scroll locked" : "Scroll unlocked",
|
|
1733
|
+
children: (scrollPositions.get(tab.id) ?? defaultScrollPosition).isScrollLocked ? /* @__PURE__ */ jsx4(Lock2, {
|
|
1734
|
+
size: 10
|
|
1735
|
+
}) : /* @__PURE__ */ jsx4(Unlock2, {
|
|
1736
|
+
size: 10
|
|
1737
|
+
})
|
|
1711
1738
|
})
|
|
1712
1739
|
]
|
|
1713
1740
|
}, tab.id))
|
|
1714
1741
|
}),
|
|
1715
|
-
/* @__PURE__ */
|
|
1742
|
+
/* @__PURE__ */ jsx4("div", {
|
|
1716
1743
|
style: {
|
|
1717
1744
|
display: "flex",
|
|
1718
1745
|
alignItems: "center",
|
|
@@ -1722,95 +1749,31 @@ var TabbedTerminalPanel = ({
|
|
|
1722
1749
|
borderBottom: `1px solid ${theme.colors.border}`,
|
|
1723
1750
|
boxSizing: "border-box"
|
|
1724
1751
|
},
|
|
1725
|
-
children:
|
|
1726
|
-
|
|
1727
|
-
|
|
1728
|
-
|
|
1729
|
-
|
|
1730
|
-
|
|
1731
|
-
|
|
1732
|
-
|
|
1733
|
-
|
|
1734
|
-
|
|
1735
|
-
|
|
1736
|
-
|
|
1737
|
-
|
|
1738
|
-
|
|
1739
|
-
|
|
1740
|
-
|
|
1741
|
-
|
|
1742
|
-
|
|
1743
|
-
|
|
1744
|
-
|
|
1745
|
-
|
|
1746
|
-
|
|
1747
|
-
|
|
1748
|
-
size: 12
|
|
1749
|
-
}) : /* @__PURE__ */ jsx4(Unlock2, {
|
|
1750
|
-
size: 12
|
|
1751
|
-
}),
|
|
1752
|
-
!isCompact && /* @__PURE__ */ jsx4("span", {
|
|
1753
|
-
children: activeScrollPosition.isScrollLocked ? "Locked" : "Unlocked"
|
|
1754
|
-
})
|
|
1755
|
-
]
|
|
1756
|
-
}),
|
|
1757
|
-
/* @__PURE__ */ jsxs3("button", {
|
|
1758
|
-
onClick: handleScrollToBottom,
|
|
1759
|
-
disabled: activeScrollPosition.isAtBottom,
|
|
1760
|
-
style: {
|
|
1761
|
-
display: "flex",
|
|
1762
|
-
alignItems: "center",
|
|
1763
|
-
gap: "4px",
|
|
1764
|
-
fontSize: "11px",
|
|
1765
|
-
padding: isCompact ? "4px 6px" : "4px 8px",
|
|
1766
|
-
borderRadius: "4px",
|
|
1767
|
-
backgroundColor: activeScrollPosition.isAtBottom ? theme.colors.backgroundHover : theme.colors.accent,
|
|
1768
|
-
color: activeScrollPosition.isAtBottom ? theme.colors.textTertiary : theme.colors.text,
|
|
1769
|
-
border: `1px solid ${theme.colors.border}`,
|
|
1770
|
-
cursor: activeScrollPosition.isAtBottom ? "not-allowed" : "pointer",
|
|
1771
|
-
transition: "opacity 0.2s",
|
|
1772
|
-
opacity: activeScrollPosition.isAtBottom ? 0.5 : 1
|
|
1773
|
-
},
|
|
1774
|
-
onMouseEnter: (e) => !activeScrollPosition.isAtBottom && (e.currentTarget.style.opacity = "0.8"),
|
|
1775
|
-
onMouseLeave: (e) => !activeScrollPosition.isAtBottom && (e.currentTarget.style.opacity = "1"),
|
|
1776
|
-
title: "Scroll to bottom and lock",
|
|
1777
|
-
children: [
|
|
1778
|
-
/* @__PURE__ */ jsx4(ArrowDown2, {
|
|
1779
|
-
size: 12
|
|
1780
|
-
}),
|
|
1781
|
-
!isCompact && /* @__PURE__ */ jsx4("span", {
|
|
1782
|
-
children: "Bottom"
|
|
1783
|
-
})
|
|
1784
|
-
]
|
|
1785
|
-
})
|
|
1786
|
-
]
|
|
1787
|
-
}),
|
|
1788
|
-
/* @__PURE__ */ jsx4("button", {
|
|
1789
|
-
onClick: () => addNewTab(),
|
|
1790
|
-
style: {
|
|
1791
|
-
display: "flex",
|
|
1792
|
-
alignItems: "center",
|
|
1793
|
-
justifyContent: "center",
|
|
1794
|
-
width: "28px",
|
|
1795
|
-
height: "28px",
|
|
1796
|
-
border: "none",
|
|
1797
|
-
borderRadius: "4px",
|
|
1798
|
-
backgroundColor: "transparent",
|
|
1799
|
-
cursor: "pointer",
|
|
1800
|
-
color: theme.colors.textSecondary
|
|
1801
|
-
},
|
|
1802
|
-
onMouseEnter: (e) => {
|
|
1803
|
-
e.currentTarget.style.backgroundColor = theme.colors.backgroundTertiary;
|
|
1804
|
-
},
|
|
1805
|
-
onMouseLeave: (e) => {
|
|
1806
|
-
e.currentTarget.style.backgroundColor = "transparent";
|
|
1807
|
-
},
|
|
1808
|
-
title: "New terminal (Cmd+T)",
|
|
1809
|
-
children: /* @__PURE__ */ jsx4(Plus, {
|
|
1810
|
-
size: 14
|
|
1811
|
-
})
|
|
1752
|
+
children: /* @__PURE__ */ jsx4("button", {
|
|
1753
|
+
onClick: () => addNewTab(),
|
|
1754
|
+
style: {
|
|
1755
|
+
display: "flex",
|
|
1756
|
+
alignItems: "center",
|
|
1757
|
+
justifyContent: "center",
|
|
1758
|
+
width: "28px",
|
|
1759
|
+
height: "28px",
|
|
1760
|
+
border: "none",
|
|
1761
|
+
borderRadius: "4px",
|
|
1762
|
+
backgroundColor: "transparent",
|
|
1763
|
+
cursor: "pointer",
|
|
1764
|
+
color: theme.colors.textSecondary
|
|
1765
|
+
},
|
|
1766
|
+
onMouseEnter: (e) => {
|
|
1767
|
+
e.currentTarget.style.backgroundColor = theme.colors.backgroundTertiary;
|
|
1768
|
+
},
|
|
1769
|
+
onMouseLeave: (e) => {
|
|
1770
|
+
e.currentTarget.style.backgroundColor = "transparent";
|
|
1771
|
+
},
|
|
1772
|
+
title: "New terminal (Cmd+T)",
|
|
1773
|
+
children: /* @__PURE__ */ jsx4(Plus, {
|
|
1774
|
+
size: 14
|
|
1812
1775
|
})
|
|
1813
|
-
|
|
1776
|
+
})
|
|
1814
1777
|
})
|
|
1815
1778
|
]
|
|
1816
1779
|
}),
|
|
@@ -1882,6 +1845,154 @@ var TabbedTerminalPanel = ({
|
|
|
1882
1845
|
});
|
|
1883
1846
|
};
|
|
1884
1847
|
TabbedTerminalPanel.displayName = "TabbedTerminalPanel";
|
|
1848
|
+
// src/tools/index.ts
|
|
1849
|
+
var createTerminalSessionTool = {
|
|
1850
|
+
name: "create_terminal_session",
|
|
1851
|
+
description: "Creates a new terminal session in the specified directory",
|
|
1852
|
+
inputs: {
|
|
1853
|
+
type: "object",
|
|
1854
|
+
properties: {
|
|
1855
|
+
cwd: {
|
|
1856
|
+
type: "string",
|
|
1857
|
+
description: "The working directory for the terminal session"
|
|
1858
|
+
},
|
|
1859
|
+
name: {
|
|
1860
|
+
type: "string",
|
|
1861
|
+
description: "Optional name for the terminal session"
|
|
1862
|
+
}
|
|
1863
|
+
},
|
|
1864
|
+
required: ["cwd"]
|
|
1865
|
+
},
|
|
1866
|
+
outputs: {
|
|
1867
|
+
type: "object",
|
|
1868
|
+
properties: {
|
|
1869
|
+
success: { type: "boolean" },
|
|
1870
|
+
sessionId: { type: "string" }
|
|
1871
|
+
}
|
|
1872
|
+
},
|
|
1873
|
+
tags: ["terminal", "session", "create"],
|
|
1874
|
+
tool_call_template: {
|
|
1875
|
+
call_template_type: "panel_event",
|
|
1876
|
+
event_type: "industry-theme.terminal-panel:create-session"
|
|
1877
|
+
}
|
|
1878
|
+
};
|
|
1879
|
+
var writeToTerminalTool = {
|
|
1880
|
+
name: "write_to_terminal",
|
|
1881
|
+
description: "Writes data to an active terminal session",
|
|
1882
|
+
inputs: {
|
|
1883
|
+
type: "object",
|
|
1884
|
+
properties: {
|
|
1885
|
+
sessionId: {
|
|
1886
|
+
type: "string",
|
|
1887
|
+
description: "The ID of the terminal session to write to"
|
|
1888
|
+
},
|
|
1889
|
+
data: {
|
|
1890
|
+
type: "string",
|
|
1891
|
+
description: "The data to write to the terminal"
|
|
1892
|
+
}
|
|
1893
|
+
},
|
|
1894
|
+
required: ["sessionId", "data"]
|
|
1895
|
+
},
|
|
1896
|
+
outputs: {
|
|
1897
|
+
type: "object",
|
|
1898
|
+
properties: {
|
|
1899
|
+
success: { type: "boolean" }
|
|
1900
|
+
}
|
|
1901
|
+
},
|
|
1902
|
+
tags: ["terminal", "write", "input"],
|
|
1903
|
+
tool_call_template: {
|
|
1904
|
+
call_template_type: "panel_event",
|
|
1905
|
+
event_type: "industry-theme.terminal-panel:write"
|
|
1906
|
+
}
|
|
1907
|
+
};
|
|
1908
|
+
var closeTerminalSessionTool = {
|
|
1909
|
+
name: "close_terminal_session",
|
|
1910
|
+
description: "Closes an active terminal session",
|
|
1911
|
+
inputs: {
|
|
1912
|
+
type: "object",
|
|
1913
|
+
properties: {
|
|
1914
|
+
sessionId: {
|
|
1915
|
+
type: "string",
|
|
1916
|
+
description: "The ID of the terminal session to close"
|
|
1917
|
+
}
|
|
1918
|
+
},
|
|
1919
|
+
required: ["sessionId"]
|
|
1920
|
+
},
|
|
1921
|
+
outputs: {
|
|
1922
|
+
type: "object",
|
|
1923
|
+
properties: {
|
|
1924
|
+
success: { type: "boolean" }
|
|
1925
|
+
}
|
|
1926
|
+
},
|
|
1927
|
+
tags: ["terminal", "session", "close"],
|
|
1928
|
+
tool_call_template: {
|
|
1929
|
+
call_template_type: "panel_event",
|
|
1930
|
+
event_type: "industry-theme.terminal-panel:close-session"
|
|
1931
|
+
}
|
|
1932
|
+
};
|
|
1933
|
+
var clearTerminalTool = {
|
|
1934
|
+
name: "clear_terminal",
|
|
1935
|
+
description: "Clears the terminal screen",
|
|
1936
|
+
inputs: {
|
|
1937
|
+
type: "object",
|
|
1938
|
+
properties: {
|
|
1939
|
+
sessionId: {
|
|
1940
|
+
type: "string",
|
|
1941
|
+
description: "The ID of the terminal session to clear"
|
|
1942
|
+
}
|
|
1943
|
+
},
|
|
1944
|
+
required: ["sessionId"]
|
|
1945
|
+
},
|
|
1946
|
+
outputs: {
|
|
1947
|
+
type: "object",
|
|
1948
|
+
properties: {
|
|
1949
|
+
success: { type: "boolean" }
|
|
1950
|
+
}
|
|
1951
|
+
},
|
|
1952
|
+
tags: ["terminal", "clear"],
|
|
1953
|
+
tool_call_template: {
|
|
1954
|
+
call_template_type: "panel_event",
|
|
1955
|
+
event_type: "industry-theme.terminal-panel:clear"
|
|
1956
|
+
}
|
|
1957
|
+
};
|
|
1958
|
+
var focusTerminalTool = {
|
|
1959
|
+
name: "focus_terminal",
|
|
1960
|
+
description: "Focuses the terminal panel and brings it to the foreground",
|
|
1961
|
+
inputs: {
|
|
1962
|
+
type: "object",
|
|
1963
|
+
properties: {
|
|
1964
|
+
sessionId: {
|
|
1965
|
+
type: "string",
|
|
1966
|
+
description: "The ID of the terminal session to focus"
|
|
1967
|
+
}
|
|
1968
|
+
}
|
|
1969
|
+
},
|
|
1970
|
+
outputs: {
|
|
1971
|
+
type: "object",
|
|
1972
|
+
properties: {
|
|
1973
|
+
success: { type: "boolean" }
|
|
1974
|
+
}
|
|
1975
|
+
},
|
|
1976
|
+
tags: ["terminal", "focus", "navigation"],
|
|
1977
|
+
tool_call_template: {
|
|
1978
|
+
call_template_type: "panel_event",
|
|
1979
|
+
event_type: "industry-theme.terminal-panel:focus"
|
|
1980
|
+
}
|
|
1981
|
+
};
|
|
1982
|
+
var terminalPanelTools = [
|
|
1983
|
+
createTerminalSessionTool,
|
|
1984
|
+
writeToTerminalTool,
|
|
1985
|
+
closeTerminalSessionTool,
|
|
1986
|
+
clearTerminalTool,
|
|
1987
|
+
focusTerminalTool
|
|
1988
|
+
];
|
|
1989
|
+
var terminalPanelToolsMetadata = {
|
|
1990
|
+
id: "industry-theme.terminal-panel",
|
|
1991
|
+
name: "Terminal Panel",
|
|
1992
|
+
description: "Tools provided by the xterm terminal panel extension",
|
|
1993
|
+
tools: terminalPanelTools
|
|
1994
|
+
};
|
|
1995
|
+
|
|
1885
1996
|
// src/panel-exports.ts
|
|
1886
1997
|
var panels = [
|
|
1887
1998
|
{
|
|
@@ -1892,7 +2003,8 @@ var panels = [
|
|
|
1892
2003
|
version: "0.1.0",
|
|
1893
2004
|
author: "Principal",
|
|
1894
2005
|
description: "Integrated terminal emulator with industry theming",
|
|
1895
|
-
slices: ["terminal"]
|
|
2006
|
+
slices: ["terminal"],
|
|
2007
|
+
tools: terminalPanelTools
|
|
1896
2008
|
},
|
|
1897
2009
|
component: TerminalPanel,
|
|
1898
2010
|
onMount: async (context) => {
|
|
@@ -1913,7 +2025,10 @@ var onPackageUnload = async () => {
|
|
|
1913
2025
|
console.log("Panel package unloading - Terminal Panel Extension");
|
|
1914
2026
|
};
|
|
1915
2027
|
export {
|
|
2028
|
+
writeToTerminalTool,
|
|
1916
2029
|
useThemedTerminal,
|
|
2030
|
+
terminalPanelToolsMetadata,
|
|
2031
|
+
terminalPanelTools,
|
|
1917
2032
|
panels,
|
|
1918
2033
|
onPackageUnload,
|
|
1919
2034
|
onPackageLoad,
|
|
@@ -1925,7 +2040,11 @@ export {
|
|
|
1925
2040
|
getTerminalDirectory,
|
|
1926
2041
|
getTerminalCSSVariables,
|
|
1927
2042
|
getRepositoryPath,
|
|
2043
|
+
focusTerminalTool,
|
|
1928
2044
|
createTerminalTheme,
|
|
2045
|
+
createTerminalSessionTool,
|
|
2046
|
+
closeTerminalSessionTool,
|
|
2047
|
+
clearTerminalTool,
|
|
1929
2048
|
ThemedTerminalWithProvider,
|
|
1930
2049
|
ThemedTerminal,
|
|
1931
2050
|
TerminalPanel,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"panelContext.d.ts","sourceRoot":"","sources":["../../../src/mocks/panelContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
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,oBAwCD,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,CA+CA,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { TabbedTerminalPanel } from './panels/TabbedTerminalPanel';
|
|
2
1
|
import type { PanelDefinition } from './panel-types';
|
|
2
|
+
import { TabbedTerminalPanel } from './panels/TabbedTerminalPanel';
|
|
3
3
|
export declare const panels: PanelDefinition[];
|
|
4
4
|
export declare const onPackageLoad: () => Promise<void>;
|
|
5
5
|
export declare const onPackageUnload: () => Promise<void>;
|
|
6
6
|
export { TabbedTerminalPanel };
|
|
7
|
+
export { terminalPanelTools, terminalPanelToolsMetadata, createTerminalSessionTool, writeToTerminalTool, closeTerminalSessionTool, clearTerminalTool, focusTerminalTool, } from './tools';
|
|
7
8
|
//# sourceMappingURL=panel-exports.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"panel-exports.d.ts","sourceRoot":"","sources":["../../src/panel-exports.ts"],"names":[],"mappings":"
|
|
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;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAQnE,eAAO,MAAM,MAAM,EAAE,eAAe,EAmCnC,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"}
|
|
@@ -86,5 +86,6 @@ export interface TabbedTerminalPanelProps extends Omit<TerminalPanelProps, 'term
|
|
|
86
86
|
initialTabs?: TerminalTab[];
|
|
87
87
|
showAllTerminals?: boolean;
|
|
88
88
|
onShowAllTerminalsChange?: (showAll: boolean) => void;
|
|
89
|
+
tabLabelPrefix?: string;
|
|
89
90
|
}
|
|
90
91
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/panel-types/index.ts"],"names":[],"mappings":"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
|
|
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":"
|
|
1
|
+
{"version":3,"file":"TabbedTerminalPanel.d.ts","sourceRoot":"","sources":["../../../src/panels/TabbedTerminalPanel.tsx"],"names":[],"mappings":"AAEA,OAAO,KAKN,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EACV,wBAAwB,EAGzB,MAAM,gBAAgB,CAAC;AAuBxB,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,gBAAgB,EAAE,MAAM,IAAI,CAAC;CAC9B;AA+TD,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAsrBlE,CAAC"}
|
|
@@ -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;
|
|
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,CAyZtD,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { PanelTool, PanelToolsMetadata } from '@principal-ade/utcp-panel-event';
|
|
2
|
+
export declare const createTerminalSessionTool: PanelTool;
|
|
3
|
+
export declare const writeToTerminalTool: PanelTool;
|
|
4
|
+
export declare const closeTerminalSessionTool: PanelTool;
|
|
5
|
+
export declare const clearTerminalTool: PanelTool;
|
|
6
|
+
export declare const focusTerminalTool: PanelTool;
|
|
7
|
+
export declare const terminalPanelTools: PanelTool[];
|
|
8
|
+
export declare const terminalPanelToolsMetadata: PanelToolsMetadata;
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/index.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAKrF,eAAO,MAAM,yBAAyB,EAAE,SA6BvC,CAAC;AAKF,eAAO,MAAM,mBAAmB,EAAE,SA4BjC,CAAC;AAKF,eAAO,MAAM,wBAAwB,EAAE,SAwBtC,CAAC;AAKF,eAAO,MAAM,iBAAiB,EAAE,SAwB/B,CAAC;AAKF,eAAO,MAAM,iBAAiB,EAAE,SAuB/B,CAAC;AAKF,eAAO,MAAM,kBAAkB,EAAE,SAAS,EAMzC,CAAC;AAKF,eAAO,MAAM,0BAA0B,EAAE,kBAKxC,CAAC"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
// src/tools/index.ts
|
|
2
|
+
var createTerminalSessionTool = {
|
|
3
|
+
name: "create_terminal_session",
|
|
4
|
+
description: "Creates a new terminal session in the specified directory",
|
|
5
|
+
inputs: {
|
|
6
|
+
type: "object",
|
|
7
|
+
properties: {
|
|
8
|
+
cwd: {
|
|
9
|
+
type: "string",
|
|
10
|
+
description: "The working directory for the terminal session"
|
|
11
|
+
},
|
|
12
|
+
name: {
|
|
13
|
+
type: "string",
|
|
14
|
+
description: "Optional name for the terminal session"
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
required: ["cwd"]
|
|
18
|
+
},
|
|
19
|
+
outputs: {
|
|
20
|
+
type: "object",
|
|
21
|
+
properties: {
|
|
22
|
+
success: { type: "boolean" },
|
|
23
|
+
sessionId: { type: "string" }
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
tags: ["terminal", "session", "create"],
|
|
27
|
+
tool_call_template: {
|
|
28
|
+
call_template_type: "panel_event",
|
|
29
|
+
event_type: "industry-theme.terminal-panel:create-session"
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
var writeToTerminalTool = {
|
|
33
|
+
name: "write_to_terminal",
|
|
34
|
+
description: "Writes data to an active terminal session",
|
|
35
|
+
inputs: {
|
|
36
|
+
type: "object",
|
|
37
|
+
properties: {
|
|
38
|
+
sessionId: {
|
|
39
|
+
type: "string",
|
|
40
|
+
description: "The ID of the terminal session to write to"
|
|
41
|
+
},
|
|
42
|
+
data: {
|
|
43
|
+
type: "string",
|
|
44
|
+
description: "The data to write to the terminal"
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
required: ["sessionId", "data"]
|
|
48
|
+
},
|
|
49
|
+
outputs: {
|
|
50
|
+
type: "object",
|
|
51
|
+
properties: {
|
|
52
|
+
success: { type: "boolean" }
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
tags: ["terminal", "write", "input"],
|
|
56
|
+
tool_call_template: {
|
|
57
|
+
call_template_type: "panel_event",
|
|
58
|
+
event_type: "industry-theme.terminal-panel:write"
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
var closeTerminalSessionTool = {
|
|
62
|
+
name: "close_terminal_session",
|
|
63
|
+
description: "Closes an active terminal session",
|
|
64
|
+
inputs: {
|
|
65
|
+
type: "object",
|
|
66
|
+
properties: {
|
|
67
|
+
sessionId: {
|
|
68
|
+
type: "string",
|
|
69
|
+
description: "The ID of the terminal session to close"
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
required: ["sessionId"]
|
|
73
|
+
},
|
|
74
|
+
outputs: {
|
|
75
|
+
type: "object",
|
|
76
|
+
properties: {
|
|
77
|
+
success: { type: "boolean" }
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
tags: ["terminal", "session", "close"],
|
|
81
|
+
tool_call_template: {
|
|
82
|
+
call_template_type: "panel_event",
|
|
83
|
+
event_type: "industry-theme.terminal-panel:close-session"
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
var clearTerminalTool = {
|
|
87
|
+
name: "clear_terminal",
|
|
88
|
+
description: "Clears the terminal screen",
|
|
89
|
+
inputs: {
|
|
90
|
+
type: "object",
|
|
91
|
+
properties: {
|
|
92
|
+
sessionId: {
|
|
93
|
+
type: "string",
|
|
94
|
+
description: "The ID of the terminal session to clear"
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
required: ["sessionId"]
|
|
98
|
+
},
|
|
99
|
+
outputs: {
|
|
100
|
+
type: "object",
|
|
101
|
+
properties: {
|
|
102
|
+
success: { type: "boolean" }
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
tags: ["terminal", "clear"],
|
|
106
|
+
tool_call_template: {
|
|
107
|
+
call_template_type: "panel_event",
|
|
108
|
+
event_type: "industry-theme.terminal-panel:clear"
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
var focusTerminalTool = {
|
|
112
|
+
name: "focus_terminal",
|
|
113
|
+
description: "Focuses the terminal panel and brings it to the foreground",
|
|
114
|
+
inputs: {
|
|
115
|
+
type: "object",
|
|
116
|
+
properties: {
|
|
117
|
+
sessionId: {
|
|
118
|
+
type: "string",
|
|
119
|
+
description: "The ID of the terminal session to focus"
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
outputs: {
|
|
124
|
+
type: "object",
|
|
125
|
+
properties: {
|
|
126
|
+
success: { type: "boolean" }
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
tags: ["terminal", "focus", "navigation"],
|
|
130
|
+
tool_call_template: {
|
|
131
|
+
call_template_type: "panel_event",
|
|
132
|
+
event_type: "industry-theme.terminal-panel:focus"
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
var terminalPanelTools = [
|
|
136
|
+
createTerminalSessionTool,
|
|
137
|
+
writeToTerminalTool,
|
|
138
|
+
closeTerminalSessionTool,
|
|
139
|
+
clearTerminalTool,
|
|
140
|
+
focusTerminalTool
|
|
141
|
+
];
|
|
142
|
+
var terminalPanelToolsMetadata = {
|
|
143
|
+
id: "industry-theme.terminal-panel",
|
|
144
|
+
name: "Terminal Panel",
|
|
145
|
+
description: "Tools provided by the xterm terminal panel extension",
|
|
146
|
+
tools: terminalPanelTools
|
|
147
|
+
};
|
|
148
|
+
export {
|
|
149
|
+
writeToTerminalTool,
|
|
150
|
+
terminalPanelToolsMetadata,
|
|
151
|
+
terminalPanelTools,
|
|
152
|
+
focusTerminalTool,
|
|
153
|
+
createTerminalSessionTool,
|
|
154
|
+
closeTerminalSessionTool,
|
|
155
|
+
clearTerminalTool
|
|
156
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@industry-theme/xterm-terminal-panel",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "Industry-themed xterm.js terminal components with panel framework integration",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -13,12 +13,19 @@
|
|
|
13
13
|
"require": "./dist/index.js",
|
|
14
14
|
"default": "./dist/index.js"
|
|
15
15
|
},
|
|
16
|
+
"./tools": {
|
|
17
|
+
"types": "./dist/tools/index.d.ts",
|
|
18
|
+
"import": "./dist/tools.bundle.js",
|
|
19
|
+
"require": "./dist/tools.bundle.js",
|
|
20
|
+
"default": "./dist/tools.bundle.js"
|
|
21
|
+
},
|
|
16
22
|
"./styles.css": "./dist/styles.css",
|
|
17
23
|
"./package.json": "./package.json"
|
|
18
24
|
},
|
|
19
25
|
"scripts": {
|
|
20
|
-
"build": "bun run clean && bun run build:esm && bun run build:types && bun run build:styles",
|
|
26
|
+
"build": "bun run clean && bun run build:esm && bun run build:tools && bun run build:types && bun run build:styles",
|
|
21
27
|
"build:esm": "NODE_ENV=production bun build ./index.ts --outdir ./dist --entry-naming [dir]/[name].[ext] --format esm --target browser --external react --external react-dom --external @xterm/xterm --external @xterm/addon-fit --external @xterm/addon-search --external @xterm/addon-web-links --external @xterm/addon-unicode11 --external @xterm/addon-webgl --external @principal-ade/industry-theme --external @principal-ade/panel-framework-core --external lucide-react --external clsx",
|
|
28
|
+
"build:tools": "bun build ./src/tools/index.ts --outfile ./dist/tools.bundle.js --format esm --target browser",
|
|
22
29
|
"build:types": "tsc --project tsconfig.build.json --emitDeclarationOnly --declaration --declarationMap",
|
|
23
30
|
"build:styles": "cp src/styles/terminal-theme.css dist/styles.css",
|
|
24
31
|
"dev": "bun run build --watch",
|
|
@@ -41,13 +48,15 @@
|
|
|
41
48
|
"theme",
|
|
42
49
|
"industry",
|
|
43
50
|
"panel",
|
|
44
|
-
"panel-framework"
|
|
51
|
+
"panel-framework",
|
|
52
|
+
"panel-extension"
|
|
45
53
|
],
|
|
46
54
|
"author": "Principal ADE Team",
|
|
47
55
|
"license": "MIT",
|
|
48
56
|
"dependencies": {
|
|
49
|
-
"@principal-ade/industry-theme": "^0.1.
|
|
50
|
-
"@principal-ade/panel-framework-core": "^0.1.
|
|
57
|
+
"@principal-ade/industry-theme": "^0.1.3",
|
|
58
|
+
"@principal-ade/panel-framework-core": "^0.1.5",
|
|
59
|
+
"@principal-ade/utcp-panel-event": "^0.1.0",
|
|
51
60
|
"clsx": "^2.1.1"
|
|
52
61
|
},
|
|
53
62
|
"peerDependencies": {
|
|
@@ -73,15 +82,12 @@
|
|
|
73
82
|
}
|
|
74
83
|
},
|
|
75
84
|
"devDependencies": {
|
|
85
|
+
"@chromatic-com/storybook": "^4.1.3",
|
|
76
86
|
"@eslint/js": "^9.32.0",
|
|
77
|
-
"@storybook/addon-
|
|
78
|
-
"@storybook/addon-
|
|
79
|
-
"@storybook/addon-
|
|
80
|
-
"@storybook/
|
|
81
|
-
"@storybook/blocks": "^8.6.0",
|
|
82
|
-
"@storybook/react": "^8.6.0",
|
|
83
|
-
"@storybook/react-vite": "^8.6.0",
|
|
84
|
-
"@storybook/test": "^8.6.0",
|
|
87
|
+
"@storybook/addon-docs": "10.1.2",
|
|
88
|
+
"@storybook/addon-links": "10.1.2",
|
|
89
|
+
"@storybook/addon-onboarding": "10.1.2",
|
|
90
|
+
"@storybook/react-vite": "10.1.2",
|
|
85
91
|
"@types/bun": "latest",
|
|
86
92
|
"@types/node": "^22.15.26",
|
|
87
93
|
"@types/react": "^19.1.12",
|
|
@@ -102,12 +108,12 @@
|
|
|
102
108
|
"eslint-plugin-import": "^2.32.0",
|
|
103
109
|
"eslint-plugin-react": "^7.37.2",
|
|
104
110
|
"eslint-plugin-react-hooks": "^5.0.0",
|
|
105
|
-
"eslint-plugin-storybook": "
|
|
111
|
+
"eslint-plugin-storybook": "10.1.2",
|
|
106
112
|
"lucide-react": "^0.552.0",
|
|
107
113
|
"prettier": "^3.6.2",
|
|
108
114
|
"react": "^19.1.1",
|
|
109
115
|
"react-dom": "^19.1.1",
|
|
110
|
-
"storybook": "
|
|
116
|
+
"storybook": "10.1.2",
|
|
111
117
|
"typescript": "^5.0.4",
|
|
112
118
|
"typescript-eslint": "^8.38.0",
|
|
113
119
|
"vite": "^6.0.7"
|