@lemoncat7/dsh-ssh 1.14.1 → 1.16.19

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.
Files changed (109) hide show
  1. package/README.md +14 -2
  2. package/docs/compatibility-0.2.2-rc.1.md +13 -0
  3. package/docs/releases/1.15.0.md +16 -0
  4. package/docs/releases/1.16.0.md +19 -0
  5. package/docs/releases/1.16.1.md +7 -0
  6. package/docs/releases/1.16.10.md +8 -0
  7. package/docs/releases/1.16.11.md +5 -0
  8. package/docs/releases/1.16.12.md +9 -0
  9. package/docs/releases/1.16.13.md +7 -0
  10. package/docs/releases/1.16.14.md +7 -0
  11. package/docs/releases/1.16.15.md +5 -0
  12. package/docs/releases/1.16.16.md +5 -0
  13. package/docs/releases/1.16.17.md +5 -0
  14. package/docs/releases/1.16.18.md +5 -0
  15. package/docs/releases/1.16.19.md +21 -0
  16. package/docs/releases/1.16.2.md +7 -0
  17. package/docs/releases/1.16.3.md +11 -0
  18. package/docs/releases/1.16.4.md +10 -0
  19. package/docs/releases/1.16.5.md +9 -0
  20. package/docs/releases/1.16.6.md +7 -0
  21. package/docs/releases/1.16.7.md +7 -0
  22. package/docs/releases/1.16.8.md +19 -0
  23. package/docs/releases/1.16.9.md +7 -0
  24. package/lib/api.d.ts.map +1 -1
  25. package/lib/api.js +19 -1
  26. package/lib/api.js.map +1 -1
  27. package/lib/client-api.d.ts +1 -0
  28. package/lib/client-api.d.ts.map +1 -1
  29. package/lib/client-api.js.map +1 -1
  30. package/lib/client.d.ts.map +1 -1
  31. package/lib/client.js +382 -143
  32. package/lib/client.js.map +4 -4
  33. package/lib/commands-panel.js +1 -1
  34. package/lib/commands-panel.js.map +1 -1
  35. package/lib/domain.d.ts +3 -0
  36. package/lib/domain.d.ts.map +1 -1
  37. package/lib/domain.js +2 -0
  38. package/lib/domain.js.map +1 -1
  39. package/lib/file-transfer-tools.js +4 -3
  40. package/lib/file-transfer-tools.js.map +1 -1
  41. package/lib/file-transfer-workspace.d.ts.map +1 -1
  42. package/lib/file-transfer-workspace.js +4 -4
  43. package/lib/file-transfer-workspace.js.map +1 -1
  44. package/lib/host-action-menu.d.ts +10 -0
  45. package/lib/host-action-menu.d.ts.map +1 -0
  46. package/lib/host-action-menu.js +32 -0
  47. package/lib/host-action-menu.js.map +1 -0
  48. package/lib/host-select.d.ts +9 -0
  49. package/lib/host-select.d.ts.map +1 -0
  50. package/lib/host-select.js +92 -0
  51. package/lib/host-select.js.map +1 -0
  52. package/lib/locales/messages.d.ts +216 -0
  53. package/lib/locales/messages.d.ts.map +1 -1
  54. package/lib/locales/messages.js +54 -0
  55. package/lib/locales/messages.js.map +1 -1
  56. package/lib/profile-editor.d.ts.map +1 -1
  57. package/lib/profile-editor.js +4 -1
  58. package/lib/profile-editor.js.map +1 -1
  59. package/lib/remote-workspace-tree.d.ts +4 -0
  60. package/lib/remote-workspace-tree.d.ts.map +1 -1
  61. package/lib/remote-workspace-tree.js +97 -34
  62. package/lib/remote-workspace-tree.js.map +1 -1
  63. package/lib/settings-pane.js +1 -1
  64. package/lib/settings-pane.js.map +1 -1
  65. package/lib/sftp-client.d.ts +3 -1
  66. package/lib/sftp-client.d.ts.map +1 -1
  67. package/lib/sftp-client.js +11 -10
  68. package/lib/sftp-client.js.map +1 -1
  69. package/lib/sftp-path-mapping.d.ts +9 -0
  70. package/lib/sftp-path-mapping.d.ts.map +1 -0
  71. package/lib/sftp-path-mapping.js +36 -0
  72. package/lib/sftp-path-mapping.js.map +1 -0
  73. package/lib/sftp.js +1 -1
  74. package/lib/sftp.js.map +1 -1
  75. package/lib/split-icon.d.ts +4 -0
  76. package/lib/split-icon.d.ts.map +1 -0
  77. package/lib/split-icon.js +5 -0
  78. package/lib/split-icon.js.map +1 -0
  79. package/lib/sync-panel.js +1 -1
  80. package/lib/sync-panel.js.map +1 -1
  81. package/lib/terminal-desk-state.d.ts +71 -0
  82. package/lib/terminal-desk-state.d.ts.map +1 -0
  83. package/lib/terminal-desk-state.js +205 -0
  84. package/lib/terminal-desk-state.js.map +1 -0
  85. package/lib/terminal-desk.d.ts +16 -0
  86. package/lib/terminal-desk.d.ts.map +1 -0
  87. package/lib/terminal-desk.js +197 -0
  88. package/lib/terminal-desk.js.map +1 -0
  89. package/lib/terminal-session.d.ts +5 -1
  90. package/lib/terminal-session.d.ts.map +1 -1
  91. package/lib/terminal-session.js +52 -18
  92. package/lib/terminal-session.js.map +1 -1
  93. package/lib/terminal-transport.d.ts.map +1 -1
  94. package/lib/terminal-transport.js +7 -4
  95. package/lib/terminal-transport.js.map +1 -1
  96. package/lib/terminal-workspace-state.d.ts +45 -0
  97. package/lib/terminal-workspace-state.d.ts.map +1 -0
  98. package/lib/terminal-workspace-state.js +110 -0
  99. package/lib/terminal-workspace-state.js.map +1 -0
  100. package/lib/terminal-workspace.d.ts +2 -1
  101. package/lib/terminal-workspace.d.ts.map +1 -1
  102. package/lib/terminal-workspace.js +43 -19
  103. package/lib/terminal-workspace.js.map +1 -1
  104. package/lib/terminal.d.ts +10 -3
  105. package/lib/terminal.d.ts.map +1 -1
  106. package/lib/terminal.js +33 -4
  107. package/lib/terminal.js.map +1 -1
  108. package/lib/tools.js.map +1 -1
  109. package/package.json +35 -34
@@ -1,7 +1,7 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { useSshLocale } from './use-ssh-locale.js';
3
3
  import { t } from './i18n.js';
4
- import { useEffect, useMemo, useState } from 'react';
4
+ import { useEffect, useMemo, useRef, useState } from 'react';
5
5
  import { IconChevronDownOutlineRegular as IconChevronDownOutline14, IconChevronRightOutlineRegular as IconChevronRightOutline14, IconEditOutlineRegular as IconEditOutline16, IconFolderCloseRegular as IconFolderClose16, IconEllipsisOutlineRegular as IconEllipsisOutline16, IconFolderOpenOutlineRegular as IconFolderOpenOutline16, IconPlusOutlineRegular as IconPlusOutline16, IconTrashOutlineRegular as IconTrashOutline16, } from '@deepseek-ai/dsh-client-ui-primitives';
6
6
  import { createRemoteProject, deleteRemoteProject, loadRemoteProjects, updateRemoteProject, } from './client-api.js';
7
7
  import { ProjectSessionDialog } from './project-session-dialog.js';
@@ -10,12 +10,28 @@ import { useBorderGlowSurface } from './border-glow.js';
10
10
  import { Dialog } from './ui-components.js';
11
11
  import { useConfirmationDialog } from './confirmation-dialog.js';
12
12
  import { mountedProjects } from './project-mounts.js';
13
+ import { HostActionMenu, TerminalActionIcon } from './host-action-menu.js';
13
14
  import { SessionDefaults } from './session-defaults-ui.js';
14
15
  const HOST_DRAG_TYPE = 'application/x-dsh-ssh-profile';
15
16
  export function RemoteWorkspaceTree(props) {
16
17
  useSshLocale();
17
18
  const panelGlow = useBorderGlowSurface();
18
19
  const [query, setQuery] = useState('');
20
+ const [display, setDisplay] = useState(() => { try {
21
+ return localStorage.getItem('dsh-ssh:catalogue-view') === 'list' ? 'list' : 'cards';
22
+ }
23
+ catch {
24
+ return 'cards';
25
+ } });
26
+ const chooseDisplay = (value) => { setDisplay(value); try {
27
+ localStorage.setItem('dsh-ssh:catalogue-view', value);
28
+ }
29
+ catch { } };
30
+ const [accessOpen, setAccessOpen] = useState(false);
31
+ const groupChoices = useRef(new Set());
32
+ const hostClick = useRef();
33
+ const menuAnchor = useRef(null);
34
+ const [collapsedHosts, setCollapsedHosts] = useState(() => new Set());
19
35
  const [expandedGroups, setExpandedGroups] = useState(() => new Set());
20
36
  const [expanded, setExpanded] = useState(() => new Set());
21
37
  const [projects, setProjects] = useState({});
@@ -24,24 +40,26 @@ export function RemoteWorkspaceTree(props) {
24
40
  const [creatingSession, setCreatingSession] = useState();
25
41
  const [createMenuOpen, setCreateMenuOpen] = useState(false);
26
42
  const [hostMenu, setHostMenu] = useState();
43
+ const [projectMenu, setProjectMenu] = useState();
27
44
  const [draggedProfileId, setDraggedProfileId] = useState();
28
45
  const [dropGroup, setDropGroup] = useState(null);
29
46
  const [movingProfileId, setMovingProfileId] = useState();
30
47
  const [error, setError] = useState();
31
48
  const normalized = query.trim().toLocaleLowerCase();
32
- const groups = useMemo(() => groupProfiles(props.profiles, props.groupConfigs, normalized), [normalized, props.groupConfigs, props.profiles]);
49
+ const groups = useMemo(() => groupProfiles(props.profiles, props.groupConfigs, normalized, projects), [normalized, props.groupConfigs, props.profiles, projects]);
33
50
  const mountedGroups = JSON.stringify([...new Set(props.profiles.filter(profile => props.access?.profileIds.includes(profile.id)).map(profile => profile.group?.trim() || ''))].sort());
34
51
  useEffect(() => {
35
52
  const names = JSON.parse(mountedGroups);
36
53
  if (names.length)
37
- setExpandedGroups(current => new Set([...current, ...names]));
38
- }, [mountedGroups]);
54
+ setExpandedGroups(current => new Set([...current, ...names.filter(name => !groupChoices.current.has(name))]));
55
+ }, [mountedGroups, props.catalogue]);
39
56
  useEffect(() => {
40
57
  const closeMenus = (event) => {
41
58
  if (event.target instanceof Element && event.target.closest('.dsh-ssh-tree-menu-wrap'))
42
59
  return;
43
60
  setCreateMenuOpen(false);
44
61
  setHostMenu(undefined);
62
+ setProjectMenu(undefined);
45
63
  };
46
64
  const closeOnEscape = (event) => {
47
65
  if (event.key !== 'Escape')
@@ -49,6 +67,7 @@ export function RemoteWorkspaceTree(props) {
49
67
  const trigger = document.querySelector('.dsh-ssh-tree-menu')?.previousElementSibling;
50
68
  setCreateMenuOpen(false);
51
69
  setHostMenu(undefined);
70
+ setProjectMenu(undefined);
52
71
  if (trigger instanceof HTMLButtonElement)
53
72
  window.requestAnimationFrame(() => trigger.focus());
54
73
  };
@@ -70,8 +89,34 @@ export function RemoteWorkspaceTree(props) {
70
89
  setLoadingProfile(current => current === profileId ? undefined : current);
71
90
  }
72
91
  };
73
- const selectProfile = (profileId) => {
74
- setExpanded(new Set([profileId]));
92
+ useEffect(() => {
93
+ if (!props.catalogue)
94
+ return;
95
+ let live = true;
96
+ void Promise.allSettled(props.profiles.map(async (profile) => ({ id: profile.id, projects: await loadRemoteProjects(profile.id) }))).then(results => {
97
+ if (!live)
98
+ return;
99
+ setProjects(current => { const next = { ...current }; for (const result of results)
100
+ if (result.status === 'fulfilled')
101
+ next[result.value.id] = result.value.projects; return next; });
102
+ const failed = results.find(result => result.status === 'rejected');
103
+ if (failed?.status === 'rejected')
104
+ setError(message(failed.reason));
105
+ });
106
+ return () => { live = false; };
107
+ }, [props.catalogue, props.profiles]);
108
+ const selectProfile = (profileId, open) => {
109
+ setHostMenu(undefined);
110
+ setProjectMenu(undefined);
111
+ hostClick.current = { id: profileId, expanded: open };
112
+ setExpanded(current => { const next = new Set(current); if (open)
113
+ next.delete(profileId);
114
+ else
115
+ next.add(profileId); return next; });
116
+ setCollapsedHosts(current => { const next = new Set(current); if (open)
117
+ next.add(profileId);
118
+ else
119
+ next.delete(profileId); return next; });
75
120
  if (projects[profileId] === undefined)
76
121
  void refreshProjects(profileId);
77
122
  props.onSelect({ profileId, path: '~' });
@@ -84,6 +129,7 @@ export function RemoteWorkspaceTree(props) {
84
129
  props.onDirectory(profileId, undefined);
85
130
  };
86
131
  const toggleGroup = (name) => setExpandedGroups(current => {
132
+ groupChoices.current.add(name);
87
133
  const next = new Set(current);
88
134
  if (next.has(name))
89
135
  next.delete(name);
@@ -108,37 +154,54 @@ export function RemoteWorkspaceTree(props) {
108
154
  setDropGroup(null);
109
155
  }
110
156
  };
111
- return _jsxs("aside", { ref: panelGlow.ref, onPointerMove: panelGlow.onPointerMove, onPointerLeave: panelGlow.onPointerLeave, className: "dsh-ssh-remote-tree dsh-ssh-border-surface", children: [_jsxs("header", { className: "dsh-ssh-tree-header", children: [_jsxs("span", { children: [_jsx("strong", { children: t("remote-workspace-tree.hostsProjects") }), _jsxs("small", { children: [props.profiles.length, " ", t("remote-workspace-tree.hosts")] })] }), _jsxs("div", { className: "dsh-ssh-tree-menu-wrap", children: [_jsx("button", { type: "button", className: "dsh-ssh-icon-button", "aria-haspopup": "menu", "aria-expanded": createMenuOpen, onClick: () => { setCreateMenuOpen(value => !value); setHostMenu(undefined); }, "aria-label": t("remote-workspace-tree.addHostOrGroup"), title: t("remote-workspace-tree.addHostOrGroup"), children: _jsx(IconPlusOutline16, { size: 16 }) }), createMenuOpen && _jsxs("div", { className: "dsh-ssh-tree-menu is-header", role: "menu", "aria-label": t("remote-workspace-tree.addHostOrGroup"), onKeyDown: navigateMenu, children: [_jsxs("button", { type: "button", role: "menuitem", autoFocus: true, onClick: () => { setCreateMenuOpen(false); props.onNewProfile(); }, children: [_jsx(IconPlusOutline16, { size: 14 }), t("remote-workspace-tree.addHost")] }), _jsxs("button", { type: "button", role: "menuitem", onClick: () => { setCreateMenuOpen(false); props.onNewGroup(); }, children: [_jsx(IconFolderClose16, { size: 14 }), t("remote-workspace-tree.addGroup")] })] })] })] }), _jsxs("label", { className: "dsh-ssh-search", children: [_jsx("span", { className: "sr-only", children: t("remote-workspace-tree.searchHosts") }), _jsx("input", { value: query, onChange: event => setQuery(event.target.value), placeholder: t("remote-workspace-tree.searchHostsGroupsTags") })] }), _jsxs("div", { className: "dsh-ssh-tree-scroll dsh-ssh-scroll-surface", children: [groups.map(group => {
112
- const collapsed = !expandedGroups.has(group.name);
157
+ return _jsxs("aside", { ref: panelGlow.ref, onPointerMove: panelGlow.onPointerMove, onPointerLeave: panelGlow.onPointerLeave, className: `dsh-ssh-remote-tree dsh-ssh-border-surface${props.catalogue ? ` dsh-ssh-host-catalogue is-${display}` : ''}`, children: [props.catalogue ? _jsxs(_Fragment, { children: [_jsxs("div", { className: "dsh-ssh-catalogue-tools", children: [_jsxs("label", { className: "dsh-ssh-search", children: [_jsx("span", { className: "sr-only", children: t('remote-workspace-tree.searchHosts') }), _jsx("input", { value: query, onChange: event => setQuery(event.target.value), placeholder: t('desk.searchCatalogue') })] }), _jsxs("div", { className: "dsh-ssh-catalogue-actions", children: [_jsxs("button", { type: "button", className: "dsh-ssh-secondary-button", "aria-haspopup": "dialog", onClick: () => setAccessOpen(true), children: [t('remote-workspace-tree.currentSessionPermissions'), props.accessSaving ? ` · ${t('remote-workspace-tree.saving')}` : props.accessError ? ' !' : ''] }), _jsx("button", { type: "button", "aria-pressed": display === 'list', onClick: () => chooseDisplay('list'), children: t('desk.list') }), _jsx("button", { type: "button", "aria-pressed": display === 'cards', onClick: () => chooseDisplay('cards'), children: t('desk.cards') }), _jsx("button", { type: "button", className: "dsh-ssh-secondary-button", onClick: props.onNewGroup, children: t('remote-workspace-tree.addGroup') }), _jsx("button", { type: "button", className: "dsh-ssh-primary-button", onClick: props.onNewProfile, children: t('remote-workspace-tree.addHost') })] })] }), _jsx("p", { className: "dsh-ssh-catalogue-purpose", children: t('desk.mountPurpose') }), (error || props.accessError) && _jsx("p", { className: "dsh-ssh-inline-error", role: "alert", children: error || props.accessError })] }) : _jsxs(_Fragment, { children: [_jsxs("header", { className: "dsh-ssh-tree-header", children: [_jsxs("span", { children: [_jsx("strong", { children: t("remote-workspace-tree.hostsProjects") }), _jsxs("small", { children: [props.profiles.length, " ", t("remote-workspace-tree.hosts")] })] }), _jsxs("div", { className: "dsh-ssh-tree-menu-wrap", children: [_jsx("button", { type: "button", className: "dsh-ssh-icon-button", "aria-haspopup": "menu", "aria-expanded": createMenuOpen, onClick: () => { setCreateMenuOpen(value => !value); setHostMenu(undefined); }, "aria-label": t("remote-workspace-tree.addHostOrGroup"), title: t("remote-workspace-tree.addHostOrGroup"), children: _jsx(IconPlusOutline16, { size: 16 }) }), createMenuOpen && _jsxs("div", { className: "dsh-ssh-tree-menu is-header", role: "menu", "aria-label": t("remote-workspace-tree.addHostOrGroup"), onKeyDown: navigateMenu, children: [_jsxs("button", { type: "button", role: "menuitem", autoFocus: true, onClick: () => { setCreateMenuOpen(false); props.onNewProfile(); }, children: [_jsx(IconPlusOutline16, { size: 14 }), t("remote-workspace-tree.addHost")] }), _jsxs("button", { type: "button", role: "menuitem", onClick: () => { setCreateMenuOpen(false); props.onNewGroup(); }, children: [_jsx(IconFolderClose16, { size: 14 }), t("remote-workspace-tree.addGroup")] })] })] })] }), _jsxs("label", { className: "dsh-ssh-search", children: [_jsx("span", { className: "sr-only", children: t("remote-workspace-tree.searchHosts") }), _jsx("input", { value: query, onChange: event => setQuery(event.target.value), placeholder: t("remote-workspace-tree.searchHostsGroupsTags") })] })] }), _jsxs("div", { className: "dsh-ssh-tree-scroll dsh-ssh-scroll-surface", children: [groups.map(group => {
158
+ const collapsed = !expandedGroups.has(group.name) && !normalized;
113
159
  const draggedProfile = props.profiles.find(profile => profile.id === draggedProfileId);
114
160
  const acceptsDrop = draggedProfile !== undefined && (draggedProfile.group?.trim() || '') !== group.name;
115
161
  return _jsxs("section", { className: `dsh-ssh-tree-group${dropGroup === group.name && acceptsDrop ? ' is-drop-target' : ''}`, "data-collapsed": collapsed, onDragOver: event => { if (!acceptsDrop || !event.dataTransfer.types.includes(HOST_DRAG_TYPE))
116
162
  return; event.preventDefault(); event.dataTransfer.dropEffect = 'move'; setDropGroup(group.name); }, onDragLeave: event => { if (!event.currentTarget.contains(event.relatedTarget))
117
163
  setDropGroup(current => current === group.name ? null : current); }, onDrop: event => { if (!acceptsDrop || draggedProfile === undefined)
118
- return; event.preventDefault(); void moveProfile(draggedProfile, group.name); }, children: [_jsxs("h3", { children: [_jsxs("button", { type: "button", "aria-expanded": !collapsed, onClick: () => toggleGroup(group.name), children: [collapsed ? _jsx(IconChevronRightOutline14, { size: 14 }) : _jsx(IconChevronDownOutline14, { size: 14 }), _jsx("span", { children: group.name || t("remote-workspace-tree.ungrouped") }), _jsx("small", { children: group.profiles.length })] }), group.name && props.onGroupProxy && _jsx("button", { type: "button", className: "dsh-ssh-group-proxy-button", "aria-label": t('group-proxy.editTitle', [group.name]), title: t('group-proxy.editTitle', [group.name]), onClick: () => props.onGroupProxy?.(group.name), children: _jsx(IconEditOutline16, { size: 14 }) })] }), !collapsed && group.profiles.map(profile => {
119
- const open = expanded.has(profile.id);
120
- const enabled = props.access?.profileIds.includes(profile.id) === true;
121
- const children = projects[profile.id] ?? [];
122
- const active = props.selected?.profileId === profile.id && props.selected.projectId === undefined;
123
- return _jsxs("div", { className: "dsh-ssh-tree-host", "data-open": open, children: [_jsxs("div", { "data-ssh-interactive": "row", "data-ssh-context-row": true, draggable: movingProfileId !== profile.id, className: `dsh-ssh-tree-host-row${enabled ? ' is-authorized' : ''}${active ? ' is-active' : ''}${hostMenu === profile.id ? ' is-menu-open' : ''}${movingProfileId === profile.id ? ' is-moving' : ''}`, onDragStart: event => { setDraggedProfileId(profile.id); setHostMenu(undefined); event.dataTransfer.effectAllowed = 'move'; event.dataTransfer.setData(HOST_DRAG_TYPE, profile.id); }, onDragEnd: () => { setDraggedProfileId(undefined); setDropGroup(null); }, children: [_jsxs("button", { type: "button", className: "dsh-ssh-tree-host-main", "aria-pressed": active, "aria-expanded": open, title: t("remote-workspace-tree.selectAndExpand", [profile.name]), onClick: () => selectProfile(profile.id), children: [_jsx("span", { className: "dsh-ssh-host-monogram", children: profile.name.slice(0, 1).toUpperCase() }), _jsxs("span", { children: [_jsx("strong", { children: profile.name }), _jsxs("small", { children: [profile.username, "@", profile.host] })] })] }), _jsx("button", { type: "button", "data-ssh-interactive": "choice", className: `dsh-ssh-tree-mount dsh-ssh-context-action${enabled ? ' is-mounted' : ''}`, "aria-label": `${enabled ? t("remote-workspace-tree.unmount") : t("remote-workspace-tree.mount")} ${profile.name}`, "aria-pressed": enabled, title: props.access === null ? t("remote-workspace-tree.openADshSessionBeforeMountingHosts") : enabled ? t("remote-workspace-tree.unmountFromCurrentSession") : t("remote-workspace-tree.mountToCurrentSession"), disabled: props.access === null || props.accessLoading || props.accessSaving, onClick: () => toggleProfile(profile.id), children: enabled ? t("remote-workspace-tree.unmount") : t("remote-workspace-tree.mount") }), _jsxs("div", { className: "dsh-ssh-tree-menu-wrap is-host", children: [_jsx("button", { type: "button", draggable: false, className: "dsh-ssh-tree-more", "aria-haspopup": "menu", "aria-expanded": hostMenu === profile.id, "aria-label": t("remote-workspace-tree.hostMenuFor", [profile.name]), title: t("remote-workspace-tree.moreHostActions"), onClick: () => { setHostMenu(current => current === profile.id ? undefined : profile.id); setCreateMenuOpen(false); }, children: _jsx(IconEllipsisOutline16, { size: 15 }) }), hostMenu === profile.id && _jsxs("div", { className: "dsh-ssh-tree-menu is-host", role: "menu", "aria-label": t("remote-workspace-tree.hostMenuFor", [profile.name]), onKeyDown: navigateMenu, children: [_jsxs("button", { type: "button", role: "menuitem", autoFocus: true, onClick: () => { setHostMenu(undefined); props.onEditProfile(profile); }, children: [_jsx(IconEditOutline16, { size: 14 }), t("client.editHost")] }), _jsxs("button", { type: "button", role: "menuitem", onClick: () => { setHostMenu(undefined); setEditing({ profile }); }, children: [_jsx(IconPlusOutline16, { size: 14 }), t("remote-workspace-tree.addPinnedDirectory")] })] })] })] }), open && _jsx("div", { className: "dsh-ssh-tree-branches", children: loadingProfile === profile.id && projects[profile.id] === undefined ? _jsx("p", { className: "dsh-ssh-tree-state", children: t("remote-workspace-tree.readingPinnedDirectories") })
124
- : children.length === 0 ? _jsxs("button", { type: "button", className: "dsh-ssh-tree-empty", onClick: () => setEditing({ profile }), children: [_jsx(IconPlusOutline16, { size: 13 }), t("remote-workspace-tree.addProjectDirectory")] })
125
- : children.map(project => {
126
- const projectActive = props.selected?.projectId === project.id;
127
- const bound = props.access !== null && mountedProjects(props.access, profile.id).includes(project.id);
128
- const isDefault = props.access?.workingProjectIds[profile.id] === project.id;
129
- return _jsx("div", { className: "dsh-ssh-tree-project", children: _jsxs("div", { "data-ssh-interactive": "row", className: `dsh-ssh-tree-project-row${projectActive ? ' is-active' : ''}${bound ? ' is-bound' : ''}`, children: [_jsxs("button", { type: "button", className: "dsh-ssh-tree-project-main", "aria-pressed": props.access === null ? undefined : bound, title: props.access === null ? t("remote-workspace-tree.noDshSessionIsAvailableToMountADirectory") : !enabled ? t("remote-workspace-tree.mountThisHostFirst") : bound ? t("remote-workspace-tree.unmountThisDirectoryFromTheCurrentSession") : t("remote-workspace-tree.mountDirectoryMultipleSelectionsAreAllowed"), onClick: () => {
130
- if (enabled && !props.accessLoading && !props.accessSaving) {
131
- props.onToggleProject(profile.id, project.id, project.path);
132
- props.onSelect(bound ? { profileId: profile.id, path: '~' } : { profileId: profile.id, path: project.path, projectId: project.id });
133
- }
134
- }, children: [_jsx("span", { children: bound ? _jsx(IconFolderOpenOutline16, { size: 15 }) : _jsx(IconFolderClose16, { size: 15 }) }), _jsxs("span", { children: [_jsx("strong", { children: project.name }), _jsx("small", { children: project.path }), bound && _jsx("em", { children: isDefault ? t("remote-workspace-tree.mountedDefaultWorkingDirectory") : t("client.mounted") })] })] }), _jsxs("div", { className: "dsh-ssh-tree-project-actions", children: [bound && !isDefault && _jsx("button", { type: "button", className: "dsh-ssh-tree-project-edit", disabled: props.accessSaving, title: t("remote-workspace-tree.setAsDefaultWorkingDirectory"), "aria-label": t("remote-workspace-tree.setAsTheDefaultDirectory", [project.name]), onClick: () => props.onDirectory(profile.id, project.path, project.id), children: _jsx(IconFolderOpenOutline16, { size: 13 }) }), _jsx("button", { type: "button", className: "dsh-ssh-tree-project-new", "aria-label": t("remote-workspace-tree.newSessionIn", [project.name]), title: t("remote-workspace-tree.newSession"), onClick: event => { setError(undefined); setCreatingSession({ profile, project, returnFocus: event.currentTarget }); }, children: _jsx(IconPlusOutline16, { size: 13 }) }), _jsx("button", { type: "button", className: "dsh-ssh-tree-project-edit", "aria-label": t("client.edit2", [project.name]), title: t("remote-workspace-tree.editPinnedDirectory"), onClick: () => setEditing({ profile, project }), children: _jsx(IconEditOutline16, { size: 13 }) })] })] }) }, project.id);
135
- }) })] }, profile.id);
136
- })] }, group.name);
137
- }), groups.length === 0 && _jsx("p", { className: "dsh-ssh-tree-no-results", children: props.profiles.length === 0 ? t("remote-workspace-tree.noSshHostsYet") : t("remote-workspace-tree.noMatchingHosts") })] }), _jsx(SessionAccessFooter, { access: props.access, loading: props.accessLoading, saving: props.accessSaving, error: props.accessError ?? error, onPermission: props.onPermission, onApproval: props.onApproval }), editing !== undefined && _jsx(RemoteProjectDialog, { profile: editing.profile, project: editing.project, onClose: () => setEditing(undefined), onSaved: async () => { const profileId = editing.profile.id; setEditing(undefined); await refreshProjects(profileId); await props.onProjectsChanged(); } }), creatingSession !== undefined && _jsx(ProjectSessionDialog, { ...creatingSession, workspaces: props.workspaces, currentWorkspaceId: props.currentWorkspaceId, recentWorkspaceId: props.recentWorkspaceId, onClose: () => setCreatingSession(undefined), onCreate: props.onCreateSession })] });
164
+ return; event.preventDefault(); void moveProfile(draggedProfile, group.name); }, children: [_jsxs("h3", { children: [_jsxs("button", { type: "button", "aria-expanded": !collapsed, onClick: () => toggleGroup(group.name), children: [collapsed ? _jsx(IconChevronRightOutline14, { size: 14 }) : _jsx(IconChevronDownOutline14, { size: 14 }), _jsx("span", { children: group.name || t("remote-workspace-tree.ungrouped") }), _jsx("small", { children: group.profiles.length })] }), group.name && props.onGroupProxy && _jsx("button", { type: "button", className: "dsh-ssh-group-proxy-button", "aria-label": t('group-proxy.editTitle', [group.name]), title: t('group-proxy.editTitle', [group.name]), onClick: () => props.onGroupProxy?.(group.name), children: _jsx(IconEditOutline16, { size: 14 }) })] }), !collapsed && _jsx("div", { className: "dsh-ssh-catalogue-group-items", children: group.profiles.map(profile => {
165
+ const open = !collapsedHosts.has(profile.id) && (expanded.has(profile.id) || (!!query.trim() && (projects[profile.id] ?? []).some(project => `${project.name} ${project.path}`.toLocaleLowerCase().includes(query.trim().toLocaleLowerCase()))));
166
+ const enabled = props.access?.profileIds.includes(profile.id) === true;
167
+ const children = projects[profile.id] ?? [];
168
+ const active = props.selected?.profileId === profile.id && props.selected.projectId === undefined;
169
+ return _jsxs("div", { className: "dsh-ssh-tree-host", "data-open": open, children: [_jsxs("div", { "data-ssh-interactive": "row", "data-ssh-context-row": true, draggable: movingProfileId !== profile.id, className: `dsh-ssh-tree-host-row${enabled ? ' is-authorized' : ''}${active ? ' is-active' : ''}${hostMenu === profile.id ? ' is-menu-open' : ''}${movingProfileId === profile.id ? ' is-moving' : ''}`, onDragStart: event => { setDraggedProfileId(profile.id); setHostMenu(undefined); event.dataTransfer.effectAllowed = 'move'; event.dataTransfer.setData(HOST_DRAG_TYPE, profile.id); }, onDragEnd: () => { setDraggedProfileId(undefined); setDropGroup(null); }, children: [_jsxs("button", { type: "button", className: "dsh-ssh-tree-host-main", "aria-pressed": active, "aria-expanded": open, "aria-label": `${profile.name} ${profile.username}@${profile.host}`, title: `${profile.name} · ${profile.username}@${profile.host}\n${t('desk.hostClickHint')}`, onClick: event => { if (event.detail <= 1)
170
+ selectProfile(profile.id, open); }, onDoubleClick: () => {
171
+ // The first click toggles immediately; a double-click restores that
172
+ // disclosure state and opens exactly one terminal.
173
+ const before = hostClick.current;
174
+ if (before?.id === profile.id) {
175
+ setExpanded(current => { const next = new Set(current); if (before.expanded)
176
+ next.add(profile.id);
177
+ else
178
+ next.delete(profile.id); return next; });
179
+ setCollapsedHosts(current => { const next = new Set(current); if (before.expanded)
180
+ next.delete(profile.id);
181
+ else
182
+ next.add(profile.id); return next; });
183
+ }
184
+ props.onOpen?.({ profileId: profile.id, path: '~' });
185
+ }, onKeyDown: event => { if (event.key === 'Enter' && props.onOpen) {
186
+ event.preventDefault();
187
+ props.onOpen({ profileId: profile.id, path: '~' });
188
+ } }, children: [_jsx("span", { className: "dsh-ssh-host-monogram", "aria-hidden": "true", children: profile.name.slice(0, 1).toUpperCase() }), _jsxs("span", { className: "dsh-ssh-host-copy", children: [_jsx("strong", { children: profile.name }), _jsxs("small", { className: "dsh-ssh-host-address", children: [profile.username, "@", profile.host] }), props.catalogue && _jsx("small", { className: "dsh-ssh-host-hover-hint", children: t('desk.hostClickHint') })] })] }), _jsx("button", { type: "button", "data-ssh-interactive": "choice", className: `dsh-ssh-tree-mount dsh-ssh-context-action${enabled ? ' is-mounted' : ''}`, "aria-label": `${enabled ? t("remote-workspace-tree.unmount") : t("remote-workspace-tree.mount")} ${profile.name}`, "aria-pressed": enabled, title: props.access === null ? t("remote-workspace-tree.openADshSessionBeforeMountingHosts") : enabled ? t("remote-workspace-tree.unmountFromCurrentSession") : t("remote-workspace-tree.mountToCurrentSession"), disabled: props.access === null || props.accessLoading || props.accessSaving, onClick: () => toggleProfile(profile.id), children: enabled ? t("remote-workspace-tree.unmount") : t("remote-workspace-tree.mount") }), _jsxs("div", { className: "dsh-ssh-tree-menu-wrap is-host dsh-ssh-context-action", children: [_jsx("button", { type: "button", draggable: false, className: "dsh-ssh-tree-more", "aria-haspopup": "menu", "aria-expanded": hostMenu === profile.id, "aria-label": t("remote-workspace-tree.hostMenuFor", [profile.name]), title: t("remote-workspace-tree.moreHostActions"), onClick: event => { menuAnchor.current = event.currentTarget; setProjectMenu(undefined); setHostMenu(current => current === profile.id ? undefined : profile.id); setCreateMenuOpen(false); }, children: _jsx(IconEllipsisOutline16, { size: 15 }) }), hostMenu === profile.id && _jsxs(HostActionMenu, { anchor: menuAnchor.current, label: t("remote-workspace-tree.hostMenuFor", [profile.name]), onKeyDown: navigateMenu, children: [props.onOpen && _jsxs("button", { type: "button", role: "menuitem", onClick: () => { setHostMenu(undefined); props.onOpen?.({ profileId: profile.id, path: '~' }); }, children: [_jsx(TerminalActionIcon, {}), t('desk.openTerminal')] }), _jsxs("button", { type: "button", role: "menuitem", autoFocus: true, onClick: () => { setHostMenu(undefined); props.onEditProfile(profile); }, children: [_jsx(IconEditOutline16, { size: 14 }), t("client.editHost")] }), props.onDeleteProfile && _jsxs("button", { type: "button", role: "menuitem", onClick: () => { setHostMenu(undefined); props.onDeleteProfile?.(profile); }, children: [_jsx(IconTrashOutline16, { size: 14 }), t('client.deleteHost2')] }), _jsxs("button", { type: "button", role: "menuitem", onClick: () => { setHostMenu(undefined); setEditing({ profile }); }, children: [_jsx(IconPlusOutline16, { size: 14 }), t("remote-workspace-tree.addPinnedDirectory")] })] })] })] }), open && _jsx("div", { className: "dsh-ssh-tree-branches", children: loadingProfile === profile.id && projects[profile.id] === undefined ? _jsx("p", { className: "dsh-ssh-tree-state", children: t("remote-workspace-tree.readingPinnedDirectories") })
189
+ : children.length === 0 ? _jsxs("button", { type: "button", className: "dsh-ssh-tree-empty", onClick: () => setEditing({ profile }), children: [_jsx(IconPlusOutline16, { size: 13 }), t("remote-workspace-tree.addPinnedDirectory")] })
190
+ : children.map(project => {
191
+ const projectActive = props.selected?.projectId === project.id;
192
+ const bound = props.access !== null && mountedProjects(props.access, profile.id).includes(project.id);
193
+ const isDefault = props.access?.workingProjectIds[profile.id] === project.id;
194
+ return _jsx("div", { className: "dsh-ssh-tree-project", children: _jsxs("div", { "data-ssh-interactive": "row", "data-ssh-context-row": true, className: `dsh-ssh-tree-project-row${projectActive ? ' is-active' : ''}${bound ? ' is-bound' : ''}${projectMenu === project.id ? ' is-menu-open' : ''}`, children: [_jsxs("button", { type: "button", className: "dsh-ssh-tree-project-main", "aria-pressed": projectActive, title: `${project.name} · ${project.path}\n${t('desk.openProjectHint')}${bound ? ` · ${isDefault ? t('remote-workspace-tree.mountedDefaultWorkingDirectory') : t('client.mounted')}` : ''}`, onClick: () => props.onSelect({ profileId: profile.id, path: project.path, projectId: project.id, label: project.name }), onDoubleClick: () => props.onOpen?.({ profileId: profile.id, path: project.path, projectId: project.id, label: project.name }), onKeyDown: event => { if (event.key === 'Enter' && props.onOpen) {
195
+ event.preventDefault();
196
+ props.onOpen({ profileId: profile.id, path: project.path, projectId: project.id, label: project.name });
197
+ } }, children: [_jsx("span", { children: bound ? _jsx(IconFolderOpenOutline16, { size: 15 }) : _jsx(IconFolderClose16, { size: 15 }) }), _jsxs("span", { children: [_jsx("strong", { children: project.name }), _jsx("small", { children: project.path })] })] }), _jsxs("div", { className: "dsh-ssh-tree-project-actions dsh-ssh-context-action", children: [_jsx("button", { type: "button", className: "dsh-ssh-tree-mount", "aria-pressed": bound, "aria-label": `${bound ? t('remote-workspace-tree.unmount') : t('remote-workspace-tree.mount')} ${project.name}`, disabled: !enabled || props.accessLoading || props.accessSaving, title: !enabled ? t('remote-workspace-tree.mountThisHostFirst') : t('desk.manualHint'), onClick: () => props.onToggleProject(profile.id, project.id, project.path), children: bound ? t('remote-workspace-tree.unmount') : t('remote-workspace-tree.mount') }), _jsxs("div", { className: "dsh-ssh-tree-menu-wrap is-project", children: [_jsx("button", { type: "button", className: "dsh-ssh-tree-more", "aria-haspopup": "menu", "aria-expanded": projectMenu === project.id, "aria-label": t('desk.projectActions', [project.name]), onClick: event => { menuAnchor.current = event.currentTarget; setHostMenu(undefined); setProjectMenu(current => current === project.id ? undefined : project.id); }, children: _jsx(IconEllipsisOutline16, { size: 15 }) }), projectMenu === project.id && _jsxs(HostActionMenu, { anchor: menuAnchor.current, label: t('desk.projectActions', [project.name]), onKeyDown: navigateMenu, children: [_jsxs("button", { type: "button", role: "menuitem", onClick: () => { setProjectMenu(undefined); props.onOpen?.({ profileId: profile.id, path: project.path, projectId: project.id, label: project.name }); }, children: [_jsx(TerminalActionIcon, {}), t('desk.openTerminal')] }), bound && !isDefault && _jsxs("button", { type: "button", role: "menuitem", disabled: props.accessSaving, onClick: () => { setProjectMenu(undefined); props.onDirectory(profile.id, project.path, project.id); }, children: [_jsx(IconFolderOpenOutline16, { size: 14 }), t('remote-workspace-tree.setAsDefaultWorkingDirectory')] }), _jsxs("button", { type: "button", role: "menuitem", onClick: event => { setError(undefined); setCreatingSession({ profile, project, returnFocus: menuAnchor.current ?? event.currentTarget }); setProjectMenu(undefined); }, children: [_jsx(IconPlusOutline16, { size: 14 }), t('remote-workspace-tree.newSession')] }), _jsxs("button", { type: "button", role: "menuitem", onClick: () => { setProjectMenu(undefined); setEditing({ profile, project }); }, children: [_jsx(IconEditOutline16, { size: 14 }), t('remote-workspace-tree.editPinnedDirectory')] })] })] })] })] }) }, project.id);
198
+ }) })] }, profile.id);
199
+ }) })] }, group.name);
200
+ }), groups.length === 0 && _jsx("p", { className: "dsh-ssh-tree-no-results", children: props.profiles.length === 0 ? t("remote-workspace-tree.noSshHostsYet") : t("remote-workspace-tree.noMatchingHosts") })] }), props.catalogue ? _jsx("p", { className: "dsh-ssh-catalogue-hint", children: t('desk.catalogueHint') }) : _jsx(SessionAccessFooter, { access: props.access, loading: props.accessLoading, saving: props.accessSaving, error: props.accessError ?? error, onPermission: props.onPermission, onApproval: props.onApproval }), accessOpen && _jsx(Dialog, { title: t('remote-workspace-tree.currentSessionPermissions'), onClose: () => setAccessOpen(false), children: _jsx(SessionAccessFooter, { access: props.access, loading: props.accessLoading, saving: props.accessSaving, error: props.accessError, onPermission: props.onPermission, onApproval: props.onApproval }) }), editing !== undefined && _jsx(RemoteProjectDialog, { profile: editing.profile, project: editing.project, onClose: () => setEditing(undefined), onSaved: async () => { const profileId = editing.profile.id; setEditing(undefined); await refreshProjects(profileId); await props.onProjectsChanged(); } }), creatingSession !== undefined && _jsx(ProjectSessionDialog, { ...creatingSession, workspaces: props.workspaces, currentWorkspaceId: props.currentWorkspaceId, recentWorkspaceId: props.recentWorkspaceId, onClose: () => setCreatingSession(undefined), onCreate: props.onCreateSession })] });
138
201
  }
139
202
  function SessionAccessFooter({ access, loading, saving, error, onPermission, onApproval }) {
140
203
  useSshLocale();
141
- return _jsxs("footer", { className: "dsh-ssh-access-footer", children: [_jsxs("div", { className: "dsh-ssh-access-heading", children: [_jsxs("span", { children: [_jsx("strong", { children: t("remote-workspace-tree.currentSessionPermissions") }), _jsxs("small", { children: [access?.profileIds.length ?? 0, " ", t("remote-workspace-tree.availableHosts")] })] }), _jsx("em", { children: loading ? t("remote-workspace-tree.loading") : saving ? t("remote-workspace-tree.saving") : error ? t("remote-workspace-tree.notSynced") : t("remote-workspace-tree.synced") })] }), _jsxs("div", { className: "dsh-ssh-access-segments", "aria-label": t("remote-workspace-tree.sshPermissions"), children: [_jsx("button", { type: "button", "data-ssh-interactive": "choice", className: access?.permission === 'exec' ? 'is-active' : '', "aria-pressed": access?.permission === 'exec', disabled: access === null, onClick: () => onPermission('exec'), children: t("remote-workspace-tree.commandsOnly") }), _jsx("button", { type: "button", "data-ssh-interactive": "choice", className: access?.permission === 'terminal' ? 'is-active' : '', "aria-pressed": access?.permission === 'terminal', disabled: access === null, onClick: () => onPermission('terminal'), children: t("remote-workspace-tree.terminalControl") })] }), _jsxs("label", { className: "dsh-ssh-access-approval", children: [_jsxs("span", { children: [_jsx("strong", { children: t("remote-workspace-tree.confirmBeforeRunning") }), _jsx("small", { children: access?.requireCommandApproval === false ? t("remote-workspace-tree.whenOffRunsDirectlyUnderCurrentSessionPermissions") : t("remote-workspace-tree.requiresDshAskModeFullAccessIsRejectedOutright") })] }), _jsx("input", { type: "checkbox", checked: access?.requireCommandApproval ?? true, disabled: access === null, onChange: event => onApproval(event.target.checked) }), _jsx("i", { "aria-hidden": "true" })] }), error && _jsx("p", { className: "dsh-ssh-inline-error", role: "alert", children: error }), _jsx(SessionDefaults, {})] });
204
+ return _jsxs("footer", { className: "dsh-ssh-access-footer", children: [_jsxs("div", { className: "dsh-ssh-access-heading", children: [_jsxs("span", { children: [_jsx("strong", { children: t("remote-workspace-tree.currentSessionPermissions") }), _jsxs("small", { children: [access?.profileIds.length ?? 0, " ", t("remote-workspace-tree.availableHosts")] })] }), _jsx("em", { children: loading ? t("remote-workspace-tree.loading") : saving ? t("remote-workspace-tree.saving") : error ? t("remote-workspace-tree.notSynced") : t("remote-workspace-tree.synced") })] }), _jsxs("div", { className: "dsh-ssh-access-segments", "aria-label": t("remote-workspace-tree.sshPermissions"), children: [_jsx("button", { type: "button", "data-ssh-interactive": "choice", className: access?.permission === 'exec' ? 'is-active' : '', "aria-pressed": access?.permission === 'exec', disabled: access === null || loading || saving, onClick: () => onPermission('exec'), children: t("remote-workspace-tree.commandsOnly") }), _jsx("button", { type: "button", "data-ssh-interactive": "choice", className: access?.permission === 'terminal' ? 'is-active' : '', "aria-pressed": access?.permission === 'terminal', disabled: access === null || loading || saving, onClick: () => onPermission('terminal'), children: t("remote-workspace-tree.terminalControl") })] }), _jsxs("label", { className: "dsh-ssh-access-approval", children: [_jsxs("span", { children: [_jsx("strong", { children: t("remote-workspace-tree.confirmBeforeRunning") }), _jsx("small", { children: access?.requireCommandApproval === false ? t("remote-workspace-tree.whenOffRunsDirectlyUnderCurrentSessionPermissions") : t("remote-workspace-tree.requiresDshAskModeFullAccessIsRejectedOutright") })] }), _jsx("input", { type: "checkbox", checked: access?.requireCommandApproval ?? true, disabled: access === null || loading || saving, onChange: event => onApproval(event.target.checked) }), _jsx("i", { "aria-hidden": "true" })] }), error && _jsx("p", { className: "dsh-ssh-inline-error", role: "alert", children: error }), _jsx(SessionDefaults, {})] });
142
205
  }
143
206
  function RemoteProjectDialog({ profile, project, onClose, onSaved }) {
144
207
  useSshLocale();
@@ -170,7 +233,7 @@ function RemoteProjectDialog({ profile, project, onClose, onSaved }) {
170
233
  };
171
234
  return _jsxs(Dialog, { className: "dsh-ssh-project-dialog", title: project === undefined ? t("remote-workspace-tree.addPinnedDirectory") : t("remote-workspace-tree.editPinnedDirectory"), subtitle: t("remote-workspace-tree.defaultRemotePathForTheTerminalAndSftp", [profile.name]), onClose: onClose, children: [confirmation, _jsxs("form", { className: "dsh-ssh-form", onSubmit: event => { void submit(event); }, children: [_jsxs("label", { className: "dsh-ssh-field", children: [_jsx("span", { children: t("client.name") }), _jsx("input", { required: true, maxLength: 80, value: name, placeholder: t("remote-workspace-tree.websiteProject"), onChange: event => setName(event.target.value) })] }), _jsx(RemotePathInput, { profileId: profile.id, value: path, disabled: saving, onChange: setPath }), error && _jsx("p", { className: "dsh-ssh-inline-error", role: "alert", children: error }), _jsxs("div", { className: "dsh-ssh-dialog-actions", children: [project !== undefined && _jsxs("button", { type: "button", className: "dsh-ssh-danger-button", disabled: saving, onClick: () => { void remove(); }, children: [_jsx(IconTrashOutline16, { size: 15 }), t("client.delete")] }), _jsx("span", { className: "dsh-ssh-dialog-spacer" }), _jsx("button", { type: "button", className: "dsh-ssh-secondary-button", "data-ssh-dialog-close": true, disabled: saving, onClick: onClose, children: t("client.cancel") }), _jsx("button", { className: "dsh-ssh-primary-button", disabled: saving, children: saving ? t("client.saving2") : t("remote-workspace-tree.saveDirectory") })] })] })] });
172
235
  }
173
- function groupProfiles(profiles, groupConfigs, query) {
236
+ function groupProfiles(profiles, groupConfigs, query, projects = {}) {
174
237
  const result = new Map();
175
238
  if (profiles.length > 0)
176
239
  result.set('', []);
@@ -186,15 +249,15 @@ function groupProfiles(profiles, groupConfigs, query) {
186
249
  if (!result.has(group.name))
187
250
  result.set(group.name, []);
188
251
  return [...result]
189
- .map(([name, grouped]) => ({ name, profiles: grouped }))
190
- .filter(group => !query || group.name.toLocaleLowerCase().includes(query) || group.profiles.some(profile => searchText(profile).includes(query)));
252
+ .map(([name, grouped]) => ({ name, profiles: grouped.filter(profile => !query || name.toLocaleLowerCase().includes(query) || searchText(profile).includes(query) || (projects[profile.id] ?? []).some(project => `${project.name} ${project.path}`.toLocaleLowerCase().includes(query))) }))
253
+ .filter(group => !query || group.profiles.length > 0 || group.name.toLocaleLowerCase().includes(query));
191
254
  }
192
255
  function searchText(profile) { return `${profile.name} ${profile.group ?? ''} ${profile.host} ${profile.username} ${profile.tags.join(' ')}`.toLocaleLowerCase(); }
193
256
  function navigateMenu(event) {
194
257
  if (!['ArrowDown', 'ArrowUp', 'Home', 'End'].includes(event.key))
195
258
  return;
196
259
  event.preventDefault();
197
- const items = [...event.currentTarget.querySelectorAll('[role="menuitem"]')];
260
+ const items = [...event.currentTarget.querySelectorAll('[role="menuitem"]:not(:disabled)')];
198
261
  if (items.length === 0)
199
262
  return;
200
263
  const current = items.indexOf(document.activeElement);
@@ -1 +1 @@
1
- {"version":3,"file":"remote-workspace-tree.js","sourceRoot":"","sources":["../src/remote-workspace-tree.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"remote-workspace-tree.js","sourceRoot":"","sources":["../src/remote-workspace-tree.tsx"],"names":[],"mappings":"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"}
@@ -48,7 +48,7 @@ export function SettingsPane() {
48
48
  onBlur: (event) => { if (event.currentTarget.reportValidity())
49
49
  void save({ [key]: Number(event.currentTarget.value) }); },
50
50
  });
51
- return _jsxs("div", { className: "dsh-ssh-settings-pane", children: [_jsxs("div", { className: "dsh-ssh-content-heading", children: [_jsxs("div", { children: [_jsx("h1", { children: t('client.sshSettings') }), _jsx("p", { children: t('sync.localSettingsHint') })] }), _jsx("small", { role: "status", children: saving ? t('connection.saving') : saved ? t('connection.saved') : '' })] }), _jsxs("div", { className: "dsh-ssh-settings-stack", children: [_jsx(ConfigBackupPanel, {}), settings && _jsxs(_Fragment, { children: [_jsxs("section", { className: "dsh-ssh-settings-section", children: [_jsx("div", { className: "dsh-ssh-settings-section-heading", children: _jsx("strong", { children: t('connection.timeout') }) }), _jsxs("fieldset", { disabled: saving, className: "dsh-ssh-settings-group", style: fieldsetStyle, children: [_jsxs("label", { className: "dsh-ssh-number-row", children: [_jsxs("span", { children: [_jsx("strong", { children: t('connection.defaultTimeout') }), _jsx("small", { children: t('connection.defaultHint') })] }), _jsx("input", { "aria-label": t('connection.defaultTimeout'), "aria-describedby": "ssh-connect-timeout-help", required: true, type: "number", min: "1000", max: "120000", step: "1000", value: settings.defaultConnectTimeoutMs ?? 15000, ...numbers('defaultConnectTimeoutMs') }), _jsx("em", { children: t('client.ms') })] }), _jsx("p", { id: "ssh-connect-timeout-help", className: "dsh-ssh-form-hint", children: t('connection.timeoutHint') }), _jsxs("label", { className: "dsh-ssh-switch-row", children: [_jsxs("span", { children: [_jsx("strong", { children: t('connection.reuse') }), _jsx("small", { children: t('connection.reuseHint') })] }), _jsx("input", { type: "checkbox", checked: settings.reuseTerminalConnections === true, onChange: event => { void save({ reuseTerminalConnections: event.target.checked }); } })] })] })] }), _jsxs("section", { className: "dsh-ssh-settings-section", "aria-labelledby": "dsh-ssh-local-title", children: [_jsx("div", { className: "dsh-ssh-settings-section-heading", children: _jsxs("span", { children: [_jsx("strong", { id: "dsh-ssh-local-title", children: t('client.localRuntimeSettings') }), _jsx("small", { children: t('client.affectsThisDshInstanceOnlyNotSyncedViaGist') })] }) }), _jsxs("fieldset", { disabled: saving, className: "dsh-ssh-settings-group", style: fieldsetStyle, children: [_jsxs("label", { className: "dsh-ssh-switch-row", children: [_jsxs("span", { children: [_jsx("strong", { children: t('client.allowPublicPortBinding') }), _jsx("small", { children: t('client.allowsForwardsToListenOn0000') })] }), _jsx("input", { type: "checkbox", checked: settings.allowPublicBind, onChange: event => { void save({ allowPublicBind: event.target.checked }); } })] }), _jsxs("label", { className: "dsh-ssh-number-row", children: [_jsxs("span", { children: [_jsx("strong", { children: t('client.defaultCommandTimeout') }), _jsx("small", { children: t('client.maximumWaitTimeForTheAiSSshExec') })] }), _jsx("input", { required: true, type: "number", min: "1000", max: "300000", step: "1000", value: settings.defaultCommandTimeoutMs, ...numbers('defaultCommandTimeoutMs') }), _jsx("em", { children: t('client.ms') })] }), _jsxs("label", { className: "dsh-ssh-number-row", children: [_jsxs("span", { children: [_jsx("strong", { children: t('client.maxCommandOutput') }), _jsx("small", { children: t('client.keepsTheNewestOutputBeyondThisLimitSoContext') })] }), _jsx("input", { required: true, type: "number", min: "1000", max: "1000000", step: "1000", value: settings.maxOutputChars, ...numbers('maxOutputChars') }), _jsx("em", { children: t('client.chars') })] })] })] })] })] }), error && _jsx("p", { className: "dsh-ssh-inline-error", role: "alert", children: error })] });
51
+ return _jsxs("div", { className: "dsh-ssh-settings-pane", children: [_jsxs("div", { className: "dsh-ssh-page-tools", children: [_jsx("p", { className: "dsh-ssh-page-hint", children: t('sync.localSettingsHint') }), _jsx("small", { role: "status", children: saving ? t('connection.saving') : saved ? t('connection.saved') : '' })] }), _jsxs("div", { className: "dsh-ssh-settings-stack", children: [_jsx(ConfigBackupPanel, {}), settings && _jsxs(_Fragment, { children: [_jsxs("section", { className: "dsh-ssh-settings-section", children: [_jsx("div", { className: "dsh-ssh-settings-section-heading", children: _jsx("strong", { children: t('connection.timeout') }) }), _jsxs("fieldset", { disabled: saving, className: "dsh-ssh-settings-group", style: fieldsetStyle, children: [_jsxs("label", { className: "dsh-ssh-number-row", children: [_jsxs("span", { children: [_jsx("strong", { children: t('connection.defaultTimeout') }), _jsx("small", { children: t('connection.defaultHint') })] }), _jsx("input", { "aria-label": t('connection.defaultTimeout'), "aria-describedby": "ssh-connect-timeout-help", required: true, type: "number", min: "1000", max: "120000", step: "1000", value: settings.defaultConnectTimeoutMs ?? 15000, ...numbers('defaultConnectTimeoutMs') }), _jsx("em", { children: t('client.ms') })] }), _jsx("p", { id: "ssh-connect-timeout-help", className: "dsh-ssh-form-hint", children: t('connection.timeoutHint') }), _jsxs("label", { className: "dsh-ssh-switch-row", children: [_jsxs("span", { children: [_jsx("strong", { children: t('connection.reuse') }), _jsx("small", { children: t('connection.reuseHint') })] }), _jsx("input", { type: "checkbox", checked: settings.reuseTerminalConnections === true, onChange: event => { void save({ reuseTerminalConnections: event.target.checked }); } })] })] })] }), _jsxs("section", { className: "dsh-ssh-settings-section", "aria-labelledby": "dsh-ssh-local-title", children: [_jsx("div", { className: "dsh-ssh-settings-section-heading", children: _jsxs("span", { children: [_jsx("strong", { id: "dsh-ssh-local-title", children: t('client.localRuntimeSettings') }), _jsx("small", { children: t('client.affectsThisDshInstanceOnlyNotSyncedViaGist') })] }) }), _jsxs("fieldset", { disabled: saving, className: "dsh-ssh-settings-group", style: fieldsetStyle, children: [_jsxs("label", { className: "dsh-ssh-switch-row", children: [_jsxs("span", { children: [_jsx("strong", { children: t('client.allowPublicPortBinding') }), _jsx("small", { children: t('client.allowsForwardsToListenOn0000') })] }), _jsx("input", { type: "checkbox", checked: settings.allowPublicBind, onChange: event => { void save({ allowPublicBind: event.target.checked }); } })] }), _jsxs("label", { className: "dsh-ssh-number-row", children: [_jsxs("span", { children: [_jsx("strong", { children: t('client.defaultCommandTimeout') }), _jsx("small", { children: t('client.maximumWaitTimeForTheAiSSshExec') })] }), _jsx("input", { required: true, type: "number", min: "1000", max: "300000", step: "1000", value: settings.defaultCommandTimeoutMs, ...numbers('defaultCommandTimeoutMs') }), _jsx("em", { children: t('client.ms') })] }), _jsxs("label", { className: "dsh-ssh-number-row", children: [_jsxs("span", { children: [_jsx("strong", { children: t('client.maxCommandOutput') }), _jsx("small", { children: t('client.keepsTheNewestOutputBeyondThisLimitSoContext') })] }), _jsx("input", { required: true, type: "number", min: "1000", max: "1000000", step: "1000", value: settings.maxOutputChars, ...numbers('maxOutputChars') }), _jsx("em", { children: t('client.chars') })] })] })] })] })] }), error && _jsx("p", { className: "dsh-ssh-inline-error", role: "alert", children: error })] });
52
52
  }
53
53
  const fieldsetStyle = { border: 0, margin: 0, padding: 0, minWidth: 0 };
54
54
  //# sourceMappingURL=settings-pane.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"settings-pane.js","sourceRoot":"","sources":["../src/settings-pane.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACnD,OAAO,EAAE,GAAG,EAAqB,MAAM,iBAAiB,CAAA;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,CAAC,EAAE,MAAM,WAAW,CAAA;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAElD,MAAM,UAAU,YAAY;IAC1B,YAAY,EAAE,CAAA;IACd,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,EAAgB,CAAA;IACxD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAU,CAAA;IAC5C,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC3C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACzC,MAAM,SAAS,GAAG,MAAM,EAAgB,CAAA;IACxC,MAAM,KAAK,GAAG,MAAM,CAAgB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;IACtD,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAA;QACnC,KAAK,GAAG,CAAe,WAAW,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO;YAAE,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA;QAC7M,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IAC5B,CAAC,EAAE,EAAE,CAAC,CAAA;IACN,MAAM,IAAI,GAAG,KAAK,EAAE,KAA4B,EAAiB,EAAE;QACjE,SAAS,CAAC,IAAI,CAAC,CAAC;QAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAChC,uEAAuE;QACvE,gEAAgE;QAChE,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YAC9C,IAAI,CAAC,SAAS,CAAC,OAAO;gBAAE,OAAM;YAC9B,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,GAAG,CAAe,WAAW,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;gBAC/H,SAAS,CAAC,OAAO,GAAG,KAAK,CAAA;gBACzB,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,OAAO,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC,CAAA;gBAC5D,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;YACrC,CAAC;YAAC,OAAO,MAAM,EAAE,CAAC;gBAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAA;YAAC,CAAC;QACrD,CAAC,CAAC,CAAA;QACF,KAAK,CAAC,OAAO,GAAG,SAAS,CAAA;QACzB,MAAM,SAAS,CAAA;QACf,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS;YAAE,SAAS,CAAC,KAAK,CAAC,CAAA;IACnD,CAAC,CAAA;IACD,MAAM,OAAO,GAAG,CAAC,GAA6E,EAAE,EAAE,CAAC,CAAC;QAClG,QAAQ,EAAE,CAAC,KAA0C,EAAE,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA,CAAC,CAAC;QACnK,MAAM,EAAE,CAAC,KAAyC,EAAE,EAAE,GAAG,IAAI,KAAK,CAAC,aAAa,CAAC,cAAc,EAAE;YAAE,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA,CAAC,CAAC;KAC7J,CAAC,CAAA;IACF,OAAO,eAAK,SAAS,EAAC,uBAAuB,aAAC,eAAK,SAAS,EAAC,yBAAyB,aAAC,0BAAK,uBAAK,CAAC,CAAC,oBAAoB,CAAC,GAAM,EAAA,sBAAI,CAAC,CAAC,wBAAwB,CAAC,GAAK,IAAM,EAAA,gBAAO,IAAI,EAAC,QAAQ,YAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,GAAS,IAAM,EAC/Q,eAAK,SAAS,EAAC,wBAAwB,aACrC,KAAC,iBAAiB,KAAG,EACpB,QAAQ,IAAI,8BACX,mBAAS,SAAS,EAAC,0BAA0B,aAAC,cAAK,SAAS,EAAC,kCAAkC,YAAC,2BAAS,CAAC,CAAC,oBAAoB,CAAC,GAAU,GAAM,EAC9I,oBAAU,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAC,wBAAwB,EAAC,KAAK,EAAE,aAAa,aACjF,iBAAO,SAAS,EAAC,oBAAoB,aAAC,2BAAM,2BAAS,CAAC,CAAC,2BAA2B,CAAC,GAAU,EAAA,0BAAQ,CAAC,CAAC,wBAAwB,CAAC,GAAS,IAAO,EAAA,8BAAmB,CAAC,CAAC,2BAA2B,CAAC,sBAAmB,0BAA0B,EAAC,QAAQ,QAAC,IAAI,EAAC,QAAQ,EAAC,GAAG,EAAC,MAAM,EAAC,GAAG,EAAC,QAAQ,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAE,QAAQ,CAAC,uBAAuB,IAAI,KAAK,KAAM,OAAO,CAAC,yBAAyB,CAAC,GAAI,EAAA,uBAAK,CAAC,CAAC,WAAW,CAAC,GAAM,IAAQ,EACva,YAAG,EAAE,EAAC,0BAA0B,EAAC,SAAS,EAAC,mBAAmB,YAAE,CAAC,CAAC,wBAAwB,CAAC,GAAK,EAChG,iBAAO,SAAS,EAAC,oBAAoB,aAAC,2BAAM,2BAAS,CAAC,CAAC,kBAAkB,CAAC,GAAU,EAAA,0BAAQ,CAAC,CAAC,sBAAsB,CAAC,GAAS,IAAO,EAAA,gBAAO,IAAI,EAAC,UAAU,EAAC,OAAO,EAAE,QAAQ,CAAC,wBAAwB,KAAK,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC,EAAE,wBAAwB,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAA,CAAC,CAAC,GAAI,IAAQ,IACxS,IACH,EACV,mBAAS,SAAS,EAAC,0BAA0B,qBAAiB,qBAAqB,aAAC,cAAK,SAAS,EAAC,kCAAkC,YAAC,2BAAM,iBAAQ,EAAE,EAAC,qBAAqB,YAAE,CAAC,CAAC,6BAA6B,CAAC,GAAU,EAAA,0BAAQ,CAAC,CAAC,mDAAmD,CAAC,GAAS,IAAO,GAAM,EAC1S,oBAAU,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAC,wBAAwB,EAAC,KAAK,EAAE,aAAa,aACjF,iBAAO,SAAS,EAAC,oBAAoB,aAAC,2BAAM,2BAAS,CAAC,CAAC,+BAA+B,CAAC,GAAU,EAAA,0BAAQ,CAAC,CAAC,qCAAqC,CAAC,GAAS,IAAO,EAAA,gBAAO,IAAI,EAAC,UAAU,EAAC,OAAO,EAAE,QAAQ,CAAC,eAAe,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC,EAAE,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAA,CAAC,CAAC,GAAI,IAAQ,EAClT,iBAAO,SAAS,EAAC,oBAAoB,aAAC,2BAAM,2BAAS,CAAC,CAAC,8BAA8B,CAAC,GAAU,EAAA,0BAAQ,CAAC,CAAC,wCAAwC,CAAC,GAAS,IAAO,EAAA,gBAAO,QAAQ,QAAC,IAAI,EAAC,QAAQ,EAAC,GAAG,EAAC,MAAM,EAAC,GAAG,EAAC,QAAQ,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAE,QAAQ,CAAC,uBAAuB,KAAM,OAAO,CAAC,yBAAyB,CAAC,GAAI,EAAA,uBAAK,CAAC,CAAC,WAAW,CAAC,GAAM,IAAQ,EACzV,iBAAO,SAAS,EAAC,oBAAoB,aAAC,2BAAM,2BAAS,CAAC,CAAC,yBAAyB,CAAC,GAAU,EAAA,0BAAQ,CAAC,CAAC,qDAAqD,CAAC,GAAS,IAAO,EAAA,gBAAO,QAAQ,QAAC,IAAI,EAAC,QAAQ,EAAC,GAAG,EAAC,MAAM,EAAC,GAAG,EAAC,SAAS,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAE,QAAQ,CAAC,cAAc,KAAM,OAAO,CAAC,gBAAgB,CAAC,GAAI,EAAA,uBAAK,CAAC,CAAC,cAAc,CAAC,GAAM,IAAQ,IAC1U,IACH,IACT,IACC,EAAC,KAAK,IAAI,YAAG,SAAS,EAAC,sBAAsB,EAAC,IAAI,EAAC,OAAO,YAAE,KAAK,GAAK,IACxE,CAAA;AACR,CAAC;AAED,MAAM,aAAa,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAA"}
1
+ {"version":3,"file":"settings-pane.js","sourceRoot":"","sources":["../src/settings-pane.tsx"],"names":[],"mappings":"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"}
@@ -10,7 +10,9 @@ export declare function ActivitySftpBrowser({ sessionId, profile, profiles, onPr
10
10
  onProfile(id: string): void;
11
11
  onSaved(): Promise<void>;
12
12
  }): JSX.Element;
13
- export declare function ProfileSftpPane({ profile, initialPath, onEdit, onDelete, embedded, terminalPath }: {
13
+ export declare function ProfileSftpPane({ profile, initialPath, onEdit, onDelete, embedded, terminalPath, paneKey, initialFollow }: {
14
+ paneKey?: string;
15
+ initialFollow?: boolean;
14
16
  profile: ProfileView;
15
17
  initialPath?: string;
16
18
  onEdit?(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"sftp-client.d.ts","sourceRoot":"","sources":["../src/sftp-client.tsx"],"names":[],"mappings":"AAWA,OAAO,EAML,KAAK,mBAAmB,EAAE,KAAK,WAAW,EAA0B,KAAK,aAAa,EAAE,KAAK,mBAAmB,EACjH,MAAM,iBAAiB,CAAA;AAYxB,OAAO,EAAoB,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAA;AA0C7E,wBAAgB,qBAAqB,CAAC,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,GAAG,CAAC,OAAO,CASvF;AAED,wBAAgB,mBAAmB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,mBAAmB,CAAC;IAAC,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAAC,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,GAAG,GAAG,CAAC,OAAO,CAqBlP;AAED,wBAAgB,eAAe,CAAC,EAAE,OAAO,EAAE,WAAiB,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAgB,EAAE,YAAY,EAAE,EAAE;IAAE,OAAO,EAAE,WAAW,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,IAAI,IAAI,CAAC;IAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAAG,GAAG,CAAC,OAAO,CAgBxQ;AA0MD,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,gBAAwB,EAAE,EAAE;IAAE,KAAK,EAAE,aAAa,CAAC;IAAC,YAAY,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAAC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAAC,MAAM,IAAI,IAAI,CAAC;IAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,GAAG,CAAC,OAAO,CA4Brc"}
1
+ {"version":3,"file":"sftp-client.d.ts","sourceRoot":"","sources":["../src/sftp-client.tsx"],"names":[],"mappings":"AAYA,OAAO,EAML,KAAK,mBAAmB,EAAE,KAAK,WAAW,EAA0B,KAAK,aAAa,EAAE,KAAK,mBAAmB,EACjH,MAAM,iBAAiB,CAAA;AAYxB,OAAO,EAAoB,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAA;AA0C7E,wBAAgB,qBAAqB,CAAC,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,GAAG,CAAC,OAAO,CASvF;AAED,wBAAgB,mBAAmB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,mBAAmB,CAAC;IAAC,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAAC,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,GAAG,GAAG,CAAC,OAAO,CAqBlP;AAED,wBAAgB,eAAe,CAAC,EAAE,OAAO,EAAE,WAAiB,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAgB,EAAE,YAAY,EAAE,OAAO,EAAE,aAAoB,EAAE,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,WAAW,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,IAAI,IAAI,CAAC;IAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAAG,GAAG,CAAC,OAAO,CAgBlV;AA0MD,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,gBAAwB,EAAE,EAAE;IAAE,KAAK,EAAE,aAAa,CAAC;IAAC,YAAY,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAAC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAAC,MAAM,IAAI,IAAI,CAAC;IAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,GAAG,CAAC,OAAO,CA4Brc"}
@@ -1,4 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { mapTerminalSftpPath } from './sftp-path-mapping.js';
2
3
  import { useSshLocale } from './use-ssh-locale.js';
3
4
  import { trackDownloadClick } from './browser-transfers.js';
4
5
  import { LocalTransferTasks } from './transfer-task-list.js';
@@ -52,19 +53,19 @@ export function ActivitySftpBrowser({ sessionId, profile, profiles, onProfile, o
52
53
  const header = _jsxs("div", { className: "dsh-ssh-sftp-hostbar", children: [_jsx("span", { className: "dsh-ssh-host-monogram", children: profile.name.slice(0, 1).toUpperCase() }), _jsxs("label", { children: [_jsx("span", { className: "sr-only", children: t("sftp-client.selectRemoteHost") }), _jsx("select", { value: profile.id, onChange: event => onProfile(event.target.value), children: profiles.map(item => _jsx("option", { value: item.id, children: item.name }, item.id)) }), _jsxs("small", { children: [profile.username, "@", profile.host, ":", profile.port] })] })] });
53
54
  return _jsx(SftpExplorer, { persistenceKey: explorerStateKey(sessionId, profile.id), initialPath: profile.cwd, mountedDirectories: profile.mountedDirectories, header: header, loadPathEntry: loadPathEntry, loadDirectory: loadDirectory, loadPreview: loadPreview, saveMarkdown: saveMarkdown, fileUrl: fileUrl, uploadFile: uploadFile, operations: { paneId, endpointId, endpointName: profile.name }, deletion: { locationName: profile.name, locationKind: 'remote', remove } }, `${sessionId}:${profile.id}`);
54
55
  }
55
- export function ProfileSftpPane({ profile, initialPath = '~', onEdit, onDelete, embedded = false, terminalPath }) {
56
+ export function ProfileSftpPane({ profile, initialPath = '~', onEdit, onDelete, embedded = false, terminalPath, paneKey, initialFollow = true }) {
56
57
  useSshLocale();
57
- const [following, setFollowing] = useState(true);
58
+ const [following, setFollowing] = useState(initialFollow);
58
59
  const saveMarkdown = useCallback((input) => saveProfileMarkdown(profile.id, input), [profile.id]);
59
60
  const loadPathEntry = useCallback((path, signal) => loadProfileSftpPathEntry(profile.id, path, signal), [profile.id]);
60
61
  const loadDirectory = useCallback((path) => loadProfileSftpDirectory(profile.id, path), [profile.id]);
61
62
  const loadPreview = useCallback((path, signal) => loadProfileSftpFilePreview(profile.id, path, signal), [profile.id]);
62
63
  const fileUrl = useCallback((path, inline = false) => profileSftpFileUrl(profile.id, path, inline), [profile.id]);
63
64
  const uploadFile = useCallback((directory, file, overwrite) => uploadProfileSftpFile(profile.id, directory, file, overwrite), [profile.id]);
64
- const paneId = safePaneId(`profile-sftp-${profile.id}`);
65
+ const paneId = safePaneId(`profile-sftp-${profile.id}${paneKey ? `-${paneKey}` : ''}`);
65
66
  const endpointId = `sftp:${profile.id}`;
66
67
  const remove = useCallback((directory, paths) => deleteFileEndpointEntries({ paneId, endpointId, directory, paths }), [endpointId, paneId]);
67
- return _jsxs("div", { className: `dsh-ssh-profile-sftp-pane${embedded ? ' is-embedded' : ''}`, children: [_jsxs("div", { className: "dsh-ssh-content-heading", children: [_jsxs("div", { children: [_jsx("h1", { children: embedded ? 'SFTP' : `${profile.name} · SFTP` }), _jsx("p", { children: embedded ? initialPath : `${profileAddress(profile)} · ${initialPath}` })] }), _jsxs("div", { className: "dsh-ssh-heading-actions", children: [onDelete && _jsx("button", { type: "button", className: "dsh-ssh-icon-button is-danger", "aria-label": t("client.deleteHost", [profile.name]), title: t("client.deleteHost2"), onClick: onDelete, children: _jsx(IconTrashOutline16, { size: 16 }) }), onEdit && _jsxs("button", { type: "button", className: "dsh-ssh-secondary-button", onClick: onEdit, children: [_jsx(IconEditOutline16, { size: 16 }), t("client.editHost")] })] })] }), _jsx(SftpExplorer, { workspace: true, initialPath: initialPath, followPath: embedded && following ? terminalPath : undefined, followControl: embedded && _jsx("button", { type: "button", className: "dsh-ssh-follow-directory", "aria-label": t('sftp-client.followTerminal'), "aria-pressed": following, "data-waiting": following && terminalPath === undefined, title: terminalPath === undefined ? t('sftp-client.followWaiting') : t('sftp-client.followHint'), onClick: () => setFollowing(value => !value), children: _jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.6", "aria-hidden": "true", children: _jsx("path", { d: "M10 13a5 5 0 0 0 7 .5l3-3a5 5 0 0 0-7-7l-2 2M14 11a5 5 0 0 0-7-.5l-3 3a5 5 0 0 0 7 7l2-2" }) }) }), loadPathEntry: loadPathEntry, loadDirectory: loadDirectory, loadPreview: loadPreview, saveMarkdown: saveMarkdown, fileUrl: fileUrl, uploadFile: uploadFile, operations: { paneId, endpointId, endpointName: profile.name }, deletion: { locationName: profile.name, locationKind: 'remote', remove } }, profile.id)] });
68
+ return _jsxs("div", { className: `dsh-ssh-profile-sftp-pane${embedded ? ' is-embedded' : ''}`, children: [!embedded && _jsxs("div", { className: "dsh-ssh-content-heading", children: [_jsxs("div", { children: [_jsx("h1", { children: embedded ? 'SFTP' : `${profile.name} · SFTP` }), _jsx("p", { children: embedded ? initialPath : `${profileAddress(profile)} · ${initialPath}` })] }), _jsxs("div", { className: "dsh-ssh-heading-actions", children: [onDelete && _jsx("button", { type: "button", className: "dsh-ssh-icon-button is-danger", "aria-label": t("client.deleteHost", [profile.name]), title: t("client.deleteHost2"), onClick: onDelete, children: _jsx(IconTrashOutline16, { size: 16 }) }), onEdit && _jsxs("button", { type: "button", className: "dsh-ssh-secondary-button", onClick: onEdit, children: [_jsx(IconEditOutline16, { size: 16 }), t("client.editHost")] })] })] }), _jsx(SftpExplorer, { workspace: true, initialPath: embedded ? mapTerminalSftpPath(initialPath, profile.sftpPathMappings) : initialPath, followPath: embedded && following && terminalPath !== undefined ? mapTerminalSftpPath(terminalPath, profile.sftpPathMappings) : undefined, followControl: embedded && _jsx("button", { type: "button", className: "dsh-ssh-follow-directory", "aria-label": t('sftp-client.followTerminal'), "aria-pressed": following, "data-waiting": following && terminalPath === undefined, title: terminalPath === undefined ? t('sftp-client.followWaiting') : t('sftp-client.followHint'), onClick: () => setFollowing(value => !value), children: _jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.6", "aria-hidden": "true", children: _jsx("path", { d: "M10 13a5 5 0 0 0 7 .5l3-3a5 5 0 0 0-7-7l-2 2M14 11a5 5 0 0 0-7-.5l-3 3a5 5 0 0 0 7 7l2-2" }) }) }), loadPathEntry: loadPathEntry, loadDirectory: loadDirectory, loadPreview: loadPreview, saveMarkdown: saveMarkdown, fileUrl: fileUrl, uploadFile: uploadFile, operations: { paneId, endpointId, endpointName: profile.name }, deletion: { locationName: profile.name, locationKind: 'remote', remove } }, profile.id)] });
68
69
  }
69
70
  function SftpExplorer({ persistenceKey, initialPath, followPath, followControl, nativeSessionId, header, mountedDirectories, workspace = false, loadDirectory, loadPreview, saveMarkdown, loadPathEntry, fileUrl, uploadFile, operations, deletion }) {
70
71
  useSshLocale();
@@ -88,7 +89,7 @@ function SftpExplorer({ persistenceKey, initialPath, followPath, followControl,
88
89
  const [operationMessage, setOperationMessage] = useState();
89
90
  const [error, setError] = useState();
90
91
  const lastFollowed = useRef();
91
- const browse = useCallback(async (target, persist, restore) => {
92
+ const browse = useCallback(async (target, persist, restore, fromFollow = false) => {
92
93
  const request = ++navigationId.current;
93
94
  setLoading(true);
94
95
  setError(undefined);
@@ -105,7 +106,7 @@ function SftpExplorer({ persistenceKey, initialPath, followPath, followControl,
105
106
  }
106
107
  catch (reason) {
107
108
  if (request === navigationId.current)
108
- setError(errorMessage(reason));
109
+ setError(fromFollow ? t('sftp-client.followUnavailable', [target, errorMessage(reason)]) : errorMessage(reason));
109
110
  }
110
111
  finally {
111
112
  if (request === navigationId.current)
@@ -133,15 +134,15 @@ function SftpExplorer({ persistenceKey, initialPath, followPath, followControl,
133
134
  return;
134
135
  }
135
136
  // Never dismiss a preview/draft, a confirmation, a path being typed, or an upload.
136
- if (loading || openedFile || uploading || pendingOverwrite || deleteTarget || !directory || path !== directory.path || lastFollowed.current === followPath)
137
+ if (loading || openedFile || uploading || pendingOverwrite || deleteTarget || path !== (directory?.path ?? initialPath) || lastFollowed.current === followPath)
137
138
  return;
138
139
  const timer = window.setTimeout(() => {
139
140
  lastFollowed.current = followPath;
140
- if (followPath !== directory.path)
141
- void browse(followPath, false);
141
+ if (followPath !== directory?.path)
142
+ void browse(followPath, false, undefined, true);
142
143
  }, 250);
143
144
  return () => window.clearTimeout(timer);
144
- }, [followPath, loading, openedFile, uploading, pendingOverwrite, deleteTarget, directory, path, browse]);
145
+ }, [followPath, loading, openedFile, uploading, pendingOverwrite, deleteTarget, directory, path, initialPath, browse]);
145
146
  const openEntry = (entry) => {
146
147
  if (isNavigableRemoteEntry(entry)) {
147
148
  void browse(entry.path, true);