Skip to content
fayeuiStatic / 0.1.0
LLMs
API / Static edition

@fayegram-ai/faye-ui/navigation/accordion

Public exports and dependency-resolved component properties, with usage and rendering guidance.

Import

import { Accordion } from '@fayegram-ai/faye-ui/navigation/accordion';

Usage and behavior guide · API JSON

This entry declares a client boundary. Follow the rendering guide for framework integration.

Public exports

NameKindResolved declaration type
AccordionTriggerPropstypeAccordionTriggerProps
Accordionvalue{ readonly Root: <Value = any>(props: Base.Root.Props<Value>) => React.JSX.Element; readonly Item: { (input: Omit<import("@base-ui/react").AccordionItemProps, "ref"> & import("react").RefAttributes<HTMLDivElement> & { variants?: { readonly variant?: import("@fayegram-ai/faye-ui/contracts/visual-variants").VisualVariant<"accordion", "variant"> | undefined; readonly size?: import("@fayegram-ai/faye-ui/contracts/visual-variants").VisualVariant<"accordion", "size"> | undefined; readonly tone?: import("@fayegram-ai/faye-ui/contracts/visual-variants").VisualVariant<"accordion", "tone"> | undefined; } | undefined; }): import("react").ReactElement; displayName: string; }; readonly Header: { (input: Omit<import("@base-ui/react").AccordionHeaderProps, "ref"> & import("react").RefAttributes<HTMLHeadi… (full type in API JSON)

Accordion

Public component; use the linked family guide for complete composition and behavior.

Dependency-resolved declaration properties. Common React/native HTML attributes are omitted from the table; use the full declaration and React/native references. Generic and union restrictions remain authoritative in TypeScript.

Accordion.Root

PropertyRequiredTypeMeaning
classNameNostring | ((state: Base.Root.State<Value>) => string | undefined) | undefinedCSS class applied to the element, or a function that returns a class based on the component's state.
defaultValueNoAccordionValue<Value> | undefinedThe uncontrolled value of the item(s) that should be initially expanded. To render a controlled accordion, use the value prop instead.
disabledNoboolean | undefinedWhether the component should ignore user interaction.
hiddenUntilFoundNoboolean | undefinedAllows the browser's built-in page search to find and expand the panel contents. Overrides the keepMounted prop and uses hidden="until-found" to hide the element without removing it from the DOM.
keepMountedNoboolean | undefinedWhether to keep the element in the DOM while the panel is closed. This prop is ignored when hiddenUntilFound is used.
loopFocusNoboolean | undefinedDeprecated following the APG guidance update to remove roving focus. This prop no longer affects keyboard focus behavior.
multipleNoboolean | undefinedWhether multiple items can be open at the same time.
onValueChangeNo((value: AccordionValue<Value>, eventDetails: AccordionRootChangeEventDetails) => void) | undefinedEvent handler called when an accordion item is expanded or collapsed. Provides the new value as an argument.
orientationNoOrientation | undefinedDeprecated following the APG guidance update to remove roving focus. This prop no longer affects keyboard focus behavior.
renderNoReactElement<unknown, string | JSXElementConstructor<any>> | ComponentRenderFn<HTMLProps, Base.Root.State<Value>> | undefinedAllows you to replace the component's HTML element with a different tag, or compose it with another component. Accepts a ReactElement or a function that returns the element to render.
styleNoCSSProperties | ((state: Base.Root.State<Value>) => React.CSSProperties | undefined) | undefinedStyle applied to the element, or a function that returns a style object based on the component's state.
valueNoAccordionValue<Value> | undefinedThe controlled value of the item(s) that should be expanded. To render an uncontrolled accordion, use the defaultValue prop instead.

Accordion.Item

PropertyRequiredTypeMeaning
classNameNostring | ((state: AccordionItemState) => string | undefined) | undefinedCSS class applied to the element, or a function that returns a class based on the component's state.
disabledNoboolean | undefinedWhether the component should ignore user interaction.
onOpenChangeNo((open: boolean, eventDetails: Base.Item.ChangeEventDetails) => void) | undefinedEvent handler called when the panel is opened or closed.
renderNoReactElement<unknown, string | JSXElementConstructor<any>> | ComponentRenderFn<HTMLProps, AccordionItemState> | undefinedAllows you to replace the component's HTML element with a different tag, or compose it with another component. Accepts a ReactElement or a function that returns the element to render.
styleNoCSSProperties | ((state: AccordionItemState) => React.CSSProperties | undefined) | undefinedStyle applied to the element, or a function that returns a style object based on the component's state.
valueNoanyA unique value that identifies this accordion item. If no value is provided, a unique ID will be generated automatically. Use when controlling the accordion programmatically, or to set an initial open state.
variantsNo{ readonly variant?: import("@fayegram-ai/faye-ui/contracts/visual-variants").VisualVariant<"accordion", "variant"> | undefined; readonly size?: import("@fayegram-ai/faye-ui/contracts/visual-variants").VisualVariant<"accordion", "size"> | undefined; readonly tone?: import("@fayegram-ai/faye-ui/contracts/visual-variants").VisualVariant<"accordion", "tone"> | undefined; } | undefinedSee the usage contract and declaration.

Accordion.Header

PropertyRequiredTypeMeaning
classNameNostring | ((state: AccordionHeaderState) => string | undefined) | undefinedCSS class applied to the element, or a function that returns a class based on the component's state.
renderNoReactElement<unknown, string | JSXElementConstructor<any>> | ComponentRenderFn<HTMLProps, AccordionHeaderState> | undefinedAllows you to replace the component's HTML element with a different tag, or compose it with another component. Accepts a ReactElement or a function that returns the element to render.
styleNoCSSProperties | ((state: AccordionHeaderState) => React.CSSProperties | undefined) | undefinedStyle applied to the element, or a function that returns a style object based on the component's state.
variantsNo{ readonly variant?: import("@fayegram-ai/faye-ui/contracts/visual-variants").VisualVariant<"accordion", "variant"> | undefined; readonly size?: import("@fayegram-ai/faye-ui/contracts/visual-variants").VisualVariant<"accordion", "size"> | undefined; readonly tone?: import("@fayegram-ai/faye-ui/contracts/visual-variants").VisualVariant<"accordion", "tone"> | undefined; } | undefinedSee the usage contract and declaration.

Accordion.Trigger

PropertyRequiredTypeMeaning
classNameNostring | ((state: AccordionTriggerState) => string | undefined) | undefinedCSS class applied to the element, or a function that returns a class based on the component's state.
hideIndicatorNoboolean | undefinedSee the usage contract and declaration.
indicatorNoReactNodeSee the usage contract and declaration.
indicatorPositionNo"start" | "end" | undefinedSee the usage contract and declaration.
nativeButtonNoboolean | undefinedWhether the component renders a native <button> element when replacing it via the render prop. Set to false if the rendered element is not a button (for example, <div>).
renderNoReactElement<unknown, string | JSXElementConstructor<any>> | ComponentRenderFn<HTMLProps, AccordionTriggerState> | undefinedAllows you to replace the component's HTML element with a different tag, or compose it with another component. Accepts a ReactElement or a function that returns the element to render.
styleNoCSSProperties | ((state: AccordionTriggerState) => React.CSSProperties | undefined) | undefinedStyle applied to the element, or a function that returns a style object based on the component's state.
variantsNo{ readonly variant?: import("@fayegram-ai/faye-ui/contracts/visual-variants").VisualVariant<"accordion", "variant"> | undefined; readonly size?: import("@fayegram-ai/faye-ui/contracts/visual-variants").VisualVariant<"accordion", "size"> | undefined; readonly tone?: import("@fayegram-ai/faye-ui/contracts/visual-variants").VisualVariant<"accordion", "tone"> | undefined; } | undefinedSee the usage contract and declaration.

Accordion.Panel

PropertyRequiredTypeMeaning
classNameNostring | ((state: AccordionPanelState) => string | undefined) | undefinedCSS class applied to the element, or a function that returns a class based on the component's state.
hiddenUntilFoundNoboolean | undefinedAllows the browser's built-in page search to find and expand the panel contents. Overrides the keepMounted prop and uses hidden="until-found" to hide the element without removing it from the DOM.
keepMountedNoboolean | undefinedWhether to keep the element in the DOM while the panel is closed. This prop is ignored when hiddenUntilFound is used.
renderNoReactElement<unknown, string | JSXElementConstructor<any>> | ComponentRenderFn<HTMLProps, AccordionPanelState> | undefinedAllows you to replace the component's HTML element with a different tag, or compose it with another component. Accepts a ReactElement or a function that returns the element to render.
styleNoCSSProperties | ((state: AccordionPanelState) => React.CSSProperties | undefined) | undefinedStyle applied to the element, or a function that returns a style object based on the component's state.
variantsNo{ readonly variant?: import("@fayegram-ai/faye-ui/contracts/visual-variants").VisualVariant<"accordion", "variant"> | undefined; readonly size?: import("@fayegram-ai/faye-ui/contracts/visual-variants").VisualVariant<"accordion", "size"> | undefined; readonly tone?: import("@fayegram-ai/faye-ui/contracts/visual-variants").VisualVariant<"accordion", "tone"> | undefined; } | undefinedSee the usage contract and declaration.

Defaults and customization

Descriptor defaults: {"variant":"divided","size":"md","tone":"neutral"}. Parts: item, header, trigger, panel. Explicit instance props take precedence over configured defaults.

Use semantic tokens, public part hooks and customization sheets. Keep visual configuration separate from application state.

State, events and accessibility

For interactive controls, pair a controlled value/open prop with its corresponding change callback; default props initialize uncontrolled state. Keep application validation and submission policy explicit. Name controls with visible labels, name icon-only actions on the button, and preserve focus and dismissal behavior when replacing parts. Use native form names and submit/reset types where supported. See the usage guide for component-specific behavior and live examples.

Declaration authority

Generated from packages/faye-ui/dist/navigation/accordion.d.ts after the semantic package build. Common native/React attributes are intentionally omitted from property tables. Generic overloads, discriminated unions and complete inherited attributes remain authoritative in installed TypeScript declarations. React DOM attributes and Base UI component contracts describe the inherited foundations.