@lobehub/ui
Version:
Lobe UI is an open-source UI component library for building AIGC web apps
1 lines • 3.54 kB
Source Map (JSON)
{"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,IAC5C;EACA,IAAI,YAAY;GACd,KAAK,yBAAyB;GAC9B,KAAK,+BAA+B;EACtC,OAAO;GACL,KAAK,yBAAyB,oCAAoC,aAAa;GAC/E,KAAK,+BAA+B,GAAG,aAAa;EACtD;EACA,OAAO;CACT,GAAG,CAAC,YAAY,YAAY,CAAC;CAE7B,OACE,qBAAC,QAAD;EACE,WAAW,GAAG,OAAO,WAAW,SAAS;EACzC,eAAe;GACb,UAAU,CAAC,MAAM;EACnB;EACA,GAAI;YALN,CAOE,oBAAC,YAAD;GAAY,MAAM,SAAS,IAAI;GAAgB;GAAe;GAAS,GAAI;EAAY,CAAA,GACvF,qBAAC,QAAD;GACE,WAAW,KAAA;GACX,MAAM;GACN,WAAW;GACX,OAAO;GACP,GAAI;GACJ,WAAW,OAAO;GAClB,eAAe,GACb,aAAa,OAAO,uBAAuB,OAAO,YAClD,aACF;GACA,WAAW;IACT,GAAG;IACH,GAAG,aAAa;GAClB;GACA,QAAQ;IACN,MAAM,EAAE,SAAS,EAAE;IACnB,QAAQ,EAAE,SAAS,OAAO;GAC5B;aAlBF,CAoBE,oBAAC,MAAD;IACE,WAAW,OAAO;IACX;IACP,MAAM;IACI;IACI;IACd,OAAO;IACE;GACV,CAAA,GACD,oBAAC,OAAD,EAAK,WAAW,OAAO,SAAW,CAAA,CAC5B;IACF;;AAEZ,CACF;AAEA,OAAO,cAAc"}