@tanstack/router-devtools-core 1.136.4 → 1.136.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{BaseTanStackRouterDevtoolsPanel-BudcVtZF.js → BaseTanStackRouterDevtoolsPanel-BBz1qLry.js} +3 -3
- package/dist/BaseTanStackRouterDevtoolsPanel-BBz1qLry.js.map +1 -0
- package/dist/{BaseTanStackRouterDevtoolsPanel-CSLuWlgG.cjs → BaseTanStackRouterDevtoolsPanel-C9GdFKIw.cjs} +3 -3
- package/dist/BaseTanStackRouterDevtoolsPanel-C9GdFKIw.cjs.map +1 -0
- package/dist/{FloatingTanStackRouterDevtools-Oh23ljuQ.cjs → FloatingTanStackRouterDevtools-Ct_Co0zZ.cjs} +3 -3
- package/dist/{FloatingTanStackRouterDevtools-Oh23ljuQ.cjs.map → FloatingTanStackRouterDevtools-Ct_Co0zZ.cjs.map} +1 -1
- package/dist/{FloatingTanStackRouterDevtools-CXkXeTp3.js → FloatingTanStackRouterDevtools-DymJEvfG.js} +3 -3
- package/dist/{FloatingTanStackRouterDevtools-CXkXeTp3.js.map → FloatingTanStackRouterDevtools-DymJEvfG.js.map} +1 -1
- package/dist/cjs/index.cjs +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/{index-DYE2ZIkl.cjs → index-BMmDcU_C.cjs} +3 -3
- package/dist/{index-DYE2ZIkl.cjs.map → index-BMmDcU_C.cjs.map} +1 -1
- package/dist/{index-BtReV6vP.js → index-Bjd63dIw.js} +3 -3
- package/dist/{index-BtReV6vP.js.map → index-Bjd63dIw.js.map} +1 -1
- package/package.json +2 -2
- package/src/BaseTanStackRouterDevtoolsPanel.tsx +0 -1
- package/dist/BaseTanStackRouterDevtoolsPanel-BudcVtZF.js.map +0 -1
- package/dist/BaseTanStackRouterDevtoolsPanel-CSLuWlgG.cjs.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as createSignal, b as createEffect, g as createRenderEffect, u as useContext, S as ShadowDomTargetContext, k as delegateEvents, d as createMemo, t as template, i as insert, l as memo, e as createComponent, h as className, s as setAttribute, m as mergeProps, n as useDevtoolsOnClose, f as spread, o as addEventListener, p as untrack, M as Match, F as For, q as Switch, r as onCleanup, v as Show } from "./index-
|
|
1
|
+
import { a as createSignal, b as createEffect, g as createRenderEffect, u as useContext, S as ShadowDomTargetContext, k as delegateEvents, d as createMemo, t as template, i as insert, l as memo, e as createComponent, h as className, s as setAttribute, m as mergeProps, n as useDevtoolsOnClose, f as spread, o as addEventListener, p as untrack, M as Match, F as For, q as Switch, r as onCleanup, v as Show } from "./index-Bjd63dIw.js";
|
|
2
2
|
import { clsx } from "clsx";
|
|
3
3
|
import invariant from "tiny-invariant";
|
|
4
4
|
import { rootRouteId, trimPath, interpolatePath } from "@tanstack/router-core";
|
|
@@ -1430,7 +1430,7 @@ const BaseTanStackRouterDevtoolsPanel = function BaseTanStackRouterDevtoolsPanel
|
|
|
1430
1430
|
state: routerState()
|
|
1431
1431
|
};
|
|
1432
1432
|
});
|
|
1433
|
-
const routerExplorerValue = createMemo(() => Object.fromEntries(multiSortBy(Object.keys(explorerState()), ["state", "routesById", "routesByPath", "
|
|
1433
|
+
const routerExplorerValue = createMemo(() => Object.fromEntries(multiSortBy(Object.keys(explorerState()), ["state", "routesById", "routesByPath", "options", "manifest"].map((d) => (dd) => dd !== d)).map((key) => [key, explorerState()[key]]).filter((d) => typeof d[1] !== "function" && !["__store", "basepath", "injectedHtml", "subscribers", "latestLoadPromise", "navigateTimeout", "resetNextScroll", "tempLocationKey", "latestLocation", "routeTree", "history"].includes(d[0]))));
|
|
1434
1434
|
const activeMatchLoaderData = createMemo(() => activeMatch()?.loaderData);
|
|
1435
1435
|
const activeMatchValue = createMemo(() => activeMatch());
|
|
1436
1436
|
const locationSearchValue = createMemo(() => routerState().location.search);
|
|
@@ -1917,4 +1917,4 @@ export {
|
|
|
1917
1917
|
BaseTanStackRouterDevtoolsPanel$1 as c,
|
|
1918
1918
|
useLocalStorage as u
|
|
1919
1919
|
};
|
|
1920
|
-
//# sourceMappingURL=BaseTanStackRouterDevtoolsPanel-
|
|
1920
|
+
//# sourceMappingURL=BaseTanStackRouterDevtoolsPanel-BBz1qLry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseTanStackRouterDevtoolsPanel-BBz1qLry.js","sources":["../src/utils.tsx","../src/tokens.ts","../src/useStyles.tsx","../src/useLocalStorage.ts","../src/Explorer.tsx","../src/AgeTicker.tsx","../src/NavigateButton.tsx","../src/BaseTanStackRouterDevtoolsPanel.tsx"],"sourcesContent":["import { Dynamic } from 'solid-js/web'\nimport { createEffect, createRenderEffect, createSignal } from 'solid-js'\nimport { useTheme } from './theme'\nimport useMediaQuery from './useMediaQuery'\nimport type { AnyRoute, AnyRouteMatch } from '@tanstack/router-core'\n\nimport type { Theme } from './theme'\nimport type { JSX } from 'solid-js'\n\nexport const isServer = typeof window === 'undefined'\n\ntype StyledComponent<T> = T extends 'button'\n ? JSX.ButtonHTMLAttributes<HTMLButtonElement>\n : T extends 'input'\n ? JSX.InputHTMLAttributes<HTMLInputElement>\n : T extends 'select'\n ? JSX.SelectHTMLAttributes<HTMLSelectElement>\n : T extends keyof HTMLElementTagNameMap\n ? JSX.HTMLAttributes<HTMLElementTagNameMap[T]>\n : never\n\nexport function getStatusColor(match: AnyRouteMatch) {\n const colorMap = {\n pending: 'yellow',\n success: 'green',\n error: 'red',\n notFound: 'purple',\n redirected: 'gray',\n } as const\n\n return match.isFetching && match.status === 'success'\n ? match.isFetching === 'beforeLoad'\n ? 'purple'\n : 'blue'\n : colorMap[match.status]\n}\n\nexport function getRouteStatusColor(\n matches: Array<AnyRouteMatch>,\n route: AnyRoute,\n) {\n const found = matches.find((d) => d.routeId === route.id)\n if (!found) return 'gray'\n return getStatusColor(found)\n}\n\ntype Styles =\n | JSX.CSSProperties\n | ((props: Record<string, any>, theme: Theme) => JSX.CSSProperties)\n\nexport function styled<T extends keyof HTMLElementTagNameMap>(\n type: T,\n newStyles: Styles,\n queries: Record<string, Styles> = {},\n) {\n return ({\n ref,\n style,\n ...rest\n }: StyledComponent<T> & {\n ref?: HTMLElementTagNameMap[T] | undefined\n }) => {\n const theme = useTheme()\n\n const mediaStyles = Object.entries(queries).reduce(\n (current, [key, value]) => {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n return useMediaQuery(key)\n ? {\n ...current,\n ...(typeof value === 'function' ? value(rest, theme) : value),\n }\n : current\n },\n {},\n )\n\n const baseStyles =\n typeof newStyles === 'function' ? newStyles(rest, theme) : newStyles\n\n // Handle style being either a string or an object\n const combinedStyles =\n typeof style === 'string'\n ? { ...baseStyles, ...mediaStyles, cssText: style }\n : { ...baseStyles, ...style, ...mediaStyles }\n\n return (\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n <Dynamic component={type} {...rest} style={combinedStyles} ref={ref} />\n )\n }\n}\n\nexport function useIsMounted() {\n const [isMounted, setIsMounted] = createSignal(false)\n\n const effect = isServer ? createEffect : createRenderEffect\n\n effect(() => {\n setIsMounted(true)\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 try {\n return JSON.stringify(newValue, name)\n } catch (e) {\n return `unable to stringify`\n }\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] = createSignal(initialState)\n\n const safeSetState = (value: T) => {\n scheduleMicrotask(() => {\n if (isMounted()) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n setState(value)\n }\n })\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: Array<T>,\n accessors: Array<(item: T) => any> = [(d) => d],\n): Array<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","export const tokens = {\n colors: {\n inherit: 'inherit',\n current: 'currentColor',\n transparent: 'transparent',\n black: '#000000',\n white: '#ffffff',\n neutral: {\n 50: '#f9fafb',\n 100: '#f2f4f7',\n 200: '#eaecf0',\n 300: '#d0d5dd',\n 400: '#98a2b3',\n 500: '#667085',\n 600: '#475467',\n 700: '#344054',\n 800: '#1d2939',\n 900: '#101828',\n },\n darkGray: {\n 50: '#525c7a',\n 100: '#49536e',\n 200: '#414962',\n 300: '#394056',\n 400: '#313749',\n 500: '#292e3d',\n 600: '#212530',\n 700: '#191c24',\n 800: '#111318',\n 900: '#0b0d10',\n },\n gray: {\n 50: '#f9fafb',\n 100: '#f2f4f7',\n 200: '#eaecf0',\n 300: '#d0d5dd',\n 400: '#98a2b3',\n 500: '#667085',\n 600: '#475467',\n 700: '#344054',\n 800: '#1d2939',\n 900: '#101828',\n },\n blue: {\n 25: '#F5FAFF',\n 50: '#EFF8FF',\n 100: '#D1E9FF',\n 200: '#B2DDFF',\n 300: '#84CAFF',\n 400: '#53B1FD',\n 500: '#2E90FA',\n 600: '#1570EF',\n 700: '#175CD3',\n 800: '#1849A9',\n 900: '#194185',\n },\n green: {\n 25: '#F6FEF9',\n 50: '#ECFDF3',\n 100: '#D1FADF',\n 200: '#A6F4C5',\n 300: '#6CE9A6',\n 400: '#32D583',\n 500: '#12B76A',\n 600: '#039855',\n 700: '#027A48',\n 800: '#05603A',\n 900: '#054F31',\n },\n red: {\n 50: '#fef2f2',\n 100: '#fee2e2',\n 200: '#fecaca',\n 300: '#fca5a5',\n 400: '#f87171',\n 500: '#ef4444',\n 600: '#dc2626',\n 700: '#b91c1c',\n 800: '#991b1b',\n 900: '#7f1d1d',\n 950: '#450a0a',\n },\n yellow: {\n 25: '#FFFCF5',\n 50: '#FFFAEB',\n 100: '#FEF0C7',\n 200: '#FEDF89',\n 300: '#FEC84B',\n 400: '#FDB022',\n 500: '#F79009',\n 600: '#DC6803',\n 700: '#B54708',\n 800: '#93370D',\n 900: '#7A2E0E',\n },\n purple: {\n 25: '#FAFAFF',\n 50: '#F4F3FF',\n 100: '#EBE9FE',\n 200: '#D9D6FE',\n 300: '#BDB4FE',\n 400: '#9B8AFB',\n 500: '#7A5AF8',\n 600: '#6938EF',\n 700: '#5925DC',\n 800: '#4A1FB8',\n 900: '#3E1C96',\n },\n teal: {\n 25: '#F6FEFC',\n 50: '#F0FDF9',\n 100: '#CCFBEF',\n 200: '#99F6E0',\n 300: '#5FE9D0',\n 400: '#2ED3B7',\n 500: '#15B79E',\n 600: '#0E9384',\n 700: '#107569',\n 800: '#125D56',\n 900: '#134E48',\n },\n pink: {\n 25: '#fdf2f8',\n 50: '#fce7f3',\n 100: '#fbcfe8',\n 200: '#f9a8d4',\n 300: '#f472b6',\n 400: '#ec4899',\n 500: '#db2777',\n 600: '#be185d',\n 700: '#9d174d',\n 800: '#831843',\n 900: '#500724',\n },\n cyan: {\n 25: '#ecfeff',\n 50: '#cffafe',\n 100: '#a5f3fc',\n 200: '#67e8f9',\n 300: '#22d3ee',\n 400: '#06b6d4',\n 500: '#0891b2',\n 600: '#0e7490',\n 700: '#155e75',\n 800: '#164e63',\n 900: '#083344',\n },\n },\n alpha: {\n 100: 'ff',\n 90: 'e5',\n 80: 'cc',\n 70: 'b3',\n 60: '99',\n 50: '80',\n 40: '66',\n 30: '4d',\n 20: '33',\n 10: '1a',\n 0: '00',\n },\n font: {\n size: {\n '2xs': 'calc(var(--tsrd-font-size) * 0.625)',\n xs: 'calc(var(--tsrd-font-size) * 0.75)',\n sm: 'calc(var(--tsrd-font-size) * 0.875)',\n md: 'var(--tsrd-font-size)',\n lg: 'calc(var(--tsrd-font-size) * 1.125)',\n xl: 'calc(var(--tsrd-font-size) * 1.25)',\n '2xl': 'calc(var(--tsrd-font-size) * 1.5)',\n '3xl': 'calc(var(--tsrd-font-size) * 1.875)',\n '4xl': 'calc(var(--tsrd-font-size) * 2.25)',\n '5xl': 'calc(var(--tsrd-font-size) * 3)',\n '6xl': 'calc(var(--tsrd-font-size) * 3.75)',\n '7xl': 'calc(var(--tsrd-font-size) * 4.5)',\n '8xl': 'calc(var(--tsrd-font-size) * 6)',\n '9xl': 'calc(var(--tsrd-font-size) * 8)',\n },\n lineHeight: {\n '3xs': 'calc(var(--tsrd-font-size) * 0.75)',\n '2xs': 'calc(var(--tsrd-font-size) * 0.875)',\n xs: 'calc(var(--tsrd-font-size) * 1)',\n sm: 'calc(var(--tsrd-font-size) * 1.25)',\n md: 'calc(var(--tsrd-font-size) * 1.5)',\n lg: 'calc(var(--tsrd-font-size) * 1.75)',\n xl: 'calc(var(--tsrd-font-size) * 2)',\n '2xl': 'calc(var(--tsrd-font-size) * 2.25)',\n '3xl': 'calc(var(--tsrd-font-size) * 2.5)',\n '4xl': 'calc(var(--tsrd-font-size) * 2.75)',\n '5xl': 'calc(var(--tsrd-font-size) * 3)',\n '6xl': 'calc(var(--tsrd-font-size) * 3.25)',\n '7xl': 'calc(var(--tsrd-font-size) * 3.5)',\n '8xl': 'calc(var(--tsrd-font-size) * 3.75)',\n '9xl': 'calc(var(--tsrd-font-size) * 4)',\n },\n weight: {\n thin: '100',\n extralight: '200',\n light: '300',\n normal: '400',\n medium: '500',\n semibold: '600',\n bold: '700',\n extrabold: '800',\n black: '900',\n },\n fontFamily: {\n sans: 'ui-sans-serif, Inter, system-ui, sans-serif, sans-serif',\n mono: `ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace`,\n },\n },\n breakpoints: {\n xs: '320px',\n sm: '640px',\n md: '768px',\n lg: '1024px',\n xl: '1280px',\n '2xl': '1536px',\n },\n border: {\n radius: {\n none: '0px',\n xs: 'calc(var(--tsrd-font-size) * 0.125)',\n sm: 'calc(var(--tsrd-font-size) * 0.25)',\n md: 'calc(var(--tsrd-font-size) * 0.375)',\n lg: 'calc(var(--tsrd-font-size) * 0.5)',\n xl: 'calc(var(--tsrd-font-size) * 0.75)',\n '2xl': 'calc(var(--tsrd-font-size) * 1)',\n '3xl': 'calc(var(--tsrd-font-size) * 1.5)',\n full: '9999px',\n },\n },\n size: {\n 0: '0px',\n 0.25: 'calc(var(--tsrd-font-size) * 0.0625)',\n 0.5: 'calc(var(--tsrd-font-size) * 0.125)',\n 1: 'calc(var(--tsrd-font-size) * 0.25)',\n 1.5: 'calc(var(--tsrd-font-size) * 0.375)',\n 2: 'calc(var(--tsrd-font-size) * 0.5)',\n 2.5: 'calc(var(--tsrd-font-size) * 0.625)',\n 3: 'calc(var(--tsrd-font-size) * 0.75)',\n 3.5: 'calc(var(--tsrd-font-size) * 0.875)',\n 4: 'calc(var(--tsrd-font-size) * 1)',\n 4.5: 'calc(var(--tsrd-font-size) * 1.125)',\n 5: 'calc(var(--tsrd-font-size) * 1.25)',\n 5.5: 'calc(var(--tsrd-font-size) * 1.375)',\n 6: 'calc(var(--tsrd-font-size) * 1.5)',\n 6.5: 'calc(var(--tsrd-font-size) * 1.625)',\n 7: 'calc(var(--tsrd-font-size) * 1.75)',\n 8: 'calc(var(--tsrd-font-size) * 2)',\n 9: 'calc(var(--tsrd-font-size) * 2.25)',\n 10: 'calc(var(--tsrd-font-size) * 2.5)',\n 11: 'calc(var(--tsrd-font-size) * 2.75)',\n 12: 'calc(var(--tsrd-font-size) * 3)',\n 14: 'calc(var(--tsrd-font-size) * 3.5)',\n 16: 'calc(var(--tsrd-font-size) * 4)',\n 20: 'calc(var(--tsrd-font-size) * 5)',\n 24: 'calc(var(--tsrd-font-size) * 6)',\n 28: 'calc(var(--tsrd-font-size) * 7)',\n 32: 'calc(var(--tsrd-font-size) * 8)',\n 36: 'calc(var(--tsrd-font-size) * 9)',\n 40: 'calc(var(--tsrd-font-size) * 10)',\n 44: 'calc(var(--tsrd-font-size) * 11)',\n 48: 'calc(var(--tsrd-font-size) * 12)',\n 52: 'calc(var(--tsrd-font-size) * 13)',\n 56: 'calc(var(--tsrd-font-size) * 14)',\n 60: 'calc(var(--tsrd-font-size) * 15)',\n 64: 'calc(var(--tsrd-font-size) * 16)',\n 72: 'calc(var(--tsrd-font-size) * 18)',\n 80: 'calc(var(--tsrd-font-size) * 20)',\n 96: 'calc(var(--tsrd-font-size) * 24)',\n },\n shadow: {\n xs: (_: string = 'rgb(0 0 0 / 0.1)') =>\n `0 1px 2px 0 rgb(0 0 0 / 0.05)` as const,\n sm: (color: string = 'rgb(0 0 0 / 0.1)') =>\n `0 1px 3px 0 ${color}, 0 1px 2px -1px ${color}` as const,\n md: (color: string = 'rgb(0 0 0 / 0.1)') =>\n `0 4px 6px -1px ${color}, 0 2px 4px -2px ${color}` as const,\n lg: (color: string = 'rgb(0 0 0 / 0.1)') =>\n `0 10px 15px -3px ${color}, 0 4px 6px -4px ${color}` as const,\n xl: (color: string = 'rgb(0 0 0 / 0.1)') =>\n `0 20px 25px -5px ${color}, 0 8px 10px -6px ${color}` as const,\n '2xl': (color: string = 'rgb(0 0 0 / 0.25)') =>\n `0 25px 50px -12px ${color}` as const,\n inner: (color: string = 'rgb(0 0 0 / 0.05)') =>\n `inset 0 2px 4px 0 ${color}` as const,\n none: () => `none` as const,\n },\n zIndices: {\n hide: -1,\n auto: 'auto',\n base: 0,\n docked: 10,\n dropdown: 1000,\n sticky: 1100,\n banner: 1200,\n overlay: 1300,\n modal: 1400,\n popover: 1500,\n skipLink: 1600,\n toast: 1700,\n tooltip: 1800,\n },\n} as const\n","import * as goober from 'goober'\nimport { createSignal, useContext } from 'solid-js'\nimport { tokens } from './tokens'\nimport { ShadowDomTargetContext } from './context'\nimport type { Accessor } from 'solid-js'\n\nconst stylesFactory = (shadowDOMTarget?: ShadowRoot) => {\n const { colors, font, size, alpha, shadow, border } = tokens\n const { fontFamily, lineHeight, size: fontSize } = font\n const css = shadowDOMTarget\n ? goober.css.bind({ target: shadowDOMTarget })\n : goober.css\n\n return {\n devtoolsPanelContainer: css`\n direction: ltr;\n position: fixed;\n bottom: 0;\n right: 0;\n z-index: 99999;\n width: 100%;\n max-height: 90%;\n border-top: 1px solid ${colors.gray[700]};\n transform-origin: top;\n `,\n devtoolsPanelContainerVisibility: (isOpen: boolean) => {\n return css`\n visibility: ${isOpen ? 'visible' : 'hidden'};\n `\n },\n devtoolsPanelContainerResizing: (isResizing: Accessor<boolean>) => {\n if (isResizing()) {\n return css`\n transition: none;\n `\n }\n\n return css`\n transition: all 0.4s ease;\n `\n },\n devtoolsPanelContainerAnimation: (isOpen: boolean, height: number) => {\n if (isOpen) {\n return css`\n pointer-events: auto;\n transform: translateY(0);\n `\n }\n return css`\n pointer-events: none;\n transform: translateY(${height}px);\n `\n },\n logo: css`\n cursor: pointer;\n display: flex;\n flex-direction: column;\n background-color: transparent;\n border: none;\n font-family: ${fontFamily.sans};\n gap: ${tokens.size[0.5]};\n padding: 0px;\n &:hover {\n opacity: 0.7;\n }\n &:focus-visible {\n outline-offset: 4px;\n border-radius: ${border.radius.xs};\n outline: 2px solid ${colors.blue[800]};\n }\n `,\n tanstackLogo: css`\n font-size: ${font.size.md};\n font-weight: ${font.weight.bold};\n line-height: ${font.lineHeight.xs};\n white-space: nowrap;\n color: ${colors.gray[300]};\n `,\n routerLogo: css`\n font-weight: ${font.weight.semibold};\n font-size: ${font.size.xs};\n background: linear-gradient(to right, #84cc16, #10b981);\n background-clip: text;\n -webkit-background-clip: text;\n line-height: 1;\n -webkit-text-fill-color: transparent;\n white-space: nowrap;\n `,\n devtoolsPanel: css`\n display: flex;\n font-size: ${fontSize.sm};\n font-family: ${fontFamily.sans};\n background-color: ${colors.darkGray[700]};\n color: ${colors.gray[300]};\n\n @media (max-width: 700px) {\n flex-direction: column;\n }\n @media (max-width: 600px) {\n font-size: ${fontSize.xs};\n }\n `,\n dragHandle: css`\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 4px;\n cursor: row-resize;\n z-index: 100000;\n &:hover {\n background-color: ${colors.purple[400]}${alpha[90]};\n }\n `,\n firstContainer: css`\n flex: 1 1 500px;\n min-height: 40%;\n max-height: 100%;\n overflow: auto;\n border-right: 1px solid ${colors.gray[700]};\n display: flex;\n flex-direction: column;\n `,\n routerExplorerContainer: css`\n overflow-y: auto;\n flex: 1;\n `,\n routerExplorer: css`\n padding: ${tokens.size[2]};\n `,\n row: css`\n display: flex;\n align-items: center;\n padding: ${tokens.size[2]} ${tokens.size[2.5]};\n gap: ${tokens.size[2.5]};\n border-bottom: ${colors.darkGray[500]} 1px solid;\n align-items: center;\n `,\n detailsHeader: css`\n font-family: ui-sans-serif, Inter, system-ui, sans-serif, sans-serif;\n position: sticky;\n top: 0;\n z-index: 2;\n background-color: ${colors.darkGray[600]};\n padding: 0px ${tokens.size[2]};\n font-weight: ${font.weight.medium};\n font-size: ${font.size.xs};\n min-height: ${tokens.size[8]};\n line-height: ${font.lineHeight.xs};\n text-align: left;\n display: flex;\n align-items: center;\n `,\n maskedBadge: css`\n background: ${colors.yellow[900]}${alpha[70]};\n color: ${colors.yellow[300]};\n display: inline-block;\n padding: ${tokens.size[0]} ${tokens.size[2.5]};\n border-radius: ${border.radius.full};\n font-size: ${font.size.xs};\n font-weight: ${font.weight.normal};\n border: 1px solid ${colors.yellow[300]};\n `,\n maskedLocation: css`\n color: ${colors.yellow[300]};\n `,\n detailsContent: css`\n padding: ${tokens.size[1.5]} ${tokens.size[2]};\n display: flex;\n align-items: center;\n justify-content: space-between;\n font-size: ${font.size.xs};\n `,\n routeMatchesToggle: css`\n display: flex;\n align-items: center;\n border: 1px solid ${colors.gray[500]};\n border-radius: ${border.radius.sm};\n overflow: hidden;\n `,\n routeMatchesToggleBtn: (active: boolean, showBorder: boolean) => {\n const base = css`\n appearance: none;\n border: none;\n font-size: 12px;\n padding: 4px 8px;\n background: transparent;\n cursor: pointer;\n font-family: ${fontFamily.sans};\n font-weight: ${font.weight.medium};\n `\n const classes = [base]\n\n if (active) {\n const activeStyles = css`\n background: ${colors.darkGray[400]};\n color: ${colors.gray[300]};\n `\n classes.push(activeStyles)\n } else {\n const inactiveStyles = css`\n color: ${colors.gray[500]};\n background: ${colors.darkGray[800]}${alpha[20]};\n `\n classes.push(inactiveStyles)\n }\n\n if (showBorder) {\n classes.push(css`\n border-right: 1px solid ${tokens.colors.gray[500]};\n `)\n }\n\n return classes\n },\n detailsHeaderInfo: css`\n flex: 1;\n justify-content: flex-end;\n display: flex;\n align-items: center;\n font-weight: ${font.weight.normal};\n color: ${colors.gray[400]};\n `,\n matchRow: (active: boolean) => {\n const base = css`\n display: flex;\n border-bottom: 1px solid ${colors.darkGray[400]};\n cursor: pointer;\n align-items: center;\n padding: ${size[1]} ${size[2]};\n gap: ${size[2]};\n font-size: ${fontSize.xs};\n color: ${colors.gray[300]};\n `\n const classes = [base]\n\n if (active) {\n const activeStyles = css`\n background: ${colors.darkGray[500]};\n `\n classes.push(activeStyles)\n }\n\n return classes\n },\n matchIndicator: (\n color: 'green' | 'red' | 'yellow' | 'gray' | 'blue' | 'purple',\n ) => {\n const base = css`\n flex: 0 0 auto;\n width: ${size[3]};\n height: ${size[3]};\n background: ${colors[color][900]};\n border: 1px solid ${colors[color][500]};\n border-radius: ${border.radius.full};\n transition: all 0.25s ease-out;\n box-sizing: border-box;\n `\n const classes = [base]\n\n if (color === 'gray') {\n const grayStyles = css`\n background: ${colors.gray[700]};\n border-color: ${colors.gray[400]};\n `\n classes.push(grayStyles)\n }\n\n return classes\n },\n matchID: css`\n flex: 1;\n line-height: ${lineHeight['xs']};\n `,\n ageTicker: (showWarning: boolean) => {\n const base = css`\n display: flex;\n gap: ${size[1]};\n font-size: ${fontSize.xs};\n color: ${colors.gray[400]};\n font-variant-numeric: tabular-nums;\n line-height: ${lineHeight['xs']};\n `\n\n const classes = [base]\n\n if (showWarning) {\n const warningStyles = css`\n color: ${colors.yellow[400]};\n `\n classes.push(warningStyles)\n }\n\n return classes\n },\n secondContainer: css`\n flex: 1 1 500px;\n min-height: 40%;\n max-height: 100%;\n overflow: auto;\n border-right: 1px solid ${colors.gray[700]};\n display: flex;\n flex-direction: column;\n `,\n thirdContainer: css`\n flex: 1 1 500px;\n overflow: auto;\n display: flex;\n flex-direction: column;\n height: 100%;\n border-right: 1px solid ${colors.gray[700]};\n\n @media (max-width: 700px) {\n border-top: 2px solid ${colors.gray[700]};\n }\n `,\n fourthContainer: css`\n flex: 1 1 500px;\n min-height: 40%;\n max-height: 100%;\n overflow: auto;\n display: flex;\n flex-direction: column;\n `,\n routesContainer: css`\n overflow-x: auto;\n overflow-y: visible;\n `,\n routesRowContainer: (active: boolean, isMatch: boolean) => {\n const base = css`\n display: flex;\n border-bottom: 1px solid ${colors.darkGray[400]};\n align-items: center;\n padding: ${size[1]} ${size[2]};\n gap: ${size[2]};\n font-size: ${fontSize.xs};\n color: ${colors.gray[300]};\n cursor: ${isMatch ? 'pointer' : 'default'};\n line-height: ${lineHeight['xs']};\n `\n const classes = [base]\n\n if (active) {\n const activeStyles = css`\n background: ${colors.darkGray[500]};\n `\n classes.push(activeStyles)\n }\n\n return classes\n },\n routesRow: (isMatch: boolean) => {\n const base = css`\n flex: 1 0 auto;\n display: flex;\n justify-content: space-between;\n align-items: center;\n font-size: ${fontSize.xs};\n line-height: ${lineHeight['xs']};\n `\n\n const classes = [base]\n\n if (!isMatch) {\n const matchStyles = css`\n color: ${colors.gray[400]};\n `\n classes.push(matchStyles)\n }\n\n return classes\n },\n routesRowInner: css`\n display: 'flex';\n align-items: 'center';\n flex-grow: 1;\n min-width: 0;\n `,\n routeParamInfo: css`\n color: ${colors.gray[400]};\n font-size: ${fontSize.xs};\n line-height: ${lineHeight['xs']};\n `,\n nestedRouteRow: (isRoot: boolean) => {\n const base = css`\n margin-left: ${isRoot ? 0 : size[3.5]};\n border-left: ${isRoot ? '' : `solid 1px ${colors.gray[700]}`};\n `\n return base\n },\n code: css`\n font-size: ${fontSize.xs};\n line-height: ${lineHeight['xs']};\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n `,\n matchesContainer: css`\n flex: 1 1 auto;\n overflow-y: auto;\n `,\n cachedMatchesContainer: css`\n flex: 1 1 auto;\n overflow-y: auto;\n max-height: 50%;\n `,\n historyContainer: css`\n display: flex;\n flex: 1 1 auto;\n overflow-y: auto;\n max-height: 50%;\n `,\n historyOverflowContainer: css`\n padding: ${size[1]} ${size[2]};\n font-size: ${tokens.font.size.xs};\n `,\n maskedBadgeContainer: css`\n flex: 1;\n justify-content: flex-end;\n display: flex;\n `,\n matchDetails: css`\n display: flex;\n flex-direction: column;\n padding: ${tokens.size[2]};\n font-size: ${tokens.font.size.xs};\n color: ${tokens.colors.gray[300]};\n line-height: ${tokens.font.lineHeight.sm};\n `,\n matchStatus: (\n status: 'pending' | 'success' | 'error' | 'notFound' | 'redirected',\n isFetching: false | 'beforeLoad' | 'loader',\n ) => {\n const colorMap = {\n pending: 'yellow',\n success: 'green',\n error: 'red',\n notFound: 'purple',\n redirected: 'gray',\n } as const\n\n const color =\n isFetching && status === 'success'\n ? isFetching === 'beforeLoad'\n ? 'purple'\n : 'blue'\n : colorMap[status]\n\n return css`\n display: flex;\n justify-content: center;\n align-items: center;\n height: 40px;\n border-radius: ${tokens.border.radius.sm};\n font-weight: ${tokens.font.weight.normal};\n background-color: ${tokens.colors[color][900]}${tokens.alpha[90]};\n color: ${tokens.colors[color][300]};\n border: 1px solid ${tokens.colors[color][600]};\n margin-bottom: ${tokens.size[2]};\n transition: all 0.25s ease-out;\n `\n },\n matchDetailsInfo: css`\n display: flex;\n justify-content: flex-end;\n flex: 1;\n `,\n matchDetailsInfoLabel: css`\n display: flex;\n `,\n mainCloseBtn: css`\n background: ${colors.darkGray[700]};\n padding: ${size[1]} ${size[2]} ${size[1]} ${size[1.5]};\n border-radius: ${border.radius.md};\n position: fixed;\n z-index: 99999;\n display: inline-flex;\n width: fit-content;\n cursor: pointer;\n appearance: none;\n border: 0;\n gap: 8px;\n align-items: center;\n border: 1px solid ${colors.gray[500]};\n font-size: ${font.size.xs};\n cursor: pointer;\n transition: all 0.25s ease-out;\n\n &:hover {\n background: ${colors.darkGray[500]};\n }\n `,\n mainCloseBtnPosition: (\n position: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right',\n ) => {\n const base = css`\n ${position === 'top-left' ? `top: ${size[2]}; left: ${size[2]};` : ''}\n ${position === 'top-right' ? `top: ${size[2]}; right: ${size[2]};` : ''}\n ${position === 'bottom-left'\n ? `bottom: ${size[2]}; left: ${size[2]};`\n : ''}\n ${position === 'bottom-right'\n ? `bottom: ${size[2]}; right: ${size[2]};`\n : ''}\n `\n return base\n },\n mainCloseBtnAnimation: (isOpen: boolean) => {\n if (!isOpen) {\n return css`\n opacity: 1;\n pointer-events: auto;\n visibility: visible;\n `\n }\n return css`\n opacity: 0;\n pointer-events: none;\n visibility: hidden;\n `\n },\n routerLogoCloseButton: css`\n font-weight: ${font.weight.semibold};\n font-size: ${font.size.xs};\n background: linear-gradient(to right, #98f30c, #00f4a3);\n background-clip: text;\n -webkit-background-clip: text;\n line-height: 1;\n -webkit-text-fill-color: transparent;\n white-space: nowrap;\n `,\n mainCloseBtnDivider: css`\n width: 1px;\n background: ${tokens.colors.gray[600]};\n height: 100%;\n border-radius: 999999px;\n color: transparent;\n `,\n mainCloseBtnIconContainer: css`\n position: relative;\n width: ${size[5]};\n height: ${size[5]};\n background: pink;\n border-radius: 999999px;\n overflow: hidden;\n `,\n mainCloseBtnIconOuter: css`\n width: ${size[5]};\n height: ${size[5]};\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n filter: blur(3px) saturate(1.8) contrast(2);\n `,\n mainCloseBtnIconInner: css`\n width: ${size[4]};\n height: ${size[4]};\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n `,\n panelCloseBtn: css`\n position: absolute;\n cursor: pointer;\n z-index: 100001;\n display: flex;\n align-items: center;\n justify-content: center;\n outline: none;\n background-color: ${colors.darkGray[700]};\n &:hover {\n background-color: ${colors.darkGray[500]};\n }\n\n top: 0;\n right: ${size[2]};\n transform: translate(0, -100%);\n border-right: ${colors.darkGray[300]} 1px solid;\n border-left: ${colors.darkGray[300]} 1px solid;\n border-top: ${colors.darkGray[300]} 1px solid;\n border-bottom: none;\n border-radius: ${border.radius.sm} ${border.radius.sm} 0px 0px;\n padding: ${size[1]} ${size[1.5]} ${size[0.5]} ${size[1.5]};\n\n &::after {\n content: ' ';\n position: absolute;\n top: 100%;\n left: -${size[2.5]};\n height: ${size[1.5]};\n width: calc(100% + ${size[5]});\n }\n `,\n panelCloseBtnIcon: css`\n color: ${colors.gray[400]};\n width: ${size[2]};\n height: ${size[2]};\n `,\n navigateButton: css`\n background: none;\n border: none;\n padding: 0 0 0 4px;\n margin: 0;\n color: ${colors.gray[400]};\n font-size: ${fontSize.md};\n cursor: pointer;\n line-height: 1;\n vertical-align: middle;\n margin-right: 0.5ch;\n flex-shrink: 0;\n &:hover {\n color: ${colors.blue[300]};\n }\n `,\n }\n}\n\nexport function useStyles() {\n const shadowDomTarget = useContext(ShadowDomTargetContext)\n const [_styles] = createSignal(stylesFactory(shadowDomTarget))\n return _styles\n}\n","import { createEffect, createSignal } from 'solid-js'\nimport type { Accessor } from 'solid-js'\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): [Accessor<T | undefined>, (newVal: T | ((prevVal: T) => T)) => void] {\n const [value, setValue] = createSignal<T>()\n\n createEffect(() => {\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 // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n setValue(initialValue)\n }\n })\n\n const setter = (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\n return [value, setter]\n}\n","/* eslint-disable @typescript-eslint/no-unnecessary-condition */\nimport { clsx as cx } from 'clsx'\nimport * as goober from 'goober'\nimport { createMemo, createSignal, useContext } from 'solid-js'\nimport { tokens } from './tokens'\nimport { displayValue } from './utils'\nimport { ShadowDomTargetContext } from './context'\nimport type { Accessor, JSX } from 'solid-js'\n\ntype ExpanderProps = {\n expanded: boolean\n style?: JSX.CSSProperties\n}\n\nexport const Expander = ({ expanded, style = {} }: ExpanderProps) => {\n const styles = useStyles()\n return (\n <span class={styles().expander}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"12\"\n height=\"12\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n class={cx(styles().expanderIcon(expanded))}\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M9 18l6-6-6-6\"\n ></path>\n </svg>\n </span>\n )\n}\n\ntype Entry = {\n label: string\n}\n\ntype RendererProps = {\n handleEntry: HandleEntryFn\n label?: JSX.Element\n value: Accessor<unknown>\n subEntries: Array<Entry>\n subEntryPages: Array<Array<Entry>>\n type: string\n expanded: Accessor<boolean>\n toggleExpanded: () => void\n pageSize: number\n filterSubEntries?: (subEntries: Array<Property>) => Array<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: Array<T>, size: number): Array<Array<T>> {\n if (size < 1) return []\n let i = 0\n const result: Array<Array<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 HandleEntryFn = (entry: Entry) => JSX.Element\n\ntype ExplorerProps = Partial<RendererProps> & {\n defaultExpanded?: true | Record<string, boolean>\n value: Accessor<unknown>\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 function Explorer({\n value,\n defaultExpanded,\n pageSize = 100,\n filterSubEntries,\n ...rest\n}: ExplorerProps) {\n const [expanded, setExpanded] = createSignal(Boolean(defaultExpanded))\n const toggleExpanded = () => setExpanded((old) => !old)\n\n const type = createMemo(() => typeof value())\n const subEntries = createMemo(() => {\n let entries: Array<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 value: () => sub.value,\n defaultExpanded: subDefaultExpanded,\n }\n }\n\n if (Array.isArray(value())) {\n // any[]\n entries = (value() as Array<any>).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() as Iterable<unknown>)[Symbol.iterator] === 'function'\n ) {\n // Iterable<unknown>\n entries = Array.from(value() as Iterable<unknown>, (val, i) =>\n makeProperty({\n label: i.toString(),\n value: val,\n }),\n )\n } else if (typeof value() === 'object' && value() !== null) {\n // object\n entries = Object.entries(value() as object).map(([key, val]) =>\n makeProperty({\n label: key,\n value: val,\n }),\n )\n }\n\n return filterSubEntries ? filterSubEntries(entries) : entries\n })\n\n const subEntryPages = createMemo(() => chunkArray(subEntries(), pageSize))\n\n const [expandedPages, setExpandedPages] = createSignal<Array<number>>([])\n const [valueSnapshot, setValueSnapshot] = createSignal(undefined)\n const styles = useStyles()\n\n const refreshValueSnapshot = () => {\n setValueSnapshot((value() as () => any)())\n }\n\n const handleEntry = (entry: Entry) => (\n <Explorer\n value={value}\n filterSubEntries={filterSubEntries}\n {...rest}\n {...entry}\n />\n )\n\n return (\n <div class={styles().entry}>\n {subEntryPages().length ? (\n <>\n <button\n class={styles().expandButton}\n onClick={() => toggleExpanded()}\n >\n <Expander expanded={expanded() ?? false} />\n {rest.label}\n <span class={styles().info}>\n {String(type).toLowerCase() === 'iterable' ? '(Iterable) ' : ''}\n {subEntries().length} {subEntries().length > 1 ? `items` : `item`}\n </span>\n </button>\n {(expanded() ?? false) ? (\n subEntryPages().length === 1 ? (\n <div class={styles().subEntries}>\n {subEntries().map((entry, index) => handleEntry(entry))}\n </div>\n ) : (\n <div class={styles().subEntries}>\n {subEntryPages().map((entries, index) => {\n return (\n <div>\n <div class={styles().entry}>\n <button\n class={cx(styles().labelButton, 'labelButton')}\n onClick={() =>\n setExpandedPages((old) =>\n old.includes(index)\n ? old.filter((d) => d !== index)\n : [...old, index],\n )\n }\n >\n <Expander\n expanded={expandedPages().includes(index)}\n />{' '}\n [{index * pageSize} ...{' '}\n {index * pageSize + pageSize - 1}]\n </button>\n {expandedPages().includes(index) ? (\n <div class={styles().subEntries}>\n {entries.map((entry) => handleEntry(entry))}\n </div>\n ) : null}\n </div>\n </div>\n )\n })}\n </div>\n )\n ) : null}\n </>\n ) : type() === 'function' ? (\n <>\n <Explorer\n label={\n <button\n onClick={refreshValueSnapshot}\n class={styles().refreshValueBtn}\n >\n <span>{rest.label}</span> 🔄{' '}\n </button>\n }\n value={valueSnapshot}\n defaultExpanded={{}}\n />\n </>\n ) : (\n <>\n <span>{rest.label}:</span>{' '}\n <span class={styles().value}>{displayValue(value())}</span>\n </>\n )}\n </div>\n )\n}\n\nconst stylesFactory = (shadowDOMTarget?: ShadowRoot) => {\n const { colors, font, size, alpha, shadow, border } = tokens\n const { fontFamily, lineHeight, size: fontSize } = font\n const css = shadowDOMTarget\n ? goober.css.bind({ target: shadowDOMTarget })\n : goober.css\n\n return {\n entry: css`\n font-family: ${fontFamily.mono};\n font-size: ${fontSize.xs};\n line-height: ${lineHeight.sm};\n outline: none;\n word-break: break-word;\n `,\n labelButton: css`\n cursor: pointer;\n color: inherit;\n font: inherit;\n outline: inherit;\n background: transparent;\n border: none;\n padding: 0;\n `,\n expander: css`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: ${size[3]};\n height: ${size[3]};\n padding-left: 3px;\n box-sizing: content-box;\n `,\n expanderIcon: (expanded: boolean) => {\n if (expanded) {\n return css`\n transform: rotate(90deg);\n transition: transform 0.1s ease;\n `\n }\n return css`\n transform: rotate(0deg);\n transition: transform 0.1s ease;\n `\n },\n expandButton: css`\n display: flex;\n gap: ${size[1]};\n align-items: center;\n cursor: pointer;\n color: inherit;\n font: inherit;\n outline: inherit;\n background: transparent;\n border: none;\n padding: 0;\n `,\n value: css`\n color: ${colors.purple[400]};\n `,\n subEntries: css`\n margin-left: ${size[2]};\n padding-left: ${size[2]};\n border-left: 2px solid ${colors.darkGray[400]};\n `,\n info: css`\n color: ${colors.gray[500]};\n font-size: ${fontSize['2xs']};\n padding-left: ${size[1]};\n `,\n refreshValueBtn: css`\n appearance: none;\n border: 0;\n cursor: pointer;\n background: transparent;\n color: inherit;\n padding: 0;\n font-family: ${fontFamily.mono};\n font-size: ${fontSize.xs};\n `,\n }\n}\n\nfunction useStyles() {\n const shadowDomTarget = useContext(ShadowDomTargetContext)\n const [_styles] = createSignal(stylesFactory(shadowDomTarget))\n return _styles\n}\n","import { clsx as cx } from 'clsx'\nimport { useStyles } from './useStyles'\nimport type { AnyRouteMatch, AnyRouter } from '@tanstack/router-core'\nimport type { Accessor } from 'solid-js'\n\nfunction formatTime(ms: number) {\n const units = ['s', 'min', 'h', 'd']\n const values = [ms / 1000, ms / 60000, ms / 3600000, ms / 86400000]\n\n let chosenUnitIndex = 0\n for (let i = 1; i < values.length; i++) {\n if (values[i]! < 1) break\n chosenUnitIndex = i\n }\n\n const formatter = new Intl.NumberFormat(navigator.language, {\n compactDisplay: 'short',\n notation: 'compact',\n maximumFractionDigits: 0,\n })\n\n return formatter.format(values[chosenUnitIndex]!) + units[chosenUnitIndex]\n}\n\nexport function AgeTicker({\n match,\n router,\n}: {\n match?: AnyRouteMatch\n router: Accessor<AnyRouter>\n}) {\n const styles = useStyles()\n\n if (!match) {\n return null\n }\n\n const route = router().looseRoutesById[match.routeId]!\n\n if (!route.options.loader) {\n return null\n }\n\n const age = Date.now() - match.updatedAt\n const staleTime =\n route.options.staleTime ?? router().options.defaultStaleTime ?? 0\n const gcTime =\n route.options.gcTime ?? router().options.defaultGcTime ?? 30 * 60 * 1000\n\n return (\n <div class={cx(styles().ageTicker(age > staleTime))}>\n <div>{formatTime(age)}</div>\n <div>/</div>\n <div>{formatTime(staleTime)}</div>\n <div>/</div>\n <div>{formatTime(gcTime)}</div>\n </div>\n )\n}\n","import { useStyles } from './useStyles'\nimport type { AnyRouter, NavigateOptions } from '@tanstack/router-core'\nimport type { Accessor } from 'solid-js'\n\ninterface Props extends NavigateOptions {\n router: Accessor<AnyRouter>\n}\n\nexport function NavigateButton({ to, params, search, router }: Props) {\n const styles = useStyles()\n\n return (\n <button\n type=\"button\"\n title={`Navigate to ${to}`}\n class={styles().navigateButton}\n onClick={(e) => {\n e.stopPropagation()\n router().navigate({ to, params, search })\n }}\n >\n ➔\n </button>\n )\n}\n","import { clsx as cx } from 'clsx'\nimport { default as invariant } from 'tiny-invariant'\nimport { interpolatePath, rootRouteId, trimPath } from '@tanstack/router-core'\nimport {\n For,\n Match,\n Show,\n Switch,\n createEffect,\n createMemo,\n createSignal,\n onCleanup,\n untrack,\n} from 'solid-js'\nimport { useDevtoolsOnClose } from './context'\nimport { useStyles } from './useStyles'\nimport useLocalStorage from './useLocalStorage'\nimport { Explorer } from './Explorer'\nimport { getRouteStatusColor, getStatusColor, multiSortBy } from './utils'\nimport { AgeTicker } from './AgeTicker'\n// import type { DevtoolsPanelOptions } from './TanStackRouterDevtoolsPanel'\n\nimport { NavigateButton } from './NavigateButton'\nimport type {\n AnyContext,\n AnyRoute,\n AnyRouteMatch,\n AnyRouter,\n FileRouteTypes,\n MakeRouteMatchUnion,\n Route,\n RouterState,\n} from '@tanstack/router-core'\nimport type { Accessor, JSX } from 'solid-js'\n\nexport interface BaseDevtoolsPanelOptions {\n /**\n * The standard React style object used to style a component with inline styles\n */\n style?: Accessor<JSX.CSSProperties>\n /**\n * The standard React class property used to style a component with classes\n */\n className?: Accessor<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: any) => void\n /**\n * A boolean variable indicating if the \"lite\" version of the library is being used\n */\n router: Accessor<AnyRouter>\n routerState: Accessor<any>\n /**\n * Use this to attach the devtool's styles to specific element in the DOM.\n */\n shadowDOMTarget?: ShadowRoot\n}\n\nconst HISTORY_LIMIT = 15\n\nfunction Logo(props: any) {\n const { className, ...rest } = props\n const styles = useStyles()\n return (\n <button {...rest} class={cx(styles().logo, className ? className() : '')}>\n <div class={styles().tanstackLogo}>TANSTACK</div>\n <div class={styles().routerLogo}>TanStack Router v1</div>\n </button>\n )\n}\n\nfunction NavigateLink(props: {\n class?: string\n left?: JSX.Element\n children?: JSX.Element\n right?: JSX.Element\n}) {\n return (\n <div\n class={props.class}\n style={{\n display: 'flex',\n 'align-items': 'center',\n width: '100%',\n }}\n >\n {props.left}\n <div style={{ 'flex-grow': 1, 'min-width': 0 }}>{props.children}</div>\n {props.right}\n </div>\n )\n}\n\nfunction RouteComp({\n routerState,\n router,\n route,\n isRoot,\n activeId,\n setActiveId,\n}: {\n routerState: Accessor<\n RouterState<\n Route<\n any,\n any,\n any,\n '/',\n '/',\n string,\n '__root__',\n undefined,\n {},\n {},\n AnyContext,\n AnyContext,\n {},\n undefined,\n any,\n FileRouteTypes,\n unknown,\n undefined\n >,\n MakeRouteMatchUnion\n >\n >\n router: Accessor<AnyRouter>\n route: AnyRoute\n isRoot?: boolean\n activeId: Accessor<string | undefined>\n setActiveId: (id: string) => void\n}) {\n const styles = useStyles()\n const matches = createMemo(\n () => routerState().pendingMatches || routerState().matches,\n )\n const match = createMemo(() =>\n routerState().matches.find((d) => d.routeId === route.id),\n )\n\n const param = createMemo(() => {\n try {\n if (match()?.params) {\n const p = match()?.params\n const r: string = route.path || trimPath(route.id)\n if (r.startsWith('$')) {\n const trimmed = r.slice(1)\n\n if (p[trimmed]) {\n return `(${p[trimmed]})`\n }\n }\n }\n return ''\n } catch (error) {\n return ''\n }\n })\n\n const navigationTarget = createMemo<string | undefined>(() => {\n if (isRoot) return undefined // rootRouteId has no path\n if (!route.path) return undefined // no path to navigate to\n\n // flatten all params in the router state, into a single object\n const allParams = Object.assign({}, ...matches().map((m) => m.params))\n\n // interpolatePath is used by router-core to generate the `to`\n // path for the navigate function in the router\n const interpolated = interpolatePath({\n path: route.fullPath,\n params: allParams,\n decodeCharMap: router().pathParamsDecodeCharMap,\n })\n\n // only if `interpolated` is not missing params, return the path since this\n // means that all the params are present for a successful navigation\n return !interpolated.isMissingParams\n ? interpolated.interpolatedPath\n : undefined\n })\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 setActiveId(activeId() === route.id ? '' : route.id)\n }\n }}\n class={cx(\n styles().routesRowContainer(route.id === activeId(), !!match()),\n )}\n >\n <div\n class={cx(\n styles().matchIndicator(getRouteStatusColor(matches(), route)),\n )}\n />\n <NavigateLink\n class={cx(styles().routesRow(!!match()))}\n left={\n <Show when={navigationTarget()}>\n {(navigate) => <NavigateButton to={navigate()} router={router} />}\n </Show>\n }\n right={<AgeTicker match={match()} router={router} />}\n >\n <code class={styles().code}>\n {isRoot ? rootRouteId : route.path || trimPath(route.id)}{' '}\n </code>\n <code class={styles().routeParamInfo}>{param()}</code>\n </NavigateLink>\n </div>\n {route.children?.length ? (\n <div class={styles().nestedRouteRow(!!isRoot)}>\n {[...(route.children as Array<AnyRoute>)]\n .sort((a, b) => {\n return a.rank - b.rank\n })\n .map((r) => (\n <RouteComp\n routerState={routerState}\n router={router}\n route={r}\n activeId={activeId}\n setActiveId={setActiveId}\n />\n ))}\n </div>\n ) : null}\n </div>\n )\n}\n\nexport const BaseTanStackRouterDevtoolsPanel =\n function BaseTanStackRouterDevtoolsPanel({\n ...props\n }: BaseDevtoolsPanelOptions): JSX.Element {\n const {\n isOpen = true,\n setIsOpen,\n handleDragStart,\n router,\n routerState,\n shadowDOMTarget,\n ...panelProps\n } = props\n\n const { onCloseClick } = useDevtoolsOnClose()\n const styles = useStyles()\n const { className, style, ...otherPanelProps } = panelProps\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 [currentTab, setCurrentTab] = useLocalStorage<\n 'routes' | 'matches' | 'history'\n >('tanstackRouterDevtoolsActiveTab', 'routes')\n\n const [activeId, setActiveId] = useLocalStorage(\n 'tanstackRouterDevtoolsActiveRouteId',\n '',\n )\n\n const [history, setHistory] = createSignal<Array<AnyRouteMatch>>([])\n const [hasHistoryOverflowed, setHasHistoryOverflowed] = createSignal(false)\n\n createEffect(() => {\n const matches = routerState().matches\n const currentMatch = matches[matches.length - 1]\n if (!currentMatch) {\n return\n }\n // Read history WITHOUT tracking it to avoid infinite loops\n const historyUntracked = untrack(() => history())\n const lastMatch = historyUntracked[0]\n const sameLocation =\n lastMatch &&\n lastMatch.pathname === currentMatch.pathname &&\n JSON.stringify(lastMatch.search ?? {}) ===\n JSON.stringify(currentMatch.search ?? {})\n if (!lastMatch || !sameLocation) {\n if (historyUntracked.length >= HISTORY_LIMIT) {\n setHasHistoryOverflowed(true)\n }\n setHistory((prev) => {\n const newHistory = [currentMatch, ...prev]\n // truncate to ensure we don't overflow too much the ui\n newHistory.splice(HISTORY_LIMIT)\n return newHistory\n })\n }\n })\n\n const activeMatch = createMemo(() => {\n const matches = [\n ...(routerState().pendingMatches ?? []),\n ...routerState().matches,\n ...routerState().cachedMatches,\n ]\n return matches.find(\n (d) => d.routeId === activeId() || d.id === activeId(),\n )\n })\n\n const hasSearch = createMemo(\n () => Object.keys(routerState().location.search).length,\n )\n\n const explorerState = createMemo(() => {\n return {\n ...router(),\n state: routerState(),\n }\n })\n\n const routerExplorerValue = createMemo(() =>\n Object.fromEntries(\n multiSortBy(\n Object.keys(explorerState()),\n (\n [\n 'state',\n 'routesById',\n 'routesByPath',\n 'options',\n 'manifest',\n ] as const\n ).map((d) => (dd) => dd !== d),\n )\n .map((key) => [key, (explorerState() as any)[key]])\n .filter(\n (d) =>\n typeof d[1] !== 'function' &&\n ![\n '__store',\n 'basepath',\n 'injectedHtml',\n 'subscribers',\n 'latestLoadPromise',\n 'navigateTimeout',\n 'resetNextScroll',\n 'tempLocationKey',\n 'latestLocation',\n 'routeTree',\n 'history',\n ].includes(d[0]),\n ),\n ),\n )\n const activeMatchLoaderData = createMemo(() => activeMatch()?.loaderData)\n const activeMatchValue = createMemo(() => activeMatch())\n const locationSearchValue = createMemo(() => routerState().location.search)\n\n return (\n <div\n class={cx(\n styles().devtoolsPanel,\n 'TanStackRouterDevtoolsPanel',\n className ? className() : '',\n )}\n style={style ? style() : ''}\n {...otherPanelProps}\n >\n {handleDragStart ? (\n <div class={styles().dragHandle} onMouseDown={handleDragStart}></div>\n ) : null}\n <button\n class={styles().panelCloseBtn}\n onClick={(e: any) => {\n if (setIsOpen) {\n setIsOpen(false)\n }\n onCloseClick(e)\n }}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"10\"\n height=\"6\"\n fill=\"none\"\n viewBox=\"0 0 10 6\"\n class={styles().panelCloseBtnIcon}\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"1.667\"\n d=\"M1 1l4 4 4-4\"\n ></path>\n </svg>\n </button>\n <div class={styles().firstContainer}>\n <div class={styles().row}>\n <Logo\n aria-hidden\n onClick={(e: any) => {\n if (setIsOpen) {\n setIsOpen(false)\n }\n onCloseClick(e)\n }}\n />\n </div>\n <div class={styles().routerExplorerContainer}>\n <div class={styles().routerExplorer}>\n <Explorer\n label=\"Router\"\n value={routerExplorerValue}\n defaultExpanded={{\n state: {} as any,\n context: {} as any,\n options: {} as any,\n }}\n filterSubEntries={(subEntries) => {\n return subEntries.filter(\n (d: any) => typeof d.value() !== 'function',\n )\n }}\n />\n </div>\n </div>\n </div>\n <div class={styles().secondContainer}>\n <div class={styles().matchesContainer}>\n <div class={styles().detailsHeader}>\n <span>Pathname</span>\n {routerState().location.maskedLocation ? (\n <div class={styles().maskedBadgeContainer}>\n <span class={styles().maskedBadge}>masked</span>\n </div>\n ) : null}\n </div>\n <div class={styles().detailsContent}>\n <code>{routerState().location.pathname}</code>\n {routerState().location.maskedLocation ? (\n <code class={styles().maskedLocation}>\n {routerState().location.maskedLocation?.pathname}\n </code>\n ) : null}\n </div>\n <div class={styles().detailsHeader}>\n <div class={styles().routeMatchesToggle}>\n <button\n type=\"button\"\n onClick={() => {\n setCurrentTab('routes')\n }}\n disabled={currentTab() === 'routes'}\n class={cx(\n styles().routeMatchesToggleBtn(\n currentTab() === 'routes',\n true,\n ),\n )}\n >\n Routes\n </button>\n <button\n type=\"button\"\n onClick={() => {\n setCurrentTab('matches')\n }}\n disabled={currentTab() === 'matches'}\n class={cx(\n styles().routeMatchesToggleBtn(\n currentTab() === 'matches',\n true,\n ),\n )}\n >\n Matches\n </button>\n <button\n type=\"button\"\n onClick={() => {\n setCurrentTab('history')\n }}\n disabled={currentTab() === 'history'}\n class={cx(\n styles().routeMatchesToggleBtn(\n currentTab() === 'history',\n false,\n ),\n )}\n >\n History\n </button>\n </div>\n <div class={styles().detailsHeaderInfo}>\n <div>age / staleTime / gcTime</div>\n </div>\n </div>\n <div class={cx(styles().routesContainer)}>\n <Switch>\n <Match when={currentTab() === 'routes'}>\n <RouteComp\n routerState={routerState}\n router={router}\n route={router().routeTree}\n isRoot\n activeId={activeId}\n setActiveId={setActiveId}\n />\n </Match>\n <Match when={currentTab() === 'matches'}>\n <div>\n {(routerState().pendingMatches?.length\n ? routerState().pendingMatches\n : routerState().matches\n )?.map((match: any, _i: any) => {\n return (\n <div\n role=\"button\"\n aria-label={`Open match details for ${match.id}`}\n onClick={() =>\n setActiveId(activeId() === match.id ? '' : match.id)\n }\n class={cx(styles().matchRow(match === activeMatch()))}\n >\n <div\n class={cx(\n styles().matchIndicator(getStatusColor(match)),\n )}\n />\n <NavigateLink\n left={\n <NavigateButton\n to={match.pathname}\n params={match.params}\n search={match.search}\n router={router}\n />\n }\n right={<AgeTicker match={match} router={router} />}\n >\n <code class={styles().matchID}>\n {`${match.routeId === rootRouteId ? rootRouteId : match.pathname}`}\n </code>\n </NavigateLink>\n </div>\n )\n })}\n </div>\n </Match>\n <Match when={currentTab() === 'history'}>\n <div>\n <ul>\n <For each={history()}>\n {(match, index) => (\n <li\n class={cx(\n styles().matchRow(match === activeMatch()),\n )}\n >\n <div\n class={cx(\n styles().matchIndicator(\n index() === 0 ? 'green' : 'gray',\n ),\n )}\n />\n <NavigateLink\n left={\n <NavigateButton\n to={match.pathname}\n params={match.params}\n search={match.search}\n router={router}\n />\n }\n right={\n <AgeTicker match={match} router={router} />\n }\n >\n <code class={styles().matchID}>\n {`${match.routeId === rootRouteId ? rootRouteId : match.pathname}`}\n </code>\n </NavigateLink>\n </li>\n )}\n </For>\n {hasHistoryOverflowed() ? (\n <li class={styles().historyOverflowContainer}>\n This panel displays the most recent {HISTORY_LIMIT}{' '}\n navigations.\n </li>\n ) : null}\n </ul>\n </div>\n </Match>\n </Switch>\n </div>\n </div>\n {routerState().cachedMatches.length ? (\n <div class={styles().cachedMatchesContainer}>\n <div class={styles().detailsHeader}>\n <div>Cached Matches</div>\n <div class={styles().detailsHeaderInfo}>\n age / staleTime / gcTime\n </div>\n </div>\n <div>\n {routerState().cachedMatches.map((match: any) => {\n return (\n <div\n role=\"button\"\n aria-label={`Open match details for ${match.id}`}\n onClick={() =>\n setActiveId(activeId() === match.id ? '' : match.id)\n }\n class={cx(styles().matchRow(match === activeMatch()))}\n >\n <div\n class={cx(\n styles().matchIndicator(getStatusColor(match)),\n )}\n />\n <NavigateLink\n left={\n <NavigateButton\n to={match.pathname}\n params={match.params}\n search={match.search}\n router={router}\n />\n }\n right={<AgeTicker match={match} router={router} />}\n >\n <code class={styles().matchID}>{`${match.id}`}</code>\n </NavigateLink>\n </div>\n )\n })}\n </div>\n </div>\n ) : null}\n </div>\n {activeMatch() && activeMatch()?.status ? (\n <div class={styles().thirdContainer}>\n <div class={styles().detailsHeader}>Match Details</div>\n <div>\n <div class={styles().matchDetails}>\n <div\n class={styles().matchStatus(\n activeMatch()?.status,\n activeMatch()?.isFetching,\n )}\n >\n <div>\n {activeMatch()?.status === 'success' &&\n activeMatch()?.isFetching\n ? 'fetching'\n : activeMatch()?.status}\n </div>\n </div>\n <div class={styles().matchDetailsInfoLabel}>\n <div>ID:</div>\n <div class={styles().matchDetailsInfo}>\n <code>{activeMatch()?.id}</code>\n </div>\n </div>\n <div class={styles().matchDetailsInfoLabel}>\n <div>State:</div>\n <div class={styles().matchDetailsInfo}>\n {routerState().pendingMatches?.find(\n (d: any) => d.id === activeMatch()?.id,\n )\n ? 'Pending'\n : routerState().matches.find(\n (d: any) => d.id === activeMatch()?.id,\n )\n ? 'Active'\n : 'Cached'}\n </div>\n </div>\n <div class={styles().matchDetailsInfoLabel}>\n <div>Last Updated:</div>\n <div class={styles().matchDetailsInfo}>\n {activeMatch()?.updatedAt\n ? new Date(activeMatch()?.updatedAt).toLocaleTimeString()\n : 'N/A'}\n </div>\n </div>\n </div>\n </div>\n {activeMatchLoaderData() ? (\n <>\n <div class={styles().detailsHeader}>Loader Data</div>\n <div class={styles().detailsContent}>\n <Explorer\n label=\"loaderData\"\n value={activeMatchLoaderData}\n defaultExpanded={{}}\n />\n </div>\n </>\n ) : null}\n <div class={styles().detailsHeader}>Explorer</div>\n <div class={styles().detailsContent}>\n <Explorer\n label=\"Match\"\n value={activeMatchValue}\n defaultExpanded={{}}\n />\n </div>\n </div>\n ) : null}\n {hasSearch() ? (\n <div class={styles().fourthContainer}>\n <div class={styles().detailsHeader}>\n <span>Search Params</span>\n {typeof navigator !== 'undefined' ? (\n <span style=\"margin-left: 0.5rem;\">\n <CopyButton\n getValue={() => {\n const search = routerState().location.search\n return JSON.stringify(search)\n }}\n />\n </span>\n ) : null}\n </div>\n <div class={styles().detailsContent}>\n <Explorer\n value={locationSearchValue}\n defaultExpanded={Object.keys(\n routerState().location.search,\n ).reduce((obj: any, next) => {\n obj[next] = {}\n return obj\n }, {})}\n />\n </div>\n </div>\n ) : null}\n </div>\n )\n }\n\nfunction CopyButton({ getValue }: { getValue: () => string }) {\n const [copied, setCopied] = createSignal(false)\n\n let timeoutId: ReturnType<typeof setTimeout> | null = null\n\n const handleCopy = async () => {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (typeof navigator === 'undefined' || !navigator.clipboard?.writeText) {\n console.warn('TanStack Router Devtools: Clipboard API unavailable')\n return\n }\n try {\n const value = getValue()\n await navigator.clipboard.writeText(value)\n setCopied(true)\n if (timeoutId) clearTimeout(timeoutId)\n timeoutId = setTimeout(() => setCopied(false), 2500)\n } catch (e) {\n console.error('TanStack Router Devtools: Failed to copy', e)\n }\n }\n\n onCleanup(() => {\n if (timeoutId) clearTimeout(timeoutId)\n })\n\n return (\n <button\n type=\"button\"\n style=\"cursor: pointer;\"\n onClick={handleCopy}\n aria-label=\"Copy value to clipboard\"\n title={copied() ? 'Copied!' : 'Copy'}\n >\n {copied() ? '✅' : '📋'}\n </button>\n )\n}\n\nexport default BaseTanStackRouterDevtoolsPanel\n"],"names":["isServer","window","getStatusColor","match","colorMap","pending","success","error","notFound","redirected","isFetching","status","getRouteStatusColor","matches","route","found","find","d","routeId","id","useIsMounted","isMounted","setIsMounted","createSignal","effect","createEffect","createRenderEffect","displayValue","value","name","Object","getOwnPropertyNames","newValue","toString","JSON","stringify","e","multiSortBy","arr","accessors","map","i","sort","a","ai","b","bi","accessor","ao","bo","stylesFactory","shadowDOMTarget","colors","font","size","alpha","border","tokens","fontFamily","lineHeight","fontSize","css","goober","bind","target","devtoolsPanelContainer","gray","devtoolsPanelContainerVisibility","isOpen","devtoolsPanelContainerResizing","isResizing","devtoolsPanelContainerAnimation","height","logo","sans","radius","xs","blue","tanstackLogo","md","weight","bold","routerLogo","semibold","devtoolsPanel","sm","darkGray","dragHandle","purple","firstContainer","routerExplorerContainer","routerExplorer","row","detailsHeader","medium","maskedBadge","yellow","full","normal","maskedLocation","detailsContent","routeMatchesToggle","routeMatchesToggleBtn","active","showBorder","base","classes","activeStyles","push","inactiveStyles","detailsHeaderInfo","matchRow","matchIndicator","color","grayStyles","matchID","ageTicker","showWarning","warningStyles","secondContainer","thirdContainer","fourthContainer","routesContainer","routesRowContainer","isMatch","routesRow","matchStyles","routesRowInner","routeParamInfo","nestedRouteRow","isRoot","code","matchesContainer","cachedMatchesContainer","historyContainer","historyOverflowContainer","maskedBadgeContainer","matchDetails","matchStatus","matchDetailsInfo","matchDetailsInfoLabel","mainCloseBtn","mainCloseBtnPosition","position","mainCloseBtnAnimation","routerLogoCloseButton","mainCloseBtnDivider","mainCloseBtnIconContainer","mainCloseBtnIconOuter","mainCloseBtnIconInner","panelCloseBtn","panelCloseBtnIcon","navigateButton","useStyles","shadowDomTarget","useContext","ShadowDomTargetContext","_styles","Expander","expanded","style","styles","_el$","_tmpl$","_el$2","firstChild","_$effect","_p$","_v$","expander","_v$2","cx","expanderIcon","_$className","t","_$setAttribute","undefined","chunkArray","array","result","length","slice","isIterable","x","Symbol","iterator","Explorer","defaultExpanded","pageSize","filterSubEntries","rest","setExpanded","Boolean","toggleExpanded","old","type","createMemo","subEntries","entries","makeProperty","sub","subDefaultExpanded","label","Array","isArray","from","val","key","subEntryPages","expandedPages","setExpandedPages","valueSnapshot","setValueSnapshot","refreshValueSnapshot","handleEntry","entry","_$createComponent","_$mergeProps","_el$3","_tmpl$2","_$insert","_c$","_$memo","_el$4","_tmpl$3","_el$5","_el$6","$$click","String","toLowerCase","_v$3","expandButton","_v$4","info","_el$7","index","_el$8","_el$9","_tmpl$4","_el$0","_el$1","_el$10","_el$15","nextSibling","_el$12","_el$16","includes","filter","_c$2","_el$17","_v$5","_v$6","labelButton","_el$18","_tmpl$5","_el$19","refreshValueBtn","_el$20","_tmpl$6","_el$21","_el$22","_tmpl$7","mono","_$delegateEvents","formatTime","ms","units","values","chosenUnitIndex","formatter","Intl","NumberFormat","navigator","language","compactDisplay","notation","maximumFractionDigits","format","AgeTicker","router","looseRoutesById","options","loader","age","Date","now","updatedAt","staleTime","defaultStaleTime","gcTime","defaultGcTime","NavigateButton","to","params","search","stopPropagation","navigate","HISTORY_LIMIT","Logo","props","className","_$spread","NavigateLink","left","children","right","class","RouteComp","routerState","activeId","setActiveId","pendingMatches","param","p","r","path","trimPath","startsWith","trimmed","navigationTarget","allParams","assign","m","interpolated","interpolatePath","fullPath","decodeCharMap","pathParamsDecodeCharMap","isMissingParams","interpolatedPath","Show","when","rootRouteId","rank","BaseTanStackRouterDevtoolsPanel","setIsOpen","handleDragStart","panelProps","onCloseClick","useDevtoolsOnClose","otherPanelProps","invariant","currentTab","setCurrentTab","useLocalStorage","history","setHistory","hasHistoryOverflowed","setHasHistoryOverflowed","currentMatch","historyUntracked","untrack","lastMatch","sameLocation","pathname","prev","newHistory","splice","activeMatch","cachedMatches","hasSearch","keys","location","explorerState","state","routerExplorerValue","fromEntries","dd","activeMatchLoaderData","loaderData","activeMatchValue","locationSearchValue","_el$11","_tmpl$8","_el$13","_el$14","_el$23","_el$24","_el$25","_el$26","_el$27","_el$28","_el$29","_el$30","_el$34","_$addEventListener","onClick","context","_el$35","_tmpl$9","_el$36","_v$24","_v$25","_c$3","_el$37","Switch","Match","routeTree","_el$31","_i","_el$38","_tmpl$0","_el$39","_el$40","_v$26","_v$27","_v$28","_el$32","_el$33","For","each","_el$41","_tmpl$1","_el$42","_el$43","_v$29","_v$30","_c$4","_el$44","_tmpl$10","_c$5","_el$45","_tmpl$11","_el$46","_el$47","_el$48","_el$49","_el$50","_el$51","_el$52","_v$34","_v$35","_v$36","_v$31","_v$32","_v$33","_c$6","_el$53","_tmpl$12","_el$54","_el$55","_el$56","_el$57","_el$58","_el$59","_el$60","_el$61","_el$62","_el$63","_el$64","_el$65","_el$66","_el$67","_el$68","_el$69","_el$70","_c$8","_c$9","_c$0","toLocaleTimeString","_c$1","_el$71","_tmpl$13","_el$72","_v$37","_v$38","_v$39","_v$40","_v$41","_v$42","_v$43","_v$44","_v$45","_v$46","_v$47","_v$48","o","n","s","h","l","u","_c$7","_el$73","_tmpl$14","_el$74","_el$76","_el$77","_tmpl$15","CopyButton","getValue","reduce","obj","next","_v$49","_v$50","_v$51","_v$7","_v$8","_v$9","_v$0","_v$1","_v$10","_v$11","_v$12","_v$13","_v$14","_v$15","_v$16","_v$17","_v$18","_v$19","_v$20","_v$21","_v$22","_v$23","c","disabled","w","f","y","g","copied","setCopied","timeoutId","handleCopy","clipboard","writeText","console","warn","setTimeout","onCleanup","_el$78","_tmpl$16"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
const index = require("./index-
|
|
2
|
+
const index = require("./index-BMmDcU_C.cjs");
|
|
3
3
|
const clsx = require("clsx");
|
|
4
4
|
const invariant = require("tiny-invariant");
|
|
5
5
|
const routerCore = require("@tanstack/router-core");
|
|
@@ -1448,7 +1448,7 @@ const BaseTanStackRouterDevtoolsPanel = function BaseTanStackRouterDevtoolsPanel
|
|
|
1448
1448
|
state: routerState()
|
|
1449
1449
|
};
|
|
1450
1450
|
});
|
|
1451
|
-
const routerExplorerValue = index.createMemo(() => Object.fromEntries(multiSortBy(Object.keys(explorerState()), ["state", "routesById", "routesByPath", "
|
|
1451
|
+
const routerExplorerValue = index.createMemo(() => Object.fromEntries(multiSortBy(Object.keys(explorerState()), ["state", "routesById", "routesByPath", "options", "manifest"].map((d) => (dd) => dd !== d)).map((key) => [key, explorerState()[key]]).filter((d) => typeof d[1] !== "function" && !["__store", "basepath", "injectedHtml", "subscribers", "latestLoadPromise", "navigateTimeout", "resetNextScroll", "tempLocationKey", "latestLocation", "routeTree", "history"].includes(d[0]))));
|
|
1452
1452
|
const activeMatchLoaderData = index.createMemo(() => activeMatch()?.loaderData);
|
|
1453
1453
|
const activeMatchValue = index.createMemo(() => activeMatch());
|
|
1454
1454
|
const locationSearchValue = index.createMemo(() => routerState().location.search);
|
|
@@ -1933,4 +1933,4 @@ exports.BaseTanStackRouterDevtoolsPanel$1 = BaseTanStackRouterDevtoolsPanel$1;
|
|
|
1933
1933
|
exports.useIsMounted = useIsMounted;
|
|
1934
1934
|
exports.useLocalStorage = useLocalStorage;
|
|
1935
1935
|
exports.useStyles = useStyles$1;
|
|
1936
|
-
//# sourceMappingURL=BaseTanStackRouterDevtoolsPanel-
|
|
1936
|
+
//# sourceMappingURL=BaseTanStackRouterDevtoolsPanel-C9GdFKIw.cjs.map
|