UNPKG

@mskcc/carbon-react

Version:

Carbon react components for the MSKCC DSM

146 lines (145 loc) 5.13 kB
/** * MSKCC DSM 2021, 2023 */ import PropTypes from 'prop-types'; import { type ElementType, type ReactNode } from 'react'; import { type PopoverAlignment } from '../Popover'; type ToggletipLabelProps<E extends ElementType> = { as?: E | undefined; children?: ReactNode; className?: string | undefined; }; /** * Used to render the label for a Toggletip */ export declare function ToggletipLabel<E extends ElementType>({ as: BaseComponent, children, className: customClassName, }: ToggletipLabelProps<E>): JSX.Element; export declare namespace ToggletipLabel { var propTypes: { /** * Provide a custom element or component to render the top-level node for the * component. */ as: PropTypes.Requireable<PropTypes.ReactComponentLike>; /** * Custom children to be rendered as the content of the label */ children: PropTypes.Requireable<PropTypes.ReactNodeLike>; /** * Provide a custom class name to be added to the outermost node in the * component */ className: PropTypes.Requireable<string>; }; } interface ToggletipProps<E extends ElementType> { align?: PopoverAlignment | undefined; as?: E | undefined; className?: string | undefined; children?: ReactNode; defaultOpen?: boolean | undefined; } /** * Used as a container for the button and content of a toggletip. This component * is responsible for coordinating between interactions with the button and the * visibility of the content */ export declare function Toggletip<E extends ElementType = 'span'>({ align, as, className: customClassName, children, defaultOpen, }: ToggletipProps<E>): JSX.Element; export declare namespace Toggletip { var propTypes: { /** * Specify how the toggletip should align with the button */ align: PropTypes.Requireable<string>; /** * Provide a custom element or component to render the top-level node for the * component. */ as: PropTypes.Requireable<PropTypes.ReactComponentLike>; /** * Custom children to be rendered as the content of the label */ children: PropTypes.Requireable<PropTypes.ReactNodeLike>; /** * Provide a custom class name to be added to the outermost node in the * component */ className: PropTypes.Requireable<string>; /** * Specify if the toggletip should be open by default */ defaultOpen: PropTypes.Requireable<boolean>; }; } interface ToggletipButtonProps { children?: ReactNode; className?: string | undefined; label?: string | undefined; } /** * `ToggletipButton` controls the visibility of the Toggletip through mouse * clicks and keyboard interactions. */ export declare function ToggletipButton({ children, className: customClassName, label, }: ToggletipButtonProps): JSX.Element; export declare namespace ToggletipButton { var propTypes: { /** * Custom children to be rendered as the content of the label */ children: PropTypes.Requireable<PropTypes.ReactNodeLike>; /** * Provide a custom class name to be added to the outermost node in the * component */ className: PropTypes.Requireable<string>; /** * Provide an accessible label for this button */ label: PropTypes.Requireable<string>; }; } interface ToggletipContentProps { children?: ReactNode; className?: string | undefined; } /** * `ToggletipContent` is a wrapper around `PopoverContent`. It places the * `children` passed in as a prop inside of `PopoverContent` so that they will * be rendered inside of the popover for this component. */ export declare function ToggletipContent({ children, className: customClassName, }: ToggletipContentProps): JSX.Element; export declare namespace ToggletipContent { var propTypes: { /** * Custom children to be rendered as the content of the label */ children: PropTypes.Requireable<PropTypes.ReactNodeLike>; /** * Provide a custom class name to be added to the outermost node in the * component */ className: PropTypes.Requireable<string>; }; } interface ToggleTipActionsProps { children?: ReactNode; className?: string | undefined; } /** * `ToggletipActions` is a container for one or two actions present at the base * of a toggletip. It is used for layout of these items. */ export declare function ToggletipActions({ children, className: customClassName, }: ToggleTipActionsProps): JSX.Element; export declare namespace ToggletipActions { var propTypes: { /** * Custom children to be rendered as the content of the label */ children: PropTypes.Requireable<PropTypes.ReactNodeLike>; /** * Provide a custom class name to be added to the outermost node in the * component */ className: PropTypes.Requireable<string>; }; } export {};