feat(admin-ui): shadcn primitives + @/ui barrel (Stage 2.1)
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
import * as React from 'react'
|
||||
import { cn } from '@/lib/utils'
|
||||
|
||||
/**
|
||||
* Card / Panel — surface block с radius-card, border-line. Замена для
|
||||
* {@code @nstart/ui} Panel. Используем сложно через {@link CardHeader},
|
||||
* {@link CardContent}, {@link CardFooter}.
|
||||
*/
|
||||
export const Card = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(
|
||||
function Card({ className, ...props }, ref) {
|
||||
return (
|
||||
<div
|
||||
ref={ref}
|
||||
className={cn(
|
||||
'rounded-lg border border-line bg-surface text-ink shadow-sm',
|
||||
className,
|
||||
)}
|
||||
{...props}
|
||||
/>
|
||||
)
|
||||
},
|
||||
)
|
||||
|
||||
export const CardHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(
|
||||
function CardHeader({ className, ...props }, ref) {
|
||||
return <div ref={ref} className={cn('flex flex-col gap-1.5 p-4', className)} {...props} />
|
||||
},
|
||||
)
|
||||
|
||||
export const CardTitle = React.forwardRef<HTMLHeadingElement, React.HTMLAttributes<HTMLHeadingElement>>(
|
||||
function CardTitle({ className, ...props }, ref) {
|
||||
return (
|
||||
<h3
|
||||
ref={ref}
|
||||
className={cn('text-base font-semibold leading-tight text-ink', className)}
|
||||
{...props}
|
||||
/>
|
||||
)
|
||||
},
|
||||
)
|
||||
|
||||
export const CardDescription = React.forwardRef<
|
||||
HTMLParagraphElement,
|
||||
React.HTMLAttributes<HTMLParagraphElement>
|
||||
>(function CardDescription({ className, ...props }, ref) {
|
||||
return <p ref={ref} className={cn('text-sm text-ink-2', className)} {...props} />
|
||||
})
|
||||
|
||||
export const CardContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(
|
||||
function CardContent({ className, ...props }, ref) {
|
||||
return <div ref={ref} className={cn('p-4 pt-0', className)} {...props} />
|
||||
},
|
||||
)
|
||||
|
||||
export const CardFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(
|
||||
function CardFooter({ className, ...props }, ref) {
|
||||
return <div ref={ref} className={cn('flex items-center p-4 pt-0', className)} {...props} />
|
||||
},
|
||||
)
|
||||
Reference in New Issue
Block a user