UNPKG

@payfit/unity-components

Version:

51 lines (50 loc) 2.57 kB
import { DisclosureGroupProps } from 'react-aria-components'; import { SpacingToken } from '../../utils/spacing.js'; import { ResponsiveValue } from '../../hooks/use-responsive-value.js'; export interface CollapsibleGroupProps extends Omit<DisclosureGroupProps, 'className' | 'style'> { /** * Space between each `Collapsible` item. * Use a Unity spacing token, or a responsive spacing value when the group needs different density across breakpoints. */ gap?: SpacingToken | ResponsiveValue<SpacingToken>; } /** * Groups related `Collapsible` items into one accessible accordion pattern. * Use `CollapsibleGroup` when several sections belong to the same workflow and users need to scan section titles before opening the relevant details. * @param {CollapsibleGroupProps} props - React Aria disclosure group props, plus the Unity `gap` spacing prop. * @example * ```tsx * import { * Collapsible, * CollapsibleContent, * CollapsibleGroup, * CollapsibleTitle, * } from '@payfit/unity-components' * * function Example() { * return ( * <CollapsibleGroup defaultExpandedKeys={['balance']}> * <Collapsible id="balance"> * <CollapsibleTitle>Estimated balance</CollapsibleTitle> * <CollapsibleContent>12.5 days available</CollapsibleContent> * </Collapsible> * <Collapsible id="requests"> * <CollapsibleTitle>Pending requests</CollapsibleTitle> * <CollapsibleContent>2 requests waiting for approval</CollapsibleContent> * </Collapsible> * </CollapsibleGroup> * ) * } * ``` * @remarks * - Set `defaultExpandedKeys` for uncontrolled initial state. * - Set `expandedKeys` with `onExpandedChange` when another part of the interface owns the open state. * - Set `allowsMultipleExpanded` when users need to compare several sections at the same time. * - Set `isDisabled` to make every child disclosure unavailable. * @see {@link CollapsibleGroupProps} for all available props. * @see Source code in {@link https://github.com/PayFit/hr-apps/tree/master/libs/shared/unity/components/src/components/collapsible-group GitHub} * @see Design specs {@link https://www.figma.com/design/d03KzkEEEfAS6DfaP8HYeD/Accordion Figma} * @see Developer docs in {@link https://unity-components.payfit.io/?path=/docs/component-reference-collapsiblegroup--docs unity-components.payfit.io} */ declare const CollapsibleGroup: import('react').ForwardRefExoticComponent<CollapsibleGroupProps & import('react').RefAttributes<HTMLDivElement>>; export { CollapsibleGroup };