{"version":3,"file":"Pagination.cjs","sources":["../../../src/components/Pagination/Pagination.tsx"],"sourcesContent":["\"use client\";\n\nimport { forwardRef, type ComponentProps, type ReactNode } from \"react\";\nimport { get } from \"../../helpers/get\";\nimport { resolveProps } from \"../../helpers/resolve-props\";\nimport { useResolveTheme } from \"../../helpers/resolve-theme\";\nimport { twMerge } from \"../../helpers/tailwind-merge\";\nimport { ChevronLeftIcon } from \"../../icons/chevron-left-icon\";\nimport { ChevronRightIcon } from \"../../icons/chevron-right-icon\";\nimport { useThemeProvider } from \"../../theme/provider\";\nimport type { ThemingProps } from \"../../types\";\nimport { range } from \"./helpers\";\nimport type { PaginationButtonProps, PaginationButtonTheme } from \"./PaginationButton\";\nimport { PaginationButton, PaginationNavigation } from \"./PaginationButton\";\nimport { paginationTheme } from \"./theme\";\n\nexport interface PaginationTheme {\n  base: string;\n  layout: PaginationLayoutTheme;\n  pages: PaginationPagesTheme;\n}\n\nexport interface PaginationRootTheme {\n  base: string;\n}\n\nexport interface PaginationLayoutTheme {\n  table: {\n    base: string;\n    span: string;\n  };\n}\n\nexport interface PaginationPagesTheme {\n  base: string;\n  showIcon: string;\n  previous: PaginationNavigationTheme;\n  next: PaginationNavigationTheme;\n  selector: PaginationButtonTheme;\n}\n\nexport interface PaginationNavigationTheme {\n  base: string;\n  icon: string;\n}\n\nexport interface BasePaginationProps extends ComponentProps<\"nav\">, ThemingProps<PaginationTheme> {\n  layout?: \"navigation\" | \"pagination\" | \"table\";\n  currentPage: number;\n  nextLabel?: string;\n  onPageChange: (page: number) => void;\n  previousLabel?: string;\n  showIcons?: boolean;\n}\n\nexport interface DefaultPaginationProps extends BasePaginationProps {\n  layout?: \"navigation\" | \"pagination\";\n  renderPaginationButton?: (props: PaginationButtonProps) => ReactNode;\n  totalPages: number;\n}\nexport interface TablePaginationProps extends BasePaginationProps {\n  layout: \"table\";\n  itemsPerPage: number;\n  totalItems: number;\n}\n\nexport type PaginationProps = DefaultPaginationProps | TablePaginationProps;\n\nexport const Pagination = forwardRef<HTMLElement, PaginationProps>((props, ref) => {\n  if (props.layout === \"table\") return <TablePagination {...props} ref={ref} />;\n  return <DefaultPagination {...props} ref={ref} />;\n});\n\nconst DefaultPagination = forwardRef<HTMLElement, DefaultPaginationProps>((props, ref) => {\n  const provider = useThemeProvider();\n  const theme = useResolveTheme(\n    [paginationTheme, provider.theme?.pagination, props.theme],\n    [get(provider.clearTheme, \"pagination\"), props.clearTheme],\n    [get(provider.applyTheme, \"pagination\"), props.applyTheme],\n  );\n\n  const {\n    className,\n    currentPage,\n    layout = \"pagination\",\n    nextLabel = \"Next\",\n    onPageChange,\n    previousLabel = \"Previous\",\n    renderPaginationButton = (props: PaginationButtonProps) => <PaginationButton {...props} />,\n    totalPages,\n    showIcons: showIcon = false,\n    ...restProps\n  } = resolveProps<DefaultPaginationProps>(props, provider.props?.pagination);\n\n  if (!Number.isInteger(currentPage) || currentPage < 1) {\n    throw new Error(\"Invalid props: currentPage must be a positive integer\");\n  }\n\n  if (!Number.isInteger(totalPages) || totalPages < 1) {\n    throw new Error(\"Invalid props: totalPages must be a positive integer\");\n  }\n\n  const lastPage = Math.min(Math.max(layout === \"pagination\" ? currentPage + 2 : currentPage + 4, 5), totalPages);\n  const firstPage = Math.max(1, lastPage - 4);\n\n  function goToNextPage() {\n    onPageChange(Math.min(currentPage + 1, totalPages));\n  }\n\n  function goToPreviousPage() {\n    onPageChange(Math.max(currentPage - 1, 1));\n  }\n\n  return (\n    <nav ref={ref} className={twMerge(theme.base, className)} {...restProps}>\n      <ul className={theme.pages.base}>\n        <li>\n          <PaginationNavigation\n            className={twMerge(theme.pages.previous.base, showIcon && theme.pages.showIcon)}\n            onClick={goToPreviousPage}\n            disabled={currentPage === 1}\n          >\n            {showIcon && <ChevronLeftIcon aria-hidden className={theme.pages.previous.icon} />}\n            {previousLabel}\n          </PaginationNavigation>\n        </li>\n        {layout === \"pagination\" &&\n          range(firstPage, lastPage).map((page: number) => (\n            <li aria-current={page === currentPage ? \"page\" : undefined} key={page}>\n              {renderPaginationButton({\n                className: twMerge(theme.pages.selector.base, currentPage === page && theme.pages.selector.active),\n                active: page === currentPage,\n                onClick: () => onPageChange(page),\n                children: page,\n              })}\n            </li>\n          ))}\n        <li>\n          <PaginationNavigation\n            className={twMerge(theme.pages.next.base, showIcon && theme.pages.showIcon)}\n            onClick={goToNextPage}\n            disabled={currentPage === totalPages}\n          >\n            {nextLabel}\n            {showIcon && <ChevronRightIcon aria-hidden className={theme.pages.next.icon} />}\n          </PaginationNavigation>\n        </li>\n      </ul>\n    </nav>\n  );\n});\n\nconst TablePagination = forwardRef<HTMLElement, TablePaginationProps>((props, ref) => {\n  const provider = useThemeProvider();\n  const theme = useResolveTheme(\n    [paginationTheme, provider.theme?.pagination, props.theme],\n    [get(provider.clearTheme, \"pagination\"), props.clearTheme],\n    [get(provider.applyTheme, \"pagination\"), props.applyTheme],\n  );\n\n  const {\n    className,\n    currentPage,\n    nextLabel = \"Next\",\n    onPageChange,\n    previousLabel = \"Previous\",\n    showIcons: showIcon = false,\n    itemsPerPage,\n    totalItems,\n    ...restProps\n  } = resolveProps<TablePaginationProps>(props, provider.props?.pagination);\n\n  if (!Number.isInteger(currentPage) || currentPage < 1) {\n    throw new Error(\"Invalid props: currentPage must be a positive integer\");\n  }\n  if (!Number.isInteger(itemsPerPage) || itemsPerPage < 1) {\n    throw new Error(\"Invalid props: itemsPerPage must be a positive integer\");\n  }\n  if (!Number.isInteger(totalItems) || totalItems < 0) {\n    throw new Error(\"Invalid props: totalItems must be a non-negative integer\");\n  }\n  const totalPages = totalItems > 0 ? Math.ceil(totalItems / itemsPerPage) : 1;\n\n  const offset = (currentPage - 1) * itemsPerPage;\n  const firstItem = totalItems > 0 ? offset + 1 : 0;\n  const lastItem = currentPage === totalPages ? totalItems : offset + itemsPerPage;\n\n  function goToNextPage() {\n    onPageChange(Math.min(currentPage + 1, totalPages));\n  }\n\n  function goToPreviousPage() {\n    onPageChange(Math.max(currentPage - 1, 1));\n  }\n\n  return (\n    <nav ref={ref} className={twMerge(theme.base, className)} {...restProps}>\n      <div role=\"status\" aria-live=\"polite\" aria-label=\"Table Pagination\" className={theme.layout.table.base}>\n        Showing <span className={theme.layout.table.span}>{firstItem}</span> to&nbsp;\n        <span className={theme.layout.table.span}>{lastItem}</span> of&nbsp;\n        <span className={theme.layout.table.span}>{totalItems}</span> Entries\n      </div>\n      <ul className={theme.pages.base}>\n        <li>\n          <PaginationNavigation\n            className={twMerge(theme.pages.previous.base, showIcon && theme.pages.showIcon)}\n            onClick={goToPreviousPage}\n            disabled={currentPage === 1}\n          >\n            {showIcon && <ChevronLeftIcon aria-hidden className={theme.pages.previous.icon} />}\n            {previousLabel}\n          </PaginationNavigation>\n        </li>\n        <li>\n          <PaginationNavigation\n            className={twMerge(theme.pages.next.base, showIcon && theme.pages.showIcon)}\n            onClick={goToNextPage}\n            disabled={currentPage === totalPages}\n          >\n            {nextLabel}\n            {showIcon && <ChevronRightIcon aria-hidden className={theme.pages.next.icon} />}\n          </PaginationNavigation>\n        </li>\n      </ul>\n    </nav>\n  );\n});\nPagination.displayName = \"Pagination\";\n"],"names":["forwardRef","jsx","provider","useThemeProvider","theme","useResolveTheme","paginationTheme","get","PaginationButton","resolveProps","twMerge","jsxs","PaginationNavigation","ChevronLeftIcon","range","ChevronRightIcon"],"mappings":"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"}