@lobehub/ui
Version:
Lobe UI is an open-source UI component library for building AIGC web apps
1 lines • 3.53 kB
Source Map (JSON)
{"version":3,"file":"Burger.mjs","names":["vars: Record<string, string>","Center","ActionIcon"],"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 onClick={onClick}\n openKeys={openKeys}\n selectedKeys={selectedKeys}\n style={cssVariables}\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,MAAMA,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,qBAACC;EACC,WAAW,GAAG,OAAO,WAAW,UAAU;EAC1C,eAAe;AACb,aAAU,CAAC,OAAO;;EAEpB,GAAI;aAEJ,oBAACC;GAAW,MAAM,SAAS,IAAI;GAAgB;GAAe;GAAS,GAAI;IAAa,EACxF,qBAAC;GACC,WAAW;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;cAED,oBAAC;IACC,WAAW,OAAO;IACX;IACP,MAAM;IACG;IACC;IACI;IACd,OAAO;KACP,EACF,oBAAC,SAAI,WAAW,OAAO,WAAY;IAC5B;GACF;EAGd;AAED,OAAO,cAAc;AAErB,qBAAe"}