]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/blob
c43a002e695375132b7adbcc86558e22077e18df
[pkg/ggml/sources/llama.cpp] /
1 <script lang="ts">
2 import type { Snippet } from 'svelte';
3 import * as Popover from '$lib/components/ui/popover';
4
5 interface Props {
6 class?: string;
7 isOpen?: boolean;
8 srLabel?: string;
9 onClose?: () => void;
10 onKeydown?: (event: KeyboardEvent) => void;
11 children: Snippet;
12 }
13
14 let {
15 class: className = '',
16 isOpen = $bindable(false),
17 srLabel = 'Open picker',
18 onClose,
19 onKeydown,
20 children
21 }: Props = $props();
22 </script>
23
24 <Popover.Root
25 bind:open={isOpen}
26 onOpenChange={(open) => {
27 if (!open) {
28 onClose?.();
29 }
30 }}
31 >
32 <Popover.Trigger
33 class="pointer-events-none absolute inset-0 opacity-0"
34 tabindex={-1}
35 aria-hidden="true"
36 >
37 <span class="sr-only">{srLabel}</span>
38 </Popover.Trigger>
39
40 <Popover.Content
41 side="top"
42 align="start"
43 sideOffset={12}
44 class="w-[var(--bits-popover-anchor-width)] max-w-none rounded-xl border-border/50 p-0 shadow-xl {className}"
45 onkeydown={onKeydown}
46 onOpenAutoFocus={(event) => event.preventDefault()}
47 >
48 {@render children()}
49 </Popover.Content>
50 </Popover.Root>