import { default as React } from 'react'; import { Direction, Justify, ItemAlign, ResponsiveProp, Spacing } from './types'; export default interface IStackProps { /** HTML id attribute */ id?: string; /** * The HTML element type is used to render the Stack component. * This prop allows you to specify which HTML element should be used as the container for the Stack. * Useful for semantic HTML and accessibility purposes. For example, use 'ul' when the Stack represents a list. * * The Stack only renders the container element; it never wraps or coerces `children`. When `as` is 'ul' or 'ol', * every child must be an `
  • ` itself, otherwise the list contains non-`
  • ` children. When `as` is 'li', it must * be rendered inside a 'ul' or 'ol'. * @default "div" */ as?: 'div' | 'span' | 'ul' | 'ol' | 'li' | 'fieldset'; /** * Controls how content is positioned along a container's cross axis. */ itemAlign?: ItemAlign; /** * Controls how content is positioned along a container's main axis. */ justify?: Justify; /** * Controls the direction of content. * @default "column" */ direction?: Direction; /** * Sets the space between child elements. * @default "1" */ spacing?: Spacing; /** * Allows the adjustment of direction and spacing based on screen breakpoints. * @example * { * sm: { direction: 'row', spacing: '4' }, * md: { direction: 'rowReverse', spacing: '8' }, * lg: { direction: 'column', spacing: '12' }, * xl: { direction: 'columnReverse', spacing: '16' }, * '2xl': { direction: 'row', spacing: '20' }, * } */ responsive?: ResponsiveProp; /** * The content of the Stack. */ children?: React.ReactNode; /** * Whether the Stack should wrap its content. * @default false */ isWrap?: boolean; }