@trellixio/roaster-coffee
Version:
Beans' product component library
57 lines • 2.77 kB
TypeScript
import { Placement } from '@floating-ui/react';
import React from 'react';
export interface UseDropdownOptions {
/** Determines where the dropdown should be positioned relative to its trigger */
placement?: Placement;
/** whether the dropdown should be open or closed by default */
open?: boolean;
/** This callback function is triggered when the dropdown's open state changes */
onOpenChange?: (open: boolean) => void;
}
export declare function useDropdown({ placement, open: controlledOpen, onOpenChange: setControlledOpen, }?: UseDropdownOptions): {
placement: Placement;
strategy: import("@floating-ui/utils").Strategy;
middlewareData: import("@floating-ui/core").MiddlewareData;
x: number;
y: number;
isPositioned: boolean;
update: () => void;
floatingStyles: React.CSSProperties;
refs: {
reference: React.MutableRefObject<import("@floating-ui/react-dom").ReferenceType>;
floating: React.MutableRefObject<HTMLElement>;
setReference: (node: import("@floating-ui/react-dom").ReferenceType) => void;
setFloating: (node: HTMLElement) => void;
} & import("@floating-ui/react").ExtendedRefs<import("@floating-ui/react").ReferenceType>;
elements: {
reference: import("@floating-ui/react-dom").ReferenceType;
floating: HTMLElement;
} & import("@floating-ui/react").ExtendedElements<import("@floating-ui/react").ReferenceType>;
context: {
update: () => void;
placement: Placement;
strategy: import("@floating-ui/utils").Strategy;
x: number;
y: number;
middlewareData: import("@floating-ui/core").MiddlewareData;
isPositioned: boolean;
floatingStyles: React.CSSProperties;
open: boolean;
onOpenChange: (open: boolean, event?: Event, reason?: import("@floating-ui/react").OpenChangeReason) => void;
events: import("@floating-ui/react").FloatingEvents;
dataRef: React.MutableRefObject<import("@floating-ui/react").ContextData>;
nodeId: string;
floatingId: string;
refs: import("@floating-ui/react").ExtendedRefs<import("@floating-ui/react").ReferenceType>;
elements: import("@floating-ui/react").ExtendedElements<import("@floating-ui/react").ReferenceType>;
};
getReferenceProps: (userProps?: React.HTMLProps<Element>) => Record<string, unknown>;
getFloatingProps: (userProps?: React.HTMLProps<HTMLElement>) => Record<string, unknown>;
getItemProps: (userProps?: Omit<React.HTMLProps<HTMLElement>, "selected" | "active"> & {
active?: boolean;
selected?: boolean;
}) => Record<string, unknown>;
open: boolean;
setOpen: (open: boolean) => void;
};
//# sourceMappingURL=index.d.ts.map