Files
fusion/packages/dashboard/app/components/NativeShellConnectionManager.css
gsxdsm 0900a38630 FN-7478: add local server desktop switch option
Restore the desktop connection manager's local server destination alongside saved remotes.

- Add a Local Server card for desktop-shell switching with active state handling.
- Switch remote profile selection into remote mode before activating the profile.
- Cover desktop local/remote switching behavior with tests and localized labels.
- Document the switch-server local option and add the published package changeset.

Files changed:
 .changeset/fn-7478-local-server-switch-option.md   |  7 +++
 docs/native-shell.md                               |  3 +-
 .../components/NativeShellConnectionManager.css    | 19 ++++++
 .../components/NativeShellConnectionManager.tsx    | 55 ++++++++++++++---
 .../NativeShellConnectionManager.test.tsx          | 71 ++++++++++++++++++++--
 packages/i18n/locales/en/app.json                  |  5 +-
 packages/i18n/locales/es/app.json                  |  5 +-
 packages/i18n/locales/fr/app.json                  |  5 +-
 packages/i18n/locales/ko/app.json                  |  5 +-
 packages/i18n/locales/zh-CN/app.json               |  5 +-
 packages/i18n/locales/zh-TW/app.json               |  5 +-
 packages/i18n/src/resources.d.ts                   |  3 +
 12 files changed, 168 insertions(+), 20 deletions(-)

Fusion-Task-Id: FN-7478

Fusion-Task-Lineage: 86a94faa-4799-46cc-aaed-b7901ee9698c

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-03 21:45:21 -07:00

88 lines
1.9 KiB
CSS

.native-shell-connection-manager {
width: min(100%, 42rem);
}
.native-shell-connection-manager__mode-row {
display: flex;
gap: var(--space-sm);
padding: 0 var(--space-xl) var(--space-md);
}
.native-shell-connection-manager__profiles {
display: flex;
flex-direction: column;
gap: var(--space-sm);
padding: 0 var(--space-xl);
max-height: 16rem;
overflow: auto;
}
.native-shell-connection-manager__profile {
display: flex;
align-items: center;
justify-content: space-between;
gap: var(--space-md);
}
.native-shell-connection-manager__destination {
width: 100%;
border-color: var(--border);
color: var(--text);
text-align: start;
cursor: pointer;
}
.native-shell-connection-manager__destination:hover,
.native-shell-connection-manager__destination:focus-visible {
border-color: var(--accent-primary);
}
.native-shell-connection-manager__destination > span:first-child {
display: flex;
flex-direction: column;
gap: var(--space-xs);
}
.native-shell-connection-manager__profile-actions {
display: inline-flex;
gap: var(--space-sm);
}
.native-shell-connection-manager__editor {
padding-top: var(--space-lg);
}
.native-shell-connection-manager__empty-state {
display: flex;
flex-direction: column;
gap: var(--space-sm);
}
.native-shell-connection-manager__active-pill {
display: inline-flex;
margin-top: var(--space-xs);
padding: 0 var(--space-sm);
border-radius: var(--radius-pill);
color: var(--text);
background: var(--status-done-bg);
}
.native-shell-connection-manager__delete-confirm {
margin: 0 var(--space-xl);
padding: var(--space-md);
border: 1px solid var(--border);
border-radius: var(--radius-md);
background: color-mix(in srgb, var(--color-warning) 8%, transparent);
}
@media (max-width: 768px) {
.native-shell-connection-manager__profile {
flex-direction: column;
align-items: flex-start;
}
.native-shell-connection-manager__mode-row {
flex-wrap: wrap;
}
}