| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 | 
							- import { RiCheckLine } from '@remixicon/react'
 - import cn from '@/utils/classnames'
 - import IndeterminateIcon from './assets/indeterminate-icon'
 - 
 - type CheckboxProps = {
 -   id?: string
 -   checked?: boolean
 -   onCheck?: () => void
 -   className?: string
 -   disabled?: boolean
 -   indeterminate?: boolean
 - }
 - 
 - const Checkbox = ({
 -     id,
 -     checked,
 -     onCheck,
 -     className,
 -     disabled,
 -     indeterminate,
 - }: CheckboxProps) => {
 -   const checkClassName = (checked || indeterminate)
 -     ? 'bg-components-checkbox-bg text-components-checkbox-icon hover:bg-components-checkbox-bg-hover'
 -     : 'border border-components-checkbox-border bg-components-checkbox-bg-unchecked hover:bg-components-checkbox-bg-unchecked-hover hover:border-components-checkbox-border-hover'
 -   const disabledClassName = (checked || indeterminate)
 -     ? 'cursor-not-allowed bg-components-checkbox-bg-disabled-checked text-components-checkbox-icon-disabled hover:bg-components-checkbox-bg-disabled-checked'
 -     : 'cursor-not-allowed border-components-checkbox-border-disabled bg-components-checkbox-bg-disabled hover:border-components-checkbox-border-disabled hover:bg-components-checkbox-bg-disabled'
 - 
 -   return (
 -     <div
 -       id={id}
 -       className={cn(
 -         'flex h-4 w-4 cursor-pointer items-center justify-center rounded-[4px] shadow-xs shadow-shadow-shadow-3',
 -         checkClassName,
 -         disabled && disabledClassName,
 -         className,
 -       )}
 -       onClick={() => {
 -         if (disabled)
 -           return
 -         onCheck?.()
 -       }}
 -       data-testid={`checkbox-${id}`}
 -     >
 -       {!checked && indeterminate && <IndeterminateIcon />}
 -       {checked && <RiCheckLine className='h-3 w-3' data-testid={`check-icon-${id}`} />}
 -     </div>
 -   )
 - }
 - 
 - export default Checkbox
 
 
  |