@tanstack/router-devtools 0.0.1-beta.242 → 0.0.1-beta.243

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.
@@ -268,9 +268,9 @@ function RouteComp({
268
268
  activeRouteId,
269
269
  setActiveRouteId
270
270
  }) {
271
- const router = reactRouter.useRouter();
272
- const matches = router.state.status === 'pending' ? router.state.pendingMatches ?? [] : router.state.matches;
273
- const match = router.state.matches.find(d => d.routeId === route.id);
271
+ const routerState = reactRouter.useRouterState();
272
+ const matches = routerState.status === 'pending' ? routerState.pendingMatches ?? [] : routerState.matches;
273
+ const match = routerState.matches.find(d => d.routeId === route.id);
274
274
  return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
275
275
  role: "button",
276
276
  "aria-label": `Open match details for ${route.id}`,
@@ -337,7 +337,8 @@ const TanStackRouterDevtoolsPanel = /*#__PURE__*/React.forwardRef(function TanSt
337
337
  ...panelProps
338
338
  } = props;
339
339
  const router = reactRouter.useRouter();
340
- const matches = [...(router.state.pendingMatches ?? []), ...router.state.matches];
340
+ const routerState = reactRouter.useRouterState();
341
+ const matches = [...(routerState.pendingMatches ?? []), ...routerState.matches];
341
342
  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.');
342
343
 
343
344
  // useStore(router.__store)
@@ -345,7 +346,7 @@ const TanStackRouterDevtoolsPanel = /*#__PURE__*/React.forwardRef(function TanSt
345
346
  const [showMatches, setShowMatches] = useLocalStorage.default('tanstackRouterDevtoolsShowMatches', true);
346
347
  const [activeRouteId, setActiveRouteId] = useLocalStorage.default('tanstackRouterDevtoolsActiveRouteId', '');
347
348
  const activeMatch = React.useMemo(() => matches.find(d => d.routeId === activeRouteId), [matches, activeRouteId]);
348
- const hasSearch = Object.keys(router.state.location.search || {}).length;
349
+ const hasSearch = Object.keys(routerState.location.search || {}).length;
349
350
 
350
351
  // const preloadMatches = matches.filter((match) => {
351
352
  // return (
@@ -501,7 +502,7 @@ const TanStackRouterDevtoolsPanel = /*#__PURE__*/React.forwardRef(function TanSt
501
502
  gap: '.5rem',
502
503
  fontWeight: 'bold'
503
504
  }
504
- }, "Pathname", ' ', router.state.location.maskedLocation ? /*#__PURE__*/React.createElement("div", {
505
+ }, "Pathname", ' ', routerState.location.maskedLocation ? /*#__PURE__*/React.createElement("div", {
505
506
  style: {
506
507
  padding: '.1rem .5rem',
507
508
  background: theme.defaultTheme.warning,
@@ -519,12 +520,12 @@ const TanStackRouterDevtoolsPanel = /*#__PURE__*/React.forwardRef(function TanSt
519
520
  style: {
520
521
  opacity: 0.6
521
522
  }
522
- }, router.state.location.pathname), router.state.location.maskedLocation ? /*#__PURE__*/React.createElement("code", {
523
+ }, routerState.location.pathname), routerState.location.maskedLocation ? /*#__PURE__*/React.createElement("code", {
523
524
  style: {
524
525
  color: theme.defaultTheme.warning,
525
526
  fontWeight: 'bold'
526
527
  }
527
- }, router.state.location.maskedLocation.pathname) : null), /*#__PURE__*/React.createElement("div", {
528
+ }, routerState.location.maskedLocation.pathname) : null), /*#__PURE__*/React.createElement("div", {
528
529
  style: {
529
530
  padding: '.5em',
530
531
  background: theme.defaultTheme.backgroundAlt,
@@ -569,7 +570,7 @@ const TanStackRouterDevtoolsPanel = /*#__PURE__*/React.forwardRef(function TanSt
569
570
  isRoot: true,
570
571
  activeRouteId: activeRouteId,
571
572
  setActiveRouteId: setActiveRouteId
572
- }) : /*#__PURE__*/React.createElement("div", null, (router.state.status === 'pending' ? router.state.pendingMatches ?? [] : router.state.matches).map((match, i) => {
573
+ }) : /*#__PURE__*/React.createElement("div", null, (routerState.status === 'pending' ? routerState.pendingMatches ?? [] : routerState.matches).map((match, i) => {
573
574
  return /*#__PURE__*/React.createElement("div", {
574
575
  key: match.routeId || i,
575
576
  role: "button",
@@ -685,8 +686,8 @@ const TanStackRouterDevtoolsPanel = /*#__PURE__*/React.forwardRef(function TanSt
685
686
  padding: '.5em'
686
687
  }
687
688
  }, /*#__PURE__*/React.createElement(Explorer.default, {
688
- value: router.state.location.search || {},
689
- defaultExpanded: Object.keys(router.state.location.search || {}).reduce((obj, next) => {
689
+ value: routerState.location.search || {},
690
+ defaultExpanded: Object.keys(routerState.location.search || {}).reduce((obj, next) => {
690
691
  obj[next] = {};
691
692
  return obj;
692
693
  }, {})
@@ -1 +1 @@
1
- {"version":3,"file":"devtools.js","sources":["../../src/devtools.tsx"],"sourcesContent":["import React from 'react'\nimport {\n invariant,\n AnyRouter,\n Route,\n AnyRoute,\n AnyRootRoute,\n trimPath,\n useRouter,\n} from '@tanstack/react-router'\n\nimport useLocalStorage from './useLocalStorage'\nimport {\n getRouteStatusColor,\n getStatusColor,\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\nfunction RouteComp({\n route,\n isRoot,\n activeRouteId,\n setActiveRouteId,\n}: {\n route: AnyRootRoute | AnyRoute\n isRoot?: boolean\n activeRouteId: string | undefined\n setActiveRouteId: (id: string) => void\n}) {\n const router = useRouter()\n const matches =\n router.state.status === 'pending'\n ? router.state.pendingMatches ?? []\n : router.state.matches\n\n const match = router.state.matches.find((d) => d.routeId === route.id)\n\n return (\n <div>\n <div\n role=\"button\"\n aria-label={`Open match details for ${route.id}`}\n onClick={() => {\n if (match) {\n setActiveRouteId(activeRouteId === route.id ? '' : route.id)\n }\n }}\n style={{\n display: 'flex',\n borderBottom: `solid 1px ${theme.grayAlt}`,\n cursor: match ? 'pointer' : 'default',\n alignItems: 'center',\n background:\n route.id === activeRouteId ? 'rgba(255,255,255,.1)' : undefined,\n }}\n >\n {isRoot ? null : (\n <div\n style={{\n flex: '0 0 auto',\n width: '.7rem',\n height: '.7rem',\n margin: '.5rem .75rem',\n alignItems: 'center',\n justifyContent: 'center',\n fontWeight: 'bold',\n borderRadius: '100%',\n transition: 'all .2s ease-out',\n background: getRouteStatusColor(matches, route, theme),\n opacity: match ? 1 : 0.3,\n }}\n />\n )}\n <Code\n style={{\n flex: '1 0 auto',\n display: 'flex',\n justifyContent: 'space-between',\n padding: '.25rem .5rem .25rem 0',\n paddingLeft: isRoot ? '.5rem' : 0,\n opacity: match ? 1 : 0.7,\n fontSize: '0.7rem',\n }}\n >\n <span>{route.path || trimPath(route.id)} </span>\n {match ? <span style={{ opacity: 0.3 }}>{match.id}</span> : null}\n </Code>\n </div>\n {(route.children as Route[])?.length ? (\n <div\n style={{\n marginLeft: isRoot ? 0 : '1rem',\n borderLeft: isRoot ? '' : `solid 1px ${theme.grayAlt}`,\n }}\n >\n {[...(route.children as Route[])]\n .sort((a, b) => {\n return a.rank - b.rank\n })\n .map((r) => (\n <RouteComp\n key={r.id}\n route={r}\n activeRouteId={activeRouteId}\n setActiveRouteId={setActiveRouteId}\n />\n ))}\n </div>\n ) : null}\n </div>\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 router = useRouter()\n const matches = [\n ...(router.state.pendingMatches ?? []),\n ...router.state.matches,\n ]\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 [showMatches, setShowMatches] = useLocalStorage(\n 'tanstackRouterDevtoolsShowMatches',\n true,\n )\n\n const [activeRouteId, setActiveRouteId] = useLocalStorage(\n 'tanstackRouterDevtoolsActiveRouteId',\n '',\n )\n\n const activeMatch = React.useMemo(\n () => matches.find((d) => d.routeId === activeRouteId),\n [matches, activeRouteId],\n )\n\n const hasSearch = Object.keys(router.state.location.search || {}).length\n\n // const preloadMatches = matches.filter((match) => {\n // return (\n // !state.matchIds.includes(match.id) &&\n // !state.pendingMatchIds.includes(match.id)\n // )\n // })\n\n // React.useEffect(() => {\n // const interval = setInterval(() => {\n // router.cleanMatches()\n // }, 1000)\n\n // return () => clearInterval(interval)\n // }, [router])\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\n label=\"Router\"\n value={router}\n defaultExpanded={{ state: {} as any, context: {} as any }}\n filterSubEntries={(subEntries) => {\n return subEntries.filter((d) => typeof d.value !== 'function')\n }}\n />\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 flex: '1 1 auto',\n overflowY: 'auto',\n }}\n >\n <div\n style={{\n padding: '.5em',\n background: theme.backgroundAlt,\n position: 'sticky',\n top: 0,\n zIndex: 1,\n display: 'flex',\n alignItems: 'center',\n gap: '.5rem',\n fontWeight: 'bold',\n }}\n >\n Pathname{' '}\n {router.state.location.maskedLocation ? (\n <div\n style={{\n padding: '.1rem .5rem',\n background: theme.warning,\n color: 'black',\n borderRadius: '.5rem',\n }}\n >\n Masked\n </div>\n ) : null}\n </div>\n <div\n style={{\n padding: '.5rem',\n display: 'flex',\n gap: '.5rem',\n alignItems: 'center',\n }}\n >\n <code\n style={{\n opacity: 0.6,\n }}\n >\n {router.state.location.pathname}\n </code>\n {router.state.location.maskedLocation ? (\n <code\n style={{\n color: theme.warning,\n fontWeight: 'bold',\n }}\n >\n {router.state.location.maskedLocation.pathname}\n </code>\n ) : null}\n </div>\n <div\n style={{\n padding: '.5em',\n background: theme.backgroundAlt,\n position: 'sticky',\n top: 0,\n zIndex: 1,\n display: 'flex',\n alignItems: 'center',\n gap: '.5rem',\n fontWeight: 'bold',\n }}\n >\n <button\n type=\"button\"\n onClick={() => {\n setShowMatches(false)\n }}\n disabled={!showMatches}\n style={{\n appearance: 'none',\n opacity: showMatches ? 0.5 : 1,\n border: 0,\n background: 'transparent',\n color: 'inherit',\n cursor: 'pointer',\n }}\n >\n Routes\n </button>\n /\n <button\n type=\"button\"\n onClick={() => {\n setShowMatches(true)\n }}\n disabled={showMatches}\n style={{\n appearance: 'none',\n opacity: !showMatches ? 0.5 : 1,\n border: 0,\n background: 'transparent',\n color: 'inherit',\n cursor: 'pointer',\n }}\n >\n Matches\n </button>\n </div>\n {!showMatches ? (\n <RouteComp\n route={router.routeTree}\n isRoot\n activeRouteId={activeRouteId}\n setActiveRouteId={setActiveRouteId}\n />\n ) : (\n <div>\n {(router.state.status === 'pending'\n ? router.state.pendingMatches ?? []\n : router.state.matches\n ).map((match, i) => {\n return (\n <div\n key={match.routeId || i}\n role=\"button\"\n aria-label={`Open match details for ${match.routeId}`}\n onClick={() =>\n setActiveRouteId(\n activeRouteId === match.routeId ? '' : match.routeId,\n )\n }\n style={{\n display: 'flex',\n borderBottom: `solid 1px ${theme.grayAlt}`,\n cursor: 'pointer',\n alignItems: 'center',\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 fontSize: '0.7rem',\n }}\n >\n {`${match.id}`}\n </Code>\n </div>\n )\n })}\n </div>\n )}\n </div>\n {/* {preloadMatches?.length ? (\n <div\n style={{\n flex: '1 1 auto',\n overflowY: 'auto',\n maxHeight: '50%',\n }}\n >\n <div\n style={{\n padding: '.5em',\n background: theme.backgroundAlt,\n position: 'sticky',\n top: 0,\n zIndex: 1,\n display: 'flex',\n alignItems: 'center',\n gap: '.5rem',\n fontWeight: 'bold',\n }}\n >\n Preloaded Matches\n </div>\n {preloadMatches.map((match) => {\n return (\n <div\n key={match.id}\n role=\"button\"\n aria-label={`Open match details for ${match.routeId}`}\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 alignItems: 'center',\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 fontSize: '0.7rem',\n }}\n >\n {`${match.id}`}\n </Code>\n </div>\n )\n })}\n </div>\n ) : null} */}\n </div>\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.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.updatedAt\n ? new Date(\n activeMatch.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.__store.setState(d => ({...d, status: 'pending'}))}\n style={{\n background: theme.gray,\n }}\n >\n Reload\n </Button>\n </div> */}\n {activeMatch.loaderData ? (\n <>\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 Loader Data\n </div>\n <div\n style={{\n padding: '.5em',\n }}\n >\n <Explorer\n label=\"loaderData\"\n value={activeMatch.loaderData}\n defaultExpanded={{}}\n />\n </div>\n </>\n ) : null}\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 {hasSearch ? (\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 fontWeight: 'bold',\n }}\n >\n Search Params\n </div>\n <div\n style={{\n padding: '.5em',\n }}\n >\n <Explorer\n value={router.state.location.search || {}}\n defaultExpanded={Object.keys(\n (router.state.location.search as {}) || {},\n ).reduce((obj: any, next) => {\n obj[next] = {}\n return obj\n }, {})}\n />\n </div>\n </div>\n ) : null}\n </Panel>\n </ThemeProvider>\n )\n})\n"],"names":["isServer","window","Logo","props","React","createElement","_extends","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","className","ThemeProvider","theme","TanStackRouterDevtoolsPanel","bottom","right","zIndex","width","maxHeight","boxShadow","borderTop","gray","transformOrigin","transition","opacity","pointerEvents","transform","e","Button","type","margin","left","appearance","background","border","padding","cursor","top","RouteComp","route","isRoot","activeRouteId","setActiveRouteId","useRouter","matches","state","status","pendingMatches","match","find","d","routeId","id","role","borderBottom","grayAlt","undefined","flex","justifyContent","borderRadius","getRouteStatusColor","Code","paddingLeft","path","trimPath","children","length","marginLeft","borderLeft","sort","a","b","rank","map","r","key","forwardRef","userRouter","invariant","showMatches","setShowMatches","activeMatch","useMemo","hasSearch","Object","keys","location","search","Panel","dangerouslySetInnerHTML","__html","backgroundAlt","marginBottom","onMouseDown","minHeight","overflow","borderRight","gap","overflowY","Explorer","label","value","defaultExpanded","context","filterSubEntries","subEntries","filter","maskedLocation","warning","pathname","disabled","routeTree","i","getStatusColor","ActivePanel","JSON","stringify","updatedAt","Date","toLocaleTimeString","loaderData","Fragment","reduce","obj","next"],"mappings":"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"}
1
+ {"version":3,"file":"devtools.js","sources":["../../src/devtools.tsx"],"sourcesContent":["import React from 'react'\nimport {\n invariant,\n AnyRouter,\n Route,\n AnyRoute,\n AnyRootRoute,\n trimPath,\n useRouter,\n useRouterState,\n} from '@tanstack/react-router'\n\nimport useLocalStorage from './useLocalStorage'\nimport {\n getRouteStatusColor,\n getStatusColor,\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\nfunction RouteComp({\n route,\n isRoot,\n activeRouteId,\n setActiveRouteId,\n}: {\n route: AnyRootRoute | AnyRoute\n isRoot?: boolean\n activeRouteId: string | undefined\n setActiveRouteId: (id: string) => void\n}) {\n const routerState = useRouterState()\n const matches =\n routerState.status === 'pending'\n ? routerState.pendingMatches ?? []\n : routerState.matches\n\n const match = routerState.matches.find((d) => d.routeId === route.id)\n\n return (\n <div>\n <div\n role=\"button\"\n aria-label={`Open match details for ${route.id}`}\n onClick={() => {\n if (match) {\n setActiveRouteId(activeRouteId === route.id ? '' : route.id)\n }\n }}\n style={{\n display: 'flex',\n borderBottom: `solid 1px ${theme.grayAlt}`,\n cursor: match ? 'pointer' : 'default',\n alignItems: 'center',\n background:\n route.id === activeRouteId ? 'rgba(255,255,255,.1)' : undefined,\n }}\n >\n {isRoot ? null : (\n <div\n style={{\n flex: '0 0 auto',\n width: '.7rem',\n height: '.7rem',\n margin: '.5rem .75rem',\n alignItems: 'center',\n justifyContent: 'center',\n fontWeight: 'bold',\n borderRadius: '100%',\n transition: 'all .2s ease-out',\n background: getRouteStatusColor(matches, route, theme),\n opacity: match ? 1 : 0.3,\n }}\n />\n )}\n <Code\n style={{\n flex: '1 0 auto',\n display: 'flex',\n justifyContent: 'space-between',\n padding: '.25rem .5rem .25rem 0',\n paddingLeft: isRoot ? '.5rem' : 0,\n opacity: match ? 1 : 0.7,\n fontSize: '0.7rem',\n }}\n >\n <span>{route.path || trimPath(route.id)} </span>\n {match ? <span style={{ opacity: 0.3 }}>{match.id}</span> : null}\n </Code>\n </div>\n {(route.children as Route[])?.length ? (\n <div\n style={{\n marginLeft: isRoot ? 0 : '1rem',\n borderLeft: isRoot ? '' : `solid 1px ${theme.grayAlt}`,\n }}\n >\n {[...(route.children as Route[])]\n .sort((a, b) => {\n return a.rank - b.rank\n })\n .map((r) => (\n <RouteComp\n key={r.id}\n route={r}\n activeRouteId={activeRouteId}\n setActiveRouteId={setActiveRouteId}\n />\n ))}\n </div>\n ) : null}\n </div>\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 router = useRouter()\n const routerState = useRouterState()\n\n const matches = [\n ...(routerState.pendingMatches ?? []),\n ...routerState.matches,\n ]\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 [showMatches, setShowMatches] = useLocalStorage(\n 'tanstackRouterDevtoolsShowMatches',\n true,\n )\n\n const [activeRouteId, setActiveRouteId] = useLocalStorage(\n 'tanstackRouterDevtoolsActiveRouteId',\n '',\n )\n\n const activeMatch = React.useMemo(\n () => matches.find((d) => d.routeId === activeRouteId),\n [matches, activeRouteId],\n )\n\n const hasSearch = Object.keys(routerState.location.search || {}).length\n\n // const preloadMatches = matches.filter((match) => {\n // return (\n // !state.matchIds.includes(match.id) &&\n // !state.pendingMatchIds.includes(match.id)\n // )\n // })\n\n // React.useEffect(() => {\n // const interval = setInterval(() => {\n // router.cleanMatches()\n // }, 1000)\n\n // return () => clearInterval(interval)\n // }, [router])\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\n label=\"Router\"\n value={router}\n defaultExpanded={{ state: {} as any, context: {} as any }}\n filterSubEntries={(subEntries) => {\n return subEntries.filter((d) => typeof d.value !== 'function')\n }}\n />\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 flex: '1 1 auto',\n overflowY: 'auto',\n }}\n >\n <div\n style={{\n padding: '.5em',\n background: theme.backgroundAlt,\n position: 'sticky',\n top: 0,\n zIndex: 1,\n display: 'flex',\n alignItems: 'center',\n gap: '.5rem',\n fontWeight: 'bold',\n }}\n >\n Pathname{' '}\n {routerState.location.maskedLocation ? (\n <div\n style={{\n padding: '.1rem .5rem',\n background: theme.warning,\n color: 'black',\n borderRadius: '.5rem',\n }}\n >\n Masked\n </div>\n ) : null}\n </div>\n <div\n style={{\n padding: '.5rem',\n display: 'flex',\n gap: '.5rem',\n alignItems: 'center',\n }}\n >\n <code\n style={{\n opacity: 0.6,\n }}\n >\n {routerState.location.pathname}\n </code>\n {routerState.location.maskedLocation ? (\n <code\n style={{\n color: theme.warning,\n fontWeight: 'bold',\n }}\n >\n {routerState.location.maskedLocation.pathname}\n </code>\n ) : null}\n </div>\n <div\n style={{\n padding: '.5em',\n background: theme.backgroundAlt,\n position: 'sticky',\n top: 0,\n zIndex: 1,\n display: 'flex',\n alignItems: 'center',\n gap: '.5rem',\n fontWeight: 'bold',\n }}\n >\n <button\n type=\"button\"\n onClick={() => {\n setShowMatches(false)\n }}\n disabled={!showMatches}\n style={{\n appearance: 'none',\n opacity: showMatches ? 0.5 : 1,\n border: 0,\n background: 'transparent',\n color: 'inherit',\n cursor: 'pointer',\n }}\n >\n Routes\n </button>\n /\n <button\n type=\"button\"\n onClick={() => {\n setShowMatches(true)\n }}\n disabled={showMatches}\n style={{\n appearance: 'none',\n opacity: !showMatches ? 0.5 : 1,\n border: 0,\n background: 'transparent',\n color: 'inherit',\n cursor: 'pointer',\n }}\n >\n Matches\n </button>\n </div>\n {!showMatches ? (\n <RouteComp\n route={router.routeTree}\n isRoot\n activeRouteId={activeRouteId}\n setActiveRouteId={setActiveRouteId}\n />\n ) : (\n <div>\n {(routerState.status === 'pending'\n ? routerState.pendingMatches ?? []\n : routerState.matches\n ).map((match, i) => {\n return (\n <div\n key={match.routeId || i}\n role=\"button\"\n aria-label={`Open match details for ${match.routeId}`}\n onClick={() =>\n setActiveRouteId(\n activeRouteId === match.routeId ? '' : match.routeId,\n )\n }\n style={{\n display: 'flex',\n borderBottom: `solid 1px ${theme.grayAlt}`,\n cursor: 'pointer',\n alignItems: 'center',\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 fontSize: '0.7rem',\n }}\n >\n {`${match.id}`}\n </Code>\n </div>\n )\n })}\n </div>\n )}\n </div>\n {/* {preloadMatches?.length ? (\n <div\n style={{\n flex: '1 1 auto',\n overflowY: 'auto',\n maxHeight: '50%',\n }}\n >\n <div\n style={{\n padding: '.5em',\n background: theme.backgroundAlt,\n position: 'sticky',\n top: 0,\n zIndex: 1,\n display: 'flex',\n alignItems: 'center',\n gap: '.5rem',\n fontWeight: 'bold',\n }}\n >\n Preloaded Matches\n </div>\n {preloadMatches.map((match) => {\n return (\n <div\n key={match.id}\n role=\"button\"\n aria-label={`Open match details for ${match.routeId}`}\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 alignItems: 'center',\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 fontSize: '0.7rem',\n }}\n >\n {`${match.id}`}\n </Code>\n </div>\n )\n })}\n </div>\n ) : null} */}\n </div>\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.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.updatedAt\n ? new Date(\n activeMatch.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.__store.setState(d => ({...d, status: 'pending'}))}\n style={{\n background: theme.gray,\n }}\n >\n Reload\n </Button>\n </div> */}\n {activeMatch.loaderData ? (\n <>\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 Loader Data\n </div>\n <div\n style={{\n padding: '.5em',\n }}\n >\n <Explorer\n label=\"loaderData\"\n value={activeMatch.loaderData}\n defaultExpanded={{}}\n />\n </div>\n </>\n ) : null}\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 {hasSearch ? (\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 fontWeight: 'bold',\n }}\n >\n Search Params\n </div>\n <div\n style={{\n padding: '.5em',\n }}\n >\n <Explorer\n value={routerState.location.search || {}}\n defaultExpanded={Object.keys(\n (routerState.location.search as {}) || {},\n ).reduce((obj: any, next) => {\n obj[next] = {}\n return obj\n }, {})}\n />\n </div>\n </div>\n ) : null}\n </Panel>\n </ThemeProvider>\n )\n})\n"],"names":["isServer","window","Logo","props","React","createElement","_extends","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","className","ThemeProvider","theme","TanStackRouterDevtoolsPanel","bottom","right","zIndex","width","maxHeight","boxShadow","borderTop","gray","transformOrigin","transition","opacity","pointerEvents","transform","e","Button","type","margin","left","appearance","background","border","padding","cursor","top","RouteComp","route","isRoot","activeRouteId","setActiveRouteId","routerState","useRouterState","matches","status","pendingMatches","match","find","d","routeId","id","role","borderBottom","grayAlt","undefined","flex","justifyContent","borderRadius","getRouteStatusColor","Code","paddingLeft","path","trimPath","children","length","marginLeft","borderLeft","sort","a","b","rank","map","r","key","forwardRef","userRouter","useRouter","invariant","showMatches","setShowMatches","activeMatch","useMemo","hasSearch","Object","keys","location","search","Panel","dangerouslySetInnerHTML","__html","backgroundAlt","marginBottom","onMouseDown","minHeight","overflow","borderRight","gap","overflowY","Explorer","label","value","defaultExpanded","state","context","filterSubEntries","subEntries","filter","maskedLocation","warning","pathname","disabled","routeTree","i","getStatusColor","ActivePanel","JSON","stringify","updatedAt","Date","toLocaleTimeString","loaderData","Fragment","reduce","obj","next"],"mappings":"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"}
@@ -10,7 +10,7 @@
10
10
  */
11
11
  import * as React from 'react';
12
12
  import React__default from 'react';
13
- import { useRouter, invariant, trimPath } from '@tanstack/react-router';
13
+ import { useRouter, useRouterState, invariant, trimPath } from '@tanstack/react-router';
14
14
 
15
15
  function _extends() {
16
16
  _extends = Object.assign ? Object.assign.bind() : function (target) {
@@ -683,9 +683,9 @@ function RouteComp({
683
683
  activeRouteId,
684
684
  setActiveRouteId
685
685
  }) {
686
- const router = useRouter();
687
- const matches = router.state.status === 'pending' ? router.state.pendingMatches ?? [] : router.state.matches;
688
- const match = router.state.matches.find(d => d.routeId === route.id);
686
+ const routerState = useRouterState();
687
+ const matches = routerState.status === 'pending' ? routerState.pendingMatches ?? [] : routerState.matches;
688
+ const match = routerState.matches.find(d => d.routeId === route.id);
689
689
  return /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement("div", {
690
690
  role: "button",
691
691
  "aria-label": `Open match details for ${route.id}`,
@@ -752,7 +752,8 @@ const TanStackRouterDevtoolsPanel = /*#__PURE__*/React__default.forwardRef(funct
752
752
  ...panelProps
753
753
  } = props;
754
754
  const router = useRouter();
755
- const matches = [...(router.state.pendingMatches ?? []), ...router.state.matches];
755
+ const routerState = useRouterState();
756
+ const matches = [...(routerState.pendingMatches ?? []), ...routerState.matches];
756
757
  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.');
757
758
 
758
759
  // useStore(router.__store)
@@ -760,7 +761,7 @@ const TanStackRouterDevtoolsPanel = /*#__PURE__*/React__default.forwardRef(funct
760
761
  const [showMatches, setShowMatches] = useLocalStorage('tanstackRouterDevtoolsShowMatches', true);
761
762
  const [activeRouteId, setActiveRouteId] = useLocalStorage('tanstackRouterDevtoolsActiveRouteId', '');
762
763
  const activeMatch = React__default.useMemo(() => matches.find(d => d.routeId === activeRouteId), [matches, activeRouteId]);
763
- const hasSearch = Object.keys(router.state.location.search || {}).length;
764
+ const hasSearch = Object.keys(routerState.location.search || {}).length;
764
765
 
765
766
  // const preloadMatches = matches.filter((match) => {
766
767
  // return (
@@ -916,7 +917,7 @@ const TanStackRouterDevtoolsPanel = /*#__PURE__*/React__default.forwardRef(funct
916
917
  gap: '.5rem',
917
918
  fontWeight: 'bold'
918
919
  }
919
- }, "Pathname", ' ', router.state.location.maskedLocation ? /*#__PURE__*/React__default.createElement("div", {
920
+ }, "Pathname", ' ', routerState.location.maskedLocation ? /*#__PURE__*/React__default.createElement("div", {
920
921
  style: {
921
922
  padding: '.1rem .5rem',
922
923
  background: defaultTheme.warning,
@@ -934,12 +935,12 @@ const TanStackRouterDevtoolsPanel = /*#__PURE__*/React__default.forwardRef(funct
934
935
  style: {
935
936
  opacity: 0.6
936
937
  }
937
- }, router.state.location.pathname), router.state.location.maskedLocation ? /*#__PURE__*/React__default.createElement("code", {
938
+ }, routerState.location.pathname), routerState.location.maskedLocation ? /*#__PURE__*/React__default.createElement("code", {
938
939
  style: {
939
940
  color: defaultTheme.warning,
940
941
  fontWeight: 'bold'
941
942
  }
942
- }, router.state.location.maskedLocation.pathname) : null), /*#__PURE__*/React__default.createElement("div", {
943
+ }, routerState.location.maskedLocation.pathname) : null), /*#__PURE__*/React__default.createElement("div", {
943
944
  style: {
944
945
  padding: '.5em',
945
946
  background: defaultTheme.backgroundAlt,
@@ -984,7 +985,7 @@ const TanStackRouterDevtoolsPanel = /*#__PURE__*/React__default.forwardRef(funct
984
985
  isRoot: true,
985
986
  activeRouteId: activeRouteId,
986
987
  setActiveRouteId: setActiveRouteId
987
- }) : /*#__PURE__*/React__default.createElement("div", null, (router.state.status === 'pending' ? router.state.pendingMatches ?? [] : router.state.matches).map((match, i) => {
988
+ }) : /*#__PURE__*/React__default.createElement("div", null, (routerState.status === 'pending' ? routerState.pendingMatches ?? [] : routerState.matches).map((match, i) => {
988
989
  return /*#__PURE__*/React__default.createElement("div", {
989
990
  key: match.routeId || i,
990
991
  role: "button",
@@ -1100,8 +1101,8 @@ const TanStackRouterDevtoolsPanel = /*#__PURE__*/React__default.forwardRef(funct
1100
1101
  padding: '.5em'
1101
1102
  }
1102
1103
  }, /*#__PURE__*/React__default.createElement(Explorer, {
1103
- value: router.state.location.search || {},
1104
- defaultExpanded: Object.keys(router.state.location.search || {}).reduce((obj, next) => {
1104
+ value: routerState.location.search || {},
1105
+ defaultExpanded: Object.keys(routerState.location.search || {}).reduce((obj, next) => {
1105
1106
  obj[next] = {};
1106
1107
  return obj;
1107
1108
  }, {})