@tanstack/router-devtools 1.112.0 → 1.112.4

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