{"version":3,"file":"Burger.mjs","names":[],"sources":["../../src/Burger/Burger.tsx"],"sourcesContent":["'use client';\n\nimport { Drawer, Menu } from 'antd';\nimport { cx } from 'antd-style';\nimport { MenuIcon, X } from 'lucide-react';\nimport { memo, useMemo } from 'react';\n\nimport ActionIcon from '@/ActionIcon';\nimport { Center } from '@/Flex';\n\nimport { styles } from './style';\nimport type { BurgerProps } from './type';\n\nconst Burger = memo<BurgerProps>(\n  ({\n    items,\n    openKeys,\n    selectedKeys,\n    opened,\n    setOpened,\n    className,\n    headerHeight = 64,\n    onClick,\n    iconProps,\n    size,\n    variant,\n    rootClassName,\n    fullscreen,\n    drawerProps,\n    ...rest\n  }) => {\n    // Convert props to CSS variables\n    const cssVariables = useMemo<Record<string, string>>(() => {\n      const vars: Record<string, string> = {\n        '--burger-header-height': `${headerHeight}px`,\n      };\n      if (fullscreen) {\n        vars['--burger-drawer-top'] = '0';\n        vars['--burger-menu-padding-top'] = '0px';\n      } else {\n        vars['--burger-drawer-top'] = `calc(var(--burger-header-height, ${headerHeight}px) + 1px)`;\n        vars['--burger-menu-padding-top'] = `${headerHeight}px`;\n      }\n      return vars;\n    }, [fullscreen, headerHeight]);\n\n    return (\n      <Center\n        className={cx(styles.container, className)}\n        onClick={() => {\n          setOpened(!opened);\n        }}\n        {...rest}\n      >\n        <ActionIcon icon={opened ? X : MenuIcon} size={size} variant={variant} {...iconProps} />\n        <Drawer\n          closeIcon={undefined}\n          open={opened}\n          placement={'left'}\n          width={'100vw'}\n          {...drawerProps}\n          className={styles.drawer}\n          rootClassName={cx(\n            fullscreen ? styles.drawerRootFullscreen : styles.drawerRoot,\n            rootClassName,\n          )}\n          rootStyle={{\n            ...cssVariables,\n            ...drawerProps?.rootStyle,\n          }}\n          styles={{\n            body: { padding: 0 },\n            header: { display: 'none' },\n          }}\n        >\n          <Menu\n            className={styles.menu}\n            items={items}\n            mode={'inline'}\n            openKeys={openKeys}\n            selectedKeys={selectedKeys}\n            style={cssVariables}\n            onClick={onClick}\n          />\n          <div className={styles.fillRect} />\n        </Drawer>\n      </Center>\n    );\n  },\n);\n\nBurger.displayName = 'Burger';\n\nexport default Burger;\n"],"mappings":";;;;;;;;;;AAaA,MAAM,SAAS,MACZ,EACC,OACA,UACA,cACA,QACA,WACA,WACA,eAAe,IACf,SACA,WACA,MACA,SACA,eACA,YACA,aACA,GAAG,WACC;CAEJ,MAAM,eAAe,cAAsC;EACzD,MAAM,OAA+B,EACnC,0BAA0B,GAAG,aAAa,KAC3C;AACD,MAAI,YAAY;AACd,QAAK,yBAAyB;AAC9B,QAAK,+BAA+B;SAC/B;AACL,QAAK,yBAAyB,oCAAoC,aAAa;AAC/E,QAAK,+BAA+B,GAAG,aAAa;;AAEtD,SAAO;IACN,CAAC,YAAY,aAAa,CAAC;AAE9B,QACE,qBAAC,QAAD;EACE,WAAW,GAAG,OAAO,WAAW,UAAU;EAC1C,eAAe;AACb,aAAU,CAAC,OAAO;;EAEpB,GAAI;YALN,CAOE,oBAAC,YAAD;GAAY,MAAM,SAAS,IAAI;GAAgB;GAAe;GAAS,GAAI;GAAa,CAAA,EACxF,qBAAC,QAAD;GACE,WAAW,KAAA;GACX,MAAM;GACN,WAAW;GACX,OAAO;GACP,GAAI;GACJ,WAAW,OAAO;GAClB,eAAe,GACb,aAAa,OAAO,uBAAuB,OAAO,YAClD,cACD;GACD,WAAW;IACT,GAAG;IACH,GAAG,aAAa;IACjB;GACD,QAAQ;IACN,MAAM,EAAE,SAAS,GAAG;IACpB,QAAQ,EAAE,SAAS,QAAQ;IAC5B;aAlBH,CAoBE,oBAAC,MAAD;IACE,WAAW,OAAO;IACX;IACP,MAAM;IACI;IACI;IACd,OAAO;IACE;IACT,CAAA,EACF,oBAAC,OAAD,EAAK,WAAW,OAAO,UAAY,CAAA,CAC5B;KACF;;EAGd;AAED,OAAO,cAAc"}