its-just-ui
Version:
ITS Just UI - React 18 & React 19 UI component library. 36+ accessible, TypeScript-native components with Tailwind CSS. Zero-config Material UI alternative for SaaS dashboards and enterprise apps.
100 lines (98 loc) • 3.96 kB
TypeScript
import { default as React } from 'react';
import { PopoverVariant, PopoverSize, PopoverPosition, PopoverTransition, PopoverTrigger, PopoverTone, PopoverEventHandlers, RenderContentFunction, RenderTriggerFunction } from './types';
export interface PopoverProps extends PopoverEventHandlers {
children?: React.ReactNode;
open?: boolean;
defaultOpen?: boolean;
onOpenChange?: (open: boolean) => void;
position?: PopoverPosition;
trigger?: PopoverTrigger;
closeOnBlur?: boolean;
closeOnEscape?: boolean;
closeOnOutsideClick?: boolean;
variant?: PopoverVariant;
size?: PopoverSize;
tone?: PopoverTone;
hasArrow?: boolean;
transition?: PopoverTransition;
enterDuration?: number;
exitDuration?: number;
easing?: string;
portalContainer?: Element | null;
initialFocus?: React.RefObject<HTMLElement>;
returnFocus?: boolean;
renderContent?: RenderContentFunction;
renderTrigger?: RenderTriggerFunction;
borderWidth?: string;
borderColor?: string;
borderStyle?: string;
borderRadius?: string;
fontSize?: string;
fontWeight?: string;
fontFamily?: string;
headingColor?: string;
descriptionColor?: string;
backgroundColor?: string;
textColor?: string;
shadowColor?: string;
arrowColor?: string;
focusBorderColor?: string;
focusRingColor?: string;
focusRingOffset?: string;
boxShadow?: string;
hoverShadow?: string;
focusBoxShadow?: string;
padding?: string;
margin?: string;
gap?: string;
offset?: string;
arrowSize?: string;
offsetTop?: number;
offsetBottom?: number;
offsetLeft?: number;
offsetRight?: number;
'aria-label'?: string;
'aria-describedby'?: string;
role?: string;
}
export interface PopoverTriggerProps extends React.HTMLAttributes<HTMLElement> {
children: React.ReactNode;
asChild?: boolean;
}
declare const PopoverTrigger: React.ForwardRefExoticComponent<PopoverTriggerProps & React.RefAttributes<HTMLElement>>;
export interface PopoverContentProps extends React.HTMLAttributes<HTMLDivElement> {
children?: React.ReactNode;
portalContainer?: Element | null;
}
declare const PopoverContent: React.ForwardRefExoticComponent<PopoverContentProps & React.RefAttributes<HTMLDivElement>>;
export interface PopoverArrowProps extends React.HTMLAttributes<HTMLDivElement> {
/** Additional className for styling the arrow */
className?: string;
}
declare const PopoverArrow: React.ForwardRefExoticComponent<PopoverArrowProps & React.RefAttributes<HTMLDivElement>>;
export interface PopoverTitleProps extends React.HTMLAttributes<HTMLHeadingElement> {
children: React.ReactNode;
level?: 1 | 2 | 3 | 4 | 5 | 6;
}
declare const PopoverTitle: React.ForwardRefExoticComponent<PopoverTitleProps & React.RefAttributes<HTMLHeadingElement>>;
export interface PopoverDescriptionProps extends React.HTMLAttributes<HTMLParagraphElement> {
children: React.ReactNode;
}
declare const PopoverDescription: React.ForwardRefExoticComponent<PopoverDescriptionProps & React.RefAttributes<HTMLParagraphElement>>;
export interface PopoverCloseProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
children?: React.ReactNode;
asChild?: boolean;
}
declare const PopoverClose: React.ForwardRefExoticComponent<PopoverCloseProps & React.RefAttributes<HTMLButtonElement>>;
export { PopoverTrigger, PopoverContent, PopoverArrow, PopoverTitle, PopoverDescription, PopoverClose, };
interface PopoverComponent extends React.ForwardRefExoticComponent<PopoverProps & React.RefAttributes<HTMLDivElement>> {
Trigger: typeof PopoverTrigger;
Content: typeof PopoverContent;
Arrow: typeof PopoverArrow;
Title: typeof PopoverTitle;
Description: typeof PopoverDescription;
Close: typeof PopoverClose;
}
declare const PopoverCompound: PopoverComponent;
export default PopoverCompound;
export { PopoverCompound as Popover };