@lobehub/ui
Version:
Lobe UI is an open-source UI component library for building AIGC web apps
1 lines • 1.52 kB
Source Map (JSON)
{"version":3,"file":"Folder.mjs","names":["Folder: FC<FolderProps>","Flexbox","Icon"],"sources":["../../../src/mdx/FileTree/Folder.tsx"],"sourcesContent":["'use client';\n\nimport { FolderIcon, FolderOpen } from 'lucide-react';\nimport { FC, useState } from 'react';\n\nimport { Flexbox, FlexboxProps } from '@/Flex';\nimport Icon, { type IconProps } from '@/Icon';\n\nimport { styles } from './style';\n\nexport interface FolderProps extends FlexboxProps {\n defaultOpen?: boolean;\n icon?: IconProps['icon'];\n name: string;\n}\n\nconst Folder: FC<FolderProps> = ({ name, defaultOpen, icon = FolderIcon, children, ...rest }) => {\n const [open, setOpen] = useState(defaultOpen);\n return (\n <Flexbox {...rest}>\n <Flexbox\n align={'center'}\n className={styles.folder}\n gap={4}\n horizontal\n onClick={() => setOpen(!open)}\n >\n <Icon icon={open ? FolderOpen : icon} />\n <span>{name}</span>\n </Flexbox>\n {open && <Flexbox className={styles.folderChildren}>{children}</Flexbox>}\n </Flexbox>\n );\n};\n\nFolder.displayName = 'MdxFolder';\n\nexport default Folder;\n"],"mappings":";;;;;;;;;;AAgBA,MAAMA,UAA2B,EAAE,MAAM,aAAa,OAAO,YAAY,UAAU,GAAG,WAAW;CAC/F,MAAM,CAAC,MAAM,WAAW,SAAS,YAAY;AAC7C,QACE,qBAACC;EAAQ,GAAI;aACX,qBAACA;GACC,OAAO;GACP,WAAW,OAAO;GAClB,KAAK;GACL;GACA,eAAe,QAAQ,CAAC,KAAK;cAE7B,oBAACC,gBAAK,MAAM,OAAO,aAAa,OAAQ,EACxC,oBAAC,oBAAM,OAAY;IACX,EACT,QAAQ,oBAACD;GAAQ,WAAW,OAAO;GAAiB;IAAmB;GAChE;;AAId,OAAO,cAAc;AAErB,qBAAe"}