@tanstack/router-devtools-core 1.166.7 → 1.166.9

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.
Files changed (29) hide show
  1. package/dist/BaseTanStackRouterDevtoolsPanel-B43j38ty.js +1940 -0
  2. package/dist/BaseTanStackRouterDevtoolsPanel-B43j38ty.js.map +1 -0
  3. package/dist/BaseTanStackRouterDevtoolsPanel-DdB0IT5G.cjs +1969 -0
  4. package/dist/BaseTanStackRouterDevtoolsPanel-DdB0IT5G.cjs.map +1 -0
  5. package/dist/FloatingTanStackRouterDevtools-B12ktJLj.js +240 -0
  6. package/dist/FloatingTanStackRouterDevtools-B12ktJLj.js.map +1 -0
  7. package/dist/FloatingTanStackRouterDevtools-TVrd9NKL.cjs +241 -0
  8. package/dist/FloatingTanStackRouterDevtools-TVrd9NKL.cjs.map +1 -0
  9. package/dist/cjs/index.cjs +170 -5
  10. package/dist/cjs/index.cjs.map +1 -1
  11. package/dist/context-D56_tqst.js +1749 -0
  12. package/dist/context-D56_tqst.js.map +1 -0
  13. package/dist/context-DZa5WwQ_.cjs +1916 -0
  14. package/dist/context-DZa5WwQ_.cjs.map +1 -0
  15. package/dist/esm/index.js +168 -5
  16. package/dist/esm/index.js.map +1 -1
  17. package/package.json +2 -2
  18. package/dist/BaseTanStackRouterDevtoolsPanel-BgiCKo12.cjs +0 -1936
  19. package/dist/BaseTanStackRouterDevtoolsPanel-BgiCKo12.cjs.map +0 -1
  20. package/dist/BaseTanStackRouterDevtoolsPanel-Bmws3ikM.js +0 -1920
  21. package/dist/BaseTanStackRouterDevtoolsPanel-Bmws3ikM.js.map +0 -1
  22. package/dist/FloatingTanStackRouterDevtools-B7vy70jP.js +0 -281
  23. package/dist/FloatingTanStackRouterDevtools-B7vy70jP.js.map +0 -1
  24. package/dist/FloatingTanStackRouterDevtools-C-LyXpEh.cjs +0 -281
  25. package/dist/FloatingTanStackRouterDevtools-C-LyXpEh.cjs.map +0 -1
  26. package/dist/index-BoYu2KZp.cjs +0 -1822
  27. package/dist/index-BoYu2KZp.cjs.map +0 -1
  28. package/dist/index-DQ3FiKl6.js +0 -1823
  29. package/dist/index-DQ3FiKl6.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseTanStackRouterDevtoolsPanel-DdB0IT5G.cjs","names":["goober","createSignal","useContext","tokens","ShadowDomTargetContext","Accessor","stylesFactory","shadowDOMTarget","ShadowRoot","colors","font","size","alpha","shadow","border","fontFamily","lineHeight","fontSize","css","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","status","isFetching","colorMap","pending","success","error","notFound","redirected","const","matchDetailsInfo","matchDetailsInfoLabel","mainCloseBtn","mainCloseBtnPosition","position","mainCloseBtnAnimation","routerLogoCloseButton","mainCloseBtnDivider","mainCloseBtnIconContainer","mainCloseBtnIconOuter","mainCloseBtnIconInner","panelCloseBtn","panelCloseBtnIcon","navigateButton","useStyles","shadowDomTarget","_styles","Dynamic","createEffect","createRenderEffect","createSignal","useTheme","useMediaQuery","AnyRoute","AnyRouteMatch","Theme","JSX","isServer","window","StyledComponent","T","ButtonHTMLAttributes","HTMLButtonElement","InputHTMLAttributes","HTMLInputElement","SelectHTMLAttributes","HTMLSelectElement","HTMLElementTagNameMap","HTMLAttributes","getStatusColor","match","colorMap","pending","success","error","notFound","redirected","const","isFetching","status","getRouteStatusColor","matches","Array","route","found","find","d","routeId","id","Styles","CSSProperties","props","Record","theme","styled","type","newStyles","queries","ref","style","rest","mediaStyles","Object","entries","reduce","current","key","value","baseStyles","combinedStyles","cssText","_$createComponent","_$mergeProps","component","r$","_ref$","useIsMounted","isMounted","setIsMounted","effect","displayValue","name","getOwnPropertyNames","newValue","toString","JSON","stringify","e","useSafeState","initialState","state","setState","safeSetState","scheduleMicrotask","callback","Promise","resolve","then","catch","setTimeout","multiSortBy","arr","accessors","item","map","i","sort","a","ai","b","bi","accessor","ao","bo","clsx","cx","goober","createMemo","createSignal","useContext","tokens","displayValue","ShadowDomTargetContext","Accessor","JSX","ExpanderProps","expanded","style","CSSProperties","Expander","styles","useStyles","_el$","_tmpl$","_el$2","firstChild","_$effect","_p$","_v$","expander","_v$2","expanderIcon","e","_$className","t","_$setAttribute","undefined","Entry","label","RendererProps","handleEntry","HandleEntryFn","Element","value","subEntries","Array","subEntryPages","type","toggleExpanded","pageSize","filterSubEntries","Property","chunkArray","array","T","size","i","result","length","push","slice","entry","ExplorerProps","Partial","defaultExpanded","Record","isIterable","x","Iterable","Symbol","iterator","Explorer","rest","setExpanded","Boolean","old","entries","makeProperty","sub","subDefaultExpanded","isArray","map","d","toString","from","val","Object","key","expandedPages","setExpandedPages","valueSnapshot","setValueSnapshot","refreshValueSnapshot","_$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","_el$14","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","stylesFactory","shadowDOMTarget","ShadowRoot","colors","font","alpha","shadow","border","fontFamily","lineHeight","fontSize","css","bind","target","mono","xs","sm","purple","darkGray","gray","shadowDomTarget","_styles","_$delegateEvents","clsx","cx","useStyles","AnyRouteMatch","AnyRouter","Accessor","formatTime","ms","units","values","chosenUnitIndex","i","length","formatter","Intl","NumberFormat","navigator","language","compactDisplay","notation","maximumFractionDigits","format","AgeTicker","match","router","styles","route","looseRoutesById","routeId","options","loader","age","Date","now","updatedAt","staleTime","defaultStaleTime","gcTime","defaultGcTime","_el$","_tmpl$","_el$2","firstChild","_el$3","nextSibling","_el$4","_el$5","_el$6","_$insert","_$effect","_$className","ageTicker","useStyles","AnyRouter","NavigateOptions","Accessor","Props","router","NavigateButton","to","params","search","styles","_el$","_tmpl$","$$click","e","stopPropagation","navigate","_$setAttribute","_$effect","_$className","navigateButton","_$delegateEvents","clsx","cx","default","invariant","interpolatePath","rootRouteId","trimPath","For","Match","Show","Switch","createEffect","createMemo","createSignal","onCleanup","untrack","useDevtoolsOnClose","useStyles","useLocalStorage","Explorer","getRouteStatusColor","getStatusColor","multiSortBy","AgeTicker","NavigateButton","AnyContext","AnyRoute","AnyRouteMatch","AnyRouter","FileRouteTypes","MakeRouteMatchUnion","Route","RouterState","Accessor","JSX","BaseDevtoolsPanelOptions","style","CSSProperties","className","isOpen","setIsOpen","handleDragStart","e","router","routerState","shadowDOMTarget","ShadowRoot","HISTORY_LIMIT","Logo","props","rest","styles","_el$","_tmpl$","_el$2","firstChild","_el$3","nextSibling","_$spread","_$mergeProps","class","logo","_$effect","_p$","_v$","tanstackLogo","_v$2","routerLogo","_$className","t","undefined","NavigateLink","left","Element","children","right","_el$4","_tmpl$2","_el$5","_$insert","RouteComp","route","isRoot","activeId","setActiveId","id","matches","pendingMatches","match","find","d","routeId","param","params","p","r","path","startsWith","trimmed","slice","error","navigationTarget","allParams","Object","assign","map","m","interpolated","fullPath","decoder","pathParamsDecoder","isMissingParams","interpolatedPath","_el$6","_tmpl$5","_el$7","_el$8","$$click","_$createComponent","routesRow","when","navigate","to","_el$9","_tmpl$3","_el$0","code","_el$1","_tmpl$4","routeParamInfo","_c$","_$memo","length","_el$10","_tmpl$6","Array","sort","a","b","rank","nestedRouteRow","_v$3","_v$4","routesRowContainer","_v$5","matchIndicator","_$setAttribute","BaseTanStackRouterDevtoolsPanel","panelProps","onCloseClick","otherPanelProps","currentTab","setCurrentTab","history","setHistory","hasHistoryOverflowed","setHasHistoryOverflowed","currentMatch","historyUntracked","lastMatch","sameLocation","pathname","JSON","stringify","search","prev","newHistory","splice","activeMatch","cachedMatches","hasSearch","keys","location","explorerState","state","routerExplorerValue","fromEntries","const","dd","key","filter","includes","activeMatchLoaderData","loaderData","activeMatchValue","locationSearchValue","_el$11","_tmpl$8","_el$12","_el$13","_el$14","_el$15","_el$16","_el$17","_el$18","_el$19","_el$20","_el$21","_el$22","_el$23","_el$24","_el$25","_el$26","_el$27","_el$28","_el$29","_el$30","devtoolsPanel","_el$34","_$addEventListener","dragHandle","onClick","label","value","defaultExpanded","context","options","filterSubEntries","subEntries","_c$2","maskedLocation","_el$35","_tmpl$9","_el$36","_v$24","maskedBadgeContainer","_v$25","maskedBadge","_c$3","_el$37","routeTree","_el$31","_i","_el$38","_tmpl$0","_el$39","_el$40","matchID","_v$26","_v$27","matchRow","_v$28","_el$32","_tmpl$7","_el$33","each","index","_el$41","_tmpl$1","_el$42","_el$43","_v$29","_v$30","_c$4","_el$44","_tmpl$10","historyOverflowContainer","_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","cachedMatchesContainer","_v$32","detailsHeader","_v$33","detailsHeaderInfo","_c$6","status","_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","isFetching","_c$9","_c$0","updatedAt","Date","toLocaleTimeString","_c$1","_el$71","_tmpl$13","_el$72","detailsContent","_v$37","thirdContainer","_v$38","_v$39","matchDetails","_v$40","matchStatus","_v$41","matchDetailsInfoLabel","_v$42","matchDetailsInfo","_v$43","_v$44","_v$45","_v$46","_v$47","_v$48","o","i","n","s","h","l","u","_c$7","_el$73","_tmpl$14","_el$74","_el$75","_el$76","navigator","_el$77","_tmpl$15","CopyButton","getValue","reduce","obj","next","_v$49","fourthContainer","_v$50","_v$51","_v$6","panelCloseBtn","_v$7","panelCloseBtnIcon","_v$8","firstContainer","_v$9","row","_v$0","routerExplorerContainer","_v$1","routerExplorer","_v$10","secondContainer","_v$11","matchesContainer","_v$12","_v$13","_v$14","_v$15","routeMatchesToggle","_v$16","_v$17","routeMatchesToggleBtn","_v$18","_v$19","_v$20","_v$21","_v$22","_v$23","routesContainer","c","disabled","w","f","y","g","copied","setCopied","timeoutId","ReturnType","setTimeout","handleCopy","clipboard","writeText","console","warn","clearTimeout","_el$78","_tmpl$16","_$delegateEvents"],"sources":["../src/tokens.ts","../src/useStyles.tsx","../src/useLocalStorage.ts","../src/utils.tsx","../src/Explorer.tsx","../src/AgeTicker.tsx","../src/NavigateButton.tsx","../src/BaseTanStackRouterDevtoolsPanel.tsx"],"sourcesContent":["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","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","/* 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 decoder: router().pathParamsDecoder,\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"],"mappings":"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"}
@@ -0,0 +1,240 @@
1
+ import { C as createUniqueId, S as createSignal, T as mergeProps, b as createMemo, c as insert, d as setAttribute, f as spread, i as Dynamic, o as className, p as template, t as DevtoolsOnCloseContext, v as createComponent, x as createRenderEffect, y as createEffect } from "./context-D56_tqst.js";
2
+ import { BaseTanStackRouterDevtoolsPanel, n as useLocalStorage, r as useStyles, t as useIsMounted } from "./BaseTanStackRouterDevtoolsPanel-B43j38ty.js";
3
+ import { clsx } from "clsx";
4
+ //#region src/logo.tsx
5
+ var _tmpl$$1 = /* @__PURE__ */ template(`<svg xmlns=http://www.w3.org/2000/svg enable-background="new 0 0 634 633"viewBox="0 0 634 633"><g transform=translate(1)><linearGradient x1=-641.486 x2=-641.486 y1=856.648 y2=855.931 gradientTransform="matrix(633 0 0 -633 406377 542258)"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#6bdaff></stop><stop offset=0.319 stop-color=#f9ffb5></stop><stop offset=0.706 stop-color=#ffa770></stop><stop offset=1 stop-color=#ff7373></stop></linearGradient><circle cx=316.5 cy=316.5 r=316.5 fill-rule=evenodd clip-rule=evenodd></circle><defs><filter width=454 height=396.9 x=-137.5 y=412 filterUnits=userSpaceOnUse><feColorMatrix values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0"></feColorMatrix></filter></defs><mask width=454 height=396.9 x=-137.5 y=412 maskUnits=userSpaceOnUse><g><circle cx=316.5 cy=316.5 r=316.5 fill=#FFF fill-rule=evenodd clip-rule=evenodd></circle></g></mask><ellipse cx=89.5 cy=610.5 fill=#015064 fill-rule=evenodd stroke=#00CFE2 stroke-width=25 clip-rule=evenodd rx=214.5 ry=186></ellipse><defs><filter width=454 height=396.9 x=316.5 y=412 filterUnits=userSpaceOnUse><feColorMatrix values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0"></feColorMatrix></filter></defs><mask width=454 height=396.9 x=316.5 y=412 maskUnits=userSpaceOnUse><g><circle cx=316.5 cy=316.5 r=316.5 fill=#FFF fill-rule=evenodd clip-rule=evenodd></circle></g></mask><ellipse cx=543.5 cy=610.5 fill=#015064 fill-rule=evenodd stroke=#00CFE2 stroke-width=25 clip-rule=evenodd rx=214.5 ry=186></ellipse><defs><filter width=454 height=396.9 x=-137.5 y=450 filterUnits=userSpaceOnUse><feColorMatrix values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0"></feColorMatrix></filter></defs><mask width=454 height=396.9 x=-137.5 y=450 maskUnits=userSpaceOnUse><g><circle cx=316.5 cy=316.5 r=316.5 fill=#FFF fill-rule=evenodd clip-rule=evenodd></circle></g></mask><ellipse cx=89.5 cy=648.5 fill=#015064 fill-rule=evenodd stroke=#00A8B8 stroke-width=25 clip-rule=evenodd rx=214.5 ry=186></ellipse><defs><filter width=454 height=396.9 x=316.5 y=450 filterUnits=userSpaceOnUse><feColorMatrix values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0"></feColorMatrix></filter></defs><mask width=454 height=396.9 x=316.5 y=450 maskUnits=userSpaceOnUse><g><circle cx=316.5 cy=316.5 r=316.5 fill=#FFF fill-rule=evenodd clip-rule=evenodd></circle></g></mask><ellipse cx=543.5 cy=648.5 fill=#015064 fill-rule=evenodd stroke=#00A8B8 stroke-width=25 clip-rule=evenodd rx=214.5 ry=186></ellipse><defs><filter width=454 height=396.9 x=-137.5 y=486 filterUnits=userSpaceOnUse><feColorMatrix values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0"></feColorMatrix></filter></defs><mask width=454 height=396.9 x=-137.5 y=486 maskUnits=userSpaceOnUse><g><circle cx=316.5 cy=316.5 r=316.5 fill=#FFF fill-rule=evenodd clip-rule=evenodd></circle></g></mask><ellipse cx=89.5 cy=684.5 fill=#015064 fill-rule=evenodd stroke=#007782 stroke-width=25 clip-rule=evenodd rx=214.5 ry=186></ellipse><defs><filter width=454 height=396.9 x=316.5 y=486 filterUnits=userSpaceOnUse><feColorMatrix values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0"></feColorMatrix></filter></defs><mask width=454 height=396.9 x=316.5 y=486 maskUnits=userSpaceOnUse><g><circle cx=316.5 cy=316.5 r=316.5 fill=#FFF fill-rule=evenodd clip-rule=evenodd></circle></g></mask><ellipse cx=543.5 cy=684.5 fill=#015064 fill-rule=evenodd stroke=#007782 stroke-width=25 clip-rule=evenodd rx=214.5 ry=186></ellipse><defs><filter width=176.9 height=129.3 x=272.2 y=308 filterUnits=userSpaceOnUse><feColorMatrix values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0"></feColorMatrix></filter></defs><mask width=176.9 height=129.3 x=272.2 y=308 maskUnits=userSpaceOnUse><g><circle cx=316.5 cy=316.5 r=316.5 fill=#FFF fill-rule=evenodd clip-rule=evenodd></circle></g></mask><g><path fill=none stroke=#000 stroke-linecap=round stroke-linejoin=bevel stroke-width=11 d="M436 403.2l-5 28.6m-140-90.3l-10.9 62m52.8-19.4l-4.3 27.1"></path><linearGradient x1=-645.656 x2=-646.499 y1=854.878 y2=854.788 gradientTransform="matrix(-184.159 -32.4722 11.4608 -64.9973 -128419.844 34938.836)"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#ee2700></stop><stop offset=1 stop-color=#ff008e></stop></linearGradient><path fill-rule=evenodd d="M344.1 363l97.7 17.2c5.8 2.1 8.2 6.2 7.1 12.1-1 5.9-4.7 9.2-11 9.9l-106-18.7-57.5-59.2c-3.2-4.8-2.9-9.1.8-12.8 3.7-3.7 8.3-4.4 13.7-2.1l55.2 53.6z"clip-rule=evenodd></path><path fill=#D8D8D8 fill-rule=evenodd stroke=#FFF stroke-linecap=round stroke-linejoin=bevel stroke-width=7 d="M428.3 384.5l.9-6.5m-33.9 1.5l.9-6.5m-34 .5l.9-6.1m-38.9-16.1l4.2-3.9m-25.2-16.1l4.2-3.9"clip-rule=evenodd></path></g><defs><filter width=280.6 height=317.4 x=73.2 y=113.9 filterUnits=userSpaceOnUse><feColorMatrix values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0"></feColorMatrix></filter></defs><mask width=280.6 height=317.4 x=73.2 y=113.9 maskUnits=userSpaceOnUse><g><circle cx=316.5 cy=316.5 r=316.5 fill=#FFF fill-rule=evenodd clip-rule=evenodd></circle></g></mask><g><linearGradient x1=-646.8 x2=-646.8 y1=854.844 y2=853.844 gradientTransform="matrix(-100.1751 48.8587 -97.9753 -200.879 19124.773 203538.61)"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#a17500></stop><stop offset=1 stop-color=#5d2100></stop></linearGradient><path fill-rule=evenodd d="M192.3 203c8.1 37.3 14 73.6 17.8 109.1 3.8 35.4 2.8 75.2-2.9 119.2l61.2-16.7c-15.6-59-25.2-97.9-28.6-116.6-3.4-18.7-10.8-51.8-22.2-99.6l-25.3 4.6"clip-rule=evenodd></path><linearGradient x1=-635.467 x2=-635.467 y1=852.115 y2=851.115 gradientTransform="matrix(92.6873 4.8575 2.0257 -38.6535 57323.695 36176.047)"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#2f8a00></stop><stop offset=1 stop-color=#90ff57></stop></linearGradient><path fill-rule=evenodd stroke=#2F8A00 stroke-width=13 d="M195 183.9s-12.6-22.1-36.5-29.9c-15.9-5.2-34.4-1.5-55.5 11.1 15.9 14.3 29.5 22.6 40.7 24.9 16.8 3.6 51.3-6.1 51.3-6.1z"clip-rule=evenodd></path><linearGradient x1=-636.573 x2=-636.573 y1=855.444 y2=854.444 gradientTransform="matrix(109.9945 5.7646 6.3597 -121.3507 64719.133 107659.336)"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#2f8a00></stop><stop offset=1 stop-color=#90ff57></stop></linearGradient><path fill-rule=evenodd stroke=#2F8A00 stroke-width=13 d="M194.9 184.5s-47.5-8.5-83.2 15.7c-23.8 16.2-34.3 49.3-31.6 99.3 30.3-27.8 52.1-48.5 65.2-61.9 19.8-20 49.6-53.1 49.6-53.1z"clip-rule=evenodd></path><linearGradient x1=-632.145 x2=-632.145 y1=854.174 y2=853.174 gradientTransform="matrix(62.9558 3.2994 3.5021 -66.8246 37035.367 59284.227)"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#2f8a00></stop><stop offset=1 stop-color=#90ff57></stop></linearGradient><path fill-rule=evenodd stroke=#2F8A00 stroke-width=13 d="M195 183.9c-.8-21.9 6-38 20.6-48.2 14.6-10.2 29.8-15.3 45.5-15.3-6.1 21.4-14.5 35.8-25.2 43.4-10.7 7.5-24.4 14.2-40.9 20.1z"clip-rule=evenodd></path><linearGradient x1=-638.224 x2=-638.224 y1=853.801 y2=852.801 gradientTransform="matrix(152.4666 7.9904 3.0934 -59.0251 94939.86 55646.855)"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#2f8a00></stop><stop offset=1 stop-color=#90ff57></stop></linearGradient><path fill-rule=evenodd stroke=#2F8A00 stroke-width=13 d="M194.9 184.5c31.9-30 64.1-39.7 96.7-29 32.6 10.7 50.8 30.4 54.6 59.1-35.2-5.5-60.4-9.6-75.8-12.1-15.3-2.6-40.5-8.6-75.5-18z"clip-rule=evenodd></path><linearGradient x1=-637.723 x2=-637.723 y1=855.103 y2=854.103 gradientTransform="matrix(136.467 7.1519 5.2165 -99.5377 82830.875 89859.578)"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#2f8a00></stop><stop offset=1 stop-color=#90ff57></stop></linearGradient><path fill-rule=evenodd stroke=#2F8A00 stroke-width=13 d="M194.9 184.5c35.8-7.6 65.6-.2 89.2 22 23.6 22.2 37.7 49 42.3 80.3-39.8-9.7-68.3-23.8-85.5-42.4-17.2-18.5-32.5-38.5-46-59.9z"clip-rule=evenodd></path><linearGradient x1=-631.79 x2=-631.79 y1=855.872 y2=854.872 gradientTransform="matrix(60.8683 3.19 8.7771 -167.4773 31110.818 145537.61)"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#2f8a00></stop><stop offset=1 stop-color=#90ff57></stop></linearGradient><path fill-rule=evenodd stroke=#2F8A00 stroke-width=13 d="M194.9 184.5c-33.6 13.8-53.6 35.7-60.1 65.6-6.5 29.9-3.6 63.1 8.7 99.6 27.4-40.3 43.2-69.6 47.4-88 4.2-18.3 5.5-44.1 4-77.2z"clip-rule=evenodd></path><path fill=none stroke=#2F8A00 stroke-linecap=round stroke-width=8 d="M196.5 182.3c-14.8 21.6-25.1 41.4-30.8 59.4-5.7 18-9.4 33-11.1 45.1"></path><path fill=none stroke=#2F8A00 stroke-linecap=round stroke-width=8 d="M194.8 185.7c-24.4 1.7-43.8 9-58.1 21.8-14.3 12.8-24.7 25.4-31.3 37.8m99.1-68.9c29.7-6.7 52-8.4 67-5 15 3.4 26.9 8.7 35.8 15.9m-110.8-5.9c20.3 9.9 38.2 20.5 53.9 31.9 15.7 11.4 27.4 22.1 35.1 32"></path></g><defs><filter width=532 height=633 x=50.5 y=399 filterUnits=userSpaceOnUse><feColorMatrix values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0"></feColorMatrix></filter></defs><mask width=532 height=633 x=50.5 y=399 maskUnits=userSpaceOnUse><g><circle cx=316.5 cy=316.5 r=316.5 fill=#FFF fill-rule=evenodd clip-rule=evenodd></circle></g></mask><linearGradient x1=-641.104 x2=-641.278 y1=856.577 y2=856.183 gradientTransform="matrix(532 0 0 -633 341484.5 542657)"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#fff400></stop><stop offset=1 stop-color=#3c8700></stop></linearGradient><ellipse cx=316.5 cy=715.5 fill-rule=evenodd clip-rule=evenodd rx=266 ry=316.5></ellipse><defs><filter width=288 height=283 x=391 y=-24 filterUnits=userSpaceOnUse><feColorMatrix values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0"></feColorMatrix></filter></defs><mask width=288 height=283 x=391 y=-24 maskUnits=userSpaceOnUse><g><circle cx=316.5 cy=316.5 r=316.5 fill=#FFF fill-rule=evenodd clip-rule=evenodd></circle></g></mask><g><g transform="translate(397 -24)"><linearGradient x1=-1036.672 x2=-1036.672 y1=880.018 y2=879.018 gradientTransform="matrix(227 0 0 -227 235493 199764)"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#ffdf00></stop><stop offset=1 stop-color=#ff9d00></stop></linearGradient><circle cx=168.5 cy=113.5 r=113.5 fill-rule=evenodd clip-rule=evenodd></circle><linearGradient x1=-1017.329 x2=-1018.602 y1=658.003 y2=657.998 gradientTransform="matrix(30 0 0 -1 30558 771)"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#ffa400></stop><stop offset=1 stop-color=#ff5e00></stop></linearGradient><path fill=none stroke-linecap=round stroke-linejoin=bevel stroke-width=12 d="M30 113H0"></path><linearGradient x1=-1014.501 x2=-1015.774 y1=839.985 y2=839.935 gradientTransform="matrix(26.5 0 0 -5.5 26925 4696.5)"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#ffa400></stop><stop offset=1 stop-color=#ff5e00></stop></linearGradient><path fill=none stroke-linecap=round stroke-linejoin=bevel stroke-width=12 d="M33.5 79.5L7 74"></path><linearGradient x1=-1016.59 x2=-1017.862 y1=852.671 y2=852.595 gradientTransform="matrix(29 0 0 -8 29523 6971)"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#ffa400></stop><stop offset=1 stop-color=#ff5e00></stop></linearGradient><path fill=none stroke-linecap=round stroke-linejoin=bevel stroke-width=12 d="M34 146l-29 8"></path><linearGradient x1=-1011.984 x2=-1013.257 y1=863.523 y2=863.229 gradientTransform="matrix(24 0 0 -13 24339 11407)"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#ffa400></stop><stop offset=1 stop-color=#ff5e00></stop></linearGradient><path fill=none stroke-linecap=round stroke-linejoin=bevel stroke-width=12 d="M45 177l-24 13"></path><linearGradient x1=-1006.673 x2=-1007.946 y1=869.279 y2=868.376 gradientTransform="matrix(20 0 0 -19 20205 16720)"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#ffa400></stop><stop offset=1 stop-color=#ff5e00></stop></linearGradient><path fill=none stroke-linecap=round stroke-linejoin=bevel stroke-width=12 d="M67 204l-20 19"></path><linearGradient x1=-992.85 x2=-993.317 y1=871.258 y2=870.258 gradientTransform="matrix(13.8339 0 0 -22.8467 13825.796 20131.938)"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#ffa400></stop><stop offset=1 stop-color=#ff5e00></stop></linearGradient><path fill=none stroke-linecap=round stroke-linejoin=bevel stroke-width=12 d="M94.4 227l-13.8 22.8"></path><linearGradient x1=-953.835 x2=-953.965 y1=871.9 y2=870.9 gradientTransform="matrix(7.5 0 0 -24.5 7278 21605)"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#ffa400></stop><stop offset=1 stop-color=#ff5e00></stop></linearGradient><path fill=none stroke-linecap=round stroke-linejoin=bevel stroke-width=12 d="M127.5 243.5L120 268"></path><linearGradient x1=244.504 x2=244.496 y1=871.898 y2=870.898 gradientTransform="matrix(.5 0 0 -24.5 45.5 21614)"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#ffa400></stop><stop offset=1 stop-color=#ff5e00></stop></linearGradient><path fill=none stroke-linecap=round stroke-linejoin=bevel stroke-width=12 d="M167.5 252.5l.5 24.5">`);
6
+ function TanStackLogo() {
7
+ const id = createUniqueId();
8
+ return (() => {
9
+ var _el$ = _tmpl$$1(), _el$3 = _el$.firstChild.firstChild, _el$4 = _el$3.nextSibling, _el$5 = _el$4.nextSibling, _el$6 = _el$5.firstChild, _el$7 = _el$5.nextSibling, _el$8 = _el$7.firstChild, _el$9 = _el$7.nextSibling, _el$0 = _el$9.nextSibling, _el$1 = _el$0.firstChild, _el$10 = _el$0.nextSibling, _el$11 = _el$10.firstChild, _el$12 = _el$10.nextSibling, _el$13 = _el$12.nextSibling, _el$14 = _el$13.firstChild, _el$15 = _el$13.nextSibling, _el$16 = _el$15.firstChild, _el$17 = _el$15.nextSibling, _el$18 = _el$17.nextSibling, _el$19 = _el$18.firstChild, _el$20 = _el$18.nextSibling, _el$21 = _el$20.firstChild, _el$22 = _el$20.nextSibling, _el$23 = _el$22.nextSibling, _el$24 = _el$23.firstChild, _el$25 = _el$23.nextSibling, _el$26 = _el$25.firstChild, _el$27 = _el$25.nextSibling, _el$28 = _el$27.nextSibling, _el$29 = _el$28.firstChild, _el$30 = _el$28.nextSibling, _el$31 = _el$30.firstChild, _el$32 = _el$30.nextSibling, _el$33 = _el$32.nextSibling, _el$34 = _el$33.firstChild, _el$35 = _el$33.nextSibling, _el$36 = _el$35.firstChild, _el$37 = _el$35.nextSibling, _el$39 = _el$37.firstChild.nextSibling, _el$40 = _el$39.nextSibling, _el$41 = _el$37.nextSibling, _el$42 = _el$41.firstChild, _el$43 = _el$41.nextSibling, _el$44 = _el$43.firstChild, _el$45 = _el$43.nextSibling, _el$46 = _el$45.firstChild, _el$47 = _el$46.nextSibling, _el$48 = _el$47.nextSibling, _el$49 = _el$48.nextSibling, _el$50 = _el$49.nextSibling, _el$51 = _el$50.nextSibling, _el$52 = _el$51.nextSibling, _el$53 = _el$52.nextSibling, _el$54 = _el$53.nextSibling, _el$55 = _el$54.nextSibling, _el$56 = _el$55.nextSibling, _el$57 = _el$56.nextSibling, _el$58 = _el$57.nextSibling, _el$59 = _el$58.nextSibling, _el$60 = _el$45.nextSibling, _el$61 = _el$60.firstChild, _el$62 = _el$60.nextSibling, _el$63 = _el$62.firstChild, _el$64 = _el$62.nextSibling, _el$65 = _el$64.nextSibling, _el$66 = _el$65.nextSibling, _el$67 = _el$66.firstChild, _el$68 = _el$66.nextSibling, _el$69 = _el$68.firstChild, _el$70 = _el$68.nextSibling, _el$72 = _el$70.firstChild.firstChild, _el$73 = _el$72.nextSibling, _el$74 = _el$73.nextSibling, _el$75 = _el$74.nextSibling, _el$76 = _el$75.nextSibling, _el$77 = _el$76.nextSibling, _el$78 = _el$77.nextSibling, _el$79 = _el$78.nextSibling, _el$80 = _el$79.nextSibling, _el$81 = _el$80.nextSibling, _el$82 = _el$81.nextSibling, _el$83 = _el$82.nextSibling, _el$84 = _el$83.nextSibling, _el$85 = _el$84.nextSibling, _el$86 = _el$85.nextSibling, _el$87 = _el$86.nextSibling, _el$88 = _el$87.nextSibling, _el$89 = _el$88.nextSibling;
10
+ setAttribute(_el$3, "id", `a-${id}`);
11
+ setAttribute(_el$4, "fill", `url(#a-${id})`);
12
+ setAttribute(_el$6, "id", `b-${id}`);
13
+ setAttribute(_el$7, "id", `c-${id}`);
14
+ setAttribute(_el$8, "filter", `url(#b-${id})`);
15
+ setAttribute(_el$9, "mask", `url(#c-${id})`);
16
+ setAttribute(_el$1, "id", `d-${id}`);
17
+ setAttribute(_el$10, "id", `e-${id}`);
18
+ setAttribute(_el$11, "filter", `url(#d-${id})`);
19
+ setAttribute(_el$12, "mask", `url(#e-${id})`);
20
+ setAttribute(_el$14, "id", `f-${id}`);
21
+ setAttribute(_el$15, "id", `g-${id}`);
22
+ setAttribute(_el$16, "filter", `url(#f-${id})`);
23
+ setAttribute(_el$17, "mask", `url(#g-${id})`);
24
+ setAttribute(_el$19, "id", `h-${id}`);
25
+ setAttribute(_el$20, "id", `i-${id}`);
26
+ setAttribute(_el$21, "filter", `url(#h-${id})`);
27
+ setAttribute(_el$22, "mask", `url(#i-${id})`);
28
+ setAttribute(_el$24, "id", `j-${id}`);
29
+ setAttribute(_el$25, "id", `k-${id}`);
30
+ setAttribute(_el$26, "filter", `url(#j-${id})`);
31
+ setAttribute(_el$27, "mask", `url(#k-${id})`);
32
+ setAttribute(_el$29, "id", `l-${id}`);
33
+ setAttribute(_el$30, "id", `m-${id}`);
34
+ setAttribute(_el$31, "filter", `url(#l-${id})`);
35
+ setAttribute(_el$32, "mask", `url(#m-${id})`);
36
+ setAttribute(_el$34, "id", `n-${id}`);
37
+ setAttribute(_el$35, "id", `o-${id}`);
38
+ setAttribute(_el$36, "filter", `url(#n-${id})`);
39
+ setAttribute(_el$37, "mask", `url(#o-${id})`);
40
+ setAttribute(_el$39, "id", `p-${id}`);
41
+ setAttribute(_el$40, "fill", `url(#p-${id})`);
42
+ setAttribute(_el$42, "id", `q-${id}`);
43
+ setAttribute(_el$43, "id", `r-${id}`);
44
+ setAttribute(_el$44, "filter", `url(#q-${id})`);
45
+ setAttribute(_el$45, "mask", `url(#r-${id})`);
46
+ setAttribute(_el$46, "id", `s-${id}`);
47
+ setAttribute(_el$47, "fill", `url(#s-${id})`);
48
+ setAttribute(_el$48, "id", `t-${id}`);
49
+ setAttribute(_el$49, "fill", `url(#t-${id})`);
50
+ setAttribute(_el$50, "id", `u-${id}`);
51
+ setAttribute(_el$51, "fill", `url(#u-${id})`);
52
+ setAttribute(_el$52, "id", `v-${id}`);
53
+ setAttribute(_el$53, "fill", `url(#v-${id})`);
54
+ setAttribute(_el$54, "id", `w-${id}`);
55
+ setAttribute(_el$55, "fill", `url(#w-${id})`);
56
+ setAttribute(_el$56, "id", `x-${id}`);
57
+ setAttribute(_el$57, "fill", `url(#x-${id})`);
58
+ setAttribute(_el$58, "id", `y-${id}`);
59
+ setAttribute(_el$59, "fill", `url(#y-${id})`);
60
+ setAttribute(_el$61, "id", `z-${id}`);
61
+ setAttribute(_el$62, "id", `A-${id}`);
62
+ setAttribute(_el$63, "filter", `url(#z-${id})`);
63
+ setAttribute(_el$64, "id", `B-${id}`);
64
+ setAttribute(_el$65, "fill", `url(#B-${id})`);
65
+ setAttribute(_el$65, "mask", `url(#A-${id})`);
66
+ setAttribute(_el$67, "id", `C-${id}`);
67
+ setAttribute(_el$68, "id", `D-${id}`);
68
+ setAttribute(_el$69, "filter", `url(#C-${id})`);
69
+ setAttribute(_el$70, "mask", `url(#D-${id})`);
70
+ setAttribute(_el$72, "id", `E-${id}`);
71
+ setAttribute(_el$73, "fill", `url(#E-${id})`);
72
+ setAttribute(_el$74, "id", `F-${id}`);
73
+ setAttribute(_el$75, "stroke", `url(#F-${id})`);
74
+ setAttribute(_el$76, "id", `G-${id}`);
75
+ setAttribute(_el$77, "stroke", `url(#G-${id})`);
76
+ setAttribute(_el$78, "id", `H-${id}`);
77
+ setAttribute(_el$79, "stroke", `url(#H-${id})`);
78
+ setAttribute(_el$80, "id", `I-${id}`);
79
+ setAttribute(_el$81, "stroke", `url(#I-${id})`);
80
+ setAttribute(_el$82, "id", `J-${id}`);
81
+ setAttribute(_el$83, "stroke", `url(#J-${id})`);
82
+ setAttribute(_el$84, "id", `K-${id}`);
83
+ setAttribute(_el$85, "stroke", `url(#K-${id})`);
84
+ setAttribute(_el$86, "id", `L-${id}`);
85
+ setAttribute(_el$87, "stroke", `url(#L-${id})`);
86
+ setAttribute(_el$88, "id", `M-${id}`);
87
+ setAttribute(_el$89, "stroke", `url(#M-${id})`);
88
+ return _el$;
89
+ })();
90
+ }
91
+ //#endregion
92
+ //#region src/FloatingTanStackRouterDevtools.tsx
93
+ var _tmpl$ = /* @__PURE__ */ template(`<button type=button><div><div></div><div></div></div><div>-</div><div>TanStack Router`);
94
+ function FloatingTanStackRouterDevtools({ initialIsOpen, panelProps = {}, closeButtonProps = {}, toggleButtonProps = {}, position = "bottom-left", containerElement: Container = "footer", router, routerState, shadowDOMTarget }) {
95
+ const [rootEl, setRootEl] = createSignal();
96
+ let panelRef = void 0;
97
+ const [isOpen, setIsOpen] = useLocalStorage("tanstackRouterDevtoolsOpen", initialIsOpen);
98
+ const [devtoolsHeight, setDevtoolsHeight] = useLocalStorage("tanstackRouterDevtoolsHeight", null);
99
+ const [isResolvedOpen, setIsResolvedOpen] = createSignal(false);
100
+ const [isResizing, setIsResizing] = createSignal(false);
101
+ const isMounted = useIsMounted();
102
+ const styles = useStyles();
103
+ const handleDragStart = (panelElement, startEvent) => {
104
+ if (startEvent.button !== 0) return;
105
+ setIsResizing(true);
106
+ const dragInfo = {
107
+ originalHeight: panelElement?.getBoundingClientRect().height ?? 0,
108
+ pageY: startEvent.pageY
109
+ };
110
+ const run = (moveEvent) => {
111
+ const delta = dragInfo.pageY - moveEvent.pageY;
112
+ const newHeight = dragInfo.originalHeight + delta;
113
+ setDevtoolsHeight(newHeight);
114
+ if (newHeight < 70) setIsOpen(false);
115
+ else setIsOpen(true);
116
+ };
117
+ const unsub = () => {
118
+ setIsResizing(false);
119
+ document.removeEventListener("mousemove", run);
120
+ document.removeEventListener("mouseUp", unsub);
121
+ };
122
+ document.addEventListener("mousemove", run);
123
+ document.addEventListener("mouseup", unsub);
124
+ };
125
+ isOpen();
126
+ createEffect(() => {
127
+ setIsResolvedOpen(isOpen() ?? false);
128
+ });
129
+ createEffect(() => {
130
+ if (isResolvedOpen()) {
131
+ const previousValue = rootEl()?.parentElement?.style.paddingBottom;
132
+ const run = () => {
133
+ const containerHeight = panelRef.getBoundingClientRect().height;
134
+ if (rootEl()?.parentElement) setRootEl((prev) => {
135
+ if (prev?.parentElement) prev.parentElement.style.paddingBottom = `${containerHeight}px`;
136
+ return prev;
137
+ });
138
+ };
139
+ run();
140
+ if (typeof window !== "undefined") {
141
+ window.addEventListener("resize", run);
142
+ return () => {
143
+ window.removeEventListener("resize", run);
144
+ if (rootEl()?.parentElement && typeof previousValue === "string") setRootEl((prev) => {
145
+ prev.parentElement.style.paddingBottom = previousValue;
146
+ return prev;
147
+ });
148
+ };
149
+ }
150
+ } else if (rootEl()?.parentElement) setRootEl((prev) => {
151
+ if (prev?.parentElement) prev.parentElement.removeAttribute("style");
152
+ return prev;
153
+ });
154
+ });
155
+ createEffect(() => {
156
+ if (rootEl()) {
157
+ const el = rootEl();
158
+ const fontSize = getComputedStyle(el).fontSize;
159
+ el?.style.setProperty("--tsrd-font-size", fontSize);
160
+ }
161
+ });
162
+ const { style: panelStyle = {}, ...otherPanelProps } = panelProps;
163
+ const { style: closeButtonStyle = {}, onClick: onCloseClick, ...otherCloseButtonProps } = closeButtonProps;
164
+ const { onClick: onToggleClick, class: toggleButtonClassName, ...otherToggleButtonProps } = toggleButtonProps;
165
+ if (!isMounted()) return null;
166
+ const resolvedHeight = createMemo(() => devtoolsHeight() ?? 500);
167
+ const basePanelClass = createMemo(() => {
168
+ return clsx(styles().devtoolsPanelContainer, styles().devtoolsPanelContainerVisibility(!!isOpen()), styles().devtoolsPanelContainerResizing(isResizing), styles().devtoolsPanelContainerAnimation(isResolvedOpen(), resolvedHeight() + 16));
169
+ });
170
+ const basePanelStyle = createMemo(() => {
171
+ return {
172
+ height: `${resolvedHeight()}px`,
173
+ ...panelStyle || {}
174
+ };
175
+ });
176
+ const buttonStyle = createMemo(() => {
177
+ return clsx(styles().mainCloseBtn, styles().mainCloseBtnPosition(position), styles().mainCloseBtnAnimation(!!isOpen()), toggleButtonClassName);
178
+ });
179
+ return createComponent(Dynamic, {
180
+ component: Container,
181
+ ref: setRootEl,
182
+ "class": "TanStackRouterDevtools",
183
+ get children() {
184
+ return [createComponent(DevtoolsOnCloseContext.Provider, {
185
+ value: { onCloseClick: onCloseClick ?? (() => {}) },
186
+ get children() {
187
+ return createComponent(BaseTanStackRouterDevtoolsPanel, mergeProps({ ref(r$) {
188
+ var _ref$ = panelRef;
189
+ typeof _ref$ === "function" ? _ref$(r$) : panelRef = r$;
190
+ } }, otherPanelProps, {
191
+ router,
192
+ routerState,
193
+ className: basePanelClass,
194
+ style: basePanelStyle,
195
+ get isOpen() {
196
+ return isResolvedOpen();
197
+ },
198
+ setIsOpen,
199
+ handleDragStart: (e) => handleDragStart(panelRef, e),
200
+ shadowDOMTarget
201
+ }));
202
+ }
203
+ }), (() => {
204
+ var _el$ = _tmpl$(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling, _el$5 = _el$2.nextSibling, _el$6 = _el$5.nextSibling;
205
+ spread(_el$, mergeProps(otherToggleButtonProps, {
206
+ "aria-label": "Open TanStack Router Devtools",
207
+ "onClick": (e) => {
208
+ setIsOpen(true);
209
+ onToggleClick && onToggleClick(e);
210
+ },
211
+ get ["class"]() {
212
+ return buttonStyle();
213
+ }
214
+ }), false, true);
215
+ insert(_el$3, createComponent(TanStackLogo, {}));
216
+ insert(_el$4, createComponent(TanStackLogo, {}));
217
+ createRenderEffect((_p$) => {
218
+ var _v$ = styles().mainCloseBtnIconContainer, _v$2 = styles().mainCloseBtnIconOuter, _v$3 = styles().mainCloseBtnIconInner, _v$4 = styles().mainCloseBtnDivider, _v$5 = styles().routerLogoCloseButton;
219
+ _v$ !== _p$.e && className(_el$2, _p$.e = _v$);
220
+ _v$2 !== _p$.t && className(_el$3, _p$.t = _v$2);
221
+ _v$3 !== _p$.a && className(_el$4, _p$.a = _v$3);
222
+ _v$4 !== _p$.o && className(_el$5, _p$.o = _v$4);
223
+ _v$5 !== _p$.i && className(_el$6, _p$.i = _v$5);
224
+ return _p$;
225
+ }, {
226
+ e: void 0,
227
+ t: void 0,
228
+ a: void 0,
229
+ o: void 0,
230
+ i: void 0
231
+ });
232
+ return _el$;
233
+ })()];
234
+ }
235
+ });
236
+ }
237
+ //#endregion
238
+ export { FloatingTanStackRouterDevtools, FloatingTanStackRouterDevtools as default };
239
+
240
+ //# sourceMappingURL=FloatingTanStackRouterDevtools-B12ktJLj.js.map