UNPKG

@octopusdeploy/design-system-components

Version:
37 lines (36 loc) 1.41 kB
import type { SupportedAriaPopupRole } from "../../utils/SupportedAriaPopupRole"; interface UseDropdownButtonOptions { trapFocus: boolean; dropdownAriaRole: SupportedAriaPopupRole; } export declare function useDropdownButton(options: UseDropdownButtonOptions): DropdownButtonState; interface UseOpenControlledDropdownButtonOptions extends UseDropdownButtonOptions { isOpen: boolean; setIsOpen: (value: boolean | ((prev: boolean) => boolean)) => void; } export declare function useOpenControlledDropdownButton({ trapFocus, dropdownAriaRole, setIsOpen, isOpen }: UseOpenControlledDropdownButtonOptions): DropdownButtonState; export interface DropdownButtonState { isOpen: boolean; toggleDropdown: () => void; closeDropdown: (options?: CloseDropdownOptions) => void; buttonElement: HTMLElement | null; setButtonRef: (button: HTMLElement | null) => void; buttonAriaAttributes: ButtonAriaAttributes; setDropdownRef: (dropdown: HTMLElement | null) => void; dropdownAttributes: DropdownAttributes; } interface CloseDropdownOptions { moveFocusToButton?: boolean; } interface ButtonAriaAttributes { "aria-expanded": "true" | "false"; "aria-haspopup": SupportedAriaPopupRole; "aria-controls": string | undefined; } interface DropdownAttributes { dropdownId: string; dropdownAriaAttributes: { role: SupportedAriaPopupRole; }; } export {};