{"version":3,"sources":["/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-4IXMQIRH.cjs","../src/components/persistent-pagination.tsx"],"names":[],"mappings":"AAAA,qFAAY;AACZ;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACA;ACVA,uCAAA,CAAA;AA6FQ,+CAAA;AAhCD,SAAS,oBAAA,CAAqB;AAAA,EACnC,SAAA;AAAA,EACA,QAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,gBAAA,EAAkB,GAAA;AAAA,EAClB,mBAAA,EAAqB,GAAA;AAAA,EACrB,iBAAA,EAAmB;AACrB,CAAA,EAA8B;AAI5B,EAAA,uBACE,8BAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,kCAAA;AAAA,QACT,qCAAA;AAAA,QACA,kCAAA;AAAA,QACA,UAAA,GAAa,qBAAA;AAAA,QACb;AAAA,MACF,CAAA;AAAA,MACA,KAAA,EAAO;AAAA,QACL,OAAA,EAAS,UAAA,EAAY,gBAAA,EAAkB,CAAA;AAAA,QACvC,kBAAA,EAAoB,CAAA,EAAA;AACtB,MAAA;AACK,MAAA;AACM,MAAA;AACA,MAAA;AACG,MAAA;AAGb,MAAA;AACC,QAAA;AAAC,UAAA;AAAA,UAAA;AACW,YAAA;AACL,YAAA;AACK,YAAA;AACX,YAAA;AAAA,cAAA;AACqD,cAAA;AAAY,cAAA;AAAK,cAAA;AAAA,YAAA;AAAA,UAAA;AACvE,QAAA;AAIF,wBAAA;AAAC,UAAA;AAAA,UAAA;AACY,YAAA;AACT,cAAA;AACa,cAAA;AACf,YAAA;AACO,YAAA;AACL,cAAA;AACF,YAAA;AACa,YAAA;AAEZ,YAAA;AAAA,UAAA;AACH,QAAA;AAAA,MAAA;AAAA,IAAA;AAGF,EAAA;AAEJ;AAKgB;AAKR,EAAA;AAEkB,EAAA;AACT,IAAA;AACG,IAAA;AACK,IAAA;AACD,IAAA;AACtB,EAAA;AAE0B,EAAA;AACT,IAAA;AACU,MAAA;AACzB,IAAA;AACe,IAAA;AACjB,EAAA;AAEO,EAAA;AACL,IAAA;AACA,IAAA;AACA,IAAA;AACF,EAAA;AACF;AAcgB;AACd,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACU,EAAA;AACyB;AACT,EAAA;AACxB,IAAA;AACA,IAAA;AACA,IAAA;AACF,EAAA;AAImB,EAAA;AACO,EAAA;AACC,EAAA;AAErB,EAAA;AACgB,EAAA;AAIhB,EAAA;AAGJ,EAAA;AAAC,IAAA;AAAA,IAAA;AACY,MAAA;AACT,QAAA;AACC,QAAA;AACD,QAAA;AACF,MAAA;AACO,MAAA;AACI,QAAA;AACW,QAAA;AACtB,MAAA;AACK,MAAA;AACM,MAAA;AACA,MAAA;AACG,MAAA;AACI,MAAA;AAGhB,MAAA;AAAc,QAAA;AACb,UAAA;AAAA,UAAA;AACW,YAAA;AACL,YAAA;AACK,YAAA;AAET,YAAA;AAEG,UAAA;AAEN,QAAA;AAIF,wBAAA;AAAC,UAAA;AAAA,UAAA;AACY,YAAA;AACT,cAAA;AACA,cAAA;AACF,YAAA;AACO,YAAA;AACL,cAAA;AACF,YAAA;AACa,YAAA;AAEb,YAAA;AAAC,cAAA;AAAA,cAAA;AACc,gBAAA;AACD,gBAAA;AACZ,gBAAA;AAAiD,gBAAA;AAAA,cAAA;AACnD,YAAA;AAAA,UAAA;AACF,QAAA;AAAA,MAAA;AAAA,IAAA;AAGF,EAAA;AAEJ;AD9E6B;AACA;AACA;AACA;AACA;AACA","file":"/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-4IXMQIRH.cjs","sourcesContent":[null,"\"use client\"\n\nimport { ReactNode } from \"react\"\nimport { cn } from \"../utils/cn\"\n\ninterface PersistentPaginationProps {\n  /**\n   * Whether pagination is currently in a loading state\n   */\n  isLoading: boolean\n  /**\n   * The pagination component\n   */\n  children: ReactNode\n  /**\n   * Current page number\n   */\n  currentPage: number\n  /**\n   * Total number of pages\n   */\n  totalPages: number\n  /**\n   * Additional CSS classes\n   */\n  className?: string\n  /**\n   * Disabled opacity (0-1)\n   */\n  disabledOpacity?: number\n  /**\n   * Transition duration in milliseconds\n   */\n  transitionDuration?: number\n  /**\n   * Whether to show loading state in pagination\n   */\n  showLoadingState?: boolean\n}\n\n/**\n * PersistentPagination\n * \n * A wrapper component that keeps pagination visible during loading states\n * but provides visual feedback that it's temporarily disabled.\n * \n * Features:\n * - Maintains pagination visibility during content loading\n * - Disables interaction but preserves layout\n * - Shows current page context even when loading\n * - Provides accessibility support for loading states\n * - Smooth transitions between enabled/disabled states\n * \n * Usage:\n * ```tsx\n * <PersistentPagination\n *   isLoading={isLoadingVendors}\n *   currentPage={currentPage}\n *   totalPages={totalPages}\n * >\n *   <Pagination currentPage={currentPage} totalPages={totalPages} />\n * </PersistentPagination>\n * ```\n */\nexport function PersistentPagination({\n  isLoading,\n  children,\n  currentPage,\n  totalPages,\n  className,\n  disabledOpacity = 0.5,\n  transitionDuration = 300,\n  showLoadingState = true,\n}: PersistentPaginationProps) {\n  // ALWAYS show pagination for predictable layout - just gray it out when not needed\n  // Removed condition that hides pagination completely\n\n  return (\n    <div \n      className={cn(\n        \"relative transition-all ease-in-out\",\n        \"flex justify-center items-center\",\n        isLoading && \"pointer-events-none\",\n        className\n      )}\n      style={{\n        opacity: isLoading ? disabledOpacity : 1,\n        transitionDuration: `${transitionDuration}ms`\n      }}\n      role=\"navigation\"\n      aria-label=\"Pagination\"\n      aria-busy={isLoading}\n      data-loading={isLoading}\n    >\n      {/* Loading state announcement for screen readers */}\n      {isLoading && (\n        <div \n          className=\"sr-only\" \n          role=\"status\" \n          aria-live=\"polite\"\n        >\n          Pagination temporarily disabled while loading page {currentPage} of {totalPages}\n        </div>\n      )}\n\n      {/* Pagination controls with disabled state */}\n      <div \n        className={cn(\n          \"relative transition-all ease-in-out\",\n          isLoading && \"cursor-not-allowed\"\n        )}\n        style={{\n          transitionDuration: `${transitionDuration}ms`\n        }}\n        aria-hidden={isLoading}\n      >\n        {children}\n      </div>\n\n      {/* REMOVED: Loading overlay - only card skeletons should show during loading */}\n    </div>\n  )\n}\n\n/**\n * Hook for managing pagination loading states\n */\nexport function usePaginationLoading(\n  isLoading: boolean,\n  currentPage: number,\n  totalPages: number\n) {\n  const shouldShowPagination = totalPages > 1 || isLoading\n  \n  const paginationProps = {\n    'aria-busy': isLoading,\n    'data-loading': isLoading,\n    'data-current-page': currentPage,\n    'data-total-pages': totalPages,\n  }\n\n  const getLoadingMessage = () => {\n    if (isLoading) {\n      return `Loading page ${currentPage} of ${totalPages}`\n    }\n    return `Page ${currentPage} of ${totalPages}`\n  }\n\n  return {\n    shouldShowPagination,\n    paginationProps,\n    getLoadingMessage,\n  }\n}\n\n/**\n * Enhanced pagination component that includes loading states\n */\ninterface PersistentPaginationWrapperProps {\n  isLoading: boolean\n  currentPage: number\n  totalPages: number\n  onPageChange?: (page: number) => void\n  className?: string\n  variant?: 'vendor' | 'blog'\n}\n\nexport function PersistentPaginationWrapper({\n  isLoading,\n  currentPage,\n  totalPages,\n  onPageChange,\n  className,\n  variant = 'vendor'\n}: PersistentPaginationWrapperProps) {\n  const { getLoadingMessage } = usePaginationLoading(\n    isLoading,\n    currentPage,\n    totalPages\n  )\n\n  // ALWAYS show pagination for predictable layout\n  // For no results (totalPages = 0), show grayed out pagination\n  const hasResults = totalPages > 0\n  const displayTotalPages = hasResults ? totalPages : 1\n  const displayCurrentPage = hasResults ? currentPage : 1\n  // Only disable during loading, but still show when no results (just grayed out)\n  const isPaginationDisabled = isLoading\n  const hasNoResults = !hasResults && !isLoading\n\n  // Use UnifiedPagination directly from ui-kit instead of importing from consuming apps\n  // Both Pagination and BlogPagination in multi-platform-hub are just wrappers around UnifiedPagination\n  const PaginationComponent = require('./unified-pagination').UnifiedPagination\n\n  return (\n    <div \n      className={cn(\n        \"relative transition-all ease-in-out flex justify-center items-center\",\n        (isPaginationDisabled || hasNoResults) && \"pointer-events-none\",\n        className\n      )}\n      style={{\n        opacity: isPaginationDisabled ? 0.3 : hasNoResults ? 0.5 : 1,\n        transitionDuration: \"300ms\"\n      }}\n      role=\"navigation\"\n      aria-label=\"Pagination\"\n      aria-busy={isLoading}\n      data-loading={isLoading}\n      data-has-results={hasResults}\n    >\n      {/* Loading/no results state announcement for screen readers */}\n      {(isLoading || !hasResults) && (\n        <div \n          className=\"sr-only\" \n          role=\"status\" \n          aria-live=\"polite\"\n        >\n          {isLoading \n            ? `Pagination temporarily disabled while loading page ${displayCurrentPage} of ${displayTotalPages}`\n            : `No results available - pagination disabled`\n          }\n        </div>\n      )}\n\n      {/* Pagination controls with disabled state */}\n      <div \n        className={cn(\n          \"relative transition-all ease-in-out\",\n          isPaginationDisabled && \"cursor-not-allowed\"\n        )}\n        style={{\n          transitionDuration: \"300ms\"\n        }}\n        aria-hidden={isPaginationDisabled}\n      >\n        <PaginationComponent\n          currentPage={displayCurrentPage}\n          totalPages={displayTotalPages}\n          onPageChange={hasResults ? onPageChange : () => {}} // Provide empty function instead of undefined\n        />\n      </div>\n\n      {/* REMOVED: Loading overlays - only card skeletons should show during loading */}\n    </div>\n  )\n} "]}