{"version":3,"file":"TableScrollContainer.cjs","sources":["../../../src/components/Table/TableScrollContainer.tsx"],"sourcesContent":["import {\n  Box,\n  BoxProps,\n  createVarsResolver,\n  ElementProps,\n  factory,\n  Factory,\n  rem,\n  StylesApiProps,\n  useProps,\n  useStyles,\n} from '../../core';\nimport { ScrollArea } from '../ScrollArea';\nimport { TableScrollContainerInnerStyle, TableScrollContainerStyle } from './Table.css';\n\nexport type TableScrollContainerStylesNames = 'scrollContainer' | 'scrollContainerInner';\nexport type TableScrollContainerCssVariables = {\n  scrollContainer: '--table-min-width' | '--table-overflow';\n};\n\nexport interface TableScrollContainerProps\n  extends BoxProps,\n    StylesApiProps<TableScrollContainerFactory>,\n    ElementProps<'div'> {\n  /** `min-width` of the `Table` at which it should become scrollable */\n  minWidth: React.CSSProperties['minWidth'];\n\n  /** Type of the scroll container, `native` to use native scrollbars, `scrollarea` to use `ScrollArea` component, `scrollarea` by default */\n  type?: 'native' | 'scrollarea';\n}\n\nexport type TableScrollContainerFactory = Factory<{\n  props: TableScrollContainerProps;\n  ref: HTMLDivElement;\n  stylesNames: TableScrollContainerStylesNames;\n  vars: TableScrollContainerCssVariables;\n}>;\n\nconst defaultProps: Partial<TableScrollContainerProps> = {\n  type: 'scrollarea',\n};\n\nconst varsResolver = createVarsResolver<TableScrollContainerFactory>((_, { minWidth, type }) => ({\n  scrollContainer: {\n    '--table-min-width': rem(minWidth),\n    '--table-overflow': type === 'native' ? 'auto' : undefined,\n  },\n}));\n\nexport const TableScrollContainer = factory<TableScrollContainerFactory>((_props, ref) => {\n  const props = useProps('TableScrollContainer', defaultProps, _props);\n  const {\n    classNames,\n    className,\n    style,\n    styles,\n    unstyled,\n    vars,\n    children,\n    minWidth,\n    type,\n    ...others\n  } = props;\n\n  const getStyles = useStyles<TableScrollContainerFactory>({\n    name: 'TableScrollContainer',\n    classes: {\n      scrollContainer: TableScrollContainerStyle,\n      scrollContainerInner: TableScrollContainerInnerStyle,\n    },\n    props,\n    className,\n    style,\n    classNames,\n    styles,\n    unstyled,\n    vars,\n    varsResolver,\n    rootSelector: 'scrollContainer',\n  });\n\n  return (\n    <Box<any>\n      component={type === 'scrollarea' ? ScrollArea : 'div'}\n      {...(type === 'scrollarea' ? { offsetScrollbars: 'x' } : {})}\n      ref={ref}\n      {...getStyles('scrollContainer')}\n      {...others}\n    >\n      <div {...getStyles('scrollContainerInner')}>{children}</div>\n    </Box>\n  );\n});\n\nTableScrollContainer.displayName = '@raikou/core/TableScrollContainer';\n"],"names":["createVarsResolver","rem","factory","useProps","useStyles","TableScrollContainerStyle","TableScrollContainerInnerStyle","jsx","Box","ScrollArea"],"mappings":";;;;;;;;;;;;;;;;AAsCA,MAAM,YAAmD,GAAA;AAAA,EACvD,IAAM,EAAA;AACR,CAAA;AAEA,MAAM,eAAeA,qCAAgD,CAAA,CAAC,GAAG,EAAE,QAAA,EAAU,MAAY,MAAA;AAAA,EAC/F,eAAiB,EAAA;AAAA,IACf,mBAAA,EAAqBC,QAAI,QAAQ,CAAA;AAAA,IACjC,kBAAA,EAAoB,IAAS,KAAA,QAAA,GAAW,MAAS,GAAA,KAAA;AAAA;AAErD,CAAE,CAAA,CAAA;AAEK,MAAM,oBAAuB,GAAAC,eAAA,CAAqC,CAAC,MAAA,EAAQ,GAAQ,KAAA;AACxF,EAAA,MAAM,KAAQ,GAAAC,iBAAA,CAAS,sBAAwB,EAAA,YAAA,EAAc,MAAM,CAAA;AACnE,EAAM,MAAA;AAAA,IACJ,UAAA;AAAA,IACA,SAAA;AAAA,IACA,KAAA;AAAA,IACA,MAAA;AAAA,IACA,QAAA;AAAA,IACA,IAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,IAAA;AAAA,IACA,GAAG;AAAA,GACD,GAAA,KAAA;AAEJ,EAAA,MAAM,YAAYC,mBAAuC,CAAA;AAAA,IACvD,IAAM,EAAA,sBAAA;AAAA,IACN,OAAS,EAAA;AAAA,MACP,eAAiB,EAAAC,mCAAA;AAAA,MACjB,oBAAsB,EAAAC;AAAA,KACxB;AAAA,IACA,KAAA;AAAA,IACA,SAAA;AAAA,IACA,KAAA;AAAA,IACA,UAAA;AAAA,IACA,MAAA;AAAA,IACA,QAAA;AAAA,IACA,IAAA;AAAA,IACA,YAAA;AAAA,IACA,YAAc,EAAA;AAAA,GACf,CAAA;AAED,EACE,uBAAAC,cAAA;AAAA,IAACC,OAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,IAAS,KAAA,YAAA,GAAeC,qBAAa,GAAA,KAAA;AAAA,MAC/C,GAAI,IAAS,KAAA,YAAA,GAAe,EAAE,gBAAkB,EAAA,GAAA,KAAQ,EAAC;AAAA,MAC1D,GAAA;AAAA,MACC,GAAG,UAAU,iBAAiB,CAAA;AAAA,MAC9B,GAAG,MAAA;AAAA,MAEJ,yCAAC,KAAK,EAAA,EAAA,GAAG,SAAU,CAAA,sBAAsB,GAAI,QAAS,EAAA;AAAA;AAAA,GACxD;AAEJ,CAAC;AAED,oBAAA,CAAqB,WAAc,GAAA,mCAAA;;;;"}