import type { ButtonHTMLAttributes, HTMLAttributes, ReactNode } from 'react' import { cn } from '@langgenius/dify-ui/cn' type SharedProps = { children: ReactNode className?: string disabled?: boolean hoverable?: boolean } type ButtonRowProps = SharedProps & Omit, 'className' | 'disabled'> & { as?: 'button' nativeDisabled?: boolean } type DivRowProps = SharedProps & Omit, 'className'> & { as: 'div' } type BlockSelectorRowProps = ButtonRowProps | DivRowProps const rowClassName = (className?: string, disabled = false, hoverable = true) => cn( 'flex h-8 w-full items-center rounded-lg pr-2 pl-3', !disabled && hoverable && 'hover:bg-state-base-hover', disabled && 'cursor-not-allowed', className, ) const buttonClassName = (className?: string, disabled = false, hoverable = true) => cn( rowClassName(className, disabled, hoverable), !disabled && 'cursor-pointer', 'border-0 bg-transparent text-left focus-visible:inset-ring-2 focus-visible:inset-ring-state-accent-solid focus-visible:outline-hidden', ) export function BlockSelectorRow(props: BlockSelectorRowProps) { if (props.as === 'div') { const { as: _as, children, className, disabled = false, hoverable, ...rest } = props return (
{children}
) } const { as: _as, children, className, disabled = false, hoverable, nativeDisabled, type = 'button', ...rest } = props return ( ) }