{"version":3,"file":"Divider.cjs","sources":["../../../src/components/Divider/Divider.tsx"],"sourcesContent":["import {\n  Box,\n  BoxProps,\n  createVarsResolver,\n  ElementProps,\n  factory,\n  Factory,\n  getSize,\n  getThemeColor,\n  RaikouColor,\n  RaikouSize,\n  StylesApiProps,\n  useProps,\n  useStyles,\n} from '../../core';\nimport { DividerLabelStyle, DividerRootStyle } from './Divider.css';\n\nexport type DividerStylesNames = 'root' | 'label';\nexport type DividerVariant = 'solid' | 'dashed' | 'dotted';\nexport type DividerCssVariables = {\n  root: '--divider-color' | '--divider-border-style' | '--divider-size';\n};\n\nexport interface DividerProps\n  extends BoxProps,\n    StylesApiProps<DividerFactory>,\n    ElementProps<'div'> {\n  /** Key of `theme.colors` or any valid CSS color value, by default value depends on color scheme */\n  color?: RaikouColor;\n\n  /** Controls width/height (depends on orientation), `'xs'` by default */\n  size?: RaikouSize | number | (string & {});\n\n  /** Divider label, visible only when `orientation` is `horizontal` */\n  label?: React.ReactNode;\n\n  /** Controls label position, `'center'` by default */\n  labelPosition?: 'left' | 'center' | 'right';\n\n  /** Controls orientation, `'horizontal'` by default */\n  orientation?: 'horizontal' | 'vertical';\n}\n\nexport type DividerFactory = Factory<{\n  props: DividerProps;\n  ref: HTMLDivElement;\n  stylesNames: DividerStylesNames;\n  vars: DividerCssVariables;\n  variant: DividerVariant;\n}>;\n\nconst defaultProps: Partial<DividerProps> = {\n  orientation: 'horizontal',\n};\n\nconst varsResolver = createVarsResolver<DividerFactory>((theme, { color, variant, size }) => ({\n  root: {\n    '--divider-color': color ? getThemeColor(color, theme) : undefined,\n    '--divider-border-style': variant,\n    '--divider-size': getSize(size, 'divider-size'),\n  },\n}));\n\nexport const Divider = factory<DividerFactory>((_props, ref) => {\n  const props = useProps('Divider', defaultProps, _props);\n  const {\n    classNames,\n    className,\n    style,\n    styles,\n    unstyled,\n    vars,\n    color,\n    orientation,\n    label,\n    labelPosition,\n    mod,\n    ...others\n  } = props;\n\n  const getStyles = useStyles<DividerFactory>({\n    name: 'Divider',\n    classes: {\n      root: DividerRootStyle,\n      label: DividerLabelStyle,\n    },\n    props,\n    className,\n    style,\n    classNames,\n    styles,\n    unstyled,\n    vars,\n    varsResolver,\n  });\n\n  return (\n    <Box\n      ref={ref}\n      mod={[{ orientation, 'with-label': !!label }, mod]}\n      {...getStyles('root')}\n      {...others}\n      role=\"separator\"\n    >\n      {label && (\n        <Box component=\"span\" mod={{ position: labelPosition }} {...getStyles('label')}>\n          {label}\n        </Box>\n      )}\n    </Box>\n  );\n});\n\nDivider.displayName = '@raikou/core/Divider';\n"],"names":["createVarsResolver","getThemeColor","getSize","factory","useProps","useStyles","DividerRootStyle","DividerLabelStyle","jsx","Box"],"mappings":";;;;;;;;;;;;;;;;AAmDA,MAAM,YAAsC,GAAA;AAAA,EAC1C,WAAa,EAAA;AACf,CAAA;AAEA,MAAM,YAAA,GAAeA,sCAAmC,CAAC,KAAA,EAAO,EAAE,KAAO,EAAA,OAAA,EAAS,MAAY,MAAA;AAAA,EAC5F,IAAM,EAAA;AAAA,IACJ,iBAAmB,EAAA,KAAA,GAAQC,2BAAc,CAAA,KAAA,EAAO,KAAK,CAAI,GAAA,KAAA,CAAA;AAAA,IACzD,wBAA0B,EAAA,OAAA;AAAA,IAC1B,gBAAA,EAAkBC,eAAQ,CAAA,IAAA,EAAM,cAAc;AAAA;AAElD,CAAE,CAAA,CAAA;AAEK,MAAM,OAAU,GAAAC,eAAA,CAAwB,CAAC,MAAA,EAAQ,GAAQ,KAAA;AAC9D,EAAA,MAAM,KAAQ,GAAAC,iBAAA,CAAS,SAAW,EAAA,YAAA,EAAc,MAAM,CAAA;AACtD,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,WAAA;AAAA,IACA,KAAA;AAAA,IACA,aAAA;AAAA,IACA,GAAA;AAAA,IACA,GAAG;AAAA,GACD,GAAA,KAAA;AAEJ,EAAA,MAAM,YAAYC,mBAA0B,CAAA;AAAA,IAC1C,IAAM,EAAA,SAAA;AAAA,IACN,OAAS,EAAA;AAAA,MACP,IAAM,EAAAC,4BAAA;AAAA,MACN,KAAO,EAAAC;AAAA,KACT;AAAA,IACA,KAAA;AAAA,IACA,SAAA;AAAA,IACA,KAAA;AAAA,IACA,UAAA;AAAA,IACA,MAAA;AAAA,IACA,QAAA;AAAA,IACA,IAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EACE,uBAAAC,cAAA;AAAA,IAACC,OAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,GAAA,EAAK,CAAC,EAAE,WAAA,EAAa,cAAc,CAAC,CAAC,KAAM,EAAA,EAAG,GAAG,CAAA;AAAA,MAChD,GAAG,UAAU,MAAM,CAAA;AAAA,MACnB,GAAG,MAAA;AAAA,MACJ,IAAK,EAAA,WAAA;AAAA,MAEJ,QACC,EAAA,KAAA,oBAAAD,cAAA,CAACC,OAAI,EAAA,EAAA,SAAA,EAAU,QAAO,GAAK,EAAA,EAAE,QAAU,EAAA,aAAA,EAAkB,EAAA,GAAG,SAAU,CAAA,OAAO,GAC1E,QACH,EAAA,KAAA,EAAA;AAAA;AAAA,GAEJ;AAEJ,CAAC;AAED,OAAA,CAAQ,WAAc,GAAA,sBAAA;;;;"}