@transkripid/flowbite-react
Version:
Official React components built for Flowbite and Tailwind CSS - Transkrip.id fork
1 lines • 6.31 kB
Source Map (JSON)
{"version":3,"file":"DropdownItem.mjs","sources":["../../../src/components/Dropdown/DropdownItem.tsx"],"sourcesContent":["'use client';\n\nimport { useListItem, useMergeRefs } from '@floating-ui/react';\nimport { forwardRef, type ComponentProps, type ElementType, type FC, type RefCallback } from 'react';\nimport { twMerge } from 'tailwind-merge';\nimport { mergeDeep } from '../../helpers/merge-deep';\nimport type { DeepPartial } from '../../types';\nimport { ButtonBase, type ButtonBaseProps } from '../Button/ButtonBase';\nimport { useDropdownContext } from './DropdownContext';\nimport type { PolymorphicComponentPropWithRef, PolymorphicRef } from '~/src/helpers/generic-as-prop';\n\nexport interface FlowbiteDropdownItemTheme {\n container: string;\n base: string;\n icon: string;\n}\n\nexport type DropdownItemProps<T extends ElementType = 'button'> = PolymorphicComponentPropWithRef<\n T,\n {\n href?: string;\n icon?: FC<ComponentProps<'svg'>>;\n onClick?: () => void;\n theme?: DeepPartial<FlowbiteDropdownItemTheme>;\n }\n>;\n\ntype DropdownItemComponentType = (<C extends React.ElementType = 'button'>(\n props: DropdownItemProps<C>,\n) => React.ReactNode | null) & { displayName?: string };\n\nexport const DropdownItem: DropdownItemComponentType = forwardRef(\n <T extends ElementType = 'button'>(\n { children, className, icon: Icon, onClick, theme: customTheme = {}, ...props }: DropdownItemProps<T>,\n forwardedRef: PolymorphicRef<T>,\n ) => {\n const { ref: listItemRef, index } = useListItem({ label: typeof children === 'string' ? children : undefined });\n const ref = useMergeRefs([forwardedRef, listItemRef]);\n const { theme: rootTheme, activeIndex, dismissOnClick, getItemProps, handleSelect } = useDropdownContext();\n const isActive = activeIndex === index;\n const theme = mergeDeep(rootTheme.floating.item, customTheme);\n\n const theirProps = props as ButtonBaseProps<T>;\n\n return (\n <li role=\"menuitem\" className={theme.container}>\n <ButtonBase\n ref={ref as RefCallback<T>}\n className={twMerge(theme.base, className)}\n {...theirProps}\n {...getItemProps({\n onClick: () => {\n onClick && onClick();\n dismissOnClick && handleSelect(null);\n },\n })}\n tabIndex={isActive ? 0 : -1}\n >\n {Icon && <Icon className={theme.icon} />}\n {children}\n </ButtonBase>\n </li>\n );\n },\n);\nDropdownItem.displayName = 'DropdownItem';\n"],"names":["DropdownItem","forwardRef","t0","forwardedRef","$","_c","Icon","children","className","onClick","props","t1","icon","theme","t2","undefined","customTheme","t3","t4","label","ref","listItemRef","index","useListItem","t5","useMergeRefs","rootTheme","activeIndex","dismissOnClick","getItemProps","handleSelect","useDropdownContext","isActive","T0","t6","t7","t8","t9","theirProps","floating","item","mergeDeep","container","ButtonBase","twMerge","base","t10","t11","t12","t13","jsx","t14","jsxs","t15","displayName"],"mappings":"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"}