@transkripid/flowbite-react
Version:
Official React components built for Flowbite and Tailwind CSS - Transkrip.id fork
1 lines • 10.1 kB
Source Map (JSON)
{"version":3,"file":"SidebarItem.mjs","sources":["../../../src/components/Sidebar/SidebarItem.tsx"],"sourcesContent":["'use client';\n\nimport type { ComponentProps, ElementType, FC, PropsWithChildren, ReactNode } from 'react';\nimport { forwardRef, useId } from 'react';\nimport { twMerge } from 'tailwind-merge';\nimport { mergeDeep } from '../../helpers/merge-deep';\nimport type { DeepPartial } from '../../types';\nimport { Badge } from '../Badge';\nimport type { FlowbiteColors } from '../Flowbite';\nimport { Tooltip } from '../Tooltip';\nimport { useSidebarContext } from './SidebarContext';\nimport { useSidebarItemContext } from './SidebarItemContext';\n\nexport interface FlowbiteSidebarItemTheme {\n active: string;\n base: string;\n collapsed: {\n insideCollapse: string;\n noIcon: string;\n };\n content: {\n base: string;\n };\n icon: {\n base: string;\n active: string;\n };\n label: string;\n listItem: string;\n}\n\nexport interface SidebarItemProps extends Omit<ComponentProps<'div'>, 'ref'>, Record<string, unknown> {\n active?: boolean;\n as?: ElementType;\n href?: string;\n icon?: FC<ComponentProps<'svg'>>;\n label?: string;\n labelColor?: keyof SidebarItemLabelColors;\n theme?: DeepPartial<FlowbiteSidebarItemTheme>;\n}\n\nexport interface SidebarItemLabelColors extends Pick<FlowbiteColors, 'gray'> {\n [key: string]: string;\n}\n\nconst ListItem: FC<\n PropsWithChildren<{\n id: string;\n theme: FlowbiteSidebarItemTheme;\n isCollapsed: boolean;\n tooltipChildren: ReactNode | undefined;\n className?: string;\n }>\n> = ({ id, theme, isCollapsed, tooltipChildren, children: wrapperChildren, ...props }) => (\n <li {...props}>\n {isCollapsed ? (\n <Tooltip\n content={\n <Children id={id} theme={theme}>\n {tooltipChildren}\n </Children>\n }\n placement=\"right\"\n >\n {wrapperChildren}\n </Tooltip>\n ) : (\n wrapperChildren\n )}\n </li>\n);\n\nconst Children: FC<PropsWithChildren<{ id: string; theme: FlowbiteSidebarItemTheme }>> = ({ id, theme, children }) => {\n return (\n <span\n data-testid=\"flowbite-sidebar-item-content\"\n id={`flowbite-sidebar-item-${id}`}\n className={twMerge(theme.content.base)}\n >\n {children}\n </span>\n );\n};\n\nexport const SidebarItem = forwardRef<Element, SidebarItemProps>(\n (\n {\n active: isActive,\n as: Component = 'a',\n children,\n className,\n icon: Icon,\n label,\n labelColor = 'info',\n theme: customTheme = {},\n ...props\n },\n ref,\n ) => {\n const id = useId();\n const { theme: rootTheme, isCollapsed } = useSidebarContext();\n const { isInsideCollapse } = useSidebarItemContext();\n\n const theme = mergeDeep(rootTheme.item, customTheme);\n\n return (\n <ListItem theme={theme} className={theme.listItem} id={id} isCollapsed={isCollapsed} tooltipChildren={children}>\n <Component\n aria-labelledby={`flowbite-sidebar-item-${id}`}\n ref={ref}\n className={twMerge(\n theme.base,\n isActive && theme.active,\n !isCollapsed && isInsideCollapse && theme.collapsed?.insideCollapse,\n className,\n )}\n {...props}\n >\n {Icon && (\n <Icon\n aria-hidden\n data-testid=\"flowbite-sidebar-item-icon\"\n className={twMerge(theme.icon?.base, isActive && theme.icon?.active)}\n />\n )}\n {isCollapsed && !Icon && (\n <span className={theme.collapsed?.noIcon}>{(children as string).charAt(0).toLocaleUpperCase() ?? '?'}</span>\n )}\n {!isCollapsed && (\n <Children id={id} theme={theme}>\n {children}\n </Children>\n )}\n {!isCollapsed && label && (\n <Badge color={labelColor} data-testid=\"flowbite-sidebar-label\" hidden={isCollapsed} className={theme.label}>\n {label}\n </Badge>\n )}\n </Component>\n </ListItem>\n );\n },\n);\n\nSidebarItem.displayName = 'Sidebar.Item';\n"],"names":["ListItem","id","theme","isCollapsed","tooltipChildren","children","wrapperChildren","props","jsx","Tooltip","Children","t0","$","_c","t1","t2","content","base","twMerge","t3","SidebarItem","forwardRef","ref","Icon","className","isActive","label","active","as","icon","labelColor","Component","undefined","t4","customTheme","useId","rootTheme","useSidebarContext","isInsideCollapse","useSidebarItemContext","T0","T1","t10","t11","t12","t13","t14","t5","t6","t7","t8","t9","item","mergeDeep","listItem","collapsed","insideCollapse","t15","noIcon","charAt","toLocaleUpperCase","t16","t17","Badge","t18","jsxs","t19","displayName"],"mappings":"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"}