import React from "react"; import type { AkselStatusColorRole } from "@navikt/ds-tokens/types"; import type { AkselColor } from "../types/index.js"; import AccordionContent, { AccordionContentProps } from "./AccordionContent.js"; import AccordionHeader, { AccordionHeaderProps } from "./AccordionHeader.js"; import AccordionItem, { AccordionItemProps } from "./AccordionItem.js"; interface AccordionComponent extends React.ForwardRefExoticComponent> { /** * @see 🏷️ {@link AccordionItemProps} */ Item: typeof AccordionItem; /** * @see 🏷️ {@link AccordionHeaderProps} */ Header: typeof AccordionHeader; /** * @see 🏷️ {@link AccordionContentProps} */ Content: typeof AccordionContent; } interface AccordionProps extends React.HTMLAttributes { /** * @deprecated Will be removed in a future major version. Use `data-color` instead. */ variant?: "default" | "neutral"; /** * @default "medium" */ size?: "large" | "medium" | "small"; /** * Whether to indent content or not. * @default true */ indent?: boolean; /** * Instances of `Accordion.Item`. */ children: React.ReactNode; /** * @deprecated No longer has any effect. */ headingSize?: "large" | "medium" | "small" | "xsmall"; /** * Overrides inherited color. * * We recommend only using `accent` and `neutral`. We have disallowed status-colors. * @see 🏷️ {@link AkselColor} * @see [📝 Documentation](https://aksel.nav.no/grunnleggende/styling/farger-tokens) */ "data-color"?: Exclude; /** * Changes the HTML element used for the root element. * * **When using `section`, provide either `aria-label` or `aria-labelledby` for better accessibility.** * `axe-core` might warn about unique landmarks if you have multiple Accordions on page with the same label. * In those cases consider updating to unique `aria-label` or `aria-labelledby` props. * @see [📝 Landmarks unique](https://dequeuniversity.com/rules/axe/4.6/landmark-unique) * @default "div" */ as?: "div" | "section"; } /** * A component that displays collapsible content sections. * * @see [📝 Documentation](https://aksel.nav.no/komponenter/core/accordion) * @see 🏷️ {@link AccordionProps} * * @example * ```jsx * * * Section 1 * Content 1 * * * Section 2 * Content 2 * * * ``` */ export declare const Accordion: AccordionComponent; export default Accordion; export { AccordionItem, AccordionHeader, AccordionContent }; export type { AccordionProps, AccordionItemProps, AccordionHeaderProps, AccordionContentProps, };