@tanstack/router-devtools 1.112.18 → 1.114.0

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/index.cjs +12 -4
  2. package/dist/cjs/index.cjs.map +1 -1
  3. package/dist/cjs/index.d.cts +2 -2
  4. package/dist/esm/index.d.ts +2 -2
  5. package/dist/esm/index.js +6 -4
  6. package/dist/esm/index.js.map +1 -1
  7. package/package.json +3 -2
  8. package/src/index.tsx +6 -2
  9. package/dist/cjs/AgeTicker.cjs +0 -58
  10. package/dist/cjs/AgeTicker.cjs.map +0 -1
  11. package/dist/cjs/AgeTicker.d.cts +0 -5
  12. package/dist/cjs/BaseTanStackRouterDevtoolsPanel.cjs +0 -421
  13. package/dist/cjs/BaseTanStackRouterDevtoolsPanel.cjs.map +0 -1
  14. package/dist/cjs/BaseTanStackRouterDevtoolsPanel.d.cts +0 -3
  15. package/dist/cjs/Explorer.cjs +0 -310
  16. package/dist/cjs/Explorer.cjs.map +0 -1
  17. package/dist/cjs/Explorer.d.cts +0 -46
  18. package/dist/cjs/TanStackRouterDevtools.cjs +0 -177
  19. package/dist/cjs/TanStackRouterDevtools.cjs.map +0 -1
  20. package/dist/cjs/TanStackRouterDevtools.d.cts +0 -41
  21. package/dist/cjs/TanStackRouterDevtoolsPanel.cjs +0 -21
  22. package/dist/cjs/TanStackRouterDevtoolsPanel.cjs.map +0 -1
  23. package/dist/cjs/TanStackRouterDevtoolsPanel.d.cts +0 -33
  24. package/dist/cjs/context.cjs +0 -18
  25. package/dist/cjs/context.cjs.map +0 -1
  26. package/dist/cjs/context.d.cts +0 -8
  27. package/dist/cjs/logo.cjs +0 -1012
  28. package/dist/cjs/logo.cjs.map +0 -1
  29. package/dist/cjs/logo.d.cts +0 -1
  30. package/dist/cjs/theme.d.cts +0 -34
  31. package/dist/cjs/tokens.cjs +0 -201
  32. package/dist/cjs/tokens.cjs.map +0 -1
  33. package/dist/cjs/tokens.d.cts +0 -298
  34. package/dist/cjs/useLocalStorage.cjs +0 -45
  35. package/dist/cjs/useLocalStorage.cjs.map +0 -1
  36. package/dist/cjs/useLocalStorage.d.cts +0 -1
  37. package/dist/cjs/useMediaQuery.d.cts +0 -1
  38. package/dist/cjs/useStyles.cjs +0 -570
  39. package/dist/cjs/useStyles.cjs.map +0 -1
  40. package/dist/cjs/useStyles.d.cts +0 -52
  41. package/dist/cjs/utils.cjs +0 -84
  42. package/dist/cjs/utils.cjs.map +0 -1
  43. package/dist/cjs/utils.d.cts +0 -23
  44. package/dist/esm/AgeTicker.d.ts +0 -5
  45. package/dist/esm/AgeTicker.js +0 -58
  46. package/dist/esm/AgeTicker.js.map +0 -1
  47. package/dist/esm/BaseTanStackRouterDevtoolsPanel.d.ts +0 -3
  48. package/dist/esm/BaseTanStackRouterDevtoolsPanel.js +0 -421
  49. package/dist/esm/BaseTanStackRouterDevtoolsPanel.js.map +0 -1
  50. package/dist/esm/Explorer.d.ts +0 -46
  51. package/dist/esm/Explorer.js +0 -292
  52. package/dist/esm/Explorer.js.map +0 -1
  53. package/dist/esm/TanStackRouterDevtools.d.ts +0 -41
  54. package/dist/esm/TanStackRouterDevtools.js +0 -177
  55. package/dist/esm/TanStackRouterDevtools.js.map +0 -1
  56. package/dist/esm/TanStackRouterDevtoolsPanel.d.ts +0 -33
  57. package/dist/esm/TanStackRouterDevtoolsPanel.js +0 -21
  58. package/dist/esm/TanStackRouterDevtoolsPanel.js.map +0 -1
  59. package/dist/esm/context.d.ts +0 -8
  60. package/dist/esm/context.js +0 -18
  61. package/dist/esm/context.js.map +0 -1
  62. package/dist/esm/logo.d.ts +0 -1
  63. package/dist/esm/logo.js +0 -1012
  64. package/dist/esm/logo.js.map +0 -1
  65. package/dist/esm/theme.d.ts +0 -34
  66. package/dist/esm/tokens.d.ts +0 -298
  67. package/dist/esm/tokens.js +0 -201
  68. package/dist/esm/tokens.js.map +0 -1
  69. package/dist/esm/useLocalStorage.d.ts +0 -1
  70. package/dist/esm/useLocalStorage.js +0 -46
  71. package/dist/esm/useLocalStorage.js.map +0 -1
  72. package/dist/esm/useMediaQuery.d.ts +0 -1
  73. package/dist/esm/useStyles.d.ts +0 -52
  74. package/dist/esm/useStyles.js +0 -553
  75. package/dist/esm/useStyles.js.map +0 -1
  76. package/dist/esm/utils.d.ts +0 -23
  77. package/dist/esm/utils.js +0 -84
  78. package/dist/esm/utils.js.map +0 -1
  79. package/src/AgeTicker.tsx +0 -73
  80. package/src/BaseTanStackRouterDevtoolsPanel.tsx +0 -488
  81. package/src/Explorer.tsx +0 -362
  82. package/src/TanStackRouterDevtools.tsx +0 -250
  83. package/src/TanStackRouterDevtoolsPanel.tsx +0 -54
  84. package/src/context.ts +0 -22
  85. package/src/logo.tsx +0 -817
  86. package/src/theme.tsx +0 -31
  87. package/src/tokens.ts +0 -305
  88. package/src/useLocalStorage.ts +0 -52
  89. package/src/useMediaQuery.ts +0 -41
  90. package/src/useStyles.tsx +0 -589
  91. package/src/utils.ts +0 -188
package/src/utils.ts DELETED
@@ -1,188 +0,0 @@
1
- import React from 'react'
2
- import { useTheme } from './theme'
3
- import useMediaQuery from './useMediaQuery'
4
- import type {
5
- AnyRootRoute,
6
- AnyRoute,
7
- AnyRouteMatch,
8
- } from '@tanstack/react-router'
9
-
10
- import type { Theme } from './theme'
11
-
12
- export const isServer = typeof window === 'undefined'
13
-
14
- type StyledComponent<T> = T extends 'button'
15
- ? React.DetailedHTMLProps<
16
- React.ButtonHTMLAttributes<HTMLButtonElement>,
17
- HTMLButtonElement
18
- >
19
- : T extends 'input'
20
- ? React.DetailedHTMLProps<
21
- React.InputHTMLAttributes<HTMLInputElement>,
22
- HTMLInputElement
23
- >
24
- : T extends 'select'
25
- ? React.DetailedHTMLProps<
26
- React.SelectHTMLAttributes<HTMLSelectElement>,
27
- HTMLSelectElement
28
- >
29
- : T extends keyof HTMLElementTagNameMap
30
- ? React.HTMLAttributes<HTMLElementTagNameMap[T]>
31
- : never
32
-
33
- export function getStatusColor(match: AnyRouteMatch) {
34
- const colorMap = {
35
- pending: 'yellow',
36
- success: 'green',
37
- error: 'red',
38
- notFound: 'purple',
39
- redirected: 'gray',
40
- } as const
41
-
42
- return match.isFetching && match.status === 'success'
43
- ? match.isFetching === 'beforeLoad'
44
- ? 'purple'
45
- : 'blue'
46
- : colorMap[match.status]
47
- }
48
-
49
- export function getRouteStatusColor(
50
- matches: Array<AnyRouteMatch>,
51
- route: AnyRoute | AnyRootRoute,
52
- ) {
53
- const found = matches.find((d) => d.routeId === route.id)
54
- if (!found) return 'gray'
55
- return getStatusColor(found)
56
- }
57
-
58
- type Styles =
59
- | React.CSSProperties
60
- | ((props: Record<string, any>, theme: Theme) => React.CSSProperties)
61
-
62
- export function styled<T extends keyof HTMLElementTagNameMap>(
63
- type: T,
64
- newStyles: Styles,
65
- queries: Record<string, Styles> = {},
66
- ) {
67
- return React.forwardRef<HTMLElementTagNameMap[T], StyledComponent<T>>(
68
- ({ style, ...rest }, ref) => {
69
- const theme = useTheme()
70
-
71
- const mediaStyles = Object.entries(queries).reduce(
72
- (current, [key, value]) => {
73
- // eslint-disable-next-line react-hooks/rules-of-hooks
74
- return useMediaQuery(key)
75
- ? {
76
- ...current,
77
- ...(typeof value === 'function' ? value(rest, theme) : value),
78
- }
79
- : current
80
- },
81
- {},
82
- )
83
-
84
- return React.createElement(type, {
85
- ...rest,
86
- style: {
87
- ...(typeof newStyles === 'function'
88
- ? newStyles(rest, theme)
89
- : newStyles),
90
- ...style,
91
- ...mediaStyles,
92
- },
93
- ref,
94
- })
95
- },
96
- )
97
- }
98
-
99
- export function useIsMounted() {
100
- const [isMounted, setIsMounted] = React.useState(false)
101
-
102
- React[isServer ? 'useEffect' : 'useLayoutEffect'](() => {
103
- setIsMounted(true)
104
- }, [])
105
-
106
- return isMounted
107
- }
108
-
109
- /**
110
- * Displays a string regardless the type of the data
111
- * @param {unknown} value Value to be stringified
112
- */
113
- export const displayValue = (value: unknown) => {
114
- const name = Object.getOwnPropertyNames(Object(value))
115
- const newValue = typeof value === 'bigint' ? `${value.toString()}n` : value
116
- try {
117
- return JSON.stringify(newValue, name)
118
- } catch (e) {
119
- return `unable to stringify`
120
- }
121
- }
122
-
123
- /**
124
- * This hook is a safe useState version which schedules state updates in microtasks
125
- * to prevent updating a component state while React is rendering different components
126
- * or when the component is not mounted anymore.
127
- */
128
- export function useSafeState<T>(initialState: T): [T, (value: T) => void] {
129
- const isMounted = useIsMounted()
130
- const [state, setState] = React.useState(initialState)
131
-
132
- const safeSetState = React.useCallback(
133
- (value: T) => {
134
- scheduleMicrotask(() => {
135
- if (isMounted) {
136
- setState(value)
137
- }
138
- })
139
- },
140
- [isMounted],
141
- )
142
-
143
- return [state, safeSetState]
144
- }
145
-
146
- /**
147
- * Schedules a microtask.
148
- * This can be useful to schedule state updates after rendering.
149
- */
150
- function scheduleMicrotask(callback: () => void) {
151
- Promise.resolve()
152
- .then(callback)
153
- .catch((error) =>
154
- setTimeout(() => {
155
- throw error
156
- }),
157
- )
158
- }
159
-
160
- export function multiSortBy<T>(
161
- arr: Array<T>,
162
- accessors: Array<(item: T) => any> = [(d) => d],
163
- ): Array<T> {
164
- return arr
165
- .map((d, i) => [d, i] as const)
166
- .sort(([a, ai], [b, bi]) => {
167
- for (const accessor of accessors) {
168
- const ao = accessor(a)
169
- const bo = accessor(b)
170
-
171
- if (typeof ao === 'undefined') {
172
- if (typeof bo === 'undefined') {
173
- continue
174
- }
175
- return 1
176
- }
177
-
178
- if (ao === bo) {
179
- continue
180
- }
181
-
182
- return ao > bo ? 1 : -1
183
- }
184
-
185
- return ai - bi
186
- })
187
- .map(([d]) => d)
188
- }