mirror of
https://github.com/LostRuins/koboldcpp.git
synced 2026-09-13 10:18:49 +02:00
2beefef688
* feat: WIP * feat: Replace conversation rename flow with unified AlertDialog component * feat: Add radio group component and consolidate title generation settings * refactor: Remove JS Sandbox global toggle and migrate legacy user state * chore: Formatting * refactor: Cleanup Co-authored-by: Aleksander Grygier <aleksander.grygier@gmail.com> * refactor: Cleanup * refactor: Marquee selection hook * feat: UI improvements * refactor: Bulk db operations * fix: optimize bulk conversation deletion to handle ancestor chains * refactor: remove pairedKey mechanism from settings system * fix: remove redundant onclick handler from dialog cancel button * chore: pin @lucide/svelte to exact version * feat: Run JavaScript tool disabled by default * fix: correct active conversation deletion tracking in bulk delete * feat: improve shift-key multi-selection support in sidebar via keyboard * refactor: Retrieve JS Tool enabling via Developer Settings * nits: sync, dialog wording, cycle guard, and lockfile follow-ups - Restore titleGenerationUseLLM registry entry so it syncs across devices again - Mention fork cascade in the bulk delete confirmation dialog - Clear newParent on cycle guard break so children never point at a deleted conversation - Align @lucide/svelte in package-lock.json with the exact pin in package.json --------- Co-authored-by: Pascal <admin@serveurperso.com>
85 lines
2.3 KiB
Svelte
85 lines
2.3 KiB
Svelte
<script lang="ts">
|
|
import * as AlertDialog from '$lib/components/ui/alert-dialog';
|
|
import { Checkbox } from '$lib/components/ui/checkbox';
|
|
import Label from '$lib/components/ui/label/label.svelte';
|
|
import { Shield, ShieldOff } from '@lucide/svelte';
|
|
|
|
let {
|
|
open = $bindable(),
|
|
includeSensitiveData = $bindable(false),
|
|
onCancel,
|
|
onConfirm
|
|
}: {
|
|
open: boolean;
|
|
includeSensitiveData: boolean;
|
|
onCancel: () => void;
|
|
onConfirm: () => void;
|
|
} = $props();
|
|
|
|
function handleOpenChange(newOpen: boolean) {
|
|
if (!newOpen) {
|
|
onCancel();
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<AlertDialog.Root {open} onOpenChange={handleOpenChange}>
|
|
<AlertDialog.Content>
|
|
<AlertDialog.Header>
|
|
<AlertDialog.Title class="flex items-center gap-2">
|
|
{#if includeSensitiveData}
|
|
<ShieldOff class="h-5 w-5 text-destructive" />
|
|
{:else}
|
|
<Shield class="h-5 w-5 text-destructive" />
|
|
{/if}
|
|
Export Settings
|
|
</AlertDialog.Title>
|
|
|
|
<AlertDialog.Description>
|
|
{#if includeSensitiveData}
|
|
<p class="text-amber-500">
|
|
Warning: This export will include sensitive data such as API keys and MCP server custom
|
|
headers (e.g., authorization tokens). Do not share this file with anyone you don't
|
|
trust.
|
|
</p>
|
|
{:else}
|
|
<p>
|
|
Sensitive data (API keys, MCP server custom headers) will not be included in the export
|
|
to protect your credentials.
|
|
</p>
|
|
{/if}
|
|
</AlertDialog.Description>
|
|
</AlertDialog.Header>
|
|
|
|
<div class="flex items-center gap-2 py-2">
|
|
<Checkbox id="include-sensitive" bind:checked={includeSensitiveData} />
|
|
|
|
<Label
|
|
for="include-sensitive"
|
|
class="text-sm leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
|
|
>
|
|
{#if includeSensitiveData}
|
|
<span class="text-destructive">Include sensitive data (not recommended)</span>
|
|
{:else}
|
|
<span>Include sensitive data</span>
|
|
{/if}
|
|
</Label>
|
|
</div>
|
|
|
|
<AlertDialog.Footer>
|
|
<AlertDialog.Cancel onclick={onCancel}>Cancel</AlertDialog.Cancel>
|
|
|
|
<AlertDialog.Action
|
|
onclick={onConfirm}
|
|
class="bg-destructive text-white hover:bg-destructive/80"
|
|
>
|
|
{#if includeSensitiveData}
|
|
Export Anyway
|
|
{:else}
|
|
Export Without Sensitive Data
|
|
{/if}
|
|
</AlertDialog.Action>
|
|
</AlertDialog.Footer>
|
|
</AlertDialog.Content>
|
|
</AlertDialog.Root>
|