You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
26 lines
940 B
26 lines
940 B
<script lang="ts">
|
|
import './dropdown-menu.css';
|
|
// Shared menu-item indicator (checkbox/radio rows). Order-independent via
|
|
// specificity, so it can travel in this chunk instead of the foundation.
|
|
import '$uix/eidos/lib/menu-indicator.css';
|
|
/**
|
|
* Eidos `<DropdownMenu>` — root provider. Pass-through over soma.
|
|
* Children compose via the namespace attached in `index.ts`:
|
|
*
|
|
* <DropdownMenu bind:open>
|
|
* <DropdownMenu.Trigger>Menu</DropdownMenu.Trigger>
|
|
* <DropdownMenu.Content>
|
|
* <DropdownMenu.Item onSelect={...}>Item</DropdownMenu.Item>
|
|
* </DropdownMenu.Content>
|
|
* </DropdownMenu>
|
|
*/
|
|
import * as DropdownMenu from '$soma/components/dropdown-menu';
|
|
import type { DropdownMenuProps } from './types';
|
|
|
|
let { open = $bindable(false), children, ...rest }: DropdownMenuProps = $props();
|
|
</script>
|
|
|
|
<DropdownMenu.Provider {...rest} bind:open>
|
|
{@render children?.()}
|
|
</DropdownMenu.Provider>
|