/**
* @fileoverview Saasflare Accordion — collapsible content sections.
* @module packages/ui/components/ui/accordion
* @layer core
*
* Self-contained implementation using Radix Accordion primitive directly.
* Content fade animation respects reduced-motion preference.
*
* @example
* import { Accordion, AccordionItem, AccordionTrigger, AccordionContent } from "@saasflare/ui";
*
*
* Is it accessible?
* Yes, it follows WAI-ARIA patterns.
*
*
*/
import * as React from "react";
import * as AccordionPrimitive from "@radix-ui/react-accordion";
import { type SaasflareComponentProps } from "../../providers";
/**
* Props for {@link Accordion}.
*
* The Radix Root is a discriminated union (`type="single" | "multiple"`), so the
* design-system axes are intersected in rather than merged via `Omit`, which would
* collapse the union and break the `type`/`collapsible` discrimination.
*/
type AccordionProps = React.ComponentProps & SaasflareComponentProps;
/**
* Accordion root — wraps a set of collapsible {@link AccordionItem} sections.
*
* Resolves the design-system axes (surface/radius/animated/iconWeight) and emits
* them as data attributes so the whole composed surface is consistently themable.
*
* @component
* @layer core
*/
declare function Accordion({ surface, radius, animated, iconWeight, ...props }: AccordionProps): import("react/jsx-runtime").JSX.Element;
/**
* Props for {@link AccordionItem}.
*
* Extends the Radix Item props with {@link SaasflareComponentProps} so the
* design-system axes can be overridden per-item.
*/
interface AccordionItemProps extends Omit, keyof SaasflareComponentProps>, SaasflareComponentProps {
}
/**
* A single collapsible section within an {@link Accordion}.
*
* @component
* @layer core
*/
declare function AccordionItem({ className, surface, radius, animated, iconWeight, ...props }: AccordionItemProps): import("react/jsx-runtime").JSX.Element;
/**
* Accordion trigger with a chevron indicator that rotates on open.
*
* The chevron rotation is CSS-driven via the `[data-state=open]` selector and is
* zeroed for `[data-animated="false"]` by the design-system motion stylesheet.
*
* @component
* @layer core
*/
declare function AccordionTrigger({ className, children, ...props }: React.ComponentProps): import("react/jsx-runtime").JSX.Element;
/**
* Accordion content panel with fade-in animation.
*
* @component
* @layer core
*/
declare function AccordionContent({ className, children, ...props }: React.ComponentProps): import("react/jsx-runtime").JSX.Element;
export { Accordion, AccordionItem, AccordionTrigger, AccordionContent, type AccordionItemProps };