@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
69 lines (68 loc) • 3.15 kB
TypeScript
/**
* Web Accordion Component
*
*/
import React from 'react';
import type { SpacingProps } from '../../shared/types';
import type { HeadingLevel } from '../Heading';
import type { IconIcon, IconSize } from '../Icon';
import type { SkeletonShow } from '../Skeleton';
import type { AccordionIcon, AccordionIconPosition, AccordionVariant } from './Accordion';
export type AccordionHeaderTitleProps = SpacingProps & {
children?: React.ReactNode;
};
declare function AccordionHeaderTitle({ children, ...rest }: AccordionHeaderTitleProps): import("react/jsx-runtime").JSX.Element;
export type AccordionHeaderDescriptionProps = SpacingProps & {
children?: React.ReactNode;
};
declare function AccordionHeaderDescription({ children, ...rest }: AccordionHeaderDescriptionProps): import("react/jsx-runtime").JSX.Element;
export type AccordionHeaderContainerProps = SpacingProps & {
children?: React.ReactNode;
};
declare function AccordionHeaderContainer({ children, ...rest }: AccordionHeaderContainerProps): import("react/jsx-runtime").JSX.Element;
type AccordionHeaderIconIcon = IconIcon | {
closed?: IconIcon;
expanded?: IconIcon;
};
export type AccordionHeaderIconProps = {
icon?: AccordionHeaderIconIcon;
size?: IconSize;
expanded?: boolean;
iconPosition?: AccordionIconPosition;
};
declare function AccordionHeaderIcon({ icon: iconProp, expanded, size, iconPosition, }: AccordionHeaderIconProps): import("react/jsx-runtime").JSX.Element;
export type AccordionHeaderTitle = string | React.ReactNode | (() => React.ReactNode);
export type AccordionHeaderDescription = string | React.ReactNode | (() => React.ReactNode);
export type AccordionHeaderLeftComponent = string | React.ReactNode | (() => React.ReactNode);
export type AccordionHeaderElement = string | React.ReactNode | (() => React.ReactNode);
export type AccordionHeaderHeading = boolean | string | React.ReactNode | (() => React.ReactNode);
export type AccordionHeaderIcon = React.ReactNode | (() => React.ReactNode) | {
closed?: React.ReactNode | (() => React.ReactNode);
expanded?: React.ReactNode | (() => React.ReactNode);
};
export type AccordionHeaderProps = React.HTMLProps<HTMLElement> & SpacingProps & {
title?: AccordionHeaderTitle;
expanded?: boolean;
description?: AccordionHeaderDescription;
leftComponent?: AccordionHeaderLeftComponent;
element?: AccordionHeaderElement;
heading?: AccordionHeaderHeading;
headingLevel?: HeadingLevel;
icon?: AccordionIcon;
iconPosition?: AccordionIconPosition;
iconSize?: IconSize;
disabled?: boolean;
skeleton?: SkeletonShow;
noAnimation?: boolean;
className?: string;
children?: string | React.ReactNode | (() => React.ReactNode);
variant?: AccordionVariant;
};
export declare const AccordionHeader: {
({ iconSize: iconSizeDefault, ...restOfProps }: AccordionHeaderProps): import("react/jsx-runtime").JSX.Element;
Container: typeof AccordionHeaderContainer;
Icon: typeof AccordionHeaderIcon;
Title: typeof AccordionHeaderTitle;
Description: typeof AccordionHeaderDescription;
};
export default AccordionHeader;