@tanstack/react-router 0.0.1-beta.61 → 0.0.1-beta.62

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/index.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport {\n Route,\n RegisteredRoutesInfo,\n RegisteredRouter,\n RouterStore,\n last,\n warning,\n RouterOptions,\n RouteMatch,\n MatchRouteOptions,\n AnyRoute,\n AnyRoutesInfo,\n DefaultRoutesInfo,\n functionalUpdate,\n RoutesInfo,\n ValidFromPath,\n LinkOptions,\n RouteByPath,\n ResolveRelativePath,\n NoInfer,\n ToOptions,\n invariant,\n Router,\n Expand,\n} from '@tanstack/router'\nimport { useStore } from '@tanstack/react-store'\n\n//\n\nexport * from '@tanstack/router'\n\nexport { useStore }\n\n//\n\ntype ReactNode = any\n\nexport type SyncRouteComponent<TProps = {}> = (props: TProps) => ReactNode\n\nexport type RouteComponent<TProps = {}> = SyncRouteComponent<TProps> & {\n preload?: () => Promise<void>\n}\n\nexport function lazy(\n importer: () => Promise<{ default: SyncRouteComponent }>,\n): RouteComponent {\n const lazyComp = React.lazy(importer as any)\n let preloaded: Promise<SyncRouteComponent>\n\n const finalComp = lazyComp as unknown as RouteComponent\n\n finalComp.preload = async () => {\n if (!preloaded) {\n await importer()\n }\n }\n\n return finalComp\n}\n\nexport type LinkPropsOptions<\n TFrom extends RegisteredRoutesInfo['routePaths'] = '/',\n TTo extends string = '.',\n> = LinkOptions<RegisteredRoutesInfo, TFrom, TTo> & {\n // A function that returns additional props for the `active` state of this link. These props override other props passed to the link (`style`'s are merged, `className`'s are concatenated)\n activeProps?:\n | React.AnchorHTMLAttributes<HTMLAnchorElement>\n | (() => React.AnchorHTMLAttributes<HTMLAnchorElement>)\n // A function that returns additional props for the `inactive` state of this link. These props override other props passed to the link (`style`'s are merged, `className`'s are concatenated)\n inactiveProps?:\n | React.AnchorHTMLAttributes<HTMLAnchorElement>\n | (() => React.AnchorHTMLAttributes<HTMLAnchorElement>)\n}\n\nexport type MakeUseMatchRouteOptions<\n TFrom extends RegisteredRoutesInfo['routePaths'] = '/',\n TTo extends string = '.',\n> = ToOptions<RegisteredRoutesInfo, TFrom, TTo> & MatchRouteOptions\n\nexport type MakeMatchRouteOptions<\n TFrom extends RegisteredRoutesInfo['routePaths'] = '/',\n TTo extends string = '.',\n> = ToOptions<RegisteredRoutesInfo, TFrom, TTo> &\n MatchRouteOptions & {\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 | ReactNode\n | ((\n params: RouteByPath<\n RegisteredRoutesInfo,\n ResolveRelativePath<TFrom, NoInfer<TTo>>\n >['__types']['allParams'],\n ) => ReactNode)\n }\n\nexport type MakeLinkPropsOptions<\n TFrom extends ValidFromPath<RegisteredRoutesInfo> = '/',\n TTo extends string = '.',\n> = LinkPropsOptions<TFrom, TTo> & React.AnchorHTMLAttributes<HTMLAnchorElement>\n\nexport type MakeLinkOptions<\n TFrom extends RegisteredRoutesInfo['routePaths'] = '/',\n TTo extends string = '.',\n> = LinkPropsOptions<TFrom, TTo> &\n React.AnchorHTMLAttributes<HTMLAnchorElement> &\n Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'children'> & {\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?: ReactNode | ((state: { isActive: boolean }) => ReactNode)\n }\n\ndeclare module '@tanstack/router' {\n interface FrameworkGenerics {\n Component: RouteComponent\n ErrorComponent: RouteComponent<{\n error: unknown\n info: { componentStack: string }\n }>\n }\n\n interface RouterOptions<TRouteTree, TRouterContext> {\n // ssrFooter?: () => JSX.Element | Node\n }\n}\n\nexport type PromptProps = {\n message: string\n when?: boolean | any\n children?: ReactNode\n}\n\n//\n\nexport function useLinkProps<\n TFrom extends ValidFromPath<RegisteredRoutesInfo> = '/',\n TTo extends string = '.',\n>(\n options: MakeLinkPropsOptions<TFrom, TTo>,\n): React.AnchorHTMLAttributes<HTMLAnchorElement> {\n const router = useRouter()\n\n const {\n // custom props\n type,\n children,\n target,\n activeProps = () => ({ className: 'active' }),\n inactiveProps = () => ({}),\n activeOptions,\n disabled,\n // fromCurrent,\n hash,\n search,\n params,\n to = '.',\n preload,\n preloadDelay,\n preloadMaxAge,\n replace,\n // element props\n style,\n className,\n onClick,\n onFocus,\n onMouseEnter,\n onMouseLeave,\n onTouchStart,\n onTouchEnd,\n ...rest\n } = options\n\n const linkInfo = router.buildLink(options as any)\n\n if (linkInfo.type === 'external') {\n const { href } = linkInfo\n return { href }\n }\n\n const { handleClick, handleFocus, handleEnter, handleLeave, isActive, next } =\n linkInfo\n\n const reactHandleClick = (e: Event) => {\n if (React.startTransition) {\n // This is a hack for react < 18\n React.startTransition(() => {\n handleClick(e)\n })\n } else {\n handleClick(e)\n }\n }\n\n const composeHandlers =\n (handlers: (undefined | ((e: any) => void))[]) =>\n (e: React.SyntheticEvent) => {\n if (e.persist) e.persist()\n handlers.filter(Boolean).forEach((handler) => {\n if (e.defaultPrevented) return\n handler!(e)\n })\n }\n\n // Get the active props\n const resolvedActiveProps: React.HTMLAttributes<HTMLAnchorElement> = isActive\n ? functionalUpdate(activeProps as any, {}) ?? {}\n : {}\n\n // Get the inactive props\n const resolvedInactiveProps: React.HTMLAttributes<HTMLAnchorElement> =\n isActive ? {} : functionalUpdate(inactiveProps, {}) ?? {}\n\n return {\n ...resolvedActiveProps,\n ...resolvedInactiveProps,\n ...rest,\n href: disabled ? undefined : next.href,\n onClick: composeHandlers([onClick, reactHandleClick]),\n onFocus: composeHandlers([onFocus, handleFocus]),\n onMouseEnter: composeHandlers([onMouseEnter, handleEnter]),\n onMouseLeave: composeHandlers([onMouseLeave, handleLeave]),\n target,\n style: {\n ...style,\n ...resolvedActiveProps.style,\n ...resolvedInactiveProps.style,\n },\n className:\n [\n className,\n resolvedActiveProps.className,\n resolvedInactiveProps.className,\n ]\n .filter(Boolean)\n .join(' ') || undefined,\n ...(disabled\n ? {\n role: 'link',\n 'aria-disabled': true,\n }\n : undefined),\n ['data-status']: isActive ? 'active' : undefined,\n }\n}\n\nexport interface LinkFn<\n TDefaultFrom extends RegisteredRoutesInfo['routePaths'] = '/',\n TDefaultTo extends string = '.',\n> {\n <\n TFrom extends RegisteredRoutesInfo['routePaths'] = TDefaultFrom,\n TTo extends string = TDefaultTo,\n >(\n props: MakeLinkOptions<TFrom, TTo> & React.RefAttributes<HTMLAnchorElement>,\n ): ReactNode\n}\n\nexport const Link: LinkFn = React.forwardRef((props: any, ref) => {\n const linkProps = useLinkProps(props)\n\n return (\n <a\n {...{\n ref: ref as any,\n ...linkProps,\n children:\n typeof props.children === 'function'\n ? props.children({\n isActive: (linkProps as any)['data-status'] === 'active',\n })\n : props.children,\n }}\n />\n )\n}) as any\n\ntype MatchesContextValue = RouteMatch[]\n\nexport const matchesContext = React.createContext<MatchesContextValue>(null!)\nexport const routerContext = React.createContext<{ router: RegisteredRouter }>(\n null!,\n)\n\nexport type MatchesProviderProps = {\n value: MatchesContextValue\n children: ReactNode\n}\n\nexport class ReactRouter<\n TRouteConfig extends AnyRoute = Route,\n TRoutesInfo extends AnyRoutesInfo = RoutesInfo<TRouteConfig>,\n TRouterContext = unknown,\n> extends Router<TRouteConfig, TRoutesInfo, TRouterContext> {\n constructor(opts: RouterOptions<TRouteConfig, TRouterContext>) {\n super({\n ...opts,\n loadComponent: async (component) => {\n if (component.preload) {\n await component.preload()\n }\n\n return component as any\n },\n })\n }\n}\n\nexport type RouterProps<\n TRouteConfig extends AnyRoute = Route,\n TRoutesInfo extends AnyRoutesInfo = DefaultRoutesInfo,\n TRouterContext = unknown,\n> = RouterOptions<TRouteConfig, TRouterContext> & {\n router: Router<TRouteConfig, TRoutesInfo, TRouterContext>\n}\n\nexport function RouterProvider<\n TRouteConfig extends AnyRoute = Route,\n TRoutesInfo extends AnyRoutesInfo = DefaultRoutesInfo,\n TRouterContext = unknown,\n>({ router, ...rest }: RouterProps<TRouteConfig, TRoutesInfo, TRouterContext>) {\n router.update(rest)\n\n const currentMatches = useStore(\n router.store,\n (s) => s.currentMatches,\n undefined,\n )\n\n React.useEffect(router.mount, [router])\n\n return (\n <>\n <routerContext.Provider value={{ router: router as any }}>\n <matchesContext.Provider value={[undefined!, ...currentMatches]}>\n <Outlet />\n </matchesContext.Provider>\n </routerContext.Provider>\n </>\n )\n}\n\nexport function useRouter(): RegisteredRouter {\n const value = React.useContext(routerContext)\n warning(!value, 'useRouter must be used inside a <Router> component!')\n return value.router\n}\n\nexport function useRouterStore<T = RouterStore>(\n selector?: (state: Router['store']) => T,\n shallow?: boolean,\n): T {\n const router = useRouter()\n return useStore(router.store, selector as any, shallow)\n}\n\nexport function useMatches(): RouteMatch[] {\n return React.useContext(matchesContext)\n}\n\nexport function useMatch<\n TFrom extends keyof RegisteredRoutesInfo['routesById'],\n TStrict extends boolean = true,\n TRouteMatch = RouteMatch<\n RegisteredRoutesInfo,\n RegisteredRoutesInfo['routesById'][TFrom]\n >,\n>(opts?: {\n from: TFrom\n strict?: TStrict\n track?: (match: TRouteMatch) => any\n shallow?: boolean\n}): TStrict extends true ? TRouteMatch : TRouteMatch | undefined {\n const router = useRouter()\n const nearestMatch = useMatches()[0]!\n const match = opts?.from\n ? router.store.state.currentMatches.find((d) => d.route.id === opts?.from)\n : nearestMatch\n\n invariant(\n match,\n `Could not find ${\n opts?.from ? `an active match from \"${opts.from}\"` : 'a nearest match!'\n }`,\n )\n\n if (opts?.strict ?? true) {\n invariant(\n nearestMatch.route.id == match?.route.id,\n `useMatch(\"${\n match?.route.id as string\n }\") is being called in a component that is meant to render the '${\n nearestMatch.route.id\n }' route. Did you mean to 'useMatch(\"${\n match?.route.id as string\n }\", { strict: false })' or 'useRoute(\"${\n match?.route.id as string\n }\")' instead?`,\n )\n }\n\n useStore(\n match!.store,\n (d) => opts?.track?.(match as any) ?? match,\n opts?.shallow,\n )\n\n return match as any\n}\n\nexport function useRoute<\n TId extends keyof RegisteredRoutesInfo['routesById'] = '/',\n>(routeId: TId): RegisteredRoutesInfo['routesById'][TId] {\n const router = useRouter()\n const resolvedRoute = router.getRoute(routeId as any)\n\n invariant(\n resolvedRoute,\n `Could not find a route for route \"${\n routeId as string\n }\"! Did you forget to add it to your route config?`,\n )\n\n return resolvedRoute as any\n}\n\nexport function useSearch<\n TFrom extends keyof RegisteredRoutesInfo['routesById'],\n TStrict extends boolean = true,\n TSearch = RegisteredRoutesInfo['routesById'][TFrom]['__types']['fullSearchSchema'],\n TSelected = TSearch,\n>(opts?: {\n from: TFrom\n strict?: TStrict\n track?: (search: TSearch) => TSelected\n}): TStrict extends true ? TSelected : TSelected | undefined {\n const match = useMatch(opts)\n useStore(\n (match as any).store,\n (d: any) => opts?.track?.(d.search) ?? d.search,\n )\n\n return (match as unknown as RouteMatch).store.state.search as any\n}\n\nexport function useParams<\n TFrom extends keyof RegisteredRoutesInfo['routesById'] = '/',\n TDefaultSelected = Expand<\n RegisteredRoutesInfo['allParams'] &\n RegisteredRoutesInfo['routesById'][TFrom]['__types']['allParams']\n >,\n TSelected = TDefaultSelected,\n>(opts?: {\n from: TFrom\n track?: (search: TDefaultSelected) => TSelected\n}): TSelected {\n const router = useRouter()\n useStore(router.store, (d) => {\n const params = last(d.currentMatches)?.params as any\n return opts?.track?.(params) ?? params\n })\n\n return last(router.store.state.currentMatches)?.params as any\n}\n\nexport function useNavigate<\n TDefaultFrom extends keyof RegisteredRoutesInfo['routesById'] = '/',\n>(defaultOpts?: { from?: TDefaultFrom }) {\n const router = useRouter()\n return <\n TFrom extends keyof RegisteredRoutesInfo['routesById'] = TDefaultFrom,\n TTo extends string = '.',\n >(\n opts?: MakeLinkOptions<TFrom, TTo>,\n ) => {\n return router.navigate({ ...defaultOpts, ...(opts as any) })\n }\n}\n\nexport function useMatchRoute() {\n const router = useRouter()\n\n return <\n TFrom extends ValidFromPath<RegisteredRoutesInfo> = '/',\n TTo extends string = '.',\n >(\n opts: MakeUseMatchRouteOptions<TFrom, TTo>,\n ) => {\n const { pending, caseSensitive, ...rest } = opts\n\n return router.matchRoute(rest as any, {\n pending,\n caseSensitive,\n })\n }\n}\n\nexport function MatchRoute<\n TFrom extends ValidFromPath<RegisteredRoutesInfo> = '/',\n TTo extends string = '.',\n>(props: MakeMatchRouteOptions<TFrom, TTo>): any {\n const matchRoute = useMatchRoute()\n const params = matchRoute(props)\n\n if (!params) {\n return null\n }\n\n if (typeof props.children === 'function') {\n return (props.children as any)(params)\n }\n\n return params ? props.children : null\n}\n\nexport function Outlet() {\n const matches = useMatches().slice(1)\n const match = matches[0]\n\n if (!match) {\n return null\n }\n\n return <SubOutlet matches={matches} match={match} />\n}\n\nfunction SubOutlet({\n matches,\n match,\n}: {\n matches: RouteMatch[]\n match: RouteMatch\n}) {\n const router = useRouter()\n useStore(match!.store)\n\n const defaultPending = React.useCallback(() => null, [])\n\n const Inner = React.useCallback((props: { match: RouteMatch }): any => {\n if (props.match.store.state.status === 'error') {\n throw props.match.store.state.error\n }\n\n if (props.match.store.state.status === 'success') {\n return React.createElement(\n (props.match.component as any) ??\n router.options.defaultComponent ??\n Outlet,\n )\n }\n\n if (props.match.store.state.status === 'pending') {\n throw props.match.__loadPromise\n }\n\n invariant(\n false,\n 'Idle routeMatch status encountered during rendering! You should never see this. File an issue!',\n )\n }, [])\n\n const PendingComponent = (match.pendingComponent ??\n router.options.defaultPendingComponent ??\n defaultPending) as any\n\n const errorComponent =\n match.errorComponent ?? router.options.defaultErrorComponent\n\n return (\n <matchesContext.Provider value={matches}>\n <React.Suspense fallback={<PendingComponent />}>\n <CatchBoundary\n key={match.route.id}\n errorComponent={errorComponent}\n match={match as any}\n >\n <Inner match={match} />\n </CatchBoundary>\n </React.Suspense>\n {/* Provide a suffix suspense boundary to make sure the router is\n ready to be dehydrated on the server */}\n {/* {router.options.ssrFooter && match.id === rootRouteId ? (\n <React.Suspense fallback={null}>\n {(() => {\n if (router.store.pending) {\n throw router.navigationPromise\n }\n\n return router.options.ssrFooter()\n })()}\n </React.Suspense>\n ) : null} */}\n </matchesContext.Provider>\n )\n}\n\n// This is the messiest thing ever... I'm either seriously tired (likely) or\n// there has to be a better way to reset error boundaries when the\n// router's location key changes.\n\nclass CatchBoundary extends React.Component<{\n children: any\n errorComponent: any\n match: RouteMatch\n}> {\n state = {\n error: false,\n info: undefined,\n }\n componentDidCatch(error: any, info: any) {\n console.error(`Error in route match: ${this.props.match.id}`)\n console.error(error)\n this.setState({\n error,\n info,\n })\n }\n render() {\n return (\n <CatchBoundaryInner\n {...this.props}\n errorState={this.state}\n reset={() => this.setState({})}\n />\n )\n }\n}\n\nfunction CatchBoundaryInner(props: {\n children: any\n errorComponent: any\n errorState: { error: unknown; info: any }\n reset: () => void\n}) {\n const [activeErrorState, setActiveErrorState] = React.useState(\n props.errorState,\n )\n const router = useRouter()\n const errorComponent = props.errorComponent ?? DefaultErrorBoundary\n const prevKeyRef = React.useRef('' as any)\n\n React.useEffect(() => {\n if (activeErrorState) {\n if (router.store.state.currentLocation.key !== prevKeyRef.current) {\n setActiveErrorState({} as any)\n }\n }\n\n prevKeyRef.current = router.store.state.currentLocation.key\n }, [activeErrorState, router.store.state.currentLocation.key])\n\n React.useEffect(() => {\n if (props.errorState.error) {\n setActiveErrorState(props.errorState)\n }\n // props.reset()\n }, [props.errorState.error])\n\n if (props.errorState.error && activeErrorState.error) {\n return React.createElement(errorComponent, activeErrorState)\n }\n\n return props.children\n}\n\nexport function DefaultErrorBoundary({ error }: { error: any }) {\n return (\n <div style={{ padding: '.5rem', maxWidth: '100%' }}>\n <strong style={{ fontSize: '1.2rem' }}>Something went wrong!</strong>\n <div style={{ height: '.5rem' }} />\n <div>\n <pre>\n {error.message ? (\n <code\n style={{\n fontSize: '.7em',\n border: '1px solid red',\n borderRadius: '.25rem',\n padding: '.5rem',\n color: 'red',\n }}\n >\n {error.message}\n </code>\n ) : null}\n </pre>\n </div>\n </div>\n )\n}\n\n// TODO: While we migrate away from the history package, these need to be disabled\n// export function usePrompt(message: string, when: boolean | any): void {\n// const router = useRouter()\n\n// React.useEffect(() => {\n// if (!when) return\n\n// let unblock = router.getHistory().block((transition) => {\n// if (window.confirm(message)) {\n// unblock()\n// transition.retry()\n// } else {\n// router.setStore((s) => {\n// s.currentLocation.pathname = window.location.pathname\n// })\n// }\n// })\n\n// return unblock\n// }, [when, message])\n// }\n\n// export function Prompt({ message, when, children }: PromptProps) {\n// usePrompt(message, when ?? true)\n// return (children ?? null) as ReactNode\n// }\n"],"names":["lazy","importer","lazyComp","React","finalComp","preload","useLinkProps","options","router","useRouter","type","children","target","activeProps","className","inactiveProps","activeOptions","disabled","hash","search","params","to","preloadDelay","preloadMaxAge","replace","style","onClick","onFocus","onMouseEnter","onMouseLeave","onTouchStart","onTouchEnd","rest","linkInfo","buildLink","href","handleClick","handleFocus","handleEnter","handleLeave","isActive","next","reactHandleClick","e","startTransition","composeHandlers","handlers","persist","filter","Boolean","forEach","handler","defaultPrevented","resolvedActiveProps","functionalUpdate","resolvedInactiveProps","undefined","join","role","Link","forwardRef","props","ref","linkProps","matchesContext","createContext","routerContext","ReactRouter","Router","constructor","opts","loadComponent","component","RouterProvider","update","currentMatches","useStore","store","s","useEffect","mount","value","useContext","warning","useRouterStore","selector","shallow","useMatches","useMatch","nearestMatch","match","from","state","find","d","route","id","invariant","strict","track","useRoute","routeId","resolvedRoute","getRoute","useSearch","useParams","last","useNavigate","defaultOpts","navigate","useMatchRoute","pending","caseSensitive","matchRoute","MatchRoute","Outlet","matches","slice","SubOutlet","defaultPending","useCallback","Inner","status","error","createElement","defaultComponent","__loadPromise","PendingComponent","pendingComponent","defaultPendingComponent","errorComponent","defaultErrorComponent","CatchBoundary","Component","info","componentDidCatch","console","setState","render","CatchBoundaryInner","activeErrorState","setActiveErrorState","useState","errorState","DefaultErrorBoundary","prevKeyRef","useRef","currentLocation","key","current","padding","maxWidth","fontSize","height","message","border","borderRadius","color"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../src/index.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport {\n Route,\n RegisteredRoutesInfo,\n RegisteredRouter,\n RouterStore,\n last,\n warning,\n RouterOptions,\n RouteMatch,\n MatchRouteOptions,\n AnyRoute,\n AnyRoutesInfo,\n DefaultRoutesInfo,\n functionalUpdate,\n RoutesInfo,\n ValidFromPath,\n LinkOptions,\n RouteByPath,\n ResolveRelativePath,\n NoInfer,\n ToOptions,\n invariant,\n Router,\n Expand,\n AnyContext,\n AnyRootRoute,\n RootRoute,\n AnySearchSchema,\n AnyPathParams,\n AnyRouteMatch,\n} from '@tanstack/router'\nimport { useStore } from '@tanstack/react-store'\n\n//\n\nexport * from '@tanstack/router'\n\nexport { useStore }\n\n//\n\ntype ReactNode = any\n\nexport type SyncRouteComponent<TProps = {}> = (props: TProps) => ReactNode\n\nexport type RouteComponent<TProps = {}> = SyncRouteComponent<TProps> & {\n preload?: () => Promise<void>\n}\n\nexport function lazy(\n importer: () => Promise<{ default: SyncRouteComponent }>,\n): RouteComponent {\n const lazyComp = React.lazy(importer as any)\n let preloaded: Promise<SyncRouteComponent>\n\n const finalComp = lazyComp as unknown as RouteComponent\n\n finalComp.preload = async () => {\n if (!preloaded) {\n await importer()\n }\n }\n\n return finalComp\n}\n\nexport type LinkPropsOptions<\n TFrom extends RegisteredRoutesInfo['routePaths'] = '/',\n TTo extends string = '.',\n> = LinkOptions<RegisteredRoutesInfo, TFrom, TTo> & {\n // A function that returns additional props for the `active` state of this link. These props override other props passed to the link (`style`'s are merged, `className`'s are concatenated)\n activeProps?:\n | React.AnchorHTMLAttributes<HTMLAnchorElement>\n | (() => React.AnchorHTMLAttributes<HTMLAnchorElement>)\n // A function that returns additional props for the `inactive` state of this link. These props override other props passed to the link (`style`'s are merged, `className`'s are concatenated)\n inactiveProps?:\n | React.AnchorHTMLAttributes<HTMLAnchorElement>\n | (() => React.AnchorHTMLAttributes<HTMLAnchorElement>)\n}\n\nexport type MakeUseMatchRouteOptions<\n TFrom extends RegisteredRoutesInfo['routePaths'] = '/',\n TTo extends string = '.',\n> = ToOptions<RegisteredRoutesInfo, TFrom, TTo> & MatchRouteOptions\n\nexport type MakeMatchRouteOptions<\n TFrom extends RegisteredRoutesInfo['routePaths'] = '/',\n TTo extends string = '.',\n> = ToOptions<RegisteredRoutesInfo, TFrom, TTo> &\n MatchRouteOptions & {\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 | ReactNode\n | ((\n params: RouteByPath<\n RegisteredRoutesInfo,\n ResolveRelativePath<TFrom, NoInfer<TTo>>\n >['__types']['allParams'],\n ) => ReactNode)\n }\n\nexport type MakeLinkPropsOptions<\n TFrom extends ValidFromPath<RegisteredRoutesInfo> = '/',\n TTo extends string = '.',\n> = LinkPropsOptions<TFrom, TTo> & React.AnchorHTMLAttributes<HTMLAnchorElement>\n\nexport type MakeLinkOptions<\n TFrom extends RegisteredRoutesInfo['routePaths'] = '/',\n TTo extends string = '.',\n> = LinkPropsOptions<TFrom, TTo> &\n React.AnchorHTMLAttributes<HTMLAnchorElement> &\n Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'children'> & {\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?: ReactNode | ((state: { isActive: boolean }) => ReactNode)\n }\n\ndeclare module '@tanstack/router' {\n interface FrameworkGenerics {\n Component: RouteComponent\n ErrorComponent: RouteComponent<{\n error: unknown\n info: { componentStack: string }\n }>\n }\n\n interface RouterOptions<TRouteTree> {\n // ssrFooter?: () => JSX.Element | Node\n }\n\n interface FrameworkRouteOptions {\n wrapInSuspense?: boolean\n }\n}\n\nexport type PromptProps = {\n message: string\n when?: boolean | any\n children?: ReactNode\n}\n\n//\n\nexport function useLinkProps<\n TFrom extends ValidFromPath<RegisteredRoutesInfo> = '/',\n TTo extends string = '.',\n>(\n options: MakeLinkPropsOptions<TFrom, TTo>,\n): React.AnchorHTMLAttributes<HTMLAnchorElement> {\n const router = useRouterContext()\n\n const {\n // custom props\n type,\n children,\n target,\n activeProps = () => ({ className: 'active' }),\n inactiveProps = () => ({}),\n activeOptions,\n disabled,\n // fromCurrent,\n hash,\n search,\n params,\n to = '.',\n preload,\n preloadDelay,\n preloadMaxAge,\n replace,\n // element props\n style,\n className,\n onClick,\n onFocus,\n onMouseEnter,\n onMouseLeave,\n onTouchStart,\n onTouchEnd,\n ...rest\n } = options\n\n const linkInfo = router.buildLink(options as any)\n\n if (linkInfo.type === 'external') {\n const { href } = linkInfo\n return { href }\n }\n\n const { handleClick, handleFocus, handleEnter, handleLeave, isActive, next } =\n linkInfo\n\n const reactHandleClick = (e: Event) => {\n if (React.startTransition) {\n // This is a hack for react < 18\n React.startTransition(() => {\n handleClick(e)\n })\n } else {\n handleClick(e)\n }\n }\n\n const composeHandlers =\n (handlers: (undefined | ((e: any) => void))[]) =>\n (e: React.SyntheticEvent) => {\n if (e.persist) e.persist()\n handlers.filter(Boolean).forEach((handler) => {\n if (e.defaultPrevented) return\n handler!(e)\n })\n }\n\n // Get the active props\n const resolvedActiveProps: React.HTMLAttributes<HTMLAnchorElement> = isActive\n ? functionalUpdate(activeProps as any, {}) ?? {}\n : {}\n\n // Get the inactive props\n const resolvedInactiveProps: React.HTMLAttributes<HTMLAnchorElement> =\n isActive ? {} : functionalUpdate(inactiveProps, {}) ?? {}\n\n return {\n ...resolvedActiveProps,\n ...resolvedInactiveProps,\n ...rest,\n href: disabled ? undefined : next.href,\n onClick: composeHandlers([onClick, reactHandleClick]),\n onFocus: composeHandlers([onFocus, handleFocus]),\n onMouseEnter: composeHandlers([onMouseEnter, handleEnter]),\n onMouseLeave: composeHandlers([onMouseLeave, handleLeave]),\n target,\n style: {\n ...style,\n ...resolvedActiveProps.style,\n ...resolvedInactiveProps.style,\n },\n className:\n [\n className,\n resolvedActiveProps.className,\n resolvedInactiveProps.className,\n ]\n .filter(Boolean)\n .join(' ') || undefined,\n ...(disabled\n ? {\n role: 'link',\n 'aria-disabled': true,\n }\n : undefined),\n ['data-status']: isActive ? 'active' : undefined,\n }\n}\n\nexport interface LinkFn<\n TDefaultFrom extends RegisteredRoutesInfo['routePaths'] = '/',\n TDefaultTo extends string = '.',\n> {\n <\n TFrom extends RegisteredRoutesInfo['routePaths'] = TDefaultFrom,\n TTo extends string = TDefaultTo,\n >(\n props: MakeLinkOptions<TFrom, TTo> & React.RefAttributes<HTMLAnchorElement>,\n ): ReactNode\n}\n\nexport const Link: LinkFn = React.forwardRef((props: any, ref) => {\n const linkProps = useLinkProps(props)\n\n return (\n <a\n {...{\n ref: ref as any,\n ...linkProps,\n children:\n typeof props.children === 'function'\n ? props.children({\n isActive: (linkProps as any)['data-status'] === 'active',\n })\n : props.children,\n }}\n />\n )\n}) as any\n\ntype MatchesContextValue = AnyRouteMatch[]\n\nexport const matchesContext = React.createContext<MatchesContextValue>(null!)\nexport const routerContext = React.createContext<{ router: RegisteredRouter }>(\n null!,\n)\n\nexport type MatchesProviderProps = {\n value: MatchesContextValue\n children: ReactNode\n}\n\nexport class ReactRouter<\n TRouteConfig extends AnyRootRoute = RootRoute,\n TRoutesInfo extends AnyRoutesInfo = RoutesInfo<TRouteConfig>,\n> extends Router<TRouteConfig, TRoutesInfo> {\n constructor(opts: RouterOptions<TRouteConfig>) {\n super({\n ...opts,\n loadComponent: async (component) => {\n if (component.preload) {\n await component.preload()\n }\n\n return component as any\n },\n })\n }\n}\n\nexport type RouterProps<\n TRouteConfig extends AnyRootRoute = RootRoute,\n TRoutesInfo extends AnyRoutesInfo = DefaultRoutesInfo,\n> = RouterOptions<TRouteConfig> & {\n router: Router<TRouteConfig, TRoutesInfo>\n}\n\nexport function RouterProvider<\n TRouteConfig extends AnyRootRoute = RootRoute,\n TRoutesInfo extends AnyRoutesInfo = DefaultRoutesInfo,\n>({ router, ...rest }: RouterProps<TRouteConfig, TRoutesInfo>) {\n router.update(rest)\n\n const currentMatches = useStore(router.store, (s) => s.currentMatches)\n\n React.useEffect(router.mount, [router])\n\n return (\n <>\n <routerContext.Provider value={{ router: router as any }}>\n <matchesContext.Provider value={[undefined!, ...currentMatches]}>\n <Outlet />\n </matchesContext.Provider>\n </routerContext.Provider>\n </>\n )\n}\n\nexport function useRouterContext(): RegisteredRouter {\n const value = React.useContext(routerContext)\n warning(!value, 'useRouter must be used inside a <Router> component!')\n\n useStore(value.router.store)\n\n return value.router\n}\n\nexport function useRouter<T = RouterStore>(\n track?: (state: Router['store']) => T,\n shallow?: boolean,\n): RegisteredRouter {\n const router = useRouterContext()\n useStore(router.store, track as any, shallow)\n return router\n}\n\nexport function useMatches(): RouteMatch[] {\n return React.useContext(matchesContext)\n}\n\nexport function useMatch<\n TFrom extends keyof RegisteredRoutesInfo['routesById'],\n TStrict extends boolean = true,\n TRouteMatch = RouteMatch<\n RegisteredRoutesInfo,\n RegisteredRoutesInfo['routesById'][TFrom]\n >,\n>(opts?: {\n from: TFrom\n strict?: TStrict\n track?: (match: TRouteMatch) => any\n shallow?: boolean\n}): TStrict extends true ? TRouteMatch : TRouteMatch | undefined {\n const router = useRouterContext()\n const nearestMatch = useMatches()[0]!\n const match = opts?.from\n ? router.state.currentMatches.find((d) => d.route.id === opts?.from)\n : nearestMatch\n\n invariant(\n match,\n `Could not find ${\n opts?.from ? `an active match from \"${opts.from}\"` : 'a nearest match!'\n }`,\n )\n\n if (opts?.strict ?? true) {\n invariant(\n nearestMatch.route.id == match?.route.id,\n `useMatch(\"${\n match?.route.id as string\n }\") is being called in a component that is meant to render the '${\n nearestMatch.route.id\n }' route. Did you mean to 'useMatch(\"${\n match?.route.id as string\n }\", { strict: false })' or 'useRoute(\"${\n match?.route.id as string\n }\")' instead?`,\n )\n }\n\n useStore(\n match!.store as any,\n (d) => opts?.track?.(match as any) ?? match,\n opts?.shallow,\n )\n\n return match as any\n}\n\nexport function useRoute<\n TId extends keyof RegisteredRoutesInfo['routesById'] = '/',\n>(routeId: TId): RegisteredRoutesInfo['routesById'][TId] {\n const router = useRouterContext()\n const resolvedRoute = router.getRoute(routeId as any)\n\n invariant(\n resolvedRoute,\n `Could not find a route for route \"${\n routeId as string\n }\"! Did you forget to add it to your route config?`,\n )\n\n return resolvedRoute as any\n}\n\nexport function useSearch<\n TFrom extends keyof RegisteredRoutesInfo['routesById'],\n TStrict extends boolean = true,\n TSearch = RegisteredRoutesInfo['routesById'][TFrom]['__types']['fullSearchSchema'],\n TSelected = TSearch,\n>(opts?: {\n from: TFrom\n strict?: TStrict\n track?: (search: TSearch) => TSelected\n}): TStrict extends true ? TSelected : TSelected | undefined {\n const match = useMatch(opts)\n useStore(\n (match as any).store,\n (d: any) => opts?.track?.(d.search) ?? d.search,\n true,\n )\n\n return (match as unknown as RouteMatch).state.search as any\n}\n\nexport function useParams<\n TFrom extends keyof RegisteredRoutesInfo['routesById'] = '/',\n TDefaultSelected = RegisteredRoutesInfo['allParams'] &\n RegisteredRoutesInfo['routesById'][TFrom]['__types']['allParams'],\n TSelected = TDefaultSelected,\n>(opts?: {\n from: TFrom\n track?: (search: TDefaultSelected) => TSelected\n}): TSelected {\n const router = useRouterContext()\n useStore(\n router.store,\n (d) => {\n const params = last(d.currentMatches)?.params as any\n return opts?.track?.(params) ?? params\n },\n true,\n )\n\n return last(router.state.currentMatches)?.params as any\n}\n\nexport function useNavigate<\n TDefaultFrom extends keyof RegisteredRoutesInfo['routesById'] = '/',\n>(defaultOpts?: { from?: TDefaultFrom }) {\n const router = useRouterContext()\n return <\n TFrom extends keyof RegisteredRoutesInfo['routesById'] = TDefaultFrom,\n TTo extends string = '.',\n >(\n opts?: MakeLinkOptions<TFrom, TTo>,\n ) => {\n return router.navigate({ ...defaultOpts, ...(opts as any) })\n }\n}\n\nexport function useMatchRoute() {\n const router = useRouterContext()\n\n return <\n TFrom extends ValidFromPath<RegisteredRoutesInfo> = '/',\n TTo extends string = '.',\n >(\n opts: MakeUseMatchRouteOptions<TFrom, TTo>,\n ) => {\n const { pending, caseSensitive, ...rest } = opts\n\n return router.matchRoute(rest as any, {\n pending,\n caseSensitive,\n })\n }\n}\n\nexport function MatchRoute<\n TFrom extends ValidFromPath<RegisteredRoutesInfo> = '/',\n TTo extends string = '.',\n>(props: MakeMatchRouteOptions<TFrom, TTo>): any {\n const matchRoute = useMatchRoute()\n const params = matchRoute(props)\n\n if (!params) {\n return null\n }\n\n if (typeof props.children === 'function') {\n return (props.children as any)(params)\n }\n\n return params ? props.children : null\n}\n\nexport function Outlet() {\n const matches = useMatches().slice(1)\n const match = matches[0]\n\n if (!match) {\n return null\n }\n\n return <SubOutlet matches={matches} match={match} />\n}\n\nfunction SubOutlet({\n matches,\n match,\n}: {\n matches: RouteMatch[]\n match: RouteMatch\n}) {\n const router = useRouterContext()\n useStore(match!.store, (store) => [store.status, store.error], true)\n\n const defaultPending = React.useCallback(() => null, [])\n\n const Inner = React.useCallback((props: { match: RouteMatch }): any => {\n if (props.match.state.status === 'error') {\n throw props.match.state.error\n }\n\n if (props.match.state.status === 'success') {\n return React.createElement(\n (props.match.component as any) ??\n router.options.defaultComponent ??\n Outlet,\n )\n }\n\n if (props.match.state.status === 'pending') {\n throw props.match.__loadPromise\n }\n\n invariant(\n false,\n 'Idle routeMatch status encountered during rendering! You should never see this. File an issue!',\n )\n }, [])\n\n const PendingComponent = (match.pendingComponent ??\n router.options.defaultPendingComponent ??\n defaultPending) as any\n\n const errorComponent =\n match.errorComponent ?? router.options.defaultErrorComponent\n\n return (\n <matchesContext.Provider value={matches}>\n {match.route.options.wrapInSuspense ?? true ? (\n <React.Suspense fallback={<PendingComponent />}>\n <CatchBoundary\n key={match.route.id}\n errorComponent={errorComponent}\n match={match as any}\n >\n <Inner match={match} />\n </CatchBoundary>\n </React.Suspense>\n ) : (\n <CatchBoundary\n key={match.route.id}\n errorComponent={errorComponent}\n match={match as any}\n >\n <Inner match={match} />\n </CatchBoundary>\n )}\n {/* Provide a suffix suspense boundary to make sure the router is\n ready to be dehydrated on the server */}\n {/* {router.options.ssrFooter && match.id === rootRouteId ? (\n <React.Suspense fallback={null}>\n {(() => {\n if (router.store.pending) {\n throw router.navigationPromise\n }\n\n return router.options.ssrFooter()\n })()}\n </React.Suspense>\n ) : null} */}\n </matchesContext.Provider>\n )\n}\n\n// This is the messiest thing ever... I'm either seriously tired (likely) or\n// there has to be a better way to reset error boundaries when the\n// router's location key changes.\n\nclass CatchBoundary extends React.Component<{\n children: any\n errorComponent: any\n match: RouteMatch\n}> {\n state = {\n error: false,\n info: undefined,\n }\n componentDidCatch(error: any, info: any) {\n console.error(`Error in route match: ${this.props.match.id}`)\n console.error(error)\n this.setState({\n error,\n info,\n })\n }\n render() {\n return (\n <CatchBoundaryInner\n {...this.props}\n errorState={this.state}\n reset={() => this.setState({})}\n />\n )\n }\n}\n\nfunction CatchBoundaryInner(props: {\n children: any\n errorComponent: any\n errorState: { error: unknown; info: any }\n reset: () => void\n}) {\n const [activeErrorState, setActiveErrorState] = React.useState(\n props.errorState,\n )\n const router = useRouterContext()\n const errorComponent = props.errorComponent ?? DefaultErrorBoundary\n const prevKeyRef = React.useRef('' as any)\n\n React.useEffect(() => {\n if (activeErrorState) {\n if (router.state.currentLocation.key !== prevKeyRef.current) {\n setActiveErrorState({} as any)\n }\n }\n\n prevKeyRef.current = router.state.currentLocation.key\n }, [activeErrorState, router.state.currentLocation.key])\n\n React.useEffect(() => {\n if (props.errorState.error) {\n setActiveErrorState(props.errorState)\n }\n // props.reset()\n }, [props.errorState.error])\n\n if (props.errorState.error && activeErrorState.error) {\n return React.createElement(errorComponent, activeErrorState)\n }\n\n return props.children\n}\n\nexport function DefaultErrorBoundary({ error }: { error: any }) {\n return (\n <div style={{ padding: '.5rem', maxWidth: '100%' }}>\n <strong style={{ fontSize: '1.2rem' }}>Something went wrong!</strong>\n <div style={{ height: '.5rem' }} />\n <div>\n <pre>\n {error.message ? (\n <code\n style={{\n fontSize: '.7em',\n border: '1px solid red',\n borderRadius: '.25rem',\n padding: '.5rem',\n color: 'red',\n }}\n >\n {error.message}\n </code>\n ) : null}\n </pre>\n </div>\n </div>\n )\n}\n\n// TODO: While we migrate away from the history package, these need to be disabled\n// export function usePrompt(message: string, when: boolean | any): void {\n// const router = useRouter()\n\n// React.useEffect(() => {\n// if (!when) return\n\n// let unblock = router.getHistory().block((transition) => {\n// if (window.confirm(message)) {\n// unblock()\n// transition.retry()\n// } else {\n// router.setStore((s) => {\n// s.currentLocation.pathname = window.location.pathname\n// })\n// }\n// })\n\n// return unblock\n// }, [when, message])\n// }\n\n// export function Prompt({ message, when, children }: PromptProps) {\n// usePrompt(message, when ?? true)\n// return (children ?? null) as ReactNode\n// }\n"],"names":["lazy","importer","lazyComp","React","finalComp","preload","useLinkProps","options","router","useRouterContext","type","children","target","activeProps","className","inactiveProps","activeOptions","disabled","hash","search","params","to","preloadDelay","preloadMaxAge","replace","style","onClick","onFocus","onMouseEnter","onMouseLeave","onTouchStart","onTouchEnd","rest","linkInfo","buildLink","href","handleClick","handleFocus","handleEnter","handleLeave","isActive","next","reactHandleClick","e","startTransition","composeHandlers","handlers","persist","filter","Boolean","forEach","handler","defaultPrevented","resolvedActiveProps","functionalUpdate","resolvedInactiveProps","undefined","join","role","Link","forwardRef","props","ref","linkProps","matchesContext","createContext","routerContext","ReactRouter","Router","constructor","opts","loadComponent","component","RouterProvider","update","currentMatches","useStore","store","s","useEffect","mount","value","useContext","warning","useRouter","track","shallow","useMatches","useMatch","nearestMatch","match","from","state","find","d","route","id","invariant","strict","useRoute","routeId","resolvedRoute","getRoute","useSearch","useParams","last","useNavigate","defaultOpts","navigate","useMatchRoute","pending","caseSensitive","matchRoute","MatchRoute","Outlet","matches","slice","SubOutlet","status","error","defaultPending","useCallback","Inner","createElement","defaultComponent","__loadPromise","PendingComponent","pendingComponent","defaultPendingComponent","errorComponent","defaultErrorComponent","wrapInSuspense","CatchBoundary","Component","info","componentDidCatch","console","setState","render","CatchBoundaryInner","activeErrorState","setActiveErrorState","useState","errorState","DefaultErrorBoundary","prevKeyRef","useRef","currentLocation","key","current","padding","maxWidth","fontSize","height","message","border","borderRadius","color"],"mappings":"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"}
@@ -4024,7 +4024,7 @@ var drawChart = (function (exports) {
4024
4024
  </script>
4025
4025
  <script>
4026
4026
  /*<!--*/
4027
- const data = {"version":2,"tree":{"name":"root","children":[{"name":"index.production.js","children":[{"uid":"eda2-85","name":"\u0000rollupPluginBabelHelpers.js"},{"name":"node_modules/.pnpm/tiny-invariant@1.3.1/node_modules/tiny-invariant/dist/esm/tiny-invariant.js","uid":"eda2-87"},{"name":"packages","children":[{"name":"store/build/esm/index.js","uid":"eda2-89"},{"name":"router/build/esm/index.js","uid":"eda2-91"},{"name":"react-store/build/esm/index.js","uid":"eda2-93"},{"name":"react-router/src/index.tsx","uid":"eda2-95"}]}]}],"isRoot":true},"nodeParts":{"eda2-85":{"renderedLength":429,"gzipLength":238,"brotliLength":0,"mainUid":"eda2-84"},"eda2-87":{"renderedLength":181,"gzipLength":129,"brotliLength":0,"mainUid":"eda2-86"},"eda2-89":{"renderedLength":1290,"gzipLength":496,"brotliLength":0,"mainUid":"eda2-88"},"eda2-91":{"renderedLength":44177,"gzipLength":10709,"brotliLength":0,"mainUid":"eda2-90"},"eda2-93":{"renderedLength":1571,"gzipLength":594,"brotliLength":0,"mainUid":"eda2-92"},"eda2-95":{"renderedLength":11729,"gzipLength":3116,"brotliLength":0,"mainUid":"eda2-94"}},"nodeMetas":{"eda2-84":{"id":"\u0000rollupPluginBabelHelpers.js","moduleParts":{"index.production.js":"eda2-85"},"imported":[],"importedBy":[{"uid":"eda2-94"}]},"eda2-86":{"id":"/node_modules/.pnpm/tiny-invariant@1.3.1/node_modules/tiny-invariant/dist/esm/tiny-invariant.js","moduleParts":{"index.production.js":"eda2-87"},"imported":[],"importedBy":[{"uid":"eda2-90"}]},"eda2-88":{"id":"/packages/store/build/esm/index.js","moduleParts":{"index.production.js":"eda2-89"},"imported":[],"importedBy":[{"uid":"eda2-90"}]},"eda2-90":{"id":"/packages/router/build/esm/index.js","moduleParts":{"index.production.js":"eda2-91"},"imported":[{"uid":"eda2-86"},{"uid":"eda2-88"}],"importedBy":[{"uid":"eda2-94"}]},"eda2-92":{"id":"/packages/react-store/build/esm/index.js","moduleParts":{"index.production.js":"eda2-93"},"imported":[{"uid":"eda2-97"}],"importedBy":[{"uid":"eda2-94"}]},"eda2-94":{"id":"/packages/react-router/src/index.tsx","moduleParts":{"index.production.js":"eda2-95"},"imported":[{"uid":"eda2-84"},{"uid":"eda2-96"},{"uid":"eda2-90"},{"uid":"eda2-92"}],"importedBy":[],"isEntry":true},"eda2-96":{"id":"react","moduleParts":{},"imported":[],"importedBy":[{"uid":"eda2-94"}],"isExternal":true},"eda2-97":{"id":"use-sync-external-store/shim/with-selector","moduleParts":{},"imported":[],"importedBy":[{"uid":"eda2-92"}],"isExternal":true}},"env":{"rollup":"2.79.1"},"options":{"gzip":true,"brotli":false,"sourcemap":false}};
4027
+ const data = {"version":2,"tree":{"name":"root","children":[{"name":"index.production.js","children":[{"uid":"dcf0-89","name":"\u0000rollupPluginBabelHelpers.js"},{"name":"node_modules/.pnpm/tiny-invariant@1.3.1/node_modules/tiny-invariant/dist/esm/tiny-invariant.js","uid":"dcf0-91"},{"name":"packages","children":[{"name":"store/build/esm/index.js","uid":"dcf0-93"},{"name":"router/build/esm/index.js","uid":"dcf0-95"},{"name":"react-store/build/esm/index.js","uid":"dcf0-97"},{"name":"react-router/src/index.tsx","uid":"dcf0-99"}]}]}],"isRoot":true},"nodeParts":{"dcf0-89":{"renderedLength":429,"gzipLength":238,"brotliLength":0,"mainUid":"dcf0-88"},"dcf0-91":{"renderedLength":181,"gzipLength":129,"brotliLength":0,"mainUid":"dcf0-90"},"dcf0-93":{"renderedLength":1288,"gzipLength":497,"brotliLength":0,"mainUid":"dcf0-92"},"dcf0-95":{"renderedLength":44351,"gzipLength":10766,"brotliLength":0,"mainUid":"dcf0-94"},"dcf0-97":{"renderedLength":1571,"gzipLength":594,"brotliLength":0,"mainUid":"dcf0-96"},"dcf0-99":{"renderedLength":12098,"gzipLength":3161,"brotliLength":0,"mainUid":"dcf0-98"}},"nodeMetas":{"dcf0-88":{"id":"\u0000rollupPluginBabelHelpers.js","moduleParts":{"index.production.js":"dcf0-89"},"imported":[],"importedBy":[{"uid":"dcf0-98"}]},"dcf0-90":{"id":"/node_modules/.pnpm/tiny-invariant@1.3.1/node_modules/tiny-invariant/dist/esm/tiny-invariant.js","moduleParts":{"index.production.js":"dcf0-91"},"imported":[],"importedBy":[{"uid":"dcf0-94"}]},"dcf0-92":{"id":"/packages/store/build/esm/index.js","moduleParts":{"index.production.js":"dcf0-93"},"imported":[],"importedBy":[{"uid":"dcf0-94"}]},"dcf0-94":{"id":"/packages/router/build/esm/index.js","moduleParts":{"index.production.js":"dcf0-95"},"imported":[{"uid":"dcf0-90"},{"uid":"dcf0-92"}],"importedBy":[{"uid":"dcf0-98"}]},"dcf0-96":{"id":"/packages/react-store/build/esm/index.js","moduleParts":{"index.production.js":"dcf0-97"},"imported":[{"uid":"dcf0-101"}],"importedBy":[{"uid":"dcf0-98"}]},"dcf0-98":{"id":"/packages/react-router/src/index.tsx","moduleParts":{"index.production.js":"dcf0-99"},"imported":[{"uid":"dcf0-88"},{"uid":"dcf0-100"},{"uid":"dcf0-94"},{"uid":"dcf0-96"}],"importedBy":[],"isEntry":true},"dcf0-100":{"id":"react","moduleParts":{},"imported":[],"importedBy":[{"uid":"dcf0-98"}],"isExternal":true},"dcf0-101":{"id":"use-sync-external-store/shim/with-selector","moduleParts":{},"imported":[],"importedBy":[{"uid":"dcf0-96"}],"isExternal":true}},"env":{"rollup":"2.79.1"},"options":{"gzip":true,"brotli":false,"sourcemap":false}};
4028
4028
 
4029
4029
  const run = () => {
4030
4030
  const width = window.innerWidth;
@@ -7,31 +7,31 @@
7
7
  "name": "index.production.js",
8
8
  "children": [
9
9
  {
10
- "uid": "eda2-99",
10
+ "uid": "dcf0-103",
11
11
  "name": "\u0000rollupPluginBabelHelpers.js"
12
12
  },
13
13
  {
14
14
  "name": "node_modules/.pnpm/tiny-invariant@1.3.1/node_modules/tiny-invariant/dist/esm/tiny-invariant.js",
15
- "uid": "eda2-101"
15
+ "uid": "dcf0-105"
16
16
  },
17
17
  {
18
18
  "name": "packages",
19
19
  "children": [
20
20
  {
21
21
  "name": "store/build/esm/index.js",
22
- "uid": "eda2-103"
22
+ "uid": "dcf0-107"
23
23
  },
24
24
  {
25
25
  "name": "router/build/esm/index.js",
26
- "uid": "eda2-105"
26
+ "uid": "dcf0-109"
27
27
  },
28
28
  {
29
29
  "name": "react-store/build/esm/index.js",
30
- "uid": "eda2-107"
30
+ "uid": "dcf0-111"
31
31
  },
32
32
  {
33
33
  "name": "react-router/src/index.tsx",
34
- "uid": "eda2-109"
34
+ "uid": "dcf0-113"
35
35
  }
36
36
  ]
37
37
  }
@@ -41,155 +41,155 @@
41
41
  "isRoot": true
42
42
  },
43
43
  "nodeParts": {
44
- "eda2-99": {
44
+ "dcf0-103": {
45
45
  "renderedLength": 429,
46
46
  "gzipLength": 238,
47
47
  "brotliLength": 0,
48
- "mainUid": "eda2-98"
48
+ "mainUid": "dcf0-102"
49
49
  },
50
- "eda2-101": {
50
+ "dcf0-105": {
51
51
  "renderedLength": 181,
52
52
  "gzipLength": 129,
53
53
  "brotliLength": 0,
54
- "mainUid": "eda2-100"
54
+ "mainUid": "dcf0-104"
55
55
  },
56
- "eda2-103": {
57
- "renderedLength": 1290,
58
- "gzipLength": 496,
56
+ "dcf0-107": {
57
+ "renderedLength": 1288,
58
+ "gzipLength": 497,
59
59
  "brotliLength": 0,
60
- "mainUid": "eda2-102"
60
+ "mainUid": "dcf0-106"
61
61
  },
62
- "eda2-105": {
63
- "renderedLength": 44177,
64
- "gzipLength": 10709,
62
+ "dcf0-109": {
63
+ "renderedLength": 44351,
64
+ "gzipLength": 10766,
65
65
  "brotliLength": 0,
66
- "mainUid": "eda2-104"
66
+ "mainUid": "dcf0-108"
67
67
  },
68
- "eda2-107": {
68
+ "dcf0-111": {
69
69
  "renderedLength": 1571,
70
70
  "gzipLength": 594,
71
71
  "brotliLength": 0,
72
- "mainUid": "eda2-106"
72
+ "mainUid": "dcf0-110"
73
73
  },
74
- "eda2-109": {
75
- "renderedLength": 11729,
76
- "gzipLength": 3116,
74
+ "dcf0-113": {
75
+ "renderedLength": 12098,
76
+ "gzipLength": 3161,
77
77
  "brotliLength": 0,
78
- "mainUid": "eda2-108"
78
+ "mainUid": "dcf0-112"
79
79
  }
80
80
  },
81
81
  "nodeMetas": {
82
- "eda2-98": {
82
+ "dcf0-102": {
83
83
  "id": "\u0000rollupPluginBabelHelpers.js",
84
84
  "moduleParts": {
85
- "index.production.js": "eda2-99"
85
+ "index.production.js": "dcf0-103"
86
86
  },
87
87
  "imported": [],
88
88
  "importedBy": [
89
89
  {
90
- "uid": "eda2-108"
90
+ "uid": "dcf0-112"
91
91
  }
92
92
  ]
93
93
  },
94
- "eda2-100": {
94
+ "dcf0-104": {
95
95
  "id": "/node_modules/.pnpm/tiny-invariant@1.3.1/node_modules/tiny-invariant/dist/esm/tiny-invariant.js",
96
96
  "moduleParts": {
97
- "index.production.js": "eda2-101"
97
+ "index.production.js": "dcf0-105"
98
98
  },
99
99
  "imported": [],
100
100
  "importedBy": [
101
101
  {
102
- "uid": "eda2-104"
102
+ "uid": "dcf0-108"
103
103
  }
104
104
  ]
105
105
  },
106
- "eda2-102": {
106
+ "dcf0-106": {
107
107
  "id": "/packages/store/build/esm/index.js",
108
108
  "moduleParts": {
109
- "index.production.js": "eda2-103"
109
+ "index.production.js": "dcf0-107"
110
110
  },
111
111
  "imported": [],
112
112
  "importedBy": [
113
113
  {
114
- "uid": "eda2-104"
114
+ "uid": "dcf0-108"
115
115
  }
116
116
  ]
117
117
  },
118
- "eda2-104": {
118
+ "dcf0-108": {
119
119
  "id": "/packages/router/build/esm/index.js",
120
120
  "moduleParts": {
121
- "index.production.js": "eda2-105"
121
+ "index.production.js": "dcf0-109"
122
122
  },
123
123
  "imported": [
124
124
  {
125
- "uid": "eda2-100"
125
+ "uid": "dcf0-104"
126
126
  },
127
127
  {
128
- "uid": "eda2-102"
128
+ "uid": "dcf0-106"
129
129
  }
130
130
  ],
131
131
  "importedBy": [
132
132
  {
133
- "uid": "eda2-108"
133
+ "uid": "dcf0-112"
134
134
  }
135
135
  ]
136
136
  },
137
- "eda2-106": {
137
+ "dcf0-110": {
138
138
  "id": "/packages/react-store/build/esm/index.js",
139
139
  "moduleParts": {
140
- "index.production.js": "eda2-107"
140
+ "index.production.js": "dcf0-111"
141
141
  },
142
142
  "imported": [
143
143
  {
144
- "uid": "eda2-111"
144
+ "uid": "dcf0-115"
145
145
  }
146
146
  ],
147
147
  "importedBy": [
148
148
  {
149
- "uid": "eda2-108"
149
+ "uid": "dcf0-112"
150
150
  }
151
151
  ]
152
152
  },
153
- "eda2-108": {
153
+ "dcf0-112": {
154
154
  "id": "/packages/react-router/src/index.tsx",
155
155
  "moduleParts": {
156
- "index.production.js": "eda2-109"
156
+ "index.production.js": "dcf0-113"
157
157
  },
158
158
  "imported": [
159
159
  {
160
- "uid": "eda2-98"
160
+ "uid": "dcf0-102"
161
161
  },
162
162
  {
163
- "uid": "eda2-110"
163
+ "uid": "dcf0-114"
164
164
  },
165
165
  {
166
- "uid": "eda2-104"
166
+ "uid": "dcf0-108"
167
167
  },
168
168
  {
169
- "uid": "eda2-106"
169
+ "uid": "dcf0-110"
170
170
  }
171
171
  ],
172
172
  "importedBy": [],
173
173
  "isEntry": true
174
174
  },
175
- "eda2-110": {
175
+ "dcf0-114": {
176
176
  "id": "react",
177
177
  "moduleParts": {},
178
178
  "imported": [],
179
179
  "importedBy": [
180
180
  {
181
- "uid": "eda2-108"
181
+ "uid": "dcf0-112"
182
182
  }
183
183
  ],
184
184
  "isExternal": true
185
185
  },
186
- "eda2-111": {
186
+ "dcf0-115": {
187
187
  "id": "use-sync-external-store/shim/with-selector",
188
188
  "moduleParts": {},
189
189
  "imported": [],
190
190
  "importedBy": [
191
191
  {
192
- "uid": "eda2-106"
192
+ "uid": "dcf0-110"
193
193
  }
194
194
  ],
195
195
  "isExternal": true
@@ -9,7 +9,7 @@
9
9
  * @license MIT
10
10
  */
11
11
  import * as React from 'react';
12
- import { RegisteredRoutesInfo, LinkOptions, ToOptions, MatchRouteOptions, RouteByPath, ResolveRelativePath, NoInfer, ValidFromPath, RegisteredRouter, AnyRoute, Route, AnyRoutesInfo, RoutesInfo, Router, RouterOptions, DefaultRoutesInfo, RouterStore, RouteMatch, Expand } from '@tanstack/router';
12
+ import { RegisteredRoutesInfo, LinkOptions, ToOptions, MatchRouteOptions, RouteByPath, ResolveRelativePath, NoInfer, ValidFromPath, RegisteredRouter, AnyRootRoute, RootRoute, AnyRoutesInfo, RoutesInfo, Router, RouterOptions, DefaultRoutesInfo, RouterStore, RouteMatch, AnyRouteMatch } from '@tanstack/router';
13
13
  export * from '@tanstack/router';
14
14
  export { useStore } from '@tanstack/react-store';
15
15
 
@@ -45,7 +45,10 @@ declare module '@tanstack/router' {
45
45
  };
46
46
  }>;
47
47
  }
48
- interface RouterOptions<TRouteTree, TRouterContext> {
48
+ interface RouterOptions<TRouteTree> {
49
+ }
50
+ interface FrameworkRouteOptions {
51
+ wrapInSuspense?: boolean;
49
52
  }
50
53
  }
51
54
  type PromptProps = {
@@ -58,7 +61,7 @@ interface LinkFn<TDefaultFrom extends RegisteredRoutesInfo['routePaths'] = '/',
58
61
  <TFrom extends RegisteredRoutesInfo['routePaths'] = TDefaultFrom, TTo extends string = TDefaultTo>(props: MakeLinkOptions<TFrom, TTo> & React.RefAttributes<HTMLAnchorElement>): ReactNode;
59
62
  }
60
63
  declare const Link: LinkFn;
61
- type MatchesContextValue = RouteMatch[];
64
+ type MatchesContextValue = AnyRouteMatch[];
62
65
  declare const matchesContext: React.Context<MatchesContextValue>;
63
66
  declare const routerContext: React.Context<{
64
67
  router: RegisteredRouter;
@@ -67,15 +70,15 @@ type MatchesProviderProps = {
67
70
  value: MatchesContextValue;
68
71
  children: ReactNode;
69
72
  };
70
- declare class ReactRouter<TRouteConfig extends AnyRoute = Route, TRoutesInfo extends AnyRoutesInfo = RoutesInfo<TRouteConfig>, TRouterContext = unknown> extends Router<TRouteConfig, TRoutesInfo, TRouterContext> {
71
- constructor(opts: RouterOptions<TRouteConfig, TRouterContext>);
73
+ declare class ReactRouter<TRouteConfig extends AnyRootRoute = RootRoute, TRoutesInfo extends AnyRoutesInfo = RoutesInfo<TRouteConfig>> extends Router<TRouteConfig, TRoutesInfo> {
74
+ constructor(opts: RouterOptions<TRouteConfig>);
72
75
  }
73
- type RouterProps<TRouteConfig extends AnyRoute = Route, TRoutesInfo extends AnyRoutesInfo = DefaultRoutesInfo, TRouterContext = unknown> = RouterOptions<TRouteConfig, TRouterContext> & {
74
- router: Router<TRouteConfig, TRoutesInfo, TRouterContext>;
76
+ type RouterProps<TRouteConfig extends AnyRootRoute = RootRoute, TRoutesInfo extends AnyRoutesInfo = DefaultRoutesInfo> = RouterOptions<TRouteConfig> & {
77
+ router: Router<TRouteConfig, TRoutesInfo>;
75
78
  };
76
- declare function RouterProvider<TRouteConfig extends AnyRoute = Route, TRoutesInfo extends AnyRoutesInfo = DefaultRoutesInfo, TRouterContext = unknown>({ router, ...rest }: RouterProps<TRouteConfig, TRoutesInfo, TRouterContext>): JSX.Element;
77
- declare function useRouter(): RegisteredRouter;
78
- declare function useRouterStore<T = RouterStore>(selector?: (state: Router['store']) => T, shallow?: boolean): T;
79
+ declare function RouterProvider<TRouteConfig extends AnyRootRoute = RootRoute, TRoutesInfo extends AnyRoutesInfo = DefaultRoutesInfo>({ router, ...rest }: RouterProps<TRouteConfig, TRoutesInfo>): JSX.Element;
80
+ declare function useRouterContext(): RegisteredRouter;
81
+ declare function useRouter<T = RouterStore>(track?: (state: Router['store']) => T, shallow?: boolean): RegisteredRouter;
79
82
  declare function useMatches(): RouteMatch[];
80
83
  declare function useMatch<TFrom extends keyof RegisteredRoutesInfo['routesById'], TStrict extends boolean = true, TRouteMatch = RouteMatch<RegisteredRoutesInfo, RegisteredRoutesInfo['routesById'][TFrom]>>(opts?: {
81
84
  from: TFrom;
@@ -89,18 +92,18 @@ declare function useSearch<TFrom extends keyof RegisteredRoutesInfo['routesById'
89
92
  strict?: TStrict;
90
93
  track?: (search: TSearch) => TSelected;
91
94
  }): TStrict extends true ? TSelected : TSelected | undefined;
92
- declare function useParams<TFrom extends keyof RegisteredRoutesInfo['routesById'] = '/', TDefaultSelected = Expand<RegisteredRoutesInfo['allParams'] & RegisteredRoutesInfo['routesById'][TFrom]['__types']['allParams']>, TSelected = TDefaultSelected>(opts?: {
95
+ declare function useParams<TFrom extends keyof RegisteredRoutesInfo['routesById'] = '/', TDefaultSelected = RegisteredRoutesInfo['allParams'] & RegisteredRoutesInfo['routesById'][TFrom]['__types']['allParams'], TSelected = TDefaultSelected>(opts?: {
93
96
  from: TFrom;
94
97
  track?: (search: TDefaultSelected) => TSelected;
95
98
  }): TSelected;
96
99
  declare function useNavigate<TDefaultFrom extends keyof RegisteredRoutesInfo['routesById'] = '/'>(defaultOpts?: {
97
100
  from?: TDefaultFrom;
98
101
  }): <TFrom extends string = TDefaultFrom, TTo extends string = ".">(opts?: MakeLinkOptions<TFrom, TTo> | undefined) => Promise<void>;
99
- declare function useMatchRoute(): <TFrom extends ValidFromPath<AnyRoutesInfo> = "/", TTo extends string = ".">(opts: MakeUseMatchRouteOptions<TFrom, TTo>) => any;
102
+ declare function useMatchRoute(): <TFrom extends ValidFromPath<AnyRoutesInfo> = "/", TTo extends string = ".">(opts: MakeUseMatchRouteOptions<TFrom, TTo>) => false | {};
100
103
  declare function MatchRoute<TFrom extends ValidFromPath<RegisteredRoutesInfo> = '/', TTo extends string = '.'>(props: MakeMatchRouteOptions<TFrom, TTo>): any;
101
104
  declare function Outlet(): JSX.Element | null;
102
105
  declare function DefaultErrorBoundary({ error }: {
103
106
  error: any;
104
107
  }): JSX.Element;
105
108
 
106
- export { DefaultErrorBoundary, Link, LinkFn, LinkPropsOptions, MakeLinkOptions, MakeLinkPropsOptions, MakeMatchRouteOptions, MakeUseMatchRouteOptions, MatchRoute, MatchesProviderProps, Outlet, PromptProps, ReactRouter, RouteComponent, RouterProps, RouterProvider, SyncRouteComponent, lazy, matchesContext, routerContext, useLinkProps, useMatch, useMatchRoute, useMatches, useNavigate, useParams, useRoute, useRouter, useRouterStore, useSearch };
109
+ export { DefaultErrorBoundary, Link, LinkFn, LinkPropsOptions, MakeLinkOptions, MakeLinkPropsOptions, MakeMatchRouteOptions, MakeUseMatchRouteOptions, MatchRoute, MatchesProviderProps, Outlet, PromptProps, ReactRouter, RouteComponent, RouterProps, RouterProvider, SyncRouteComponent, lazy, matchesContext, routerContext, useLinkProps, useMatch, useMatchRoute, useMatches, useNavigate, useParams, useRoute, useRouter, useRouterContext, useSearch };