@industry-theme/xterm-terminal-panel 0.7.1 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -2,6 +2,8 @@ export { ThemedTerminal } from './src/components/ThemedTerminal';
2
2
  export { ThemedTerminalWithProvider } from './src/components/ThemedTerminalWithProvider';
3
3
  export { WorkingOverlay } from './src/components/WorkingOverlay';
4
4
  export type { WorkingOverlayProps } from './src/components/WorkingOverlay';
5
+ export { SelectionDragChip } from './src/components/SelectionDragChip';
6
+ export type { SelectionDragChipProps } from './src/components/SelectionDragChip';
5
7
  export { XtermRenderer } from './src/renderer/XtermRenderer';
6
8
  export type { XtermRendererProps } from './src/renderer/XtermRenderer';
7
9
  export type { TerminalRendererProps, TerminalRendererHandle, TerminalRendererComponent, } from './src/renderer/TerminalRenderer';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  // src/components/ThemedTerminal.tsx
2
2
  import {
3
- DATA_TYPES,
3
+ DATA_TYPES as DATA_TYPES2,
4
4
  sanitizePath,
5
5
  useDropZone
6
6
  } from "@principal-ade/panel-framework-core";
@@ -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.7.1",
38
+ version: "0.8.0",
39
39
  description: "Industry-themed xterm.js terminal components with panel framework integration",
40
40
  type: "module",
41
41
  main: "dist/index.js",
@@ -233,8 +233,88 @@ function getTerminalCSSVariables(theme) {
233
233
  };
234
234
  }
235
235
 
236
- // src/components/WorkingOverlay.tsx
236
+ // src/components/SelectionDragChip.tsx
237
+ import {
238
+ createDragPreview,
239
+ DATA_TYPES,
240
+ DRAG_ACTIONS,
241
+ PANEL_TYPES,
242
+ useDraggable
243
+ } from "@principal-ade/panel-framework-core";
244
+ import { GripVertical } from "lucide-react";
237
245
  import { jsx, jsxs } from "react/jsx-runtime";
246
+ function SelectionDragChip({
247
+ text,
248
+ x,
249
+ y,
250
+ theme,
251
+ label = "Drag to notes",
252
+ sourcePanel = PANEL_TYPES.TERMINAL,
253
+ metadata,
254
+ onDragStart,
255
+ onDragEnd
256
+ }) {
257
+ const snippet = text.length > 80 ? `${text.slice(0, 77)}…` : text;
258
+ const { isDragging, ...dragProps } = useDraggable({
259
+ dataType: DATA_TYPES.TEXT_SELECTION,
260
+ primaryData: text,
261
+ sourcePanel,
262
+ suggestedActions: [DRAG_ACTIONS.INSERT_CONTENT, DRAG_ACTIONS.REFERENCE],
263
+ metadata: { snippet, ...metadata },
264
+ dragPreview: createDragPreview(snippet, {
265
+ backgroundColor: theme.colors.primary,
266
+ color: "#ffffff"
267
+ })
268
+ });
269
+ const style = {
270
+ position: "absolute",
271
+ left: x,
272
+ top: y,
273
+ zIndex: 1001,
274
+ display: "flex",
275
+ alignItems: "center",
276
+ gap: "4px",
277
+ padding: "3px 8px 3px 4px",
278
+ borderRadius: "6px",
279
+ border: `1px solid ${theme.colors.border}`,
280
+ backgroundColor: theme.colors.backgroundSecondary,
281
+ color: theme.colors.text,
282
+ fontSize: "11px",
283
+ fontWeight: 500,
284
+ lineHeight: 1,
285
+ cursor: "grab",
286
+ userSelect: "none",
287
+ boxShadow: "0 2px 8px rgba(0, 0, 0, 0.35)",
288
+ opacity: isDragging ? 0.5 : 1,
289
+ transition: "opacity 0.12s ease",
290
+ whiteSpace: "nowrap"
291
+ };
292
+ return /* @__PURE__ */ jsxs("div", {
293
+ ...dragProps,
294
+ onDragStart: (e) => {
295
+ dragProps.onDragStart(e);
296
+ onDragStart?.();
297
+ },
298
+ onDragEnd: (e) => {
299
+ dragProps.onDragEnd(e);
300
+ onDragEnd?.();
301
+ },
302
+ onMouseDown: (e) => e.stopPropagation(),
303
+ style,
304
+ title: `Drag selection — ${label}`,
305
+ "aria-label": `Drag selected terminal text — ${label}`,
306
+ children: [
307
+ /* @__PURE__ */ jsx(GripVertical, {
308
+ size: 13,
309
+ color: theme.colors.textSecondary
310
+ }),
311
+ label
312
+ ]
313
+ });
314
+ }
315
+
316
+ // src/components/WorkingOverlay.tsx
317
+ import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
238
318
  var WorkingOverlay = ({
239
319
  theme,
240
320
  message = "Agent working...",
@@ -247,7 +327,7 @@ var WorkingOverlay = ({
247
327
  onCloseComplete();
248
328
  }
249
329
  };
250
- return /* @__PURE__ */ jsxs("div", {
330
+ return /* @__PURE__ */ jsxs2("div", {
251
331
  className: `terminal-working-overlay${isClosing ? " closing" : ""}`,
252
332
  onAnimationEnd: handleAnimationEnd,
253
333
  style: {
@@ -266,14 +346,14 @@ var WorkingOverlay = ({
266
346
  zIndex: 10
267
347
  },
268
348
  children: [
269
- /* @__PURE__ */ jsxs("div", {
349
+ /* @__PURE__ */ jsxs2("div", {
270
350
  style: {
271
351
  display: "flex",
272
352
  gap: "6px",
273
353
  marginBottom: "8px"
274
354
  },
275
355
  children: [
276
- /* @__PURE__ */ jsx("div", {
356
+ /* @__PURE__ */ jsx2("div", {
277
357
  className: "working-dot",
278
358
  style: {
279
359
  width: "8px",
@@ -283,7 +363,7 @@ var WorkingOverlay = ({
283
363
  animation: "pulse 1.4s ease-in-out infinite"
284
364
  }
285
365
  }),
286
- /* @__PURE__ */ jsx("div", {
366
+ /* @__PURE__ */ jsx2("div", {
287
367
  className: "working-dot",
288
368
  style: {
289
369
  width: "8px",
@@ -293,7 +373,7 @@ var WorkingOverlay = ({
293
373
  animation: "pulse 1.4s ease-in-out 0.2s infinite"
294
374
  }
295
375
  }),
296
- /* @__PURE__ */ jsx("div", {
376
+ /* @__PURE__ */ jsx2("div", {
297
377
  className: "working-dot",
298
378
  style: {
299
379
  width: "8px",
@@ -305,7 +385,7 @@ var WorkingOverlay = ({
305
385
  })
306
386
  ]
307
387
  }),
308
- /* @__PURE__ */ jsx("div", {
388
+ /* @__PURE__ */ jsx2("div", {
309
389
  style: {
310
390
  fontSize: "15px",
311
391
  fontWeight: "500",
@@ -314,7 +394,7 @@ var WorkingOverlay = ({
314
394
  },
315
395
  children: message
316
396
  }),
317
- subtitle && /* @__PURE__ */ jsx("div", {
397
+ subtitle && /* @__PURE__ */ jsx2("div", {
318
398
  style: {
319
399
  fontSize: "13px",
320
400
  color: theme.colors.textSecondary,
@@ -327,7 +407,7 @@ var WorkingOverlay = ({
327
407
  };
328
408
 
329
409
  // src/components/ThemedTerminal.tsx
330
- import { jsx as jsx2, jsxs as jsxs2, Fragment } from "react/jsx-runtime";
410
+ import { jsx as jsx3, jsxs as jsxs3, Fragment } from "react/jsx-runtime";
331
411
  var SCROLL_DEBOUNCE_MS = 1000;
332
412
  var DEBUG_RESIZE = true;
333
413
  var ThemedTerminal = forwardRef(({
@@ -366,6 +446,10 @@ var ThemedTerminal = forwardRef(({
366
446
  fontSize = 14,
367
447
  enableSearch = true,
368
448
  enableWebLinks = true,
449
+ enableSelectionDrag = true,
450
+ selectionDragLabel = "Drag to notes",
451
+ selectionDragSourcePanel,
452
+ selectionDragMetadata,
369
453
  allowTransparency = false,
370
454
  backgroundColor
371
455
  }, ref) => {
@@ -373,6 +457,7 @@ var ThemedTerminal = forwardRef(({
373
457
  const terminalRef = useRef(null);
374
458
  const [terminal, setTerminal] = useState(null);
375
459
  const [isClosingOverlay, setIsClosingOverlay] = useState(false);
460
+ const [selectionDrag, setSelectionDrag] = useState(null);
376
461
  const fitAddonRef = useRef(null);
377
462
  const searchAddonRef = useRef(null);
378
463
  const webglAddonRef = useRef(null);
@@ -491,14 +576,14 @@ var ThemedTerminal = forwardRef(({
491
576
  const { isDragOver, ...dropZoneProps } = useDropZone({
492
577
  handlers: [
493
578
  {
494
- dataType: [DATA_TYPES.FILE_PATH, DATA_TYPES.DIRECTORY_PATH],
579
+ dataType: [DATA_TYPES2.FILE_PATH, DATA_TYPES2.DIRECTORY_PATH],
495
580
  onDrop: (data) => {
496
581
  const safePath = sanitizePath(data.primaryData);
497
582
  handleDroppedContent(safePath);
498
583
  }
499
584
  },
500
585
  {
501
- dataType: DATA_TYPES.TEXT_SELECTION,
586
+ dataType: DATA_TYPES2.TEXT_SELECTION,
502
587
  onDrop: (data) => {
503
588
  handleDroppedContent(data.primaryData);
504
589
  }
@@ -924,6 +1009,43 @@ var ThemedTerminal = forwardRef(({
924
1009
  disposable.dispose();
925
1010
  };
926
1011
  }, [terminal, onResize]);
1012
+ useEffect(() => {
1013
+ if (!terminal || !enableSelectionDrag) {
1014
+ setSelectionDrag(null);
1015
+ return;
1016
+ }
1017
+ const el = terminalRef.current;
1018
+ if (!el)
1019
+ return;
1020
+ const updateFromSelection = (clientX, clientY) => {
1021
+ const text = terminal.getSelection();
1022
+ if (!text || text.trim().length === 0) {
1023
+ setSelectionDrag(null);
1024
+ return;
1025
+ }
1026
+ const rect = el.getBoundingClientRect();
1027
+ const x = Math.min(Math.max(clientX - rect.left + 8, 4), rect.width - 110);
1028
+ const y = Math.min(Math.max(clientY - rect.top + 12, 4), rect.height - 28);
1029
+ setSelectionDrag({ text, x, y });
1030
+ };
1031
+ const handleMouseUp = (e) => {
1032
+ const { clientX, clientY } = e;
1033
+ requestAnimationFrame(() => updateFromSelection(clientX, clientY));
1034
+ };
1035
+ el.addEventListener("mouseup", handleMouseUp);
1036
+ const selDisposable = terminal.onSelectionChange(() => {
1037
+ const text = terminal.getSelection();
1038
+ if (!text || text.trim().length === 0) {
1039
+ setSelectionDrag(null);
1040
+ }
1041
+ });
1042
+ const scrollDisposable = terminal.onScroll(() => setSelectionDrag(null));
1043
+ return () => {
1044
+ el.removeEventListener("mouseup", handleMouseUp);
1045
+ selDisposable.dispose();
1046
+ scrollDisposable.dispose();
1047
+ };
1048
+ }, [terminal, enableSelectionDrag]);
927
1049
  useEffect(() => {
928
1050
  const terminalElement = terminalRef.current;
929
1051
  if (!terminalElement)
@@ -976,7 +1098,7 @@ var ThemedTerminal = forwardRef(({
976
1098
  }
977
1099
  }
978
1100
  };
979
- return /* @__PURE__ */ jsxs2("div", {
1101
+ return /* @__PURE__ */ jsxs3("div", {
980
1102
  className,
981
1103
  style: {
982
1104
  display: "flex",
@@ -986,7 +1108,7 @@ var ThemedTerminal = forwardRef(({
986
1108
  backgroundColor: allowTransparency ? transparentBg ?? "transparent" : theme.colors.background
987
1109
  },
988
1110
  children: [
989
- !hideHeader && /* @__PURE__ */ jsxs2("div", {
1111
+ !hideHeader && /* @__PURE__ */ jsxs3("div", {
990
1112
  style: {
991
1113
  display: "flex",
992
1114
  alignItems: "center",
@@ -996,14 +1118,14 @@ var ThemedTerminal = forwardRef(({
996
1118
  backgroundColor: allowTransparency ? "transparent" : theme.colors.backgroundSecondary || theme.colors.background
997
1119
  },
998
1120
  children: [
999
- /* @__PURE__ */ jsxs2("div", {
1121
+ /* @__PURE__ */ jsxs3("div", {
1000
1122
  style: { display: "flex", alignItems: "center", gap: "8px" },
1001
1123
  children: [
1002
- /* @__PURE__ */ jsx2(TerminalIcon, {
1124
+ /* @__PURE__ */ jsx3(TerminalIcon, {
1003
1125
  size: 16,
1004
1126
  color: theme.colors.text
1005
1127
  }),
1006
- /* @__PURE__ */ jsx2("span", {
1128
+ /* @__PURE__ */ jsx3("span", {
1007
1129
  style: {
1008
1130
  fontSize: "14px",
1009
1131
  color: theme.colors.text,
@@ -1011,23 +1133,23 @@ var ThemedTerminal = forwardRef(({
1011
1133
  },
1012
1134
  children: headerTitle
1013
1135
  }),
1014
- headerSubtitle && /* @__PURE__ */ jsx2("span", {
1136
+ headerSubtitle && /* @__PURE__ */ jsx3("span", {
1015
1137
  style: {
1016
1138
  fontSize: "12px",
1017
1139
  color: theme.colors.textSecondary
1018
1140
  },
1019
1141
  children: headerSubtitle
1020
1142
  }),
1021
- headerBadge && /* @__PURE__ */ jsxs2(Fragment, {
1143
+ headerBadge && /* @__PURE__ */ jsxs3(Fragment, {
1022
1144
  children: [
1023
- /* @__PURE__ */ jsx2("span", {
1145
+ /* @__PURE__ */ jsx3("span", {
1024
1146
  style: {
1025
1147
  fontSize: "12px",
1026
1148
  color: theme.colors.textSecondary
1027
1149
  },
1028
1150
  children: "•"
1029
1151
  }),
1030
- /* @__PURE__ */ jsx2("span", {
1152
+ /* @__PURE__ */ jsx3("span", {
1031
1153
  style: {
1032
1154
  fontSize: "12px",
1033
1155
  color: headerBadge.color || theme.colors.primary
@@ -1038,10 +1160,10 @@ var ThemedTerminal = forwardRef(({
1038
1160
  })
1039
1161
  ]
1040
1162
  }),
1041
- /* @__PURE__ */ jsxs2("div", {
1163
+ /* @__PURE__ */ jsxs3("div", {
1042
1164
  style: { display: "flex", gap: "8px" },
1043
1165
  children: [
1044
- onPopOut && /* @__PURE__ */ jsx2("button", {
1166
+ onPopOut && /* @__PURE__ */ jsx3("button", {
1045
1167
  type: "button",
1046
1168
  "aria-label": "Pop out terminal to new window",
1047
1169
  onClick: onPopOut,
@@ -1066,11 +1188,11 @@ var ThemedTerminal = forwardRef(({
1066
1188
  e.currentTarget.style.color = theme.colors.textSecondary;
1067
1189
  },
1068
1190
  title: "Open terminal in new window",
1069
- children: /* @__PURE__ */ jsx2(ExternalLink, {
1191
+ children: /* @__PURE__ */ jsx3(ExternalLink, {
1070
1192
  size: 16
1071
1193
  })
1072
1194
  }),
1073
- onClose && /* @__PURE__ */ jsx2("button", {
1195
+ onClose && /* @__PURE__ */ jsx3("button", {
1074
1196
  type: "button",
1075
1197
  "aria-label": "Hide terminal",
1076
1198
  onClick: onClose,
@@ -1095,11 +1217,11 @@ var ThemedTerminal = forwardRef(({
1095
1217
  e.currentTarget.style.color = theme.colors.textSecondary;
1096
1218
  },
1097
1219
  title: "Hide terminal (keeps session running)",
1098
- children: /* @__PURE__ */ jsx2(ChevronDown, {
1220
+ children: /* @__PURE__ */ jsx3(ChevronDown, {
1099
1221
  size: 16
1100
1222
  })
1101
1223
  }),
1102
- onDestroy && /* @__PURE__ */ jsx2("button", {
1224
+ onDestroy && /* @__PURE__ */ jsx3("button", {
1103
1225
  type: "button",
1104
1226
  "aria-label": "Close terminal session",
1105
1227
  onClick: handleDestroy,
@@ -1124,7 +1246,7 @@ var ThemedTerminal = forwardRef(({
1124
1246
  e.currentTarget.style.color = theme.colors.textSecondary;
1125
1247
  },
1126
1248
  title: "Close terminal session (terminate process)",
1127
- children: /* @__PURE__ */ jsx2(X, {
1249
+ children: /* @__PURE__ */ jsx3(X, {
1128
1250
  size: 16
1129
1251
  })
1130
1252
  })
@@ -1132,7 +1254,7 @@ var ThemedTerminal = forwardRef(({
1132
1254
  })
1133
1255
  ]
1134
1256
  }),
1135
- /* @__PURE__ */ jsxs2("div", {
1257
+ /* @__PURE__ */ jsxs3("div", {
1136
1258
  ref: terminalRef,
1137
1259
  ...dropZoneProps,
1138
1260
  className: `terminal-container-fix${scrollbarFlush ? " flush-scrollbar" : ""}${scrollbarStyle === "hidden" ? " hide-scrollbar" : scrollbarStyle === "thin" ? " thin-scrollbar" : scrollbarStyle === "auto-hide" ? " auto-hide-scrollbar" : ""}`,
@@ -1145,7 +1267,7 @@ var ThemedTerminal = forwardRef(({
1145
1267
  minHeight: 0
1146
1268
  },
1147
1269
  children: [
1148
- isDragOver && /* @__PURE__ */ jsx2("div", {
1270
+ isDragOver && /* @__PURE__ */ jsx3("div", {
1149
1271
  style: {
1150
1272
  position: "absolute",
1151
1273
  inset: 0,
@@ -1158,7 +1280,7 @@ var ThemedTerminal = forwardRef(({
1158
1280
  pointerEvents: "none",
1159
1281
  zIndex: 1000
1160
1282
  },
1161
- children: /* @__PURE__ */ jsx2("div", {
1283
+ children: /* @__PURE__ */ jsx3("div", {
1162
1284
  style: {
1163
1285
  padding: "8px 16px",
1164
1286
  background: "#3b82f6",
@@ -1170,7 +1292,17 @@ var ThemedTerminal = forwardRef(({
1170
1292
  children: "Drop to insert"
1171
1293
  })
1172
1294
  }),
1173
- overlayState && /* @__PURE__ */ jsxs2("div", {
1295
+ enableSelectionDrag && selectionDrag && /* @__PURE__ */ jsx3(SelectionDragChip, {
1296
+ text: selectionDrag.text,
1297
+ x: selectionDrag.x,
1298
+ y: selectionDrag.y,
1299
+ theme,
1300
+ label: selectionDragLabel,
1301
+ sourcePanel: selectionDragSourcePanel,
1302
+ metadata: selectionDragMetadata,
1303
+ onDragEnd: () => setSelectionDrag(null)
1304
+ }),
1305
+ overlayState && /* @__PURE__ */ jsxs3("div", {
1174
1306
  style: {
1175
1307
  position: "absolute",
1176
1308
  top: 0,
@@ -1188,11 +1320,11 @@ var ThemedTerminal = forwardRef(({
1188
1320
  zIndex: 10
1189
1321
  },
1190
1322
  children: [
1191
- /* @__PURE__ */ jsx2(Monitor, {
1323
+ /* @__PURE__ */ jsx3(Monitor, {
1192
1324
  size: 48,
1193
1325
  color: theme.colors.textSecondary
1194
1326
  }),
1195
- /* @__PURE__ */ jsx2("div", {
1327
+ /* @__PURE__ */ jsx3("div", {
1196
1328
  style: {
1197
1329
  fontSize: "16px",
1198
1330
  fontWeight: "500",
@@ -1201,7 +1333,7 @@ var ThemedTerminal = forwardRef(({
1201
1333
  },
1202
1334
  children: overlayState.message
1203
1335
  }),
1204
- overlayState.subtitle && /* @__PURE__ */ jsx2("div", {
1336
+ overlayState.subtitle && /* @__PURE__ */ jsx3("div", {
1205
1337
  style: {
1206
1338
  fontSize: "14px",
1207
1339
  color: theme.colors.textSecondary,
@@ -1210,13 +1342,13 @@ var ThemedTerminal = forwardRef(({
1210
1342
  },
1211
1343
  children: overlayState.subtitle
1212
1344
  }),
1213
- overlayState.actions && overlayState.actions.length > 0 && /* @__PURE__ */ jsx2("div", {
1345
+ overlayState.actions && overlayState.actions.length > 0 && /* @__PURE__ */ jsx3("div", {
1214
1346
  style: {
1215
1347
  display: "flex",
1216
1348
  gap: "12px",
1217
1349
  marginTop: "8px"
1218
1350
  },
1219
- children: overlayState.actions.map((action) => /* @__PURE__ */ jsxs2("button", {
1351
+ children: overlayState.actions.map((action) => /* @__PURE__ */ jsxs3("button", {
1220
1352
  type: "button",
1221
1353
  onClick: action.onClick,
1222
1354
  style: {
@@ -1255,7 +1387,7 @@ var ThemedTerminal = forwardRef(({
1255
1387
  })
1256
1388
  ]
1257
1389
  }),
1258
- showWorkingOverlay && !overlayState && /* @__PURE__ */ jsx2(WorkingOverlay, {
1390
+ showWorkingOverlay && !overlayState && /* @__PURE__ */ jsx3(WorkingOverlay, {
1259
1391
  theme,
1260
1392
  message: workingMessage,
1261
1393
  subtitle: workingSubtitle,
@@ -1271,10 +1403,10 @@ ThemedTerminal.displayName = "ThemedTerminal";
1271
1403
  // src/components/ThemedTerminalWithProvider.tsx
1272
1404
  import { useTheme } from "@principal-ade/industry-theme";
1273
1405
  import { forwardRef as forwardRef2 } from "react";
1274
- import { jsx as jsx3 } from "react/jsx-runtime";
1406
+ import { jsx as jsx4 } from "react/jsx-runtime";
1275
1407
  var ThemedTerminalWithProvider = forwardRef2((props, ref) => {
1276
1408
  const { theme } = useTheme();
1277
- return /* @__PURE__ */ jsx3(ThemedTerminal, {
1409
+ return /* @__PURE__ */ jsx4(ThemedTerminal, {
1278
1410
  ref,
1279
1411
  theme,
1280
1412
  ...props
@@ -1283,7 +1415,7 @@ var ThemedTerminalWithProvider = forwardRef2((props, ref) => {
1283
1415
  ThemedTerminalWithProvider.displayName = "ThemedTerminalWithProvider";
1284
1416
  // src/renderer/XtermRenderer.tsx
1285
1417
  import { forwardRef as forwardRef3, useImperativeHandle as useImperativeHandle2, useRef as useRef2 } from "react";
1286
- import { jsx as jsx4 } from "react/jsx-runtime";
1418
+ import { jsx as jsx5 } from "react/jsx-runtime";
1287
1419
  var XtermRenderer = forwardRef3((props, ref) => {
1288
1420
  const {
1289
1421
  transparent,
@@ -1318,7 +1450,7 @@ var XtermRenderer = forwardRef3((props, ref) => {
1318
1450
  },
1319
1451
  isScrollLocked: () => innerRef.current?.isScrollLocked() ?? false
1320
1452
  }), []);
1321
- return /* @__PURE__ */ jsx4(ThemedTerminalWithProvider, {
1453
+ return /* @__PURE__ */ jsx5(ThemedTerminalWithProvider, {
1322
1454
  ref: innerRef,
1323
1455
  ...rest,
1324
1456
  enableSearch,
@@ -1344,8 +1476,8 @@ import {
1344
1476
 
1345
1477
  // src/components/TerminalOverlay.tsx
1346
1478
  import { Monitor as Monitor2 } from "lucide-react";
1347
- import { jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
1348
- var TerminalOverlay = ({ state, theme }) => /* @__PURE__ */ jsxs3("div", {
1479
+ import { jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
1480
+ var TerminalOverlay = ({ state, theme }) => /* @__PURE__ */ jsxs4("div", {
1349
1481
  style: {
1350
1482
  position: "absolute",
1351
1483
  top: 0,
@@ -1363,11 +1495,11 @@ var TerminalOverlay = ({ state, theme }) => /* @__PURE__ */ jsxs3("div", {
1363
1495
  zIndex: 10
1364
1496
  },
1365
1497
  children: [
1366
- /* @__PURE__ */ jsx5(Monitor2, {
1498
+ /* @__PURE__ */ jsx6(Monitor2, {
1367
1499
  size: 48,
1368
1500
  color: theme.colors.textSecondary
1369
1501
  }),
1370
- /* @__PURE__ */ jsx5("div", {
1502
+ /* @__PURE__ */ jsx6("div", {
1371
1503
  style: {
1372
1504
  fontSize: "16px",
1373
1505
  fontWeight: "500",
@@ -1376,7 +1508,7 @@ var TerminalOverlay = ({ state, theme }) => /* @__PURE__ */ jsxs3("div", {
1376
1508
  },
1377
1509
  children: state.message
1378
1510
  }),
1379
- state.subtitle && /* @__PURE__ */ jsx5("div", {
1511
+ state.subtitle && /* @__PURE__ */ jsx6("div", {
1380
1512
  style: {
1381
1513
  fontSize: "14px",
1382
1514
  color: theme.colors.textSecondary,
@@ -1385,13 +1517,13 @@ var TerminalOverlay = ({ state, theme }) => /* @__PURE__ */ jsxs3("div", {
1385
1517
  },
1386
1518
  children: state.subtitle
1387
1519
  }),
1388
- state.actions && state.actions.length > 0 && /* @__PURE__ */ jsx5("div", {
1520
+ state.actions && state.actions.length > 0 && /* @__PURE__ */ jsx6("div", {
1389
1521
  style: {
1390
1522
  display: "flex",
1391
1523
  gap: "12px",
1392
1524
  marginTop: "8px"
1393
1525
  },
1394
- children: state.actions.map((action) => /* @__PURE__ */ jsxs3("button", {
1526
+ children: state.actions.map((action) => /* @__PURE__ */ jsxs4("button", {
1395
1527
  type: "button",
1396
1528
  onClick: action.onClick,
1397
1529
  style: {
@@ -1432,7 +1564,7 @@ var TerminalOverlay = ({ state, theme }) => /* @__PURE__ */ jsxs3("div", {
1432
1564
  });
1433
1565
 
1434
1566
  // src/components/TerminalSession.tsx
1435
- import { jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
1567
+ import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
1436
1568
  var TerminalSession = forwardRef4((props, ref) => {
1437
1569
  const {
1438
1570
  actions,
@@ -1768,7 +1900,7 @@ var TerminalSession = forwardRef4((props, ref) => {
1768
1900
  getSessionId: () => localSessionId
1769
1901
  }), [scrollPosition.isScrollLocked, localSessionId]);
1770
1902
  if (!isInitialized) {
1771
- return /* @__PURE__ */ jsxs4("div", {
1903
+ return /* @__PURE__ */ jsxs5("div", {
1772
1904
  style: {
1773
1905
  display: "flex",
1774
1906
  height: "100%",
@@ -1777,7 +1909,7 @@ var TerminalSession = forwardRef4((props, ref) => {
1777
1909
  padding: "10px 0 0 10px"
1778
1910
  },
1779
1911
  children: [
1780
- /* @__PURE__ */ jsx6("div", {
1912
+ /* @__PURE__ */ jsx7("div", {
1781
1913
  style: {
1782
1914
  width: "8px",
1783
1915
  height: "17px",
@@ -1785,7 +1917,7 @@ var TerminalSession = forwardRef4((props, ref) => {
1785
1917
  animation: "terminal-session-cursor-blink 1s step-end infinite"
1786
1918
  }
1787
1919
  }),
1788
- /* @__PURE__ */ jsx6("style", {
1920
+ /* @__PURE__ */ jsx7("style", {
1789
1921
  children: `@keyframes terminal-session-cursor-blink {
1790
1922
  0%, 100% { opacity: 1; }
1791
1923
  50% { opacity: 0; }
@@ -1807,10 +1939,10 @@ var TerminalSession = forwardRef4((props, ref) => {
1807
1939
  opacity: 1
1808
1940
  } : undefined;
1809
1941
  const effectiveOverlay = ownershipLostOverlay ?? overlayState;
1810
- return /* @__PURE__ */ jsxs4("div", {
1942
+ return /* @__PURE__ */ jsxs5("div", {
1811
1943
  style: { position: "relative", height: "100%", width: "100%" },
1812
1944
  children: [
1813
- /* @__PURE__ */ jsx6(Renderer, {
1945
+ /* @__PURE__ */ jsx7(Renderer, {
1814
1946
  ref: rendererRef,
1815
1947
  onData: shouldRenderTerminal ? handleData : undefined,
1816
1948
  onResize: shouldRenderTerminal ? handleResize : undefined,
@@ -1825,11 +1957,11 @@ var TerminalSession = forwardRef4((props, ref) => {
1825
1957
  transparent,
1826
1958
  backgroundColor
1827
1959
  }, shouldRenderTerminal ? "active" : "overlay"),
1828
- effectiveOverlay && /* @__PURE__ */ jsx6(TerminalOverlay, {
1960
+ effectiveOverlay && /* @__PURE__ */ jsx7(TerminalOverlay, {
1829
1961
  state: effectiveOverlay,
1830
1962
  theme
1831
1963
  }),
1832
- isWorking && !effectiveOverlay && /* @__PURE__ */ jsx6(WorkingOverlay, {
1964
+ isWorking && !effectiveOverlay && /* @__PURE__ */ jsx7(WorkingOverlay, {
1833
1965
  theme,
1834
1966
  message: workingMessage,
1835
1967
  subtitle: workingSubtitle
@@ -1881,7 +2013,7 @@ import { useState as useState3, useCallback as useCallback4 } from "react";
1881
2013
  // src/components/TabBar/TabButton.tsx
1882
2014
  import { useTheme as useTheme4 } from "@principal-ade/industry-theme";
1883
2015
  import { useCallback as useCallback3 } from "react";
1884
- import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
2016
+ import { jsx as jsx8, jsxs as jsxs6 } from "react/jsx-runtime";
1885
2017
  var TabButton = ({
1886
2018
  tab,
1887
2019
  isActive,
@@ -1966,7 +2098,7 @@ var TabButton = ({
1966
2098
  }
1967
2099
  return {};
1968
2100
  };
1969
- return /* @__PURE__ */ jsxs5("div", {
2101
+ return /* @__PURE__ */ jsxs6("div", {
1970
2102
  "data-tab-id": tab.id,
1971
2103
  draggable,
1972
2104
  onDragStart: draggable ? handleDragStart : undefined,
@@ -2002,7 +2134,7 @@ var TabButton = ({
2002
2134
  ...getDragOverStyles()
2003
2135
  },
2004
2136
  children: [
2005
- closable && showCloseButton && /* @__PURE__ */ jsx7("button", {
2137
+ closable && showCloseButton && /* @__PURE__ */ jsx8("button", {
2006
2138
  onClick: (e) => {
2007
2139
  e.stopPropagation();
2008
2140
  onClose();
@@ -2034,7 +2166,7 @@ var TabButton = ({
2034
2166
  (() => {
2035
2167
  const icon = renderIcon ? renderIcon(tab) : undefined;
2036
2168
  const displayIcon = icon !== undefined ? icon : tab.icon;
2037
- return displayIcon ? /* @__PURE__ */ jsx7("div", {
2169
+ return displayIcon ? /* @__PURE__ */ jsx8("div", {
2038
2170
  style: { flexShrink: 0, display: "flex", alignItems: "center", pointerEvents: "none" },
2039
2171
  children: displayIcon
2040
2172
  }) : null;
@@ -2042,7 +2174,7 @@ var TabButton = ({
2042
2174
  (() => {
2043
2175
  const label = renderLabel ? renderLabel(tab) : undefined;
2044
2176
  const displayLabel = label !== undefined ? label : tab.label;
2045
- return /* @__PURE__ */ jsx7("span", {
2177
+ return /* @__PURE__ */ jsx8("span", {
2046
2178
  style: {
2047
2179
  overflow: "hidden",
2048
2180
  textOverflow: "ellipsis",
@@ -2053,7 +2185,7 @@ var TabButton = ({
2053
2185
  children: displayLabel
2054
2186
  });
2055
2187
  })(),
2056
- renderAccessory ? renderAccessory(tab) : keyboardHint && /* @__PURE__ */ jsx7("span", {
2188
+ renderAccessory ? renderAccessory(tab) : keyboardHint && /* @__PURE__ */ jsx8("span", {
2057
2189
  style: {
2058
2190
  fontSize: theme.fontSizes[0],
2059
2191
  color: theme.colors.textSecondary,
@@ -2068,7 +2200,7 @@ var TabButton = ({
2068
2200
  TabButton.displayName = "TabButton";
2069
2201
 
2070
2202
  // src/components/TabBar/TabBar.tsx
2071
- import { jsx as jsx8, jsxs as jsxs6 } from "react/jsx-runtime";
2203
+ import { jsx as jsx9, jsxs as jsxs7 } from "react/jsx-runtime";
2072
2204
  var TabBar = ({
2073
2205
  tabs,
2074
2206
  activeTabId,
@@ -2110,7 +2242,7 @@ var TabBar = ({
2110
2242
  const handleDragLeave = useCallback4(() => {
2111
2243
  setDragOverTabId(null);
2112
2244
  }, []);
2113
- return /* @__PURE__ */ jsxs6("div", {
2245
+ return /* @__PURE__ */ jsxs7("div", {
2114
2246
  className,
2115
2247
  style: {
2116
2248
  display: "flex",
@@ -2120,7 +2252,7 @@ var TabBar = ({
2120
2252
  boxSizing: "border-box"
2121
2253
  },
2122
2254
  children: [
2123
- leftSection && /* @__PURE__ */ jsx8("div", {
2255
+ leftSection && /* @__PURE__ */ jsx9("div", {
2124
2256
  style: {
2125
2257
  display: "flex",
2126
2258
  alignItems: "center",
@@ -2133,7 +2265,7 @@ var TabBar = ({
2133
2265
  },
2134
2266
  children: leftSection
2135
2267
  }),
2136
- /* @__PURE__ */ jsx8("div", {
2268
+ /* @__PURE__ */ jsx9("div", {
2137
2269
  style: {
2138
2270
  display: "flex",
2139
2271
  alignItems: "center",
@@ -2145,7 +2277,7 @@ var TabBar = ({
2145
2277
  },
2146
2278
  children: tabs.map((tab, index) => {
2147
2279
  const canDrop = enableDragAndDrop && draggedTabId !== null && draggedTabId !== tab.id ? canDropOnTab ? canDropOnTab(draggedTabId, tab.id) : true : false;
2148
- return /* @__PURE__ */ jsx8(TabButton, {
2280
+ return /* @__PURE__ */ jsx9(TabButton, {
2149
2281
  tab,
2150
2282
  isActive: tab.id === activeTabId,
2151
2283
  isHovered: tab.id === hoveredTabId,
@@ -2169,7 +2301,7 @@ var TabBar = ({
2169
2301
  }, tab.id);
2170
2302
  })
2171
2303
  }),
2172
- rightSection !== undefined ? rightSection && /* @__PURE__ */ jsx8("div", {
2304
+ rightSection !== undefined ? rightSection && /* @__PURE__ */ jsx9("div", {
2173
2305
  style: {
2174
2306
  display: "flex",
2175
2307
  alignItems: "center",
@@ -2181,7 +2313,7 @@ var TabBar = ({
2181
2313
  boxSizing: "border-box"
2182
2314
  },
2183
2315
  children: rightSection
2184
- }) : onNewTab && /* @__PURE__ */ jsx8("div", {
2316
+ }) : onNewTab && /* @__PURE__ */ jsx9("div", {
2185
2317
  style: {
2186
2318
  display: "flex",
2187
2319
  alignItems: "center",
@@ -2192,7 +2324,7 @@ var TabBar = ({
2192
2324
  borderBottom: `1px solid ${theme.colors.border}`,
2193
2325
  boxSizing: "border-box"
2194
2326
  },
2195
- children: /* @__PURE__ */ jsx8("button", {
2327
+ children: /* @__PURE__ */ jsx9("button", {
2196
2328
  onClick: onNewTab,
2197
2329
  style: {
2198
2330
  display: "flex",
@@ -2213,7 +2345,7 @@ var TabBar = ({
2213
2345
  e.currentTarget.style.backgroundColor = "transparent";
2214
2346
  },
2215
2347
  title: "New Tab (⌘T)",
2216
- children: /* @__PURE__ */ jsx8(Plus, {
2348
+ children: /* @__PURE__ */ jsx9(Plus, {
2217
2349
  size: 14
2218
2350
  })
2219
2351
  })
@@ -2273,11 +2405,11 @@ import React3, {
2273
2405
  useEffect as useEffect4,
2274
2406
  useRef as useRef4
2275
2407
  } from "react";
2276
- import { jsx as jsx9, jsxs as jsxs7, Fragment as Fragment2 } from "react/jsx-runtime";
2277
- var ActivityIndicator = ({ color, isAnimating }) => /* @__PURE__ */ jsxs7("div", {
2408
+ import { jsx as jsx10, jsxs as jsxs8, Fragment as Fragment2 } from "react/jsx-runtime";
2409
+ var ActivityIndicator = ({ color, isAnimating }) => /* @__PURE__ */ jsxs8("div", {
2278
2410
  style: { display: "flex", gap: 1, alignItems: "center", height: 12 },
2279
2411
  children: [
2280
- [0, 1, 2, 3, 4].map((i) => /* @__PURE__ */ jsx9("div", {
2412
+ [0, 1, 2, 3, 4].map((i) => /* @__PURE__ */ jsx10("div", {
2281
2413
  style: {
2282
2414
  width: 2,
2283
2415
  height: 10,
@@ -2288,7 +2420,7 @@ var ActivityIndicator = ({ color, isAnimating }) => /* @__PURE__ */ jsxs7("div",
2288
2420
  animation: isAnimating ? `waveSine 1.2s ease-in-out ${i * 0.1}s infinite` : "none"
2289
2421
  }
2290
2422
  }, i)),
2291
- /* @__PURE__ */ jsx9("style", {
2423
+ /* @__PURE__ */ jsx10("style", {
2292
2424
  children: `
2293
2425
  @keyframes waveSine {
2294
2426
  0%, 100% { transform: scaleY(0.4); }
@@ -2335,14 +2467,14 @@ function TerminalTabContentInner(props, ref) {
2335
2467
  scrollToBottom: () => sessionRef.current?.scrollToBottom(),
2336
2468
  toggleScrollLock: () => sessionRef.current?.toggleScrollLock()
2337
2469
  }), []);
2338
- return /* @__PURE__ */ jsx9("div", {
2470
+ return /* @__PURE__ */ jsx10("div", {
2339
2471
  style: {
2340
2472
  display: "flex",
2341
2473
  flexDirection: "column",
2342
2474
  height: "100%",
2343
2475
  width: "100%"
2344
2476
  },
2345
- children: /* @__PURE__ */ jsx9(TerminalSession, {
2477
+ children: /* @__PURE__ */ jsx10(TerminalSession, {
2346
2478
  ref: sessionRef,
2347
2479
  actions,
2348
2480
  events,
@@ -2809,9 +2941,9 @@ var TabbedTerminalPanelInner = ({
2809
2941
  if (!isActive)
2810
2942
  return null;
2811
2943
  const scrollPosition = scrollPositions.get(tab.id) ?? defaultScrollPosition;
2812
- return /* @__PURE__ */ jsxs7(Fragment2, {
2944
+ return /* @__PURE__ */ jsxs8(Fragment2, {
2813
2945
  children: [
2814
- /* @__PURE__ */ jsx9("button", {
2946
+ /* @__PURE__ */ jsx10("button", {
2815
2947
  onClick: (e) => {
2816
2948
  e.stopPropagation();
2817
2949
  handleToggleScrollLock();
@@ -2836,13 +2968,13 @@ var TabbedTerminalPanelInner = ({
2836
2968
  e.currentTarget.style.backgroundColor = "transparent";
2837
2969
  },
2838
2970
  title: scrollPosition.isScrollLocked ? "Scroll locked" : "Scroll unlocked",
2839
- children: scrollPosition.isScrollLocked ? /* @__PURE__ */ jsx9(Lock, {
2971
+ children: scrollPosition.isScrollLocked ? /* @__PURE__ */ jsx10(Lock, {
2840
2972
  size: 10
2841
- }) : /* @__PURE__ */ jsx9(Unlock, {
2973
+ }) : /* @__PURE__ */ jsx10(Unlock, {
2842
2974
  size: 10
2843
2975
  })
2844
2976
  }),
2845
- /* @__PURE__ */ jsx9("div", {
2977
+ /* @__PURE__ */ jsx10("div", {
2846
2978
  style: {
2847
2979
  position: "absolute",
2848
2980
  right: "8px",
@@ -2853,7 +2985,7 @@ var TabbedTerminalPanelInner = ({
2853
2985
  height: "16px"
2854
2986
  },
2855
2987
  title: isWorking ? "Terminal active" : "Terminal idle",
2856
- children: /* @__PURE__ */ jsx9(ActivityIndicator, {
2988
+ children: /* @__PURE__ */ jsx10(ActivityIndicator, {
2857
2989
  color: theme.colors.primary,
2858
2990
  isAnimating: isWorking ?? false
2859
2991
  })
@@ -2862,7 +2994,7 @@ var TabbedTerminalPanelInner = ({
2862
2994
  });
2863
2995
  }, [activeTabId, scrollPositions, defaultScrollPosition, handleToggleScrollLock, theme, sessionIds, workingStates, activityStates]);
2864
2996
  const renderTerminalWithAssociation = useCallback5((tab, isActive, sessionId, association) => {
2865
- const terminalContent = /* @__PURE__ */ jsx9(TerminalTabContent, {
2997
+ const terminalContent = /* @__PURE__ */ jsx10(TerminalTabContent, {
2866
2998
  ref: getRefCallback(tab.id),
2867
2999
  tab,
2868
3000
  sessionId,
@@ -2881,7 +3013,7 @@ var TabbedTerminalPanelInner = ({
2881
3013
  onActivityStateChange: handleActivityStateChange
2882
3014
  }, `terminal-${tab.id}`);
2883
3015
  const hasAssociation = !!association;
2884
- const secondaryContent = hasAssociation && renderAssociatedContent ? renderAssociatedContent(association.associatedTabId, isActive) : /* @__PURE__ */ jsx9("div", {
3016
+ const secondaryContent = hasAssociation && renderAssociatedContent ? renderAssociatedContent(association.associatedTabId, isActive) : /* @__PURE__ */ jsx10("div", {
2885
3017
  style: {
2886
3018
  height: "100%",
2887
3019
  display: "flex",
@@ -2893,12 +3025,12 @@ var TabbedTerminalPanelInner = ({
2893
3025
  },
2894
3026
  children: "Drag a tab here to associate it with this terminal"
2895
3027
  });
2896
- const headerConfig = hasAssociation && getAssociatedHeader ? getAssociatedHeader(association.associatedTabId) : { title: "Drop zone", icon: /* @__PURE__ */ jsx9(Paperclip, {
3028
+ const headerConfig = hasAssociation && getAssociatedHeader ? getAssociatedHeader(association.associatedTabId) : { title: "Drop zone", icon: /* @__PURE__ */ jsx10(Paperclip, {
2897
3029
  size: 14
2898
3030
  }) };
2899
3031
  const isCollapsed = hasAssociation ? association.collapsed : true;
2900
3032
  const handleCollapsedChange = hasAssociation ? (collapsed) => onAssociationCollapsedChange?.(tab.id, collapsed) : undefined;
2901
- return /* @__PURE__ */ jsx9(CollapsibleSplitPane, {
3033
+ return /* @__PURE__ */ jsx10(CollapsibleSplitPane, {
2902
3034
  style: { height: "100%" },
2903
3035
  primaryContent: terminalContent,
2904
3036
  secondaryContent,
@@ -2973,7 +3105,7 @@ var TabbedTerminalPanelInner = ({
2973
3105
  setActiveTabId(activeTabId);
2974
3106
  }
2975
3107
  }, [activeTabId, tabs, onTabAssociate, setActiveTabId]);
2976
- return /* @__PURE__ */ jsxs7("div", {
3108
+ return /* @__PURE__ */ jsxs8("div", {
2977
3109
  style: {
2978
3110
  display: "flex",
2979
3111
  flexDirection: "column",
@@ -2981,15 +3113,15 @@ var TabbedTerminalPanelInner = ({
2981
3113
  backgroundColor: theme.colors.background
2982
3114
  },
2983
3115
  children: [
2984
- !hideHeader && /* @__PURE__ */ jsx9("div", {
3116
+ !hideHeader && /* @__PURE__ */ jsx10("div", {
2985
3117
  ref: headerRef,
2986
- children: /* @__PURE__ */ jsx9(TabBar, {
3118
+ children: /* @__PURE__ */ jsx10(TabBar, {
2987
3119
  tabs: genericTabs,
2988
3120
  activeTabId,
2989
3121
  onTabClick: switchTab,
2990
3122
  onTabClose: closeTab,
2991
3123
  onNewTab: addNewTab,
2992
- leftSection: /* @__PURE__ */ jsx9("button", {
3124
+ leftSection: /* @__PURE__ */ jsx10("button", {
2993
3125
  onClick: () => onShowAllTerminalsChange?.(!showAllTerminals),
2994
3126
  style: {
2995
3127
  display: "flex",
@@ -3014,9 +3146,9 @@ var TabbedTerminalPanelInner = ({
3014
3146
  }
3015
3147
  },
3016
3148
  title: showAllTerminals ? "Showing all terminals (click to filter by context)" : "Show all terminals",
3017
- children: showAllTerminals ? /* @__PURE__ */ jsx9(Boxes, {
3149
+ children: showAllTerminals ? /* @__PURE__ */ jsx10(Boxes, {
3018
3150
  size: 14
3019
- }) : /* @__PURE__ */ jsx9(Box, {
3151
+ }) : /* @__PURE__ */ jsx10(Box, {
3020
3152
  size: 14
3021
3153
  })
3022
3154
  }),
@@ -3029,7 +3161,7 @@ var TabbedTerminalPanelInner = ({
3029
3161
  canDropOnTab
3030
3162
  })
3031
3163
  }),
3032
- /* @__PURE__ */ jsxs7("div", {
3164
+ /* @__PURE__ */ jsxs8("div", {
3033
3165
  style: {
3034
3166
  flex: 1,
3035
3167
  display: "flex",
@@ -3083,71 +3215,71 @@ var TabbedTerminalPanelInner = ({
3083
3215
  const customContent = renderTabContent(tab, isActive, sessionId, width);
3084
3216
  if (customContent === null && tab.contentType === "terminal") {
3085
3217
  const association = associations?.[tab.id];
3086
- return /* @__PURE__ */ jsx9("div", {
3218
+ return /* @__PURE__ */ jsx10("div", {
3219
+ inert: !isActive,
3087
3220
  style: {
3088
3221
  position: "absolute",
3089
3222
  inset: 0,
3090
3223
  display: "flex",
3091
3224
  flexDirection: "column",
3092
- visibility: isActive ? "visible" : "hidden",
3093
- pointerEvents: isActive ? "auto" : "none"
3225
+ opacity: isActive ? 1 : 0
3094
3226
  },
3095
3227
  children: renderTerminalWithAssociation(tab, isActive, sessionId, association)
3096
3228
  }, tab.id);
3097
3229
  }
3098
3230
  const hasBeenActivated = activatedTabs.has(tab.id);
3099
- return /* @__PURE__ */ jsx9("div", {
3231
+ return /* @__PURE__ */ jsx10("div", {
3232
+ inert: !isActive,
3100
3233
  style: {
3101
3234
  position: "absolute",
3102
3235
  inset: 0,
3103
3236
  display: "flex",
3104
3237
  flexDirection: "column",
3105
- visibility: isActive ? "visible" : "hidden",
3106
- pointerEvents: isActive ? "auto" : "none"
3238
+ opacity: isActive ? 1 : 0
3107
3239
  },
3108
3240
  children: hasBeenActivated && customContent
3109
3241
  }, tab.id);
3110
3242
  }
3111
3243
  if (tab.contentType === "terminal") {
3112
3244
  const association = associations?.[tab.id];
3113
- return /* @__PURE__ */ jsx9("div", {
3245
+ return /* @__PURE__ */ jsx10("div", {
3246
+ inert: !isActive,
3114
3247
  style: {
3115
3248
  position: "absolute",
3116
3249
  inset: 0,
3117
3250
  display: "flex",
3118
3251
  flexDirection: "column",
3119
- visibility: isActive ? "visible" : "hidden",
3120
- pointerEvents: isActive ? "auto" : "none"
3252
+ opacity: isActive ? 1 : 0
3121
3253
  },
3122
3254
  children: renderTerminalWithAssociation(tab, isActive, sessionId, association)
3123
3255
  }, tab.id);
3124
3256
  }
3125
- return /* @__PURE__ */ jsxs7("div", {
3257
+ return /* @__PURE__ */ jsxs8("div", {
3258
+ inert: !isActive,
3126
3259
  style: {
3127
3260
  position: "absolute",
3128
3261
  inset: 0,
3129
3262
  display: "flex",
3130
3263
  alignItems: "center",
3131
3264
  justifyContent: "center",
3132
- visibility: isActive ? "visible" : "hidden",
3133
- pointerEvents: isActive ? "auto" : "none",
3265
+ opacity: isActive ? 1 : 0,
3134
3266
  color: theme.colors.textSecondary
3135
3267
  },
3136
3268
  children: [
3137
- /* @__PURE__ */ jsxs7("p", {
3269
+ /* @__PURE__ */ jsxs8("p", {
3138
3270
  children: [
3139
3271
  "Unknown content type: ",
3140
3272
  tab.contentType
3141
3273
  ]
3142
3274
  }),
3143
- /* @__PURE__ */ jsx9("p", {
3275
+ /* @__PURE__ */ jsx10("p", {
3144
3276
  style: { fontSize: theme.fontSizes[0], marginTop: "8px" },
3145
3277
  children: "Provide a renderTabContent prop to render custom tab types"
3146
3278
  })
3147
3279
  ]
3148
3280
  }, tab.id);
3149
3281
  }),
3150
- tabs.length === 0 && /* @__PURE__ */ jsxs7("div", {
3282
+ tabs.length === 0 && /* @__PURE__ */ jsxs8("div", {
3151
3283
  style: {
3152
3284
  display: "flex",
3153
3285
  flexDirection: "column",
@@ -3157,11 +3289,11 @@ var TabbedTerminalPanelInner = ({
3157
3289
  color: theme.colors.textSecondary
3158
3290
  },
3159
3291
  children: [
3160
- /* @__PURE__ */ jsx9(TerminalIcon2, {
3292
+ /* @__PURE__ */ jsx10(TerminalIcon2, {
3161
3293
  size: 32,
3162
3294
  style: { opacity: 0.5, marginBottom: "16px" }
3163
3295
  }),
3164
- /* @__PURE__ */ jsx9("button", {
3296
+ /* @__PURE__ */ jsx10("button", {
3165
3297
  onClick: () => addNewTab(),
3166
3298
  style: {
3167
3299
  marginTop: "16px",
@@ -3467,5 +3599,6 @@ export {
3467
3599
  TabBar,
3468
3600
  TRACER_VERSION,
3469
3601
  TRACER_NAME,
3470
- SpanStatusCode
3602
+ SpanStatusCode,
3603
+ SelectionDragChip
3471
3604
  };
@@ -0,0 +1,14 @@
1
+ import type { Theme } from '@principal-ade/industry-theme';
2
+ export interface SelectionDragChipProps {
3
+ text: string;
4
+ x: number;
5
+ y: number;
6
+ theme: Theme;
7
+ label?: string;
8
+ sourcePanel?: string;
9
+ metadata?: Record<string, unknown>;
10
+ onDragStart?: () => void;
11
+ onDragEnd?: () => void;
12
+ }
13
+ export declare function SelectionDragChip({ text, x, y, theme, label, sourcePanel, metadata, onDragStart, onDragEnd, }: SelectionDragChipProps): import("react/jsx-runtime").JSX.Element;
14
+ //# sourceMappingURL=SelectionDragChip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectionDragChip.d.ts","sourceRoot":"","sources":["../../../src/components/SelectionDragChip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAW3D,MAAM,WAAW,sBAAsB;IAErC,IAAI,EAAE,MAAM,CAAC;IAEb,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IAEV,KAAK,EAAE,KAAK,CAAC;IAEb,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IAEzB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAYD,wBAAgB,iBAAiB,CAAC,EAChC,IAAI,EACJ,CAAC,EACD,CAAC,EACD,KAAK,EACL,KAAuB,EACvB,WAAkC,EAClC,QAAQ,EACR,WAAW,EACX,SAAS,GACV,EAAE,sBAAsB,2CA4DxB"}
@@ -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,4HAmpC1B,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;AAMjC,OAAO,8BAA8B,CAAC;AAEtC,MAAM,WAAW,4BAA6B,SAAQ,mBAAmB;IACvE,KAAK,EAAE,KAAK,CAAC;CACd;AAsBD,eAAO,MAAM,cAAc,4HA6tC1B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"TabbedTerminalPanel.d.ts","sourceRoot":"","sources":["../../../src/panels/TabbedTerminalPanel.tsx"],"names":[],"mappings":"AAIA,OAAO,KAKN,MAAM,OAAO,CAAC;AAMf,OAAO,KAAK,EACV,wBAAwB,EACxB,WAAW,EAGZ,MAAM,gBAAgB,CAAC;AAkExB,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,gBAAgB,EAAE,MAAM,IAAI,CAAC;CAC9B;AAuwCD,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"}
1
+ {"version":3,"file":"TabbedTerminalPanel.d.ts","sourceRoot":"","sources":["../../../src/panels/TabbedTerminalPanel.tsx"],"names":[],"mappings":"AAIA,OAAO,KAKN,MAAM,OAAO,CAAC;AAMf,OAAO,KAAK,EACV,wBAAwB,EACxB,WAAW,EAGZ,MAAM,gBAAgB,CAAC;AAkExB,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,gBAAgB,EAAE,MAAM,IAAI,CAAC;CAC9B;AA6wCD,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"}
@@ -9,6 +9,10 @@ export interface XtermRendererProps extends TerminalRendererProps {
9
9
  scrollbarFlush?: boolean;
10
10
  enableSearch?: boolean;
11
11
  enableWebLinks?: boolean;
12
+ enableSelectionDrag?: boolean;
13
+ selectionDragLabel?: string;
14
+ selectionDragSourcePanel?: string;
15
+ selectionDragMetadata?: Record<string, unknown>;
12
16
  }
13
17
  export declare const XtermRenderer: import("react").ForwardRefExoticComponent<XtermRendererProps & import("react").RefAttributes<TerminalRendererHandle>>;
14
18
  //# sourceMappingURL=XtermRenderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"XtermRenderer.d.ts","sourceRoot":"","sources":["../../../src/renderer/XtermRenderer.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,oBAAoB,CAAC;AAQ5B,MAAM,WAAW,kBAAmB,SAAQ,qBAAqB;IAC/D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,KAAK,CAAC;IAC5C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,CAAC;IAC7D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAcD,eAAO,MAAM,aAAa,uHA0DzB,CAAC"}
1
+ {"version":3,"file":"XtermRenderer.d.ts","sourceRoot":"","sources":["../../../src/renderer/XtermRenderer.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,oBAAoB,CAAC;AAQ5B,MAAM,WAAW,kBAAmB,SAAQ,qBAAqB;IAC/D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,KAAK,CAAC;IAC5C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,CAAC;IAC7D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjD;AAcD,eAAO,MAAM,aAAa,uHA0DzB,CAAC"}
@@ -72,6 +72,10 @@ export interface ThemedTerminalProps {
72
72
  fontSize?: number;
73
73
  enableSearch?: boolean;
74
74
  enableWebLinks?: boolean;
75
+ enableSelectionDrag?: boolean;
76
+ selectionDragLabel?: string;
77
+ selectionDragSourcePanel?: string;
78
+ selectionDragMetadata?: Record<string, unknown>;
75
79
  allowTransparency?: boolean;
76
80
  backgroundColor?: string;
77
81
  }
@@ -1 +1 @@
1
- {"version":3,"file":"terminal.types.d.ts","sourceRoot":"","sources":["../../../src/types/terminal.types.ts"],"names":[],"mappings":"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"}
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;IAO7D,cAAc,CAAC,EAAE,OAAO,CAAC;IAIzB,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;IAOpC,SAAS,CAAC,EAAE,OAAO,CAAC;IAMpB,cAAc,CAAC,EAAE,MAAM,CAAC;IAKxB,eAAe,CAAC,EAAE,MAAM,CAAC;IASzB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAO5B,eAAe,CAAC,EAAE,MAAM,CAAC;IAOzB,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAO1D,cAAc,CAAC,EAAE,OAAO,CAAC;IAIzB,UAAU,CAAC,EAAE,OAAO,CAAC;IAGrB,WAAW,CAAC,EAAE,OAAO,CAAC;IAGtB,WAAW,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,KAAK,CAAC;IAG5C,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAIlB,YAAY,CAAC,EAAE,OAAO,CAAC;IAGvB,cAAc,CAAC,EAAE,OAAO,CAAC;IAUzB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAM9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAM5B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAKlC,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAWhD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAS5B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAMD,MAAM,WAAW,iBAAiB;IAEhC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,KAAK,IAAI,CAAC;IAG3C,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAGhC,cAAc,EAAE,MAAM,IAAI,CAAC;IAG3B,KAAK,EAAE,MAAM,IAAI,CAAC;IAGlB,IAAI,EAAE,MAAM,IAAI,CAAC;IAGjB,KAAK,EAAE,MAAM,IAAI,CAAC;IAGlB,KAAK,EAAE,MAAM,IAAI,CAAC;IAGlB,WAAW,EAAE,MAAM,QAAQ,GAAG,IAAI,CAAC;IAGnC,GAAG,EAAE,MAAM,IAAI,CAAC;IAGhB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAG7C,SAAS,EAAE,MAAM,IAAI,CAAC;IAGtB,cAAc,EAAE,MAAM,IAAI,CAAC;IAG3B,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC;IAG1E,YAAY,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC;IAG9E,WAAW,EAAE,MAAM,IAAI,CAAC;IAGxB,cAAc,EAAE,MAAM,OAAO,CAAC;IAG9B,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;CACjD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@industry-theme/xterm-terminal-panel",
3
- "version": "0.7.1",
3
+ "version": "0.8.0",
4
4
  "description": "Industry-themed xterm.js terminal components with panel framework integration",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",