Files
gpx.studio/website/src/lib/components/Tooltip.svelte

33 lines
843 B
Svelte
Raw Normal View History

2024-04-19 16:13:08 +02:00
<script lang="ts">
import * as Tooltip from '$lib/components/ui/tooltip/index.js';
2025-10-18 18:51:11 +02:00
import type { Snippet } from 'svelte';
2025-10-18 18:51:11 +02:00
let {
label,
side = 'top',
children,
extra,
class: className = '',
}: {
label: string;
side?: 'top' | 'right' | 'bottom' | 'left';
children: Snippet;
extra?: Snippet;
class?: string;
} = $props();
2024-04-19 16:13:08 +02:00
</script>
2025-06-21 21:07:36 +02:00
<Tooltip.Provider>
<Tooltip.Root>
2025-10-18 18:51:11 +02:00
<Tooltip.Trigger class={className} aria-label={label}>
{@render children()}
2025-06-21 21:07:36 +02:00
</Tooltip.Trigger>
<Tooltip.Content {side}>
2025-10-18 18:51:11 +02:00
<div class="flex flex-row items-center gap-2">
2025-06-21 21:07:36 +02:00
<span>{label}</span>
2025-10-18 18:51:11 +02:00
{@render extra?.()}
2025-06-21 21:07:36 +02:00
</div>
</Tooltip.Content>
</Tooltip.Root>
</Tooltip.Provider>