From 9fb2955d307a999650e912251928ca768a580dde Mon Sep 17 00:00:00 2001 From: david Date: Sun, 12 Oct 2025 13:03:24 +0200 Subject: [PATCH] Nuevo componente "Empty" --- packages/shadcn-ui/src/components/empty.tsx | 101 ++++++++++++++++++++ packages/shadcn-ui/src/components/index.tsx | 2 + 2 files changed, 103 insertions(+) create mode 100644 packages/shadcn-ui/src/components/empty.tsx diff --git a/packages/shadcn-ui/src/components/empty.tsx b/packages/shadcn-ui/src/components/empty.tsx new file mode 100644 index 00000000..1b31b6ce --- /dev/null +++ b/packages/shadcn-ui/src/components/empty.tsx @@ -0,0 +1,101 @@ +import { type VariantProps, cva } from "class-variance-authority" +import { cn } from '../lib/utils.ts' + + + +function Empty({ className, ...props }: React.ComponentProps<"div">) { + return ( +
+ ) +} + +function EmptyHeader({ className, ...props }: React.ComponentProps<"div">) { + return ( +
+ ) +} + +const emptyMediaVariants = cva( + "flex shrink-0 items-center justify-center mb-2 [&_svg]:pointer-events-none [&_svg]:shrink-0", + { + variants: { + variant: { + default: "bg-transparent", + icon: "bg-muted text-foreground flex size-10 shrink-0 items-center justify-center rounded-lg [&_svg:not([class*='size-'])]:size-6", + }, + }, + defaultVariants: { + variant: "default", + }, + } +) + +function EmptyMedia({ + className, + variant = "default", + ...props +}: React.ComponentProps<"div"> & VariantProps) { + return ( +
+ ) +} + +function EmptyTitle({ className, ...props }: React.ComponentProps<"div">) { + return ( +
+ ) +} + +function EmptyDescription({ className, ...props }: React.ComponentProps<"p">) { + return ( +
a:hover]:text-primary text-sm/relaxed [&>a]:underline [&>a]:underline-offset-4", + className + )} + {...props} + /> + ) +} + +function EmptyContent({ className, ...props }: React.ComponentProps<"div">) { + return ( +
+ ) +} + +export { + Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle +} + diff --git a/packages/shadcn-ui/src/components/index.tsx b/packages/shadcn-ui/src/components/index.tsx index e9c50296..49eb7f39 100644 --- a/packages/shadcn-ui/src/components/index.tsx +++ b/packages/shadcn-ui/src/components/index.tsx @@ -16,6 +16,7 @@ export * from "./context-menu.tsx"; export * from "./dialog.tsx"; export * from "./drawer.tsx"; export * from "./dropdown-menu.tsx"; +export * from "./empty.tsx"; export * from "./form.tsx"; export * from "./hover-card.tsx"; export * from "./input.tsx"; @@ -42,3 +43,4 @@ export * from "./textarea.tsx"; export * from "./toggle-group.tsx"; export * from "./toggle.tsx"; export * from "./tooltip.tsx"; +