From d41eff9eccf66644c4c60f53cb516bf079937a28 Mon Sep 17 00:00:00 2001 From: aman333nolawz Date: Mon, 2 Mar 2026 21:49:13 +0530 Subject: Using astro-erudite for static site generation --- src/components/ui/avatar.tsx | 74 +++++++++++++++ src/components/ui/badge.tsx | 46 +++++++++ src/components/ui/breadcrumb.tsx | 108 +++++++++++++++++++++ src/components/ui/button.tsx | 56 +++++++++++ src/components/ui/pagination.tsx | 195 ++++++++++++++++++++++++++++++++++++++ src/components/ui/scroll-area.tsx | 56 +++++++++++ src/components/ui/separator.tsx | 26 +++++ 7 files changed, 561 insertions(+) create mode 100644 src/components/ui/avatar.tsx create mode 100644 src/components/ui/badge.tsx create mode 100644 src/components/ui/breadcrumb.tsx create mode 100644 src/components/ui/button.tsx create mode 100644 src/components/ui/pagination.tsx create mode 100644 src/components/ui/scroll-area.tsx create mode 100644 src/components/ui/separator.tsx (limited to 'src/components/ui') diff --git a/src/components/ui/avatar.tsx b/src/components/ui/avatar.tsx new file mode 100644 index 0000000..dc92ac0 --- /dev/null +++ b/src/components/ui/avatar.tsx @@ -0,0 +1,74 @@ +import * as React from 'react' +import { Avatar as AvatarPrimitive } from 'radix-ui' + +import { cn } from '@/lib/utils' + +function Avatar({ + className, + ...props +}: React.ComponentProps) { + return ( + + ) +} + +function AvatarImage({ + className, + ...props +}: React.ComponentProps) { + return ( + + ) +} + +function AvatarFallback({ + className, + ...props +}: React.ComponentProps) { + return ( + + ) +} + +const AvatarComponent: React.FC = ({ + src, + alt, + fallback, + className, +}) => { + return ( + + + {fallback} + + ) +} + +export default AvatarComponent + +interface AvatarComponentProps { + src?: string + alt?: string + fallback: string + className?: string +} + +export { Avatar, AvatarImage, AvatarFallback } diff --git a/src/components/ui/badge.tsx b/src/components/ui/badge.tsx new file mode 100644 index 0000000..84f36c6 --- /dev/null +++ b/src/components/ui/badge.tsx @@ -0,0 +1,46 @@ +import * as React from 'react' +import { Slot as SlotPrimitive } from 'radix-ui' +import { cva, type VariantProps } from 'class-variance-authority' + +import { cn } from '@/lib/utils' + +const badgeVariants = cva( + 'inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden', + { + variants: { + variant: { + default: + 'border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90', + muted: + 'border-transparent bg-muted text-foreground [a&]:hover:bg-muted/90', + destructive: + 'border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/70', + outline: + 'text-foreground [a&]:hover:bg-muted [a&]:hover:text-foreground', + }, + }, + defaultVariants: { + variant: 'default', + }, + }, +) + +function Badge({ + className, + variant, + asChild = false, + ...props +}: React.ComponentProps<'span'> & + VariantProps & { asChild?: boolean }) { + const Comp = asChild ? SlotPrimitive.Root : 'span' + + return ( + + ) +} + +export { Badge, badgeVariants } diff --git a/src/components/ui/breadcrumb.tsx b/src/components/ui/breadcrumb.tsx new file mode 100644 index 0000000..a639b0c --- /dev/null +++ b/src/components/ui/breadcrumb.tsx @@ -0,0 +1,108 @@ +import * as React from 'react' +import { Slot as SlotPrimitive } from 'radix-ui' +import { cn } from '@/lib/utils' +import { ChevronRight, MoreHorizontal } from 'lucide-react' + +function Breadcrumb({ ...props }: React.ComponentProps<'nav'>) { + return