{"$schema":"https://ui.shadcn.com/schema/registry-item.json","name":"pagination","type":"registry:component","title":"Warcraft Pagination","description":"A Warcraft-themed pagination component with fantasy button styling and runes.","dependencies":["lucide-react"],"registryDependencies":["button"],"files":[{"path":"components/ui/warcraftcn/pagination.tsx","type":"registry:component","target":"components/ui/warcraftcn/pagination.tsx","content":"import * as React from \"react\";\nimport { ChevronLeft, ChevronRight } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\nimport { buttonVariants } from \"@/components/ui/warcraftcn/button\";\n\nimport \"@/components/ui/warcraftcn/styles/warcraft.css\";\n\nconst Pagination = ({ className, ...props }: React.ComponentProps<\"nav\">) => (\n  <nav\n    aria-label=\"pagination\"\n    className={cn(\"mx-auto flex w-full justify-center\", className)}\n    {...props}\n  />\n);\nPagination.displayName = \"Pagination\";\n\nconst PaginationContent = React.forwardRef<\n  HTMLUListElement,\n  React.ComponentProps<\"ul\">\n>(({ className, ...props }, ref) => (\n  <ul\n    ref={ref}\n    className={cn(\"flex flex-row items-center gap-1 list-none\", className)}\n    {...props}\n  />\n));\nPaginationContent.displayName = \"PaginationContent\";\n\nconst PaginationItem = React.forwardRef<\n  HTMLLIElement,\n  React.ComponentProps<\"li\">\n>(({ className, ...props }, ref) => (\n  <li ref={ref} className={cn(\"\", className)} {...props} />\n));\nPaginationItem.displayName = \"PaginationItem\";\n\ntype PaginationLinkProps = {\n  isActive?: boolean;\n  disabled?: boolean;\n} & React.ComponentProps<\"a\">;\n\nconst PaginationLink = ({\n  className,\n  isActive,\n  disabled,\n  ...props\n}: PaginationLinkProps) => (\n  <a\n    aria-current={isActive ? \"page\" : undefined}\n    aria-disabled={disabled ? \"true\" : undefined}\n    tabIndex={disabled ? -1 : undefined}\n    className={cn(\n      buttonVariants({\n        variant: \"frame\",\n      }),\n      \"border-solid [border-image-repeat:stretch] border-5 [border-image-slice:16_fill] wc-btn-border-frame transition-all duration-200\",\n      \"w-10 h-10 px-0 sm:w-12 sm:h-12 flex items-center justify-center font-bold no-underline\",\n      isActive\n        ? \"text-amber-200 [text-shadow:0_0_8px_rgba(251,191,36,0.6)] shadow-[inset_0_0_10px_rgba(0,0,0,0.8)] brightness-110\"\n        : \"text-amber-100/70 hover:text-amber-100 hover:brightness-110\",\n      disabled && \"opacity-50 pointer-events-none cursor-not-allowed\",\n      className\n    )}\n    {...props}\n  />\n);\nPaginationLink.displayName = \"PaginationLink\";\n\nconst PaginationPrevious = ({\n  className,\n  ...props\n}: React.ComponentProps<typeof PaginationLink>) => (\n  <PaginationLink\n    aria-label=\"Go to previous page\"\n    className={cn(\"gap-1 sm:w-auto sm:px-4 sm:pr-5\", className)}\n    {...props}\n  >\n    <ChevronLeft className=\"h-4 w-4 text-amber-500 filter-[drop-shadow(0_0_2px_rgba(245,158,11,0.5))]\" />\n    <span className=\"hidden sm:block\">Previous</span>\n  </PaginationLink>\n);\nPaginationPrevious.displayName = \"PaginationPrevious\";\n\nconst PaginationNext = ({\n  className,\n  ...props\n}: React.ComponentProps<typeof PaginationLink>) => (\n  <PaginationLink\n    aria-label=\"Go to next page\"\n    className={cn(\"gap-1 sm:w-auto sm:px-4 sm:pl-5\", className)}\n    {...props}\n  >\n    <span className=\"hidden sm:block\">Next</span>\n    <ChevronRight className=\"h-4 w-4 text-amber-500 filter-[drop-shadow(0_0_2px_rgba(245,158,11,0.5))]\" />\n  </PaginationLink>\n);\nPaginationNext.displayName = \"PaginationNext\";\n\nconst PaginationEllipsis = ({\n  className,\n  ...props\n}: React.ComponentProps<\"span\">) => (\n  <span\n    className={cn(\n      \"flex h-9 w-10 sm:w-12 items-center justify-center select-none\",\n      className\n    )}\n    {...props}\n  >\n    <span \n      aria-hidden=\"true\"\n      className=\"text-amber-500/60 font-bold tracking-[2px] text-xs [text-shadow:0_0_4px_rgba(245,158,11,0.3)]\"\n    >\n      ♦ ♦ ♦\n    </span>\n    <span className=\"sr-only\">More pages</span>\n  </span>\n);\nPaginationEllipsis.displayName = \"PaginationEllipsis\";\n\nexport {\n  Pagination,\n  PaginationContent,\n  PaginationEllipsis,\n  PaginationItem,\n  PaginationLink,\n  PaginationNext,\n  PaginationPrevious,\n};\n"}]}