import * as React from 'react';
import TooltipElement from './TooltipElement';
import TooltipTrigger from './TooltipTrigger';
import {TooltipContext} from './useTooltipContext';
import useTooltip, {TooltipPlacement, SizeType, ColorType} from './useTooltip';
export type TooltipPropsType = {
/**
* Tooltip content which consists of tooltip element and tooltip trigger.
* @example
Here's my tooltip
*/
children?: React.ReactNode;
/**
* Tooltip id.
*/
id?: string;
/**
* Tooltip alignment.
*/
placement?: TooltipPlacement;
/**
* Tooltip size.
*/
size?: SizeType;
/**
* Specify color variant of the Tooltip.
* @example ...
*/
color?: ColorType;
/**
* Set if Tooltip should be displayed by default.
*/
defaultOpen?: boolean;
/**
* Only controlled component. Set Tooltip open state.
*/
open?: boolean;
asLabel?: boolean;
/**
* Only controlled component. Handle Tooltip open state change.
*/
onOpenChange?: (arg0: boolean) => void;
} & Omit<
React.AllHTMLAttributes,
'children' | 'className' | 'size' | 'placement'
>;
const Tooltip = ({
children,
placement,
id,
size,
color,
asLabel,
defaultOpen = false,
open,
onOpenChange,
}: TooltipPropsType) => {
const tooltip = useTooltip({
placement,
customId: id,
size,
color,
defaultOpen,
open,
onOpenChange,
asLabel,
});
return (
{children}
);
};
Tooltip.Trigger = TooltipTrigger;
Tooltip.Element = TooltipElement;
export default Tooltip;