UNPKG

@hanamura/react-containers

Version:
51 lines (50 loc) 1.93 kB
import { ReactNode } from 'react'; import { ContainerProps, DefaultSpacingType, CommonContainerOptions } from './core/types'; /** * Configuration for where dividers should appear in Stack */ export interface DividerPositions { /** Show divider before the first item (default: false) */ start?: boolean; /** Show dividers between items (default: true) */ between?: boolean; /** Show divider after the last item (default: false) */ end?: boolean; } /** * Position type for dividers in Stack component */ export type DividerPosition = 'start' | 'between' | 'end'; /** * Props passed to the divider rendering function */ export interface DividerProps { /** Index value: 0 for start, 1...n for between dividers, childCount for end */ index: number; /** Position type of the divider */ position: DividerPosition; } /** * Options for configuring the Stack component */ export interface StackOptions<S extends string | number = DefaultSpacingType> extends CommonContainerOptions<S> { /** Space between stacked items */ gap?: S; /** Function to render dividers between items */ divider?: (props: DividerProps) => ReactNode; /** Control where dividers appear */ dividerPositions?: DividerPositions; } /** * Props for the Stack component */ export type StackProps<K extends string = string, S extends string | number = DefaultSpacingType> = ContainerProps<K, StackOptions<S>, S>; /** * Stack component - arranges children in a vertical stack * * Features: * - Responsive spacing based on breakpoints * - Optional dividers at start, between items, and end * - Customizable divider rendering with position information */ export declare function Stack<K extends string = string, S extends string | number = DefaultSpacingType>({ children, defaultOptions, queries, adaptiveOptions, className, style, }: StackProps<K, S>): import("react/jsx-runtime").JSX.Element;