@snowball-tech/fractal
Version:
Fractal's (Snowball's design system) React component library based on RadixUI and TailwindCSS
43 lines (42 loc) • 1.51 kB
TypeScript
import { PaperProps } from "../Paper/Paper.types.js";
import { AllHTMLAttributes, CSSProperties, ComponentProps, ReactNode } from "react";
import { PopoverContentProps, Root } from "@radix-ui/react-popover";
//#region src/components/Popover/Popover.types.d.ts
type CombinedRefs = {
container: HTMLDivElement | null;
content: HTMLDivElement | null;
trigger: HTMLButtonElement | null;
};
interface PopoverProps extends Omit<AllHTMLAttributes<HTMLDivElement>, 'popover' | 'title'> {
children: ReactNode;
align?: PopoverContentProps['align'];
closeButtonLabel?: string;
disabled?: boolean;
elevation?: PaperProps['elevation'];
fullWidth?: boolean;
modal?: boolean;
open?: boolean;
paper?: Partial<PaperProps>;
popover?: Partial<{
className?: string;
style?: CSSProperties;
} & Omit<PopoverContentProps, 'align' | 'asChild' | 'onInteractOutside' | 'side'>>;
side?: PopoverContentProps['side'];
title?: ReactNode;
toggleOnTriggerClick?: boolean;
toggleOnTriggerHover?: boolean;
trigger?: ReactNode;
triggerAsButton?: boolean;
width?: number | string | 'auto' | 'fit' | 'full' | 'trigger';
withArrow?: boolean;
withCloseButton?: boolean;
withScroll?: boolean;
onClose?: () => void;
onCloseButtonClick?: () => void;
onInteractOutside?: PopoverContentProps['onInteractOutside'];
onOpen?: () => void;
onOpenChange?: ComponentProps<typeof Root>['onOpenChange'];
}
//#endregion
export { CombinedRefs, PopoverProps };
//# sourceMappingURL=Popover.types.d.ts.map