@industry-theme/xterm-terminal-panel 0.4.6 → 0.5.1
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.css +50 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +263 -117
- package/dist/src/components/ThemedTerminal.d.ts.map +1 -1
- package/dist/src/components/WorkingOverlay.d.ts +11 -0
- package/dist/src/components/WorkingOverlay.d.ts.map +1 -0
- package/dist/src/mocks/panelContext.d.ts.map +1 -1
- package/dist/src/panel-types/index.d.ts +15 -1
- package/dist/src/panel-types/index.d.ts.map +1 -1
- package/dist/src/panels/TabbedTerminalPanel.d.ts.map +1 -1
- package/dist/src/types/tab.d.ts +1 -1
- package/dist/src/types/tab.d.ts.map +1 -1
- package/dist/src/types/terminal.types.d.ts +3 -0
- package/dist/src/types/terminal.types.d.ts.map +1 -1
- package/dist/styles.css +54 -0
- package/package.json +6 -5
package/dist/index.css
CHANGED
|
@@ -116,3 +116,53 @@
|
|
|
116
116
|
--terminal-font-family: "Menlo", "Monaco", "Courier New", monospace;
|
|
117
117
|
--terminal-font-size: 14px;
|
|
118
118
|
}
|
|
119
|
+
|
|
120
|
+
@keyframes blinds-down {
|
|
121
|
+
0% {
|
|
122
|
+
transform: translateY(-100%);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
100% {
|
|
126
|
+
transform: translateY(0);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
@keyframes blinds-up {
|
|
131
|
+
0% {
|
|
132
|
+
transform: translateY(0);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
100% {
|
|
136
|
+
transform: translateY(-100%);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
@keyframes pulse {
|
|
141
|
+
0%, 80%, 100% {
|
|
142
|
+
opacity: .3;
|
|
143
|
+
transform: scale(.8);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
40% {
|
|
147
|
+
opacity: 1;
|
|
148
|
+
transform: scale(1);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
@keyframes spin {
|
|
153
|
+
from {
|
|
154
|
+
transform: rotate(0);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
to {
|
|
158
|
+
transform: rotate(360deg);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
.terminal-working-overlay {
|
|
163
|
+
animation: blinds-down .3s ease-out forwards;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
.terminal-working-overlay.closing {
|
|
167
|
+
animation: blinds-up .3s ease-in forwards;
|
|
168
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export { ThemedTerminal } from './src/components/ThemedTerminal';
|
|
2
2
|
export { ThemedTerminalWithProvider } from './src/components/ThemedTerminalWithProvider';
|
|
3
|
+
export { WorkingOverlay } from './src/components/WorkingOverlay';
|
|
4
|
+
export type { WorkingOverlayProps } from './src/components/WorkingOverlay';
|
|
3
5
|
export type { ThemedTerminalProps, ThemedTerminalRef, TerminalHeaderBadge, TerminalOverlayState, TerminalScrollPosition, LinkClickModifiers, } from './src/types/terminal.types';
|
|
4
6
|
export { useThemedTerminal } from './src/hooks/useThemedTerminal';
|
|
5
7
|
export type { UseThemedTerminalReturn } from './src/hooks/useThemedTerminal';
|
|
@@ -15,7 +17,7 @@ export { TabbedTerminalPanel } from './src/panels/TabbedTerminalPanel';
|
|
|
15
17
|
export type { TerminalTabContentRef } from './src/panels/TabbedTerminalPanel';
|
|
16
18
|
export { panels, onPackageLoad, onPackageUnload } from './src/panel-exports';
|
|
17
19
|
export { terminalPanelTools, terminalPanelToolsMetadata, createTerminalSessionTool, writeToTerminalTool, closeTerminalSessionTool, clearTerminalTool, focusTerminalTool, } from './src/panel-exports';
|
|
18
|
-
export type { PanelDefinition, PanelMetadata, PanelComponentProps, PanelContextValue, PanelActions, PanelEventEmitter, TerminalSessionInfo, CreateTerminalSessionOptions, TerminalPanelActions, TerminalEventType, TerminalLinkClickEvent, TerminalScope, TerminalPanelProps, TerminalTab, TabbedTerminalPanelProps, OwnershipStatus, OwnershipResult, PortReadyData, } from './src/panel-types';
|
|
20
|
+
export type { PanelDefinition, PanelMetadata, PanelComponentProps, PanelContextValue, PanelActions, PanelEventEmitter, TerminalSessionInfo, CreateTerminalSessionOptions, TerminalPanelActions, TerminalEventType, TerminalLinkClickEvent, TerminalScope, TerminalPanelProps, TerminalTab, TabbedTerminalPanelProps, OwnershipStatus, OwnershipResult, PortReadyData, TerminalWorkingState, TerminalActivityType, TerminalActivityChangedEvent, } from './src/panel-types';
|
|
19
21
|
export { getTerminalSessions, getTerminalSession, isTerminalLoading, getRepositoryPath, getWorkspacePath, getTerminalDirectory, getTerminalSlice, } from './src/panel-types';
|
|
20
22
|
export type { Theme } from '@principal-ade/industry-theme';
|
|
21
23
|
export type { Terminal, ITheme as XTermTheme, ITerminalOptions } from '@xterm/xterm';
|
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;
|
|
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;AAG3E,YAAY,EACV,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,GACnB,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,MAAM,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAG5D,YAAY,EACV,GAAG,EACH,OAAO,EACP,SAAS,EACT,WAAW,EACX,cAAc,EACf,MAAM,iBAAiB,CAAC;AAIzB,YAAY,EACV,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,YAAY,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AAO1F,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,sBAAsB,EACtB,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,wBAAwB,EACxB,eAAe,EACf,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,oBAAoB,EACpB,4BAA4B,GAC7B,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
|
@@ -65,8 +65,101 @@ function getTerminalCSSVariables(theme) {
|
|
|
65
65
|
};
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
+
// src/components/WorkingOverlay.tsx
|
|
69
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
70
|
+
var WorkingOverlay = ({
|
|
71
|
+
theme,
|
|
72
|
+
message = "Agent working...",
|
|
73
|
+
subtitle,
|
|
74
|
+
isClosing = false,
|
|
75
|
+
onCloseComplete
|
|
76
|
+
}) => {
|
|
77
|
+
const handleAnimationEnd = (e) => {
|
|
78
|
+
if (isClosing && e.animationName === "blinds-up" && onCloseComplete) {
|
|
79
|
+
onCloseComplete();
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
83
|
+
className: `terminal-working-overlay${isClosing ? " closing" : ""}`,
|
|
84
|
+
onAnimationEnd: handleAnimationEnd,
|
|
85
|
+
style: {
|
|
86
|
+
position: "absolute",
|
|
87
|
+
top: 0,
|
|
88
|
+
left: 0,
|
|
89
|
+
right: 0,
|
|
90
|
+
bottom: 0,
|
|
91
|
+
display: "flex",
|
|
92
|
+
flexDirection: "column",
|
|
93
|
+
alignItems: "center",
|
|
94
|
+
justifyContent: "center",
|
|
95
|
+
backgroundColor: theme.colors.background,
|
|
96
|
+
gap: "12px",
|
|
97
|
+
padding: "32px",
|
|
98
|
+
zIndex: 10
|
|
99
|
+
},
|
|
100
|
+
children: [
|
|
101
|
+
/* @__PURE__ */ jsxs("div", {
|
|
102
|
+
style: {
|
|
103
|
+
display: "flex",
|
|
104
|
+
gap: "6px",
|
|
105
|
+
marginBottom: "8px"
|
|
106
|
+
},
|
|
107
|
+
children: [
|
|
108
|
+
/* @__PURE__ */ jsx("div", {
|
|
109
|
+
className: "working-dot",
|
|
110
|
+
style: {
|
|
111
|
+
width: "8px",
|
|
112
|
+
height: "8px",
|
|
113
|
+
borderRadius: "50%",
|
|
114
|
+
backgroundColor: theme.colors.primary,
|
|
115
|
+
animation: "pulse 1.4s ease-in-out infinite"
|
|
116
|
+
}
|
|
117
|
+
}),
|
|
118
|
+
/* @__PURE__ */ jsx("div", {
|
|
119
|
+
className: "working-dot",
|
|
120
|
+
style: {
|
|
121
|
+
width: "8px",
|
|
122
|
+
height: "8px",
|
|
123
|
+
borderRadius: "50%",
|
|
124
|
+
backgroundColor: theme.colors.primary,
|
|
125
|
+
animation: "pulse 1.4s ease-in-out 0.2s infinite"
|
|
126
|
+
}
|
|
127
|
+
}),
|
|
128
|
+
/* @__PURE__ */ jsx("div", {
|
|
129
|
+
className: "working-dot",
|
|
130
|
+
style: {
|
|
131
|
+
width: "8px",
|
|
132
|
+
height: "8px",
|
|
133
|
+
borderRadius: "50%",
|
|
134
|
+
backgroundColor: theme.colors.primary,
|
|
135
|
+
animation: "pulse 1.4s ease-in-out 0.4s infinite"
|
|
136
|
+
}
|
|
137
|
+
})
|
|
138
|
+
]
|
|
139
|
+
}),
|
|
140
|
+
/* @__PURE__ */ jsx("div", {
|
|
141
|
+
style: {
|
|
142
|
+
fontSize: "15px",
|
|
143
|
+
fontWeight: "500",
|
|
144
|
+
color: theme.colors.text,
|
|
145
|
+
textAlign: "center"
|
|
146
|
+
},
|
|
147
|
+
children: message
|
|
148
|
+
}),
|
|
149
|
+
subtitle && /* @__PURE__ */ jsx("div", {
|
|
150
|
+
style: {
|
|
151
|
+
fontSize: "13px",
|
|
152
|
+
color: theme.colors.textSecondary,
|
|
153
|
+
textAlign: "center"
|
|
154
|
+
},
|
|
155
|
+
children: subtitle
|
|
156
|
+
})
|
|
157
|
+
]
|
|
158
|
+
});
|
|
159
|
+
};
|
|
160
|
+
|
|
68
161
|
// src/components/ThemedTerminal.tsx
|
|
69
|
-
import { jsx, jsxs, Fragment } from "react/jsx-runtime";
|
|
162
|
+
import { jsx as jsx2, jsxs as jsxs2, Fragment } from "react/jsx-runtime";
|
|
70
163
|
var SCROLL_DEBOUNCE_MS = 1000;
|
|
71
164
|
var DEBUG_RESIZE = true;
|
|
72
165
|
var ThemedTerminal = forwardRef(({
|
|
@@ -90,6 +183,9 @@ var ThemedTerminal = forwardRef(({
|
|
|
90
183
|
onPopOut,
|
|
91
184
|
onShortcut,
|
|
92
185
|
overlayState,
|
|
186
|
+
isWorking = false,
|
|
187
|
+
workingMessage = "Agent working...",
|
|
188
|
+
workingSubtitle,
|
|
93
189
|
cursorBlink = true,
|
|
94
190
|
cursorStyle = "block",
|
|
95
191
|
scrollback = 1e4,
|
|
@@ -100,6 +196,8 @@ var ThemedTerminal = forwardRef(({
|
|
|
100
196
|
}, ref) => {
|
|
101
197
|
const terminalRef = useRef(null);
|
|
102
198
|
const [terminal, setTerminal] = useState(null);
|
|
199
|
+
const [showWorkingOverlay, setShowWorkingOverlay] = useState(isWorking);
|
|
200
|
+
const [isClosingOverlay, setIsClosingOverlay] = useState(false);
|
|
103
201
|
const fitAddonRef = useRef(null);
|
|
104
202
|
const searchAddonRef = useRef(null);
|
|
105
203
|
const webglAddonRef = useRef(null);
|
|
@@ -111,6 +209,18 @@ var ThemedTerminal = forwardRef(({
|
|
|
111
209
|
useEffect(() => {
|
|
112
210
|
onShortcutRef.current = onShortcut;
|
|
113
211
|
}, [onShortcut]);
|
|
212
|
+
useEffect(() => {
|
|
213
|
+
if (isWorking) {
|
|
214
|
+
setIsClosingOverlay(false);
|
|
215
|
+
setShowWorkingOverlay(true);
|
|
216
|
+
} else if (showWorkingOverlay) {
|
|
217
|
+
setIsClosingOverlay(true);
|
|
218
|
+
}
|
|
219
|
+
}, [isWorking]);
|
|
220
|
+
const handleOverlayCloseComplete = useCallback(() => {
|
|
221
|
+
setShowWorkingOverlay(false);
|
|
222
|
+
setIsClosingOverlay(false);
|
|
223
|
+
}, []);
|
|
114
224
|
const handleDroppedContent = useCallback((content) => {
|
|
115
225
|
if (terminal) {
|
|
116
226
|
terminal.paste(content);
|
|
@@ -595,7 +705,7 @@ var ThemedTerminal = forwardRef(({
|
|
|
595
705
|
}
|
|
596
706
|
}
|
|
597
707
|
};
|
|
598
|
-
return /* @__PURE__ */
|
|
708
|
+
return /* @__PURE__ */ jsxs2("div", {
|
|
599
709
|
className,
|
|
600
710
|
style: {
|
|
601
711
|
display: "flex",
|
|
@@ -605,7 +715,7 @@ var ThemedTerminal = forwardRef(({
|
|
|
605
715
|
backgroundColor: theme.colors.background
|
|
606
716
|
},
|
|
607
717
|
children: [
|
|
608
|
-
!hideHeader && /* @__PURE__ */
|
|
718
|
+
!hideHeader && /* @__PURE__ */ jsxs2("div", {
|
|
609
719
|
style: {
|
|
610
720
|
display: "flex",
|
|
611
721
|
alignItems: "center",
|
|
@@ -615,14 +725,14 @@ var ThemedTerminal = forwardRef(({
|
|
|
615
725
|
backgroundColor: theme.colors.backgroundSecondary || theme.colors.background
|
|
616
726
|
},
|
|
617
727
|
children: [
|
|
618
|
-
/* @__PURE__ */
|
|
728
|
+
/* @__PURE__ */ jsxs2("div", {
|
|
619
729
|
style: { display: "flex", alignItems: "center", gap: "8px" },
|
|
620
730
|
children: [
|
|
621
|
-
/* @__PURE__ */
|
|
731
|
+
/* @__PURE__ */ jsx2(TerminalIcon, {
|
|
622
732
|
size: 16,
|
|
623
733
|
color: theme.colors.text
|
|
624
734
|
}),
|
|
625
|
-
/* @__PURE__ */
|
|
735
|
+
/* @__PURE__ */ jsx2("span", {
|
|
626
736
|
style: {
|
|
627
737
|
fontSize: "14px",
|
|
628
738
|
color: theme.colors.text,
|
|
@@ -630,23 +740,23 @@ var ThemedTerminal = forwardRef(({
|
|
|
630
740
|
},
|
|
631
741
|
children: headerTitle
|
|
632
742
|
}),
|
|
633
|
-
headerSubtitle && /* @__PURE__ */
|
|
743
|
+
headerSubtitle && /* @__PURE__ */ jsx2("span", {
|
|
634
744
|
style: {
|
|
635
745
|
fontSize: "12px",
|
|
636
746
|
color: theme.colors.textSecondary
|
|
637
747
|
},
|
|
638
748
|
children: headerSubtitle
|
|
639
749
|
}),
|
|
640
|
-
headerBadge && /* @__PURE__ */
|
|
750
|
+
headerBadge && /* @__PURE__ */ jsxs2(Fragment, {
|
|
641
751
|
children: [
|
|
642
|
-
/* @__PURE__ */
|
|
752
|
+
/* @__PURE__ */ jsx2("span", {
|
|
643
753
|
style: {
|
|
644
754
|
fontSize: "12px",
|
|
645
755
|
color: theme.colors.textSecondary
|
|
646
756
|
},
|
|
647
757
|
children: "•"
|
|
648
758
|
}),
|
|
649
|
-
/* @__PURE__ */
|
|
759
|
+
/* @__PURE__ */ jsx2("span", {
|
|
650
760
|
style: {
|
|
651
761
|
fontSize: "12px",
|
|
652
762
|
color: headerBadge.color || theme.colors.primary
|
|
@@ -657,10 +767,10 @@ var ThemedTerminal = forwardRef(({
|
|
|
657
767
|
})
|
|
658
768
|
]
|
|
659
769
|
}),
|
|
660
|
-
/* @__PURE__ */
|
|
770
|
+
/* @__PURE__ */ jsxs2("div", {
|
|
661
771
|
style: { display: "flex", gap: "8px" },
|
|
662
772
|
children: [
|
|
663
|
-
onPopOut && /* @__PURE__ */
|
|
773
|
+
onPopOut && /* @__PURE__ */ jsx2("button", {
|
|
664
774
|
type: "button",
|
|
665
775
|
"aria-label": "Pop out terminal to new window",
|
|
666
776
|
onClick: onPopOut,
|
|
@@ -685,11 +795,11 @@ var ThemedTerminal = forwardRef(({
|
|
|
685
795
|
e.currentTarget.style.color = theme.colors.textSecondary;
|
|
686
796
|
},
|
|
687
797
|
title: "Open terminal in new window",
|
|
688
|
-
children: /* @__PURE__ */
|
|
798
|
+
children: /* @__PURE__ */ jsx2(ExternalLink, {
|
|
689
799
|
size: 16
|
|
690
800
|
})
|
|
691
801
|
}),
|
|
692
|
-
onClose && /* @__PURE__ */
|
|
802
|
+
onClose && /* @__PURE__ */ jsx2("button", {
|
|
693
803
|
type: "button",
|
|
694
804
|
"aria-label": "Hide terminal",
|
|
695
805
|
onClick: onClose,
|
|
@@ -714,11 +824,11 @@ var ThemedTerminal = forwardRef(({
|
|
|
714
824
|
e.currentTarget.style.color = theme.colors.textSecondary;
|
|
715
825
|
},
|
|
716
826
|
title: "Hide terminal (keeps session running)",
|
|
717
|
-
children: /* @__PURE__ */
|
|
827
|
+
children: /* @__PURE__ */ jsx2(ChevronDown, {
|
|
718
828
|
size: 16
|
|
719
829
|
})
|
|
720
830
|
}),
|
|
721
|
-
onDestroy && /* @__PURE__ */
|
|
831
|
+
onDestroy && /* @__PURE__ */ jsx2("button", {
|
|
722
832
|
type: "button",
|
|
723
833
|
"aria-label": "Close terminal session",
|
|
724
834
|
onClick: handleDestroy,
|
|
@@ -743,7 +853,7 @@ var ThemedTerminal = forwardRef(({
|
|
|
743
853
|
e.currentTarget.style.color = theme.colors.textSecondary;
|
|
744
854
|
},
|
|
745
855
|
title: "Close terminal session (terminate process)",
|
|
746
|
-
children: /* @__PURE__ */
|
|
856
|
+
children: /* @__PURE__ */ jsx2(X, {
|
|
747
857
|
size: 16
|
|
748
858
|
})
|
|
749
859
|
})
|
|
@@ -751,7 +861,7 @@ var ThemedTerminal = forwardRef(({
|
|
|
751
861
|
})
|
|
752
862
|
]
|
|
753
863
|
}),
|
|
754
|
-
/* @__PURE__ */
|
|
864
|
+
/* @__PURE__ */ jsxs2("div", {
|
|
755
865
|
ref: terminalRef,
|
|
756
866
|
...dropZoneProps,
|
|
757
867
|
className: `terminal-container-fix ${scrollbarStyle === "hidden" ? "hide-scrollbar" : scrollbarStyle === "thin" ? "thin-scrollbar" : scrollbarStyle === "auto-hide" ? "auto-hide-scrollbar" : ""}`,
|
|
@@ -764,7 +874,7 @@ var ThemedTerminal = forwardRef(({
|
|
|
764
874
|
minHeight: 0
|
|
765
875
|
},
|
|
766
876
|
children: [
|
|
767
|
-
isDragOver && /* @__PURE__ */
|
|
877
|
+
isDragOver && /* @__PURE__ */ jsx2("div", {
|
|
768
878
|
style: {
|
|
769
879
|
position: "absolute",
|
|
770
880
|
inset: 0,
|
|
@@ -777,7 +887,7 @@ var ThemedTerminal = forwardRef(({
|
|
|
777
887
|
pointerEvents: "none",
|
|
778
888
|
zIndex: 1000
|
|
779
889
|
},
|
|
780
|
-
children: /* @__PURE__ */
|
|
890
|
+
children: /* @__PURE__ */ jsx2("div", {
|
|
781
891
|
style: {
|
|
782
892
|
padding: "8px 16px",
|
|
783
893
|
background: "#3b82f6",
|
|
@@ -789,7 +899,7 @@ var ThemedTerminal = forwardRef(({
|
|
|
789
899
|
children: "Drop to insert"
|
|
790
900
|
})
|
|
791
901
|
}),
|
|
792
|
-
overlayState && /* @__PURE__ */
|
|
902
|
+
overlayState && /* @__PURE__ */ jsxs2("div", {
|
|
793
903
|
style: {
|
|
794
904
|
position: "absolute",
|
|
795
905
|
top: 0,
|
|
@@ -807,11 +917,11 @@ var ThemedTerminal = forwardRef(({
|
|
|
807
917
|
zIndex: 10
|
|
808
918
|
},
|
|
809
919
|
children: [
|
|
810
|
-
/* @__PURE__ */
|
|
920
|
+
/* @__PURE__ */ jsx2(Monitor, {
|
|
811
921
|
size: 48,
|
|
812
922
|
color: theme.colors.textSecondary
|
|
813
923
|
}),
|
|
814
|
-
/* @__PURE__ */
|
|
924
|
+
/* @__PURE__ */ jsx2("div", {
|
|
815
925
|
style: {
|
|
816
926
|
fontSize: "16px",
|
|
817
927
|
fontWeight: "500",
|
|
@@ -820,7 +930,7 @@ var ThemedTerminal = forwardRef(({
|
|
|
820
930
|
},
|
|
821
931
|
children: overlayState.message
|
|
822
932
|
}),
|
|
823
|
-
overlayState.subtitle && /* @__PURE__ */
|
|
933
|
+
overlayState.subtitle && /* @__PURE__ */ jsx2("div", {
|
|
824
934
|
style: {
|
|
825
935
|
fontSize: "14px",
|
|
826
936
|
color: theme.colors.textSecondary,
|
|
@@ -829,13 +939,13 @@ var ThemedTerminal = forwardRef(({
|
|
|
829
939
|
},
|
|
830
940
|
children: overlayState.subtitle
|
|
831
941
|
}),
|
|
832
|
-
overlayState.actions && overlayState.actions.length > 0 && /* @__PURE__ */
|
|
942
|
+
overlayState.actions && overlayState.actions.length > 0 && /* @__PURE__ */ jsx2("div", {
|
|
833
943
|
style: {
|
|
834
944
|
display: "flex",
|
|
835
945
|
gap: "12px",
|
|
836
946
|
marginTop: "8px"
|
|
837
947
|
},
|
|
838
|
-
children: overlayState.actions.map((action) => /* @__PURE__ */
|
|
948
|
+
children: overlayState.actions.map((action) => /* @__PURE__ */ jsxs2("button", {
|
|
839
949
|
type: "button",
|
|
840
950
|
onClick: action.onClick,
|
|
841
951
|
style: {
|
|
@@ -873,6 +983,13 @@ var ThemedTerminal = forwardRef(({
|
|
|
873
983
|
}, action.label))
|
|
874
984
|
})
|
|
875
985
|
]
|
|
986
|
+
}),
|
|
987
|
+
showWorkingOverlay && !overlayState && /* @__PURE__ */ jsx2(WorkingOverlay, {
|
|
988
|
+
theme,
|
|
989
|
+
message: workingMessage,
|
|
990
|
+
subtitle: workingSubtitle,
|
|
991
|
+
isClosing: isClosingOverlay,
|
|
992
|
+
onCloseComplete: handleOverlayCloseComplete
|
|
876
993
|
})
|
|
877
994
|
]
|
|
878
995
|
})
|
|
@@ -883,10 +1000,10 @@ ThemedTerminal.displayName = "ThemedTerminal";
|
|
|
883
1000
|
// src/components/ThemedTerminalWithProvider.tsx
|
|
884
1001
|
import { useTheme } from "@principal-ade/industry-theme";
|
|
885
1002
|
import { forwardRef as forwardRef2 } from "react";
|
|
886
|
-
import { jsx as
|
|
1003
|
+
import { jsx as jsx3 } from "react/jsx-runtime";
|
|
887
1004
|
var ThemedTerminalWithProvider = forwardRef2((props, ref) => {
|
|
888
1005
|
const { theme } = useTheme();
|
|
889
|
-
return /* @__PURE__ */
|
|
1006
|
+
return /* @__PURE__ */ jsx3(ThemedTerminal, {
|
|
890
1007
|
ref,
|
|
891
1008
|
theme,
|
|
892
1009
|
...props
|
|
@@ -935,7 +1052,7 @@ import { useState as useState2 } from "react";
|
|
|
935
1052
|
|
|
936
1053
|
// src/components/TabBar/TabButton.tsx
|
|
937
1054
|
import { useTheme as useTheme3 } from "@principal-ade/industry-theme";
|
|
938
|
-
import { jsx as
|
|
1055
|
+
import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
939
1056
|
var TabButton = ({
|
|
940
1057
|
tab,
|
|
941
1058
|
isActive,
|
|
@@ -952,7 +1069,7 @@ var TabButton = ({
|
|
|
952
1069
|
const { theme } = useTheme3();
|
|
953
1070
|
const showCloseButton = isHovered || isActive;
|
|
954
1071
|
const closable = tab.closable !== false;
|
|
955
|
-
return /* @__PURE__ */
|
|
1072
|
+
return /* @__PURE__ */ jsxs3("div", {
|
|
956
1073
|
onMouseEnter,
|
|
957
1074
|
onMouseLeave,
|
|
958
1075
|
onClick,
|
|
@@ -977,7 +1094,7 @@ var TabButton = ({
|
|
|
977
1094
|
boxSizing: "border-box"
|
|
978
1095
|
},
|
|
979
1096
|
children: [
|
|
980
|
-
closable && showCloseButton && /* @__PURE__ */
|
|
1097
|
+
closable && showCloseButton && /* @__PURE__ */ jsx4("button", {
|
|
981
1098
|
onClick: (e) => {
|
|
982
1099
|
e.stopPropagation();
|
|
983
1100
|
onClose();
|
|
@@ -1009,7 +1126,7 @@ var TabButton = ({
|
|
|
1009
1126
|
(() => {
|
|
1010
1127
|
const icon = renderIcon ? renderIcon(tab) : undefined;
|
|
1011
1128
|
const displayIcon = icon !== undefined ? icon : tab.icon;
|
|
1012
|
-
return displayIcon ? /* @__PURE__ */
|
|
1129
|
+
return displayIcon ? /* @__PURE__ */ jsx4("div", {
|
|
1013
1130
|
style: { flexShrink: 0, display: "flex", alignItems: "center" },
|
|
1014
1131
|
children: displayIcon
|
|
1015
1132
|
}) : null;
|
|
@@ -1017,7 +1134,7 @@ var TabButton = ({
|
|
|
1017
1134
|
(() => {
|
|
1018
1135
|
const label = renderLabel ? renderLabel(tab) : undefined;
|
|
1019
1136
|
const displayLabel = label !== undefined ? label : tab.label;
|
|
1020
|
-
return /* @__PURE__ */
|
|
1137
|
+
return /* @__PURE__ */ jsx4("span", {
|
|
1021
1138
|
style: {
|
|
1022
1139
|
overflow: "hidden",
|
|
1023
1140
|
textOverflow: "ellipsis",
|
|
@@ -1027,7 +1144,7 @@ var TabButton = ({
|
|
|
1027
1144
|
children: displayLabel
|
|
1028
1145
|
});
|
|
1029
1146
|
})(),
|
|
1030
|
-
renderAccessory ? renderAccessory(tab) : keyboardHint && /* @__PURE__ */
|
|
1147
|
+
renderAccessory ? renderAccessory(tab) : keyboardHint && /* @__PURE__ */ jsx4("span", {
|
|
1031
1148
|
style: {
|
|
1032
1149
|
fontSize: theme.fontSizes[0],
|
|
1033
1150
|
color: theme.colors.textSecondary,
|
|
@@ -1042,7 +1159,7 @@ var TabButton = ({
|
|
|
1042
1159
|
TabButton.displayName = "TabButton";
|
|
1043
1160
|
|
|
1044
1161
|
// src/components/TabBar/TabBar.tsx
|
|
1045
|
-
import { jsx as
|
|
1162
|
+
import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
1046
1163
|
var TabBar = ({
|
|
1047
1164
|
tabs,
|
|
1048
1165
|
activeTabId,
|
|
@@ -1059,7 +1176,7 @@ var TabBar = ({
|
|
|
1059
1176
|
}) => {
|
|
1060
1177
|
const { theme } = useTheme4();
|
|
1061
1178
|
const [hoveredTabId, setHoveredTabId] = useState2(null);
|
|
1062
|
-
return /* @__PURE__ */
|
|
1179
|
+
return /* @__PURE__ */ jsxs4("div", {
|
|
1063
1180
|
className,
|
|
1064
1181
|
style: {
|
|
1065
1182
|
display: "flex",
|
|
@@ -1069,7 +1186,7 @@ var TabBar = ({
|
|
|
1069
1186
|
boxSizing: "border-box"
|
|
1070
1187
|
},
|
|
1071
1188
|
children: [
|
|
1072
|
-
leftSection && /* @__PURE__ */
|
|
1189
|
+
leftSection && /* @__PURE__ */ jsx5("div", {
|
|
1073
1190
|
style: {
|
|
1074
1191
|
display: "flex",
|
|
1075
1192
|
alignItems: "center",
|
|
@@ -1082,7 +1199,7 @@ var TabBar = ({
|
|
|
1082
1199
|
},
|
|
1083
1200
|
children: leftSection
|
|
1084
1201
|
}),
|
|
1085
|
-
/* @__PURE__ */
|
|
1202
|
+
/* @__PURE__ */ jsx5("div", {
|
|
1086
1203
|
style: {
|
|
1087
1204
|
display: "flex",
|
|
1088
1205
|
alignItems: "center",
|
|
@@ -1092,7 +1209,7 @@ var TabBar = ({
|
|
|
1092
1209
|
borderBottom: `1px solid ${theme.colors.border}`,
|
|
1093
1210
|
boxSizing: "border-box"
|
|
1094
1211
|
},
|
|
1095
|
-
children: tabs.map((tab, index) => /* @__PURE__ */
|
|
1212
|
+
children: tabs.map((tab, index) => /* @__PURE__ */ jsx5(TabButton, {
|
|
1096
1213
|
tab,
|
|
1097
1214
|
isActive: tab.id === activeTabId,
|
|
1098
1215
|
isHovered: tab.id === hoveredTabId,
|
|
@@ -1106,7 +1223,7 @@ var TabBar = ({
|
|
|
1106
1223
|
renderLabel: renderTabLabel
|
|
1107
1224
|
}, tab.id))
|
|
1108
1225
|
}),
|
|
1109
|
-
rightSection !== undefined ? rightSection && /* @__PURE__ */
|
|
1226
|
+
rightSection !== undefined ? rightSection && /* @__PURE__ */ jsx5("div", {
|
|
1110
1227
|
style: {
|
|
1111
1228
|
display: "flex",
|
|
1112
1229
|
alignItems: "center",
|
|
@@ -1118,7 +1235,7 @@ var TabBar = ({
|
|
|
1118
1235
|
boxSizing: "border-box"
|
|
1119
1236
|
},
|
|
1120
1237
|
children: rightSection
|
|
1121
|
-
}) : onNewTab && /* @__PURE__ */
|
|
1238
|
+
}) : onNewTab && /* @__PURE__ */ jsx5("div", {
|
|
1122
1239
|
style: {
|
|
1123
1240
|
display: "flex",
|
|
1124
1241
|
alignItems: "center",
|
|
@@ -1129,7 +1246,7 @@ var TabBar = ({
|
|
|
1129
1246
|
borderBottom: `1px solid ${theme.colors.border}`,
|
|
1130
1247
|
boxSizing: "border-box"
|
|
1131
1248
|
},
|
|
1132
|
-
children: /* @__PURE__ */
|
|
1249
|
+
children: /* @__PURE__ */ jsx5("button", {
|
|
1133
1250
|
onClick: onNewTab,
|
|
1134
1251
|
style: {
|
|
1135
1252
|
display: "flex",
|
|
@@ -1150,7 +1267,7 @@ var TabBar = ({
|
|
|
1150
1267
|
e.currentTarget.style.backgroundColor = "transparent";
|
|
1151
1268
|
},
|
|
1152
1269
|
title: "New Tab (⌘T)",
|
|
1153
|
-
children: /* @__PURE__ */
|
|
1270
|
+
children: /* @__PURE__ */ jsx5(Plus, {
|
|
1154
1271
|
size: 14
|
|
1155
1272
|
})
|
|
1156
1273
|
})
|
|
@@ -1237,7 +1354,7 @@ function getTerminalSlice(context) {
|
|
|
1237
1354
|
}
|
|
1238
1355
|
|
|
1239
1356
|
// src/panels/TerminalPanel.tsx
|
|
1240
|
-
import { jsx as
|
|
1357
|
+
import { jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
1241
1358
|
var TerminalPanel = ({
|
|
1242
1359
|
context,
|
|
1243
1360
|
actions,
|
|
@@ -1396,7 +1513,7 @@ var TerminalPanel = ({
|
|
|
1396
1513
|
}, []);
|
|
1397
1514
|
const sessionInfo = sessionId ? getTerminalSession(context, sessionId) : undefined;
|
|
1398
1515
|
if (error) {
|
|
1399
|
-
return /* @__PURE__ */
|
|
1516
|
+
return /* @__PURE__ */ jsxs5("div", {
|
|
1400
1517
|
style: {
|
|
1401
1518
|
padding: "20px",
|
|
1402
1519
|
color: "#ef4444",
|
|
@@ -1409,11 +1526,11 @@ var TerminalPanel = ({
|
|
|
1409
1526
|
gap: "10px"
|
|
1410
1527
|
},
|
|
1411
1528
|
children: [
|
|
1412
|
-
/* @__PURE__ */
|
|
1529
|
+
/* @__PURE__ */ jsx6("div", {
|
|
1413
1530
|
style: { fontSize: "16px", fontWeight: "bold" },
|
|
1414
1531
|
children: "Terminal Error"
|
|
1415
1532
|
}),
|
|
1416
|
-
/* @__PURE__ */
|
|
1533
|
+
/* @__PURE__ */ jsx6("div", {
|
|
1417
1534
|
style: { fontSize: "14px", opacity: 0.8 },
|
|
1418
1535
|
children: error
|
|
1419
1536
|
})
|
|
@@ -1421,7 +1538,7 @@ var TerminalPanel = ({
|
|
|
1421
1538
|
});
|
|
1422
1539
|
}
|
|
1423
1540
|
if (isInitializing || !sessionId) {
|
|
1424
|
-
return /* @__PURE__ */
|
|
1541
|
+
return /* @__PURE__ */ jsx6("div", {
|
|
1425
1542
|
style: {
|
|
1426
1543
|
padding: "20px",
|
|
1427
1544
|
color: "#a0a0a0",
|
|
@@ -1447,10 +1564,10 @@ var TerminalPanel = ({
|
|
|
1447
1564
|
terminalRef.current?.scrollToBottom();
|
|
1448
1565
|
}
|
|
1449
1566
|
};
|
|
1450
|
-
return /* @__PURE__ */
|
|
1567
|
+
return /* @__PURE__ */ jsxs5("div", {
|
|
1451
1568
|
style: { height: "100%", width: "100%", display: "flex", flexDirection: "column" },
|
|
1452
1569
|
children: [
|
|
1453
|
-
/* @__PURE__ */
|
|
1570
|
+
/* @__PURE__ */ jsxs5("div", {
|
|
1454
1571
|
style: {
|
|
1455
1572
|
display: "flex",
|
|
1456
1573
|
gap: "8px",
|
|
@@ -1460,7 +1577,7 @@ var TerminalPanel = ({
|
|
|
1460
1577
|
alignItems: "center"
|
|
1461
1578
|
},
|
|
1462
1579
|
children: [
|
|
1463
|
-
/* @__PURE__ */
|
|
1580
|
+
/* @__PURE__ */ jsxs5("span", {
|
|
1464
1581
|
style: {
|
|
1465
1582
|
fontSize: "12px",
|
|
1466
1583
|
color: theme.colors.textSecondary,
|
|
@@ -1473,7 +1590,7 @@ var TerminalPanel = ({
|
|
|
1473
1590
|
sessionInfo?.shell
|
|
1474
1591
|
]
|
|
1475
1592
|
}),
|
|
1476
|
-
/* @__PURE__ */
|
|
1593
|
+
/* @__PURE__ */ jsxs5("button", {
|
|
1477
1594
|
onClick: handleToggleScrollLock,
|
|
1478
1595
|
style: {
|
|
1479
1596
|
display: "flex",
|
|
@@ -1492,17 +1609,17 @@ var TerminalPanel = ({
|
|
|
1492
1609
|
onMouseLeave: (e) => e.currentTarget.style.opacity = "1",
|
|
1493
1610
|
title: scrollPosition.isScrollLocked ? "Click to unlock scroll" : "Click to lock scroll to bottom",
|
|
1494
1611
|
children: [
|
|
1495
|
-
scrollPosition.isScrollLocked ? /* @__PURE__ */
|
|
1612
|
+
scrollPosition.isScrollLocked ? /* @__PURE__ */ jsx6(Lock, {
|
|
1496
1613
|
size: 12
|
|
1497
|
-
}) : /* @__PURE__ */
|
|
1614
|
+
}) : /* @__PURE__ */ jsx6(Unlock, {
|
|
1498
1615
|
size: 12
|
|
1499
1616
|
}),
|
|
1500
|
-
/* @__PURE__ */
|
|
1617
|
+
/* @__PURE__ */ jsx6("span", {
|
|
1501
1618
|
children: scrollPosition.isScrollLocked ? "Locked" : "Unlocked"
|
|
1502
1619
|
})
|
|
1503
1620
|
]
|
|
1504
1621
|
}),
|
|
1505
|
-
/* @__PURE__ */
|
|
1622
|
+
/* @__PURE__ */ jsxs5("button", {
|
|
1506
1623
|
onClick: handleScrollToBottom,
|
|
1507
1624
|
disabled: scrollPosition.isAtBottom,
|
|
1508
1625
|
style: {
|
|
@@ -1523,19 +1640,19 @@ var TerminalPanel = ({
|
|
|
1523
1640
|
onMouseLeave: (e) => !scrollPosition.isAtBottom && (e.currentTarget.style.opacity = "1"),
|
|
1524
1641
|
title: "Scroll to bottom and lock",
|
|
1525
1642
|
children: [
|
|
1526
|
-
/* @__PURE__ */
|
|
1643
|
+
/* @__PURE__ */ jsx6(ArrowDown, {
|
|
1527
1644
|
size: 12
|
|
1528
1645
|
}),
|
|
1529
|
-
/* @__PURE__ */
|
|
1646
|
+
/* @__PURE__ */ jsx6("span", {
|
|
1530
1647
|
children: "Bottom"
|
|
1531
1648
|
})
|
|
1532
1649
|
]
|
|
1533
1650
|
})
|
|
1534
1651
|
]
|
|
1535
1652
|
}),
|
|
1536
|
-
/* @__PURE__ */
|
|
1653
|
+
/* @__PURE__ */ jsx6("div", {
|
|
1537
1654
|
style: { flex: 1 },
|
|
1538
|
-
children: /* @__PURE__ */
|
|
1655
|
+
children: /* @__PURE__ */ jsx6(ThemedTerminalWithProvider, {
|
|
1539
1656
|
ref: terminalRef,
|
|
1540
1657
|
onData: handleTerminalData,
|
|
1541
1658
|
onResize: handleTerminalResize,
|
|
@@ -1554,14 +1671,14 @@ var TerminalPanel = ({
|
|
|
1554
1671
|
};
|
|
1555
1672
|
// src/panels/TabbedTerminalPanel.tsx
|
|
1556
1673
|
import { useTheme as useTheme6 } from "@principal-ade/industry-theme";
|
|
1557
|
-
import { Terminal as TerminalIcon2, Lock as Lock2, Unlock as Unlock2, Box, Boxes } from "lucide-react";
|
|
1674
|
+
import { Terminal as TerminalIcon2, Lock as Lock2, Unlock as Unlock2, Box, Boxes, Loader2 } from "lucide-react";
|
|
1558
1675
|
import React2, {
|
|
1559
1676
|
useState as useState4,
|
|
1560
1677
|
useCallback as useCallback3,
|
|
1561
1678
|
useEffect as useEffect4,
|
|
1562
1679
|
useRef as useRef3
|
|
1563
1680
|
} from "react";
|
|
1564
|
-
import { jsx as
|
|
1681
|
+
import { jsx as jsx7, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
1565
1682
|
function TerminalTabContentInner(props, ref) {
|
|
1566
1683
|
const { tab, sessionId, isActive, isVisible, actions, events, terminalContext, onSessionCreated, onScrollPositionChange, isForeign = false, defaultScrollLocked } = props;
|
|
1567
1684
|
console.log("[TerminalTabContent] RENDER", { tabId: tab.id, isActive, sessionId });
|
|
@@ -1749,7 +1866,7 @@ function TerminalTabContentInner(props, ref) {
|
|
|
1749
1866
|
toggleScrollLock: handleToggleScrollLock
|
|
1750
1867
|
}), [handleScrollToBottom, handleToggleScrollLock]);
|
|
1751
1868
|
if (!isInitialized) {
|
|
1752
|
-
return /* @__PURE__ */
|
|
1869
|
+
return /* @__PURE__ */ jsx7("div", {
|
|
1753
1870
|
style: {
|
|
1754
1871
|
display: isActive ? "flex" : "none",
|
|
1755
1872
|
height: "100%",
|
|
@@ -1772,14 +1889,14 @@ function TerminalTabContentInner(props, ref) {
|
|
|
1772
1889
|
],
|
|
1773
1890
|
opacity: 1
|
|
1774
1891
|
} : undefined;
|
|
1775
|
-
return /* @__PURE__ */
|
|
1892
|
+
return /* @__PURE__ */ jsx7("div", {
|
|
1776
1893
|
style: {
|
|
1777
1894
|
display: isActive ? "flex" : "none",
|
|
1778
1895
|
flexDirection: "column",
|
|
1779
1896
|
height: "100%",
|
|
1780
1897
|
width: "100%"
|
|
1781
1898
|
},
|
|
1782
|
-
children: /* @__PURE__ */
|
|
1899
|
+
children: /* @__PURE__ */ jsx7(ThemedTerminalWithProvider, {
|
|
1783
1900
|
ref: terminalRef,
|
|
1784
1901
|
onData: shouldRenderTerminal ? handleData : undefined,
|
|
1785
1902
|
onResize: shouldRenderTerminal ? handleResize : undefined,
|
|
@@ -1844,7 +1961,8 @@ var TabbedTerminalPanelInner = ({
|
|
|
1844
1961
|
activeTabId: activeTabIdProp,
|
|
1845
1962
|
onActiveTabChange,
|
|
1846
1963
|
requestFocusTabId,
|
|
1847
|
-
onFocusTabHandled
|
|
1964
|
+
onFocusTabHandled,
|
|
1965
|
+
workingStates
|
|
1848
1966
|
}) => {
|
|
1849
1967
|
console.log("[TabbedTerminalPanel] RENDER", { terminalContext, directory, width });
|
|
1850
1968
|
const { theme } = useTheme6();
|
|
@@ -1927,8 +2045,8 @@ var TabbedTerminalPanelInner = ({
|
|
|
1927
2045
|
closable: true,
|
|
1928
2046
|
contentType: tab.contentType,
|
|
1929
2047
|
metadata: {
|
|
1930
|
-
...tab.directory
|
|
1931
|
-
...tab.command
|
|
2048
|
+
..."directory" in tab && tab.directory ? { directory: tab.directory } : {},
|
|
2049
|
+
..."command" in tab && tab.command ? { command: tab.command } : {}
|
|
1932
2050
|
}
|
|
1933
2051
|
}));
|
|
1934
2052
|
}, [tabs]);
|
|
@@ -2161,42 +2279,67 @@ var TabbedTerminalPanelInner = ({
|
|
|
2161
2279
|
}
|
|
2162
2280
|
});
|
|
2163
2281
|
const renderTabAccessory = useCallback3((tab) => {
|
|
2164
|
-
|
|
2282
|
+
const tabSessionId = sessionIds.get(tab.id);
|
|
2283
|
+
const isWorking = tabSessionId ? workingStates?.[tabSessionId]?.isWorking : false;
|
|
2284
|
+
const isActive = tab.id === activeTabId;
|
|
2285
|
+
if (!isActive && !isWorking)
|
|
2165
2286
|
return null;
|
|
2166
2287
|
const scrollPosition = scrollPositions.get(tab.id) ?? defaultScrollPosition;
|
|
2167
|
-
return /* @__PURE__ */
|
|
2168
|
-
|
|
2169
|
-
|
|
2170
|
-
|
|
2171
|
-
|
|
2172
|
-
|
|
2173
|
-
|
|
2174
|
-
|
|
2175
|
-
|
|
2176
|
-
|
|
2177
|
-
|
|
2178
|
-
|
|
2179
|
-
|
|
2180
|
-
|
|
2181
|
-
|
|
2182
|
-
|
|
2183
|
-
|
|
2184
|
-
|
|
2185
|
-
|
|
2186
|
-
|
|
2187
|
-
|
|
2188
|
-
|
|
2189
|
-
|
|
2190
|
-
|
|
2191
|
-
|
|
2192
|
-
|
|
2193
|
-
|
|
2194
|
-
|
|
2195
|
-
|
|
2196
|
-
|
|
2288
|
+
return /* @__PURE__ */ jsxs6("div", {
|
|
2289
|
+
style: { display: "flex", alignItems: "center", gap: "4px" },
|
|
2290
|
+
children: [
|
|
2291
|
+
isWorking && /* @__PURE__ */ jsx7("div", {
|
|
2292
|
+
style: {
|
|
2293
|
+
display: "flex",
|
|
2294
|
+
alignItems: "center",
|
|
2295
|
+
justifyContent: "center",
|
|
2296
|
+
width: "16px",
|
|
2297
|
+
height: "16px",
|
|
2298
|
+
color: theme.colors.primary
|
|
2299
|
+
},
|
|
2300
|
+
title: "Agent working",
|
|
2301
|
+
children: /* @__PURE__ */ jsx7(Loader2, {
|
|
2302
|
+
size: 12,
|
|
2303
|
+
style: {
|
|
2304
|
+
animation: "spin 1s linear infinite"
|
|
2305
|
+
}
|
|
2306
|
+
})
|
|
2307
|
+
}),
|
|
2308
|
+
isActive && /* @__PURE__ */ jsx7("button", {
|
|
2309
|
+
onClick: (e) => {
|
|
2310
|
+
e.stopPropagation();
|
|
2311
|
+
handleToggleScrollLock();
|
|
2312
|
+
},
|
|
2313
|
+
style: {
|
|
2314
|
+
display: "flex",
|
|
2315
|
+
alignItems: "center",
|
|
2316
|
+
justifyContent: "center",
|
|
2317
|
+
width: "16px",
|
|
2318
|
+
height: "16px",
|
|
2319
|
+
borderRadius: "3px",
|
|
2320
|
+
border: "none",
|
|
2321
|
+
backgroundColor: "transparent",
|
|
2322
|
+
cursor: "pointer",
|
|
2323
|
+
color: scrollPosition.isScrollLocked ? theme.colors.success : theme.colors.warning,
|
|
2324
|
+
padding: 0
|
|
2325
|
+
},
|
|
2326
|
+
onMouseEnter: (e) => {
|
|
2327
|
+
e.currentTarget.style.backgroundColor = theme.colors.backgroundTertiary;
|
|
2328
|
+
},
|
|
2329
|
+
onMouseLeave: (e) => {
|
|
2330
|
+
e.currentTarget.style.backgroundColor = "transparent";
|
|
2331
|
+
},
|
|
2332
|
+
title: scrollPosition.isScrollLocked ? "Scroll locked" : "Scroll unlocked",
|
|
2333
|
+
children: scrollPosition.isScrollLocked ? /* @__PURE__ */ jsx7(Lock2, {
|
|
2334
|
+
size: 10
|
|
2335
|
+
}) : /* @__PURE__ */ jsx7(Unlock2, {
|
|
2336
|
+
size: 10
|
|
2337
|
+
})
|
|
2338
|
+
})
|
|
2339
|
+
]
|
|
2197
2340
|
});
|
|
2198
|
-
}, [activeTabId, scrollPositions, defaultScrollPosition, handleToggleScrollLock, theme]);
|
|
2199
|
-
return /* @__PURE__ */
|
|
2341
|
+
}, [activeTabId, scrollPositions, defaultScrollPosition, handleToggleScrollLock, theme, sessionIds, workingStates]);
|
|
2342
|
+
return /* @__PURE__ */ jsxs6("div", {
|
|
2200
2343
|
style: {
|
|
2201
2344
|
display: "flex",
|
|
2202
2345
|
flexDirection: "column",
|
|
@@ -2204,15 +2347,15 @@ var TabbedTerminalPanelInner = ({
|
|
|
2204
2347
|
backgroundColor: theme.colors.background
|
|
2205
2348
|
},
|
|
2206
2349
|
children: [
|
|
2207
|
-
!hideHeader && /* @__PURE__ */
|
|
2350
|
+
!hideHeader && /* @__PURE__ */ jsx7("div", {
|
|
2208
2351
|
ref: headerRef,
|
|
2209
|
-
children: /* @__PURE__ */
|
|
2352
|
+
children: /* @__PURE__ */ jsx7(TabBar, {
|
|
2210
2353
|
tabs: genericTabs,
|
|
2211
2354
|
activeTabId,
|
|
2212
2355
|
onTabClick: switchTab,
|
|
2213
2356
|
onTabClose: closeTab,
|
|
2214
2357
|
onNewTab: addNewTab,
|
|
2215
|
-
leftSection: /* @__PURE__ */
|
|
2358
|
+
leftSection: /* @__PURE__ */ jsx7("button", {
|
|
2216
2359
|
onClick: () => onShowAllTerminalsChange?.(!showAllTerminals),
|
|
2217
2360
|
style: {
|
|
2218
2361
|
display: "flex",
|
|
@@ -2237,9 +2380,9 @@ var TabbedTerminalPanelInner = ({
|
|
|
2237
2380
|
}
|
|
2238
2381
|
},
|
|
2239
2382
|
title: showAllTerminals ? "Showing all terminals (click to filter by context)" : "Show all terminals",
|
|
2240
|
-
children: showAllTerminals ? /* @__PURE__ */
|
|
2383
|
+
children: showAllTerminals ? /* @__PURE__ */ jsx7(Boxes, {
|
|
2241
2384
|
size: 14
|
|
2242
|
-
}) : /* @__PURE__ */
|
|
2385
|
+
}) : /* @__PURE__ */ jsx7(Box, {
|
|
2243
2386
|
size: 14
|
|
2244
2387
|
})
|
|
2245
2388
|
}),
|
|
@@ -2249,7 +2392,7 @@ var TabbedTerminalPanelInner = ({
|
|
|
2249
2392
|
showKeyboardHints: false
|
|
2250
2393
|
})
|
|
2251
2394
|
}),
|
|
2252
|
-
/* @__PURE__ */
|
|
2395
|
+
/* @__PURE__ */ jsxs6("div", {
|
|
2253
2396
|
style: {
|
|
2254
2397
|
flex: 1,
|
|
2255
2398
|
display: "flex",
|
|
@@ -2265,7 +2408,7 @@ var TabbedTerminalPanelInner = ({
|
|
|
2265
2408
|
if (renderTabContent) {
|
|
2266
2409
|
const customContent = renderTabContent(tab, isActive, sessionId, width);
|
|
2267
2410
|
if (customContent === null && tab.contentType === "terminal") {
|
|
2268
|
-
return /* @__PURE__ */
|
|
2411
|
+
return /* @__PURE__ */ jsx7(TerminalTabContent, {
|
|
2269
2412
|
ref: getRefCallback(tab.id),
|
|
2270
2413
|
tab,
|
|
2271
2414
|
sessionId,
|
|
@@ -2280,7 +2423,7 @@ var TabbedTerminalPanelInner = ({
|
|
|
2280
2423
|
defaultScrollLocked
|
|
2281
2424
|
}, tab.id);
|
|
2282
2425
|
}
|
|
2283
|
-
return /* @__PURE__ */
|
|
2426
|
+
return /* @__PURE__ */ jsx7("div", {
|
|
2284
2427
|
style: {
|
|
2285
2428
|
display: isActive ? "flex" : "none",
|
|
2286
2429
|
flexDirection: "column",
|
|
@@ -2291,7 +2434,7 @@ var TabbedTerminalPanelInner = ({
|
|
|
2291
2434
|
}, tab.id);
|
|
2292
2435
|
}
|
|
2293
2436
|
if (tab.contentType === "terminal") {
|
|
2294
|
-
return /* @__PURE__ */
|
|
2437
|
+
return /* @__PURE__ */ jsx7(TerminalTabContent, {
|
|
2295
2438
|
ref: getRefCallback(tab.id),
|
|
2296
2439
|
tab,
|
|
2297
2440
|
sessionId,
|
|
@@ -2306,7 +2449,7 @@ var TabbedTerminalPanelInner = ({
|
|
|
2306
2449
|
defaultScrollLocked
|
|
2307
2450
|
}, tab.id);
|
|
2308
2451
|
}
|
|
2309
|
-
return /* @__PURE__ */
|
|
2452
|
+
return /* @__PURE__ */ jsxs6("div", {
|
|
2310
2453
|
style: {
|
|
2311
2454
|
display: isActive ? "flex" : "none",
|
|
2312
2455
|
alignItems: "center",
|
|
@@ -2315,20 +2458,20 @@ var TabbedTerminalPanelInner = ({
|
|
|
2315
2458
|
color: theme.colors.textSecondary
|
|
2316
2459
|
},
|
|
2317
2460
|
children: [
|
|
2318
|
-
/* @__PURE__ */
|
|
2461
|
+
/* @__PURE__ */ jsxs6("p", {
|
|
2319
2462
|
children: [
|
|
2320
2463
|
"Unknown content type: ",
|
|
2321
2464
|
tab.contentType
|
|
2322
2465
|
]
|
|
2323
2466
|
}),
|
|
2324
|
-
/* @__PURE__ */
|
|
2467
|
+
/* @__PURE__ */ jsx7("p", {
|
|
2325
2468
|
style: { fontSize: theme.fontSizes[0], marginTop: "8px" },
|
|
2326
2469
|
children: "Provide a renderTabContent prop to render custom tab types"
|
|
2327
2470
|
})
|
|
2328
2471
|
]
|
|
2329
2472
|
}, tab.id);
|
|
2330
2473
|
}),
|
|
2331
|
-
tabs.length === 0 && /* @__PURE__ */
|
|
2474
|
+
tabs.length === 0 && /* @__PURE__ */ jsxs6("div", {
|
|
2332
2475
|
style: {
|
|
2333
2476
|
display: "flex",
|
|
2334
2477
|
flexDirection: "column",
|
|
@@ -2338,14 +2481,14 @@ var TabbedTerminalPanelInner = ({
|
|
|
2338
2481
|
color: theme.colors.textSecondary
|
|
2339
2482
|
},
|
|
2340
2483
|
children: [
|
|
2341
|
-
/* @__PURE__ */
|
|
2484
|
+
/* @__PURE__ */ jsx7(TerminalIcon2, {
|
|
2342
2485
|
size: 32,
|
|
2343
2486
|
style: { opacity: 0.5, marginBottom: "16px" }
|
|
2344
2487
|
}),
|
|
2345
|
-
/* @__PURE__ */
|
|
2488
|
+
/* @__PURE__ */ jsx7("p", {
|
|
2346
2489
|
children: "No terminal sessions"
|
|
2347
2490
|
}),
|
|
2348
|
-
/* @__PURE__ */
|
|
2491
|
+
/* @__PURE__ */ jsx7("button", {
|
|
2349
2492
|
onClick: () => addNewTab(),
|
|
2350
2493
|
style: {
|
|
2351
2494
|
marginTop: "16px",
|
|
@@ -2402,6 +2545,8 @@ var TabbedTerminalPanelMemoized = React2.memo(TabbedTerminalPanelInner, (prevPro
|
|
|
2402
2545
|
changes.push("activeTabId");
|
|
2403
2546
|
if (prevProps.onActiveTabChange !== nextProps.onActiveTabChange)
|
|
2404
2547
|
changes.push("onActiveTabChange");
|
|
2548
|
+
if (prevProps.workingStates !== nextProps.workingStates)
|
|
2549
|
+
changes.push("workingStates");
|
|
2405
2550
|
const ignoredChanges = [];
|
|
2406
2551
|
if (prevProps.context !== nextProps.context)
|
|
2407
2552
|
ignoredChanges.push("context");
|
|
@@ -2618,6 +2763,7 @@ export {
|
|
|
2618
2763
|
createTerminalSessionTool,
|
|
2619
2764
|
closeTerminalSessionTool,
|
|
2620
2765
|
clearTerminalTool,
|
|
2766
|
+
WorkingOverlay,
|
|
2621
2767
|
ThemedTerminalWithProvider,
|
|
2622
2768
|
ThemedTerminal,
|
|
2623
2769
|
TerminalPanel,
|
|
@@ -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;AAkC3D,OAAO,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EAEV,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,yBAAyB,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;AAkC3D,OAAO,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EAEV,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,8BAA8B,CAAC;AAEtC,MAAM,WAAW,4BAA6B,SAAQ,mBAAmB;IACvE,KAAK,EAAE,KAAK,CAAC;CACd;AAsBD,eAAO,MAAM,cAAc,4HAmgC1B,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Theme } from '@principal-ade/industry-theme';
|
|
2
|
+
import '../styles/terminal-theme.css';
|
|
3
|
+
export interface WorkingOverlayProps {
|
|
4
|
+
theme: Theme;
|
|
5
|
+
message?: string;
|
|
6
|
+
subtitle?: string;
|
|
7
|
+
isClosing?: boolean;
|
|
8
|
+
onCloseComplete?: () => void;
|
|
9
|
+
}
|
|
10
|
+
export declare const WorkingOverlay: React.FC<WorkingOverlayProps>;
|
|
11
|
+
//# sourceMappingURL=WorkingOverlay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkingOverlay.d.ts","sourceRoot":"","sources":["../../../src/components/WorkingOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,8BAA8B,CAAC;AAEtC,MAAM,WAAW,mBAAmB;IAElC,KAAK,EAAE,KAAK,CAAC;IAEb,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;CAC9B;AAOD,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAgGxD,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;
|
|
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;AA0EF,eAAO,MAAM,iBAAiB,GAC5B,YAAY,OAAO,CAAC,iBAAiB,CAAC,KACrC,iBAwCF,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
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
|
-
export type TerminalEventType = 'terminal:data' | 'terminal:exit' | 'terminal:created' | 'terminal:title-change' | 'terminal:cwd-change' | 'terminal:link-click' | 'terminal:shortcut';
|
|
3
|
+
export type TerminalEventType = 'terminal:data' | 'terminal:exit' | 'terminal:created' | 'terminal:title-change' | 'terminal:cwd-change' | 'terminal:link-click' | 'terminal:shortcut' | 'terminal:activity-changed';
|
|
4
4
|
export interface TerminalLinkClickEvent {
|
|
5
5
|
url: string;
|
|
6
6
|
sessionId: string;
|
|
@@ -14,6 +14,14 @@ export interface TerminalShortcutEvent {
|
|
|
14
14
|
shortcut: TerminalShortcutId;
|
|
15
15
|
sessionId: string;
|
|
16
16
|
}
|
|
17
|
+
export type TerminalActivityType = 'started' | 'stopped';
|
|
18
|
+
export interface TerminalActivityChangedEvent {
|
|
19
|
+
sessionId: string;
|
|
20
|
+
activityType: TerminalActivityType;
|
|
21
|
+
isWorking: boolean;
|
|
22
|
+
message?: string;
|
|
23
|
+
subtitle?: string;
|
|
24
|
+
}
|
|
17
25
|
export interface TerminalSessionInfo {
|
|
18
26
|
id: string;
|
|
19
27
|
pid: number;
|
|
@@ -84,6 +92,11 @@ export declare function getWorkspacePath(context: PanelContextValue): string | n
|
|
|
84
92
|
export declare function getTerminalDirectory(context: PanelContextValue, terminalScope?: TerminalScope): string | null;
|
|
85
93
|
export declare function getTerminalSlice(context: PanelContextValue<TerminalPanelContext>): DataSlice<TerminalSessionInfo[]> | undefined;
|
|
86
94
|
import type { BaseTab } from '../types/tab';
|
|
95
|
+
export interface TerminalWorkingState {
|
|
96
|
+
isWorking: boolean;
|
|
97
|
+
message?: string;
|
|
98
|
+
subtitle?: string;
|
|
99
|
+
}
|
|
87
100
|
export interface TerminalTab extends BaseTab {
|
|
88
101
|
contentType: 'terminal';
|
|
89
102
|
directory: string;
|
|
@@ -108,5 +121,6 @@ export interface TabbedTerminalPanelProps<TTab extends BaseTab = TerminalTab> ex
|
|
|
108
121
|
renderTabIcon?: (tab: TTab) => React.ReactNode;
|
|
109
122
|
renderTabLabel?: (tab: TTab) => React.ReactNode;
|
|
110
123
|
width?: number;
|
|
124
|
+
workingStates?: Record<string, TerminalWorkingState>;
|
|
111
125
|
}
|
|
112
126
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -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;AAK7C,MAAM,MAAM,iBAAiB,GACzB,eAAe,GACf,eAAe,GACf,kBAAkB,GAClB,uBAAuB,GACvB,qBAAqB,GACrB,qBAAqB,GACrB,mBAAmB,CAAC;
|
|
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":"AAGA,OAAO,KAKN,MAAM,OAAO,CAAC;AAKf,OAAO,KAAK,EACV,wBAAwB,EACxB,WAAW,EAIZ,MAAM,gBAAgB,CAAC;AA2BxB,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,gBAAgB,EAAE,MAAM,IAAI,CAAC;CAC9B;
|
|
1
|
+
{"version":3,"file":"TabbedTerminalPanel.d.ts","sourceRoot":"","sources":["../../../src/panels/TabbedTerminalPanel.tsx"],"names":[],"mappings":"AAGA,OAAO,KAKN,MAAM,OAAO,CAAC;AAKf,OAAO,KAAK,EACV,wBAAwB,EACxB,WAAW,EAIZ,MAAM,gBAAgB,CAAC;AA2BxB,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,gBAAgB,EAAE,MAAM,IAAI,CAAC;CAC9B;AAisCD,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"}
|
package/dist/src/types/tab.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tab.d.ts","sourceRoot":"","sources":["../../../src/types/tab.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMvC,MAAM,WAAW,OAAO;IAEtB,EAAE,EAAE,MAAM,CAAC;IAGX,KAAK,EAAE,MAAM,CAAC;IAGd,IAAI,CAAC,EAAE,SAAS,CAAC;IAGjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAGnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAMD,MAAM,MAAM,GAAG,GAAG,OAAO,GAAG;IAE1B,CAAC,GAAG,EAAE,MAAM,GAAG,
|
|
1
|
+
{"version":3,"file":"tab.d.ts","sourceRoot":"","sources":["../../../src/types/tab.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMvC,MAAM,WAAW,OAAO;IAEtB,EAAE,EAAE,MAAM,CAAC;IAGX,KAAK,EAAE,MAAM,CAAC;IAGd,IAAI,CAAC,EAAE,SAAS,CAAC;IAGjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAGnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAMD,MAAM,MAAM,GAAG,GAAG,OAAO,GAAG;IAE1B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAKF,MAAM,WAAW,SAAS;IAExB,EAAE,EAAE,MAAM,CAAC;IAGX,KAAK,EAAE,MAAM,CAAC;IAGd,IAAI,CAAC,EAAE,SAAS,CAAC;IAGjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAGnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAKD,MAAM,WAAW,WAAW;IAE1B,IAAI,EAAE,GAAG,EAAE,CAAC;IAGZ,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAG3B,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAGpC,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAGpC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IAGtB,WAAW,CAAC,EAAE,SAAS,CAAC;IAGxB,YAAY,CAAC,EAAE,SAAS,CAAC;IAGzB,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,SAAS,CAAC;IAG7C,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,SAAS,CAAC;IAGxC,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,SAAS,CAAC;IAGzC,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAKD,MAAM,WAAW,cAAc;IAE7B,GAAG,EAAE,GAAG,CAAC;IAGT,QAAQ,EAAE,OAAO,CAAC;IAGlB,SAAS,EAAE,OAAO,CAAC;IAGnB,YAAY,EAAE,MAAM,IAAI,CAAC;IAGzB,YAAY,EAAE,MAAM,IAAI,CAAC;IAGzB,OAAO,EAAE,MAAM,IAAI,CAAC;IAGpB,OAAO,EAAE,MAAM,IAAI,CAAC;IAGpB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,SAAS,CAAC;IAG1C,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,SAAS,CAAC;IAGrC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,SAAS,CAAC;CACvC"}
|
|
@@ -51,6 +51,9 @@ export interface ThemedTerminalProps {
|
|
|
51
51
|
onPopOut?: () => void;
|
|
52
52
|
onShortcut?: (event: TerminalShortcutEvent) => void;
|
|
53
53
|
overlayState?: TerminalOverlayState;
|
|
54
|
+
isWorking?: boolean;
|
|
55
|
+
workingMessage?: string;
|
|
56
|
+
workingSubtitle?: string;
|
|
54
57
|
convertEol?: boolean;
|
|
55
58
|
cursorBlink?: boolean;
|
|
56
59
|
cursorStyle?: 'block' | 'underline' | 'bar';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal.types.d.ts","sourceRoot":"","sources":["../../../src/types/terminal.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAM7C,MAAM,WAAW,oBAAoB;IAEnC,OAAO,EAAE,MAAM,CAAC;IAEhB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,OAAO,CAAC,EAAE,KAAK,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,IAAI,CAAC;QACpB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;KACxB,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAKD,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAKD,MAAM,WAAW,sBAAsB;IAErC,OAAO,EAAE,OAAO,CAAC;IAEjB,UAAU,EAAE,OAAO,CAAC;IAEpB,cAAc,EAAE,OAAO,CAAC;CACzB;AAKD,MAAM,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;AAKjD,MAAM,WAAW,qBAAqB;IAEpC,QAAQ,EAAE,gBAAgB,CAAC;IAE3B,aAAa,EAAE,aAAa,CAAC;CAC9B;AAKD,MAAM,WAAW,kBAAkB;IAEjC,QAAQ,EAAE,OAAO,CAAC;IAElB,OAAO,EAAE,OAAO,CAAC;IAEjB,OAAO,EAAE,OAAO,CAAC;IAEjB,MAAM,EAAE,OAAO,CAAC;CACjB;AAKD,MAAM,WAAW,mBAAmB;IAGlC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAGhC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAGhD,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAG/C,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAGnE,sBAAsB,CAAC,EAAE,CAAC,QAAQ,EAAE,sBAAsB,KAAK,IAAI,CAAC;IAIpE,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,UAAU,CAAC,EAAE,OAAO,CAAC;IAGrB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,cAAc,CAAC,EAAE,MAAM,CAAC;IAGxB,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAIlC,SAAS,CAAC,EAAE,OAAO,CAAC;IAKpB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAG9B,SAAS,CAAC,EAAE,OAAO,CAAC;IAGpB,cAAc,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,CAAC;IAI7D,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAGrB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IAGvB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IAGtB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAOpD,YAAY,CAAC,EAAE,oBAAoB,CAAC;
|
|
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
|
@@ -139,3 +139,57 @@
|
|
|
139
139
|
--terminal-font-family: 'Menlo', 'Monaco', 'Courier New', monospace;
|
|
140
140
|
--terminal-font-size: 14px;
|
|
141
141
|
}
|
|
142
|
+
|
|
143
|
+
/* ===== WORKING OVERLAY (BLINDS) ===== */
|
|
144
|
+
|
|
145
|
+
/* Blinds slide down animation */
|
|
146
|
+
@keyframes blinds-down {
|
|
147
|
+
0% {
|
|
148
|
+
transform: translateY(-100%);
|
|
149
|
+
}
|
|
150
|
+
100% {
|
|
151
|
+
transform: translateY(0);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
/* Blinds slide up animation (for closing) */
|
|
156
|
+
@keyframes blinds-up {
|
|
157
|
+
0% {
|
|
158
|
+
transform: translateY(0);
|
|
159
|
+
}
|
|
160
|
+
100% {
|
|
161
|
+
transform: translateY(-100%);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
/* Pulse animation for working indicator dots */
|
|
166
|
+
@keyframes pulse {
|
|
167
|
+
0%, 80%, 100% {
|
|
168
|
+
opacity: 0.3;
|
|
169
|
+
transform: scale(0.8);
|
|
170
|
+
}
|
|
171
|
+
40% {
|
|
172
|
+
opacity: 1;
|
|
173
|
+
transform: scale(1);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/* Spin animation for loading indicators */
|
|
178
|
+
@keyframes spin {
|
|
179
|
+
from {
|
|
180
|
+
transform: rotate(0deg);
|
|
181
|
+
}
|
|
182
|
+
to {
|
|
183
|
+
transform: rotate(360deg);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
/* Working overlay container */
|
|
188
|
+
.terminal-working-overlay {
|
|
189
|
+
animation: blinds-down 0.3s ease-out forwards;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
/* Closing state */
|
|
193
|
+
.terminal-working-overlay.closing {
|
|
194
|
+
animation: blinds-up 0.3s ease-in forwards;
|
|
195
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@industry-theme/xterm-terminal-panel",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.1",
|
|
4
4
|
"description": "Industry-themed xterm.js terminal components with panel framework integration",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -54,12 +54,13 @@
|
|
|
54
54
|
"author": "Principal ADE Team",
|
|
55
55
|
"license": "MIT",
|
|
56
56
|
"dependencies": {
|
|
57
|
-
"@principal-ade/utcp-panel-event": "^0.1.0",
|
|
58
57
|
"clsx": "^2.1.1"
|
|
59
58
|
},
|
|
60
59
|
"peerDependencies": {
|
|
61
|
-
"@principal-ade/industry-theme": ">=0.1.
|
|
62
|
-
"@principal-ade/panel-framework-core": ">=0.
|
|
60
|
+
"@principal-ade/industry-theme": ">=0.1.8",
|
|
61
|
+
"@principal-ade/panel-framework-core": ">=0.5.1",
|
|
62
|
+
"@principal-ade/panel-layouts": ">=0.4.0",
|
|
63
|
+
"@principal-ade/utcp-panel-event": ">=0.1.0",
|
|
63
64
|
"@xterm/addon-fit": ">=0.10.0",
|
|
64
65
|
"@xterm/addon-search": ">=0.15.0",
|
|
65
66
|
"@xterm/addon-web-links": ">=0.11.0",
|
|
@@ -82,7 +83,7 @@
|
|
|
82
83
|
"@eslint/js": "^9.32.0",
|
|
83
84
|
"@industry-theme/agent-panels": "^0.2.12",
|
|
84
85
|
"@principal-ade/industry-theme": "^0.1.7",
|
|
85
|
-
"@principal-ade/panel-framework-core": "
|
|
86
|
+
"@principal-ade/panel-framework-core": "0.5.1",
|
|
86
87
|
"@storybook/addon-docs": "10.1.2",
|
|
87
88
|
"@storybook/addon-links": "10.1.2",
|
|
88
89
|
"@storybook/addon-onboarding": "10.1.2",
|