mirror of
https://github.com/infiniflow/ragflow.git
synced 2026-07-18 13:47:21 +08:00
### What problem does this PR solve? Update UI styles: - **User settings** - Component styles: - `ui/button.tsx` - `ui/checkbox.tsx` - `avatar-upload.tsx` - `file-uploader.tsx` - `icon-font.tsx` ### Type of change - [x] Refactoring
38 lines
1.3 KiB
TypeScript
38 lines
1.3 KiB
TypeScript
'use client';
|
|
|
|
import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
|
|
import { LucideCheck, LucideMinus } from 'lucide-react';
|
|
import * as React from 'react';
|
|
|
|
import { cn } from '@/lib/utils';
|
|
|
|
const Checkbox = React.forwardRef<
|
|
React.ElementRef<typeof CheckboxPrimitive.Root>,
|
|
React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>
|
|
>(({ className, ...props }, ref) => (
|
|
<CheckboxPrimitive.Root
|
|
ref={ref}
|
|
className={cn(
|
|
'peer size-3.5 shrink-0 rounded-2xs border border-text-disabled outline-0 transition-colors bg-transparent',
|
|
'hover:border-border-default hover:bg-border-button',
|
|
'focus-visible:border-border-default focus-visible:bg-border-default',
|
|
'disabled:cursor-not-allowed disabled:opacity-50',
|
|
'data-[state=checked]:text-text-primary data-[state=checked]:border-text-primary',
|
|
className,
|
|
)}
|
|
{...props}
|
|
>
|
|
<CheckboxPrimitive.Indicator className="flex items-center justify-center text-current">
|
|
{props.checked === 'indeterminate' && (
|
|
<LucideMinus className="size-2.5 stroke-[3]" />
|
|
)}
|
|
{props.checked === true && (
|
|
<LucideCheck className="size-2.5 stroke-[3]" />
|
|
)}
|
|
</CheckboxPrimitive.Indicator>
|
|
</CheckboxPrimitive.Root>
|
|
));
|
|
Checkbox.displayName = CheckboxPrimitive.Root.displayName;
|
|
|
|
export { Checkbox };
|