@industry-theme/xterm-terminal-panel 0.10.1 → 0.10.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js
CHANGED
|
@@ -187,7 +187,7 @@ import {
|
|
|
187
187
|
// package.json
|
|
188
188
|
var package_default = {
|
|
189
189
|
name: "@industry-theme/xterm-terminal-panel",
|
|
190
|
-
version: "0.10.
|
|
190
|
+
version: "0.10.3",
|
|
191
191
|
description: "Industry-themed xterm.js terminal components with panel framework integration",
|
|
192
192
|
type: "module",
|
|
193
193
|
sideEffects: [
|
|
@@ -2609,7 +2609,7 @@ function useThemedTerminal() {
|
|
|
2609
2609
|
// src/components/TabBar/TabBar.tsx
|
|
2610
2610
|
import { useTheme as useTheme7 } from "@principal-ade/industry-theme";
|
|
2611
2611
|
import { Plus } from "lucide-react";
|
|
2612
|
-
import React, { useCallback as useCallback5, useState as useState3 } from "react";
|
|
2612
|
+
import React, { useCallback as useCallback5, useEffect as useEffect4, useState as useState3 } from "react";
|
|
2613
2613
|
|
|
2614
2614
|
// src/components/TabBar/TabButton.tsx
|
|
2615
2615
|
import { useTheme as useTheme6 } from "@principal-ade/industry-theme";
|
|
@@ -2627,6 +2627,7 @@ var TabButton = ({
|
|
|
2627
2627
|
onClick,
|
|
2628
2628
|
onClose,
|
|
2629
2629
|
keyboardHint,
|
|
2630
|
+
keyboardHintVisible = true,
|
|
2630
2631
|
renderAccessory,
|
|
2631
2632
|
renderIcon,
|
|
2632
2633
|
renderLabel,
|
|
@@ -2666,10 +2667,7 @@ var TabButton = ({
|
|
|
2666
2667
|
// just when the button is shown) so the layout doesn't shift on hover.
|
|
2667
2668
|
paddingLeft: closable ? `${CLOSE_BUTTON_GUTTER}px` : "8px",
|
|
2668
2669
|
backgroundColor: isActive ? theme.colors.background : theme.colors.backgroundDark ?? theme.colors.backgroundSecondary,
|
|
2669
|
-
|
|
2670
|
-
// it, the active tab leaves a gap so it reads as connected to the
|
|
2671
|
-
// terminal content below.
|
|
2672
|
-
borderBottom: isActive ? "1px solid transparent" : `1px solid ${theme.colors.border}`,
|
|
2670
|
+
borderBottom: `1px solid ${theme.colors.border}`,
|
|
2673
2671
|
cursor: draggable ? isBeingDragged ? "grabbing" : "grab" : "pointer",
|
|
2674
2672
|
opacity: isBeingDragged ? 0.55 : 1,
|
|
2675
2673
|
userSelect: "none",
|
|
@@ -2766,7 +2764,8 @@ var TabButton = ({
|
|
|
2766
2764
|
fontSize: theme.fontSizes[0],
|
|
2767
2765
|
color: theme.colors.textSecondary,
|
|
2768
2766
|
opacity: 0.6,
|
|
2769
|
-
flexShrink: 0
|
|
2767
|
+
flexShrink: 0,
|
|
2768
|
+
visibility: keyboardHintVisible ? "visible" : "hidden"
|
|
2770
2769
|
},
|
|
2771
2770
|
children: keyboardHint
|
|
2772
2771
|
}
|
|
@@ -2800,6 +2799,23 @@ var TabBar = ({
|
|
|
2800
2799
|
const [hoveredTabId, setHoveredTabId] = useState3(null);
|
|
2801
2800
|
const [draggedTabId, setDraggedTabId] = useState3(null);
|
|
2802
2801
|
const [dropTarget, setDropTarget] = useState3(null);
|
|
2802
|
+
const [isCommandPressed, setIsCommandPressed] = useState3(false);
|
|
2803
|
+
useEffect4(() => {
|
|
2804
|
+
const handleKeyChange = (event) => {
|
|
2805
|
+
setIsCommandPressed(event.metaKey);
|
|
2806
|
+
};
|
|
2807
|
+
const resetCommandPressed = () => setIsCommandPressed(false);
|
|
2808
|
+
window.addEventListener("keydown", handleKeyChange, true);
|
|
2809
|
+
window.addEventListener("keyup", handleKeyChange, true);
|
|
2810
|
+
window.addEventListener("blur", resetCommandPressed);
|
|
2811
|
+
document.addEventListener("visibilitychange", resetCommandPressed);
|
|
2812
|
+
return () => {
|
|
2813
|
+
window.removeEventListener("keydown", handleKeyChange, true);
|
|
2814
|
+
window.removeEventListener("keyup", handleKeyChange, true);
|
|
2815
|
+
window.removeEventListener("blur", resetCommandPressed);
|
|
2816
|
+
document.removeEventListener("visibilitychange", resetCommandPressed);
|
|
2817
|
+
};
|
|
2818
|
+
}, []);
|
|
2803
2819
|
const reorderEnabled = onTabReorder !== void 0 && (enableTabReorder ?? true);
|
|
2804
2820
|
const isReorderable = useCallback5(
|
|
2805
2821
|
(tabId) => reorderEnabled && (canReorderTab ? canReorderTab(tabId) : true),
|
|
@@ -2899,6 +2915,7 @@ var TabBar = ({
|
|
|
2899
2915
|
flex: 1,
|
|
2900
2916
|
overflow: "hidden",
|
|
2901
2917
|
backgroundColor: theme.colors.backgroundSecondary,
|
|
2918
|
+
borderBottom: tabs.length === 0 ? `1px solid ${theme.colors.border}` : void 0,
|
|
2902
2919
|
boxSizing: "border-box"
|
|
2903
2920
|
},
|
|
2904
2921
|
onDragLeave: (e) => {
|
|
@@ -2936,6 +2953,7 @@ var TabBar = ({
|
|
|
2936
2953
|
onClick: () => onTabClick(tab.id),
|
|
2937
2954
|
onClose: () => onTabClose(tab.id),
|
|
2938
2955
|
keyboardHint: showKeyboardHints && index < 9 ? `\u2318 ${index + 1}` : void 0,
|
|
2956
|
+
keyboardHintVisible: isCommandPressed,
|
|
2939
2957
|
renderAccessory: renderTabAccessory,
|
|
2940
2958
|
renderIcon: renderTabIcon,
|
|
2941
2959
|
renderLabel: renderTabLabel,
|
|
@@ -3021,14 +3039,14 @@ function isTabOfType(tab, contentType) {
|
|
|
3021
3039
|
}
|
|
3022
3040
|
|
|
3023
3041
|
// src/hooks/useTabKeyboardShortcuts.ts
|
|
3024
|
-
import { useEffect as
|
|
3042
|
+
import { useEffect as useEffect5 } from "react";
|
|
3025
3043
|
var useTabKeyboardShortcuts = ({
|
|
3026
3044
|
onNewTab,
|
|
3027
3045
|
onCloseTab,
|
|
3028
3046
|
onSwitchToTab,
|
|
3029
3047
|
enabled = true
|
|
3030
3048
|
}) => {
|
|
3031
|
-
|
|
3049
|
+
useEffect5(() => {
|
|
3032
3050
|
if (!enabled) return;
|
|
3033
3051
|
const handleKeyDown = (e) => {
|
|
3034
3052
|
const isCmdOrCtrl = e.metaKey || e.ctrlKey;
|
|
@@ -3063,7 +3081,7 @@ import { Terminal as TerminalIcon2, Box, Boxes } from "lucide-react";
|
|
|
3063
3081
|
import React3, {
|
|
3064
3082
|
useState as useState4,
|
|
3065
3083
|
useCallback as useCallback6,
|
|
3066
|
-
useEffect as
|
|
3084
|
+
useEffect as useEffect6,
|
|
3067
3085
|
useRef as useRef5
|
|
3068
3086
|
} from "react";
|
|
3069
3087
|
|
|
@@ -3402,7 +3420,7 @@ var TabbedTerminalPanelInner = ({
|
|
|
3402
3420
|
const customTabs = initialTabs.filter((tab) => tab.contentType !== "terminal");
|
|
3403
3421
|
return JSON.stringify(customTabs);
|
|
3404
3422
|
}, [initialTabs]);
|
|
3405
|
-
|
|
3423
|
+
useEffect6(() => {
|
|
3406
3424
|
const customTabsFromProp = initialTabs.filter((tab) => tab.contentType !== "terminal");
|
|
3407
3425
|
setOwnedTabs((prevTabs) => {
|
|
3408
3426
|
const prevCustomTabs = prevTabs.filter((tab) => tab.contentType !== "terminal");
|
|
@@ -3423,7 +3441,7 @@ var TabbedTerminalPanelInner = ({
|
|
|
3423
3441
|
return [...kept, ...added];
|
|
3424
3442
|
});
|
|
3425
3443
|
}, [customTabsKey]);
|
|
3426
|
-
|
|
3444
|
+
useEffect6(() => {
|
|
3427
3445
|
if (!requestFocusTabId) {
|
|
3428
3446
|
return;
|
|
3429
3447
|
}
|
|
@@ -3581,12 +3599,12 @@ var TabbedTerminalPanelInner = ({
|
|
|
3581
3599
|
return [];
|
|
3582
3600
|
});
|
|
3583
3601
|
}, []);
|
|
3584
|
-
|
|
3602
|
+
useEffect6(() => {
|
|
3585
3603
|
if (hasInitializedRef.current) return;
|
|
3586
3604
|
hasInitializedRef.current = true;
|
|
3587
3605
|
restoreOwnedSessions();
|
|
3588
3606
|
}, []);
|
|
3589
|
-
|
|
3607
|
+
useEffect6(() => {
|
|
3590
3608
|
const handleSessionCreated2 = (event) => {
|
|
3591
3609
|
const customEvent = event;
|
|
3592
3610
|
const { context: context2 } = customEvent.detail || {};
|
|
@@ -3600,7 +3618,7 @@ var TabbedTerminalPanelInner = ({
|
|
|
3600
3618
|
window.removeEventListener("terminal-session-created", handleSessionCreated2);
|
|
3601
3619
|
};
|
|
3602
3620
|
}, [terminalContext, restoreOwnedSessions]);
|
|
3603
|
-
|
|
3621
|
+
useEffect6(() => {
|
|
3604
3622
|
if (showAllTerminals) {
|
|
3605
3623
|
fetchForeignSessions();
|
|
3606
3624
|
} else {
|
|
@@ -3733,7 +3751,7 @@ var TabbedTerminalPanelInner = ({
|
|
|
3733
3751
|
},
|
|
3734
3752
|
[activeTabId, sessionIds, actions, onTabsChange, isForeignTab, ownedTabs, foreignTabs]
|
|
3735
3753
|
);
|
|
3736
|
-
|
|
3754
|
+
useEffect6(() => {
|
|
3737
3755
|
if (!requestCloseTabId) return;
|
|
3738
3756
|
closeTab(requestCloseTabId);
|
|
3739
3757
|
}, [requestCloseTabId]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabBar.d.ts","sourceRoot":"","sources":["../../../../src/components/TabBar/TabBar.tsx"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"TabBar.d.ts","sourceRoot":"","sources":["../../../../src/components/TabBar/TabBar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAEhE,OAAO,KAAK,EAAE,WAAW,EAAsB,MAAM,iBAAiB,CAAC;AAwBvE,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAqTxC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabButton.d.ts","sourceRoot":"","sources":["../../../../src/components/TabBar/TabButton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAiBtD,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,
|
|
1
|
+
{"version":3,"file":"TabButton.d.ts","sourceRoot":"","sources":["../../../../src/components/TabBar/TabButton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAiBtD,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAgL9C,CAAC"}
|
package/dist/src/types/tab.d.ts
CHANGED
|
@@ -43,6 +43,7 @@ export interface TabButtonProps {
|
|
|
43
43
|
onClick: () => void;
|
|
44
44
|
onClose: () => void;
|
|
45
45
|
keyboardHint?: string;
|
|
46
|
+
keyboardHintVisible?: boolean;
|
|
46
47
|
renderAccessory?: (tab: Tab) => ReactNode;
|
|
47
48
|
renderIcon?: (tab: Tab) => ReactNode;
|
|
48
49
|
renderLabel?: (tab: Tab) => ReactNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tab.d.ts","sourceRoot":"","sources":["../../../src/types/tab.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tab.d.ts","sourceRoot":"","sources":["../../../src/types/tab.ts"],"names":[],"mappings":"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"}
|