{"version":3,"file":"Stack.cjs","sources":["../../../src/components/Stack/Stack.tsx"],"sourcesContent":["import {\n  Box,\n  BoxProps,\n  createVarsResolver,\n  ElementProps,\n  factory,\n  Factory,\n  getSpacing,\n  RaikouSpacing,\n  StylesApiProps,\n  useProps,\n  useStyles,\n} from '../../core';\nimport { StackRootStyle } from './Stack.css';\n\nexport type StackStylesNames = 'root';\nexport type StackCssVariables = {\n  root: '--stack-gap' | '--stack-align' | '--stack-justify';\n};\n\nexport interface StackProps extends BoxProps, StylesApiProps<StackFactory>, ElementProps<'div'> {\n  /** Key of `theme.spacing` or any valid CSS value to set `gap` property, numbers are converted to rem, `'md'` by default */\n  gap?: RaikouSpacing;\n\n  /** Controls `align-items` CSS property, `'stretch'` by default */\n  align?: React.CSSProperties['alignItems'];\n\n  /** Controls `justify-content` CSS property, `'flex-start'` by default */\n  justify?: React.CSSProperties['justifyContent'];\n}\n\nexport type StackFactory = Factory<{\n  props: StackProps;\n  ref: HTMLDivElement;\n  stylesNames: StackStylesNames;\n  vars: StackCssVariables;\n}>;\n\nconst defaultProps: Partial<StackProps> = {\n  gap: 'md',\n  align: 'stretch',\n  justify: 'flex-start',\n};\n\nconst varsResolver = createVarsResolver<StackFactory>((_, { gap, align, justify }) => ({\n  root: {\n    '--stack-gap': getSpacing(gap),\n    '--stack-align': align,\n    '--stack-justify': justify,\n  },\n}));\n\nexport const Stack = factory<StackFactory>((_props, ref) => {\n  const props = useProps('Stack', defaultProps, _props);\n  const {\n    classNames,\n    className,\n    style,\n    styles,\n    unstyled,\n    vars,\n    align,\n    justify,\n    gap,\n    variant,\n    ...others\n  } = props;\n\n  const getStyles = useStyles<StackFactory>({\n    name: 'Stack',\n    props,\n    classes: {\n      root: StackRootStyle,\n    },\n    className,\n    style,\n    classNames,\n    styles,\n    unstyled,\n    vars,\n    varsResolver,\n  });\n\n  return <Box ref={ref} {...getStyles('root')} variant={variant} {...others} />;\n});\n\nStack.displayName = '@raikou/core/Stack';\n"],"names":["createVarsResolver","getSpacing","factory","useProps","useStyles","StackRootStyle","jsx","Box"],"mappings":";;;;;;;;;;;;;;;AAsCA,MAAM,YAAoC,GAAA;AAAA,EACxC,GAAK,EAAA,IAAA;AAAA,EACL,KAAO,EAAA,SAAA;AAAA,EACP,OAAS,EAAA;AACX,CAAA;AAEA,MAAM,YAAA,GAAeA,sCAAiC,CAAC,CAAA,EAAG,EAAE,GAAK,EAAA,KAAA,EAAO,SAAe,MAAA;AAAA,EACrF,IAAM,EAAA;AAAA,IACJ,aAAA,EAAeC,mBAAW,GAAG,CAAA;AAAA,IAC7B,eAAiB,EAAA,KAAA;AAAA,IACjB,iBAAmB,EAAA;AAAA;AAEvB,CAAE,CAAA,CAAA;AAEK,MAAM,KAAQ,GAAAC,eAAA,CAAsB,CAAC,MAAA,EAAQ,GAAQ,KAAA;AAC1D,EAAA,MAAM,KAAQ,GAAAC,iBAAA,CAAS,OAAS,EAAA,YAAA,EAAc,MAAM,CAAA;AACpD,EAAM,MAAA;AAAA,IACJ,UAAA;AAAA,IACA,SAAA;AAAA,IACA,KAAA;AAAA,IACA,MAAA;AAAA,IACA,QAAA;AAAA,IACA,IAAA;AAAA,IACA,KAAA;AAAA,IACA,OAAA;AAAA,IACA,GAAA;AAAA,IACA,OAAA;AAAA,IACA,GAAG;AAAA,GACD,GAAA,KAAA;AAEJ,EAAA,MAAM,YAAYC,mBAAwB,CAAA;AAAA,IACxC,IAAM,EAAA,OAAA;AAAA,IACN,KAAA;AAAA,IACA,OAAS,EAAA;AAAA,MACP,IAAM,EAAAC;AAAA,KACR;AAAA,IACA,SAAA;AAAA,IACA,KAAA;AAAA,IACA,UAAA;AAAA,IACA,MAAA;AAAA,IACA,QAAA;AAAA,IACA,IAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAO,uBAAAC,cAAA,CAACC,WAAI,GAAW,EAAA,GAAG,UAAU,MAAM,CAAA,EAAG,OAAmB,EAAA,GAAG,MAAQ,EAAA,CAAA;AAC7E,CAAC;AAED,KAAA,CAAM,WAAc,GAAA,oBAAA;;;;"}