@tanstack/router-devtools 0.0.1-beta.174 → 0.0.1-beta.175

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/useLocalStorage.ts","../../src/theme.tsx","../../src/useMediaQuery.ts","../../src/utils.ts","../../src/styledComponents.ts","../../src/Explorer.tsx","../../src/devtools.tsx"],"sourcesContent":["import React from 'react'\n\nconst getItem = (key: string): unknown => {\n try {\n const itemValue = localStorage.getItem(key)\n if (typeof itemValue === 'string') {\n return JSON.parse(itemValue)\n }\n return undefined\n } catch {\n return undefined\n }\n}\n\nexport default function useLocalStorage<T>(\n key: string,\n defaultValue: T | undefined,\n): [T | undefined, (newVal: T | ((prevVal: T) => T)) => void] {\n const [value, setValue] = React.useState<T>()\n\n React.useEffect(() => {\n const initialValue = getItem(key) as T | undefined\n\n if (typeof initialValue === 'undefined' || initialValue === null) {\n setValue(\n typeof defaultValue === 'function' ? defaultValue() : defaultValue,\n )\n } else {\n setValue(initialValue)\n }\n }, [defaultValue, key])\n\n const setter = React.useCallback(\n (updater: any) => {\n setValue((old) => {\n let newVal = updater\n\n if (typeof updater == 'function') {\n newVal = updater(old)\n }\n try {\n localStorage.setItem(key, JSON.stringify(newVal))\n } catch {}\n\n return newVal\n })\n },\n [key],\n )\n\n return [value, setter]\n}\n","import React from 'react'\n\nexport const defaultTheme = {\n background: '#0b1521',\n backgroundAlt: '#132337',\n foreground: 'white',\n gray: '#3f4e60',\n grayAlt: '#222e3e',\n inputBackgroundColor: '#fff',\n inputTextColor: '#000',\n success: '#00ab52',\n danger: '#ff0085',\n active: '#006bff',\n warning: '#ffb200',\n} as const\n\nexport type Theme = typeof defaultTheme\ninterface ProviderProps {\n theme: Theme\n children?: React.ReactNode\n}\n\nconst ThemeContext = React.createContext(defaultTheme)\n\nexport function ThemeProvider({ theme, ...rest }: ProviderProps) {\n return <ThemeContext.Provider value={theme} {...rest} />\n}\n\nexport function useTheme() {\n return React.useContext(ThemeContext)\n}\n","import React from 'react'\n\nexport default function useMediaQuery(query: string): boolean | undefined {\n // Keep track of the preference in state, start with the current match\n const [isMatch, setIsMatch] = React.useState(() => {\n if (typeof window !== 'undefined') {\n return window.matchMedia && window.matchMedia(query).matches\n }\n return\n })\n\n // Watch for changes\n React.useEffect(() => {\n if (typeof window !== 'undefined') {\n if (!window.matchMedia) {\n return\n }\n\n // Create a matcher\n const matcher = window.matchMedia(query)\n\n // Create our handler\n const onChange = ({ matches }: { matches: boolean }) =>\n setIsMatch(matches)\n\n // Listen for changes\n matcher.addListener(onChange)\n\n return () => {\n // Stop listening for changes\n matcher.removeListener(onChange)\n }\n }\n\n return\n }, [isMatch, query, setIsMatch])\n\n return isMatch\n}\n","import React from 'react'\nimport {\n AnyRootRoute,\n AnyRoute,\n AnyRouteMatch,\n AnyRouter,\n} from '@tanstack/react-router'\n\nimport { Theme, useTheme } from './theme'\nimport useMediaQuery from './useMediaQuery'\n\nexport const isServer = typeof window === 'undefined'\n\ntype StyledComponent<T> = T extends 'button'\n ? React.DetailedHTMLProps<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n >\n : T extends 'input'\n ? React.DetailedHTMLProps<\n React.InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n >\n : T extends 'select'\n ? React.DetailedHTMLProps<\n React.SelectHTMLAttributes<HTMLSelectElement>,\n HTMLSelectElement\n >\n : T extends keyof HTMLElementTagNameMap\n ? React.HTMLAttributes<HTMLElementTagNameMap[T]>\n : never\n\nexport function getStatusColor(\n match: AnyRouteMatch,\n theme: Theme,\n router: AnyRouter,\n) {\n return match.status === 'pending' || match.isFetching\n ? theme.active\n : router.getIsInvalid({\n matchId: match.id,\n })\n ? theme.warning\n : match.status === 'error'\n ? theme.danger\n : match.status === 'success'\n ? theme.success\n : theme.gray\n}\n\nexport function getRouteStatusColor(\n matches: AnyRouteMatch[],\n route: AnyRoute | AnyRootRoute,\n theme: Theme,\n router: AnyRouter,\n) {\n const found = matches.find((d) => d.routeId === route.id)\n if (!found) return theme.gray\n return getStatusColor(found, theme, router)\n}\n\ntype Styles =\n | React.CSSProperties\n | ((props: Record<string, any>, theme: Theme) => React.CSSProperties)\n\nexport function styled<T extends keyof HTMLElementTagNameMap>(\n type: T,\n newStyles: Styles,\n queries: Record<string, Styles> = {},\n) {\n return React.forwardRef<HTMLElementTagNameMap[T], StyledComponent<T>>(\n ({ style, ...rest }, ref) => {\n const theme = useTheme()\n\n const mediaStyles = Object.entries(queries).reduce(\n (current, [key, value]) => {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return useMediaQuery(key)\n ? {\n ...current,\n ...(typeof value === 'function' ? value(rest, theme) : value),\n }\n : current\n },\n {},\n )\n\n return React.createElement(type, {\n ...rest,\n style: {\n ...(typeof newStyles === 'function'\n ? newStyles(rest, theme)\n : newStyles),\n ...style,\n ...mediaStyles,\n },\n ref,\n })\n },\n )\n}\n\nexport function useIsMounted() {\n const mountedRef = React.useRef(false)\n const isMounted = React.useCallback(() => mountedRef.current, [])\n\n React[isServer ? 'useEffect' : 'useLayoutEffect'](() => {\n mountedRef.current = true\n return () => {\n mountedRef.current = false\n }\n }, [])\n\n return isMounted\n}\n\n/**\n * Displays a string regardless the type of the data\n * @param {unknown} value Value to be stringified\n */\nexport const displayValue = (value: unknown) => {\n const name = Object.getOwnPropertyNames(Object(value))\n const newValue = typeof value === 'bigint' ? `${value.toString()}n` : value\n\n return JSON.stringify(newValue, name)\n}\n\n/**\n * This hook is a safe useState version which schedules state updates in microtasks\n * to prevent updating a component state while React is rendering different components\n * or when the component is not mounted anymore.\n */\nexport function useSafeState<T>(initialState: T): [T, (value: T) => void] {\n const isMounted = useIsMounted()\n const [state, setState] = React.useState(initialState)\n\n const safeSetState = React.useCallback(\n (value: T) => {\n scheduleMicrotask(() => {\n if (isMounted()) {\n setState(value)\n }\n })\n },\n [isMounted],\n )\n\n return [state, safeSetState]\n}\n\n/**\n * Schedules a microtask.\n * This can be useful to schedule state updates after rendering.\n */\nfunction scheduleMicrotask(callback: () => void) {\n Promise.resolve()\n .then(callback)\n .catch((error) =>\n setTimeout(() => {\n throw error\n }),\n )\n}\n\nexport function multiSortBy<T>(\n arr: T[],\n accessors: ((item: T) => any)[] = [(d) => d],\n): T[] {\n return arr\n .map((d, i) => [d, i] as const)\n .sort(([a, ai], [b, bi]) => {\n for (const accessor of accessors) {\n const ao = accessor(a)\n const bo = accessor(b)\n\n if (typeof ao === 'undefined') {\n if (typeof bo === 'undefined') {\n continue\n }\n return 1\n }\n\n if (ao === bo) {\n continue\n }\n\n return ao > bo ? 1 : -1\n }\n\n return ai - bi\n })\n .map(([d]) => d)\n}\n","import { styled } from './utils'\n\nexport const Panel = styled(\n 'div',\n (_props, theme) => ({\n fontSize: 'clamp(12px, 1.5vw, 14px)',\n fontFamily: `sans-serif`,\n display: 'flex',\n backgroundColor: theme.background,\n color: theme.foreground,\n }),\n {\n '(max-width: 700px)': {\n flexDirection: 'column',\n },\n '(max-width: 600px)': {\n fontSize: '.9em',\n // flexDirection: 'column',\n },\n },\n)\n\nexport const ActivePanel = styled(\n 'div',\n () => ({\n flex: '1 1 500px',\n display: 'flex',\n flexDirection: 'column',\n overflow: 'auto',\n height: '100%',\n }),\n {\n '(max-width: 700px)': (_props, theme) => ({\n borderTop: `2px solid ${theme.gray}`,\n }),\n },\n)\n\nexport const Button = styled('button', (props, theme) => ({\n appearance: 'none',\n fontSize: '.9em',\n fontWeight: 'bold',\n background: theme.gray,\n border: '0',\n borderRadius: '.3em',\n color: 'white',\n padding: '.5em',\n opacity: props.disabled ? '.5' : undefined,\n cursor: 'pointer',\n}))\n\n// export const QueryKeys = styled('span', {\n// display: 'inline-block',\n// fontSize: '0.9em',\n// })\n\n// export const QueryKey = styled('span', {\n// display: 'inline-flex',\n// alignItems: 'center',\n// padding: '.2em .4em',\n// fontWeight: 'bold',\n// textShadow: '0 0 10px black',\n// borderRadius: '.2em',\n// })\n\nexport const Code = styled('code', {\n fontSize: '.9em',\n})\n\nexport const Input = styled('input', (_props, theme) => ({\n backgroundColor: theme.inputBackgroundColor,\n border: 0,\n borderRadius: '.2em',\n color: theme.inputTextColor,\n fontSize: '.9em',\n lineHeight: `1.3`,\n padding: '.3em .4em',\n}))\n\nexport const Select = styled(\n 'select',\n (_props, theme) => ({\n display: `inline-block`,\n fontSize: `.9em`,\n fontFamily: `sans-serif`,\n fontWeight: 'normal',\n lineHeight: `1.3`,\n padding: `.3em 1.5em .3em .5em`,\n height: 'auto',\n border: 0,\n borderRadius: `.2em`,\n appearance: `none`,\n WebkitAppearance: 'none',\n backgroundColor: theme.inputBackgroundColor,\n backgroundImage: `url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='100' height='100' fill='%23444444'><polygon points='0,25 100,25 50,75'/></svg>\")`,\n backgroundRepeat: `no-repeat`,\n backgroundPosition: `right .55em center`,\n backgroundSize: `.65em auto, 100%`,\n color: theme.inputTextColor,\n }),\n {\n '(max-width: 500px)': {\n display: 'none',\n },\n },\n)\n","import * as React from 'react'\n\nimport { displayValue, styled } from './utils'\n\nexport const Entry = styled('div', {\n fontFamily: 'Menlo, monospace',\n fontSize: '.7rem',\n lineHeight: '1.7',\n outline: 'none',\n wordBreak: 'break-word',\n})\n\nexport const Label = styled('span', {\n color: 'white',\n})\n\nexport const LabelButton = styled('button', {\n cursor: 'pointer',\n color: 'white',\n})\n\nexport const ExpandButton = styled('button', {\n cursor: 'pointer',\n color: 'inherit',\n font: 'inherit',\n outline: 'inherit',\n background: 'transparent',\n border: 'none',\n padding: 0,\n})\n\nexport const Value = styled('span', (_props, theme) => ({\n color: theme.danger,\n}))\n\nexport const SubEntries = styled('div', {\n marginLeft: '.1em',\n paddingLeft: '1em',\n borderLeft: '2px solid rgba(0,0,0,.15)',\n})\n\nexport const Info = styled('span', {\n color: 'grey',\n fontSize: '.7em',\n})\n\ntype ExpanderProps = {\n expanded: boolean\n style?: React.CSSProperties\n}\n\nexport const Expander = ({ expanded, style = {} }: ExpanderProps) => (\n <span\n style={{\n display: 'inline-block',\n transition: 'all .1s ease',\n transform: `rotate(${expanded ? 90 : 0}deg) ${style.transform || ''}`,\n ...style,\n }}\n >\n ▶\n </span>\n)\n\ntype Entry = {\n label: string\n}\n\ntype RendererProps = {\n handleEntry: HandleEntryFn\n label?: React.ReactNode\n value: unknown\n subEntries: Entry[]\n subEntryPages: Entry[][]\n type: string\n expanded: boolean\n toggleExpanded: () => void\n pageSize: number\n renderer?: Renderer\n filterSubEntries?: (subEntries: Property[]) => Property[]\n}\n\n/**\n * Chunk elements in the array by size\n *\n * when the array cannot be chunked evenly by size, the last chunk will be\n * filled with the remaining elements\n *\n * @example\n * chunkArray(['a','b', 'c', 'd', 'e'], 2) // returns [['a','b'], ['c', 'd'], ['e']]\n */\nexport function chunkArray<T>(array: T[], size: number): T[][] {\n if (size < 1) return []\n let i = 0\n const result: T[][] = []\n while (i < array.length) {\n result.push(array.slice(i, i + size))\n i = i + size\n }\n return result\n}\n\ntype Renderer = (props: RendererProps) => JSX.Element\n\nexport const DefaultRenderer: Renderer = ({\n handleEntry,\n label,\n value,\n subEntries = [],\n subEntryPages = [],\n type,\n expanded = false,\n toggleExpanded,\n pageSize,\n renderer,\n}) => {\n const [expandedPages, setExpandedPages] = React.useState<number[]>([])\n const [valueSnapshot, setValueSnapshot] = React.useState(undefined)\n\n const refreshValueSnapshot = () => {\n setValueSnapshot((value as () => any)())\n }\n\n return (\n <Entry>\n {subEntryPages.length ? (\n <>\n <ExpandButton onClick={() => toggleExpanded()}>\n <Expander expanded={expanded} /> {label}{' '}\n <Info>\n {String(type).toLowerCase() === 'iterable' ? '(Iterable) ' : ''}\n {subEntries.length} {subEntries.length > 1 ? `items` : `item`}\n </Info>\n </ExpandButton>\n {expanded ? (\n subEntryPages.length === 1 ? (\n <SubEntries>\n {subEntries.map((entry, index) => handleEntry(entry))}\n </SubEntries>\n ) : (\n <SubEntries>\n {subEntryPages.map((entries, index) => (\n <div key={index}>\n <Entry>\n <LabelButton\n onClick={() =>\n setExpandedPages((old) =>\n old.includes(index)\n ? old.filter((d) => d !== index)\n : [...old, index],\n )\n }\n >\n <Expander expanded={expanded} /> [{index * pageSize} ...{' '}\n {index * pageSize + pageSize - 1}]\n </LabelButton>\n {expandedPages.includes(index) ? (\n <SubEntries>\n {entries.map((entry) => handleEntry(entry))}\n </SubEntries>\n ) : null}\n </Entry>\n </div>\n ))}\n </SubEntries>\n )\n ) : null}\n </>\n ) : type === 'function' ? (\n <>\n <Explorer\n renderer={renderer}\n label={\n <button\n onClick={refreshValueSnapshot}\n style={{\n appearance: 'none',\n border: '0',\n background: 'transparent',\n }}\n >\n <Label>{label}</Label> 🔄{' '}\n </button>\n }\n value={valueSnapshot}\n defaultExpanded={{}}\n />\n </>\n ) : (\n <>\n <Label>{label}:</Label> <Value>{displayValue(value)}</Value>\n </>\n )}\n </Entry>\n )\n}\n\ntype HandleEntryFn = (entry: Entry) => JSX.Element\n\ntype ExplorerProps = Partial<RendererProps> & {\n renderer?: Renderer\n defaultExpanded?: true | Record<string, boolean>\n}\n\ntype Property = {\n defaultExpanded?: boolean | Record<string, boolean>\n label: string\n value: unknown\n}\n\nfunction isIterable(x: any): x is Iterable<unknown> {\n return Symbol.iterator in x\n}\n\nexport default function Explorer({\n value,\n defaultExpanded,\n renderer = DefaultRenderer,\n pageSize = 100,\n filterSubEntries,\n ...rest\n}: ExplorerProps) {\n const [expanded, setExpanded] = React.useState(Boolean(defaultExpanded))\n const toggleExpanded = React.useCallback(() => setExpanded((old) => !old), [])\n\n let type: string = typeof value\n let subEntries: Property[] = []\n\n const makeProperty = (sub: { label: string; value: unknown }): Property => {\n const subDefaultExpanded =\n defaultExpanded === true\n ? { [sub.label]: true }\n : defaultExpanded?.[sub.label]\n return {\n ...sub,\n defaultExpanded: subDefaultExpanded,\n }\n }\n\n if (Array.isArray(value)) {\n type = 'array'\n subEntries = value.map((d, i) =>\n makeProperty({\n label: i.toString(),\n value: d,\n }),\n )\n } else if (\n value !== null &&\n typeof value === 'object' &&\n isIterable(value) &&\n typeof value[Symbol.iterator] === 'function'\n ) {\n type = 'Iterable'\n subEntries = Array.from(value, (val, i) =>\n makeProperty({\n label: i.toString(),\n value: val,\n }),\n )\n } else if (typeof value === 'object' && value !== null) {\n type = 'object'\n subEntries = Object.entries(value).map(([key, val]) =>\n makeProperty({\n label: key,\n value: val,\n }),\n )\n }\n\n subEntries = filterSubEntries ? filterSubEntries(subEntries) : subEntries\n\n const subEntryPages = chunkArray(subEntries, pageSize)\n\n return renderer({\n handleEntry: (entry) => (\n <Explorer\n key={entry.label}\n value={value}\n renderer={renderer}\n filterSubEntries={filterSubEntries}\n {...rest}\n {...entry}\n />\n ),\n type,\n subEntries,\n subEntryPages,\n value,\n expanded,\n toggleExpanded,\n pageSize,\n ...rest,\n })\n}\n","import React from 'react'\nimport {\n last,\n routerContext,\n invariant,\n AnyRouter,\n useStore,\n Route,\n AnyRoute,\n AnyRootRoute,\n RouteMatch,\n trimPath,\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 router,\n activeRouteId,\n activeMatchId,\n setActiveRouteId,\n setActiveMatchId,\n}: {\n route: AnyRootRoute | AnyRoute\n isRoot?: boolean\n router: AnyRouter\n activeRouteId: string | undefined\n activeMatchId: string | undefined\n setActiveRouteId: (id: string) => void\n setActiveMatchId: (id: string) => void\n}) {\n const matches = Object.values(router.state.matchesById)\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 setActiveMatchId(match.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, router),\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 router={router}\n activeRouteId={activeRouteId}\n activeMatchId={activeMatchId}\n setActiveRouteId={setActiveRouteId}\n setActiveMatchId={setActiveMatchId}\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 routerContextValue = React.useContext(routerContext)\n const router = userRouter ?? routerContextValue\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 const [activeMatchId, setActiveMatchId] = useLocalStorage(\n 'tanstackRouterDevtoolsActiveMatchId',\n '',\n )\n\n const activeMatch = React.useMemo(\n () =>\n router.state.matchesById[activeRouteId as any] ||\n router.state.matchesById[activeMatchId as any],\n [activeRouteId, activeMatchId],\n )\n\n const hasSearch = Object.keys(router.state.location.search || {}).length\n\n const preloadMatches = Object.values(router.state.matchesById).filter(\n (match) => {\n return (\n !router.state.matchIds.includes(match.id) &&\n !router.state.pendingMatchIds.includes(match.id)\n )\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 }}\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 router={router}\n isRoot\n activeRouteId={activeRouteId}\n activeMatchId={activeMatchId}\n setActiveRouteId={setActiveRouteId}\n setActiveMatchId={setActiveMatchId}\n />\n ) : (\n <div>\n {router.state.matches.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, router),\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 }}\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, router),\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 <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 }}\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":["getItem","key","itemValue","localStorage","JSON","parse","undefined","useLocalStorage","defaultValue","value","setValue","React","useState","useEffect","initialValue","setter","useCallback","updater","old","newVal","setItem","stringify","defaultTheme","background","backgroundAlt","foreground","gray","grayAlt","inputBackgroundColor","inputTextColor","success","danger","active","warning","ThemeContext","createContext","ThemeProvider","theme","rest","createElement","Provider","_extends","useTheme","useContext","useMediaQuery","query","isMatch","setIsMatch","window","matchMedia","matches","matcher","onChange","addListener","removeListener","isServer","getStatusColor","match","router","status","isFetching","getIsInvalid","matchId","id","getRouteStatusColor","route","found","find","d","routeId","styled","type","newStyles","queries","forwardRef","style","ref","mediaStyles","Object","entries","reduce","current","useIsMounted","mountedRef","useRef","isMounted","displayValue","name","getOwnPropertyNames","newValue","toString","useSafeState","initialState","state","setState","safeSetState","scheduleMicrotask","callback","Promise","resolve","then","catch","error","setTimeout","Panel","_props","fontSize","fontFamily","display","backgroundColor","color","flexDirection","ActivePanel","flex","overflow","height","(max-width: 700px)","borderTop","Button","props","appearance","fontWeight","border","borderRadius","padding","opacity","disabled","cursor","Code","Entry","lineHeight","outline","wordBreak","Label","LabelButton","ExpandButton","font","Value","SubEntries","marginLeft","paddingLeft","borderLeft","Info","Expander","expanded","transition","transform","chunkArray","array","size","i","result","length","push","slice","DefaultRenderer","handleEntry","label","subEntries","subEntryPages","toggleExpanded","pageSize","renderer","expandedPages","setExpandedPages","valueSnapshot","setValueSnapshot","refreshValueSnapshot","Fragment","onClick","String","toLowerCase","map","entry","index","includes","filter","Explorer","defaultExpanded","isIterable","x","Symbol","iterator","filterSubEntries","setExpanded","Boolean","makeProperty","sub","subDefaultExpanded","Array","isArray","from","val","Logo","alignItems","letterSpacing","backgroundImage","WebkitBackgroundClip","marginRight","TanStackRouterDevtools","initialIsOpen","panelProps","closeButtonProps","toggleButtonProps","position","containerElement","Container","rootRef","panelRef","isOpen","setIsOpen","devtoolsHeight","setDevtoolsHeight","isResolvedOpen","setIsResolvedOpen","isResizing","setIsResizing","handleDragStart","panelElement","startEvent","button","dragInfo","originalHeight","getBoundingClientRect","pageY","run","moveEvent","delta","newHeight","unsub","document","removeEventListener","addEventListener","handlePanelTransitionStart","visibility","handlePanelTransitionEnd","previousValue","parentElement","paddingBottom","containerHeight","panelStyle","otherPanelProps","closeButtonStyle","onCloseClick","otherCloseButtonProps","toggleButtonStyle","onToggleClick","otherToggleButtonProps","className","TanStackRouterDevtoolsPanel","bottom","right","zIndex","width","maxHeight","boxShadow","transformOrigin","pointerEvents","e","margin","left","top","RouteComp","isRoot","activeRouteId","activeMatchId","setActiveRouteId","setActiveMatchId","values","matchesById","role","borderBottom","justifyContent","path","trimPath","children","sort","a","b","rank","r","userRouter","routerContextValue","routerContext","invariant","useStore","__store","showMatches","setShowMatches","activeMatch","useMemo","hasSearch","keys","location","search","preloadMatches","matchIds","pendingMatchIds","interval","setInterval","cleanMatches","clearInterval","dangerouslySetInnerHTML","__html","marginBottom","onMouseDown","minHeight","borderRight","gap","overflowY","context","routeTree","updatedAt","Date","toLocaleTimeString","obj","next"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../src/useLocalStorage.ts","../../src/theme.tsx","../../src/useMediaQuery.ts","../../src/utils.ts","../../src/styledComponents.ts","../../src/Explorer.tsx","../../src/devtools.tsx"],"sourcesContent":["import React from 'react'\n\nconst getItem = (key: string): unknown => {\n try {\n const itemValue = localStorage.getItem(key)\n if (typeof itemValue === 'string') {\n return JSON.parse(itemValue)\n }\n return undefined\n } catch {\n return undefined\n }\n}\n\nexport default function useLocalStorage<T>(\n key: string,\n defaultValue: T | undefined,\n): [T | undefined, (newVal: T | ((prevVal: T) => T)) => void] {\n const [value, setValue] = React.useState<T>()\n\n React.useEffect(() => {\n const initialValue = getItem(key) as T | undefined\n\n if (typeof initialValue === 'undefined' || initialValue === null) {\n setValue(\n typeof defaultValue === 'function' ? defaultValue() : defaultValue,\n )\n } else {\n setValue(initialValue)\n }\n }, [defaultValue, key])\n\n const setter = React.useCallback(\n (updater: any) => {\n setValue((old) => {\n let newVal = updater\n\n if (typeof updater == 'function') {\n newVal = updater(old)\n }\n try {\n localStorage.setItem(key, JSON.stringify(newVal))\n } catch {}\n\n return newVal\n })\n },\n [key],\n )\n\n return [value, setter]\n}\n","import React from 'react'\n\nexport const defaultTheme = {\n background: '#0b1521',\n backgroundAlt: '#132337',\n foreground: 'white',\n gray: '#3f4e60',\n grayAlt: '#222e3e',\n inputBackgroundColor: '#fff',\n inputTextColor: '#000',\n success: '#00ab52',\n danger: '#ff0085',\n active: '#006bff',\n warning: '#ffb200',\n} as const\n\nexport type Theme = typeof defaultTheme\ninterface ProviderProps {\n theme: Theme\n children?: React.ReactNode\n}\n\nconst ThemeContext = React.createContext(defaultTheme)\n\nexport function ThemeProvider({ theme, ...rest }: ProviderProps) {\n return <ThemeContext.Provider value={theme} {...rest} />\n}\n\nexport function useTheme() {\n return React.useContext(ThemeContext)\n}\n","import React from 'react'\n\nexport default function useMediaQuery(query: string): boolean | undefined {\n // Keep track of the preference in state, start with the current match\n const [isMatch, setIsMatch] = React.useState(() => {\n if (typeof window !== 'undefined') {\n return window.matchMedia && window.matchMedia(query).matches\n }\n return\n })\n\n // Watch for changes\n React.useEffect(() => {\n if (typeof window !== 'undefined') {\n if (!window.matchMedia) {\n return\n }\n\n // Create a matcher\n const matcher = window.matchMedia(query)\n\n // Create our handler\n const onChange = ({ matches }: { matches: boolean }) =>\n setIsMatch(matches)\n\n // Listen for changes\n matcher.addListener(onChange)\n\n return () => {\n // Stop listening for changes\n matcher.removeListener(onChange)\n }\n }\n\n return\n }, [isMatch, query, setIsMatch])\n\n return isMatch\n}\n","import React from 'react'\nimport {\n AnyRootRoute,\n AnyRoute,\n AnyRouteMatch,\n AnyRouter,\n isMatchInvalid,\n} from '@tanstack/react-router'\n\nimport { Theme, useTheme } from './theme'\nimport useMediaQuery from './useMediaQuery'\n\nexport const isServer = typeof window === 'undefined'\n\ntype StyledComponent<T> = T extends 'button'\n ? React.DetailedHTMLProps<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n >\n : T extends 'input'\n ? React.DetailedHTMLProps<\n React.InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n >\n : T extends 'select'\n ? React.DetailedHTMLProps<\n React.SelectHTMLAttributes<HTMLSelectElement>,\n HTMLSelectElement\n >\n : T extends keyof HTMLElementTagNameMap\n ? React.HTMLAttributes<HTMLElementTagNameMap[T]>\n : never\n\nexport function getStatusColor(\n match: AnyRouteMatch,\n theme: Theme,\n router: AnyRouter,\n) {\n return match.status === 'pending' || match.isFetching\n ? theme.active\n : isMatchInvalid(match)\n ? theme.warning\n : match.status === 'error'\n ? theme.danger\n : match.status === 'success'\n ? theme.success\n : theme.gray\n}\n\nexport function getRouteStatusColor(\n matches: AnyRouteMatch[],\n route: AnyRoute | AnyRootRoute,\n theme: Theme,\n router: AnyRouter,\n) {\n const found = matches.find((d) => d.routeId === route.id)\n if (!found) return theme.gray\n return getStatusColor(found, theme, router)\n}\n\ntype Styles =\n | React.CSSProperties\n | ((props: Record<string, any>, theme: Theme) => React.CSSProperties)\n\nexport function styled<T extends keyof HTMLElementTagNameMap>(\n type: T,\n newStyles: Styles,\n queries: Record<string, Styles> = {},\n) {\n return React.forwardRef<HTMLElementTagNameMap[T], StyledComponent<T>>(\n ({ style, ...rest }, ref) => {\n const theme = useTheme()\n\n const mediaStyles = Object.entries(queries).reduce(\n (current, [key, value]) => {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return useMediaQuery(key)\n ? {\n ...current,\n ...(typeof value === 'function' ? value(rest, theme) : value),\n }\n : current\n },\n {},\n )\n\n return React.createElement(type, {\n ...rest,\n style: {\n ...(typeof newStyles === 'function'\n ? newStyles(rest, theme)\n : newStyles),\n ...style,\n ...mediaStyles,\n },\n ref,\n })\n },\n )\n}\n\nexport function useIsMounted() {\n const mountedRef = React.useRef(false)\n const isMounted = React.useCallback(() => mountedRef.current, [])\n\n React[isServer ? 'useEffect' : 'useLayoutEffect'](() => {\n mountedRef.current = true\n return () => {\n mountedRef.current = false\n }\n }, [])\n\n return isMounted\n}\n\n/**\n * Displays a string regardless the type of the data\n * @param {unknown} value Value to be stringified\n */\nexport const displayValue = (value: unknown) => {\n const name = Object.getOwnPropertyNames(Object(value))\n const newValue = typeof value === 'bigint' ? `${value.toString()}n` : value\n\n return JSON.stringify(newValue, name)\n}\n\n/**\n * This hook is a safe useState version which schedules state updates in microtasks\n * to prevent updating a component state while React is rendering different components\n * or when the component is not mounted anymore.\n */\nexport function useSafeState<T>(initialState: T): [T, (value: T) => void] {\n const isMounted = useIsMounted()\n const [state, setState] = React.useState(initialState)\n\n const safeSetState = React.useCallback(\n (value: T) => {\n scheduleMicrotask(() => {\n if (isMounted()) {\n setState(value)\n }\n })\n },\n [isMounted],\n )\n\n return [state, safeSetState]\n}\n\n/**\n * Schedules a microtask.\n * This can be useful to schedule state updates after rendering.\n */\nfunction scheduleMicrotask(callback: () => void) {\n Promise.resolve()\n .then(callback)\n .catch((error) =>\n setTimeout(() => {\n throw error\n }),\n )\n}\n\nexport function multiSortBy<T>(\n arr: T[],\n accessors: ((item: T) => any)[] = [(d) => d],\n): T[] {\n return arr\n .map((d, i) => [d, i] as const)\n .sort(([a, ai], [b, bi]) => {\n for (const accessor of accessors) {\n const ao = accessor(a)\n const bo = accessor(b)\n\n if (typeof ao === 'undefined') {\n if (typeof bo === 'undefined') {\n continue\n }\n return 1\n }\n\n if (ao === bo) {\n continue\n }\n\n return ao > bo ? 1 : -1\n }\n\n return ai - bi\n })\n .map(([d]) => d)\n}\n","import { styled } from './utils'\n\nexport const Panel = styled(\n 'div',\n (_props, theme) => ({\n fontSize: 'clamp(12px, 1.5vw, 14px)',\n fontFamily: `sans-serif`,\n display: 'flex',\n backgroundColor: theme.background,\n color: theme.foreground,\n }),\n {\n '(max-width: 700px)': {\n flexDirection: 'column',\n },\n '(max-width: 600px)': {\n fontSize: '.9em',\n // flexDirection: 'column',\n },\n },\n)\n\nexport const ActivePanel = styled(\n 'div',\n () => ({\n flex: '1 1 500px',\n display: 'flex',\n flexDirection: 'column',\n overflow: 'auto',\n height: '100%',\n }),\n {\n '(max-width: 700px)': (_props, theme) => ({\n borderTop: `2px solid ${theme.gray}`,\n }),\n },\n)\n\nexport const Button = styled('button', (props, theme) => ({\n appearance: 'none',\n fontSize: '.9em',\n fontWeight: 'bold',\n background: theme.gray,\n border: '0',\n borderRadius: '.3em',\n color: 'white',\n padding: '.5em',\n opacity: props.disabled ? '.5' : undefined,\n cursor: 'pointer',\n}))\n\n// export const QueryKeys = styled('span', {\n// display: 'inline-block',\n// fontSize: '0.9em',\n// })\n\n// export const QueryKey = styled('span', {\n// display: 'inline-flex',\n// alignItems: 'center',\n// padding: '.2em .4em',\n// fontWeight: 'bold',\n// textShadow: '0 0 10px black',\n// borderRadius: '.2em',\n// })\n\nexport const Code = styled('code', {\n fontSize: '.9em',\n})\n\nexport const Input = styled('input', (_props, theme) => ({\n backgroundColor: theme.inputBackgroundColor,\n border: 0,\n borderRadius: '.2em',\n color: theme.inputTextColor,\n fontSize: '.9em',\n lineHeight: `1.3`,\n padding: '.3em .4em',\n}))\n\nexport const Select = styled(\n 'select',\n (_props, theme) => ({\n display: `inline-block`,\n fontSize: `.9em`,\n fontFamily: `sans-serif`,\n fontWeight: 'normal',\n lineHeight: `1.3`,\n padding: `.3em 1.5em .3em .5em`,\n height: 'auto',\n border: 0,\n borderRadius: `.2em`,\n appearance: `none`,\n WebkitAppearance: 'none',\n backgroundColor: theme.inputBackgroundColor,\n backgroundImage: `url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='100' height='100' fill='%23444444'><polygon points='0,25 100,25 50,75'/></svg>\")`,\n backgroundRepeat: `no-repeat`,\n backgroundPosition: `right .55em center`,\n backgroundSize: `.65em auto, 100%`,\n color: theme.inputTextColor,\n }),\n {\n '(max-width: 500px)': {\n display: 'none',\n },\n },\n)\n","import * as React from 'react'\n\nimport { displayValue, styled } from './utils'\n\nexport const Entry = styled('div', {\n fontFamily: 'Menlo, monospace',\n fontSize: '.7rem',\n lineHeight: '1.7',\n outline: 'none',\n wordBreak: 'break-word',\n})\n\nexport const Label = styled('span', {\n color: 'white',\n})\n\nexport const LabelButton = styled('button', {\n cursor: 'pointer',\n color: 'white',\n})\n\nexport const ExpandButton = styled('button', {\n cursor: 'pointer',\n color: 'inherit',\n font: 'inherit',\n outline: 'inherit',\n background: 'transparent',\n border: 'none',\n padding: 0,\n})\n\nexport const Value = styled('span', (_props, theme) => ({\n color: theme.danger,\n}))\n\nexport const SubEntries = styled('div', {\n marginLeft: '.1em',\n paddingLeft: '1em',\n borderLeft: '2px solid rgba(0,0,0,.15)',\n})\n\nexport const Info = styled('span', {\n color: 'grey',\n fontSize: '.7em',\n})\n\ntype ExpanderProps = {\n expanded: boolean\n style?: React.CSSProperties\n}\n\nexport const Expander = ({ expanded, style = {} }: ExpanderProps) => (\n <span\n style={{\n display: 'inline-block',\n transition: 'all .1s ease',\n transform: `rotate(${expanded ? 90 : 0}deg) ${style.transform || ''}`,\n ...style,\n }}\n >\n ▶\n </span>\n)\n\ntype Entry = {\n label: string\n}\n\ntype RendererProps = {\n handleEntry: HandleEntryFn\n label?: React.ReactNode\n value: unknown\n subEntries: Entry[]\n subEntryPages: Entry[][]\n type: string\n expanded: boolean\n toggleExpanded: () => void\n pageSize: number\n renderer?: Renderer\n filterSubEntries?: (subEntries: Property[]) => Property[]\n}\n\n/**\n * Chunk elements in the array by size\n *\n * when the array cannot be chunked evenly by size, the last chunk will be\n * filled with the remaining elements\n *\n * @example\n * chunkArray(['a','b', 'c', 'd', 'e'], 2) // returns [['a','b'], ['c', 'd'], ['e']]\n */\nexport function chunkArray<T>(array: T[], size: number): T[][] {\n if (size < 1) return []\n let i = 0\n const result: T[][] = []\n while (i < array.length) {\n result.push(array.slice(i, i + size))\n i = i + size\n }\n return result\n}\n\ntype Renderer = (props: RendererProps) => JSX.Element\n\nexport const DefaultRenderer: Renderer = ({\n handleEntry,\n label,\n value,\n subEntries = [],\n subEntryPages = [],\n type,\n expanded = false,\n toggleExpanded,\n pageSize,\n renderer,\n}) => {\n const [expandedPages, setExpandedPages] = React.useState<number[]>([])\n const [valueSnapshot, setValueSnapshot] = React.useState(undefined)\n\n const refreshValueSnapshot = () => {\n setValueSnapshot((value as () => any)())\n }\n\n return (\n <Entry>\n {subEntryPages.length ? (\n <>\n <ExpandButton onClick={() => toggleExpanded()}>\n <Expander expanded={expanded} /> {label}{' '}\n <Info>\n {String(type).toLowerCase() === 'iterable' ? '(Iterable) ' : ''}\n {subEntries.length} {subEntries.length > 1 ? `items` : `item`}\n </Info>\n </ExpandButton>\n {expanded ? (\n subEntryPages.length === 1 ? (\n <SubEntries>\n {subEntries.map((entry, index) => handleEntry(entry))}\n </SubEntries>\n ) : (\n <SubEntries>\n {subEntryPages.map((entries, index) => (\n <div key={index}>\n <Entry>\n <LabelButton\n onClick={() =>\n setExpandedPages((old) =>\n old.includes(index)\n ? old.filter((d) => d !== index)\n : [...old, index],\n )\n }\n >\n <Expander expanded={expanded} /> [{index * pageSize} ...{' '}\n {index * pageSize + pageSize - 1}]\n </LabelButton>\n {expandedPages.includes(index) ? (\n <SubEntries>\n {entries.map((entry) => handleEntry(entry))}\n </SubEntries>\n ) : null}\n </Entry>\n </div>\n ))}\n </SubEntries>\n )\n ) : null}\n </>\n ) : type === 'function' ? (\n <>\n <Explorer\n renderer={renderer}\n label={\n <button\n onClick={refreshValueSnapshot}\n style={{\n appearance: 'none',\n border: '0',\n background: 'transparent',\n }}\n >\n <Label>{label}</Label> 🔄{' '}\n </button>\n }\n value={valueSnapshot}\n defaultExpanded={{}}\n />\n </>\n ) : (\n <>\n <Label>{label}:</Label> <Value>{displayValue(value)}</Value>\n </>\n )}\n </Entry>\n )\n}\n\ntype HandleEntryFn = (entry: Entry) => JSX.Element\n\ntype ExplorerProps = Partial<RendererProps> & {\n renderer?: Renderer\n defaultExpanded?: true | Record<string, boolean>\n}\n\ntype Property = {\n defaultExpanded?: boolean | Record<string, boolean>\n label: string\n value: unknown\n}\n\nfunction isIterable(x: any): x is Iterable<unknown> {\n return Symbol.iterator in x\n}\n\nexport default function Explorer({\n value,\n defaultExpanded,\n renderer = DefaultRenderer,\n pageSize = 100,\n filterSubEntries,\n ...rest\n}: ExplorerProps) {\n const [expanded, setExpanded] = React.useState(Boolean(defaultExpanded))\n const toggleExpanded = React.useCallback(() => setExpanded((old) => !old), [])\n\n let type: string = typeof value\n let subEntries: Property[] = []\n\n const makeProperty = (sub: { label: string; value: unknown }): Property => {\n const subDefaultExpanded =\n defaultExpanded === true\n ? { [sub.label]: true }\n : defaultExpanded?.[sub.label]\n return {\n ...sub,\n defaultExpanded: subDefaultExpanded,\n }\n }\n\n if (Array.isArray(value)) {\n type = 'array'\n subEntries = value.map((d, i) =>\n makeProperty({\n label: i.toString(),\n value: d,\n }),\n )\n } else if (\n value !== null &&\n typeof value === 'object' &&\n isIterable(value) &&\n typeof value[Symbol.iterator] === 'function'\n ) {\n type = 'Iterable'\n subEntries = Array.from(value, (val, i) =>\n makeProperty({\n label: i.toString(),\n value: val,\n }),\n )\n } else if (typeof value === 'object' && value !== null) {\n type = 'object'\n subEntries = Object.entries(value).map(([key, val]) =>\n makeProperty({\n label: key,\n value: val,\n }),\n )\n }\n\n subEntries = filterSubEntries ? filterSubEntries(subEntries) : subEntries\n\n const subEntryPages = chunkArray(subEntries, pageSize)\n\n return renderer({\n handleEntry: (entry) => (\n <Explorer\n key={entry.label}\n value={value}\n renderer={renderer}\n filterSubEntries={filterSubEntries}\n {...rest}\n {...entry}\n />\n ),\n type,\n subEntries,\n subEntryPages,\n value,\n expanded,\n toggleExpanded,\n pageSize,\n ...rest,\n })\n}\n","import React from 'react'\nimport {\n last,\n routerContext,\n invariant,\n AnyRouter,\n useStore,\n Route,\n AnyRoute,\n AnyRootRoute,\n RouteMatch,\n trimPath,\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 router,\n activeRouteId,\n activeMatchId,\n setActiveRouteId,\n setActiveMatchId,\n}: {\n route: AnyRootRoute | AnyRoute\n isRoot?: boolean\n router: AnyRouter\n activeRouteId: string | undefined\n activeMatchId: string | undefined\n setActiveRouteId: (id: string) => void\n setActiveMatchId: (id: string) => void\n}) {\n const matches = Object.values(router.state.matchesById)\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 setActiveMatchId(match.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, router),\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 router={router}\n activeRouteId={activeRouteId}\n activeMatchId={activeMatchId}\n setActiveRouteId={setActiveRouteId}\n setActiveMatchId={setActiveMatchId}\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 routerContextValue = React.useContext(routerContext)\n const router = userRouter ?? routerContextValue\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 const [activeMatchId, setActiveMatchId] = useLocalStorage(\n 'tanstackRouterDevtoolsActiveMatchId',\n '',\n )\n\n const activeMatch = React.useMemo(\n () =>\n router.state.matchesById[activeRouteId as any] ||\n router.state.matchesById[activeMatchId as any],\n [activeRouteId, activeMatchId],\n )\n\n const hasSearch = Object.keys(router.state.location.search || {}).length\n\n const preloadMatches = Object.values(router.state.matchesById).filter(\n (match) => {\n return (\n !router.state.matchIds.includes(match.id) &&\n !router.state.pendingMatchIds.includes(match.id)\n )\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 }}\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 router={router}\n isRoot\n activeRouteId={activeRouteId}\n activeMatchId={activeMatchId}\n setActiveRouteId={setActiveRouteId}\n setActiveMatchId={setActiveMatchId}\n />\n ) : (\n <div>\n {router.state.matches.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, router),\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 }}\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, router),\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 <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 }}\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":["getItem","key","itemValue","localStorage","JSON","parse","undefined","useLocalStorage","defaultValue","value","setValue","React","useState","useEffect","initialValue","setter","useCallback","updater","old","newVal","setItem","stringify","defaultTheme","background","backgroundAlt","foreground","gray","grayAlt","inputBackgroundColor","inputTextColor","success","danger","active","warning","ThemeContext","createContext","ThemeProvider","theme","rest","createElement","Provider","_extends","useTheme","useContext","useMediaQuery","query","isMatch","setIsMatch","window","matchMedia","matches","matcher","onChange","addListener","removeListener","isServer","getStatusColor","match","router","status","isFetching","isMatchInvalid","getRouteStatusColor","route","found","find","d","routeId","id","styled","type","newStyles","queries","forwardRef","style","ref","mediaStyles","Object","entries","reduce","current","useIsMounted","mountedRef","useRef","isMounted","displayValue","name","getOwnPropertyNames","newValue","toString","useSafeState","initialState","state","setState","safeSetState","scheduleMicrotask","callback","Promise","resolve","then","catch","error","setTimeout","Panel","_props","fontSize","fontFamily","display","backgroundColor","color","flexDirection","ActivePanel","flex","overflow","height","(max-width: 700px)","borderTop","Button","props","appearance","fontWeight","border","borderRadius","padding","opacity","disabled","cursor","Code","Entry","lineHeight","outline","wordBreak","Label","LabelButton","ExpandButton","font","Value","SubEntries","marginLeft","paddingLeft","borderLeft","Info","Expander","expanded","transition","transform","chunkArray","array","size","i","result","length","push","slice","DefaultRenderer","handleEntry","label","subEntries","subEntryPages","toggleExpanded","pageSize","renderer","expandedPages","setExpandedPages","valueSnapshot","setValueSnapshot","refreshValueSnapshot","Fragment","onClick","String","toLowerCase","map","entry","index","includes","filter","Explorer","defaultExpanded","isIterable","x","Symbol","iterator","filterSubEntries","setExpanded","Boolean","makeProperty","sub","subDefaultExpanded","Array","isArray","from","val","Logo","alignItems","letterSpacing","backgroundImage","WebkitBackgroundClip","marginRight","TanStackRouterDevtools","initialIsOpen","panelProps","closeButtonProps","toggleButtonProps","position","containerElement","Container","rootRef","panelRef","isOpen","setIsOpen","devtoolsHeight","setDevtoolsHeight","isResolvedOpen","setIsResolvedOpen","isResizing","setIsResizing","handleDragStart","panelElement","startEvent","button","dragInfo","originalHeight","getBoundingClientRect","pageY","run","moveEvent","delta","newHeight","unsub","document","removeEventListener","addEventListener","handlePanelTransitionStart","visibility","handlePanelTransitionEnd","previousValue","parentElement","paddingBottom","containerHeight","panelStyle","otherPanelProps","closeButtonStyle","onCloseClick","otherCloseButtonProps","toggleButtonStyle","onToggleClick","otherToggleButtonProps","className","TanStackRouterDevtoolsPanel","bottom","right","zIndex","width","maxHeight","boxShadow","transformOrigin","pointerEvents","e","margin","left","top","RouteComp","isRoot","activeRouteId","activeMatchId","setActiveRouteId","setActiveMatchId","values","matchesById","role","borderBottom","justifyContent","path","trimPath","children","sort","a","b","rank","r","userRouter","routerContextValue","routerContext","invariant","useStore","__store","showMatches","setShowMatches","activeMatch","useMemo","hasSearch","keys","location","search","preloadMatches","matchIds","pendingMatchIds","dangerouslySetInnerHTML","__html","marginBottom","onMouseDown","minHeight","borderRight","gap","overflowY","context","routeTree","updatedAt","Date","toLocaleTimeString","obj","next"],"mappings":"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"}
@@ -4024,7 +4024,7 @@ var drawChart = (function (exports) {
4024
4024
  </script>
4025
4025
  <script>
4026
4026
  /*<!--*/
4027
- const data = {"version":2,"tree":{"name":"root","children":[{"name":"index.production.js","children":[{"uid":"e1d4-203","name":"\u0000rollupPluginBabelHelpers.js"},{"name":"packages","children":[{"name":"react-store/build/esm/index.js","uid":"e1d4-205"},{"name":"router-core/build/esm/index.js","uid":"e1d4-209"},{"name":"react-router/build/esm/index.js","uid":"e1d4-211"},{"name":"router-devtools/src","children":[{"uid":"e1d4-213","name":"useLocalStorage.ts"},{"uid":"e1d4-215","name":"theme.tsx"},{"uid":"e1d4-217","name":"useMediaQuery.ts"},{"uid":"e1d4-219","name":"utils.ts"},{"uid":"e1d4-221","name":"styledComponents.ts"},{"uid":"e1d4-223","name":"Explorer.tsx"},{"uid":"e1d4-225","name":"devtools.tsx"},{"uid":"e1d4-227","name":"index.tsx"}]}]},{"name":"node_modules/.pnpm/tiny-invariant@1.3.1/node_modules/tiny-invariant/dist/esm/tiny-invariant.js","uid":"e1d4-207"}]}],"isRoot":true},"nodeParts":{"e1d4-203":{"renderedLength":429,"gzipLength":238,"brotliLength":0,"mainUid":"e1d4-202"},"e1d4-205":{"renderedLength":1002,"gzipLength":474,"brotliLength":0,"mainUid":"e1d4-204"},"e1d4-207":{"renderedLength":181,"gzipLength":129,"brotliLength":0,"mainUid":"e1d4-206"},"e1d4-209":{"renderedLength":520,"gzipLength":273,"brotliLength":0,"mainUid":"e1d4-208"},"e1d4-211":{"renderedLength":322,"gzipLength":230,"brotliLength":0,"mainUid":"e1d4-210"},"e1d4-213":{"renderedLength":1083,"gzipLength":410,"brotliLength":0,"mainUid":"e1d4-212"},"e1d4-215":{"renderedLength":686,"gzipLength":344,"brotliLength":0,"mainUid":"e1d4-214"},"e1d4-217":{"renderedLength":970,"gzipLength":386,"brotliLength":0,"mainUid":"e1d4-216"},"e1d4-219":{"renderedLength":2988,"gzipLength":1158,"brotliLength":0,"mainUid":"e1d4-218"},"e1d4-221":{"renderedLength":1378,"gzipLength":576,"brotliLength":0,"mainUid":"e1d4-220"},"e1d4-223":{"renderedLength":6243,"gzipLength":1853,"brotliLength":0,"mainUid":"e1d4-222"},"e1d4-225":{"renderedLength":24007,"gzipLength":4426,"brotliLength":0,"mainUid":"e1d4-224"},"e1d4-227":{"renderedLength":0,"gzipLength":0,"brotliLength":0,"mainUid":"e1d4-226"}},"nodeMetas":{"e1d4-202":{"id":"\u0000rollupPluginBabelHelpers.js","moduleParts":{"index.production.js":"e1d4-203"},"imported":[],"importedBy":[{"uid":"e1d4-224"},{"uid":"e1d4-214"},{"uid":"e1d4-222"}]},"e1d4-204":{"id":"/packages/react-store/build/esm/index.js","moduleParts":{"index.production.js":"e1d4-205"},"imported":[{"uid":"e1d4-230"},{"uid":"e1d4-231"}],"importedBy":[{"uid":"e1d4-210"},{"uid":"e1d4-208"}]},"e1d4-206":{"id":"/node_modules/.pnpm/tiny-invariant@1.3.1/node_modules/tiny-invariant/dist/esm/tiny-invariant.js","moduleParts":{"index.production.js":"e1d4-207"},"imported":[],"importedBy":[{"uid":"e1d4-210"},{"uid":"e1d4-208"}]},"e1d4-208":{"id":"/packages/router-core/build/esm/index.js","moduleParts":{"index.production.js":"e1d4-209"},"imported":[{"uid":"e1d4-206"},{"uid":"e1d4-229"},{"uid":"e1d4-204"}],"importedBy":[{"uid":"e1d4-210"}]},"e1d4-210":{"id":"/packages/react-router/build/esm/index.js","moduleParts":{"index.production.js":"e1d4-211"},"imported":[{"uid":"e1d4-204"},{"uid":"e1d4-208"},{"uid":"e1d4-228"},{"uid":"e1d4-206"},{"uid":"e1d4-229"}],"importedBy":[{"uid":"e1d4-224"}]},"e1d4-212":{"id":"/packages/router-devtools/src/useLocalStorage.ts","moduleParts":{"index.production.js":"e1d4-213"},"imported":[{"uid":"e1d4-228"}],"importedBy":[{"uid":"e1d4-224"}]},"e1d4-214":{"id":"/packages/router-devtools/src/theme.tsx","moduleParts":{"index.production.js":"e1d4-215"},"imported":[{"uid":"e1d4-202"},{"uid":"e1d4-228"}],"importedBy":[{"uid":"e1d4-224"},{"uid":"e1d4-218"}]},"e1d4-216":{"id":"/packages/router-devtools/src/useMediaQuery.ts","moduleParts":{"index.production.js":"e1d4-217"},"imported":[{"uid":"e1d4-228"}],"importedBy":[{"uid":"e1d4-218"}]},"e1d4-218":{"id":"/packages/router-devtools/src/utils.ts","moduleParts":{"index.production.js":"e1d4-219"},"imported":[{"uid":"e1d4-228"},{"uid":"e1d4-214"},{"uid":"e1d4-216"}],"importedBy":[{"uid":"e1d4-224"},{"uid":"e1d4-220"},{"uid":"e1d4-222"}]},"e1d4-220":{"id":"/packages/router-devtools/src/styledComponents.ts","moduleParts":{"index.production.js":"e1d4-221"},"imported":[{"uid":"e1d4-218"}],"importedBy":[{"uid":"e1d4-224"}]},"e1d4-222":{"id":"/packages/router-devtools/src/Explorer.tsx","moduleParts":{"index.production.js":"e1d4-223"},"imported":[{"uid":"e1d4-202"},{"uid":"e1d4-228"},{"uid":"e1d4-218"}],"importedBy":[{"uid":"e1d4-224"}]},"e1d4-224":{"id":"/packages/router-devtools/src/devtools.tsx","moduleParts":{"index.production.js":"e1d4-225"},"imported":[{"uid":"e1d4-202"},{"uid":"e1d4-228"},{"uid":"e1d4-210"},{"uid":"e1d4-212"},{"uid":"e1d4-218"},{"uid":"e1d4-220"},{"uid":"e1d4-214"},{"uid":"e1d4-222"}],"importedBy":[{"uid":"e1d4-226"}]},"e1d4-226":{"id":"/packages/router-devtools/src/index.tsx","moduleParts":{"index.production.js":"e1d4-227"},"imported":[{"uid":"e1d4-224"}],"importedBy":[],"isEntry":true},"e1d4-228":{"id":"react","moduleParts":{},"imported":[],"importedBy":[{"uid":"e1d4-224"},{"uid":"e1d4-210"},{"uid":"e1d4-212"},{"uid":"e1d4-218"},{"uid":"e1d4-214"},{"uid":"e1d4-222"},{"uid":"e1d4-216"}],"isExternal":true},"e1d4-229":{"id":"/node_modules/.pnpm/tiny-warning@1.0.3/node_modules/tiny-warning/dist/tiny-warning.esm.js","moduleParts":{},"imported":[],"importedBy":[{"uid":"e1d4-210"},{"uid":"e1d4-208"}]},"e1d4-230":{"id":"use-sync-external-store/shim/with-selector","moduleParts":{},"imported":[],"importedBy":[{"uid":"e1d4-204"}],"isExternal":true},"e1d4-231":{"id":"/packages/store/build/esm/index.js","moduleParts":{},"imported":[],"importedBy":[{"uid":"e1d4-204"}]}},"env":{"rollup":"2.79.1"},"options":{"gzip":true,"brotli":false,"sourcemap":false}};
4027
+ const data = {"version":2,"tree":{"name":"root","children":[{"name":"index.production.js","children":[{"uid":"5c7c-181","name":"\u0000rollupPluginBabelHelpers.js"},{"name":"node_modules/.pnpm","children":[{"name":"@tanstack+react-store@0.0.1/node_modules/@tanstack/react-store/build/esm/index.js","uid":"5c7c-183"},{"name":"tiny-invariant@1.3.1/node_modules/tiny-invariant/dist/esm/tiny-invariant.js","uid":"5c7c-185"}]},{"name":"packages","children":[{"name":"router-core/build/esm/index.js","uid":"5c7c-187"},{"name":"react-router/build/esm/index.js","uid":"5c7c-189"},{"name":"router-devtools/src","children":[{"uid":"5c7c-191","name":"useLocalStorage.ts"},{"uid":"5c7c-193","name":"theme.tsx"},{"uid":"5c7c-195","name":"useMediaQuery.ts"},{"uid":"5c7c-197","name":"utils.ts"},{"uid":"5c7c-199","name":"styledComponents.ts"},{"uid":"5c7c-201","name":"Explorer.tsx"},{"uid":"5c7c-203","name":"devtools.tsx"},{"uid":"5c7c-205","name":"index.tsx"}]}]}]}],"isRoot":true},"nodeParts":{"5c7c-181":{"renderedLength":429,"gzipLength":238,"brotliLength":0,"mainUid":"5c7c-180"},"5c7c-183":{"renderedLength":1002,"gzipLength":474,"brotliLength":0,"mainUid":"5c7c-182"},"5c7c-185":{"renderedLength":181,"gzipLength":129,"brotliLength":0,"mainUid":"5c7c-184"},"5c7c-187":{"renderedLength":842,"gzipLength":379,"brotliLength":0,"mainUid":"5c7c-186"},"5c7c-189":{"renderedLength":322,"gzipLength":230,"brotliLength":0,"mainUid":"5c7c-188"},"5c7c-191":{"renderedLength":1083,"gzipLength":410,"brotliLength":0,"mainUid":"5c7c-190"},"5c7c-193":{"renderedLength":686,"gzipLength":344,"brotliLength":0,"mainUid":"5c7c-192"},"5c7c-195":{"renderedLength":970,"gzipLength":386,"brotliLength":0,"mainUid":"5c7c-194"},"5c7c-197":{"renderedLength":2949,"gzipLength":1144,"brotliLength":0,"mainUid":"5c7c-196"},"5c7c-199":{"renderedLength":1378,"gzipLength":576,"brotliLength":0,"mainUid":"5c7c-198"},"5c7c-201":{"renderedLength":6243,"gzipLength":1853,"brotliLength":0,"mainUid":"5c7c-200"},"5c7c-203":{"renderedLength":23980,"gzipLength":4436,"brotliLength":0,"mainUid":"5c7c-202"},"5c7c-205":{"renderedLength":0,"gzipLength":0,"brotliLength":0,"mainUid":"5c7c-204"}},"nodeMetas":{"5c7c-180":{"id":"\u0000rollupPluginBabelHelpers.js","moduleParts":{"index.production.js":"5c7c-181"},"imported":[],"importedBy":[{"uid":"5c7c-202"},{"uid":"5c7c-192"},{"uid":"5c7c-200"}]},"5c7c-182":{"id":"/node_modules/.pnpm/@tanstack+react-store@0.0.1/node_modules/@tanstack/react-store/build/esm/index.js","moduleParts":{"index.production.js":"5c7c-183"},"imported":[{"uid":"5c7c-208"},{"uid":"5c7c-209"}],"importedBy":[{"uid":"5c7c-188"}]},"5c7c-184":{"id":"/node_modules/.pnpm/tiny-invariant@1.3.1/node_modules/tiny-invariant/dist/esm/tiny-invariant.js","moduleParts":{"index.production.js":"5c7c-185"},"imported":[],"importedBy":[{"uid":"5c7c-188"},{"uid":"5c7c-186"}]},"5c7c-186":{"id":"/packages/router-core/build/esm/index.js","moduleParts":{"index.production.js":"5c7c-187"},"imported":[{"uid":"5c7c-184"},{"uid":"5c7c-207"},{"uid":"5c7c-209"}],"importedBy":[{"uid":"5c7c-188"}]},"5c7c-188":{"id":"/packages/react-router/build/esm/index.js","moduleParts":{"index.production.js":"5c7c-189"},"imported":[{"uid":"5c7c-182"},{"uid":"5c7c-186"},{"uid":"5c7c-206"},{"uid":"5c7c-184"},{"uid":"5c7c-207"}],"importedBy":[{"uid":"5c7c-202"},{"uid":"5c7c-196"}]},"5c7c-190":{"id":"/packages/router-devtools/src/useLocalStorage.ts","moduleParts":{"index.production.js":"5c7c-191"},"imported":[{"uid":"5c7c-206"}],"importedBy":[{"uid":"5c7c-202"}]},"5c7c-192":{"id":"/packages/router-devtools/src/theme.tsx","moduleParts":{"index.production.js":"5c7c-193"},"imported":[{"uid":"5c7c-180"},{"uid":"5c7c-206"}],"importedBy":[{"uid":"5c7c-202"},{"uid":"5c7c-196"}]},"5c7c-194":{"id":"/packages/router-devtools/src/useMediaQuery.ts","moduleParts":{"index.production.js":"5c7c-195"},"imported":[{"uid":"5c7c-206"}],"importedBy":[{"uid":"5c7c-196"}]},"5c7c-196":{"id":"/packages/router-devtools/src/utils.ts","moduleParts":{"index.production.js":"5c7c-197"},"imported":[{"uid":"5c7c-206"},{"uid":"5c7c-188"},{"uid":"5c7c-192"},{"uid":"5c7c-194"}],"importedBy":[{"uid":"5c7c-202"},{"uid":"5c7c-198"},{"uid":"5c7c-200"}]},"5c7c-198":{"id":"/packages/router-devtools/src/styledComponents.ts","moduleParts":{"index.production.js":"5c7c-199"},"imported":[{"uid":"5c7c-196"}],"importedBy":[{"uid":"5c7c-202"}]},"5c7c-200":{"id":"/packages/router-devtools/src/Explorer.tsx","moduleParts":{"index.production.js":"5c7c-201"},"imported":[{"uid":"5c7c-180"},{"uid":"5c7c-206"},{"uid":"5c7c-196"}],"importedBy":[{"uid":"5c7c-202"}]},"5c7c-202":{"id":"/packages/router-devtools/src/devtools.tsx","moduleParts":{"index.production.js":"5c7c-203"},"imported":[{"uid":"5c7c-180"},{"uid":"5c7c-206"},{"uid":"5c7c-188"},{"uid":"5c7c-190"},{"uid":"5c7c-196"},{"uid":"5c7c-198"},{"uid":"5c7c-192"},{"uid":"5c7c-200"}],"importedBy":[{"uid":"5c7c-204"}]},"5c7c-204":{"id":"/packages/router-devtools/src/index.tsx","moduleParts":{"index.production.js":"5c7c-205"},"imported":[{"uid":"5c7c-202"}],"importedBy":[],"isEntry":true},"5c7c-206":{"id":"react","moduleParts":{},"imported":[],"importedBy":[{"uid":"5c7c-202"},{"uid":"5c7c-188"},{"uid":"5c7c-190"},{"uid":"5c7c-196"},{"uid":"5c7c-192"},{"uid":"5c7c-200"},{"uid":"5c7c-194"}],"isExternal":true},"5c7c-207":{"id":"/node_modules/.pnpm/tiny-warning@1.0.3/node_modules/tiny-warning/dist/tiny-warning.esm.js","moduleParts":{},"imported":[],"importedBy":[{"uid":"5c7c-188"},{"uid":"5c7c-186"}]},"5c7c-208":{"id":"use-sync-external-store/shim/with-selector","moduleParts":{},"imported":[],"importedBy":[{"uid":"5c7c-182"}],"isExternal":true},"5c7c-209":{"id":"/node_modules/.pnpm/@tanstack+store@0.0.1/node_modules/@tanstack/store/build/esm/index.js","moduleParts":{},"imported":[],"importedBy":[{"uid":"5c7c-182"},{"uid":"5c7c-186"}]}},"env":{"rollup":"2.79.1"},"options":{"gzip":true,"brotli":false,"sourcemap":false}};
4028
4028
 
4029
4029
  const run = () => {
4030
4030
  const width = window.innerWidth;