{"version":3,"file":"Code.cjs","sources":["../../../src/components/Code/Code.tsx"],"sourcesContent":["import {\n  Box,\n  BoxProps,\n  createVarsResolver,\n  ElementProps,\n  factory,\n  Factory,\n  getThemeColor,\n  RaikouColor,\n  StylesApiProps,\n  useProps,\n  useStyles,\n} from '../../core';\nimport { CodeRootStyle } from './Code.css';\n\nexport type CodeStylesNames = 'root';\nexport type CodeCssVariables = {\n  root: '--code-bg';\n};\n\nexport interface CodeProps extends BoxProps, StylesApiProps<CodeFactory>, ElementProps<'code'> {\n  /** Key of `theme.colors` or any valid CSS color, controls `background-color` of the code, by default value is calculated based on color scheme */\n  color?: RaikouColor;\n\n  /** If set code will be rendered inside `pre`, `false` by default */\n  block?: boolean;\n}\n\nexport type CodeFactory = Factory<{\n  props: CodeProps;\n  ref: HTMLElement;\n  stylesNames: CodeStylesNames;\n  vars: CodeCssVariables;\n}>;\n\nconst defaultProps: Partial<CodeProps> = {};\n\nconst varsResolver = createVarsResolver<CodeFactory>((theme, { color }) => ({\n  root: {\n    '--code-bg': color ? getThemeColor(color, theme) : undefined,\n  },\n}));\n\nexport const Code = factory<CodeFactory>((_props, ref) => {\n  const props = useProps('Code', defaultProps, _props);\n  const {\n    classNames,\n    className,\n    style,\n    styles,\n    unstyled,\n    vars,\n    color,\n    block,\n    variant,\n    mod,\n    ...others\n  } = props;\n\n  const getStyles = useStyles<CodeFactory>({\n    name: 'Code',\n    props,\n    classes: {\n      root: CodeRootStyle,\n    },\n    className,\n    style,\n    classNames,\n    styles,\n    unstyled,\n    vars,\n    varsResolver,\n  });\n\n  return (\n    <Box<any>\n      component={block ? 'pre' : 'code'}\n      variant={variant}\n      ref={ref}\n      mod={[{ block }, mod]}\n      {...getStyles('root')}\n      {...others}\n      dir=\"ltr\"\n    />\n  );\n});\n\nCode.displayName = '@raikou/core/Code';\n"],"names":["createVarsResolver","getThemeColor","factory","useProps","useStyles","CodeRootStyle","jsx","Box"],"mappings":";;;;;;;;;;;;;;;AAmCA,MAAM,eAAmC,EAAC;AAE1C,MAAM,eAAeA,qCAAgC,CAAA,CAAC,KAAO,EAAA,EAAE,OAAa,MAAA;AAAA,EAC1E,IAAM,EAAA;AAAA,IACJ,WAAa,EAAA,KAAA,GAAQC,2BAAc,CAAA,KAAA,EAAO,KAAK,CAAI,GAAA,KAAA;AAAA;AAEvD,CAAE,CAAA,CAAA;AAEK,MAAM,IAAO,GAAAC,eAAA,CAAqB,CAAC,MAAA,EAAQ,GAAQ,KAAA;AACxD,EAAA,MAAM,KAAQ,GAAAC,iBAAA,CAAS,MAAQ,EAAA,YAAA,EAAc,MAAM,CAAA;AACnD,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,KAAA;AAAA,IACA,OAAA;AAAA,IACA,GAAA;AAAA,IACA,GAAG;AAAA,GACD,GAAA,KAAA;AAEJ,EAAA,MAAM,YAAYC,mBAAuB,CAAA;AAAA,IACvC,IAAM,EAAA,MAAA;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,EACE,uBAAAC,cAAA;AAAA,IAACC,OAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,QAAQ,KAAQ,GAAA,MAAA;AAAA,MAC3B,OAAA;AAAA,MACA,GAAA;AAAA,MACA,GAAK,EAAA,CAAC,EAAE,KAAA,IAAS,GAAG,CAAA;AAAA,MACnB,GAAG,UAAU,MAAM,CAAA;AAAA,MACnB,GAAG,MAAA;AAAA,MACJ,GAAI,EAAA;AAAA;AAAA,GACN;AAEJ,CAAC;AAED,IAAA,CAAK,WAAc,GAAA,mBAAA;;;;"}