2024-03-16 08:57:26 +00:00
|
|
|
<script lang="ts">
|
|
|
|
import { DropdownMenu } from 'bits-ui';
|
2024-03-16 09:43:51 +00:00
|
|
|
import { createEventDispatcher } from 'svelte';
|
|
|
|
|
2024-03-24 22:43:03 +00:00
|
|
|
import { flyAndScale } from '$lib/utils/transitions';
|
|
|
|
|
2024-04-16 21:31:06 +00:00
|
|
|
export let show = false;
|
2024-03-16 09:43:51 +00:00
|
|
|
const dispatch = createEventDispatcher();
|
2024-03-16 08:57:26 +00:00
|
|
|
</script>
|
|
|
|
|
2024-03-16 09:43:51 +00:00
|
|
|
<DropdownMenu.Root
|
2024-04-16 21:31:06 +00:00
|
|
|
bind:open={show}
|
2024-05-27 20:22:24 +00:00
|
|
|
closeFocus={false}
|
2024-03-16 09:43:51 +00:00
|
|
|
onOpenChange={(state) => {
|
|
|
|
dispatch('change', state);
|
|
|
|
}}
|
|
|
|
>
|
2024-03-16 08:57:26 +00:00
|
|
|
<DropdownMenu.Trigger>
|
|
|
|
<slot />
|
|
|
|
</DropdownMenu.Trigger>
|
|
|
|
|
|
|
|
<slot name="content">
|
|
|
|
<DropdownMenu.Content
|
|
|
|
class="w-full max-w-[130px] rounded-lg px-1 py-1.5 border border-gray-700 z-50 bg-gray-850 text-white"
|
|
|
|
sideOffset={8}
|
|
|
|
side="bottom"
|
|
|
|
align="start"
|
2024-03-24 22:43:03 +00:00
|
|
|
transition={flyAndScale}
|
2024-03-16 08:57:26 +00:00
|
|
|
>
|
|
|
|
<DropdownMenu.Item class="flex items-center px-3 py-2 text-sm font-medium">
|
|
|
|
<div class="flex items-center">Profile</div>
|
|
|
|
</DropdownMenu.Item>
|
|
|
|
|
|
|
|
<DropdownMenu.Item class="flex items-center px-3 py-2 text-sm font-medium">
|
|
|
|
<div class="flex items-center">Profile</div>
|
|
|
|
</DropdownMenu.Item>
|
|
|
|
|
|
|
|
<DropdownMenu.Item class="flex items-center px-3 py-2 text-sm font-medium">
|
|
|
|
<div class="flex items-center">Profile</div>
|
|
|
|
</DropdownMenu.Item>
|
|
|
|
</DropdownMenu.Content>
|
|
|
|
</slot>
|
|
|
|
</DropdownMenu.Root>
|