@transkripid/flowbite-react
Version:
Official React components built for Flowbite and Tailwind CSS - Transkrip.id fork
1 lines • 7.86 kB
Source Map (JSON)
{"version":3,"file":"SidebarCollapse.mjs","sources":["../../../src/components/Sidebar/SidebarCollapse.tsx"],"sourcesContent":["'use client';\n\nimport type { ComponentProps, FC, PropsWithChildren, ReactElement } from 'react';\nimport { useEffect, useId, useState } from 'react';\nimport { HiChevronDown } from 'react-icons/hi';\nimport { twMerge } from 'tailwind-merge';\nimport { mergeDeep } from '../../helpers/merge-deep';\nimport type { DeepPartial } from '../../types';\nimport type { FlowbiteBoolean } from '../Flowbite';\nimport { Tooltip } from '../Tooltip';\nimport { useSidebarContext } from './SidebarContext';\nimport type { SidebarItemProps } from './SidebarItem';\nimport { SidebarItemContext } from './SidebarItemContext';\n\nexport interface FlowbiteSidebarCollapseTheme {\n button: string;\n icon: {\n base: string;\n open: FlowbiteBoolean;\n };\n label: {\n base: string;\n icon: {\n base: string;\n open: FlowbiteBoolean;\n };\n };\n list: string;\n}\n\nexport interface SidebarCollapseProps\n extends Pick<SidebarItemProps, 'active' | 'as' | 'href' | 'icon' | 'label' | 'labelColor'>,\n ComponentProps<'button'> {\n onClick?: ComponentProps<'button'>['onClick'];\n open?: boolean;\n chevronIcon?: FC<ComponentProps<'svg'>>;\n renderChevronIcon?: (theme: FlowbiteSidebarCollapseTheme, open: boolean) => ReactElement;\n theme?: DeepPartial<FlowbiteSidebarCollapseTheme>;\n}\n\nexport const SidebarCollapse: FC<SidebarCollapseProps> = ({\n children,\n className,\n icon: Icon,\n label,\n chevronIcon: ChevronIcon = HiChevronDown,\n renderChevronIcon,\n open = false,\n theme: customTheme = {},\n ...props\n}) => {\n const id = useId();\n const [isOpen, setOpen] = useState(open);\n const { theme: rootTheme, isCollapsed } = useSidebarContext();\n\n const theme = mergeDeep(rootTheme.collapse, customTheme);\n\n useEffect(() => setOpen(open), [open]);\n\n const Wrapper: FC<PropsWithChildren> = ({ children }) => (\n <li>\n {isCollapsed && !isOpen ? (\n <Tooltip content={label} placement=\"right\">\n {children}\n </Tooltip>\n ) : (\n children\n )}\n </li>\n );\n\n return (\n <Wrapper>\n <button\n id={`flowbite-sidebar-collapse-${id}`}\n onClick={() => setOpen(!isOpen)}\n title={label}\n type=\"button\"\n className={twMerge(theme.button, className)}\n {...props}\n >\n {Icon && (\n <Icon\n aria-hidden\n data-testid=\"flowbite-sidebar-collapse-icon\"\n className={twMerge(theme.icon.base, theme.icon.open[isOpen ? 'on' : 'off'])}\n />\n )}\n {isCollapsed ? (\n <span className=\"sr-only\">{label}</span>\n ) : (\n <>\n <span data-testid=\"flowbite-sidebar-collapse-label\" className={theme.label.base}>\n {label}\n </span>\n {renderChevronIcon ? (\n renderChevronIcon(theme, isOpen)\n ) : (\n <ChevronIcon\n aria-hidden\n className={twMerge(theme.label.icon.base, theme.label.icon.open[isOpen ? 'on' : 'off'])}\n />\n )}\n </>\n )}\n </button>\n <ul aria-labelledby={`flowbite-sidebar-collapse-${id}`} hidden={!isOpen} className={theme.list}>\n <SidebarItemContext.Provider value={{ isInsideCollapse: true }}>{children}</SidebarItemContext.Provider>\n </ul>\n </Wrapper>\n );\n};\n\nSidebarCollapse.displayName = 'Sidebar.Collapse';\n"],"names":["SidebarCollapse","t0","$","_c","Icon","children","className","label","props","renderChevronIcon","t1","t2","t3","icon","chevronIcon","open","theme","ChevronIcon","undefined","HiChevronDown","t4","customTheme","id","useId","isOpen","setOpen","useState","rootTheme","isCollapsed","useSidebarContext","mergeDeep","collapse","t5","t6","useEffect","t7","t8","children_0","jsx","Tooltip","Wrapper","t9","t10","t11","twMerge","button","t12","base","t13","jsxs","Fragment","t14","t15","t16","t17","Symbol","for","isInsideCollapse","t18","SidebarItemContext","t19","list","t20","displayName"],"mappings":"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"}