import { SvelteComponentTyped } from "svelte"; import type { SvelteHTMLElements } from "svelte/elements"; export type CarbonOverflowMenuContext = { focusedId: import("svelte/store").Writable; items: import("svelte/store").Writable< ReadonlyArray<{ id: string; text: string; primaryFocus: boolean; disabled: boolean; index: number; }> >; itemsById: import("svelte/store").Readable< Record< string, { id: string; text: string; primaryFocus: boolean; disabled: boolean; index: number; } > >; add: (data: { id: string; text: string; primaryFocus: boolean; disabled: boolean; }) => void; remove: (id: string) => void; update: ( id: string, item: { id: string; text: string; primaryFocus: boolean; disabled: boolean; index: number; }, ) => void; first: any; last: any; }; type $RestProps = SvelteHTMLElements["button"]; type $Props = { /** * Specify the size of the overflow menu. * @default undefined */ size?: "xs" | "sm" | "xl"; /** * Specify the direction of the overflow menu relative to the button. * @default "bottom" */ direction?: "top" | "bottom"; /** * Set to `true` to open the menu. * @default false */ open?: boolean; /** * Set to `true` to enable the light variant * @default false */ light?: boolean; /** * Set to `true` to disable the trigger button * @default false */ disabled?: boolean; /** * Set to `true` to flip the menu relative to the button * @default false */ flipped?: boolean; /** * Specify the menu options class. * @default undefined */ menuOptionsClass?: string; /** * Specify the icon to render. * @default OverflowMenuVertical */ icon?: Icon; /** * Specify the icon class. * @default undefined */ iconClass?: string; /** * Specify the ARIA label for the icon * @default "Open and close list of options" */ iconDescription?: string; /** * Set an id for the button element * @default `ccs-${Math.random().toString(36)}` */ id?: string; /** * Obtain a reference to the trigger button element. * @default null */ buttonRef?: null | HTMLButtonElement; /** * Obtain a reference to the overflow menu element. * @default null */ menuRef?: null | HTMLUListElement; /** * Set to `true` to render the menu in a portal, * allowing it to escape containers with `overflow: hidden`. * When inside a Modal, defaults to `true` unless explicitly set to `false`. * @default undefined */ portalMenu?: boolean | undefined; menu?: (this: void) => void; children?: (this: void) => void; [key: `data-${string}`]: unknown; }; export type OverflowMenuProps = Omit< $RestProps, keyof $Props > & $Props; export default class OverflowMenu extends SvelteComponentTyped< OverflowMenuProps, { click: WindowEventMap["click"]; close: CustomEvent<{ trigger: "escape-key" | "outside-click" | "toggle" | "item-select"; /** only present when an item is selected */ index?: number; /** only present when an item is selected */ text?: string; }>; keydown: WindowEventMap["keydown"]; mouseenter: WindowEventMap["mouseenter"]; mouseleave: WindowEventMap["mouseleave"]; mouseover: WindowEventMap["mouseover"]; }, { default: Record; menu: Record } > {}