Initial commit: mumh5, a modern Mumble client
Electron desktop app with a Svelte 5 interface for any Mumble server. - Mumble protocol core: TLS, handshake, channels, users, text, plugin data, client-side pacing of Murmur's rate limits - Voice: WebCodecs Opus over the TCP tunnel, voice activity, push to talk, always-on, devices, per-user volume and local mute - Several servers at once, voice on one; server rail with icons and ordering - Chat: channels, direct messages, side chat, file sharing through f0ckm, inline images without it, click-to-play YouTube - Profiles with rich descriptions, registration, rename, nicknames, connection information and moderation menus - Identity wizard, multiple identities, PKCS#12 import/export, desktop Mumble certificate import, certificate pinning and viewer - Tray icon with voice state - Unit, server and end-to-end tests against a real Murmur Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
<script lang="ts">
|
||||
import Modal from './Modal.svelte';
|
||||
|
||||
let { title, label, confirm, danger = false, input = 'text', initial = '', text = '', onsubmit, onclose }:
|
||||
{ title: string; label: string; confirm: string; danger?: boolean; input?: 'text' | 'password' | 'none'; initial?: string;
|
||||
text?: string; onsubmit: (value: string) => void; onclose: () => void } = $props();
|
||||
|
||||
// svelte-ignore state_referenced_locally
|
||||
let value = $state(initial);
|
||||
</script>
|
||||
|
||||
<Modal {title} {onclose}>
|
||||
<form id="prompt" onsubmit={e => { e.preventDefault(); onsubmit(value); onclose(); }}>
|
||||
{#if text}<p>{text}</p>{/if}
|
||||
{#if input !== 'none'}
|
||||
<label for="p-val">{label}</label>
|
||||
<!-- svelte-ignore a11y_autofocus -->
|
||||
<input id="p-val" type={input} bind:value autofocus autocomplete="off" />
|
||||
{/if}
|
||||
</form>
|
||||
{#snippet footer()}
|
||||
<button class="btn" onclick={onclose}>Cancel</button>
|
||||
<button class="btn" class:primary={!danger} class:danger type="submit" form="prompt">{confirm}</button>
|
||||
{/snippet}
|
||||
</Modal>
|
||||
|
||||
<style>
|
||||
p { color: var(--text-dim); }
|
||||
</style>
|
||||
Reference in New Issue
Block a user