{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "pagination",
  "title": "Pagination",
  "description": "Native Astro page links with current-page and previous/next styles.",
  "dependencies": [
    "@lucide/astro@^1.49.0",
    "cn@0.4.0"
  ],
  "registryDependencies": [
    "@gnosticai/button"
  ],
  "files": [
    {
      "path": "packages/ui/src/components/ui/pagination/pagination-content.astro",
      "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { cn } from \"cn\"\ntype Props = HTMLAttributes<\"ul\">\nconst { class: className, ...props } = Astro.props\n---\n\n<ul\n  data-slot=\"pagination-content\"\n  class={cn(\"flex flex-row items-center gap-1\", className)}\n  {...props}\n>\n  <slot />\n</ul>\n",
      "type": "registry:file",
      "target": "~/src/components/ui/pagination/pagination-content.astro"
    },
    {
      "path": "packages/ui/src/components/ui/pagination/pagination-link.astro",
      "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { cn } from \"cn\"\nimport { buttonVariants, type ButtonVariantProps } from \"../button\"\ntype Props = HTMLAttributes<\"a\"> & {\n  isActive?: boolean\n  size?: ButtonVariantProps[\"size\"]\n}\nconst {\n  class: className,\n  isActive = false,\n  size = \"icon\",\n  ...props\n} = Astro.props\n---\n\n<a\n  data-slot=\"pagination-link\"\n  data-active={isActive ? \"\" : undefined}\n  aria-current={isActive ? \"page\" : undefined}\n  class={cn(\n    buttonVariants({ size, variant: isActive ? \"outline\" : \"ghost\" }),\n    className,\n  )}\n  {...props}\n>\n  <slot />\n</a>\n",
      "type": "registry:file",
      "target": "~/src/components/ui/pagination/pagination-link.astro"
    },
    {
      "path": "packages/ui/src/components/ui/pagination/pagination-item.astro",
      "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\ntype Props = HTMLAttributes<\"li\">\n---\n\n<li data-slot=\"pagination-item\" {...Astro.props}>\n  <slot />\n</li>\n",
      "type": "registry:file",
      "target": "~/src/components/ui/pagination/pagination-item.astro"
    },
    {
      "path": "packages/ui/src/components/ui/pagination/index.ts",
      "content": "export { default as Pagination } from './pagination.astro'\nexport { default as PaginationContent } from './pagination-content.astro'\nexport { default as PaginationItem } from './pagination-item.astro'\nexport { default as PaginationLink } from './pagination-link.astro'\nexport { default as PaginationPrevious } from './pagination-previous.astro'\nexport { default as PaginationNext } from './pagination-next.astro'\nexport { default as PaginationEllipsis } from './pagination-ellipsis.astro'\n",
      "type": "registry:file",
      "target": "~/src/components/ui/pagination/index.ts"
    },
    {
      "path": "packages/ui/src/components/ui/pagination/pagination.astro",
      "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { cn } from \"cn\"\ntype Props = HTMLAttributes<\"nav\">\nconst { class: className, ...props } = Astro.props\n---\n\n<nav\n  data-slot=\"pagination\"\n  class={cn(\"mx-auto flex w-full justify-center\", className)}\n  aria-label=\"Pagination\"\n  {...props}\n>\n  <slot />\n</nav>\n",
      "type": "registry:file",
      "target": "~/src/components/ui/pagination/pagination.astro"
    },
    {
      "path": "packages/ui/src/components/ui/pagination/pagination-previous.astro",
      "content": "---\nimport type { ComponentProps } from \"astro/types\"\nimport { cn } from \"cn\"\nimport Icon from \"@lucide/astro/icons/chevron-left\"\nimport PaginationLink from \"./pagination-link.astro\"\ntype Props = ComponentProps<typeof PaginationLink>\nconst { class: className, ...props } = Astro.props\n---\n\n<PaginationLink\n  aria-label=\"Previous page\"\n  size=\"default\"\n  class={cn(\"max-sm:aspect-square max-sm:p-0\", className)}\n  {...props}\n>\n  <Icon aria-hidden=\"true\" />\n  <span class=\"max-sm:hidden\">\n    <slot>Previous</slot>\n  </span>\n</PaginationLink>\n",
      "type": "registry:file",
      "target": "~/src/components/ui/pagination/pagination-previous.astro"
    },
    {
      "path": "packages/ui/src/components/ui/pagination/pagination-ellipsis.astro",
      "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { cn } from \"cn\"\nimport MoreHorizontal from \"@lucide/astro/icons/ellipsis\"\ntype Props = HTMLAttributes<\"span\">\nconst { class: className, ...props } = Astro.props\n---\n\n<span\n  data-slot=\"pagination-ellipsis\"\n  aria-hidden=\"true\"\n  class={cn(\"flex min-w-7 justify-center\", className)}\n  {...props}\n>\n  <MoreHorizontal class=\"size-5 sm:size-4\" />\n</span>\n",
      "type": "registry:file",
      "target": "~/src/components/ui/pagination/pagination-ellipsis.astro"
    },
    {
      "path": "packages/ui/src/components/ui/pagination/pagination-next.astro",
      "content": "---\nimport type { ComponentProps } from \"astro/types\"\nimport { cn } from \"cn\"\nimport Icon from \"@lucide/astro/icons/chevron-right\"\nimport PaginationLink from \"./pagination-link.astro\"\ntype Props = ComponentProps<typeof PaginationLink>\nconst { class: className, ...props } = Astro.props\n---\n\n<PaginationLink\n  aria-label=\"Next page\"\n  size=\"default\"\n  class={cn(\"max-sm:aspect-square max-sm:p-0\", className)}\n  {...props}\n>\n  <span class=\"max-sm:hidden\">\n    <slot>Next</slot>\n  </span>\n  <Icon aria-hidden=\"true\" />\n</PaginationLink>\n",
      "type": "registry:file",
      "target": "~/src/components/ui/pagination/pagination-next.astro"
    }
  ],
  "meta": {
    "framework": "astro",
    "source": "@gnosticai/ui"
  },
  "docs": "https://ui.gnosticai.com/components/pagination",
  "categories": [
    "ui"
  ],
  "type": "registry:ui"
}
