@tanstack/router-devtools-core 1.132.47 → 1.132.50

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 (91) hide show
  1. package/dist/cjs/{packages/router-devtools-core/src/AgeTicker.cjs → AgeTicker.cjs} +2 -3
  2. package/dist/cjs/AgeTicker.cjs.map +1 -0
  3. package/dist/cjs/{packages/router-devtools-core/src/BaseTanStackRouterDevtoolsPanel.cjs → BaseTanStackRouterDevtoolsPanel.cjs} +66 -66
  4. package/dist/cjs/BaseTanStackRouterDevtoolsPanel.cjs.map +1 -0
  5. package/dist/cjs/{packages/router-devtools-core/src/Explorer.cjs → Explorer.cjs} +27 -27
  6. package/dist/cjs/Explorer.cjs.map +1 -0
  7. package/dist/cjs/{packages/router-devtools-core/src/FloatingTanStackRouterDevtools.cjs → FloatingTanStackRouterDevtools.cjs} +19 -19
  8. package/dist/cjs/FloatingTanStackRouterDevtools.cjs.map +1 -0
  9. package/dist/cjs/{packages/router-devtools-core/src/NavigateButton.cjs → NavigateButton.cjs} +2 -3
  10. package/dist/cjs/NavigateButton.cjs.map +1 -0
  11. package/dist/cjs/{packages/router-devtools-core/src/TanStackRouterDevtoolsCore.cjs → TanStackRouterDevtoolsCore.cjs} +7 -7
  12. package/dist/cjs/TanStackRouterDevtoolsCore.cjs.map +1 -0
  13. package/dist/cjs/{packages/router-devtools-core/src/TanStackRouterDevtoolsPanelCore.cjs → TanStackRouterDevtoolsPanelCore.cjs} +10 -10
  14. package/dist/cjs/TanStackRouterDevtoolsPanelCore.cjs.map +1 -0
  15. package/dist/cjs/{packages/router-devtools-core/src/context.cjs → context.cjs} +4 -4
  16. package/dist/cjs/context.cjs.map +1 -0
  17. package/dist/cjs/{packages/router-devtools-core/src/logo.cjs → logo.cjs} +3 -3
  18. package/dist/cjs/logo.cjs.map +1 -0
  19. package/dist/cjs/tokens.cjs.map +1 -0
  20. package/dist/cjs/{packages/router-devtools-core/src/useLocalStorage.cjs → useLocalStorage.cjs} +3 -3
  21. package/dist/cjs/useLocalStorage.cjs.map +1 -0
  22. package/dist/cjs/{packages/router-devtools-core/src/useStyles.cjs → useStyles.cjs} +3 -3
  23. package/dist/cjs/useStyles.cjs.map +1 -0
  24. package/dist/cjs/{packages/router-devtools-core/src/utils.cjs → utils.cjs} +4 -3
  25. package/dist/cjs/utils.cjs.map +1 -0
  26. package/dist/esm/{packages/router-devtools-core/src/AgeTicker.js → AgeTicker.js} +2 -3
  27. package/dist/esm/AgeTicker.js.map +1 -0
  28. package/dist/esm/{packages/router-devtools-core/src/BaseTanStackRouterDevtoolsPanel.js → BaseTanStackRouterDevtoolsPanel.js} +33 -33
  29. package/dist/esm/BaseTanStackRouterDevtoolsPanel.js.map +1 -0
  30. package/dist/esm/{packages/router-devtools-core/src/Explorer.js → Explorer.js} +15 -15
  31. package/dist/esm/Explorer.js.map +1 -0
  32. package/dist/esm/{packages/router-devtools-core/src/FloatingTanStackRouterDevtools.js → FloatingTanStackRouterDevtools.js} +3 -3
  33. package/dist/esm/FloatingTanStackRouterDevtools.js.map +1 -0
  34. package/dist/esm/{packages/router-devtools-core/src/NavigateButton.js → NavigateButton.js} +2 -3
  35. package/dist/esm/NavigateButton.js.map +1 -0
  36. package/dist/esm/{packages/router-devtools-core/src/TanStackRouterDevtoolsCore.js → TanStackRouterDevtoolsCore.js} +2 -2
  37. package/dist/esm/TanStackRouterDevtoolsCore.js.map +1 -0
  38. package/dist/esm/{packages/router-devtools-core/src/TanStackRouterDevtoolsPanelCore.js → TanStackRouterDevtoolsPanelCore.js} +3 -3
  39. package/dist/esm/TanStackRouterDevtoolsPanelCore.js.map +1 -0
  40. package/dist/esm/{packages/router-devtools-core/src/context.js → context.js} +1 -1
  41. package/dist/esm/context.js.map +1 -0
  42. package/dist/esm/{packages/router-devtools-core/src/logo.js → logo.js} +2 -2
  43. package/dist/esm/logo.js.map +1 -0
  44. package/dist/esm/tokens.js.map +1 -0
  45. package/dist/esm/{packages/router-devtools-core/src/useLocalStorage.js → useLocalStorage.js} +1 -1
  46. package/dist/esm/useLocalStorage.js.map +1 -0
  47. package/dist/esm/{packages/router-devtools-core/src/useStyles.js → useStyles.js} +1 -1
  48. package/dist/esm/useStyles.js.map +1 -0
  49. package/dist/esm/{packages/router-devtools-core/src/utils.js → utils.js} +2 -1
  50. package/dist/esm/utils.js.map +1 -0
  51. package/package.json +7 -6
  52. package/dist/cjs/node_modules/.pnpm/solid-js@1.9.5/node_modules/solid-js/dist/solid.cjs +0 -792
  53. package/dist/cjs/node_modules/.pnpm/solid-js@1.9.5/node_modules/solid-js/dist/solid.cjs.map +0 -1
  54. package/dist/cjs/node_modules/.pnpm/solid-js@1.9.5/node_modules/solid-js/web/dist/web.cjs +0 -675
  55. package/dist/cjs/node_modules/.pnpm/solid-js@1.9.5/node_modules/solid-js/web/dist/web.cjs.map +0 -1
  56. package/dist/cjs/packages/router-devtools-core/src/AgeTicker.cjs.map +0 -1
  57. package/dist/cjs/packages/router-devtools-core/src/BaseTanStackRouterDevtoolsPanel.cjs.map +0 -1
  58. package/dist/cjs/packages/router-devtools-core/src/Explorer.cjs.map +0 -1
  59. package/dist/cjs/packages/router-devtools-core/src/FloatingTanStackRouterDevtools.cjs.map +0 -1
  60. package/dist/cjs/packages/router-devtools-core/src/NavigateButton.cjs.map +0 -1
  61. package/dist/cjs/packages/router-devtools-core/src/TanStackRouterDevtoolsCore.cjs.map +0 -1
  62. package/dist/cjs/packages/router-devtools-core/src/TanStackRouterDevtoolsPanelCore.cjs.map +0 -1
  63. package/dist/cjs/packages/router-devtools-core/src/context.cjs.map +0 -1
  64. package/dist/cjs/packages/router-devtools-core/src/logo.cjs.map +0 -1
  65. package/dist/cjs/packages/router-devtools-core/src/tokens.cjs.map +0 -1
  66. package/dist/cjs/packages/router-devtools-core/src/useLocalStorage.cjs.map +0 -1
  67. package/dist/cjs/packages/router-devtools-core/src/useStyles.cjs.map +0 -1
  68. package/dist/cjs/packages/router-devtools-core/src/utils.cjs.map +0 -1
  69. package/dist/esm/node_modules/.pnpm/solid-js@1.9.5/node_modules/solid-js/dist/solid.js +0 -792
  70. package/dist/esm/node_modules/.pnpm/solid-js@1.9.5/node_modules/solid-js/dist/solid.js.map +0 -1
  71. package/dist/esm/node_modules/.pnpm/solid-js@1.9.5/node_modules/solid-js/web/dist/web.js +0 -676
  72. package/dist/esm/node_modules/.pnpm/solid-js@1.9.5/node_modules/solid-js/web/dist/web.js.map +0 -1
  73. package/dist/esm/packages/router-devtools-core/src/AgeTicker.js.map +0 -1
  74. package/dist/esm/packages/router-devtools-core/src/BaseTanStackRouterDevtoolsPanel.js.map +0 -1
  75. package/dist/esm/packages/router-devtools-core/src/Explorer.js.map +0 -1
  76. package/dist/esm/packages/router-devtools-core/src/FloatingTanStackRouterDevtools.js.map +0 -1
  77. package/dist/esm/packages/router-devtools-core/src/NavigateButton.js.map +0 -1
  78. package/dist/esm/packages/router-devtools-core/src/TanStackRouterDevtoolsCore.js.map +0 -1
  79. package/dist/esm/packages/router-devtools-core/src/TanStackRouterDevtoolsPanelCore.js.map +0 -1
  80. package/dist/esm/packages/router-devtools-core/src/context.js.map +0 -1
  81. package/dist/esm/packages/router-devtools-core/src/logo.js.map +0 -1
  82. package/dist/esm/packages/router-devtools-core/src/tokens.js.map +0 -1
  83. package/dist/esm/packages/router-devtools-core/src/useLocalStorage.js.map +0 -1
  84. package/dist/esm/packages/router-devtools-core/src/useStyles.js.map +0 -1
  85. package/dist/esm/packages/router-devtools-core/src/utils.js.map +0 -1
  86. /package/dist/cjs/{packages/router-devtools-core/src/index.cjs → index.cjs} +0 -0
  87. /package/dist/cjs/{packages/router-devtools-core/src/index.cjs.map → index.cjs.map} +0 -0
  88. /package/dist/cjs/{packages/router-devtools-core/src/tokens.cjs → tokens.cjs} +0 -0
  89. /package/dist/esm/{packages/router-devtools-core/src/index.js → index.js} +0 -0
  90. /package/dist/esm/{packages/router-devtools-core/src/index.js.map → index.js.map} +0 -0
  91. /package/dist/esm/{packages/router-devtools-core/src/tokens.js → tokens.js} +0 -0
@@ -1,9 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const web = require("../../../node_modules/.pnpm/solid-js@1.9.5/node_modules/solid-js/web/dist/web.cjs");
3
+ const web = require("solid-js/web");
4
4
  const clsx = require("clsx");
5
5
  const useStyles = require("./useStyles.cjs");
6
- const solid = require("../../../node_modules/.pnpm/solid-js@1.9.5/node_modules/solid-js/dist/solid.cjs");
7
6
  var _tmpl$ = /* @__PURE__ */ web.template(`<div><div></div><div>/</div><div></div><div>/</div><div>`);
8
7
  function formatTime(ms) {
9
8
  const units = ["s", "min", "h", "d"];
@@ -40,7 +39,7 @@ function AgeTicker({
40
39
  web.insert(_el$2, () => formatTime(age));
41
40
  web.insert(_el$4, () => formatTime(staleTime));
42
41
  web.insert(_el$6, () => formatTime(gcTime));
43
- solid.createRenderEffect(() => web.className(_el$, clsx.clsx(styles().ageTicker(age > staleTime))));
42
+ web.effect(() => web.className(_el$, clsx.clsx(styles().ageTicker(age > staleTime))));
44
43
  return _el$;
45
44
  })();
46
45
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgeTicker.cjs","sources":["../../src/AgeTicker.tsx"],"sourcesContent":["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"],"names":["formatTime","ms","units","values","chosenUnitIndex","i","length","formatter","Intl","NumberFormat","navigator","language","compactDisplay","notation","maximumFractionDigits","format","AgeTicker","match","router","styles","useStyles","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","cx","ageTicker"],"mappings":";;;;;;AAKA,SAASA,WAAWC,IAAY;AAC9B,QAAMC,QAAQ,CAAC,KAAK,OAAO,KAAK,GAAG;AACnC,QAAMC,SAAS,CAACF,KAAK,KAAMA,KAAK,KAAOA,KAAK,MAASA,KAAK,KAAQ;AAElE,MAAIG,kBAAkB;AACtB,WAASC,IAAI,GAAGA,IAAIF,OAAOG,QAAQD,KAAK;AACtC,QAAIF,OAAOE,CAAC,IAAK,EAAG;AACpBD,sBAAkBC;AAAAA,EACpB;AAEA,QAAME,YAAY,IAAIC,KAAKC,aAAaC,UAAUC,UAAU;AAAA,IAC1DC,gBAAgB;AAAA,IAChBC,UAAU;AAAA,IACVC,uBAAuB;AAAA,EAAA,CACxB;AAED,SAAOP,UAAUQ,OAAOZ,OAAOC,eAAe,CAAE,IAAIF,MAAME,eAAe;AAC3E;AAEO,SAASY,UAAU;AAAA,EACxBC;AAAAA,EACAC;AAIF,GAAG;AACD,QAAMC,SAASC,UAAAA,UAAAA;AAEf,MAAI,CAACH,OAAO;AACV,WAAO;AAAA,EACT;AAEA,QAAMI,QAAQH,OAAAA,EAASI,gBAAgBL,MAAMM,OAAO;AAEpD,MAAI,CAACF,MAAMG,QAAQC,QAAQ;AACzB,WAAO;AAAA,EACT;AAEA,QAAMC,MAAMC,KAAKC,IAAAA,IAAQX,MAAMY;AAC/B,QAAMC,YACJT,MAAMG,QAAQM,aAAaZ,SAASM,QAAQO,oBAAoB;AAClE,QAAMC,SACJX,MAAMG,QAAQQ,UAAUd,SAASM,QAAQS,iBAAiB,KAAK,KAAK;AAEtE,UAAA,MAAA;AAAA,QAAAC,OAAAC,UAAAC,QAAAF,KAAAG,YAAAC,QAAAF,MAAAG,aAAAC,QAAAF,MAAAC,aAAAE,QAAAD,MAAAD,aAAAG,QAAAD,MAAAF;AAAAI,QAAAA,OAAAP,OAAA,MAEUpC,WAAW0B,GAAG,CAAC;AAAAiB,QAAAA,OAAAH,OAAA,MAEfxC,WAAW8B,SAAS,CAAC;AAAAa,QAAAA,OAAAD,OAAA,MAErB1C,WAAWgC,MAAM,CAAC;AAAAY,QAAAA,aAAAC,IAAAA,UAAAX,MALdY,UAAG3B,SAAS4B,UAAUrB,MAAMI,SAAS,CAAC,CAAC,CAAA;AAAA,WAAAI;AAAAA,EAAA,GAAA;AAQvD;;"}
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const web = require("../../../node_modules/.pnpm/solid-js@1.9.5/node_modules/solid-js/web/dist/web.cjs");
3
+ const web = require("solid-js/web");
4
4
  const clsx = require("clsx");
5
5
  const invariant = require("tiny-invariant");
6
6
  const routerCore = require("@tanstack/router-core");
7
- const solid = require("../../../node_modules/.pnpm/solid-js@1.9.5/node_modules/solid-js/dist/solid.cjs");
7
+ const solidJs = require("solid-js");
8
8
  const context = require("./context.cjs");
9
9
  const useStyles = require("./useStyles.cjs");
10
10
  const useLocalStorage = require("./useLocalStorage.cjs");
@@ -21,12 +21,12 @@ function Logo(props) {
21
21
  const styles = useStyles.useStyles();
22
22
  return (() => {
23
23
  var _el$ = _tmpl$(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling;
24
- web.spread(_el$, solid.mergeProps(rest, {
24
+ web.spread(_el$, web.mergeProps(rest, {
25
25
  get ["class"]() {
26
26
  return clsx.clsx(styles().logo, className ? className() : "");
27
27
  }
28
28
  }), false, true);
29
- solid.createRenderEffect((_p$) => {
29
+ web.effect((_p$) => {
30
30
  var _v$ = styles().tanstackLogo, _v$2 = styles().routerLogo;
31
31
  _v$ !== _p$.e && web.className(_el$2, _p$.e = _v$);
32
32
  _v$2 !== _p$.t && web.className(_el$3, _p$.t = _v$2);
@@ -49,7 +49,7 @@ function NavigateLink(props) {
49
49
  _el$5.style.setProperty("min-width", "0");
50
50
  web.insert(_el$5, () => props.children);
51
51
  web.insert(_el$4, () => props.right, null);
52
- solid.createRenderEffect(() => web.className(_el$4, props.class));
52
+ web.effect(() => web.className(_el$4, props.class));
53
53
  return _el$4;
54
54
  })();
55
55
  }
@@ -62,9 +62,9 @@ function RouteComp({
62
62
  setActiveId
63
63
  }) {
64
64
  const styles = useStyles.useStyles();
65
- const matches = solid.createMemo(() => routerState().pendingMatches || routerState().matches);
66
- const match = solid.createMemo(() => routerState().matches.find((d) => d.routeId === route.id));
67
- const param = solid.createMemo(() => {
65
+ const matches = solidJs.createMemo(() => routerState().pendingMatches || routerState().matches);
66
+ const match = solidJs.createMemo(() => routerState().matches.find((d) => d.routeId === route.id));
67
+ const param = solidJs.createMemo(() => {
68
68
  try {
69
69
  if (match()?.params) {
70
70
  const p = match()?.params;
@@ -81,7 +81,7 @@ function RouteComp({
81
81
  return "";
82
82
  }
83
83
  });
84
- const navigationTarget = solid.createMemo(() => {
84
+ const navigationTarget = solidJs.createMemo(() => {
85
85
  if (isRoot) return void 0;
86
86
  if (!route.path) return void 0;
87
87
  const allParams = Object.assign({}, ...matches().map((m) => m.params));
@@ -101,16 +101,16 @@ function RouteComp({
101
101
  setActiveId(activeId() === route.id ? "" : route.id);
102
102
  }
103
103
  };
104
- web.insert(_el$7, solid.createComponent(NavigateLink, {
104
+ web.insert(_el$7, web.createComponent(NavigateLink, {
105
105
  get ["class"]() {
106
106
  return clsx.clsx(styles().routesRow(!!match()));
107
107
  },
108
108
  get left() {
109
- return solid.createComponent(solid.Show, {
109
+ return web.createComponent(solidJs.Show, {
110
110
  get when() {
111
111
  return navigationTarget();
112
112
  },
113
- children: (navigate) => solid.createComponent(NavigateButton.NavigateButton, {
113
+ children: (navigate) => web.createComponent(NavigateButton.NavigateButton, {
114
114
  get to() {
115
115
  return navigate();
116
116
  },
@@ -119,7 +119,7 @@ function RouteComp({
119
119
  });
120
120
  },
121
121
  get right() {
122
- return solid.createComponent(AgeTicker.AgeTicker, {
122
+ return web.createComponent(AgeTicker.AgeTicker, {
123
123
  get match() {
124
124
  return match();
125
125
  },
@@ -130,34 +130,34 @@ function RouteComp({
130
130
  return [(() => {
131
131
  var _el$9 = _tmpl$3(), _el$0 = _el$9.firstChild;
132
132
  web.insert(_el$9, () => isRoot ? routerCore.rootRouteId : route.path || routerCore.trimPath(route.id), _el$0);
133
- solid.createRenderEffect(() => web.className(_el$9, styles().code));
133
+ web.effect(() => web.className(_el$9, styles().code));
134
134
  return _el$9;
135
135
  })(), (() => {
136
136
  var _el$1 = _tmpl$4();
137
137
  web.insert(_el$1, param);
138
- solid.createRenderEffect(() => web.className(_el$1, styles().routeParamInfo));
138
+ web.effect(() => web.className(_el$1, styles().routeParamInfo));
139
139
  return _el$1;
140
140
  })()];
141
141
  }
142
142
  }), null);
143
143
  web.insert(_el$6, (() => {
144
- var _c$ = solid.createMemo(() => !!route.children?.length);
144
+ var _c$ = web.memo(() => !!route.children?.length);
145
145
  return () => _c$() ? (() => {
146
146
  var _el$10 = _tmpl$6();
147
147
  web.insert(_el$10, () => [...route.children].sort((a, b) => {
148
148
  return a.rank - b.rank;
149
- }).map((r) => solid.createComponent(RouteComp, {
149
+ }).map((r) => web.createComponent(RouteComp, {
150
150
  routerState,
151
151
  router,
152
152
  route: r,
153
153
  activeId,
154
154
  setActiveId
155
155
  })));
156
- solid.createRenderEffect(() => web.className(_el$10, styles().nestedRouteRow(!!isRoot)));
156
+ web.effect(() => web.className(_el$10, styles().nestedRouteRow(!!isRoot)));
157
157
  return _el$10;
158
158
  })() : null;
159
159
  })(), null);
160
- solid.createRenderEffect((_p$) => {
160
+ web.effect((_p$) => {
161
161
  var _v$3 = `Open match details for ${route.id}`, _v$4 = clsx.clsx(styles().routesRowContainer(route.id === activeId(), !!match())), _v$5 = clsx.clsx(styles().matchIndicator(utils.getRouteStatusColor(matches(), route)));
162
162
  _v$3 !== _p$.e && web.setAttribute(_el$7, "aria-label", _p$.e = _v$3);
163
163
  _v$4 !== _p$.t && web.className(_el$7, _p$.t = _v$4);
@@ -195,26 +195,26 @@ const BaseTanStackRouterDevtoolsPanel = function BaseTanStackRouterDevtoolsPanel
195
195
  invariant(router, "No router was found for the TanStack Router Devtools. Please place the devtools in the <RouterProvider> component tree or pass the router instance to the devtools manually.");
196
196
  const [showMatches, setShowMatches] = useLocalStorage("tanstackRouterDevtoolsShowMatches", true);
197
197
  const [activeId, setActiveId] = useLocalStorage("tanstackRouterDevtoolsActiveRouteId", "");
198
- const activeMatch = solid.createMemo(() => {
198
+ const activeMatch = solidJs.createMemo(() => {
199
199
  const matches = [...routerState().pendingMatches ?? [], ...routerState().matches, ...routerState().cachedMatches];
200
200
  return matches.find((d) => d.routeId === activeId() || d.id === activeId());
201
201
  });
202
- const hasSearch = solid.createMemo(() => Object.keys(routerState().location.search).length);
203
- const explorerState = solid.createMemo(() => {
202
+ const hasSearch = solidJs.createMemo(() => Object.keys(routerState().location.search).length);
203
+ const explorerState = solidJs.createMemo(() => {
204
204
  return {
205
205
  ...router(),
206
206
  state: routerState()
207
207
  };
208
208
  });
209
- const routerExplorerValue = solid.createMemo(() => Object.fromEntries(utils.multiSortBy(Object.keys(explorerState()), ["state", "routesById", "routesByPath", "flatRoutes", "options", "manifest"].map((d) => (dd) => dd !== d)).map((key) => [key, explorerState()[key]]).filter((d) => typeof d[1] !== "function" && !["__store", "basepath", "injectedHtml", "subscribers", "latestLoadPromise", "navigateTimeout", "resetNextScroll", "tempLocationKey", "latestLocation", "routeTree", "history"].includes(d[0]))));
210
- const activeMatchLoaderData = solid.createMemo(() => activeMatch()?.loaderData);
211
- const activeMatchValue = solid.createMemo(() => activeMatch());
212
- const locationSearchValue = solid.createMemo(() => routerState().location.search);
209
+ const routerExplorerValue = solidJs.createMemo(() => Object.fromEntries(utils.multiSortBy(Object.keys(explorerState()), ["state", "routesById", "routesByPath", "flatRoutes", "options", "manifest"].map((d) => (dd) => dd !== d)).map((key) => [key, explorerState()[key]]).filter((d) => typeof d[1] !== "function" && !["__store", "basepath", "injectedHtml", "subscribers", "latestLoadPromise", "navigateTimeout", "resetNextScroll", "tempLocationKey", "latestLocation", "routeTree", "history"].includes(d[0]))));
210
+ const activeMatchLoaderData = solidJs.createMemo(() => activeMatch()?.loaderData);
211
+ const activeMatchValue = solidJs.createMemo(() => activeMatch());
212
+ const locationSearchValue = solidJs.createMemo(() => routerState().location.search);
213
213
  return (() => {
214
214
  var _el$11 = _tmpl$7(), _el$12 = _el$11.firstChild, _el$13 = _el$12.firstChild, _el$14 = _el$12.nextSibling, _el$15 = _el$14.firstChild, _el$16 = _el$15.nextSibling, _el$17 = _el$16.firstChild, _el$18 = _el$14.nextSibling, _el$19 = _el$18.firstChild, _el$20 = _el$19.firstChild;
215
215
  _el$20.firstChild;
216
216
  var _el$22 = _el$20.nextSibling, _el$23 = _el$22.firstChild, _el$24 = _el$22.nextSibling, _el$25 = _el$24.firstChild, _el$26 = _el$25.firstChild, _el$27 = _el$26.nextSibling, _el$28 = _el$25.nextSibling, _el$29 = _el$24.nextSibling;
217
- web.spread(_el$11, solid.mergeProps({
217
+ web.spread(_el$11, web.mergeProps({
218
218
  get ["class"]() {
219
219
  return clsx.clsx(styles().devtoolsPanel, "TanStackRouterDevtoolsPanel", className ? className() : "");
220
220
  },
@@ -225,7 +225,7 @@ const BaseTanStackRouterDevtoolsPanel = function BaseTanStackRouterDevtoolsPanel
225
225
  web.insert(_el$11, handleDragStart ? (() => {
226
226
  var _el$30 = _tmpl$6();
227
227
  web.addEventListener(_el$30, "mousedown", handleDragStart, true);
228
- solid.createRenderEffect(() => web.className(_el$30, styles().dragHandle));
228
+ web.effect(() => web.className(_el$30, styles().dragHandle));
229
229
  return _el$30;
230
230
  })() : null, _el$12);
231
231
  _el$12.$$click = (e) => {
@@ -234,7 +234,7 @@ const BaseTanStackRouterDevtoolsPanel = function BaseTanStackRouterDevtoolsPanel
234
234
  }
235
235
  onCloseClick(e);
236
236
  };
237
- web.insert(_el$15, solid.createComponent(Logo, {
237
+ web.insert(_el$15, web.createComponent(Logo, {
238
238
  "aria-hidden": true,
239
239
  onClick: (e) => {
240
240
  if (setIsOpen) {
@@ -243,7 +243,7 @@ const BaseTanStackRouterDevtoolsPanel = function BaseTanStackRouterDevtoolsPanel
243
243
  onCloseClick(e);
244
244
  }
245
245
  }));
246
- web.insert(_el$17, solid.createComponent(Explorer.Explorer, {
246
+ web.insert(_el$17, web.createComponent(Explorer.Explorer, {
247
247
  label: "Router",
248
248
  value: routerExplorerValue,
249
249
  defaultExpanded: {
@@ -256,10 +256,10 @@ const BaseTanStackRouterDevtoolsPanel = function BaseTanStackRouterDevtoolsPanel
256
256
  }
257
257
  }));
258
258
  web.insert(_el$20, (() => {
259
- var _c$2 = solid.createMemo(() => !!routerState().location.maskedLocation);
259
+ var _c$2 = web.memo(() => !!routerState().location.maskedLocation);
260
260
  return () => _c$2() ? (() => {
261
261
  var _el$31 = _tmpl$8(), _el$32 = _el$31.firstChild;
262
- solid.createRenderEffect((_p$) => {
262
+ web.effect((_p$) => {
263
263
  var _v$22 = styles().maskedBadgeContainer, _v$23 = styles().maskedBadge;
264
264
  _v$22 !== _p$.e && web.className(_el$31, _p$.e = _v$22);
265
265
  _v$23 !== _p$.t && web.className(_el$32, _p$.t = _v$23);
@@ -273,11 +273,11 @@ const BaseTanStackRouterDevtoolsPanel = function BaseTanStackRouterDevtoolsPanel
273
273
  })(), null);
274
274
  web.insert(_el$23, () => routerState().location.pathname);
275
275
  web.insert(_el$22, (() => {
276
- var _c$3 = solid.createMemo(() => !!routerState().location.maskedLocation);
276
+ var _c$3 = web.memo(() => !!routerState().location.maskedLocation);
277
277
  return () => _c$3() ? (() => {
278
278
  var _el$33 = _tmpl$4();
279
279
  web.insert(_el$33, () => routerState().location.maskedLocation?.pathname);
280
- solid.createRenderEffect(() => web.className(_el$33, styles().maskedLocation));
280
+ web.effect(() => web.className(_el$33, styles().maskedLocation));
281
281
  return _el$33;
282
282
  })() : null;
283
283
  })(), null);
@@ -288,8 +288,8 @@ const BaseTanStackRouterDevtoolsPanel = function BaseTanStackRouterDevtoolsPanel
288
288
  setShowMatches(true);
289
289
  };
290
290
  web.insert(_el$29, (() => {
291
- var _c$4 = solid.createMemo(() => !!!showMatches());
292
- return () => _c$4() ? solid.createComponent(RouteComp, {
291
+ var _c$4 = web.memo(() => !!!showMatches());
292
+ return () => _c$4() ? web.createComponent(RouteComp, {
293
293
  routerState,
294
294
  router,
295
295
  get route() {
@@ -304,9 +304,9 @@ const BaseTanStackRouterDevtoolsPanel = function BaseTanStackRouterDevtoolsPanel
304
304
  return (() => {
305
305
  var _el$35 = _tmpl$9(), _el$36 = _el$35.firstChild;
306
306
  _el$35.$$click = () => setActiveId(activeId() === match.id ? "" : match.id);
307
- web.insert(_el$35, solid.createComponent(NavigateLink, {
307
+ web.insert(_el$35, web.createComponent(NavigateLink, {
308
308
  get left() {
309
- return solid.createComponent(NavigateButton.NavigateButton, {
309
+ return web.createComponent(NavigateButton.NavigateButton, {
310
310
  get to() {
311
311
  return match.pathname;
312
312
  },
@@ -320,7 +320,7 @@ const BaseTanStackRouterDevtoolsPanel = function BaseTanStackRouterDevtoolsPanel
320
320
  });
321
321
  },
322
322
  get right() {
323
- return solid.createComponent(AgeTicker.AgeTicker, {
323
+ return web.createComponent(AgeTicker.AgeTicker, {
324
324
  match,
325
325
  router
326
326
  });
@@ -328,11 +328,11 @@ const BaseTanStackRouterDevtoolsPanel = function BaseTanStackRouterDevtoolsPanel
328
328
  get children() {
329
329
  var _el$37 = _tmpl$4();
330
330
  web.insert(_el$37, () => `${match.routeId === routerCore.rootRouteId ? routerCore.rootRouteId : match.pathname}`);
331
- solid.createRenderEffect(() => web.className(_el$37, styles().matchID));
331
+ web.effect(() => web.className(_el$37, styles().matchID));
332
332
  return _el$37;
333
333
  }
334
334
  }), null);
335
- solid.createRenderEffect((_p$) => {
335
+ web.effect((_p$) => {
336
336
  var _v$24 = `Open match details for ${match.id}`, _v$25 = clsx.clsx(styles().matchRow(match === activeMatch())), _v$26 = clsx.clsx(styles().matchIndicator(utils.getStatusColor(match)));
337
337
  _v$24 !== _p$.e && web.setAttribute(_el$35, "aria-label", _p$.e = _v$24);
338
338
  _v$25 !== _p$.t && web.className(_el$35, _p$.t = _v$25);
@@ -350,16 +350,16 @@ const BaseTanStackRouterDevtoolsPanel = function BaseTanStackRouterDevtoolsPanel
350
350
  })();
351
351
  })());
352
352
  web.insert(_el$18, (() => {
353
- var _c$5 = solid.createMemo(() => !!routerState().cachedMatches.length);
353
+ var _c$5 = web.memo(() => !!routerState().cachedMatches.length);
354
354
  return () => _c$5() ? (() => {
355
355
  var _el$38 = _tmpl$0(), _el$39 = _el$38.firstChild, _el$40 = _el$39.firstChild, _el$41 = _el$40.nextSibling, _el$42 = _el$39.nextSibling;
356
356
  web.insert(_el$42, () => routerState().cachedMatches.map((match) => {
357
357
  return (() => {
358
358
  var _el$43 = _tmpl$9(), _el$44 = _el$43.firstChild;
359
359
  _el$43.$$click = () => setActiveId(activeId() === match.id ? "" : match.id);
360
- web.insert(_el$43, solid.createComponent(NavigateLink, {
360
+ web.insert(_el$43, web.createComponent(NavigateLink, {
361
361
  get left() {
362
- return solid.createComponent(NavigateButton.NavigateButton, {
362
+ return web.createComponent(NavigateButton.NavigateButton, {
363
363
  get to() {
364
364
  return match.pathname;
365
365
  },
@@ -373,7 +373,7 @@ const BaseTanStackRouterDevtoolsPanel = function BaseTanStackRouterDevtoolsPanel
373
373
  });
374
374
  },
375
375
  get right() {
376
- return solid.createComponent(AgeTicker.AgeTicker, {
376
+ return web.createComponent(AgeTicker.AgeTicker, {
377
377
  match,
378
378
  router
379
379
  });
@@ -381,11 +381,11 @@ const BaseTanStackRouterDevtoolsPanel = function BaseTanStackRouterDevtoolsPanel
381
381
  get children() {
382
382
  var _el$45 = _tmpl$4();
383
383
  web.insert(_el$45, () => `${match.id}`);
384
- solid.createRenderEffect(() => web.className(_el$45, styles().matchID));
384
+ web.effect(() => web.className(_el$45, styles().matchID));
385
385
  return _el$45;
386
386
  }
387
387
  }), null);
388
- solid.createRenderEffect((_p$) => {
388
+ web.effect((_p$) => {
389
389
  var _v$30 = `Open match details for ${match.id}`, _v$31 = clsx.clsx(styles().matchRow(match === activeMatch())), _v$32 = clsx.clsx(styles().matchIndicator(utils.getStatusColor(match)));
390
390
  _v$30 !== _p$.e && web.setAttribute(_el$43, "aria-label", _p$.e = _v$30);
391
391
  _v$31 !== _p$.t && web.className(_el$43, _p$.t = _v$31);
@@ -399,7 +399,7 @@ const BaseTanStackRouterDevtoolsPanel = function BaseTanStackRouterDevtoolsPanel
399
399
  return _el$43;
400
400
  })();
401
401
  }));
402
- solid.createRenderEffect((_p$) => {
402
+ web.effect((_p$) => {
403
403
  var _v$27 = styles().cachedMatchesContainer, _v$28 = styles().detailsHeader, _v$29 = styles().detailsHeaderInfo;
404
404
  _v$27 !== _p$.e && web.className(_el$38, _p$.e = _v$27);
405
405
  _v$28 !== _p$.t && web.className(_el$39, _p$.t = _v$28);
@@ -414,45 +414,45 @@ const BaseTanStackRouterDevtoolsPanel = function BaseTanStackRouterDevtoolsPanel
414
414
  })() : null;
415
415
  })(), null);
416
416
  web.insert(_el$11, (() => {
417
- var _c$6 = solid.createMemo(() => !!(activeMatch() && activeMatch()?.status));
417
+ var _c$6 = web.memo(() => !!(activeMatch() && activeMatch()?.status));
418
418
  return () => _c$6() ? (() => {
419
419
  var _el$46 = _tmpl$1(), _el$47 = _el$46.firstChild, _el$48 = _el$47.nextSibling, _el$49 = _el$48.firstChild, _el$50 = _el$49.firstChild, _el$51 = _el$50.firstChild, _el$52 = _el$50.nextSibling, _el$53 = _el$52.firstChild, _el$54 = _el$53.nextSibling, _el$55 = _el$54.firstChild, _el$56 = _el$52.nextSibling, _el$57 = _el$56.firstChild, _el$58 = _el$57.nextSibling, _el$59 = _el$56.nextSibling, _el$60 = _el$59.firstChild, _el$61 = _el$60.nextSibling, _el$62 = _el$48.nextSibling, _el$63 = _el$62.nextSibling;
420
420
  web.insert(_el$51, (() => {
421
- var _c$8 = solid.createMemo(() => !!(activeMatch()?.status === "success" && activeMatch()?.isFetching));
421
+ var _c$8 = web.memo(() => !!(activeMatch()?.status === "success" && activeMatch()?.isFetching));
422
422
  return () => _c$8() ? "fetching" : activeMatch()?.status;
423
423
  })());
424
424
  web.insert(_el$55, () => activeMatch()?.id);
425
425
  web.insert(_el$58, (() => {
426
- var _c$9 = solid.createMemo(() => !!routerState().pendingMatches?.find((d) => d.id === activeMatch()?.id));
426
+ var _c$9 = web.memo(() => !!routerState().pendingMatches?.find((d) => d.id === activeMatch()?.id));
427
427
  return () => _c$9() ? "Pending" : routerState().matches.find((d) => d.id === activeMatch()?.id) ? "Active" : "Cached";
428
428
  })());
429
429
  web.insert(_el$61, (() => {
430
- var _c$0 = solid.createMemo(() => !!activeMatch()?.updatedAt);
430
+ var _c$0 = web.memo(() => !!activeMatch()?.updatedAt);
431
431
  return () => _c$0() ? new Date(activeMatch()?.updatedAt).toLocaleTimeString() : "N/A";
432
432
  })());
433
433
  web.insert(_el$46, (() => {
434
- var _c$1 = solid.createMemo(() => !!activeMatchLoaderData());
434
+ var _c$1 = web.memo(() => !!activeMatchLoaderData());
435
435
  return () => _c$1() ? [(() => {
436
436
  var _el$64 = _tmpl$10();
437
- solid.createRenderEffect(() => web.className(_el$64, styles().detailsHeader));
437
+ web.effect(() => web.className(_el$64, styles().detailsHeader));
438
438
  return _el$64;
439
439
  })(), (() => {
440
440
  var _el$65 = _tmpl$6();
441
- web.insert(_el$65, solid.createComponent(Explorer.Explorer, {
441
+ web.insert(_el$65, web.createComponent(Explorer.Explorer, {
442
442
  label: "loaderData",
443
443
  value: activeMatchLoaderData,
444
444
  defaultExpanded: {}
445
445
  }));
446
- solid.createRenderEffect(() => web.className(_el$65, styles().detailsContent));
446
+ web.effect(() => web.className(_el$65, styles().detailsContent));
447
447
  return _el$65;
448
448
  })()] : null;
449
449
  })(), _el$62);
450
- web.insert(_el$63, solid.createComponent(Explorer.Explorer, {
450
+ web.insert(_el$63, web.createComponent(Explorer.Explorer, {
451
451
  label: "Match",
452
452
  value: activeMatchValue,
453
453
  defaultExpanded: {}
454
454
  }));
455
- solid.createRenderEffect((_p$) => {
455
+ web.effect((_p$) => {
456
456
  var _v$33 = styles().thirdContainer, _v$34 = styles().detailsHeader, _v$35 = styles().matchDetails, _v$36 = styles().matchStatus(activeMatch()?.status, activeMatch()?.isFetching), _v$37 = styles().matchDetailsInfoLabel, _v$38 = styles().matchDetailsInfo, _v$39 = styles().matchDetailsInfoLabel, _v$40 = styles().matchDetailsInfo, _v$41 = styles().matchDetailsInfoLabel, _v$42 = styles().matchDetailsInfo, _v$43 = styles().detailsHeader, _v$44 = styles().detailsContent;
457
457
  _v$33 !== _p$.e && web.className(_el$46, _p$.e = _v$33);
458
458
  _v$34 !== _p$.t && web.className(_el$47, _p$.t = _v$34);
@@ -485,14 +485,14 @@ const BaseTanStackRouterDevtoolsPanel = function BaseTanStackRouterDevtoolsPanel
485
485
  })() : null;
486
486
  })(), null);
487
487
  web.insert(_el$11, (() => {
488
- var _c$7 = solid.createMemo(() => !!hasSearch());
488
+ var _c$7 = web.memo(() => !!hasSearch());
489
489
  return () => _c$7() ? (() => {
490
490
  var _el$66 = _tmpl$11(), _el$67 = _el$66.firstChild;
491
491
  _el$67.firstChild;
492
492
  var _el$69 = _el$67.nextSibling;
493
493
  web.insert(_el$67, typeof navigator !== "undefined" ? (() => {
494
494
  var _el$70 = _tmpl$12();
495
- web.insert(_el$70, solid.createComponent(CopyButton, {
495
+ web.insert(_el$70, web.createComponent(CopyButton, {
496
496
  getValue: () => {
497
497
  const search = routerState().location.search;
498
498
  return JSON.stringify(search);
@@ -500,7 +500,7 @@ const BaseTanStackRouterDevtoolsPanel = function BaseTanStackRouterDevtoolsPanel
500
500
  }));
501
501
  return _el$70;
502
502
  })() : null, null);
503
- web.insert(_el$69, solid.createComponent(Explorer.Explorer, {
503
+ web.insert(_el$69, web.createComponent(Explorer.Explorer, {
504
504
  value: locationSearchValue,
505
505
  get defaultExpanded() {
506
506
  return Object.keys(routerState().location.search).reduce((obj, next) => {
@@ -509,7 +509,7 @@ const BaseTanStackRouterDevtoolsPanel = function BaseTanStackRouterDevtoolsPanel
509
509
  }, {});
510
510
  }
511
511
  }));
512
- solid.createRenderEffect((_p$) => {
512
+ web.effect((_p$) => {
513
513
  var _v$45 = styles().fourthContainer, _v$46 = styles().detailsHeader, _v$47 = styles().detailsContent;
514
514
  _v$45 !== _p$.e && web.className(_el$66, _p$.e = _v$45);
515
515
  _v$46 !== _p$.t && web.className(_el$67, _p$.t = _v$46);
@@ -523,7 +523,7 @@ const BaseTanStackRouterDevtoolsPanel = function BaseTanStackRouterDevtoolsPanel
523
523
  return _el$66;
524
524
  })() : null;
525
525
  })(), null);
526
- solid.createRenderEffect((_p$) => {
526
+ web.effect((_p$) => {
527
527
  var _v$6 = styles().panelCloseBtn, _v$7 = styles().panelCloseBtnIcon, _v$8 = styles().firstContainer, _v$9 = styles().row, _v$0 = styles().routerExplorerContainer, _v$1 = styles().routerExplorer, _v$10 = styles().secondContainer, _v$11 = styles().matchesContainer, _v$12 = styles().detailsHeader, _v$13 = styles().detailsContent, _v$14 = styles().detailsHeader, _v$15 = styles().routeMatchesToggle, _v$16 = !showMatches(), _v$17 = clsx.clsx(styles().routeMatchesToggleBtn(!showMatches(), true)), _v$18 = showMatches(), _v$19 = clsx.clsx(styles().routeMatchesToggleBtn(!!showMatches(), false)), _v$20 = styles().detailsHeaderInfo, _v$21 = clsx.clsx(styles().routesContainer);
528
528
  _v$6 !== _p$.e && web.className(_el$12, _p$.e = _v$6);
529
529
  _v$7 !== _p$.t && web.setAttribute(_el$13, "class", _p$.t = _v$7);
@@ -570,7 +570,7 @@ const BaseTanStackRouterDevtoolsPanel = function BaseTanStackRouterDevtoolsPanel
570
570
  function CopyButton({
571
571
  getValue
572
572
  }) {
573
- const [copied, setCopied] = solid.createSignal(false);
573
+ const [copied, setCopied] = solidJs.createSignal(false);
574
574
  let timeoutId = null;
575
575
  const handleCopy = async () => {
576
576
  if (typeof navigator === "undefined" || !navigator.clipboard?.writeText) {
@@ -587,14 +587,14 @@ function CopyButton({
587
587
  console.error("TanStack Router Devtools: Failed to copy", e);
588
588
  }
589
589
  };
590
- solid.onCleanup(() => {
590
+ solidJs.onCleanup(() => {
591
591
  if (timeoutId) clearTimeout(timeoutId);
592
592
  });
593
593
  return (() => {
594
594
  var _el$71 = _tmpl$13();
595
595
  _el$71.$$click = handleCopy;
596
596
  web.insert(_el$71, () => copied() ? "✅" : "📋");
597
- solid.createRenderEffect(() => web.setAttribute(_el$71, "title", copied() ? "Copied!" : "Copy"));
597
+ web.effect(() => web.setAttribute(_el$71, "title", copied() ? "Copied!" : "Copy"));
598
598
  return _el$71;
599
599
  })();
600
600
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseTanStackRouterDevtoolsPanel.cjs","sources":["../../src/BaseTanStackRouterDevtoolsPanel.tsx"],"sourcesContent":["import { clsx as cx } from 'clsx'\nimport { default as invariant } from 'tiny-invariant'\nimport { interpolatePath, rootRouteId, trimPath } from '@tanstack/router-core'\nimport { Show, createMemo, createSignal, onCleanup } 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 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\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 leaveWildcards: false,\n leaveParams: false,\n decodeCharMap: router().pathParamsDecodeCharMap,\n })\n\n // only if `interpolated` is not missing params, return the path since this\n // means that all the params are present for a successful navigation\n return !interpolated.isMissingParams\n ? interpolated.interpolatedPath\n : undefined\n })\n\n return (\n <div>\n <div\n role=\"button\"\n aria-label={`Open match details for ${route.id}`}\n onClick={() => {\n if (match()) {\n setActiveId(activeId() === route.id ? '' : route.id)\n }\n }}\n class={cx(\n styles().routesRowContainer(route.id === activeId(), !!match()),\n )}\n >\n <div\n class={cx(\n styles().matchIndicator(getRouteStatusColor(matches(), route)),\n )}\n />\n <NavigateLink\n class={cx(styles().routesRow(!!match()))}\n left={\n <Show when={navigationTarget()}>\n {(navigate) => <NavigateButton to={navigate()} router={router} />}\n </Show>\n }\n right={<AgeTicker match={match()} router={router} />}\n >\n <code class={styles().code}>\n {isRoot ? rootRouteId : route.path || trimPath(route.id)}{' '}\n </code>\n <code class={styles().routeParamInfo}>{param()}</code>\n </NavigateLink>\n </div>\n {route.children?.length ? (\n <div class={styles().nestedRouteRow(!!isRoot)}>\n {[...(route.children as Array<AnyRoute>)]\n .sort((a, b) => {\n return a.rank - b.rank\n })\n .map((r) => (\n <RouteComp\n routerState={routerState}\n router={router}\n route={r}\n activeId={activeId}\n setActiveId={setActiveId}\n />\n ))}\n </div>\n ) : null}\n </div>\n )\n}\n\nexport const BaseTanStackRouterDevtoolsPanel =\n function BaseTanStackRouterDevtoolsPanel({\n ...props\n }: BaseDevtoolsPanelOptions): JSX.Element {\n const {\n isOpen = true,\n setIsOpen,\n handleDragStart,\n router,\n routerState,\n shadowDOMTarget,\n ...panelProps\n } = props\n\n const { onCloseClick } = useDevtoolsOnClose()\n const styles = useStyles()\n const { className, style, ...otherPanelProps } = panelProps\n\n invariant(\n router,\n 'No router was found for the TanStack Router Devtools. Please place the devtools in the <RouterProvider> component tree or pass the router instance to the devtools manually.',\n )\n\n // useStore(router.__store)\n\n const [showMatches, setShowMatches] = useLocalStorage(\n 'tanstackRouterDevtoolsShowMatches',\n true,\n )\n\n const [activeId, setActiveId] = useLocalStorage(\n 'tanstackRouterDevtoolsActiveRouteId',\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 'flatRoutes',\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 setShowMatches(false)\n }}\n disabled={!showMatches()}\n class={cx(\n styles().routeMatchesToggleBtn(!showMatches(), true),\n )}\n >\n Routes\n </button>\n <button\n type=\"button\"\n onClick={() => {\n setShowMatches(true)\n }}\n disabled={showMatches()}\n class={cx(\n styles().routeMatchesToggleBtn(!!showMatches(), false),\n )}\n >\n Matches\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 {!showMatches() ? (\n <RouteComp\n routerState={routerState}\n router={router}\n route={router().routeTree}\n isRoot\n activeId={activeId}\n setActiveId={setActiveId}\n />\n ) : (\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 )}\n </div>\n </div>\n {routerState().cachedMatches.length ? (\n <div class={styles().cachedMatchesContainer}>\n <div class={styles().detailsHeader}>\n <div>Cached Matches</div>\n <div class={styles().detailsHeaderInfo}>\n age / staleTime / gcTime\n </div>\n </div>\n <div>\n {routerState().cachedMatches.map((match: any) => {\n return (\n <div\n role=\"button\"\n aria-label={`Open match details for ${match.id}`}\n onClick={() =>\n setActiveId(activeId() === match.id ? '' : match.id)\n }\n class={cx(styles().matchRow(match === activeMatch()))}\n >\n <div\n class={cx(\n styles().matchIndicator(getStatusColor(match)),\n )}\n />\n <NavigateLink\n left={\n <NavigateButton\n to={match.pathname}\n params={match.params}\n search={match.search}\n router={router}\n />\n }\n right={<AgeTicker match={match} router={router} />}\n >\n <code class={styles().matchID}>{`${match.id}`}</code>\n </NavigateLink>\n </div>\n )\n })}\n </div>\n </div>\n ) : null}\n </div>\n {activeMatch() && activeMatch()?.status ? (\n <div class={styles().thirdContainer}>\n <div class={styles().detailsHeader}>Match Details</div>\n <div>\n <div class={styles().matchDetails}>\n <div\n class={styles().matchStatus(\n activeMatch()?.status,\n activeMatch()?.isFetching,\n )}\n >\n <div>\n {activeMatch()?.status === 'success' &&\n activeMatch()?.isFetching\n ? 'fetching'\n : activeMatch()?.status}\n </div>\n </div>\n <div class={styles().matchDetailsInfoLabel}>\n <div>ID:</div>\n <div class={styles().matchDetailsInfo}>\n <code>{activeMatch()?.id}</code>\n </div>\n </div>\n <div class={styles().matchDetailsInfoLabel}>\n <div>State:</div>\n <div class={styles().matchDetailsInfo}>\n {routerState().pendingMatches?.find(\n (d: any) => d.id === activeMatch()?.id,\n )\n ? 'Pending'\n : routerState().matches.find(\n (d: any) => d.id === activeMatch()?.id,\n )\n ? 'Active'\n : 'Cached'}\n </div>\n </div>\n <div class={styles().matchDetailsInfoLabel}>\n <div>Last Updated:</div>\n <div class={styles().matchDetailsInfo}>\n {activeMatch()?.updatedAt\n ? new Date(activeMatch()?.updatedAt).toLocaleTimeString()\n : 'N/A'}\n </div>\n </div>\n </div>\n </div>\n {activeMatchLoaderData() ? (\n <>\n <div class={styles().detailsHeader}>Loader Data</div>\n <div class={styles().detailsContent}>\n <Explorer\n label=\"loaderData\"\n value={activeMatchLoaderData}\n defaultExpanded={{}}\n />\n </div>\n </>\n ) : null}\n <div class={styles().detailsHeader}>Explorer</div>\n <div class={styles().detailsContent}>\n <Explorer\n label=\"Match\"\n value={activeMatchValue}\n defaultExpanded={{}}\n />\n </div>\n </div>\n ) : null}\n {hasSearch() ? (\n <div class={styles().fourthContainer}>\n <div class={styles().detailsHeader}>\n <span>Search Params</span>\n {typeof navigator !== 'undefined' ? (\n <span style=\"margin-left: 0.5rem;\">\n <CopyButton\n getValue={() => {\n const search = routerState().location.search\n return JSON.stringify(search)\n }}\n />\n </span>\n ) : null}\n </div>\n <div class={styles().detailsContent}>\n <Explorer\n value={locationSearchValue}\n defaultExpanded={Object.keys(\n routerState().location.search,\n ).reduce((obj: any, next) => {\n obj[next] = {}\n return obj\n }, {})}\n />\n </div>\n </div>\n ) : null}\n </div>\n )\n }\n\nfunction CopyButton({ getValue }: { getValue: () => string }) {\n const [copied, setCopied] = createSignal(false)\n\n let timeoutId: ReturnType<typeof setTimeout> | null = null\n\n const handleCopy = async () => {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (typeof navigator === 'undefined' || !navigator.clipboard?.writeText) {\n console.warn('TanStack Router Devtools: Clipboard API unavailable')\n return\n }\n try {\n const value = getValue()\n await navigator.clipboard.writeText(value)\n setCopied(true)\n if (timeoutId) clearTimeout(timeoutId)\n timeoutId = setTimeout(() => setCopied(false), 2500)\n } catch (e) {\n console.error('TanStack Router Devtools: Failed to copy', e)\n }\n }\n\n onCleanup(() => {\n if (timeoutId) clearTimeout(timeoutId)\n })\n\n return (\n <button\n type=\"button\"\n style=\"cursor: pointer;\"\n onClick={handleCopy}\n aria-label=\"Copy value to clipboard\"\n title={copied() ? 'Copied!' : 'Copy'}\n >\n {copied() ? '✅' : '📋'}\n </button>\n )\n}\n\nexport default BaseTanStackRouterDevtoolsPanel\n"],"names":["Logo","props","className","rest","styles","useStyles","_el$","_tmpl$","_el$2","firstChild","_el$3","nextSibling","_$spread","_$mergeProps","cx","logo","_$effect","_p$","_v$","tanstackLogo","_v$2","routerLogo","e","_$className","t","undefined","NavigateLink","_el$4","_tmpl$2","_el$5","style","setProperty","_$insert","left","children","right","class","RouteComp","routerState","router","route","isRoot","activeId","setActiveId","matches","createMemo","pendingMatches","match","find","d","routeId","id","param","params","p","r","path","trimPath","startsWith","trimmed","slice","error","navigationTarget","allParams","Object","assign","map","m","interpolated","interpolatePath","fullPath","leaveWildcards","leaveParams","decodeCharMap","pathParamsDecodeCharMap","isMissingParams","interpolatedPath","_el$6","_tmpl$5","_el$7","_el$8","$$click","_$createComponent","routesRow","Show","when","navigate","NavigateButton","to","AgeTicker","_el$9","_tmpl$3","_el$0","rootRouteId","code","_el$1","_tmpl$4","routeParamInfo","_c$","_$memo","length","_el$10","_tmpl$6","sort","a","b","rank","nestedRouteRow","_v$3","_v$4","routesRowContainer","_v$5","matchIndicator","getRouteStatusColor","_$setAttribute","BaseTanStackRouterDevtoolsPanel","isOpen","setIsOpen","handleDragStart","shadowDOMTarget","panelProps","onCloseClick","useDevtoolsOnClose","otherPanelProps","invariant","showMatches","setShowMatches","useLocalStorage","activeMatch","cachedMatches","hasSearch","keys","location","search","explorerState","state","routerExplorerValue","fromEntries","multiSortBy","dd","key","filter","includes","activeMatchLoaderData","loaderData","activeMatchValue","locationSearchValue","_el$11","_tmpl$7","_el$12","_el$13","_el$14","_el$15","_el$16","_el$17","_el$18","_el$19","_el$20","_el$22","_el$23","_el$24","_el$25","_el$26","_el$27","_el$28","_el$29","devtoolsPanel","_el$30","_$addEventListener","dragHandle","onClick","Explorer","label","value","defaultExpanded","context","options","filterSubEntries","subEntries","_c$2","maskedLocation","_el$31","_tmpl$8","_el$32","_v$22","maskedBadgeContainer","_v$23","maskedBadge","pathname","_c$3","_el$33","_c$4","routeTree","_el$34","_i","_el$35","_tmpl$9","_el$36","_el$37","matchID","_v$24","_v$25","matchRow","_v$26","getStatusColor","_c$5","_el$38","_tmpl$0","_el$39","_el$40","_el$41","_el$42","_el$43","_el$44","_el$45","_v$30","_v$31","_v$32","_v$27","cachedMatchesContainer","_v$28","detailsHeader","_v$29","detailsHeaderInfo","_c$6","status","_el$46","_tmpl$1","_el$47","_el$48","_el$49","_el$50","_el$51","_el$52","_el$53","_el$54","_el$55","_el$56","_el$57","_el$58","_el$59","_el$60","_el$61","_el$62","_el$63","_c$8","isFetching","_c$9","_c$0","updatedAt","Date","toLocaleTimeString","_c$1","_el$64","_tmpl$10","_el$65","detailsContent","_v$33","thirdContainer","_v$34","_v$35","matchDetails","_v$36","matchStatus","_v$37","matchDetailsInfoLabel","_v$38","matchDetailsInfo","_v$39","_v$40","_v$41","_v$42","_v$43","_v$44","o","i","n","s","h","l","u","_c$7","_el$66","_tmpl$11","_el$67","_el$69","navigator","_el$70","_tmpl$12","CopyButton","getValue","JSON","stringify","reduce","obj","next","_v$45","fourthContainer","_v$46","_v$47","_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","routesContainer","c","disabled","w","f","y","g","copied","setCopied","createSignal","timeoutId","handleCopy","clipboard","writeText","console","warn","setTimeout","onCleanup","_el$71","_tmpl$13","_$delegateEvents"],"mappings":"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"}