@tanstack/router-devtools-core 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 (100) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +5 -0
  3. package/dist/cjs/AgeTicker.cjs +47 -0
  4. package/dist/cjs/AgeTicker.cjs.map +1 -0
  5. package/dist/cjs/AgeTicker.d.cts +6 -0
  6. package/dist/cjs/BaseTanStackRouterDevtoolsPanel.cjs +505 -0
  7. package/dist/cjs/BaseTanStackRouterDevtoolsPanel.cjs.map +1 -0
  8. package/dist/cjs/BaseTanStackRouterDevtoolsPanel.d.cts +34 -0
  9. package/dist/cjs/Explorer.cjs +307 -0
  10. package/dist/cjs/Explorer.cjs.map +1 -0
  11. package/dist/cjs/Explorer.d.cts +43 -0
  12. package/dist/cjs/FloatingTanStackRouterDevtools.cjs +195 -0
  13. package/dist/cjs/FloatingTanStackRouterDevtools.cjs.map +1 -0
  14. package/dist/cjs/FloatingTanStackRouterDevtools.d.cts +48 -0
  15. package/dist/cjs/TanStackRouterDevtoolsCore.cjs +99 -0
  16. package/dist/cjs/TanStackRouterDevtoolsCore.cjs.map +1 -0
  17. package/dist/cjs/TanStackRouterDevtoolsCore.d.cts +55 -0
  18. package/dist/cjs/TanStackRouterDevtoolsPanelCore.cjs +99 -0
  19. package/dist/cjs/TanStackRouterDevtoolsPanelCore.cjs.map +1 -0
  20. package/dist/cjs/TanStackRouterDevtoolsPanelCore.d.cts +43 -0
  21. package/dist/cjs/context.cjs +20 -0
  22. package/dist/cjs/context.cjs.map +1 -0
  23. package/dist/cjs/context.d.cts +13 -0
  24. package/dist/cjs/index.cjs +7 -0
  25. package/dist/cjs/index.cjs.map +1 -0
  26. package/dist/cjs/index.d.cts +2 -0
  27. package/dist/cjs/logo.cjs +92 -0
  28. package/dist/cjs/logo.cjs.map +1 -0
  29. package/dist/cjs/logo.d.cts +1 -0
  30. package/dist/cjs/theme.d.cts +34 -0
  31. package/dist/cjs/tokens.cjs +201 -0
  32. package/dist/cjs/tokens.cjs.map +1 -0
  33. package/dist/cjs/tokens.d.cts +298 -0
  34. package/dist/cjs/useLocalStorage.cjs +42 -0
  35. package/dist/cjs/useLocalStorage.cjs.map +1 -0
  36. package/dist/cjs/useLocalStorage.d.cts +2 -0
  37. package/dist/cjs/useMediaQuery.d.cts +2 -0
  38. package/dist/cjs/useStyles.cjs +582 -0
  39. package/dist/cjs/useStyles.cjs.map +1 -0
  40. package/dist/cjs/useStyles.d.cts +53 -0
  41. package/dist/cjs/utils.cjs +63 -0
  42. package/dist/cjs/utils.cjs.map +1 -0
  43. package/dist/cjs/utils.d.cts +25 -0
  44. package/dist/esm/AgeTicker.d.ts +6 -0
  45. package/dist/esm/AgeTicker.js +47 -0
  46. package/dist/esm/AgeTicker.js.map +1 -0
  47. package/dist/esm/BaseTanStackRouterDevtoolsPanel.d.ts +34 -0
  48. package/dist/esm/BaseTanStackRouterDevtoolsPanel.js +505 -0
  49. package/dist/esm/BaseTanStackRouterDevtoolsPanel.js.map +1 -0
  50. package/dist/esm/Explorer.d.ts +43 -0
  51. package/dist/esm/Explorer.js +290 -0
  52. package/dist/esm/Explorer.js.map +1 -0
  53. package/dist/esm/FloatingTanStackRouterDevtools.d.ts +48 -0
  54. package/dist/esm/FloatingTanStackRouterDevtools.js +195 -0
  55. package/dist/esm/FloatingTanStackRouterDevtools.js.map +1 -0
  56. package/dist/esm/TanStackRouterDevtoolsCore.d.ts +55 -0
  57. package/dist/esm/TanStackRouterDevtoolsCore.js +99 -0
  58. package/dist/esm/TanStackRouterDevtoolsCore.js.map +1 -0
  59. package/dist/esm/TanStackRouterDevtoolsPanelCore.d.ts +43 -0
  60. package/dist/esm/TanStackRouterDevtoolsPanelCore.js +99 -0
  61. package/dist/esm/TanStackRouterDevtoolsPanelCore.js.map +1 -0
  62. package/dist/esm/context.d.ts +13 -0
  63. package/dist/esm/context.js +20 -0
  64. package/dist/esm/context.js.map +1 -0
  65. package/dist/esm/index.d.ts +2 -0
  66. package/dist/esm/index.js +7 -0
  67. package/dist/esm/index.js.map +1 -0
  68. package/dist/esm/logo.d.ts +1 -0
  69. package/dist/esm/logo.js +92 -0
  70. package/dist/esm/logo.js.map +1 -0
  71. package/dist/esm/theme.d.ts +34 -0
  72. package/dist/esm/tokens.d.ts +298 -0
  73. package/dist/esm/tokens.js +201 -0
  74. package/dist/esm/tokens.js.map +1 -0
  75. package/dist/esm/useLocalStorage.d.ts +2 -0
  76. package/dist/esm/useLocalStorage.js +43 -0
  77. package/dist/esm/useLocalStorage.js.map +1 -0
  78. package/dist/esm/useMediaQuery.d.ts +2 -0
  79. package/dist/esm/useStyles.d.ts +53 -0
  80. package/dist/esm/useStyles.js +565 -0
  81. package/dist/esm/useStyles.js.map +1 -0
  82. package/dist/esm/utils.d.ts +25 -0
  83. package/dist/esm/utils.js +63 -0
  84. package/dist/esm/utils.js.map +1 -0
  85. package/package.json +71 -0
  86. package/src/AgeTicker.tsx +59 -0
  87. package/src/BaseTanStackRouterDevtoolsPanel.tsx +559 -0
  88. package/src/Explorer.tsx +339 -0
  89. package/src/FloatingTanStackRouterDevtools.tsx +280 -0
  90. package/src/TanStackRouterDevtoolsCore.tsx +139 -0
  91. package/src/TanStackRouterDevtoolsPanelCore.tsx +120 -0
  92. package/src/context.ts +24 -0
  93. package/src/index.tsx +2 -0
  94. package/src/logo.tsx +817 -0
  95. package/src/theme.tsx +36 -0
  96. package/src/tokens.ts +305 -0
  97. package/src/useLocalStorage.ts +52 -0
  98. package/src/useMediaQuery.ts +44 -0
  99. package/src/useStyles.tsx +589 -0
  100. package/src/utils.tsx +185 -0
@@ -0,0 +1,565 @@
1
+ import * as goober from "goober";
2
+ import { useContext, createSignal } from "solid-js";
3
+ import { tokens } from "./tokens.js";
4
+ import { ShadowDomTargetContext } from "./context.js";
5
+ const stylesFactory = (shadowDOMTarget) => {
6
+ const {
7
+ colors,
8
+ font,
9
+ size,
10
+ alpha,
11
+ border
12
+ } = tokens;
13
+ const {
14
+ fontFamily,
15
+ lineHeight,
16
+ size: fontSize
17
+ } = font;
18
+ const css = shadowDOMTarget ? goober.css.bind({
19
+ target: shadowDOMTarget
20
+ }) : goober.css;
21
+ return {
22
+ devtoolsPanelContainer: css`
23
+ direction: ltr;
24
+ position: fixed;
25
+ bottom: 0;
26
+ right: 0;
27
+ z-index: 99999;
28
+ width: 100%;
29
+ max-height: 90%;
30
+ border-top: 1px solid ${colors.gray[700]};
31
+ transform-origin: top;
32
+ `,
33
+ devtoolsPanelContainerVisibility: (isOpen) => {
34
+ return css`
35
+ visibility: ${isOpen ? "visible" : "hidden"};
36
+ `;
37
+ },
38
+ devtoolsPanelContainerResizing: (isResizing) => {
39
+ if (isResizing()) {
40
+ return css`
41
+ transition: none;
42
+ `;
43
+ }
44
+ return css`
45
+ transition: all 0.4s ease;
46
+ `;
47
+ },
48
+ devtoolsPanelContainerAnimation: (isOpen, height) => {
49
+ if (isOpen) {
50
+ return css`
51
+ pointer-events: auto;
52
+ transform: translateY(0);
53
+ `;
54
+ }
55
+ return css`
56
+ pointer-events: none;
57
+ transform: translateY(${height}px);
58
+ `;
59
+ },
60
+ logo: css`
61
+ cursor: pointer;
62
+ display: flex;
63
+ flex-direction: column;
64
+ background-color: transparent;
65
+ border: none;
66
+ font-family: ${fontFamily.sans};
67
+ gap: ${tokens.size[0.5]};
68
+ padding: 0px;
69
+ &:hover {
70
+ opacity: 0.7;
71
+ }
72
+ &:focus-visible {
73
+ outline-offset: 4px;
74
+ border-radius: ${border.radius.xs};
75
+ outline: 2px solid ${colors.blue[800]};
76
+ }
77
+ `,
78
+ tanstackLogo: css`
79
+ font-size: ${font.size.md};
80
+ font-weight: ${font.weight.bold};
81
+ line-height: ${font.lineHeight.xs};
82
+ white-space: nowrap;
83
+ color: ${colors.gray[300]};
84
+ `,
85
+ routerLogo: css`
86
+ font-weight: ${font.weight.semibold};
87
+ font-size: ${font.size.xs};
88
+ background: linear-gradient(to right, #84cc16, #10b981);
89
+ background-clip: text;
90
+ -webkit-background-clip: text;
91
+ line-height: 1;
92
+ -webkit-text-fill-color: transparent;
93
+ white-space: nowrap;
94
+ `,
95
+ devtoolsPanel: css`
96
+ display: flex;
97
+ font-size: ${fontSize.sm};
98
+ font-family: ${fontFamily.sans};
99
+ background-color: ${colors.darkGray[700]};
100
+ color: ${colors.gray[300]};
101
+
102
+ @media (max-width: 700px) {
103
+ flex-direction: column;
104
+ }
105
+ @media (max-width: 600px) {
106
+ font-size: ${fontSize.xs};
107
+ }
108
+ `,
109
+ dragHandle: css`
110
+ position: absolute;
111
+ left: 0;
112
+ top: 0;
113
+ width: 100%;
114
+ height: 4px;
115
+ cursor: row-resize;
116
+ z-index: 100000;
117
+ &:hover {
118
+ background-color: ${colors.purple[400]}${alpha[90]};
119
+ }
120
+ `,
121
+ firstContainer: css`
122
+ flex: 1 1 500px;
123
+ min-height: 40%;
124
+ max-height: 100%;
125
+ overflow: auto;
126
+ border-right: 1px solid ${colors.gray[700]};
127
+ display: flex;
128
+ flex-direction: column;
129
+ `,
130
+ routerExplorerContainer: css`
131
+ overflow-y: auto;
132
+ flex: 1;
133
+ `,
134
+ routerExplorer: css`
135
+ padding: ${tokens.size[2]};
136
+ `,
137
+ row: css`
138
+ display: flex;
139
+ align-items: center;
140
+ padding: ${tokens.size[2]} ${tokens.size[2.5]};
141
+ gap: ${tokens.size[2.5]};
142
+ border-bottom: ${colors.darkGray[500]} 1px solid;
143
+ align-items: center;
144
+ `,
145
+ detailsHeader: css`
146
+ font-family: ui-sans-serif, Inter, system-ui, sans-serif, sans-serif;
147
+ position: sticky;
148
+ top: 0;
149
+ z-index: 2;
150
+ background-color: ${colors.darkGray[600]};
151
+ padding: 0px ${tokens.size[2]};
152
+ font-weight: ${font.weight.medium};
153
+ font-size: ${font.size.xs};
154
+ min-height: ${tokens.size[8]};
155
+ line-height: ${font.lineHeight.xs};
156
+ text-align: left;
157
+ display: flex;
158
+ align-items: center;
159
+ `,
160
+ maskedBadge: css`
161
+ background: ${colors.yellow[900]}${alpha[70]};
162
+ color: ${colors.yellow[300]};
163
+ display: inline-block;
164
+ padding: ${tokens.size[0]} ${tokens.size[2.5]};
165
+ border-radius: ${border.radius.full};
166
+ font-size: ${font.size.xs};
167
+ font-weight: ${font.weight.normal};
168
+ border: 1px solid ${colors.yellow[300]};
169
+ `,
170
+ maskedLocation: css`
171
+ color: ${colors.yellow[300]};
172
+ `,
173
+ detailsContent: css`
174
+ padding: ${tokens.size[1.5]} ${tokens.size[2]};
175
+ display: flex;
176
+ align-items: center;
177
+ justify-content: space-between;
178
+ font-size: ${font.size.xs};
179
+ `,
180
+ routeMatchesToggle: css`
181
+ display: flex;
182
+ align-items: center;
183
+ border: 1px solid ${colors.gray[500]};
184
+ border-radius: ${border.radius.sm};
185
+ overflow: hidden;
186
+ `,
187
+ routeMatchesToggleBtn: (active, showBorder) => {
188
+ const base = css`
189
+ appearance: none;
190
+ border: none;
191
+ font-size: 12px;
192
+ padding: 4px 8px;
193
+ background: transparent;
194
+ cursor: pointer;
195
+ font-family: ${fontFamily.sans};
196
+ font-weight: ${font.weight.medium};
197
+ `;
198
+ const classes = [base];
199
+ if (active) {
200
+ const activeStyles = css`
201
+ background: ${colors.darkGray[400]};
202
+ color: ${colors.gray[300]};
203
+ `;
204
+ classes.push(activeStyles);
205
+ } else {
206
+ const inactiveStyles = css`
207
+ color: ${colors.gray[500]};
208
+ background: ${colors.darkGray[800]}${alpha[20]};
209
+ `;
210
+ classes.push(inactiveStyles);
211
+ }
212
+ if (showBorder) {
213
+ classes.push(css`
214
+ border-right: 1px solid ${tokens.colors.gray[500]};
215
+ `);
216
+ }
217
+ return classes;
218
+ },
219
+ detailsHeaderInfo: css`
220
+ flex: 1;
221
+ justify-content: flex-end;
222
+ display: flex;
223
+ align-items: center;
224
+ font-weight: ${font.weight.normal};
225
+ color: ${colors.gray[400]};
226
+ `,
227
+ matchRow: (active) => {
228
+ const base = css`
229
+ display: flex;
230
+ border-bottom: 1px solid ${colors.darkGray[400]};
231
+ cursor: pointer;
232
+ align-items: center;
233
+ padding: ${size[1]} ${size[2]};
234
+ gap: ${size[2]};
235
+ font-size: ${fontSize.xs};
236
+ color: ${colors.gray[300]};
237
+ `;
238
+ const classes = [base];
239
+ if (active) {
240
+ const activeStyles = css`
241
+ background: ${colors.darkGray[500]};
242
+ `;
243
+ classes.push(activeStyles);
244
+ }
245
+ return classes;
246
+ },
247
+ matchIndicator: (color) => {
248
+ const base = css`
249
+ flex: 0 0 auto;
250
+ width: ${size[3]};
251
+ height: ${size[3]};
252
+ background: ${colors[color][900]};
253
+ border: 1px solid ${colors[color][500]};
254
+ border-radius: ${border.radius.full};
255
+ transition: all 0.25s ease-out;
256
+ box-sizing: border-box;
257
+ `;
258
+ const classes = [base];
259
+ if (color === "gray") {
260
+ const grayStyles = css`
261
+ background: ${colors.gray[700]};
262
+ border-color: ${colors.gray[400]};
263
+ `;
264
+ classes.push(grayStyles);
265
+ }
266
+ return classes;
267
+ },
268
+ matchID: css`
269
+ flex: 1;
270
+ line-height: ${lineHeight["xs"]};
271
+ `,
272
+ ageTicker: (showWarning) => {
273
+ const base = css`
274
+ display: flex;
275
+ gap: ${size[1]};
276
+ font-size: ${fontSize.xs};
277
+ color: ${colors.gray[400]};
278
+ font-variant-numeric: tabular-nums;
279
+ line-height: ${lineHeight["xs"]};
280
+ `;
281
+ const classes = [base];
282
+ if (showWarning) {
283
+ const warningStyles = css`
284
+ color: ${colors.yellow[400]};
285
+ `;
286
+ classes.push(warningStyles);
287
+ }
288
+ return classes;
289
+ },
290
+ secondContainer: css`
291
+ flex: 1 1 500px;
292
+ min-height: 40%;
293
+ max-height: 100%;
294
+ overflow: auto;
295
+ border-right: 1px solid ${colors.gray[700]};
296
+ display: flex;
297
+ flex-direction: column;
298
+ `,
299
+ thirdContainer: css`
300
+ flex: 1 1 500px;
301
+ overflow: auto;
302
+ display: flex;
303
+ flex-direction: column;
304
+ height: 100%;
305
+ border-right: 1px solid ${colors.gray[700]};
306
+
307
+ @media (max-width: 700px) {
308
+ border-top: 2px solid ${colors.gray[700]};
309
+ }
310
+ `,
311
+ fourthContainer: css`
312
+ flex: 1 1 500px;
313
+ min-height: 40%;
314
+ max-height: 100%;
315
+ overflow: auto;
316
+ display: flex;
317
+ flex-direction: column;
318
+ `,
319
+ routesContainer: css`
320
+ overflow-x: auto;
321
+ overflow-y: visible;
322
+ `,
323
+ routesRowContainer: (active, isMatch) => {
324
+ const base = css`
325
+ display: flex;
326
+ border-bottom: 1px solid ${colors.darkGray[400]};
327
+ align-items: center;
328
+ padding: ${size[1]} ${size[2]};
329
+ gap: ${size[2]};
330
+ font-size: ${fontSize.xs};
331
+ color: ${colors.gray[300]};
332
+ cursor: ${isMatch ? "pointer" : "default"};
333
+ line-height: ${lineHeight["xs"]};
334
+ `;
335
+ const classes = [base];
336
+ if (active) {
337
+ const activeStyles = css`
338
+ background: ${colors.darkGray[500]};
339
+ `;
340
+ classes.push(activeStyles);
341
+ }
342
+ return classes;
343
+ },
344
+ routesRow: (isMatch) => {
345
+ const base = css`
346
+ flex: 1 0 auto;
347
+ display: flex;
348
+ justify-content: space-between;
349
+ align-items: center;
350
+ font-size: ${fontSize.xs};
351
+ line-height: ${lineHeight["xs"]};
352
+ `;
353
+ const classes = [base];
354
+ if (!isMatch) {
355
+ const matchStyles = css`
356
+ color: ${colors.gray[400]};
357
+ `;
358
+ classes.push(matchStyles);
359
+ }
360
+ return classes;
361
+ },
362
+ routeParamInfo: css`
363
+ color: ${colors.gray[400]};
364
+ font-size: ${fontSize.xs};
365
+ line-height: ${lineHeight["xs"]};
366
+ `,
367
+ nestedRouteRow: (isRoot) => {
368
+ const base = css`
369
+ margin-left: ${isRoot ? 0 : size[3.5]};
370
+ border-left: ${isRoot ? "" : `solid 1px ${colors.gray[700]}`};
371
+ `;
372
+ return base;
373
+ },
374
+ code: css`
375
+ font-size: ${fontSize.xs};
376
+ line-height: ${lineHeight["xs"]};
377
+ `,
378
+ matchesContainer: css`
379
+ flex: 1 1 auto;
380
+ overflow-y: auto;
381
+ `,
382
+ cachedMatchesContainer: css`
383
+ flex: 1 1 auto;
384
+ overflow-y: auto;
385
+ max-height: 50%;
386
+ `,
387
+ maskedBadgeContainer: css`
388
+ flex: 1;
389
+ justify-content: flex-end;
390
+ display: flex;
391
+ `,
392
+ matchDetails: css`
393
+ display: flex;
394
+ flex-direction: column;
395
+ padding: ${tokens.size[2]};
396
+ font-size: ${tokens.font.size.xs};
397
+ color: ${tokens.colors.gray[300]};
398
+ line-height: ${tokens.font.lineHeight.sm};
399
+ `,
400
+ matchStatus: (status, isFetching) => {
401
+ const colorMap = {
402
+ pending: "yellow",
403
+ success: "green",
404
+ error: "red",
405
+ notFound: "purple",
406
+ redirected: "gray"
407
+ };
408
+ const color = isFetching && status === "success" ? isFetching === "beforeLoad" ? "purple" : "blue" : colorMap[status];
409
+ return css`
410
+ display: flex;
411
+ justify-content: center;
412
+ align-items: center;
413
+ height: 40px;
414
+ border-radius: ${tokens.border.radius.sm};
415
+ font-weight: ${tokens.font.weight.normal};
416
+ background-color: ${tokens.colors[color][900]}${tokens.alpha[90]};
417
+ color: ${tokens.colors[color][300]};
418
+ border: 1px solid ${tokens.colors[color][600]};
419
+ margin-bottom: ${tokens.size[2]};
420
+ transition: all 0.25s ease-out;
421
+ `;
422
+ },
423
+ matchDetailsInfo: css`
424
+ display: flex;
425
+ justify-content: flex-end;
426
+ flex: 1;
427
+ `,
428
+ matchDetailsInfoLabel: css`
429
+ display: flex;
430
+ `,
431
+ mainCloseBtn: css`
432
+ background: ${colors.darkGray[700]};
433
+ padding: ${size[1]} ${size[2]} ${size[1]} ${size[1.5]};
434
+ border-radius: ${border.radius.md};
435
+ position: fixed;
436
+ z-index: 99999;
437
+ display: inline-flex;
438
+ width: fit-content;
439
+ cursor: pointer;
440
+ appearance: none;
441
+ border: 0;
442
+ gap: 8px;
443
+ align-items: center;
444
+ border: 1px solid ${colors.gray[500]};
445
+ font-size: ${font.size.xs};
446
+ cursor: pointer;
447
+ transition: all 0.25s ease-out;
448
+
449
+ &:hover {
450
+ background: ${colors.darkGray[500]};
451
+ }
452
+ `,
453
+ mainCloseBtnPosition: (position) => {
454
+ const base = css`
455
+ ${position === "top-left" ? `top: ${size[2]}; left: ${size[2]};` : ""}
456
+ ${position === "top-right" ? `top: ${size[2]}; right: ${size[2]};` : ""}
457
+ ${position === "bottom-left" ? `bottom: ${size[2]}; left: ${size[2]};` : ""}
458
+ ${position === "bottom-right" ? `bottom: ${size[2]}; right: ${size[2]};` : ""}
459
+ `;
460
+ return base;
461
+ },
462
+ mainCloseBtnAnimation: (isOpen) => {
463
+ if (!isOpen) {
464
+ return css`
465
+ opacity: 1;
466
+ pointer-events: auto;
467
+ visibility: visible;
468
+ `;
469
+ }
470
+ return css`
471
+ opacity: 0;
472
+ pointer-events: none;
473
+ visibility: hidden;
474
+ `;
475
+ },
476
+ routerLogoCloseButton: css`
477
+ font-weight: ${font.weight.semibold};
478
+ font-size: ${font.size.xs};
479
+ background: linear-gradient(to right, #98f30c, #00f4a3);
480
+ background-clip: text;
481
+ -webkit-background-clip: text;
482
+ line-height: 1;
483
+ -webkit-text-fill-color: transparent;
484
+ white-space: nowrap;
485
+ `,
486
+ mainCloseBtnDivider: css`
487
+ width: 1px;
488
+ background: ${tokens.colors.gray[600]};
489
+ height: 100%;
490
+ border-radius: 999999px;
491
+ color: transparent;
492
+ `,
493
+ mainCloseBtnIconContainer: css`
494
+ position: relative;
495
+ width: ${size[5]};
496
+ height: ${size[5]};
497
+ background: pink;
498
+ border-radius: 999999px;
499
+ overflow: hidden;
500
+ `,
501
+ mainCloseBtnIconOuter: css`
502
+ width: ${size[5]};
503
+ height: ${size[5]};
504
+ position: absolute;
505
+ top: 50%;
506
+ left: 50%;
507
+ transform: translate(-50%, -50%);
508
+ filter: blur(3px) saturate(1.8) contrast(2);
509
+ `,
510
+ mainCloseBtnIconInner: css`
511
+ width: ${size[4]};
512
+ height: ${size[4]};
513
+ position: absolute;
514
+ top: 50%;
515
+ left: 50%;
516
+ transform: translate(-50%, -50%);
517
+ `,
518
+ panelCloseBtn: css`
519
+ position: absolute;
520
+ cursor: pointer;
521
+ z-index: 100001;
522
+ display: flex;
523
+ align-items: center;
524
+ justify-content: center;
525
+ outline: none;
526
+ background-color: ${colors.darkGray[700]};
527
+ &:hover {
528
+ background-color: ${colors.darkGray[500]};
529
+ }
530
+
531
+ top: 0;
532
+ right: ${size[2]};
533
+ transform: translate(0, -100%);
534
+ border-right: ${colors.darkGray[300]} 1px solid;
535
+ border-left: ${colors.darkGray[300]} 1px solid;
536
+ border-top: ${colors.darkGray[300]} 1px solid;
537
+ border-bottom: none;
538
+ border-radius: ${border.radius.sm} ${border.radius.sm} 0px 0px;
539
+ padding: ${size[1]} ${size[1.5]} ${size[0.5]} ${size[1.5]};
540
+
541
+ &::after {
542
+ content: ' ';
543
+ position: absolute;
544
+ top: 100%;
545
+ left: -${size[2.5]};
546
+ height: ${size[1.5]};
547
+ width: calc(100% + ${size[5]});
548
+ }
549
+ `,
550
+ panelCloseBtnIcon: css`
551
+ color: ${colors.gray[400]};
552
+ width: ${size[2]};
553
+ height: ${size[2]};
554
+ `
555
+ };
556
+ };
557
+ function useStyles() {
558
+ const shadowDomTarget = useContext(ShadowDomTargetContext);
559
+ const [_styles] = createSignal(stylesFactory(shadowDomTarget));
560
+ return _styles;
561
+ }
562
+ export {
563
+ useStyles
564
+ };
565
+ //# sourceMappingURL=useStyles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useStyles.js","sources":["../../src/useStyles.tsx"],"sourcesContent":["import * as goober from 'goober'\nimport { createSignal, useContext } from 'solid-js'\nimport { tokens } from './tokens'\nimport { ShadowDomTargetContext } from './context'\nimport type { Accessor } from 'solid-js'\n\nconst stylesFactory = (shadowDOMTarget?: ShadowRoot) => {\n const { colors, font, size, alpha, shadow, border } = tokens\n const { fontFamily, lineHeight, size: fontSize } = font\n const css = shadowDOMTarget\n ? goober.css.bind({ target: shadowDOMTarget })\n : goober.css\n\n return {\n devtoolsPanelContainer: css`\n direction: ltr;\n position: fixed;\n bottom: 0;\n right: 0;\n z-index: 99999;\n width: 100%;\n max-height: 90%;\n border-top: 1px solid ${colors.gray[700]};\n transform-origin: top;\n `,\n devtoolsPanelContainerVisibility: (isOpen: boolean) => {\n return css`\n visibility: ${isOpen ? 'visible' : 'hidden'};\n `\n },\n devtoolsPanelContainerResizing: (isResizing: Accessor<boolean>) => {\n if (isResizing()) {\n return css`\n transition: none;\n `\n }\n\n return css`\n transition: all 0.4s ease;\n `\n },\n devtoolsPanelContainerAnimation: (isOpen: boolean, height: number) => {\n if (isOpen) {\n return css`\n pointer-events: auto;\n transform: translateY(0);\n `\n }\n return css`\n pointer-events: none;\n transform: translateY(${height}px);\n `\n },\n logo: css`\n cursor: pointer;\n display: flex;\n flex-direction: column;\n background-color: transparent;\n border: none;\n font-family: ${fontFamily.sans};\n gap: ${tokens.size[0.5]};\n padding: 0px;\n &:hover {\n opacity: 0.7;\n }\n &:focus-visible {\n outline-offset: 4px;\n border-radius: ${border.radius.xs};\n outline: 2px solid ${colors.blue[800]};\n }\n `,\n tanstackLogo: css`\n font-size: ${font.size.md};\n font-weight: ${font.weight.bold};\n line-height: ${font.lineHeight.xs};\n white-space: nowrap;\n color: ${colors.gray[300]};\n `,\n routerLogo: css`\n font-weight: ${font.weight.semibold};\n font-size: ${font.size.xs};\n background: linear-gradient(to right, #84cc16, #10b981);\n background-clip: text;\n -webkit-background-clip: text;\n line-height: 1;\n -webkit-text-fill-color: transparent;\n white-space: nowrap;\n `,\n devtoolsPanel: css`\n display: flex;\n font-size: ${fontSize.sm};\n font-family: ${fontFamily.sans};\n background-color: ${colors.darkGray[700]};\n color: ${colors.gray[300]};\n\n @media (max-width: 700px) {\n flex-direction: column;\n }\n @media (max-width: 600px) {\n font-size: ${fontSize.xs};\n }\n `,\n dragHandle: css`\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 4px;\n cursor: row-resize;\n z-index: 100000;\n &:hover {\n background-color: ${colors.purple[400]}${alpha[90]};\n }\n `,\n firstContainer: css`\n flex: 1 1 500px;\n min-height: 40%;\n max-height: 100%;\n overflow: auto;\n border-right: 1px solid ${colors.gray[700]};\n display: flex;\n flex-direction: column;\n `,\n routerExplorerContainer: css`\n overflow-y: auto;\n flex: 1;\n `,\n routerExplorer: css`\n padding: ${tokens.size[2]};\n `,\n row: css`\n display: flex;\n align-items: center;\n padding: ${tokens.size[2]} ${tokens.size[2.5]};\n gap: ${tokens.size[2.5]};\n border-bottom: ${colors.darkGray[500]} 1px solid;\n align-items: center;\n `,\n detailsHeader: css`\n font-family: ui-sans-serif, Inter, system-ui, sans-serif, sans-serif;\n position: sticky;\n top: 0;\n z-index: 2;\n background-color: ${colors.darkGray[600]};\n padding: 0px ${tokens.size[2]};\n font-weight: ${font.weight.medium};\n font-size: ${font.size.xs};\n min-height: ${tokens.size[8]};\n line-height: ${font.lineHeight.xs};\n text-align: left;\n display: flex;\n align-items: center;\n `,\n maskedBadge: css`\n background: ${colors.yellow[900]}${alpha[70]};\n color: ${colors.yellow[300]};\n display: inline-block;\n padding: ${tokens.size[0]} ${tokens.size[2.5]};\n border-radius: ${border.radius.full};\n font-size: ${font.size.xs};\n font-weight: ${font.weight.normal};\n border: 1px solid ${colors.yellow[300]};\n `,\n maskedLocation: css`\n color: ${colors.yellow[300]};\n `,\n detailsContent: css`\n padding: ${tokens.size[1.5]} ${tokens.size[2]};\n display: flex;\n align-items: center;\n justify-content: space-between;\n font-size: ${font.size.xs};\n `,\n routeMatchesToggle: css`\n display: flex;\n align-items: center;\n border: 1px solid ${colors.gray[500]};\n border-radius: ${border.radius.sm};\n overflow: hidden;\n `,\n routeMatchesToggleBtn: (active: boolean, showBorder: boolean) => {\n const base = css`\n appearance: none;\n border: none;\n font-size: 12px;\n padding: 4px 8px;\n background: transparent;\n cursor: pointer;\n font-family: ${fontFamily.sans};\n font-weight: ${font.weight.medium};\n `\n const classes = [base]\n\n if (active) {\n const activeStyles = css`\n background: ${colors.darkGray[400]};\n color: ${colors.gray[300]};\n `\n classes.push(activeStyles)\n } else {\n const inactiveStyles = css`\n color: ${colors.gray[500]};\n background: ${colors.darkGray[800]}${alpha[20]};\n `\n classes.push(inactiveStyles)\n }\n\n if (showBorder) {\n classes.push(css`\n border-right: 1px solid ${tokens.colors.gray[500]};\n `)\n }\n\n return classes\n },\n detailsHeaderInfo: css`\n flex: 1;\n justify-content: flex-end;\n display: flex;\n align-items: center;\n font-weight: ${font.weight.normal};\n color: ${colors.gray[400]};\n `,\n matchRow: (active: boolean) => {\n const base = css`\n display: flex;\n border-bottom: 1px solid ${colors.darkGray[400]};\n cursor: pointer;\n align-items: center;\n padding: ${size[1]} ${size[2]};\n gap: ${size[2]};\n font-size: ${fontSize.xs};\n color: ${colors.gray[300]};\n `\n const classes = [base]\n\n if (active) {\n const activeStyles = css`\n background: ${colors.darkGray[500]};\n `\n classes.push(activeStyles)\n }\n\n return classes\n },\n matchIndicator: (\n color: 'green' | 'red' | 'yellow' | 'gray' | 'blue' | 'purple',\n ) => {\n const base = css`\n flex: 0 0 auto;\n width: ${size[3]};\n height: ${size[3]};\n background: ${colors[color][900]};\n border: 1px solid ${colors[color][500]};\n border-radius: ${border.radius.full};\n transition: all 0.25s ease-out;\n box-sizing: border-box;\n `\n const classes = [base]\n\n if (color === 'gray') {\n const grayStyles = css`\n background: ${colors.gray[700]};\n border-color: ${colors.gray[400]};\n `\n classes.push(grayStyles)\n }\n\n return classes\n },\n matchID: css`\n flex: 1;\n line-height: ${lineHeight['xs']};\n `,\n ageTicker: (showWarning: boolean) => {\n const base = css`\n display: flex;\n gap: ${size[1]};\n font-size: ${fontSize.xs};\n color: ${colors.gray[400]};\n font-variant-numeric: tabular-nums;\n line-height: ${lineHeight['xs']};\n `\n\n const classes = [base]\n\n if (showWarning) {\n const warningStyles = css`\n color: ${colors.yellow[400]};\n `\n classes.push(warningStyles)\n }\n\n return classes\n },\n secondContainer: css`\n flex: 1 1 500px;\n min-height: 40%;\n max-height: 100%;\n overflow: auto;\n border-right: 1px solid ${colors.gray[700]};\n display: flex;\n flex-direction: column;\n `,\n thirdContainer: css`\n flex: 1 1 500px;\n overflow: auto;\n display: flex;\n flex-direction: column;\n height: 100%;\n border-right: 1px solid ${colors.gray[700]};\n\n @media (max-width: 700px) {\n border-top: 2px solid ${colors.gray[700]};\n }\n `,\n fourthContainer: css`\n flex: 1 1 500px;\n min-height: 40%;\n max-height: 100%;\n overflow: auto;\n display: flex;\n flex-direction: column;\n `,\n routesContainer: css`\n overflow-x: auto;\n overflow-y: visible;\n `,\n routesRowContainer: (active: boolean, isMatch: boolean) => {\n const base = css`\n display: flex;\n border-bottom: 1px solid ${colors.darkGray[400]};\n align-items: center;\n padding: ${size[1]} ${size[2]};\n gap: ${size[2]};\n font-size: ${fontSize.xs};\n color: ${colors.gray[300]};\n cursor: ${isMatch ? 'pointer' : 'default'};\n line-height: ${lineHeight['xs']};\n `\n const classes = [base]\n\n if (active) {\n const activeStyles = css`\n background: ${colors.darkGray[500]};\n `\n classes.push(activeStyles)\n }\n\n return classes\n },\n routesRow: (isMatch: boolean) => {\n const base = css`\n flex: 1 0 auto;\n display: flex;\n justify-content: space-between;\n align-items: center;\n font-size: ${fontSize.xs};\n line-height: ${lineHeight['xs']};\n `\n\n const classes = [base]\n\n if (!isMatch) {\n const matchStyles = css`\n color: ${colors.gray[400]};\n `\n classes.push(matchStyles)\n }\n\n return classes\n },\n routeParamInfo: css`\n color: ${colors.gray[400]};\n font-size: ${fontSize.xs};\n line-height: ${lineHeight['xs']};\n `,\n nestedRouteRow: (isRoot: boolean) => {\n const base = css`\n margin-left: ${isRoot ? 0 : size[3.5]};\n border-left: ${isRoot ? '' : `solid 1px ${colors.gray[700]}`};\n `\n return base\n },\n code: css`\n font-size: ${fontSize.xs};\n line-height: ${lineHeight['xs']};\n `,\n matchesContainer: css`\n flex: 1 1 auto;\n overflow-y: auto;\n `,\n cachedMatchesContainer: css`\n flex: 1 1 auto;\n overflow-y: auto;\n max-height: 50%;\n `,\n maskedBadgeContainer: css`\n flex: 1;\n justify-content: flex-end;\n display: flex;\n `,\n matchDetails: css`\n display: flex;\n flex-direction: column;\n padding: ${tokens.size[2]};\n font-size: ${tokens.font.size.xs};\n color: ${tokens.colors.gray[300]};\n line-height: ${tokens.font.lineHeight.sm};\n `,\n matchStatus: (\n status: 'pending' | 'success' | 'error' | 'notFound' | 'redirected',\n isFetching: false | 'beforeLoad' | 'loader',\n ) => {\n const colorMap = {\n pending: 'yellow',\n success: 'green',\n error: 'red',\n notFound: 'purple',\n redirected: 'gray',\n } as const\n\n const color =\n isFetching && status === 'success'\n ? isFetching === 'beforeLoad'\n ? 'purple'\n : 'blue'\n : colorMap[status]\n\n return css`\n display: flex;\n justify-content: center;\n align-items: center;\n height: 40px;\n border-radius: ${tokens.border.radius.sm};\n font-weight: ${tokens.font.weight.normal};\n background-color: ${tokens.colors[color][900]}${tokens.alpha[90]};\n color: ${tokens.colors[color][300]};\n border: 1px solid ${tokens.colors[color][600]};\n margin-bottom: ${tokens.size[2]};\n transition: all 0.25s ease-out;\n `\n },\n matchDetailsInfo: css`\n display: flex;\n justify-content: flex-end;\n flex: 1;\n `,\n matchDetailsInfoLabel: css`\n display: flex;\n `,\n mainCloseBtn: css`\n background: ${colors.darkGray[700]};\n padding: ${size[1]} ${size[2]} ${size[1]} ${size[1.5]};\n border-radius: ${border.radius.md};\n position: fixed;\n z-index: 99999;\n display: inline-flex;\n width: fit-content;\n cursor: pointer;\n appearance: none;\n border: 0;\n gap: 8px;\n align-items: center;\n border: 1px solid ${colors.gray[500]};\n font-size: ${font.size.xs};\n cursor: pointer;\n transition: all 0.25s ease-out;\n\n &:hover {\n background: ${colors.darkGray[500]};\n }\n `,\n mainCloseBtnPosition: (\n position: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right',\n ) => {\n const base = css`\n ${position === 'top-left' ? `top: ${size[2]}; left: ${size[2]};` : ''}\n ${position === 'top-right' ? `top: ${size[2]}; right: ${size[2]};` : ''}\n ${position === 'bottom-left'\n ? `bottom: ${size[2]}; left: ${size[2]};`\n : ''}\n ${position === 'bottom-right'\n ? `bottom: ${size[2]}; right: ${size[2]};`\n : ''}\n `\n return base\n },\n mainCloseBtnAnimation: (isOpen: boolean) => {\n if (!isOpen) {\n return css`\n opacity: 1;\n pointer-events: auto;\n visibility: visible;\n `\n }\n return css`\n opacity: 0;\n pointer-events: none;\n visibility: hidden;\n `\n },\n routerLogoCloseButton: css`\n font-weight: ${font.weight.semibold};\n font-size: ${font.size.xs};\n background: linear-gradient(to right, #98f30c, #00f4a3);\n background-clip: text;\n -webkit-background-clip: text;\n line-height: 1;\n -webkit-text-fill-color: transparent;\n white-space: nowrap;\n `,\n mainCloseBtnDivider: css`\n width: 1px;\n background: ${tokens.colors.gray[600]};\n height: 100%;\n border-radius: 999999px;\n color: transparent;\n `,\n mainCloseBtnIconContainer: css`\n position: relative;\n width: ${size[5]};\n height: ${size[5]};\n background: pink;\n border-radius: 999999px;\n overflow: hidden;\n `,\n mainCloseBtnIconOuter: css`\n width: ${size[5]};\n height: ${size[5]};\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n filter: blur(3px) saturate(1.8) contrast(2);\n `,\n mainCloseBtnIconInner: css`\n width: ${size[4]};\n height: ${size[4]};\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n `,\n panelCloseBtn: css`\n position: absolute;\n cursor: pointer;\n z-index: 100001;\n display: flex;\n align-items: center;\n justify-content: center;\n outline: none;\n background-color: ${colors.darkGray[700]};\n &:hover {\n background-color: ${colors.darkGray[500]};\n }\n\n top: 0;\n right: ${size[2]};\n transform: translate(0, -100%);\n border-right: ${colors.darkGray[300]} 1px solid;\n border-left: ${colors.darkGray[300]} 1px solid;\n border-top: ${colors.darkGray[300]} 1px solid;\n border-bottom: none;\n border-radius: ${border.radius.sm} ${border.radius.sm} 0px 0px;\n padding: ${size[1]} ${size[1.5]} ${size[0.5]} ${size[1.5]};\n\n &::after {\n content: ' ';\n position: absolute;\n top: 100%;\n left: -${size[2.5]};\n height: ${size[1.5]};\n width: calc(100% + ${size[5]});\n }\n `,\n panelCloseBtnIcon: css`\n color: ${colors.gray[400]};\n width: ${size[2]};\n height: ${size[2]};\n `,\n }\n}\n\nexport function useStyles() {\n const shadowDomTarget = useContext(ShadowDomTargetContext)\n const [_styles] = createSignal(stylesFactory(shadowDomTarget))\n return _styles\n}\n"],"names":["stylesFactory","shadowDOMTarget","colors","font","size","alpha","border","tokens","fontFamily","lineHeight","fontSize","css","goober","bind","target","devtoolsPanelContainer","gray","devtoolsPanelContainerVisibility","isOpen","devtoolsPanelContainerResizing","isResizing","devtoolsPanelContainerAnimation","height","logo","sans","radius","xs","blue","tanstackLogo","md","weight","bold","routerLogo","semibold","devtoolsPanel","sm","darkGray","dragHandle","purple","firstContainer","routerExplorerContainer","routerExplorer","row","detailsHeader","medium","maskedBadge","yellow","full","normal","maskedLocation","detailsContent","routeMatchesToggle","routeMatchesToggleBtn","active","showBorder","base","classes","activeStyles","push","inactiveStyles","detailsHeaderInfo","matchRow","matchIndicator","color","grayStyles","matchID","ageTicker","showWarning","warningStyles","secondContainer","thirdContainer","fourthContainer","routesContainer","routesRowContainer","isMatch","routesRow","matchStyles","routeParamInfo","nestedRouteRow","isRoot","code","matchesContainer","cachedMatchesContainer","maskedBadgeContainer","matchDetails","matchStatus","status","isFetching","colorMap","pending","success","error","notFound","redirected","matchDetailsInfo","matchDetailsInfoLabel","mainCloseBtn","mainCloseBtnPosition","position","mainCloseBtnAnimation","routerLogoCloseButton","mainCloseBtnDivider","mainCloseBtnIconContainer","mainCloseBtnIconOuter","mainCloseBtnIconInner","panelCloseBtn","panelCloseBtnIcon","useStyles","shadowDomTarget","useContext","ShadowDomTargetContext","_styles","createSignal"],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { AnyRoute, AnyRouteMatch } from '@tanstack/router-core';
2
+ import { Theme } from './theme.js';
3
+ import { JSX } from 'solid-js';
4
+ export declare const isServer: boolean;
5
+ type StyledComponent<T> = T extends 'button' ? JSX.ButtonHTMLAttributes<HTMLButtonElement> : T extends 'input' ? JSX.InputHTMLAttributes<HTMLInputElement> : T extends 'select' ? JSX.SelectHTMLAttributes<HTMLSelectElement> : T extends keyof HTMLElementTagNameMap ? JSX.HTMLAttributes<HTMLElementTagNameMap[T]> : never;
6
+ export declare function getStatusColor(match: AnyRouteMatch): "yellow" | "green" | "red" | "purple" | "gray" | "blue";
7
+ export declare function getRouteStatusColor(matches: Array<AnyRouteMatch>, route: AnyRoute): "yellow" | "green" | "red" | "purple" | "gray" | "blue";
8
+ type Styles = JSX.CSSProperties | ((props: Record<string, any>, theme: Theme) => JSX.CSSProperties);
9
+ export declare function styled<T extends keyof HTMLElementTagNameMap>(type: T, newStyles: Styles, queries?: Record<string, Styles>): ({ ref, style, ...rest }: StyledComponent<T> & {
10
+ ref?: HTMLElementTagNameMap[T] | undefined;
11
+ }) => JSX.Element;
12
+ export declare function useIsMounted(): import('solid-js').Accessor<boolean>;
13
+ /**
14
+ * Displays a string regardless the type of the data
15
+ * @param {unknown} value Value to be stringified
16
+ */
17
+ export declare const displayValue: (value: unknown) => string;
18
+ /**
19
+ * This hook is a safe useState version which schedules state updates in microtasks
20
+ * to prevent updating a component state while React is rendering different components
21
+ * or when the component is not mounted anymore.
22
+ */
23
+ export declare function useSafeState<T>(initialState: T): [T, (value: T) => void];
24
+ export declare function multiSortBy<T>(arr: Array<T>, accessors?: Array<(item: T) => any>): Array<T>;
25
+ export {};