@tanstack/react-router-devtools 0.0.1-beta.8 → 0.0.1-beta.80

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 (76) hide show
  1. package/LICENSE +21 -0
  2. package/build/cjs/{packages/react-router-devtools/src/Explorer.js → Explorer.js} +44 -61
  3. package/build/cjs/Explorer.js.map +1 -0
  4. package/build/cjs/_virtual/_rollupPluginBabelHelpers.js +0 -18
  5. package/build/cjs/_virtual/_rollupPluginBabelHelpers.js.map +1 -1
  6. package/build/cjs/{packages/react-router-devtools/src/devtools.js → devtools.js} +176 -275
  7. package/build/cjs/devtools.js.map +1 -0
  8. package/build/cjs/{packages/react-router-devtools/src/index.js → index.js} +0 -0
  9. package/build/cjs/{packages/react-router-devtools/src/index.js.map → index.js.map} +0 -0
  10. package/build/cjs/{packages/react-router-devtools/src/styledComponents.js → styledComponents.js} +9 -37
  11. package/build/cjs/styledComponents.js.map +1 -0
  12. package/build/cjs/{packages/react-router-devtools/src/theme.js → theme.js} +5 -8
  13. package/build/cjs/theme.js.map +1 -0
  14. package/build/cjs/{packages/react-router-devtools/src/useLocalStorage.js → useLocalStorage.js} +2 -9
  15. package/build/cjs/useLocalStorage.js.map +1 -0
  16. package/build/cjs/{packages/react-router-devtools/src/useMediaQuery.js → useMediaQuery.js} +10 -13
  17. package/build/cjs/useMediaQuery.js.map +1 -0
  18. package/build/cjs/{packages/react-router-devtools/src/utils.js → utils.js} +24 -70
  19. package/build/cjs/utils.js.map +1 -0
  20. package/build/esm/index.js +268 -1319
  21. package/build/esm/index.js.map +1 -1
  22. package/build/stats-html.html +59 -49
  23. package/build/stats-react.json +312 -9469
  24. package/build/types/index.d.ts +4 -4
  25. package/build/umd/index.development.js +335 -1292
  26. package/build/umd/index.development.js.map +1 -1
  27. package/build/umd/index.production.js +32 -1
  28. package/build/umd/index.production.js.map +1 -1
  29. package/package.json +6 -8
  30. package/src/devtools.tsx +86 -87
  31. package/src/utils.ts +5 -17
  32. package/build/cjs/node_modules/date-fns/esm/_lib/assign/index.js +0 -30
  33. package/build/cjs/node_modules/date-fns/esm/_lib/assign/index.js.map +0 -1
  34. package/build/cjs/node_modules/date-fns/esm/_lib/cloneObject/index.js +0 -22
  35. package/build/cjs/node_modules/date-fns/esm/_lib/cloneObject/index.js.map +0 -1
  36. package/build/cjs/node_modules/date-fns/esm/_lib/defaultLocale/index.js +0 -20
  37. package/build/cjs/node_modules/date-fns/esm/_lib/defaultLocale/index.js.map +0 -1
  38. package/build/cjs/node_modules/date-fns/esm/_lib/defaultOptions/index.js +0 -21
  39. package/build/cjs/node_modules/date-fns/esm/_lib/defaultOptions/index.js.map +0 -1
  40. package/build/cjs/node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js +0 -33
  41. package/build/cjs/node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js.map +0 -1
  42. package/build/cjs/node_modules/date-fns/esm/_lib/requiredArgs/index.js +0 -22
  43. package/build/cjs/node_modules/date-fns/esm/_lib/requiredArgs/index.js.map +0 -1
  44. package/build/cjs/node_modules/date-fns/esm/compareAsc/index.js +0 -67
  45. package/build/cjs/node_modules/date-fns/esm/compareAsc/index.js.map +0 -1
  46. package/build/cjs/node_modules/date-fns/esm/formatDistanceStrict/index.js +0 -207
  47. package/build/cjs/node_modules/date-fns/esm/formatDistanceStrict/index.js.map +0 -1
  48. package/build/cjs/node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js +0 -26
  49. package/build/cjs/node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js.map +0 -1
  50. package/build/cjs/node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js +0 -39
  51. package/build/cjs/node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js.map +0 -1
  52. package/build/cjs/node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js +0 -65
  53. package/build/cjs/node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js.map +0 -1
  54. package/build/cjs/node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js +0 -34
  55. package/build/cjs/node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js.map +0 -1
  56. package/build/cjs/node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js +0 -105
  57. package/build/cjs/node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js.map +0 -1
  58. package/build/cjs/node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js +0 -52
  59. package/build/cjs/node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js.map +0 -1
  60. package/build/cjs/node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js +0 -31
  61. package/build/cjs/node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js.map +0 -1
  62. package/build/cjs/node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js +0 -164
  63. package/build/cjs/node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js.map +0 -1
  64. package/build/cjs/node_modules/date-fns/esm/locale/en-US/_lib/match/index.js +0 -116
  65. package/build/cjs/node_modules/date-fns/esm/locale/en-US/_lib/match/index.js.map +0 -1
  66. package/build/cjs/node_modules/date-fns/esm/locale/en-US/index.js +0 -47
  67. package/build/cjs/node_modules/date-fns/esm/locale/en-US/index.js.map +0 -1
  68. package/build/cjs/node_modules/date-fns/esm/toDate/index.js +0 -70
  69. package/build/cjs/node_modules/date-fns/esm/toDate/index.js.map +0 -1
  70. package/build/cjs/packages/react-router-devtools/src/Explorer.js.map +0 -1
  71. package/build/cjs/packages/react-router-devtools/src/devtools.js.map +0 -1
  72. package/build/cjs/packages/react-router-devtools/src/styledComponents.js.map +0 -1
  73. package/build/cjs/packages/react-router-devtools/src/theme.js.map +0 -1
  74. package/build/cjs/packages/react-router-devtools/src/useLocalStorage.js.map +0 -1
  75. package/build/cjs/packages/react-router-devtools/src/useMediaQuery.js.map +0 -1
  76. package/build/cjs/packages/react-router-devtools/src/utils.js.map +0 -1
@@ -12,7 +12,7 @@
12
12
 
13
13
  Object.defineProperty(exports, '__esModule', { value: true });
14
14
 
15
- var _rollupPluginBabelHelpers = require('../../../_virtual/_rollupPluginBabelHelpers.js');
15
+ var _rollupPluginBabelHelpers = require('./_virtual/_rollupPluginBabelHelpers.js');
16
16
  var React = require('react');
17
17
  var reactRouter = require('@tanstack/react-router');
18
18
  var useLocalStorage = require('./useLocalStorage.js');
@@ -20,53 +20,50 @@ var utils = require('./utils.js');
20
20
  var styledComponents = require('./styledComponents.js');
21
21
  var theme = require('./theme.js');
22
22
  var Explorer = require('./Explorer.js');
23
- var index = require('../../../node_modules/date-fns/esm/formatDistanceStrict/index.js');
24
23
 
25
24
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
26
25
 
27
26
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
28
27
 
29
- const _excluded = ["style"],
30
- _excluded2 = ["style", "onClick"],
31
- _excluded3 = ["style", "onClick"],
32
- _excluded4 = ["isOpen", "setIsOpen", "handleDragStart", "router"];
33
28
  const isServer = typeof window === 'undefined';
34
-
35
29
  function Logo(props) {
36
- var _props$style;
37
-
38
30
  return /*#__PURE__*/React__default["default"].createElement("div", _rollupPluginBabelHelpers["extends"]({}, props, {
39
- style: _rollupPluginBabelHelpers["extends"]({}, (_props$style = props.style) != null ? _props$style : {}, {
31
+ style: {
32
+ ...(props.style ?? {}),
40
33
  display: 'flex',
41
34
  alignItems: 'center',
42
35
  flexDirection: 'column',
43
- fontSize: '0.7rem',
44
- fontWeight: '900',
36
+ fontSize: '0.8rem',
37
+ fontWeight: 'bolder',
45
38
  lineHeight: '1'
46
- })
39
+ }
47
40
  }), /*#__PURE__*/React__default["default"].createElement("div", {
48
41
  style: {
49
42
  letterSpacing: '-0.05rem'
50
43
  }
51
44
  }, "TANSTACK"), /*#__PURE__*/React__default["default"].createElement("div", {
52
- className: "text-transparent bg-clip-text bg-gradient-to-r from-lime-500 to-emerald-500",
53
45
  style: {
46
+ backgroundImage: 'linear-gradient(to right, var(--tw-gradient-stops))',
47
+ // @ts-ignore
48
+ '--tw-gradient-from': '#84cc16',
49
+ '--tw-gradient-stops': 'var(--tw-gradient-from), var(--tw-gradient-to)',
50
+ '--tw-gradient-to': '#10b981',
51
+ WebkitBackgroundClip: 'text',
52
+ color: 'transparent',
54
53
  letterSpacing: '0.1rem',
55
54
  marginRight: '-0.2rem'
56
55
  }
57
56
  }, "ROUTER"));
58
57
  }
59
-
60
- function TanStackRouterDevtools(_ref) {
61
- let {
62
- initialIsOpen,
63
- panelProps = {},
64
- closeButtonProps = {},
65
- toggleButtonProps = {},
66
- position = 'bottom-left',
67
- containerElement: Container = 'footer',
68
- router
69
- } = _ref;
58
+ function TanStackRouterDevtools({
59
+ initialIsOpen,
60
+ panelProps = {},
61
+ closeButtonProps = {},
62
+ toggleButtonProps = {},
63
+ position = 'bottom-left',
64
+ containerElement: Container = 'footer',
65
+ router
66
+ }) {
70
67
  const rootRef = React__default["default"].useRef(null);
71
68
  const panelRef = React__default["default"].useRef(null);
72
69
  const [isOpen, setIsOpen] = useLocalStorage["default"]('tanstackRouterDevtoolsOpen', initialIsOpen);
@@ -74,61 +71,51 @@ function TanStackRouterDevtools(_ref) {
74
71
  const [isResolvedOpen, setIsResolvedOpen] = utils.useSafeState(false);
75
72
  const [isResizing, setIsResizing] = utils.useSafeState(false);
76
73
  const isMounted = utils.useIsMounted();
77
-
78
- const _handleDragStart = (panelElement, startEvent) => {
79
- var _panelElement$getBoun;
80
-
74
+ const handleDragStart = (panelElement, startEvent) => {
81
75
  if (startEvent.button !== 0) return; // Only allow left click for drag
82
76
 
83
77
  setIsResizing(true);
84
78
  const dragInfo = {
85
- originalHeight: (_panelElement$getBoun = panelElement == null ? void 0 : panelElement.getBoundingClientRect().height) != null ? _panelElement$getBoun : 0,
79
+ originalHeight: panelElement?.getBoundingClientRect().height ?? 0,
86
80
  pageY: startEvent.pageY
87
81
  };
88
-
89
82
  const run = moveEvent => {
90
83
  const delta = dragInfo.pageY - moveEvent.pageY;
91
- const newHeight = (dragInfo == null ? void 0 : dragInfo.originalHeight) + delta;
84
+ const newHeight = dragInfo?.originalHeight + delta;
92
85
  setDevtoolsHeight(newHeight);
93
-
94
86
  if (newHeight < 70) {
95
87
  setIsOpen(false);
96
88
  } else {
97
89
  setIsOpen(true);
98
90
  }
99
91
  };
100
-
101
92
  const unsub = () => {
102
93
  setIsResizing(false);
103
94
  document.removeEventListener('mousemove', run);
104
95
  document.removeEventListener('mouseUp', unsub);
105
96
  };
106
-
107
97
  document.addEventListener('mousemove', run);
108
98
  document.addEventListener('mouseup', unsub);
109
99
  };
110
-
111
100
  React__default["default"].useEffect(() => {
112
- setIsResolvedOpen(isOpen != null ? isOpen : false);
113
- }, [isOpen, isResolvedOpen, setIsResolvedOpen]); // Toggle panel visibility before/after transition (depending on direction).
114
- // Prevents focusing in a closed panel.
101
+ setIsResolvedOpen(isOpen ?? false);
102
+ }, [isOpen, isResolvedOpen, setIsResolvedOpen]);
115
103
 
104
+ // Toggle panel visibility before/after transition (depending on direction).
105
+ // Prevents focusing in a closed panel.
116
106
  React__default["default"].useEffect(() => {
117
107
  const ref = panelRef.current;
118
-
119
108
  if (ref) {
120
109
  const handlePanelTransitionStart = () => {
121
110
  if (ref && isResolvedOpen) {
122
111
  ref.style.visibility = 'visible';
123
112
  }
124
113
  };
125
-
126
114
  const handlePanelTransitionEnd = () => {
127
115
  if (ref && !isResolvedOpen) {
128
116
  ref.style.visibility = 'hidden';
129
117
  }
130
118
  };
131
-
132
119
  ref.addEventListener('transitionstart', handlePanelTransitionStart);
133
120
  ref.addEventListener('transitionend', handlePanelTransitionEnd);
134
121
  return () => {
@@ -136,62 +123,46 @@ function TanStackRouterDevtools(_ref) {
136
123
  ref.removeEventListener('transitionend', handlePanelTransitionEnd);
137
124
  };
138
125
  }
139
-
140
126
  return;
141
127
  }, [isResolvedOpen]);
142
128
  React__default["default"][isServer ? 'useEffect' : 'useLayoutEffect'](() => {
143
129
  if (isResolvedOpen) {
144
- var _rootRef$current, _rootRef$current$pare;
145
-
146
- const previousValue = (_rootRef$current = rootRef.current) == null ? void 0 : (_rootRef$current$pare = _rootRef$current.parentElement) == null ? void 0 : _rootRef$current$pare.style.paddingBottom;
147
-
130
+ const previousValue = rootRef.current?.parentElement?.style.paddingBottom;
148
131
  const run = () => {
149
- var _panelRef$current, _rootRef$current2;
150
-
151
- const containerHeight = (_panelRef$current = panelRef.current) == null ? void 0 : _panelRef$current.getBoundingClientRect().height;
152
-
153
- if ((_rootRef$current2 = rootRef.current) != null && _rootRef$current2.parentElement) {
154
- rootRef.current.parentElement.style.paddingBottom = containerHeight + "px";
132
+ const containerHeight = panelRef.current?.getBoundingClientRect().height;
133
+ if (rootRef.current?.parentElement) {
134
+ rootRef.current.parentElement.style.paddingBottom = `${containerHeight}px`;
155
135
  }
156
136
  };
157
-
158
137
  run();
159
-
160
138
  if (typeof window !== 'undefined') {
161
139
  window.addEventListener('resize', run);
162
140
  return () => {
163
- var _rootRef$current3;
164
-
165
141
  window.removeEventListener('resize', run);
166
-
167
- if ((_rootRef$current3 = rootRef.current) != null && _rootRef$current3.parentElement && typeof previousValue === 'string') {
142
+ if (rootRef.current?.parentElement && typeof previousValue === 'string') {
168
143
  rootRef.current.parentElement.style.paddingBottom = previousValue;
169
144
  }
170
145
  };
171
146
  }
172
147
  }
173
-
174
148
  return;
175
149
  }, [isResolvedOpen]);
176
-
177
150
  const {
178
- style: panelStyle = {}
179
- } = panelProps,
180
- otherPanelProps = _rollupPluginBabelHelpers.objectWithoutPropertiesLoose(panelProps, _excluded);
181
-
151
+ style: panelStyle = {},
152
+ ...otherPanelProps
153
+ } = panelProps;
182
154
  const {
183
155
  style: closeButtonStyle = {},
184
- onClick: onCloseClick
185
- } = closeButtonProps,
186
- otherCloseButtonProps = _rollupPluginBabelHelpers.objectWithoutPropertiesLoose(closeButtonProps, _excluded2);
187
-
156
+ onClick: onCloseClick,
157
+ ...otherCloseButtonProps
158
+ } = closeButtonProps;
188
159
  const {
189
160
  style: toggleButtonStyle = {},
190
- onClick: onToggleClick
191
- } = toggleButtonProps,
192
- otherToggleButtonProps = _rollupPluginBabelHelpers.objectWithoutPropertiesLoose(toggleButtonProps, _excluded3); // Do not render on the server
193
-
161
+ onClick: onToggleClick,
162
+ ...otherToggleButtonProps
163
+ } = toggleButtonProps;
194
164
 
165
+ // Do not render on the server
195
166
  if (!isMounted()) return null;
196
167
  return /*#__PURE__*/React__default["default"].createElement(Container, {
197
168
  ref: rootRef,
@@ -202,35 +173,38 @@ function TanStackRouterDevtools(_ref) {
202
173
  ref: panelRef
203
174
  }, otherPanelProps, {
204
175
  router: router,
205
- style: _rollupPluginBabelHelpers["extends"]({
176
+ style: {
206
177
  position: 'fixed',
207
178
  bottom: '0',
208
179
  right: '0',
209
180
  zIndex: 99999,
210
181
  width: '100%',
211
- height: devtoolsHeight != null ? devtoolsHeight : 500,
182
+ height: devtoolsHeight ?? 500,
212
183
  maxHeight: '90%',
213
184
  boxShadow: '0 0 20px rgba(0,0,0,.3)',
214
- borderTop: "1px solid " + theme.defaultTheme.gray,
185
+ borderTop: `1px solid ${theme.defaultTheme.gray}`,
215
186
  transformOrigin: 'top',
216
187
  // visibility will be toggled after transitions, but set initial state here
217
- visibility: isOpen ? 'visible' : 'hidden'
218
- }, panelStyle, isResizing ? {
219
- transition: "none"
220
- } : {
221
- transition: "all .2s ease"
222
- }, isResolvedOpen ? {
223
- opacity: 1,
224
- pointerEvents: 'all',
225
- transform: "translateY(0) scale(1)"
226
- } : {
227
- opacity: 0,
228
- pointerEvents: 'none',
229
- transform: "translateY(15px) scale(1.02)"
230
- }),
188
+ visibility: isOpen ? 'visible' : 'hidden',
189
+ ...panelStyle,
190
+ ...(isResizing ? {
191
+ transition: `none`
192
+ } : {
193
+ transition: `all .2s ease`
194
+ }),
195
+ ...(isResolvedOpen ? {
196
+ opacity: 1,
197
+ pointerEvents: 'all',
198
+ transform: `translateY(0) scale(1)`
199
+ } : {
200
+ opacity: 0,
201
+ pointerEvents: 'none',
202
+ transform: `translateY(15px) scale(1.02)`
203
+ })
204
+ },
231
205
  isOpen: isResolvedOpen,
232
206
  setIsOpen: setIsOpen,
233
- handleDragStart: e => _handleDragStart(panelRef.current, e)
207
+ handleDragStart: e => handleDragStart(panelRef.current, e)
234
208
  })), isResolvedOpen ? /*#__PURE__*/React__default["default"].createElement(styledComponents.Button, _rollupPluginBabelHelpers["extends"]({
235
209
  type: "button",
236
210
  "aria-label": "Close TanStack Router Devtools"
@@ -239,20 +213,22 @@ function TanStackRouterDevtools(_ref) {
239
213
  setIsOpen(false);
240
214
  onCloseClick && onCloseClick(e);
241
215
  },
242
- style: _rollupPluginBabelHelpers["extends"]({
216
+ style: {
243
217
  position: 'fixed',
244
218
  zIndex: 99999,
245
219
  margin: '.5em',
246
- bottom: 0
247
- }, position === 'top-right' ? {
248
- right: '0'
249
- } : position === 'top-left' ? {
250
- left: '0'
251
- } : position === 'bottom-right' ? {
252
- right: '0'
253
- } : {
254
- left: '0'
255
- }, closeButtonStyle)
220
+ bottom: 0,
221
+ ...(position === 'top-right' ? {
222
+ right: '0'
223
+ } : position === 'top-left' ? {
224
+ left: '0'
225
+ } : position === 'bottom-right' ? {
226
+ right: '0'
227
+ } : {
228
+ left: '0'
229
+ }),
230
+ ...closeButtonStyle
231
+ }
256
232
  }), "Close") : null), !isResolvedOpen ? /*#__PURE__*/React__default["default"].createElement("button", _rollupPluginBabelHelpers["extends"]({
257
233
  type: "button"
258
234
  }, otherToggleButtonProps, {
@@ -261,7 +237,7 @@ function TanStackRouterDevtools(_ref) {
261
237
  setIsOpen(true);
262
238
  onToggleClick && onToggleClick(e);
263
239
  },
264
- style: _rollupPluginBabelHelpers["extends"]({
240
+ style: {
265
241
  appearance: 'none',
266
242
  background: 'none',
267
243
  border: 0,
@@ -272,65 +248,95 @@ function TanStackRouterDevtools(_ref) {
272
248
  fontSize: '1.5em',
273
249
  margin: '.5em',
274
250
  cursor: 'pointer',
275
- width: 'fit-content'
276
- }, position === 'top-right' ? {
277
- top: '0',
278
- right: '0'
279
- } : position === 'top-left' ? {
280
- top: '0',
281
- left: '0'
282
- } : position === 'bottom-right' ? {
283
- bottom: '0',
284
- right: '0'
285
- } : {
286
- bottom: '0',
287
- left: '0'
288
- }, toggleButtonStyle)
251
+ width: 'fit-content',
252
+ ...(position === 'top-right' ? {
253
+ top: '0',
254
+ right: '0'
255
+ } : position === 'top-left' ? {
256
+ top: '0',
257
+ left: '0'
258
+ } : position === 'bottom-right' ? {
259
+ bottom: '0',
260
+ right: '0'
261
+ } : {
262
+ bottom: '0',
263
+ left: '0'
264
+ }),
265
+ ...toggleButtonStyle
266
+ }
289
267
  }), /*#__PURE__*/React__default["default"].createElement(Logo, {
290
268
  "aria-hidden": true
291
269
  })) : null);
292
270
  }
293
271
  const TanStackRouterDevtoolsPanel = /*#__PURE__*/React__default["default"].forwardRef(function TanStackRouterDevtoolsPanel(props, ref) {
294
- var _Object$values$find$m, _Object$values, _Object$values$find, _router$state$matches, _router$state$pending, _router$state$pending2, _last, _last2, _last3, _last4, _last5, _last6;
295
-
296
272
  const {
297
273
  isOpen = true,
274
+ setIsOpen,
298
275
  handleDragStart,
299
- router
300
- } = props,
301
- panelProps = _rollupPluginBabelHelpers.objectWithoutPropertiesLoose(props, _excluded4);
302
-
303
- const rerender = React__default["default"].useReducer(() => ({}), {})[1];
304
- React__default["default"].useEffect(() => {
305
- let interval = setInterval(() => {
306
- router.cleanMatchCache(); // router.notify()
307
-
308
- rerender();
309
- }, 250);
310
- return () => {
311
- clearInterval(interval);
312
- };
313
- }, []);
276
+ router: userRouter,
277
+ ...panelProps
278
+ } = props;
279
+ const routerContextValue = React__default["default"].useContext(reactRouter.routerContext);
280
+ const router = userRouter ?? routerContextValue?.router;
281
+ reactRouter.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.');
282
+ reactRouter.useStore(router.__store);
314
283
  const [activeRouteId, setActiveRouteId] = useLocalStorage["default"]('tanstackRouterDevtoolsActiveRouteId', '');
315
284
  const [activeMatchId, setActiveMatchId] = useLocalStorage["default"]('tanstackRouterDevtoolsActiveMatchId', '');
316
285
  React__default["default"].useEffect(() => {
317
286
  setActiveMatchId('');
318
287
  }, [activeRouteId]);
319
- const activeMatch = (_Object$values$find$m = (_Object$values = Object.values(router.matchCache)) == null ? void 0 : (_Object$values$find = _Object$values.find(d => d.match.matchId === activeMatchId)) == null ? void 0 : _Object$values$find.match) != null ? _Object$values$find$m : (_router$state$matches = router.state.matches) == null ? void 0 : _router$state$matches.find(d => d.routeId === activeRouteId);
320
- const matchCacheValues = utils.multiSortBy(Object.keys(router.matchCache).filter(key => {
321
- const cacheEntry = router.matchCache[key];
322
- return cacheEntry.gc > Date.now();
323
- }).map(key => router.matchCache[key]), [d => d.match.isFetching ? -1 : 1, d => -d.match.updatedAt]);
288
+ const allMatches = React__default["default"].useMemo(() => [...Object.values(router.state.currentMatches), ...Object.values(router.state.pendingMatches ?? [])], [router.state.currentMatches, router.state.pendingMatches]);
289
+ const activeMatch = allMatches?.find(d => d.id === activeMatchId) || allMatches?.find(d => d.route.id === activeRouteId);
324
290
  return /*#__PURE__*/React__default["default"].createElement(theme.ThemeProvider, {
325
291
  theme: theme.defaultTheme
326
- }, /*#__PURE__*/React__default["default"].createElement("script", {
327
- src: "https://cdn.tailwindcss.com"
328
- }), /*#__PURE__*/React__default["default"].createElement(styledComponents.Panel, _rollupPluginBabelHelpers["extends"]({
292
+ }, /*#__PURE__*/React__default["default"].createElement(styledComponents.Panel, _rollupPluginBabelHelpers["extends"]({
329
293
  ref: ref,
330
294
  className: "TanStackRouterDevtoolsPanel"
331
295
  }, panelProps), /*#__PURE__*/React__default["default"].createElement("style", {
332
296
  dangerouslySetInnerHTML: {
333
- __html: "\n\n .TanStackRouterDevtoolsPanel * {\n scrollbar-color: " + theme.defaultTheme.backgroundAlt + " " + theme.defaultTheme.gray + ";\n }\n\n .TanStackRouterDevtoolsPanel *::-webkit-scrollbar, .TanStackRouterDevtoolsPanel scrollbar {\n width: 1em;\n height: 1em;\n }\n\n .TanStackRouterDevtoolsPanel *::-webkit-scrollbar-track, .TanStackRouterDevtoolsPanel scrollbar-track {\n background: " + theme.defaultTheme.backgroundAlt + ";\n }\n\n .TanStackRouterDevtoolsPanel *::-webkit-scrollbar-thumb, .TanStackRouterDevtoolsPanel scrollbar-thumb {\n background: " + theme.defaultTheme.gray + ";\n border-radius: .5em;\n border: 3px solid " + theme.defaultTheme.backgroundAlt + ";\n }\n\n .TanStackRouterDevtoolsPanel table {\n width: 100%;\n }\n\n .TanStackRouterDevtoolsPanel table tr {\n border-bottom: 2px dotted rgba(255, 255, 255, .2);\n }\n\n .TanStackRouterDevtoolsPanel table tr:last-child {\n border-bottom: none\n }\n\n .TanStackRouterDevtoolsPanel table td {\n padding: .25rem .5rem;\n border-right: 2px dotted rgba(255, 255, 255, .05);\n }\n\n .TanStackRouterDevtoolsPanel table td:last-child {\n border-right: none\n }\n\n "
297
+ __html: `
298
+
299
+ .TanStackRouterDevtoolsPanel * {
300
+ scrollbar-color: ${theme.defaultTheme.backgroundAlt} ${theme.defaultTheme.gray};
301
+ }
302
+
303
+ .TanStackRouterDevtoolsPanel *::-webkit-scrollbar, .TanStackRouterDevtoolsPanel scrollbar {
304
+ width: 1em;
305
+ height: 1em;
306
+ }
307
+
308
+ .TanStackRouterDevtoolsPanel *::-webkit-scrollbar-track, .TanStackRouterDevtoolsPanel scrollbar-track {
309
+ background: ${theme.defaultTheme.backgroundAlt};
310
+ }
311
+
312
+ .TanStackRouterDevtoolsPanel *::-webkit-scrollbar-thumb, .TanStackRouterDevtoolsPanel scrollbar-thumb {
313
+ background: ${theme.defaultTheme.gray};
314
+ border-radius: .5em;
315
+ border: 3px solid ${theme.defaultTheme.backgroundAlt};
316
+ }
317
+
318
+ .TanStackRouterDevtoolsPanel table {
319
+ width: 100%;
320
+ }
321
+
322
+ .TanStackRouterDevtoolsPanel table tr {
323
+ border-bottom: 2px dotted rgba(255, 255, 255, .2);
324
+ }
325
+
326
+ .TanStackRouterDevtoolsPanel table tr:last-child {
327
+ border-bottom: none
328
+ }
329
+
330
+ .TanStackRouterDevtoolsPanel table td {
331
+ padding: .25rem .5rem;
332
+ border-right: 2px dotted rgba(255, 255, 255, .05);
333
+ }
334
+
335
+ .TanStackRouterDevtoolsPanel table td:last-child {
336
+ border-right: none
337
+ }
338
+
339
+ `
334
340
  }
335
341
  }), /*#__PURE__*/React__default["default"].createElement("div", {
336
342
  style: {
@@ -350,13 +356,17 @@ const TanStackRouterDevtoolsPanel = /*#__PURE__*/React__default["default"].forwa
350
356
  minHeight: '40%',
351
357
  maxHeight: '100%',
352
358
  overflow: 'auto',
353
- borderRight: "1px solid " + theme.defaultTheme.grayAlt,
359
+ borderRight: `1px solid ${theme.defaultTheme.grayAlt}`,
354
360
  display: 'flex',
355
361
  flexDirection: 'column'
356
362
  }
357
363
  }, /*#__PURE__*/React__default["default"].createElement("div", {
358
- className: "flex justify-start gap-2 p-2 items-center",
359
364
  style: {
365
+ display: 'flex',
366
+ justifyContent: 'start',
367
+ gap: '1rem',
368
+ padding: '1rem',
369
+ alignItems: 'center',
360
370
  background: theme.defaultTheme.backgroundAlt
361
371
  }
362
372
  }, /*#__PURE__*/React__default["default"].createElement(Logo, {
@@ -389,7 +399,7 @@ const TanStackRouterDevtoolsPanel = /*#__PURE__*/React__default["default"].forwa
389
399
  minHeight: '40%',
390
400
  maxHeight: '100%',
391
401
  overflow: 'auto',
392
- borderRight: "1px solid " + theme.defaultTheme.grayAlt,
402
+ borderRight: `1px solid ${theme.defaultTheme.grayAlt}`,
393
403
  display: 'flex',
394
404
  flexDirection: 'column'
395
405
  }
@@ -401,15 +411,15 @@ const TanStackRouterDevtoolsPanel = /*#__PURE__*/React__default["default"].forwa
401
411
  top: 0,
402
412
  zIndex: 1
403
413
  }
404
- }, "Active Matches"), router.state.matches.map((match, i) => {
414
+ }, "Active Matches"), router.state.currentMatches.map((match, i) => {
405
415
  return /*#__PURE__*/React__default["default"].createElement("div", {
406
- key: match.routeId || i,
416
+ key: match.route.id || i,
407
417
  role: "button",
408
- "aria-label": "Open match details for " + match.routeId,
409
- onClick: () => setActiveRouteId(activeRouteId === match.routeId ? '' : match.routeId),
418
+ "aria-label": `Open match details for ${match.route.id}`,
419
+ onClick: () => setActiveRouteId(activeRouteId === match.route.id ? '' : match.route.id),
410
420
  style: {
411
421
  display: 'flex',
412
- borderBottom: "solid 1px " + theme.defaultTheme.grayAlt,
422
+ borderBottom: `solid 1px ${theme.defaultTheme.grayAlt}`,
413
423
  cursor: 'pointer',
414
424
  alignItems: 'center',
415
425
  background: match === activeMatch ? 'rgba(255,255,255,.1)' : undefined
@@ -431,8 +441,8 @@ const TanStackRouterDevtoolsPanel = /*#__PURE__*/React__default["default"].forwa
431
441
  style: {
432
442
  padding: '.5em'
433
443
  }
434
- }, "" + match.matchId));
435
- }), (_router$state$pending = router.state.pending) != null && _router$state$pending.matches.length ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("div", {
444
+ }, `${match.id}`));
445
+ }), router.state.pendingMatches?.length ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("div", {
436
446
  style: {
437
447
  marginTop: '2rem',
438
448
  padding: '.5em',
@@ -441,15 +451,15 @@ const TanStackRouterDevtoolsPanel = /*#__PURE__*/React__default["default"].forwa
441
451
  top: 0,
442
452
  zIndex: 1
443
453
  }
444
- }, "Pending Matches"), (_router$state$pending2 = router.state.pending) == null ? void 0 : _router$state$pending2.matches.map((match, i) => {
454
+ }, "Pending Matches"), router.state.pendingMatches?.map((match, i) => {
445
455
  return /*#__PURE__*/React__default["default"].createElement("div", {
446
- key: match.routeId || i,
456
+ key: match.route.id || i,
447
457
  role: "button",
448
- "aria-label": "Open match details for " + match.routeId,
449
- onClick: () => setActiveRouteId(activeRouteId === match.routeId ? '' : match.routeId),
458
+ "aria-label": `Open match details for ${match.route.id}`,
459
+ onClick: () => setActiveRouteId(activeRouteId === match.route.id ? '' : match.route.id),
450
460
  style: {
451
461
  display: 'flex',
452
- borderBottom: "solid 1px " + theme.defaultTheme.grayAlt,
462
+ borderBottom: `solid 1px ${theme.defaultTheme.grayAlt}`,
453
463
  cursor: 'pointer',
454
464
  background: match === activeMatch ? 'rgba(255,255,255,.1)' : undefined
455
465
  }
@@ -470,75 +480,7 @@ const TanStackRouterDevtoolsPanel = /*#__PURE__*/React__default["default"].forwa
470
480
  style: {
471
481
  padding: '.5em'
472
482
  }
473
- }, "" + match.matchId));
474
- })) : null, matchCacheValues.length ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("div", {
475
- style: {
476
- marginTop: '2rem',
477
- padding: '.5em',
478
- background: theme.defaultTheme.backgroundAlt,
479
- position: 'sticky',
480
- top: 0,
481
- bottom: 0,
482
- zIndex: 1,
483
- display: 'flex',
484
- alignItems: 'center',
485
- justifyContent: 'space-between'
486
- }
487
- }, /*#__PURE__*/React__default["default"].createElement("div", null, "Match Cache"), /*#__PURE__*/React__default["default"].createElement(styledComponents.Button, {
488
- onClick: () => {
489
- router.matchCache = {};
490
- router.notify();
491
- }
492
- }, "Clear")), matchCacheValues.map((d, i) => {
493
- const {
494
- match,
495
- gc
496
- } = d;
497
- return /*#__PURE__*/React__default["default"].createElement("div", {
498
- key: match.matchId || i,
499
- role: "button",
500
- "aria-label": "Open match details for " + match.matchId,
501
- onClick: () => setActiveMatchId(activeMatchId === match.matchId ? '' : match.matchId),
502
- style: {
503
- display: 'flex',
504
- borderBottom: "solid 1px " + theme.defaultTheme.grayAlt,
505
- cursor: 'pointer',
506
- background: match === activeMatch ? 'rgba(255,255,255,.1)' : undefined
507
- }
508
- }, /*#__PURE__*/React__default["default"].createElement("div", {
509
- style: {
510
- display: 'flex',
511
- flexDirection: 'column',
512
- padding: '.5rem',
513
- gap: '.3rem'
514
- }
515
- }, /*#__PURE__*/React__default["default"].createElement("div", {
516
- style: {
517
- display: 'flex',
518
- alignItems: 'center',
519
- gap: '.5rem'
520
- }
521
- }, /*#__PURE__*/React__default["default"].createElement("div", {
522
- style: {
523
- flex: '0 0 auto',
524
- width: '1.3rem',
525
- height: '1.3rem',
526
- background: utils.getStatusColor(match, theme.defaultTheme),
527
- alignItems: 'center',
528
- justifyContent: 'center',
529
- fontWeight: 'bold',
530
- borderRadius: '.25rem',
531
- transition: 'all .2s ease-out'
532
- }
533
- }), /*#__PURE__*/React__default["default"].createElement(styledComponents.Code, null, "" + match.matchId)), /*#__PURE__*/React__default["default"].createElement("span", {
534
- style: {
535
- fontSize: '.7rem',
536
- opacity: '.5',
537
- lineHeight: 1
538
- }
539
- }, "Expires", ' ', index["default"](new Date(gc), new Date(), {
540
- addSuffix: true
541
- }))));
483
+ }, `${match.id}`));
542
484
  })) : null), activeMatch ? /*#__PURE__*/React__default["default"].createElement(styledComponents.ActivePanel, null, /*#__PURE__*/React__default["default"].createElement("div", {
543
485
  style: {
544
486
  padding: '.5em',
@@ -556,23 +498,15 @@ const TanStackRouterDevtoolsPanel = /*#__PURE__*/React__default["default"].forwa
556
498
  style: {
557
499
  lineHeight: '1.8em'
558
500
  }
559
- }, JSON.stringify(activeMatch.matchId, null, 2)))), /*#__PURE__*/React__default["default"].createElement("tr", null, /*#__PURE__*/React__default["default"].createElement("td", {
560
- style: {
561
- opacity: '.5'
562
- }
563
- }, "Status"), /*#__PURE__*/React__default["default"].createElement("td", null, activeMatch.status)), /*#__PURE__*/React__default["default"].createElement("tr", null, /*#__PURE__*/React__default["default"].createElement("td", {
564
- style: {
565
- opacity: '.5'
566
- }
567
- }, "Pending"), /*#__PURE__*/React__default["default"].createElement("td", null, activeMatch.isPending.toString())), /*#__PURE__*/React__default["default"].createElement("tr", null, /*#__PURE__*/React__default["default"].createElement("td", {
501
+ }, JSON.stringify(activeMatch.id, null, 2)))), /*#__PURE__*/React__default["default"].createElement("tr", null, /*#__PURE__*/React__default["default"].createElement("td", {
568
502
  style: {
569
503
  opacity: '.5'
570
504
  }
571
- }, "Invalid"), /*#__PURE__*/React__default["default"].createElement("td", null, activeMatch.isInvalid.toString())), /*#__PURE__*/React__default["default"].createElement("tr", null, /*#__PURE__*/React__default["default"].createElement("td", {
505
+ }, "Status"), /*#__PURE__*/React__default["default"].createElement("td", null, activeMatch.state.status)), /*#__PURE__*/React__default["default"].createElement("tr", null, /*#__PURE__*/React__default["default"].createElement("td", {
572
506
  style: {
573
507
  opacity: '.5'
574
508
  }
575
- }, "Last Updated"), /*#__PURE__*/React__default["default"].createElement("td", null, activeMatch.updatedAt ? new Date(activeMatch.updatedAt).toLocaleTimeString() : 'N/A'))))), /*#__PURE__*/React__default["default"].createElement("div", {
509
+ }, "Last Updated"), /*#__PURE__*/React__default["default"].createElement("td", null, activeMatch.state.updatedAt ? new Date(activeMatch.state.updatedAt).toLocaleTimeString() : 'N/A'))))), /*#__PURE__*/React__default["default"].createElement("div", {
576
510
  style: {
577
511
  background: theme.defaultTheme.backgroundAlt,
578
512
  padding: '.5em',
@@ -586,16 +520,6 @@ const TanStackRouterDevtoolsPanel = /*#__PURE__*/React__default["default"].forwa
586
520
  padding: '0.5em'
587
521
  }
588
522
  }, /*#__PURE__*/React__default["default"].createElement(styledComponents.Button, {
589
- type: "button",
590
- onClick: () => {
591
- activeMatch.invalidate();
592
- router.notify();
593
- },
594
- style: {
595
- background: theme.defaultTheme.warning,
596
- color: theme.defaultTheme.inputTextColor
597
- }
598
- }, "Invalidate"), ' ', /*#__PURE__*/React__default["default"].createElement(styledComponents.Button, {
599
523
  type: "button",
600
524
  onClick: () => activeMatch.load(),
601
525
  style: {
@@ -624,7 +548,7 @@ const TanStackRouterDevtoolsPanel = /*#__PURE__*/React__default["default"].forwa
624
548
  minHeight: '40%',
625
549
  maxHeight: '100%',
626
550
  overflow: 'auto',
627
- borderRight: "1px solid " + theme.defaultTheme.grayAlt,
551
+ borderRight: `1px solid ${theme.defaultTheme.grayAlt}`,
628
552
  display: 'flex',
629
553
  flexDirection: 'column'
630
554
  }
@@ -637,36 +561,13 @@ const TanStackRouterDevtoolsPanel = /*#__PURE__*/React__default["default"].forwa
637
561
  bottom: 0,
638
562
  zIndex: 1
639
563
  }
640
- }, "All Loader Data"), /*#__PURE__*/React__default["default"].createElement("div", {
641
- style: {
642
- padding: '.5em'
643
- }
644
- }, Object.keys(((_last = reactRouter.last(router.state.matches)) == null ? void 0 : _last.loaderData) || {}).length ? /*#__PURE__*/React__default["default"].createElement(Explorer["default"], {
645
- value: ((_last2 = reactRouter.last(router.state.matches)) == null ? void 0 : _last2.loaderData) || {},
646
- defaultExpanded: Object.keys(((_last3 = reactRouter.last(router.state.matches)) == null ? void 0 : _last3.loaderData) || {}).reduce((obj, next) => {
647
- obj[next] = {};
648
- return obj;
649
- }, {})
650
- }) : /*#__PURE__*/React__default["default"].createElement("em", {
651
- style: {
652
- opacity: 0.5
653
- }
654
- }, '{ }')), /*#__PURE__*/React__default["default"].createElement("div", {
655
- style: {
656
- padding: '.5em',
657
- background: theme.defaultTheme.backgroundAlt,
658
- position: 'sticky',
659
- top: 0,
660
- bottom: 0,
661
- zIndex: 1
662
- }
663
564
  }, "Search Params"), /*#__PURE__*/React__default["default"].createElement("div", {
664
565
  style: {
665
566
  padding: '.5em'
666
567
  }
667
- }, Object.keys(((_last4 = reactRouter.last(router.state.matches)) == null ? void 0 : _last4.search) || {}).length ? /*#__PURE__*/React__default["default"].createElement(Explorer["default"], {
668
- value: ((_last5 = reactRouter.last(router.state.matches)) == null ? void 0 : _last5.search) || {},
669
- defaultExpanded: Object.keys(((_last6 = reactRouter.last(router.state.matches)) == null ? void 0 : _last6.search) || {}).reduce((obj, next) => {
568
+ }, Object.keys(reactRouter.last(router.state.currentMatches)?.state.search || {}).length ? /*#__PURE__*/React__default["default"].createElement(Explorer["default"], {
569
+ value: reactRouter.last(router.state.currentMatches)?.state.search || {},
570
+ defaultExpanded: Object.keys(reactRouter.last(router.state.currentMatches)?.state.search || {}).reduce((obj, next) => {
670
571
  obj[next] = {};
671
572
  return obj;
672
573
  }, {})