{"version":3,"file":"Burger.cjs","names":["createVarsResolver","getThemeColor","getSize","rem","factory","useProps","useStyles","UnstyledButton","Box","classes"],"sources":["../../../src/components/Burger/Burger.tsx"],"sourcesContent":["import {\n  Box,\n  BoxProps,\n  createVarsResolver,\n  ElementProps,\n  factory,\n  Factory,\n  getSize,\n  getThemeColor,\n  MantineColor,\n  MantineSize,\n  rem,\n  StylesApiProps,\n  useProps,\n  useStyles,\n} from '../../core';\nimport { UnstyledButton } from '../UnstyledButton';\nimport classes from './Burger.module.css';\n\nexport type BurgerStylesNames = 'root' | 'burger';\nexport type BurgerCssVariables = {\n  root:\n    | '--burger-color'\n    | '--burger-size'\n    | '--burger-line-size'\n    | '--burger-transition-duration'\n    | '--burger-transition-timing-function';\n};\n\nexport interface BurgerProps\n  extends BoxProps, StylesApiProps<BurgerFactory>, ElementProps<'button'> {\n  /** Controls burger `width` and `height`, numbers are converted to rem @default 'md' */\n  size?: MantineSize | (string & {}) | number;\n\n  /** Controls height of lines, by default calculated based on `size` prop */\n  lineSize?: string | number;\n\n  /** Key of `theme.colors` of any valid CSS value, by default `theme.white` in dark color scheme and `theme.black` in light */\n  color?: MantineColor;\n\n  /** State of the burger, when `true` burger is transformed into X @default false */\n  opened?: boolean;\n\n  /** `transition-duration` property value in ms @default 300 */\n  transitionDuration?: number;\n\n  /** `transition-timing-function` property value @default 'ease' */\n  transitionTimingFunction?: string;\n}\n\nexport type BurgerFactory = Factory<{\n  props: BurgerProps;\n  ref: HTMLButtonElement;\n  stylesNames: BurgerStylesNames;\n  vars: BurgerCssVariables;\n}>;\n\nconst varsResolver = createVarsResolver<BurgerFactory>(\n  (theme, { color, size, lineSize, transitionDuration, transitionTimingFunction }) => ({\n    root: {\n      '--burger-color': color ? getThemeColor(color, theme) : undefined,\n      '--burger-size': getSize(size, 'burger-size'),\n      '--burger-line-size': lineSize ? rem(lineSize) : undefined,\n      '--burger-transition-duration':\n        transitionDuration === undefined ? undefined : `${transitionDuration}ms`,\n      '--burger-transition-timing-function': transitionTimingFunction,\n    },\n  })\n);\n\nexport const Burger = factory<BurgerFactory>((_props) => {\n  const props = useProps('Burger', null, _props);\n  const {\n    classNames,\n    className,\n    style,\n    styles,\n    unstyled,\n    vars,\n    opened,\n    children,\n    transitionDuration,\n    transitionTimingFunction,\n    lineSize,\n    attributes,\n    ...others\n  } = props;\n\n  const getStyles = useStyles<BurgerFactory>({\n    name: 'Burger',\n    classes,\n    props,\n    className,\n    style,\n    classNames,\n    styles,\n    unstyled,\n    attributes,\n    vars,\n    varsResolver,\n  });\n\n  return (\n    <UnstyledButton {...getStyles('root')} {...others}>\n      <Box mod={['reduce-motion', { opened }]} {...getStyles('burger')} />\n      {children}\n    </UnstyledButton>\n  );\n});\n\nBurger.classes = classes;\nBurger.varsResolver = varsResolver;\nBurger.displayName = '@mantine/core/Burger';\n"],"mappings":";;;;;;;;;;;;;;AAyDA,MAAM,eAAeA,6BAAAA,oBAClB,OAAO,EAAE,OAAO,MAAM,UAAU,oBAAoB,gCAAgC,EACnF,MAAM;CACJ,kBAAkB,QAAQC,wBAAAA,cAAc,OAAO,MAAM,GAAG,KAAA;CACxD,iBAAiBC,iBAAAA,QAAQ,MAAM,cAAc;CAC7C,sBAAsB,WAAWC,YAAAA,IAAI,SAAS,GAAG,KAAA;CACjD,gCACE,uBAAuB,KAAA,IAAY,KAAA,IAAY,GAAG,mBAAmB;CACvE,uCAAuC;CACxC,EACF,EACF;AAED,MAAa,SAASC,gBAAAA,SAAwB,WAAW;CACvD,MAAM,QAAQC,kBAAAA,SAAS,UAAU,MAAM,OAAO;CAC9C,MAAM,EACJ,YACA,WACA,OACA,QACA,UACA,MACA,QACA,UACA,oBACA,0BACA,UACA,YACA,GAAG,WACD;CAEJ,MAAM,YAAYC,mBAAAA,UAAyB;EACzC,MAAM;EACN,SAAA,sBAAA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CAAC;AAEF,QACE,iBAAA,GAAA,kBAAA,MAACC,uBAAAA,gBAAD;EAAgB,GAAI,UAAU,OAAO;EAAE,GAAI;YAA3C,CACE,iBAAA,GAAA,kBAAA,KAACC,YAAAA,KAAD;GAAK,KAAK,CAAC,iBAAiB,EAAE,QAAQ,CAAC;GAAE,GAAI,UAAU,SAAS;GAAI,CAAA,EACnE,SACc;;EAEnB;AAEF,OAAO,UAAUC,sBAAAA;AACjB,OAAO,eAAe;AACtB,OAAO,cAAc"}