| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- <script lang="ts" module>
- import { type VariantProps, tv } from "tailwind-variants";
- export const alertVariants = tv({
- base: "grid gap-0.5 rounded-lg border px-4 py-3 text-left text-sm has-data-[slot=alert-action]:relative has-data-[slot=alert-action]:pr-18 has-[>svg]:grid-cols-[auto_1fr] has-[>svg]:gap-x-2.5 *:[svg]:row-span-2 *:[svg]:translate-y-0.5 *:[svg]:text-current *:[svg:not([class*='size-'])]:size-4 group/alert relative w-full",
- variants: {
- variant: {
- default: "bg-card text-card-foreground",
- destructive: "text-destructive bg-card *:data-[slot=alert-description]:text-destructive/90 *:[svg]:text-current",
- },
- },
- defaultVariants: {
- variant: "default",
- },
- });
- export type AlertVariant = VariantProps<typeof alertVariants>["variant"];
- </script>
- <script lang="ts">
- import type { HTMLAttributes } from "svelte/elements";
- import { cn, type WithElementRef } from "../../lib/utils.js";
- let {
- ref = $bindable(null),
- class: className,
- variant = "default",
- children,
- ...restProps
- }: WithElementRef<HTMLAttributes<HTMLDivElement>> & {
- variant?: AlertVariant;
- } = $props();
- </script>
- <div
- bind:this={ref}
- data-slot="alert"
- role="alert"
- class={cn(alertVariants({ variant }), className)}
- {...restProps}
- >
- {@render children?.()}
- </div>
|