update("deviceType", effectiveDeviceType === "network" ? "general" : "network")}
/>
{effectiveDeviceType === "network" && (
{t("hostDetails.deviceType.warning")}
)}
)}
{/* Telnet Section (if enabled) */}
{telnetEnabled && (
}
title={t("vault.groups.details.telnet")}
action={
}
>
{(identities.length > 0 || effectiveTelnetIdentityId) && (
)}
{!effectiveTelnetIdentityId && (<>
update("telnetUsername", e.target.value)}
className="h-10"
/>
update("telnetPassword", e.target.value)}
className="h-10 pr-10"
/>
>)}
)}
{/* Charset & Appearance — only when at least one protocol is added */}
{(sshEnabled || telnetEnabled) && (<>
}
title={t("vault.groups.details.advanced")}
>
update("charset", value)}
/>
{/* Appearance Section */}
}
title={t("vault.groups.details.appearance")}
>
{hasActiveThemeOverride && (
{
event.stopPropagation();
setForm((prev) => ({
...prev,
theme: undefined,
themeOverride: false,
}));
}}
/>
)}
{
setForm((prev) => ({
...prev,
fontFamily: id,
fontFamilyOverride: true,
}));
}}
className="min-w-0 flex-1"
ariaLabel={t("vault.groups.details.fontFamily")}
/>
{form.fontFamilyOverride && (
setForm((prev) => ({
...prev,
fontFamily: undefined,
fontFamilyOverride: false,
}))
}
/>
)}
{/* Font Size */}
{
const val = e.target.value ? parseInt(e.target.value) : undefined;
setForm((prev) => ({
...prev,
fontSize: val,
fontSizeOverride: val !== undefined ? true : undefined,
}));
}}
className="h-8 w-24 text-center"
/>
>)}
{/* Add Protocol Button — always at the bottom */}
{addableProtocols.length > 0 && (
{addableProtocols.map(({ key, label }) => (
))}
)}