@tanstack/vue-router 1.168.9 → 1.168.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/esm/link.js CHANGED
@@ -285,51 +285,9 @@ function getLinkEventHandlers(options) {
285
285
  onTouchstart: options.onTouchStart ?? options.onTouchstart
286
286
  };
287
287
  }
288
- var propsUnsafeToSpread = new Set([
289
- "activeProps",
290
- "inactiveProps",
291
- "activeOptions",
292
- "to",
293
- "preload",
294
- "preloadDelay",
295
- "hashScrollIntoView",
296
- "replace",
297
- "startTransition",
298
- "resetScroll",
299
- "viewTransition",
300
- "children",
301
- "target",
302
- "disabled",
303
- "style",
304
- "class",
305
- "onClick",
306
- "onBlur",
307
- "onFocus",
308
- "onMouseEnter",
309
- "onMouseenter",
310
- "onMouseLeave",
311
- "onMouseleave",
312
- "onMouseOver",
313
- "onMouseover",
314
- "onMouseOut",
315
- "onMouseout",
316
- "onTouchStart",
317
- "onTouchstart",
318
- "ignoreBlocker",
319
- "params",
320
- "search",
321
- "hash",
322
- "state",
323
- "mask",
324
- "reloadDocument",
325
- "_asChild",
326
- "from",
327
- "additionalProps"
328
- ]);
329
288
  var getPropsSafeToSpread = (options) => {
330
- const result = {};
331
- for (const key in options) if (!propsUnsafeToSpread.has(key)) result[key] = options[key];
332
- return result;
289
+ const { activeProps: _activeProps, inactiveProps: _inactiveProps, activeOptions: _activeOptions, to: _to, preload: _preload, preloadDelay: _preloadDelay, preloadIntentProximity: _preloadIntentProximity, hashScrollIntoView: _hashScrollIntoView, replace: _replace, startTransition: _startTransition, resetScroll: _resetScroll, viewTransition: _viewTransition, children: _children, target: _target, disabled: _disabled, style: _style, class: _class, onClick: _onClick, onBlur: _onBlur, onFocus: _onFocus, onMouseEnter: _onMouseEnter, onMouseenter: _onMouseenter, onMouseLeave: _onMouseLeave, onMouseleave: _onMouseleave, onMouseOver: _onMouseOver, onMouseover: _onMouseover, onMouseOut: _onMouseOut, onMouseout: _onMouseout, onTouchStart: _onTouchStart, onTouchstart: _onTouchstart, ignoreBlocker: _ignoreBlocker, params: _params, search: _search, hash: _hash, state: _state, mask: _mask, reloadDocument: _reloadDocument, unsafeRelative: _unsafeRelative, _asChild: __asChild, from: _from, additionalProps: _additionalProps, ...propsSafeToSpread } = options;
290
+ return propsSafeToSpread;
333
291
  };
334
292
  function getIsActive({ activeOptions, loc, nextLoc, router }) {
335
293
  if (activeOptions?.exact) {
@@ -376,6 +334,7 @@ var LinkImpl = Vue.defineComponent({
376
334
  "to",
377
335
  "preload",
378
336
  "preloadDelay",
337
+ "preloadIntentProximity",
379
338
  "activeProps",
380
339
  "inactiveProps",
381
340
  "activeOptions",
@@ -1 +1 @@
1
- {"version":3,"file":"link.js","names":["Vue","deepEqual","exactPathTest","isDangerousProtocol","preloadWarning","removeTrailingSlash","isServer","useStore","useRouter","useIntersectionObserver","timeoutMap","WeakMap","useLinkProps","options","router","isTransitioning","ref","hasRenderFetched","console","warn","computed","type","URL","to","eventHandlers","getLinkEventHandlers","value","protocolAllowlist","process","env","NODE_ENV","safeProps","getPropsSafeToSpread","target","disabled","style","class","onClick","onBlur","onFocus","onMouseenter","onMouseleave","onMouseover","onMouseout","onTouchstart","Object","keys","forEach","key","undefined","externalProps","href","next","buildLocation","getHref","nextLocation","isActive","getIsActive","loc","stores","location","state","nextLoc","activeOptions","resolvedActiveProps","resolvedInactiveProps","resolvedClassName","resolvedStyle","resolveStyleProps","result","combineResultProps","currentLocation","l","equal","prev","opts","_fromLocation","preload","reloadDocument","defaultPreload","preloadDelay","defaultPreloadDelay","doPreload","preloadRoute","_builtLocation","catch","err","preloadViewportIoCallback","entry","isIntersecting","rootMargin","effect","handleClick","e","elementTarget","currentTarget","getAttribute","effectiveTarget","isCtrlEvent","defaultPrevented","button","preventDefault","unsub","subscribe","navigate","replace","resetScroll","hashScrollIntoView","startTransition","viewTransition","ignoreBlocker","enqueueIntentPreload","eventTarget","has","set","setTimeout","delete","handleTouchStart","_","handleLeave","id","get","clearTimeout","composeEventHandlers","handlers","event","handler","resolvedStyleProps","staticEventHandlers","computedProps","activeProps","inactiveProps","classes","filter","Boolean","length","join","assign","role","onMouseEnter","onMouseLeave","onMouseOver","onMouseOut","onTouchStart","propsUnsafeToSpread","Set","exact","testExact","pathname","basepath","currentPath","nextPath","pathIsFuzzyEqual","startsWith","includeSearch","searchTest","search","partial","ignoreUndefined","explicitUndefined","includeHash","hash","maskedLocation","publicHref","external","history","createHref","createLink","Comp","defineComponent","name","inheritAttrs","setup","attrs","slots","h","LinkImpl","_asChild","props","allProps","linkPropsSource","Component","linkProps","unref","slotContent","default","svgLinkProps","children","Link","metaKey","altKey","ctrlKey","shiftKey","linkOptions"],"sources":["../../src/link.tsx"],"sourcesContent":["import * as Vue from 'vue'\nimport {\n deepEqual,\n exactPathTest,\n isDangerousProtocol,\n preloadWarning,\n removeTrailingSlash,\n} from '@tanstack/router-core'\nimport { isServer } from '@tanstack/router-core/isServer'\n\nimport { useStore } from '@tanstack/vue-store'\nimport { useRouter } from './useRouter'\nimport { useIntersectionObserver } from './utils'\n\nimport type {\n AnyRouter,\n Constrain,\n LinkOptions,\n ParsedLocation,\n RegisteredRouter,\n RoutePaths,\n} from '@tanstack/router-core'\nimport type { AnchorHTMLAttributes, ReservedProps } from '@vue/runtime-dom'\nimport type {\n ValidateLinkOptions,\n ValidateLinkOptionsArray,\n} from './typePrimitives'\n\ntype EventHandler<TEvent = Event> = (e: TEvent) => void\n\nconst timeoutMap = new WeakMap<EventTarget, ReturnType<typeof setTimeout>>()\n\ntype DataAttributes = {\n [K in `data-${string}`]?: unknown\n}\n\ntype LinkHTMLAttributes = AnchorHTMLAttributes &\n ReservedProps &\n DataAttributes & {\n // Vue's runtime-dom types use lowercase event names.\n // Also accept camelCase versions for external API compatibility.\n onMouseEnter?: EventHandler<MouseEvent>\n onMouseLeave?: EventHandler<MouseEvent>\n onMouseOver?: EventHandler<MouseEvent>\n onMouseOut?: EventHandler<MouseEvent>\n onTouchStart?: EventHandler<TouchEvent>\n\n // `disabled` is not a valid <a> attribute, but is useful when using `asChild`.\n disabled?: boolean\n }\n\ntype VueStyleLinkEventHandlers = {\n onMouseenter?: EventHandler<MouseEvent>\n onMouseleave?: EventHandler<MouseEvent>\n onMouseover?: EventHandler<MouseEvent>\n onMouseout?: EventHandler<MouseEvent>\n onTouchstart?: EventHandler<TouchEvent>\n}\n\ninterface StyledProps {\n class?: LinkHTMLAttributes['class']\n style?: LinkHTMLAttributes['style']\n [key: string]: unknown\n}\n\ntype PropsOfComponent<TComp> =\n // Functional components\n TComp extends (props: infer P, ...args: Array<unknown>) => any\n ? P\n : // Vue components (defineComponent, class components, etc)\n TComp extends Vue.Component<infer P>\n ? P\n : Record<string, unknown>\n\ntype AnyLinkPropsOptions = UseLinkPropsOptions<any, any, any, any, any>\ntype LinkEventOptions = AnyLinkPropsOptions & Partial<VueStyleLinkEventHandlers>\n\nexport function useLinkProps<\n TRouter extends AnyRouter = RegisteredRouter,\n TFrom extends RoutePaths<TRouter['routeTree']> | string = string,\n TTo extends string = '',\n TMaskFrom extends RoutePaths<TRouter['routeTree']> | string = TFrom,\n TMaskTo extends string = '',\n>(\n options: UseLinkPropsOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>,\n): LinkHTMLAttributes {\n const router = useRouter()\n const isTransitioning = Vue.ref(false)\n let hasRenderFetched = false\n\n // Ensure router is defined before proceeding\n if (!router) {\n console.warn('useRouter must be used inside a <RouterProvider> component!')\n return Vue.computed(() => ({})) as unknown as LinkHTMLAttributes\n }\n\n // Determine if the link is external or internal\n const type = Vue.computed(() => {\n try {\n new URL(`${options.to}`)\n return 'external'\n } catch {\n return 'internal'\n }\n })\n\n const ref = Vue.ref<Element | null>(null)\n const eventHandlers = getLinkEventHandlers(options as LinkEventOptions)\n\n if (type.value === 'external') {\n // Block dangerous protocols like javascript:, blob:, data:\n if (isDangerousProtocol(options.to as string, router.protocolAllowlist)) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`Blocked Link with dangerous protocol: ${options.to}`)\n }\n // Return props without href to prevent navigation\n const safeProps: Record<string, unknown> = {\n ...getPropsSafeToSpread(options as AnyLinkPropsOptions),\n ref,\n // No href attribute - blocks the dangerous protocol\n target: options.target,\n disabled: options.disabled,\n style: options.style,\n class: options.class,\n onClick: options.onClick,\n onBlur: options.onBlur,\n onFocus: options.onFocus,\n onMouseenter: eventHandlers.onMouseenter,\n onMouseleave: eventHandlers.onMouseleave,\n onMouseover: eventHandlers.onMouseover,\n onMouseout: eventHandlers.onMouseout,\n onTouchstart: eventHandlers.onTouchstart,\n }\n\n // Remove undefined values\n Object.keys(safeProps).forEach((key) => {\n if (safeProps[key] === undefined) {\n delete safeProps[key]\n }\n })\n\n return Vue.computed(\n () => safeProps as LinkHTMLAttributes,\n ) as unknown as LinkHTMLAttributes\n }\n\n // External links just have simple props\n const externalProps: Record<string, unknown> = {\n ...getPropsSafeToSpread(options as AnyLinkPropsOptions),\n ref,\n href: options.to,\n target: options.target,\n disabled: options.disabled,\n style: options.style,\n class: options.class,\n onClick: options.onClick,\n onBlur: options.onBlur,\n onFocus: options.onFocus,\n onMouseenter: eventHandlers.onMouseenter,\n onMouseleave: eventHandlers.onMouseleave,\n onMouseover: eventHandlers.onMouseover,\n onMouseout: eventHandlers.onMouseout,\n onTouchstart: eventHandlers.onTouchstart,\n }\n\n // Remove undefined values\n Object.keys(externalProps).forEach((key) => {\n if (externalProps[key] === undefined) {\n delete externalProps[key]\n }\n })\n\n return Vue.computed(\n () => externalProps as LinkHTMLAttributes,\n ) as unknown as LinkHTMLAttributes\n }\n\n // During SSR we render exactly once and do not need reactivity.\n // Avoid store subscriptions, effects and observers on the server.\n if (isServer ?? router.isServer) {\n const next = router.buildLocation(options as any)\n const href = getHref({\n options: options as AnyLinkPropsOptions,\n router,\n nextLocation: next,\n })\n\n const isActive = getIsActive({\n loc: router.stores.location.state,\n nextLoc: next,\n activeOptions: options.activeOptions,\n router,\n })\n\n const {\n resolvedActiveProps,\n resolvedInactiveProps,\n resolvedClassName,\n resolvedStyle,\n } = resolveStyleProps({\n options: options as AnyLinkPropsOptions,\n isActive,\n })\n\n const result = combineResultProps({\n href,\n options: options as AnyLinkPropsOptions,\n isActive,\n isTransitioning: false,\n resolvedActiveProps,\n resolvedInactiveProps,\n resolvedClassName,\n resolvedStyle,\n })\n\n return Vue.ref(\n result as LinkHTMLAttributes,\n ) as unknown as LinkHTMLAttributes\n }\n\n const currentLocation = useStore(router.stores.location, (l) => l, {\n equal: (prev, next) => prev.href === next.href,\n })\n\n const next = Vue.computed(() => {\n // Rebuild when inherited search/hash or the current route context changes.\n\n const opts = { _fromLocation: currentLocation.value, ...options }\n return router.buildLocation(opts as any)\n })\n\n const preload = Vue.computed(() => {\n if (options.reloadDocument) {\n return false\n }\n return options.preload ?? router.options.defaultPreload\n })\n\n const preloadDelay = Vue.computed(\n () => options.preloadDelay ?? router.options.defaultPreloadDelay ?? 0,\n )\n\n const isActive = Vue.computed(() =>\n getIsActive({\n activeOptions: options.activeOptions,\n loc: currentLocation.value,\n nextLoc: next.value,\n router,\n }),\n )\n\n const doPreload = () =>\n router\n .preloadRoute({ ...options, _builtLocation: next.value } as any)\n .catch((err: any) => {\n console.warn(err)\n console.warn(preloadWarning)\n })\n\n const preloadViewportIoCallback = (\n entry: IntersectionObserverEntry | undefined,\n ) => {\n if (entry?.isIntersecting) {\n doPreload()\n }\n }\n\n useIntersectionObserver(\n ref,\n preloadViewportIoCallback,\n { rootMargin: '100px' },\n { disabled: () => !!options.disabled || !(preload.value === 'viewport') },\n )\n\n Vue.effect(() => {\n if (hasRenderFetched) {\n return\n }\n if (!options.disabled && preload.value === 'render') {\n doPreload()\n hasRenderFetched = true\n }\n })\n\n // The click handler\n const handleClick = (e: PointerEvent): void => {\n // Check actual element's target attribute as fallback\n const elementTarget = (\n e.currentTarget as HTMLAnchorElement | SVGAElement\n )?.getAttribute('target')\n const effectiveTarget =\n options.target !== undefined ? options.target : elementTarget\n\n if (\n !options.disabled &&\n !isCtrlEvent(e) &&\n !e.defaultPrevented &&\n (!effectiveTarget || effectiveTarget === '_self') &&\n e.button === 0\n ) {\n // Don't prevent default or handle navigation if reloadDocument is true\n if (options.reloadDocument) {\n return\n }\n\n e.preventDefault()\n\n isTransitioning.value = true\n\n const unsub = router.subscribe('onResolved', () => {\n unsub()\n isTransitioning.value = false\n })\n\n // All is well? Navigate!\n router.navigate({\n ...options,\n replace: options.replace,\n resetScroll: options.resetScroll,\n hashScrollIntoView: options.hashScrollIntoView,\n startTransition: options.startTransition,\n viewTransition: options.viewTransition,\n ignoreBlocker: options.ignoreBlocker,\n })\n }\n }\n\n const enqueueIntentPreload = (e: MouseEvent | FocusEvent) => {\n if (options.disabled || preload.value !== 'intent') return\n\n if (!preloadDelay.value) {\n doPreload()\n return\n }\n\n const eventTarget = e.currentTarget || e.target\n\n if (!eventTarget || timeoutMap.has(eventTarget)) return\n\n timeoutMap.set(\n eventTarget,\n setTimeout(() => {\n timeoutMap.delete(eventTarget)\n doPreload()\n }, preloadDelay.value),\n )\n }\n\n const handleTouchStart = (_: TouchEvent) => {\n if (options.disabled || preload.value !== 'intent') return\n doPreload()\n }\n\n const handleLeave = (e: MouseEvent | FocusEvent) => {\n if (options.disabled) return\n const eventTarget = e.currentTarget || e.target\n\n if (eventTarget) {\n const id = timeoutMap.get(eventTarget)\n clearTimeout(id)\n timeoutMap.delete(eventTarget)\n }\n }\n\n // Helper to compose event handlers - with explicit return type and better type handling\n function composeEventHandlers<T extends Event>(\n handlers: Array<EventHandler<T> | undefined>,\n ): (e: T) => void {\n return (event: T) => {\n for (const handler of handlers) {\n if (handler) {\n handler(event)\n }\n }\n }\n }\n\n // Get the active and inactive props\n const resolvedStyleProps = Vue.computed(() =>\n resolveStyleProps({\n options: options as AnyLinkPropsOptions,\n isActive: isActive.value,\n }),\n )\n\n const href = Vue.computed(() =>\n getHref({\n options: options as AnyLinkPropsOptions,\n router,\n nextLocation: next.value,\n }),\n )\n\n // Create static event handlers that don't change between renders\n const staticEventHandlers = {\n onClick: composeEventHandlers<PointerEvent>([\n options.onClick,\n handleClick,\n ]) as any,\n onBlur: composeEventHandlers<FocusEvent>([\n options.onBlur,\n handleLeave,\n ]) as any,\n onFocus: composeEventHandlers<FocusEvent>([\n options.onFocus,\n enqueueIntentPreload,\n ]) as any,\n onMouseenter: composeEventHandlers<MouseEvent>([\n eventHandlers.onMouseenter,\n enqueueIntentPreload,\n ]) as any,\n onMouseover: composeEventHandlers<MouseEvent>([\n eventHandlers.onMouseover,\n enqueueIntentPreload,\n ]) as any,\n onMouseleave: composeEventHandlers<MouseEvent>([\n eventHandlers.onMouseleave,\n handleLeave,\n ]) as any,\n onMouseout: composeEventHandlers<MouseEvent>([\n eventHandlers.onMouseout,\n handleLeave,\n ]) as any,\n onTouchstart: composeEventHandlers<TouchEvent>([\n eventHandlers.onTouchstart,\n handleTouchStart,\n ]) as any,\n }\n\n // Compute all props synchronously to avoid hydration mismatches\n // Using Vue.computed ensures props are calculated at render time, not after\n const computedProps = Vue.computed<LinkHTMLAttributes>(() => {\n const {\n resolvedActiveProps,\n resolvedInactiveProps,\n resolvedClassName,\n resolvedStyle,\n } = resolvedStyleProps.value\n return combineResultProps({\n href: href.value,\n options: options as AnyLinkPropsOptions,\n ref,\n staticEventHandlers,\n isActive: isActive.value,\n isTransitioning: isTransitioning.value,\n resolvedActiveProps,\n resolvedInactiveProps,\n resolvedClassName,\n resolvedStyle,\n })\n })\n\n // Return the computed ref itself - callers should access .value\n return computedProps as unknown as LinkHTMLAttributes\n}\n\nfunction resolveStyleProps({\n options,\n isActive,\n}: {\n options: AnyLinkPropsOptions\n isActive: boolean\n}) {\n const activeProps = options.activeProps || (() => ({ class: 'active' }))\n const resolvedActiveProps: StyledProps = (isActive\n ? typeof activeProps === 'function'\n ? activeProps()\n : activeProps\n : {}) || { class: undefined, style: undefined }\n\n const inactiveProps = options.inactiveProps || (() => ({}))\n\n const resolvedInactiveProps: StyledProps = (isActive\n ? {}\n : typeof inactiveProps === 'function'\n ? inactiveProps()\n : inactiveProps) || { class: undefined, style: undefined }\n\n const classes = [\n options.class,\n resolvedActiveProps?.class,\n resolvedInactiveProps?.class,\n ].filter(Boolean)\n const resolvedClassName = classes.length ? classes.join(' ') : undefined\n\n const result: Record<string, string | number> = {}\n\n // Merge styles from all sources\n if (options.style) {\n Object.assign(result, options.style)\n }\n\n if (resolvedActiveProps?.style) {\n Object.assign(result, resolvedActiveProps.style)\n }\n\n if (resolvedInactiveProps?.style) {\n Object.assign(result, resolvedInactiveProps.style)\n }\n\n const resolvedStyle = Object.keys(result).length > 0 ? result : undefined\n return {\n resolvedActiveProps,\n resolvedInactiveProps,\n resolvedClassName,\n resolvedStyle,\n }\n}\n\nfunction combineResultProps({\n href,\n options,\n isActive,\n isTransitioning,\n resolvedActiveProps,\n resolvedInactiveProps,\n resolvedClassName,\n resolvedStyle,\n ref,\n staticEventHandlers,\n}: {\n initial?: LinkHTMLAttributes\n href: string | undefined\n options: AnyLinkPropsOptions\n isActive: boolean\n isTransitioning: boolean\n resolvedActiveProps: StyledProps\n resolvedInactiveProps: StyledProps\n resolvedClassName?: string\n resolvedStyle?: Record<string, string | number>\n ref?: Vue.VNodeRef | undefined\n staticEventHandlers?: {\n onClick: any\n onBlur: any\n onFocus: any\n onMouseenter: any\n onMouseover: any\n onMouseleave: any\n onMouseout: any\n onTouchstart: any\n }\n}) {\n const result: Record<string, unknown> = {\n ...getPropsSafeToSpread(options),\n ref,\n ...staticEventHandlers,\n href,\n disabled: !!options.disabled,\n target: options.target,\n }\n\n if (resolvedStyle) {\n result.style = resolvedStyle\n }\n\n if (resolvedClassName) {\n result.class = resolvedClassName\n }\n\n if (options.disabled) {\n result.role = 'link'\n result['aria-disabled'] = true\n }\n\n if (isActive) {\n result['data-status'] = 'active'\n result['aria-current'] = 'page'\n }\n\n if (isTransitioning) {\n result['data-transitioning'] = 'transitioning'\n }\n\n for (const key of Object.keys(resolvedActiveProps)) {\n if (key !== 'class' && key !== 'style') {\n result[key] = resolvedActiveProps[key]\n }\n }\n\n for (const key of Object.keys(resolvedInactiveProps)) {\n if (key !== 'class' && key !== 'style') {\n result[key] = resolvedInactiveProps[key]\n }\n }\n return result\n}\n\nfunction getLinkEventHandlers(\n options: LinkEventOptions,\n): VueStyleLinkEventHandlers {\n return {\n onMouseenter: options.onMouseEnter ?? options.onMouseenter,\n onMouseleave: options.onMouseLeave ?? options.onMouseleave,\n onMouseover: options.onMouseOver ?? options.onMouseover,\n onMouseout: options.onMouseOut ?? options.onMouseout,\n onTouchstart: options.onTouchStart ?? options.onTouchstart,\n }\n}\n\nconst propsUnsafeToSpread = new Set([\n 'activeProps',\n 'inactiveProps',\n 'activeOptions',\n 'to',\n 'preload',\n 'preloadDelay',\n 'hashScrollIntoView',\n 'replace',\n 'startTransition',\n 'resetScroll',\n 'viewTransition',\n 'children',\n 'target',\n 'disabled',\n 'style',\n 'class',\n 'onClick',\n 'onBlur',\n 'onFocus',\n 'onMouseEnter',\n 'onMouseenter',\n 'onMouseLeave',\n 'onMouseleave',\n 'onMouseOver',\n 'onMouseover',\n 'onMouseOut',\n 'onMouseout',\n 'onTouchStart',\n 'onTouchstart',\n 'ignoreBlocker',\n 'params',\n 'search',\n 'hash',\n 'state',\n 'mask',\n 'reloadDocument',\n '_asChild',\n 'from',\n 'additionalProps',\n])\n\n// Create safe props that can be spread\nconst getPropsSafeToSpread = (options: AnyLinkPropsOptions) => {\n const result: Record<string, unknown> = {}\n for (const key in options) {\n if (!propsUnsafeToSpread.has(key)) {\n result[key] = (options as Record<string, unknown>)[key]\n }\n }\n\n return result\n}\n\nfunction getIsActive({\n activeOptions,\n loc,\n nextLoc,\n router,\n}: {\n activeOptions: LinkOptions['activeOptions']\n loc: {\n pathname: string\n search: any\n hash: string\n }\n nextLoc: {\n pathname: string\n search: any\n hash: string\n }\n router: AnyRouter\n}) {\n if (activeOptions?.exact) {\n const testExact = exactPathTest(\n loc.pathname,\n nextLoc.pathname,\n router.basepath,\n )\n if (!testExact) {\n return false\n }\n } else {\n const currentPath = removeTrailingSlash(loc.pathname, router.basepath)\n const nextPath = removeTrailingSlash(nextLoc.pathname, router.basepath)\n\n const pathIsFuzzyEqual =\n currentPath.startsWith(nextPath) &&\n (currentPath.length === nextPath.length ||\n currentPath[nextPath.length] === '/')\n if (!pathIsFuzzyEqual) {\n return false\n }\n }\n\n if (activeOptions?.includeSearch ?? true) {\n const searchTest = deepEqual(loc.search, nextLoc.search, {\n partial: !activeOptions?.exact,\n ignoreUndefined: !activeOptions?.explicitUndefined,\n })\n if (!searchTest) {\n return false\n }\n }\n\n if (activeOptions?.includeHash) {\n return loc.hash === nextLoc.hash\n }\n return true\n}\n\nfunction getHref({\n options,\n router,\n nextLocation,\n}: {\n options: AnyLinkPropsOptions\n router: AnyRouter\n nextLocation?: ParsedLocation\n}) {\n if (options.disabled) {\n return undefined\n }\n const location = nextLocation?.maskedLocation ?? nextLocation\n\n // Use publicHref - it contains the correct href for display\n // When a rewrite changes the origin, publicHref is the full URL\n // Otherwise it's the origin-stripped path\n // This avoids constructing URL objects in the hot path\n const publicHref = location?.publicHref\n if (!publicHref) return undefined\n\n const external = location?.external\n if (external) return publicHref\n\n return router.history.createHref(publicHref) || '/'\n}\n\n// Type definitions\nexport type UseLinkPropsOptions<\n TRouter extends AnyRouter = RegisteredRouter,\n TFrom extends RoutePaths<TRouter['routeTree']> | string = string,\n TTo extends string | undefined = '.',\n TMaskFrom extends RoutePaths<TRouter['routeTree']> | string = TFrom,\n TMaskTo extends string = '.',\n> = ActiveLinkOptions<'a', TRouter, TFrom, TTo, TMaskFrom, TMaskTo> &\n LinkHTMLAttributes\n\nexport type ActiveLinkOptions<\n TComp = 'a',\n TRouter extends AnyRouter = RegisteredRouter,\n TFrom extends string = string,\n TTo extends string | undefined = '.',\n TMaskFrom extends string = TFrom,\n TMaskTo extends string = '.',\n> = LinkOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo> &\n ActiveLinkOptionProps<TComp>\n\ntype ActiveLinkProps<TComp> = Partial<\n (TComp extends keyof HTMLElementTagNameMap\n ? LinkHTMLAttributes\n : PropsOfComponent<TComp>) & {\n [key: `data-${string}`]: unknown\n }\n>\n\nexport interface ActiveLinkOptionProps<TComp = 'a'> {\n /**\n * A function that returns additional props for the `active` state of this link.\n * These props override other props passed to the link (`style`'s are merged, `class`'s are concatenated)\n */\n activeProps?: ActiveLinkProps<TComp> | (() => ActiveLinkProps<TComp>)\n /**\n * A function that returns additional props for the `inactive` state of this link.\n * These props override other props passed to the link (`style`'s are merged, `class`'s are concatenated)\n */\n inactiveProps?: ActiveLinkProps<TComp> | (() => ActiveLinkProps<TComp>)\n}\n\nexport type LinkProps<\n TComp = 'a',\n TRouter extends AnyRouter = RegisteredRouter,\n TFrom extends string = string,\n TTo extends string | undefined = '.',\n TMaskFrom extends string = TFrom,\n TMaskTo extends string = '.',\n> = ActiveLinkOptions<TComp, TRouter, TFrom, TTo, TMaskFrom, TMaskTo> &\n LinkPropsChildren\n\nexport interface LinkPropsChildren {\n // If a function is passed as a child, it will be given the `isActive` boolean to aid in further styling on the element it returns\n children?:\n | Vue.VNodeChild\n | ((state: {\n isActive: boolean\n isTransitioning: boolean\n }) => Vue.VNodeChild)\n}\n\ntype LinkComponentVueProps<TComp> = TComp extends keyof HTMLElementTagNameMap\n ? Omit<LinkHTMLAttributes, keyof CreateLinkProps>\n : Omit<PropsOfComponent<TComp>, keyof CreateLinkProps>\n\nexport type LinkComponentProps<\n TComp = 'a',\n TRouter extends AnyRouter = RegisteredRouter,\n TFrom extends string = string,\n TTo extends string | undefined = '.',\n TMaskFrom extends string = TFrom,\n TMaskTo extends string = '.',\n> = LinkComponentVueProps<TComp> &\n LinkProps<TComp, TRouter, TFrom, TTo, TMaskFrom, TMaskTo>\n\nexport type CreateLinkProps = LinkProps<\n any,\n any,\n string,\n string,\n string,\n string\n>\n\nexport type LinkComponent<\n in out TComp,\n in out TDefaultFrom extends string = string,\n> = <\n TRouter extends AnyRouter = RegisteredRouter,\n const TFrom extends string = TDefaultFrom,\n const TTo extends string | undefined = undefined,\n const TMaskFrom extends string = TFrom,\n const TMaskTo extends string = '',\n>(\n props: LinkComponentProps<TComp, TRouter, TFrom, TTo, TMaskFrom, TMaskTo>,\n) => Vue.VNode\n\nexport interface LinkComponentRoute<\n in out TDefaultFrom extends string = string,\n> {\n defaultFrom: TDefaultFrom;\n <\n TRouter extends AnyRouter = RegisteredRouter,\n const TTo extends string | undefined = undefined,\n const TMaskTo extends string = '',\n >(\n props: LinkComponentProps<\n 'a',\n TRouter,\n this['defaultFrom'],\n TTo,\n this['defaultFrom'],\n TMaskTo\n >,\n ): Vue.VNode\n}\n\nexport function createLink<const TComp>(\n Comp: Constrain<TComp, any, (props: CreateLinkProps) => Vue.VNode>,\n): LinkComponent<TComp> {\n return Vue.defineComponent({\n name: 'CreatedLink',\n inheritAttrs: false,\n setup(_, { attrs, slots }) {\n return () => Vue.h(LinkImpl as any, { ...attrs, _asChild: Comp }, slots)\n },\n }) as any\n}\n\nconst LinkImpl = Vue.defineComponent({\n name: 'Link',\n inheritAttrs: false,\n props: [\n '_asChild',\n 'to',\n 'preload',\n 'preloadDelay',\n 'activeProps',\n 'inactiveProps',\n 'activeOptions',\n 'from',\n 'search',\n 'params',\n 'hash',\n 'state',\n 'mask',\n 'reloadDocument',\n 'disabled',\n 'additionalProps',\n 'viewTransition',\n 'resetScroll',\n 'startTransition',\n 'hashScrollIntoView',\n 'replace',\n 'ignoreBlocker',\n 'target',\n ],\n setup(props, { attrs, slots }) {\n // Call useLinkProps ONCE during setup with combined props and attrs\n const allProps = { ...props, ...attrs }\n const linkPropsSource = useLinkProps(allProps as any) as\n | LinkHTMLAttributes\n | Vue.ComputedRef<LinkHTMLAttributes>\n\n return () => {\n const Component = props._asChild || 'a'\n\n const linkProps = Vue.unref(linkPropsSource)\n\n const isActive = linkProps['data-status'] === 'active'\n const isTransitioning =\n linkProps['data-transitioning'] === 'transitioning'\n\n // Create the slot content or empty array if no default slot\n const slotContent = slots.default\n ? slots.default({\n isActive,\n isTransitioning,\n })\n : []\n\n // Special handling for SVG links - wrap an <a> inside the SVG\n if (Component === 'svg') {\n // Create props without class for svg link\n const svgLinkProps = { ...linkProps }\n delete svgLinkProps.class\n return Vue.h('svg', {}, [Vue.h('a', svgLinkProps, slotContent)])\n }\n\n // For custom functional components (non-string), pass children as a prop\n // since they may expect children as a prop like in Solid\n if (typeof Component !== 'string') {\n return Vue.h(\n Component,\n { ...linkProps, children: slotContent },\n slotContent,\n )\n }\n\n // Return the component with props and children\n return Vue.h(Component, linkProps, slotContent)\n }\n },\n})\n\n/**\n * Link component with proper TypeScript generics support\n */\nexport const Link = LinkImpl as unknown as Vue.Component<unknown> &\n Vue.Component<CreateLinkProps> &\n LinkComponent<'a'>\n\nfunction isCtrlEvent(e: MouseEvent) {\n return !!(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey)\n}\n\nexport type LinkOptionsFnOptions<\n TOptions,\n TComp,\n TRouter extends AnyRouter = RegisteredRouter,\n> =\n TOptions extends ReadonlyArray<any>\n ? ValidateLinkOptionsArray<TRouter, TOptions, string, TComp>\n : ValidateLinkOptions<TRouter, TOptions, string, TComp>\n\nexport type LinkOptionsFn<TComp> = <\n const TOptions,\n TRouter extends AnyRouter = RegisteredRouter,\n>(\n options: LinkOptionsFnOptions<TOptions, TComp, TRouter>,\n) => TOptions\n\nexport const linkOptions: LinkOptionsFn<'a'> = (options) => {\n return options as any\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"link.js","names":["Vue","deepEqual","exactPathTest","isDangerousProtocol","preloadWarning","removeTrailingSlash","isServer","useStore","useRouter","useIntersectionObserver","timeoutMap","WeakMap","useLinkProps","options","router","isTransitioning","ref","hasRenderFetched","console","warn","computed","type","URL","to","eventHandlers","getLinkEventHandlers","value","protocolAllowlist","process","env","NODE_ENV","safeProps","getPropsSafeToSpread","target","disabled","style","class","onClick","onBlur","onFocus","onMouseenter","onMouseleave","onMouseover","onMouseout","onTouchstart","Object","keys","forEach","key","undefined","externalProps","href","next","buildLocation","getHref","nextLocation","isActive","getIsActive","loc","stores","location","state","nextLoc","activeOptions","resolvedActiveProps","resolvedInactiveProps","resolvedClassName","resolvedStyle","resolveStyleProps","result","combineResultProps","currentLocation","l","equal","prev","opts","_fromLocation","preload","reloadDocument","defaultPreload","preloadDelay","defaultPreloadDelay","doPreload","preloadRoute","_builtLocation","catch","err","preloadViewportIoCallback","entry","isIntersecting","rootMargin","effect","handleClick","e","elementTarget","currentTarget","getAttribute","effectiveTarget","isCtrlEvent","defaultPrevented","button","preventDefault","unsub","subscribe","navigate","replace","resetScroll","hashScrollIntoView","startTransition","viewTransition","ignoreBlocker","enqueueIntentPreload","eventTarget","has","set","setTimeout","delete","handleTouchStart","_","handleLeave","id","get","clearTimeout","composeEventHandlers","handlers","event","handler","resolvedStyleProps","staticEventHandlers","computedProps","activeProps","inactiveProps","classes","filter","Boolean","length","join","assign","role","onMouseEnter","onMouseLeave","onMouseOver","onMouseOut","onTouchStart","_activeProps","_inactiveProps","_activeOptions","_to","_preload","_preloadDelay","preloadIntentProximity","_preloadIntentProximity","_hashScrollIntoView","_replace","_startTransition","_resetScroll","_viewTransition","children","_children","_target","_disabled","_style","_class","_onClick","_onBlur","_onFocus","_onMouseEnter","_onMouseenter","_onMouseLeave","_onMouseleave","_onMouseOver","_onMouseover","_onMouseOut","_onMouseout","_onTouchStart","_onTouchstart","_ignoreBlocker","params","_params","search","_search","hash","_hash","_state","mask","_mask","_reloadDocument","unsafeRelative","_unsafeRelative","_asChild","__asChild","from","_from","additionalProps","_additionalProps","propsSafeToSpread","exact","testExact","pathname","basepath","currentPath","nextPath","pathIsFuzzyEqual","startsWith","includeSearch","searchTest","partial","ignoreUndefined","explicitUndefined","includeHash","maskedLocation","publicHref","external","history","createHref","createLink","Comp","defineComponent","name","inheritAttrs","setup","attrs","slots","h","LinkImpl","props","allProps","linkPropsSource","Component","linkProps","unref","slotContent","default","svgLinkProps","Link","metaKey","altKey","ctrlKey","shiftKey","linkOptions"],"sources":["../../src/link.tsx"],"sourcesContent":["import * as Vue from 'vue'\nimport {\n deepEqual,\n exactPathTest,\n isDangerousProtocol,\n preloadWarning,\n removeTrailingSlash,\n} from '@tanstack/router-core'\nimport { isServer } from '@tanstack/router-core/isServer'\n\nimport { useStore } from '@tanstack/vue-store'\nimport { useRouter } from './useRouter'\nimport { useIntersectionObserver } from './utils'\n\nimport type {\n AnyRouter,\n Constrain,\n LinkOptions,\n ParsedLocation,\n RegisteredRouter,\n RoutePaths,\n} from '@tanstack/router-core'\nimport type { AnchorHTMLAttributes, ReservedProps } from '@vue/runtime-dom'\nimport type {\n ValidateLinkOptions,\n ValidateLinkOptionsArray,\n} from './typePrimitives'\n\ntype EventHandler<TEvent = Event> = (e: TEvent) => void\n\nconst timeoutMap = new WeakMap<EventTarget, ReturnType<typeof setTimeout>>()\n\ntype DataAttributes = {\n [K in `data-${string}`]?: unknown\n}\n\ntype LinkHTMLAttributes = AnchorHTMLAttributes &\n ReservedProps &\n DataAttributes & {\n // Vue's runtime-dom types use lowercase event names.\n // Also accept camelCase versions for external API compatibility.\n onMouseEnter?: EventHandler<MouseEvent>\n onMouseLeave?: EventHandler<MouseEvent>\n onMouseOver?: EventHandler<MouseEvent>\n onMouseOut?: EventHandler<MouseEvent>\n onTouchStart?: EventHandler<TouchEvent>\n\n // `disabled` is not a valid <a> attribute, but is useful when using `asChild`.\n disabled?: boolean\n }\n\ntype VueStyleLinkEventHandlers = {\n onMouseenter?: EventHandler<MouseEvent>\n onMouseleave?: EventHandler<MouseEvent>\n onMouseover?: EventHandler<MouseEvent>\n onMouseout?: EventHandler<MouseEvent>\n onTouchstart?: EventHandler<TouchEvent>\n}\n\ninterface StyledProps {\n class?: LinkHTMLAttributes['class']\n style?: LinkHTMLAttributes['style']\n [key: string]: unknown\n}\n\ntype PropsOfComponent<TComp> =\n // Functional components\n TComp extends (props: infer P, ...args: Array<unknown>) => any\n ? P\n : // Vue components (defineComponent, class components, etc)\n TComp extends Vue.Component<infer P>\n ? P\n : Record<string, unknown>\n\ntype AnyLinkPropsOptions = UseLinkPropsOptions<any, any, any, any, any>\ntype LinkEventOptions = AnyLinkPropsOptions & Partial<VueStyleLinkEventHandlers>\n\nexport function useLinkProps<\n TRouter extends AnyRouter = RegisteredRouter,\n TFrom extends RoutePaths<TRouter['routeTree']> | string = string,\n TTo extends string = '',\n TMaskFrom extends RoutePaths<TRouter['routeTree']> | string = TFrom,\n TMaskTo extends string = '',\n>(\n options: UseLinkPropsOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>,\n): LinkHTMLAttributes {\n const router = useRouter()\n const isTransitioning = Vue.ref(false)\n let hasRenderFetched = false\n\n // Ensure router is defined before proceeding\n if (!router) {\n console.warn('useRouter must be used inside a <RouterProvider> component!')\n return Vue.computed(() => ({})) as unknown as LinkHTMLAttributes\n }\n\n // Determine if the link is external or internal\n const type = Vue.computed(() => {\n try {\n new URL(`${options.to}`)\n return 'external'\n } catch {\n return 'internal'\n }\n })\n\n const ref = Vue.ref<Element | null>(null)\n const eventHandlers = getLinkEventHandlers(options as LinkEventOptions)\n\n if (type.value === 'external') {\n // Block dangerous protocols like javascript:, blob:, data:\n if (isDangerousProtocol(options.to as string, router.protocolAllowlist)) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`Blocked Link with dangerous protocol: ${options.to}`)\n }\n // Return props without href to prevent navigation\n const safeProps: Record<string, unknown> = {\n ...getPropsSafeToSpread(options as AnyLinkPropsOptions),\n ref,\n // No href attribute - blocks the dangerous protocol\n target: options.target,\n disabled: options.disabled,\n style: options.style,\n class: options.class,\n onClick: options.onClick,\n onBlur: options.onBlur,\n onFocus: options.onFocus,\n onMouseenter: eventHandlers.onMouseenter,\n onMouseleave: eventHandlers.onMouseleave,\n onMouseover: eventHandlers.onMouseover,\n onMouseout: eventHandlers.onMouseout,\n onTouchstart: eventHandlers.onTouchstart,\n }\n\n // Remove undefined values\n Object.keys(safeProps).forEach((key) => {\n if (safeProps[key] === undefined) {\n delete safeProps[key]\n }\n })\n\n return Vue.computed(\n () => safeProps as LinkHTMLAttributes,\n ) as unknown as LinkHTMLAttributes\n }\n\n // External links just have simple props\n const externalProps: Record<string, unknown> = {\n ...getPropsSafeToSpread(options as AnyLinkPropsOptions),\n ref,\n href: options.to,\n target: options.target,\n disabled: options.disabled,\n style: options.style,\n class: options.class,\n onClick: options.onClick,\n onBlur: options.onBlur,\n onFocus: options.onFocus,\n onMouseenter: eventHandlers.onMouseenter,\n onMouseleave: eventHandlers.onMouseleave,\n onMouseover: eventHandlers.onMouseover,\n onMouseout: eventHandlers.onMouseout,\n onTouchstart: eventHandlers.onTouchstart,\n }\n\n // Remove undefined values\n Object.keys(externalProps).forEach((key) => {\n if (externalProps[key] === undefined) {\n delete externalProps[key]\n }\n })\n\n return Vue.computed(\n () => externalProps as LinkHTMLAttributes,\n ) as unknown as LinkHTMLAttributes\n }\n\n // During SSR we render exactly once and do not need reactivity.\n // Avoid store subscriptions, effects and observers on the server.\n if (isServer ?? router.isServer) {\n const next = router.buildLocation(options as any)\n const href = getHref({\n options: options as AnyLinkPropsOptions,\n router,\n nextLocation: next,\n })\n\n const isActive = getIsActive({\n loc: router.stores.location.state,\n nextLoc: next,\n activeOptions: options.activeOptions,\n router,\n })\n\n const {\n resolvedActiveProps,\n resolvedInactiveProps,\n resolvedClassName,\n resolvedStyle,\n } = resolveStyleProps({\n options: options as AnyLinkPropsOptions,\n isActive,\n })\n\n const result = combineResultProps({\n href,\n options: options as AnyLinkPropsOptions,\n isActive,\n isTransitioning: false,\n resolvedActiveProps,\n resolvedInactiveProps,\n resolvedClassName,\n resolvedStyle,\n })\n\n return Vue.ref(\n result as LinkHTMLAttributes,\n ) as unknown as LinkHTMLAttributes\n }\n\n const currentLocation = useStore(router.stores.location, (l) => l, {\n equal: (prev, next) => prev.href === next.href,\n })\n\n const next = Vue.computed(() => {\n // Rebuild when inherited search/hash or the current route context changes.\n\n const opts = { _fromLocation: currentLocation.value, ...options }\n return router.buildLocation(opts as any)\n })\n\n const preload = Vue.computed(() => {\n if (options.reloadDocument) {\n return false\n }\n return options.preload ?? router.options.defaultPreload\n })\n\n const preloadDelay = Vue.computed(\n () => options.preloadDelay ?? router.options.defaultPreloadDelay ?? 0,\n )\n\n const isActive = Vue.computed(() =>\n getIsActive({\n activeOptions: options.activeOptions,\n loc: currentLocation.value,\n nextLoc: next.value,\n router,\n }),\n )\n\n const doPreload = () =>\n router\n .preloadRoute({ ...options, _builtLocation: next.value } as any)\n .catch((err: any) => {\n console.warn(err)\n console.warn(preloadWarning)\n })\n\n const preloadViewportIoCallback = (\n entry: IntersectionObserverEntry | undefined,\n ) => {\n if (entry?.isIntersecting) {\n doPreload()\n }\n }\n\n useIntersectionObserver(\n ref,\n preloadViewportIoCallback,\n { rootMargin: '100px' },\n { disabled: () => !!options.disabled || !(preload.value === 'viewport') },\n )\n\n Vue.effect(() => {\n if (hasRenderFetched) {\n return\n }\n if (!options.disabled && preload.value === 'render') {\n doPreload()\n hasRenderFetched = true\n }\n })\n\n // The click handler\n const handleClick = (e: PointerEvent): void => {\n // Check actual element's target attribute as fallback\n const elementTarget = (\n e.currentTarget as HTMLAnchorElement | SVGAElement\n )?.getAttribute('target')\n const effectiveTarget =\n options.target !== undefined ? options.target : elementTarget\n\n if (\n !options.disabled &&\n !isCtrlEvent(e) &&\n !e.defaultPrevented &&\n (!effectiveTarget || effectiveTarget === '_self') &&\n e.button === 0\n ) {\n // Don't prevent default or handle navigation if reloadDocument is true\n if (options.reloadDocument) {\n return\n }\n\n e.preventDefault()\n\n isTransitioning.value = true\n\n const unsub = router.subscribe('onResolved', () => {\n unsub()\n isTransitioning.value = false\n })\n\n // All is well? Navigate!\n router.navigate({\n ...options,\n replace: options.replace,\n resetScroll: options.resetScroll,\n hashScrollIntoView: options.hashScrollIntoView,\n startTransition: options.startTransition,\n viewTransition: options.viewTransition,\n ignoreBlocker: options.ignoreBlocker,\n })\n }\n }\n\n const enqueueIntentPreload = (e: MouseEvent | FocusEvent) => {\n if (options.disabled || preload.value !== 'intent') return\n\n if (!preloadDelay.value) {\n doPreload()\n return\n }\n\n const eventTarget = e.currentTarget || e.target\n\n if (!eventTarget || timeoutMap.has(eventTarget)) return\n\n timeoutMap.set(\n eventTarget,\n setTimeout(() => {\n timeoutMap.delete(eventTarget)\n doPreload()\n }, preloadDelay.value),\n )\n }\n\n const handleTouchStart = (_: TouchEvent) => {\n if (options.disabled || preload.value !== 'intent') return\n doPreload()\n }\n\n const handleLeave = (e: MouseEvent | FocusEvent) => {\n if (options.disabled) return\n const eventTarget = e.currentTarget || e.target\n\n if (eventTarget) {\n const id = timeoutMap.get(eventTarget)\n clearTimeout(id)\n timeoutMap.delete(eventTarget)\n }\n }\n\n // Helper to compose event handlers - with explicit return type and better type handling\n function composeEventHandlers<T extends Event>(\n handlers: Array<EventHandler<T> | undefined>,\n ): (e: T) => void {\n return (event: T) => {\n for (const handler of handlers) {\n if (handler) {\n handler(event)\n }\n }\n }\n }\n\n // Get the active and inactive props\n const resolvedStyleProps = Vue.computed(() =>\n resolveStyleProps({\n options: options as AnyLinkPropsOptions,\n isActive: isActive.value,\n }),\n )\n\n const href = Vue.computed(() =>\n getHref({\n options: options as AnyLinkPropsOptions,\n router,\n nextLocation: next.value,\n }),\n )\n\n // Create static event handlers that don't change between renders\n const staticEventHandlers = {\n onClick: composeEventHandlers<PointerEvent>([\n options.onClick,\n handleClick,\n ]) as any,\n onBlur: composeEventHandlers<FocusEvent>([\n options.onBlur,\n handleLeave,\n ]) as any,\n onFocus: composeEventHandlers<FocusEvent>([\n options.onFocus,\n enqueueIntentPreload,\n ]) as any,\n onMouseenter: composeEventHandlers<MouseEvent>([\n eventHandlers.onMouseenter,\n enqueueIntentPreload,\n ]) as any,\n onMouseover: composeEventHandlers<MouseEvent>([\n eventHandlers.onMouseover,\n enqueueIntentPreload,\n ]) as any,\n onMouseleave: composeEventHandlers<MouseEvent>([\n eventHandlers.onMouseleave,\n handleLeave,\n ]) as any,\n onMouseout: composeEventHandlers<MouseEvent>([\n eventHandlers.onMouseout,\n handleLeave,\n ]) as any,\n onTouchstart: composeEventHandlers<TouchEvent>([\n eventHandlers.onTouchstart,\n handleTouchStart,\n ]) as any,\n }\n\n // Compute all props synchronously to avoid hydration mismatches\n // Using Vue.computed ensures props are calculated at render time, not after\n const computedProps = Vue.computed<LinkHTMLAttributes>(() => {\n const {\n resolvedActiveProps,\n resolvedInactiveProps,\n resolvedClassName,\n resolvedStyle,\n } = resolvedStyleProps.value\n return combineResultProps({\n href: href.value,\n options: options as AnyLinkPropsOptions,\n ref,\n staticEventHandlers,\n isActive: isActive.value,\n isTransitioning: isTransitioning.value,\n resolvedActiveProps,\n resolvedInactiveProps,\n resolvedClassName,\n resolvedStyle,\n })\n })\n\n // Return the computed ref itself - callers should access .value\n return computedProps as unknown as LinkHTMLAttributes\n}\n\nfunction resolveStyleProps({\n options,\n isActive,\n}: {\n options: AnyLinkPropsOptions\n isActive: boolean\n}) {\n const activeProps = options.activeProps || (() => ({ class: 'active' }))\n const resolvedActiveProps: StyledProps = (isActive\n ? typeof activeProps === 'function'\n ? activeProps()\n : activeProps\n : {}) || { class: undefined, style: undefined }\n\n const inactiveProps = options.inactiveProps || (() => ({}))\n\n const resolvedInactiveProps: StyledProps = (isActive\n ? {}\n : typeof inactiveProps === 'function'\n ? inactiveProps()\n : inactiveProps) || { class: undefined, style: undefined }\n\n const classes = [\n options.class,\n resolvedActiveProps?.class,\n resolvedInactiveProps?.class,\n ].filter(Boolean)\n const resolvedClassName = classes.length ? classes.join(' ') : undefined\n\n const result: Record<string, string | number> = {}\n\n // Merge styles from all sources\n if (options.style) {\n Object.assign(result, options.style)\n }\n\n if (resolvedActiveProps?.style) {\n Object.assign(result, resolvedActiveProps.style)\n }\n\n if (resolvedInactiveProps?.style) {\n Object.assign(result, resolvedInactiveProps.style)\n }\n\n const resolvedStyle = Object.keys(result).length > 0 ? result : undefined\n return {\n resolvedActiveProps,\n resolvedInactiveProps,\n resolvedClassName,\n resolvedStyle,\n }\n}\n\nfunction combineResultProps({\n href,\n options,\n isActive,\n isTransitioning,\n resolvedActiveProps,\n resolvedInactiveProps,\n resolvedClassName,\n resolvedStyle,\n ref,\n staticEventHandlers,\n}: {\n initial?: LinkHTMLAttributes\n href: string | undefined\n options: AnyLinkPropsOptions\n isActive: boolean\n isTransitioning: boolean\n resolvedActiveProps: StyledProps\n resolvedInactiveProps: StyledProps\n resolvedClassName?: string\n resolvedStyle?: Record<string, string | number>\n ref?: Vue.VNodeRef | undefined\n staticEventHandlers?: {\n onClick: any\n onBlur: any\n onFocus: any\n onMouseenter: any\n onMouseover: any\n onMouseleave: any\n onMouseout: any\n onTouchstart: any\n }\n}) {\n const result: Record<string, unknown> = {\n ...getPropsSafeToSpread(options),\n ref,\n ...staticEventHandlers,\n href,\n disabled: !!options.disabled,\n target: options.target,\n }\n\n if (resolvedStyle) {\n result.style = resolvedStyle\n }\n\n if (resolvedClassName) {\n result.class = resolvedClassName\n }\n\n if (options.disabled) {\n result.role = 'link'\n result['aria-disabled'] = true\n }\n\n if (isActive) {\n result['data-status'] = 'active'\n result['aria-current'] = 'page'\n }\n\n if (isTransitioning) {\n result['data-transitioning'] = 'transitioning'\n }\n\n for (const key of Object.keys(resolvedActiveProps)) {\n if (key !== 'class' && key !== 'style') {\n result[key] = resolvedActiveProps[key]\n }\n }\n\n for (const key of Object.keys(resolvedInactiveProps)) {\n if (key !== 'class' && key !== 'style') {\n result[key] = resolvedInactiveProps[key]\n }\n }\n return result\n}\n\nfunction getLinkEventHandlers(\n options: LinkEventOptions,\n): VueStyleLinkEventHandlers {\n return {\n onMouseenter: options.onMouseEnter ?? options.onMouseenter,\n onMouseleave: options.onMouseLeave ?? options.onMouseleave,\n onMouseover: options.onMouseOver ?? options.onMouseover,\n onMouseout: options.onMouseOut ?? options.onMouseout,\n onTouchstart: options.onTouchStart ?? options.onTouchstart,\n }\n}\n\nconst getPropsSafeToSpread = (options: AnyLinkPropsOptions) => {\n const {\n activeProps: _activeProps,\n inactiveProps: _inactiveProps,\n activeOptions: _activeOptions,\n to: _to,\n preload: _preload,\n preloadDelay: _preloadDelay,\n preloadIntentProximity: _preloadIntentProximity,\n hashScrollIntoView: _hashScrollIntoView,\n replace: _replace,\n startTransition: _startTransition,\n resetScroll: _resetScroll,\n viewTransition: _viewTransition,\n children: _children,\n target: _target,\n disabled: _disabled,\n style: _style,\n class: _class,\n onClick: _onClick,\n onBlur: _onBlur,\n onFocus: _onFocus,\n onMouseEnter: _onMouseEnter,\n onMouseenter: _onMouseenter,\n onMouseLeave: _onMouseLeave,\n onMouseleave: _onMouseleave,\n onMouseOver: _onMouseOver,\n onMouseover: _onMouseover,\n onMouseOut: _onMouseOut,\n onMouseout: _onMouseout,\n onTouchStart: _onTouchStart,\n onTouchstart: _onTouchstart,\n ignoreBlocker: _ignoreBlocker,\n params: _params,\n search: _search,\n hash: _hash,\n state: _state,\n mask: _mask,\n reloadDocument: _reloadDocument,\n unsafeRelative: _unsafeRelative,\n _asChild: __asChild,\n from: _from,\n additionalProps: _additionalProps,\n ...propsSafeToSpread\n } = options as AnyLinkPropsOptions & {\n additionalProps?: unknown\n children?: unknown\n _asChild?: unknown\n }\n\n return propsSafeToSpread\n}\n\nfunction getIsActive({\n activeOptions,\n loc,\n nextLoc,\n router,\n}: {\n activeOptions: LinkOptions['activeOptions']\n loc: {\n pathname: string\n search: any\n hash: string\n }\n nextLoc: {\n pathname: string\n search: any\n hash: string\n }\n router: AnyRouter\n}) {\n if (activeOptions?.exact) {\n const testExact = exactPathTest(\n loc.pathname,\n nextLoc.pathname,\n router.basepath,\n )\n if (!testExact) {\n return false\n }\n } else {\n const currentPath = removeTrailingSlash(loc.pathname, router.basepath)\n const nextPath = removeTrailingSlash(nextLoc.pathname, router.basepath)\n\n const pathIsFuzzyEqual =\n currentPath.startsWith(nextPath) &&\n (currentPath.length === nextPath.length ||\n currentPath[nextPath.length] === '/')\n if (!pathIsFuzzyEqual) {\n return false\n }\n }\n\n if (activeOptions?.includeSearch ?? true) {\n const searchTest = deepEqual(loc.search, nextLoc.search, {\n partial: !activeOptions?.exact,\n ignoreUndefined: !activeOptions?.explicitUndefined,\n })\n if (!searchTest) {\n return false\n }\n }\n\n if (activeOptions?.includeHash) {\n return loc.hash === nextLoc.hash\n }\n return true\n}\n\nfunction getHref({\n options,\n router,\n nextLocation,\n}: {\n options: AnyLinkPropsOptions\n router: AnyRouter\n nextLocation?: ParsedLocation\n}) {\n if (options.disabled) {\n return undefined\n }\n const location = nextLocation?.maskedLocation ?? nextLocation\n\n // Use publicHref - it contains the correct href for display\n // When a rewrite changes the origin, publicHref is the full URL\n // Otherwise it's the origin-stripped path\n // This avoids constructing URL objects in the hot path\n const publicHref = location?.publicHref\n if (!publicHref) return undefined\n\n const external = location?.external\n if (external) return publicHref\n\n return router.history.createHref(publicHref) || '/'\n}\n\n// Type definitions\nexport type UseLinkPropsOptions<\n TRouter extends AnyRouter = RegisteredRouter,\n TFrom extends RoutePaths<TRouter['routeTree']> | string = string,\n TTo extends string | undefined = '.',\n TMaskFrom extends RoutePaths<TRouter['routeTree']> | string = TFrom,\n TMaskTo extends string = '.',\n> = ActiveLinkOptions<'a', TRouter, TFrom, TTo, TMaskFrom, TMaskTo> &\n LinkHTMLAttributes\n\nexport type ActiveLinkOptions<\n TComp = 'a',\n TRouter extends AnyRouter = RegisteredRouter,\n TFrom extends string = string,\n TTo extends string | undefined = '.',\n TMaskFrom extends string = TFrom,\n TMaskTo extends string = '.',\n> = LinkOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo> &\n ActiveLinkOptionProps<TComp>\n\ntype ActiveLinkProps<TComp> = Partial<\n (TComp extends keyof HTMLElementTagNameMap\n ? LinkHTMLAttributes\n : PropsOfComponent<TComp>) & {\n [key: `data-${string}`]: unknown\n }\n>\n\nexport interface ActiveLinkOptionProps<TComp = 'a'> {\n /**\n * A function that returns additional props for the `active` state of this link.\n * These props override other props passed to the link (`style`'s are merged, `class`'s are concatenated)\n */\n activeProps?: ActiveLinkProps<TComp> | (() => ActiveLinkProps<TComp>)\n /**\n * A function that returns additional props for the `inactive` state of this link.\n * These props override other props passed to the link (`style`'s are merged, `class`'s are concatenated)\n */\n inactiveProps?: ActiveLinkProps<TComp> | (() => ActiveLinkProps<TComp>)\n}\n\nexport type LinkProps<\n TComp = 'a',\n TRouter extends AnyRouter = RegisteredRouter,\n TFrom extends string = string,\n TTo extends string | undefined = '.',\n TMaskFrom extends string = TFrom,\n TMaskTo extends string = '.',\n> = ActiveLinkOptions<TComp, TRouter, TFrom, TTo, TMaskFrom, TMaskTo> &\n LinkPropsChildren\n\nexport interface LinkPropsChildren {\n // If a function is passed as a child, it will be given the `isActive` boolean to aid in further styling on the element it returns\n children?:\n | Vue.VNodeChild\n | ((state: {\n isActive: boolean\n isTransitioning: boolean\n }) => Vue.VNodeChild)\n}\n\ntype LinkComponentVueProps<TComp> = TComp extends keyof HTMLElementTagNameMap\n ? Omit<LinkHTMLAttributes, keyof CreateLinkProps>\n : Omit<PropsOfComponent<TComp>, keyof CreateLinkProps>\n\nexport type LinkComponentProps<\n TComp = 'a',\n TRouter extends AnyRouter = RegisteredRouter,\n TFrom extends string = string,\n TTo extends string | undefined = '.',\n TMaskFrom extends string = TFrom,\n TMaskTo extends string = '.',\n> = LinkComponentVueProps<TComp> &\n LinkProps<TComp, TRouter, TFrom, TTo, TMaskFrom, TMaskTo>\n\nexport type CreateLinkProps = LinkProps<\n any,\n any,\n string,\n string,\n string,\n string\n>\n\nexport type LinkComponent<\n in out TComp,\n in out TDefaultFrom extends string = string,\n> = <\n TRouter extends AnyRouter = RegisteredRouter,\n const TFrom extends string = TDefaultFrom,\n const TTo extends string | undefined = undefined,\n const TMaskFrom extends string = TFrom,\n const TMaskTo extends string = '',\n>(\n props: LinkComponentProps<TComp, TRouter, TFrom, TTo, TMaskFrom, TMaskTo>,\n) => Vue.VNode\n\nexport interface LinkComponentRoute<\n in out TDefaultFrom extends string = string,\n> {\n defaultFrom: TDefaultFrom;\n <\n TRouter extends AnyRouter = RegisteredRouter,\n const TTo extends string | undefined = undefined,\n const TMaskTo extends string = '',\n >(\n props: LinkComponentProps<\n 'a',\n TRouter,\n this['defaultFrom'],\n TTo,\n this['defaultFrom'],\n TMaskTo\n >,\n ): Vue.VNode\n}\n\nexport function createLink<const TComp>(\n Comp: Constrain<TComp, any, (props: CreateLinkProps) => Vue.VNode>,\n): LinkComponent<TComp> {\n return Vue.defineComponent({\n name: 'CreatedLink',\n inheritAttrs: false,\n setup(_, { attrs, slots }) {\n return () => Vue.h(LinkImpl as any, { ...attrs, _asChild: Comp }, slots)\n },\n }) as any\n}\n\nconst LinkImpl = Vue.defineComponent({\n name: 'Link',\n inheritAttrs: false,\n props: [\n '_asChild',\n 'to',\n 'preload',\n 'preloadDelay',\n 'preloadIntentProximity',\n 'activeProps',\n 'inactiveProps',\n 'activeOptions',\n 'from',\n 'search',\n 'params',\n 'hash',\n 'state',\n 'mask',\n 'reloadDocument',\n 'disabled',\n 'additionalProps',\n 'viewTransition',\n 'resetScroll',\n 'startTransition',\n 'hashScrollIntoView',\n 'replace',\n 'ignoreBlocker',\n 'target',\n ],\n setup(props, { attrs, slots }) {\n // Call useLinkProps ONCE during setup with combined props and attrs\n const allProps = { ...props, ...attrs }\n const linkPropsSource = useLinkProps(allProps as any) as\n | LinkHTMLAttributes\n | Vue.ComputedRef<LinkHTMLAttributes>\n\n return () => {\n const Component = props._asChild || 'a'\n\n const linkProps = Vue.unref(linkPropsSource)\n\n const isActive = linkProps['data-status'] === 'active'\n const isTransitioning =\n linkProps['data-transitioning'] === 'transitioning'\n\n // Create the slot content or empty array if no default slot\n const slotContent = slots.default\n ? slots.default({\n isActive,\n isTransitioning,\n })\n : []\n\n // Special handling for SVG links - wrap an <a> inside the SVG\n if (Component === 'svg') {\n // Create props without class for svg link\n const svgLinkProps = { ...linkProps }\n delete svgLinkProps.class\n return Vue.h('svg', {}, [Vue.h('a', svgLinkProps, slotContent)])\n }\n\n // For custom functional components (non-string), pass children as a prop\n // since they may expect children as a prop like in Solid\n if (typeof Component !== 'string') {\n return Vue.h(\n Component,\n { ...linkProps, children: slotContent },\n slotContent,\n )\n }\n\n // Return the component with props and children\n return Vue.h(Component, linkProps, slotContent)\n }\n },\n})\n\n/**\n * Link component with proper TypeScript generics support\n */\nexport const Link = LinkImpl as unknown as Vue.Component<unknown> &\n Vue.Component<CreateLinkProps> &\n LinkComponent<'a'>\n\nfunction isCtrlEvent(e: MouseEvent) {\n return !!(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey)\n}\n\nexport type LinkOptionsFnOptions<\n TOptions,\n TComp,\n TRouter extends AnyRouter = RegisteredRouter,\n> =\n TOptions extends ReadonlyArray<any>\n ? ValidateLinkOptionsArray<TRouter, TOptions, string, TComp>\n : ValidateLinkOptions<TRouter, TOptions, string, TComp>\n\nexport type LinkOptionsFn<TComp> = <\n const TOptions,\n TRouter extends AnyRouter = RegisteredRouter,\n>(\n options: LinkOptionsFnOptions<TOptions, TComp, TRouter>,\n) => TOptions\n\nexport const linkOptions: LinkOptionsFn<'a'> = (options) => {\n return options as any\n}\n"],"mappings":"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"}
@@ -379,56 +379,9 @@ function getLinkEventHandlers(options) {
379
379
  onTouchstart: options.onTouchStart ?? options.onTouchstart,
380
380
  };
381
381
  }
382
- const propsUnsafeToSpread = new Set([
383
- 'activeProps',
384
- 'inactiveProps',
385
- 'activeOptions',
386
- 'to',
387
- 'preload',
388
- 'preloadDelay',
389
- 'hashScrollIntoView',
390
- 'replace',
391
- 'startTransition',
392
- 'resetScroll',
393
- 'viewTransition',
394
- 'children',
395
- 'target',
396
- 'disabled',
397
- 'style',
398
- 'class',
399
- 'onClick',
400
- 'onBlur',
401
- 'onFocus',
402
- 'onMouseEnter',
403
- 'onMouseenter',
404
- 'onMouseLeave',
405
- 'onMouseleave',
406
- 'onMouseOver',
407
- 'onMouseover',
408
- 'onMouseOut',
409
- 'onMouseout',
410
- 'onTouchStart',
411
- 'onTouchstart',
412
- 'ignoreBlocker',
413
- 'params',
414
- 'search',
415
- 'hash',
416
- 'state',
417
- 'mask',
418
- 'reloadDocument',
419
- '_asChild',
420
- 'from',
421
- 'additionalProps',
422
- ]);
423
- // Create safe props that can be spread
424
382
  const getPropsSafeToSpread = (options) => {
425
- const result = {};
426
- for (const key in options) {
427
- if (!propsUnsafeToSpread.has(key)) {
428
- result[key] = options[key];
429
- }
430
- }
431
- return result;
383
+ const { activeProps: _activeProps, inactiveProps: _inactiveProps, activeOptions: _activeOptions, to: _to, preload: _preload, preloadDelay: _preloadDelay, preloadIntentProximity: _preloadIntentProximity, hashScrollIntoView: _hashScrollIntoView, replace: _replace, startTransition: _startTransition, resetScroll: _resetScroll, viewTransition: _viewTransition, children: _children, target: _target, disabled: _disabled, style: _style, class: _class, onClick: _onClick, onBlur: _onBlur, onFocus: _onFocus, onMouseEnter: _onMouseEnter, onMouseenter: _onMouseenter, onMouseLeave: _onMouseLeave, onMouseleave: _onMouseleave, onMouseOver: _onMouseOver, onMouseover: _onMouseover, onMouseOut: _onMouseOut, onMouseout: _onMouseout, onTouchStart: _onTouchStart, onTouchstart: _onTouchstart, ignoreBlocker: _ignoreBlocker, params: _params, search: _search, hash: _hash, state: _state, mask: _mask, reloadDocument: _reloadDocument, unsafeRelative: _unsafeRelative, _asChild: __asChild, from: _from, additionalProps: _additionalProps, ...propsSafeToSpread } = options;
384
+ return propsSafeToSpread;
432
385
  };
433
386
  function getIsActive({ activeOptions, loc, nextLoc, router, }) {
434
387
  if (activeOptions?.exact) {
@@ -495,6 +448,7 @@ const LinkImpl = Vue.defineComponent({
495
448
  'to',
496
449
  'preload',
497
450
  'preloadDelay',
451
+ 'preloadIntentProximity',
498
452
  'activeProps',
499
453
  'inactiveProps',
500
454
  'activeOptions',
@@ -1 +1 @@
1
- {"version":3,"file":"link.jsx","sourceRoot":"","sources":["../../src/link.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"link.jsx","sourceRoot":"","sources":["../../src/link.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tanstack/vue-router",
3
- "version": "1.168.9",
3
+ "version": "1.168.10",
4
4
  "description": "Modern and scalable routing for Vue applications",
5
5
  "author": "Tanner Linsley",
6
6
  "license": "MIT",
package/src/link.tsx CHANGED
@@ -597,58 +597,57 @@ function getLinkEventHandlers(
597
597
  }
598
598
  }
599
599
 
600
- const propsUnsafeToSpread = new Set([
601
- 'activeProps',
602
- 'inactiveProps',
603
- 'activeOptions',
604
- 'to',
605
- 'preload',
606
- 'preloadDelay',
607
- 'hashScrollIntoView',
608
- 'replace',
609
- 'startTransition',
610
- 'resetScroll',
611
- 'viewTransition',
612
- 'children',
613
- 'target',
614
- 'disabled',
615
- 'style',
616
- 'class',
617
- 'onClick',
618
- 'onBlur',
619
- 'onFocus',
620
- 'onMouseEnter',
621
- 'onMouseenter',
622
- 'onMouseLeave',
623
- 'onMouseleave',
624
- 'onMouseOver',
625
- 'onMouseover',
626
- 'onMouseOut',
627
- 'onMouseout',
628
- 'onTouchStart',
629
- 'onTouchstart',
630
- 'ignoreBlocker',
631
- 'params',
632
- 'search',
633
- 'hash',
634
- 'state',
635
- 'mask',
636
- 'reloadDocument',
637
- '_asChild',
638
- 'from',
639
- 'additionalProps',
640
- ])
641
-
642
- // Create safe props that can be spread
643
600
  const getPropsSafeToSpread = (options: AnyLinkPropsOptions) => {
644
- const result: Record<string, unknown> = {}
645
- for (const key in options) {
646
- if (!propsUnsafeToSpread.has(key)) {
647
- result[key] = (options as Record<string, unknown>)[key]
648
- }
649
- }
650
-
651
- return result
601
+ const {
602
+ activeProps: _activeProps,
603
+ inactiveProps: _inactiveProps,
604
+ activeOptions: _activeOptions,
605
+ to: _to,
606
+ preload: _preload,
607
+ preloadDelay: _preloadDelay,
608
+ preloadIntentProximity: _preloadIntentProximity,
609
+ hashScrollIntoView: _hashScrollIntoView,
610
+ replace: _replace,
611
+ startTransition: _startTransition,
612
+ resetScroll: _resetScroll,
613
+ viewTransition: _viewTransition,
614
+ children: _children,
615
+ target: _target,
616
+ disabled: _disabled,
617
+ style: _style,
618
+ class: _class,
619
+ onClick: _onClick,
620
+ onBlur: _onBlur,
621
+ onFocus: _onFocus,
622
+ onMouseEnter: _onMouseEnter,
623
+ onMouseenter: _onMouseenter,
624
+ onMouseLeave: _onMouseLeave,
625
+ onMouseleave: _onMouseleave,
626
+ onMouseOver: _onMouseOver,
627
+ onMouseover: _onMouseover,
628
+ onMouseOut: _onMouseOut,
629
+ onMouseout: _onMouseout,
630
+ onTouchStart: _onTouchStart,
631
+ onTouchstart: _onTouchstart,
632
+ ignoreBlocker: _ignoreBlocker,
633
+ params: _params,
634
+ search: _search,
635
+ hash: _hash,
636
+ state: _state,
637
+ mask: _mask,
638
+ reloadDocument: _reloadDocument,
639
+ unsafeRelative: _unsafeRelative,
640
+ _asChild: __asChild,
641
+ from: _from,
642
+ additionalProps: _additionalProps,
643
+ ...propsSafeToSpread
644
+ } = options as AnyLinkPropsOptions & {
645
+ additionalProps?: unknown
646
+ children?: unknown
647
+ _asChild?: unknown
648
+ }
649
+
650
+ return propsSafeToSpread
652
651
  }
653
652
 
654
653
  function getIsActive({
@@ -872,6 +871,7 @@ const LinkImpl = Vue.defineComponent({
872
871
  'to',
873
872
  'preload',
874
873
  'preloadDelay',
874
+ 'preloadIntentProximity',
875
875
  'activeProps',
876
876
  'inactiveProps',
877
877
  'activeOptions',