b5305dbfb0
feat(ui): 添加多个UI组件并删除logo副本文件 添加了以下UI组件: - alert-dialog.tsx - 警告对话框组件 - alert.tsx - 提示组件 - avatar.tsx - 头像组件 - badge.tsx - 徽章组件 - button.tsx - 按钮组件 - calendar.tsx - 日历组件 - card.tsx - 卡片组件 - checkbox.tsx - 复选框组件 - collapsible.tsx - 折叠组件 - command.tsx - 命令组件 - dialog.tsx - 对话框组件 同时删除了src/assets/logo copy.tsx文件 ```
66 lines
1.6 KiB
TypeScript
66 lines
1.6 KiB
TypeScript
import * as React from 'react'
|
|
import { cva, type VariantProps } from 'class-variance-authority'
|
|
import { cn } from '@/lib/utils'
|
|
|
|
const alertVariants = cva(
|
|
'relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current',
|
|
{
|
|
variants: {
|
|
variant: {
|
|
default: 'bg-card text-card-foreground',
|
|
destructive:
|
|
'text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90',
|
|
},
|
|
},
|
|
defaultVariants: {
|
|
variant: 'default',
|
|
},
|
|
}
|
|
)
|
|
|
|
function Alert({
|
|
className,
|
|
variant,
|
|
...props
|
|
}: React.ComponentProps<'div'> & VariantProps<typeof alertVariants>) {
|
|
return (
|
|
<div
|
|
data-slot='alert'
|
|
role='alert'
|
|
className={cn(alertVariants({ variant }), className)}
|
|
{...props}
|
|
/>
|
|
)
|
|
}
|
|
|
|
function AlertTitle({ className, ...props }: React.ComponentProps<'div'>) {
|
|
return (
|
|
<div
|
|
data-slot='alert-title'
|
|
className={cn(
|
|
'col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight',
|
|
className
|
|
)}
|
|
{...props}
|
|
/>
|
|
)
|
|
}
|
|
|
|
function AlertDescription({
|
|
className,
|
|
...props
|
|
}: React.ComponentProps<'div'>) {
|
|
return (
|
|
<div
|
|
data-slot='alert-description'
|
|
className={cn(
|
|
'col-start-2 grid justify-items-start gap-1 text-sm text-muted-foreground [&_p]:leading-relaxed',
|
|
className
|
|
)}
|
|
{...props}
|
|
/>
|
|
)
|
|
}
|
|
|
|
export { Alert, AlertTitle, AlertDescription }
|