import { Placement, ReferenceType, UseFloatingOptions, useClick, useDismiss, useFocus, useHover, useRole } from '@floating-ui/react'; export type ClickOptions = Parameters[1]; export type DismissOptions = Parameters[1]; export type FocusOptions = Parameters[1]; export type HoverOptions = Parameters[1]; export type RoleOptions = Parameters[1]; export interface PopoverOptions { /** * Angir om popoveren er åpen eller lukket. * * @see https://floating-ui.com/docs/usefloating#open */ open?: boolean; /** * Callback som trigges når popoveren åpnes eller lukkes. * * @see https://floating-ui.com/docs/usefloating#onopenchange */ onOpenChange?: UseFloatingOptions["onOpenChange"]; /** * Bestemmer plasseringen av popoveren. * * @see https://floating-ui.com/docs/usefloating#placement * * @default "bottom-start" */ placement?: UseFloatingOptions["placement"]; /** * Definerer strategien for posisjonering av popoveren. * * @see https://floating-ui.com/docs/usefloating#strategy * * @default "absolute" */ strategy?: UseFloatingOptions["strategy"]; /** * Angir om popoveren skal fungere som en modal, der fokus er låst til det flytende elementet * og innhold utenfor ikke kan interageres med. * * @see https://floating-ui.com/docs/usefloating#modal * * @default true */ modal?: boolean; /** * Justerer avstanden mellom referanse-elementet og popoveren. * * @see https://floating-ui.com/docs/offset * * @default 4 */ offset?: number; /** * Referanse til elementet som popoveren skal posisjoneres i forhold til. * * @see https://floating-ui.com/docs/usefloating#setpositionreference * * @default Popover.Trigger */ positionReference?: React.RefObject; /** * Trigges når popoverens faktiske plassering endrer seg, f.eks. når * `flip`-middlewaren snur popoveren over triggeren fordi det ikke er * plass under. Kan brukes til å justere styling avhengig av om * popoveren ligger over eller under referansen. */ onPlacementChange?: (placement: Placement) => void; /** * Setter bredden på popoveren lik bredden på referanse-elementet. * Referanse-elementet er vanligvis `Popover.Trigger`, men kan overstyres * med `positionReference`. * * @see https://floating-ui.com/docs/size#match-reference-width * * @default false */ matchReferenceWidth?: boolean; /** * Options for hover-interaksjoner. * * @see https://floating-ui.com/docs/usehover * * @default { enabled: false } */ hoverOptions?: HoverOptions; /** * Options for fokus-interaksjoner. * * @see https://floating-ui.com/docs/usefocus * * @default { enabled: false } */ focusOptions?: FocusOptions; /** * Options for klikk-interaksjoner. * * @see https://floating-ui.com/docs/useclick * * @default { enabled: false } */ clickOptions?: ClickOptions; /** * Konfigurerer rollen for popoveren. * * @see https://floating-ui.com/docs/userole * * @default { enabled: true, role: "dialog" } */ roleOptions?: RoleOptions; /** * Options for å lukke popoveren når en dismissal skjer, * som ved å klikke utenfor eller trykke på "Escape"-tasten. * * @see https://floating-ui.com/docs/usedismiss * * @default { enabled: true } */ dismissOptions?: DismissOptions; }