45 lines
1.5 KiB
TypeScript
45 lines
1.5 KiB
TypeScript
import { cva } from "../lib/cva";
|
|
import { getMotionRecipeClassNames } from "../lib/motion";
|
|
|
|
export const alertVariants = cva(
|
|
[
|
|
"relative grid gap-x-3 gap-y-1 rounded-[var(--radius-lg)] border p-4 shadow-[var(--shadow-xs)]",
|
|
"text-[var(--color-foreground)]",
|
|
getMotionRecipeClassNames("transition", "ring")
|
|
],
|
|
{
|
|
variants: {
|
|
variant: {
|
|
default:
|
|
"border-[var(--color-border)] bg-[var(--color-card)]",
|
|
success:
|
|
"border-[color-mix(in_oklch,var(--color-success)_34%,var(--color-border))] bg-[color-mix(in_oklch,var(--color-success)_10%,var(--color-card))]",
|
|
warning:
|
|
"border-[color-mix(in_oklch,var(--color-warning)_34%,var(--color-border))] bg-[color-mix(in_oklch,var(--color-warning)_12%,var(--color-card))]",
|
|
destructive:
|
|
"border-[color-mix(in_oklch,var(--color-destructive)_38%,var(--color-border))] bg-[color-mix(in_oklch,var(--color-destructive)_10%,var(--color-card))]"
|
|
},
|
|
hasIcon: {
|
|
false: "",
|
|
true: "grid-cols-[auto_1fr]"
|
|
}
|
|
},
|
|
defaultVariants: {
|
|
variant: "default",
|
|
hasIcon: false
|
|
}
|
|
}
|
|
);
|
|
|
|
export const alertIconVariants = cva(
|
|
"row-span-2 mt-0.5 inline-flex size-5 items-center justify-center rounded-[var(--radius-full)] text-[var(--color-muted-foreground)]"
|
|
);
|
|
|
|
export const alertTitleVariants = cva(
|
|
"text-sm font-semibold tracking-[var(--tracking-tight)] text-[var(--color-foreground)]"
|
|
);
|
|
|
|
export const alertDescriptionVariants = cva(
|
|
"text-sm leading-6 text-[var(--color-muted-foreground)]"
|
|
);
|