@industry-theme/xterm-terminal-panel 0.9.1 → 0.9.4

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 { ProgramStatusBadge, formatProgramStatusRecord } from './src/components/ProgramStatusBadge';
6
+ export type { ProgramStatusBadgeProps } from './src/components/ProgramStatusBadge';
5
7
  export { SelectionDragChip } from './src/components/SelectionDragChip';
6
8
  export type { SelectionDragChipProps } from './src/components/SelectionDragChip';
7
9
  export { XtermRenderer } from './src/renderer/XtermRenderer';
@@ -15,7 +17,7 @@ export { TerminalSession } from './src/components/TerminalSession';
15
17
  export type { TerminalSessionProps, TerminalSessionHandle, } from './src/components/TerminalSession';
16
18
  export { TerminalOverlay } from './src/components/TerminalOverlay';
17
19
  export type { TerminalOverlayProps } from './src/components/TerminalOverlay';
18
- export type { ThemedTerminalProps, ThemedTerminalRef, TerminalActivityState, TerminalHeaderBadge, TerminalOverlayState, TerminalScrollPosition, LinkClickModifiers, DroppedTerminalFile, } from './src/types/terminal.types';
20
+ export type { ThemedTerminalProps, ThemedTerminalRef, TerminalActivityState, TerminalHeaderBadge, TerminalOverlayState, TerminalScrollPosition, LinkClickModifiers, DroppedTerminalFile, ProgramStatusRecord, ProgramStatusState, ProgramStatusKind, } from './src/types/terminal.types';
19
21
  export { useThemedTerminal } from './src/hooks/useThemedTerminal';
20
22
  export type { UseThemedTerminalReturn } from './src/hooks/useThemedTerminal';
21
23
  export { createTerminalTheme, getTerminalCSSVariables, } from './src/utils/terminalTheme';
@@ -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
@@ -38,7 +38,7 @@ import {
38
38
  // package.json
39
39
  var package_default = {
40
40
  name: "@industry-theme/xterm-terminal-panel",
41
- version: "0.9.1",
41
+ version: "0.9.3",
42
42
  description: "Industry-themed xterm.js terminal components with panel framework integration",
43
43
  type: "module",
44
44
  sideEffects: [
@@ -100,7 +100,7 @@ var package_default = {
100
100
  },
101
101
  dependencies: {
102
102
  clsx: "^2.1.1",
103
- "ghostty-web": "^0.4.0",
103
+ "ghostty-web": "https://github.com/anomalyco/ghostty-web/archive/6e24d040458ddd7aae81572fe2901deec32f9fe7.tar.gz",
104
104
  "react-resizable-panels": "^4.7.3"
105
105
  },
106
106
  peerDependencies: {
@@ -1548,9 +1548,122 @@ var ThemedTerminalWithProvider = forwardRef2((props, ref) => {
1548
1548
  });
1549
1549
  ThemedTerminalWithProvider.displayName = "ThemedTerminalWithProvider";
1550
1550
 
1551
+ // src/components/ProgramStatusBadge.tsx
1552
+ import { useTheme as useTheme2 } from "@principal-ade/industry-theme";
1553
+ import { jsx as jsx5 } from "react/jsx-runtime";
1554
+ var blockedColor = (kind, colors) => {
1555
+ switch (kind) {
1556
+ case "auth":
1557
+ return colors.error;
1558
+ case "question":
1559
+ return colors.info;
1560
+ case "permission":
1561
+ default:
1562
+ return colors.warning;
1563
+ }
1564
+ };
1565
+ var formatProgramStatusRecord = (record) => {
1566
+ const parts = [`state=${record.state}`];
1567
+ if (record.kind) parts.push(`kind=${record.kind}`);
1568
+ if (typeof record.progress === "number") parts.push(`progress=${record.progress}`);
1569
+ if (record.app) parts.push(`app=${record.app}`);
1570
+ if (record.msg) parts.push(`msg=${record.msg}`);
1571
+ if (record.title) parts.push(`title=${record.title}`);
1572
+ return parts.join("; ");
1573
+ };
1574
+ var WaveBars = ({ color, animate }) => /* @__PURE__ */ jsx5("div", { style: { display: "flex", gap: 1, alignItems: "center", height: 12 }, children: [0, 1, 2, 3, 4].map((i) => /* @__PURE__ */ jsx5(
1575
+ "div",
1576
+ {
1577
+ style: {
1578
+ width: 2,
1579
+ height: 10,
1580
+ backgroundColor: color,
1581
+ borderRadius: 1,
1582
+ transformOrigin: "center",
1583
+ transform: animate ? void 0 : "scaleY(0.4)",
1584
+ animation: animate ? `program-status-wave 1.2s ease-in-out ${i * 0.1}s infinite` : "none"
1585
+ }
1586
+ },
1587
+ i
1588
+ )) });
1589
+ var ProgramStatusBadge = ({
1590
+ record,
1591
+ animate = true
1592
+ }) => {
1593
+ const { theme } = useTheme2();
1594
+ switch (record.state) {
1595
+ case "working":
1596
+ return /* @__PURE__ */ jsx5(
1597
+ "span",
1598
+ {
1599
+ title: formatProgramStatusRecord(record),
1600
+ style: { display: "flex", alignItems: "center" },
1601
+ children: /* @__PURE__ */ jsx5(WaveBars, { color: theme.colors.primary, animate })
1602
+ }
1603
+ );
1604
+ case "blocked": {
1605
+ const color = blockedColor(record.kind, theme.colors);
1606
+ return /* @__PURE__ */ jsx5(
1607
+ "span",
1608
+ {
1609
+ title: formatProgramStatusRecord(record),
1610
+ style: {
1611
+ display: "flex",
1612
+ alignItems: "center",
1613
+ justifyContent: "center",
1614
+ width: 12,
1615
+ height: 12,
1616
+ borderRadius: 3,
1617
+ backgroundColor: color,
1618
+ color: theme.colors.background,
1619
+ fontSize: 10,
1620
+ fontWeight: 700,
1621
+ lineHeight: 1,
1622
+ boxShadow: `0 0 0 2px ${color}33`,
1623
+ animation: animate ? "program-status-fade 1.4s ease-in-out infinite" : "none"
1624
+ },
1625
+ children: "!"
1626
+ }
1627
+ );
1628
+ }
1629
+ case "done":
1630
+ return /* @__PURE__ */ jsx5(
1631
+ "span",
1632
+ {
1633
+ title: formatProgramStatusRecord(record),
1634
+ style: {
1635
+ display: "block",
1636
+ width: 8,
1637
+ height: 8,
1638
+ borderRadius: "50%",
1639
+ backgroundColor: theme.colors.success
1640
+ }
1641
+ }
1642
+ );
1643
+ case "error":
1644
+ return /* @__PURE__ */ jsx5(
1645
+ "span",
1646
+ {
1647
+ title: formatProgramStatusRecord(record),
1648
+ style: {
1649
+ display: "block",
1650
+ width: 12,
1651
+ height: 11,
1652
+ backgroundColor: theme.colors.error,
1653
+ clipPath: "polygon(50% 0%, 100% 100%, 0% 100%)"
1654
+ }
1655
+ }
1656
+ );
1657
+ // `idle` / `clear` render nothing — the tab is quiescent.
1658
+ default:
1659
+ return null;
1660
+ }
1661
+ };
1662
+ ProgramStatusBadge.displayName = "ProgramStatusBadge";
1663
+
1551
1664
  // src/renderer/XtermRenderer.tsx
1552
1665
  import { forwardRef as forwardRef3, useImperativeHandle as useImperativeHandle2, useRef as useRef2 } from "react";
1553
- import { jsx as jsx5 } from "react/jsx-runtime";
1666
+ import { jsx as jsx6 } from "react/jsx-runtime";
1554
1667
  var XtermRenderer = forwardRef3(
1555
1668
  (props, ref) => {
1556
1669
  const {
@@ -1589,7 +1702,7 @@ var XtermRenderer = forwardRef3(
1589
1702
  }),
1590
1703
  []
1591
1704
  );
1592
- return /* @__PURE__ */ jsx5(
1705
+ return /* @__PURE__ */ jsx6(
1593
1706
  ThemedTerminalWithProvider,
1594
1707
  {
1595
1708
  ref: innerRef,
@@ -1608,7 +1721,7 @@ var XtermRenderer = forwardRef3(
1608
1721
  XtermRenderer.displayName = "XtermRenderer";
1609
1722
 
1610
1723
  // src/renderer/GhosttyRenderer.tsx
1611
- import { useTheme as useTheme2 } from "@principal-ade/industry-theme";
1724
+ import { useTheme as useTheme3 } from "@principal-ade/industry-theme";
1612
1725
  import { FitAddon as FitAddon2, Terminal as Terminal2 } from "ghostty-web";
1613
1726
  import { forwardRef as forwardRef4, useCallback as useCallback2, useEffect as useEffect2, useImperativeHandle as useImperativeHandle3, useRef as useRef3 } from "react";
1614
1727
 
@@ -1623,7 +1736,7 @@ function ensureGhostty() {
1623
1736
  }
1624
1737
 
1625
1738
  // src/renderer/GhosttyRenderer.tsx
1626
- import { jsx as jsx6 } from "react/jsx-runtime";
1739
+ import { jsx as jsx7 } from "react/jsx-runtime";
1627
1740
  var DEFAULT_FONT_STACK = "JetBrains Mono, Menlo, Monaco, monospace";
1628
1741
  var GhosttyRenderer = forwardRef4(
1629
1742
  (props, ref) => {
@@ -1645,7 +1758,7 @@ var GhosttyRenderer = forwardRef4(
1645
1758
  // Accepted but intentionally not implemented yet:
1646
1759
  // onLinkClick, onFilesDropped
1647
1760
  } = props;
1648
- const { theme } = useTheme2();
1761
+ const { theme } = useTheme3();
1649
1762
  const containerRef = useRef3(null);
1650
1763
  const termRef = useRef3(null);
1651
1764
  const fitRef = useRef3(null);
@@ -1799,7 +1912,7 @@ var GhosttyRenderer = forwardRef4(
1799
1912
  }),
1800
1913
  [fit, readScrollPosition, write]
1801
1914
  );
1802
- return /* @__PURE__ */ jsx6(
1915
+ return /* @__PURE__ */ jsx7(
1803
1916
  "div",
1804
1917
  {
1805
1918
  ref: containerRef,
@@ -1827,7 +1940,7 @@ function resolveRenderer(choice) {
1827
1940
  }
1828
1941
 
1829
1942
  // src/components/TerminalSession.tsx
1830
- import { useTheme as useTheme3 } from "@principal-ade/industry-theme";
1943
+ import { useTheme as useTheme4 } from "@principal-ade/industry-theme";
1831
1944
  import {
1832
1945
  forwardRef as forwardRef5,
1833
1946
  useCallback as useCallback3,
@@ -1839,7 +1952,7 @@ import {
1839
1952
 
1840
1953
  // src/components/TerminalOverlay.tsx
1841
1954
  import { Monitor as Monitor2 } from "lucide-react";
1842
- import { jsx as jsx7, jsxs as jsxs4 } from "react/jsx-runtime";
1955
+ import { jsx as jsx8, jsxs as jsxs4 } from "react/jsx-runtime";
1843
1956
  var TerminalOverlay = ({ state, theme }) => /* @__PURE__ */ jsxs4(
1844
1957
  "div",
1845
1958
  {
@@ -1860,8 +1973,8 @@ var TerminalOverlay = ({ state, theme }) => /* @__PURE__ */ jsxs4(
1860
1973
  zIndex: 10
1861
1974
  },
1862
1975
  children: [
1863
- /* @__PURE__ */ jsx7(Monitor2, { size: 48, color: theme.colors.textSecondary }),
1864
- /* @__PURE__ */ jsx7(
1976
+ /* @__PURE__ */ jsx8(Monitor2, { size: 48, color: theme.colors.textSecondary }),
1977
+ /* @__PURE__ */ jsx8(
1865
1978
  "div",
1866
1979
  {
1867
1980
  style: {
@@ -1873,7 +1986,7 @@ var TerminalOverlay = ({ state, theme }) => /* @__PURE__ */ jsxs4(
1873
1986
  children: state.message
1874
1987
  }
1875
1988
  ),
1876
- state.subtitle && /* @__PURE__ */ jsx7(
1989
+ state.subtitle && /* @__PURE__ */ jsx8(
1877
1990
  "div",
1878
1991
  {
1879
1992
  style: {
@@ -1885,7 +1998,7 @@ var TerminalOverlay = ({ state, theme }) => /* @__PURE__ */ jsxs4(
1885
1998
  children: state.subtitle
1886
1999
  }
1887
2000
  ),
1888
- state.actions && state.actions.length > 0 && /* @__PURE__ */ jsx7(
2001
+ state.actions && state.actions.length > 0 && /* @__PURE__ */ jsx8(
1889
2002
  "div",
1890
2003
  {
1891
2004
  style: {
@@ -1940,7 +2053,7 @@ var TerminalOverlay = ({ state, theme }) => /* @__PURE__ */ jsxs4(
1940
2053
  );
1941
2054
 
1942
2055
  // src/components/TerminalSession.tsx
1943
- import { jsx as jsx8, jsxs as jsxs5 } from "react/jsx-runtime";
2056
+ import { jsx as jsx9, jsxs as jsxs5 } from "react/jsx-runtime";
1944
2057
  var TerminalSession = forwardRef5(
1945
2058
  (props, ref) => {
1946
2059
  const {
@@ -1972,7 +2085,7 @@ var TerminalSession = forwardRef5(
1972
2085
  workingSubtitle
1973
2086
  } = props;
1974
2087
  const Renderer = resolveRenderer(rendererProp);
1975
- const { theme } = useTheme3();
2088
+ const { theme } = useTheme4();
1976
2089
  const rendererRef = useRef4(null);
1977
2090
  const [localSessionId, setLocalSessionId] = useState2(sessionIdProp);
1978
2091
  const [isInitialized, setIsInitialized] = useState2(false);
@@ -2293,7 +2406,7 @@ var TerminalSession = forwardRef5(
2293
2406
  padding: "10px 0 0 10px"
2294
2407
  },
2295
2408
  children: [
2296
- /* @__PURE__ */ jsx8(
2409
+ /* @__PURE__ */ jsx9(
2297
2410
  "div",
2298
2411
  {
2299
2412
  style: {
@@ -2304,7 +2417,7 @@ var TerminalSession = forwardRef5(
2304
2417
  }
2305
2418
  }
2306
2419
  ),
2307
- /* @__PURE__ */ jsx8("style", { children: `@keyframes terminal-session-cursor-blink {
2420
+ /* @__PURE__ */ jsx9("style", { children: `@keyframes terminal-session-cursor-blink {
2308
2421
  0%, 100% { opacity: 1; }
2309
2422
  50% { opacity: 0; }
2310
2423
  }` })
@@ -2326,7 +2439,7 @@ var TerminalSession = forwardRef5(
2326
2439
  } : void 0;
2327
2440
  const effectiveOverlay = ownershipLostOverlay ?? overlayState;
2328
2441
  return /* @__PURE__ */ jsxs5("div", { style: { position: "relative", height: "100%", width: "100%" }, children: [
2329
- /* @__PURE__ */ jsx8(
2442
+ /* @__PURE__ */ jsx9(
2330
2443
  Renderer,
2331
2444
  {
2332
2445
  ref: rendererRef,
@@ -2345,8 +2458,8 @@ var TerminalSession = forwardRef5(
2345
2458
  },
2346
2459
  shouldRenderTerminal ? "active" : "overlay"
2347
2460
  ),
2348
- effectiveOverlay && /* @__PURE__ */ jsx8(TerminalOverlay, { state: effectiveOverlay, theme }),
2349
- isWorking && !effectiveOverlay && /* @__PURE__ */ jsx8(
2461
+ effectiveOverlay && /* @__PURE__ */ jsx9(TerminalOverlay, { state: effectiveOverlay, theme }),
2462
+ isWorking && !effectiveOverlay && /* @__PURE__ */ jsx9(
2350
2463
  WorkingOverlay,
2351
2464
  {
2352
2465
  theme,
@@ -2360,10 +2473,10 @@ var TerminalSession = forwardRef5(
2360
2473
  TerminalSession.displayName = "TerminalSession";
2361
2474
 
2362
2475
  // src/hooks/useThemedTerminal.ts
2363
- import { useTheme as useTheme4 } from "@principal-ade/industry-theme";
2476
+ import { useTheme as useTheme5 } from "@principal-ade/industry-theme";
2364
2477
  import { useMemo } from "react";
2365
2478
  function useThemedTerminal() {
2366
- const { theme } = useTheme4();
2479
+ const { theme } = useTheme5();
2367
2480
  const terminalOptions = useMemo(
2368
2481
  () => ({
2369
2482
  cursorBlink: true,
@@ -2400,14 +2513,14 @@ function useThemedTerminal() {
2400
2513
  }
2401
2514
 
2402
2515
  // src/components/TabBar/TabBar.tsx
2403
- import { useTheme as useTheme6 } from "@principal-ade/industry-theme";
2516
+ import { useTheme as useTheme7 } from "@principal-ade/industry-theme";
2404
2517
  import { Plus } from "lucide-react";
2405
2518
  import { useState as useState3, useCallback as useCallback5 } from "react";
2406
2519
 
2407
2520
  // src/components/TabBar/TabButton.tsx
2408
- import { useTheme as useTheme5 } from "@principal-ade/industry-theme";
2521
+ import { useTheme as useTheme6 } from "@principal-ade/industry-theme";
2409
2522
  import { useCallback as useCallback4 } from "react";
2410
- import { jsx as jsx9, jsxs as jsxs6 } from "react/jsx-runtime";
2523
+ import { jsx as jsx10, jsxs as jsxs6 } from "react/jsx-runtime";
2411
2524
  var TabButton = ({
2412
2525
  tab,
2413
2526
  isActive,
@@ -2431,7 +2544,7 @@ var TabButton = ({
2431
2544
  onDragLeave,
2432
2545
  isBeingDragged: _isBeingDragged = false
2433
2546
  }) => {
2434
- const { theme } = useTheme5();
2547
+ const { theme } = useTheme6();
2435
2548
  const showCloseButton = isHovered || isActive;
2436
2549
  const closable = tab.closable !== false;
2437
2550
  const handleDragStart = useCallback4(
@@ -2550,7 +2663,7 @@ var TabButton = ({
2550
2663
  ...getDragOverStyles()
2551
2664
  },
2552
2665
  children: [
2553
- closable && showCloseButton && /* @__PURE__ */ jsx9(
2666
+ closable && showCloseButton && /* @__PURE__ */ jsx10(
2554
2667
  "button",
2555
2668
  {
2556
2669
  onClick: (e) => {
@@ -2585,12 +2698,12 @@ var TabButton = ({
2585
2698
  (() => {
2586
2699
  const icon = renderIcon ? renderIcon(tab) : void 0;
2587
2700
  const displayIcon = icon !== void 0 ? icon : tab.icon;
2588
- return displayIcon ? /* @__PURE__ */ jsx9("div", { style: { flexShrink: 0, display: "flex", alignItems: "center", pointerEvents: "none" }, children: displayIcon }) : null;
2701
+ return displayIcon ? /* @__PURE__ */ jsx10("div", { style: { flexShrink: 0, display: "flex", alignItems: "center", pointerEvents: "none" }, children: displayIcon }) : null;
2589
2702
  })(),
2590
2703
  (() => {
2591
2704
  const label = renderLabel ? renderLabel(tab) : void 0;
2592
2705
  const displayLabel = label !== void 0 ? label : tab.label;
2593
- return /* @__PURE__ */ jsx9(
2706
+ return /* @__PURE__ */ jsx10(
2594
2707
  "span",
2595
2708
  {
2596
2709
  style: {
@@ -2604,7 +2717,7 @@ var TabButton = ({
2604
2717
  }
2605
2718
  );
2606
2719
  })(),
2607
- renderAccessory ? renderAccessory(tab) : keyboardHint && /* @__PURE__ */ jsx9(
2720
+ renderAccessory ? renderAccessory(tab) : keyboardHint && /* @__PURE__ */ jsx10(
2608
2721
  "span",
2609
2722
  {
2610
2723
  style: {
@@ -2623,7 +2736,7 @@ var TabButton = ({
2623
2736
  TabButton.displayName = "TabButton";
2624
2737
 
2625
2738
  // src/components/TabBar/TabBar.tsx
2626
- import { jsx as jsx10, jsxs as jsxs7 } from "react/jsx-runtime";
2739
+ import { jsx as jsx11, jsxs as jsxs7 } from "react/jsx-runtime";
2627
2740
  var TabBar = ({
2628
2741
  tabs,
2629
2742
  activeTabId,
@@ -2642,7 +2755,7 @@ var TabBar = ({
2642
2755
  canDropOnTab,
2643
2756
  enableDragAndDrop = false
2644
2757
  }) => {
2645
- const { theme } = useTheme6();
2758
+ const { theme } = useTheme7();
2646
2759
  const [hoveredTabId, setHoveredTabId] = useState3(null);
2647
2760
  const [draggedTabId, setDraggedTabId] = useState3(null);
2648
2761
  const [dragOverTabId, setDragOverTabId] = useState3(null);
@@ -2681,7 +2794,7 @@ var TabBar = ({
2681
2794
  boxSizing: "border-box"
2682
2795
  },
2683
2796
  children: [
2684
- leftSection && /* @__PURE__ */ jsx10(
2797
+ leftSection && /* @__PURE__ */ jsx11(
2685
2798
  "div",
2686
2799
  {
2687
2800
  style: {
@@ -2697,7 +2810,7 @@ var TabBar = ({
2697
2810
  children: leftSection
2698
2811
  }
2699
2812
  ),
2700
- /* @__PURE__ */ jsx10(
2813
+ /* @__PURE__ */ jsx11(
2701
2814
  "div",
2702
2815
  {
2703
2816
  style: {
@@ -2710,7 +2823,7 @@ var TabBar = ({
2710
2823
  },
2711
2824
  children: tabs.map((tab, index) => {
2712
2825
  const canDrop = enableDragAndDrop && draggedTabId !== null && draggedTabId !== tab.id ? canDropOnTab ? canDropOnTab(draggedTabId, tab.id) : true : false;
2713
- return /* @__PURE__ */ jsx10(
2826
+ return /* @__PURE__ */ jsx11(
2714
2827
  TabButton,
2715
2828
  {
2716
2829
  tab,
@@ -2739,7 +2852,7 @@ var TabBar = ({
2739
2852
  })
2740
2853
  }
2741
2854
  ),
2742
- rightSection !== void 0 ? rightSection && /* @__PURE__ */ jsx10(
2855
+ rightSection !== void 0 ? rightSection && /* @__PURE__ */ jsx11(
2743
2856
  "div",
2744
2857
  {
2745
2858
  style: {
@@ -2754,7 +2867,7 @@ var TabBar = ({
2754
2867
  },
2755
2868
  children: rightSection
2756
2869
  }
2757
- ) : onNewTab && /* @__PURE__ */ jsx10(
2870
+ ) : onNewTab && /* @__PURE__ */ jsx11(
2758
2871
  "div",
2759
2872
  {
2760
2873
  style: {
@@ -2767,7 +2880,7 @@ var TabBar = ({
2767
2880
  borderBottom: `1px solid ${theme.colors.border}`,
2768
2881
  boxSizing: "border-box"
2769
2882
  },
2770
- children: /* @__PURE__ */ jsx10(
2883
+ children: /* @__PURE__ */ jsx11(
2771
2884
  "button",
2772
2885
  {
2773
2886
  onClick: onNewTab,
@@ -2790,7 +2903,7 @@ var TabBar = ({
2790
2903
  e.currentTarget.style.backgroundColor = "transparent";
2791
2904
  },
2792
2905
  title: "New Tab (\u2318T)",
2793
- children: /* @__PURE__ */ jsx10(Plus, { size: 14 })
2906
+ children: /* @__PURE__ */ jsx11(Plus, { size: 14 })
2794
2907
  }
2795
2908
  )
2796
2909
  }
@@ -2844,7 +2957,7 @@ var useTabKeyboardShortcuts = ({
2844
2957
  };
2845
2958
 
2846
2959
  // src/panels/TabbedTerminalPanel.tsx
2847
- import { useTheme as useTheme8 } from "@principal-ade/industry-theme";
2960
+ import { useTheme as useTheme9 } from "@principal-ade/industry-theme";
2848
2961
  import { CollapsibleSplitPane } from "@principal-ade/panels";
2849
2962
  import { Terminal as TerminalIcon2, Box, Boxes, Paperclip } from "lucide-react";
2850
2963
  import React4, {
@@ -2855,16 +2968,16 @@ import React4, {
2855
2968
  } from "react";
2856
2969
 
2857
2970
  // src/components/TerminalStatusBar.tsx
2858
- import { useTheme as useTheme7 } from "@principal-ade/industry-theme";
2971
+ import { useTheme as useTheme8 } from "@principal-ade/industry-theme";
2859
2972
  import { Folder, GitBranch } from "lucide-react";
2860
2973
  import React3 from "react";
2861
- import { jsx as jsx11, jsxs as jsxs8 } from "react/jsx-runtime";
2974
+ import { jsx as jsx12, jsxs as jsxs8 } from "react/jsx-runtime";
2862
2975
  var AVATAR_SIZE = 14;
2863
2976
  var TerminalStatusBar = ({
2864
2977
  directory,
2865
2978
  repo
2866
2979
  }) => {
2867
- const { theme } = useTheme7();
2980
+ const { theme } = useTheme8();
2868
2981
  const [avatarFailed, setAvatarFailed] = React3.useState(false);
2869
2982
  const owner = repo?.owner;
2870
2983
  React3.useEffect(() => {
@@ -2894,7 +3007,7 @@ var TerminalStatusBar = ({
2894
3007
  style: containerStyle,
2895
3008
  title: `${repo.owner}/${repo.repo}${repo.branch ? ` \u2014 ${repo.branch}` : ""}`,
2896
3009
  children: [
2897
- showAvatar ? /* @__PURE__ */ jsx11(
3010
+ showAvatar ? /* @__PURE__ */ jsx12(
2898
3011
  "img",
2899
3012
  {
2900
3013
  src: avatarUrl,
@@ -2909,7 +3022,7 @@ var TerminalStatusBar = ({
2909
3022
  borderRadius: "50%"
2910
3023
  }
2911
3024
  }
2912
- ) : /* @__PURE__ */ jsx11(Folder, { size: 12, style: { flex: "0 0 auto", opacity: 0.7 } }),
3025
+ ) : /* @__PURE__ */ jsx12(Folder, { size: 12, style: { flex: "0 0 auto", opacity: 0.7 } }),
2913
3026
  /* @__PURE__ */ jsxs8(
2914
3027
  "span",
2915
3028
  {
@@ -2924,7 +3037,7 @@ var TerminalStatusBar = ({
2924
3037
  repo.owner,
2925
3038
  "/"
2926
3039
  ] }),
2927
- /* @__PURE__ */ jsx11("span", { style: { color: theme.colors.text }, children: repo.repo })
3040
+ /* @__PURE__ */ jsx12("span", { style: { color: theme.colors.text }, children: repo.repo })
2928
3041
  ]
2929
3042
  }
2930
3043
  ),
@@ -2939,9 +3052,9 @@ var TerminalStatusBar = ({
2939
3052
  opacity: 0.85
2940
3053
  },
2941
3054
  children: [
2942
- /* @__PURE__ */ jsx11(GitBranch, { size: 12, style: { flex: "0 0 auto", opacity: 0.7 } }),
2943
- /* @__PURE__ */ jsx11("span", { children: repo.branch }),
2944
- repo.isDirty && /* @__PURE__ */ jsx11(
3055
+ /* @__PURE__ */ jsx12(GitBranch, { size: 12, style: { flex: "0 0 auto", opacity: 0.7 } }),
3056
+ /* @__PURE__ */ jsx12("span", { children: repo.branch }),
3057
+ repo.isDirty && /* @__PURE__ */ jsx12(
2945
3058
  "span",
2946
3059
  {
2947
3060
  title: "Uncommitted changes",
@@ -2969,8 +3082,8 @@ var TerminalStatusBar = ({
2969
3082
  return null;
2970
3083
  }
2971
3084
  return /* @__PURE__ */ jsxs8("div", { style: containerStyle, title: directory, children: [
2972
- /* @__PURE__ */ jsx11(Folder, { size: 12, style: { flex: "0 0 auto", opacity: 0.7 } }),
2973
- /* @__PURE__ */ jsx11(
3085
+ /* @__PURE__ */ jsx12(Folder, { size: 12, style: { flex: "0 0 auto", opacity: 0.7 } }),
3086
+ /* @__PURE__ */ jsx12(
2974
3087
  "span",
2975
3088
  {
2976
3089
  style: {
@@ -2981,7 +3094,7 @@ var TerminalStatusBar = ({
2981
3094
  textOverflow: "ellipsis",
2982
3095
  minWidth: 0
2983
3096
  },
2984
- children: /* @__PURE__ */ jsx11("bdi", { children: directory })
3097
+ children: /* @__PURE__ */ jsx12("bdi", { children: directory })
2985
3098
  }
2986
3099
  )
2987
3100
  ] });
@@ -2989,9 +3102,9 @@ var TerminalStatusBar = ({
2989
3102
  TerminalStatusBar.displayName = "TerminalStatusBar";
2990
3103
 
2991
3104
  // src/panels/TabbedTerminalPanel.tsx
2992
- import { Fragment as Fragment2, jsx as jsx12, jsxs as jsxs9 } from "react/jsx-runtime";
3105
+ import { Fragment as Fragment2, jsx as jsx13, jsxs as jsxs9 } from "react/jsx-runtime";
2993
3106
  var ActivityIndicator = ({ color, isAnimating }) => /* @__PURE__ */ jsxs9("div", { style: { display: "flex", gap: 1, alignItems: "center", height: 12 }, children: [
2994
- [0, 1, 2, 3, 4].map((i) => /* @__PURE__ */ jsx12(
3107
+ [0, 1, 2, 3, 4].map((i) => /* @__PURE__ */ jsx13(
2995
3108
  "div",
2996
3109
  {
2997
3110
  style: {
@@ -3006,7 +3119,7 @@ var ActivityIndicator = ({ color, isAnimating }) => /* @__PURE__ */ jsxs9("div",
3006
3119
  },
3007
3120
  i
3008
3121
  )),
3009
- /* @__PURE__ */ jsx12("style", { children: `
3122
+ /* @__PURE__ */ jsx13("style", { children: `
3010
3123
  @keyframes waveSine {
3011
3124
  0%, 100% { transform: scaleY(0.4); }
3012
3125
  50% { transform: scaleY(1); }
@@ -3062,7 +3175,7 @@ function TerminalTabContentInner(props, ref) {
3062
3175
  }),
3063
3176
  []
3064
3177
  );
3065
- return /* @__PURE__ */ jsx12(
3178
+ return /* @__PURE__ */ jsx13(
3066
3179
  "div",
3067
3180
  {
3068
3181
  style: {
@@ -3076,7 +3189,7 @@ function TerminalTabContentInner(props, ref) {
3076
3189
  height: "100%",
3077
3190
  width: "100%"
3078
3191
  },
3079
- children: /* @__PURE__ */ jsx12(
3192
+ children: /* @__PURE__ */ jsx13(
3080
3193
  TerminalSession,
3081
3194
  {
3082
3195
  ref: sessionRef,
@@ -3147,6 +3260,7 @@ var TabbedTerminalPanelInner = ({
3147
3260
  onFocusTabHandled,
3148
3261
  requestCloseTabId,
3149
3262
  workingStates,
3263
+ programStatus,
3150
3264
  activityDetection = true,
3151
3265
  activityTimeout = 500,
3152
3266
  autoShowBlinds = false,
@@ -3164,7 +3278,7 @@ var TabbedTerminalPanelInner = ({
3164
3278
  bottomBarContent,
3165
3279
  renderer
3166
3280
  }) => {
3167
- const { theme } = useTheme8();
3281
+ const { theme } = useTheme9();
3168
3282
  const onTabAssociate = actions.onTabAssociate ?? onTabAssociateProp;
3169
3283
  const [ownedTabs, setOwnedTabs] = useState4(initialTabs);
3170
3284
  const [foreignTabs, setForeignTabs] = useState4([]);
@@ -3550,12 +3664,30 @@ var TabbedTerminalPanelInner = ({
3550
3664
  });
3551
3665
  const renderTabAccessory = useCallback6((tab) => {
3552
3666
  const tabSessionId = sessionIds.get(tab.id);
3667
+ const isActive = tab.id === activeTabId;
3668
+ const record = tabSessionId ? programStatus?.[tabSessionId] : void 0;
3669
+ if (record && record.state !== "idle" && record.state !== "clear") {
3670
+ return /* @__PURE__ */ jsx13(
3671
+ "div",
3672
+ {
3673
+ style: {
3674
+ position: "absolute",
3675
+ right: "8px",
3676
+ display: "flex",
3677
+ alignItems: "center",
3678
+ justifyContent: "center",
3679
+ width: "16px",
3680
+ height: "16px"
3681
+ },
3682
+ children: /* @__PURE__ */ jsx13(ProgramStatusBadge, { record })
3683
+ }
3684
+ );
3685
+ }
3553
3686
  const hasExternalWorkingState = tabSessionId ? workingStates?.[tabSessionId]?.isWorking : false;
3554
3687
  const hasInternalActivity = tabSessionId ? activityStates.get(tabSessionId) : false;
3555
3688
  const isWorking = hasExternalWorkingState || hasInternalActivity;
3556
- const isActive = tab.id === activeTabId;
3557
3689
  if (!isActive) return null;
3558
- return /* @__PURE__ */ jsx12(Fragment2, { children: /* @__PURE__ */ jsx12(
3690
+ return /* @__PURE__ */ jsx13(Fragment2, { children: /* @__PURE__ */ jsx13(
3559
3691
  "div",
3560
3692
  {
3561
3693
  style: {
@@ -3568,12 +3700,12 @@ var TabbedTerminalPanelInner = ({
3568
3700
  height: "16px"
3569
3701
  },
3570
3702
  title: isWorking ? "Terminal active" : "Terminal idle",
3571
- children: /* @__PURE__ */ jsx12(ActivityIndicator, { color: theme.colors.primary, isAnimating: isWorking ?? false })
3703
+ children: /* @__PURE__ */ jsx13(ActivityIndicator, { color: theme.colors.primary, isAnimating: isWorking ?? false })
3572
3704
  }
3573
3705
  ) });
3574
- }, [activeTabId, theme, sessionIds, workingStates, activityStates]);
3706
+ }, [activeTabId, theme, sessionIds, workingStates, activityStates, programStatus]);
3575
3707
  const renderTerminalWithAssociation = useCallback6((tab, isActive, sessionId, association) => {
3576
- const terminalContent = /* @__PURE__ */ jsx12(
3708
+ const terminalContent = /* @__PURE__ */ jsx13(
3577
3709
  TerminalTabContent,
3578
3710
  {
3579
3711
  ref: getRefCallback(tab.id),
@@ -3595,7 +3727,7 @@ var TabbedTerminalPanelInner = ({
3595
3727
  `terminal-${tab.id}`
3596
3728
  );
3597
3729
  const hasAssociation = !!association;
3598
- const secondaryContent = hasAssociation && renderAssociatedContent ? renderAssociatedContent(association.associatedTabId, isActive) : /* @__PURE__ */ jsx12("div", { style: {
3730
+ const secondaryContent = hasAssociation && renderAssociatedContent ? renderAssociatedContent(association.associatedTabId, isActive) : /* @__PURE__ */ jsx13("div", { style: {
3599
3731
  height: "100%",
3600
3732
  display: "flex",
3601
3733
  alignItems: "center",
@@ -3604,10 +3736,10 @@ var TabbedTerminalPanelInner = ({
3604
3736
  fontSize: "13px",
3605
3737
  backgroundColor: theme.colors.backgroundSecondary
3606
3738
  }, children: "Drag a tab here to associate it with this terminal" });
3607
- const headerConfig = hasAssociation && getAssociatedHeader ? getAssociatedHeader(association.associatedTabId) : { title: "Drop zone", icon: /* @__PURE__ */ jsx12(Paperclip, { size: 14 }) };
3739
+ const headerConfig = hasAssociation && getAssociatedHeader ? getAssociatedHeader(association.associatedTabId) : { title: "Drop zone", icon: /* @__PURE__ */ jsx13(Paperclip, { size: 14 }) };
3608
3740
  const isCollapsed = hasAssociation ? association.collapsed : true;
3609
3741
  const handleCollapsedChange = hasAssociation ? (collapsed) => onAssociationCollapsedChange?.(tab.id, collapsed) : void 0;
3610
- return /* @__PURE__ */ jsx12(
3742
+ return /* @__PURE__ */ jsx13(
3611
3743
  CollapsibleSplitPane,
3612
3744
  {
3613
3745
  style: { height: "100%" },
@@ -3699,7 +3831,7 @@ var TabbedTerminalPanelInner = ({
3699
3831
  backgroundColor: theme.colors.background
3700
3832
  },
3701
3833
  children: [
3702
- !hideHeader && /* @__PURE__ */ jsx12("div", { ref: headerRef, children: /* @__PURE__ */ jsx12(
3834
+ !hideHeader && /* @__PURE__ */ jsx13("div", { ref: headerRef, children: /* @__PURE__ */ jsx13(
3703
3835
  TabBar,
3704
3836
  {
3705
3837
  tabs: genericTabs,
@@ -3707,7 +3839,7 @@ var TabbedTerminalPanelInner = ({
3707
3839
  onTabClick: switchTab,
3708
3840
  onTabClose: closeTab,
3709
3841
  onNewTab: addNewTab,
3710
- leftSection: hideShowAllTerminalsButton ? void 0 : /* @__PURE__ */ jsx12(
3842
+ leftSection: hideShowAllTerminalsButton ? void 0 : /* @__PURE__ */ jsx13(
3711
3843
  "button",
3712
3844
  {
3713
3845
  onClick: () => onShowAllTerminalsChange?.(!showAllTerminals),
@@ -3734,7 +3866,7 @@ var TabbedTerminalPanelInner = ({
3734
3866
  }
3735
3867
  },
3736
3868
  title: showAllTerminals ? "Showing all terminals (click to filter by context)" : "Show all terminals",
3737
- children: showAllTerminals ? /* @__PURE__ */ jsx12(Boxes, { size: 14 }) : /* @__PURE__ */ jsx12(Box, { size: 14 })
3869
+ children: showAllTerminals ? /* @__PURE__ */ jsx13(Boxes, { size: 14 }) : /* @__PURE__ */ jsx13(Box, { size: 14 })
3738
3870
  }
3739
3871
  ),
3740
3872
  renderTabAccessory,
@@ -3795,7 +3927,7 @@ var TabbedTerminalPanelInner = ({
3795
3927
  const customContent = renderTabContent(tab, isActive, sessionId, width);
3796
3928
  if (customContent === null && tab.contentType === "terminal") {
3797
3929
  const association = associations?.[tab.id];
3798
- return /* @__PURE__ */ jsx12(
3930
+ return /* @__PURE__ */ jsx13(
3799
3931
  "div",
3800
3932
  {
3801
3933
  inert: !isActive,
@@ -3823,7 +3955,7 @@ var TabbedTerminalPanelInner = ({
3823
3955
  );
3824
3956
  }
3825
3957
  const hasBeenActivated = activatedTabs.has(tab.id);
3826
- return /* @__PURE__ */ jsx12(
3958
+ return /* @__PURE__ */ jsx13(
3827
3959
  "div",
3828
3960
  {
3829
3961
  inert: !isActive,
@@ -3843,7 +3975,7 @@ var TabbedTerminalPanelInner = ({
3843
3975
  }
3844
3976
  if (tab.contentType === "terminal") {
3845
3977
  const association = associations?.[tab.id];
3846
- return /* @__PURE__ */ jsx12(
3978
+ return /* @__PURE__ */ jsx13(
3847
3979
  "div",
3848
3980
  {
3849
3981
  inert: !isActive,
@@ -3881,7 +4013,7 @@ var TabbedTerminalPanelInner = ({
3881
4013
  "Unknown content type: ",
3882
4014
  tab.contentType
3883
4015
  ] }),
3884
- /* @__PURE__ */ jsx12("p", { style: { fontSize: theme.fontSizes[0], marginTop: "8px" }, children: "Provide a renderTabContent prop to render custom tab types" })
4016
+ /* @__PURE__ */ jsx13("p", { style: { fontSize: theme.fontSizes[0], marginTop: "8px" }, children: "Provide a renderTabContent prop to render custom tab types" })
3885
4017
  ]
3886
4018
  },
3887
4019
  tab.id
@@ -3899,14 +4031,14 @@ var TabbedTerminalPanelInner = ({
3899
4031
  color: theme.colors.textSecondary
3900
4032
  },
3901
4033
  children: [
3902
- /* @__PURE__ */ jsx12(
4034
+ /* @__PURE__ */ jsx13(
3903
4035
  TerminalIcon2,
3904
4036
  {
3905
4037
  size: 32,
3906
4038
  style: { opacity: 0.5, marginBottom: "16px" }
3907
4039
  }
3908
4040
  ),
3909
- /* @__PURE__ */ jsx12(
4041
+ /* @__PURE__ */ jsx13(
3910
4042
  "button",
3911
4043
  {
3912
4044
  onClick: () => addNewTab(),
@@ -3934,14 +4066,14 @@ var TabbedTerminalPanelInner = ({
3934
4066
  const activeTab = tabs.find((t) => t.id === activeTabId);
3935
4067
  const activeDir = activeTab?.directory;
3936
4068
  return /* @__PURE__ */ jsxs9("div", { style: { display: "flex", alignItems: "center", flex: "0 0 auto" }, children: [
3937
- /* @__PURE__ */ jsx12(
4069
+ /* @__PURE__ */ jsx13(
3938
4070
  TerminalStatusBar,
3939
4071
  {
3940
4072
  directory: activeDir,
3941
4073
  repo: activeDir ? getRepoInfo?.(activeDir) : void 0
3942
4074
  }
3943
4075
  ),
3944
- bottomBarContent && /* @__PURE__ */ jsx12("div", { style: { marginLeft: "auto", display: "flex", alignItems: "center", height: 22 }, children: bottomBarContent })
4076
+ bottomBarContent && /* @__PURE__ */ jsx13("div", { style: { marginLeft: "auto", display: "flex", alignItems: "center", height: 22 }, children: bottomBarContent })
3945
4077
  ] });
3946
4078
  })()
3947
4079
  ]
@@ -3971,6 +4103,7 @@ var TabbedTerminalPanelMemoized = React4.memo(TabbedTerminalPanelInner, (prevPro
3971
4103
  if (prevProps.activeTabId !== nextProps.activeTabId) changes.push("activeTabId");
3972
4104
  if (prevProps.onActiveTabChange !== nextProps.onActiveTabChange) changes.push("onActiveTabChange");
3973
4105
  if (prevProps.workingStates !== nextProps.workingStates) changes.push("workingStates");
4106
+ if (prevProps.programStatus !== nextProps.programStatus) changes.push("programStatus");
3974
4107
  if (prevProps.activityDetection !== nextProps.activityDetection) changes.push("activityDetection");
3975
4108
  if (prevProps.activityTimeout !== nextProps.activityTimeout) changes.push("activityTimeout");
3976
4109
  if (prevProps.autoShowBlinds !== nextProps.autoShowBlinds) changes.push("autoShowBlinds");
@@ -4176,6 +4309,7 @@ function getTerminalSlice(context2) {
4176
4309
  export {
4177
4310
  DEFAULT_RENDERER,
4178
4311
  GhosttyRenderer,
4312
+ ProgramStatusBadge,
4179
4313
  SelectionDragChip,
4180
4314
  SpanStatusCode,
4181
4315
  TRACER_NAME,
@@ -4195,6 +4329,7 @@ export {
4195
4329
  createTerminalSessionTool,
4196
4330
  createTerminalTheme,
4197
4331
  focusTerminalTool,
4332
+ formatProgramStatusRecord,
4198
4333
  getActiveSpan,
4199
4334
  getRepositoryPath,
4200
4335
  getTerminalCSSVariables,
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import '../styles/terminal-theme.css';
3
+ import type { ProgramStatusRecord } from '../types/terminal.types';
4
+ export interface ProgramStatusBadgeProps {
5
+ record: ProgramStatusRecord;
6
+ animate?: boolean;
7
+ }
8
+ export declare const formatProgramStatusRecord: (record: ProgramStatusRecord) => string;
9
+ export declare const ProgramStatusBadge: React.FC<ProgramStatusBadgeProps>;
10
+ //# sourceMappingURL=ProgramStatusBadge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgramStatusBadge.d.ts","sourceRoot":"","sources":["../../../src/components/ProgramStatusBadge.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,MAAM,WAAW,uBAAuB;IAEtC,MAAM,EAAE,mBAAmB,CAAC;IAM5B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAsBD,eAAO,MAAM,yBAAyB,GAAI,QAAQ,mBAAmB,KAAG,MAQvE,CAAC;AAoCF,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CA6EhE,CAAC"}
@@ -1,9 +1,9 @@
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
- import type { DroppedTerminalFile } from '../types/terminal.types';
3
+ import type { DroppedTerminalFile, ProgramStatusKind, ProgramStatusRecord, ProgramStatusState } from '../types/terminal.types';
4
4
  import type { TerminalRepoInfo } from '../components/TerminalStatusBar';
5
5
  import type { RendererChoice } from '../renderer/resolveRenderer';
6
- export type { DroppedTerminalFile, TerminalRepoInfo };
6
+ export type { DroppedTerminalFile, TerminalRepoInfo, ProgramStatusRecord, ProgramStatusState, ProgramStatusKind, };
7
7
  export type TerminalEventType = 'terminal:data' | 'terminal:exit' | 'terminal:created' | 'terminal:title-change' | 'terminal:cwd-change' | 'terminal:link-click' | 'terminal:shortcut' | 'terminal:activity-changed';
8
8
  export interface TerminalLinkClickEvent {
9
9
  url: string;
@@ -142,6 +142,7 @@ export interface TabbedTerminalPanelProps<TTab extends BaseTab = TerminalTab> ex
142
142
  renderTabLabel?: (tab: TTab) => React.ReactNode;
143
143
  width?: number;
144
144
  workingStates?: Record<string, TerminalWorkingState>;
145
+ programStatus?: Record<string, ProgramStatusRecord>;
145
146
  activityDetection?: boolean;
146
147
  activityTimeout?: number;
147
148
  autoShowBlinds?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/panel-types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/panel-types/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TabbedTerminalPanel.d.ts","sourceRoot":"","sources":["../../../src/panels/TabbedTerminalPanel.tsx"],"names":[],"mappings":"AAIA,OAAO,KAKN,MAAM,OAAO,CAAC;AAQf,OAAO,KAAK,EACV,wBAAwB,EACxB,WAAW,EAGZ,MAAM,gBAAgB,CAAC;AAkExB,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,MAAM,IAAI,CAAC;CAC5B;AA2wCD,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;AASf,OAAO,KAAK,EACV,wBAAwB,EACxB,WAAW,EAGZ,MAAM,gBAAgB,CAAC;AAkExB,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,MAAM,IAAI,CAAC;CAC5B;AAsyCD,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"}
@@ -24,6 +24,17 @@ export interface TerminalActivityState {
24
24
  startedAt?: number;
25
25
  duration?: number;
26
26
  }
27
+ export type ProgramStatusState = 'idle' | 'working' | 'done' | 'blocked' | 'error' | 'clear';
28
+ export type ProgramStatusKind = 'permission' | 'question' | 'auth';
29
+ export interface ProgramStatusRecord {
30
+ state: ProgramStatusState;
31
+ kind?: ProgramStatusKind;
32
+ progress?: number;
33
+ id?: string;
34
+ app?: string;
35
+ msg?: string;
36
+ title?: string;
37
+ }
27
38
  export interface DroppedTerminalFile {
28
39
  name: string;
29
40
  mimeType: string;
@@ -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;CACrB;AAKD,MAAM,WAAW,qBAAqB;IAEpC,QAAQ,EAAE,OAAO,CAAC;IAElB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAQD,MAAM,WAAW,mBAAmB;IAElC,IAAI,EAAE,MAAM,CAAC;IAEb,QAAQ,EAAE,MAAM,CAAC;IAEjB,IAAI,EAAE,UAAU,CAAC;CAClB;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;IASpE,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,EAAE,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAIrE,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;IAGpB,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,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;CACjD"}
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
@@ -228,3 +228,28 @@
228
228
  .terminal-working-overlay.closing {
229
229
  animation: blinds-up 0.3s ease-in forwards;
230
230
  }
231
+
232
+ /* ===== PROGRAM STATUS BADGES (OSC 7501) ===== */
233
+
234
+ /* Animated wave bars for the "working" state */
235
+ @keyframes program-status-wave {
236
+ 0%,
237
+ 100% {
238
+ transform: scaleY(0.4);
239
+ }
240
+ 50% {
241
+ transform: scaleY(1);
242
+ }
243
+ }
244
+
245
+ /* Attention fade for the "blocked" badge. Opacity only — the badge keeps its
246
+ size (no grow/shrink). */
247
+ @keyframes program-status-fade {
248
+ 0%,
249
+ 100% {
250
+ opacity: 1;
251
+ }
252
+ 50% {
253
+ opacity: 0.5;
254
+ }
255
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@industry-theme/xterm-terminal-panel",
3
- "version": "0.9.1",
3
+ "version": "0.9.4",
4
4
  "description": "Industry-themed xterm.js terminal components with panel framework integration",
5
5
  "type": "module",
6
6
  "sideEffects": [
@@ -62,7 +62,7 @@
62
62
  },
63
63
  "dependencies": {
64
64
  "clsx": "^2.1.1",
65
- "ghostty-web": "^0.4.0",
65
+ "ghostty-web": "https://github.com/anomalyco/ghostty-web/archive/6e24d040458ddd7aae81572fe2901deec32f9fe7.tar.gz",
66
66
  "react-resizable-panels": "^4.7.3"
67
67
  },
68
68
  "peerDependencies": {