@tanstack/react-router 0.0.1-beta.38 → 0.0.1-beta.39
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/build/cjs/_virtual/_rollupPluginBabelHelpers.js +0 -13
- package/build/cjs/_virtual/_rollupPluginBabelHelpers.js.map +1 -1
- package/build/cjs/index.js +306 -241
- package/build/cjs/index.js.map +1 -1
- package/build/esm/index.js +296 -252
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +87 -56
- package/build/types/index.d.ts +50 -42
- package/build/umd/index.development.js +1368 -858
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +2 -2
- package/build/umd/index.production.js.map +1 -1
- package/package.json +3 -2
- package/src/index.tsx +468 -421
- package/src/uSES/useSyncExternalStore.ts +16 -0
- package/src/uSES/useSyncExternalStoreShim.ts +20 -0
- package/src/uSES/useSyncExternalStoreShimClient.ts +87 -0
- package/src/uSES/useSyncExternalStoreShimServer.ts +20 -0
package/build/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/index.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { useSyncExternalStore } from 'use-sync-external-store/shim'\n\nimport {\n AnyRoute,\n CheckId,\n rootRouteId,\n Route,\n RegisteredAllRouteInfo,\n RegisteredRouter,\n RouterState,\n ToIdOption,\n last,\n} from '@tanstack/router-core'\nimport {\n warning,\n RouterOptions,\n RouteMatch,\n MatchRouteOptions,\n RouteConfig,\n AnyRouteConfig,\n AnyAllRouteInfo,\n DefaultAllRouteInfo,\n functionalUpdate,\n createRouter,\n AnyRouteInfo,\n AllRouteInfo,\n RouteInfo,\n ValidFromPath,\n LinkOptions,\n RouteInfoByPath,\n ResolveRelativePath,\n NoInfer,\n ToOptions,\n invariant,\n Router,\n} from '@tanstack/router-core'\n\nexport * from '@tanstack/router-core'\n\nexport type SyncRouteComponent<TProps = {}> = (\n props: TProps,\n) => JSX.Element | React.ReactNode\n\nexport type RouteComponent<TProps = {}> = SyncRouteComponent<TProps> & {\n preload?: () => Promise<SyncRouteComponent<TProps>>\n}\n\nexport function lazy(\n importer: () => Promise<{ default: SyncRouteComponent }>,\n): RouteComponent {\n const lazyComp = React.lazy(importer as any)\n let promise: Promise<SyncRouteComponent>\n let resolvedComp: SyncRouteComponent\n\n const forwardedComp = React.forwardRef((props, ref) => {\n const resolvedCompRef = React.useRef(resolvedComp || lazyComp)\n return React.createElement(\n resolvedCompRef.current as any,\n { ...(ref ? { ref } : {}), ...props } as any,\n )\n })\n\n const finalComp = forwardedComp as unknown as RouteComponent\n\n finalComp.preload = () => {\n if (!promise) {\n promise = importer().then((module) => {\n resolvedComp = module.default\n return resolvedComp\n })\n }\n\n return promise\n }\n\n return finalComp\n}\n\nexport type LinkPropsOptions<\n TAllRouteInfo extends AnyAllRouteInfo,\n TFrom extends ValidFromPath<TAllRouteInfo>,\n TTo extends string,\n> = LinkOptions<TAllRouteInfo, 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 MakeMatchRouteOptions<\n TAllRouteInfo extends AnyAllRouteInfo,\n TFrom extends ValidFromPath<TAllRouteInfo>,\n TTo extends string,\n> = ToOptions<TAllRouteInfo, 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 | React.ReactNode\n | ((\n params: RouteInfoByPath<\n TAllRouteInfo,\n ResolveRelativePath<TFrom, NoInfer<TTo>>\n >['allParams'],\n ) => React.ReactNode)\n }\n\nexport type MakeLinkPropsOptions<\n TAllRouteInfo extends AnyAllRouteInfo,\n TFrom extends ValidFromPath<TAllRouteInfo>,\n TTo extends string,\n> = LinkPropsOptions<TAllRouteInfo, TFrom, TTo> &\n React.AnchorHTMLAttributes<HTMLAnchorElement>\n\nexport type MakeLinkOptions<\n TAllRouteInfo extends AnyAllRouteInfo,\n TFrom extends ValidFromPath<TAllRouteInfo>,\n TTo extends string,\n> = LinkPropsOptions<TAllRouteInfo, 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?:\n | React.ReactNode\n | ((state: { isActive: boolean }) => React.ReactNode)\n }\n\ndeclare module '@tanstack/router-core' {\n interface FrameworkGenerics {\n Component: RouteComponent\n ErrorComponent: RouteComponent<{\n error: unknown\n info: { componentStack: string }\n }>\n }\n\n interface RouterOptions<TRouteConfig, TRouterContext> {\n // ssrFooter?: () => JSX.Element | React.ReactNode\n }\n\n interface Router<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = AllRouteInfo<TRouteConfig>,\n > {\n useState: () => RouterState\n useRoute: <TId extends keyof TAllRouteInfo['routeInfoById']>(\n routeId: TId,\n ) => Route<TAllRouteInfo, TAllRouteInfo['routeInfoById'][TId]>\n useMatch: <\n TId extends keyof TAllRouteInfo['routeInfoById'],\n TStrict extends boolean = true,\n >(\n routeId: TId,\n opts?: { strict?: TStrict },\n ) => TStrict extends true\n ? RouteMatch<TAllRouteInfo, TAllRouteInfo['routeInfoById'][TId]>\n :\n | RouteMatch<TAllRouteInfo, TAllRouteInfo['routeInfoById'][TId]>\n | undefined\n linkProps: <TTo extends string = '.'>(\n props: MakeLinkPropsOptions<TAllRouteInfo, '/', TTo>,\n ) => React.AnchorHTMLAttributes<HTMLAnchorElement>\n Link: <TTo extends string = '.'>(\n props: MakeLinkOptions<TAllRouteInfo, '/', TTo>,\n ) => JSX.Element\n MatchRoute: <TTo extends string = '.'>(\n props: MakeMatchRouteOptions<TAllRouteInfo, '/', TTo>,\n ) => JSX.Element\n }\n\n interface Route<\n TAllRouteInfo extends AnyAllRouteInfo = DefaultAllRouteInfo,\n TRouteInfo extends AnyRouteInfo = RouteInfo,\n > {\n useRoute: <\n TTo extends string = '.',\n TResolved extends string = ResolveRelativePath<\n TRouteInfo['id'],\n NoInfer<TTo>\n >,\n >(\n routeId: CheckId<\n TAllRouteInfo,\n TResolved,\n ToIdOption<TAllRouteInfo, TRouteInfo['id'], TTo>\n >,\n opts?: { strict?: boolean },\n ) => Route<TAllRouteInfo, TAllRouteInfo['routeInfoById'][TResolved]>\n linkProps: <TTo extends string = '.'>(\n props: MakeLinkPropsOptions<TAllRouteInfo, TRouteInfo['fullPath'], TTo>,\n ) => React.AnchorHTMLAttributes<HTMLAnchorElement>\n Link: <TTo extends string = '.'>(\n props: MakeLinkOptions<TAllRouteInfo, TRouteInfo['fullPath'], TTo>,\n ) => JSX.Element\n MatchRoute: <TTo extends string = '.'>(\n props: MakeMatchRouteOptions<TAllRouteInfo, TRouteInfo['fullPath'], TTo>,\n ) => JSX.Element\n }\n}\n\nexport type PromptProps = {\n message: string\n when?: boolean | any\n children?: React.ReactNode\n}\n\n//\n\nexport function Link<TTo extends string = '.'>(\n props: MakeLinkOptions<RegisteredAllRouteInfo, '/', TTo>,\n): JSX.Element {\n const router = useRouter()\n return <router.Link {...(props as any)} />\n}\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: React.ReactNode\n}\n\nexport function MatchesProvider(props: MatchesProviderProps) {\n return <matchesContext.Provider {...props} />\n}\n\nconst useRouterSubscription = (router: Router<any, any, any>) => {\n useSyncExternalStore(\n (cb) => router.subscribe(() => cb()),\n () => router.state,\n () => router.state,\n )\n}\n\nexport function createReactRouter<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = AllRouteInfo<TRouteConfig>,\n TRouterContext = unknown,\n>(\n opts: RouterOptions<TRouteConfig, TRouterContext>,\n): Router<TRouteConfig, TAllRouteInfo, TRouterContext> {\n const makeRouteExt = (\n route: AnyRoute,\n router: Router<any, any, any>,\n ): Pick<AnyRoute, 'useRoute' | 'linkProps' | 'Link' | 'MatchRoute'> => {\n return {\n useRoute: (subRouteId = '.' as any) => {\n const resolvedRouteId = router.resolvePath(\n route.routeId,\n subRouteId as string,\n )\n const resolvedRoute = router.getRoute(resolvedRouteId)\n useRouterSubscription(router)\n invariant(\n resolvedRoute,\n `Could not find a route for route \"${\n resolvedRouteId as string\n }\"! Did you forget to add it to your route config?`,\n )\n return resolvedRoute\n },\n linkProps: (options) => {\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 = route.buildLink(options as any)\n\n if (linkInfo.type === 'external') {\n const { href } = linkInfo\n return { href }\n }\n\n const {\n handleClick,\n handleFocus,\n handleEnter,\n handleLeave,\n isActive,\n 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 handleClick(e)\n }\n\n const composeHandlers =\n (handlers: (undefined | ((e: any) => void))[]) =>\n (e: React.SyntheticEvent) => {\n if (e.persist) e.persist()\n handlers.forEach((handler) => {\n if (e.defaultPrevented) return\n if (handler) handler(e)\n })\n }\n\n // Get the active props\n const resolvedActiveProps: React.HTMLAttributes<HTMLAnchorElement> =\n isActive ? functionalUpdate(activeProps, {}) ?? {} : {}\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([reactHandleClick, onClick]),\n onFocus: composeHandlers([handleFocus, onFocus]),\n onMouseEnter: composeHandlers([handleEnter, onMouseEnter]),\n onMouseLeave: composeHandlers([handleLeave, onMouseLeave]),\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 Link: React.forwardRef((props: any, ref) => {\n const linkProps = route.linkProps(props)\n\n useRouterSubscription(router)\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 MatchRoute: (opts) => {\n const { pending, caseSensitive, children, ...rest } = opts\n\n const params = route.matchRoute(rest as any, {\n pending,\n caseSensitive,\n })\n\n if (!params) {\n return null\n }\n\n return typeof opts.children === 'function'\n ? opts.children(params as any)\n : (opts.children as any)\n },\n }\n }\n\n const coreRouter = createRouter<TRouteConfig>({\n ...opts,\n createRouter: (router) => {\n const routerExt: Pick<Router<any, any, any>, 'useMatch' | 'useState'> = {\n useState: () => {\n useRouterSubscription(router)\n return router.state\n },\n useMatch: (routeId, opts) => {\n useRouterSubscription(router)\n\n const nearestMatch = useNearestMatch()\n const match = router.state.currentMatches.find(\n (d) => d.routeId === routeId,\n )\n\n if (opts?.strict ?? true) {\n invariant(\n match,\n `Could not find an active match for \"${routeId as string}\"!`,\n )\n\n invariant(\n nearestMatch.routeId == match?.routeId,\n `useMatch(\"${\n match?.routeId as string\n }\") is being called in a component that is meant to render the '${\n nearestMatch.routeId\n }' route. Did you mean to 'useMatch(\"${\n match?.routeId as string\n }\", { strict: false })' or 'useRoute(\"${\n match?.routeId as string\n }\")' instead?`,\n )\n }\n\n return match as any\n },\n }\n\n const routeExt = makeRouteExt(router.getRoute(rootRouteId), router)\n\n Object.assign(router, routerExt, routeExt)\n },\n createRoute: ({ router, route }) => {\n const routeExt = makeRouteExt(route, router)\n\n Object.assign(route, routeExt)\n },\n loadComponent: async (component) => {\n if (component.preload && typeof document !== 'undefined') {\n component.preload()\n // return await component.preload()\n }\n\n return component as any\n },\n })\n\n return coreRouter as any\n}\n\nexport type RouterProps<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = DefaultAllRouteInfo,\n TRouterContext = unknown,\n> = RouterOptions<TRouteConfig, TRouterContext> & {\n router: Router<TRouteConfig, TAllRouteInfo, TRouterContext>\n}\n\nexport function RouterProvider<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = DefaultAllRouteInfo,\n TRouterContext = unknown,\n>({\n router,\n ...rest\n}: RouterProps<TRouteConfig, TAllRouteInfo, TRouterContext>) {\n router.update(rest)\n\n useRouterSubscription(router)\n React.useEffect(() => {\n return router.mount()\n }, [router])\n\n return (\n <>\n <routerContext.Provider value={{ router: router as any }}>\n <MatchesProvider value={[undefined!, ...router.state.currentMatches]}>\n <Outlet />\n </MatchesProvider>\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\n useRouterSubscription(value.router)\n\n return value.router\n}\n\nexport function useMatches(): RouteMatch[] {\n return React.useContext(matchesContext)\n}\n\nexport function useMatch<\n TId extends keyof RegisteredAllRouteInfo['routeInfoById'],\n TStrict extends boolean = true,\n>(\n routeId: TId,\n opts?: { strict?: TStrict },\n): TStrict extends true\n ? RouteMatch<\n RegisteredAllRouteInfo,\n RegisteredAllRouteInfo['routeInfoById'][TId]\n >\n :\n | RouteMatch<\n RegisteredAllRouteInfo,\n RegisteredAllRouteInfo['routeInfoById'][TId]\n >\n | undefined {\n const router = useRouter()\n return router.useMatch(routeId as any, opts) as any\n}\n\nexport function useNearestMatch(): RouteMatch<\n RegisteredAllRouteInfo,\n RouteInfo\n> {\n const runtimeMatch = useMatches()[0]\n\n invariant(runtimeMatch, `Could not find a nearest match!`)\n\n return runtimeMatch as any\n}\n\nexport function useRoute<\n TId extends keyof RegisteredAllRouteInfo['routeInfoById'],\n>(\n routeId: TId,\n): Route<RegisteredAllRouteInfo, RegisteredAllRouteInfo['routeInfoById'][TId]> {\n const router = useRouter()\n return router.useRoute(routeId as any) as any\n}\n\nexport function useSearch(): RegisteredAllRouteInfo['fullSearchSchema'] {\n return useRouter().state.currentLocation.search\n}\n\nexport function useParams(): RegisteredAllRouteInfo['allParams'] {\n return last(useRouter().state.currentMatches)?.params as any\n}\n\nexport function linkProps<TTo extends string = '.'>(\n props: MakeLinkPropsOptions<RegisteredAllRouteInfo, '/', TTo>,\n): React.AnchorHTMLAttributes<HTMLAnchorElement> {\n const router = useRouter()\n return router.linkProps(props as any)\n}\n\nexport function MatchRoute<TTo extends string = '.'>(\n props: MakeMatchRouteOptions<RegisteredAllRouteInfo, '/', TTo>,\n): JSX.Element {\n const router = useRouter()\n return React.createElement(router.MatchRoute, props as any)\n}\n\nexport function Outlet() {\n const router = useRouter()\n const matches = useMatches().slice(1)\n const match = matches[0]\n\n const defaultPending = React.useCallback(() => null, [])\n\n if (!match) {\n return null\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 <MatchesProvider value={matches}>\n <React.Suspense fallback={<PendingComponent />}>\n <CatchBoundary\n key={match.routeId}\n errorComponent={errorComponent}\n match={match as any}\n >\n {\n ((): React.ReactNode => {\n if (match.status === 'error') {\n throw match.error\n }\n\n if (match.status === 'success') {\n return React.createElement(\n (match.__.component as any) ??\n router.options.defaultComponent ??\n Outlet,\n )\n }\n throw match.__.loadPromise\n })() as JSX.Element\n }\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.matchId === rootRouteId ? (\n <React.Suspense fallback={null}>\n {(() => {\n if (router.state.pending) {\n throw router.navigationPromise\n }\n\n return router.options.ssrFooter()\n })()}\n </React.Suspense>\n ) : null} */}\n </MatchesProvider>\n )\n}\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\n componentDidCatch(error: any, info: any) {\n console.error(`Error in route match: ${this.props.match.matchId}`)\n console.error(error)\n\n this.setState({\n error,\n info,\n })\n }\n\n render() {\n return (\n <CatchBoundaryInner\n {...this.props}\n errorState={this.state}\n reset={() => this.setState({})}\n />\n )\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.\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\n React.useEffect(() => {\n if (activeErrorState) {\n let prevKey = router.state.currentLocation.key\n return router.subscribe(() => {\n if (router.state.currentLocation.key !== prevKey) {\n prevKey = router.state.currentLocation.key\n setActiveErrorState({} as any)\n }\n })\n }\n\n return\n }, [activeErrorState])\n\n React.useEffect(() => {\n if (props.errorState.error) {\n setActiveErrorState(props.errorState)\n }\n props.reset()\n }, [props.errorState.error])\n\n if (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\nexport 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.history.block((transition) => {\n if (window.confirm(message)) {\n unblock()\n transition.retry()\n } else {\n router.state.currentLocation.pathname = window.location.pathname\n }\n })\n\n return unblock\n }, [when, message])\n}\n\nexport function Prompt({ message, when, children }: PromptProps) {\n usePrompt(message, when ?? true)\n return (children ?? null) as React.ReactNode\n}\n"],"names":["lazy","importer","lazyComp","React","promise","resolvedComp","forwardedComp","forwardRef","props","ref","resolvedCompRef","useRef","createElement","current","finalComp","preload","then","module","default","Link","router","useRouter","matchesContext","createContext","routerContext","MatchesProvider","useRouterSubscription","useSyncExternalStore","cb","subscribe","state","createReactRouter","opts","makeRouteExt","route","useRoute","subRouteId","resolvedRouteId","resolvePath","routeId","resolvedRoute","getRoute","invariant","linkProps","options","target","activeProps","className","inactiveProps","disabled","style","onClick","onFocus","onMouseEnter","onMouseLeave","rest","linkInfo","buildLink","type","href","handleClick","handleFocus","handleEnter","handleLeave","isActive","next","reactHandleClick","e","startTransition","composeHandlers","handlers","persist","forEach","handler","defaultPrevented","resolvedActiveProps","functionalUpdate","resolvedInactiveProps","_extends","undefined","filter","Boolean","join","role","children","MatchRoute","pending","caseSensitive","params","matchRoute","coreRouter","createRouter","routerExt","useState","useMatch","nearestMatch","useNearestMatch","match","currentMatches","find","d","strict","routeExt","rootRouteId","Object","assign","createRoute","loadComponent","component","document","RouterProvider","_objectWithoutPropertiesLoose","update","useEffect","mount","value","useContext","warning","useMatches","runtimeMatch","useSearch","currentLocation","search","useParams","last","Outlet","matches","slice","defaultPending","useCallback","PendingComponent","__","pendingComponent","defaultPendingComponent","errorComponent","defaultErrorComponent","status","error","defaultComponent","loadPromise","CatchBoundary","Component","info","componentDidCatch","console","matchId","setState","render","CatchBoundaryInner","activeErrorState","setActiveErrorState","errorState","DefaultErrorBoundary","prevKey","key","reset","padding","maxWidth","fontSize","height","message","border","borderRadius","color","usePrompt","when","unblock","history","block","transition","window","confirm","retry","pathname","location","Prompt"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiDO,SAASA,IAAI,CAClBC,QAAwD,EACxC;AAChB,EAAA,MAAMC,QAAQ,gBAAGC,gBAAK,CAACH,IAAI,CAACC,QAAQ,CAAQ,CAAA;AAC5C,EAAA,IAAIG,OAAoC,CAAA;AACxC,EAAA,IAAIC,YAAgC,CAAA;EAEpC,MAAMC,aAAa,gBAAGH,gBAAK,CAACI,UAAU,CAAC,CAACC,KAAK,EAAEC,GAAG,KAAK;IACrD,MAAMC,eAAe,GAAGP,gBAAK,CAACQ,MAAM,CAACN,YAAY,IAAIH,QAAQ,CAAC,CAAA;IAC9D,oBAAOC,gBAAK,CAACS,aAAa,CACxBF,eAAe,CAACG,OAAO,EACjBJ,oCAAAA,CAAAA,EAAAA,EAAAA,GAAG,GAAG;AAAEA,MAAAA,GAAAA;AAAI,KAAC,GAAG,EAAE,EAAMD,KAAK,CACpC,CAAA,CAAA;AACH,GAAC,CAAC,CAAA;EAEF,MAAMM,SAAS,GAAGR,aAA0C,CAAA;EAE5DQ,SAAS,CAACC,OAAO,GAAG,MAAM;IACxB,IAAI,CAACX,OAAO,EAAE;AACZA,MAAAA,OAAO,GAAGH,QAAQ,EAAE,CAACe,IAAI,CAAEC,MAAM,IAAK;QACpCZ,YAAY,GAAGY,MAAM,CAACC,OAAO,CAAA;AAC7B,QAAA,OAAOb,YAAY,CAAA;AACrB,OAAC,CAAC,CAAA;AACJ,KAAA;AAEA,IAAA,OAAOD,OAAO,CAAA;GACf,CAAA;AAED,EAAA,OAAOU,SAAS,CAAA;AAClB,CAAA;AAqIA;;AAEO,SAASK,IAAI,CAClBX,KAAwD,EAC3C;EACb,MAAMY,MAAM,GAAGC,SAAS,EAAE,CAAA;AAC1B,EAAA,oBAAOlB,+BAAC,MAAM,CAAC,IAAI,EAAMK,KAAK,CAAY,CAAA;AAC5C,CAAA;AAIO,MAAMc,cAAc,gBAAGnB,gBAAK,CAACoB,aAAa,CAAsB,IAAI,EAAE;AACtE,MAAMC,aAAa,gBAAGrB,gBAAK,CAACoB,aAAa,CAC9C,IAAI,EACL;AAOM,SAASE,eAAe,CAACjB,KAA2B,EAAE;AAC3D,EAAA,oBAAOL,+BAAC,cAAc,CAAC,QAAQ,EAAKK,KAAK,CAAI,CAAA;AAC/C,CAAA;AAEA,MAAMkB,qBAAqB,GAAIN,MAA6B,IAAK;EAC/DO,yBAAoB,CACjBC,EAAE,IAAKR,MAAM,CAACS,SAAS,CAAC,MAAMD,EAAE,EAAE,CAAC,EACpC,MAAMR,MAAM,CAACU,KAAK,EAClB,MAAMV,MAAM,CAACU,KAAK,CACnB,CAAA;AACH,CAAC,CAAA;AAEM,SAASC,iBAAiB,CAK/BC,IAAiD,EACI;AACrD,EAAA,MAAMC,YAAY,GAAG,CACnBC,KAAe,EACfd,MAA6B,KACwC;IACrE,OAAO;MACLe,QAAQ,EAAE,SAACC,QAAAA,CAAAA,UAAU,EAAkB;AAAA,QAAA,IAA5BA,UAAU,KAAA,KAAA,CAAA,EAAA;AAAVA,UAAAA,UAAU,GAAG,GAAG,CAAA;AAAA,SAAA;QACzB,MAAMC,eAAe,GAAGjB,MAAM,CAACkB,WAAW,CACxCJ,KAAK,CAACK,OAAO,EACbH,UAAU,CACX,CAAA;AACD,QAAA,MAAMI,aAAa,GAAGpB,MAAM,CAACqB,QAAQ,CAACJ,eAAe,CAAC,CAAA;QACtDX,qBAAqB,CAACN,MAAM,CAAC,CAAA;AAC7BsB,QAAAA,oBAAS,CACPF,aAAa,EAEXH,qCAAAA,GAAAA,eAAe,GAElB,oDAAA,CAAA,CAAA;AACD,QAAA,OAAOG,aAAa,CAAA;OACrB;MACDG,SAAS,EAAGC,OAAO,IAAK;AAAA,QAAA,IAAA,iBAAA,EAAA,kBAAA,CAAA;QACtB,MAAM;AACJ;;YAGAC,MAAM;AACNC,YAAAA,WAAW,GAAG,OAAO;AAAEC,cAAAA,SAAS,EAAE,QAAA;AAAS,aAAC,CAAC;AAC7CC,YAAAA,aAAa,GAAG,OAAO,EAAE,CAAC;YAE1BC,QAAQ;AAUR;YACAC,KAAK;YACLH,SAAS;YACTI,OAAO;YACPC,OAAO;YACPC,YAAY;AACZC,YAAAA,YAAAA;AAIF,WAAC,GAAGV,OAAO;AADNW,UAAAA,IAAI,0DACLX,OAAO,EAAA,SAAA,CAAA,CAAA;AAEX,QAAA,MAAMY,QAAQ,GAAGtB,KAAK,CAACuB,SAAS,CAACb,OAAO,CAAQ,CAAA;AAEhD,QAAA,IAAIY,QAAQ,CAACE,IAAI,KAAK,UAAU,EAAE;UAChC,MAAM;AAAEC,YAAAA,IAAAA;AAAK,WAAC,GAAGH,QAAQ,CAAA;UACzB,OAAO;AAAEG,YAAAA,IAAAA;WAAM,CAAA;AACjB,SAAA;QAEA,MAAM;UACJC,WAAW;UACXC,WAAW;UACXC,WAAW;UACXC,WAAW;UACXC,QAAQ;AACRC,UAAAA,IAAAA;AACF,SAAC,GAAGT,QAAQ,CAAA;QAEZ,MAAMU,gBAAgB,GAAIC,CAAQ,IAAK;UACrC,IAAIhE,gBAAK,CAACiE,eAAe;AACvB;YACAjE,gBAAK,CAACiE,eAAe,CAAC,MAAM;cAC1BR,WAAW,CAACO,CAAC,CAAC,CAAA;AAChB,aAAC,CAAC,CAAA,KACCP,WAAW,CAACO,CAAC,CAAC,CAAA;SACpB,CAAA;AAED,QAAA,MAAME,eAAe,GAClBC,QAA4C,IAC5CH,CAAuB,IAAK;AAC3B,UAAA,IAAIA,CAAC,CAACI,OAAO,EAAEJ,CAAC,CAACI,OAAO,EAAE,CAAA;AAC1BD,UAAAA,QAAQ,CAACE,OAAO,CAAEC,OAAO,IAAK;YAC5B,IAAIN,CAAC,CAACO,gBAAgB,EAAE,OAAA;AACxB,YAAA,IAAID,OAAO,EAAEA,OAAO,CAACN,CAAC,CAAC,CAAA;AACzB,WAAC,CAAC,CAAA;SACH,CAAA;;AAEH;AACA,QAAA,MAAMQ,mBAA4D,GAChEX,QAAQ,GAAGY,CAAAA,iBAAAA,GAAAA,2BAAgB,CAAC9B,WAAW,EAAE,EAAE,CAAC,KAAI,IAAA,GAAA,iBAAA,GAAA,EAAE,GAAG,EAAE,CAAA;;AAEzD;AACA,QAAA,MAAM+B,qBAA8D,GAClEb,QAAQ,GAAG,EAAE,GAAGY,CAAAA,kBAAAA,GAAAA,2BAAgB,CAAC5B,aAAa,EAAE,EAAE,CAAC,KAAA,IAAA,GAAA,kBAAA,GAAI,EAAE,CAAA;AAE3D,QAAA,OAAA8B,oCAAA,CAAA,EAAA,EACKH,mBAAmB,EACnBE,qBAAqB,EACrBtB,IAAI,EAAA;AACPI,UAAAA,IAAI,EAAEV,QAAQ,GAAG8B,SAAS,GAAGd,IAAI,CAACN,IAAI;UACtCR,OAAO,EAAEkB,eAAe,CAAC,CAACH,gBAAgB,EAAEf,OAAO,CAAC,CAAC;UACrDC,OAAO,EAAEiB,eAAe,CAAC,CAACR,WAAW,EAAET,OAAO,CAAC,CAAC;UAChDC,YAAY,EAAEgB,eAAe,CAAC,CAACP,WAAW,EAAET,YAAY,CAAC,CAAC;UAC1DC,YAAY,EAAEe,eAAe,CAAC,CAACN,WAAW,EAAET,YAAY,CAAC,CAAC;UAC1DT,MAAM;UACNK,KAAK,EAAA4B,oCAAA,CAAA,EAAA,EACA5B,KAAK,EACLyB,mBAAmB,CAACzB,KAAK,EACzB2B,qBAAqB,CAAC3B,KAAK,CAC/B;UACDH,SAAS,EACP,CACEA,SAAS,EACT4B,mBAAmB,CAAC5B,SAAS,EAC7B8B,qBAAqB,CAAC9B,SAAS,CAChC,CACEiC,MAAM,CAACC,OAAO,CAAC,CACfC,IAAI,CAAC,GAAG,CAAC,IAAIH,SAAAA;AAAS,SAAA,EACvB9B,QAAQ,GACR;AACEkC,UAAAA,IAAI,EAAE,MAAM;AACZ,UAAA,eAAe,EAAE,IAAA;AACnB,SAAC,GACDJ,SAAS,EAAA;AACb,UAAA,CAAC,aAAa,GAAGf,QAAQ,GAAG,QAAQ,GAAGe,SAAAA;AAAS,SAAA,CAAA,CAAA;OAEnD;MACD5D,IAAI,eAAEhB,gBAAK,CAACI,UAAU,CAAC,CAACC,KAAU,EAAEC,GAAG,KAAK;AAC1C,QAAA,MAAMkC,SAAS,GAAGT,KAAK,CAACS,SAAS,CAACnC,KAAK,CAAC,CAAA;QAExCkB,qBAAqB,CAACN,MAAM,CAAC,CAAA;QAE7B,oBACEjB,gBAAA,CAAA,aAAA,CAAA,GAAA,EAAA2E,oCAAA,CAAA;AAEIrE,UAAAA,GAAG,EAAEA,GAAAA;AAAU,SAAA,EACZkC,SAAS,EAAA;UACZyC,QAAQ,EACN,OAAO5E,KAAK,CAAC4E,QAAQ,KAAK,UAAU,GAChC5E,KAAK,CAAC4E,QAAQ,CAAC;AACbpB,YAAAA,QAAQ,EAAGrB,SAAS,CAAS,aAAa,CAAC,KAAK,QAAA;WACjD,CAAC,GACFnC,KAAK,CAAC4E,QAAAA;SAEd,CAAA,CAAA,CAAA;AAEN,OAAC,CAAQ;MACTC,UAAU,EAAGrD,IAAI,IAAK;QACpB,MAAM;YAAEsD,OAAO;AAAEC,YAAAA,aAAAA;AAAiC,WAAC,GAAGvD,IAAI;AAAbuB,UAAAA,IAAI,0DAAKvB,IAAI,EAAA,UAAA,CAAA,CAAA;AAE1D,QAAA,MAAMwD,MAAM,GAAGtD,KAAK,CAACuD,UAAU,CAAClC,IAAI,EAAS;UAC3C+B,OAAO;AACPC,UAAAA,aAAAA;AACF,SAAC,CAAC,CAAA;QAEF,IAAI,CAACC,MAAM,EAAE;AACX,UAAA,OAAO,IAAI,CAAA;AACb,SAAA;AAEA,QAAA,OAAO,OAAOxD,IAAI,CAACoD,QAAQ,KAAK,UAAU,GACtCpD,IAAI,CAACoD,QAAQ,CAACI,MAAM,CAAQ,GAC3BxD,IAAI,CAACoD,QAAgB,CAAA;AAC5B,OAAA;KACD,CAAA;GACF,CAAA;AAED,EAAA,MAAMM,UAAU,GAAGC,uBAAY,CAAAb,oCAAA,CAAA,EAAA,EAC1B9C,IAAI,EAAA;IACP2D,YAAY,EAAGvE,MAAM,IAAK;AACxB,MAAA,MAAMwE,SAA+D,GAAG;AACtEC,QAAAA,QAAQ,EAAE,MAAM;UACdnE,qBAAqB,CAACN,MAAM,CAAC,CAAA;UAC7B,OAAOA,MAAM,CAACU,KAAK,CAAA;SACpB;AACDgE,QAAAA,QAAQ,EAAE,CAACvD,OAAO,EAAEP,IAAI,KAAK;AAAA,UAAA,IAAA,YAAA,CAAA;UAC3BN,qBAAqB,CAACN,MAAM,CAAC,CAAA;UAE7B,MAAM2E,YAAY,GAAGC,eAAe,EAAE,CAAA;AACtC,UAAA,MAAMC,KAAK,GAAG7E,MAAM,CAACU,KAAK,CAACoE,cAAc,CAACC,IAAI,CAC3CC,CAAC,IAAKA,CAAC,CAAC7D,OAAO,KAAKA,OAAO,CAC7B,CAAA;AAED,UAAA,IAAA,CAAA,YAAA,GAAIP,IAAI,IAAJA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,IAAI,CAAEqE,MAAM,KAAA,IAAA,GAAA,YAAA,GAAI,IAAI,EAAE;AACxB3D,YAAAA,oBAAS,CACPuD,KAAK,EACkC1D,uCAAAA,GAAAA,OAAO,GAC/C,KAAA,CAAA,CAAA;AAEDG,YAAAA,oBAAS,CACPqD,YAAY,CAACxD,OAAO,KAAI0D,KAAK,IAAA,IAAA,GAAA,KAAA,CAAA,GAALA,KAAK,CAAE1D,OAAO,CAAA,EAAA,aAAA,IAEpC0D,KAAK,IAAA,IAAA,GAAA,KAAA,CAAA,GAALA,KAAK,CAAE1D,OAAO,CAEdwD,GAAAA,kEAAAA,GAAAA,YAAY,CAACxD,OAAO,GAEpB0D,uCAAAA,IAAAA,KAAK,oBAALA,KAAK,CAAE1D,OAAO,CAAA,GAAA,yCAAA,IAEd0D,KAAK,IAAA,IAAA,GAAA,KAAA,CAAA,GAALA,KAAK,CAAE1D,OAAO,CAEjB,GAAA,eAAA,CAAA,CAAA;AACH,WAAA;AAEA,UAAA,OAAO0D,KAAK,CAAA;AACd,SAAA;OACD,CAAA;AAED,MAAA,MAAMK,QAAQ,GAAGrE,YAAY,CAACb,MAAM,CAACqB,QAAQ,CAAC8D,sBAAW,CAAC,EAAEnF,MAAM,CAAC,CAAA;MAEnEoF,MAAM,CAACC,MAAM,CAACrF,MAAM,EAAEwE,SAAS,EAAEU,QAAQ,CAAC,CAAA;KAC3C;AACDI,IAAAA,WAAW,EAAE,IAAuB,IAAA;MAAA,IAAtB;QAAEtF,MAAM;AAAEc,QAAAA,KAAAA;OAAO,GAAA,IAAA,CAAA;AAC7B,MAAA,MAAMoE,QAAQ,GAAGrE,YAAY,CAACC,KAAK,EAAEd,MAAM,CAAC,CAAA;AAE5CoF,MAAAA,MAAM,CAACC,MAAM,CAACvE,KAAK,EAAEoE,QAAQ,CAAC,CAAA;KAC/B;IACDK,aAAa,EAAE,MAAOC,SAAS,IAAK;MAClC,IAAIA,SAAS,CAAC7F,OAAO,IAAI,OAAO8F,QAAQ,KAAK,WAAW,EAAE;QACxDD,SAAS,CAAC7F,OAAO,EAAE,CAAA;AACnB;AACF,OAAA;;AAEA,MAAA,OAAO6F,SAAS,CAAA;AAClB,KAAA;GACA,CAAA,CAAA,CAAA;AAEF,EAAA,OAAOlB,UAAU,CAAA;AACnB,CAAA;AAUO,SAASoB,cAAc,CAO+B,KAAA,EAAA;EAAA,IAH3D;AACA1F,MAAAA,MAAAA;KAEyD,GAAA,KAAA;IADtDmC,IAAI,GAAAwD,sDAAA,CAAA,KAAA,EAAA,UAAA,CAAA,CAAA;AAEP3F,EAAAA,MAAM,CAAC4F,MAAM,CAACzD,IAAI,CAAC,CAAA;EAEnB7B,qBAAqB,CAACN,MAAM,CAAC,CAAA;EAC7BjB,gBAAK,CAAC8G,SAAS,CAAC,MAAM;IACpB,OAAO7F,MAAM,CAAC8F,KAAK,EAAE,CAAA;AACvB,GAAC,EAAE,CAAC9F,MAAM,CAAC,CAAC,CAAA;AAEZ,EAAA,oBACEjB,gBACE,CAAA,aAAA,CAAAA,gBAAA,CAAA,QAAA,EAAA,IAAA,eAAAA,gBAAA,CAAA,aAAA,CAAC,aAAa,CAAC,QAAQ,EAAA;AAAC,IAAA,KAAK,EAAE;AAAEiB,MAAAA,MAAM,EAAEA,MAAAA;AAAc,KAAA;AAAE,GAAA,eACvDjB,+BAAC,eAAe,EAAA;IAAC,KAAK,EAAE,CAAC4E,SAAS,EAAG,GAAG3D,MAAM,CAACU,KAAK,CAACoE,cAAc,CAAA;AAAE,GAAA,eACnE/F,gBAAC,CAAA,aAAA,CAAA,MAAM,EAAG,IAAA,CAAA,CACM,CACK,CACxB,CAAA;AAEP,CAAA;AAEO,SAASkB,SAAS,GAAqB;AAC5C,EAAA,MAAM8F,KAAK,GAAGhH,gBAAK,CAACiH,UAAU,CAAC5F,aAAa,CAAC,CAAA;AAC7C6F,EAAAA,kBAAO,CAAC,CAACF,KAAK,EAAE,qDAAqD,CAAC,CAAA;AAEtEzF,EAAAA,qBAAqB,CAACyF,KAAK,CAAC/F,MAAM,CAAC,CAAA;EAEnC,OAAO+F,KAAK,CAAC/F,MAAM,CAAA;AACrB,CAAA;AAEO,SAASkG,UAAU,GAAiB;AACzC,EAAA,OAAOnH,gBAAK,CAACiH,UAAU,CAAC9F,cAAc,CAAC,CAAA;AACzC,CAAA;AAEO,SAASwE,QAAQ,CAItBvD,OAAY,EACZP,IAA2B,EAWX;EAChB,MAAMZ,MAAM,GAAGC,SAAS,EAAE,CAAA;AAC1B,EAAA,OAAOD,MAAM,CAAC0E,QAAQ,CAACvD,OAAO,EAASP,IAAI,CAAC,CAAA;AAC9C,CAAA;AAEO,SAASgE,eAAe,GAG7B;AACA,EAAA,MAAMuB,YAAY,GAAGD,UAAU,EAAE,CAAC,CAAC,CAAC,CAAA;EAEpC5E,oBAAS,CAAC6E,YAAY,EAAoC,iCAAA,CAAA,CAAA;AAE1D,EAAA,OAAOA,YAAY,CAAA;AACrB,CAAA;AAEO,SAASpF,QAAQ,CAGtBI,OAAY,EACiE;EAC7E,MAAMnB,MAAM,GAAGC,SAAS,EAAE,CAAA;AAC1B,EAAA,OAAOD,MAAM,CAACe,QAAQ,CAACI,OAAO,CAAQ,CAAA;AACxC,CAAA;AAEO,SAASiF,SAAS,GAA+C;AACtE,EAAA,OAAOnG,SAAS,EAAE,CAACS,KAAK,CAAC2F,eAAe,CAACC,MAAM,CAAA;AACjD,CAAA;AAEO,SAASC,SAAS,GAAwC;AAAA,EAAA,IAAA,KAAA,CAAA;EAC/D,OAAOC,CAAAA,KAAAA,GAAAA,eAAI,CAACvG,SAAS,EAAE,CAACS,KAAK,CAACoE,cAAc,CAAC,KAAtC,IAAA,GAAA,KAAA,CAAA,GAAA,KAAA,CAAwCV,MAAM,CAAA;AACvD,CAAA;AAEO,SAAS7C,SAAS,CACvBnC,KAA6D,EACd;EAC/C,MAAMY,MAAM,GAAGC,SAAS,EAAE,CAAA;AAC1B,EAAA,OAAOD,MAAM,CAACuB,SAAS,CAACnC,KAAK,CAAQ,CAAA;AACvC,CAAA;AAEO,SAAS6E,UAAU,CACxB7E,KAA8D,EACjD;EACb,MAAMY,MAAM,GAAGC,SAAS,EAAE,CAAA;EAC1B,oBAAOlB,gBAAK,CAACS,aAAa,CAACQ,MAAM,CAACiE,UAAU,EAAE7E,KAAK,CAAQ,CAAA;AAC7D,CAAA;AAEO,SAASqH,MAAM,GAAG;AAAA,EAAA,IAAA,KAAA,EAAA,qBAAA,EAAA,qBAAA,CAAA;EACvB,MAAMzG,MAAM,GAAGC,SAAS,EAAE,CAAA;EAC1B,MAAMyG,OAAO,GAAGR,UAAU,EAAE,CAACS,KAAK,CAAC,CAAC,CAAC,CAAA;AACrC,EAAA,MAAM9B,KAAK,GAAG6B,OAAO,CAAC,CAAC,CAAC,CAAA;EAExB,MAAME,cAAc,GAAG7H,gBAAK,CAAC8H,WAAW,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC,CAAA;EAExD,IAAI,CAAChC,KAAK,EAAE;AACV,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;AAEA,EAAA,MAAMiC,gBAAgB,GAAA,CAAA,KAAA,GAAA,CAAA,qBAAA,GAAIjC,KAAK,CAACkC,EAAE,CAACC,gBAAgB,KACjDhH,IAAAA,GAAAA,qBAAAA,GAAAA,MAAM,CAACwB,OAAO,CAACyF,uBAAuB,oBACtCL,cAAsB,CAAA;AAExB,EAAA,MAAMM,cAAc,GAAA,CAAA,qBAAA,GAClBrC,KAAK,CAACkC,EAAE,CAACG,cAAc,KAAA,IAAA,GAAA,qBAAA,GAAIlH,MAAM,CAACwB,OAAO,CAAC2F,qBAAqB,CAAA;AAEjE,EAAA,oBACEpI,+BAAC,eAAe,EAAA;AAAC,IAAA,KAAK,EAAE2H,OAAAA;GACtB,eAAA3H,gBAAA,CAAA,aAAA,CAACA,gBAAK,CAAC,QAAQ,EAAA;IAAC,QAAQ,eAAEA,+BAAC,gBAAgB,EAAA,IAAA,CAAA;AAAI,GAAA,eAC7CA,+BAAC,aAAa,EAAA;IACZ,GAAG,EAAE8F,KAAK,CAAC1D,OAAQ;AACnB,IAAA,cAAc,EAAE+F,cAAe;AAC/B,IAAA,KAAK,EAAErC,KAAAA;AAAa,GAAA,EAGlB,CAAC,MAAuB;AACtB,IAAA,IAAIA,KAAK,CAACuC,MAAM,KAAK,OAAO,EAAE;MAC5B,MAAMvC,KAAK,CAACwC,KAAK,CAAA;AACnB,KAAA;AAEA,IAAA,IAAIxC,KAAK,CAACuC,MAAM,KAAK,SAAS,EAAE;AAAA,MAAA,IAAA,KAAA,EAAA,KAAA,CAAA;AAC9B,MAAA,oBAAOrI,gBAAK,CAACS,aAAa,CACvBqF,CAAAA,KAAAA,GAAAA,CAAAA,KAAAA,GAAAA,KAAK,CAACkC,EAAE,CAACvB,SAAS,KAAA,IAAA,GAAA,KAAA,GACjBxF,MAAM,CAACwB,OAAO,CAAC8F,gBAAgB,KAAA,IAAA,GAAA,KAAA,GAC/Bb,MAAM,CACT,CAAA;AACH,KAAA;AACA,IAAA,MAAM5B,KAAK,CAACkC,EAAE,CAACQ,WAAW,CAAA;GAC3B,GAAG,CAEQ,CACD,CAcD,CAAA;AAEtB,CAAA;AAEA,MAAMC,aAAa,SAASzI,gBAAK,CAAC0I,SAAS,CAIxC;AAAA,EAAA,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA,CAAA;AAAA,IAAA,IAAA,CACD/G,KAAK,GAAG;AACN2G,MAAAA,KAAK,EAAE,KAAK;AACZK,MAAAA,IAAI,EAAE/D,SAAAA;KACP,CAAA;AAAA,GAAA;AAEDgE,EAAAA,iBAAiB,CAACN,KAAU,EAAEK,IAAS,EAAE;IACvCE,OAAO,CAACP,KAAK,CAAA,wBAAA,GAA0B,IAAI,CAACjI,KAAK,CAACyF,KAAK,CAACgD,OAAO,CAAG,CAAA;AAClED,IAAAA,OAAO,CAACP,KAAK,CAACA,KAAK,CAAC,CAAA;IAEpB,IAAI,CAACS,QAAQ,CAAC;MACZT,KAAK;AACLK,MAAAA,IAAAA;AACF,KAAC,CAAC,CAAA;AACJ,GAAA;AAEAK,EAAAA,MAAM,GAAG;AACP,IAAA,oBACEhJ,gBAAC,CAAA,aAAA,CAAA,kBAAkB,EACb2E,oCAAA,CAAA,EAAA,EAAA,IAAI,CAACtE,KAAK,EAAA;MACd,UAAU,EAAE,IAAI,CAACsB,KAAM;AACvB,MAAA,KAAK,EAAE,MAAM,IAAI,CAACoH,QAAQ,CAAC,EAAE,CAAA;KAC7B,CAAA,CAAA,CAAA;AAEN,GAAA;AACF,CAAA;;AAEA;AACA;AACA;AACA,SAASE,kBAAkB,CAAC5I,KAK3B,EAAE;AAAA,EAAA,IAAA,qBAAA,CAAA;AACD,EAAA,MAAM,CAAC6I,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGnJ,gBAAK,CAAC0F,QAAQ,CAC5DrF,KAAK,CAAC+I,UAAU,CACjB,CAAA;EACD,MAAMnI,MAAM,GAAGC,SAAS,EAAE,CAAA;AAC1B,EAAA,MAAMiH,cAAc,GAAG9H,CAAAA,qBAAAA,GAAAA,KAAK,CAAC8H,cAAc,oCAAIkB,oBAAoB,CAAA;EAEnErJ,gBAAK,CAAC8G,SAAS,CAAC,MAAM;AACpB,IAAA,IAAIoC,gBAAgB,EAAE;MACpB,IAAII,OAAO,GAAGrI,MAAM,CAACU,KAAK,CAAC2F,eAAe,CAACiC,GAAG,CAAA;AAC9C,MAAA,OAAOtI,MAAM,CAACS,SAAS,CAAC,MAAM;QAC5B,IAAIT,MAAM,CAACU,KAAK,CAAC2F,eAAe,CAACiC,GAAG,KAAKD,OAAO,EAAE;AAChDA,UAAAA,OAAO,GAAGrI,MAAM,CAACU,KAAK,CAAC2F,eAAe,CAACiC,GAAG,CAAA;UAC1CJ,mBAAmB,CAAC,EAAE,CAAQ,CAAA;AAChC,SAAA;AACF,OAAC,CAAC,CAAA;AACJ,KAAA;AAEA,IAAA,OAAA;AACF,GAAC,EAAE,CAACD,gBAAgB,CAAC,CAAC,CAAA;EAEtBlJ,gBAAK,CAAC8G,SAAS,CAAC,MAAM;AACpB,IAAA,IAAIzG,KAAK,CAAC+I,UAAU,CAACd,KAAK,EAAE;AAC1Ba,MAAAA,mBAAmB,CAAC9I,KAAK,CAAC+I,UAAU,CAAC,CAAA;AACvC,KAAA;IACA/I,KAAK,CAACmJ,KAAK,EAAE,CAAA;GACd,EAAE,CAACnJ,KAAK,CAAC+I,UAAU,CAACd,KAAK,CAAC,CAAC,CAAA;EAE5B,IAAIY,gBAAgB,CAACZ,KAAK,EAAE;AAC1B,IAAA,oBAAOtI,gBAAK,CAACS,aAAa,CAAC0H,cAAc,EAAEe,gBAAgB,CAAC,CAAA;AAC9D,GAAA;EAEA,OAAO7I,KAAK,CAAC4E,QAAQ,CAAA;AACvB,CAAA;AAEO,SAASoE,oBAAoB,CAA4B,KAAA,EAAA;EAAA,IAA3B;AAAEf,IAAAA,KAAAA;GAAuB,GAAA,KAAA,CAAA;EAC5D,oBACEtI,gBAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,KAAK,EAAE;AAAEyJ,MAAAA,OAAO,EAAE,OAAO;AAAEC,MAAAA,QAAQ,EAAE,MAAA;AAAO,KAAA;GAC/C,eAAA1J,gBAAA,CAAA,aAAA,CAAA,QAAA,EAAA;AAAQ,IAAA,KAAK,EAAE;AAAE2J,MAAAA,QAAQ,EAAE,QAAA;AAAS,KAAA;AAAE,GAAA,EAAA,uBAAA,CAA+B,eACrE3J,gBAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,KAAK,EAAE;AAAE4J,MAAAA,MAAM,EAAE,OAAA;AAAQ,KAAA;AAAE,GAAA,CAAG,eACnC5J,gBACE,CAAA,aAAA,CAAA,KAAA,EAAA,IAAA,eAAAA,gBAAA,CAAA,aAAA,CAAA,KAAA,EAAA,IAAA,EACGsI,KAAK,CAACuB,OAAO,gBACZ7J,gBAAA,CAAA,aAAA,CAAA,MAAA,EAAA;AACE,IAAA,KAAK,EAAE;AACL2J,MAAAA,QAAQ,EAAE,MAAM;AAChBG,MAAAA,MAAM,EAAE,eAAe;AACvBC,MAAAA,YAAY,EAAE,QAAQ;AACtBN,MAAAA,OAAO,EAAE,OAAO;AAChBO,MAAAA,KAAK,EAAE,KAAA;AACT,KAAA;GAEC1B,EAAAA,KAAK,CAACuB,OAAO,CACT,GACL,IAAI,CACJ,CACF,CACF,CAAA;AAEV,CAAA;AAEO,SAASI,SAAS,CAACJ,OAAe,EAAEK,IAAmB,EAAQ;EACpE,MAAMjJ,MAAM,GAAGC,SAAS,EAAE,CAAA;EAE1BlB,gBAAK,CAAC8G,SAAS,CAAC,MAAM;IACpB,IAAI,CAACoD,IAAI,EAAE,OAAA;IAEX,IAAIC,OAAO,GAAGlJ,MAAM,CAACmJ,OAAO,CAACC,KAAK,CAAEC,UAAU,IAAK;AACjD,MAAA,IAAIC,MAAM,CAACC,OAAO,CAACX,OAAO,CAAC,EAAE;AAC3BM,QAAAA,OAAO,EAAE,CAAA;QACTG,UAAU,CAACG,KAAK,EAAE,CAAA;AACpB,OAAC,MAAM;QACLxJ,MAAM,CAACU,KAAK,CAAC2F,eAAe,CAACoD,QAAQ,GAAGH,MAAM,CAACI,QAAQ,CAACD,QAAQ,CAAA;AAClE,OAAA;AACF,KAAC,CAAC,CAAA;AAEF,IAAA,OAAOP,OAAO,CAAA;AAChB,GAAC,EAAE,CAACD,IAAI,EAAEL,OAAO,CAAC,CAAC,CAAA;AACrB,CAAA;AAEO,SAASe,MAAM,CAA2C,KAAA,EAAA;EAAA,IAA1C;IAAEf,OAAO;IAAEK,IAAI;AAAEjF,IAAAA,QAAAA;GAAuB,GAAA,KAAA,CAAA;EAC7DgF,SAAS,CAACJ,OAAO,EAAEK,IAAI,WAAJA,IAAI,GAAI,IAAI,CAAC,CAAA;AAChC,EAAA,OAAQjF,QAAQ,IAAA,IAAA,GAARA,QAAQ,GAAI,IAAI,CAAA;AAC1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/index.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { useSyncExternalStore } from 'use-sync-external-store/shim'\n// @ts-ignore\n// import { useSyncExternalStore } from './uSES/useSyncExternalStoreShim'\nimport { createEffect, createRoot, untrack, unwrap } from '@solidjs/reactivity'\nimport { createStore } from '@solidjs/reactivity'\n\nimport {\n Route,\n RegisteredAllRouteInfo,\n RegisteredRouter,\n RouterStore,\n last,\n sharedClone,\n Action,\n warning,\n RouterOptions,\n RouteMatch,\n MatchRouteOptions,\n RouteConfig,\n AnyRouteConfig,\n AnyAllRouteInfo,\n DefaultAllRouteInfo,\n functionalUpdate,\n createRouter,\n AllRouteInfo,\n ValidFromPath,\n LinkOptions,\n RouteInfoByPath,\n ResolveRelativePath,\n NoInfer,\n ToOptions,\n invariant,\n Router,\n Expand,\n} from '@tanstack/router-core'\n\nexport * from '@tanstack/router-core'\n\nexport * from '@solidjs/reactivity'\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 RegisteredAllRouteInfo['routePaths'] = '/',\n TTo extends string = '.',\n> = LinkOptions<RegisteredAllRouteInfo, 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 RegisteredAllRouteInfo['routePaths'] = '/',\n TTo extends string = '.',\n> = ToOptions<RegisteredAllRouteInfo, TFrom, TTo> & MatchRouteOptions\n\nexport type MakeMatchRouteOptions<\n TFrom extends RegisteredAllRouteInfo['routePaths'] = '/',\n TTo extends string = '.',\n> = ToOptions<RegisteredAllRouteInfo, 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: RouteInfoByPath<\n RegisteredAllRouteInfo,\n ResolveRelativePath<TFrom, NoInfer<TTo>>\n >['allParams'],\n ) => ReactNode)\n }\n\nexport type MakeLinkPropsOptions<\n TFrom extends ValidFromPath<RegisteredAllRouteInfo> = '/',\n TTo extends string = '.',\n> = LinkPropsOptions<TFrom, TTo> & React.AnchorHTMLAttributes<HTMLAnchorElement>\n\nexport type MakeLinkOptions<\n TFrom extends RegisteredAllRouteInfo['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-core' {\n interface FrameworkGenerics {\n Component: RouteComponent\n ErrorComponent: RouteComponent<{\n error: unknown\n info: { componentStack: string }\n }>\n }\n\n interface RouterOptions<TRouteConfig, 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<RegisteredAllRouteInfo> = '/',\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, {}) ?? {}\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 RegisteredAllRouteInfo['routePaths'] = '/',\n TDefaultTo extends string = '.',\n> {\n <\n TFrom extends RegisteredAllRouteInfo['routePaths'] = TDefaultFrom,\n TTo extends string = TDefaultTo,\n >(\n props: MakeLinkOptions<TFrom, TTo>,\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\nconst EMPTY = {}\n\nexport const __useStoreValue = <TSeed, TReturn>(\n seed: () => TSeed,\n selector?: (seed: TSeed) => TReturn,\n): TReturn => {\n const valueRef = React.useRef<TReturn>(EMPTY as any)\n\n // If there is no selector, track the seed\n // If there is a selector, do not track the seed\n const getValue = () =>\n (!selector ? seed() : selector(untrack(() => seed()))) as TReturn\n\n // If empty, initialize the value\n if (valueRef.current === EMPTY) {\n valueRef.current = sharedClone(undefined, getValue())\n }\n\n // Snapshot should just return the current cached value\n const getSnapshot = React.useCallback(() => valueRef.current, [])\n\n const getStore = React.useCallback((cb: () => void) => {\n // A root is necessary to track effects\n return createRoot(() => {\n createEffect(() => {\n // Read and update the value\n // getValue will handle which values are accessed and\n // thus tracked.\n // sharedClone will both recursively track the end result\n // and ensure that the previous value is structurally shared\n // into the new version.\n valueRef.current = unwrap(\n // Unwrap the value to get rid of any proxy structures\n sharedClone(valueRef.current, getValue()),\n )\n cb()\n })\n })\n }, [])\n\n return useSyncExternalStore(getStore, getSnapshot, getSnapshot)\n}\n\nconst [store, setStore] = createStore({ foo: 'foo', bar: { baz: 'baz' } })\n\ncreateRoot(() => {\n let prev: any\n\n createEffect(() => {\n console.log('effect')\n const next = sharedClone(prev, store)\n console.log(next)\n prev = untrack(() => next)\n })\n})\n\nsetStore((s) => {\n s.foo = '1'\n})\n\nsetStore((s) => {\n s.bar.baz = '2'\n})\n\nexport function createReactRouter<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = AllRouteInfo<TRouteConfig>,\n TRouterContext = unknown,\n>(\n opts: RouterOptions<TRouteConfig, TRouterContext>,\n): Router<TRouteConfig, TAllRouteInfo, TRouterContext> {\n const coreRouter = createRouter<TRouteConfig>({\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 return coreRouter as any\n}\n\nexport type RouterProps<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = DefaultAllRouteInfo,\n TRouterContext = unknown,\n> = RouterOptions<TRouteConfig, TRouterContext> & {\n router: Router<TRouteConfig, TAllRouteInfo, TRouterContext>\n}\n\nexport function RouterProvider<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = DefaultAllRouteInfo,\n TRouterContext = unknown,\n>({\n router,\n ...rest\n}: RouterProps<TRouteConfig, TAllRouteInfo, TRouterContext>) {\n router.update(rest)\n\n const [, , currentMatches] = __useStoreValue(\n () => router.store,\n (s) => [s.status, s.pendingMatches, s.currentMatches],\n )\n\n React.useEffect(router.mount, [router])\n\n console.log('current', currentMatches)\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): T {\n const router = useRouter()\n return __useStoreValue(() => router.store, selector)\n}\n\nexport function useMatches(): RouteMatch[] {\n return React.useContext(matchesContext)\n}\n\nexport function useMatch<\n TFrom extends keyof RegisteredAllRouteInfo['routeInfoById'],\n TStrict extends boolean = true,\n TRouteMatch = RouteMatch<\n RegisteredAllRouteInfo,\n RegisteredAllRouteInfo['routeInfoById'][TFrom]\n >,\n // TSelected = TRouteMatch,\n>(opts?: {\n from: TFrom\n strict?: TStrict\n // select?: (match: TRouteMatch) => TSelected\n}): TStrict extends true ? TRouteMatch : TRouteMatch | undefined {\n const router = useRouter()\n const nearestMatch = useMatches()[0]!\n const match = opts?.from\n ? router.store.currentMatches.find((d) => d.routeId === 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.routeId == match?.routeId,\n `useMatch(\"${\n match?.routeId as string\n }\") is being called in a component that is meant to render the '${\n nearestMatch.routeId\n }' route. Did you mean to 'useMatch(\"${\n match?.routeId as string\n }\", { strict: false })' or 'useRoute(\"${\n match?.routeId as string\n }\")' instead?`,\n )\n }\n\n __useStoreValue(() => match!.store)\n\n return match as any\n}\n\nexport function useRoute<\n TId extends keyof RegisteredAllRouteInfo['routeInfoById'] = '/',\n>(\n routeId: TId,\n): Route<RegisteredAllRouteInfo, RegisteredAllRouteInfo['routeInfoById'][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 useLoaderData<\n TFrom extends keyof RegisteredAllRouteInfo['routeInfoById'] = '/',\n TStrict extends boolean = true,\n TLoaderData = RegisteredAllRouteInfo['routeInfoById'][TFrom]['loaderData'],\n TSelected = TLoaderData,\n>(opts?: {\n from: TFrom\n strict?: TStrict\n select?: (loaderData: TLoaderData) => TSelected\n}): TStrict extends true ? TSelected : TSelected | undefined {\n const match = useMatch(opts) as any\n return __useStoreValue(() => match?.store.loaderData, opts?.select)\n}\n\nexport function useSearch<\n TFrom extends keyof RegisteredAllRouteInfo['routeInfoById'],\n TStrict extends boolean = true,\n TSearch = RegisteredAllRouteInfo['routeInfoById'][TFrom]['fullSearchSchema'],\n TSelected = TSearch,\n>(opts?: {\n from: TFrom\n strict?: TStrict\n select?: (search: TSearch) => TSelected\n}): TStrict extends true ? TSelected : TSelected | undefined {\n const match = useMatch(opts)\n return __useStoreValue(() => match?.store.search, opts?.select) as any\n}\n\nexport function useParams<\n TFrom extends keyof RegisteredAllRouteInfo['routeInfoById'] = '/',\n TDefaultSelected = Expand<\n RegisteredAllRouteInfo['allParams'] &\n RegisteredAllRouteInfo['routeInfoById'][TFrom]['allParams']\n >,\n TSelected = TDefaultSelected,\n>(opts?: {\n from: TFrom\n select?: (search: TDefaultSelected) => TSelected\n}): TSelected {\n const router = useRouter()\n return __useStoreValue(\n () => last(router.store.currentMatches)?.params as any,\n opts?.select,\n )\n}\n\nexport function useNavigate<\n TDefaultFrom extends keyof RegisteredAllRouteInfo['routeInfoById'] = '/',\n>(defaultOpts: { from?: TDefaultFrom }) {\n return <\n TFrom extends keyof RegisteredAllRouteInfo['routeInfoById'] = TDefaultFrom,\n TTo extends string = '.',\n >(\n opts: MakeLinkOptions<TFrom, TTo>,\n ) => {\n const router = useRouter()\n return router.navigate({ ...defaultOpts, ...(opts as any) })\n }\n}\n\nexport function useAction<\n TFrom extends keyof RegisteredAllRouteInfo['routeInfoById'] = '/',\n TFromRoute extends RegisteredAllRouteInfo['routeInfoById'][TFrom] = RegisteredAllRouteInfo['routeInfoById'][TFrom],\n>(opts: {\n from: TFrom\n}): Action<TFromRoute['actionPayload'], TFromRoute['actionResponse']> {\n const route = useRoute(opts.from)\n const action = route.action\n __useStoreValue(() => action)\n return action as any\n}\n\nexport function useMatchRoute() {\n const router = useRouter()\n\n return <\n TFrom extends ValidFromPath<RegisteredAllRouteInfo> = '/',\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<RegisteredAllRouteInfo> = '/',\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 return React.createElement(\n typeof props.children === 'function'\n ? (props.children as any)(params)\n : props.children,\n props as any,\n )\n}\n\nexport function Outlet() {\n const router = useRouter()\n const matches = useMatches().slice(1)\n const match = matches[0]\n\n const defaultPending = React.useCallback(() => null, [])\n\n __useStoreValue(() => match?.store)\n\n const Inner = React.useCallback((props: { match: RouteMatch }): any => {\n if (props.match.store.status === 'error') {\n throw props.match.store.error\n }\n\n if (props.match.store.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.status === 'loading') {\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 if (!match) {\n return null\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.routeId}\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.matchId === 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\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\n componentDidCatch(error: any, info: any) {\n console.error(`Error in route match: ${this.props.match.matchId}`)\n console.error(error)\n\n this.setState({\n error,\n info,\n })\n }\n\n render() {\n return (\n <CatchBoundaryInner\n {...this.props}\n errorState={this.state}\n reset={() => this.setState({})}\n />\n )\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.\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\n React.useEffect(() => {\n if (activeErrorState) {\n let prevKey = router.store.currentLocation.key\n return createRoot(() =>\n createEffect(() => {\n if (router.store.currentLocation.key !== prevKey) {\n prevKey = router.store.currentLocation.key\n setActiveErrorState({} as any)\n }\n }),\n )\n }\n\n return\n }, [activeErrorState])\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) {\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\nexport 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.history.block((transition) => {\n if (window.confirm(message)) {\n unblock()\n transition.retry()\n } else {\n router.store.currentLocation.pathname = window.location.pathname\n }\n })\n\n return unblock\n }, [when, message])\n}\n\nexport function Prompt({ message, when, children }: PromptProps) {\n usePrompt(message, when ?? true)\n return (children ?? null) as ReactNode\n}\n\n// function circularStringify(obj: any) {\n// const seen = new Set()\n\n// return (\n// JSON.stringify(obj, (_, value) => {\n// if (typeof value === 'function') {\n// return undefined\n// }\n// if (typeof value === 'object' && value !== null) {\n// if (seen.has(value)) return\n// seen.add(value)\n// }\n// return value\n// }) || ''\n// )\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","_extends","matchesContext","createContext","routerContext","EMPTY","__useStoreValue","seed","selector","valueRef","useRef","getValue","untrack","current","sharedClone","getSnapshot","useCallback","getStore","cb","createRoot","createEffect","unwrap","useSyncExternalStore","store","setStore","createStore","foo","bar","baz","prev","console","log","s","createReactRouter","opts","coreRouter","createRouter","loadComponent","component","RouterProvider","update","currentMatches","status","pendingMatches","useEffect","mount","value","useContext","warning","useRouterStore","useMatches","useMatch","nearestMatch","match","from","find","d","routeId","invariant","strict","useRoute","resolvedRoute","getRoute","useLoaderData","loaderData","select","useSearch","useParams","last","useNavigate","defaultOpts","navigate","useAction","route","action","useMatchRoute","pending","caseSensitive","matchRoute","MatchRoute","createElement","Outlet","matches","slice","defaultPending","Inner","error","__","defaultComponent","loadPromise","PendingComponent","pendingComponent","defaultPendingComponent","errorComponent","defaultErrorComponent","CatchBoundary","Component","state","info","componentDidCatch","matchId","setState","render","CatchBoundaryInner","activeErrorState","setActiveErrorState","useState","errorState","DefaultErrorBoundary","prevKey","currentLocation","key","reset","padding","maxWidth","fontSize","height","message","border","borderRadius","color","usePrompt","when","unblock","history","block","transition","window","confirm","retry","pathname","location","Prompt"],"mappings":"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"}
|