New:Socket for Asana Is Now Available.Learn more
Get Started

@tanstack/react-router-devtools

Package Overview
Dependencies
Maintainers
1
Versions
437
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@tanstack/react-router-devtools - npm Package Compare versions

Comparing version
0.0.1-beta.77
to
0.0.1-beta.78
+1
-1
build/cjs/devtools.js

@@ -282,3 +282,3 @@ /**

reactRouter.invariant(router, 'No router was found for the TanStack Router Devtools. Please place the devtools in the <RouterProvider> component tree or pass the router instance to the devtools manually.');
reactRouter.useRouter();
reactRouter.useStore(router.__store);
const [activeRouteId, setActiveRouteId] = useLocalStorage["default"]('tanstackRouterDevtoolsActiveRouteId', '');

@@ -285,0 +285,0 @@ const [activeMatchId, setActiveMatchId] = useLocalStorage["default"]('tanstackRouterDevtoolsActiveMatchId', '');

@@ -1,1 +0,1 @@

{"version":3,"file":"devtools.js","sources":["../../src/devtools.tsx"],"sourcesContent":["import React from 'react'\nimport {\n Router,\n last,\n routerContext,\n invariant,\n useRouter,\n AnyRouter,\n} from '@tanstack/react-router'\n\nimport useLocalStorage from './useLocalStorage'\nimport {\n getStatusColor,\n multiSortBy,\n useIsMounted,\n useSafeState,\n} from './utils'\nimport { Panel, Button, Code, ActivePanel } from './styledComponents'\nimport { ThemeProvider, defaultTheme as theme } from './theme'\n// import { getQueryStatusLabel, getQueryStatusColor } from './utils'\nimport Explorer from './Explorer'\n\nexport type PartialKeys<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>\n\ninterface DevtoolsOptions {\n /**\n * Set this true if you want the dev tools to default to being open\n */\n initialIsOpen?: boolean\n /**\n * Use this to add props to the panel. For example, you can add className, style (merge and override default style), etc.\n */\n panelProps?: React.DetailedHTMLProps<\n React.HTMLAttributes<HTMLDivElement>,\n HTMLDivElement\n >\n /**\n * Use this to add props to the close button. For example, you can add className, style (merge and override default style), onClick (extend default handler), etc.\n */\n closeButtonProps?: React.DetailedHTMLProps<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n >\n /**\n * Use this to add props to the toggle button. For example, you can add className, style (merge and override default style), onClick (extend default handler), etc.\n */\n toggleButtonProps?: React.DetailedHTMLProps<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n >\n /**\n * The position of the TanStack Router logo to open and close the devtools panel.\n * Defaults to 'bottom-left'.\n */\n position?: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'\n /**\n * Use this to render the devtools inside a different type of container element for a11y purposes.\n * Any string which corresponds to a valid intrinsic JSX element is allowed.\n * Defaults to 'footer'.\n */\n containerElement?: string | any\n /**\n * A boolean variable indicating if the \"lite\" version of the library is being used\n */\n router?: AnyRouter\n}\n\ninterface DevtoolsPanelOptions {\n /**\n * The standard React style object used to style a component with inline styles\n */\n style?: React.CSSProperties\n /**\n * The standard React className property used to style a component with classes\n */\n className?: string\n /**\n * A boolean variable indicating whether the panel is open or closed\n */\n isOpen?: boolean\n /**\n * A function that toggles the open and close state of the panel\n */\n setIsOpen: (isOpen: boolean) => void\n /**\n * Handles the opening and closing the devtools panel\n */\n handleDragStart: (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => void\n /**\n * A boolean variable indicating if the \"lite\" version of the library is being used\n */\n router?: AnyRouter\n}\n\nconst isServer = typeof window === 'undefined'\n\nfunction Logo(props: React.HTMLProps<HTMLDivElement>) {\n return (\n <div\n {...props}\n style={{\n ...(props.style ?? {}),\n display: 'flex',\n alignItems: 'center',\n flexDirection: 'column',\n fontSize: '0.8rem',\n fontWeight: 'bolder',\n lineHeight: '1',\n }}\n >\n <div\n style={{\n letterSpacing: '-0.05rem',\n }}\n >\n TANSTACK\n </div>\n <div\n style={{\n backgroundImage:\n 'linear-gradient(to right, var(--tw-gradient-stops))',\n // @ts-ignore\n '--tw-gradient-from': '#84cc16',\n '--tw-gradient-stops':\n 'var(--tw-gradient-from), var(--tw-gradient-to)',\n '--tw-gradient-to': '#10b981',\n WebkitBackgroundClip: 'text',\n color: 'transparent',\n letterSpacing: '0.1rem',\n marginRight: '-0.2rem',\n }}\n >\n ROUTER\n </div>\n </div>\n )\n}\n\nexport function TanStackRouterDevtools({\n initialIsOpen,\n panelProps = {},\n closeButtonProps = {},\n toggleButtonProps = {},\n position = 'bottom-left',\n containerElement: Container = 'footer',\n router,\n}: DevtoolsOptions): React.ReactElement | null {\n const rootRef = React.useRef<HTMLDivElement>(null)\n const panelRef = React.useRef<HTMLDivElement>(null)\n const [isOpen, setIsOpen] = useLocalStorage(\n 'tanstackRouterDevtoolsOpen',\n initialIsOpen,\n )\n const [devtoolsHeight, setDevtoolsHeight] = useLocalStorage<number | null>(\n 'tanstackRouterDevtoolsHeight',\n null,\n )\n const [isResolvedOpen, setIsResolvedOpen] = useSafeState(false)\n const [isResizing, setIsResizing] = useSafeState(false)\n const isMounted = useIsMounted()\n\n const handleDragStart = (\n panelElement: HTMLDivElement | null,\n startEvent: React.MouseEvent<HTMLDivElement, MouseEvent>,\n ) => {\n if (startEvent.button !== 0) return // Only allow left click for drag\n\n setIsResizing(true)\n\n const dragInfo = {\n originalHeight: panelElement?.getBoundingClientRect().height ?? 0,\n pageY: startEvent.pageY,\n }\n\n const run = (moveEvent: MouseEvent) => {\n const delta = dragInfo.pageY - moveEvent.pageY\n const newHeight = dragInfo?.originalHeight + delta\n\n setDevtoolsHeight(newHeight)\n\n if (newHeight < 70) {\n setIsOpen(false)\n } else {\n setIsOpen(true)\n }\n }\n\n const unsub = () => {\n setIsResizing(false)\n document.removeEventListener('mousemove', run)\n document.removeEventListener('mouseUp', unsub)\n }\n\n document.addEventListener('mousemove', run)\n document.addEventListener('mouseup', unsub)\n }\n\n React.useEffect(() => {\n setIsResolvedOpen(isOpen ?? false)\n }, [isOpen, isResolvedOpen, setIsResolvedOpen])\n\n // Toggle panel visibility before/after transition (depending on direction).\n // Prevents focusing in a closed panel.\n React.useEffect(() => {\n const ref = panelRef.current\n\n if (ref) {\n const handlePanelTransitionStart = () => {\n if (ref && isResolvedOpen) {\n ref.style.visibility = 'visible'\n }\n }\n\n const handlePanelTransitionEnd = () => {\n if (ref && !isResolvedOpen) {\n ref.style.visibility = 'hidden'\n }\n }\n\n ref.addEventListener('transitionstart', handlePanelTransitionStart)\n ref.addEventListener('transitionend', handlePanelTransitionEnd)\n\n return () => {\n ref.removeEventListener('transitionstart', handlePanelTransitionStart)\n ref.removeEventListener('transitionend', handlePanelTransitionEnd)\n }\n }\n\n return\n }, [isResolvedOpen])\n\n React[isServer ? 'useEffect' : 'useLayoutEffect'](() => {\n if (isResolvedOpen) {\n const previousValue = rootRef.current?.parentElement?.style.paddingBottom\n\n const run = () => {\n const containerHeight = panelRef.current?.getBoundingClientRect().height\n if (rootRef.current?.parentElement) {\n rootRef.current.parentElement.style.paddingBottom = `${containerHeight}px`\n }\n }\n\n run()\n\n if (typeof window !== 'undefined') {\n window.addEventListener('resize', run)\n\n return () => {\n window.removeEventListener('resize', run)\n if (\n rootRef.current?.parentElement &&\n typeof previousValue === 'string'\n ) {\n rootRef.current.parentElement.style.paddingBottom = previousValue\n }\n }\n }\n }\n return\n }, [isResolvedOpen])\n\n const { style: panelStyle = {}, ...otherPanelProps } = panelProps\n\n const {\n style: closeButtonStyle = {},\n onClick: onCloseClick,\n ...otherCloseButtonProps\n } = closeButtonProps\n\n const {\n style: toggleButtonStyle = {},\n onClick: onToggleClick,\n ...otherToggleButtonProps\n } = toggleButtonProps\n\n // Do not render on the server\n if (!isMounted()) return null\n\n return (\n <Container ref={rootRef} className=\"TanStackRouterDevtools\">\n <ThemeProvider theme={theme}>\n <TanStackRouterDevtoolsPanel\n ref={panelRef as any}\n {...otherPanelProps}\n router={router}\n style={{\n position: 'fixed',\n bottom: '0',\n right: '0',\n zIndex: 99999,\n width: '100%',\n height: devtoolsHeight ?? 500,\n maxHeight: '90%',\n boxShadow: '0 0 20px rgba(0,0,0,.3)',\n borderTop: `1px solid ${theme.gray}`,\n transformOrigin: 'top',\n // visibility will be toggled after transitions, but set initial state here\n visibility: isOpen ? 'visible' : 'hidden',\n ...panelStyle,\n ...(isResizing\n ? {\n transition: `none`,\n }\n : { transition: `all .2s ease` }),\n ...(isResolvedOpen\n ? {\n opacity: 1,\n pointerEvents: 'all',\n transform: `translateY(0) scale(1)`,\n }\n : {\n opacity: 0,\n pointerEvents: 'none',\n transform: `translateY(15px) scale(1.02)`,\n }),\n }}\n isOpen={isResolvedOpen}\n setIsOpen={setIsOpen}\n handleDragStart={(e) => handleDragStart(panelRef.current, e)}\n />\n {isResolvedOpen ? (\n <Button\n type=\"button\"\n aria-label=\"Close TanStack Router Devtools\"\n {...(otherCloseButtonProps as any)}\n onClick={(e) => {\n setIsOpen(false)\n onCloseClick && onCloseClick(e)\n }}\n style={{\n position: 'fixed',\n zIndex: 99999,\n margin: '.5em',\n bottom: 0,\n ...(position === 'top-right'\n ? {\n right: '0',\n }\n : position === 'top-left'\n ? {\n left: '0',\n }\n : position === 'bottom-right'\n ? {\n right: '0',\n }\n : {\n left: '0',\n }),\n ...closeButtonStyle,\n }}\n >\n Close\n </Button>\n ) : null}\n </ThemeProvider>\n {!isResolvedOpen ? (\n <button\n type=\"button\"\n {...otherToggleButtonProps}\n aria-label=\"Open TanStack Router Devtools\"\n onClick={(e) => {\n setIsOpen(true)\n onToggleClick && onToggleClick(e)\n }}\n style={{\n appearance: 'none',\n background: 'none',\n border: 0,\n padding: 0,\n position: 'fixed',\n zIndex: 99999,\n display: 'inline-flex',\n fontSize: '1.5em',\n margin: '.5em',\n cursor: 'pointer',\n width: 'fit-content',\n ...(position === 'top-right'\n ? {\n top: '0',\n right: '0',\n }\n : position === 'top-left'\n ? {\n top: '0',\n left: '0',\n }\n : position === 'bottom-right'\n ? {\n bottom: '0',\n right: '0',\n }\n : {\n bottom: '0',\n left: '0',\n }),\n ...toggleButtonStyle,\n }}\n >\n <Logo aria-hidden />\n </button>\n ) : null}\n </Container>\n )\n}\n\nexport const TanStackRouterDevtoolsPanel = React.forwardRef<\n HTMLDivElement,\n DevtoolsPanelOptions\n>(function TanStackRouterDevtoolsPanel(props, ref): React.ReactElement {\n const {\n isOpen = true,\n setIsOpen,\n handleDragStart,\n router: userRouter,\n ...panelProps\n } = props\n\n const routerContextValue = React.useContext(routerContext)\n const router = userRouter ?? routerContextValue?.router\n\n invariant(\n router,\n 'No router was found for the TanStack Router Devtools. Please place the devtools in the <RouterProvider> component tree or pass the router instance to the devtools manually.',\n )\n\n useRouter()\n\n const [activeRouteId, setActiveRouteId] = useLocalStorage(\n 'tanstackRouterDevtoolsActiveRouteId',\n '',\n )\n\n const [activeMatchId, setActiveMatchId] = useLocalStorage(\n 'tanstackRouterDevtoolsActiveMatchId',\n '',\n )\n\n React.useEffect(() => {\n setActiveMatchId('')\n }, [activeRouteId])\n\n const allMatches = React.useMemo(\n () => [\n ...Object.values(router.state.currentMatches),\n ...Object.values(router.state.pendingMatches ?? []),\n ],\n [router.state.currentMatches, router.state.pendingMatches],\n )\n\n const activeMatch =\n allMatches?.find((d) => d.id === activeMatchId) ||\n allMatches?.find((d) => d.route.id === activeRouteId)\n\n // const matchCacheValues = multiSortBy(\n // Object.keys(router.state.matchCache)\n // .filter((key) => {\n // const cacheEntry = router.state.matchCache[key]!\n // return cacheEntry.gc > Date.now()\n // })\n // .map((key) => router.state.matchCache[key]!),\n // [\n // (d) => (d.match.state.isFetching ? -1 : 1),\n // (d) => -d.match.state.updatedAt!,\n // ],\n // )\n\n return (\n <ThemeProvider theme={theme}>\n <Panel ref={ref} className=\"TanStackRouterDevtoolsPanel\" {...panelProps}>\n <style\n dangerouslySetInnerHTML={{\n __html: `\n\n .TanStackRouterDevtoolsPanel * {\n scrollbar-color: ${theme.backgroundAlt} ${theme.gray};\n }\n\n .TanStackRouterDevtoolsPanel *::-webkit-scrollbar, .TanStackRouterDevtoolsPanel scrollbar {\n width: 1em;\n height: 1em;\n }\n\n .TanStackRouterDevtoolsPanel *::-webkit-scrollbar-track, .TanStackRouterDevtoolsPanel scrollbar-track {\n background: ${theme.backgroundAlt};\n }\n\n .TanStackRouterDevtoolsPanel *::-webkit-scrollbar-thumb, .TanStackRouterDevtoolsPanel scrollbar-thumb {\n background: ${theme.gray};\n border-radius: .5em;\n border: 3px solid ${theme.backgroundAlt};\n }\n\n .TanStackRouterDevtoolsPanel table {\n width: 100%;\n }\n\n .TanStackRouterDevtoolsPanel table tr {\n border-bottom: 2px dotted rgba(255, 255, 255, .2);\n }\n\n .TanStackRouterDevtoolsPanel table tr:last-child {\n border-bottom: none\n }\n\n .TanStackRouterDevtoolsPanel table td {\n padding: .25rem .5rem;\n border-right: 2px dotted rgba(255, 255, 255, .05);\n }\n\n .TanStackRouterDevtoolsPanel table td:last-child {\n border-right: none\n }\n\n `,\n }}\n />\n <div\n style={{\n position: 'absolute',\n left: 0,\n top: 0,\n width: '100%',\n height: '4px',\n marginBottom: '-4px',\n cursor: 'row-resize',\n zIndex: 100000,\n }}\n onMouseDown={handleDragStart}\n ></div>\n <div\n style={{\n flex: '1 1 500px',\n minHeight: '40%',\n maxHeight: '100%',\n overflow: 'auto',\n borderRight: `1px solid ${theme.grayAlt}`,\n display: 'flex',\n flexDirection: 'column',\n }}\n >\n <div\n style={{\n display: 'flex',\n justifyContent: 'start',\n gap: '1rem',\n padding: '1rem',\n alignItems: 'center',\n background: theme.backgroundAlt,\n }}\n >\n <Logo aria-hidden />\n <div\n style={{\n fontSize: 'clamp(.8rem, 2vw, 1.3rem)',\n fontWeight: 'bold',\n }}\n >\n <span\n style={{\n fontWeight: 100,\n }}\n >\n Devtools\n </span>\n </div>\n </div>\n <div\n style={{\n overflowY: 'auto',\n flex: '1',\n }}\n >\n <div\n style={{\n padding: '.5em',\n }}\n >\n <Explorer label=\"Router\" value={router} defaultExpanded={{}} />\n </div>\n </div>\n </div>\n <div\n style={{\n flex: '1 1 500px',\n minHeight: '40%',\n maxHeight: '100%',\n overflow: 'auto',\n borderRight: `1px solid ${theme.grayAlt}`,\n display: 'flex',\n flexDirection: 'column',\n }}\n >\n <div\n style={{\n padding: '.5em',\n background: theme.backgroundAlt,\n position: 'sticky',\n top: 0,\n zIndex: 1,\n }}\n >\n Active Matches\n </div>\n {router.state.currentMatches.map((match, i) => {\n return (\n <div\n key={match.route.id || i}\n role=\"button\"\n aria-label={`Open match details for ${match.route.id}`}\n onClick={() =>\n setActiveRouteId(\n activeRouteId === match.route.id ? '' : match.route.id,\n )\n }\n style={{\n display: 'flex',\n borderBottom: `solid 1px ${theme.grayAlt}`,\n cursor: 'pointer',\n alignItems: 'center',\n background:\n match === activeMatch ? 'rgba(255,255,255,.1)' : undefined,\n }}\n >\n <div\n style={{\n flex: '0 0 auto',\n width: '1.3rem',\n height: '1.3rem',\n marginLeft: '.25rem',\n background: getStatusColor(match, theme),\n alignItems: 'center',\n justifyContent: 'center',\n fontWeight: 'bold',\n borderRadius: '.25rem',\n transition: 'all .2s ease-out',\n }}\n />\n\n <Code\n style={{\n padding: '.5em',\n }}\n >\n {`${match.id}`}\n </Code>\n </div>\n )\n })}\n {router.state.pendingMatches?.length ? (\n <>\n <div\n style={{\n marginTop: '2rem',\n padding: '.5em',\n background: theme.backgroundAlt,\n position: 'sticky',\n top: 0,\n zIndex: 1,\n }}\n >\n Pending Matches\n </div>\n {router.state.pendingMatches?.map((match, i) => {\n return (\n <div\n key={match.route.id || i}\n role=\"button\"\n aria-label={`Open match details for ${match.route.id}`}\n onClick={() =>\n setActiveRouteId(\n activeRouteId === match.route.id ? '' : match.route.id,\n )\n }\n style={{\n display: 'flex',\n borderBottom: `solid 1px ${theme.grayAlt}`,\n cursor: 'pointer',\n background:\n match === activeMatch\n ? 'rgba(255,255,255,.1)'\n : undefined,\n }}\n >\n <div\n style={{\n flex: '0 0 auto',\n width: '1.3rem',\n height: '1.3rem',\n marginLeft: '.25rem',\n background: getStatusColor(match, theme),\n alignItems: 'center',\n justifyContent: 'center',\n fontWeight: 'bold',\n borderRadius: '.25rem',\n transition: 'all .2s ease-out',\n }}\n />\n\n <Code\n style={{\n padding: '.5em',\n }}\n >\n {`${match.id}`}\n </Code>\n </div>\n )\n })}\n </>\n ) : null}\n {/* {matchCacheValues.length ? (\n <>\n <div\n style={{\n marginTop: '2rem',\n padding: '.5em',\n background: theme.backgroundAlt,\n position: 'sticky',\n top: 0,\n bottom: 0,\n zIndex: 1,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n }}\n >\n <div>Match Cache</div>\n <Button\n onClick={() => {\n router.store.setState((s) => (s.matchCache = {}))\n }}\n >\n Clear\n </Button>\n </div>\n {matchCacheValues.map((d, i) => {\n const { match, gc } = d\n\n return (\n <div\n key={match.id || i}\n role=\"button\"\n aria-label={`Open match details for ${match.id}`}\n onClick={() =>\n setActiveMatchId(\n activeMatchId === match.id ? '' : match.id,\n )\n }\n style={{\n display: 'flex',\n borderBottom: `solid 1px ${theme.grayAlt}`,\n cursor: 'pointer',\n background:\n match === activeMatch\n ? 'rgba(255,255,255,.1)'\n : undefined,\n }}\n >\n <div\n style={{\n display: 'flex',\n flexDirection: 'column',\n padding: '.5rem',\n gap: '.3rem',\n }}\n >\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: '.5rem',\n }}\n >\n <div\n style={{\n flex: '0 0 auto',\n width: '1.3rem',\n height: '1.3rem',\n background: getStatusColor(match, theme),\n alignItems: 'center',\n justifyContent: 'center',\n fontWeight: 'bold',\n borderRadius: '.25rem',\n transition: 'all .2s ease-out',\n }}\n />\n <Code>{`${match.id}`}</Code>\n </div>\n <span\n style={{\n fontSize: '.7rem',\n opacity: '.5',\n lineHeight: 1,\n }}\n >\n Expires{' '}\n {formatDistanceStrict(new Date(gc), new Date(), {\n addSuffix: true,\n })}\n </span>\n </div>\n </div>\n )\n })}\n </>\n ) : null} */}\n </div>\n\n {activeMatch ? (\n <ActivePanel>\n <div\n style={{\n padding: '.5em',\n background: theme.backgroundAlt,\n position: 'sticky',\n top: 0,\n bottom: 0,\n zIndex: 1,\n }}\n >\n Match Details\n </div>\n <div>\n <table>\n <tbody>\n <tr>\n <td style={{ opacity: '.5' }}>ID</td>\n <td>\n <Code\n style={{\n lineHeight: '1.8em',\n }}\n >\n {JSON.stringify(activeMatch.id, null, 2)}\n </Code>\n </td>\n </tr>\n <tr>\n <td style={{ opacity: '.5' }}>Status</td>\n <td>{activeMatch.state.status}</td>\n </tr>\n {/* <tr>\n <td style={{ opacity: '.5' }}>Invalid</td>\n <td>{activeMatch.getIsInvalid().toString()}</td>\n </tr> */}\n <tr>\n <td style={{ opacity: '.5' }}>Last Updated</td>\n <td>\n {activeMatch.state.updatedAt\n ? new Date(\n activeMatch.state.updatedAt as number,\n ).toLocaleTimeString()\n : 'N/A'}\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n <div\n style={{\n background: theme.backgroundAlt,\n padding: '.5em',\n position: 'sticky',\n top: 0,\n bottom: 0,\n zIndex: 1,\n }}\n >\n Actions\n </div>\n <div\n style={{\n padding: '0.5em',\n }}\n >\n <Button\n type=\"button\"\n onClick={() => activeMatch.load()}\n style={{\n background: theme.gray,\n }}\n >\n Reload\n </Button>\n </div>\n <div\n style={{\n background: theme.backgroundAlt,\n padding: '.5em',\n position: 'sticky',\n top: 0,\n bottom: 0,\n zIndex: 1,\n }}\n >\n Explorer\n </div>\n <div\n style={{\n padding: '.5em',\n }}\n >\n <Explorer\n label=\"Match\"\n value={activeMatch}\n defaultExpanded={{}}\n />\n </div>\n </ActivePanel>\n ) : null}\n <div\n style={{\n flex: '1 1 500px',\n minHeight: '40%',\n maxHeight: '100%',\n overflow: 'auto',\n borderRight: `1px solid ${theme.grayAlt}`,\n display: 'flex',\n flexDirection: 'column',\n }}\n >\n {/* <div\n style={{\n padding: '.5em',\n background: theme.backgroundAlt,\n position: 'sticky',\n top: 0,\n bottom: 0,\n zIndex: 1,\n }}\n >\n All Loader Data\n </div>\n <div\n style={{\n padding: '.5em',\n }}\n >\n {Object.keys(\n last(router.state.currentMatches)?.state.loaderData ||\n {},\n ).length ? (\n <Explorer\n value={\n last(router.state.currentMatches)?.state\n .loaderData || {}\n }\n defaultExpanded={Object.keys(\n (last(router.state.currentMatches)?.state\n .loaderData as {}) || {},\n ).reduce((obj: any, next) => {\n obj[next] = {}\n return obj\n }, {})}\n />\n ) : (\n <em style={{ opacity: 0.5 }}>{'{ }'}</em>\n )}\n </div> */}\n <div\n style={{\n padding: '.5em',\n background: theme.backgroundAlt,\n position: 'sticky',\n top: 0,\n bottom: 0,\n zIndex: 1,\n }}\n >\n Search Params\n </div>\n <div\n style={{\n padding: '.5em',\n }}\n >\n {Object.keys(last(router.state.currentMatches)?.state.search || {})\n .length ? (\n <Explorer\n value={last(router.state.currentMatches)?.state.search || {}}\n defaultExpanded={Object.keys(\n (last(router.state.currentMatches)?.state.search as {}) || {},\n ).reduce((obj: any, next) => {\n obj[next] = {}\n return obj\n }, {})}\n />\n ) : (\n <em style={{ opacity: 0.5 }}>{'{ }'}</em>\n )}\n </div>\n </div>\n </Panel>\n </ThemeProvider>\n )\n})\n"],"names":["isServer","window","Logo","props","React","style","display","alignItems","flexDirection","fontSize","fontWeight","lineHeight","letterSpacing","backgroundImage","WebkitBackgroundClip","color","marginRight","TanStackRouterDevtools","initialIsOpen","panelProps","closeButtonProps","toggleButtonProps","position","containerElement","Container","router","rootRef","useRef","panelRef","isOpen","setIsOpen","useLocalStorage","devtoolsHeight","setDevtoolsHeight","isResolvedOpen","setIsResolvedOpen","useSafeState","isResizing","setIsResizing","isMounted","useIsMounted","handleDragStart","panelElement","startEvent","button","dragInfo","originalHeight","getBoundingClientRect","height","pageY","run","moveEvent","delta","newHeight","unsub","document","removeEventListener","addEventListener","useEffect","ref","current","handlePanelTransitionStart","visibility","handlePanelTransitionEnd","previousValue","parentElement","paddingBottom","containerHeight","panelStyle","otherPanelProps","closeButtonStyle","onClick","onCloseClick","otherCloseButtonProps","toggleButtonStyle","onToggleClick","otherToggleButtonProps","ThemeProvider","theme","_extends","bottom","right","zIndex","width","maxHeight","boxShadow","borderTop","gray","transformOrigin","transition","opacity","pointerEvents","transform","e","Button","margin","left","appearance","background","border","padding","cursor","top","TanStackRouterDevtoolsPanel","forwardRef","userRouter","routerContextValue","useContext","routerContext","invariant","useRouter","activeRouteId","setActiveRouteId","activeMatchId","setActiveMatchId","allMatches","useMemo","Object","values","state","currentMatches","pendingMatches","activeMatch","find","d","id","route","Panel","__html","backgroundAlt","marginBottom","flex","minHeight","overflow","borderRight","grayAlt","justifyContent","gap","overflowY","Explorer","map","match","i","borderBottom","undefined","marginLeft","getStatusColor","borderRadius","Code","length","marginTop","ActivePanel","JSON","stringify","status","updatedAt","Date","toLocaleTimeString","load","keys","last","search","reduce","obj","next"],"mappings":"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"}
{"version":3,"file":"devtools.js","sources":["../../src/devtools.tsx"],"sourcesContent":["import React from 'react'\nimport {\n last,\n routerContext,\n invariant,\n useRouter,\n AnyRouter,\n useStore,\n} from '@tanstack/react-router'\n\nimport useLocalStorage from './useLocalStorage'\nimport {\n getStatusColor,\n multiSortBy,\n useIsMounted,\n useSafeState,\n} from './utils'\nimport { Panel, Button, Code, ActivePanel } from './styledComponents'\nimport { ThemeProvider, defaultTheme as theme } from './theme'\n// import { getQueryStatusLabel, getQueryStatusColor } from './utils'\nimport Explorer from './Explorer'\n\nexport type PartialKeys<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>\n\ninterface DevtoolsOptions {\n /**\n * Set this true if you want the dev tools to default to being open\n */\n initialIsOpen?: boolean\n /**\n * Use this to add props to the panel. For example, you can add className, style (merge and override default style), etc.\n */\n panelProps?: React.DetailedHTMLProps<\n React.HTMLAttributes<HTMLDivElement>,\n HTMLDivElement\n >\n /**\n * Use this to add props to the close button. For example, you can add className, style (merge and override default style), onClick (extend default handler), etc.\n */\n closeButtonProps?: React.DetailedHTMLProps<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n >\n /**\n * Use this to add props to the toggle button. For example, you can add className, style (merge and override default style), onClick (extend default handler), etc.\n */\n toggleButtonProps?: React.DetailedHTMLProps<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n >\n /**\n * The position of the TanStack Router logo to open and close the devtools panel.\n * Defaults to 'bottom-left'.\n */\n position?: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'\n /**\n * Use this to render the devtools inside a different type of container element for a11y purposes.\n * Any string which corresponds to a valid intrinsic JSX element is allowed.\n * Defaults to 'footer'.\n */\n containerElement?: string | any\n /**\n * A boolean variable indicating if the \"lite\" version of the library is being used\n */\n router?: AnyRouter\n}\n\ninterface DevtoolsPanelOptions {\n /**\n * The standard React style object used to style a component with inline styles\n */\n style?: React.CSSProperties\n /**\n * The standard React className property used to style a component with classes\n */\n className?: string\n /**\n * A boolean variable indicating whether the panel is open or closed\n */\n isOpen?: boolean\n /**\n * A function that toggles the open and close state of the panel\n */\n setIsOpen: (isOpen: boolean) => void\n /**\n * Handles the opening and closing the devtools panel\n */\n handleDragStart: (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => void\n /**\n * A boolean variable indicating if the \"lite\" version of the library is being used\n */\n router?: AnyRouter\n}\n\nconst isServer = typeof window === 'undefined'\n\nfunction Logo(props: React.HTMLProps<HTMLDivElement>) {\n return (\n <div\n {...props}\n style={{\n ...(props.style ?? {}),\n display: 'flex',\n alignItems: 'center',\n flexDirection: 'column',\n fontSize: '0.8rem',\n fontWeight: 'bolder',\n lineHeight: '1',\n }}\n >\n <div\n style={{\n letterSpacing: '-0.05rem',\n }}\n >\n TANSTACK\n </div>\n <div\n style={{\n backgroundImage:\n 'linear-gradient(to right, var(--tw-gradient-stops))',\n // @ts-ignore\n '--tw-gradient-from': '#84cc16',\n '--tw-gradient-stops':\n 'var(--tw-gradient-from), var(--tw-gradient-to)',\n '--tw-gradient-to': '#10b981',\n WebkitBackgroundClip: 'text',\n color: 'transparent',\n letterSpacing: '0.1rem',\n marginRight: '-0.2rem',\n }}\n >\n ROUTER\n </div>\n </div>\n )\n}\n\nexport function TanStackRouterDevtools({\n initialIsOpen,\n panelProps = {},\n closeButtonProps = {},\n toggleButtonProps = {},\n position = 'bottom-left',\n containerElement: Container = 'footer',\n router,\n}: DevtoolsOptions): React.ReactElement | null {\n const rootRef = React.useRef<HTMLDivElement>(null)\n const panelRef = React.useRef<HTMLDivElement>(null)\n const [isOpen, setIsOpen] = useLocalStorage(\n 'tanstackRouterDevtoolsOpen',\n initialIsOpen,\n )\n const [devtoolsHeight, setDevtoolsHeight] = useLocalStorage<number | null>(\n 'tanstackRouterDevtoolsHeight',\n null,\n )\n const [isResolvedOpen, setIsResolvedOpen] = useSafeState(false)\n const [isResizing, setIsResizing] = useSafeState(false)\n const isMounted = useIsMounted()\n\n const handleDragStart = (\n panelElement: HTMLDivElement | null,\n startEvent: React.MouseEvent<HTMLDivElement, MouseEvent>,\n ) => {\n if (startEvent.button !== 0) return // Only allow left click for drag\n\n setIsResizing(true)\n\n const dragInfo = {\n originalHeight: panelElement?.getBoundingClientRect().height ?? 0,\n pageY: startEvent.pageY,\n }\n\n const run = (moveEvent: MouseEvent) => {\n const delta = dragInfo.pageY - moveEvent.pageY\n const newHeight = dragInfo?.originalHeight + delta\n\n setDevtoolsHeight(newHeight)\n\n if (newHeight < 70) {\n setIsOpen(false)\n } else {\n setIsOpen(true)\n }\n }\n\n const unsub = () => {\n setIsResizing(false)\n document.removeEventListener('mousemove', run)\n document.removeEventListener('mouseUp', unsub)\n }\n\n document.addEventListener('mousemove', run)\n document.addEventListener('mouseup', unsub)\n }\n\n React.useEffect(() => {\n setIsResolvedOpen(isOpen ?? false)\n }, [isOpen, isResolvedOpen, setIsResolvedOpen])\n\n // Toggle panel visibility before/after transition (depending on direction).\n // Prevents focusing in a closed panel.\n React.useEffect(() => {\n const ref = panelRef.current\n\n if (ref) {\n const handlePanelTransitionStart = () => {\n if (ref && isResolvedOpen) {\n ref.style.visibility = 'visible'\n }\n }\n\n const handlePanelTransitionEnd = () => {\n if (ref && !isResolvedOpen) {\n ref.style.visibility = 'hidden'\n }\n }\n\n ref.addEventListener('transitionstart', handlePanelTransitionStart)\n ref.addEventListener('transitionend', handlePanelTransitionEnd)\n\n return () => {\n ref.removeEventListener('transitionstart', handlePanelTransitionStart)\n ref.removeEventListener('transitionend', handlePanelTransitionEnd)\n }\n }\n\n return\n }, [isResolvedOpen])\n\n React[isServer ? 'useEffect' : 'useLayoutEffect'](() => {\n if (isResolvedOpen) {\n const previousValue = rootRef.current?.parentElement?.style.paddingBottom\n\n const run = () => {\n const containerHeight = panelRef.current?.getBoundingClientRect().height\n if (rootRef.current?.parentElement) {\n rootRef.current.parentElement.style.paddingBottom = `${containerHeight}px`\n }\n }\n\n run()\n\n if (typeof window !== 'undefined') {\n window.addEventListener('resize', run)\n\n return () => {\n window.removeEventListener('resize', run)\n if (\n rootRef.current?.parentElement &&\n typeof previousValue === 'string'\n ) {\n rootRef.current.parentElement.style.paddingBottom = previousValue\n }\n }\n }\n }\n return\n }, [isResolvedOpen])\n\n const { style: panelStyle = {}, ...otherPanelProps } = panelProps\n\n const {\n style: closeButtonStyle = {},\n onClick: onCloseClick,\n ...otherCloseButtonProps\n } = closeButtonProps\n\n const {\n style: toggleButtonStyle = {},\n onClick: onToggleClick,\n ...otherToggleButtonProps\n } = toggleButtonProps\n\n // Do not render on the server\n if (!isMounted()) return null\n\n return (\n <Container ref={rootRef} className=\"TanStackRouterDevtools\">\n <ThemeProvider theme={theme}>\n <TanStackRouterDevtoolsPanel\n ref={panelRef as any}\n {...otherPanelProps}\n router={router}\n style={{\n position: 'fixed',\n bottom: '0',\n right: '0',\n zIndex: 99999,\n width: '100%',\n height: devtoolsHeight ?? 500,\n maxHeight: '90%',\n boxShadow: '0 0 20px rgba(0,0,0,.3)',\n borderTop: `1px solid ${theme.gray}`,\n transformOrigin: 'top',\n // visibility will be toggled after transitions, but set initial state here\n visibility: isOpen ? 'visible' : 'hidden',\n ...panelStyle,\n ...(isResizing\n ? {\n transition: `none`,\n }\n : { transition: `all .2s ease` }),\n ...(isResolvedOpen\n ? {\n opacity: 1,\n pointerEvents: 'all',\n transform: `translateY(0) scale(1)`,\n }\n : {\n opacity: 0,\n pointerEvents: 'none',\n transform: `translateY(15px) scale(1.02)`,\n }),\n }}\n isOpen={isResolvedOpen}\n setIsOpen={setIsOpen}\n handleDragStart={(e) => handleDragStart(panelRef.current, e)}\n />\n {isResolvedOpen ? (\n <Button\n type=\"button\"\n aria-label=\"Close TanStack Router Devtools\"\n {...(otherCloseButtonProps as any)}\n onClick={(e) => {\n setIsOpen(false)\n onCloseClick && onCloseClick(e)\n }}\n style={{\n position: 'fixed',\n zIndex: 99999,\n margin: '.5em',\n bottom: 0,\n ...(position === 'top-right'\n ? {\n right: '0',\n }\n : position === 'top-left'\n ? {\n left: '0',\n }\n : position === 'bottom-right'\n ? {\n right: '0',\n }\n : {\n left: '0',\n }),\n ...closeButtonStyle,\n }}\n >\n Close\n </Button>\n ) : null}\n </ThemeProvider>\n {!isResolvedOpen ? (\n <button\n type=\"button\"\n {...otherToggleButtonProps}\n aria-label=\"Open TanStack Router Devtools\"\n onClick={(e) => {\n setIsOpen(true)\n onToggleClick && onToggleClick(e)\n }}\n style={{\n appearance: 'none',\n background: 'none',\n border: 0,\n padding: 0,\n position: 'fixed',\n zIndex: 99999,\n display: 'inline-flex',\n fontSize: '1.5em',\n margin: '.5em',\n cursor: 'pointer',\n width: 'fit-content',\n ...(position === 'top-right'\n ? {\n top: '0',\n right: '0',\n }\n : position === 'top-left'\n ? {\n top: '0',\n left: '0',\n }\n : position === 'bottom-right'\n ? {\n bottom: '0',\n right: '0',\n }\n : {\n bottom: '0',\n left: '0',\n }),\n ...toggleButtonStyle,\n }}\n >\n <Logo aria-hidden />\n </button>\n ) : null}\n </Container>\n )\n}\n\nexport const TanStackRouterDevtoolsPanel = React.forwardRef<\n HTMLDivElement,\n DevtoolsPanelOptions\n>(function TanStackRouterDevtoolsPanel(props, ref): React.ReactElement {\n const {\n isOpen = true,\n setIsOpen,\n handleDragStart,\n router: userRouter,\n ...panelProps\n } = props\n\n const routerContextValue = React.useContext(routerContext)\n const router = userRouter ?? routerContextValue?.router\n\n invariant(\n router,\n 'No router was found for the TanStack Router Devtools. Please place the devtools in the <RouterProvider> component tree or pass the router instance to the devtools manually.',\n )\n\n useStore(router.__store)\n\n const [activeRouteId, setActiveRouteId] = useLocalStorage(\n 'tanstackRouterDevtoolsActiveRouteId',\n '',\n )\n\n const [activeMatchId, setActiveMatchId] = useLocalStorage(\n 'tanstackRouterDevtoolsActiveMatchId',\n '',\n )\n\n React.useEffect(() => {\n setActiveMatchId('')\n }, [activeRouteId])\n\n const allMatches = React.useMemo(\n () => [\n ...Object.values(router.state.currentMatches),\n ...Object.values(router.state.pendingMatches ?? []),\n ],\n [router.state.currentMatches, router.state.pendingMatches],\n )\n\n const activeMatch =\n allMatches?.find((d) => d.id === activeMatchId) ||\n allMatches?.find((d) => d.route.id === activeRouteId)\n\n // const matchCacheValues = multiSortBy(\n // Object.keys(router.state.matchCache)\n // .filter((key) => {\n // const cacheEntry = router.state.matchCache[key]!\n // return cacheEntry.gc > Date.now()\n // })\n // .map((key) => router.state.matchCache[key]!),\n // [\n // (d) => (d.match.state.isFetching ? -1 : 1),\n // (d) => -d.match.state.updatedAt!,\n // ],\n // )\n\n return (\n <ThemeProvider theme={theme}>\n <Panel ref={ref} className=\"TanStackRouterDevtoolsPanel\" {...panelProps}>\n <style\n dangerouslySetInnerHTML={{\n __html: `\n\n .TanStackRouterDevtoolsPanel * {\n scrollbar-color: ${theme.backgroundAlt} ${theme.gray};\n }\n\n .TanStackRouterDevtoolsPanel *::-webkit-scrollbar, .TanStackRouterDevtoolsPanel scrollbar {\n width: 1em;\n height: 1em;\n }\n\n .TanStackRouterDevtoolsPanel *::-webkit-scrollbar-track, .TanStackRouterDevtoolsPanel scrollbar-track {\n background: ${theme.backgroundAlt};\n }\n\n .TanStackRouterDevtoolsPanel *::-webkit-scrollbar-thumb, .TanStackRouterDevtoolsPanel scrollbar-thumb {\n background: ${theme.gray};\n border-radius: .5em;\n border: 3px solid ${theme.backgroundAlt};\n }\n\n .TanStackRouterDevtoolsPanel table {\n width: 100%;\n }\n\n .TanStackRouterDevtoolsPanel table tr {\n border-bottom: 2px dotted rgba(255, 255, 255, .2);\n }\n\n .TanStackRouterDevtoolsPanel table tr:last-child {\n border-bottom: none\n }\n\n .TanStackRouterDevtoolsPanel table td {\n padding: .25rem .5rem;\n border-right: 2px dotted rgba(255, 255, 255, .05);\n }\n\n .TanStackRouterDevtoolsPanel table td:last-child {\n border-right: none\n }\n\n `,\n }}\n />\n <div\n style={{\n position: 'absolute',\n left: 0,\n top: 0,\n width: '100%',\n height: '4px',\n marginBottom: '-4px',\n cursor: 'row-resize',\n zIndex: 100000,\n }}\n onMouseDown={handleDragStart}\n ></div>\n <div\n style={{\n flex: '1 1 500px',\n minHeight: '40%',\n maxHeight: '100%',\n overflow: 'auto',\n borderRight: `1px solid ${theme.grayAlt}`,\n display: 'flex',\n flexDirection: 'column',\n }}\n >\n <div\n style={{\n display: 'flex',\n justifyContent: 'start',\n gap: '1rem',\n padding: '1rem',\n alignItems: 'center',\n background: theme.backgroundAlt,\n }}\n >\n <Logo aria-hidden />\n <div\n style={{\n fontSize: 'clamp(.8rem, 2vw, 1.3rem)',\n fontWeight: 'bold',\n }}\n >\n <span\n style={{\n fontWeight: 100,\n }}\n >\n Devtools\n </span>\n </div>\n </div>\n <div\n style={{\n overflowY: 'auto',\n flex: '1',\n }}\n >\n <div\n style={{\n padding: '.5em',\n }}\n >\n <Explorer label=\"Router\" value={router} defaultExpanded={{}} />\n </div>\n </div>\n </div>\n <div\n style={{\n flex: '1 1 500px',\n minHeight: '40%',\n maxHeight: '100%',\n overflow: 'auto',\n borderRight: `1px solid ${theme.grayAlt}`,\n display: 'flex',\n flexDirection: 'column',\n }}\n >\n <div\n style={{\n padding: '.5em',\n background: theme.backgroundAlt,\n position: 'sticky',\n top: 0,\n zIndex: 1,\n }}\n >\n Active Matches\n </div>\n {router.state.currentMatches.map((match, i) => {\n return (\n <div\n key={match.route.id || i}\n role=\"button\"\n aria-label={`Open match details for ${match.route.id}`}\n onClick={() =>\n setActiveRouteId(\n activeRouteId === match.route.id ? '' : match.route.id,\n )\n }\n style={{\n display: 'flex',\n borderBottom: `solid 1px ${theme.grayAlt}`,\n cursor: 'pointer',\n alignItems: 'center',\n background:\n match === activeMatch ? 'rgba(255,255,255,.1)' : undefined,\n }}\n >\n <div\n style={{\n flex: '0 0 auto',\n width: '1.3rem',\n height: '1.3rem',\n marginLeft: '.25rem',\n background: getStatusColor(match, theme),\n alignItems: 'center',\n justifyContent: 'center',\n fontWeight: 'bold',\n borderRadius: '.25rem',\n transition: 'all .2s ease-out',\n }}\n />\n\n <Code\n style={{\n padding: '.5em',\n }}\n >\n {`${match.id}`}\n </Code>\n </div>\n )\n })}\n {router.state.pendingMatches?.length ? (\n <>\n <div\n style={{\n marginTop: '2rem',\n padding: '.5em',\n background: theme.backgroundAlt,\n position: 'sticky',\n top: 0,\n zIndex: 1,\n }}\n >\n Pending Matches\n </div>\n {router.state.pendingMatches?.map((match, i) => {\n return (\n <div\n key={match.route.id || i}\n role=\"button\"\n aria-label={`Open match details for ${match.route.id}`}\n onClick={() =>\n setActiveRouteId(\n activeRouteId === match.route.id ? '' : match.route.id,\n )\n }\n style={{\n display: 'flex',\n borderBottom: `solid 1px ${theme.grayAlt}`,\n cursor: 'pointer',\n background:\n match === activeMatch\n ? 'rgba(255,255,255,.1)'\n : undefined,\n }}\n >\n <div\n style={{\n flex: '0 0 auto',\n width: '1.3rem',\n height: '1.3rem',\n marginLeft: '.25rem',\n background: getStatusColor(match, theme),\n alignItems: 'center',\n justifyContent: 'center',\n fontWeight: 'bold',\n borderRadius: '.25rem',\n transition: 'all .2s ease-out',\n }}\n />\n\n <Code\n style={{\n padding: '.5em',\n }}\n >\n {`${match.id}`}\n </Code>\n </div>\n )\n })}\n </>\n ) : null}\n {/* {matchCacheValues.length ? (\n <>\n <div\n style={{\n marginTop: '2rem',\n padding: '.5em',\n background: theme.backgroundAlt,\n position: 'sticky',\n top: 0,\n bottom: 0,\n zIndex: 1,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n }}\n >\n <div>Match Cache</div>\n <Button\n onClick={() => {\n router.store.setState((s) => (s.matchCache = {}))\n }}\n >\n Clear\n </Button>\n </div>\n {matchCacheValues.map((d, i) => {\n const { match, gc } = d\n\n return (\n <div\n key={match.id || i}\n role=\"button\"\n aria-label={`Open match details for ${match.id}`}\n onClick={() =>\n setActiveMatchId(\n activeMatchId === match.id ? '' : match.id,\n )\n }\n style={{\n display: 'flex',\n borderBottom: `solid 1px ${theme.grayAlt}`,\n cursor: 'pointer',\n background:\n match === activeMatch\n ? 'rgba(255,255,255,.1)'\n : undefined,\n }}\n >\n <div\n style={{\n display: 'flex',\n flexDirection: 'column',\n padding: '.5rem',\n gap: '.3rem',\n }}\n >\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: '.5rem',\n }}\n >\n <div\n style={{\n flex: '0 0 auto',\n width: '1.3rem',\n height: '1.3rem',\n background: getStatusColor(match, theme),\n alignItems: 'center',\n justifyContent: 'center',\n fontWeight: 'bold',\n borderRadius: '.25rem',\n transition: 'all .2s ease-out',\n }}\n />\n <Code>{`${match.id}`}</Code>\n </div>\n <span\n style={{\n fontSize: '.7rem',\n opacity: '.5',\n lineHeight: 1,\n }}\n >\n Expires{' '}\n {formatDistanceStrict(new Date(gc), new Date(), {\n addSuffix: true,\n })}\n </span>\n </div>\n </div>\n )\n })}\n </>\n ) : null} */}\n </div>\n\n {activeMatch ? (\n <ActivePanel>\n <div\n style={{\n padding: '.5em',\n background: theme.backgroundAlt,\n position: 'sticky',\n top: 0,\n bottom: 0,\n zIndex: 1,\n }}\n >\n Match Details\n </div>\n <div>\n <table>\n <tbody>\n <tr>\n <td style={{ opacity: '.5' }}>ID</td>\n <td>\n <Code\n style={{\n lineHeight: '1.8em',\n }}\n >\n {JSON.stringify(activeMatch.id, null, 2)}\n </Code>\n </td>\n </tr>\n <tr>\n <td style={{ opacity: '.5' }}>Status</td>\n <td>{activeMatch.state.status}</td>\n </tr>\n {/* <tr>\n <td style={{ opacity: '.5' }}>Invalid</td>\n <td>{activeMatch.getIsInvalid().toString()}</td>\n </tr> */}\n <tr>\n <td style={{ opacity: '.5' }}>Last Updated</td>\n <td>\n {activeMatch.state.updatedAt\n ? new Date(\n activeMatch.state.updatedAt as number,\n ).toLocaleTimeString()\n : 'N/A'}\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n <div\n style={{\n background: theme.backgroundAlt,\n padding: '.5em',\n position: 'sticky',\n top: 0,\n bottom: 0,\n zIndex: 1,\n }}\n >\n Actions\n </div>\n <div\n style={{\n padding: '0.5em',\n }}\n >\n <Button\n type=\"button\"\n onClick={() => activeMatch.load()}\n style={{\n background: theme.gray,\n }}\n >\n Reload\n </Button>\n </div>\n <div\n style={{\n background: theme.backgroundAlt,\n padding: '.5em',\n position: 'sticky',\n top: 0,\n bottom: 0,\n zIndex: 1,\n }}\n >\n Explorer\n </div>\n <div\n style={{\n padding: '.5em',\n }}\n >\n <Explorer\n label=\"Match\"\n value={activeMatch}\n defaultExpanded={{}}\n />\n </div>\n </ActivePanel>\n ) : null}\n <div\n style={{\n flex: '1 1 500px',\n minHeight: '40%',\n maxHeight: '100%',\n overflow: 'auto',\n borderRight: `1px solid ${theme.grayAlt}`,\n display: 'flex',\n flexDirection: 'column',\n }}\n >\n {/* <div\n style={{\n padding: '.5em',\n background: theme.backgroundAlt,\n position: 'sticky',\n top: 0,\n bottom: 0,\n zIndex: 1,\n }}\n >\n All Loader Data\n </div>\n <div\n style={{\n padding: '.5em',\n }}\n >\n {Object.keys(\n last(router.state.currentMatches)?.state.loaderData ||\n {},\n ).length ? (\n <Explorer\n value={\n last(router.state.currentMatches)?.state\n .loaderData || {}\n }\n defaultExpanded={Object.keys(\n (last(router.state.currentMatches)?.state\n .loaderData as {}) || {},\n ).reduce((obj: any, next) => {\n obj[next] = {}\n return obj\n }, {})}\n />\n ) : (\n <em style={{ opacity: 0.5 }}>{'{ }'}</em>\n )}\n </div> */}\n <div\n style={{\n padding: '.5em',\n background: theme.backgroundAlt,\n position: 'sticky',\n top: 0,\n bottom: 0,\n zIndex: 1,\n }}\n >\n Search Params\n </div>\n <div\n style={{\n padding: '.5em',\n }}\n >\n {Object.keys(last(router.state.currentMatches)?.state.search || {})\n .length ? (\n <Explorer\n value={last(router.state.currentMatches)?.state.search || {}}\n defaultExpanded={Object.keys(\n (last(router.state.currentMatches)?.state.search as {}) || {},\n ).reduce((obj: any, next) => {\n obj[next] = {}\n return obj\n }, {})}\n />\n ) : (\n <em style={{ opacity: 0.5 }}>{'{ }'}</em>\n )}\n </div>\n </div>\n </Panel>\n </ThemeProvider>\n )\n})\n"],"names":["isServer","window","Logo","props","React","style","display","alignItems","flexDirection","fontSize","fontWeight","lineHeight","letterSpacing","backgroundImage","WebkitBackgroundClip","color","marginRight","TanStackRouterDevtools","initialIsOpen","panelProps","closeButtonProps","toggleButtonProps","position","containerElement","Container","router","rootRef","useRef","panelRef","isOpen","setIsOpen","useLocalStorage","devtoolsHeight","setDevtoolsHeight","isResolvedOpen","setIsResolvedOpen","useSafeState","isResizing","setIsResizing","isMounted","useIsMounted","handleDragStart","panelElement","startEvent","button","dragInfo","originalHeight","getBoundingClientRect","height","pageY","run","moveEvent","delta","newHeight","unsub","document","removeEventListener","addEventListener","useEffect","ref","current","handlePanelTransitionStart","visibility","handlePanelTransitionEnd","previousValue","parentElement","paddingBottom","containerHeight","panelStyle","otherPanelProps","closeButtonStyle","onClick","onCloseClick","otherCloseButtonProps","toggleButtonStyle","onToggleClick","otherToggleButtonProps","ThemeProvider","theme","_extends","bottom","right","zIndex","width","maxHeight","boxShadow","borderTop","gray","transformOrigin","transition","opacity","pointerEvents","transform","e","Button","margin","left","appearance","background","border","padding","cursor","top","TanStackRouterDevtoolsPanel","forwardRef","userRouter","routerContextValue","useContext","routerContext","invariant","useStore","__store","activeRouteId","setActiveRouteId","activeMatchId","setActiveMatchId","allMatches","useMemo","Object","values","state","currentMatches","pendingMatches","activeMatch","find","d","id","route","Panel","__html","backgroundAlt","marginBottom","flex","minHeight","overflow","borderRight","grayAlt","justifyContent","gap","overflowY","Explorer","map","match","i","borderBottom","undefined","marginLeft","getStatusColor","borderRadius","Code","length","marginTop","ActivePanel","JSON","stringify","status","updatedAt","Date","toLocaleTimeString","load","keys","last","search","reduce","obj","next"],"mappings":"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"}

@@ -13,3 +13,3 @@ /**

import React__default from 'react';
import { routerContext, invariant, useRouter, last } from '@tanstack/react-router';
import { routerContext, invariant, useStore, last } from '@tanstack/react-router';

@@ -685,3 +685,3 @@ function _extends() {

invariant(router, 'No router was found for the TanStack Router Devtools. Please place the devtools in the <RouterProvider> component tree or pass the router instance to the devtools manually.');
useRouter();
useStore(router.__store);
const [activeRouteId, setActiveRouteId] = useLocalStorage('tanstackRouterDevtoolsActiveRouteId', '');

@@ -688,0 +688,0 @@ const [activeMatchId, setActiveMatchId] = useLocalStorage('tanstackRouterDevtoolsActiveMatchId', '');

@@ -10,3 +10,3 @@ {

{
"uid": "5d99-203",
"uid": "bdb5-203",
"name": "\u0000rollupPluginBabelHelpers.js"

@@ -16,3 +16,3 @@ },

"name": "node_modules/.pnpm/tiny-invariant@1.3.1/node_modules/tiny-invariant/dist/esm/tiny-invariant.js",
"uid": "5d99-205"
"uid": "bdb5-205"
},

@@ -24,11 +24,11 @@ {

"name": "router/build/esm/index.js",
"uid": "5d99-207"
"uid": "bdb5-207"
},
{
"name": "react-store/build/esm/index.js",
"uid": "5d99-209"
"uid": "bdb5-209"
},
{
"name": "react-router/build/esm/index.js",
"uid": "5d99-211"
"uid": "bdb5-211"
},

@@ -39,31 +39,31 @@ {

{
"uid": "5d99-213",
"uid": "bdb5-213",
"name": "useLocalStorage.ts"
},
{
"uid": "5d99-215",
"uid": "bdb5-215",
"name": "theme.tsx"
},
{
"uid": "5d99-217",
"uid": "bdb5-217",
"name": "useMediaQuery.ts"
},
{
"uid": "5d99-219",
"uid": "bdb5-219",
"name": "utils.ts"
},
{
"uid": "5d99-221",
"uid": "bdb5-221",
"name": "styledComponents.ts"
},
{
"uid": "5d99-223",
"uid": "bdb5-223",
"name": "Explorer.tsx"
},
{
"uid": "5d99-225",
"uid": "bdb5-225",
"name": "devtools.tsx"
},
{
"uid": "5d99-227",
"uid": "bdb5-227",
"name": "index.tsx"

@@ -81,86 +81,86 @@ }

"nodeParts": {
"5d99-203": {
"bdb5-203": {
"renderedLength": 429,
"gzipLength": 238,
"brotliLength": 0,
"mainUid": "5d99-202"
"mainUid": "bdb5-202"
},
"5d99-205": {
"bdb5-205": {
"renderedLength": 181,
"gzipLength": 129,
"brotliLength": 0,
"mainUid": "5d99-204"
"mainUid": "bdb5-204"
},
"5d99-207": {
"bdb5-207": {
"renderedLength": 277,
"gzipLength": 198,
"brotliLength": 0,
"mainUid": "5d99-206"
"mainUid": "bdb5-206"
},
"5d99-209": {
"bdb5-209": {
"renderedLength": 1571,
"gzipLength": 594,
"brotliLength": 0,
"mainUid": "5d99-208"
"mainUid": "bdb5-208"
},
"5d99-211": {
"renderedLength": 604,
"gzipLength": 309,
"bdb5-211": {
"renderedLength": 298,
"gzipLength": 215,
"brotliLength": 0,
"mainUid": "5d99-210"
"mainUid": "bdb5-210"
},
"5d99-213": {
"bdb5-213": {
"renderedLength": 1083,
"gzipLength": 410,
"brotliLength": 0,
"mainUid": "5d99-212"
"mainUid": "bdb5-212"
},
"5d99-215": {
"bdb5-215": {
"renderedLength": 686,
"gzipLength": 344,
"brotliLength": 0,
"mainUid": "5d99-214"
"mainUid": "bdb5-214"
},
"5d99-217": {
"bdb5-217": {
"renderedLength": 970,
"gzipLength": 386,
"brotliLength": 0,
"mainUid": "5d99-216"
"mainUid": "bdb5-216"
},
"5d99-219": {
"bdb5-219": {
"renderedLength": 2694,
"gzipLength": 1056,
"brotliLength": 0,
"mainUid": "5d99-218"
"mainUid": "bdb5-218"
},
"5d99-221": {
"bdb5-221": {
"renderedLength": 1378,
"gzipLength": 576,
"brotliLength": 0,
"mainUid": "5d99-220"
"mainUid": "bdb5-220"
},
"5d99-223": {
"bdb5-223": {
"renderedLength": 6098,
"gzipLength": 1825,
"brotliLength": 0,
"mainUid": "5d99-222"
"mainUid": "bdb5-222"
},
"5d99-225": {
"renderedLength": 20601,
"gzipLength": 3904,
"bdb5-225": {
"renderedLength": 20614,
"gzipLength": 3911,
"brotliLength": 0,
"mainUid": "5d99-224"
"mainUid": "bdb5-224"
},
"5d99-227": {
"bdb5-227": {
"renderedLength": 0,
"gzipLength": 0,
"brotliLength": 0,
"mainUid": "5d99-226"
"mainUid": "bdb5-226"
}
},
"nodeMetas": {
"5d99-202": {
"bdb5-202": {
"id": "\u0000rollupPluginBabelHelpers.js",
"moduleParts": {
"index.production.js": "5d99-203"
"index.production.js": "bdb5-203"
},

@@ -170,16 +170,16 @@ "imported": [],

{
"uid": "5d99-224"
"uid": "bdb5-224"
},
{
"uid": "5d99-214"
"uid": "bdb5-214"
},
{
"uid": "5d99-222"
"uid": "bdb5-222"
}
]
},
"5d99-204": {
"bdb5-204": {
"id": "/node_modules/.pnpm/tiny-invariant@1.3.1/node_modules/tiny-invariant/dist/esm/tiny-invariant.js",
"moduleParts": {
"index.production.js": "5d99-205"
"index.production.js": "bdb5-205"
},

@@ -189,20 +189,20 @@ "imported": [],

{
"uid": "5d99-206"
"uid": "bdb5-206"
}
]
},
"5d99-206": {
"bdb5-206": {
"id": "/packages/router/build/esm/index.js",
"moduleParts": {
"index.production.js": "5d99-207"
"index.production.js": "bdb5-207"
},
"imported": [
{
"uid": "5d99-204"
"uid": "bdb5-204"
},
{
"uid": "5d99-229"
"uid": "bdb5-229"
},
{
"uid": "5d99-230"
"uid": "bdb5-230"
}

@@ -212,14 +212,14 @@ ],

{
"uid": "5d99-210"
"uid": "bdb5-210"
}
]
},
"5d99-208": {
"bdb5-208": {
"id": "/packages/react-store/build/esm/index.js",
"moduleParts": {
"index.production.js": "5d99-209"
"index.production.js": "bdb5-209"
},
"imported": [
{
"uid": "5d99-231"
"uid": "bdb5-231"
}

@@ -229,20 +229,20 @@ ],

{
"uid": "5d99-210"
"uid": "bdb5-210"
}
]
},
"5d99-210": {
"bdb5-210": {
"id": "/packages/react-router/build/esm/index.js",
"moduleParts": {
"index.production.js": "5d99-211"
"index.production.js": "bdb5-211"
},
"imported": [
{
"uid": "5d99-228"
"uid": "bdb5-228"
},
{
"uid": "5d99-206"
"uid": "bdb5-206"
},
{
"uid": "5d99-208"
"uid": "bdb5-208"
}

@@ -252,14 +252,14 @@ ],

{
"uid": "5d99-224"
"uid": "bdb5-224"
}
]
},
"5d99-212": {
"bdb5-212": {
"id": "/packages/react-router-devtools/src/useLocalStorage.ts",
"moduleParts": {
"index.production.js": "5d99-213"
"index.production.js": "bdb5-213"
},
"imported": [
{
"uid": "5d99-228"
"uid": "bdb5-228"
}

@@ -269,17 +269,17 @@ ],

{
"uid": "5d99-224"
"uid": "bdb5-224"
}
]
},
"5d99-214": {
"bdb5-214": {
"id": "/packages/react-router-devtools/src/theme.tsx",
"moduleParts": {
"index.production.js": "5d99-215"
"index.production.js": "bdb5-215"
},
"imported": [
{
"uid": "5d99-202"
"uid": "bdb5-202"
},
{
"uid": "5d99-228"
"uid": "bdb5-228"
}

@@ -289,17 +289,17 @@ ],

{
"uid": "5d99-224"
"uid": "bdb5-224"
},
{
"uid": "5d99-218"
"uid": "bdb5-218"
}
]
},
"5d99-216": {
"bdb5-216": {
"id": "/packages/react-router-devtools/src/useMediaQuery.ts",
"moduleParts": {
"index.production.js": "5d99-217"
"index.production.js": "bdb5-217"
},
"imported": [
{
"uid": "5d99-228"
"uid": "bdb5-228"
}

@@ -309,20 +309,20 @@ ],

{
"uid": "5d99-218"
"uid": "bdb5-218"
}
]
},
"5d99-218": {
"bdb5-218": {
"id": "/packages/react-router-devtools/src/utils.ts",
"moduleParts": {
"index.production.js": "5d99-219"
"index.production.js": "bdb5-219"
},
"imported": [
{
"uid": "5d99-228"
"uid": "bdb5-228"
},
{
"uid": "5d99-214"
"uid": "bdb5-214"
},
{
"uid": "5d99-216"
"uid": "bdb5-216"
}

@@ -332,20 +332,20 @@ ],

{
"uid": "5d99-224"
"uid": "bdb5-224"
},
{
"uid": "5d99-220"
"uid": "bdb5-220"
},
{
"uid": "5d99-222"
"uid": "bdb5-222"
}
]
},
"5d99-220": {
"bdb5-220": {
"id": "/packages/react-router-devtools/src/styledComponents.ts",
"moduleParts": {
"index.production.js": "5d99-221"
"index.production.js": "bdb5-221"
},
"imported": [
{
"uid": "5d99-218"
"uid": "bdb5-218"
}

@@ -355,20 +355,20 @@ ],

{
"uid": "5d99-224"
"uid": "bdb5-224"
}
]
},
"5d99-222": {
"bdb5-222": {
"id": "/packages/react-router-devtools/src/Explorer.tsx",
"moduleParts": {
"index.production.js": "5d99-223"
"index.production.js": "bdb5-223"
},
"imported": [
{
"uid": "5d99-202"
"uid": "bdb5-202"
},
{
"uid": "5d99-228"
"uid": "bdb5-228"
},
{
"uid": "5d99-218"
"uid": "bdb5-218"
}

@@ -378,35 +378,35 @@ ],

{
"uid": "5d99-224"
"uid": "bdb5-224"
}
]
},
"5d99-224": {
"bdb5-224": {
"id": "/packages/react-router-devtools/src/devtools.tsx",
"moduleParts": {
"index.production.js": "5d99-225"
"index.production.js": "bdb5-225"
},
"imported": [
{
"uid": "5d99-202"
"uid": "bdb5-202"
},
{
"uid": "5d99-228"
"uid": "bdb5-228"
},
{
"uid": "5d99-210"
"uid": "bdb5-210"
},
{
"uid": "5d99-212"
"uid": "bdb5-212"
},
{
"uid": "5d99-218"
"uid": "bdb5-218"
},
{
"uid": "5d99-220"
"uid": "bdb5-220"
},
{
"uid": "5d99-214"
"uid": "bdb5-214"
},
{
"uid": "5d99-222"
"uid": "bdb5-222"
}

@@ -416,14 +416,14 @@ ],

{
"uid": "5d99-226"
"uid": "bdb5-226"
}
]
},
"5d99-226": {
"bdb5-226": {
"id": "/packages/react-router-devtools/src/index.tsx",
"moduleParts": {
"index.production.js": "5d99-227"
"index.production.js": "bdb5-227"
},
"imported": [
{
"uid": "5d99-224"
"uid": "bdb5-224"
}

@@ -434,3 +434,3 @@ ],

},
"5d99-228": {
"bdb5-228": {
"id": "react",

@@ -441,21 +441,21 @@ "moduleParts": {},

{
"uid": "5d99-224"
"uid": "bdb5-224"
},
{
"uid": "5d99-210"
"uid": "bdb5-210"
},
{
"uid": "5d99-212"
"uid": "bdb5-212"
},
{
"uid": "5d99-218"
"uid": "bdb5-218"
},
{
"uid": "5d99-214"
"uid": "bdb5-214"
},
{
"uid": "5d99-222"
"uid": "bdb5-222"
},
{
"uid": "5d99-216"
"uid": "bdb5-216"
}

@@ -465,3 +465,3 @@ ],

},
"5d99-229": {
"bdb5-229": {
"id": "/node_modules/.pnpm/tiny-warning@1.0.3/node_modules/tiny-warning/dist/tiny-warning.esm.js",

@@ -472,7 +472,7 @@ "moduleParts": {},

{
"uid": "5d99-206"
"uid": "bdb5-206"
}
]
},
"5d99-230": {
"bdb5-230": {
"id": "/packages/store/build/esm/index.js",

@@ -483,7 +483,7 @@ "moduleParts": {},

{
"uid": "5d99-206"
"uid": "bdb5-206"
}
]
},
"5d99-231": {
"bdb5-231": {
"id": "use-sync-external-store/shim/with-selector",

@@ -494,3 +494,3 @@ "moduleParts": {},

{
"uid": "5d99-208"
"uid": "bdb5-208"
}

@@ -497,0 +497,0 @@ ],

@@ -65,20 +65,2 @@ /**

function warning(condition, message) {
{
if (condition) {
return;
}
var text = "Warning: " + message;
if (typeof console !== 'undefined') {
console.warn(text);
}
try {
throw Error(text);
} catch (x) {}
}
}
/**

@@ -167,13 +149,2 @@ * router

const routerContext = /*#__PURE__*/React__namespace.createContext(null);
function useRouterContext() {
const value = React__namespace.useContext(routerContext);
warning(value, 'useRouter must be used inside a <Router> component!');
useStore(value.router.__store);
return value.router;
}
function useRouter(track, shallow) {
const router = useRouterContext();
useStore(router.__store, track, shallow);
return router;
}

@@ -834,3 +805,3 @@ const getItem = key => {

invariant(router, 'No router was found for the TanStack Router Devtools. Please place the devtools in the <RouterProvider> component tree or pass the router instance to the devtools manually.');
useRouter();
useStore(router.__store);
const [activeRouteId, setActiveRouteId] = useLocalStorage('tanstackRouterDevtoolsActiveRouteId', '');

@@ -837,0 +808,0 @@ const [activeMatchId, setActiveMatchId] = useLocalStorage('tanstackRouterDevtoolsActiveMatchId', '');

@@ -32,3 +32,3 @@ /**

* @license MIT
*/function u(e,t=(e=>e),r){return n.useSyncExternalStoreWithSelector(e.subscribe,(()=>e.state),(()=>e.state),t,r?c:void 0)}function c(e,t){if(Object.is(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(let r=0;r<n.length;r++)if(!Object.prototype.hasOwnProperty.call(t,n[r])||!Object.is(e[n[r]],t[n[r]]))return!1;return!0}
*/function u(e,t){if(Object.is(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(let r=0;r<n.length;r++)if(!Object.prototype.hasOwnProperty.call(t,n[r])||!Object.is(e[n[r]],t[n[r]]))return!1;return!0}
/**

@@ -43,3 +43,3 @@ * react-router

* @license MIT
*/const s=l.createContext(null);function f(e,t){const n=function(){const e=l.useContext(s);return u(e.router.__store),e.router}();return u(n.__store,e,t),n}function m(e,t){const[n,r]=o.default.useState();o.default.useEffect((()=>{const n=(e=>{try{const t=localStorage.getItem(e);return"string"==typeof t?JSON.parse(t):void 0}catch{return}})(e);r(null==n?"function"==typeof t?t():t:n)}),[t,e]);return[n,o.default.useCallback((t=>{r((n=>{let r=t;"function"==typeof t&&(r=t(n));try{localStorage.setItem(e,JSON.stringify(r))}catch{}return r}))}),[e])]}const p={background:"#0b1521",backgroundAlt:"#132337",foreground:"white",gray:"#3f4e60",grayAlt:"#222e3e",inputBackgroundColor:"#fff",inputTextColor:"#000",success:"#00ab52",danger:"#ff0085",active:"#006bff",warning:"#ffb200"},g=o.default.createContext(p);function b({theme:e,...t}){return o.default.createElement(g.Provider,i({value:e},t))}const y="undefined"==typeof window;function h(e,t){return"pending"===e.state.status?t.active:"error"===e.state.status?t.danger:"success"===e.state.status?t.success:t.gray}function v(e,t,n={}){return o.default.forwardRef((({style:r,...a},l)=>{const i=o.default.useContext(g),d=Object.entries(n).reduce(((e,[t,n])=>function(e){const[t,n]=o.default.useState((()=>{if("undefined"!=typeof window)return window.matchMedia&&window.matchMedia(e).matches}));return o.default.useEffect((()=>{if("undefined"!=typeof window){if(!window.matchMedia)return;const t=window.matchMedia(e),r=({matches:e})=>n(e);return t.addListener(r),()=>{t.removeListener(r)}}}),[t,e,n]),t}(t)?{...e,..."function"==typeof n?n(a,i):n}:e),{});return o.default.createElement(e,{...a,style:{..."function"==typeof t?t(a,i):t,...r,...d},ref:l})}))}function E(){const e=o.default.useRef(!1),t=o.default.useCallback((()=>e.current),[]);return o.default[y?"useEffect":"useLayoutEffect"]((()=>(e.current=!0,()=>{e.current=!1})),[]),t}function x(e){const t=E(),[n,r]=o.default.useState(e);return[n,o.default.useCallback((e=>{var n;n=()=>{t()&&r(e)},Promise.resolve().then(n).catch((e=>setTimeout((()=>{throw e}))))}),[t])]}const k=v("div",((e,t)=>({fontSize:"clamp(12px, 1.5vw, 14px)",fontFamily:"sans-serif",display:"flex",backgroundColor:t.background,color:t.foreground})),{"(max-width: 700px)":{flexDirection:"column"},"(max-width: 600px)":{fontSize:".9em"}}),w=v("div",(()=>({flex:"1 1 500px",display:"flex",flexDirection:"column",overflow:"auto",height:"100%"})),{"(max-width: 700px)":(e,t)=>({borderTop:`2px solid ${t.gray}`})}),S=v("button",((e,t)=>({appearance:"none",fontSize:".9em",fontWeight:"bold",background:t.gray,border:"0",borderRadius:".3em",color:"white",padding:".5em",opacity:e.disabled?".5":void 0,cursor:"pointer"}))),R=v("code",{fontSize:".9em"}),O=v("div",{fontFamily:"Menlo, monospace",fontSize:".7rem",lineHeight:"1.7",outline:"none",wordBreak:"break-word"}),D=v("span",{color:"white"}),j=v("button",{cursor:"pointer",color:"white"}),C=v("button",{cursor:"pointer",color:"inherit",font:"inherit",outline:"inherit",background:"transparent",border:"none",padding:0}),T=v("span",((e,t)=>({color:t.danger}))),A=v("div",{marginLeft:".1em",paddingLeft:"1em",borderLeft:"2px solid rgba(0,0,0,.15)"}),P=v("span",{color:"grey",fontSize:".7em"}),I=({expanded:e,style:t={}})=>l.createElement("span",{style:{display:"inline-block",transition:"all .1s ease",transform:`rotate(${e?90:0}deg) ${t.transform||""}`,...t}},"▶");const z=({handleEntry:e,label:t,value:n,subEntries:r=[],subEntryPages:a=[],type:o,expanded:i=!1,toggleExpanded:d,pageSize:u,renderer:c})=>{const[s,f]=l.useState([]),[m,p]=l.useState(void 0);return l.createElement(O,null,a.length?l.createElement(l.Fragment,null,l.createElement(C,{onClick:()=>d()},l.createElement(I,{expanded:i})," ",t," ",l.createElement(P,null,"iterable"===String(o).toLowerCase()?"(Iterable) ":"",r.length," ",r.length>1?"items":"item")),i?1===a.length?l.createElement(A,null,r.map(((t,n)=>e(t)))):l.createElement(A,null,a.map(((t,n)=>l.createElement("div",{key:n},l.createElement(O,null,l.createElement(j,{onClick:()=>f((e=>e.includes(n)?e.filter((e=>e!==n)):[...e,n]))},l.createElement(I,{expanded:i})," [",n*u," ..."," ",n*u+u-1,"]"),s.includes(n)?l.createElement(A,null,t.map((t=>e(t)))):null))))):null):"function"===o?l.createElement(l.Fragment,null,l.createElement(M,{renderer:c,label:l.createElement("button",{onClick:()=>{p(n())},style:{appearance:"none",border:"0",background:"transparent"}},l.createElement(D,null,t)," 🔄"," "),value:m,defaultExpanded:{}})):l.createElement(l.Fragment,null,l.createElement(D,null,t,":")," ",l.createElement(T,null,(e=>{const t=Object.getOwnPropertyNames(Object(e)),n="bigint"==typeof e?`${e.toString()}n`:e;return JSON.stringify(n,t)})(n))))};function M({value:e,defaultExpanded:t,renderer:n=z,pageSize:r=100,...a}){const[o,d]=l.useState(Boolean(t)),u=l.useCallback((()=>d((e=>!e))),[]);let c=typeof e,s=[];const f=e=>{const n=!0===t?{[e.label]:!0}:t?.[e.label];return{...e,defaultExpanded:n}};var m;Array.isArray(e)?(c="array",s=e.map(((e,t)=>f({label:t.toString(),value:e})))):null!==e&&"object"==typeof e&&(m=e,Symbol.iterator in m)&&"function"==typeof e[Symbol.iterator]?(c="Iterable",s=Array.from(e,((e,t)=>f({label:t.toString(),value:e})))):"object"==typeof e&&null!==e&&(c="object",s=Object.entries(e).map((([e,t])=>f({label:e,value:t}))));const p=function(e,t){if(t<1)return[];let n=0;const r=[];for(;n<e.length;)r.push(e.slice(n,n+t)),n+=t;return r}(s,r);return n({handleEntry:t=>l.createElement(M,i({key:t.label,value:e,renderer:n},a,t)),type:c,subEntries:s,subEntryPages:p,value:e,expanded:o,toggleExpanded:u,pageSize:r,...a})}const L="undefined"==typeof window;function $(e){return o.default.createElement("div",i({},e,{style:{...e.style??{},display:"flex",alignItems:"center",flexDirection:"column",fontSize:"0.8rem",fontWeight:"bolder",lineHeight:"1"}}),o.default.createElement("div",{style:{letterSpacing:"-0.05rem"}},"TANSTACK"),o.default.createElement("div",{style:{backgroundImage:"linear-gradient(to right, var(--tw-gradient-stops))","--tw-gradient-from":"#84cc16","--tw-gradient-stops":"var(--tw-gradient-from), var(--tw-gradient-to)","--tw-gradient-to":"#10b981",WebkitBackgroundClip:"text",color:"transparent",letterSpacing:"0.1rem",marginRight:"-0.2rem"}},"ROUTER"))}const B=o.default.forwardRef((function(e,t){const{isOpen:n=!0,setIsOpen:r,handleDragStart:a,router:l,...u}=e,c=o.default.useContext(s),g=l??c?.router;!function(e,t){if(!e)throw new Error("Invariant failed")}(g),f();const[y,v]=m("tanstackRouterDevtoolsActiveRouteId",""),[E,x]=m("tanstackRouterDevtoolsActiveMatchId","");o.default.useEffect((()=>{x("")}),[y]);const O=o.default.useMemo((()=>[...Object.values(g.state.currentMatches),...Object.values(g.state.pendingMatches??[])]),[g.state.currentMatches,g.state.pendingMatches]),D=O?.find((e=>e.id===E))||O?.find((e=>e.route.id===y));return o.default.createElement(b,{theme:p},o.default.createElement(k,i({ref:t,className:"TanStackRouterDevtoolsPanel"},u),o.default.createElement("style",{dangerouslySetInnerHTML:{__html:`\n\n .TanStackRouterDevtoolsPanel * {\n scrollbar-color: ${p.backgroundAlt} ${p.gray};\n }\n\n .TanStackRouterDevtoolsPanel *::-webkit-scrollbar, .TanStackRouterDevtoolsPanel scrollbar {\n width: 1em;\n height: 1em;\n }\n\n .TanStackRouterDevtoolsPanel *::-webkit-scrollbar-track, .TanStackRouterDevtoolsPanel scrollbar-track {\n background: ${p.backgroundAlt};\n }\n\n .TanStackRouterDevtoolsPanel *::-webkit-scrollbar-thumb, .TanStackRouterDevtoolsPanel scrollbar-thumb {\n background: ${p.gray};\n border-radius: .5em;\n border: 3px solid ${p.backgroundAlt};\n }\n\n .TanStackRouterDevtoolsPanel table {\n width: 100%;\n }\n\n .TanStackRouterDevtoolsPanel table tr {\n border-bottom: 2px dotted rgba(255, 255, 255, .2);\n }\n\n .TanStackRouterDevtoolsPanel table tr:last-child {\n border-bottom: none\n }\n\n .TanStackRouterDevtoolsPanel table td {\n padding: .25rem .5rem;\n border-right: 2px dotted rgba(255, 255, 255, .05);\n }\n\n .TanStackRouterDevtoolsPanel table td:last-child {\n border-right: none\n }\n\n `}}),o.default.createElement("div",{style:{position:"absolute",left:0,top:0,width:"100%",height:"4px",marginBottom:"-4px",cursor:"row-resize",zIndex:1e5},onMouseDown:a}),o.default.createElement("div",{style:{flex:"1 1 500px",minHeight:"40%",maxHeight:"100%",overflow:"auto",borderRight:`1px solid ${p.grayAlt}`,display:"flex",flexDirection:"column"}},o.default.createElement("div",{style:{display:"flex",justifyContent:"start",gap:"1rem",padding:"1rem",alignItems:"center",background:p.backgroundAlt}},o.default.createElement($,{"aria-hidden":!0}),o.default.createElement("div",{style:{fontSize:"clamp(.8rem, 2vw, 1.3rem)",fontWeight:"bold"}},o.default.createElement("span",{style:{fontWeight:100}},"Devtools"))),o.default.createElement("div",{style:{overflowY:"auto",flex:"1"}},o.default.createElement("div",{style:{padding:".5em"}},o.default.createElement(M,{label:"Router",value:g,defaultExpanded:{}})))),o.default.createElement("div",{style:{flex:"1 1 500px",minHeight:"40%",maxHeight:"100%",overflow:"auto",borderRight:`1px solid ${p.grayAlt}`,display:"flex",flexDirection:"column"}},o.default.createElement("div",{style:{padding:".5em",background:p.backgroundAlt,position:"sticky",top:0,zIndex:1}},"Active Matches"),g.state.currentMatches.map(((e,t)=>o.default.createElement("div",{key:e.route.id||t,role:"button","aria-label":`Open match details for ${e.route.id}`,onClick:()=>v(y===e.route.id?"":e.route.id),style:{display:"flex",borderBottom:`solid 1px ${p.grayAlt}`,cursor:"pointer",alignItems:"center",background:e===D?"rgba(255,255,255,.1)":void 0}},o.default.createElement("div",{style:{flex:"0 0 auto",width:"1.3rem",height:"1.3rem",marginLeft:".25rem",background:h(e,p),alignItems:"center",justifyContent:"center",fontWeight:"bold",borderRadius:".25rem",transition:"all .2s ease-out"}}),o.default.createElement(R,{style:{padding:".5em"}},`${e.id}`)))),g.state.pendingMatches?.length?o.default.createElement(o.default.Fragment,null,o.default.createElement("div",{style:{marginTop:"2rem",padding:".5em",background:p.backgroundAlt,position:"sticky",top:0,zIndex:1}},"Pending Matches"),g.state.pendingMatches?.map(((e,t)=>o.default.createElement("div",{key:e.route.id||t,role:"button","aria-label":`Open match details for ${e.route.id}`,onClick:()=>v(y===e.route.id?"":e.route.id),style:{display:"flex",borderBottom:`solid 1px ${p.grayAlt}`,cursor:"pointer",background:e===D?"rgba(255,255,255,.1)":void 0}},o.default.createElement("div",{style:{flex:"0 0 auto",width:"1.3rem",height:"1.3rem",marginLeft:".25rem",background:h(e,p),alignItems:"center",justifyContent:"center",fontWeight:"bold",borderRadius:".25rem",transition:"all .2s ease-out"}}),o.default.createElement(R,{style:{padding:".5em"}},`${e.id}`))))):null),D?o.default.createElement(w,null,o.default.createElement("div",{style:{padding:".5em",background:p.backgroundAlt,position:"sticky",top:0,bottom:0,zIndex:1}},"Match Details"),o.default.createElement("div",null,o.default.createElement("table",null,o.default.createElement("tbody",null,o.default.createElement("tr",null,o.default.createElement("td",{style:{opacity:".5"}},"ID"),o.default.createElement("td",null,o.default.createElement(R,{style:{lineHeight:"1.8em"}},JSON.stringify(D.id,null,2)))),o.default.createElement("tr",null,o.default.createElement("td",{style:{opacity:".5"}},"Status"),o.default.createElement("td",null,D.state.status)),o.default.createElement("tr",null,o.default.createElement("td",{style:{opacity:".5"}},"Last Updated"),o.default.createElement("td",null,D.state.updatedAt?new Date(D.state.updatedAt).toLocaleTimeString():"N/A"))))),o.default.createElement("div",{style:{background:p.backgroundAlt,padding:".5em",position:"sticky",top:0,bottom:0,zIndex:1}},"Actions"),o.default.createElement("div",{style:{padding:"0.5em"}},o.default.createElement(S,{type:"button",onClick:()=>D.load(),style:{background:p.gray}},"Reload")),o.default.createElement("div",{style:{background:p.backgroundAlt,padding:".5em",position:"sticky",top:0,bottom:0,zIndex:1}},"Explorer"),o.default.createElement("div",{style:{padding:".5em"}},o.default.createElement(M,{label:"Match",value:D,defaultExpanded:{}}))):null,o.default.createElement("div",{style:{flex:"1 1 500px",minHeight:"40%",maxHeight:"100%",overflow:"auto",borderRight:`1px solid ${p.grayAlt}`,display:"flex",flexDirection:"column"}},o.default.createElement("div",{style:{padding:".5em",background:p.backgroundAlt,position:"sticky",top:0,bottom:0,zIndex:1}},"Search Params"),o.default.createElement("div",{style:{padding:".5em"}},Object.keys(d(g.state.currentMatches)?.state.search||{}).length?o.default.createElement(M,{value:d(g.state.currentMatches)?.state.search||{},defaultExpanded:Object.keys(d(g.state.currentMatches)?.state.search||{}).reduce(((e,t)=>(e[t]={},e)),{})}):o.default.createElement("em",{style:{opacity:.5}},"{ }")))))}));e.TanStackRouterDevtools=function({initialIsOpen:e,panelProps:t={},closeButtonProps:n={},toggleButtonProps:r={},position:a="bottom-left",containerElement:l="footer",router:d}){const u=o.default.useRef(null),c=o.default.useRef(null),[s,f]=m("tanstackRouterDevtoolsOpen",e),[g,y]=m("tanstackRouterDevtoolsHeight",null),[h,v]=x(!1),[k,w]=x(!1),R=E();o.default.useEffect((()=>{v(s??!1)}),[s,h,v]),o.default.useEffect((()=>{const e=c.current;if(e){const t=()=>{e&&h&&(e.style.visibility="visible")},n=()=>{e&&!h&&(e.style.visibility="hidden")};return e.addEventListener("transitionstart",t),e.addEventListener("transitionend",n),()=>{e.removeEventListener("transitionstart",t),e.removeEventListener("transitionend",n)}}}),[h]),o.default[L?"useEffect":"useLayoutEffect"]((()=>{if(h){const e=u.current?.parentElement?.style.paddingBottom,t=()=>{const e=c.current?.getBoundingClientRect().height;u.current?.parentElement&&(u.current.parentElement.style.paddingBottom=`${e}px`)};if(t(),"undefined"!=typeof window)return window.addEventListener("resize",t),()=>{window.removeEventListener("resize",t),u.current?.parentElement&&"string"==typeof e&&(u.current.parentElement.style.paddingBottom=e)}}}),[h]);const{style:O={},...D}=t,{style:j={},onClick:C,...T}=n,{style:A={},onClick:P,...I}=r;return R()?o.default.createElement(l,{ref:u,className:"TanStackRouterDevtools"},o.default.createElement(b,{theme:p},o.default.createElement(B,i({ref:c},D,{router:d,style:{position:"fixed",bottom:"0",right:"0",zIndex:99999,width:"100%",height:g??500,maxHeight:"90%",boxShadow:"0 0 20px rgba(0,0,0,.3)",borderTop:`1px solid ${p.gray}`,transformOrigin:"top",visibility:s?"visible":"hidden",...O,...k?{transition:"none"}:{transition:"all .2s ease"},...h?{opacity:1,pointerEvents:"all",transform:"translateY(0) scale(1)"}:{opacity:0,pointerEvents:"none",transform:"translateY(15px) scale(1.02)"}},isOpen:h,setIsOpen:f,handleDragStart:e=>((e,t)=>{if(0!==t.button)return;w(!0);const n=e?.getBoundingClientRect().height??0,r=t.pageY,a=e=>{const t=r-e.pageY,a=n+t;y(a),f(!(a<70))},l=()=>{w(!1),document.removeEventListener("mousemove",a),document.removeEventListener("mouseUp",l)};document.addEventListener("mousemove",a),document.addEventListener("mouseup",l)})(c.current,e)})),h?o.default.createElement(S,i({type:"button","aria-label":"Close TanStack Router Devtools"},T,{onClick:e=>{f(!1),C&&C(e)},style:{position:"fixed",zIndex:99999,margin:".5em",bottom:0,..."top-right"===a?{right:"0"}:"top-left"===a?{left:"0"}:"bottom-right"===a?{right:"0"}:{left:"0"},...j}}),"Close"):null),h?null:o.default.createElement("button",i({type:"button"},I,{"aria-label":"Open TanStack Router Devtools",onClick:e=>{f(!0),P&&P(e)},style:{appearance:"none",background:"none",border:0,padding:0,position:"fixed",zIndex:99999,display:"inline-flex",fontSize:"1.5em",margin:".5em",cursor:"pointer",width:"fit-content",..."top-right"===a?{top:"0",right:"0"}:"top-left"===a?{top:"0",left:"0"}:"bottom-right"===a?{bottom:"0",right:"0"}:{bottom:"0",left:"0"},...A}}),o.default.createElement($,{"aria-hidden":!0}))):null},e.TanStackRouterDevtoolsPanel=B,Object.defineProperty(e,"__esModule",{value:!0})}));
*/const c=l.createContext(null);function s(e,t){const[n,r]=o.default.useState();o.default.useEffect((()=>{const n=(e=>{try{const t=localStorage.getItem(e);return"string"==typeof t?JSON.parse(t):void 0}catch{return}})(e);r(null==n?"function"==typeof t?t():t:n)}),[t,e]);return[n,o.default.useCallback((t=>{r((n=>{let r=t;"function"==typeof t&&(r=t(n));try{localStorage.setItem(e,JSON.stringify(r))}catch{}return r}))}),[e])]}const f={background:"#0b1521",backgroundAlt:"#132337",foreground:"white",gray:"#3f4e60",grayAlt:"#222e3e",inputBackgroundColor:"#fff",inputTextColor:"#000",success:"#00ab52",danger:"#ff0085",active:"#006bff",warning:"#ffb200"},m=o.default.createContext(f);function p({theme:e,...t}){return o.default.createElement(m.Provider,i({value:e},t))}const g="undefined"==typeof window;function b(e,t){return"pending"===e.state.status?t.active:"error"===e.state.status?t.danger:"success"===e.state.status?t.success:t.gray}function y(e,t,n={}){return o.default.forwardRef((({style:r,...a},l)=>{const i=o.default.useContext(m),d=Object.entries(n).reduce(((e,[t,n])=>function(e){const[t,n]=o.default.useState((()=>{if("undefined"!=typeof window)return window.matchMedia&&window.matchMedia(e).matches}));return o.default.useEffect((()=>{if("undefined"!=typeof window){if(!window.matchMedia)return;const t=window.matchMedia(e),r=({matches:e})=>n(e);return t.addListener(r),()=>{t.removeListener(r)}}}),[t,e,n]),t}(t)?{...e,..."function"==typeof n?n(a,i):n}:e),{});return o.default.createElement(e,{...a,style:{..."function"==typeof t?t(a,i):t,...r,...d},ref:l})}))}function h(){const e=o.default.useRef(!1),t=o.default.useCallback((()=>e.current),[]);return o.default[g?"useEffect":"useLayoutEffect"]((()=>(e.current=!0,()=>{e.current=!1})),[]),t}function v(e){const t=h(),[n,r]=o.default.useState(e);return[n,o.default.useCallback((e=>{var n;n=()=>{t()&&r(e)},Promise.resolve().then(n).catch((e=>setTimeout((()=>{throw e}))))}),[t])]}const E=y("div",((e,t)=>({fontSize:"clamp(12px, 1.5vw, 14px)",fontFamily:"sans-serif",display:"flex",backgroundColor:t.background,color:t.foreground})),{"(max-width: 700px)":{flexDirection:"column"},"(max-width: 600px)":{fontSize:".9em"}}),k=y("div",(()=>({flex:"1 1 500px",display:"flex",flexDirection:"column",overflow:"auto",height:"100%"})),{"(max-width: 700px)":(e,t)=>({borderTop:`2px solid ${t.gray}`})}),x=y("button",((e,t)=>({appearance:"none",fontSize:".9em",fontWeight:"bold",background:t.gray,border:"0",borderRadius:".3em",color:"white",padding:".5em",opacity:e.disabled?".5":void 0,cursor:"pointer"}))),w=y("code",{fontSize:".9em"}),S=y("div",{fontFamily:"Menlo, monospace",fontSize:".7rem",lineHeight:"1.7",outline:"none",wordBreak:"break-word"}),R=y("span",{color:"white"}),O=y("button",{cursor:"pointer",color:"white"}),D=y("button",{cursor:"pointer",color:"inherit",font:"inherit",outline:"inherit",background:"transparent",border:"none",padding:0}),j=y("span",((e,t)=>({color:t.danger}))),C=y("div",{marginLeft:".1em",paddingLeft:"1em",borderLeft:"2px solid rgba(0,0,0,.15)"}),T=y("span",{color:"grey",fontSize:".7em"}),A=({expanded:e,style:t={}})=>l.createElement("span",{style:{display:"inline-block",transition:"all .1s ease",transform:`rotate(${e?90:0}deg) ${t.transform||""}`,...t}},"▶");const P=({handleEntry:e,label:t,value:n,subEntries:r=[],subEntryPages:a=[],type:o,expanded:i=!1,toggleExpanded:d,pageSize:u,renderer:c})=>{const[s,f]=l.useState([]),[m,p]=l.useState(void 0);return l.createElement(S,null,a.length?l.createElement(l.Fragment,null,l.createElement(D,{onClick:()=>d()},l.createElement(A,{expanded:i})," ",t," ",l.createElement(T,null,"iterable"===String(o).toLowerCase()?"(Iterable) ":"",r.length," ",r.length>1?"items":"item")),i?1===a.length?l.createElement(C,null,r.map(((t,n)=>e(t)))):l.createElement(C,null,a.map(((t,n)=>l.createElement("div",{key:n},l.createElement(S,null,l.createElement(O,{onClick:()=>f((e=>e.includes(n)?e.filter((e=>e!==n)):[...e,n]))},l.createElement(A,{expanded:i})," [",n*u," ..."," ",n*u+u-1,"]"),s.includes(n)?l.createElement(C,null,t.map((t=>e(t)))):null))))):null):"function"===o?l.createElement(l.Fragment,null,l.createElement(I,{renderer:c,label:l.createElement("button",{onClick:()=>{p(n())},style:{appearance:"none",border:"0",background:"transparent"}},l.createElement(R,null,t)," 🔄"," "),value:m,defaultExpanded:{}})):l.createElement(l.Fragment,null,l.createElement(R,null,t,":")," ",l.createElement(j,null,(e=>{const t=Object.getOwnPropertyNames(Object(e)),n="bigint"==typeof e?`${e.toString()}n`:e;return JSON.stringify(n,t)})(n))))};function I({value:e,defaultExpanded:t,renderer:n=P,pageSize:r=100,...a}){const[o,d]=l.useState(Boolean(t)),u=l.useCallback((()=>d((e=>!e))),[]);let c=typeof e,s=[];const f=e=>{const n=!0===t?{[e.label]:!0}:t?.[e.label];return{...e,defaultExpanded:n}};var m;Array.isArray(e)?(c="array",s=e.map(((e,t)=>f({label:t.toString(),value:e})))):null!==e&&"object"==typeof e&&(m=e,Symbol.iterator in m)&&"function"==typeof e[Symbol.iterator]?(c="Iterable",s=Array.from(e,((e,t)=>f({label:t.toString(),value:e})))):"object"==typeof e&&null!==e&&(c="object",s=Object.entries(e).map((([e,t])=>f({label:e,value:t}))));const p=function(e,t){if(t<1)return[];let n=0;const r=[];for(;n<e.length;)r.push(e.slice(n,n+t)),n+=t;return r}(s,r);return n({handleEntry:t=>l.createElement(I,i({key:t.label,value:e,renderer:n},a,t)),type:c,subEntries:s,subEntryPages:p,value:e,expanded:o,toggleExpanded:u,pageSize:r,...a})}const z="undefined"==typeof window;function M(e){return o.default.createElement("div",i({},e,{style:{...e.style??{},display:"flex",alignItems:"center",flexDirection:"column",fontSize:"0.8rem",fontWeight:"bolder",lineHeight:"1"}}),o.default.createElement("div",{style:{letterSpacing:"-0.05rem"}},"TANSTACK"),o.default.createElement("div",{style:{backgroundImage:"linear-gradient(to right, var(--tw-gradient-stops))","--tw-gradient-from":"#84cc16","--tw-gradient-stops":"var(--tw-gradient-from), var(--tw-gradient-to)","--tw-gradient-to":"#10b981",WebkitBackgroundClip:"text",color:"transparent",letterSpacing:"0.1rem",marginRight:"-0.2rem"}},"ROUTER"))}const L=o.default.forwardRef((function(e,t){const{isOpen:r=!0,setIsOpen:a,handleDragStart:l,router:m,...g}=e,y=o.default.useContext(c),h=m??y?.router;!function(e,t){if(!e)throw new Error("Invariant failed")}(h),function(e,t=(e=>e),r){n.useSyncExternalStoreWithSelector(e.subscribe,(()=>e.state),(()=>e.state),t,r?u:void 0)}(h.__store);const[v,S]=s("tanstackRouterDevtoolsActiveRouteId",""),[R,O]=s("tanstackRouterDevtoolsActiveMatchId","");o.default.useEffect((()=>{O("")}),[v]);const D=o.default.useMemo((()=>[...Object.values(h.state.currentMatches),...Object.values(h.state.pendingMatches??[])]),[h.state.currentMatches,h.state.pendingMatches]),j=D?.find((e=>e.id===R))||D?.find((e=>e.route.id===v));return o.default.createElement(p,{theme:f},o.default.createElement(E,i({ref:t,className:"TanStackRouterDevtoolsPanel"},g),o.default.createElement("style",{dangerouslySetInnerHTML:{__html:`\n\n .TanStackRouterDevtoolsPanel * {\n scrollbar-color: ${f.backgroundAlt} ${f.gray};\n }\n\n .TanStackRouterDevtoolsPanel *::-webkit-scrollbar, .TanStackRouterDevtoolsPanel scrollbar {\n width: 1em;\n height: 1em;\n }\n\n .TanStackRouterDevtoolsPanel *::-webkit-scrollbar-track, .TanStackRouterDevtoolsPanel scrollbar-track {\n background: ${f.backgroundAlt};\n }\n\n .TanStackRouterDevtoolsPanel *::-webkit-scrollbar-thumb, .TanStackRouterDevtoolsPanel scrollbar-thumb {\n background: ${f.gray};\n border-radius: .5em;\n border: 3px solid ${f.backgroundAlt};\n }\n\n .TanStackRouterDevtoolsPanel table {\n width: 100%;\n }\n\n .TanStackRouterDevtoolsPanel table tr {\n border-bottom: 2px dotted rgba(255, 255, 255, .2);\n }\n\n .TanStackRouterDevtoolsPanel table tr:last-child {\n border-bottom: none\n }\n\n .TanStackRouterDevtoolsPanel table td {\n padding: .25rem .5rem;\n border-right: 2px dotted rgba(255, 255, 255, .05);\n }\n\n .TanStackRouterDevtoolsPanel table td:last-child {\n border-right: none\n }\n\n `}}),o.default.createElement("div",{style:{position:"absolute",left:0,top:0,width:"100%",height:"4px",marginBottom:"-4px",cursor:"row-resize",zIndex:1e5},onMouseDown:l}),o.default.createElement("div",{style:{flex:"1 1 500px",minHeight:"40%",maxHeight:"100%",overflow:"auto",borderRight:`1px solid ${f.grayAlt}`,display:"flex",flexDirection:"column"}},o.default.createElement("div",{style:{display:"flex",justifyContent:"start",gap:"1rem",padding:"1rem",alignItems:"center",background:f.backgroundAlt}},o.default.createElement(M,{"aria-hidden":!0}),o.default.createElement("div",{style:{fontSize:"clamp(.8rem, 2vw, 1.3rem)",fontWeight:"bold"}},o.default.createElement("span",{style:{fontWeight:100}},"Devtools"))),o.default.createElement("div",{style:{overflowY:"auto",flex:"1"}},o.default.createElement("div",{style:{padding:".5em"}},o.default.createElement(I,{label:"Router",value:h,defaultExpanded:{}})))),o.default.createElement("div",{style:{flex:"1 1 500px",minHeight:"40%",maxHeight:"100%",overflow:"auto",borderRight:`1px solid ${f.grayAlt}`,display:"flex",flexDirection:"column"}},o.default.createElement("div",{style:{padding:".5em",background:f.backgroundAlt,position:"sticky",top:0,zIndex:1}},"Active Matches"),h.state.currentMatches.map(((e,t)=>o.default.createElement("div",{key:e.route.id||t,role:"button","aria-label":`Open match details for ${e.route.id}`,onClick:()=>S(v===e.route.id?"":e.route.id),style:{display:"flex",borderBottom:`solid 1px ${f.grayAlt}`,cursor:"pointer",alignItems:"center",background:e===j?"rgba(255,255,255,.1)":void 0}},o.default.createElement("div",{style:{flex:"0 0 auto",width:"1.3rem",height:"1.3rem",marginLeft:".25rem",background:b(e,f),alignItems:"center",justifyContent:"center",fontWeight:"bold",borderRadius:".25rem",transition:"all .2s ease-out"}}),o.default.createElement(w,{style:{padding:".5em"}},`${e.id}`)))),h.state.pendingMatches?.length?o.default.createElement(o.default.Fragment,null,o.default.createElement("div",{style:{marginTop:"2rem",padding:".5em",background:f.backgroundAlt,position:"sticky",top:0,zIndex:1}},"Pending Matches"),h.state.pendingMatches?.map(((e,t)=>o.default.createElement("div",{key:e.route.id||t,role:"button","aria-label":`Open match details for ${e.route.id}`,onClick:()=>S(v===e.route.id?"":e.route.id),style:{display:"flex",borderBottom:`solid 1px ${f.grayAlt}`,cursor:"pointer",background:e===j?"rgba(255,255,255,.1)":void 0}},o.default.createElement("div",{style:{flex:"0 0 auto",width:"1.3rem",height:"1.3rem",marginLeft:".25rem",background:b(e,f),alignItems:"center",justifyContent:"center",fontWeight:"bold",borderRadius:".25rem",transition:"all .2s ease-out"}}),o.default.createElement(w,{style:{padding:".5em"}},`${e.id}`))))):null),j?o.default.createElement(k,null,o.default.createElement("div",{style:{padding:".5em",background:f.backgroundAlt,position:"sticky",top:0,bottom:0,zIndex:1}},"Match Details"),o.default.createElement("div",null,o.default.createElement("table",null,o.default.createElement("tbody",null,o.default.createElement("tr",null,o.default.createElement("td",{style:{opacity:".5"}},"ID"),o.default.createElement("td",null,o.default.createElement(w,{style:{lineHeight:"1.8em"}},JSON.stringify(j.id,null,2)))),o.default.createElement("tr",null,o.default.createElement("td",{style:{opacity:".5"}},"Status"),o.default.createElement("td",null,j.state.status)),o.default.createElement("tr",null,o.default.createElement("td",{style:{opacity:".5"}},"Last Updated"),o.default.createElement("td",null,j.state.updatedAt?new Date(j.state.updatedAt).toLocaleTimeString():"N/A"))))),o.default.createElement("div",{style:{background:f.backgroundAlt,padding:".5em",position:"sticky",top:0,bottom:0,zIndex:1}},"Actions"),o.default.createElement("div",{style:{padding:"0.5em"}},o.default.createElement(x,{type:"button",onClick:()=>j.load(),style:{background:f.gray}},"Reload")),o.default.createElement("div",{style:{background:f.backgroundAlt,padding:".5em",position:"sticky",top:0,bottom:0,zIndex:1}},"Explorer"),o.default.createElement("div",{style:{padding:".5em"}},o.default.createElement(I,{label:"Match",value:j,defaultExpanded:{}}))):null,o.default.createElement("div",{style:{flex:"1 1 500px",minHeight:"40%",maxHeight:"100%",overflow:"auto",borderRight:`1px solid ${f.grayAlt}`,display:"flex",flexDirection:"column"}},o.default.createElement("div",{style:{padding:".5em",background:f.backgroundAlt,position:"sticky",top:0,bottom:0,zIndex:1}},"Search Params"),o.default.createElement("div",{style:{padding:".5em"}},Object.keys(d(h.state.currentMatches)?.state.search||{}).length?o.default.createElement(I,{value:d(h.state.currentMatches)?.state.search||{},defaultExpanded:Object.keys(d(h.state.currentMatches)?.state.search||{}).reduce(((e,t)=>(e[t]={},e)),{})}):o.default.createElement("em",{style:{opacity:.5}},"{ }")))))}));e.TanStackRouterDevtools=function({initialIsOpen:e,panelProps:t={},closeButtonProps:n={},toggleButtonProps:r={},position:a="bottom-left",containerElement:l="footer",router:d}){const u=o.default.useRef(null),c=o.default.useRef(null),[m,g]=s("tanstackRouterDevtoolsOpen",e),[b,y]=s("tanstackRouterDevtoolsHeight",null),[E,k]=v(!1),[w,S]=v(!1),R=h();o.default.useEffect((()=>{k(m??!1)}),[m,E,k]),o.default.useEffect((()=>{const e=c.current;if(e){const t=()=>{e&&E&&(e.style.visibility="visible")},n=()=>{e&&!E&&(e.style.visibility="hidden")};return e.addEventListener("transitionstart",t),e.addEventListener("transitionend",n),()=>{e.removeEventListener("transitionstart",t),e.removeEventListener("transitionend",n)}}}),[E]),o.default[z?"useEffect":"useLayoutEffect"]((()=>{if(E){const e=u.current?.parentElement?.style.paddingBottom,t=()=>{const e=c.current?.getBoundingClientRect().height;u.current?.parentElement&&(u.current.parentElement.style.paddingBottom=`${e}px`)};if(t(),"undefined"!=typeof window)return window.addEventListener("resize",t),()=>{window.removeEventListener("resize",t),u.current?.parentElement&&"string"==typeof e&&(u.current.parentElement.style.paddingBottom=e)}}}),[E]);const{style:O={},...D}=t,{style:j={},onClick:C,...T}=n,{style:A={},onClick:P,...I}=r;return R()?o.default.createElement(l,{ref:u,className:"TanStackRouterDevtools"},o.default.createElement(p,{theme:f},o.default.createElement(L,i({ref:c},D,{router:d,style:{position:"fixed",bottom:"0",right:"0",zIndex:99999,width:"100%",height:b??500,maxHeight:"90%",boxShadow:"0 0 20px rgba(0,0,0,.3)",borderTop:`1px solid ${f.gray}`,transformOrigin:"top",visibility:m?"visible":"hidden",...O,...w?{transition:"none"}:{transition:"all .2s ease"},...E?{opacity:1,pointerEvents:"all",transform:"translateY(0) scale(1)"}:{opacity:0,pointerEvents:"none",transform:"translateY(15px) scale(1.02)"}},isOpen:E,setIsOpen:g,handleDragStart:e=>((e,t)=>{if(0!==t.button)return;S(!0);const n=e?.getBoundingClientRect().height??0,r=t.pageY,a=e=>{const t=r-e.pageY,a=n+t;y(a),g(!(a<70))},l=()=>{S(!1),document.removeEventListener("mousemove",a),document.removeEventListener("mouseUp",l)};document.addEventListener("mousemove",a),document.addEventListener("mouseup",l)})(c.current,e)})),E?o.default.createElement(x,i({type:"button","aria-label":"Close TanStack Router Devtools"},T,{onClick:e=>{g(!1),C&&C(e)},style:{position:"fixed",zIndex:99999,margin:".5em",bottom:0,..."top-right"===a?{right:"0"}:"top-left"===a?{left:"0"}:"bottom-right"===a?{right:"0"}:{left:"0"},...j}}),"Close"):null),E?null:o.default.createElement("button",i({type:"button"},I,{"aria-label":"Open TanStack Router Devtools",onClick:e=>{g(!0),P&&P(e)},style:{appearance:"none",background:"none",border:0,padding:0,position:"fixed",zIndex:99999,display:"inline-flex",fontSize:"1.5em",margin:".5em",cursor:"pointer",width:"fit-content",..."top-right"===a?{top:"0",right:"0"}:"top-left"===a?{top:"0",left:"0"}:"bottom-right"===a?{bottom:"0",right:"0"}:{bottom:"0",left:"0"},...A}}),o.default.createElement(M,{"aria-hidden":!0}))):null},e.TanStackRouterDevtoolsPanel=L,Object.defineProperty(e,"__esModule",{value:!0})}));
//# sourceMappingURL=index.production.js.map
{
"name": "@tanstack/react-router-devtools",
"author": "Tanner Linsley",
"version": "0.0.1-beta.77",
"version": "0.0.1-beta.78",
"license": "MIT",

@@ -6,0 +6,0 @@ "repository": "tanstack/router",

import React from 'react'
import {
Router,
last,

@@ -9,2 +8,3 @@ routerContext,

AnyRouter,
useStore,
} from '@tanstack/react-router'

@@ -428,3 +428,3 @@

useRouter()
useStore(router.__store)

@@ -431,0 +431,0 @@ const [activeRouteId, setActiveRouteId] = useLocalStorage(

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display