{
  "$schema": "https://shadcn-vue.com/schema/registry-item.json",
  "name": "pagination",
  "title": "Pagination",
  "type": "registry:ui",
  "files": [
    {
      "path": "packages/registry-vue/components/pagination/Pagination.vue",
      "content": "<script setup lang=\"ts\">\nimport type { PaginationRootEmits, PaginationRootProps } from 'reka-ui'\nimport type { HTMLAttributes } from 'vue'\nimport { reactiveOmit } from '@vueuse/core'\nimport { PaginationRoot, useForwardPropsEmits } from 'reka-ui'\nimport { cn } from '@/lib/utils'\n\nconst props = defineProps<PaginationRootProps & { class?: HTMLAttributes['class']; ariaLabel?: string }>()\nconst emits = defineEmits<PaginationRootEmits>()\n\nconst delegated = reactiveOmit(props, 'class')\nconst forwarded = useForwardPropsEmits(delegated, emits)\n</script>\n\n<template>\n  <PaginationRoot\n    v-slot=\"slotProps\"\n    as=\"nav\"\n    :aria-label=\"props.ariaLabel ?? 'Pagination'\"\n    data-uipkge\n    data-slot=\"pagination\"\n    v-bind=\"forwarded\"\n    :class=\"cn('flex items-center gap-1', props.class)\"\n  >\n    <slot v-bind=\"slotProps\" />\n  </PaginationRoot>\n</template>\n",
      "type": "registry:ui",
      "target": "~/app/components/ui/pagination/Pagination.vue"
    },
    {
      "path": "packages/registry-vue/components/pagination/PaginationEllipsis.vue",
      "content": "<script setup lang=\"ts\">\nimport { PaginationEllipsis as RkPaginationEllipsis } from 'reka-ui'\n</script>\n<template>\n  <RkPaginationEllipsis aria-hidden=\"true\"><slot /></RkPaginationEllipsis>\n</template>\n",
      "type": "registry:ui",
      "target": "~/app/components/ui/pagination/PaginationEllipsis.vue"
    },
    {
      "path": "packages/registry-vue/components/pagination/PaginationFirst.vue",
      "content": "<script setup lang=\"ts\">\nimport { PaginationFirst as RkPaginationFirst } from 'reka-ui'\nimport { ChevronsLeft } from 'lucide-vue-next'\n</script>\n<template>\n  <RkPaginationFirst aria-label=\"Go to first page\"\n    ><slot><ChevronsLeft class=\"size-4\" aria-hidden=\"true\" /></slot\n  ></RkPaginationFirst>\n</template>\n",
      "type": "registry:ui",
      "target": "~/app/components/ui/pagination/PaginationFirst.vue"
    },
    {
      "path": "packages/registry-vue/components/pagination/PaginationLast.vue",
      "content": "<script setup lang=\"ts\">\nimport { PaginationLast as RkPaginationLast } from 'reka-ui'\nimport { ChevronsRight } from 'lucide-vue-next'\n</script>\n<template>\n  <RkPaginationLast aria-label=\"Go to last page\"\n    ><slot><ChevronsRight class=\"size-4\" aria-hidden=\"true\" /></slot\n  ></RkPaginationLast>\n</template>\n",
      "type": "registry:ui",
      "target": "~/app/components/ui/pagination/PaginationLast.vue"
    },
    {
      "path": "packages/registry-vue/components/pagination/PaginationList.vue",
      "content": "<script setup lang=\"ts\">\nimport type { PaginationListProps } from 'reka-ui'\nimport type { HTMLAttributes } from 'vue'\nimport { PaginationList as RkPaginationList } from 'reka-ui'\nimport { cn } from '@/lib/utils'\n\nconst props = defineProps<PaginationListProps & { class?: HTMLAttributes['class'] }>()\n</script>\n\n<template>\n  <RkPaginationList\n    v-slot=\"slotProps\"\n    data-uipkge\n    data-slot=\"pagination-list\"\n    v-bind=\"props\"\n    :class=\"cn('flex items-center gap-1', props.class)\"\n  >\n    <slot v-bind=\"slotProps\" />\n  </RkPaginationList>\n</template>\n",
      "type": "registry:ui",
      "target": "~/app/components/ui/pagination/PaginationList.vue"
    },
    {
      "path": "packages/registry-vue/components/pagination/PaginationListItem.vue",
      "content": "<script setup lang=\"ts\">\nimport type { PaginationListItemProps } from 'reka-ui'\nimport type { HTMLAttributes } from 'vue'\nimport { reactiveOmit } from '@vueuse/core'\nimport { PaginationListItem as RkPaginationListItem } from 'reka-ui'\nimport { cn } from '@/lib/utils'\n\nconst props = defineProps<PaginationListItemProps & { class?: HTMLAttributes['class'] }>()\nconst delegated = reactiveOmit(props, 'class')\n</script>\n\n<template>\n  <RkPaginationListItem\n    data-uipkge\n    data-slot=\"pagination-list-item\"\n    v-bind=\"delegated\"\n    :class=\"cn('shrink-0', props.class)\"\n  >\n    <slot />\n  </RkPaginationListItem>\n</template>\n",
      "type": "registry:ui",
      "target": "~/app/components/ui/pagination/PaginationListItem.vue"
    },
    {
      "path": "packages/registry-vue/components/pagination/PaginationNext.vue",
      "content": "<script setup lang=\"ts\">\nimport { PaginationNext as RkPaginationNext } from 'reka-ui'\nimport { ChevronRight } from 'lucide-vue-next'\n</script>\n<template>\n  <RkPaginationNext aria-label=\"Go to next page\"\n    ><slot><ChevronRight class=\"size-4\" aria-hidden=\"true\" /></slot\n  ></RkPaginationNext>\n</template>\n",
      "type": "registry:ui",
      "target": "~/app/components/ui/pagination/PaginationNext.vue"
    },
    {
      "path": "packages/registry-vue/components/pagination/PaginationPrev.vue",
      "content": "<script setup lang=\"ts\">\nimport { PaginationPrev as RkPaginationPrev } from 'reka-ui'\nimport { ChevronLeft } from 'lucide-vue-next'\n</script>\n<template>\n  <RkPaginationPrev aria-label=\"Go to previous page\"\n    ><slot><ChevronLeft class=\"size-4\" aria-hidden=\"true\" /></slot\n  ></RkPaginationPrev>\n</template>\n",
      "type": "registry:ui",
      "target": "~/app/components/ui/pagination/PaginationPrev.vue"
    },
    {
      "path": "packages/registry-vue/components/pagination/index.ts",
      "content": "export { default as Pagination } from './Pagination.vue'\nexport { default as PaginationList } from './PaginationList.vue'\nexport { default as PaginationListItem } from './PaginationListItem.vue'\nexport { default as PaginationFirst } from './PaginationFirst.vue'\nexport { default as PaginationPrev } from './PaginationPrev.vue'\nexport { default as PaginationNext } from './PaginationNext.vue'\nexport { default as PaginationLast } from './PaginationLast.vue'\nexport { default as PaginationEllipsis } from './PaginationEllipsis.vue'\n",
      "type": "registry:ui",
      "target": "~/app/components/ui/pagination/index.ts"
    }
  ],
  "dependencies": [
    "@vueuse/core",
    "lucide-vue-next",
    "reka-ui"
  ],
  "devDependencies": [],
  "registryDependencies": [],
  "description": "Page-number bar with previous/next, ellipsis collapse, and a configurable visible-window size. Pair with a data-table or any paged list.",
  "categories": [
    "navigation"
  ]
}