@industry-theme/xterm-terminal-panel 0.5.27 → 0.5.29
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 +17 -0
- package/dist/index.js +25 -18
- package/dist/src/components/ThemedTerminal.d.ts.map +1 -1
- package/dist/src/panels/TabbedTerminalPanel.d.ts.map +1 -1
- package/dist/src/types/terminal.types.d.ts +1 -0
- package/dist/src/types/terminal.types.d.ts.map +1 -1
- package/dist/styles.css +23 -0
- package/package.json +1 -1
package/dist/index.css
CHANGED
|
@@ -108,6 +108,23 @@
|
|
|
108
108
|
background: #fff3;
|
|
109
109
|
}
|
|
110
110
|
|
|
111
|
+
.terminal-container-fix.flush-scrollbar .xterm-viewport {
|
|
112
|
+
margin-bottom: -10px;
|
|
113
|
+
margin-right: -10px;
|
|
114
|
+
padding-bottom: 10px;
|
|
115
|
+
padding-right: 10px;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.terminal-container-fix.flush-scrollbar.thin-scrollbar .xterm-viewport {
|
|
119
|
+
margin-right: -4px;
|
|
120
|
+
padding-right: 4px;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
.terminal-container-fix.flush-scrollbar.hide-scrollbar .xterm-viewport {
|
|
124
|
+
margin-right: 0;
|
|
125
|
+
padding-right: 0;
|
|
126
|
+
}
|
|
127
|
+
|
|
111
128
|
:root {
|
|
112
129
|
--terminal-bg: #1e1e1e;
|
|
113
130
|
--terminal-fg: #ccc;
|
package/dist/index.js
CHANGED
|
@@ -35,7 +35,7 @@ import {
|
|
|
35
35
|
// package.json
|
|
36
36
|
var package_default = {
|
|
37
37
|
name: "@industry-theme/xterm-terminal-panel",
|
|
38
|
-
version: "0.5.
|
|
38
|
+
version: "0.5.29",
|
|
39
39
|
description: "Industry-themed xterm.js terminal components with panel framework integration",
|
|
40
40
|
type: "module",
|
|
41
41
|
main: "dist/index.js",
|
|
@@ -346,6 +346,7 @@ var ThemedTerminal = forwardRef(({
|
|
|
346
346
|
defaultScrollLocked = false,
|
|
347
347
|
isVisible = true,
|
|
348
348
|
scrollbarStyle = "overlay",
|
|
349
|
+
scrollbarFlush = true,
|
|
349
350
|
onClose,
|
|
350
351
|
onDestroy,
|
|
351
352
|
onPopOut,
|
|
@@ -1121,7 +1122,7 @@ var ThemedTerminal = forwardRef(({
|
|
|
1121
1122
|
/* @__PURE__ */ jsxs2("div", {
|
|
1122
1123
|
ref: terminalRef,
|
|
1123
1124
|
...dropZoneProps,
|
|
1124
|
-
className: `terminal-container-fix ${scrollbarStyle === "hidden" ? "hide-scrollbar" : scrollbarStyle === "thin" ? "thin-scrollbar" : scrollbarStyle === "auto-hide" ? "auto-hide-scrollbar" : ""}`,
|
|
1125
|
+
className: `terminal-container-fix${scrollbarFlush ? " flush-scrollbar" : ""}${scrollbarStyle === "hidden" ? " hide-scrollbar" : scrollbarStyle === "thin" ? " thin-scrollbar" : scrollbarStyle === "auto-hide" ? " auto-hide-scrollbar" : ""}`,
|
|
1125
1126
|
style: {
|
|
1126
1127
|
flex: 1,
|
|
1127
1128
|
overflow: "hidden",
|
|
@@ -2265,27 +2266,33 @@ function TerminalTabContentInner(props, ref) {
|
|
|
2265
2266
|
actions.resizeTerminal(localSessionId, cols, rows);
|
|
2266
2267
|
}
|
|
2267
2268
|
}, [localSessionId, actions]);
|
|
2268
|
-
const handleReady = useCallback5(
|
|
2269
|
-
if (localSessionId
|
|
2270
|
-
|
|
2269
|
+
const handleReady = useCallback5((cols, rows) => {
|
|
2270
|
+
if (!localSessionId || !actions.resizeTerminal) {
|
|
2271
|
+
return;
|
|
2272
|
+
}
|
|
2273
|
+
const shouldForce = needsRefreshOnResizeRef.current;
|
|
2274
|
+
if (!shouldForce) {
|
|
2275
|
+
actions.resizeTerminal(localSessionId, cols, rows, false);
|
|
2276
|
+
return;
|
|
2277
|
+
}
|
|
2278
|
+
needsRefreshOnResizeRef.current = false;
|
|
2279
|
+
const restoreBufferAndResize = async () => {
|
|
2271
2280
|
let bufferRestored = false;
|
|
2272
|
-
if (
|
|
2273
|
-
|
|
2274
|
-
|
|
2275
|
-
|
|
2276
|
-
|
|
2277
|
-
|
|
2278
|
-
terminalRef.current.write(buffer);
|
|
2279
|
-
bufferRestored = true;
|
|
2280
|
-
}
|
|
2281
|
-
} catch (error) {
|
|
2282
|
-
console.warn("[TabbedTerminalPanel] Failed to restore buffer:", error);
|
|
2281
|
+
if (actions.getTerminalBuffer && terminalRef.current) {
|
|
2282
|
+
try {
|
|
2283
|
+
const buffer = await actions.getTerminalBuffer(localSessionId);
|
|
2284
|
+
if (buffer) {
|
|
2285
|
+
terminalRef.current.write(buffer);
|
|
2286
|
+
bufferRestored = true;
|
|
2283
2287
|
}
|
|
2288
|
+
} catch (error) {
|
|
2289
|
+
console.warn("[TabbedTerminalPanel] Failed to restore buffer:", error);
|
|
2284
2290
|
}
|
|
2285
2291
|
}
|
|
2286
|
-
const forceResize =
|
|
2292
|
+
const forceResize = !bufferRestored;
|
|
2287
2293
|
actions.resizeTerminal(localSessionId, cols, rows, forceResize);
|
|
2288
|
-
}
|
|
2294
|
+
};
|
|
2295
|
+
restoreBufferAndResize();
|
|
2289
2296
|
}, [localSessionId, actions]);
|
|
2290
2297
|
const handleLinkClick = useCallback5((url, modifiers) => {
|
|
2291
2298
|
if (localSessionId) {
|
|
@@ -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;AAGpC,OAAO,KAAK,EAGV,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,yBAAyB,CAAC;AAKjC,OAAO,8BAA8B,CAAC;AAEtC,MAAM,WAAW,4BAA6B,SAAQ,mBAAmB;IACvE,KAAK,EAAE,KAAK,CAAC;CACd;AAsBD,eAAO,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"ThemedTerminal.d.ts","sourceRoot":"","sources":["../../../src/components/ThemedTerminal.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAkC3D,OAAO,4BAA4B,CAAC;AAGpC,OAAO,KAAK,EAGV,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,yBAAyB,CAAC;AAKjC,OAAO,8BAA8B,CAAC;AAEtC,MAAM,WAAW,4BAA6B,SAAQ,mBAAmB;IACvE,KAAK,EAAE,KAAK,CAAC;CACd;AAsBD,eAAO,MAAM,cAAc,4HA0nC1B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabbedTerminalPanel.d.ts","sourceRoot":"","sources":["../../../src/panels/TabbedTerminalPanel.tsx"],"names":[],"mappings":"AAIA,OAAO,KAKN,MAAM,OAAO,CAAC;AAKf,OAAO,KAAK,EACV,wBAAwB,EACxB,WAAW,EAMZ,MAAM,gBAAgB,CAAC;AAkExB,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":"AAIA,OAAO,KAKN,MAAM,OAAO,CAAC;AAKf,OAAO,KAAK,EACV,wBAAwB,EACxB,WAAW,EAMZ,MAAM,gBAAgB,CAAC;AAkExB,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,gBAAgB,EAAE,MAAM,IAAI,CAAC;CAC9B;AA2mDD,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"}
|
|
@@ -51,6 +51,7 @@ export interface ThemedTerminalProps {
|
|
|
51
51
|
defaultScrollLocked?: boolean;
|
|
52
52
|
isVisible?: boolean;
|
|
53
53
|
scrollbarStyle?: 'overlay' | 'thin' | 'hidden' | 'auto-hide';
|
|
54
|
+
scrollbarFlush?: boolean;
|
|
54
55
|
onClose?: () => void;
|
|
55
56
|
onDestroy?: () => void;
|
|
56
57
|
onPopOut?: () => void;
|
|
@@ -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,WAAW,qBAAqB;IAEpC,QAAQ,EAAE,OAAO,CAAC;IAElB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;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;
|
|
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
|
@@ -130,6 +130,29 @@
|
|
|
130
130
|
background: rgba(255, 255, 255, 0.2);
|
|
131
131
|
}
|
|
132
132
|
|
|
133
|
+
/* Option 5: Flush scrollbar - eliminates empty space by using negative margins */
|
|
134
|
+
/* The scrollbar overlays the content edge instead of taking extra space */
|
|
135
|
+
.terminal-container-fix.flush-scrollbar .xterm-viewport {
|
|
136
|
+
/* Extend viewport width to compensate for scrollbar */
|
|
137
|
+
margin-right: -10px;
|
|
138
|
+
padding-right: 10px;
|
|
139
|
+
/* Extend viewport height to compensate for bottom spacing */
|
|
140
|
+
margin-bottom: -10px;
|
|
141
|
+
padding-bottom: 10px;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/* Adjust for thin scrollbar variant */
|
|
145
|
+
.terminal-container-fix.flush-scrollbar.thin-scrollbar .xterm-viewport {
|
|
146
|
+
margin-right: -4px;
|
|
147
|
+
padding-right: 4px;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/* No adjustment needed for hidden scrollbar */
|
|
151
|
+
.terminal-container-fix.flush-scrollbar.hide-scrollbar .xterm-viewport {
|
|
152
|
+
margin-right: 0;
|
|
153
|
+
padding-right: 0;
|
|
154
|
+
}
|
|
155
|
+
|
|
133
156
|
/* CSS Custom Properties for theming */
|
|
134
157
|
:root {
|
|
135
158
|
--terminal-bg: #1e1e1e;
|
package/package.json
CHANGED