{"version":3,"file":"Burger.mjs","names":["burgerMessages"],"sources":["../../../src/base-ui/Burger/Burger.tsx"],"sourcesContent":["'use client';\n\nimport { Menu, X } from 'lucide-react';\nimport { memo } from 'react';\n\nimport ActionIcon from '@/base-ui/ActionIcon';\nimport { Drawer } from '@/base-ui/Drawer';\nimport List, { type ListItem } from '@/base-ui/List';\nimport burgerMessages from '@/i18n/resources/en/burger';\nimport { useTranslation } from '@/i18n/useTranslation';\n\nimport { styles } from './style';\nimport type { BurgerProps } from './type';\n\nconst withoutIcons = (items: ListItem[]): ListItem[] =>\n  items.flatMap((item) => (item.type === 'divider' ? [] : [{ ...item, icon: undefined }]));\n\nconst Burger = memo<BurgerProps>(\n  ({\n    activeKey,\n    className,\n    footer,\n    fullscreen = false,\n    headerHeight = 64,\n    items,\n    onOpenChange,\n    onSelect,\n    opened,\n    size,\n    style,\n    variant,\n  }) => {\n    const { t } = useTranslation(burgerMessages);\n    const close = () => onOpenChange(false);\n\n    const toggle = (\n      <ActionIcon\n        aria-expanded={opened}\n        aria-label={opened ? t('burger.close') : t('burger.open')}\n        className={className}\n        icon={opened ? X : Menu}\n        size={size}\n        style={style}\n        variant={variant}\n        onClick={() => onOpenChange(!opened)}\n      />\n    );\n\n    return (\n      <>\n        {toggle}\n        <Drawer\n          noHeader\n          classNames={{ bodyContent: styles.body }}\n          height={fullscreen ? '100dvh' : `calc(100dvh - ${headerHeight}px)`}\n          open={opened}\n          placement=\"top\"\n          styles={fullscreen ? undefined : { popup: { insetBlockStart: headerHeight } }}\n          onClose={close}\n        >\n          {fullscreen && (\n            <div className={styles.fullHeader} style={{ height: headerHeight }}>\n              <ActionIcon aria-label={t('burger.close')} icon={X} size={size} onClick={close} />\n            </div>\n          )}\n          <List\n            selectable\n            activeKey={activeKey ?? null}\n            classNames={{ item: fullscreen ? styles.largeRow : styles.row }}\n            items={fullscreen ? withoutIcons(items) : items}\n            onClick={({ key }) => {\n              onSelect?.(key);\n              close();\n            }}\n          />\n          {fullscreen && footer && <div className={styles.footer}>{footer}</div>}\n        </Drawer>\n      </>\n    );\n  },\n);\n\nBurger.displayName = 'Burger';\n\nexport default Burger;\n"],"mappings":";;;;;;;;;;;AAcA,MAAM,gBAAgB,UACpB,MAAM,SAAS,SAAU,KAAK,SAAS,YAAY,CAAC,IAAI,CAAC;CAAE,GAAG;CAAM,MAAM,KAAA;AAAU,CAAC,CAAE;AAEzF,MAAM,SAAS,MACZ,EACC,WACA,WACA,QACA,aAAa,OACb,eAAe,IACf,OACA,cACA,UACA,QACA,MACA,OACA,cACI;CACJ,MAAM,EAAE,MAAM,eAAeA,cAAc;CAC3C,MAAM,cAAc,aAAa,KAAK;CAEtC,MAAM,SACJ,oBAAC,YAAD;EACE,iBAAe;EACf,cAAY,SAAS,EAAE,cAAc,IAAI,EAAE,aAAa;EAC7C;EACX,MAAM,SAAS,IAAI;EACb;EACC;EACE;EACT,eAAe,aAAa,CAAC,MAAM;CACpC,CAAA;CAGH,OACE,qBAAA,YAAA,EAAA,UAAA,CACG,QACD,qBAAC,QAAD;EACE,UAAA;EACA,YAAY,EAAE,aAAa,OAAO,KAAK;EACvC,QAAQ,aAAa,WAAW,iBAAiB,aAAa;EAC9D,MAAM;EACN,WAAU;EACV,QAAQ,aAAa,KAAA,IAAY,EAAE,OAAO,EAAE,iBAAiB,aAAa,EAAE;EAC5E,SAAS;EAPX,UAAA;GASG,cACC,oBAAC,OAAD;IAAK,WAAW,OAAO;IAAY,OAAO,EAAE,QAAQ,aAAa;IAC/D,UAAA,oBAAC,YAAD;KAAY,cAAY,EAAE,cAAc;KAAG,MAAM;KAAS;KAAM,SAAS;IAAQ,CAAA;GAC9E,CAAA;GAEP,oBAAC,MAAD;IACE,YAAA;IACA,WAAW,aAAa;IACxB,YAAY,EAAE,MAAM,aAAa,OAAO,WAAW,OAAO,IAAI;IAC9D,OAAO,aAAa,aAAa,KAAK,IAAI;IAC1C,UAAU,EAAE,UAAU;KACpB,WAAW,GAAG;KACd,MAAM;IACR;GACD,CAAA;GACA,cAAc,UAAU,oBAAC,OAAD;IAAK,WAAW,OAAO;IAAS,UAAA;GAAY,CAAA;EAC/D;CACR,CAAA,CAAA,EAAA,CAAA;AAEN,CACF;AAEA,OAAO,cAAc"}