planche 0.9.2 → 0.9.4
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/app/assets/{B4S-lOKS.js → 2HDxyxt3.js} +1 -1
- package/app/assets/{W7D4Svcn.js → 2WcjYcT6.js} +1 -1
- package/app/assets/{G06qjCej.js → 34iJa-68.js} +1 -1
- package/app/assets/{CFUkTo-F.js → 62772Vyq.js} +1 -1
- package/app/assets/{XCH_yrJ8.js → 7hKKrols.js} +1 -1
- package/app/assets/92hmrkfN.css +2 -0
- package/app/assets/{CTnwm-29.js → AR0v7sKO.js} +1 -1
- package/app/assets/B5FoXN4H.js +1 -0
- package/app/assets/{DCHRj2vY.js → BB2_KYgp.js} +1 -1
- package/app/assets/{Bbx7_Uyd.js → BHsv1P4D.js} +1 -1
- package/app/assets/{D3lUezEb.js → BI5Ig187.js} +1 -1
- package/app/assets/{ByKF67UY.js → BRKvj3qd.js} +1 -1
- package/app/assets/{CFu5QMhX.js → BTpuv2bS.js} +1 -1
- package/app/assets/{BkXrfAoR.js → BVZGLNq_.js} +1 -1
- package/app/assets/{Djxg54qH.js → BWPrOT1U.js} +1 -1
- package/app/assets/{84VwJAQi.js → BaTnCkNR.js} +1 -1
- package/app/assets/{7jG9Xw-H.js → BdhjYiGI.js} +1 -1
- package/app/assets/{D8_hwGjG.js → BihjBM79.js} +1 -1
- package/app/assets/{BrVnzO7b.js → Bjx1jzlk.js} +1 -1
- package/app/assets/{7jD5h8Yx.js → BkujllIu.js} +1 -1
- package/app/assets/{BPPUDpI0.js → BtBUwOf0.js} +1 -1
- package/app/assets/{B9dhM8vw.js → Buf-_p3w.js} +1 -1
- package/app/assets/{CrlnxAGW.js → BvkNY7SP.js} +1 -1
- package/app/assets/{BGvsBpIS.js → C-8Bh-gu.js} +1 -1
- package/app/assets/{BMFLhX-x.js → C1JbR1mO.js} +1 -1
- package/app/assets/{DPyLA6Dl.js → C3AWL5gC.js} +1 -1
- package/app/assets/{BQ1Rcyw6.js → C3aiaYZP.js} +1 -1
- package/app/assets/{Cu_sGzNJ.js → C76CctEl.js} +1 -1
- package/app/assets/{DHZOxCSJ.js → C82F2LSh.js} +1 -1
- package/app/assets/{CoZCOAph.js → CCJEQIo6.js} +1 -1
- package/app/assets/{DzdX4vRD.js → CDfygETm.js} +1 -1
- package/app/assets/{BixvbqFe.js → CGpFMM6B.js} +1 -1
- package/app/assets/{BRZhVXRC.js → CH4cEkW4.js} +1 -1
- package/app/assets/{D9QeXBOk.js → CKUISE0C.js} +1 -1
- package/app/assets/{BNB62Dfu.js → CN1CF2CU.js} +1 -1
- package/app/assets/{D0Ya12SQ.js → CRYDH2ct.js} +1 -1
- package/app/assets/{BnJGrP6V.js → CZRhmV_L.js} +2 -2
- package/app/assets/{C1gqjEN3.js → C_qmv4pB.js} +1 -1
- package/app/assets/{CgQ0qqq4.js → CcaDuuFY.js} +1 -1
- package/app/assets/{D1kyupCL.js → Cm-pfCIP.js} +1 -1
- package/app/assets/{BDtsGuIR.js → Cme0nCT7.js} +2 -2
- package/app/assets/{BhX9zWzC.js → CoUCmmSB.js} +1 -1
- package/app/assets/{B7zF7RU4.js → CtsakJNi.js} +1 -1
- package/app/assets/{DNHPk-9r.js → Cw4TnfXm.js} +1 -1
- package/app/assets/{BYvM8E39.js → CxaujQob.js} +1 -1
- package/app/assets/{CYz610vE.js → CyX8oVsa.js} +1 -1
- package/app/assets/{CRnmOOqq.js → D-DAzfgs.js} +1 -1
- package/app/assets/{BPmMKRmE.js → D3VPMNTU.js} +1 -1
- package/app/assets/{CExE8dKz.js → D4DxtYTA.js} +185 -184
- package/app/assets/{C6712dxU.js → D4c1cZWk.js} +1 -1
- package/app/assets/{C1kpKIsO.js → DG0u2CPf.js} +1 -1
- package/app/assets/{CHx7zgT8.js → DKObYbZY.js} +1 -1
- package/app/assets/{DU-Eln5x.js → DOy06rIE.js} +1 -1
- package/app/assets/{aIFwnVFr.js → DPKD37gk.js} +1 -1
- package/app/assets/{DpEN2jyA.js → DT8Xdk78.js} +1 -1
- package/app/assets/{Do7KpDxk.js → DXExbVos.js} +1 -1
- package/app/assets/{BSziALTN.js → DXQPcWS6.js} +1 -1
- package/app/assets/{kXDKfUfE.js → DjsycSVl.js} +1 -1
- package/app/assets/{CiL8zoYm.js → Dya0zxo6.js} +1 -1
- package/app/assets/{DTkqO0Em.js → IqMoIce-.js} +1 -1
- package/app/assets/{CrhJJH3f.js → MeOkctzz.js} +1 -1
- package/app/assets/{DF7EZh_S.js → NL8WOYEo.js} +1 -1
- package/app/assets/{D8dVzi6I.js → Ngd1VEiY.js} +1 -1
- package/app/assets/UEkRIZwQ.js +1 -0
- package/app/assets/{BGuDcBB_.js → UJzcIbfW.js} +1 -1
- package/app/assets/{C77ZEZfM.js → W81Xd8P5.js} +1 -1
- package/app/assets/{DaBfnZOJ.js → Yn5aIyLX.js} +1 -1
- package/app/assets/{BMBWoD5w.js → _N3A-NTc.js} +1 -1
- package/app/assets/{qRIRkBN0.js → gvCOWBS0.js} +1 -1
- package/app/assets/{S7HbowYz.js → iz6RnRcO.js} +71 -71
- package/app/assets/{DzRyVlxz.js → kTwcxyaO.js} +1 -1
- package/app/assets/{tJkeLYCp.js → oXAkF219.js} +1 -1
- package/app/assets/{BTaXXwBP.js → pDR31rvF.js} +1 -1
- package/app/assets/{BEH9Jqkv.js → u9a-WHjb.js} +1 -1
- package/app/assets/{BbOETtQZ.js → yLCKuLgs.js} +1 -1
- package/app/assets/{CaU3pCK6.js → yfRSh-O-.js} +1 -1
- package/app/assets/{BjwrN_ch.js → zdvaVsTo.js} +1 -1
- package/app/index.html +20 -20
- package/package.json +1 -1
- package/app/assets/9gOj-Ty3.js +0 -1
- package/app/assets/BFw3KCAr.js +0 -1
- package/app/assets/w46wk7KI.css +0 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var e={reconnecting:`Verbindung wird wiederhergestellt…`,dropSqlite:`Loslassen, um die SQLite-Datei zu öffnen`,dropSqliteHint:`Wird per WebAssembly im Browser geöffnet — die Datei bleibt auf Ihrem Rechner. Eine vorhandene -wal-Datei bitte mit ablegen.`,dropFailedTitle:`Abgelegte Datei konnte nicht geöffnet werden`,dropNotSqlite:`{{name}} ist keine SQLite-Datenbankdatei.`,crashTitle:`Etwas ist schiefgelaufen`,crashBody:`Die App ist auf einen unerwarteten Fehler gestoßen. Neu laden stellt Verbindungen und Tabs wieder her; ungespeicherte Änderungen im Raster gehen verloren.`,crashReload:`Neu laden`,dialogFailed:`Der Dialog konnte nicht geöffnet werden: {{message}}`},t={auto:`Systemsprache ({{name}})`,en:`English`,ko:`한국어`,zh:`中文(简体)`,ja:`日本語`,de:`Deutsch`,fr:`Français`},n={title:`Sicherheit`,description:`Schutzmaßnahmen gegen versehentlichen Datenverlust. Schreibschutz, Umgebungsfarbe und Transaktionsmodus werden pro Verbindung festgelegt.`,language:`Sprache`,languageHint:`Wird sofort übernommen. „Systemsprache“ folgt der Einstellung Ihres Browsers.`,resetDefaults:`Auf Standardwerte zurücksetzen`,done:`Fertig`,analytics:`Anonyme Nutzungsstatistiken teilen`,analyticsHint:`Sendet anonyme Nutzungsereignisse (Engine, Funktion, Anweisungstyp) an Google Analytics. Niemals SQL-Text, Hostnamen, Tabellen- oder Benutzernamen.`,analyticsUnavailableHint:`In diesem Build nicht aktiv (keine Mess-ID konfiguriert).`,persistHistory:`Abfrageverlauf über Neuladen hinweg behalten`,persistHistoryHint:`Der Anweisungstext wird in diesem Browser gespeichert (Passwort-Literale werden maskiert; die offenen Editor-Tabs selbst bleiben immer erhalten). Aus: Verlauf und Snapshots leben nur bis zum Schließen des Tabs.`,ai:{intro:`Planche kann ein Modell fragen, warum eine Anweisung fehlschlug oder ein Plan langsam ist. Die Frage wird hier in der App zusammengesetzt und von Ihrem lokalen Agenten an den Anbieter unten geschickt — weder Ihr SQL noch Ihr Schema erreicht planche.dev.`,provider:`Anbieter`,openaiCompatible:`OpenAI-kompatibel`,model:`Modell`,baseUrl:`Basis-URL`,baseUrlHint:`Leer lassen für den Standard-Endpunkt des Anbieters. Jeder OpenAI-kompatible Server funktioniert — Azure, OpenRouter, ein lokales Ollama.`,key:`API-Schlüssel`,keyHint:`Wird an den lokalen Agenten übergeben und dort verwendet. Er wird nie in diesem Browser gespeichert und nie an planche.dev gesendet.`,remember:`Schlüssel auf diesem Rechner merken`,rememberHint:`Schreibt ihn nach {{path}}, nur für Sie lesbar. Ohne dies lebt der Schlüssel nur im laufenden Agenten und ist nach dessen Ende weg.`,save:`Speichern`,forget:`Schlüssel löschen`,saved:`Gespeichert.`,none:`Kein Schlüssel gesetzt.`,configuredSession:`Ein Schlüssel gilt nur für diese Agenten-Sitzung.`,configuredFile:`Ein Schlüssel liegt unter {{path}}.`,configuredEnv:`Die KI-Einstellungen dieses Agenten stammen aus seiner Umgebung und sind hier nicht änderbar.`,unreachable:`Der Agent ist nicht erreichbar, daher lassen sich die KI-Einstellungen nicht ändern.`,title:`KI-Erklärungen`,description:`Welches Modell einen Fehler oder Plan erklärt, und wessen Schlüssel dafür zahlt.`,cli:`Lokale CLI (kein Schlüssel)`,cliCommand:`Befehl`,cliHint:`Führt eine bereits installierte und angemeldete Agent-CLI auf diesem Rechner aus, es gibt also keinen Schlüssel einzugeben. Sie erklärt Fehler und Pläne; das KI-Panel braucht einen Provider, der Werkzeuge aufrufen kann.`,cliNone:`Auf diesem Rechner wurde keine Agent-CLI gefunden. Installiere Claude Code oder Codex, oder wähle einen anderen Provider.`,profile:`Anthropic (Anmeldung dieses Rechners)`,profileHint:"Nutzt die Zugangsdaten, mit denen dieser Rechner bereits angemeldet ist — nach `ant auth login` findet das SDK sie selbst. Nichts einzufügen, und anders als bei einer lokalen CLI ist es die echte API, also funktioniert auch das KI-Panel.",profileNone:"Auf diesem Rechner wurden keine Anthropic-Zugangsdaten gefunden. Führe `ant auth login` aus, oder hinterlege einen Schlüssel.",configuredChoice:`{{provider}} wird verwendet – kein Schlüssel gespeichert; die Wahl steht in {{path}}.`},query:{title:`Abfrage`,description:`Wie eine Anweisung läuft: was F9 ausführt, wie viele Zeilen zurückkommen, was vorher gezeigt wird.`},general:{title:`Allgemein`,description:`Sprache, was ein Neuladen überdauert, und was diesen Rechner verlässt.`}},r={settings:{safety:`Sicherheit…`,language:`Sprache`,title:`Einstellungen`,theme:`Design`,query:`Abfrage…`,general:`Allgemein…`,ai:`KI…`},help:{gettingStarted:`Erste Schritte`,about:`Über Planche`,title:`Hilfe`,documentation:`Dokumentation`,learn:`SQL lernen`,terms:`Nutzungsbedingungen`,license:`Lizenz`,support:`Support kontaktieren`,mcp:`KI-Agent verbinden (MCP)…`,privacy:`Datenschutz`,whatsNew:`Neuigkeiten`},connection:{title:`Verbindung`,connect:`Verbinden`,disconnect:`Verbindung trennen`,readOnly:`Schreibgeschützt`,manualTransactions:`Manuelle Transaktionen`,saveDatabaseFile:`Datenbankdatei speichern`,saveDatabaseFileBlocked:`Datenbankdatei speichern (zuerst -wal laden)`,exit:`Beenden`,sync:`Verbindungs-Sync`},query:{title:`Abfrage`,execute:`Ausführen`,executeStatementAtCursor:`Anweisung am Cursor ausführen`,executeWholeScript:`Gesamtes Skript ausführen`,newQueryTab:`Neuer Abfrage-Tab`,findReplace:`Suchen und Ersetzen`,localHistory:`Lokaler Verlauf…`,explainPlan:`Ausführungsplan anzeigen`,explainAnalyze:`Ausführungsplan messen (führt die Anweisung aus)`,structure:`Abfragestruktur`},edit:{title:`Bearbeiten`,undo:`Rückgängig`,redo:`Wiederholen`,cut:`Ausschneiden`,copy:`Kopieren`,paste:`Einfügen`,selectAll:`Alles auswählen`},database:{title:`Datenbank`,create:`Datenbank erstellen`,alter:`Datenbank ändern`,drop:`Datenbank löschen`,copy:`Datenbank kopieren`,compare:`Schemas vergleichen…`,truncate:`Datenbank leeren`,compareData:`Daten vergleichen…`,groupBy:`Gruppieren und zählen…`},table:{title:`Tabelle`,create:`Tabelle erstellen`,alter:`Tabelle ändern`,drop:`Tabelle löschen`,rename:`Tabelle umbenennen`,truncate:`Tabelle leeren`,duplicateStructure:`Tabellenstruktur duplizieren`},export:{title:`Export`,csv:`Als CSV herunterladen`,tsv:`Als TSV herunterladen`,schemaHtml:`Schema als HTML`,links:`Spaltenverknüpfungen exportieren…`,importLinks:`Spaltenverknüpfungen importieren…`},tools:{title:`Werkzeuge`,userManager:`Benutzerverwaltung`,processList:`Prozessliste`,variables:`Variablen`,status:`Status`,flush:`Flush`,quickCommand:`Schnellbefehl`,viewErd:`ERD anzeigen`,scratchpad:`Scratchpad (SQLite im Browser)`,federated:`Verbundabfrage (Join über Verbindungen)…`,federatedTab:`Verbund {{n}}`,ai:`KI-Assistent`},messages:{databaseFileSaved:`Datenbankdatei gespeichert`,databaseExported:`Datenbank als Download exportiert`,databaseExportedWithReason:`Datenbank als Download exportiert — {{reason}}`,errorSavingDatabase:`Fehler beim Speichern der Datenbank: {{message}}`,noDatabaseSelected:`Keine Datenbank ausgewählt`,noTableSelected:`Keine Tabelle ausgewählt`,noActiveConnection:`Keine aktive Verbindung`,databaseDropped:`Datenbank „{{database}}“ wurde gelöscht`,errorDroppingDatabase:`Fehler beim Löschen der Datenbank: {{message}}`,noTablesInDatabase:`Keine Tabellen in der Datenbank „{{database}}“ gefunden`,databaseTruncated_one:`{{count}} Tabelle in „{{database}}“ wurde geleert`,databaseTruncated_other:`Alle {{count}} Tabellen in „{{database}}“ wurden geleert`,errorTruncatingDatabase:`Fehler beim Leeren der Datenbank: {{message}}`,tableDropped:`Tabelle „{{table}}“ wurde gelöscht`,errorDroppingTable:`Fehler beim Löschen der Tabelle: {{message}}`,tableTruncated:`Tabelle „{{table}}“ wurde geleert`,errorTruncatingTable:`Fehler beim Leeren der Tabelle: {{message}}`,renameTablePrompt:`Tabelle „{{table}}“ umbenennen in:`,tableRenamed:`Tabelle „{{table}}“ wurde in „{{newName}}“ umbenannt`,errorRenamingTable:`Fehler beim Umbenennen der Tabelle: {{message}}`,truncateDatabaseTitle:`Alle Tabellen in "{{name}}" leeren?`,truncateDatabaseDescription:`Alle Zeilen in {{count}} Tabelle(n) von "{{name}}" werden gelöscht. Die Tabellenstrukturen bleiben erhalten. Dies kann nicht rückgängig gemacht werden.`,truncateDatabaseConfirm:`Alle Tabellen leeren`,renameTableTitle:`Tabelle umbenennen`,renameTableConfirm:`Umbenennen`,noLinksToExport:`Keine Spaltenverknüpfungen zum Exportieren.`,linksExported:`{{count}} Spaltenverknüpfungen exportiert.`,linksImported:`{{count}} Spaltenverknüpfungen importiert.`,linksImportedPartial:`{{count}} Spaltenverknüpfungen importiert; kein passendes Profil für: {{profiles}}`,linksImportFailed:`Spaltenverknüpfungen konnten nicht importiert werden: {{reason}}`}},i={title:`Über Planche`,tagline:`Ein Datenbank-Client für MySQL, MariaDB, PostgreSQL und SQLite.`,version:`Version`,website:`Website`,licenses:`Lizenzen`,licensesLink:`Hinweise zu Drittanbietern`,disclaimer:`Planche wird „wie besehen“ und ohne jegliche Gewährleistung bereitgestellt. Die Autoren haften nicht für Schäden oder Datenverluste, die aus der Nutzung entstehen. Sichern Sie Ihre Daten, bevor Sie destruktive Anweisungen ausführen.`,rights:`Alle Rechte vorbehalten.`,legal:`Rechtliches`,terms:`AGB`,privacy:`Datenschutz`,refund:`Rückerstattung`},a=JSON.parse('{"dialog":{"title":"Mit Datenbank verbinden","firstQueryTab":"Abfrage 1","colHostName":"Name","colTarget":"Ziel","colDbms":"DBMS","noSaved":"Keine gespeicherten Verbindungen","unnamed":"(unbenannt)","pickOnConnect":"(beim Verbinden auswählen)","noFile":"(keine Datei)","selectPrompt":"Wählen Sie eine Verbindung aus oder legen Sie eine neue an","addNew":"Neu hinzufügen","delete":"Löschen","testConnection":"Verbindung testen","connect":"Verbinden","close":"Schließen","unknownError":"Unbekannter Fehler","browserTestHint":"SQLite-Verbindungen im Browser öffnen beim Klick auf „Verbinden“ eine lokale Datei.","testSuccess":"Verbindung erfolgreich","restoredUnsaved":"{{file}}: ungespeicherte Änderungen aus der zwischengespeicherten Kopie wiederhergestellt","restoredUnsavedDiskChanged":"{{file}}: ungespeicherte Änderungen aus der zwischengespeicherten Kopie wiederhergestellt — Hinweis: Die Datei auf dem Datenträger hat sich seitdem geändert","walPending":"{{file}} ist im WAL-Modus: Aktuelle Änderungen befinden sich möglicherweise noch in der -wal-Datei. Verwenden Sie oben „-wal-Datei laden“, um sie einzubeziehen.","walApplied":"{{file}} wurde mit den Änderungen aus der -wal-Datei geöffnet","connectFailedTitle":"Verbindung fehlgeschlagen","testSuccessDescription":"Der Server hat die Zugangsdaten akzeptiert.","testFailedTitle":"Verbindungstest fehlgeschlagen","privacy":"Nichts, was Sie hier eingeben, wird an planche.dev-Server gesendet oder dort gespeichert. Verbindungsprofile liegen ausschließlich im lokalen Speicher dieses Browsers; Abfragen gehen direkt vom lokalen Agenten an Ihre Datenbank.","hostKeyTitle":"Unbekannter SSH-Hostschlüssel","hostKeyDescription":"{{host}}:{{port}} hat einen {{type}}-Schlüssel mit dem Fingerabdruck {{fingerprint}} vorgelegt. Vergleichen Sie ihn mit dem Fingerabdruck Ihres Serveradministrators; ein falscher Schlüssel lässt einen Angreifer Ihren Verkehr mitlesen.","hostKeyAccept":"Diesem Host vertrauen","gatewayTitle":"Gateway-Profile","gatewayAdd":"Hinzufügen","gatewayAdded":"Gateway-Profil {{name}} hinzugefügt.","gatewayReadOnly":"schreibgeschützt","gatewayWritable":"beschreibbar","gatewayProfileHint":"Diese Verbindung nutzt das vom Gateway gehaltene Profil „{{name}}“; hier gibt es nichts einzustellen.","gatewayLoadFailed":"Gateway-Profile konnten nicht geladen werden: {{error}}","export":"Exportieren…","exportWithoutSecrets":"Ohne Passwort","exportWithSecrets":"Mit Passwort und Schlüsseln","import":"Importieren…","exported":"Verbindung „{{name}}“ exportiert.","imported":"Verbindung „{{name}}“ importiert.","importFailedTitle":"Verbindung konnte nicht importiert werden"},"form":{"hostName":"Name","hostNamePlaceholder":"Meine Verbindung","dataSource":"Datenquelle","openVia":"Öffnen über","viaBrowser":"Browser (lokale Datei)","viaAgent":"Lokaler Agent","viaBrowserHint":"Keine Installation nötig. Am besten für Dateien, die kein anderes Programm verwendet: Der Browser arbeitet auf einer Kopie im Arbeitsspeicher und kann die Datei nicht sperren. Änderungen, die währenddessen anderswo vorgenommen werden, bleiben unsichtbar und werden beim Speichern überschrieben.","viaAgentHint":"Öffnet die Datei mit SQLite selbst über npx planche — mit korrektem Locking und WAL, sicher neben anderen Programmen, die dieselbe Datenbank verwenden.","databaseFile":"Datenbankdatei","changeFile":"Datei ändern","filePickerHint":"Beim Klick auf „Verbinden“ öffnet sich eine Dateiauswahl (Tipp: ⌘⇧. zeigt versteckte Dateien, mit ⌘⇧G können Sie einen Pfad eingeben).","fileRememberedHint":"Die gewählte Datei wird gemerkt (Chromium), sodass beim erneuten Verbinden nur die Berechtigung abgefragt wird. Verwenden Sie Verbindung > Datenbankdatei speichern, um Änderungen zurückzuschreiben.","authToken":"Auth-Token","authTokenPlaceholder":"Leer lassen, um das Token des gekoppelten Agents zu verwenden","filePathPlaceholder":"/pfad/zur/datenbank.sqlite oder :memory:","createIfMissing":"Erstellen, falls nicht vorhanden","createIfMissingHint":"Der Pfad wird auf dem Host des Tunneling-Servers aufgelöst","host":"Host","port":"Port","database":"Datenbank","serviceName":"Dienstname","user":"Benutzer","password":"Passwort","savePassword":"Passwort speichern","savePasswordHint":"Aus: Das Passwort wird nur für diese Browsersitzung behalten und nie auf den Datenträger geschrieben.","charset":"Zeichensatz","autoConnection":"Automatisch verbinden","safety":"Sicherheit","environment":"Umgebung","environmentHint":"färbt Tab und Arbeitsbereich ein","readOnly":"Schreibgeschützt","readOnlyHint":"Anweisungen ablehnen, die Daten oder Schema ändern","transactions":"Transaktionen","txAuto":"Auto-Commit","txManual":"Manuell — Commit / Rollback über die Symbolleiste","ssh":"SSH","sshTunnel":"SSH-Tunnel","sshTunnelHint":"Datenbank über einen SSH-Sprunghost erreichen (der lokale Agent öffnet den Tunnel)","sshHost":"SSH-Host","sshPort":"SSH-Port","sshUser":"SSH-Benutzer","sshAuth":"SSH-Auth","sshAuthKey":"Privater Schlüssel","sshAuthPassword":"Passwort","sshAuthAgent":"ssh-agent","sshAuthAgentHint":"Verwendet die im ssh-agent des Rechners geladenen Schlüssel, auf dem npx planche läuft (SSH_AUTH_SOCK).","sshPassword":"SSH-Passwort","sshKey":"Privater Schlüssel","sshKeyPick":"Schlüsseldatei wählen…","sshKeyLoaded":"Schlüssel geladen","sshKeyHint":"Leer lassen, um das IdentityFile aus ~/.ssh/config (oder ~/.ssh/id_*) auf dem Rechner des Agents zu verwenden; ein gewählter Schlüssel wird mit diesem Profil gespeichert","sshPassphrase":"Passphrase","sshPassphrasePlaceholder":"Leer lassen, wenn der Schlüssel keine hat","sshSecretsHint":"SSH-Passwort, privater Schlüssel und Passphrase folgen der Einstellung „Passwort speichern“ oben. Unbekannte Hostschlüssel werden vor der ersten Verbindung zur Prüfung angezeigt und in ~/.planche/known_hosts auf dem Rechner des Agenten gespeichert.","sshHostPlaceholder":"bastion.example.com oder ein Host-Alias aus ~/.ssh/config","sshUserPlaceholder":"Leer lassen, um ~/.ssh/config zu verwenden","sshTargetHint":"Datenbank-Host und -Port werden auf dem Sprunghost aufgelöst — die echte Adresse der Datenbank (z. B. den RDS-Endpunkt) angeben, nicht localhost oder eine lokale Portweiterleitung.","connectionString":"Verbindungs-URI","connectionStringApplied":"In die Felder unten übernommen. Die URI selbst wird nicht gespeichert, nur die Felder.","connectionStringInvalid":"Keine PostgreSQL-URI (erwartet postgresql://user:password@host/database).","neonHint":"URI aus der Neon-Konsole (Connect > Connection string) einfügen; die Felder unten werden daraus befüllt.","supabaseHint":"URI aus Supabase (Connect > Session pooler oder Direct connection) einfügen; die Felder unten werden daraus befüllt.","supabasePoolerWarning":"Port 6543 ist der Pooler im Transaktionsmodus: Jede Anweisung kann auf einem anderen Backend laufen, daher funktionieren Schemawechsel, temporäre Tabellen, Prepared Statements und manuelle Transaktionen nicht. Verwenden Sie den Session-Pooler (Port 5432) oder die Direktverbindung.","managedTlsHint":"Dieser Dienst wird immer über TLS erreicht; die Verbindung geht direkt vom lokalen Agenten zum Dienst (kein SSH-Tunnel).","d1AccountId":"Account ID","d1DatabaseId":"Database ID","d1ApiToken":"API-Token","d1Hint":"Account ID: Cloudflare-Dashboard, rechts auf der Kontostartseite. Database ID: Storage & Databases > D1 > Ihre Datenbank. Token: My Profile > API Tokens > Create Token mit der Berechtigung \\"D1 Edit\\" (oder \\"D1 Read\\" für Nur-Lesen). Der lokale Agent ruft damit die Cloudflare-API auf.","d1LimitsHint":"D1 führt jede Anfrage einzeln aus und committet automatisch, daher gibt es keine manuellen Transaktionen; die Datenbank erscheint als einziges Schema \\"main\\".","doDevUrl":"wrangler-dev-URL","doHint":"Starten Sie `wrangler dev` in Ihrem Worker-Projekt und fügen Sie die ausgegebene URL ein (Port 8787, sofern nicht geändert). Der lokale Agent liest die Durable Objects dieser Sitzung — einschließlich weiterer gleichzeitig laufender `wrangler dev`-Sitzungen.","doLimitsHint":"Nur für die lokale Entwicklung: Bereitgestellte Durable Objects sind ausschließlich aus einem Worker erreichbar, Cloudflare bietet keine Abfrage-API dafür. Jedes Objekt erscheint als Datenbank \\"<Namespace>/<Objekt>\\"; jede Anfrage committet automatisch, manuelle Transaktionen sind daher nicht verfügbar.","tls":"TLS","tlsEnable":"Verbindung verschlüsseln","tlsVerify":"Serverzertifikat prüfen","tlsVerifyHint":"Aus: selbstsignierte Zertifikate werden akzeptiert (verschlüsselt, aber der Server ist nicht authentifiziert). Über einen SSH-Tunnel nicht verfügbar.","d1DevUrl":"Lokale Dev-URL","d1DevUrlHint":"Leer lassen, um ein Cloudflare-Konto zu verwenden. Ausgefüllt liest Planche die Datenbank, die `wrangler dev` auf diesem Rechner betreibt – ohne Konto und ohne API-Token, und die Kontofelder unten werden ignoriert. Die Database ID kann leer bleiben, wenn der Dev-Server nur eine bindet.","d1PickDatabase":"Datenbank wählen","searchAuthHint":"Benutzer und Passwort melden sich per Basic Auth an. Lassen Sie den Benutzer leer, um das Passwort als API-Schlüssel (kodiertes id:key) zu senden."},"agent":{"copy":"Kopieren","looking":"Suche nach dem Planche-Agent…","online":"Agent <b>v{{version}}</b> läuft unter <mono>{{url}}</mono>","outdated":"Agent v{{version}} spricht Protokoll {{protocol}}, diese App benötigt jedoch ein neueres. Starten Sie ihn neu mit <cmd/>","unauthorized":"Agent <b>v{{version}}</b> läuft unter <mono>{{url}}</mono>, ist aber nicht mit dieser App gekoppelt (das Token ändert sich bei jedem Start). Öffnen Sie den im Terminal des Agents ausgegebenen Link oder fügen Sie das Token unter „Konfigurieren“ ein.","offline":"Kein Agent unter <mono>{{url}}</mono>. Starten Sie ihn im Terminal – er öffnet diese App bereits gekoppelt.","close":"Schließen","configure":"Konfigurieren","checkAgain":"Erneut prüfen","urlLabel":"Agent-URL","urlPlaceholder":"http://127.0.0.1:8888 (Standard)","tokenLabel":"Token","tokenPlaceholder":"Wird vom Agent ausgegeben","reset":"Zurücksetzen","save":"Speichern","remoteWarning":"Dieser Agent läuft nicht auf Ihrem Rechner ({{host}}): Jede Verbindung schickt ihre Passwörter und SSH-Schlüssel dorthin.","remoteRefusedTitle":"Entfernter Agent nicht erlaubt","remoteRefused":"Der Agent muss auf diesem Rechner laufen (127.0.0.1 oder localhost). Für einen Agenten auf einer anderen Maschine leiten Sie den Port mit `ssh -L 8888:127.0.0.1:8888 user@host` weiter und lassen die URL auf http://127.0.0.1:8888.","gateway":"Gateway „{{name}}“: {{count}} serverseitige Profile. Zugangsdaten bleiben auf dem Gateway; wählen Sie unten ein Profil."},"tab":{"noConnections":"Keine Verbindungen geöffnet. Klicken Sie auf „Verbinden“, um zu beginnen.","theSqliteFile":"die SQLite-Datei","reopened":"{{file}} erneut geöffnet","reopenFailed":"Datei konnte nicht erneut geöffnet werden: {{message}}","reopenPrompt":"Der Browser benötigt erneut Ihre Berechtigung, um <b>{{file}}</b> zu lesen.","reopenFile":"Datei erneut öffnen","closeConnection":"Verbindung schließen","reconnected":"{{file}} erneut verbunden","accessNotGranted":"Dateizugriff wurde nicht gewährt; beim Speichern wird stattdessen ein Download exportiert.","detachedPrompt":"Sie arbeiten auf einer zwischengespeicherten Kopie von <b>{{file}}</b>. Verbinden Sie die Datei erneut, um Änderungen direkt zu speichern.","reconnectFile":"Datei erneut verbinden","detachedHide":"Ausblenden (beim Speichern wird bei Bedarf nach der Datei gefragt)","walFramesApplied_one":"{{count}} WAL-Frame aus {{file}}-wal übernommen","walFramesApplied_other":"{{count}} WAL-Frames aus {{file}}-wal übernommen","walNoChanges":"Die -wal-Datei enthielt keine bestätigten Änderungen","walLoadFailed":"-wal-Datei konnte nicht geladen werden: {{message}}","walPrompt":"<b>{{file}}</b> ist im WAL-Modus: Möglicherweise werden die neuesten Daten erst angezeigt, wenn die Datei <mono>{{file}}-wal</mono> geladen wurde; bis dahin ist das Speichern deaktiviert. Falls keine solche Datei daneben existiert (die Datenbank wurde sauber geschlossen), bestätigen Sie das stattdessen. Falls ein anderes Programm diese Datenbank noch verwendet, öffnen Sie sie stattdessen über den lokalen Agent (<mono>npx planche</mono>): Der Browser kann die Datei nicht sicher gemeinsam nutzen.","loadWal":"-wal-Datei laden","noWalHint":"Ich habe nachgesehen: Es gibt keine -wal-Datei neben der Datenbank","noWal":"Keine -wal-Datei","dismiss":"Schließen","walHide":"Ausblenden (Speichern bleibt deaktiviert)","readOnlyBadge":"schreibgeschützt"}}'),o={connect:`Verbinden (Alt+N)`,disconnect:`Verbindung trennen`,newQueryTab:`Neuer Abfrage-Tab (Alt+T)`,execute:`Ausführen (F9)`,executeStatement:`Anweisung am Cursor / Auswahl ausführen (Ctrl+Enter)`,commit:`Commit`,commitHint:`Offene Transaktion bestätigen (Commit)`,noOpenTransaction:`Keine offene Transaktion`,rollback:`Rollback`,rollbackHint:`Offene Transaktion verwerfen (Rollback)`,readOnlyBadge:`schreibgeschützt`,readOnlyHint:`Diese Verbindung lehnt Anweisungen ab, die Daten oder Schema ändern`,userManager:`Benutzerverwaltung (Alt+U)`,quickCommand:`Schnellbefehl`,processList:`Prozessliste`,variables:`Variablen`,status:`Status`,flush:`Flush`,fullscreen:`Vollbild`},s={readOnly:`schreibgeschützt`,txOpen:`Transaktion offen`,manualTx:`manuelle Transaktionen`},c={title:`Schnellbefehl`,description:`Suchen Sie einen auszuführenden Befehl...`,inputPlaceholder:`Befehl eingeben oder suchen...`,empty:`Keine Befehle gefunden.`,groups:{connection:`Verbindung`,query:`Abfrage`,database:`Datenbank`,table:`Tabelle`,tools:`Werkzeuge`},commands:{connect:`Verbinden`,disconnect:`Verbindung trennen`,executeQuery:`Abfrage ausführen`,newQueryTab:`Neuer Abfrage-Tab`,createDatabase:`Datenbank erstellen`,dropDatabase:`Datenbank löschen`,createTable:`Tabelle erstellen`,alterTable:`Tabelle ändern`,dropTable:`Tabelle löschen`,processList:`Prozessliste`,serverVariables:`Servervariablen`,serverStatus:`Serverstatus`,flush:`Flush`,userManager:`Benutzerverwaltung`}},l={title:`Willkommen bei Planche`,intro:`Ein SQL-Client, der in Ihrem Browser läuft. Ihre Datenbanken werden über einen kleinen Agent auf Ihrem Rechner erreicht, sodass Zugangsdaten und Daten Ihren Computer nie verlassen.`,skip:`Überspringen`,skipTitle:`Diesen Bildschirm ausblenden (Hilfe > Erste Schritte bringt ihn zurück)`,copy:`Kopieren`,copied:`Kopiert`,sampleOpenFailed:`Die Beispieldatenbank konnte nicht geöffnet werden: {{message}}`,steps:{agent:{title:`Lokalen Agent starten`,body:`Führen Sie einen dieser Befehle im Terminal aus. Er startet den Agenten und koppelt ihn mit dieser Seite.`},connection:{title:`Verbindung hinzufügen`,body:`Wählen Sie Ihre Datenbank, um das Verbindungsformular mit passenden Voreinstellungen zu öffnen.`},sample:{title:`Keine Datenbank zur Hand? Probieren Sie das Beispiel`,body:`Laden Sie eine Beispieldatenbank eines Webshops (24 Tabellen, ca. 50.000 Zeilen, Views und Trigger) in den Browser, um Editor, Tabellenansicht und Schemabaum auszuprobieren.`,loading:`Beispiel wird geladen…`,button:`Beispieldatenbank ausprobieren`}},terms:{title:`Bevor Sie beginnen`,local:`Alles läuft lokal: Zugangsdaten, Abfragen und Ergebnisse bleiben auf Ihrem Rechner und werden nie an uns gesendet.`,asIs:`Planche wird ohne Gewährleistung bereitgestellt. Die Schutzmechanismen (Bestätigung destruktiver Befehle, Nur-Lese-Modus) sind Hilfen, keine Garantien.`,dataLoss:`Sie sind für jede über Planche ausgeführte Anweisung verantwortlich. Sichern Sie Ihre Daten, bevor Sie etwas Destruktives ausführen.`,agree:`Ich habe die Nutzungsbedingungen gelesen und stimme ihnen zu.`,accepted:`Sie haben die Nutzungsbedingungen akzeptiert.`,readFull:`Vollständige Bedingungen lesen`}},u={treeLabel:`Schema`,unreachableHint:`Nicht die Datenbank, an die diese Verbindung gebunden ist; legen Sie ein Profil dafür an, um sie zu durchsuchen`,objectType:{table:`Tabelle`,view:`View`,procedure:`Prozedur`,function:`Funktion`,trigger:`Trigger`,event:`Event`},menu:{showCreate:`CREATE-Anweisung anzeigen ({{type}})`,alter:`{{type}} ändern`,drop:`{{type}} löschen`,create:`{{type}} erstellen`,refresh:`Aktualisieren`,unreachable:`Verbinden Sie sich mit einem an diese Datenbank gebundenen Profil, um sie zu durchsuchen`,openDatabase:`Datenbank öffnen`,createSchema:`Schema erstellen…`,createTable:`Tabelle erstellen`,dropDatabase:`Datenbank löschen`,openSchema:`Schema öffnen`,dropSchema:`Schema löschen`,newQueryTab:`Neuer Abfrage-Tab`,generateSql:`SQL erzeugen`,openTable:`Tabelle öffnen`,alterTable:`Tabelle ändern`,showCreateTable:`CREATE TABLE anzeigen`,duplicateStructure:`Struktur duplizieren`,copyTable:`Tabelle kopieren nach…`,compare:`{{type}} vergleichen…`,truncateTable:`Tabelle leeren`,dropTable:`Tabelle löschen`,exportCsv:`Als CSV exportieren`,exportTsv:`Als TSV exportieren…`,openView:`View öffnen`,alterView:`View ändern`,showCreateView:`CREATE VIEW anzeigen`,dropView:`View löschen`,compareData:`Daten vergleichen…`,groupBy:`Gruppieren und zählen…`,copyKey:`Schlüsselnamen kopieren`,openKey:`Öffnen`,copyName:`Namen kopieren`},actions:{createStatementUnavailable:`-- CREATE-Anweisung für {{type}} {{name}} konnte nicht abgerufen werden`,getCreateFailed:`CREATE {{type}} konnte nicht abgerufen werden: {{message}}`,createTabTitle:`{{type}} erstellen`,createSchemaTabTitle:`Schema erstellen`,generateSqlFailed:`SQL konnte nicht erzeugt werden: {{message}}`,dropTableTitle:`Tabelle „{{name}}“ löschen?`,dropTableDescription:`Dies löscht die Tabelle und alle darin enthaltenen Zeilen dauerhaft{{from}}. Dies kann nicht rückgängig gemacht werden.`,dropTableConfirm:`Tabelle löschen`,dropObjectTitle:`{{type}} „{{name}}“ löschen?`,dropObjectDescription:`Die Definition von {{type}} wird entfernt{{from}}. Dies kann nicht rückgängig gemacht werden.`,dropObjectConfirm:`{{type}} löschen`,fromDatabase:` aus der Datenbank „{{database}}“`,dropped:`{{type}} {{name}} gelöscht`,dropFailed:`{{type}} konnte nicht gelöscht werden`,dropDatabaseTitle:`Datenbank „{{name}}“ löschen?`,dropDatabaseDescription:`Dies löscht die Datenbank mit allen Tabellen und Daten dauerhaft. Dies kann nicht rückgängig gemacht werden.`,dropDatabaseConfirm:`Datenbank löschen`,droppedDatabase:`Datenbank {{name}} gelöscht`,dropDatabaseFailed:`Datenbank konnte nicht gelöscht werden`,dropSchemaTitle:`Schema „{{name}}“ löschen?`,dropSchemaDescription:`Dies löscht das Schema mit allen Tabellen und Daten dauerhaft. Dies kann nicht rückgängig gemacht werden.`,dropSchemaConfirm:`Schema löschen`,droppedSchema:`Schema {{name}} gelöscht`,dropSchemaFailed:`Schema konnte nicht gelöscht werden`,truncateTitle:`Tabelle „{{name}}“ leeren?`,truncateDescription:`Alle Zeilen in „{{name}}“ werden gelöscht. Die Tabellenstruktur bleibt erhalten. Dies kann nicht rückgängig gemacht werden.`,truncateConfirm:`Tabelle leeren`,truncated:`{{name}} geleert`,truncateFailed:`Leeren fehlgeschlagen`},tree:{loadDatabasesFailed:`Datenbanken konnten nicht geladen werden: {{message}}`},root:{newQuery:`Neuer Abfrage-Tab`,newConsole:`Neuer Konsolen-Tab`,createIndex:`Index anlegen…`,clusterHealth:`Cluster-Zustand`,nodes:`Knoten`,shards:`Shards`,templates:`Index-Vorlagen`},topology:{cluster:`Dieses Redis ist ein Knoten eines Clusters: Planche zeigt nur die Schlüssel dieses Knotens und folgt Cluster-Weiterleitungen noch nicht.`}},d={editor:{destructiveMarker:`Destruktiv: {{what}}`,readOnlyMarker:`Die Verbindung ist schreibgeschützt; diese Anweisung ändert Daten oder Schema`,actionExecute:`Ausführen (gemäß Einstellungen)`,actionExecuteStatement:`Anweisung am Cursor / Auswahl ausführen`,actionExecuteScript:`Gesamtes Skript ausführen`,actionExplainPlan:`Ausführungsplan anzeigen`,actionQueryStructure:`Abfragestruktur`},tabs:{newQuery:`Neue Abfrage`,queryTitle:`Abfrage {{n}}`,erdViewer:`ERD-Viewer`,close:`Schließen`,closeOthers:`Andere schließen`,closeLeft:`Tabs links schließen`,closeRight:`Tabs rechts schließen`,closeAll:`Alle schließen`},executor:{noActiveConnection:`Keine aktive Verbindung`,uncommittedTitle:`Nicht bestätigte Transaktion`,uncommittedDescription:`Diese Verbindung hat eine offene Transaktion. Beim Trennen werden ihre Änderungen zurückgerollt.`,uncommittedConfirm:`Rollback und trennen`,unsavedTitle:`Ungespeicherte Änderungen`,unsavedDescription:`{{file}} enthält Änderungen, die nicht in die Datei gespeichert wurden. Beim Trennen gehen sie verloren (verwenden Sie zuerst Verbindung > Datenbankdatei speichern, um sie zu behalten).`,theSqliteDatabase:`Die SQLite-Datenbank`,unsavedConfirm:`Verwerfen und trennen`}},f=JSON.parse('{"tabs":{"message":"Meldung","info":"Info","history":"Verlauf","result":"Ergebnis","resultN":"Ergebnis {{n}}","plan":"Plan","structure":"Struktur","structureN":"Struktur {{n}}"},"message":{"executing":"Abfrage wird ausgeführt...","error":"Fehler: {{message}}","total":" (Gesamt: {{ms}} ms)","ready":"Bereit.","log":"Ausführungsprotokoll","statementN":"Anweisung {{n}}","limitedBadge":"Limit erreicht","insertId":"Insert-ID {{id}}","failed":"Fehlgeschlagen","failedStatement":"Fehlgeschlagene Anweisung","summary":"{{ok}} erfolgreich · {{failed}} fehlgeschlagen · {{ms}} gesamt","copy":"Kopieren","copied":"Kopiert","showSql":"SQL anzeigen","hideSql":"SQL ausblenden"},"hints":{"title":"Hinweis","unknownColumn":"Keine Spalte namens {{name}}. Meinten Sie {{suggestions}}?","unknownTable":"Keine Tabelle namens {{name}}. Meinten Sie {{suggestions}}?","syntaxSwap":"{{engine}} schreibt {{expected}} statt {{found}}.","doubleQuotedLiteral":"{{engine}} liest \\"{{value}}\\" als Spaltennamen, nicht als Text. Für eine Zeichenkette \'{{value}}\' schreiben."},"ai":{"title":"KI-Erklärung","explain":"Mit KI erklären","thinking":"Fehler wird gelesen…","by":"von {{model}}","applyFix":"Korrektur in neuem Tab öffnen","failed":"Konnte nicht erklärt werden: {{message}}","noFailure":"Es gibt keine fehlgeschlagene Anweisung zu erklären.","noPack":"Der Prompt konnte nicht von planche.dev geladen werden.","badShape":"Das Modell hat nicht im erwarteten Format geantwortet.","noPlan":"Es gibt noch keinen Plan zu erklären.","explainPlan":"Diesen Plan erklären"},"info":{"empty":"Keine Abfrageinformationen verfügbar.","resultN":"Ergebnis {{n}}","metadata":"Abfrage-Metadaten","executionTime":"Ausführungszeit","notAvailable":"k. A.","affectedRows":"Betroffene Zeilen","fields":"Felder","fieldDetails":"Felddetails","colName":"Name","colType":"Typ","colTable":"Tabelle","resultSets":"Ergebnismengen","rowsReturned":"Zurückgegebene Zeilen","insertId":"Letzte Insert-ID","lastQuery":"Zuletzt ausgeführte Anweisung","copy":"Kopieren","copied":"Kopiert","colOrigin":"Ursprung","primaryKey":"Primärschlüssel","rowsAndFields":"{{rows}} Zeilen × {{fields}} Felder","noFields":"Diese Anweisung hat keine Spalten zurückgegeben."},"rowForm":{"colColumn":"Spalte","colValue":"Wert","insertTitle":"Zeile einfügen","editTitle":"Zeile bearbeiten","loading":"Spalten werden geladen...","preview":"Anweisung","nothingToWrite":"Nichts zu schreiben","insert":"Einfügen","update":"Aktualisieren","stageInsert":"Als ausstehende Zeile hinzufügen","stageEdit":"In Raster übernehmen","stageHint":"Werte nur ins Raster stellen, ohne etwas auszuführen; später mit den anderen Änderungen committen.","inserted":"Zeile in {{table}} eingefügt","updated":"Zeile in {{table}} aktualisiert","confirmInsertTitle":"Zeile in {{table}} einfügen?","confirmUpdateTitle":"Zeile in {{table}} aktualisieren?","inTransaction":"Läuft in der offenen Transaktion","pickDate":"Datum wählen","now":"Jetzt","formatJson":"Formatieren","binaryUnsupported":"Binärspalten können hier nicht bearbeitet werden; NULL/DEFAULT lassen oder per SQL setzen.","generateUuid":"UUID erzeugen","defaultValue":"Standardwert","clickToChange":"Zum Ändern klicken","empty":"(leer)","autoHint":"Vom Server erzeugt","mode":{"keep":"Behalten","auto":"Auto","value":"Wert"},"invalid":{"integer":"Ganze Zahl eingeben","unsigned":"Diese Spalte akzeptiert keine negativen Zahlen","number":"Zahl eingeben","json":"Ungültiges JSON","date":"Format YYYY-MM-DD verwenden","datetime":"Format YYYY-MM-DD HH:MM:SS verwenden","time":"Format HH:MM:SS verwenden","length":"Höchstens {{max}} Zeichen"}},"history":{"copied":"In die Zwischenablage kopiert","searchPlaceholder":"Verlauf durchsuchen...","all":"Alle","success":"Erfolgreich","failed":"Fehlgeschlagen","thisTab":"Nur dieser Tab","noMatch":"Keine passenden Einträge.","count":"{{count}} Einträge","clear":"Leeren","clearTitle":"Abfrageverlauf leeren?","clearDescription":"Alle {{count}} Einträge dieser Verbindung werden entfernt. Dies kann nicht rückgängig gemacht werden.","clearConfirm":"Verlauf leeren","insert":"In Editor einfügen","inserted":"In den Editor eingefügt","copy":"Kopieren","rows":"{{count}} Zeilen","affected":"{{count}} betroffen","today":"Heute","yesterday":"Gestern","empty":"Kein Abfrageverlauf."},"json":{"arrayLength":"Array[{{count}}]","keys_one":"{{count}} Schlüssel","keys_other":"{{count}} Schlüssel","invalid":"Ungültiges JSON","clickToView":"Klicken, um JSON anzuzeigen","expandAll":"Alle aufklappen","collapseAll":"Alle einklappen","edit":"Bearbeiten","view":"Anzeigen","copied":"Kopiert","copy":"Kopieren","shortcutHint":"{{mod}}+Enter zum Speichern · Esc zum Abbrechen","cancel":"Abbrechen","save":"Speichern"},"text":{"clickToView":"Klicken, um Text anzuzeigen","size":"{{chars}} Zeichen · {{lines}} Zeilen","wrap":"Umbruch","preview":"Vorschau","source":"Quelltext"},"grid":{"readOnlyConnection":"Schreibgeschützte Verbindung","readOnlyWal":"Schreibgeschützt: -wal-Datei nicht geladen","readOnlyNoPk":"Schreibgeschützt: Tabelle hat keinen Primärschlüssel","commitTitle":"{{count}} Änderung(en) an {{table}} übernehmen?","commitDescription":"Die folgenden Anweisungen werden ausgeführt.","commitConfirm":"Übernehmen","rowPrefix":"Zeile {{row}}:","cancelled":"abgebrochen","commitFailed":"Übernehmen fehlgeschlagen: {{message}}","executedInTransaction":"{{count}} Änderung(en) innerhalb der offenen Transaktion ausgeführt — klicken Sie in der Symbolleiste auf „Commit“, um sie dauerhaft zu machen (Neuladen rollt sie zurück)","committed":"{{count}} Änderung(en) an {{table}} übernommen","noData":"Keine Daten zum Anzeigen.","commit":"Übernehmen","discard":"Verwerfen","addRow":"Zeile hinzufügen","removeNewRow":"Diese neue Zeile verwerfen","addRowForm":"Per Formular hinzufügen","addRowFormHint":"Formular mit einem Feld je Spalte öffnen (als INSERT committet)","editRowForm":"Diese Zeile im Formular bearbeiten","addRowHint":"Neue Zeile hinzufügen (wird als INSERT übernommen)","delete":"Löschen","deleteCount":"Löschen ({{count}})","deleteHint":"Ausgewählte Zeilen löschen (wird als DELETE übernommen). Wählen Sie Zeilen über die Zeilennummern-Spalte aus.","field":"Feld","searchPlaceholder":"Suchen...","orderBy":"Sortieren nach","none":"Keine","refresh":"Aktualisieren","dismiss":"Schließen","clearSelection":"Auswahl aufheben","columns":"Spalten","showAllColumns":"Alle anzeigen","hideAllColumns":"Alle ausblenden","resetWidths":"Breiten zurücksetzen","selectAll":"Alle Zeilen auswählen","emptyTable":"Diese Tabelle enthält keine Zeilen.","noRows":"Keine Zeilen zurückgegeben.","addARow":"Zeile hinzufügen","markedForDeletion":"Zum Löschen markiert — klicken, um wiederherzustellen","newRow":"Neue Zeile","clickToSelect":"Klicken zum Auswählen; Shift/Ctrl für Mehrfachauswahl","rows":"Zeilen: {{count}}","rowsWithNew":"Zeilen: {{count}} (+{{added}})","sortedBy":"Sortiert nach: {{column}} {{direction}}","pageRange":"Zeilen {{from}}–{{to}}","firstPage":"Erste Seite","prevPage":"Vorherige Seite","nextPage":"Nächste Seite","lastPage":"Letzte Seite","pagingBlocked":"Änderungen vor dem Seitenwechsel übernehmen oder verwerfen","selected":"{{count}} ausgewählt","cellsModified":"{{count}} Zelle(n) geändert","newCount":"{{count}} neu","toDelete":"{{count}} zu löschen","searchMode":"Vergleichsart","contains":"enthält","equals":"gleich","followLink":"{{table}} öffnen, wo {{column}} = Wert","linkColumn":"„{{column}}“ mit anderer Tabelle verknüpfen…","editLink":"Verknüpfung von „{{column}}“ bearbeiten…","removeLink":"Verknüpfung entfernen","copyValue":"Wert kopieren","filterByValue":"Filter: {{column}} = dieser Wert","clearFilter":"Filter aufheben","copyColumnName":"Spaltennamen kopieren","editCell":"Zelle bearbeiten","setNull":"Auf NULL setzen","setEmpty":"Auf leeren String setzen","restoreRow":"Zeile wiederherstellen","hideColumn":"Spalte „{{column}}“ ausblenden","copyRowsTsv_one":"Zeile als TSV kopieren (mit Kopfzeile)","copyRowsTsv_other":"{{count}} Zeilen als TSV kopieren (mit Kopfzeile)","copyRowsCsv_one":"Zeile als CSV kopieren","copyRowsCsv_other":"{{count}} Zeilen als CSV kopieren","copyRowsJson_one":"Zeile als JSON kopieren","copyRowsJson_other":"{{count}} Zeilen als JSON kopieren","copyRowsInsert_one":"Zeile als INSERT kopieren","copyRowsInsert_other":"{{count}} Zeilen als INSERT kopieren","deleteRowsPending_one":"Zeile löschen (bis Commit ausstehend)","deleteRowsPending_other":"{{count}} Zeilen löschen (bis Commit ausstehend)","sendRowsToScratchpad_one":"Zeile ins Scratchpad senden","sendRowsToScratchpad_other":"{{count}} Zeilen ins Scratchpad senden","sendAllToScratchpad":"Alle {{count}} geladenen Zeilen ins Scratchpad senden","sentToScratchpad":"{{count}} Zeilen in die Scratchpad-Tabelle {{table}} kopiert.","changesSince":"Seit letztem Laden: {{changed}} geändert · {{added}} neu · {{gone}} weg","changesToggle":"Hervorhebung der Änderungen seit dem letzten Laden umschalten","changesDismiss":"Diese Änderungen verwerfen","previousValue":"Vorheriger Wert: {{value}}","groupByValue":"Nach {{column}} gruppieren und zählen","openItem":"{{name}} öffnen"},"link":{"title":"Spalte mit anderer Tabelle verknüpfen","source":"Spalte","hint":"Die Werte dieser Spalte werden zu Links: Ein Klick öffnet die Zieltabelle gefiltert auf die passenden Zeilen. Echte Fremdschlüssel werden automatisch verknüpft.","targetDatabase":"Zieldatenbank","targetTable":"Zieltabelle","targetColumn":"Zielspalte","pickTable":"Tabelle wählen","pickColumn":"Spalte wählen","remove":"Verknüpfung entfernen","cancel":"Abbrechen","save":"Verknüpfung speichern","targetConnection":"Zielverbindung","targetNotConnected":"Die verknüpfte Verbindung ist nicht geöffnet. Bitte zuerst verbinden."},"running":{"label":"Abfrage läuft…","elapsed":"{{seconds}}s","stop":"Stoppen","stopping":"Wird gestoppt…","cannotCancel":"Diese Engine kann eine laufende Anweisung nicht abbrechen.","agentOutdated":"Der lokale Agent ist zu alt, um eine Abfrage zu stoppen. Aktualisieren Sie ihn mit `npx planche@latest` (oder `planche upgrade`) und verbinden Sie sich neu.","cancelFailed":"Der Agent war nicht erreichbar, die Abfrage wurde nicht gestoppt.","abandoned":"Das Warten auf die Anfrage wurde beendet. Diese Engine hat kein eigenes Abbrechen, die Abfrage kann serverseitig zu Ende laufen."},"plan":{"empty":"Führen Sie „Ausführungsplan anzeigen“ (Strg+Umschalt+E) aus, um zu sehen, wie die Engine die Anweisung am Cursor abarbeitet.","unreadable":"Der Plan ließ sich nicht als Baum lesen; die Ausgabe der Engine wird unverändert angezeigt.","estimated":"Geschätzt","analyzed":"Gemessen","estimatedHint":"Schätzungen des Optimierers. Die Anweisung wurde nicht ausgeführt.","analyzedHint":"Die Anweisung wurde ausgeführt; Zeilenzahlen und Zeiten sind echt.","totalCost":"Höchste Knotenkosten","totalTime":"Langsamster Knoten","rows":"Geschätzte Zeilen","actualRows":"Tatsächliche Zeilen","cost":"Kosten","time":"Zeit","showRaw":"Rohausgabe","showTree":"Planbaum","selectNode":"Wählen Sie einen Knoten, um zu sehen, was die Engine dazu gemeldet hat.","noDetails":"Die Engine hat zu diesem Knoten nichts weiter gemeldet.","warnings":{"fullScan":"Full Scan","noIndex":"Kein Index","estimateOff":"Schätzung daneben","temporary":"Temp-Tabelle","filesort":"Sortierung"},"hints":{"fullScan":"Jede Zeile der Tabelle wird gelesen. Ein Index auf den gefilterten Spalten würde das vermeiden.","noIndex":"Die Engine fand keinen verwendbaren Index für diesen Zugriff.","estimateOff":"Der Optimierer erwartete eine ganz andere Zeilenzahl. Aktualisierte Tabellenstatistiken beheben das oft.","temporary":"Zeilen werden vor dem nächsten Schritt in einer temporären Tabelle materialisiert.","filesort":"Sortierung außerhalb eines Index. Ein zum ORDER BY passender Index macht sie überflüssig."}},"structure":{"empty":"Abfragestruktur anzeigen (Strg+Umschalt+G) zeigt, woher die Zeilen der Anweisung am Cursor stammen.","notQuery":"Nur SELECT-Anweisungen haben ein Strukturdiagramm.","unsupported":"{{engine}}-Anweisungen lassen sich nicht als Strukturdiagramm lesen.","parseError":"Die Anweisung konnte nicht geparst werden: {{message}}","columns_one":"{{count}} Spalte","columns_other":"{{count}} Spalten","columnsUnknown":"Breite unbekannt","fit":"Einpassen","reveal":"Im Editor auswählen","notDrawn":"Nicht gezeichnet: {{what}}","kindTable":"TABELLE","kindCte":"CTE","kindCteRef":"REF","kindDerived":"UNTERABFRAGE","kindScalar":"SKALAR","kindSetop":"MENGE","kindResult":"ERGEBNIS","fullscreen":"Vollbild","exitFullscreen":"Vollbild beenden"},"viewer":{"fullscreen":"Vollbild","exitFullscreen":"Vollbild beenden","textTitle":"Textwert"},"reply":{"table":"Tabelle"}}'),p={defaultDescription:`Diese Aktion kann nicht rückgängig gemacht werden.`,typeToConfirm:`Geben Sie <name/> zur Bestätigung ein`,cancel:`Abbrechen`,confirm:`Bestätigen`,ok:`OK`},m={dialog:{createTitle:`Tabelle erstellen`,alterTitle:`Tabelle ändern`,duplicateTitle:`Tabellenstruktur duplizieren`,create:`Erstellen`,alter:`Ändern`,cancel:`Abbrechen`,tableName:`Tabellenname`,tableNamePlaceholder:`Tabellennamen eingeben...`,loading:`Tabellenschema wird geladen...`,tabSchema:`Schema`,tabIndexes:`Indizes`,tabProperties:`Eigenschaften`,applying:`Wird angewendet…`,cannotAlterColumns:`{{engine}} kann eine bereits vorhandene Spalte nicht ändern ({{columns}}). Spalten hinzufügen, entfernen und umbenennen sowie Indizes ändern funktionieren; für eine geänderte Spaltendefinition muss die Tabelle neu erstellt werden.`},schema:{colField:`Feldname`,colType:`Datentyp`,colLength:`Länge`,colDefault:`Standard`,colPk:`PK`,colNotNull:`Not Null`,colUnsigned:`Unsigned`,colAutoIncrement:`Auto Incr`,colZerofill:`Zerofill`,colComment:`Kommentar`,empty:`Keine Spalten definiert. Klicken Sie auf „Spalte hinzufügen“, um eine anzulegen.`,add:`Spalte hinzufügen`,remove:`Spalte entfernen`},indexes:{colName:`Indexname`,colType:`Indextyp`,colColumns:`Spalten`,empty:`Keine Indizes definiert. Klicken Sie auf „Index hinzufügen“, um einen anzulegen.`,add:`Index hinzufügen`,remove:`Index entfernen`},index:{addTitle:`Index hinzufügen`,editTitle:`Index bearbeiten`,name:`Indexname`,namePlaceholder:`Indexnamen eingeben`,type:`Indextyp`,columns:`Spalten`,noColumns:`Keine Spalten verfügbar. Definieren Sie zuerst Spalten im Tab „Schema“.`,unnamed:`(unbenannt)`,cancel:`Abbrechen`,ok:`OK`},properties:{engine:`Engine`,charset:`Zeichensatz`,collation:`Kollation`,autoIncrement:`Auto Increment`,autoIncrementPlaceholder:`Standard`,comment:`Kommentar`},info:{engine:`Engine`,version:`Version`,rowFormat:`Zeilenformat`,rows:`Zeilen`,avgRowLength:`Ø Zeilenlänge`,dataLength:`Datengröße`,createTime:`Erstellt am`,updateTime:`Aktualisiert am`,collation:`Kollation`,comment:`Kommentar`},copy:{title:`Tabelle kopieren`,source:`Quelle`,targetConnection:`Zielverbindung`,targetDatabase:`Zieldatenbank`,targetTable:`Name der Zieltabelle`,what:`Kopieren`,structureAndData:`Struktur & Daten`,structureOnly:`Nur Struktur`,ifExists:`Wenn die Zieltabelle existiert`,abort:`Abbrechen (Standard)`,dropAndRecreate:`Löschen und neu anlegen (Name muss erneut eingegeben werden)`,preview:`CREATE TABLE auf dem Ziel (bearbeitbar)`,crossEngineHint:`Das Ziel ist {{engine}}: Typen unten prüfen, MySQL-spezifische Attribute wurden entfernt.`,readOnly:`schreibgeschützt`,loading:`Lädt…`,progressCreate:`Tabelle wird angelegt…`,progressCount:`Zeilen werden gezählt…`,progressRows:`{{copied}} von {{total}} Zeilen kopiert`,progressDone:`Fertig`,doneTitle:`Tabelle kopiert`,doneRows:`{{count}} Zeilen nach {{table}} kopiert.`,doneStructure:`Struktur von {{table}} angelegt.`,noColumns:`Die Quelltabelle hat keine Spalten.`,exists:`Die Tabelle {{table}} existiert im Ziel bereits. Anderen Namen wählen oder „Löschen und neu anlegen“.`,dropTitle:`Vorhandene Tabelle {{table}} löschen?`,dropDescription:`Die Zieltabelle und alle ihre Zeilen werden vor dem Kopieren gelöscht. Das lässt sich nicht rückgängig machen.`,dropConfirm:`Löschen und kopieren`,cancelled:`Kopieren abgebrochen.`,stop:`Stopp`,cancel:`Abbrechen`,copy:`Kopieren`}},h={copy:{title:`Datenbank kopieren`,source:`Quelldatenbank`,target:`Name der Zieldatenbank`,targetPlaceholder:`Namen der Zieldatenbank eingeben`,options:`Optionen`,structureAndData:`Struktur und Daten`,structureOnly:`Nur Struktur`,cancel:`Abbrechen`,copy:`Kopieren`,creating:`{{database}} wird erstellt…`,copying:`{{table}} wird kopiert ({{index}} von {{total}})…`},diff:{title:`Schemas vergleichen`,source:`Quelle`,target:`Ziel`,pickConnection:`Verbindung`,pickDatabase:`Datenbank`,crossEngineHint:`Unterschiedliche Engines: Typnamen unterscheiden sich je Dialekt, daher zeigen die meisten Spalten eine Typänderung.`,sameSide:`Quelle und Ziel sind dieselbe Datenbank.`,summary:`{{changed}} geändert, {{missingTarget}} fehlen im Ziel, {{missingSource}} nur im Ziel, {{identical}} identisch`,showIdentical:`Identische Tabellen anzeigen`,identicalAll:`Die Tabellen sind identisch.`,column:`Spalte`,index:`Index`,object:`Objekt`,selectTable:`Tabelle auswählen, um Unterschiede zu sehen.`,missingInTarget:`{{table}} existiert im Ziel nicht; das Skript legt sie an.`,missingInSource:`{{table}} existiert nur im Ziel; das Skript löscht sie (auskommentiert, sofern DROPs nicht eingeschlossen sind).`,includeDrops:`DROP-Anweisungen als ausführbares SQL einschließen (Standard: auskommentiert)`,tabTitle:`Sync {{database}}`,close:`Schließen`,compare:`Vergleichen`,comparing:`Vergleicht…`,openScript:`Skript im Editor öffnen`,noDefinition:`Keine CREATE-Anweisung verfügbar`},create:{title:`Datenbank erstellen`,name:`Datenbankname`,namePlaceholder:`Datenbanknamen eingeben`,charset:`Zeichensatz`,collation:`Kollation`,cancel:`Abbrechen`,create:`Erstellen`},csv:{title:`Als {{format}} herunterladen`,target:`Ziel`,targetQueryResult:`Aktuelles Abfrageergebnis`,targetTableData:`Tabellendaten`,tableName:`Tabellenname`,tableNamePlaceholder:`Tabellennamen eingeben`,delimiter:`Trennzeichen`,delimiterComma:`Komma (,)`,delimiterTab:`Tabulator (\\t)`,delimiterSemicolon:`Semikolon (;)`,delimiterPipe:`Pipe (|)`,includeHeaders:`Kopfzeile einschließen`,cancel:`Abbrechen`,download:`Herunterladen`,downloading:`Wird heruntergeladen...`,progress:`{{loaded}} von {{total}} Zeilen geschrieben`,progressUnknown:`{{loaded}} Zeilen geschrieben`,stop:`Stopp`,done:`{{count}} Zeilen aus {{table}} als {{format}} exportiert.`,database:`Datenbank`,databasePlaceholder:`Datenbank wählen`},html:{title:`Schema als HTML`,database:`Datenbank`,selectDatabase:`Datenbank auswählen`,tables:`Einzuschließende Tabellen`,selectAll:`Alle auswählen`,deselectAll:`Auswahl aufheben`,noTables:`Keine Tabellen verfügbar.`,include:`Einschließen`,includeColumns:`Spalten`,includeIndexes:`Indizes`,includeProperties:`Eigenschaften`,cancel:`Abbrechen`,generate:`Generieren`,generating:`Wird generiert...`,sectionColumns:`Spalten`,sectionIndexes:`Indizes`,sectionProperties:`Eigenschaften`,docTitle:`Schema: {{database}}`,heading:`Datenbank: {{database}}`,summary:`Tabellen: {{count}} | Generiert: {{date}}`,footer:`Generiert von Planche 2026`},dataDiff:{title:`Daten vergleichen`,pickTable:`Tabelle`,hint:`Zeilen werden über den Primärschlüssel der Quelltabelle zugeordnet und als Text verglichen. Pro Seite werden bis zu {{cap}} Zeilen geladen; große Tabellen vorher per Filter eingrenzen.`,sameSide:`Quelle und Ziel sind dieselbe Tabelle.`,noPrimaryKey:`{{table}} hat keinen Primärschlüssel; ohne ihn lassen sich Zeilen nicht zuordnen.`,keyMissingInTarget:`Der Zieltabelle fehlen die Schlüsselspalten: {{columns}}`,summary:`Schlüssel: {{key}} – {{added}} fehlen im Ziel, {{changed}} unterschiedlich, {{removed}} nur im Ziel, {{identical}} identisch`,capped:`Nur die ersten {{cap}} Zeilen jeder Seite wurden verglichen.`,ignoredColumns:`Ignorierte Spalten (nur auf einer Seite): {{columns}}`,added_one:`{{count}} fehlt im Ziel`,added_other:`{{count}} fehlen im Ziel`,changed_one:`{{count}} unterschiedlich`,changed_other:`{{count}} unterschiedlich`,removed_one:`{{count}} nur im Ziel`,removed_other:`{{count}} nur im Ziel`,none:`Nichts in dieser Gruppe.`,more:`… {{count}} weitere nicht aufgeführt`,includeDeletes:`DELETE-Anweisungen als ausführbares SQL einschließen (Standard: auskommentiert)`,tabTitle:`Daten-Sync {{table}}`,loading:`Zeilen werden geladen – Quelle: {{source}}, Ziel: {{target}}`},schema:{createTitle:`Schema erstellen`,name:`Schemaname`,namePlaceholder:`Schemanamen eingeben`,create:`Erstellen`,cancel:`Abbrechen`},groupBy:{title:`Gruppieren und zählen`,description:`Zeilen von {{table}} nach den gewählten Spalten zählen.`,columns:`Gruppieren nach`,aggregate:`Zusätzliche Aggregation`,countOnly:`Nur Anzahl`,column:`Spalte`,minCount:`Mindestzeilen pro Gruppe`,useFilter:`Aktuellen Filter des Rasters anwenden`,noIndexWarning:`Keine der gewählten Spalten führt einen Index an, daher muss die Datenbank die ganze Tabelle lesen und sortieren. Bei großen Tabellen kann das dauern.`,preview:`Abfrage`,pickColumn:`Wählen Sie mindestens eine Spalte zum Gruppieren.`,openInTab:`In neuem Tab öffnen`,run:`Ausführen`,tabTitle:`{{table}} gruppieren`,indexed:`Führt einen Index an`,connection:`Verbindung`,database:`Datenbank`,table:`Tabelle`}},g={manager:{title:`Benutzerverwaltung`,addUser:`Benutzer hinzufügen`,removeUser:`Benutzer entfernen`,noUsers:`Keine Benutzer geladen`,grantScope:`Berechtigungsbereich`,apply:`Anwenden`,close:`Schließen`,removed:`Benutzer '{{user}}'@'{{host}}' entfernt`,selectUserFirst:`Bitte wählen Sie zuerst einen Benutzer aus`,applied:`Änderungen erfolgreich angewendet`,noChanges:`Keine Rechteänderungen zum Anwenden.`},add:{title:`Benutzer hinzufügen`,username:`Benutzername`,usernamePlaceholder:`Benutzernamen eingeben`,host:`Host`,password:`Passwort`,passwordPlaceholder:`Passwort eingeben`,confirmPassword:`Passwort bestätigen`,confirmPasswordPlaceholder:`Passwort bestätigen`,plugin:`Plugin`,cancel:`Abbrechen`,add:`Hinzufügen`,usernameRequired:`Benutzername ist erforderlich`,passwordMismatch:`Die Passwörter stimmen nicht überein`,added:`Benutzer '{{user}}'@'{{host}}' hinzugefügt`},privileges:{globalTitle:`Globale Berechtigungen`,databaseTitle:`Datenbankberechtigungen`,tableTitle:`Tabellenberechtigungen`,checkAll:`Alle auswählen`,uncheckAll:`Alle abwählen`,categoryData:`Daten`,categoryStructure:`Struktur`,categoryAdministration:`Administration`},grantTree:{globalPrivileges:`Globale Berechtigungen`}},_={close:`Schließen`,noActiveConnection:`Keine aktive Verbindung`,variableName:`Variablenname`,value:`Wert`,scope:{session:`Session`,global:`Global`},findReplace:{findPlaceholder:`Suchen`,replacePlaceholder:`Ersetzen`,found:`{{count}} gefunden`,noResults:`Keine Treffer`,previous:`Zurück`,next:`Weiter`,close:`Schließen`,replace:`Ersetzen`,all:`Alle`,caseSensitive:`Groß-/Kleinschreibung`,regex:`Regex`,wholeWord:`Ganzes Wort`},flush:{title:`Flush`,executed:`Ausgeführt: {{command}}`,executeError:`Fehler beim Ausführen von {{command}}: {{message}}`},localHistory:{title:`Lokaler Verlauf`,description:`Versionen des Editortexts dieser Verbindung: bei jeder Ausführung, nach einer Tipppause und beim Schließen eines Tabs.`,empty:`Noch keine Versionen aufgezeichnet.`,noMatch:`Keine Version passt zu dieser Suche.`,notPersisted:`„Abfrageverlauf über Neuladen hinweg behalten“ ist unter Einstellungen > Sicherheit deaktiviert; Versionen bleiben nur für diese Sitzung erhalten.`,searchPlaceholder:`Versionen durchsuchen`,scopeTab:`Dieser Tab`,scopeAll:`Alle Tabs`,compareCurrent:`mit aktuell`,comparePrevious:`mit vorheriger`,diffAgainstCurrent:`Verglichen mit dem aktuellen Editortext`,diffAgainstPrevious:`Verglichen mit der Version von {{time}}`,noPrevious:`Keine frühere Version dieses Tabs zum Vergleichen`,restored:`Editorinhalt aus dem lokalen Verlauf wiederhergestellt`,restore:`Diese Version wiederherstellen`,openInNewTab:`In neuem Tab öffnen`,openedInTab:`Version in einem neuen Tab geöffnet`,delete:`Diese Version löschen`,clearAll:`Verlauf löschen`,chars:`{{count}} Zeichen`,reason:{execute:`vor der Ausführung`,edit:`beim Bearbeiten`,replaced:`vor dem Überschreiben`,restore:`vor dem Wiederherstellen`,close:`vor dem Schließen`}},processList:{title:`Prozessliste`,refresh:`Aktualisieren`,autoRefresh:`Automatisch aktualisieren`,empty:`Keine Prozesse vorhanden`,kill:`Beenden`,killProcess:`Prozess beenden`,selectToKill:`Bitte wählen Sie einen zu beendenden Prozess aus`,killed:`Prozess {{id}} wurde beendet`,killError:`Fehler beim Beenden des Prozesses: {{message}}`,loadError:`Fehler beim Laden der Prozessliste: {{message}}`,updatedAt:`aktualisiert {{time}}`,filterPlaceholder:`Nach Benutzer, Host, DB, SQL filtern...`,hideIdle:`Inaktive ausblenden`,noMatch:`Keine Prozesse entsprechen dem Filter`,self:`ich`,selfHint:`Dies ist die eigene Sitzung von Planche`,statementOf:`Anweisung von #{{id}}`,noStatement:`Keine Anweisung`,copy:`Kopieren`,copied:`Kopiert`,killConfirmTitle:`Prozess {{id}} beenden?`,killConfirmDescription:`Die Sitzung von {{user}}@{{host}} wird beendet und die laufende Anweisung abgebrochen. Eine offene Transaktion wird zurückgerollt.`,stats:{total:`Gesamt`,active:`Aktiv`,idle:`Inaktiv`,longest:`Längste Laufzeit`},columns:{id:`Id`,user:`Benutzer`,host:`Host`,db:`db`,command:`Befehl`,time:`Zeit`,state:`Zustand`,info:`Info`,action:`Aktion`}},status:{title:`Serverstatus`,filterPlaceholder:`Statusvariablen filtern...`,empty:`Keine Statusvariablen vorhanden`,loadError:`Fehler beim Laden des Status: {{message}}`},variables:{title:`Servervariablen`,filterPlaceholder:`Variablen filtern...`,empty:`Keine Variablen vorhanden`,loadError:`Fehler beim Laden der Variablen: {{message}}`}},v={empty:{title:`Öffnen Sie eine Prisma-Schemadatei (.prisma), um das ERD anzuzeigen`,description:`Modelle, Enums und Relationen werden automatisch analysiert`,openFile:`.prisma-Datei öffnen`,dropHint:`oder ziehen Sie eine Datei in diesen Bereich`},entity:{enumBadge:`ENUM`,modelBadge:`MODEL`,columns:{value:`Wert`,comment:`Kommentar`,type:`Typ`,column:`Spalte`},linkBadge:`LINK`,externalTitle:`Verknüpfte Tabelle auf {{location}} (Spaltenverknüpfung, kein echter Fremdschlüssel)`,nullable:`Spalte erlaubt NULL`},toolbar:{refresh:`Aktualisieren`,zoomIn:`Vergrößern`,zoomOut:`Verkleinern`,resetView:`Ansicht zurücksetzen`,center:`Zentrieren`,fitAll:`Alles einpassen`,spreadAll:`Überlappungen lösen`,resetLayout:`Layout zurücksetzen`,legendOneToMany:`1:N (FK)`,tables:`Tabellen:`,relations:`Relationen:`,columns:`Spalten:`,fullscreen:`Vollbild`,exitFullscreen:`Vollbild beenden`},viewer:{noServerConnection:`Keine aktive Serververbindung`,loading:`Schema wird aus {{database}} geladen...`,loadFailed:`ERD konnte nicht geladen werden`,noDatabase:`Keine Datenbank ausgewählt.`,selectDatabaseHint:`Wählen Sie im Schemabaum eine Datenbank aus und öffnen Sie dann „ERD anzeigen“.`}},y={runAnyway:`Trotzdem ausführen`,query:{rowsReturned:`{{count}} Zeile(n) zurückgegeben`,rowsAffected:`{{count}} Zeile(n) betroffen`,rowsReturnedLimited:`{{count}} Zeile(n) zurückgegeben (begrenzt auf {{limit}}; fügen Sie LIMIT hinzu, um mehr abzurufen)`,notConnected:`Nicht verbunden`,fileNotOpen:`Die SQLite-Datei ist noch nicht geöffnet — klicken Sie oben auf „Datei erneut öffnen“, um den Zugriff erneut zu gewähren.`,failed:`Abfrage fehlgeschlagen`,nothingToExecute:`Nichts auszuführen`,dryRunMismatch:`Die Vorschau erwartete {{predicted}} Zeilen, geändert wurden {{actual}}. Die Daten können sich seit der Vorschau geändert haben; andernfalls passte die Vorschau nicht zu dieser Anweisung.`},destructive:{title_one:`Destruktive Anweisung ausführen?`,title_other:`{{count}} destruktive Anweisungen ausführen?`,description:`Folgendes wird Daten dauerhaft ändern oder löschen. Dies kann nicht rückgängig gemacht werden.`,unknownTarget:`(unbekannt)`,deleteAll:`DELETE aller Zeilen aus {{target}}`,updateAll:`UPDATE aller Zeilen in {{target}}`,alterDrop:`DROP COLUMN/PARTITION auf {{target}}`},readOnly:{refused:`Die Verbindung „{{label}}“ ist schreibgeschützt. {{count}} Anweisung(en) würde(n) Daten oder Schema ändern.`,title:`„{{label}}“ ist schreibgeschützt`,description:`Diese Anweisungen ändern Daten oder Schema. Trotzdem auf dieser Verbindung ausführen?`},transaction:{startFailed:`Transaktion konnte nicht gestartet werden`,started:`Transaktion gestartet — Commit oder Rollback, wenn Sie fertig sind`,implicitCommit:`{{kind}} hat ein implizites COMMIT der offenen Transaktion ausgelöst`,committed:`Transaktion bestätigt (Commit)`,rolledBack:`Transaktion zurückgerollt (Rollback)`,commandFailed:`{{name}} fehlgeschlagen`,commandFailedWith:`{{name}} fehlgeschlagen: {{message}}`},save:{notBrowserSqlite:`Keine SQLite-Verbindung im Browser.`,inMemory:`In-Memory-Datenbank: Sie kann nur als Download exportiert werden.`,noFileSystemAccess:`Dieser Browser hat keine File System Access API (nur Chrome/Edge): Die Datenbank wird als Download exportiert, statt direkt geschrieben zu werden.`,noWritableHandle:`Die Datei wurde ohne beschreibbares Handle geöffnet: Sie wird als Download exportiert.`},agent:{devProxyUrl:`{{url}} (über Dev-Proxy)`,notPlanche:`Es hat etwas geantwortet, aber es ist kein Planche-Agent`,unreachable:"Planche-Agent unter {{url}} nicht erreichbar — führen Sie `npx planche` aus ({{message}})",httpError:`HTTP-Fehler: {{status}} {{statusText}}`,emptyResponse:`Der Tunneling-Server hat eine leere Antwort zurückgegeben`,reconnected:`Verbindung zu {{name}} wiederhergestellt — der Agent hatte sie verworfen (Neustart oder Leerlauf-Timeout).`,driverUnsupported:`Dieser Agent kann noch keine {{driver}}-Verbindungen öffnen. Aktualisieren Sie ihn mit npx planche@latest oder, bei einer Standalone-Installation, mit planche upgrade.`},sample:{profileName:`Beispiel-Shop (im Browser)`,downloadFailed:`Die Beispieldatenbank konnte nicht heruntergeladen werden ({{status}})`,tabTitle:`Abfrage 1`},sqliteFile:{tooSmall:`Die Datei ist zu klein, um eine SQLite-Datenbank zu sein.`,notSqlite:`Keine SQLite-Datenbank (oder eine verschlüsselte, z. B. SQLCipher). Der 16-Byte-Header lautet nicht „SQLite format 3“.`,badPageSize:`Beschädigter SQLite-Header: ungültige Seitengröße {{size}}.`,unreadable:`SQLite konnte die Datei nicht lesen: {{message}}`,pickerDescription:`SQLite-Datenbank`,walNotLoaded:`Diese Datenbank ist im WAL-Modus und ihre -wal-Datei wurde nicht geladen. Laden Sie sie oder bestätigen Sie im Banner, dass keine -wal-Datei existiert, bevor Sie speichern.`,changedOnDisk:`{{name}} wurde nach dem Laden auf dem Datenträger geändert (ein anderes Programm hat hineingeschrieben). Speichern würde diese Änderungen überschreiben — öffnen Sie die Datei erneut und wiederholen Sie Ihre Änderungen, oder verwenden Sie den Tunneling-Server.`,walHasChanges:`{{name}}-wal enthält neue Änderungen; laden Sie sie vor dem Speichern.`,walChangedOnDisk:`{{name}}-wal wurde nach dem Laden von einem anderen Programm geschrieben; öffnen Sie die Datei vor dem Speichern erneut.`,writeDenied:`Schreibzugriff auf {{name}} wurde nicht gewährt. Erlauben Sie ihn in der Browserabfrage oder exportieren Sie stattdessen als Download.`},environment:{none:`Keine`,green:`Grün (Entwicklung)`,blue:`Blau`,yellow:`Gelb (Staging)`,orange:`Orange`,red:`Rot (Produktion)`,purple:`Lila`},scratchpad:{profileName:`Scratchpad`,namePromptTitle:`Name der Scratchpad-Tabelle`,namePromptDescription:`Im Scratchpad gibt es bereits eine Tabelle {{table}}. Wählen Sie einen anderen Namen.`,nameTaken:`Tabelle {{table}} existiert bereits.`},federated:{pulling:`Hole {{table}} von {{connection}}…`,capped:`{{table}}: nur die ersten {{limit}} Zeilen wurden geholt.`,templateLine1:`Eine Tabelle einer offenen Verbindung als "Verbindungsname".database.table referenzieren; sie wird vor der Ausführung in dieses Scratchpad kopiert.`,templateLine2:`Tabellen sind auf {{limit}} Zeilen begrenzt. Die Abfrage selbst läuft in SQLite (in Ihrem Browser).`,templateConnections:`Offene Verbindungen: {{names}}`,templateNone:`Noch keine andere Verbindung offen. Verbinden Sie eine und referenzieren Sie sie hier.`,done:`{{rows}} Zeilen aus {{tables}} entfernten Tabellen ins Scratchpad geholt.`,pullingProgress:`Hole {{table}} von {{connection}}: {{loaded}} / {{total}} Zeilen…`},paged:{noColumns:`{{table}} hat keine Spalten.`,cancelled:`Abgebrochen.`},console:{unreadable:`Zeile {{line}}: {{message}}`}},b={title:`Nutzungsbedingungen`,version:`Version {{version}}`,englishOnly:`Die Bedingungen liegen auf Englisch vor. Die Zusammenfassung auf dem Startbildschirm ist in Ihrer Sprache verfügbar.`,privacyLink:`Datenschutzerklärung`,refundLink:`Rückerstattungsrichtlinie`,online:`Auf planche.dev lesen`,updated:`Zuletzt geändert am {{date}}`},x={title:`{{kind}} würde {{count}} Zeilen betreffen`,titleUnknown:`{{kind}} – betroffene Zeilen unbekannt`,description:`Das sind die Zeilen, die die Anweisung jetzt berühren würde, per SELECT gelesen. Noch wurde nichts geschrieben.`,previewFailed:`Die Vorschau-Abfrage ist fehlgeschlagen: {{error}}
|
|
1
|
+
var e={reconnecting:`Verbindung wird wiederhergestellt…`,dropSqlite:`Loslassen, um die SQLite-Datei zu öffnen`,dropSqliteHint:`Wird per WebAssembly im Browser geöffnet — die Datei bleibt auf Ihrem Rechner. Eine vorhandene -wal-Datei bitte mit ablegen.`,dropFailedTitle:`Abgelegte Datei konnte nicht geöffnet werden`,dropNotSqlite:`{{name}} ist keine SQLite-Datenbankdatei.`,crashTitle:`Etwas ist schiefgelaufen`,crashBody:`Die App ist auf einen unerwarteten Fehler gestoßen. Neu laden stellt Verbindungen und Tabs wieder her; ungespeicherte Änderungen im Raster gehen verloren.`,crashReload:`Neu laden`,dialogFailed:`Der Dialog konnte nicht geöffnet werden: {{message}}`},t={auto:`Systemsprache ({{name}})`,en:`English`,ko:`한국어`,zh:`中文(简体)`,ja:`日本語`,de:`Deutsch`,fr:`Français`},n={title:`Sicherheit`,description:`Schutzmaßnahmen gegen versehentlichen Datenverlust. Schreibschutz, Umgebungsfarbe und Transaktionsmodus werden pro Verbindung festgelegt.`,language:`Sprache`,languageHint:`Wird sofort übernommen. „Systemsprache“ folgt der Einstellung Ihres Browsers.`,resetDefaults:`Auf Standardwerte zurücksetzen`,done:`Fertig`,analytics:`Anonyme Nutzungsstatistiken teilen`,analyticsHint:`Sendet anonyme Nutzungsereignisse (Engine, Funktion, Anweisungstyp) an Google Analytics. Niemals SQL-Text, Hostnamen, Tabellen- oder Benutzernamen.`,analyticsUnavailableHint:`In diesem Build nicht aktiv (keine Mess-ID konfiguriert).`,persistHistory:`Abfrageverlauf über Neuladen hinweg behalten`,persistHistoryHint:`Der Anweisungstext wird in diesem Browser gespeichert (Passwort-Literale werden maskiert; die offenen Editor-Tabs selbst bleiben immer erhalten). Aus: Verlauf und Snapshots leben nur bis zum Schließen des Tabs.`,ai:{intro:`Planche kann ein Modell fragen, warum eine Anweisung fehlschlug oder ein Plan langsam ist. Die Frage wird hier in der App zusammengesetzt und von Ihrem lokalen Agenten an den Anbieter unten geschickt — weder Ihr SQL noch Ihr Schema erreicht planche.dev.`,provider:`Anbieter`,openaiCompatible:`OpenAI-kompatibel`,model:`Modell`,baseUrl:`Basis-URL`,baseUrlHint:`Leer lassen für den Standard-Endpunkt des Anbieters. Jeder OpenAI-kompatible Server funktioniert — Azure, OpenRouter, ein lokales Ollama.`,key:`API-Schlüssel`,keyHint:`Wird an den lokalen Agenten übergeben und dort verwendet. Er wird nie in diesem Browser gespeichert und nie an planche.dev gesendet.`,remember:`Schlüssel auf diesem Rechner merken`,rememberHint:`Schreibt ihn nach {{path}}, nur für Sie lesbar. Ohne dies lebt der Schlüssel nur im laufenden Agenten und ist nach dessen Ende weg.`,save:`Speichern`,forget:`Schlüssel löschen`,saved:`Gespeichert.`,none:`Kein Schlüssel gesetzt.`,configuredSession:`Ein Schlüssel gilt nur für diese Agenten-Sitzung.`,configuredFile:`Ein Schlüssel liegt unter {{path}}.`,configuredEnv:`Die KI-Einstellungen dieses Agenten stammen aus seiner Umgebung und sind hier nicht änderbar.`,unreachable:`Der Agent ist nicht erreichbar, daher lassen sich die KI-Einstellungen nicht ändern.`,title:`KI-Erklärungen`,description:`Welches Modell einen Fehler oder Plan erklärt, und wessen Schlüssel dafür zahlt.`,cli:`Lokale CLI (kein Schlüssel)`,cliCommand:`Befehl`,cliHint:`Führt eine bereits installierte und angemeldete Agent-CLI auf diesem Rechner aus, es gibt also keinen Schlüssel einzugeben. Sie erklärt Fehler und Pläne; das KI-Panel braucht einen Provider, der Werkzeuge aufrufen kann.`,cliNone:`Auf diesem Rechner wurde keine Agent-CLI gefunden. Installiere Claude Code oder Codex, oder wähle einen anderen Provider.`,profile:`Anthropic (Anmeldung dieses Rechners)`,profileHint:"Nutzt die Zugangsdaten, mit denen dieser Rechner bereits angemeldet ist — nach `ant auth login` findet das SDK sie selbst. Nichts einzufügen, und anders als bei einer lokalen CLI ist es die echte API, also funktioniert auch das KI-Panel.",profileNone:"Auf diesem Rechner wurden keine Anthropic-Zugangsdaten gefunden. Führe `ant auth login` aus, oder hinterlege einen Schlüssel.",configuredChoice:`{{provider}} wird verwendet – kein Schlüssel gespeichert; die Wahl steht in {{path}}.`},query:{title:`Abfrage`,description:`Wie eine Anweisung läuft: was F9 ausführt, wie viele Zeilen zurückkommen, was vorher gezeigt wird.`},general:{title:`Allgemein`,description:`Sprache, was ein Neuladen überdauert, und was diesen Rechner verlässt.`}},r={settings:{safety:`Sicherheit…`,language:`Sprache`,title:`Einstellungen`,theme:`Design`,query:`Abfrage…`,general:`Allgemein…`,ai:`KI…`},help:{gettingStarted:`Erste Schritte`,about:`Über Planche`,title:`Hilfe`,documentation:`Dokumentation`,learn:`SQL lernen`,terms:`Nutzungsbedingungen`,license:`Lizenz`,support:`Support kontaktieren`,mcp:`KI-Agent verbinden (MCP)…`,privacy:`Datenschutz`,whatsNew:`Neuigkeiten`},connection:{title:`Verbindung`,connect:`Verbinden`,disconnect:`Verbindung trennen`,readOnly:`Schreibgeschützt`,manualTransactions:`Manuelle Transaktionen`,saveDatabaseFile:`Datenbankdatei speichern`,saveDatabaseFileBlocked:`Datenbankdatei speichern (zuerst -wal laden)`,exit:`Beenden`,sync:`Verbindungs-Sync`},query:{title:`Abfrage`,execute:`Ausführen`,executeStatementAtCursor:`Anweisung am Cursor ausführen`,executeWholeScript:`Gesamtes Skript ausführen`,newQueryTab:`Neuer Abfrage-Tab`,findReplace:`Suchen und Ersetzen`,localHistory:`Lokaler Verlauf…`,explainPlan:`Ausführungsplan anzeigen`,explainAnalyze:`Ausführungsplan messen (führt die Anweisung aus)`,structure:`Abfragestruktur`},edit:{title:`Bearbeiten`,undo:`Rückgängig`,redo:`Wiederholen`,cut:`Ausschneiden`,copy:`Kopieren`,paste:`Einfügen`,selectAll:`Alles auswählen`},database:{title:`Datenbank`,create:`Datenbank erstellen`,alter:`Datenbank ändern`,drop:`Datenbank löschen`,copy:`Datenbank kopieren`,compare:`Schemas vergleichen…`,truncate:`Datenbank leeren`,compareData:`Daten vergleichen…`,groupBy:`Gruppieren und zählen…`},table:{title:`Tabelle`,create:`Tabelle erstellen`,alter:`Tabelle ändern`,drop:`Tabelle löschen`,rename:`Tabelle umbenennen`,truncate:`Tabelle leeren`,duplicateStructure:`Tabellenstruktur duplizieren`},export:{title:`Export`,csv:`Als CSV herunterladen`,tsv:`Als TSV herunterladen`,schemaHtml:`Schema als HTML`,links:`Spaltenverknüpfungen exportieren…`,importLinks:`Spaltenverknüpfungen importieren…`},tools:{title:`Werkzeuge`,userManager:`Benutzerverwaltung`,processList:`Prozessliste`,variables:`Variablen`,status:`Status`,flush:`Flush`,quickCommand:`Schnellbefehl`,viewErd:`ERD anzeigen`,scratchpad:`Scratchpad (SQLite im Browser)`,federated:`Verbundabfrage (Join über Verbindungen)…`,federatedTab:`Verbund {{n}}`,ai:`KI-Assistent`},messages:{databaseFileSaved:`Datenbankdatei gespeichert`,databaseExported:`Datenbank als Download exportiert`,databaseExportedWithReason:`Datenbank als Download exportiert — {{reason}}`,errorSavingDatabase:`Fehler beim Speichern der Datenbank: {{message}}`,noDatabaseSelected:`Keine Datenbank ausgewählt`,noTableSelected:`Keine Tabelle ausgewählt`,noActiveConnection:`Keine aktive Verbindung`,databaseDropped:`Datenbank „{{database}}“ wurde gelöscht`,errorDroppingDatabase:`Fehler beim Löschen der Datenbank: {{message}}`,noTablesInDatabase:`Keine Tabellen in der Datenbank „{{database}}“ gefunden`,databaseTruncated_one:`{{count}} Tabelle in „{{database}}“ wurde geleert`,databaseTruncated_other:`Alle {{count}} Tabellen in „{{database}}“ wurden geleert`,errorTruncatingDatabase:`Fehler beim Leeren der Datenbank: {{message}}`,tableDropped:`Tabelle „{{table}}“ wurde gelöscht`,errorDroppingTable:`Fehler beim Löschen der Tabelle: {{message}}`,tableTruncated:`Tabelle „{{table}}“ wurde geleert`,errorTruncatingTable:`Fehler beim Leeren der Tabelle: {{message}}`,renameTablePrompt:`Tabelle „{{table}}“ umbenennen in:`,tableRenamed:`Tabelle „{{table}}“ wurde in „{{newName}}“ umbenannt`,errorRenamingTable:`Fehler beim Umbenennen der Tabelle: {{message}}`,truncateDatabaseTitle:`Alle Tabellen in "{{name}}" leeren?`,truncateDatabaseDescription:`Alle Zeilen in {{count}} Tabelle(n) von "{{name}}" werden gelöscht. Die Tabellenstrukturen bleiben erhalten. Dies kann nicht rückgängig gemacht werden.`,truncateDatabaseConfirm:`Alle Tabellen leeren`,renameTableTitle:`Tabelle umbenennen`,renameTableConfirm:`Umbenennen`,noLinksToExport:`Keine Spaltenverknüpfungen zum Exportieren.`,linksExported:`{{count}} Spaltenverknüpfungen exportiert.`,linksImported:`{{count}} Spaltenverknüpfungen importiert.`,linksImportedPartial:`{{count}} Spaltenverknüpfungen importiert; kein passendes Profil für: {{profiles}}`,linksImportFailed:`Spaltenverknüpfungen konnten nicht importiert werden: {{reason}}`}},i={title:`Über Planche`,tagline:`Ein Datenbank-Client für MySQL, MariaDB, PostgreSQL und SQLite.`,version:`Version`,website:`Website`,licenses:`Lizenzen`,licensesLink:`Hinweise zu Drittanbietern`,disclaimer:`Planche wird „wie besehen“ und ohne jegliche Gewährleistung bereitgestellt. Die Autoren haften nicht für Schäden oder Datenverluste, die aus der Nutzung entstehen. Sichern Sie Ihre Daten, bevor Sie destruktive Anweisungen ausführen.`,rights:`Alle Rechte vorbehalten.`,legal:`Rechtliches`,terms:`AGB`,privacy:`Datenschutz`,refund:`Rückerstattung`},a=JSON.parse('{"dialog":{"title":"Mit Datenbank verbinden","firstQueryTab":"Abfrage 1","colHostName":"Name","colTarget":"Ziel","colDbms":"DBMS","noSaved":"Keine gespeicherten Verbindungen","unnamed":"(unbenannt)","pickOnConnect":"(beim Verbinden auswählen)","noFile":"(keine Datei)","selectPrompt":"Wählen Sie eine Verbindung aus oder legen Sie eine neue an","addNew":"Neu hinzufügen","delete":"Löschen","testConnection":"Verbindung testen","connect":"Verbinden","close":"Schließen","unknownError":"Unbekannter Fehler","browserTestHint":"SQLite-Verbindungen im Browser öffnen beim Klick auf „Verbinden“ eine lokale Datei.","testSuccess":"Verbindung erfolgreich","restoredUnsaved":"{{file}}: ungespeicherte Änderungen aus der zwischengespeicherten Kopie wiederhergestellt","restoredUnsavedDiskChanged":"{{file}}: ungespeicherte Änderungen aus der zwischengespeicherten Kopie wiederhergestellt — Hinweis: Die Datei auf dem Datenträger hat sich seitdem geändert","walPending":"{{file}} ist im WAL-Modus: Aktuelle Änderungen befinden sich möglicherweise noch in der -wal-Datei. Verwenden Sie oben „-wal-Datei laden“, um sie einzubeziehen.","walApplied":"{{file}} wurde mit den Änderungen aus der -wal-Datei geöffnet","connectFailedTitle":"Verbindung fehlgeschlagen","testSuccessDescription":"Der Server hat die Zugangsdaten akzeptiert.","testFailedTitle":"Verbindungstest fehlgeschlagen","privacy":"Nichts, was Sie hier eingeben, wird an planche.dev-Server gesendet oder dort gespeichert. Verbindungsprofile liegen ausschließlich im lokalen Speicher dieses Browsers; Abfragen gehen direkt vom lokalen Agenten an Ihre Datenbank.","hostKeyTitle":"Unbekannter SSH-Hostschlüssel","hostKeyDescription":"{{host}}:{{port}} hat einen {{type}}-Schlüssel mit dem Fingerabdruck {{fingerprint}} vorgelegt. Vergleichen Sie ihn mit dem Fingerabdruck Ihres Serveradministrators; ein falscher Schlüssel lässt einen Angreifer Ihren Verkehr mitlesen.","hostKeyAccept":"Diesem Host vertrauen","gatewayTitle":"Gateway-Profile","gatewayAdd":"Hinzufügen","gatewayAdded":"Gateway-Profil {{name}} hinzugefügt.","gatewayReadOnly":"schreibgeschützt","gatewayWritable":"beschreibbar","gatewayProfileHint":"Diese Verbindung nutzt das vom Gateway gehaltene Profil „{{name}}“; hier gibt es nichts einzustellen.","gatewayLoadFailed":"Gateway-Profile konnten nicht geladen werden: {{error}}","export":"Exportieren…","exportWithoutSecrets":"Ohne Passwort","exportWithSecrets":"Mit Passwort und Schlüsseln","import":"Importieren…","exported":"Verbindung „{{name}}“ exportiert.","imported":"Verbindung „{{name}}“ importiert.","importFailedTitle":"Verbindung konnte nicht importiert werden"},"form":{"hostName":"Name","hostNamePlaceholder":"Meine Verbindung","dataSource":"Datenquelle","openVia":"Öffnen über","viaBrowser":"Browser (lokale Datei)","viaAgent":"Lokaler Agent","viaBrowserHint":"Keine Installation nötig. Am besten für Dateien, die kein anderes Programm verwendet: Der Browser arbeitet auf einer Kopie im Arbeitsspeicher und kann die Datei nicht sperren. Änderungen, die währenddessen anderswo vorgenommen werden, bleiben unsichtbar und werden beim Speichern überschrieben.","viaAgentHint":"Öffnet die Datei mit SQLite selbst über npx planche — mit korrektem Locking und WAL, sicher neben anderen Programmen, die dieselbe Datenbank verwenden.","databaseFile":"Datenbankdatei","changeFile":"Datei ändern","filePickerHint":"Beim Klick auf „Verbinden“ öffnet sich eine Dateiauswahl (Tipp: ⌘⇧. zeigt versteckte Dateien, mit ⌘⇧G können Sie einen Pfad eingeben).","fileRememberedHint":"Die gewählte Datei wird gemerkt (Chromium), sodass beim erneuten Verbinden nur die Berechtigung abgefragt wird. Verwenden Sie Verbindung > Datenbankdatei speichern, um Änderungen zurückzuschreiben.","authToken":"Auth-Token","authTokenPlaceholder":"Leer lassen, um das Token des gekoppelten Agents zu verwenden","filePathPlaceholder":"/pfad/zur/datenbank.sqlite oder :memory:","createIfMissing":"Erstellen, falls nicht vorhanden","createIfMissingHint":"Der Pfad wird auf dem Host des Tunneling-Servers aufgelöst","host":"Host","port":"Port","database":"Datenbank","serviceName":"Dienstname","user":"Benutzer","password":"Passwort","savePassword":"Passwort speichern","savePasswordHint":"Aus: Das Passwort wird nur für diese Browsersitzung behalten und nie auf den Datenträger geschrieben.","charset":"Zeichensatz","autoConnection":"Automatisch verbinden","safety":"Sicherheit","environment":"Umgebung","environmentHint":"färbt Tab und Arbeitsbereich ein","readOnly":"Schreibgeschützt","readOnlyHint":"Anweisungen ablehnen, die Daten oder Schema ändern","transactions":"Transaktionen","txAuto":"Auto-Commit","txManual":"Manuell — Commit / Rollback über die Symbolleiste","ssh":"SSH","sshTunnel":"SSH-Tunnel","sshTunnelHint":"Datenbank über einen SSH-Sprunghost erreichen (der lokale Agent öffnet den Tunnel)","sshHost":"SSH-Host","sshPort":"SSH-Port","sshUser":"SSH-Benutzer","sshAuth":"SSH-Auth","sshAuthKey":"Privater Schlüssel","sshAuthPassword":"Passwort","sshAuthAgent":"ssh-agent","sshAuthAgentHint":"Verwendet die im ssh-agent des Rechners geladenen Schlüssel, auf dem npx planche läuft (SSH_AUTH_SOCK).","sshPassword":"SSH-Passwort","sshKey":"Privater Schlüssel","sshKeyPick":"Schlüsseldatei wählen…","sshKeyLoaded":"Schlüssel geladen","sshKeyHint":"Leer lassen, um das IdentityFile aus ~/.ssh/config (oder ~/.ssh/id_*) auf dem Rechner des Agents zu verwenden; ein gewählter Schlüssel wird mit diesem Profil gespeichert","sshPassphrase":"Passphrase","sshPassphrasePlaceholder":"Leer lassen, wenn der Schlüssel keine hat","sshSecretsHint":"SSH-Passwort, privater Schlüssel und Passphrase folgen der Einstellung „Passwort speichern“ oben. Unbekannte Hostschlüssel werden vor der ersten Verbindung zur Prüfung angezeigt und in ~/.planche/known_hosts auf dem Rechner des Agenten gespeichert.","sshHostPlaceholder":"bastion.example.com oder ein Host-Alias aus ~/.ssh/config","sshUserPlaceholder":"Leer lassen, um ~/.ssh/config zu verwenden","sshTargetHint":"Datenbank-Host und -Port werden auf dem Sprunghost aufgelöst — die echte Adresse der Datenbank (z. B. den RDS-Endpunkt) angeben, nicht localhost oder eine lokale Portweiterleitung.","connectionString":"Verbindungs-URI","connectionStringApplied":"In die Felder unten übernommen. Die URI selbst wird nicht gespeichert, nur die Felder.","connectionStringInvalid":"Keine PostgreSQL-URI (erwartet postgresql://user:password@host/database).","neonHint":"URI aus der Neon-Konsole (Connect > Connection string) einfügen; die Felder unten werden daraus befüllt.","supabaseHint":"URI aus Supabase (Connect > Session pooler oder Direct connection) einfügen; die Felder unten werden daraus befüllt.","supabasePoolerWarning":"Port 6543 ist der Pooler im Transaktionsmodus: Jede Anweisung kann auf einem anderen Backend laufen, daher funktionieren Schemawechsel, temporäre Tabellen, Prepared Statements und manuelle Transaktionen nicht. Verwenden Sie den Session-Pooler (Port 5432) oder die Direktverbindung.","managedTlsHint":"Dieser Dienst wird immer über TLS erreicht; die Verbindung geht direkt vom lokalen Agenten zum Dienst (kein SSH-Tunnel).","d1AccountId":"Account ID","d1DatabaseId":"Database ID","d1ApiToken":"API-Token","d1Hint":"Account ID: Cloudflare-Dashboard, rechts auf der Kontostartseite. Database ID: Storage & Databases > D1 > Ihre Datenbank. Token: My Profile > API Tokens > Create Token mit der Berechtigung \\"D1 Edit\\" (oder \\"D1 Read\\" für Nur-Lesen). Der lokale Agent ruft damit die Cloudflare-API auf.","d1LimitsHint":"D1 führt jede Anfrage einzeln aus und committet automatisch, daher gibt es keine manuellen Transaktionen; die Datenbank erscheint als einziges Schema \\"main\\".","doDevUrl":"wrangler-dev-URL","doHint":"Starten Sie `wrangler dev` in Ihrem Worker-Projekt und fügen Sie die ausgegebene URL ein (Port 8787, sofern nicht geändert). Der lokale Agent liest die Durable Objects dieser Sitzung — einschließlich weiterer gleichzeitig laufender `wrangler dev`-Sitzungen.","doLimitsHint":"Nur für die lokale Entwicklung: Bereitgestellte Durable Objects sind ausschließlich aus einem Worker erreichbar, Cloudflare bietet keine Abfrage-API dafür. Jedes Objekt erscheint als Datenbank \\"<Namespace>/<Objekt>\\"; jede Anfrage committet automatisch, manuelle Transaktionen sind daher nicht verfügbar.","tls":"TLS","tlsEnable":"Verbindung verschlüsseln","tlsVerify":"Serverzertifikat prüfen","tlsVerifyHint":"Aus: selbstsignierte Zertifikate werden akzeptiert (verschlüsselt, aber der Server ist nicht authentifiziert). Über einen SSH-Tunnel nicht verfügbar.","d1DevUrl":"Lokale Dev-URL","d1DevUrlHint":"Leer lassen, um ein Cloudflare-Konto zu verwenden. Ausgefüllt liest Planche die Datenbank, die `wrangler dev` auf diesem Rechner betreibt – ohne Konto und ohne API-Token, und die Kontofelder unten werden ignoriert. Die Database ID kann leer bleiben, wenn der Dev-Server nur eine bindet.","d1PickDatabase":"Datenbank wählen","searchAuthHint":"Benutzer und Passwort melden sich per Basic Auth an. Lassen Sie den Benutzer leer, um das Passwort als API-Schlüssel (kodiertes id:key) zu senden."},"agent":{"copy":"Kopieren","looking":"Suche nach dem Planche-Agent…","online":"Agent <b>v{{version}}</b> läuft unter <mono>{{url}}</mono>","outdated":"Agent v{{version}} spricht Protokoll {{protocol}}, diese App benötigt jedoch ein neueres. Starten Sie ihn neu mit <cmd/>","unauthorized":"Agent <b>v{{version}}</b> läuft unter <mono>{{url}}</mono>, ist aber nicht mit dieser App gekoppelt (das Token ändert sich bei jedem Start). Öffnen Sie den im Terminal des Agents ausgegebenen Link oder fügen Sie das Token unter „Konfigurieren“ ein.","offline":"Kein Agent unter <mono>{{url}}</mono>. Starten Sie ihn im Terminal – er öffnet diese App bereits gekoppelt.","close":"Schließen","configure":"Konfigurieren","checkAgain":"Erneut prüfen","urlLabel":"Agent-URL","urlPlaceholder":"http://127.0.0.1:8888 (Standard)","tokenLabel":"Token","tokenPlaceholder":"Wird vom Agent ausgegeben","reset":"Zurücksetzen","save":"Speichern","remoteWarning":"Dieser Agent läuft nicht auf Ihrem Rechner ({{host}}): Jede Verbindung schickt ihre Passwörter und SSH-Schlüssel dorthin.","remoteRefusedTitle":"Entfernter Agent nicht erlaubt","remoteRefused":"Der Agent muss auf diesem Rechner laufen (127.0.0.1 oder localhost). Für einen Agenten auf einer anderen Maschine leiten Sie den Port mit `ssh -L 8888:127.0.0.1:8888 user@host` weiter und lassen die URL auf http://127.0.0.1:8888.","gateway":"Gateway „{{name}}“: {{count}} serverseitige Profile. Zugangsdaten bleiben auf dem Gateway; wählen Sie unten ein Profil."},"tab":{"noConnections":"Keine Verbindungen geöffnet. Klicken Sie auf „Verbinden“, um zu beginnen.","theSqliteFile":"die SQLite-Datei","reopened":"{{file}} erneut geöffnet","reopenFailed":"Datei konnte nicht erneut geöffnet werden: {{message}}","reopenPrompt":"Der Browser benötigt erneut Ihre Berechtigung, um <b>{{file}}</b> zu lesen.","reopenFile":"Datei erneut öffnen","closeConnection":"Verbindung schließen","reconnected":"{{file}} erneut verbunden","accessNotGranted":"Dateizugriff wurde nicht gewährt; beim Speichern wird stattdessen ein Download exportiert.","detachedPrompt":"Sie arbeiten auf einer zwischengespeicherten Kopie von <b>{{file}}</b>. Verbinden Sie die Datei erneut, um Änderungen direkt zu speichern.","reconnectFile":"Datei erneut verbinden","detachedHide":"Ausblenden (beim Speichern wird bei Bedarf nach der Datei gefragt)","walFramesApplied_one":"{{count}} WAL-Frame aus {{file}}-wal übernommen","walFramesApplied_other":"{{count}} WAL-Frames aus {{file}}-wal übernommen","walNoChanges":"Die -wal-Datei enthielt keine bestätigten Änderungen","walLoadFailed":"-wal-Datei konnte nicht geladen werden: {{message}}","walPrompt":"<b>{{file}}</b> ist im WAL-Modus: Möglicherweise werden die neuesten Daten erst angezeigt, wenn die Datei <mono>{{file}}-wal</mono> geladen wurde; bis dahin ist das Speichern deaktiviert. Falls keine solche Datei daneben existiert (die Datenbank wurde sauber geschlossen), bestätigen Sie das stattdessen. Falls ein anderes Programm diese Datenbank noch verwendet, öffnen Sie sie stattdessen über den lokalen Agent (<mono>npx planche</mono>): Der Browser kann die Datei nicht sicher gemeinsam nutzen.","loadWal":"-wal-Datei laden","noWalHint":"Ich habe nachgesehen: Es gibt keine -wal-Datei neben der Datenbank","noWal":"Keine -wal-Datei","dismiss":"Schließen","walHide":"Ausblenden (Speichern bleibt deaktiviert)","readOnlyBadge":"schreibgeschützt"}}'),o={connect:`Verbinden (Alt+N)`,disconnect:`Verbindung trennen`,newQueryTab:`Neuer Abfrage-Tab (Alt+T)`,execute:`Ausführen (F9)`,executeStatement:`Anweisung am Cursor / Auswahl ausführen (Ctrl+Enter)`,commit:`Commit`,commitHint:`Offene Transaktion bestätigen (Commit)`,noOpenTransaction:`Keine offene Transaktion`,rollback:`Rollback`,rollbackHint:`Offene Transaktion verwerfen (Rollback)`,readOnlyBadge:`schreibgeschützt`,readOnlyHint:`Diese Verbindung lehnt Anweisungen ab, die Daten oder Schema ändern`,userManager:`Benutzerverwaltung (Alt+U)`,quickCommand:`Schnellbefehl`,processList:`Prozessliste`,variables:`Variablen`,status:`Status`,flush:`Flush`,fullscreen:`Vollbild`},s={readOnly:`schreibgeschützt`,txOpen:`Transaktion offen`,manualTx:`manuelle Transaktionen`},c={title:`Schnellbefehl`,description:`Suchen Sie einen auszuführenden Befehl...`,inputPlaceholder:`Befehl eingeben oder suchen...`,empty:`Keine Befehle gefunden.`,groups:{connection:`Verbindung`,query:`Abfrage`,database:`Datenbank`,table:`Tabelle`,tools:`Werkzeuge`},commands:{connect:`Verbinden`,disconnect:`Verbindung trennen`,executeQuery:`Abfrage ausführen`,newQueryTab:`Neuer Abfrage-Tab`,createDatabase:`Datenbank erstellen`,dropDatabase:`Datenbank löschen`,createTable:`Tabelle erstellen`,alterTable:`Tabelle ändern`,dropTable:`Tabelle löschen`,processList:`Prozessliste`,serverVariables:`Servervariablen`,serverStatus:`Serverstatus`,flush:`Flush`,userManager:`Benutzerverwaltung`}},l={title:`Willkommen bei Planche`,intro:`Ein SQL-Client, der in Ihrem Browser läuft. Ihre Datenbanken werden über einen kleinen Agent auf Ihrem Rechner erreicht, sodass Zugangsdaten und Daten Ihren Computer nie verlassen.`,skip:`Überspringen`,skipTitle:`Diesen Bildschirm ausblenden (Hilfe > Erste Schritte bringt ihn zurück)`,copy:`Kopieren`,copied:`Kopiert`,sampleOpenFailed:`Die Beispieldatenbank konnte nicht geöffnet werden: {{message}}`,steps:{agent:{title:`Lokalen Agent starten`,body:`Führen Sie einen dieser Befehle im Terminal aus. Er startet den Agenten und koppelt ihn mit dieser Seite.`},connection:{title:`Verbindung hinzufügen`,body:`Wählen Sie Ihre Datenbank, um das Verbindungsformular mit passenden Voreinstellungen zu öffnen.`},sample:{title:`Keine Datenbank zur Hand? Probieren Sie das Beispiel`,body:`Laden Sie eine Beispieldatenbank eines Webshops (24 Tabellen, ca. 50.000 Zeilen, Views und Trigger) in den Browser, um Editor, Tabellenansicht und Schemabaum auszuprobieren.`,loading:`Beispiel wird geladen…`,button:`Beispieldatenbank ausprobieren`}},terms:{title:`Bevor Sie beginnen`,local:`Alles läuft lokal: Zugangsdaten, Abfragen und Ergebnisse bleiben auf Ihrem Rechner und werden nie an uns gesendet.`,asIs:`Planche wird ohne Gewährleistung bereitgestellt. Die Schutzmechanismen (Bestätigung destruktiver Befehle, Nur-Lese-Modus) sind Hilfen, keine Garantien.`,dataLoss:`Sie sind für jede über Planche ausgeführte Anweisung verantwortlich. Sichern Sie Ihre Daten, bevor Sie etwas Destruktives ausführen.`,agree:`Ich habe die Nutzungsbedingungen gelesen und stimme ihnen zu.`,accepted:`Sie haben die Nutzungsbedingungen akzeptiert.`,readFull:`Vollständige Bedingungen lesen`}},u={treeLabel:`Schema`,unreachableHint:`Nicht die Datenbank, an die diese Verbindung gebunden ist; legen Sie ein Profil dafür an, um sie zu durchsuchen`,objectType:{table:`Tabelle`,view:`View`,procedure:`Prozedur`,function:`Funktion`,trigger:`Trigger`,event:`Event`},menu:{showCreate:`CREATE-Anweisung anzeigen ({{type}})`,alter:`{{type}} ändern`,drop:`{{type}} löschen`,create:`{{type}} erstellen`,refresh:`Aktualisieren`,unreachable:`Verbinden Sie sich mit einem an diese Datenbank gebundenen Profil, um sie zu durchsuchen`,openDatabase:`Datenbank öffnen`,createSchema:`Schema erstellen…`,createTable:`Tabelle erstellen`,dropDatabase:`Datenbank löschen`,openSchema:`Schema öffnen`,dropSchema:`Schema löschen`,newQueryTab:`Neuer Abfrage-Tab`,generateSql:`SQL erzeugen`,openTable:`Tabelle öffnen`,alterTable:`Tabelle ändern`,showCreateTable:`CREATE TABLE anzeigen`,duplicateStructure:`Struktur duplizieren`,copyTable:`Tabelle kopieren nach…`,compare:`{{type}} vergleichen…`,truncateTable:`Tabelle leeren`,dropTable:`Tabelle löschen`,exportCsv:`Als CSV exportieren`,exportTsv:`Als TSV exportieren…`,openView:`View öffnen`,alterView:`View ändern`,showCreateView:`CREATE VIEW anzeigen`,dropView:`View löschen`,compareData:`Daten vergleichen…`,groupBy:`Gruppieren und zählen…`,copyKey:`Schlüsselnamen kopieren`,openKey:`Öffnen`,copyName:`Namen kopieren`,inspect:`Abfragen`,modify:`Ändern`},actions:{createStatementUnavailable:`-- CREATE-Anweisung für {{type}} {{name}} konnte nicht abgerufen werden`,getCreateFailed:`CREATE {{type}} konnte nicht abgerufen werden: {{message}}`,createTabTitle:`{{type}} erstellen`,createSchemaTabTitle:`Schema erstellen`,generateSqlFailed:`SQL konnte nicht erzeugt werden: {{message}}`,dropTableTitle:`Tabelle „{{name}}“ löschen?`,dropTableDescription:`Dies löscht die Tabelle und alle darin enthaltenen Zeilen dauerhaft{{from}}. Dies kann nicht rückgängig gemacht werden.`,dropTableConfirm:`Tabelle löschen`,dropObjectTitle:`{{type}} „{{name}}“ löschen?`,dropObjectDescription:`Die Definition von {{type}} wird entfernt{{from}}. Dies kann nicht rückgängig gemacht werden.`,dropObjectConfirm:`{{type}} löschen`,fromDatabase:` aus der Datenbank „{{database}}“`,dropped:`{{type}} {{name}} gelöscht`,dropFailed:`{{type}} konnte nicht gelöscht werden`,dropDatabaseTitle:`Datenbank „{{name}}“ löschen?`,dropDatabaseDescription:`Dies löscht die Datenbank mit allen Tabellen und Daten dauerhaft. Dies kann nicht rückgängig gemacht werden.`,dropDatabaseConfirm:`Datenbank löschen`,droppedDatabase:`Datenbank {{name}} gelöscht`,dropDatabaseFailed:`Datenbank konnte nicht gelöscht werden`,dropSchemaTitle:`Schema „{{name}}“ löschen?`,dropSchemaDescription:`Dies löscht das Schema mit allen Tabellen und Daten dauerhaft. Dies kann nicht rückgängig gemacht werden.`,dropSchemaConfirm:`Schema löschen`,droppedSchema:`Schema {{name}} gelöscht`,dropSchemaFailed:`Schema konnte nicht gelöscht werden`,truncateTitle:`Tabelle „{{name}}“ leeren?`,truncateDescription:`Alle Zeilen in „{{name}}“ werden gelöscht. Die Tabellenstruktur bleibt erhalten. Dies kann nicht rückgängig gemacht werden.`,truncateConfirm:`Tabelle leeren`,truncated:`{{name}} geleert`,truncateFailed:`Leeren fehlgeschlagen`},tree:{loadDatabasesFailed:`Datenbanken konnten nicht geladen werden: {{message}}`},root:{newQuery:`Neuer Abfrage-Tab`,newConsole:`Neuer Konsolen-Tab`,createIndex:`Index anlegen…`,clusterHealth:`Cluster-Zustand`,nodes:`Knoten`,shards:`Shards`,templates:`Index-Vorlagen`},topology:{cluster:`Dieses Redis ist ein Knoten eines Clusters: Planche zeigt nur die Schlüssel dieses Knotens und folgt Cluster-Weiterleitungen noch nicht.`}},d={editor:{destructiveMarker:`Destruktiv: {{what}}`,readOnlyMarker:`Die Verbindung ist schreibgeschützt; diese Anweisung ändert Daten oder Schema`,actionExecute:`Ausführen (gemäß Einstellungen)`,actionExecuteStatement:`Anweisung am Cursor / Auswahl ausführen`,actionExecuteScript:`Gesamtes Skript ausführen`,actionExplainPlan:`Ausführungsplan anzeigen`,actionQueryStructure:`Abfragestruktur`},tabs:{newQuery:`Neue Abfrage`,queryTitle:`Abfrage {{n}}`,erdViewer:`ERD-Viewer`,close:`Schließen`,closeOthers:`Andere schließen`,closeLeft:`Tabs links schließen`,closeRight:`Tabs rechts schließen`,closeAll:`Alle schließen`},executor:{noActiveConnection:`Keine aktive Verbindung`,uncommittedTitle:`Nicht bestätigte Transaktion`,uncommittedDescription:`Diese Verbindung hat eine offene Transaktion. Beim Trennen werden ihre Änderungen zurückgerollt.`,uncommittedConfirm:`Rollback und trennen`,unsavedTitle:`Ungespeicherte Änderungen`,unsavedDescription:`{{file}} enthält Änderungen, die nicht in die Datei gespeichert wurden. Beim Trennen gehen sie verloren (verwenden Sie zuerst Verbindung > Datenbankdatei speichern, um sie zu behalten).`,theSqliteDatabase:`Die SQLite-Datenbank`,unsavedConfirm:`Verwerfen und trennen`}},f=JSON.parse('{"tabs":{"message":"Meldung","info":"Info","history":"Verlauf","result":"Ergebnis","resultN":"Ergebnis {{n}}","plan":"Plan","structure":"Struktur","structureN":"Struktur {{n}}"},"message":{"executing":"Abfrage wird ausgeführt...","error":"Fehler: {{message}}","total":" (Gesamt: {{ms}} ms)","ready":"Bereit.","log":"Ausführungsprotokoll","statementN":"Anweisung {{n}}","limitedBadge":"Limit erreicht","insertId":"Insert-ID {{id}}","failed":"Fehlgeschlagen","failedStatement":"Fehlgeschlagene Anweisung","summary":"{{ok}} erfolgreich · {{failed}} fehlgeschlagen · {{ms}} gesamt","copy":"Kopieren","copied":"Kopiert","showSql":"SQL anzeigen","hideSql":"SQL ausblenden"},"hints":{"title":"Hinweis","unknownColumn":"Keine Spalte namens {{name}}. Meinten Sie {{suggestions}}?","unknownTable":"Keine Tabelle namens {{name}}. Meinten Sie {{suggestions}}?","syntaxSwap":"{{engine}} schreibt {{expected}} statt {{found}}.","doubleQuotedLiteral":"{{engine}} liest \\"{{value}}\\" als Spaltennamen, nicht als Text. Für eine Zeichenkette \'{{value}}\' schreiben."},"ai":{"title":"KI-Erklärung","explain":"Mit KI erklären","thinking":"Fehler wird gelesen…","by":"von {{model}}","applyFix":"Korrektur in neuem Tab öffnen","failed":"Konnte nicht erklärt werden: {{message}}","noFailure":"Es gibt keine fehlgeschlagene Anweisung zu erklären.","noPack":"Der Prompt konnte nicht von planche.dev geladen werden.","badShape":"Das Modell hat nicht im erwarteten Format geantwortet.","noPlan":"Es gibt noch keinen Plan zu erklären.","explainPlan":"Diesen Plan erklären"},"info":{"empty":"Keine Abfrageinformationen verfügbar.","resultN":"Ergebnis {{n}}","metadata":"Abfrage-Metadaten","executionTime":"Ausführungszeit","notAvailable":"k. A.","affectedRows":"Betroffene Zeilen","fields":"Felder","fieldDetails":"Felddetails","colName":"Name","colType":"Typ","colTable":"Tabelle","resultSets":"Ergebnismengen","rowsReturned":"Zurückgegebene Zeilen","insertId":"Letzte Insert-ID","lastQuery":"Zuletzt ausgeführte Anweisung","copy":"Kopieren","copied":"Kopiert","colOrigin":"Ursprung","primaryKey":"Primärschlüssel","rowsAndFields":"{{rows}} Zeilen × {{fields}} Felder","noFields":"Diese Anweisung hat keine Spalten zurückgegeben."},"rowForm":{"colColumn":"Spalte","colValue":"Wert","insertTitle":"Zeile einfügen","editTitle":"Zeile bearbeiten","loading":"Spalten werden geladen...","preview":"Anweisung","nothingToWrite":"Nichts zu schreiben","insert":"Einfügen","update":"Aktualisieren","stageInsert":"Als ausstehende Zeile hinzufügen","stageEdit":"In Raster übernehmen","stageHint":"Werte nur ins Raster stellen, ohne etwas auszuführen; später mit den anderen Änderungen committen.","inserted":"Zeile in {{table}} eingefügt","updated":"Zeile in {{table}} aktualisiert","confirmInsertTitle":"Zeile in {{table}} einfügen?","confirmUpdateTitle":"Zeile in {{table}} aktualisieren?","inTransaction":"Läuft in der offenen Transaktion","pickDate":"Datum wählen","now":"Jetzt","formatJson":"Formatieren","binaryUnsupported":"Binärspalten können hier nicht bearbeitet werden; NULL/DEFAULT lassen oder per SQL setzen.","generateUuid":"UUID erzeugen","defaultValue":"Standardwert","clickToChange":"Zum Ändern klicken","empty":"(leer)","autoHint":"Vom Server erzeugt","mode":{"keep":"Behalten","auto":"Auto","value":"Wert"},"invalid":{"integer":"Ganze Zahl eingeben","unsigned":"Diese Spalte akzeptiert keine negativen Zahlen","number":"Zahl eingeben","json":"Ungültiges JSON","date":"Format YYYY-MM-DD verwenden","datetime":"Format YYYY-MM-DD HH:MM:SS verwenden","time":"Format HH:MM:SS verwenden","length":"Höchstens {{max}} Zeichen"}},"history":{"copied":"In die Zwischenablage kopiert","searchPlaceholder":"Verlauf durchsuchen...","all":"Alle","success":"Erfolgreich","failed":"Fehlgeschlagen","thisTab":"Nur dieser Tab","noMatch":"Keine passenden Einträge.","count":"{{count}} Einträge","clear":"Leeren","clearTitle":"Abfrageverlauf leeren?","clearDescription":"Alle {{count}} Einträge dieser Verbindung werden entfernt. Dies kann nicht rückgängig gemacht werden.","clearConfirm":"Verlauf leeren","insert":"In Editor einfügen","inserted":"In den Editor eingefügt","copy":"Kopieren","rows":"{{count}} Zeilen","affected":"{{count}} betroffen","today":"Heute","yesterday":"Gestern","empty":"Kein Abfrageverlauf."},"json":{"arrayLength":"Array[{{count}}]","keys_one":"{{count}} Schlüssel","keys_other":"{{count}} Schlüssel","invalid":"Ungültiges JSON","clickToView":"Klicken, um JSON anzuzeigen","expandAll":"Alle aufklappen","collapseAll":"Alle einklappen","edit":"Bearbeiten","view":"Anzeigen","copied":"Kopiert","copy":"Kopieren","shortcutHint":"{{mod}}+Enter zum Speichern · Esc zum Abbrechen","cancel":"Abbrechen","save":"Speichern"},"text":{"clickToView":"Klicken, um Text anzuzeigen","size":"{{chars}} Zeichen · {{lines}} Zeilen","wrap":"Umbruch","preview":"Vorschau","source":"Quelltext"},"grid":{"readOnlyConnection":"Schreibgeschützte Verbindung","readOnlyWal":"Schreibgeschützt: -wal-Datei nicht geladen","readOnlyNoPk":"Schreibgeschützt: Tabelle hat keinen Primärschlüssel","commitTitle":"{{count}} Änderung(en) an {{table}} übernehmen?","commitDescription":"Die folgenden Anweisungen werden ausgeführt.","commitConfirm":"Übernehmen","rowPrefix":"Zeile {{row}}:","cancelled":"abgebrochen","commitFailed":"Übernehmen fehlgeschlagen: {{message}}","executedInTransaction":"{{count}} Änderung(en) innerhalb der offenen Transaktion ausgeführt — klicken Sie in der Symbolleiste auf „Commit“, um sie dauerhaft zu machen (Neuladen rollt sie zurück)","committed":"{{count}} Änderung(en) an {{table}} übernommen","noData":"Keine Daten zum Anzeigen.","commit":"Übernehmen","discard":"Verwerfen","addRow":"Zeile hinzufügen","removeNewRow":"Diese neue Zeile verwerfen","addRowForm":"Per Formular hinzufügen","addRowFormHint":"Formular mit einem Feld je Spalte öffnen (als INSERT committet)","editRowForm":"Diese Zeile im Formular bearbeiten","addRowHint":"Neue Zeile hinzufügen (wird als INSERT übernommen)","delete":"Löschen","deleteCount":"Löschen ({{count}})","deleteHint":"Ausgewählte Zeilen löschen (wird als DELETE übernommen). Wählen Sie Zeilen über die Zeilennummern-Spalte aus.","field":"Feld","searchPlaceholder":"Suchen...","orderBy":"Sortieren nach","none":"Keine","refresh":"Aktualisieren","dismiss":"Schließen","clearSelection":"Auswahl aufheben","columns":"Spalten","showAllColumns":"Alle anzeigen","hideAllColumns":"Alle ausblenden","resetWidths":"Breiten zurücksetzen","selectAll":"Alle Zeilen auswählen","emptyTable":"Diese Tabelle enthält keine Zeilen.","noRows":"Keine Zeilen zurückgegeben.","addARow":"Zeile hinzufügen","markedForDeletion":"Zum Löschen markiert — klicken, um wiederherzustellen","newRow":"Neue Zeile","clickToSelect":"Klicken zum Auswählen; Shift/Ctrl für Mehrfachauswahl","rows":"Zeilen: {{count}}","rowsWithNew":"Zeilen: {{count}} (+{{added}})","sortedBy":"Sortiert nach: {{column}} {{direction}}","pageRange":"Zeilen {{from}}–{{to}}","firstPage":"Erste Seite","prevPage":"Vorherige Seite","nextPage":"Nächste Seite","lastPage":"Letzte Seite","pagingBlocked":"Änderungen vor dem Seitenwechsel übernehmen oder verwerfen","selected":"{{count}} ausgewählt","cellsModified":"{{count}} Zelle(n) geändert","newCount":"{{count}} neu","toDelete":"{{count}} zu löschen","searchMode":"Vergleichsart","contains":"enthält","equals":"gleich","followLink":"{{table}} öffnen, wo {{column}} = Wert","linkColumn":"„{{column}}“ mit anderer Tabelle verknüpfen…","editLink":"Verknüpfung von „{{column}}“ bearbeiten…","removeLink":"Verknüpfung entfernen","copyValue":"Wert kopieren","filterByValue":"Filter: {{column}} = dieser Wert","clearFilter":"Filter aufheben","copyColumnName":"Spaltennamen kopieren","editCell":"Zelle bearbeiten","setNull":"Auf NULL setzen","setEmpty":"Auf leeren String setzen","restoreRow":"Zeile wiederherstellen","hideColumn":"Spalte „{{column}}“ ausblenden","copyRowsTsv_one":"Zeile als TSV kopieren (mit Kopfzeile)","copyRowsTsv_other":"{{count}} Zeilen als TSV kopieren (mit Kopfzeile)","copyRowsCsv_one":"Zeile als CSV kopieren","copyRowsCsv_other":"{{count}} Zeilen als CSV kopieren","copyRowsJson_one":"Zeile als JSON kopieren","copyRowsJson_other":"{{count}} Zeilen als JSON kopieren","copyRowsInsert_one":"Zeile als INSERT kopieren","copyRowsInsert_other":"{{count}} Zeilen als INSERT kopieren","deleteRowsPending_one":"Zeile löschen (bis Commit ausstehend)","deleteRowsPending_other":"{{count}} Zeilen löschen (bis Commit ausstehend)","sendRowsToScratchpad_one":"Zeile ins Scratchpad senden","sendRowsToScratchpad_other":"{{count}} Zeilen ins Scratchpad senden","sendAllToScratchpad":"Alle {{count}} geladenen Zeilen ins Scratchpad senden","sentToScratchpad":"{{count}} Zeilen in die Scratchpad-Tabelle {{table}} kopiert.","changesSince":"Seit letztem Laden: {{changed}} geändert · {{added}} neu · {{gone}} weg","changesToggle":"Hervorhebung der Änderungen seit dem letzten Laden umschalten","changesDismiss":"Diese Änderungen verwerfen","previousValue":"Vorheriger Wert: {{value}}","groupByValue":"Nach {{column}} gruppieren und zählen","openItem":"{{name}} öffnen"},"link":{"title":"Spalte mit anderer Tabelle verknüpfen","source":"Spalte","hint":"Die Werte dieser Spalte werden zu Links: Ein Klick öffnet die Zieltabelle gefiltert auf die passenden Zeilen. Echte Fremdschlüssel werden automatisch verknüpft.","targetDatabase":"Zieldatenbank","targetTable":"Zieltabelle","targetColumn":"Zielspalte","pickTable":"Tabelle wählen","pickColumn":"Spalte wählen","remove":"Verknüpfung entfernen","cancel":"Abbrechen","save":"Verknüpfung speichern","targetConnection":"Zielverbindung","targetNotConnected":"Die verknüpfte Verbindung ist nicht geöffnet. Bitte zuerst verbinden."},"running":{"label":"Abfrage läuft…","elapsed":"{{seconds}}s","stop":"Stoppen","stopping":"Wird gestoppt…","cannotCancel":"Diese Engine kann eine laufende Anweisung nicht abbrechen.","agentOutdated":"Der lokale Agent ist zu alt, um eine Abfrage zu stoppen. Aktualisieren Sie ihn mit `npx planche@latest` (oder `planche upgrade`) und verbinden Sie sich neu.","cancelFailed":"Der Agent war nicht erreichbar, die Abfrage wurde nicht gestoppt.","abandoned":"Das Warten auf die Anfrage wurde beendet. Diese Engine hat kein eigenes Abbrechen, die Abfrage kann serverseitig zu Ende laufen."},"plan":{"empty":"Führen Sie „Ausführungsplan anzeigen“ (Strg+Umschalt+E) aus, um zu sehen, wie die Engine die Anweisung am Cursor abarbeitet.","unreadable":"Der Plan ließ sich nicht als Baum lesen; die Ausgabe der Engine wird unverändert angezeigt.","estimated":"Geschätzt","analyzed":"Gemessen","estimatedHint":"Schätzungen des Optimierers. Die Anweisung wurde nicht ausgeführt.","analyzedHint":"Die Anweisung wurde ausgeführt; Zeilenzahlen und Zeiten sind echt.","totalCost":"Höchste Knotenkosten","totalTime":"Langsamster Knoten","rows":"Geschätzte Zeilen","actualRows":"Tatsächliche Zeilen","cost":"Kosten","time":"Zeit","showRaw":"Rohausgabe","showTree":"Planbaum","selectNode":"Wählen Sie einen Knoten, um zu sehen, was die Engine dazu gemeldet hat.","noDetails":"Die Engine hat zu diesem Knoten nichts weiter gemeldet.","warnings":{"fullScan":"Full Scan","noIndex":"Kein Index","estimateOff":"Schätzung daneben","temporary":"Temp-Tabelle","filesort":"Sortierung"},"hints":{"fullScan":"Jede Zeile der Tabelle wird gelesen. Ein Index auf den gefilterten Spalten würde das vermeiden.","noIndex":"Die Engine fand keinen verwendbaren Index für diesen Zugriff.","estimateOff":"Der Optimierer erwartete eine ganz andere Zeilenzahl. Aktualisierte Tabellenstatistiken beheben das oft.","temporary":"Zeilen werden vor dem nächsten Schritt in einer temporären Tabelle materialisiert.","filesort":"Sortierung außerhalb eines Index. Ein zum ORDER BY passender Index macht sie überflüssig."}},"structure":{"empty":"Abfragestruktur anzeigen (Strg+Umschalt+G) zeigt, woher die Zeilen der Anweisung am Cursor stammen.","notQuery":"Nur SELECT-Anweisungen haben ein Strukturdiagramm.","unsupported":"{{engine}}-Anweisungen lassen sich nicht als Strukturdiagramm lesen.","parseError":"Die Anweisung konnte nicht geparst werden: {{message}}","columns_one":"{{count}} Spalte","columns_other":"{{count}} Spalten","columnsUnknown":"Breite unbekannt","fit":"Einpassen","reveal":"Im Editor auswählen","notDrawn":"Nicht gezeichnet: {{what}}","kindTable":"TABELLE","kindCte":"CTE","kindCteRef":"REF","kindDerived":"UNTERABFRAGE","kindScalar":"SKALAR","kindSetop":"MENGE","kindResult":"ERGEBNIS","fullscreen":"Vollbild","exitFullscreen":"Vollbild beenden"},"viewer":{"fullscreen":"Vollbild","exitFullscreen":"Vollbild beenden","textTitle":"Textwert"},"reply":{"table":"Tabelle"}}'),p={defaultDescription:`Diese Aktion kann nicht rückgängig gemacht werden.`,typeToConfirm:`Geben Sie <name/> zur Bestätigung ein`,cancel:`Abbrechen`,confirm:`Bestätigen`,ok:`OK`},m={dialog:{createTitle:`Tabelle erstellen`,alterTitle:`Tabelle ändern`,duplicateTitle:`Tabellenstruktur duplizieren`,create:`Erstellen`,alter:`Ändern`,cancel:`Abbrechen`,tableName:`Tabellenname`,tableNamePlaceholder:`Tabellennamen eingeben...`,loading:`Tabellenschema wird geladen...`,tabSchema:`Schema`,tabIndexes:`Indizes`,tabProperties:`Eigenschaften`,applying:`Wird angewendet…`,cannotAlterColumns:`{{engine}} kann eine bereits vorhandene Spalte nicht ändern ({{columns}}). Spalten hinzufügen, entfernen und umbenennen sowie Indizes ändern funktionieren; für eine geänderte Spaltendefinition muss die Tabelle neu erstellt werden.`},schema:{colField:`Feldname`,colType:`Datentyp`,colLength:`Länge`,colDefault:`Standard`,colPk:`PK`,colNotNull:`Not Null`,colUnsigned:`Unsigned`,colAutoIncrement:`Auto Incr`,colZerofill:`Zerofill`,colComment:`Kommentar`,empty:`Keine Spalten definiert. Klicken Sie auf „Spalte hinzufügen“, um eine anzulegen.`,add:`Spalte hinzufügen`,remove:`Spalte entfernen`},indexes:{colName:`Indexname`,colType:`Indextyp`,colColumns:`Spalten`,empty:`Keine Indizes definiert. Klicken Sie auf „Index hinzufügen“, um einen anzulegen.`,add:`Index hinzufügen`,remove:`Index entfernen`},index:{addTitle:`Index hinzufügen`,editTitle:`Index bearbeiten`,name:`Indexname`,namePlaceholder:`Indexnamen eingeben`,type:`Indextyp`,columns:`Spalten`,noColumns:`Keine Spalten verfügbar. Definieren Sie zuerst Spalten im Tab „Schema“.`,unnamed:`(unbenannt)`,cancel:`Abbrechen`,ok:`OK`},properties:{engine:`Engine`,charset:`Zeichensatz`,collation:`Kollation`,autoIncrement:`Auto Increment`,autoIncrementPlaceholder:`Standard`,comment:`Kommentar`},info:{engine:`Engine`,version:`Version`,rowFormat:`Zeilenformat`,rows:`Zeilen`,avgRowLength:`Ø Zeilenlänge`,dataLength:`Datengröße`,createTime:`Erstellt am`,updateTime:`Aktualisiert am`,collation:`Kollation`,comment:`Kommentar`},copy:{title:`Tabelle kopieren`,source:`Quelle`,targetConnection:`Zielverbindung`,targetDatabase:`Zieldatenbank`,targetTable:`Name der Zieltabelle`,what:`Kopieren`,structureAndData:`Struktur & Daten`,structureOnly:`Nur Struktur`,ifExists:`Wenn die Zieltabelle existiert`,abort:`Abbrechen (Standard)`,dropAndRecreate:`Löschen und neu anlegen (Name muss erneut eingegeben werden)`,preview:`CREATE TABLE auf dem Ziel (bearbeitbar)`,crossEngineHint:`Das Ziel ist {{engine}}: Typen unten prüfen, MySQL-spezifische Attribute wurden entfernt.`,readOnly:`schreibgeschützt`,loading:`Lädt…`,progressCreate:`Tabelle wird angelegt…`,progressCount:`Zeilen werden gezählt…`,progressRows:`{{copied}} von {{total}} Zeilen kopiert`,progressDone:`Fertig`,doneTitle:`Tabelle kopiert`,doneRows:`{{count}} Zeilen nach {{table}} kopiert.`,doneStructure:`Struktur von {{table}} angelegt.`,noColumns:`Die Quelltabelle hat keine Spalten.`,exists:`Die Tabelle {{table}} existiert im Ziel bereits. Anderen Namen wählen oder „Löschen und neu anlegen“.`,dropTitle:`Vorhandene Tabelle {{table}} löschen?`,dropDescription:`Die Zieltabelle und alle ihre Zeilen werden vor dem Kopieren gelöscht. Das lässt sich nicht rückgängig machen.`,dropConfirm:`Löschen und kopieren`,cancelled:`Kopieren abgebrochen.`,stop:`Stopp`,cancel:`Abbrechen`,copy:`Kopieren`}},h={copy:{title:`Datenbank kopieren`,source:`Quelldatenbank`,target:`Name der Zieldatenbank`,targetPlaceholder:`Namen der Zieldatenbank eingeben`,options:`Optionen`,structureAndData:`Struktur und Daten`,structureOnly:`Nur Struktur`,cancel:`Abbrechen`,copy:`Kopieren`,creating:`{{database}} wird erstellt…`,copying:`{{table}} wird kopiert ({{index}} von {{total}})…`},diff:{title:`Schemas vergleichen`,source:`Quelle`,target:`Ziel`,pickConnection:`Verbindung`,pickDatabase:`Datenbank`,crossEngineHint:`Unterschiedliche Engines: Typnamen unterscheiden sich je Dialekt, daher zeigen die meisten Spalten eine Typänderung.`,sameSide:`Quelle und Ziel sind dieselbe Datenbank.`,summary:`{{changed}} geändert, {{missingTarget}} fehlen im Ziel, {{missingSource}} nur im Ziel, {{identical}} identisch`,showIdentical:`Identische Tabellen anzeigen`,identicalAll:`Die Tabellen sind identisch.`,column:`Spalte`,index:`Index`,object:`Objekt`,selectTable:`Tabelle auswählen, um Unterschiede zu sehen.`,missingInTarget:`{{table}} existiert im Ziel nicht; das Skript legt sie an.`,missingInSource:`{{table}} existiert nur im Ziel; das Skript löscht sie (auskommentiert, sofern DROPs nicht eingeschlossen sind).`,includeDrops:`DROP-Anweisungen als ausführbares SQL einschließen (Standard: auskommentiert)`,tabTitle:`Sync {{database}}`,close:`Schließen`,compare:`Vergleichen`,comparing:`Vergleicht…`,openScript:`Skript im Editor öffnen`,noDefinition:`Keine CREATE-Anweisung verfügbar`},create:{title:`Datenbank erstellen`,name:`Datenbankname`,namePlaceholder:`Datenbanknamen eingeben`,charset:`Zeichensatz`,collation:`Kollation`,cancel:`Abbrechen`,create:`Erstellen`},csv:{title:`Als {{format}} herunterladen`,target:`Ziel`,targetQueryResult:`Aktuelles Abfrageergebnis`,targetTableData:`Tabellendaten`,tableName:`Tabellenname`,tableNamePlaceholder:`Tabellennamen eingeben`,delimiter:`Trennzeichen`,delimiterComma:`Komma (,)`,delimiterTab:`Tabulator (\\t)`,delimiterSemicolon:`Semikolon (;)`,delimiterPipe:`Pipe (|)`,includeHeaders:`Kopfzeile einschließen`,cancel:`Abbrechen`,download:`Herunterladen`,downloading:`Wird heruntergeladen...`,progress:`{{loaded}} von {{total}} Zeilen geschrieben`,progressUnknown:`{{loaded}} Zeilen geschrieben`,stop:`Stopp`,done:`{{count}} Zeilen aus {{table}} als {{format}} exportiert.`,database:`Datenbank`,databasePlaceholder:`Datenbank wählen`},html:{title:`Schema als HTML`,database:`Datenbank`,selectDatabase:`Datenbank auswählen`,tables:`Einzuschließende Tabellen`,selectAll:`Alle auswählen`,deselectAll:`Auswahl aufheben`,noTables:`Keine Tabellen verfügbar.`,include:`Einschließen`,includeColumns:`Spalten`,includeIndexes:`Indizes`,includeProperties:`Eigenschaften`,cancel:`Abbrechen`,generate:`Generieren`,generating:`Wird generiert...`,sectionColumns:`Spalten`,sectionIndexes:`Indizes`,sectionProperties:`Eigenschaften`,docTitle:`Schema: {{database}}`,heading:`Datenbank: {{database}}`,summary:`Tabellen: {{count}} | Generiert: {{date}}`,footer:`Generiert von Planche 2026`},dataDiff:{title:`Daten vergleichen`,pickTable:`Tabelle`,hint:`Zeilen werden über den Primärschlüssel der Quelltabelle zugeordnet und als Text verglichen. Pro Seite werden bis zu {{cap}} Zeilen geladen; große Tabellen vorher per Filter eingrenzen.`,sameSide:`Quelle und Ziel sind dieselbe Tabelle.`,noPrimaryKey:`{{table}} hat keinen Primärschlüssel; ohne ihn lassen sich Zeilen nicht zuordnen.`,keyMissingInTarget:`Der Zieltabelle fehlen die Schlüsselspalten: {{columns}}`,summary:`Schlüssel: {{key}} – {{added}} fehlen im Ziel, {{changed}} unterschiedlich, {{removed}} nur im Ziel, {{identical}} identisch`,capped:`Nur die ersten {{cap}} Zeilen jeder Seite wurden verglichen.`,ignoredColumns:`Ignorierte Spalten (nur auf einer Seite): {{columns}}`,added_one:`{{count}} fehlt im Ziel`,added_other:`{{count}} fehlen im Ziel`,changed_one:`{{count}} unterschiedlich`,changed_other:`{{count}} unterschiedlich`,removed_one:`{{count}} nur im Ziel`,removed_other:`{{count}} nur im Ziel`,none:`Nichts in dieser Gruppe.`,more:`… {{count}} weitere nicht aufgeführt`,includeDeletes:`DELETE-Anweisungen als ausführbares SQL einschließen (Standard: auskommentiert)`,tabTitle:`Daten-Sync {{table}}`,loading:`Zeilen werden geladen – Quelle: {{source}}, Ziel: {{target}}`},schema:{createTitle:`Schema erstellen`,name:`Schemaname`,namePlaceholder:`Schemanamen eingeben`,create:`Erstellen`,cancel:`Abbrechen`},groupBy:{title:`Gruppieren und zählen`,description:`Zeilen von {{table}} nach den gewählten Spalten zählen.`,columns:`Gruppieren nach`,aggregate:`Zusätzliche Aggregation`,countOnly:`Nur Anzahl`,column:`Spalte`,minCount:`Mindestzeilen pro Gruppe`,useFilter:`Aktuellen Filter des Rasters anwenden`,noIndexWarning:`Keine der gewählten Spalten führt einen Index an, daher muss die Datenbank die ganze Tabelle lesen und sortieren. Bei großen Tabellen kann das dauern.`,preview:`Abfrage`,pickColumn:`Wählen Sie mindestens eine Spalte zum Gruppieren.`,openInTab:`In neuem Tab öffnen`,run:`Ausführen`,tabTitle:`{{table}} gruppieren`,indexed:`Führt einen Index an`,connection:`Verbindung`,database:`Datenbank`,table:`Tabelle`}},g={manager:{title:`Benutzerverwaltung`,addUser:`Benutzer hinzufügen`,removeUser:`Benutzer entfernen`,noUsers:`Keine Benutzer geladen`,grantScope:`Berechtigungsbereich`,apply:`Anwenden`,close:`Schließen`,removed:`Benutzer '{{user}}'@'{{host}}' entfernt`,selectUserFirst:`Bitte wählen Sie zuerst einen Benutzer aus`,applied:`Änderungen erfolgreich angewendet`,noChanges:`Keine Rechteänderungen zum Anwenden.`},add:{title:`Benutzer hinzufügen`,username:`Benutzername`,usernamePlaceholder:`Benutzernamen eingeben`,host:`Host`,password:`Passwort`,passwordPlaceholder:`Passwort eingeben`,confirmPassword:`Passwort bestätigen`,confirmPasswordPlaceholder:`Passwort bestätigen`,plugin:`Plugin`,cancel:`Abbrechen`,add:`Hinzufügen`,usernameRequired:`Benutzername ist erforderlich`,passwordMismatch:`Die Passwörter stimmen nicht überein`,added:`Benutzer '{{user}}'@'{{host}}' hinzugefügt`},privileges:{globalTitle:`Globale Berechtigungen`,databaseTitle:`Datenbankberechtigungen`,tableTitle:`Tabellenberechtigungen`,checkAll:`Alle auswählen`,uncheckAll:`Alle abwählen`,categoryData:`Daten`,categoryStructure:`Struktur`,categoryAdministration:`Administration`},grantTree:{globalPrivileges:`Globale Berechtigungen`}},_={close:`Schließen`,noActiveConnection:`Keine aktive Verbindung`,variableName:`Variablenname`,value:`Wert`,scope:{session:`Session`,global:`Global`},findReplace:{findPlaceholder:`Suchen`,replacePlaceholder:`Ersetzen`,found:`{{count}} gefunden`,noResults:`Keine Treffer`,previous:`Zurück`,next:`Weiter`,close:`Schließen`,replace:`Ersetzen`,all:`Alle`,caseSensitive:`Groß-/Kleinschreibung`,regex:`Regex`,wholeWord:`Ganzes Wort`},flush:{title:`Flush`,executed:`Ausgeführt: {{command}}`,executeError:`Fehler beim Ausführen von {{command}}: {{message}}`},localHistory:{title:`Lokaler Verlauf`,description:`Versionen des Editortexts dieser Verbindung: bei jeder Ausführung, nach einer Tipppause und beim Schließen eines Tabs.`,empty:`Noch keine Versionen aufgezeichnet.`,noMatch:`Keine Version passt zu dieser Suche.`,notPersisted:`„Abfrageverlauf über Neuladen hinweg behalten“ ist unter Einstellungen > Sicherheit deaktiviert; Versionen bleiben nur für diese Sitzung erhalten.`,searchPlaceholder:`Versionen durchsuchen`,scopeTab:`Dieser Tab`,scopeAll:`Alle Tabs`,compareCurrent:`mit aktuell`,comparePrevious:`mit vorheriger`,diffAgainstCurrent:`Verglichen mit dem aktuellen Editortext`,diffAgainstPrevious:`Verglichen mit der Version von {{time}}`,noPrevious:`Keine frühere Version dieses Tabs zum Vergleichen`,restored:`Editorinhalt aus dem lokalen Verlauf wiederhergestellt`,restore:`Diese Version wiederherstellen`,openInNewTab:`In neuem Tab öffnen`,openedInTab:`Version in einem neuen Tab geöffnet`,delete:`Diese Version löschen`,clearAll:`Verlauf löschen`,chars:`{{count}} Zeichen`,reason:{execute:`vor der Ausführung`,edit:`beim Bearbeiten`,replaced:`vor dem Überschreiben`,restore:`vor dem Wiederherstellen`,close:`vor dem Schließen`}},processList:{title:`Prozessliste`,refresh:`Aktualisieren`,autoRefresh:`Automatisch aktualisieren`,empty:`Keine Prozesse vorhanden`,kill:`Beenden`,killProcess:`Prozess beenden`,selectToKill:`Bitte wählen Sie einen zu beendenden Prozess aus`,killed:`Prozess {{id}} wurde beendet`,killError:`Fehler beim Beenden des Prozesses: {{message}}`,loadError:`Fehler beim Laden der Prozessliste: {{message}}`,updatedAt:`aktualisiert {{time}}`,filterPlaceholder:`Nach Benutzer, Host, DB, SQL filtern...`,hideIdle:`Inaktive ausblenden`,noMatch:`Keine Prozesse entsprechen dem Filter`,self:`ich`,selfHint:`Dies ist die eigene Sitzung von Planche`,statementOf:`Anweisung von #{{id}}`,noStatement:`Keine Anweisung`,copy:`Kopieren`,copied:`Kopiert`,killConfirmTitle:`Prozess {{id}} beenden?`,killConfirmDescription:`Die Sitzung von {{user}}@{{host}} wird beendet und die laufende Anweisung abgebrochen. Eine offene Transaktion wird zurückgerollt.`,stats:{total:`Gesamt`,active:`Aktiv`,idle:`Inaktiv`,longest:`Längste Laufzeit`},columns:{id:`Id`,user:`Benutzer`,host:`Host`,db:`db`,command:`Befehl`,time:`Zeit`,state:`Zustand`,info:`Info`,action:`Aktion`}},status:{title:`Serverstatus`,filterPlaceholder:`Statusvariablen filtern...`,empty:`Keine Statusvariablen vorhanden`,loadError:`Fehler beim Laden des Status: {{message}}`},variables:{title:`Servervariablen`,filterPlaceholder:`Variablen filtern...`,empty:`Keine Variablen vorhanden`,loadError:`Fehler beim Laden der Variablen: {{message}}`}},v={empty:{title:`Öffnen Sie eine Prisma-Schemadatei (.prisma), um das ERD anzuzeigen`,description:`Modelle, Enums und Relationen werden automatisch analysiert`,openFile:`.prisma-Datei öffnen`,dropHint:`oder ziehen Sie eine Datei in diesen Bereich`},entity:{enumBadge:`ENUM`,modelBadge:`MODEL`,columns:{value:`Wert`,comment:`Kommentar`,type:`Typ`,column:`Spalte`},linkBadge:`LINK`,externalTitle:`Verknüpfte Tabelle auf {{location}} (Spaltenverknüpfung, kein echter Fremdschlüssel)`,nullable:`Spalte erlaubt NULL`},toolbar:{refresh:`Aktualisieren`,zoomIn:`Vergrößern`,zoomOut:`Verkleinern`,resetView:`Ansicht zurücksetzen`,center:`Zentrieren`,fitAll:`Alles einpassen`,spreadAll:`Überlappungen lösen`,resetLayout:`Layout zurücksetzen`,legendOneToMany:`1:N (FK)`,tables:`Tabellen:`,relations:`Relationen:`,columns:`Spalten:`,fullscreen:`Vollbild`,exitFullscreen:`Vollbild beenden`},viewer:{noServerConnection:`Keine aktive Serververbindung`,loading:`Schema wird aus {{database}} geladen...`,loadFailed:`ERD konnte nicht geladen werden`,noDatabase:`Keine Datenbank ausgewählt.`,selectDatabaseHint:`Wählen Sie im Schemabaum eine Datenbank aus und öffnen Sie dann „ERD anzeigen“.`}},y={runAnyway:`Trotzdem ausführen`,query:{rowsReturned:`{{count}} Zeile(n) zurückgegeben`,rowsAffected:`{{count}} Zeile(n) betroffen`,rowsReturnedLimited:`{{count}} Zeile(n) zurückgegeben (begrenzt auf {{limit}}; fügen Sie LIMIT hinzu, um mehr abzurufen)`,notConnected:`Nicht verbunden`,fileNotOpen:`Die SQLite-Datei ist noch nicht geöffnet — klicken Sie oben auf „Datei erneut öffnen“, um den Zugriff erneut zu gewähren.`,failed:`Abfrage fehlgeschlagen`,nothingToExecute:`Nichts auszuführen`,dryRunMismatch:`Die Vorschau erwartete {{predicted}} Zeilen, geändert wurden {{actual}}. Die Daten können sich seit der Vorschau geändert haben; andernfalls passte die Vorschau nicht zu dieser Anweisung.`},destructive:{title_one:`Destruktive Anweisung ausführen?`,title_other:`{{count}} destruktive Anweisungen ausführen?`,description:`Folgendes wird Daten dauerhaft ändern oder löschen. Dies kann nicht rückgängig gemacht werden.`,unknownTarget:`(unbekannt)`,deleteAll:`DELETE aller Zeilen aus {{target}}`,updateAll:`UPDATE aller Zeilen in {{target}}`,alterDrop:`DROP COLUMN/PARTITION auf {{target}}`},readOnly:{refused:`Die Verbindung „{{label}}“ ist schreibgeschützt. {{count}} Anweisung(en) würde(n) Daten oder Schema ändern.`,title:`„{{label}}“ ist schreibgeschützt`,description:`Diese Anweisungen ändern Daten oder Schema. Trotzdem auf dieser Verbindung ausführen?`},transaction:{startFailed:`Transaktion konnte nicht gestartet werden`,started:`Transaktion gestartet — Commit oder Rollback, wenn Sie fertig sind`,implicitCommit:`{{kind}} hat ein implizites COMMIT der offenen Transaktion ausgelöst`,committed:`Transaktion bestätigt (Commit)`,rolledBack:`Transaktion zurückgerollt (Rollback)`,commandFailed:`{{name}} fehlgeschlagen`,commandFailedWith:`{{name}} fehlgeschlagen: {{message}}`},save:{notBrowserSqlite:`Keine SQLite-Verbindung im Browser.`,inMemory:`In-Memory-Datenbank: Sie kann nur als Download exportiert werden.`,noFileSystemAccess:`Dieser Browser hat keine File System Access API (nur Chrome/Edge): Die Datenbank wird als Download exportiert, statt direkt geschrieben zu werden.`,noWritableHandle:`Die Datei wurde ohne beschreibbares Handle geöffnet: Sie wird als Download exportiert.`},agent:{devProxyUrl:`{{url}} (über Dev-Proxy)`,notPlanche:`Es hat etwas geantwortet, aber es ist kein Planche-Agent`,unreachable:"Planche-Agent unter {{url}} nicht erreichbar — führen Sie `npx planche` aus ({{message}})",httpError:`HTTP-Fehler: {{status}} {{statusText}}`,emptyResponse:`Der Tunneling-Server hat eine leere Antwort zurückgegeben`,reconnected:`Verbindung zu {{name}} wiederhergestellt — der Agent hatte sie verworfen (Neustart oder Leerlauf-Timeout).`,driverUnsupported:`Dieser Agent kann noch keine {{driver}}-Verbindungen öffnen. Aktualisieren Sie ihn mit npx planche@latest oder, bei einer Standalone-Installation, mit planche upgrade.`},sample:{profileName:`Beispiel-Shop (im Browser)`,downloadFailed:`Die Beispieldatenbank konnte nicht heruntergeladen werden ({{status}})`,tabTitle:`Abfrage 1`},sqliteFile:{tooSmall:`Die Datei ist zu klein, um eine SQLite-Datenbank zu sein.`,notSqlite:`Keine SQLite-Datenbank (oder eine verschlüsselte, z. B. SQLCipher). Der 16-Byte-Header lautet nicht „SQLite format 3“.`,badPageSize:`Beschädigter SQLite-Header: ungültige Seitengröße {{size}}.`,unreadable:`SQLite konnte die Datei nicht lesen: {{message}}`,pickerDescription:`SQLite-Datenbank`,walNotLoaded:`Diese Datenbank ist im WAL-Modus und ihre -wal-Datei wurde nicht geladen. Laden Sie sie oder bestätigen Sie im Banner, dass keine -wal-Datei existiert, bevor Sie speichern.`,changedOnDisk:`{{name}} wurde nach dem Laden auf dem Datenträger geändert (ein anderes Programm hat hineingeschrieben). Speichern würde diese Änderungen überschreiben — öffnen Sie die Datei erneut und wiederholen Sie Ihre Änderungen, oder verwenden Sie den Tunneling-Server.`,walHasChanges:`{{name}}-wal enthält neue Änderungen; laden Sie sie vor dem Speichern.`,walChangedOnDisk:`{{name}}-wal wurde nach dem Laden von einem anderen Programm geschrieben; öffnen Sie die Datei vor dem Speichern erneut.`,writeDenied:`Schreibzugriff auf {{name}} wurde nicht gewährt. Erlauben Sie ihn in der Browserabfrage oder exportieren Sie stattdessen als Download.`},environment:{none:`Keine`,green:`Grün (Entwicklung)`,blue:`Blau`,yellow:`Gelb (Staging)`,orange:`Orange`,red:`Rot (Produktion)`,purple:`Lila`},scratchpad:{profileName:`Scratchpad`,namePromptTitle:`Name der Scratchpad-Tabelle`,namePromptDescription:`Im Scratchpad gibt es bereits eine Tabelle {{table}}. Wählen Sie einen anderen Namen.`,nameTaken:`Tabelle {{table}} existiert bereits.`},federated:{pulling:`Hole {{table}} von {{connection}}…`,capped:`{{table}}: nur die ersten {{limit}} Zeilen wurden geholt.`,templateLine1:`Eine Tabelle einer offenen Verbindung als "Verbindungsname".database.table referenzieren; sie wird vor der Ausführung in dieses Scratchpad kopiert.`,templateLine2:`Tabellen sind auf {{limit}} Zeilen begrenzt. Die Abfrage selbst läuft in SQLite (in Ihrem Browser).`,templateConnections:`Offene Verbindungen: {{names}}`,templateNone:`Noch keine andere Verbindung offen. Verbinden Sie eine und referenzieren Sie sie hier.`,done:`{{rows}} Zeilen aus {{tables}} entfernten Tabellen ins Scratchpad geholt.`,pullingProgress:`Hole {{table}} von {{connection}}: {{loaded}} / {{total}} Zeilen…`},paged:{noColumns:`{{table}} hat keine Spalten.`,cancelled:`Abgebrochen.`},console:{unreadable:`Zeile {{line}}: {{message}}`}},b={title:`Nutzungsbedingungen`,version:`Version {{version}}`,englishOnly:`Die Bedingungen liegen auf Englisch vor. Die Zusammenfassung auf dem Startbildschirm ist in Ihrer Sprache verfügbar.`,privacyLink:`Datenschutzerklärung`,refundLink:`Rückerstattungsrichtlinie`,online:`Auf planche.dev lesen`,updated:`Zuletzt geändert am {{date}}`},x={title:`{{kind}} würde {{count}} Zeilen betreffen`,titleUnknown:`{{kind}} – betroffene Zeilen unbekannt`,description:`Das sind die Zeilen, die die Anweisung jetzt berühren würde, per SELECT gelesen. Noch wurde nichts geschrieben.`,previewFailed:`Die Vorschau-Abfrage ist fehlgeschlagen: {{error}}
|
|
2
2
|
Sie können die Anweisung trotzdem ausführen.`,noRows:`Keine Zeile passt – die Anweisung würde nichts ändern.`,truncated:`Die ersten {{shown}} von {{count}} Zeilen werden angezeigt.`,previewQuery:`Vorschau-Abfrage`,run:`{{kind}} ausführen ({{count}} Zeilen)`,runAnyway:`Trotzdem ausführen`},S={badge:`PRO`,tooltip:`Erfordert eine Pro-Lizenz.`,noticeTitle:`Pro-Funktionen`,notice:`Mit PRO markierte Funktionen erfordern eine Pro-Lizenz.`,licenseTitle:`Planche Pro`,licenseDescription:`Fügen Sie den Lizenzschlüssel aus Ihrer Kaufbestätigung ein. Er wird auf diesem Rechner geprüft; nichts wird irgendwohin gesendet.`,blocked:`{{feature}} erfordert eine Pro-Lizenz.`,keyLabel:`Lizenzschlüssel`,activate:`Aktivieren`,remove:`Lizenz entfernen`,active:`Pro ist aktiv.`,licensedTo:`Lizenziert für {{email}}`,validUntil:`Gültig bis {{date}}`,expiredOn:`Diese Lizenz ist am {{date}} abgelaufen. Verlängern Sie sie, um Pro weiter zu nutzen.`,invalidKey:`Das ist kein Planche-Lizenzschlüssel.`,notConfigured:`Dieser Build kann keine Lizenzschlüssel prüfen. Bitte melden Sie das.`,noWebcrypto:`Dieser Browser kann keine Lizenzschlüssel prüfen.`,pricing:`Preise ansehen`,features:{ssh_tunnel:`SSH-Tunnel`,compare_schemas:`Schemavergleich`,compare_data:`Datenvergleich`,copy_table:`Tabelle kopieren`,dry_run:`Dry Run`,federated:`Föderierte Abfragen`,scratchpad:`Scratchpad`,column_link:`Spaltenlinks`,sync:`Verbindungs-Sync`,ai_explain:`KI-Erklärungen`},included:`In Pro enthalten`,haveKey:`Sie haben bereits einen Lizenzschlüssel?`,perMonth:`/ Monat`,priceNote:`Einmal jährlich {{annual}}. Monatlich sind es {{monthly}}.`,featureDetails:{sync:`Ihre Profile auf jedem Rechner, im Browser verschlüsselt, bevor sie ihn verlassen`,ssh_tunnel:`Eine Datenbank hinter einem Jump-Host per Passwort, Schlüssel oder ssh-agent erreichen`,compare_schemas:`Zwei offene Verbindungen vergleichen und das ALTER-Skript erhalten`,compare_data:`Zeilen zweier Tabellen vergleichen und das INSERT- und UPDATE-Skript erhalten`,copy_table:`Eine Tabelle in einer anderen Verbindung oder Engine neu aufbauen`,dry_run:`Vor dem Ausführen sehen, wie viele Zeilen ein UPDATE oder DELETE ändert und welche`,federated:`Tabellen aus verschiedenen Verbindungen verbinden`,scratchpad:`Eine lokale SQLite-Datenbank für Arbeitsdaten`,column_link:`Virtuelle Fremdschlüssel, denen Sie im Raster folgen`,ai_explain:`Ein Modell fragen, warum eine Anweisung fehlschlug oder ein Plan langsam ist — mit Ihrem Schema`}},C={npxNote:`Benötigt Node.js 22 oder neuer. Es wird nichts dauerhaft installiert – npx führt den Agenten direkt aus der npm-Registry aus.`,installNote:`Kein Node.js nötig. Die Installation liegt ohne Administratorrechte in Ihrem Home-Verzeichnis; danach startet der Befehl planche ihn jederzeit.`},w={unsupported:`{{engine}} liefert keine Ausführungspläne.`,oneStatement:`Der Plan wird für genau eine Anweisung erstellt. Setzen Sie den Cursor in die Anweisung oder markieren Sie sie.`},T={title:`KI-Assistent`,intro:`Bitte um eine Abfrage oder sag, was zu tun ist — er liest das Schema, schreibt SQL in einen Tab und führt es aus. Er arbeitet auf der geöffneten Verbindung, und jede behält ihre eigene Unterhaltung.`,privacy:`Was die Werkzeuge lesen — einschließlich Beispielzeilen — geht an deinen Provider. Nichts erreicht planche.dev.`,placeholder:`z. B. Abfrage für den Monatsumsatz auf der Demo-Datenbank bauen`,send:`Senden`,stop:`Stopp`,clear:`Neues Gespräch`,working:`Arbeitet…`,tabTitle:`KI-Abfrage`,approvalTitle:`Dieser Schritt schreibt. Ausführen?`,approve:`Ausführen`,reject:`Überspringen`,rejected:`Der Nutzer hat die Ausführung abgelehnt.`,notConfigured:`Auf dem Agenten ist kein KI-Schlüssel gesetzt. Unter Einstellungen ▸ KI hinzufügen.`,needsAgent:`Dieser lokale Agent kann noch keine Werkzeuge ausführen. Aktualisieren und neu koppeln.`,failed:`Fehlgeschlagen`,empty:`Noch nichts gefragt.`,steps:`{{count}} Schritte`,tooManySteps:`Nach {{count}} Schritten ohne Antwort abgebrochen.`,collapse:`Einklappen`,planWarningTitle:`Diese Abfrage ist ein Full Scan. Trotzdem ausführen?`,interrupted:`Durch Neuladen unterbrochen.`,external:`Von außerhalb von Planche angefordert`},E={title:`KI-Agent verbinden (MCP)`,description:`Einen KI-Agenten mit MCP die Werkzeuge von Planche nutzen lassen.`,readsLabel:`Liest`,reads:`Er liest die offene Datenbank, und die Ergebnisse gehen an das Programm.`,writesLabel:`Schreibt`,writes:`Datenändernde Anweisungen brauchen deine Zustimmung. DROP und TRUNCATE kann er nicht.`,needsLabel:`Braucht`,needs:`Das KI-Panel muss offen sein.`,tokenLabel:`Token`,token:`Ein Token für alle Programme, denen du es gibst. Widerrufen trennt alle.`,command:`Zu Claude Code hinzufügen`,json:`Von Hand einrichten`,stored:`Gespeichert unter {{path}}.`,revoke:`Token widerrufen`,revoked:`Widerrufen. Öffne dies erneut für ein neues.`},D={title:`Verbindungs-Sync`,description:`Ihre Verbindungsprofile, in diesem Browser verschlüsselt und auf planche.dev abgelegt, damit Ihre anderen Rechner sie nutzen können.`,stored:`Der Dienst speichert einen verschlüsselten Block. Hosts, Benutzer, Passwörter und SSH-Schlüssel kann er nicht lesen.`,unavailable:`Sync läuft nur auf planche.dev. Diese Planche-Kopie liefert Ihr lokaler Agent aus, und der darf nicht ins Internet.`,signIn:`Mit GitHub anmelden`,signedInAs:`Angemeldet als {{email}}`,signOut:`Abmelden`,createTitle:`Passphrase wählen`,createHint:`Diese Passphrase verschlüsselt Ihre Profile. Sie erreicht den Server nie – geht sie verloren, ist die abgelegte Kopie nicht wiederherstellbar und muss von einem Rechner neu erzeugt werden, der die Profile noch hat.`,passphrase:`Passphrase`,confirm:`Passphrase bestätigen`,mismatch:`Die beiden Passphrasen stimmen nicht überein.`,tooShort:`Mindestens {{count}} Zeichen.`,enable:`Sync einschalten`,unlockTitle:`Profile entsperren`,unlockHint:`Geben Sie die Passphrase ein, die Sie beim Einschalten des Syncs gewählt haben.`,unlock:`Entsperren`,wrongPassphrase:`Falsche Passphrase, oder die abgelegte Kopie ist beschädigt.`,syncNow:`Jetzt synchronisieren`,lastSynced:`Zuletzt synchronisiert {{when}}`,neverSynced:`Noch nicht synchronisiert`,profiles_one:`{{count}} Profil`,profiles_other:`{{count}} Profile`,changePassphrase:`Passphrase ändern`,deleteVault:`Vom Server löschen`,deleteVaultConfirm:`Die verschlüsselte Kopie von planche.dev entfernen? Die Profile auf diesem Rechner bleiben unberührt.`,offline:`planche.dev ist nicht erreichbar.`,working:`Wird ausgeführt…`,serverError:`planche.dev konnte das nicht abschließen. Bitte gleich noch einmal versuchen.`,signInShort:`Anmelden`,needsPro:`Sie sind angemeldet. Das Synchronisieren der Profile erfordert eine Pro-Lizenz und funktioniert, sobald Sie eine haben.`,deleteAccount:`Konto löschen`,deleteAccountConfirm:`Konto löschen? Die abgelegte Kopie und Ihre Anmeldung gehen mit. Die Profile auf diesem Rechner bleiben unberührt.`,notDeployed:`Der Verbindungs-Sync ist für diese Seite noch nicht eingeschaltet.`},O={closeTitle:`Planche schließen?`,closeDescription:`Es gibt ungesicherte Arbeit: eine offene Transaktion, nicht übernommene Änderungen oder eine laufende Abfrage. Beim Schließen geht sie verloren und wird zurückgerollt.`,closeAnyway:`Trotzdem schließen`},k={add:`Hinzufügen`,addRow:`Hinzufügen`,cancel:`Abbrechen`,save:`Speichern`,edit:`Bearbeiten`,revert:`Verwerfen`,deleteRow:`Entfernen`,empty:`Keine Einträge.`,filterPlaceholder:`Filter (Text oder Glob), Enter`,loadMore:`Mehr laden`,loading:`Wird geladen…`,formatJson:`JSON formatieren`,prettyReadOnly:`Zum Bearbeiten „JSON formatieren“ ausschalten`,truncated:`Die ersten {{size}} werden angezeigt`,loadFull:`Alles laden`,field:`Feld`,value:`Wert`,member:`Element`,score:`Score`,index:`Index`,pushTail:`ans Ende`,pushHead:`an den Anfang`,entryId:`ID`,fields:`Felder`,entryFieldsPlaceholder:`Feld Wert; Feld Wert`,entryFieldsRequired:`Ein Eintrag braucht mindestens ein Feld.`,rename:`Umbenennen`,renameTaken:`Ein Schlüssel namens {{name}} existiert bereits.`,ttlEdit:`Ablauf festlegen`,ttlPlaceholder:`Sekunden (leer: keiner)`,ttlInvalid:`Der Ablauf muss eine positive Sekundenzahl sein oder leer für keinen.`,noExpiry:`Kein Ablauf`,memory:`Speicher {{size}}`,encoding:`Kodierung: {{encoding}}`,refresh:`Aktualisieren`,openInConsole:`In Konsole öffnen`,delete:`Schlüssel löschen`,deleteTitle:`{{name}} löschen?`,deleteDescription:`Der Schlüssel und sein Wert werden entfernt. Das lässt sich nicht rückgängig machen.`,notConnected:`Nicht verbunden. Neu verbinden, um den Schlüssel zu sehen.`,gone:`Dieser Schlüssel existiert nicht mehr (gelöscht oder abgelaufen).`,unsupported:`Für Schlüssel vom Typ {{type}} gibt es noch keine Ansicht; öffnen Sie ihn in der Konsole.`,noViewer:`Für dieses Element gibt es bei dieser Verbindung keine Ansicht.`,shown_one:`{{count}} angezeigt`,shown_other:`{{count}} angezeigt`,shownOf_one:`{{count}} von {{total}} angezeigt`,shownOf_other:`{{count}} von {{total}} angezeigt`,bytes_one:`{{count}} Byte`,bytes_other:`{{count}} Bytes`,length_one:`{{count}} Eintrag`,length_other:`{{count}} Einträge`,viewTree:`Baum`,viewText:`Text`,viewHtml:`HTML`,htmlPreviewTitle:`HTML-Vorschau (Skripte deaktiviert)`},A={meta:`version {{version}} · seq_no {{seqNo}} · primary_term {{primaryTerm}}`,delete:`Dokument löschen`,deleteTitle:`Dokument {{id}} löschen?`,deleteDescription:`Das Dokument wird aus {{index}} entfernt. Das lässt sich nicht rückgängig machen.`,gone:`Dieses Dokument existiert nicht mehr.`,invalidJson:`Kein gültiges JSON: {{message}}`,conflict:`Das Dokument wurde seit dem Laden geändert und daher nicht gespeichert. Aktualisieren Sie, um die aktuelle Version zu sehen, und bearbeiten Sie erneut.`},j={unavailable:`Dieses Werkzeug ist für diese Verbindung nicht verfügbar.`,autoRefresh:`Alle {{seconds}} s aktualisieren`,filter:`Filter`,redis:{server:`Serverinfo`,slowlog:`Slow Log`,clients:`Clients`,cardServer:`Server`,cardMemory:`Speicher`,cardActivity:`Aktivität`,cardPersistence:`Persistenz & Replikation`,unlimited:`unbegrenzt`,keyspace:`Keyspace`,allFields:`Alle INFO-Felder`,slowlogThreshold:`Protokolliert ab {{ms}} ms`,slowlogReset:`Slow Log leeren`,slowlogResetTitle:`Slow Log leeren?`,slowlogResetDescription:`Alle Einträge werden für alle entfernt, die diesen Server ansehen.`,slowlogEmpty:`Der Slow Log ist leer.`,time:`Zeit`,duration:`Dauer`,command:`Befehl`,client:`Client`,thisApp:`diese App`,kill:`Trennen`,killTitle:`{{addr}} trennen?`,killDescription:`Der Client verliert seine Verbindung und alles, was er gerade ausführt. Er verbindet sich eventuell selbst neu.`,memory:`Speicheranalyse`,delete:`Schlüssel nach Muster löschen`,deleteUnder:`Schlüssel unter diesem Präfix löschen…`,analyze:`Analysieren`,upTo:`bis {{count}} Schlüssel`,memoryNote:`Liest Größe, Typ und Ablauf jedes Schlüssels mit SCAN und MEMORY USAGE in Batches. Auf einem ausgelasteten Produktionsserver erzeugt das Last; MEMORY USAGE schätzt große Sammlungen anhand einer Stichprobe.`,scanned:`{{scanned}} von {{total}} Schlüsseln geprüft`,partial:`Teilergebnis`,keysAnalyzed:`Analysierte Schlüssel`,totalMemory:`Speicher`,average:`Durchschnitt pro Schlüssel`,missingSizes_other:`{{count}} Schlüssel hatten keine Größe (MEMORY USAGE verweigert oder während des Scans abgelaufen) und zählen als 0 Byte.`,missingSizes_one:`{{count}} Schlüssel hatte keine Größe (MEMORY USAGE verweigert oder während des Scans abgelaufen) und zählt als 0 Byte.`,byType:`Nach Typ`,byTtl:`Nach Ablauf`,byPrefix:`Nach Präfix`,largest:`Größte Schlüssel`,ttlNone:`kein Ablauf`,prefixHint:`Ein Präfix anklicken, um seine Schlüssel zu löschen; einen Schlüssel, um ihn zu öffnen.`,deleteIntro:`Schlüssel zu einem Muster finden, prüfen, dann löschen. Muster nutzen Redis-Glob-Syntax: * beliebige Zeichen, ? ein Zeichen, [abc] eine Menge.`,preview:`Passende Schlüssel finden`,deleteAllWarning:`* passt auf jeden Schlüssel dieser Datenbank.`,matchCount:`{{count}} Schlüssel passen in {{database}}`,matchCapped:`(bei {{cap}} angehalten; danach erneut ausführen für den Rest)`,deleteConfirm:`Zur Bestätigung {{pattern}} eingeben.`,deleteKeys:`{{count}} Schlüssel löschen`,deleteNote:`Löscht mit UNLINK in Blöcken zu 500. Nach der Suche angelegte Schlüssel sind nicht enthalten.`,deletedCount:`{{count}} Schlüssel gelöscht.`,deleteReadOnly:`Diese Verbindung ist schreibgeschützt.`,noKeys:`{{database}} enthält keine Schlüssel.`,pubsub:`Pub/Sub`,monitor:`Monitor`,subscribePlaceholder:`Kanäle oder Muster, z. B. news orders.*`,subscribe:`Abonnieren`,unsubscribe:`Abbestellen`,listening:`Empfange {{targets}}`,publish:`Veröffentlichen`,channel:`Kanal`,message:`Nachricht`,send:`Senden`,receivers_other:`von {{count}} Abonnenten empfangen`,receivers_one:`von {{count}} Abonnent empfangen`,waitingMessages:`Warte auf Nachrichten…`,pubsubIntro:`Kanäle (news) oder Muster (orders.*) abonnieren, um Nachrichten beim Veröffentlichen zu sehen. Abos nutzen eine eigene Verbindung und enden beim Abbestellen oder Schließen des Tabs.`,feedLimit:`Die neuesten {{count}} werden angezeigt; ältere wurden verworfen.`,startMonitor:`Monitor starten`,monitoring:`Alle Befehle werden beobachtet`,dropped_other:`{{count}} Befehle übersprungen, um mitzuhalten`,dropped_one:`{{count}} Befehl übersprungen, um mitzuhalten`,monitorWarning:`MONITOR zeigt jeden Befehl jedes Clients, und Redis kopiert jeden in diesen Feed — auf einem ausgelasteten Produktionsserver kostet das Durchsatz. Kurz laufen lassen und stoppen.`,monitorReadOnly:`MONITOR ist auf einer schreibgeschützten Verbindung nicht verfügbar: Es zeigt die Befehle aller Clients.`},stop:`Stoppen`,clear:`Leeren`},M={title:`Neu in Planche`,description:`Das hat sich seit dem letzten Öffnen von Planche geändert.`,agentOutdated:`Dafür braucht der Agent Version {{required}} oder neuer (Sie haben {{current}}). Im Terminal ausführen:`,allChanges:`Alle Änderungen ansehen`,close:`Verstanden`},N={pairFailedTitle:`Kopplung mit dem Agenten fehlgeschlagen`,agentOffline:`Auf diesem Computer antwortet kein Agent. Starten Sie ihn im Terminal mit dem Befehl unten und öffnen Sie den Link, den er ausgibt.
|
|
3
3
|
Läuft der Agent bereits, blockiert Chrome womöglich den Zugriff dieser Seite: Klicken Sie auf das Symbol links in der Adressleiste und erlauben Sie den Zugriff auf das lokale Netzwerk.`,agentOutdated:`Der Agent auf diesem Computer ist dafür zu alt. Beenden Sie ihn, aktualisieren Sie ihn mit dem Befehl unten und starten Sie ihn neu.`,agentToken:`Der Agent wurde neu gestartet, das auf dieser Seite gespeicherte Token gilt nicht mehr. Öffnen Sie den neuen Link im Terminal des Agenten.`,codeRejected:`Jeder Kopplungslink funktioniert nur einmal und nur 10 Minuten lang. Öffnen Sie den neuesten Link im Terminal des Agenten.`,agentLocked:`Nach zu vielen Fehlversuchen nimmt der Agent 30 Sekunden lang keine Anfragen an. Warten Sie kurz und öffnen Sie dann den neuesten Link im Terminal.`,originBlocked:`Der Agent akzeptiert die App nur von planche.dev und lokalen Entwicklungsservern. Öffnen Sie Planche auf planche.dev oder starten Sie den Agenten mit --origin und der Adresse dieser Seite.`,sshAuth:`Der SSH-Server hat die Anmeldung abgelehnt. Prüfen Sie im SSH-Abschnitt den Benutzer und das Passwort bzw. den privaten Schlüssel.`,dbAuth:`Die Datenbank hat die Anmeldung abgelehnt. Prüfen Sie Benutzername und Passwort.`,network:`Der Agent erreicht den Datenbankserver nicht. Prüfen Sie Host und Port und ob der Server läuft. Der Agent läuft auf Ihrem Computer, localhost ist also Ihr Computer; für einen Server in einem anderen Netz brauchen Sie eventuell einen SSH-Tunnel.`,tls:`Das TLS-Zertifikat des Servers ließ sich nicht prüfen. Ist es selbstsigniert, schalten Sie im TLS-Abschnitt „{{verify}}“ aus.`,agentOfflineUnknown:`Auf diesem Computer antwortet kein Agent. Starten Sie ihn im Terminal mit dem Befehl unten (nach einer Installation per install.sh mit planche) und öffnen Sie den Link, den er ausgibt.
|
|
4
4
|
Läuft der Agent bereits, blockiert Chrome womöglich den Zugriff dieser Seite: Klicken Sie auf das Symbol links in der Adressleiste und erlauben Sie den Zugriff auf das lokale Netzwerk.`,agentOutdatedUnknown:`Der Agent auf diesem Computer ist dafür zu alt. Beenden Sie ihn und starten Sie mit dem Befehl unten die neueste Version (bei einer Installation per install.sh stattdessen planche upgrade ausführen).`},P={app:e,language:t,settings:n,menu:r,about:i,connection:a,toolbar:o,footer:s,palette:c,welcome:l,schema:u,query:d,result:f,confirm:p,table:m,database:h,user:g,command:_,erd:v,services:y,terms:b,dryRun:x,pro:S,install:C,explain:w,ai:T,mcp:E,sync:D,desktop:O,keyViewer:k,docViewer:A,tools:j,whatsNew:M,failureHint:N};export{i as about,T as ai,e as app,_ as command,p as confirm,a as connection,h as database,P as default,O as desktop,A as docViewer,x as dryRun,v as erd,w as explain,N as failureHint,s as footer,C as install,k as keyViewer,t as language,E as mcp,r as menu,c as palette,S as pro,d as query,f as result,u as schema,y as services,n as settings,D as sync,m as table,b as terms,o as toolbar,j as tools,g as user,l as welcome,M as whatsNew};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e,t}from"./hePW80VL.js";import{p as n}from"./CYz610vE.js";import{r}from"./Cu_sGzNJ.js";var i=t((e=>{var t=n();function r(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function i(){}var a={d:{f:i,r:function(){throw Error(r(522))},D:i,C:i,L:i,m:i,X:i,S:i,M:i},p:0,findDOMNode:null},o=Symbol.for(`react.portal`);function s(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:o,key:r==null?null:``+r,children:e,containerInfo:t,implementation:n}}var c=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function l(e,t){if(e===`font`)return``;if(typeof t==`string`)return t===`use-credentials`?t:``}e.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=a,e.createPortal=function(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)throw Error(r(299));return s(e,t,null,n)},e.flushSync=function(e){var t=c.T,n=a.p;try{if(c.T=null,a.p=2,e)return e()}finally{c.T=t,a.p=n,a.d.f()}},e.preconnect=function(e,t){typeof e==`string`&&(t?(t=t.crossOrigin,t=typeof t==`string`?t===`use-credentials`?t:``:void 0):t=null,a.d.C(e,t))},e.prefetchDNS=function(e){typeof e==`string`&&a.d.D(e)},e.preinit=function(e,t){if(typeof e==`string`&&t&&typeof t.as==`string`){var n=t.as,r=l(n,t.crossOrigin),i=typeof t.integrity==`string`?t.integrity:void 0,o=typeof t.fetchPriority==`string`?t.fetchPriority:void 0;n===`style`?a.d.S(e,typeof t.precedence==`string`?t.precedence:void 0,{crossOrigin:r,integrity:i,fetchPriority:o}):n===`script`&&a.d.X(e,{crossOrigin:r,integrity:i,fetchPriority:o,nonce:typeof t.nonce==`string`?t.nonce:void 0})}},e.preinitModule=function(e,t){if(typeof e==`string`){if(typeof t==`object`&&t){if(t.as==null||t.as===`script`){var n=l(t.as,t.crossOrigin);a.d.M(e,{crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0})}}else t??a.d.M(e)}},e.preload=function(e,t){if(typeof e==`string`&&typeof t==`object`&&t&&typeof t.as==`string`){var n=t.as,r=l(n,t.crossOrigin);a.d.L(e,n,{crossOrigin:r,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,type:typeof t.type==`string`?t.type:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0,referrerPolicy:typeof t.referrerPolicy==`string`?t.referrerPolicy:void 0,imageSrcSet:typeof t.imageSrcSet==`string`?t.imageSrcSet:void 0,imageSizes:typeof t.imageSizes==`string`?t.imageSizes:void 0,media:typeof t.media==`string`?t.media:void 0})}},e.preloadModule=function(e,t){if(typeof e==`string`){if(t){var n=l(t.as,t.crossOrigin);a.d.m(e,{as:typeof t.as==`string`&&t.as!==`script`?t.as:void 0,crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0})}else a.d.m(e)}},e.requestFormReset=function(e){a.d.r(e)},e.unstable_batchedUpdates=function(e,t){return e(t)},e.useFormState=function(e,t,n){return c.H.useFormState(e,t,n)},e.useFormStatus=function(){return c.H.useHostTransitionStatus()},e.version=`19.2.8`})),a=t(((e,t)=>{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=i()})),o=e(a(),1),s=e(n(),1),c=Object.defineProperty,l=(e,t)=>c(e,`name`,{value:t,configurable:!0});function u(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}l(u,`setRef`);function d(...e){return t=>{let n=!1,r=e.map(e=>{let r=u(e,t);return!n&&typeof r==`function`&&(n=!0),r});if(n)return()=>{for(let t=0;t<r.length;t++){let n=r[t];typeof n==`function`?n():u(e[t],null)}}}}l(d,`composeRefs`);function f(...e){return s.useCallback(d(...e),e)}l(f,`useComposedRefs`);var p=Object.defineProperty,m=(e,t)=>p(e,`name`,{value:t,configurable:!0});function h(e){let t=s.forwardRef((t,n)=>{let{children:r,...i}=t,a=null,o=!1,c=[];C(r)&&typeof T==`function`&&(r=T(r._payload)),s.Children.forEach(r,e=>{if(S(e)){o=!0;let t=e,n=`child`in t.props?t.props.child:t.props.children;C(n)&&typeof T==`function`&&(n=T(n._payload)),a=y(t,n),c.push(a?.props?.children)}else c.push(e)}),a?a=s.cloneElement(a,void 0,c):!o&&s.Children.count(r)===1&&s.isValidElement(r)&&(a=r);let l=a?x(a):void 0,u=f(n,l);if(!a){if(r||r===0)throw Error(o?ne(e):te(e));return r}let d=b(i,a.props??{});return a.type!==s.Fragment&&(d.ref=n?u:l),s.cloneElement(a,d)});return t.displayName=`${e}.Slot`,t}m(h,`createSlot`);var g=h(`Slot`),_=Symbol.for(`radix.slottable`);function v(e){let t=m(e=>`child`in e?e.children(e.child):e.children,`Slottable`);return t.displayName=`${e}.Slottable`,t.__radixId=_,t}m(v,`createSlottable`);var y=m((e,t)=>{if(`child`in e.props){let t=e.props.child;return s.isValidElement(t)?s.cloneElement(t,void 0,e.props.children(t.props.children)):null}return s.isValidElement(t)?t:null},`getSlottableElementFromSlottable`);function b(e,t){let n={...t};for(let r in t){let i=e[r],a=t[r];/^on[A-Z]/.test(r)?i&&a?n[r]=(...e)=>{let t=a(...e);return i(...e),t}:i&&(n[r]=i):r===`style`?n[r]={...i,...a}:r===`className`&&(n[r]=[i,a].filter(Boolean).join(` `))}return{...e,...n}}m(b,`mergeProps`);function x(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}m(x,`getElementRef`);function S(e){return s.isValidElement(e)&&typeof e.type==`function`&&`__radixId`in e.type&&e.type.__radixId===_}m(S,`isSlottable`);var ee=Symbol.for(`react.lazy`);function C(e){return typeof e==`object`&&!!e&&`$$typeof`in e&&e.$$typeof===ee&&`_payload`in e&&w(e._payload)}m(C,`isLazyComponent`);function w(e){return typeof e==`object`&&!!e&&`then`in e}m(w,`isPromiseLike`);var te=m(e=>`${e} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,`createSlotError`),ne=m(e=>`${e} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,`createSlottableError`),T=s.use,E=r(),D=Object.defineProperty,O=(e,t)=>D(e,`name`,{value:t,configurable:!0}),k=[`a`,`button`,`div`,`form`,`h2`,`h3`,`img`,`input`,`label`,`li`,`nav`,`ol`,`p`,`select`,`span`,`svg`,`ul`].reduce((e,t)=>{let n=h(`Primitive.${t}`),r=s.forwardRef((e,r)=>{let{asChild:i,...a}=e,o=i?n:t;return typeof window<`u`&&(window[Symbol.for(`radix-ui`)]=!0),(0,E.jsx)(o,{...a,ref:r})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function A(e,t){e&&o.flushSync(()=>e.dispatchEvent(t))}O(A,`dispatchDiscreteCustomEvent`);function j(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`){if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=j(e[t]))&&(r&&(r+=` `),r+=n)}else for(n in e)e[n]&&(r&&(r+=` `),r+=n)}return r}function M(){for(var e,t,n=0,r=``,i=arguments.length;n<i;n++)(e=arguments[n])&&(t=j(e))&&(r&&(r+=` `),r+=t);return r}var N=(e,t)=>{let n=Array(e.length+t.length);for(let t=0;t<e.length;t++)n[t]=e[t];for(let r=0;r<t.length;r++)n[e.length+r]=t[r];return n},re=(e,t)=>({classGroupId:e,validator:t}),ie=(e=new Map,t=null,n)=>({nextPart:e,validators:t,classGroupId:n}),P=`-`,F=[],I=`arbitrary..`,L=e=>{let t=z(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:e=>{if(e.startsWith(`[`)&&e.endsWith(`]`))return ae(e);let n=e.split(P);return R(n,+(n[0]===``&&n.length>1),t)},getConflictingClassGroupIds:(e,t)=>{if(t){let t=r[e],i=n[e];return t?i?N(i,t):t:i||F}return n[e]||F}}},R=(e,t,n)=>{if(e.length-t===0)return n.classGroupId;let r=e[t],i=n.nextPart.get(r);if(i){let n=R(e,t+1,i);if(n)return n}let a=n.validators;if(a===null)return;let o=t===0?e.join(P):e.slice(t).join(P),s=a.length;for(let e=0;e<s;e++){let t=a[e];if(t.validator(o))return t.classGroupId}},ae=e=>e.slice(1,-1).indexOf(`:`)===-1?void 0:(()=>{let t=e.slice(1,-1),n=t.indexOf(`:`),r=t.slice(0,n);return r?I+r:void 0})(),z=e=>{let{theme:t,classGroups:n}=e;return oe(n,t)},oe=(e,t)=>{let n=ie();for(let r in e){let i=e[r];B(i,n,r,t)}return n},B=(e,t,n,r)=>{let i=e.length;for(let a=0;a<i;a++){let i=e[a];V(i,t,n,r)}},V=(e,t,n,r)=>{if(typeof e==`string`){se(e,t,n);return}if(typeof e==`function`){H(e,t,n,r);return}ce(e,t,n,r)},se=(e,t,n)=>{let r=e===``?t:le(t,e);r.classGroupId=n},H=(e,t,n,r)=>{if(ue(e)){B(e(r),t,n,r);return}t.validators===null&&(t.validators=[]),t.validators.push(re(n,e))},ce=(e,t,n,r)=>{let i=Object.entries(e),a=i.length;for(let e=0;e<a;e++){let[a,o]=i[e];B(o,le(t,a),n,r)}},le=(e,t)=>{let n=e,r=t.split(P),i=r.length;for(let e=0;e<i;e++){let t=r[e],i=n.nextPart.get(t);i||(i=ie(),n.nextPart.set(t,i)),n=i}return n},ue=e=>`isThemeGetter`in e&&e.isThemeGetter===!0,de=e=>{if(e<1)return{get:()=>void 0,set:()=>{}};let t=0,n=Object.create(null),r=Object.create(null),i=(i,a)=>{n[i]=a,t++,t>e&&(t=0,r=n,n=Object.create(null))};return{get(e){let t=n[e];if(t!==void 0)return t;if((t=r[e])!==void 0)return i(e,t),t},set(e,t){e in n?n[e]=t:i(e,t)}}},fe=`!`,pe=`:`,me=[],he=(e,t,n,r,i)=>({modifiers:e,hasImportantModifier:t,baseClassName:n,maybePostfixModifierPosition:r,isExternal:i}),ge=e=>{let{prefix:t,experimentalParseClassName:n}=e,r=e=>{let t=[],n=0,r=0,i=0,a,o=e.length;for(let s=0;s<o;s++){let o=e[s];if(n===0&&r===0){if(o===pe){t.push(e.slice(i,s)),i=s+1;continue}if(o===`/`){a=s;continue}}o===`[`?n++:o===`]`?n--:o===`(`?r++:o===`)`&&r--}let s=t.length===0?e:e.slice(i),c=s,l=!1;s.endsWith(fe)?(c=s.slice(0,-1),l=!0):s.startsWith(fe)&&(c=s.slice(1),l=!0);let u=a&&a>i?a-i:void 0;return he(t,l,c,u)};if(t){let e=t+pe,n=r;r=t=>t.startsWith(e)?n(t.slice(e.length)):he(me,!1,t,void 0,!0)}if(n){let e=r;r=t=>n({className:t,parseClassName:e})}return r},_e=e=>{let t=new Map;return e.orderSensitiveModifiers.forEach((e,n)=>{t.set(e,1e6+n)}),e=>{let n=[],r=[];for(let i=0;i<e.length;i++){let a=e[i],o=a[0]===`[`,s=t.has(a);o||s?(r.length>0&&(r.sort(),n.push(...r),r=[]),n.push(a)):r.push(a)}return r.length>0&&(r.sort(),n.push(...r)),n}},ve=e=>({cache:de(e.cacheSize),parseClassName:ge(e),sortModifiers:_e(e),postfixLookupClassGroupIds:ye(e),...L(e)}),ye=e=>{let t=Object.create(null),n=e.postfixLookupClassGroups;if(n)for(let e=0;e<n.length;e++)t[n[e]]=!0;return t},be=/\s+/,xe=(e,t)=>{let{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:i,sortModifiers:a,postfixLookupClassGroupIds:o}=t,s=[],c=e.trim().split(be),l=``;for(let e=c.length-1;e>=0;--e){let t=c[e],{isExternal:u,modifiers:d,hasImportantModifier:f,baseClassName:p,maybePostfixModifierPosition:m}=n(t);if(u){l=t+(l.length>0?` `+l:l);continue}let h=!!m,g;if(h){g=r(p.substring(0,m));let e=g&&o[g]?r(p):void 0;e&&e!==g&&(g=e,h=!1)}else g=r(p);if(!g){if(!h){l=t+(l.length>0?` `+l:l);continue}if(g=r(p),!g){l=t+(l.length>0?` `+l:l);continue}h=!1}let _=d.length===0?``:d.length===1?d[0]:a(d).join(`:`),v=f?_+fe:_,y=v+g;if(s.indexOf(y)>-1)continue;s.push(y);let b=i(g,h);for(let e=0;e<b.length;++e){let t=b[e];s.push(v+t)}l=t+(l.length>0?` `+l:l)}return l},Se=(...e)=>{let t=0,n,r,i=``;for(;t<e.length;)(n=e[t++])&&(r=Ce(n))&&(i&&(i+=` `),i+=r);return i},Ce=e=>{if(typeof e==`string`)return e;let t,n=``;for(let r=0;r<e.length;r++)e[r]&&(t=Ce(e[r]))&&(n&&(n+=` `),n+=t);return n},we=(e,...t)=>{let n,r,i,a,o=o=>(n=ve(t.reduce((e,t)=>t(e),e())),r=n.cache.get,i=n.cache.set,a=s,s(o)),s=e=>{let t=r(e);if(t)return t;let a=xe(e,n);return i(e,a),a};return a=o,(...e)=>a(Se(...e))},Te=[],U=e=>{let t=t=>t[e]||Te;return t.isThemeGetter=!0,t},Ee=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,De=/^\((?:(\w[\w-]*):)?(.+)\)$/i,Oe=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,ke=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Ae=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,je=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Me=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Ne=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,W=e=>Oe.test(e),G=e=>!!e&&!Number.isNaN(Number(e)),K=e=>!!e&&Number.isInteger(Number(e)),Pe=e=>e.endsWith(`%`)&&G(e.slice(0,-1)),q=e=>ke.test(e),Fe=()=>!0,Ie=e=>Ae.test(e)&&!je.test(e),Le=()=>!1,Re=e=>Me.test(e),ze=e=>Ne.test(e),Be=e=>!J(e)&&!X(e),Ve=e=>e.startsWith(`@container`)&&(e[10]===`/`&&e[11]!==void 0||e[11]===`s`&&e[16]!==void 0&&e.startsWith(`-size/`,10)||e[11]===`n`&&e[18]!==void 0&&e.startsWith(`-normal/`,10)),He=e=>Q(e,rt,Le),J=e=>Ee.test(e),Y=e=>Q(e,it,Ie),Ue=e=>Q(e,at,G),We=e=>Q(e,st,Fe),Ge=e=>Q(e,ot,Le),Ke=e=>Q(e,tt,Le),qe=e=>Q(e,nt,ze),Je=e=>Q(e,ct,Re),X=e=>De.test(e),Z=e=>$(e,it),Ye=e=>$(e,ot),Xe=e=>$(e,tt),Ze=e=>$(e,rt),Qe=e=>$(e,nt),$e=e=>$(e,ct,!0),et=e=>$(e,st,!0),Q=(e,t,n)=>{let r=Ee.exec(e);return r?r[1]?t(r[1]):n(r[2]):!1},$=(e,t,n=!1)=>{let r=De.exec(e);return r?r[1]?t(r[1]):n:!1},tt=e=>e===`position`||e===`percentage`,nt=e=>e===`image`||e===`url`,rt=e=>e===`length`||e===`size`||e===`bg-size`,it=e=>e===`length`,at=e=>e===`number`,ot=e=>e===`family-name`,st=e=>e===`number`||e===`weight`,ct=e=>e===`shadow`,lt=we(()=>{let e=U(`color`),t=U(`font`),n=U(`text`),r=U(`font-weight`),i=U(`tracking`),a=U(`leading`),o=U(`breakpoint`),s=U(`container`),c=U(`spacing`),l=U(`radius`),u=U(`shadow`),d=U(`inset-shadow`),f=U(`text-shadow`),p=U(`drop-shadow`),m=U(`blur`),h=U(`perspective`),g=U(`aspect`),_=U(`ease`),v=U(`animate`),y=()=>[`auto`,`avoid`,`all`,`avoid-page`,`page`,`left`,`right`,`column`],b=()=>[`center`,`top`,`bottom`,`left`,`right`,`top-left`,`left-top`,`top-right`,`right-top`,`bottom-right`,`right-bottom`,`bottom-left`,`left-bottom`],x=()=>[...b(),X,J],S=()=>[`auto`,`hidden`,`clip`,`visible`,`scroll`],ee=()=>[`auto`,`contain`,`none`],C=()=>[X,J,c],w=()=>[W,`full`,`auto`,...C()],te=()=>[K,`none`,`subgrid`,X,J],ne=()=>[`auto`,{span:[`full`,K,X,J]},K,X,J],T=()=>[K,`auto`,X,J],E=()=>[`auto`,`min`,`max`,`fr`,X,J],D=()=>[`start`,`end`,`center`,`between`,`around`,`evenly`,`stretch`,`baseline`,`center-safe`,`end-safe`],O=()=>[`start`,`end`,`center`,`stretch`,`center-safe`,`end-safe`],k=()=>[`auto`,...C()],A=()=>[W,`auto`,`full`,`dvw`,`dvh`,`lvw`,`lvh`,`svw`,`svh`,`min`,`max`,`fit`,...C()],j=()=>[W,`screen`,`full`,`dvw`,`lvw`,`svw`,`min`,`max`,`fit`,...C()],M=()=>[W,`screen`,`full`,`lh`,`dvh`,`lvh`,`svh`,`min`,`max`,`fit`,...C()],N=()=>[e,X,J],re=()=>[...b(),Xe,Ke,{position:[X,J]}],ie=()=>[`no-repeat`,{repeat:[``,`x`,`y`,`space`,`round`]}],P=()=>[`auto`,`cover`,`contain`,Ze,He,{size:[X,J]}],F=()=>[Pe,Z,Y],I=()=>[``,`none`,`full`,l,X,J],L=()=>[``,G,Z,Y],R=()=>[`solid`,`dashed`,`dotted`,`double`],ae=()=>[`normal`,`multiply`,`screen`,`overlay`,`darken`,`lighten`,`color-dodge`,`color-burn`,`hard-light`,`soft-light`,`difference`,`exclusion`,`hue`,`saturation`,`color`,`luminosity`],z=()=>[G,Pe,Xe,Ke],oe=()=>[``,`none`,m,X,J],B=()=>[`none`,G,X,J],V=()=>[`none`,G,X,J],se=()=>[G,X,J],H=()=>[W,`full`,...C()];return{cacheSize:500,theme:{animate:[`spin`,`ping`,`pulse`,`bounce`],aspect:[`video`],blur:[q],breakpoint:[q],color:[Fe],container:[q],"drop-shadow":[q],ease:[`in`,`out`,`in-out`],font:[Be],"font-weight":[`thin`,`extralight`,`light`,`normal`,`medium`,`semibold`,`bold`,`extrabold`,`black`],"inset-shadow":[q],leading:[`none`,`tight`,`snug`,`normal`,`relaxed`,`loose`],perspective:[`dramatic`,`near`,`normal`,`midrange`,`distant`,`none`],radius:[q],shadow:[q],spacing:[`px`,G],text:[q],"text-shadow":[q],tracking:[`tighter`,`tight`,`normal`,`wide`,`wider`,`widest`]},classGroups:{aspect:[{aspect:[`auto`,`square`,W,J,X,g]}],container:[`container`],"container-type":[{"@container":[``,`normal`,`size`,X,J]}],"container-named":[Ve],columns:[{columns:[G,J,X,s]}],"break-after":[{"break-after":y()}],"break-before":[{"break-before":y()}],"break-inside":[{"break-inside":[`auto`,`avoid`,`avoid-page`,`avoid-column`]}],"box-decoration":[{"box-decoration":[`slice`,`clone`]}],box:[{box:[`border`,`content`]}],display:[`block`,`inline-block`,`inline`,`flex`,`inline-flex`,`table`,`inline-table`,`table-caption`,`table-cell`,`table-column`,`table-column-group`,`table-footer-group`,`table-header-group`,`table-row-group`,`table-row`,`flow-root`,`grid`,`inline-grid`,`contents`,`list-item`,`hidden`],sr:[`sr-only`,`not-sr-only`],float:[{float:[`right`,`left`,`none`,`start`,`end`]}],clear:[{clear:[`left`,`right`,`both`,`none`,`start`,`end`]}],isolation:[`isolate`,`isolation-auto`],"object-fit":[{object:[`contain`,`cover`,`fill`,`none`,`scale-down`]}],"object-position":[{object:x()}],overflow:[{overflow:S()}],"overflow-x":[{"overflow-x":S()}],"overflow-y":[{"overflow-y":S()}],overscroll:[{overscroll:ee()}],"overscroll-x":[{"overscroll-x":ee()}],"overscroll-y":[{"overscroll-y":ee()}],position:[`static`,`fixed`,`absolute`,`relative`,`sticky`],inset:[{inset:w()}],"inset-x":[{"inset-x":w()}],"inset-y":[{"inset-y":w()}],start:[{"inset-s":w(),start:w()}],end:[{"inset-e":w(),end:w()}],"inset-bs":[{"inset-bs":w()}],"inset-be":[{"inset-be":w()}],top:[{top:w()}],right:[{right:w()}],bottom:[{bottom:w()}],left:[{left:w()}],visibility:[`visible`,`invisible`,`collapse`],z:[{z:[K,`auto`,X,J]}],basis:[{basis:[W,`full`,`auto`,s,...C()]}],"flex-direction":[{flex:[`row`,`row-reverse`,`col`,`col-reverse`]}],"flex-wrap":[{flex:[`nowrap`,`wrap`,`wrap-reverse`]}],flex:[{flex:[G,W,`auto`,`initial`,`none`,J]}],grow:[{grow:[``,G,X,J]}],shrink:[{shrink:[``,G,X,J]}],order:[{order:[K,`first`,`last`,`none`,X,J]}],"grid-cols":[{"grid-cols":te()}],"col-start-end":[{col:ne()}],"col-start":[{"col-start":T()}],"col-end":[{"col-end":T()}],"grid-rows":[{"grid-rows":te()}],"row-start-end":[{row:ne()}],"row-start":[{"row-start":T()}],"row-end":[{"row-end":T()}],"grid-flow":[{"grid-flow":[`row`,`col`,`dense`,`row-dense`,`col-dense`]}],"auto-cols":[{"auto-cols":E()}],"auto-rows":[{"auto-rows":E()}],gap:[{gap:C()}],"gap-x":[{"gap-x":C()}],"gap-y":[{"gap-y":C()}],"justify-content":[{justify:[...D(),`normal`]}],"justify-items":[{"justify-items":[...O(),`normal`]}],"justify-self":[{"justify-self":[`auto`,...O()]}],"align-content":[{content:[`normal`,...D()]}],"align-items":[{items:[...O(),{baseline:[``,`last`]}]}],"align-self":[{self:[`auto`,...O(),{baseline:[``,`last`]}]}],"place-content":[{"place-content":D()}],"place-items":[{"place-items":[...O(),`baseline`]}],"place-self":[{"place-self":[`auto`,...O()]}],p:[{p:C()}],px:[{px:C()}],py:[{py:C()}],ps:[{ps:C()}],pe:[{pe:C()}],pbs:[{pbs:C()}],pbe:[{pbe:C()}],pt:[{pt:C()}],pr:[{pr:C()}],pb:[{pb:C()}],pl:[{pl:C()}],m:[{m:k()}],mx:[{mx:k()}],my:[{my:k()}],ms:[{ms:k()}],me:[{me:k()}],mbs:[{mbs:k()}],mbe:[{mbe:k()}],mt:[{mt:k()}],mr:[{mr:k()}],mb:[{mb:k()}],ml:[{ml:k()}],"space-x":[{"space-x":C()}],"space-x-reverse":[`space-x-reverse`],"space-y":[{"space-y":C()}],"space-y-reverse":[`space-y-reverse`],size:[{size:A()}],"inline-size":[{inline:[`auto`,...j()]}],"min-inline-size":[{"min-inline":[`auto`,...j()]}],"max-inline-size":[{"max-inline":[`none`,...j()]}],"block-size":[{block:[`auto`,...M()]}],"min-block-size":[{"min-block":[`auto`,...M()]}],"max-block-size":[{"max-block":[`none`,...M()]}],w:[{w:[s,`screen`,...A()]}],"min-w":[{"min-w":[s,`screen`,`none`,...A()]}],"max-w":[{"max-w":[s,`screen`,`none`,`prose`,{screen:[o]},...A()]}],h:[{h:[`screen`,`lh`,...A()]}],"min-h":[{"min-h":[`screen`,`lh`,`none`,...A()]}],"max-h":[{"max-h":[`screen`,`lh`,...A()]}],"font-size":[{text:[`base`,n,Z,Y]}],"font-smoothing":[`antialiased`,`subpixel-antialiased`],"font-style":[`italic`,`not-italic`],"font-weight":[{font:[r,et,We]}],"font-stretch":[{"font-stretch":[`ultra-condensed`,`extra-condensed`,`condensed`,`semi-condensed`,`normal`,`semi-expanded`,`expanded`,`extra-expanded`,`ultra-expanded`,Pe,J]}],"font-family":[{font:[Ye,Ge,t]}],"font-features":[{"font-features":[J]}],"fvn-normal":[`normal-nums`],"fvn-ordinal":[`ordinal`],"fvn-slashed-zero":[`slashed-zero`],"fvn-figure":[`lining-nums`,`oldstyle-nums`],"fvn-spacing":[`proportional-nums`,`tabular-nums`],"fvn-fraction":[`diagonal-fractions`,`stacked-fractions`],tracking:[{tracking:[i,X,J]}],"line-clamp":[{"line-clamp":[G,`none`,X,Ue]}],leading:[{leading:[a,...C()]}],"list-image":[{"list-image":[`none`,X,J]}],"list-style-position":[{list:[`inside`,`outside`]}],"list-style-type":[{list:[`disc`,`decimal`,`none`,X,J]}],"text-alignment":[{text:[`left`,`center`,`right`,`justify`,`start`,`end`]}],"placeholder-color":[{placeholder:N()}],"text-color":[{text:N()}],"text-decoration":[`underline`,`overline`,`line-through`,`no-underline`],"text-decoration-style":[{decoration:[...R(),`wavy`]}],"text-decoration-thickness":[{decoration:[G,`from-font`,`auto`,X,Y]}],"text-decoration-color":[{decoration:N()}],"underline-offset":[{"underline-offset":[G,`auto`,X,J]}],"text-transform":[`uppercase`,`lowercase`,`capitalize`,`normal-case`],"text-overflow":[`truncate`,`text-ellipsis`,`text-clip`],"text-wrap":[{text:[`wrap`,`nowrap`,`balance`,`pretty`]}],indent:[{indent:C()}],"tab-size":[{tab:[K,X,J]}],"vertical-align":[{align:[`baseline`,`top`,`middle`,`bottom`,`text-top`,`text-bottom`,`sub`,`super`,X,J]}],whitespace:[{whitespace:[`normal`,`nowrap`,`pre`,`pre-line`,`pre-wrap`,`break-spaces`]}],break:[{break:[`normal`,`words`,`all`,`keep`]}],wrap:[{wrap:[`break-word`,`anywhere`,`normal`]}],hyphens:[{hyphens:[`none`,`manual`,`auto`]}],content:[{content:[`none`,X,J]}],"bg-attachment":[{bg:[`fixed`,`local`,`scroll`]}],"bg-clip":[{"bg-clip":[`border`,`padding`,`content`,`text`]}],"bg-origin":[{"bg-origin":[`border`,`padding`,`content`]}],"bg-position":[{bg:re()}],"bg-repeat":[{bg:ie()}],"bg-size":[{bg:P()}],"bg-image":[{bg:[`none`,{linear:[{to:[`t`,`tr`,`r`,`br`,`b`,`bl`,`l`,`tl`]},K,X,J],radial:[``,X,J],conic:[K,X,J]},Qe,qe]}],"bg-color":[{bg:N()}],"gradient-from-pos":[{from:F()}],"gradient-via-pos":[{via:F()}],"gradient-to-pos":[{to:F()}],"gradient-from":[{from:N()}],"gradient-via":[{via:N()}],"gradient-to":[{to:N()}],rounded:[{rounded:I()}],"rounded-s":[{"rounded-s":I()}],"rounded-e":[{"rounded-e":I()}],"rounded-t":[{"rounded-t":I()}],"rounded-r":[{"rounded-r":I()}],"rounded-b":[{"rounded-b":I()}],"rounded-l":[{"rounded-l":I()}],"rounded-ss":[{"rounded-ss":I()}],"rounded-se":[{"rounded-se":I()}],"rounded-ee":[{"rounded-ee":I()}],"rounded-es":[{"rounded-es":I()}],"rounded-tl":[{"rounded-tl":I()}],"rounded-tr":[{"rounded-tr":I()}],"rounded-br":[{"rounded-br":I()}],"rounded-bl":[{"rounded-bl":I()}],"border-w":[{border:L()}],"border-w-x":[{"border-x":L()}],"border-w-y":[{"border-y":L()}],"border-w-s":[{"border-s":L()}],"border-w-e":[{"border-e":L()}],"border-w-bs":[{"border-bs":L()}],"border-w-be":[{"border-be":L()}],"border-w-t":[{"border-t":L()}],"border-w-r":[{"border-r":L()}],"border-w-b":[{"border-b":L()}],"border-w-l":[{"border-l":L()}],"divide-x":[{"divide-x":L()}],"divide-x-reverse":[`divide-x-reverse`],"divide-y":[{"divide-y":L()}],"divide-y-reverse":[`divide-y-reverse`],"border-style":[{border:[...R(),`hidden`,`none`]}],"divide-style":[{divide:[...R(),`hidden`,`none`]}],"border-color":[{border:N()}],"border-color-x":[{"border-x":N()}],"border-color-y":[{"border-y":N()}],"border-color-s":[{"border-s":N()}],"border-color-e":[{"border-e":N()}],"border-color-bs":[{"border-bs":N()}],"border-color-be":[{"border-be":N()}],"border-color-t":[{"border-t":N()}],"border-color-r":[{"border-r":N()}],"border-color-b":[{"border-b":N()}],"border-color-l":[{"border-l":N()}],"divide-color":[{divide:N()}],"outline-style":[{outline:[...R(),`none`,`hidden`]}],"outline-offset":[{"outline-offset":[G,X,J]}],"outline-w":[{outline:[``,G,Z,Y]}],"outline-color":[{outline:N()}],shadow:[{shadow:[``,`none`,u,$e,Je]}],"shadow-color":[{shadow:N()}],"inset-shadow":[{"inset-shadow":[`none`,d,$e,Je]}],"inset-shadow-color":[{"inset-shadow":N()}],"ring-w":[{ring:L()}],"ring-w-inset":[`ring-inset`],"ring-color":[{ring:N()}],"ring-offset-w":[{"ring-offset":[G,Y]}],"ring-offset-color":[{"ring-offset":N()}],"inset-ring-w":[{"inset-ring":L()}],"inset-ring-color":[{"inset-ring":N()}],"text-shadow":[{"text-shadow":[`none`,f,$e,Je]}],"text-shadow-color":[{"text-shadow":N()}],opacity:[{opacity:[G,X,J]}],"mix-blend":[{"mix-blend":[...ae(),`plus-darker`,`plus-lighter`]}],"bg-blend":[{"bg-blend":ae()}],"mask-clip":[{"mask-clip":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]},`mask-no-clip`],"mask-composite":[{mask:[`add`,`subtract`,`intersect`,`exclude`]}],"mask-image-linear-pos":[{"mask-linear":[G]}],"mask-image-linear-from-pos":[{"mask-linear-from":z()}],"mask-image-linear-to-pos":[{"mask-linear-to":z()}],"mask-image-linear-from-color":[{"mask-linear-from":N()}],"mask-image-linear-to-color":[{"mask-linear-to":N()}],"mask-image-t-from-pos":[{"mask-t-from":z()}],"mask-image-t-to-pos":[{"mask-t-to":z()}],"mask-image-t-from-color":[{"mask-t-from":N()}],"mask-image-t-to-color":[{"mask-t-to":N()}],"mask-image-r-from-pos":[{"mask-r-from":z()}],"mask-image-r-to-pos":[{"mask-r-to":z()}],"mask-image-r-from-color":[{"mask-r-from":N()}],"mask-image-r-to-color":[{"mask-r-to":N()}],"mask-image-b-from-pos":[{"mask-b-from":z()}],"mask-image-b-to-pos":[{"mask-b-to":z()}],"mask-image-b-from-color":[{"mask-b-from":N()}],"mask-image-b-to-color":[{"mask-b-to":N()}],"mask-image-l-from-pos":[{"mask-l-from":z()}],"mask-image-l-to-pos":[{"mask-l-to":z()}],"mask-image-l-from-color":[{"mask-l-from":N()}],"mask-image-l-to-color":[{"mask-l-to":N()}],"mask-image-x-from-pos":[{"mask-x-from":z()}],"mask-image-x-to-pos":[{"mask-x-to":z()}],"mask-image-x-from-color":[{"mask-x-from":N()}],"mask-image-x-to-color":[{"mask-x-to":N()}],"mask-image-y-from-pos":[{"mask-y-from":z()}],"mask-image-y-to-pos":[{"mask-y-to":z()}],"mask-image-y-from-color":[{"mask-y-from":N()}],"mask-image-y-to-color":[{"mask-y-to":N()}],"mask-image-radial":[{"mask-radial":[X,J]}],"mask-image-radial-from-pos":[{"mask-radial-from":z()}],"mask-image-radial-to-pos":[{"mask-radial-to":z()}],"mask-image-radial-from-color":[{"mask-radial-from":N()}],"mask-image-radial-to-color":[{"mask-radial-to":N()}],"mask-image-radial-shape":[{"mask-radial":[`circle`,`ellipse`]}],"mask-image-radial-size":[{"mask-radial":[{closest:[`side`,`corner`],farthest:[`side`,`corner`]}]}],"mask-image-radial-pos":[{"mask-radial-at":b()}],"mask-image-conic-pos":[{"mask-conic":[G]}],"mask-image-conic-from-pos":[{"mask-conic-from":z()}],"mask-image-conic-to-pos":[{"mask-conic-to":z()}],"mask-image-conic-from-color":[{"mask-conic-from":N()}],"mask-image-conic-to-color":[{"mask-conic-to":N()}],"mask-mode":[{mask:[`alpha`,`luminance`,`match`]}],"mask-origin":[{"mask-origin":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]}],"mask-position":[{mask:re()}],"mask-repeat":[{mask:ie()}],"mask-size":[{mask:P()}],"mask-type":[{"mask-type":[`alpha`,`luminance`]}],"mask-image":[{mask:[`none`,X,J]}],filter:[{filter:[``,`none`,X,J]}],blur:[{blur:oe()}],brightness:[{brightness:[G,X,J]}],contrast:[{contrast:[G,X,J]}],"drop-shadow":[{"drop-shadow":[``,`none`,p,$e,Je]}],"drop-shadow-color":[{"drop-shadow":N()}],grayscale:[{grayscale:[``,G,X,J]}],"hue-rotate":[{"hue-rotate":[G,X,J]}],invert:[{invert:[``,G,X,J]}],saturate:[{saturate:[G,X,J]}],sepia:[{sepia:[``,G,X,J]}],"backdrop-filter":[{"backdrop-filter":[``,`none`,X,J]}],"backdrop-blur":[{"backdrop-blur":oe()}],"backdrop-brightness":[{"backdrop-brightness":[G,X,J]}],"backdrop-contrast":[{"backdrop-contrast":[G,X,J]}],"backdrop-grayscale":[{"backdrop-grayscale":[``,G,X,J]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[G,X,J]}],"backdrop-invert":[{"backdrop-invert":[``,G,X,J]}],"backdrop-opacity":[{"backdrop-opacity":[G,X,J]}],"backdrop-saturate":[{"backdrop-saturate":[G,X,J]}],"backdrop-sepia":[{"backdrop-sepia":[``,G,X,J]}],"border-collapse":[{border:[`collapse`,`separate`]}],"border-spacing":[{"border-spacing":C()}],"border-spacing-x":[{"border-spacing-x":C()}],"border-spacing-y":[{"border-spacing-y":C()}],"table-layout":[{table:[`auto`,`fixed`]}],caption:[{caption:[`top`,`bottom`]}],transition:[{transition:[``,`all`,`colors`,`opacity`,`shadow`,`transform`,`none`,X,J]}],"transition-behavior":[{transition:[`normal`,`discrete`]}],duration:[{duration:[G,`initial`,X,J]}],ease:[{ease:[`linear`,`initial`,_,X,J]}],delay:[{delay:[G,X,J]}],animate:[{animate:[`none`,v,X,J]}],backface:[{backface:[`hidden`,`visible`]}],perspective:[{perspective:[h,X,J]}],"perspective-origin":[{"perspective-origin":x()}],rotate:[{rotate:B()}],"rotate-x":[{"rotate-x":B()}],"rotate-y":[{"rotate-y":B()}],"rotate-z":[{"rotate-z":B()}],scale:[{scale:V()}],"scale-x":[{"scale-x":V()}],"scale-y":[{"scale-y":V()}],"scale-z":[{"scale-z":V()}],"scale-3d":[`scale-3d`],skew:[{skew:se()}],"skew-x":[{"skew-x":se()}],"skew-y":[{"skew-y":se()}],transform:[{transform:[X,J,``,`none`,`gpu`,`cpu`]}],"transform-origin":[{origin:x()}],"transform-style":[{transform:[`3d`,`flat`]}],translate:[{translate:H()}],"translate-x":[{"translate-x":H()}],"translate-y":[{"translate-y":H()}],"translate-z":[{"translate-z":H()}],"translate-none":[`translate-none`],zoom:[{zoom:[K,X,J]}],accent:[{accent:N()}],appearance:[{appearance:[`none`,`auto`]}],"caret-color":[{caret:N()}],"color-scheme":[{scheme:[`normal`,`dark`,`light`,`light-dark`,`only-dark`,`only-light`]}],cursor:[{cursor:[`auto`,`default`,`pointer`,`wait`,`text`,`move`,`help`,`not-allowed`,`none`,`context-menu`,`progress`,`cell`,`crosshair`,`vertical-text`,`alias`,`copy`,`no-drop`,`grab`,`grabbing`,`all-scroll`,`col-resize`,`row-resize`,`n-resize`,`e-resize`,`s-resize`,`w-resize`,`ne-resize`,`nw-resize`,`se-resize`,`sw-resize`,`ew-resize`,`ns-resize`,`nesw-resize`,`nwse-resize`,`zoom-in`,`zoom-out`,X,J]}],"field-sizing":[{"field-sizing":[`fixed`,`content`]}],"pointer-events":[{"pointer-events":[`auto`,`none`]}],resize:[{resize:[`none`,``,`y`,`x`]}],"scroll-behavior":[{scroll:[`auto`,`smooth`]}],"scrollbar-thumb-color":[{"scrollbar-thumb":N()}],"scrollbar-track-color":[{"scrollbar-track":N()}],"scrollbar-gutter":[{"scrollbar-gutter":[`auto`,`stable`,`both`]}],"scrollbar-w":[{scrollbar:[`auto`,`thin`,`none`]}],"scroll-m":[{"scroll-m":C()}],"scroll-mx":[{"scroll-mx":C()}],"scroll-my":[{"scroll-my":C()}],"scroll-ms":[{"scroll-ms":C()}],"scroll-me":[{"scroll-me":C()}],"scroll-mbs":[{"scroll-mbs":C()}],"scroll-mbe":[{"scroll-mbe":C()}],"scroll-mt":[{"scroll-mt":C()}],"scroll-mr":[{"scroll-mr":C()}],"scroll-mb":[{"scroll-mb":C()}],"scroll-ml":[{"scroll-ml":C()}],"scroll-p":[{"scroll-p":C()}],"scroll-px":[{"scroll-px":C()}],"scroll-py":[{"scroll-py":C()}],"scroll-ps":[{"scroll-ps":C()}],"scroll-pe":[{"scroll-pe":C()}],"scroll-pbs":[{"scroll-pbs":C()}],"scroll-pbe":[{"scroll-pbe":C()}],"scroll-pt":[{"scroll-pt":C()}],"scroll-pr":[{"scroll-pr":C()}],"scroll-pb":[{"scroll-pb":C()}],"scroll-pl":[{"scroll-pl":C()}],"snap-align":[{snap:[`start`,`end`,`center`,`align-none`]}],"snap-stop":[{snap:[`normal`,`always`]}],"snap-type":[{snap:[`none`,`x`,`y`,`both`]}],"snap-strictness":[{snap:[`mandatory`,`proximity`]}],touch:[{touch:[`auto`,`none`,`manipulation`]}],"touch-x":[{"touch-pan":[`x`,`left`,`right`]}],"touch-y":[{"touch-pan":[`y`,`up`,`down`]}],"touch-pz":[`touch-pinch-zoom`],select:[{select:[`none`,`text`,`all`,`auto`]}],"will-change":[{"will-change":[`auto`,`scroll`,`contents`,`transform`,X,J]}],fill:[{fill:[`none`,...N()]}],"stroke-w":[{stroke:[G,Z,Y,Ue]}],stroke:[{stroke:[`none`,...N()]}],"forced-color-adjust":[{"forced-color-adjust":[`auto`,`none`]}]},conflictingClassGroups:{"container-named":[`container-type`],overflow:[`overflow-x`,`overflow-y`],overscroll:[`overscroll-x`,`overscroll-y`],inset:[`inset-x`,`inset-y`,`inset-bs`,`inset-be`,`start`,`end`,`top`,`right`,`bottom`,`left`],"inset-x":[`right`,`left`],"inset-y":[`top`,`bottom`],flex:[`basis`,`grow`,`shrink`],gap:[`gap-x`,`gap-y`],p:[`px`,`py`,`ps`,`pe`,`pbs`,`pbe`,`pt`,`pr`,`pb`,`pl`],px:[`pr`,`pl`],py:[`pt`,`pb`],m:[`mx`,`my`,`ms`,`me`,`mbs`,`mbe`,`mt`,`mr`,`mb`,`ml`],mx:[`mr`,`ml`],my:[`mt`,`mb`],size:[`w`,`h`],"font-size":[`leading`],"fvn-normal":[`fvn-ordinal`,`fvn-slashed-zero`,`fvn-figure`,`fvn-spacing`,`fvn-fraction`],"fvn-ordinal":[`fvn-normal`],"fvn-slashed-zero":[`fvn-normal`],"fvn-figure":[`fvn-normal`],"fvn-spacing":[`fvn-normal`],"fvn-fraction":[`fvn-normal`],"line-clamp":[`display`,`overflow`],rounded:[`rounded-s`,`rounded-e`,`rounded-t`,`rounded-r`,`rounded-b`,`rounded-l`,`rounded-ss`,`rounded-se`,`rounded-ee`,`rounded-es`,`rounded-tl`,`rounded-tr`,`rounded-br`,`rounded-bl`],"rounded-s":[`rounded-ss`,`rounded-es`],"rounded-e":[`rounded-se`,`rounded-ee`],"rounded-t":[`rounded-tl`,`rounded-tr`],"rounded-r":[`rounded-tr`,`rounded-br`],"rounded-b":[`rounded-br`,`rounded-bl`],"rounded-l":[`rounded-tl`,`rounded-bl`],"border-spacing":[`border-spacing-x`,`border-spacing-y`],"border-w":[`border-w-x`,`border-w-y`,`border-w-s`,`border-w-e`,`border-w-bs`,`border-w-be`,`border-w-t`,`border-w-r`,`border-w-b`,`border-w-l`],"border-w-x":[`border-w-r`,`border-w-l`],"border-w-y":[`border-w-t`,`border-w-b`],"border-color":[`border-color-x`,`border-color-y`,`border-color-s`,`border-color-e`,`border-color-bs`,`border-color-be`,`border-color-t`,`border-color-r`,`border-color-b`,`border-color-l`],"border-color-x":[`border-color-r`,`border-color-l`],"border-color-y":[`border-color-t`,`border-color-b`],translate:[`translate-x`,`translate-y`,`translate-none`],"translate-none":[`translate`,`translate-x`,`translate-y`,`translate-z`],"scroll-m":[`scroll-mx`,`scroll-my`,`scroll-ms`,`scroll-me`,`scroll-mbs`,`scroll-mbe`,`scroll-mt`,`scroll-mr`,`scroll-mb`,`scroll-ml`],"scroll-mx":[`scroll-mr`,`scroll-ml`],"scroll-my":[`scroll-mt`,`scroll-mb`],"scroll-p":[`scroll-px`,`scroll-py`,`scroll-ps`,`scroll-pe`,`scroll-pbs`,`scroll-pbe`,`scroll-pt`,`scroll-pr`,`scroll-pb`,`scroll-pl`],"scroll-px":[`scroll-pr`,`scroll-pl`],"scroll-py":[`scroll-pt`,`scroll-pb`],touch:[`touch-x`,`touch-y`,`touch-pz`],"touch-x":[`touch`],"touch-y":[`touch`],"touch-pz":[`touch`]},conflictingClassGroupModifiers:{"font-size":[`leading`]},postfixLookupClassGroups:[`container-type`],orderSensitiveModifiers:[`*`,`**`,`after`,`backdrop`,`before`,`details-content`,`file`,`first-letter`,`first-line`,`marker`,`placeholder`,`selection`]}});function ut(...e){return lt(M(e))}var dt=e=>typeof e==`boolean`?`${e}`:e===0?`0`:e,ft=M,pt=(e,t)=>n=>{if(t?.variants==null)return ft(e,n?.class,n?.className);let{variants:r,defaultVariants:i}=t,a=Object.keys(r).map(e=>{let t=n?.[e],a=i?.[e];if(t===null)return null;let o=dt(t)||dt(a);return r[e][o]}),o=n&&Object.entries(n).reduce((e,t)=>{let[n,r]=t;return r===void 0||(e[n]=r),e},{});return ft(e,a,t?.compoundVariants?.reduce((e,t)=>{let{class:n,className:r,...a}=t;return Object.entries(a).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...i,...o}[t]):{...i,...o}[t]===n})?[...e,n,r]:e},[]),n?.class,n?.className)},mt=pt(`inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,{variants:{variant:{default:`bg-primary text-primary-foreground hover:bg-primary/90`,destructive:`bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40`,outline:`border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50`,secondary:`bg-secondary text-secondary-foreground hover:bg-secondary/80`,ghost:`hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50`,link:`text-primary underline-offset-4 hover:underline`},size:{default:`h-9 px-4 py-2 has-[>svg]:px-3`,xs:`h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3`,sm:`h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5`,lg:`h-10 rounded-md px-6 has-[>svg]:px-4`,icon:`size-9`,"icon-xs":`size-6 rounded-md [&_svg:not([class*='size-'])]:size-3`,"icon-sm":`size-8`,"icon-lg":`size-10`}},defaultVariants:{variant:`default`,size:`default`}});function ht({className:e,variant:t=`default`,size:n=`default`,asChild:r=!1,...i}){let a=r?g:`button`;return(0,E.jsx)(a,{"data-slot":`button`,"data-variant":t,"data-size":n,className:ut(mt({variant:t,size:n,className:e})),...i})}export{k as a,v as c,a as d,ut as i,d as l,mt as n,A as o,pt as r,h as s,ht as t,f as u};
|
|
1
|
+
import{r as e,t}from"./hePW80VL.js";import{p as n}from"./CyX8oVsa.js";import{r}from"./C76CctEl.js";var i=t((e=>{var t=n();function r(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function i(){}var a={d:{f:i,r:function(){throw Error(r(522))},D:i,C:i,L:i,m:i,X:i,S:i,M:i},p:0,findDOMNode:null},o=Symbol.for(`react.portal`);function s(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:o,key:r==null?null:``+r,children:e,containerInfo:t,implementation:n}}var c=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function l(e,t){if(e===`font`)return``;if(typeof t==`string`)return t===`use-credentials`?t:``}e.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=a,e.createPortal=function(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)throw Error(r(299));return s(e,t,null,n)},e.flushSync=function(e){var t=c.T,n=a.p;try{if(c.T=null,a.p=2,e)return e()}finally{c.T=t,a.p=n,a.d.f()}},e.preconnect=function(e,t){typeof e==`string`&&(t?(t=t.crossOrigin,t=typeof t==`string`?t===`use-credentials`?t:``:void 0):t=null,a.d.C(e,t))},e.prefetchDNS=function(e){typeof e==`string`&&a.d.D(e)},e.preinit=function(e,t){if(typeof e==`string`&&t&&typeof t.as==`string`){var n=t.as,r=l(n,t.crossOrigin),i=typeof t.integrity==`string`?t.integrity:void 0,o=typeof t.fetchPriority==`string`?t.fetchPriority:void 0;n===`style`?a.d.S(e,typeof t.precedence==`string`?t.precedence:void 0,{crossOrigin:r,integrity:i,fetchPriority:o}):n===`script`&&a.d.X(e,{crossOrigin:r,integrity:i,fetchPriority:o,nonce:typeof t.nonce==`string`?t.nonce:void 0})}},e.preinitModule=function(e,t){if(typeof e==`string`){if(typeof t==`object`&&t){if(t.as==null||t.as===`script`){var n=l(t.as,t.crossOrigin);a.d.M(e,{crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0})}}else t??a.d.M(e)}},e.preload=function(e,t){if(typeof e==`string`&&typeof t==`object`&&t&&typeof t.as==`string`){var n=t.as,r=l(n,t.crossOrigin);a.d.L(e,n,{crossOrigin:r,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,type:typeof t.type==`string`?t.type:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0,referrerPolicy:typeof t.referrerPolicy==`string`?t.referrerPolicy:void 0,imageSrcSet:typeof t.imageSrcSet==`string`?t.imageSrcSet:void 0,imageSizes:typeof t.imageSizes==`string`?t.imageSizes:void 0,media:typeof t.media==`string`?t.media:void 0})}},e.preloadModule=function(e,t){if(typeof e==`string`){if(t){var n=l(t.as,t.crossOrigin);a.d.m(e,{as:typeof t.as==`string`&&t.as!==`script`?t.as:void 0,crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0})}else a.d.m(e)}},e.requestFormReset=function(e){a.d.r(e)},e.unstable_batchedUpdates=function(e,t){return e(t)},e.useFormState=function(e,t,n){return c.H.useFormState(e,t,n)},e.useFormStatus=function(){return c.H.useHostTransitionStatus()},e.version=`19.2.8`})),a=t(((e,t)=>{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=i()})),o=e(a(),1),s=e(n(),1),c=Object.defineProperty,l=(e,t)=>c(e,`name`,{value:t,configurable:!0});function u(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}l(u,`setRef`);function d(...e){return t=>{let n=!1,r=e.map(e=>{let r=u(e,t);return!n&&typeof r==`function`&&(n=!0),r});if(n)return()=>{for(let t=0;t<r.length;t++){let n=r[t];typeof n==`function`?n():u(e[t],null)}}}}l(d,`composeRefs`);function f(...e){return s.useCallback(d(...e),e)}l(f,`useComposedRefs`);var p=Object.defineProperty,m=(e,t)=>p(e,`name`,{value:t,configurable:!0});function h(e){let t=s.forwardRef((t,n)=>{let{children:r,...i}=t,a=null,o=!1,c=[];C(r)&&typeof T==`function`&&(r=T(r._payload)),s.Children.forEach(r,e=>{if(S(e)){o=!0;let t=e,n=`child`in t.props?t.props.child:t.props.children;C(n)&&typeof T==`function`&&(n=T(n._payload)),a=y(t,n),c.push(a?.props?.children)}else c.push(e)}),a?a=s.cloneElement(a,void 0,c):!o&&s.Children.count(r)===1&&s.isValidElement(r)&&(a=r);let l=a?x(a):void 0,u=f(n,l);if(!a){if(r||r===0)throw Error(o?ne(e):te(e));return r}let d=b(i,a.props??{});return a.type!==s.Fragment&&(d.ref=n?u:l),s.cloneElement(a,d)});return t.displayName=`${e}.Slot`,t}m(h,`createSlot`);var g=h(`Slot`),_=Symbol.for(`radix.slottable`);function v(e){let t=m(e=>`child`in e?e.children(e.child):e.children,`Slottable`);return t.displayName=`${e}.Slottable`,t.__radixId=_,t}m(v,`createSlottable`);var y=m((e,t)=>{if(`child`in e.props){let t=e.props.child;return s.isValidElement(t)?s.cloneElement(t,void 0,e.props.children(t.props.children)):null}return s.isValidElement(t)?t:null},`getSlottableElementFromSlottable`);function b(e,t){let n={...t};for(let r in t){let i=e[r],a=t[r];/^on[A-Z]/.test(r)?i&&a?n[r]=(...e)=>{let t=a(...e);return i(...e),t}:i&&(n[r]=i):r===`style`?n[r]={...i,...a}:r===`className`&&(n[r]=[i,a].filter(Boolean).join(` `))}return{...e,...n}}m(b,`mergeProps`);function x(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}m(x,`getElementRef`);function S(e){return s.isValidElement(e)&&typeof e.type==`function`&&`__radixId`in e.type&&e.type.__radixId===_}m(S,`isSlottable`);var ee=Symbol.for(`react.lazy`);function C(e){return typeof e==`object`&&!!e&&`$$typeof`in e&&e.$$typeof===ee&&`_payload`in e&&w(e._payload)}m(C,`isLazyComponent`);function w(e){return typeof e==`object`&&!!e&&`then`in e}m(w,`isPromiseLike`);var te=m(e=>`${e} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,`createSlotError`),ne=m(e=>`${e} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,`createSlottableError`),T=s.use,E=r(),D=Object.defineProperty,O=(e,t)=>D(e,`name`,{value:t,configurable:!0}),k=[`a`,`button`,`div`,`form`,`h2`,`h3`,`img`,`input`,`label`,`li`,`nav`,`ol`,`p`,`select`,`span`,`svg`,`ul`].reduce((e,t)=>{let n=h(`Primitive.${t}`),r=s.forwardRef((e,r)=>{let{asChild:i,...a}=e,o=i?n:t;return typeof window<`u`&&(window[Symbol.for(`radix-ui`)]=!0),(0,E.jsx)(o,{...a,ref:r})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function A(e,t){e&&o.flushSync(()=>e.dispatchEvent(t))}O(A,`dispatchDiscreteCustomEvent`);function j(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`){if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=j(e[t]))&&(r&&(r+=` `),r+=n)}else for(n in e)e[n]&&(r&&(r+=` `),r+=n)}return r}function M(){for(var e,t,n=0,r=``,i=arguments.length;n<i;n++)(e=arguments[n])&&(t=j(e))&&(r&&(r+=` `),r+=t);return r}var N=(e,t)=>{let n=Array(e.length+t.length);for(let t=0;t<e.length;t++)n[t]=e[t];for(let r=0;r<t.length;r++)n[e.length+r]=t[r];return n},re=(e,t)=>({classGroupId:e,validator:t}),ie=(e=new Map,t=null,n)=>({nextPart:e,validators:t,classGroupId:n}),P=`-`,F=[],I=`arbitrary..`,L=e=>{let t=z(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:e=>{if(e.startsWith(`[`)&&e.endsWith(`]`))return ae(e);let n=e.split(P);return R(n,+(n[0]===``&&n.length>1),t)},getConflictingClassGroupIds:(e,t)=>{if(t){let t=r[e],i=n[e];return t?i?N(i,t):t:i||F}return n[e]||F}}},R=(e,t,n)=>{if(e.length-t===0)return n.classGroupId;let r=e[t],i=n.nextPart.get(r);if(i){let n=R(e,t+1,i);if(n)return n}let a=n.validators;if(a===null)return;let o=t===0?e.join(P):e.slice(t).join(P),s=a.length;for(let e=0;e<s;e++){let t=a[e];if(t.validator(o))return t.classGroupId}},ae=e=>e.slice(1,-1).indexOf(`:`)===-1?void 0:(()=>{let t=e.slice(1,-1),n=t.indexOf(`:`),r=t.slice(0,n);return r?I+r:void 0})(),z=e=>{let{theme:t,classGroups:n}=e;return oe(n,t)},oe=(e,t)=>{let n=ie();for(let r in e){let i=e[r];B(i,n,r,t)}return n},B=(e,t,n,r)=>{let i=e.length;for(let a=0;a<i;a++){let i=e[a];V(i,t,n,r)}},V=(e,t,n,r)=>{if(typeof e==`string`){se(e,t,n);return}if(typeof e==`function`){H(e,t,n,r);return}ce(e,t,n,r)},se=(e,t,n)=>{let r=e===``?t:le(t,e);r.classGroupId=n},H=(e,t,n,r)=>{if(ue(e)){B(e(r),t,n,r);return}t.validators===null&&(t.validators=[]),t.validators.push(re(n,e))},ce=(e,t,n,r)=>{let i=Object.entries(e),a=i.length;for(let e=0;e<a;e++){let[a,o]=i[e];B(o,le(t,a),n,r)}},le=(e,t)=>{let n=e,r=t.split(P),i=r.length;for(let e=0;e<i;e++){let t=r[e],i=n.nextPart.get(t);i||(i=ie(),n.nextPart.set(t,i)),n=i}return n},ue=e=>`isThemeGetter`in e&&e.isThemeGetter===!0,de=e=>{if(e<1)return{get:()=>void 0,set:()=>{}};let t=0,n=Object.create(null),r=Object.create(null),i=(i,a)=>{n[i]=a,t++,t>e&&(t=0,r=n,n=Object.create(null))};return{get(e){let t=n[e];if(t!==void 0)return t;if((t=r[e])!==void 0)return i(e,t),t},set(e,t){e in n?n[e]=t:i(e,t)}}},fe=`!`,pe=`:`,me=[],he=(e,t,n,r,i)=>({modifiers:e,hasImportantModifier:t,baseClassName:n,maybePostfixModifierPosition:r,isExternal:i}),ge=e=>{let{prefix:t,experimentalParseClassName:n}=e,r=e=>{let t=[],n=0,r=0,i=0,a,o=e.length;for(let s=0;s<o;s++){let o=e[s];if(n===0&&r===0){if(o===pe){t.push(e.slice(i,s)),i=s+1;continue}if(o===`/`){a=s;continue}}o===`[`?n++:o===`]`?n--:o===`(`?r++:o===`)`&&r--}let s=t.length===0?e:e.slice(i),c=s,l=!1;s.endsWith(fe)?(c=s.slice(0,-1),l=!0):s.startsWith(fe)&&(c=s.slice(1),l=!0);let u=a&&a>i?a-i:void 0;return he(t,l,c,u)};if(t){let e=t+pe,n=r;r=t=>t.startsWith(e)?n(t.slice(e.length)):he(me,!1,t,void 0,!0)}if(n){let e=r;r=t=>n({className:t,parseClassName:e})}return r},_e=e=>{let t=new Map;return e.orderSensitiveModifiers.forEach((e,n)=>{t.set(e,1e6+n)}),e=>{let n=[],r=[];for(let i=0;i<e.length;i++){let a=e[i],o=a[0]===`[`,s=t.has(a);o||s?(r.length>0&&(r.sort(),n.push(...r),r=[]),n.push(a)):r.push(a)}return r.length>0&&(r.sort(),n.push(...r)),n}},ve=e=>({cache:de(e.cacheSize),parseClassName:ge(e),sortModifiers:_e(e),postfixLookupClassGroupIds:ye(e),...L(e)}),ye=e=>{let t=Object.create(null),n=e.postfixLookupClassGroups;if(n)for(let e=0;e<n.length;e++)t[n[e]]=!0;return t},be=/\s+/,xe=(e,t)=>{let{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:i,sortModifiers:a,postfixLookupClassGroupIds:o}=t,s=[],c=e.trim().split(be),l=``;for(let e=c.length-1;e>=0;--e){let t=c[e],{isExternal:u,modifiers:d,hasImportantModifier:f,baseClassName:p,maybePostfixModifierPosition:m}=n(t);if(u){l=t+(l.length>0?` `+l:l);continue}let h=!!m,g;if(h){g=r(p.substring(0,m));let e=g&&o[g]?r(p):void 0;e&&e!==g&&(g=e,h=!1)}else g=r(p);if(!g){if(!h){l=t+(l.length>0?` `+l:l);continue}if(g=r(p),!g){l=t+(l.length>0?` `+l:l);continue}h=!1}let _=d.length===0?``:d.length===1?d[0]:a(d).join(`:`),v=f?_+fe:_,y=v+g;if(s.indexOf(y)>-1)continue;s.push(y);let b=i(g,h);for(let e=0;e<b.length;++e){let t=b[e];s.push(v+t)}l=t+(l.length>0?` `+l:l)}return l},Se=(...e)=>{let t=0,n,r,i=``;for(;t<e.length;)(n=e[t++])&&(r=Ce(n))&&(i&&(i+=` `),i+=r);return i},Ce=e=>{if(typeof e==`string`)return e;let t,n=``;for(let r=0;r<e.length;r++)e[r]&&(t=Ce(e[r]))&&(n&&(n+=` `),n+=t);return n},we=(e,...t)=>{let n,r,i,a,o=o=>(n=ve(t.reduce((e,t)=>t(e),e())),r=n.cache.get,i=n.cache.set,a=s,s(o)),s=e=>{let t=r(e);if(t)return t;let a=xe(e,n);return i(e,a),a};return a=o,(...e)=>a(Se(...e))},Te=[],U=e=>{let t=t=>t[e]||Te;return t.isThemeGetter=!0,t},Ee=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,De=/^\((?:(\w[\w-]*):)?(.+)\)$/i,Oe=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,ke=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Ae=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,je=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Me=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Ne=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,W=e=>Oe.test(e),G=e=>!!e&&!Number.isNaN(Number(e)),K=e=>!!e&&Number.isInteger(Number(e)),Pe=e=>e.endsWith(`%`)&&G(e.slice(0,-1)),q=e=>ke.test(e),Fe=()=>!0,Ie=e=>Ae.test(e)&&!je.test(e),Le=()=>!1,Re=e=>Me.test(e),ze=e=>Ne.test(e),Be=e=>!J(e)&&!X(e),Ve=e=>e.startsWith(`@container`)&&(e[10]===`/`&&e[11]!==void 0||e[11]===`s`&&e[16]!==void 0&&e.startsWith(`-size/`,10)||e[11]===`n`&&e[18]!==void 0&&e.startsWith(`-normal/`,10)),He=e=>Q(e,rt,Le),J=e=>Ee.test(e),Y=e=>Q(e,it,Ie),Ue=e=>Q(e,at,G),We=e=>Q(e,st,Fe),Ge=e=>Q(e,ot,Le),Ke=e=>Q(e,tt,Le),qe=e=>Q(e,nt,ze),Je=e=>Q(e,ct,Re),X=e=>De.test(e),Z=e=>$(e,it),Ye=e=>$(e,ot),Xe=e=>$(e,tt),Ze=e=>$(e,rt),Qe=e=>$(e,nt),$e=e=>$(e,ct,!0),et=e=>$(e,st,!0),Q=(e,t,n)=>{let r=Ee.exec(e);return r?r[1]?t(r[1]):n(r[2]):!1},$=(e,t,n=!1)=>{let r=De.exec(e);return r?r[1]?t(r[1]):n:!1},tt=e=>e===`position`||e===`percentage`,nt=e=>e===`image`||e===`url`,rt=e=>e===`length`||e===`size`||e===`bg-size`,it=e=>e===`length`,at=e=>e===`number`,ot=e=>e===`family-name`,st=e=>e===`number`||e===`weight`,ct=e=>e===`shadow`,lt=we(()=>{let e=U(`color`),t=U(`font`),n=U(`text`),r=U(`font-weight`),i=U(`tracking`),a=U(`leading`),o=U(`breakpoint`),s=U(`container`),c=U(`spacing`),l=U(`radius`),u=U(`shadow`),d=U(`inset-shadow`),f=U(`text-shadow`),p=U(`drop-shadow`),m=U(`blur`),h=U(`perspective`),g=U(`aspect`),_=U(`ease`),v=U(`animate`),y=()=>[`auto`,`avoid`,`all`,`avoid-page`,`page`,`left`,`right`,`column`],b=()=>[`center`,`top`,`bottom`,`left`,`right`,`top-left`,`left-top`,`top-right`,`right-top`,`bottom-right`,`right-bottom`,`bottom-left`,`left-bottom`],x=()=>[...b(),X,J],S=()=>[`auto`,`hidden`,`clip`,`visible`,`scroll`],ee=()=>[`auto`,`contain`,`none`],C=()=>[X,J,c],w=()=>[W,`full`,`auto`,...C()],te=()=>[K,`none`,`subgrid`,X,J],ne=()=>[`auto`,{span:[`full`,K,X,J]},K,X,J],T=()=>[K,`auto`,X,J],E=()=>[`auto`,`min`,`max`,`fr`,X,J],D=()=>[`start`,`end`,`center`,`between`,`around`,`evenly`,`stretch`,`baseline`,`center-safe`,`end-safe`],O=()=>[`start`,`end`,`center`,`stretch`,`center-safe`,`end-safe`],k=()=>[`auto`,...C()],A=()=>[W,`auto`,`full`,`dvw`,`dvh`,`lvw`,`lvh`,`svw`,`svh`,`min`,`max`,`fit`,...C()],j=()=>[W,`screen`,`full`,`dvw`,`lvw`,`svw`,`min`,`max`,`fit`,...C()],M=()=>[W,`screen`,`full`,`lh`,`dvh`,`lvh`,`svh`,`min`,`max`,`fit`,...C()],N=()=>[e,X,J],re=()=>[...b(),Xe,Ke,{position:[X,J]}],ie=()=>[`no-repeat`,{repeat:[``,`x`,`y`,`space`,`round`]}],P=()=>[`auto`,`cover`,`contain`,Ze,He,{size:[X,J]}],F=()=>[Pe,Z,Y],I=()=>[``,`none`,`full`,l,X,J],L=()=>[``,G,Z,Y],R=()=>[`solid`,`dashed`,`dotted`,`double`],ae=()=>[`normal`,`multiply`,`screen`,`overlay`,`darken`,`lighten`,`color-dodge`,`color-burn`,`hard-light`,`soft-light`,`difference`,`exclusion`,`hue`,`saturation`,`color`,`luminosity`],z=()=>[G,Pe,Xe,Ke],oe=()=>[``,`none`,m,X,J],B=()=>[`none`,G,X,J],V=()=>[`none`,G,X,J],se=()=>[G,X,J],H=()=>[W,`full`,...C()];return{cacheSize:500,theme:{animate:[`spin`,`ping`,`pulse`,`bounce`],aspect:[`video`],blur:[q],breakpoint:[q],color:[Fe],container:[q],"drop-shadow":[q],ease:[`in`,`out`,`in-out`],font:[Be],"font-weight":[`thin`,`extralight`,`light`,`normal`,`medium`,`semibold`,`bold`,`extrabold`,`black`],"inset-shadow":[q],leading:[`none`,`tight`,`snug`,`normal`,`relaxed`,`loose`],perspective:[`dramatic`,`near`,`normal`,`midrange`,`distant`,`none`],radius:[q],shadow:[q],spacing:[`px`,G],text:[q],"text-shadow":[q],tracking:[`tighter`,`tight`,`normal`,`wide`,`wider`,`widest`]},classGroups:{aspect:[{aspect:[`auto`,`square`,W,J,X,g]}],container:[`container`],"container-type":[{"@container":[``,`normal`,`size`,X,J]}],"container-named":[Ve],columns:[{columns:[G,J,X,s]}],"break-after":[{"break-after":y()}],"break-before":[{"break-before":y()}],"break-inside":[{"break-inside":[`auto`,`avoid`,`avoid-page`,`avoid-column`]}],"box-decoration":[{"box-decoration":[`slice`,`clone`]}],box:[{box:[`border`,`content`]}],display:[`block`,`inline-block`,`inline`,`flex`,`inline-flex`,`table`,`inline-table`,`table-caption`,`table-cell`,`table-column`,`table-column-group`,`table-footer-group`,`table-header-group`,`table-row-group`,`table-row`,`flow-root`,`grid`,`inline-grid`,`contents`,`list-item`,`hidden`],sr:[`sr-only`,`not-sr-only`],float:[{float:[`right`,`left`,`none`,`start`,`end`]}],clear:[{clear:[`left`,`right`,`both`,`none`,`start`,`end`]}],isolation:[`isolate`,`isolation-auto`],"object-fit":[{object:[`contain`,`cover`,`fill`,`none`,`scale-down`]}],"object-position":[{object:x()}],overflow:[{overflow:S()}],"overflow-x":[{"overflow-x":S()}],"overflow-y":[{"overflow-y":S()}],overscroll:[{overscroll:ee()}],"overscroll-x":[{"overscroll-x":ee()}],"overscroll-y":[{"overscroll-y":ee()}],position:[`static`,`fixed`,`absolute`,`relative`,`sticky`],inset:[{inset:w()}],"inset-x":[{"inset-x":w()}],"inset-y":[{"inset-y":w()}],start:[{"inset-s":w(),start:w()}],end:[{"inset-e":w(),end:w()}],"inset-bs":[{"inset-bs":w()}],"inset-be":[{"inset-be":w()}],top:[{top:w()}],right:[{right:w()}],bottom:[{bottom:w()}],left:[{left:w()}],visibility:[`visible`,`invisible`,`collapse`],z:[{z:[K,`auto`,X,J]}],basis:[{basis:[W,`full`,`auto`,s,...C()]}],"flex-direction":[{flex:[`row`,`row-reverse`,`col`,`col-reverse`]}],"flex-wrap":[{flex:[`nowrap`,`wrap`,`wrap-reverse`]}],flex:[{flex:[G,W,`auto`,`initial`,`none`,J]}],grow:[{grow:[``,G,X,J]}],shrink:[{shrink:[``,G,X,J]}],order:[{order:[K,`first`,`last`,`none`,X,J]}],"grid-cols":[{"grid-cols":te()}],"col-start-end":[{col:ne()}],"col-start":[{"col-start":T()}],"col-end":[{"col-end":T()}],"grid-rows":[{"grid-rows":te()}],"row-start-end":[{row:ne()}],"row-start":[{"row-start":T()}],"row-end":[{"row-end":T()}],"grid-flow":[{"grid-flow":[`row`,`col`,`dense`,`row-dense`,`col-dense`]}],"auto-cols":[{"auto-cols":E()}],"auto-rows":[{"auto-rows":E()}],gap:[{gap:C()}],"gap-x":[{"gap-x":C()}],"gap-y":[{"gap-y":C()}],"justify-content":[{justify:[...D(),`normal`]}],"justify-items":[{"justify-items":[...O(),`normal`]}],"justify-self":[{"justify-self":[`auto`,...O()]}],"align-content":[{content:[`normal`,...D()]}],"align-items":[{items:[...O(),{baseline:[``,`last`]}]}],"align-self":[{self:[`auto`,...O(),{baseline:[``,`last`]}]}],"place-content":[{"place-content":D()}],"place-items":[{"place-items":[...O(),`baseline`]}],"place-self":[{"place-self":[`auto`,...O()]}],p:[{p:C()}],px:[{px:C()}],py:[{py:C()}],ps:[{ps:C()}],pe:[{pe:C()}],pbs:[{pbs:C()}],pbe:[{pbe:C()}],pt:[{pt:C()}],pr:[{pr:C()}],pb:[{pb:C()}],pl:[{pl:C()}],m:[{m:k()}],mx:[{mx:k()}],my:[{my:k()}],ms:[{ms:k()}],me:[{me:k()}],mbs:[{mbs:k()}],mbe:[{mbe:k()}],mt:[{mt:k()}],mr:[{mr:k()}],mb:[{mb:k()}],ml:[{ml:k()}],"space-x":[{"space-x":C()}],"space-x-reverse":[`space-x-reverse`],"space-y":[{"space-y":C()}],"space-y-reverse":[`space-y-reverse`],size:[{size:A()}],"inline-size":[{inline:[`auto`,...j()]}],"min-inline-size":[{"min-inline":[`auto`,...j()]}],"max-inline-size":[{"max-inline":[`none`,...j()]}],"block-size":[{block:[`auto`,...M()]}],"min-block-size":[{"min-block":[`auto`,...M()]}],"max-block-size":[{"max-block":[`none`,...M()]}],w:[{w:[s,`screen`,...A()]}],"min-w":[{"min-w":[s,`screen`,`none`,...A()]}],"max-w":[{"max-w":[s,`screen`,`none`,`prose`,{screen:[o]},...A()]}],h:[{h:[`screen`,`lh`,...A()]}],"min-h":[{"min-h":[`screen`,`lh`,`none`,...A()]}],"max-h":[{"max-h":[`screen`,`lh`,...A()]}],"font-size":[{text:[`base`,n,Z,Y]}],"font-smoothing":[`antialiased`,`subpixel-antialiased`],"font-style":[`italic`,`not-italic`],"font-weight":[{font:[r,et,We]}],"font-stretch":[{"font-stretch":[`ultra-condensed`,`extra-condensed`,`condensed`,`semi-condensed`,`normal`,`semi-expanded`,`expanded`,`extra-expanded`,`ultra-expanded`,Pe,J]}],"font-family":[{font:[Ye,Ge,t]}],"font-features":[{"font-features":[J]}],"fvn-normal":[`normal-nums`],"fvn-ordinal":[`ordinal`],"fvn-slashed-zero":[`slashed-zero`],"fvn-figure":[`lining-nums`,`oldstyle-nums`],"fvn-spacing":[`proportional-nums`,`tabular-nums`],"fvn-fraction":[`diagonal-fractions`,`stacked-fractions`],tracking:[{tracking:[i,X,J]}],"line-clamp":[{"line-clamp":[G,`none`,X,Ue]}],leading:[{leading:[a,...C()]}],"list-image":[{"list-image":[`none`,X,J]}],"list-style-position":[{list:[`inside`,`outside`]}],"list-style-type":[{list:[`disc`,`decimal`,`none`,X,J]}],"text-alignment":[{text:[`left`,`center`,`right`,`justify`,`start`,`end`]}],"placeholder-color":[{placeholder:N()}],"text-color":[{text:N()}],"text-decoration":[`underline`,`overline`,`line-through`,`no-underline`],"text-decoration-style":[{decoration:[...R(),`wavy`]}],"text-decoration-thickness":[{decoration:[G,`from-font`,`auto`,X,Y]}],"text-decoration-color":[{decoration:N()}],"underline-offset":[{"underline-offset":[G,`auto`,X,J]}],"text-transform":[`uppercase`,`lowercase`,`capitalize`,`normal-case`],"text-overflow":[`truncate`,`text-ellipsis`,`text-clip`],"text-wrap":[{text:[`wrap`,`nowrap`,`balance`,`pretty`]}],indent:[{indent:C()}],"tab-size":[{tab:[K,X,J]}],"vertical-align":[{align:[`baseline`,`top`,`middle`,`bottom`,`text-top`,`text-bottom`,`sub`,`super`,X,J]}],whitespace:[{whitespace:[`normal`,`nowrap`,`pre`,`pre-line`,`pre-wrap`,`break-spaces`]}],break:[{break:[`normal`,`words`,`all`,`keep`]}],wrap:[{wrap:[`break-word`,`anywhere`,`normal`]}],hyphens:[{hyphens:[`none`,`manual`,`auto`]}],content:[{content:[`none`,X,J]}],"bg-attachment":[{bg:[`fixed`,`local`,`scroll`]}],"bg-clip":[{"bg-clip":[`border`,`padding`,`content`,`text`]}],"bg-origin":[{"bg-origin":[`border`,`padding`,`content`]}],"bg-position":[{bg:re()}],"bg-repeat":[{bg:ie()}],"bg-size":[{bg:P()}],"bg-image":[{bg:[`none`,{linear:[{to:[`t`,`tr`,`r`,`br`,`b`,`bl`,`l`,`tl`]},K,X,J],radial:[``,X,J],conic:[K,X,J]},Qe,qe]}],"bg-color":[{bg:N()}],"gradient-from-pos":[{from:F()}],"gradient-via-pos":[{via:F()}],"gradient-to-pos":[{to:F()}],"gradient-from":[{from:N()}],"gradient-via":[{via:N()}],"gradient-to":[{to:N()}],rounded:[{rounded:I()}],"rounded-s":[{"rounded-s":I()}],"rounded-e":[{"rounded-e":I()}],"rounded-t":[{"rounded-t":I()}],"rounded-r":[{"rounded-r":I()}],"rounded-b":[{"rounded-b":I()}],"rounded-l":[{"rounded-l":I()}],"rounded-ss":[{"rounded-ss":I()}],"rounded-se":[{"rounded-se":I()}],"rounded-ee":[{"rounded-ee":I()}],"rounded-es":[{"rounded-es":I()}],"rounded-tl":[{"rounded-tl":I()}],"rounded-tr":[{"rounded-tr":I()}],"rounded-br":[{"rounded-br":I()}],"rounded-bl":[{"rounded-bl":I()}],"border-w":[{border:L()}],"border-w-x":[{"border-x":L()}],"border-w-y":[{"border-y":L()}],"border-w-s":[{"border-s":L()}],"border-w-e":[{"border-e":L()}],"border-w-bs":[{"border-bs":L()}],"border-w-be":[{"border-be":L()}],"border-w-t":[{"border-t":L()}],"border-w-r":[{"border-r":L()}],"border-w-b":[{"border-b":L()}],"border-w-l":[{"border-l":L()}],"divide-x":[{"divide-x":L()}],"divide-x-reverse":[`divide-x-reverse`],"divide-y":[{"divide-y":L()}],"divide-y-reverse":[`divide-y-reverse`],"border-style":[{border:[...R(),`hidden`,`none`]}],"divide-style":[{divide:[...R(),`hidden`,`none`]}],"border-color":[{border:N()}],"border-color-x":[{"border-x":N()}],"border-color-y":[{"border-y":N()}],"border-color-s":[{"border-s":N()}],"border-color-e":[{"border-e":N()}],"border-color-bs":[{"border-bs":N()}],"border-color-be":[{"border-be":N()}],"border-color-t":[{"border-t":N()}],"border-color-r":[{"border-r":N()}],"border-color-b":[{"border-b":N()}],"border-color-l":[{"border-l":N()}],"divide-color":[{divide:N()}],"outline-style":[{outline:[...R(),`none`,`hidden`]}],"outline-offset":[{"outline-offset":[G,X,J]}],"outline-w":[{outline:[``,G,Z,Y]}],"outline-color":[{outline:N()}],shadow:[{shadow:[``,`none`,u,$e,Je]}],"shadow-color":[{shadow:N()}],"inset-shadow":[{"inset-shadow":[`none`,d,$e,Je]}],"inset-shadow-color":[{"inset-shadow":N()}],"ring-w":[{ring:L()}],"ring-w-inset":[`ring-inset`],"ring-color":[{ring:N()}],"ring-offset-w":[{"ring-offset":[G,Y]}],"ring-offset-color":[{"ring-offset":N()}],"inset-ring-w":[{"inset-ring":L()}],"inset-ring-color":[{"inset-ring":N()}],"text-shadow":[{"text-shadow":[`none`,f,$e,Je]}],"text-shadow-color":[{"text-shadow":N()}],opacity:[{opacity:[G,X,J]}],"mix-blend":[{"mix-blend":[...ae(),`plus-darker`,`plus-lighter`]}],"bg-blend":[{"bg-blend":ae()}],"mask-clip":[{"mask-clip":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]},`mask-no-clip`],"mask-composite":[{mask:[`add`,`subtract`,`intersect`,`exclude`]}],"mask-image-linear-pos":[{"mask-linear":[G]}],"mask-image-linear-from-pos":[{"mask-linear-from":z()}],"mask-image-linear-to-pos":[{"mask-linear-to":z()}],"mask-image-linear-from-color":[{"mask-linear-from":N()}],"mask-image-linear-to-color":[{"mask-linear-to":N()}],"mask-image-t-from-pos":[{"mask-t-from":z()}],"mask-image-t-to-pos":[{"mask-t-to":z()}],"mask-image-t-from-color":[{"mask-t-from":N()}],"mask-image-t-to-color":[{"mask-t-to":N()}],"mask-image-r-from-pos":[{"mask-r-from":z()}],"mask-image-r-to-pos":[{"mask-r-to":z()}],"mask-image-r-from-color":[{"mask-r-from":N()}],"mask-image-r-to-color":[{"mask-r-to":N()}],"mask-image-b-from-pos":[{"mask-b-from":z()}],"mask-image-b-to-pos":[{"mask-b-to":z()}],"mask-image-b-from-color":[{"mask-b-from":N()}],"mask-image-b-to-color":[{"mask-b-to":N()}],"mask-image-l-from-pos":[{"mask-l-from":z()}],"mask-image-l-to-pos":[{"mask-l-to":z()}],"mask-image-l-from-color":[{"mask-l-from":N()}],"mask-image-l-to-color":[{"mask-l-to":N()}],"mask-image-x-from-pos":[{"mask-x-from":z()}],"mask-image-x-to-pos":[{"mask-x-to":z()}],"mask-image-x-from-color":[{"mask-x-from":N()}],"mask-image-x-to-color":[{"mask-x-to":N()}],"mask-image-y-from-pos":[{"mask-y-from":z()}],"mask-image-y-to-pos":[{"mask-y-to":z()}],"mask-image-y-from-color":[{"mask-y-from":N()}],"mask-image-y-to-color":[{"mask-y-to":N()}],"mask-image-radial":[{"mask-radial":[X,J]}],"mask-image-radial-from-pos":[{"mask-radial-from":z()}],"mask-image-radial-to-pos":[{"mask-radial-to":z()}],"mask-image-radial-from-color":[{"mask-radial-from":N()}],"mask-image-radial-to-color":[{"mask-radial-to":N()}],"mask-image-radial-shape":[{"mask-radial":[`circle`,`ellipse`]}],"mask-image-radial-size":[{"mask-radial":[{closest:[`side`,`corner`],farthest:[`side`,`corner`]}]}],"mask-image-radial-pos":[{"mask-radial-at":b()}],"mask-image-conic-pos":[{"mask-conic":[G]}],"mask-image-conic-from-pos":[{"mask-conic-from":z()}],"mask-image-conic-to-pos":[{"mask-conic-to":z()}],"mask-image-conic-from-color":[{"mask-conic-from":N()}],"mask-image-conic-to-color":[{"mask-conic-to":N()}],"mask-mode":[{mask:[`alpha`,`luminance`,`match`]}],"mask-origin":[{"mask-origin":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]}],"mask-position":[{mask:re()}],"mask-repeat":[{mask:ie()}],"mask-size":[{mask:P()}],"mask-type":[{"mask-type":[`alpha`,`luminance`]}],"mask-image":[{mask:[`none`,X,J]}],filter:[{filter:[``,`none`,X,J]}],blur:[{blur:oe()}],brightness:[{brightness:[G,X,J]}],contrast:[{contrast:[G,X,J]}],"drop-shadow":[{"drop-shadow":[``,`none`,p,$e,Je]}],"drop-shadow-color":[{"drop-shadow":N()}],grayscale:[{grayscale:[``,G,X,J]}],"hue-rotate":[{"hue-rotate":[G,X,J]}],invert:[{invert:[``,G,X,J]}],saturate:[{saturate:[G,X,J]}],sepia:[{sepia:[``,G,X,J]}],"backdrop-filter":[{"backdrop-filter":[``,`none`,X,J]}],"backdrop-blur":[{"backdrop-blur":oe()}],"backdrop-brightness":[{"backdrop-brightness":[G,X,J]}],"backdrop-contrast":[{"backdrop-contrast":[G,X,J]}],"backdrop-grayscale":[{"backdrop-grayscale":[``,G,X,J]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[G,X,J]}],"backdrop-invert":[{"backdrop-invert":[``,G,X,J]}],"backdrop-opacity":[{"backdrop-opacity":[G,X,J]}],"backdrop-saturate":[{"backdrop-saturate":[G,X,J]}],"backdrop-sepia":[{"backdrop-sepia":[``,G,X,J]}],"border-collapse":[{border:[`collapse`,`separate`]}],"border-spacing":[{"border-spacing":C()}],"border-spacing-x":[{"border-spacing-x":C()}],"border-spacing-y":[{"border-spacing-y":C()}],"table-layout":[{table:[`auto`,`fixed`]}],caption:[{caption:[`top`,`bottom`]}],transition:[{transition:[``,`all`,`colors`,`opacity`,`shadow`,`transform`,`none`,X,J]}],"transition-behavior":[{transition:[`normal`,`discrete`]}],duration:[{duration:[G,`initial`,X,J]}],ease:[{ease:[`linear`,`initial`,_,X,J]}],delay:[{delay:[G,X,J]}],animate:[{animate:[`none`,v,X,J]}],backface:[{backface:[`hidden`,`visible`]}],perspective:[{perspective:[h,X,J]}],"perspective-origin":[{"perspective-origin":x()}],rotate:[{rotate:B()}],"rotate-x":[{"rotate-x":B()}],"rotate-y":[{"rotate-y":B()}],"rotate-z":[{"rotate-z":B()}],scale:[{scale:V()}],"scale-x":[{"scale-x":V()}],"scale-y":[{"scale-y":V()}],"scale-z":[{"scale-z":V()}],"scale-3d":[`scale-3d`],skew:[{skew:se()}],"skew-x":[{"skew-x":se()}],"skew-y":[{"skew-y":se()}],transform:[{transform:[X,J,``,`none`,`gpu`,`cpu`]}],"transform-origin":[{origin:x()}],"transform-style":[{transform:[`3d`,`flat`]}],translate:[{translate:H()}],"translate-x":[{"translate-x":H()}],"translate-y":[{"translate-y":H()}],"translate-z":[{"translate-z":H()}],"translate-none":[`translate-none`],zoom:[{zoom:[K,X,J]}],accent:[{accent:N()}],appearance:[{appearance:[`none`,`auto`]}],"caret-color":[{caret:N()}],"color-scheme":[{scheme:[`normal`,`dark`,`light`,`light-dark`,`only-dark`,`only-light`]}],cursor:[{cursor:[`auto`,`default`,`pointer`,`wait`,`text`,`move`,`help`,`not-allowed`,`none`,`context-menu`,`progress`,`cell`,`crosshair`,`vertical-text`,`alias`,`copy`,`no-drop`,`grab`,`grabbing`,`all-scroll`,`col-resize`,`row-resize`,`n-resize`,`e-resize`,`s-resize`,`w-resize`,`ne-resize`,`nw-resize`,`se-resize`,`sw-resize`,`ew-resize`,`ns-resize`,`nesw-resize`,`nwse-resize`,`zoom-in`,`zoom-out`,X,J]}],"field-sizing":[{"field-sizing":[`fixed`,`content`]}],"pointer-events":[{"pointer-events":[`auto`,`none`]}],resize:[{resize:[`none`,``,`y`,`x`]}],"scroll-behavior":[{scroll:[`auto`,`smooth`]}],"scrollbar-thumb-color":[{"scrollbar-thumb":N()}],"scrollbar-track-color":[{"scrollbar-track":N()}],"scrollbar-gutter":[{"scrollbar-gutter":[`auto`,`stable`,`both`]}],"scrollbar-w":[{scrollbar:[`auto`,`thin`,`none`]}],"scroll-m":[{"scroll-m":C()}],"scroll-mx":[{"scroll-mx":C()}],"scroll-my":[{"scroll-my":C()}],"scroll-ms":[{"scroll-ms":C()}],"scroll-me":[{"scroll-me":C()}],"scroll-mbs":[{"scroll-mbs":C()}],"scroll-mbe":[{"scroll-mbe":C()}],"scroll-mt":[{"scroll-mt":C()}],"scroll-mr":[{"scroll-mr":C()}],"scroll-mb":[{"scroll-mb":C()}],"scroll-ml":[{"scroll-ml":C()}],"scroll-p":[{"scroll-p":C()}],"scroll-px":[{"scroll-px":C()}],"scroll-py":[{"scroll-py":C()}],"scroll-ps":[{"scroll-ps":C()}],"scroll-pe":[{"scroll-pe":C()}],"scroll-pbs":[{"scroll-pbs":C()}],"scroll-pbe":[{"scroll-pbe":C()}],"scroll-pt":[{"scroll-pt":C()}],"scroll-pr":[{"scroll-pr":C()}],"scroll-pb":[{"scroll-pb":C()}],"scroll-pl":[{"scroll-pl":C()}],"snap-align":[{snap:[`start`,`end`,`center`,`align-none`]}],"snap-stop":[{snap:[`normal`,`always`]}],"snap-type":[{snap:[`none`,`x`,`y`,`both`]}],"snap-strictness":[{snap:[`mandatory`,`proximity`]}],touch:[{touch:[`auto`,`none`,`manipulation`]}],"touch-x":[{"touch-pan":[`x`,`left`,`right`]}],"touch-y":[{"touch-pan":[`y`,`up`,`down`]}],"touch-pz":[`touch-pinch-zoom`],select:[{select:[`none`,`text`,`all`,`auto`]}],"will-change":[{"will-change":[`auto`,`scroll`,`contents`,`transform`,X,J]}],fill:[{fill:[`none`,...N()]}],"stroke-w":[{stroke:[G,Z,Y,Ue]}],stroke:[{stroke:[`none`,...N()]}],"forced-color-adjust":[{"forced-color-adjust":[`auto`,`none`]}]},conflictingClassGroups:{"container-named":[`container-type`],overflow:[`overflow-x`,`overflow-y`],overscroll:[`overscroll-x`,`overscroll-y`],inset:[`inset-x`,`inset-y`,`inset-bs`,`inset-be`,`start`,`end`,`top`,`right`,`bottom`,`left`],"inset-x":[`right`,`left`],"inset-y":[`top`,`bottom`],flex:[`basis`,`grow`,`shrink`],gap:[`gap-x`,`gap-y`],p:[`px`,`py`,`ps`,`pe`,`pbs`,`pbe`,`pt`,`pr`,`pb`,`pl`],px:[`pr`,`pl`],py:[`pt`,`pb`],m:[`mx`,`my`,`ms`,`me`,`mbs`,`mbe`,`mt`,`mr`,`mb`,`ml`],mx:[`mr`,`ml`],my:[`mt`,`mb`],size:[`w`,`h`],"font-size":[`leading`],"fvn-normal":[`fvn-ordinal`,`fvn-slashed-zero`,`fvn-figure`,`fvn-spacing`,`fvn-fraction`],"fvn-ordinal":[`fvn-normal`],"fvn-slashed-zero":[`fvn-normal`],"fvn-figure":[`fvn-normal`],"fvn-spacing":[`fvn-normal`],"fvn-fraction":[`fvn-normal`],"line-clamp":[`display`,`overflow`],rounded:[`rounded-s`,`rounded-e`,`rounded-t`,`rounded-r`,`rounded-b`,`rounded-l`,`rounded-ss`,`rounded-se`,`rounded-ee`,`rounded-es`,`rounded-tl`,`rounded-tr`,`rounded-br`,`rounded-bl`],"rounded-s":[`rounded-ss`,`rounded-es`],"rounded-e":[`rounded-se`,`rounded-ee`],"rounded-t":[`rounded-tl`,`rounded-tr`],"rounded-r":[`rounded-tr`,`rounded-br`],"rounded-b":[`rounded-br`,`rounded-bl`],"rounded-l":[`rounded-tl`,`rounded-bl`],"border-spacing":[`border-spacing-x`,`border-spacing-y`],"border-w":[`border-w-x`,`border-w-y`,`border-w-s`,`border-w-e`,`border-w-bs`,`border-w-be`,`border-w-t`,`border-w-r`,`border-w-b`,`border-w-l`],"border-w-x":[`border-w-r`,`border-w-l`],"border-w-y":[`border-w-t`,`border-w-b`],"border-color":[`border-color-x`,`border-color-y`,`border-color-s`,`border-color-e`,`border-color-bs`,`border-color-be`,`border-color-t`,`border-color-r`,`border-color-b`,`border-color-l`],"border-color-x":[`border-color-r`,`border-color-l`],"border-color-y":[`border-color-t`,`border-color-b`],translate:[`translate-x`,`translate-y`,`translate-none`],"translate-none":[`translate`,`translate-x`,`translate-y`,`translate-z`],"scroll-m":[`scroll-mx`,`scroll-my`,`scroll-ms`,`scroll-me`,`scroll-mbs`,`scroll-mbe`,`scroll-mt`,`scroll-mr`,`scroll-mb`,`scroll-ml`],"scroll-mx":[`scroll-mr`,`scroll-ml`],"scroll-my":[`scroll-mt`,`scroll-mb`],"scroll-p":[`scroll-px`,`scroll-py`,`scroll-ps`,`scroll-pe`,`scroll-pbs`,`scroll-pbe`,`scroll-pt`,`scroll-pr`,`scroll-pb`,`scroll-pl`],"scroll-px":[`scroll-pr`,`scroll-pl`],"scroll-py":[`scroll-pt`,`scroll-pb`],touch:[`touch-x`,`touch-y`,`touch-pz`],"touch-x":[`touch`],"touch-y":[`touch`],"touch-pz":[`touch`]},conflictingClassGroupModifiers:{"font-size":[`leading`]},postfixLookupClassGroups:[`container-type`],orderSensitiveModifiers:[`*`,`**`,`after`,`backdrop`,`before`,`details-content`,`file`,`first-letter`,`first-line`,`marker`,`placeholder`,`selection`]}});function ut(...e){return lt(M(e))}var dt=e=>typeof e==`boolean`?`${e}`:e===0?`0`:e,ft=M,pt=(e,t)=>n=>{if(t?.variants==null)return ft(e,n?.class,n?.className);let{variants:r,defaultVariants:i}=t,a=Object.keys(r).map(e=>{let t=n?.[e],a=i?.[e];if(t===null)return null;let o=dt(t)||dt(a);return r[e][o]}),o=n&&Object.entries(n).reduce((e,t)=>{let[n,r]=t;return r===void 0||(e[n]=r),e},{});return ft(e,a,t?.compoundVariants?.reduce((e,t)=>{let{class:n,className:r,...a}=t;return Object.entries(a).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...i,...o}[t]):{...i,...o}[t]===n})?[...e,n,r]:e},[]),n?.class,n?.className)},mt=pt(`inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,{variants:{variant:{default:`bg-primary text-primary-foreground hover:bg-primary/90`,destructive:`bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40`,outline:`border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50`,secondary:`bg-secondary text-secondary-foreground hover:bg-secondary/80`,ghost:`hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50`,link:`text-primary underline-offset-4 hover:underline`},size:{default:`h-9 px-4 py-2 has-[>svg]:px-3`,xs:`h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3`,sm:`h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5`,lg:`h-10 rounded-md px-6 has-[>svg]:px-4`,icon:`size-9`,"icon-xs":`size-6 rounded-md [&_svg:not([class*='size-'])]:size-3`,"icon-sm":`size-8`,"icon-lg":`size-10`}},defaultVariants:{variant:`default`,size:`default`}});function ht({className:e,variant:t=`default`,size:n=`default`,asChild:r=!1,...i}){let a=r?g:`button`;return(0,E.jsx)(a,{"data-slot":`button`,"data-variant":t,"data-size":n,className:ut(mt({variant:t,size:n,className:e})),...i})}export{k as a,v as c,a as d,ut as i,d as l,mt as n,A as o,pt as r,h as s,ht as t,f as u};
|