{"version":3,"sources":["/Users/elliotsutton/Documents/Skyleen/npm-package/bprogress/packages/next/dist/app.cjs","../src/app.ts","../src/hooks/use-router.ts","../src/providers/app-progress-provider.tsx","../src/components/app-progress.tsx","../src/providers/next-progress-provider.tsx"],"names":["__create","Object","create","__defProp","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__getProtoOf","getPrototypeOf","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toESM","mod","isNodeMode","__esModule","value","__toCommonJS","app_exports","ProgressProvider","AppProgressProvider","useRouter","module","exports","import_navigation","require","import_react","import_core","removeFirstPathSegment","url","parts","pathname","split","length","splice","join","options","customRouter","defaultProgressOptions","router","useNextRouter","import_react2","useProgress","start","stop","disableSameURL","providerDisableSameURL","startPosition","providerStartPosition","delay","providerDelay","stopDelay","providerStopDelay","extendedRouterRef","useRef","createHandler","fn","href","showProgress","basePath","i18nPath","routerOpts","progressOpts","localDisableSameURL","localStartPosition","localDelay","localStopDelay","currentUrl","URL","location","targetUrl","sameURL","isSameURL","setTimeout","createNoHrefHandler","result","createPrefetchHandler","current","push","replace","prefetch","back","refresh","forward","AppProgressComponent","props","import_navigation2","usePathname","searchParams","useSearchParams","import_react3","useAnchorProgress","AppProgress","withMemo","displayName","NextProgressProvider","children","ProgressComponent","color","height","spinnerPosition","style","disableStyle","nonce","shallowRouting","import_react4","React","createElement","import_react5","SuspendedAppProgress","import_react7","withSuspense","import_react6"],"mappings":"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","sourcesContent":["var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n  for (var name in all)\n    __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n  if (from && typeof from === \"object\" || typeof from === \"function\") {\n    for (let key of __getOwnPropNames(from))\n      if (!__hasOwnProp.call(to, key) && key !== except)\n        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n  }\n  return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n  // If the importer is in node compatibility mode or this is not an ESM\n  // file that has been converted to a CommonJS file using a Babel-\n  // compatible transform (i.e. \"__esModule\" has not been set), then set\n  // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n  isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n  mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/app.ts\nvar app_exports = {};\n__export(app_exports, {\n  ProgressProvider: () => AppProgressProvider,\n  useRouter: () => useRouter\n});\nmodule.exports = __toCommonJS(app_exports);\n\n// src/hooks/use-router.ts\nvar import_navigation = require(\"next/navigation.js\");\nvar import_react = require(\"react\");\nvar import_core = require(\"@bprogress/core\");\nvar import_react2 = require(\"@bprogress/react\");\nfunction removeFirstPathSegment(url) {\n  const parts = url.pathname.split(\"/\");\n  if (parts.length > 1 && parts[1]) {\n    parts.splice(1, 1);\n    url.pathname = parts.join(\"/\") || \"/\";\n  }\n  return url;\n}\nfunction useRouter(options) {\n  const { customRouter, ...defaultProgressOptions } = options || {};\n  const router = customRouter ? customRouter() : (\n    // eslint-disable-next-line react-hooks/rules-of-hooks\n    (0, import_navigation.useRouter)()\n  );\n  const {\n    start,\n    stop,\n    disableSameURL: providerDisableSameURL,\n    startPosition: providerStartPosition,\n    delay: providerDelay,\n    stopDelay: providerStopDelay\n  } = (0, import_react2.useProgress)();\n  const extendedRouterRef = (0, import_react.useRef)(null);\n  function createHandler(fn) {\n    return (href, options2) => {\n      const {\n        showProgress,\n        startPosition,\n        disableSameURL,\n        basePath,\n        i18nPath,\n        delay,\n        stopDelay,\n        ...routerOpts\n      } = options2 || {};\n      const progressOpts = {\n        ...defaultProgressOptions,\n        showProgress,\n        startPosition,\n        disableSameURL,\n        basePath,\n        i18nPath,\n        delay,\n        stopDelay\n      };\n      const localDisableSameURL = progressOpts.disableSameURL !== void 0 ? progressOpts.disableSameURL : providerDisableSameURL;\n      const localStartPosition = progressOpts.startPosition !== void 0 ? progressOpts.startPosition : providerStartPosition;\n      const localDelay = progressOpts.delay !== void 0 ? progressOpts.delay : providerDelay;\n      const localStopDelay = progressOpts.stopDelay !== void 0 ? progressOpts.stopDelay : providerStopDelay;\n      if (progressOpts.showProgress === false) {\n        return fn(href, routerOpts);\n      }\n      let currentUrl = new URL(location.href);\n      const targetUrl = new URL(href, location.href);\n      if (progressOpts.i18nPath) {\n        currentUrl = removeFirstPathSegment(currentUrl);\n      }\n      if (progressOpts.basePath) {\n        targetUrl.pathname = progressOpts.basePath + (targetUrl.pathname !== \"/\" ? targetUrl.pathname : \"\");\n      }\n      const sameURL = (0, import_core.isSameURL)(targetUrl, currentUrl);\n      if (sameURL && localDisableSameURL) {\n        return fn(href, routerOpts);\n      }\n      start(localStartPosition, localDelay);\n      setTimeout(() => {\n        if (sameURL) stop(localStopDelay);\n      }, localDelay || 0);\n      return fn(href, routerOpts);\n    };\n  }\n  function createNoHrefHandler(fn) {\n    return (options2) => {\n      const {\n        showProgress,\n        startPosition,\n        disableSameURL,\n        basePath,\n        i18nPath,\n        delay,\n        stopDelay,\n        ...routerOpts\n      } = options2 || {};\n      const progressOpts = {\n        ...defaultProgressOptions,\n        showProgress,\n        startPosition,\n        disableSameURL,\n        basePath,\n        i18nPath,\n        delay,\n        stopDelay\n      };\n      const localStartPosition = progressOpts.startPosition !== void 0 ? progressOpts.startPosition : providerStartPosition;\n      const localDelay = progressOpts.delay !== void 0 ? progressOpts.delay : providerDelay;\n      const localStopDelay = progressOpts.stopDelay !== void 0 ? progressOpts.stopDelay : providerStopDelay;\n      if (progressOpts.showProgress === false) {\n        return fn(routerOpts);\n      }\n      start(localStartPosition, localDelay);\n      const result = fn(routerOpts);\n      setTimeout(() => {\n        stop(localStopDelay);\n      }, localDelay || 0);\n      return result;\n    };\n  }\n  function createPrefetchHandler(fn) {\n    return (href, options2) => {\n      return fn(href, options2);\n    };\n  }\n  if (!extendedRouterRef.current) {\n    extendedRouterRef.current = {\n      ...router,\n      push: createHandler(router.push),\n      replace: createHandler(router.replace),\n      prefetch: createPrefetchHandler(router.prefetch),\n      back: createNoHrefHandler(router.back),\n      refresh: createNoHrefHandler(router.refresh),\n      forward: createNoHrefHandler(router.forward)\n    };\n  } else {\n    extendedRouterRef.current.push = createHandler(router.push);\n    extendedRouterRef.current.replace = createHandler(router.replace);\n    extendedRouterRef.current.prefetch = createPrefetchHandler(router.prefetch);\n    extendedRouterRef.current.back = createNoHrefHandler(router.back);\n    extendedRouterRef.current.refresh = createNoHrefHandler(router.refresh);\n    extendedRouterRef.current.forward = createNoHrefHandler(router.forward);\n  }\n  return extendedRouterRef.current;\n}\n\n// src/providers/app-progress-provider.tsx\nvar import_react6 = __toESM(require(\"react\"), 1);\n\n// src/components/app-progress.tsx\nvar import_react3 = require(\"@bprogress/react\");\nvar import_navigation2 = require(\"next/navigation.js\");\nvar AppProgressComponent = (props) => {\n  const pathname = (0, import_navigation2.usePathname)();\n  const searchParams = (0, import_navigation2.useSearchParams)();\n  (0, import_react3.useAnchorProgress)(props, [pathname, searchParams]);\n  return null;\n};\nvar AppProgress = (0, import_react3.withMemo)(AppProgressComponent);\nAppProgress.displayName = \"AppProgress\";\n\n// src/providers/app-progress-provider.tsx\nvar import_react7 = require(\"@bprogress/react\");\n\n// src/providers/next-progress-provider.tsx\nvar import_react4 = __toESM(require(\"react\"), 1);\nvar import_react5 = require(\"@bprogress/react\");\nvar NextProgressProvider = ({\n  children,\n  ProgressComponent,\n  color,\n  height,\n  options,\n  spinnerPosition,\n  style,\n  disableStyle,\n  nonce,\n  stopDelay,\n  delay,\n  startPosition,\n  disableSameURL,\n  shallowRouting,\n  ...props\n}) => {\n  return /* @__PURE__ */ import_react4.default.createElement(\n    import_react5.ProgressProvider,\n    {\n      color,\n      height,\n      options,\n      spinnerPosition,\n      style,\n      disableStyle,\n      nonce,\n      stopDelay,\n      delay,\n      startPosition,\n      disableSameURL,\n      shallowRouting\n    },\n    /* @__PURE__ */ import_react4.default.createElement(\n      ProgressComponent,\n      {\n        stopDelay,\n        delay,\n        startPosition,\n        disableSameURL,\n        shallowRouting,\n        ...props\n      }\n    ),\n    children\n  );\n};\n\n// src/providers/app-progress-provider.tsx\nvar SuspendedAppProgress = (0, import_react7.withSuspense)(AppProgress);\nvar AppProgressProvider = ({\n  children,\n  ...props\n}) => {\n  return /* @__PURE__ */ import_react6.default.createElement(NextProgressProvider, { ProgressComponent: SuspendedAppProgress, ...props }, children);\n};\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n  ProgressProvider,\n  useRouter\n});\n","export { useRouter } from \"./hooks/use-router\";\nexport { AppProgressProvider as ProgressProvider } from \"./providers/app-progress-provider\";\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type {\n  AppRouterInstance,\n  AppRouterProgressInstance,\n  InferPrefetchOptions,\n  InferRouterOptions,\n  RouterProgressOptions,\n} from '../types';\nimport { useRouter as useNextRouter } from 'next/navigation.js';\nimport { useRef } from 'react';\nimport { isSameURL } from '@bprogress/core';\nimport { AppRouterInstance as NextAppRouterInstance } from 'next/dist/shared/lib/app-router-context.shared-runtime';\nimport { useProgress } from '@bprogress/react';\n\n/**\n * Helper function that removes the first path segment from a URL.\n * This is used to ignore the locale prefix in i18n configurations.\n */\nfunction removeFirstPathSegment(url: URL): URL {\n  const parts = url.pathname.split('/');\n  if (parts.length > 1 && parts[1]) {\n    parts.splice(1, 1);\n    url.pathname = parts.join('/') || '/';\n  }\n  return url;\n}\n\n/**\n * Custom hook that extends the router (Next.js or custom) with progress bar functionality.\n *\n * With this signature, if a custom router is provided, its push method's options are automatically inferred.\n *\n * @param options Progress bar options and/or custom router.\n * @returns An extended router with push, replace, prefetch, back, refresh, and forward methods that manage the progress bar.\n */\nexport function useRouter<\n  Custom extends AppRouterInstance = NextAppRouterInstance,\n  ROpts = InferRouterOptions<Custom>,\n  POpts = InferPrefetchOptions<Custom>,\n>(\n  options?: RouterProgressOptions & { customRouter?: () => Custom },\n): AppRouterProgressInstance<ROpts, POpts> {\n  const { customRouter, ...defaultProgressOptions } = options || {};\n  const router: AppRouterInstance = customRouter\n    ? customRouter()\n    : // eslint-disable-next-line react-hooks/rules-of-hooks\n      useNextRouter();\n  const {\n    start,\n    stop,\n    disableSameURL: providerDisableSameURL,\n    startPosition: providerStartPosition,\n    delay: providerDelay,\n    stopDelay: providerStopDelay,\n  } = useProgress();\n\n  // Using a ref to keep a stable reference of the extended router.\n  const extendedRouterRef = useRef<AppRouterProgressInstance<\n    ROpts,\n    POpts\n  > | null>(null);\n\n  /**\n   * Generic function to create a handler for methods that require an href (push, replace).\n   * It extracts the progress options and passes the rest as router-specific options.\n   */\n  function createHandler<Fn extends (href: string, opts?: any) => void>(\n    fn: Fn,\n  ) {\n    return (href: string, options?: any): void => {\n      const {\n        showProgress,\n        startPosition,\n        disableSameURL,\n        basePath,\n        i18nPath,\n        delay,\n        stopDelay,\n        ...routerOpts\n      } = options || {};\n      const progressOpts = {\n        ...defaultProgressOptions,\n        showProgress,\n        startPosition,\n        disableSameURL,\n        basePath,\n        i18nPath,\n        delay,\n        stopDelay,\n      };\n\n      const localDisableSameURL =\n        progressOpts.disableSameURL !== undefined\n          ? progressOpts.disableSameURL\n          : providerDisableSameURL;\n      const localStartPosition =\n        progressOpts.startPosition !== undefined\n          ? progressOpts.startPosition\n          : providerStartPosition;\n      const localDelay =\n        progressOpts.delay !== undefined ? progressOpts.delay : providerDelay;\n      const localStopDelay =\n        progressOpts.stopDelay !== undefined\n          ? progressOpts.stopDelay\n          : providerStopDelay;\n\n      if (progressOpts.showProgress === false) {\n        return fn(href, routerOpts);\n      }\n\n      let currentUrl = new URL(location.href);\n      const targetUrl = new URL(href, location.href);\n\n      if (progressOpts.i18nPath) {\n        currentUrl = removeFirstPathSegment(currentUrl);\n      }\n\n      if (progressOpts.basePath) {\n        targetUrl.pathname =\n          progressOpts.basePath +\n          (targetUrl.pathname !== '/' ? targetUrl.pathname : '');\n      }\n\n      const sameURL = isSameURL(targetUrl, currentUrl);\n\n      if (sameURL && localDisableSameURL) {\n        return fn(href, routerOpts);\n      }\n\n      start(localStartPosition, localDelay);\n\n      setTimeout(() => {\n        if (sameURL) stop(localStopDelay);\n      }, localDelay || 0);\n\n      return fn(href, routerOpts);\n    };\n  }\n\n  /**\n   * Handler for methods that do not require an href (back, refresh, forward).\n   */\n  function createNoHrefHandler<Fn extends (opts?: any) => void>(fn: Fn) {\n    return (options?: any): void => {\n      const {\n        showProgress,\n        startPosition,\n        disableSameURL,\n        basePath,\n        i18nPath,\n        delay,\n        stopDelay,\n        ...routerOpts\n      } = options || {};\n      const progressOpts = {\n        ...defaultProgressOptions,\n        showProgress,\n        startPosition,\n        disableSameURL,\n        basePath,\n        i18nPath,\n        delay,\n        stopDelay,\n      };\n\n      const localStartPosition =\n        progressOpts.startPosition !== undefined\n          ? progressOpts.startPosition\n          : providerStartPosition;\n      const localDelay =\n        progressOpts.delay !== undefined ? progressOpts.delay : providerDelay;\n      const localStopDelay =\n        progressOpts.stopDelay !== undefined\n          ? progressOpts.stopDelay\n          : providerStopDelay;\n\n      if (progressOpts.showProgress === false) {\n        return fn(routerOpts);\n      }\n\n      start(localStartPosition, localDelay);\n\n      const result = fn(routerOpts);\n\n      setTimeout(() => {\n        stop(localStopDelay);\n      }, localDelay || 0);\n\n      return result;\n    };\n  }\n\n  /**\n   * Handler for the prefetch method.\n   */\n  function createPrefetchHandler<Fn extends (href: string, opts?: any) => void>(\n    fn: Fn,\n  ) {\n    return (href: string, options?: POpts): void => {\n      return fn(href, options);\n    };\n  }\n\n  if (!extendedRouterRef.current) {\n    extendedRouterRef.current = {\n      ...router,\n      push: createHandler(router.push),\n      replace: createHandler(router.replace),\n      prefetch: createPrefetchHandler(router.prefetch),\n      back: createNoHrefHandler(router.back),\n      refresh: createNoHrefHandler(router.refresh),\n      forward: createNoHrefHandler(router.forward),\n    } as AppRouterProgressInstance<ROpts, POpts>;\n  } else {\n    extendedRouterRef.current.push = createHandler(router.push);\n    extendedRouterRef.current.replace = createHandler(router.replace);\n    extendedRouterRef.current.prefetch = createPrefetchHandler(router.prefetch);\n    extendedRouterRef.current.back = createNoHrefHandler(router.back);\n    extendedRouterRef.current.refresh = createNoHrefHandler(router.refresh);\n    extendedRouterRef.current.forward = createNoHrefHandler(router.forward);\n  }\n\n  return extendedRouterRef.current;\n}\n","import React from 'react';\nimport type { AppProgressProps, AppProgressProviderProps } from '../types';\nimport { AppProgress } from '../components/app-progress';\nimport { withSuspense } from '@bprogress/react';\nimport { NextProgressProvider } from './next-progress-provider';\n\nconst SuspendedAppProgress = withSuspense<AppProgressProps>(AppProgress);\n\nexport const AppProgressProvider = ({\n  children,\n  ...props\n}: AppProgressProviderProps) => {\n  return (\n    <NextProgressProvider ProgressComponent={SuspendedAppProgress} {...props}>\n      {children}\n    </NextProgressProvider>\n  );\n};\n","import {\n  useAnchorProgress,\n  withMemo,\n  type AnchorProgressProps,\n} from '@bprogress/react';\nimport { usePathname, useSearchParams } from 'next/navigation.js';\n\nconst AppProgressComponent = (props: AnchorProgressProps) => {\n  const pathname = usePathname();\n  const searchParams = useSearchParams();\n\n  useAnchorProgress(props, [pathname, searchParams]);\n\n  return null;\n};\n\nexport const AppProgress = withMemo(AppProgressComponent);\n\nAppProgress.displayName = 'AppProgress';\n","import React from 'react';\nimport {\n  AnchorProgressProps,\n  ProgressProvider,\n  ProgressProviderProps,\n  RouterProgressProps,\n} from '@bprogress/react';\n\nexport interface NextProgressProviderComponentProps\n  extends ProgressProviderProps {\n  ProgressComponent: React.ComponentType<\n    RouterProgressProps | AnchorProgressProps\n  >;\n}\n\nexport const NextProgressProvider = ({\n  children,\n  ProgressComponent,\n  color,\n  height,\n  options,\n  spinnerPosition,\n  style,\n  disableStyle,\n  nonce,\n  stopDelay,\n  delay,\n  startPosition,\n  disableSameURL,\n  shallowRouting,\n  ...props\n}: NextProgressProviderComponentProps) => {\n  return (\n    <ProgressProvider\n      color={color}\n      height={height}\n      options={options}\n      spinnerPosition={spinnerPosition}\n      style={style}\n      disableStyle={disableStyle}\n      nonce={nonce}\n      stopDelay={stopDelay}\n      delay={delay}\n      startPosition={startPosition}\n      disableSameURL={disableSameURL}\n      shallowRouting={shallowRouting}\n    >\n      <ProgressComponent\n        stopDelay={stopDelay}\n        delay={delay}\n        startPosition={startPosition}\n        disableSameURL={disableSameURL}\n        shallowRouting={shallowRouting}\n        {...props}\n      />\n      {children}\n    </ProgressProvider>\n  );\n};\n"]}