@mskcc/carbon-react
Version:
Carbon react components for the MSKCC DSM
146 lines (145 loc) • 5.13 kB
TypeScript
/**
* 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 {};