Next.js website for Rocky Mountain Vending company featuring: - Product catalog with Stripe integration - Service areas and parts pages - Admin dashboard with Clerk authentication - SEO optimized pages with JSON-LD structured data Co-authored-by: Cursor <cursoragent@cursor.com>
1 line
No EOL
35 KiB
Text
1 line
No EOL
35 KiB
Text
{"version":3,"sources":["../../../src/client/app-dir/link.tsx"],"sourcesContent":["'use client'\n\nimport React, { createContext, useContext, useOptimistic, useRef } from 'react'\nimport type { UrlObject } from 'url'\nimport { formatUrl } from '../../shared/lib/router/utils/format-url'\nimport { AppRouterContext } from '../../shared/lib/app-router-context.shared-runtime'\nimport { useMergedRef } from '../use-merged-ref'\nimport { isAbsoluteUrl } from '../../shared/lib/utils'\nimport { addBasePath } from '../add-base-path'\nimport { warnOnce } from '../../shared/lib/utils/warn-once'\nimport type { PENDING_LINK_STATUS } from '../components/links'\nimport {\n IDLE_LINK_STATUS,\n mountLinkInstance,\n onNavigationIntent,\n unmountLinkForCurrentNavigation,\n unmountPrefetchableInstance,\n type LinkInstance,\n} from '../components/links'\nimport { isLocalURL } from '../../shared/lib/router/utils/is-local-url'\nimport {\n FetchStrategy,\n type PrefetchTaskFetchStrategy,\n} from '../components/segment-cache'\nimport { errorOnce } from '../../shared/lib/utils/error-once'\n\ntype Url = string | UrlObject\ntype RequiredKeys<T> = {\n [K in keyof T]-?: {} extends Pick<T, K> ? never : K\n}[keyof T]\ntype OptionalKeys<T> = {\n [K in keyof T]-?: {} extends Pick<T, K> ? K : never\n}[keyof T]\n\ntype OnNavigateEventHandler = (event: { preventDefault: () => void }) => void\n\ntype InternalLinkProps = {\n /**\n * **Required**. The path or URL to navigate to. It can also be an object (similar to `URL`).\n *\n * @example\n * ```tsx\n * // Navigate to /dashboard:\n * <Link href=\"/dashboard\">Dashboard</Link>\n *\n * // Navigate to /about?name=test:\n * <Link href={{ pathname: '/about', query: { name: 'test' } }}>\n * About\n * </Link>\n * ```\n *\n * @remarks\n * - For external URLs, use a fully qualified URL such as `https://...`.\n * - In the App Router, dynamic routes must not include bracketed segments in `href`.\n */\n href: Url\n\n /**\n * @deprecated v10.0.0: `href` props pointing to a dynamic route are\n * automatically resolved and no longer require the `as` prop.\n */\n as?: Url\n\n /**\n * Replace the current `history` state instead of adding a new URL into the stack.\n *\n * @defaultValue `false`\n *\n * @example\n * ```tsx\n * <Link href=\"/about\" replace>\n * About (replaces the history state)\n * </Link>\n * ```\n */\n replace?: boolean\n\n /**\n * Whether to override the default scroll behavior. If `true`, Next.js attempts to maintain\n * the scroll position if the newly navigated page is still visible. If not, it scrolls to the top.\n *\n * If `false`, Next.js will not modify the scroll behavior at all.\n *\n * @defaultValue `true`\n *\n * @example\n * ```tsx\n * <Link href=\"/dashboard\" scroll={false}>\n * No auto scroll\n * </Link>\n * ```\n */\n scroll?: boolean\n\n /**\n * Update the path of the current page without rerunning data fetching methods\n * like `getStaticProps`, `getServerSideProps`, or `getInitialProps`.\n *\n * @remarks\n * `shallow` only applies to the Pages Router. For the App Router, see the\n * [following documentation](https://nextjs.org/docs/app/building-your-application/routing/linking-and-navigating#using-the-native-history-api).\n *\n * @defaultValue `false`\n *\n * @example\n * ```tsx\n * <Link href=\"/blog\" shallow>\n * Shallow navigation\n * </Link>\n * ```\n */\n shallow?: boolean\n\n /**\n * Forces `Link` to pass its `href` to the child component. Useful if the child is a custom\n * component that wraps an `<a>` tag, or if you're using certain styling libraries.\n *\n * @defaultValue `false`\n *\n * @example\n * ```tsx\n * <Link href=\"/dashboard\" passHref legacyBehavior>\n * <MyStyledAnchor>Dashboard</MyStyledAnchor>\n * </Link>\n * ```\n */\n passHref?: boolean\n\n /**\n * Prefetch the page in the background.\n * Any `<Link />` that is in the viewport (initially or through scroll) will be prefetched.\n * Prefetch can be disabled by passing `prefetch={false}`.\n *\n * @remarks\n * Prefetching is only enabled in production.\n *\n * - In the **App Router**:\n * - `\"auto\"`, `null`, `undefined` (default): Prefetch behavior depends on static vs dynamic routes:\n * - Static routes: fully prefetched\n * - Dynamic routes: partial prefetch to the nearest segment with a `loading.js`\n * - `true`: Always prefetch the full route and data.\n * - `false`: Disable prefetching on both viewport and hover.\n * - In the **Pages Router**:\n * - `true` (default): Prefetches the route and data in the background on viewport or hover.\n * - `false`: Prefetch only on hover, not on viewport.\n *\n * @defaultValue `true` (Pages Router) or `null` (App Router)\n *\n * @example\n * ```tsx\n * <Link href=\"/dashboard\" prefetch={false}>\n * Dashboard\n * </Link>\n * ```\n */\n prefetch?: boolean | 'auto' | null | 'unstable_forceStale'\n\n /**\n * (unstable) Switch to a full prefetch on hover. Effectively the same as\n * updating the prefetch prop to `true` in a mouse event.\n */\n unstable_dynamicOnHover?: boolean\n\n /**\n * The active locale is automatically prepended in the Pages Router. `locale` allows for providing\n * a different locale, or can be set to `false` to opt out of automatic locale behavior.\n *\n * @remarks\n * Note: locale only applies in the Pages Router and is ignored in the App Router.\n *\n * @example\n * ```tsx\n * // Use the 'fr' locale:\n * <Link href=\"/about\" locale=\"fr\">\n * About (French)\n * </Link>\n *\n * // Disable locale prefix:\n * <Link href=\"/about\" locale={false}>\n * About (no locale prefix)\n * </Link>\n * ```\n */\n locale?: string | false\n\n /**\n * Enable legacy link behavior.\n *\n * @deprecated This will be removed in a future version\n * @defaultValue `false`\n * @see https://github.com/vercel/next.js/commit/489e65ed98544e69b0afd7e0cfc3f9f6c2b803b7\n */\n legacyBehavior?: boolean\n\n /**\n * Optional event handler for when the mouse pointer is moved onto the `<Link>`.\n */\n onMouseEnter?: React.MouseEventHandler<HTMLAnchorElement>\n\n /**\n * Optional event handler for when the `<Link>` is touched.\n */\n onTouchStart?: React.TouchEventHandler<HTMLAnchorElement>\n\n /**\n * Optional event handler for when the `<Link>` is clicked.\n */\n onClick?: React.MouseEventHandler<HTMLAnchorElement>\n\n /**\n * Optional event handler for when the `<Link>` is navigated.\n */\n onNavigate?: OnNavigateEventHandler\n}\n\n// TODO-APP: Include the full set of Anchor props\n// adding this to the publicly exported type currently breaks existing apps\n\n// `RouteInferType` is a stub here to avoid breaking `typedRoutes` when the type\n// isn't generated yet. It will be replaced when type generation runs.\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport type LinkProps<RouteInferType = any> = InternalLinkProps\ntype LinkPropsRequired = RequiredKeys<LinkProps>\ntype LinkPropsOptional = OptionalKeys<Omit<InternalLinkProps, 'locale'>>\n\nfunction isModifiedEvent(event: React.MouseEvent): boolean {\n const eventTarget = event.currentTarget as HTMLAnchorElement | SVGAElement\n const target = eventTarget.getAttribute('target')\n return (\n (target && target !== '_self') ||\n event.metaKey ||\n event.ctrlKey ||\n event.shiftKey ||\n event.altKey || // triggers resource download\n (event.nativeEvent && event.nativeEvent.which === 2)\n )\n}\n\nfunction linkClicked(\n e: React.MouseEvent,\n href: string,\n as: string,\n linkInstanceRef: React.RefObject<LinkInstance | null>,\n replace?: boolean,\n scroll?: boolean,\n onNavigate?: OnNavigateEventHandler\n): void {\n if (typeof window !== 'undefined') {\n const { nodeName } = e.currentTarget\n\n // anchors inside an svg have a lowercase nodeName\n const isAnchorNodeName = nodeName.toUpperCase() === 'A'\n if (\n (isAnchorNodeName && isModifiedEvent(e)) ||\n e.currentTarget.hasAttribute('download')\n ) {\n // ignore click for browser’s default behavior\n return\n }\n\n if (!isLocalURL(href)) {\n if (replace) {\n // browser default behavior does not replace the history state\n // so we need to do it manually\n e.preventDefault()\n location.replace(href)\n }\n\n // ignore click for browser’s default behavior\n return\n }\n\n e.preventDefault()\n\n if (onNavigate) {\n let isDefaultPrevented = false\n\n onNavigate({\n preventDefault: () => {\n isDefaultPrevented = true\n },\n })\n\n if (isDefaultPrevented) {\n return\n }\n }\n\n const { dispatchNavigateAction } =\n require('../components/app-router-instance') as typeof import('../components/app-router-instance')\n\n React.startTransition(() => {\n dispatchNavigateAction(\n as || href,\n replace ? 'replace' : 'push',\n scroll ?? true,\n linkInstanceRef.current\n )\n })\n }\n}\n\nfunction formatStringOrUrl(urlObjOrString: UrlObject | string): string {\n if (typeof urlObjOrString === 'string') {\n return urlObjOrString\n }\n\n return formatUrl(urlObjOrString)\n}\n\n/**\n * A React component that extends the HTML `<a>` element to provide\n * [prefetching](https://nextjs.org/docs/app/building-your-application/routing/linking-and-navigating#2-prefetching)\n * and client-side navigation. This is the primary way to navigate between routes in Next.js.\n *\n * @remarks\n * - Prefetching is only enabled in production.\n *\n * @see https://nextjs.org/docs/app/api-reference/components/link\n */\nexport default function LinkComponent(\n props: LinkProps & {\n children: React.ReactNode\n ref: React.Ref<HTMLAnchorElement>\n }\n) {\n const [linkStatus, setOptimisticLinkStatus] = useOptimistic(IDLE_LINK_STATUS)\n\n let children: React.ReactNode\n\n const linkInstanceRef = useRef<LinkInstance | null>(null)\n\n const {\n href: hrefProp,\n as: asProp,\n children: childrenProp,\n prefetch: prefetchProp = null,\n passHref,\n replace,\n shallow,\n scroll,\n onClick,\n onMouseEnter: onMouseEnterProp,\n onTouchStart: onTouchStartProp,\n legacyBehavior = false,\n onNavigate,\n ref: forwardedRef,\n unstable_dynamicOnHover,\n ...restProps\n } = props\n\n children = childrenProp\n\n if (\n legacyBehavior &&\n (typeof children === 'string' || typeof children === 'number')\n ) {\n children = <a>{children}</a>\n }\n\n const router = React.useContext(AppRouterContext)\n\n const prefetchEnabled = prefetchProp !== false\n\n const fetchStrategy =\n prefetchProp !== false\n ? getFetchStrategyFromPrefetchProp(prefetchProp)\n : // TODO: it makes no sense to assign a fetchStrategy when prefetching is disabled.\n FetchStrategy.PPR\n\n if (process.env.NODE_ENV !== 'production') {\n function createPropError(args: {\n key: string\n expected: string\n actual: string\n }) {\n return new Error(\n `Failed prop type: The prop \\`${args.key}\\` expects a ${args.expected} in \\`<Link>\\`, but got \\`${args.actual}\\` instead.` +\n (typeof window !== 'undefined'\n ? \"\\nOpen your browser's console to view the Component stack trace.\"\n : '')\n )\n }\n\n // TypeScript trick for type-guarding:\n const requiredPropsGuard: Record<LinkPropsRequired, true> = {\n href: true,\n } as const\n const requiredProps: LinkPropsRequired[] = Object.keys(\n requiredPropsGuard\n ) as LinkPropsRequired[]\n requiredProps.forEach((key: LinkPropsRequired) => {\n if (key === 'href') {\n if (\n props[key] == null ||\n (typeof props[key] !== 'string' && typeof props[key] !== 'object')\n ) {\n throw createPropError({\n key,\n expected: '`string` or `object`',\n actual: props[key] === null ? 'null' : typeof props[key],\n })\n }\n } else {\n // TypeScript trick for type-guarding:\n const _: never = key\n }\n })\n\n // TypeScript trick for type-guarding:\n const optionalPropsGuard: Record<LinkPropsOptional, true> = {\n as: true,\n replace: true,\n scroll: true,\n shallow: true,\n passHref: true,\n prefetch: true,\n unstable_dynamicOnHover: true,\n onClick: true,\n onMouseEnter: true,\n onTouchStart: true,\n legacyBehavior: true,\n onNavigate: true,\n } as const\n const optionalProps: LinkPropsOptional[] = Object.keys(\n optionalPropsGuard\n ) as LinkPropsOptional[]\n optionalProps.forEach((key: LinkPropsOptional) => {\n const valType = typeof props[key]\n\n if (key === 'as') {\n if (props[key] && valType !== 'string' && valType !== 'object') {\n throw createPropError({\n key,\n expected: '`string` or `object`',\n actual: valType,\n })\n }\n } else if (\n key === 'onClick' ||\n key === 'onMouseEnter' ||\n key === 'onTouchStart' ||\n key === 'onNavigate'\n ) {\n if (props[key] && valType !== 'function') {\n throw createPropError({\n key,\n expected: '`function`',\n actual: valType,\n })\n }\n } else if (\n key === 'replace' ||\n key === 'scroll' ||\n key === 'shallow' ||\n key === 'passHref' ||\n key === 'legacyBehavior' ||\n key === 'unstable_dynamicOnHover'\n ) {\n if (props[key] != null && valType !== 'boolean') {\n throw createPropError({\n key,\n expected: '`boolean`',\n actual: valType,\n })\n }\n } else if (key === 'prefetch') {\n if (\n props[key] != null &&\n valType !== 'boolean' &&\n props[key] !== 'auto' &&\n props[key] !== 'unstable_forceStale'\n ) {\n throw createPropError({\n key,\n expected: '`boolean | \"auto\" | \"unstable_forceStale\"`',\n actual: valType,\n })\n }\n } else {\n // TypeScript trick for type-guarding:\n const _: never = key\n }\n })\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (props.locale) {\n warnOnce(\n 'The `locale` prop is not supported in `next/link` while using the `app` router. Read more about app router internalization: https://nextjs.org/docs/app/building-your-application/routing/internationalization'\n )\n }\n if (!asProp) {\n let href: string | undefined\n if (typeof hrefProp === 'string') {\n href = hrefProp\n } else if (\n typeof hrefProp === 'object' &&\n typeof hrefProp.pathname === 'string'\n ) {\n href = hrefProp.pathname\n }\n\n if (href) {\n const hasDynamicSegment = href\n .split('/')\n .some((segment) => segment.startsWith('[') && segment.endsWith(']'))\n\n if (hasDynamicSegment) {\n throw new Error(\n `Dynamic href \\`${href}\\` found in <Link> while using the \\`/app\\` router, this is not supported. Read more: https://nextjs.org/docs/messages/app-dir-dynamic-href`\n )\n }\n }\n }\n }\n\n const { href, as } = React.useMemo(() => {\n const resolvedHref = formatStringOrUrl(hrefProp)\n return {\n href: resolvedHref,\n as: asProp ? formatStringOrUrl(asProp) : resolvedHref,\n }\n }, [hrefProp, asProp])\n\n // This will return the first child, if multiple are provided it will throw an error\n let child: any\n if (legacyBehavior) {\n if ((children as any)?.$$typeof === Symbol.for('react.lazy')) {\n throw new Error(\n `\\`<Link legacyBehavior>\\` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's \\`<a>\\` tag.`\n )\n }\n\n if (process.env.NODE_ENV === 'development') {\n if (onClick) {\n console.warn(\n `\"onClick\" was passed to <Link> with \\`href\\` of \\`${hrefProp}\\` but \"legacyBehavior\" was set. The legacy behavior requires onClick be set on the child of next/link`\n )\n }\n if (onMouseEnterProp) {\n console.warn(\n `\"onMouseEnter\" was passed to <Link> with \\`href\\` of \\`${hrefProp}\\` but \"legacyBehavior\" was set. The legacy behavior requires onMouseEnter be set on the child of next/link`\n )\n }\n try {\n child = React.Children.only(children)\n } catch (err) {\n if (!children) {\n throw new Error(\n `No children were passed to <Link> with \\`href\\` of \\`${hrefProp}\\` but one child is required https://nextjs.org/docs/messages/link-no-children`\n )\n }\n throw new Error(\n `Multiple children were passed to <Link> with \\`href\\` of \\`${hrefProp}\\` but only one child is supported https://nextjs.org/docs/messages/link-multiple-children` +\n (typeof window !== 'undefined'\n ? \" \\nOpen your browser's console to view the Component stack trace.\"\n : '')\n )\n }\n } else {\n child = React.Children.only(children)\n }\n } else {\n if (process.env.NODE_ENV === 'development') {\n if ((children as any)?.type === 'a') {\n throw new Error(\n 'Invalid <Link> with <a> child. Please remove <a> or use <Link legacyBehavior>.\\nLearn more: https://nextjs.org/docs/messages/invalid-new-link-with-extra-anchor'\n )\n }\n }\n }\n\n const childRef: any = legacyBehavior\n ? child && typeof child === 'object' && child.ref\n : forwardedRef\n\n // Use a callback ref to attach an IntersectionObserver to the anchor tag on\n // mount. In the future we will also use this to keep track of all the\n // currently mounted <Link> instances, e.g. so we can re-prefetch them after\n // a revalidation or refresh.\n const observeLinkVisibilityOnMount = React.useCallback(\n (element: HTMLAnchorElement | SVGAElement) => {\n if (router !== null) {\n linkInstanceRef.current = mountLinkInstance(\n element,\n href,\n router,\n fetchStrategy,\n prefetchEnabled,\n setOptimisticLinkStatus\n )\n }\n\n return () => {\n if (linkInstanceRef.current) {\n unmountLinkForCurrentNavigation(linkInstanceRef.current)\n linkInstanceRef.current = null\n }\n unmountPrefetchableInstance(element)\n }\n },\n [prefetchEnabled, href, router, fetchStrategy, setOptimisticLinkStatus]\n )\n\n const mergedRef = useMergedRef(observeLinkVisibilityOnMount, childRef)\n\n const childProps: {\n onTouchStart?: React.TouchEventHandler<HTMLAnchorElement>\n onMouseEnter: React.MouseEventHandler<HTMLAnchorElement>\n onClick: React.MouseEventHandler<HTMLAnchorElement>\n href?: string\n ref?: any\n } = {\n ref: mergedRef,\n onClick(e) {\n if (process.env.NODE_ENV !== 'production') {\n if (!e) {\n throw new Error(\n `Component rendered inside next/link has to pass click event to \"onClick\" prop.`\n )\n }\n }\n\n if (!legacyBehavior && typeof onClick === 'function') {\n onClick(e)\n }\n\n if (\n legacyBehavior &&\n child.props &&\n typeof child.props.onClick === 'function'\n ) {\n child.props.onClick(e)\n }\n\n if (!router) {\n return\n }\n if (e.defaultPrevented) {\n return\n }\n linkClicked(e, href, as, linkInstanceRef, replace, scroll, onNavigate)\n },\n onMouseEnter(e) {\n if (!legacyBehavior && typeof onMouseEnterProp === 'function') {\n onMouseEnterProp(e)\n }\n\n if (\n legacyBehavior &&\n child.props &&\n typeof child.props.onMouseEnter === 'function'\n ) {\n child.props.onMouseEnter(e)\n }\n\n if (!router) {\n return\n }\n if (!prefetchEnabled || process.env.NODE_ENV === 'development') {\n return\n }\n\n const upgradeToDynamicPrefetch = unstable_dynamicOnHover === true\n onNavigationIntent(\n e.currentTarget as HTMLAnchorElement | SVGAElement,\n upgradeToDynamicPrefetch\n )\n },\n onTouchStart: process.env.__NEXT_LINK_NO_TOUCH_START\n ? undefined\n : function onTouchStart(e) {\n if (!legacyBehavior && typeof onTouchStartProp === 'function') {\n onTouchStartProp(e)\n }\n\n if (\n legacyBehavior &&\n child.props &&\n typeof child.props.onTouchStart === 'function'\n ) {\n child.props.onTouchStart(e)\n }\n\n if (!router) {\n return\n }\n if (!prefetchEnabled) {\n return\n }\n\n const upgradeToDynamicPrefetch = unstable_dynamicOnHover === true\n onNavigationIntent(\n e.currentTarget as HTMLAnchorElement | SVGAElement,\n upgradeToDynamicPrefetch\n )\n },\n }\n\n // If the url is absolute, we can bypass the logic to prepend the basePath.\n if (isAbsoluteUrl(as)) {\n childProps.href = as\n } else if (\n !legacyBehavior ||\n passHref ||\n (child.type === 'a' && !('href' in child.props))\n ) {\n childProps.href = addBasePath(as)\n }\n\n let link: React.ReactNode\n\n if (legacyBehavior) {\n if (process.env.NODE_ENV === 'development') {\n errorOnce(\n '`legacyBehavior` is deprecated and will be removed in a future ' +\n 'release. A codemod is available to upgrade your components:\\n\\n' +\n 'npx @next/codemod@latest new-link .\\n\\n' +\n 'Learn more: https://nextjs.org/docs/app/building-your-application/upgrading/codemods#remove-a-tags-from-link-components'\n )\n }\n link = React.cloneElement(child, childProps)\n } else {\n link = (\n <a {...restProps} {...childProps}>\n {children}\n </a>\n )\n }\n\n return (\n <LinkStatusContext.Provider value={linkStatus}>\n {link}\n </LinkStatusContext.Provider>\n )\n}\n\nconst LinkStatusContext = createContext<\n typeof PENDING_LINK_STATUS | typeof IDLE_LINK_STATUS\n>(IDLE_LINK_STATUS)\n\nexport const useLinkStatus = () => {\n return useContext(LinkStatusContext)\n}\n\nfunction getFetchStrategyFromPrefetchProp(\n prefetchProp: Exclude<LinkProps['prefetch'], undefined | false>\n): PrefetchTaskFetchStrategy {\n if (\n process.env.__NEXT_CACHE_COMPONENTS &&\n process.env.__NEXT_CLIENT_SEGMENT_CACHE\n ) {\n // In the new implementation:\n // - `prefetch={true}` is a runtime prefetch\n // (includes cached IO + params + cookies, with dynamic holes for uncached IO).\n // - `unstable_forceStale` is a \"full\" prefetch\n // (forces inclusion of all dynamic data, i.e. the old behavior of `prefetch={true}`)\n if (prefetchProp === true) {\n return FetchStrategy.PPRRuntime\n }\n if (prefetchProp === 'unstable_forceStale') {\n return FetchStrategy.Full\n }\n\n // `null` or `\"auto\"`: this is the default \"auto\" mode, where we will prefetch partially if the link is in the viewport.\n // This will also include invalid prop values that don't match the types specified here.\n // (although those should've been filtered out by prop validation in dev)\n prefetchProp satisfies null | 'auto'\n // In `clientSegmentCache`, we default to PPR, and we'll discover whether or not the route supports it with the initial prefetch.\n // If we're not using `clientSegmentCache`, this will be converted into a `PrefetchKind.AUTO`.\n return FetchStrategy.PPR\n } else {\n return prefetchProp === null || prefetchProp === 'auto'\n ? // In `clientSegmentCache`, we default to PPR, and we'll discover whether or not the route supports it with the initial prefetch.\n // If we're not using `clientSegmentCache`, this will be converted into a `PrefetchKind.AUTO`.\n FetchStrategy.PPR\n : // In the old implementation without runtime prefetches, `prefetch={true}` forces all dynamic data to be prefetched.\n // To preserve backwards-compatibility, anything other than `false`, `null`, or `\"auto\"` results in a full prefetch.\n // (although invalid values should've been filtered out by prop validation in dev)\n FetchStrategy.Full\n }\n}\n"],"names":["React","createContext","useContext","useOptimistic","useRef","formatUrl","AppRouterContext","useMergedRef","isAbsoluteUrl","addBasePath","warnOnce","IDLE_LINK_STATUS","mountLinkInstance","onNavigationIntent","unmountLinkForCurrentNavigation","unmountPrefetchableInstance","isLocalURL","FetchStrategy","errorOnce","isModifiedEvent","event","eventTarget","currentTarget","target","getAttribute","metaKey","ctrlKey","shiftKey","altKey","nativeEvent","which","linkClicked","e","href","as","linkInstanceRef","replace","scroll","onNavigate","window","nodeName","isAnchorNodeName","toUpperCase","hasAttribute","preventDefault","location","isDefaultPrevented","dispatchNavigateAction","require","startTransition","current","formatStringOrUrl","urlObjOrString","LinkComponent","props","linkStatus","setOptimisticLinkStatus","children","hrefProp","asProp","childrenProp","prefetch","prefetchProp","passHref","shallow","onClick","onMouseEnter","onMouseEnterProp","onTouchStart","onTouchStartProp","legacyBehavior","ref","forwardedRef","unstable_dynamicOnHover","restProps","a","router","prefetchEnabled","fetchStrategy","getFetchStrategyFromPrefetchProp","PPR","process","env","NODE_ENV","createPropError","args","Error","key","expected","actual","requiredPropsGuard","requiredProps","Object","keys","forEach","_","optionalPropsGuard","optionalProps","valType","locale","pathname","hasDynamicSegment","split","some","segment","startsWith","endsWith","useMemo","resolvedHref","child","$$typeof","Symbol","for","console","warn","Children","only","err","type","childRef","observeLinkVisibilityOnMount","useCallback","element","mergedRef","childProps","defaultPrevented","upgradeToDynamicPrefetch","__NEXT_LINK_NO_TOUCH_START","undefined","link","cloneElement","LinkStatusContext","Provider","value","useLinkStatus","__NEXT_CACHE_COMPONENTS","__NEXT_CLIENT_SEGMENT_CACHE","PPRRuntime","Full"],"mappings":"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","ignoreList":[0]} |