@industry-theme/xterm-terminal-panel 0.10.10 → 0.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -183,6 +183,46 @@ The `opacity` property controls the overlay background opacity (0-1):
183
183
 
184
184
  ## API
185
185
 
186
+ ### Tab identity
187
+
188
+ A terminal tab's identity is its **tab id** (`tab-<uuid>`), minted by the panel
189
+ *before* any session exists. The session context is
190
+ `` `${terminalContext}:${tabId}` ``, composed exactly once by the panel and
191
+ persisted on the session — that is what lets a restored tab recover the id it
192
+ was created with.
193
+
194
+ Two rules for hosts:
195
+
196
+ 1. **Pass the context through verbatim.** If your `createTerminalSession`
197
+ implementation adds its own scope prefix, the restore round-trip
198
+ (`session.context -> tabId`) breaks and restored tabs get new identities.
199
+ 2. **Do not wrap `requestOpenTab`.** Opening a terminal goes through the
200
+ `requestOpenTab` prop (or the tab bar's new-tab button); the panel mints the
201
+ id and creates the session. A host that creates the session itself has to
202
+ invent a context, which is how two opens in the same directory end up
203
+ sharing one tab.
204
+
205
+ ```ts
206
+ const [openTab, setOpenTab] = useState<TerminalTabOpenRequest | null>(null);
207
+
208
+ // "Open a terminal here"
209
+ setOpenTab({ directory: '/work/app', label: 'app' });
210
+
211
+ <TabbedTerminalPanel
212
+ terminalContext="terminal:workspace"
213
+ directory="/work/app"
214
+ requestOpenTab={openTab}
215
+ onOpenTabHandled={() => setOpenTab(null)}
216
+ requestFocusTabId={focusTabId} // tab ids only — `tab-<uuid>`
217
+ onFocusTabHandled={() => setFocusTabId(null)}
218
+ />;
219
+ ```
220
+
221
+ Helpers are exported for hosts that need to reason about identity themselves:
222
+ `createTabId()`, `tabContext(terminalContext, tabId)`, and
223
+ `tabIdFromContext(terminalContext, sessionContext)` (returns `null` for a
224
+ foreign scope or a legacy context).
225
+
186
226
  ### ThemedTerminal Props
187
227
 
188
228
  | Prop | Type | Default | Description |
package/dist/index.d.ts CHANGED
@@ -21,6 +21,7 @@ export type { ThemedTerminalProps, ThemedTerminalRef, TerminalActivityState, Ter
21
21
  export { useThemedTerminal } from './src/hooks/useThemedTerminal';
22
22
  export type { UseThemedTerminalReturn } from './src/hooks/useThemedTerminal';
23
23
  export { createTerminalTheme, getTerminalCSSVariables, } from './src/utils/terminalTheme';
24
+ export { createTabId, tabContext, tabIdFromContext, } from './src/utils/tabIdentity';
24
25
  export { TabBar, TabButton } from './src/components/TabBar';
25
26
  export type { Tab, BaseTab, LegacyTab, TabBarProps, TabButtonProps, TabReorderPosition } from './src/types/tab';
26
27
  export type { ContentTab, SkillTab, AgentTab, MixedTab, TabByContentType, } from './src/types/mixed-tab';
@@ -31,7 +32,7 @@ export { TabbedTerminalPanel } from './src/panels/TabbedTerminalPanel';
31
32
  export type { TerminalTabContentRef } from './src/panels/TabbedTerminalPanel';
32
33
  export { panels, onPackageLoad, onPackageUnload } from './src/panel-exports';
33
34
  export { terminalPanelTools, terminalPanelToolsMetadata, createTerminalSessionTool, writeToTerminalTool, closeTerminalSessionTool, clearTerminalTool, focusTerminalTool, } from './src/panel-exports';
34
- export type { PanelDefinition, PanelMetadata, PanelComponentProps, PanelContextValue, PanelActions, PanelEventEmitter, TerminalSessionInfo, CreateTerminalSessionOptions, TerminalPanelActions, TerminalEventType, TerminalLinkClickEvent, TerminalScope, TerminalPanelProps, TerminalTab, TabbedTerminalPanelProps, OwnershipStatus, OwnershipResult, PortReadyData, TerminalWorkingState, TerminalActivityType, TerminalActivityChangedEvent, TerminalRepoInfo, } from './src/panel-types';
35
+ export type { PanelDefinition, PanelMetadata, PanelComponentProps, PanelContextValue, PanelActions, PanelEventEmitter, TerminalSessionInfo, CreateTerminalSessionOptions, TerminalPanelActions, TerminalEventType, TerminalLinkClickEvent, TerminalScope, TerminalPanelProps, TerminalTab, TerminalTabOpenRequest, TabbedTerminalPanelProps, OwnershipStatus, OwnershipResult, PortReadyData, TerminalWorkingState, TerminalActivityType, TerminalActivityChangedEvent, TerminalRepoInfo, } from './src/panel-types';
35
36
  export { getTerminalSessions, getTerminalSession, isTerminalLoading, getRepositoryPath, getWorkspacePath, getTerminalDirectory, getTerminalSlice, } from './src/panel-types';
36
37
  export { getTracer, getActiveSpan, withSpan, withSpanSync, TRACER_NAME, TRACER_VERSION, trace, context, SpanStatusCode, } from './src/telemetry';
37
38
  export type { Tracer, Span } from './src/telemetry';
@@ -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
@@ -187,7 +187,7 @@ import {
187
187
  // package.json
188
188
  var package_default = {
189
189
  name: "@industry-theme/xterm-terminal-panel",
190
- version: "0.10.10",
190
+ version: "0.11.1",
191
191
  description: "Industry-themed xterm.js terminal components with panel framework integration",
192
192
  type: "module",
193
193
  sideEffects: [
@@ -2684,6 +2684,30 @@ function useThemedTerminal() {
2684
2684
  };
2685
2685
  }
2686
2686
 
2687
+ // src/utils/tabIdentity.ts
2688
+ var fallbackCounter = 0;
2689
+ function createTabId() {
2690
+ const cryptoObj = typeof globalThis !== "undefined" ? globalThis.crypto : void 0;
2691
+ if (cryptoObj && typeof cryptoObj.randomUUID === "function") {
2692
+ return `tab-${cryptoObj.randomUUID()}`;
2693
+ }
2694
+ fallbackCounter += 1;
2695
+ const time = Date.now().toString(36);
2696
+ const counter = fallbackCounter.toString(36);
2697
+ const random = Math.random().toString(36).slice(2, 10);
2698
+ return `tab-${time}-${counter}-${random}`;
2699
+ }
2700
+ function tabContext(terminalContext, tabId) {
2701
+ return `${terminalContext}:${tabId}`;
2702
+ }
2703
+ function tabIdFromContext(terminalContext, context2) {
2704
+ if (!context2) return null;
2705
+ const prefix = `${terminalContext}:`;
2706
+ if (!context2.startsWith(prefix)) return null;
2707
+ const tabId = context2.slice(prefix.length);
2708
+ return tabId.length > 0 ? tabId : null;
2709
+ }
2710
+
2687
2711
  // src/components/TabBar/TabBar.tsx
2688
2712
  import { useTheme as useTheme7 } from "@principal-ade/industry-theme";
2689
2713
  import { Plus } from "lucide-react";
@@ -3467,7 +3491,7 @@ function TerminalTabContentInner(props, ref) {
3467
3491
  onSessionCreated: handleSessionCreated,
3468
3492
  cwd: tab.directory,
3469
3493
  command: tab.command,
3470
- sessionContext: `${terminalContext}:${tab.id}`,
3494
+ sessionContext: tabContext(terminalContext, tab.id),
3471
3495
  renderer,
3472
3496
  enableOwnership: true,
3473
3497
  isForeign,
@@ -3531,6 +3555,8 @@ var TabbedTerminalPanelInner = ({
3531
3555
  onActiveTabChange,
3532
3556
  requestFocusTabId,
3533
3557
  onFocusTabHandled,
3558
+ requestOpenTab,
3559
+ onOpenTabHandled,
3534
3560
  requestCloseTabId,
3535
3561
  workingStates,
3536
3562
  programStatus,
@@ -3685,8 +3711,9 @@ var TabbedTerminalPanelInner = ({
3685
3711
  if (newSessions.length === 0) return;
3686
3712
  const newRestoredTabs = newSessions.map((session) => {
3687
3713
  const sessionCwd = session.cwd || directory;
3714
+ const tabId = tabIdFromContext(terminalContext, session.context) ?? `tab-restored-${session.id}`;
3688
3715
  return {
3689
- id: `tab-restored-${session.id}`,
3716
+ id: tabId,
3690
3717
  label: sessionCwd.split("/").pop() || sessionCwd,
3691
3718
  contentType: "terminal",
3692
3719
  directory: sessionCwd,
@@ -3801,11 +3828,11 @@ var TabbedTerminalPanelInner = ({
3801
3828
  setActiveTabId(tabId);
3802
3829
  }, [setActiveTabId]);
3803
3830
  const addNewTab = useCallback6(
3804
- (label, command, targetDirectory) => {
3831
+ (label, command, targetDirectory, tabId) => {
3805
3832
  const targetDir = targetDirectory || directory;
3806
3833
  const directoryName = targetDir.split("/").pop() || targetDir;
3807
3834
  const newTab = {
3808
- id: `tab-${Date.now()}`,
3835
+ id: tabId ?? createTabId(),
3809
3836
  label: label || directoryName,
3810
3837
  contentType: "terminal",
3811
3838
  directory: targetDir,
@@ -3813,14 +3840,31 @@ var TabbedTerminalPanelInner = ({
3813
3840
  closable: true
3814
3841
  };
3815
3842
  setOwnedTabs((prevTabs) => {
3843
+ if (prevTabs.some((tab) => tab.id === newTab.id)) {
3844
+ return prevTabs;
3845
+ }
3816
3846
  const newTabs = [...prevTabs, newTab];
3817
3847
  onTabsChange?.(newTabs);
3818
3848
  return newTabs;
3819
3849
  });
3820
3850
  setActiveTabId(newTab.id);
3851
+ return newTab.id;
3821
3852
  },
3822
- [directory, onTabsChange]
3853
+ [directory, onTabsChange, setActiveTabId]
3823
3854
  );
3855
+ const handledOpenRequestRef = useRef5(null);
3856
+ useEffect7(() => {
3857
+ if (!requestOpenTab) return;
3858
+ if (handledOpenRequestRef.current === requestOpenTab) return;
3859
+ handledOpenRequestRef.current = requestOpenTab;
3860
+ addNewTab(
3861
+ requestOpenTab.label,
3862
+ requestOpenTab.command,
3863
+ requestOpenTab.directory,
3864
+ requestOpenTab.tabId
3865
+ );
3866
+ onOpenTabHandled?.();
3867
+ }, [requestOpenTab, addNewTab, onOpenTabHandled]);
3824
3868
  const isForeignTab = useCallback6((tabId) => {
3825
3869
  return tabId.startsWith("tab-foreign-");
3826
3870
  }, []);
@@ -4057,7 +4101,7 @@ var TabbedTerminalPanelInner = ({
4057
4101
  activeTabId,
4058
4102
  onTabClick: switchTab,
4059
4103
  onTabClose: closeTab,
4060
- onNewTab: addNewTab,
4104
+ onNewTab: () => addNewTab(),
4061
4105
  showNewTabButton,
4062
4106
  leftSection: hideShowAllTerminalsButton ? void 0 : /* @__PURE__ */ jsx14(
4063
4107
  "button",
@@ -4276,40 +4320,62 @@ var TabbedTerminalPanelInner = ({
4276
4320
  );
4277
4321
  };
4278
4322
  TabbedTerminalPanelInner.displayName = "TabbedTerminalPanelInner";
4323
+ var COMPARED_PROP_KEYS = [
4324
+ "terminalContext",
4325
+ "directory",
4326
+ "getRepoInfo",
4327
+ "hideHeader",
4328
+ "isVisible",
4329
+ "showAllTerminals",
4330
+ "hideShowAllTerminalsButton",
4331
+ "showNewTabButton",
4332
+ "enableTabReorder",
4333
+ "tabLabelPrefix",
4334
+ "width",
4335
+ "actions",
4336
+ "onTabsChange",
4337
+ "onShowAllTerminalsChange",
4338
+ "initialTabs",
4339
+ "renderTabContent",
4340
+ "renderTabIcon",
4341
+ "renderTabLabel",
4342
+ "renderEmptyState",
4343
+ "requestFocusTabId",
4344
+ "onFocusTabHandled",
4345
+ "requestOpenTab",
4346
+ "onOpenTabHandled",
4347
+ "requestCloseTabId",
4348
+ "activeTabId",
4349
+ "onActiveTabChange",
4350
+ "workingStates",
4351
+ "programStatus",
4352
+ "activityDetection",
4353
+ "activityTimeout",
4354
+ "autoShowBlinds",
4355
+ "bottomBarContent"
4356
+ ];
4357
+ var IGNORED_PROP_KEYS = /* @__PURE__ */ new Set(["context", "events"]);
4358
+ function warnAboutUncomparedProps(prevProps, nextProps) {
4359
+ if (typeof process === "undefined" || false) {
4360
+ return;
4361
+ }
4362
+ const prev = prevProps;
4363
+ const next = nextProps;
4364
+ for (const key of Object.keys({ ...prev, ...next })) {
4365
+ if (IGNORED_PROP_KEYS.has(key)) continue;
4366
+ if (COMPARED_PROP_KEYS.includes(key)) continue;
4367
+ if (prev[key] === next[key]) continue;
4368
+ console.warn(
4369
+ `[TabbedTerminalPanel] prop "${key}" changed but is missing from COMPARED_PROP_KEYS \u2014 the panel will ignore the update.`
4370
+ );
4371
+ }
4372
+ }
4279
4373
  var TabbedTerminalPanelMemoized = React3.memo(TabbedTerminalPanelInner, (prevProps, nextProps) => {
4280
- const changes = [];
4281
- if (prevProps.terminalContext !== nextProps.terminalContext) changes.push("terminalContext");
4282
- if (prevProps.directory !== nextProps.directory) changes.push("directory");
4283
- if (prevProps.getRepoInfo !== nextProps.getRepoInfo) changes.push("getRepoInfo");
4284
- if (prevProps.hideHeader !== nextProps.hideHeader) changes.push("hideHeader");
4285
- if (prevProps.isVisible !== nextProps.isVisible) changes.push("isVisible");
4286
- if (prevProps.showAllTerminals !== nextProps.showAllTerminals) changes.push("showAllTerminals");
4287
- if (prevProps.hideShowAllTerminalsButton !== nextProps.hideShowAllTerminalsButton) changes.push("hideShowAllTerminalsButton");
4288
- if (prevProps.showNewTabButton !== nextProps.showNewTabButton) changes.push("showNewTabButton");
4289
- if (prevProps.enableTabReorder !== nextProps.enableTabReorder) changes.push("enableTabReorder");
4290
- if (prevProps.tabLabelPrefix !== nextProps.tabLabelPrefix) changes.push("tabLabelPrefix");
4291
- if (prevProps.width !== nextProps.width) changes.push("width");
4292
- if (prevProps.actions !== nextProps.actions) changes.push("actions");
4293
- if (prevProps.onTabsChange !== nextProps.onTabsChange) changes.push("onTabsChange");
4294
- if (prevProps.onShowAllTerminalsChange !== nextProps.onShowAllTerminalsChange) changes.push("onShowAllTerminalsChange");
4295
- if (prevProps.initialTabs !== nextProps.initialTabs) changes.push("initialTabs");
4296
- if (prevProps.renderTabContent !== nextProps.renderTabContent) changes.push("renderTabContent");
4297
- if (prevProps.renderEmptyState !== nextProps.renderEmptyState) changes.push("renderEmptyState");
4298
- if (prevProps.requestFocusTabId !== nextProps.requestFocusTabId) changes.push("requestFocusTabId");
4299
- if (prevProps.requestCloseTabId !== nextProps.requestCloseTabId) changes.push("requestCloseTabId");
4300
- if (prevProps.onFocusTabHandled !== nextProps.onFocusTabHandled) changes.push("onFocusTabHandled");
4301
- if (prevProps.activeTabId !== nextProps.activeTabId) changes.push("activeTabId");
4302
- if (prevProps.onActiveTabChange !== nextProps.onActiveTabChange) changes.push("onActiveTabChange");
4303
- if (prevProps.workingStates !== nextProps.workingStates) changes.push("workingStates");
4304
- if (prevProps.programStatus !== nextProps.programStatus) changes.push("programStatus");
4305
- if (prevProps.activityDetection !== nextProps.activityDetection) changes.push("activityDetection");
4306
- if (prevProps.activityTimeout !== nextProps.activityTimeout) changes.push("activityTimeout");
4307
- if (prevProps.autoShowBlinds !== nextProps.autoShowBlinds) changes.push("autoShowBlinds");
4308
- if (prevProps.bottomBarContent !== nextProps.bottomBarContent) changes.push("bottomBarContent");
4309
- const ignoredChanges = [];
4310
- if (prevProps.context !== nextProps.context) ignoredChanges.push("context");
4311
- if (prevProps.events !== nextProps.events) ignoredChanges.push("events");
4312
- return changes.length === 0;
4374
+ for (const key of COMPARED_PROP_KEYS) {
4375
+ if (prevProps[key] !== nextProps[key]) return false;
4376
+ }
4377
+ warnAboutUncomparedProps(prevProps, nextProps);
4378
+ return true;
4313
4379
  });
4314
4380
  TabbedTerminalPanelMemoized.displayName = "TabbedTerminalPanel";
4315
4381
  var TabbedTerminalPanel = TabbedTerminalPanelMemoized;
@@ -4521,6 +4587,7 @@ export {
4521
4587
  clearTerminalTool,
4522
4588
  closeTerminalSessionTool,
4523
4589
  context,
4590
+ createTabId,
4524
4591
  createTerminalSessionTool,
4525
4592
  createTerminalTheme,
4526
4593
  focusTerminalTool,
@@ -4540,6 +4607,8 @@ export {
4540
4607
  onPackageUnload,
4541
4608
  panels,
4542
4609
  resolveRenderer,
4610
+ tabContext,
4611
+ tabIdFromContext,
4543
4612
  terminalPanelTools,
4544
4613
  terminalPanelToolsMetadata,
4545
4614
  trace,
@@ -116,6 +116,12 @@ export interface TerminalTab extends BaseTab {
116
116
  directory: string;
117
117
  command?: string;
118
118
  }
119
+ export interface TerminalTabOpenRequest {
120
+ directory?: string;
121
+ label?: string;
122
+ command?: string;
123
+ tabId?: string;
124
+ }
119
125
  export interface TabbedTerminalPanelProps<TTab extends BaseTab = TerminalTab> extends Omit<TerminalPanelProps, 'terminalScope'> {
120
126
  terminalContext: string;
121
127
  directory: string;
@@ -128,6 +134,8 @@ export interface TabbedTerminalPanelProps<TTab extends BaseTab = TerminalTab> ex
128
134
  activeTabId?: string | null;
129
135
  onActiveTabChange?: (tabId: string | null) => void;
130
136
  requestFocusTabId?: string | null;
137
+ requestOpenTab?: TerminalTabOpenRequest | null;
138
+ onOpenTabHandled?: () => void;
131
139
  onFocusTabHandled?: () => void;
132
140
  showAllTerminals?: boolean;
133
141
  onShowAllTerminalsChange?: (showAll: boolean) => void;
@@ -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":"AAQA,YAAY,EACV,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,SAAS,EACT,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,KAAK,EACV,YAAY,IAAI,gBAAgB,EAChC,mBAAmB,IAAI,uBAAuB,EAC9C,iBAAiB,EACjB,SAAS,EACV,MAAM,qCAAqC,CAAC;AAE7C,OAAO,KAAK,EACV,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAElE,YAAY,EACV,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,GAClB,CAAC;AAKF,MAAM,MAAM,iBAAiB,GACzB,eAAe,GACf,eAAe,GACf,kBAAkB,GAClB,uBAAuB,GACvB,qBAAqB,GACrB,qBAAqB,GACrB,mBAAmB,GACnB,2BAA2B,CAAC;AAKhC,MAAM,WAAW,sBAAsB;IAErC,GAAG,EAAE,MAAM,CAAC;IAEZ,SAAS,EAAE,MAAM,CAAC;IAElB,QAAQ,EAAE,OAAO,CAAC;IAElB,OAAO,EAAE,OAAO,CAAC;IAEjB,OAAO,EAAE,OAAO,CAAC;IAEjB,MAAM,EAAE,OAAO,CAAC;CACjB;AAKD,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;AAKnD,MAAM,WAAW,qBAAqB;IAEpC,QAAQ,EAAE,kBAAkB,CAAC;IAE7B,SAAS,EAAE,MAAM,CAAC;CACnB;AAKD,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,SAAS,CAAC;AAOzD,MAAM,WAAW,4BAA4B;IAE3C,SAAS,EAAE,MAAM,CAAC;IAElB,YAAY,EAAE,oBAAoB,CAAC;IAEnC,SAAS,EAAE,OAAO,CAAC;IAEnB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAMD,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,OAAO,CAAC,EAAE,MAAM,CAAC;IAMjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAKD,MAAM,WAAW,4BAA4B;IAC3C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE7B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAKD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAKD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAKD,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAMD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,SAAS,CAAC,mBAAmB,EAAE,CAAC,CAAC;CAC5C;AAOD,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAE5D,qBAAqB,EAAE,CACrB,OAAO,CAAC,EAAE,4BAA4B,KACnC,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,sBAAsB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAG7D,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3D,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAUzF,gBAAgB,CAAC,EAAE,CACjB,KAAK,EAAE,mBAAmB,EAAE,EAC5B,SAAS,EAAE,MAAM,KACd,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAGvB,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAU3C,mBAAmB,EAAE,CACnB,QAAQ,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,KAAK,IAAI,KACvD,MAAM,IAAI,CAAC;IAGhB,sBAAsB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IACxE,sBAAsB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IACzF,wBAAwB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IAO1E,eAAe,EAAE,CACf,QAAQ,EAAE,CAAC,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,KACtE,MAAM,IAAI,CAAC;IAGhB,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAOzD,uBAAuB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAS/F,cAAc,EAAE,CACd,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,KAC7B,MAAM,IAAI,CAAC;IAOhB,mBAAmB,CAAC,EAAE,CACpB,QAAQ,EAAE,CAAC,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,KACzD,MAAM,IAAI,CAAC;IAGhB,oBAAoB,EAAE,MAAM,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAO3D,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CACnE;AAOD,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,iBAAiB,CAAC,oBAAoB,CAAC,GAC/C,mBAAmB,EAAE,CAEvB;AAKD,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,iBAAiB,CAAC,oBAAoB,CAAC,EAChD,SAAS,EAAE,MAAM,GAChB,mBAAmB,GAAG,SAAS,CAGjC;AAMD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,CAAC,oBAAoB,CAAC,GAAG,OAAO,CAE3F;AAOD,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,WAAW,CAAC;AAMvD,MAAM,WAAW,kBAAmB,SAAQ,uBAAuB,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IAO7G,aAAa,CAAC,EAAE,aAAa,CAAC;IAS9B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAS5B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAKD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI,CAE3E;AAKD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI,CAE1E;AAKD,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,iBAAiB,EAC1B,aAAa,GAAE,aAA4B,GAC1C,MAAM,GAAG,IAAI,CASf;AAMD,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,iBAAiB,CAAC,oBAAoB,CAAC,GAC/C,SAAS,CAAC,mBAAmB,EAAE,CAAC,GAAG,SAAS,CAE9C;AAED,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAM5C,MAAM,WAAW,oBAAoB;IAEnC,SAAS,EAAE,OAAO,CAAC;IAEnB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAMD,MAAM,WAAW,WAAY,SAAQ,OAAO;IAC1C,WAAW,EAAE,UAAU,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAGlB;AAcD,MAAM,WAAW,sBAAsB;IAErC,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA0BD,MAAM,WAAW,wBAAwB,CAAC,IAAI,SAAS,OAAO,GAAG,WAAW,CAAE,SAAQ,IAAI,CAAC,kBAAkB,EAAE,eAAe,CAAC;IAM7H,eAAe,EAAE,MAAM,CAAC;IAKxB,SAAS,EAAE,MAAM,CAAC;IAOlB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAW1B,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,gBAAgB,GAAG,SAAS,CAAC;IAMlE,UAAU,CAAC,EAAE,OAAO,CAAC;IAMrB,SAAS,CAAC,EAAE,OAAO,CAAC;IAKpB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;IAKtC,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC;IAQrB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAO5B,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAuBnD,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAoBlC,cAAc,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAM/C,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAO9B,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAM/B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAK3B,wBAAwB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAOtD,0BAA0B,CAAC,EAAE,OAAO,CAAC;IAMrC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAQ3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAQ3B,cAAc,CAAC,EAAE,MAAM,CAAC;IAwBxB,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;IAkBhH,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,KAAK,CAAC,SAAS,CAAC;IAO/C,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAMlC,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAiBnC,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,KAAK,CAAC,SAAS,CAAC;IAiBhD,gBAAgB,CAAC,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC;IAMzC,KAAK,CAAC,EAAE,MAAM,CAAC;IAgBf,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAwBrD,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAUpD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAO5B,eAAe,CAAC,EAAE,MAAM,CAAC;IAOzB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"TabbedTerminalPanel.d.ts","sourceRoot":"","sources":["../../../src/panels/TabbedTerminalPanel.tsx"],"names":[],"mappings":"AAGA,OAAO,KAMN,MAAM,OAAO,CAAC;AASf,OAAO,KAAK,EACV,wBAAwB,EACxB,WAAW,EAEZ,MAAM,gBAAgB,CAAC;AAwExB,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,MAAM,IAAI,CAAC;CAC5B;AA2sCD,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":"AAGA,OAAO,KAMN,MAAM,OAAO,CAAC;AASf,OAAO,KAAK,EACV,wBAAwB,EACxB,WAAW,EAGZ,MAAM,gBAAgB,CAAC;AAyExB,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,MAAM,IAAI,CAAC;CAC5B;AAsxCD,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"}
@@ -0,0 +1,4 @@
1
+ export declare function createTabId(): string;
2
+ export declare function tabContext(terminalContext: string, tabId: string): string;
3
+ export declare function tabIdFromContext(terminalContext: string, context: string | undefined | null): string | null;
4
+ //# sourceMappingURL=tabIdentity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabIdentity.d.ts","sourceRoot":"","sources":["../../../src/utils/tabIdentity.ts"],"names":[],"mappings":"AAyBA,wBAAgB,WAAW,IAAI,MAAM,CAepC;AAGD,wBAAgB,UAAU,CAAC,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEzE;AASD,wBAAgB,gBAAgB,CAC9B,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GACjC,MAAM,GAAG,IAAI,CAQf"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@industry-theme/xterm-terminal-panel",
3
- "version": "0.10.10",
3
+ "version": "0.11.1",
4
4
  "description": "Industry-themed xterm.js terminal components with panel framework integration",
5
5
  "type": "module",
6
6
  "sideEffects": [