import React, { Children, Fragment, HTMLAttributes, ReactNode } from 'react'; import classnames from 'classnames'; const spaceClasses = { '0': 'pt-0', '1': 'pt-1', }; type Space = keyof typeof spaceClasses; interface HStackProps extends BoxProps { space?: Space; children: ReactNode; } export function Stacks({ className, space, children, ...props }: HStackProps) { return ( {space ? Children.toArray(children) .filter(Boolean) // Remove null/false/undefined children .map((c, i) => ( {i > 0 ? (
) : null} {c} )) : children} ); } export interface VStackProps extends BoxProps { space?: Space; children: ReactNode; } export function VStack({ className, space, children, ...props }: VStackProps) { return ( {space ? Children.toArray(children) .filter(Boolean) // Remove null/false/undefined children .map((c, i) => ( {i > 0 ? (
) : null} {c} )) : children} ); } interface BoxProps extends HTMLAttributes { as?: React.ElementType; } function BaseStack({ className, as = 'div', ...props }: BoxProps) { const Component = as; return ; }