Skip to content

Commit 89121a0

Browse files
authored
feat(registry): improve registry install form (#396)
* feat: add alert component * refactor: change the data flow for handle the form * refactor: move secrets and feedback in the form, adjust tests * refactor: remove unused exported types * fix: type check * feat(error): improve error * test: update assert with the new text * refactor: move component to external and fine tuning the error
1 parent 0c72232 commit 89121a0

File tree

10 files changed

+1426
-1117
lines changed

10 files changed

+1426
-1117
lines changed
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
import * as React from 'react'
2+
import { cva, type VariantProps } from 'class-variance-authority'
3+
4+
import { cn } from '@/common/lib/utils'
5+
6+
const alertVariants = cva(
7+
'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',
8+
{
9+
variants: {
10+
variant: {
11+
default: 'bg-card text-card-foreground',
12+
destructive:
13+
'text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90',
14+
},
15+
},
16+
defaultVariants: {
17+
variant: 'default',
18+
},
19+
}
20+
)
21+
22+
function Alert({
23+
className,
24+
variant,
25+
...props
26+
}: React.ComponentProps<'div'> & VariantProps<typeof alertVariants>) {
27+
return (
28+
<div
29+
data-slot="alert"
30+
role="alert"
31+
className={cn(alertVariants({ variant }), className)}
32+
{...props}
33+
/>
34+
)
35+
}
36+
37+
function AlertTitle({ className, ...props }: React.ComponentProps<'div'>) {
38+
return (
39+
<div
40+
data-slot="alert-title"
41+
className={cn(
42+
'col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight',
43+
className
44+
)}
45+
{...props}
46+
/>
47+
)
48+
}
49+
50+
function AlertDescription({
51+
className,
52+
...props
53+
}: React.ComponentProps<'div'>) {
54+
return (
55+
<div
56+
data-slot="alert-description"
57+
className={cn(
58+
`text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm
59+
[&_p]:leading-relaxed`,
60+
className
61+
)}
62+
{...props}
63+
/>
64+
)
65+
}
66+
67+
export { Alert, AlertTitle, AlertDescription }

0 commit comments

Comments
 (0)