{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "mc-pagination",
  "title": "MicroClub Pagination",
  "description": "A pagination component for MicroClub UI",
  "dependencies": [
    "@base-ui/react",
    "lucide-react"
  ],
  "files": [
    {
      "path": "registry/ui/mc-pagination.tsx",
      "content": "import * as React from 'react';\nimport { ChevronLeftIcon, ChevronRightIcon, MoreHorizontalIcon } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\nimport { Button as ButtonPrimitive } from '@base-ui/react/button';\n\nfunction McPagination({ className, ...props }: React.ComponentProps<'nav'>) {\n  return (\n    <nav\n      role=\"navigation\"\n      aria-label=\"pagination\"\n      data-slot=\"pagination\"\n      className={cn('mx-auto flex w-full justify-center', className)}\n      {...props}\n    />\n  );\n}\n\nfunction McPaginationContent({ className, ...props }: React.ComponentProps<'ul'>) {\n  return (\n    <ul\n      data-slot=\"pagination-content\"\n      className={cn('flex items-center gap-4 p-4', className)}\n      {...props}\n    />\n  );\n}\n\nfunction McPaginationItem({ ...props }: React.ComponentProps<'li'>) {\n  return <li className=\"\" data-slot=\"pagination-item\" {...props} />;\n}\n\ntype PaginationLinkProps = {\n  isActive?: boolean;\n  isRounded?: boolean;\n} & React.ComponentProps<'a'>;\n\nfunction McPaginationLink({\n  className,\n  isActive,\n  isRounded,\n\n  ...props\n}: PaginationLinkProps) {\n  return (\n    <ButtonPrimitive\n      className={cn(\n        'group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding whitespace-nowrap transition-all outline-none select-none disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 flex items-center rounded-[6px] px-4 py-2 hover:bg-secondary paragraph-md font-normal justify-center gap-2 font-sans',\n\n        isActive &&\n          'rounded-[6px] bg-primary px-4 py-2 text-md font-dm-sans h-min-[40px] w-min-[37px] pointer-events-none cursor-default text-primary-foreground hover:bg-primary hover:text-primary-foreground active:bg-primary active:text-primary-foreground active:ring-0',\n        isRounded && 'rounded-full',\n        className\n      )}\n      nativeButton={false}\n      render={\n        <a\n          aria-current={isActive ? 'page' : undefined}\n          data-slot=\"pagination-link\"\n          data-active={isActive}\n          {...props}\n        />\n      }\n    />\n  );\n}\n\nfunction McPaginationPrevious({\n  className,\n  text = 'Back',\n  showText = true,\n\n  ...props\n}: React.ComponentProps<typeof McPaginationLink> & { text?: string; showText?: boolean }) {\n  return (\n    <McPaginationLink\n      aria-label=\"Go to previous page\"\n      className={cn('pl-1.5!', className)}\n      {...props}\n    >\n      <ChevronLeftIcon data-icon=\"inline-start\" className={cn('cn-rtl-flip shrink-0')} />\n      {showText && text && (\n        <span className=\"hidden items-center leading-none font-dm-sans font-normal sm:inline-flex\">\n          {text}\n        </span>\n      )}\n    </McPaginationLink>\n  );\n}\n\nfunction McPaginationNext({\n  className,\n  text = 'Next',\n  showText = true,\n\n  ...props\n}: React.ComponentProps<typeof McPaginationLink> & { text?: string; showText?: boolean }) {\n  return (\n    <McPaginationLink aria-label=\"Go to next page\" className={cn('pr-1.5!', className)} {...props}>\n      {showText && text && (\n        <span className=\"hidden items-center leading-none font-dm-sans paragraph-md font-normal sm:inline-flex\">\n          {text}\n        </span>\n      )}\n      <ChevronRightIcon data-icon=\"inline-end\" className={cn('cn-rtl-flip shrink-0')} />\n    </McPaginationLink>\n  );\n}\n\nfunction McPaginationEllipsis({ className, ...props }: React.ComponentProps<'span'>) {\n  return (\n    <span\n      aria-hidden\n      data-slot=\"pagination-ellipsis\"\n      className={cn(\n        \"flex size-8 items-center justify-center [&_svg:not([class*='size-'])]:size-4\",\n        className\n      )}\n      {...props}\n    >\n      <MoreHorizontalIcon />\n      <span className=\"sr-only\">More pages</span>\n    </span>\n  );\n}\n\nexport {\n  McPagination,\n  McPaginationContent,\n  McPaginationEllipsis,\n  McPaginationItem,\n  McPaginationLink,\n  McPaginationNext,\n  McPaginationPrevious,\n};\n",
      "type": "registry:component"
    }
  ],
  "type": "registry:component"
}