]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/blob
daea24e3aa55bf1785682f777e88c838419d3a06
[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 class="pointer-events-none absolute inset-0 opacity-0">
33 <span class="sr-only">{srLabel}</span>
34 </Popover.Trigger>
35
36 <Popover.Content
37 side="top"
38 align="start"
39 sideOffset={12}
40 class="w-[var(--bits-popover-anchor-width)] max-w-none rounded-xl border-border/50 p-0 shadow-xl {className}"
41 onkeydown={onKeydown}
42 onOpenAutoFocus={(event) => event.preventDefault()}
43 >
44 {@render children()}
45 </Popover.Content>
46 </Popover.Root>