@tanstack/react-router-devtools 0.0.1-beta.29 → 0.0.1-beta.36

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 { RouteMatch } 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(match: RouteMatch, theme: Theme) {\n return match.isFetching\n ? theme.active\n : match.status === 'error'\n ? theme.danger\n : match.status === 'success'\n ? theme.success\n : theme.gray\n}\n\n// export function getQueryStatusLabel(query: Query) {\n// return query.state.isFetching\n// ? 'fetching'\n// : !query.getObserversCount()\n// ? 'inactive'\n// : query.isStale()\n// ? 'stale'\n// : 'fresh'\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}\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 ...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 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 {...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 { Router, last, routerContext, invariant } from '@tanstack/react-router'\nimport { formatDistanceStrict } from 'date-fns'\n\nimport useLocalStorage from './useLocalStorage'\nimport {\n getStatusColor,\n multiSortBy,\n useIsMounted,\n useSafeState,\n} from './utils'\nimport { Panel, Button, Code, ActivePanel } from './styledComponents'\nimport { ThemeProvider, defaultTheme as theme } from './theme'\n// import { getQueryStatusLabel, getQueryStatusColor } from './utils'\nimport Explorer from './Explorer'\n\nexport type PartialKeys<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>\n\ninterface DevtoolsOptions {\n /**\n * Set this true if you want the dev tools to default to being open\n */\n initialIsOpen?: boolean\n /**\n * Use this to add props to the panel. For example, you can add className, style (merge and override default style), etc.\n */\n panelProps?: React.DetailedHTMLProps<\n React.HTMLAttributes<HTMLDivElement>,\n HTMLDivElement\n >\n /**\n * Use this to add props to the close button. For example, you can add className, style (merge and override default style), onClick (extend default handler), etc.\n */\n closeButtonProps?: React.DetailedHTMLProps<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n >\n /**\n * Use this to add props to the toggle button. For example, you can add className, style (merge and override default style), onClick (extend default handler), etc.\n */\n toggleButtonProps?: React.DetailedHTMLProps<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n >\n /**\n * The position of the TanStack Router logo to open and close the devtools panel.\n * Defaults to 'bottom-left'.\n */\n position?: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'\n /**\n * Use this to render the devtools inside a different type of container element for a11y purposes.\n * Any string which corresponds to a valid intrinsic JSX element is allowed.\n * Defaults to 'footer'.\n */\n containerElement?: string | any\n /**\n * A boolean variable indicating if the \"lite\" version of the library is being used\n */\n router?: Router<any, any, any>\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?: Router<any, any, any>\n}\n\nconst isServer = typeof window === 'undefined'\n\nfunction Logo(props: React.HTMLProps<HTMLDivElement>) {\n return (\n <div\n {...props}\n style={{\n ...(props.style ?? {}),\n display: 'flex',\n alignItems: 'center',\n flexDirection: 'column',\n fontSize: '0.8rem',\n fontWeight: 'bolder',\n lineHeight: '1',\n }}\n >\n <div\n style={{\n letterSpacing: '-0.05rem',\n }}\n >\n TANSTACK\n </div>\n <div\n style={{\n backgroundImage:\n 'linear-gradient(to right, var(--tw-gradient-stops))',\n // @ts-ignore\n '--tw-gradient-from': '#84cc16',\n '--tw-gradient-stops':\n 'var(--tw-gradient-from), var(--tw-gradient-to)',\n '--tw-gradient-to': '#10b981',\n WebkitBackgroundClip: 'text',\n color: 'transparent',\n letterSpacing: '0.1rem',\n marginRight: '-0.2rem',\n }}\n >\n ROUTER\n </div>\n </div>\n )\n}\n\nexport function TanStackRouterDevtools({\n initialIsOpen,\n panelProps = {},\n closeButtonProps = {},\n toggleButtonProps = {},\n position = 'bottom-left',\n containerElement: Container = 'footer',\n router,\n}: DevtoolsOptions): React.ReactElement | null {\n const rootRef = React.useRef<HTMLDivElement>(null)\n const panelRef = React.useRef<HTMLDivElement>(null)\n const [isOpen, setIsOpen] = useLocalStorage(\n 'tanstackRouterDevtoolsOpen',\n initialIsOpen,\n )\n const [devtoolsHeight, setDevtoolsHeight] = useLocalStorage<number | null>(\n 'tanstackRouterDevtoolsHeight',\n null,\n )\n const [isResolvedOpen, setIsResolvedOpen] = useSafeState(false)\n const [isResizing, setIsResizing] = useSafeState(false)\n const isMounted = useIsMounted()\n\n const handleDragStart = (\n panelElement: HTMLDivElement | null,\n startEvent: React.MouseEvent<HTMLDivElement, MouseEvent>,\n ) => {\n if (startEvent.button !== 0) return // Only allow left click for drag\n\n setIsResizing(true)\n\n const dragInfo = {\n originalHeight: panelElement?.getBoundingClientRect().height ?? 0,\n pageY: startEvent.pageY,\n }\n\n const run = (moveEvent: MouseEvent) => {\n const delta = dragInfo.pageY - moveEvent.pageY\n const newHeight = dragInfo?.originalHeight + delta\n\n setDevtoolsHeight(newHeight)\n\n if (newHeight < 70) {\n setIsOpen(false)\n } else {\n setIsOpen(true)\n }\n }\n\n const unsub = () => {\n setIsResizing(false)\n document.removeEventListener('mousemove', run)\n document.removeEventListener('mouseUp', unsub)\n }\n\n document.addEventListener('mousemove', run)\n document.addEventListener('mouseup', unsub)\n }\n\n React.useEffect(() => {\n setIsResolvedOpen(isOpen ?? false)\n }, [isOpen, isResolvedOpen, setIsResolvedOpen])\n\n // Toggle panel visibility before/after transition (depending on direction).\n // Prevents focusing in a closed panel.\n React.useEffect(() => {\n const ref = panelRef.current\n\n if (ref) {\n const handlePanelTransitionStart = () => {\n if (ref && isResolvedOpen) {\n ref.style.visibility = 'visible'\n }\n }\n\n const handlePanelTransitionEnd = () => {\n if (ref && !isResolvedOpen) {\n ref.style.visibility = 'hidden'\n }\n }\n\n ref.addEventListener('transitionstart', handlePanelTransitionStart)\n ref.addEventListener('transitionend', handlePanelTransitionEnd)\n\n return () => {\n ref.removeEventListener('transitionstart', handlePanelTransitionStart)\n ref.removeEventListener('transitionend', handlePanelTransitionEnd)\n }\n }\n\n return\n }, [isResolvedOpen])\n\n React[isServer ? 'useEffect' : 'useLayoutEffect'](() => {\n if (isResolvedOpen) {\n const previousValue = rootRef.current?.parentElement?.style.paddingBottom\n\n const run = () => {\n const containerHeight = panelRef.current?.getBoundingClientRect().height\n if (rootRef.current?.parentElement) {\n rootRef.current.parentElement.style.paddingBottom = `${containerHeight}px`\n }\n }\n\n run()\n\n if (typeof window !== 'undefined') {\n window.addEventListener('resize', run)\n\n return () => {\n window.removeEventListener('resize', run)\n if (\n rootRef.current?.parentElement &&\n typeof previousValue === 'string'\n ) {\n rootRef.current.parentElement.style.paddingBottom = previousValue\n }\n }\n }\n }\n return\n }, [isResolvedOpen])\n\n const { style: panelStyle = {}, ...otherPanelProps } = panelProps\n\n const {\n style: closeButtonStyle = {},\n onClick: onCloseClick,\n ...otherCloseButtonProps\n } = closeButtonProps\n\n const {\n style: toggleButtonStyle = {},\n onClick: onToggleClick,\n ...otherToggleButtonProps\n } = toggleButtonProps\n\n // Do not render on the server\n if (!isMounted()) return null\n\n return (\n <Container ref={rootRef} className=\"TanStackRouterDevtools\">\n <ThemeProvider theme={theme}>\n <TanStackRouterDevtoolsPanel\n ref={panelRef as any}\n {...otherPanelProps}\n router={router}\n style={{\n position: 'fixed',\n bottom: '0',\n right: '0',\n zIndex: 99999,\n width: '100%',\n height: devtoolsHeight ?? 500,\n maxHeight: '90%',\n boxShadow: '0 0 20px rgba(0,0,0,.3)',\n borderTop: `1px solid ${theme.gray}`,\n transformOrigin: 'top',\n // visibility will be toggled after transitions, but set initial state here\n visibility: isOpen ? 'visible' : 'hidden',\n ...panelStyle,\n ...(isResizing\n ? {\n transition: `none`,\n }\n : { transition: `all .2s ease` }),\n ...(isResolvedOpen\n ? {\n opacity: 1,\n pointerEvents: 'all',\n transform: `translateY(0) scale(1)`,\n }\n : {\n opacity: 0,\n pointerEvents: 'none',\n transform: `translateY(15px) scale(1.02)`,\n }),\n }}\n isOpen={isResolvedOpen}\n setIsOpen={setIsOpen}\n handleDragStart={(e) => handleDragStart(panelRef.current, e)}\n />\n {isResolvedOpen ? (\n <Button\n type=\"button\"\n aria-label=\"Close TanStack Router Devtools\"\n {...(otherCloseButtonProps as any)}\n onClick={(e) => {\n setIsOpen(false)\n onCloseClick && onCloseClick(e)\n }}\n style={{\n position: 'fixed',\n zIndex: 99999,\n margin: '.5em',\n bottom: 0,\n ...(position === 'top-right'\n ? {\n right: '0',\n }\n : position === 'top-left'\n ? {\n left: '0',\n }\n : position === 'bottom-right'\n ? {\n right: '0',\n }\n : {\n left: '0',\n }),\n ...closeButtonStyle,\n }}\n >\n Close\n </Button>\n ) : null}\n </ThemeProvider>\n {!isResolvedOpen ? (\n <button\n type=\"button\"\n {...otherToggleButtonProps}\n aria-label=\"Open TanStack Router Devtools\"\n onClick={(e) => {\n setIsOpen(true)\n onToggleClick && onToggleClick(e)\n }}\n style={{\n appearance: 'none',\n background: 'none',\n border: 0,\n padding: 0,\n position: 'fixed',\n zIndex: 99999,\n display: 'inline-flex',\n fontSize: '1.5em',\n margin: '.5em',\n cursor: 'pointer',\n width: 'fit-content',\n ...(position === 'top-right'\n ? {\n top: '0',\n right: '0',\n }\n : position === 'top-left'\n ? {\n top: '0',\n left: '0',\n }\n : position === 'bottom-right'\n ? {\n bottom: '0',\n right: '0',\n }\n : {\n bottom: '0',\n left: '0',\n }),\n ...toggleButtonStyle,\n }}\n >\n <Logo aria-hidden />\n </button>\n ) : null}\n </Container>\n )\n}\n\nexport const TanStackRouterDevtoolsPanel = React.forwardRef<\n HTMLDivElement,\n DevtoolsPanelOptions\n>(function TanStackRouterDevtoolsPanel(props, ref): React.ReactElement {\n const {\n isOpen = true,\n setIsOpen,\n handleDragStart,\n router: userRouter,\n ...panelProps\n } = props\n\n const routerContextValue = React.useContext(routerContext)\n const router = userRouter ?? routerContextValue?.router\n\n invariant(\n router,\n 'No router was found for the TanStack Router Devtools. Please place the devtools in the <RouterProvider> component tree or pass the router instance to the devtools manually.',\n )\n\n const rerender = React.useReducer(() => ({}), {})[1]\n\n React.useEffect(() => {\n let interval = setInterval(() => {\n router.cleanMatchCache()\n // router.notify()\n rerender()\n }, 250)\n\n return () => {\n clearInterval(interval)\n }\n }, [])\n\n const [activeRouteId, setActiveRouteId] = useLocalStorage(\n 'tanstackRouterDevtoolsActiveRouteId',\n '',\n )\n\n const [activeMatchId, setActiveMatchId] = useLocalStorage(\n 'tanstackRouterDevtoolsActiveMatchId',\n '',\n )\n\n React.useEffect(() => {\n setActiveMatchId('')\n }, [activeRouteId])\n\n const activeMatch =\n Object.values(router.matchCache)?.find(\n (d) => d.match.matchId === activeMatchId,\n )?.match ?? router.state.matches?.find((d) => d.routeId === activeRouteId)\n\n const matchCacheValues = multiSortBy(\n Object.keys(router.matchCache)\n .filter((key) => {\n const cacheEntry = router.matchCache[key]!\n return cacheEntry.gc > Date.now()\n })\n .map((key) => router.matchCache[key]!),\n [(d) => (d.match.isFetching ? -1 : 1), (d) => -d.match.updatedAt!],\n )\n\n return (\n <ThemeProvider theme={theme}>\n <Panel ref={ref} className=\"TanStackRouterDevtoolsPanel\" {...panelProps}>\n <style\n dangerouslySetInnerHTML={{\n __html: `\n\n .TanStackRouterDevtoolsPanel * {\n scrollbar-color: ${theme.backgroundAlt} ${theme.gray};\n }\n\n .TanStackRouterDevtoolsPanel *::-webkit-scrollbar, .TanStackRouterDevtoolsPanel scrollbar {\n width: 1em;\n height: 1em;\n }\n\n .TanStackRouterDevtoolsPanel *::-webkit-scrollbar-track, .TanStackRouterDevtoolsPanel scrollbar-track {\n background: ${theme.backgroundAlt};\n }\n\n .TanStackRouterDevtoolsPanel *::-webkit-scrollbar-thumb, .TanStackRouterDevtoolsPanel scrollbar-thumb {\n background: ${theme.gray};\n border-radius: .5em;\n border: 3px solid ${theme.backgroundAlt};\n }\n\n .TanStackRouterDevtoolsPanel table {\n width: 100%;\n }\n\n .TanStackRouterDevtoolsPanel table tr {\n border-bottom: 2px dotted rgba(255, 255, 255, .2);\n }\n\n .TanStackRouterDevtoolsPanel table tr:last-child {\n border-bottom: none\n }\n\n .TanStackRouterDevtoolsPanel table td {\n padding: .25rem .5rem;\n border-right: 2px dotted rgba(255, 255, 255, .05);\n }\n\n .TanStackRouterDevtoolsPanel table td:last-child {\n border-right: none\n }\n\n `,\n }}\n />\n <div\n style={{\n position: 'absolute',\n left: 0,\n top: 0,\n width: '100%',\n height: '4px',\n marginBottom: '-4px',\n cursor: 'row-resize',\n zIndex: 100000,\n }}\n onMouseDown={handleDragStart}\n ></div>\n <div\n style={{\n flex: '1 1 500px',\n minHeight: '40%',\n maxHeight: '100%',\n overflow: 'auto',\n borderRight: `1px solid ${theme.grayAlt}`,\n display: 'flex',\n flexDirection: 'column',\n }}\n >\n <div\n style={{\n display: 'flex',\n justifyContent: 'start',\n gap: '1rem',\n padding: '1rem',\n alignItems: 'center',\n background: theme.backgroundAlt,\n }}\n >\n <Logo aria-hidden />\n <div\n style={{\n fontSize: 'clamp(.8rem, 2vw, 1.3rem)',\n fontWeight: 'bold',\n }}\n >\n <span\n style={{\n fontWeight: 100,\n }}\n >\n Devtools\n </span>\n </div>\n </div>\n <div\n style={{\n overflowY: 'auto',\n flex: '1',\n }}\n >\n <div\n style={{\n padding: '.5em',\n }}\n >\n <Explorer label=\"Router\" value={router} defaultExpanded={{}} />\n </div>\n </div>\n </div>\n <div\n style={{\n flex: '1 1 500px',\n minHeight: '40%',\n maxHeight: '100%',\n overflow: 'auto',\n borderRight: `1px solid ${theme.grayAlt}`,\n display: 'flex',\n flexDirection: 'column',\n }}\n >\n <div\n style={{\n padding: '.5em',\n background: theme.backgroundAlt,\n position: 'sticky',\n top: 0,\n zIndex: 1,\n }}\n >\n Active Matches\n </div>\n {router.state.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 ? 'rgba(255,255,255,.1)' : undefined,\n }}\n >\n <div\n style={{\n flex: '0 0 auto',\n width: '1.3rem',\n height: '1.3rem',\n marginLeft: '.25rem',\n background: getStatusColor(match, theme),\n alignItems: 'center',\n justifyContent: 'center',\n fontWeight: 'bold',\n borderRadius: '.25rem',\n transition: 'all .2s ease-out',\n }}\n />\n\n <Code\n style={{\n padding: '.5em',\n }}\n >\n {`${match.matchId}`}\n </Code>\n </div>\n )\n })}\n {router.state.pending?.matches.length ? (\n <>\n <div\n style={{\n marginTop: '2rem',\n padding: '.5em',\n background: theme.backgroundAlt,\n position: 'sticky',\n top: 0,\n zIndex: 1,\n }}\n >\n Pending Matches\n </div>\n {router.state.pending?.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 background:\n match === activeMatch\n ? 'rgba(255,255,255,.1)'\n : undefined,\n }}\n >\n <div\n style={{\n flex: '0 0 auto',\n width: '1.3rem',\n height: '1.3rem',\n marginLeft: '.25rem',\n background: getStatusColor(match, theme),\n alignItems: 'center',\n justifyContent: 'center',\n fontWeight: 'bold',\n borderRadius: '.25rem',\n transition: 'all .2s ease-out',\n }}\n />\n\n <Code\n style={{\n padding: '.5em',\n }}\n >\n {`${match.matchId}`}\n </Code>\n </div>\n )\n })}\n </>\n ) : null}\n {matchCacheValues.length ? (\n <>\n <div\n style={{\n marginTop: '2rem',\n padding: '.5em',\n background: theme.backgroundAlt,\n position: 'sticky',\n top: 0,\n bottom: 0,\n zIndex: 1,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n }}\n >\n <div>Match Cache</div>\n <Button\n onClick={() => {\n router.matchCache = {}\n router.notify()\n }}\n >\n Clear\n </Button>\n </div>\n {matchCacheValues.map((d, i) => {\n const { match, gc } = d\n\n return (\n <div\n key={match.matchId || i}\n role=\"button\"\n aria-label={`Open match details for ${match.matchId}`}\n onClick={() =>\n setActiveMatchId(\n activeMatchId === match.matchId ? '' : match.matchId,\n )\n }\n style={{\n display: 'flex',\n borderBottom: `solid 1px ${theme.grayAlt}`,\n cursor: 'pointer',\n background:\n match === activeMatch\n ? 'rgba(255,255,255,.1)'\n : undefined,\n }}\n >\n <div\n style={{\n display: 'flex',\n flexDirection: 'column',\n padding: '.5rem',\n gap: '.3rem',\n }}\n >\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: '.5rem',\n }}\n >\n <div\n style={{\n flex: '0 0 auto',\n width: '1.3rem',\n height: '1.3rem',\n background: getStatusColor(match, theme),\n alignItems: 'center',\n justifyContent: 'center',\n fontWeight: 'bold',\n borderRadius: '.25rem',\n transition: 'all .2s ease-out',\n }}\n />\n <Code>{`${match.matchId}`}</Code>\n </div>\n <span\n style={{\n fontSize: '.7rem',\n opacity: '.5',\n lineHeight: 1,\n }}\n >\n Expires{' '}\n {formatDistanceStrict(new Date(gc), new Date(), {\n addSuffix: true,\n })}\n </span>\n </div>\n </div>\n )\n })}\n </>\n ) : null}\n </div>\n\n {activeMatch ? (\n <ActivePanel>\n <div\n style={{\n padding: '.5em',\n background: theme.backgroundAlt,\n position: 'sticky',\n top: 0,\n bottom: 0,\n zIndex: 1,\n }}\n >\n Match Details\n </div>\n <div>\n <table>\n <tbody>\n <tr>\n <td style={{ opacity: '.5' }}>ID</td>\n <td>\n <Code\n style={{\n lineHeight: '1.8em',\n }}\n >\n {JSON.stringify(activeMatch.matchId, 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.isInvalid.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={() => {\n activeMatch.invalidate()\n router.notify()\n }}\n style={{\n background: theme.warning,\n color: theme.inputTextColor,\n }}\n >\n Invalidate\n </Button>{' '}\n <Button\n type=\"button\"\n onClick={() => activeMatch.load()}\n style={{\n background: theme.gray,\n }}\n >\n Reload\n </Button>\n </div>\n <div\n style={{\n background: theme.backgroundAlt,\n padding: '.5em',\n position: 'sticky',\n top: 0,\n bottom: 0,\n zIndex: 1,\n }}\n >\n Explorer\n </div>\n <div\n style={{\n padding: '.5em',\n }}\n >\n <Explorer\n label=\"Match\"\n value={activeMatch}\n defaultExpanded={{}}\n />\n </div>\n </ActivePanel>\n ) : null}\n <div\n style={{\n flex: '1 1 500px',\n minHeight: '40%',\n maxHeight: '100%',\n overflow: 'auto',\n borderRight: `1px solid ${theme.grayAlt}`,\n display: 'flex',\n flexDirection: 'column',\n }}\n >\n <div\n style={{\n padding: '.5em',\n background: theme.backgroundAlt,\n position: 'sticky',\n top: 0,\n bottom: 0,\n zIndex: 1,\n }}\n >\n All Loader Data\n </div>\n <div\n style={{\n padding: '.5em',\n }}\n >\n {Object.keys(last(router.state.matches)?.loaderData || {})\n .length ? (\n <Explorer\n value={last(router.state.matches)?.loaderData || {}}\n defaultExpanded={Object.keys(\n (last(router.state.matches)?.loaderData as {}) || {},\n ).reduce((obj: any, next) => {\n obj[next] = {}\n return obj\n }, {})}\n />\n ) : (\n <em style={{ opacity: 0.5 }}>{'{ }'}</em>\n )}\n </div>\n <div\n style={{\n padding: '.5em',\n background: theme.backgroundAlt,\n position: 'sticky',\n top: 0,\n bottom: 0,\n zIndex: 1,\n }}\n >\n Search Params\n </div>\n <div\n style={{\n padding: '.5em',\n }}\n >\n {Object.keys(last(router.state.matches)?.search || {}).length ? (\n <Explorer\n value={last(router.state.matches)?.search || {}}\n defaultExpanded={Object.keys(\n (last(router.state.matches)?.search as {}) || {},\n ).reduce((obj: any, next) => {\n obj[next] = {}\n return obj\n }, {})}\n />\n ) : (\n <em style={{ opacity: 0.5 }}>{'{ }'}</em>\n )}\n </div>\n </div>\n </Panel>\n </ThemeProvider>\n )\n})\n"],"names":["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","_excluded","useTheme","useContext","useMediaQuery","query","isMatch","setIsMatch","window","matchMedia","matches","matcher","onChange","addListener","removeListener","isServer","getStatusColor","match","isFetching","status","styled","type","newStyles","queries","forwardRef","ref","style","mediaStyles","Object","entries","reduce","current","createElement","useIsMounted","mountedRef","useRef","isMounted","displayValue","name","getOwnPropertyNames","newValue","toString","useSafeState","initialState","state","setState","safeSetState","scheduleMicrotask","callback","Promise","resolve","then","catch","error","setTimeout","multiSortBy","arr","accessors","d","map","i","sort","a","ai","b","bi","accessor","ao","bo","Panel","_props","fontSize","fontFamily","display","backgroundColor","color","flexDirection","ActivePanel","flex","overflow","height","borderTop","Button","props","appearance","fontWeight","border","borderRadius","padding","opacity","disabled","cursor","Code","lineHeight","WebkitAppearance","backgroundImage","backgroundRepeat","backgroundPosition","backgroundSize","Entry","outline","wordBreak","Label","LabelButton","ExpandButton","font","Value","SubEntries","marginLeft","paddingLeft","borderLeft","Info","Expander","expanded","transition","transform","chunkArray","array","size","result","length","push","slice","DefaultRenderer","handleEntry","label","subEntries","subEntryPages","toggleExpanded","pageSize","renderer","expandedPages","setExpandedPages","valueSnapshot","setValueSnapshot","refreshValueSnapshot","String","toLowerCase","entry","index","includes","filter","isIterable","x","Symbol","iterator","Explorer","defaultExpanded","setExpanded","Boolean","makeProperty","sub","subDefaultExpanded","Array","isArray","from","val","Logo","alignItems","letterSpacing","WebkitBackgroundClip","marginRight","TanStackRouterDevtools","initialIsOpen","panelProps","closeButtonProps","toggleButtonProps","position","containerElement","Container","router","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","onClick","onCloseClick","otherCloseButtonProps","toggleButtonStyle","onToggleClick","otherToggleButtonProps","bottom","right","zIndex","width","maxHeight","boxShadow","transformOrigin","pointerEvents","e","margin","left","top","TanStackRouterDevtoolsPanel","userRouter","routerContextValue","routerContext","invariant","rerender","useReducer","interval","setInterval","cleanMatchCache","clearInterval","activeRouteId","setActiveRouteId","activeMatchId","setActiveMatchId","activeMatch","values","matchCache","find","matchId","routeId","matchCacheValues","keys","cacheEntry","gc","Date","now","updatedAt","__html","marginBottom","minHeight","borderRight","justifyContent","gap","overflowY","borderBottom","pending","marginTop","notify","formatDistanceStrict","addSuffix","isInvalid","toLocaleTimeString","invalidate","load","last","loaderData","obj","next","search"],"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 { RouteMatch } 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(match: RouteMatch, theme: Theme) {\n return match.isFetching\n ? theme.active\n : match.status === 'error'\n ? theme.danger\n : match.status === 'success'\n ? theme.success\n : theme.gray\n}\n\n// export function getQueryStatusLabel(query: Query) {\n// return query.state.isFetching\n// ? 'fetching'\n// : !query.getObserversCount()\n// ? 'inactive'\n// : query.isStale()\n// ? 'stale'\n// : 'fresh'\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}\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 ...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 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 {...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 { Router, last, routerContext, invariant } from '@tanstack/react-router'\nimport { formatDistanceStrict } from 'date-fns'\n\nimport useLocalStorage from './useLocalStorage'\nimport {\n getStatusColor,\n multiSortBy,\n useIsMounted,\n useSafeState,\n} from './utils'\nimport { Panel, Button, Code, ActivePanel } from './styledComponents'\nimport { ThemeProvider, defaultTheme as theme } from './theme'\n// import { getQueryStatusLabel, getQueryStatusColor } from './utils'\nimport Explorer from './Explorer'\n\nexport type PartialKeys<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>\n\ninterface DevtoolsOptions {\n /**\n * Set this true if you want the dev tools to default to being open\n */\n initialIsOpen?: boolean\n /**\n * Use this to add props to the panel. For example, you can add className, style (merge and override default style), etc.\n */\n panelProps?: React.DetailedHTMLProps<\n React.HTMLAttributes<HTMLDivElement>,\n HTMLDivElement\n >\n /**\n * Use this to add props to the close button. For example, you can add className, style (merge and override default style), onClick (extend default handler), etc.\n */\n closeButtonProps?: React.DetailedHTMLProps<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n >\n /**\n * Use this to add props to the toggle button. For example, you can add className, style (merge and override default style), onClick (extend default handler), etc.\n */\n toggleButtonProps?: React.DetailedHTMLProps<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n >\n /**\n * The position of the TanStack Router logo to open and close the devtools panel.\n * Defaults to 'bottom-left'.\n */\n position?: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'\n /**\n * Use this to render the devtools inside a different type of container element for a11y purposes.\n * Any string which corresponds to a valid intrinsic JSX element is allowed.\n * Defaults to 'footer'.\n */\n containerElement?: string | any\n /**\n * A boolean variable indicating if the \"lite\" version of the library is being used\n */\n router?: Router<any, any, any>\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?: Router<any, any, any>\n}\n\nconst isServer = typeof window === 'undefined'\n\nfunction Logo(props: React.HTMLProps<HTMLDivElement>) {\n return (\n <div\n {...props}\n style={{\n ...(props.style ?? {}),\n display: 'flex',\n alignItems: 'center',\n flexDirection: 'column',\n fontSize: '0.8rem',\n fontWeight: 'bolder',\n lineHeight: '1',\n }}\n >\n <div\n style={{\n letterSpacing: '-0.05rem',\n }}\n >\n TANSTACK\n </div>\n <div\n style={{\n backgroundImage:\n 'linear-gradient(to right, var(--tw-gradient-stops))',\n // @ts-ignore\n '--tw-gradient-from': '#84cc16',\n '--tw-gradient-stops':\n 'var(--tw-gradient-from), var(--tw-gradient-to)',\n '--tw-gradient-to': '#10b981',\n WebkitBackgroundClip: 'text',\n color: 'transparent',\n letterSpacing: '0.1rem',\n marginRight: '-0.2rem',\n }}\n >\n ROUTER\n </div>\n </div>\n )\n}\n\nexport function TanStackRouterDevtools({\n initialIsOpen,\n panelProps = {},\n closeButtonProps = {},\n toggleButtonProps = {},\n position = 'bottom-left',\n containerElement: Container = 'footer',\n router,\n}: DevtoolsOptions): React.ReactElement | null {\n const rootRef = React.useRef<HTMLDivElement>(null)\n const panelRef = React.useRef<HTMLDivElement>(null)\n const [isOpen, setIsOpen] = useLocalStorage(\n 'tanstackRouterDevtoolsOpen',\n initialIsOpen,\n )\n const [devtoolsHeight, setDevtoolsHeight] = useLocalStorage<number | null>(\n 'tanstackRouterDevtoolsHeight',\n null,\n )\n const [isResolvedOpen, setIsResolvedOpen] = useSafeState(false)\n const [isResizing, setIsResizing] = useSafeState(false)\n const isMounted = useIsMounted()\n\n const handleDragStart = (\n panelElement: HTMLDivElement | null,\n startEvent: React.MouseEvent<HTMLDivElement, MouseEvent>,\n ) => {\n if (startEvent.button !== 0) return // Only allow left click for drag\n\n setIsResizing(true)\n\n const dragInfo = {\n originalHeight: panelElement?.getBoundingClientRect().height ?? 0,\n pageY: startEvent.pageY,\n }\n\n const run = (moveEvent: MouseEvent) => {\n const delta = dragInfo.pageY - moveEvent.pageY\n const newHeight = dragInfo?.originalHeight + delta\n\n setDevtoolsHeight(newHeight)\n\n if (newHeight < 70) {\n setIsOpen(false)\n } else {\n setIsOpen(true)\n }\n }\n\n const unsub = () => {\n setIsResizing(false)\n document.removeEventListener('mousemove', run)\n document.removeEventListener('mouseUp', unsub)\n }\n\n document.addEventListener('mousemove', run)\n document.addEventListener('mouseup', unsub)\n }\n\n React.useEffect(() => {\n setIsResolvedOpen(isOpen ?? false)\n }, [isOpen, isResolvedOpen, setIsResolvedOpen])\n\n // Toggle panel visibility before/after transition (depending on direction).\n // Prevents focusing in a closed panel.\n React.useEffect(() => {\n const ref = panelRef.current\n\n if (ref) {\n const handlePanelTransitionStart = () => {\n if (ref && isResolvedOpen) {\n ref.style.visibility = 'visible'\n }\n }\n\n const handlePanelTransitionEnd = () => {\n if (ref && !isResolvedOpen) {\n ref.style.visibility = 'hidden'\n }\n }\n\n ref.addEventListener('transitionstart', handlePanelTransitionStart)\n ref.addEventListener('transitionend', handlePanelTransitionEnd)\n\n return () => {\n ref.removeEventListener('transitionstart', handlePanelTransitionStart)\n ref.removeEventListener('transitionend', handlePanelTransitionEnd)\n }\n }\n\n return\n }, [isResolvedOpen])\n\n React[isServer ? 'useEffect' : 'useLayoutEffect'](() => {\n if (isResolvedOpen) {\n const previousValue = rootRef.current?.parentElement?.style.paddingBottom\n\n const run = () => {\n const containerHeight = panelRef.current?.getBoundingClientRect().height\n if (rootRef.current?.parentElement) {\n rootRef.current.parentElement.style.paddingBottom = `${containerHeight}px`\n }\n }\n\n run()\n\n if (typeof window !== 'undefined') {\n window.addEventListener('resize', run)\n\n return () => {\n window.removeEventListener('resize', run)\n if (\n rootRef.current?.parentElement &&\n typeof previousValue === 'string'\n ) {\n rootRef.current.parentElement.style.paddingBottom = previousValue\n }\n }\n }\n }\n return\n }, [isResolvedOpen])\n\n const { style: panelStyle = {}, ...otherPanelProps } = panelProps\n\n const {\n style: closeButtonStyle = {},\n onClick: onCloseClick,\n ...otherCloseButtonProps\n } = closeButtonProps\n\n const {\n style: toggleButtonStyle = {},\n onClick: onToggleClick,\n ...otherToggleButtonProps\n } = toggleButtonProps\n\n // Do not render on the server\n if (!isMounted()) return null\n\n return (\n <Container ref={rootRef} className=\"TanStackRouterDevtools\">\n <ThemeProvider theme={theme}>\n <TanStackRouterDevtoolsPanel\n ref={panelRef as any}\n {...otherPanelProps}\n router={router}\n style={{\n position: 'fixed',\n bottom: '0',\n right: '0',\n zIndex: 99999,\n width: '100%',\n height: devtoolsHeight ?? 500,\n maxHeight: '90%',\n boxShadow: '0 0 20px rgba(0,0,0,.3)',\n borderTop: `1px solid ${theme.gray}`,\n transformOrigin: 'top',\n // visibility will be toggled after transitions, but set initial state here\n visibility: isOpen ? 'visible' : 'hidden',\n ...panelStyle,\n ...(isResizing\n ? {\n transition: `none`,\n }\n : { transition: `all .2s ease` }),\n ...(isResolvedOpen\n ? {\n opacity: 1,\n pointerEvents: 'all',\n transform: `translateY(0) scale(1)`,\n }\n : {\n opacity: 0,\n pointerEvents: 'none',\n transform: `translateY(15px) scale(1.02)`,\n }),\n }}\n isOpen={isResolvedOpen}\n setIsOpen={setIsOpen}\n handleDragStart={(e) => handleDragStart(panelRef.current, e)}\n />\n {isResolvedOpen ? (\n <Button\n type=\"button\"\n aria-label=\"Close TanStack Router Devtools\"\n {...(otherCloseButtonProps as any)}\n onClick={(e) => {\n setIsOpen(false)\n onCloseClick && onCloseClick(e)\n }}\n style={{\n position: 'fixed',\n zIndex: 99999,\n margin: '.5em',\n bottom: 0,\n ...(position === 'top-right'\n ? {\n right: '0',\n }\n : position === 'top-left'\n ? {\n left: '0',\n }\n : position === 'bottom-right'\n ? {\n right: '0',\n }\n : {\n left: '0',\n }),\n ...closeButtonStyle,\n }}\n >\n Close\n </Button>\n ) : null}\n </ThemeProvider>\n {!isResolvedOpen ? (\n <button\n type=\"button\"\n {...otherToggleButtonProps}\n aria-label=\"Open TanStack Router Devtools\"\n onClick={(e) => {\n setIsOpen(true)\n onToggleClick && onToggleClick(e)\n }}\n style={{\n appearance: 'none',\n background: 'none',\n border: 0,\n padding: 0,\n position: 'fixed',\n zIndex: 99999,\n display: 'inline-flex',\n fontSize: '1.5em',\n margin: '.5em',\n cursor: 'pointer',\n width: 'fit-content',\n ...(position === 'top-right'\n ? {\n top: '0',\n right: '0',\n }\n : position === 'top-left'\n ? {\n top: '0',\n left: '0',\n }\n : position === 'bottom-right'\n ? {\n bottom: '0',\n right: '0',\n }\n : {\n bottom: '0',\n left: '0',\n }),\n ...toggleButtonStyle,\n }}\n >\n <Logo aria-hidden />\n </button>\n ) : null}\n </Container>\n )\n}\n\nexport const TanStackRouterDevtoolsPanel = React.forwardRef<\n HTMLDivElement,\n DevtoolsPanelOptions\n>(function TanStackRouterDevtoolsPanel(props, ref): React.ReactElement {\n const {\n isOpen = true,\n setIsOpen,\n handleDragStart,\n router: userRouter,\n ...panelProps\n } = props\n\n const routerContextValue = React.useContext(routerContext)\n const router = userRouter ?? routerContextValue?.router\n\n invariant(\n router,\n 'No router was found for the TanStack Router Devtools. Please place the devtools in the <RouterProvider> component tree or pass the router instance to the devtools manually.',\n )\n\n const rerender = React.useReducer(() => ({}), {})[1]\n\n React.useEffect(() => {\n let interval = setInterval(() => {\n router.cleanMatchCache()\n // router.notify()\n rerender()\n }, 250)\n\n return () => {\n clearInterval(interval)\n }\n }, [])\n\n const [activeRouteId, setActiveRouteId] = useLocalStorage(\n 'tanstackRouterDevtoolsActiveRouteId',\n '',\n )\n\n const [activeMatchId, setActiveMatchId] = useLocalStorage(\n 'tanstackRouterDevtoolsActiveMatchId',\n '',\n )\n\n React.useEffect(() => {\n setActiveMatchId('')\n }, [activeRouteId])\n\n const activeMatch =\n Object.values(router.matchCache)?.find(\n (d) => d.match.matchId === activeMatchId,\n )?.match ??\n router.state.currentMatches?.find((d) => d.routeId === activeRouteId)\n\n const matchCacheValues = multiSortBy(\n Object.keys(router.matchCache)\n .filter((key) => {\n const cacheEntry = router.matchCache[key]!\n return cacheEntry.gc > Date.now()\n })\n .map((key) => router.matchCache[key]!),\n [(d) => (d.match.isFetching ? -1 : 1), (d) => -d.match.updatedAt!],\n )\n\n return (\n <ThemeProvider theme={theme}>\n <Panel ref={ref} className=\"TanStackRouterDevtoolsPanel\" {...panelProps}>\n <style\n dangerouslySetInnerHTML={{\n __html: `\n\n .TanStackRouterDevtoolsPanel * {\n scrollbar-color: ${theme.backgroundAlt} ${theme.gray};\n }\n\n .TanStackRouterDevtoolsPanel *::-webkit-scrollbar, .TanStackRouterDevtoolsPanel scrollbar {\n width: 1em;\n height: 1em;\n }\n\n .TanStackRouterDevtoolsPanel *::-webkit-scrollbar-track, .TanStackRouterDevtoolsPanel scrollbar-track {\n background: ${theme.backgroundAlt};\n }\n\n .TanStackRouterDevtoolsPanel *::-webkit-scrollbar-thumb, .TanStackRouterDevtoolsPanel scrollbar-thumb {\n background: ${theme.gray};\n border-radius: .5em;\n border: 3px solid ${theme.backgroundAlt};\n }\n\n .TanStackRouterDevtoolsPanel table {\n width: 100%;\n }\n\n .TanStackRouterDevtoolsPanel table tr {\n border-bottom: 2px dotted rgba(255, 255, 255, .2);\n }\n\n .TanStackRouterDevtoolsPanel table tr:last-child {\n border-bottom: none\n }\n\n .TanStackRouterDevtoolsPanel table td {\n padding: .25rem .5rem;\n border-right: 2px dotted rgba(255, 255, 255, .05);\n }\n\n .TanStackRouterDevtoolsPanel table td:last-child {\n border-right: none\n }\n\n `,\n }}\n />\n <div\n style={{\n position: 'absolute',\n left: 0,\n top: 0,\n width: '100%',\n height: '4px',\n marginBottom: '-4px',\n cursor: 'row-resize',\n zIndex: 100000,\n }}\n onMouseDown={handleDragStart}\n ></div>\n <div\n style={{\n flex: '1 1 500px',\n minHeight: '40%',\n maxHeight: '100%',\n overflow: 'auto',\n borderRight: `1px solid ${theme.grayAlt}`,\n display: 'flex',\n flexDirection: 'column',\n }}\n >\n <div\n style={{\n display: 'flex',\n justifyContent: 'start',\n gap: '1rem',\n padding: '1rem',\n alignItems: 'center',\n background: theme.backgroundAlt,\n }}\n >\n <Logo aria-hidden />\n <div\n style={{\n fontSize: 'clamp(.8rem, 2vw, 1.3rem)',\n fontWeight: 'bold',\n }}\n >\n <span\n style={{\n fontWeight: 100,\n }}\n >\n Devtools\n </span>\n </div>\n </div>\n <div\n style={{\n overflowY: 'auto',\n flex: '1',\n }}\n >\n <div\n style={{\n padding: '.5em',\n }}\n >\n <Explorer label=\"Router\" value={router} defaultExpanded={{}} />\n </div>\n </div>\n </div>\n <div\n style={{\n flex: '1 1 500px',\n minHeight: '40%',\n maxHeight: '100%',\n overflow: 'auto',\n borderRight: `1px solid ${theme.grayAlt}`,\n display: 'flex',\n flexDirection: 'column',\n }}\n >\n <div\n style={{\n padding: '.5em',\n background: theme.backgroundAlt,\n position: 'sticky',\n top: 0,\n zIndex: 1,\n }}\n >\n Active Matches\n </div>\n {router.state.currentMatches.map((match, i) => {\n return (\n <div\n key={match.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 ? 'rgba(255,255,255,.1)' : undefined,\n }}\n >\n <div\n style={{\n flex: '0 0 auto',\n width: '1.3rem',\n height: '1.3rem',\n marginLeft: '.25rem',\n background: getStatusColor(match, theme),\n alignItems: 'center',\n justifyContent: 'center',\n fontWeight: 'bold',\n borderRadius: '.25rem',\n transition: 'all .2s ease-out',\n }}\n />\n\n <Code\n style={{\n padding: '.5em',\n }}\n >\n {`${match.matchId}`}\n </Code>\n </div>\n )\n })}\n {router.state.pendingMatches?.length ? (\n <>\n <div\n style={{\n marginTop: '2rem',\n padding: '.5em',\n background: theme.backgroundAlt,\n position: 'sticky',\n top: 0,\n zIndex: 1,\n }}\n >\n Pending Matches\n </div>\n {router.state.pendingMatches?.map((match, i) => {\n return (\n <div\n key={match.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 background:\n match === activeMatch\n ? 'rgba(255,255,255,.1)'\n : undefined,\n }}\n >\n <div\n style={{\n flex: '0 0 auto',\n width: '1.3rem',\n height: '1.3rem',\n marginLeft: '.25rem',\n background: getStatusColor(match, theme),\n alignItems: 'center',\n justifyContent: 'center',\n fontWeight: 'bold',\n borderRadius: '.25rem',\n transition: 'all .2s ease-out',\n }}\n />\n\n <Code\n style={{\n padding: '.5em',\n }}\n >\n {`${match.matchId}`}\n </Code>\n </div>\n )\n })}\n </>\n ) : null}\n {matchCacheValues.length ? (\n <>\n <div\n style={{\n marginTop: '2rem',\n padding: '.5em',\n background: theme.backgroundAlt,\n position: 'sticky',\n top: 0,\n bottom: 0,\n zIndex: 1,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n }}\n >\n <div>Match Cache</div>\n <Button\n onClick={() => {\n router.matchCache = {}\n router.notify()\n }}\n >\n Clear\n </Button>\n </div>\n {matchCacheValues.map((d, i) => {\n const { match, gc } = d\n\n return (\n <div\n key={match.matchId || i}\n role=\"button\"\n aria-label={`Open match details for ${match.matchId}`}\n onClick={() =>\n setActiveMatchId(\n activeMatchId === match.matchId ? '' : match.matchId,\n )\n }\n style={{\n display: 'flex',\n borderBottom: `solid 1px ${theme.grayAlt}`,\n cursor: 'pointer',\n background:\n match === activeMatch\n ? 'rgba(255,255,255,.1)'\n : undefined,\n }}\n >\n <div\n style={{\n display: 'flex',\n flexDirection: 'column',\n padding: '.5rem',\n gap: '.3rem',\n }}\n >\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: '.5rem',\n }}\n >\n <div\n style={{\n flex: '0 0 auto',\n width: '1.3rem',\n height: '1.3rem',\n background: getStatusColor(match, theme),\n alignItems: 'center',\n justifyContent: 'center',\n fontWeight: 'bold',\n borderRadius: '.25rem',\n transition: 'all .2s ease-out',\n }}\n />\n <Code>{`${match.matchId}`}</Code>\n </div>\n <span\n style={{\n fontSize: '.7rem',\n opacity: '.5',\n lineHeight: 1,\n }}\n >\n Expires{' '}\n {formatDistanceStrict(new Date(gc), new Date(), {\n addSuffix: true,\n })}\n </span>\n </div>\n </div>\n )\n })}\n </>\n ) : null}\n </div>\n\n {activeMatch ? (\n <ActivePanel>\n <div\n style={{\n padding: '.5em',\n background: theme.backgroundAlt,\n position: 'sticky',\n top: 0,\n bottom: 0,\n zIndex: 1,\n }}\n >\n Match Details\n </div>\n <div>\n <table>\n <tbody>\n <tr>\n <td style={{ opacity: '.5' }}>ID</td>\n <td>\n <Code\n style={{\n lineHeight: '1.8em',\n }}\n >\n {JSON.stringify(activeMatch.matchId, 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.isInvalid.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={() => {\n activeMatch.invalidate()\n router.notify()\n }}\n style={{\n background: theme.warning,\n color: theme.inputTextColor,\n }}\n >\n Invalidate\n </Button>{' '}\n <Button\n type=\"button\"\n onClick={() => activeMatch.load()}\n style={{\n background: theme.gray,\n }}\n >\n Reload\n </Button>\n </div>\n <div\n style={{\n background: theme.backgroundAlt,\n padding: '.5em',\n position: 'sticky',\n top: 0,\n bottom: 0,\n zIndex: 1,\n }}\n >\n Explorer\n </div>\n <div\n style={{\n padding: '.5em',\n }}\n >\n <Explorer\n label=\"Match\"\n value={activeMatch}\n defaultExpanded={{}}\n />\n </div>\n </ActivePanel>\n ) : null}\n <div\n style={{\n flex: '1 1 500px',\n minHeight: '40%',\n maxHeight: '100%',\n overflow: 'auto',\n borderRight: `1px solid ${theme.grayAlt}`,\n display: 'flex',\n flexDirection: 'column',\n }}\n >\n <div\n style={{\n padding: '.5em',\n background: theme.backgroundAlt,\n position: 'sticky',\n top: 0,\n bottom: 0,\n zIndex: 1,\n }}\n >\n All Loader Data\n </div>\n <div\n style={{\n padding: '.5em',\n }}\n >\n {Object.keys(last(router.state.currentMatches)?.loaderData || {})\n .length ? (\n <Explorer\n value={last(router.state.currentMatches)?.loaderData || {}}\n defaultExpanded={Object.keys(\n (last(router.state.currentMatches)?.loaderData as {}) || {},\n ).reduce((obj: any, next) => {\n obj[next] = {}\n return obj\n }, {})}\n />\n ) : (\n <em style={{ opacity: 0.5 }}>{'{ }'}</em>\n )}\n </div>\n <div\n style={{\n padding: '.5em',\n background: theme.backgroundAlt,\n position: 'sticky',\n top: 0,\n bottom: 0,\n zIndex: 1,\n }}\n >\n Search Params\n </div>\n <div\n style={{\n padding: '.5em',\n }}\n >\n {Object.keys(last(router.state.currentMatches)?.search || {})\n .length ? (\n <Explorer\n value={last(router.state.currentMatches)?.search || {}}\n defaultExpanded={Object.keys(\n (last(router.state.currentMatches)?.search as {}) || {},\n ).reduce((obj: any, next) => {\n obj[next] = {}\n return obj\n }, {})}\n />\n ) : (\n <em style={{ opacity: 0.5 }}>{'{ }'}</em>\n )}\n </div>\n </div>\n </Panel>\n </ThemeProvider>\n )\n})\n"],"names":["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","_excluded","useTheme","useContext","useMediaQuery","query","isMatch","setIsMatch","window","matchMedia","matches","matcher","onChange","addListener","removeListener","isServer","getStatusColor","match","isFetching","status","styled","type","newStyles","queries","forwardRef","ref","style","mediaStyles","Object","entries","reduce","current","createElement","useIsMounted","mountedRef","useRef","isMounted","displayValue","name","getOwnPropertyNames","newValue","toString","useSafeState","initialState","state","setState","safeSetState","scheduleMicrotask","callback","Promise","resolve","then","catch","error","setTimeout","multiSortBy","arr","accessors","d","map","i","sort","a","ai","b","bi","accessor","ao","bo","Panel","_props","fontSize","fontFamily","display","backgroundColor","color","flexDirection","ActivePanel","flex","overflow","height","borderTop","Button","props","appearance","fontWeight","border","borderRadius","padding","opacity","disabled","cursor","Code","lineHeight","WebkitAppearance","backgroundImage","backgroundRepeat","backgroundPosition","backgroundSize","Entry","outline","wordBreak","Label","LabelButton","ExpandButton","font","Value","SubEntries","marginLeft","paddingLeft","borderLeft","Info","Expander","expanded","transition","transform","chunkArray","array","size","result","length","push","slice","DefaultRenderer","handleEntry","label","subEntries","subEntryPages","toggleExpanded","pageSize","renderer","expandedPages","setExpandedPages","valueSnapshot","setValueSnapshot","refreshValueSnapshot","String","toLowerCase","entry","index","includes","filter","isIterable","x","Symbol","iterator","Explorer","defaultExpanded","setExpanded","Boolean","makeProperty","sub","subDefaultExpanded","Array","isArray","from","val","Logo","alignItems","letterSpacing","WebkitBackgroundClip","marginRight","TanStackRouterDevtools","initialIsOpen","panelProps","closeButtonProps","toggleButtonProps","position","containerElement","Container","router","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","onClick","onCloseClick","otherCloseButtonProps","toggleButtonStyle","onToggleClick","otherToggleButtonProps","bottom","right","zIndex","width","maxHeight","boxShadow","transformOrigin","pointerEvents","e","margin","left","top","TanStackRouterDevtoolsPanel","userRouter","routerContextValue","routerContext","invariant","rerender","useReducer","interval","setInterval","cleanMatchCache","clearInterval","activeRouteId","setActiveRouteId","activeMatchId","setActiveMatchId","activeMatch","values","matchCache","find","matchId","currentMatches","routeId","matchCacheValues","keys","cacheEntry","gc","Date","now","updatedAt","__html","marginBottom","minHeight","borderRight","justifyContent","gap","overflowY","borderBottom","pendingMatches","marginTop","notify","formatDistanceStrict","addSuffix","isInvalid","toLocaleTimeString","invalidate","load","last","loaderData","obj","next","search"],"mappings":"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"}