@mantine/core
Version:
React components library focused on usability, accessibility and developer experience
1 lines • 4.15 kB
Source Map (JSON)
{"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"}