@tanstack/pacer-devtools 0.14.0 → 1.0.1

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 (113) hide show
  1. package/README.md +165 -0
  2. package/dist/PacerContextProvider.js +142 -0
  3. package/dist/PacerContextProvider.js.map +1 -0
  4. package/dist/PacerDevtools.js +14 -0
  5. package/dist/PacerDevtools.js.map +1 -0
  6. package/dist/components/ActionButtons.js +154 -0
  7. package/dist/components/ActionButtons.js.map +1 -0
  8. package/dist/components/DetailsPanel.js +76 -0
  9. package/dist/components/DetailsPanel.js.map +1 -0
  10. package/dist/components/Shell.js +107 -0
  11. package/dist/components/Shell.js.map +1 -0
  12. package/dist/components/StateHeader.js +85 -0
  13. package/dist/components/StateHeader.js.map +1 -0
  14. package/dist/components/UtilList.js +72 -0
  15. package/dist/components/UtilList.js.map +1 -0
  16. package/dist/components/util-groups.js +57 -0
  17. package/dist/components/util-groups.js.map +1 -0
  18. package/dist/core.d.ts +20 -0
  19. package/dist/core.js +9 -0
  20. package/dist/core.js.map +1 -0
  21. package/dist/index.d.ts +14 -0
  22. package/dist/index.js +10 -0
  23. package/dist/index.js.map +1 -0
  24. package/dist/production.d.ts +2 -0
  25. package/dist/production.js +5 -0
  26. package/dist/styles/tokens.js +301 -0
  27. package/dist/styles/tokens.js.map +1 -0
  28. package/dist/{esm/styles → styles}/use-styles.js +113 -129
  29. package/dist/styles/use-styles.js.map +1 -0
  30. package/package.json +17 -35
  31. package/src/components/DetailsPanel.tsx +2 -2
  32. package/src/components/Shell.tsx +8 -3
  33. package/src/core.tsx +5 -36
  34. package/src/index.ts +2 -9
  35. package/src/production.ts +1 -3
  36. package/src/styles/use-styles.ts +65 -80
  37. package/dist/cjs/PacerContextProvider.cjs +0 -156
  38. package/dist/cjs/PacerContextProvider.cjs.map +0 -1
  39. package/dist/cjs/PacerContextProvider.d.cts +0 -19
  40. package/dist/cjs/PacerDevtools.cjs +0 -13
  41. package/dist/cjs/PacerDevtools.cjs.map +0 -1
  42. package/dist/cjs/PacerDevtools.d.cts +0 -1
  43. package/dist/cjs/components/ActionButtons.cjs +0 -157
  44. package/dist/cjs/components/ActionButtons.cjs.map +0 -1
  45. package/dist/cjs/components/ActionButtons.d.cts +0 -6
  46. package/dist/cjs/components/DetailsPanel.cjs +0 -80
  47. package/dist/cjs/components/DetailsPanel.cjs.map +0 -1
  48. package/dist/cjs/components/DetailsPanel.d.cts +0 -11
  49. package/dist/cjs/components/Shell.cjs +0 -102
  50. package/dist/cjs/components/Shell.cjs.map +0 -1
  51. package/dist/cjs/components/Shell.d.cts +0 -1
  52. package/dist/cjs/components/StateHeader.cjs +0 -95
  53. package/dist/cjs/components/StateHeader.cjs.map +0 -1
  54. package/dist/cjs/components/StateHeader.d.cts +0 -11
  55. package/dist/cjs/components/UtilList.cjs +0 -70
  56. package/dist/cjs/components/UtilList.cjs.map +0 -1
  57. package/dist/cjs/components/UtilList.d.cts +0 -8
  58. package/dist/cjs/components/util-groups.cjs +0 -40
  59. package/dist/cjs/components/util-groups.cjs.map +0 -1
  60. package/dist/cjs/components/util-groups.d.cts +0 -8
  61. package/dist/cjs/core.cjs +0 -43
  62. package/dist/cjs/core.cjs.map +0 -1
  63. package/dist/cjs/core.d.cts +0 -8
  64. package/dist/cjs/index.cjs +0 -15
  65. package/dist/cjs/index.cjs.map +0 -1
  66. package/dist/cjs/index.d.cts +0 -3
  67. package/dist/cjs/production.cjs +0 -7
  68. package/dist/cjs/production.cjs.map +0 -1
  69. package/dist/cjs/production.d.cts +0 -3
  70. package/dist/cjs/styles/tokens.cjs +0 -90
  71. package/dist/cjs/styles/tokens.cjs.map +0 -1
  72. package/dist/cjs/styles/tokens.d.cts +0 -298
  73. package/dist/cjs/styles/use-styles.cjs +0 -397
  74. package/dist/cjs/styles/use-styles.cjs.map +0 -1
  75. package/dist/cjs/styles/use-styles.d.cts +0 -42
  76. package/dist/esm/PacerContextProvider.d.ts +0 -19
  77. package/dist/esm/PacerContextProvider.js +0 -156
  78. package/dist/esm/PacerContextProvider.js.map +0 -1
  79. package/dist/esm/PacerDevtools.d.ts +0 -1
  80. package/dist/esm/PacerDevtools.js +0 -14
  81. package/dist/esm/PacerDevtools.js.map +0 -1
  82. package/dist/esm/components/ActionButtons.d.ts +0 -6
  83. package/dist/esm/components/ActionButtons.js +0 -157
  84. package/dist/esm/components/ActionButtons.js.map +0 -1
  85. package/dist/esm/components/DetailsPanel.d.ts +0 -11
  86. package/dist/esm/components/DetailsPanel.js +0 -80
  87. package/dist/esm/components/DetailsPanel.js.map +0 -1
  88. package/dist/esm/components/Shell.d.ts +0 -1
  89. package/dist/esm/components/Shell.js +0 -102
  90. package/dist/esm/components/Shell.js.map +0 -1
  91. package/dist/esm/components/StateHeader.d.ts +0 -11
  92. package/dist/esm/components/StateHeader.js +0 -95
  93. package/dist/esm/components/StateHeader.js.map +0 -1
  94. package/dist/esm/components/UtilList.d.ts +0 -8
  95. package/dist/esm/components/UtilList.js +0 -70
  96. package/dist/esm/components/UtilList.js.map +0 -1
  97. package/dist/esm/components/util-groups.d.ts +0 -8
  98. package/dist/esm/components/util-groups.js +0 -40
  99. package/dist/esm/components/util-groups.js.map +0 -1
  100. package/dist/esm/core.d.ts +0 -8
  101. package/dist/esm/core.js +0 -42
  102. package/dist/esm/core.js.map +0 -1
  103. package/dist/esm/index.d.ts +0 -3
  104. package/dist/esm/index.js +0 -15
  105. package/dist/esm/index.js.map +0 -1
  106. package/dist/esm/production.d.ts +0 -3
  107. package/dist/esm/production.js +0 -7
  108. package/dist/esm/production.js.map +0 -1
  109. package/dist/esm/styles/tokens.d.ts +0 -298
  110. package/dist/esm/styles/tokens.js +0 -90
  111. package/dist/esm/styles/tokens.js.map +0 -1
  112. package/dist/esm/styles/use-styles.d.ts +0 -42
  113. package/dist/esm/styles/use-styles.js.map +0 -1
@@ -1,397 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const goober = require("goober");
4
- const solidJs = require("solid-js");
5
- const tokens = require("./tokens.cjs");
6
- function _interopNamespaceDefault(e) {
7
- const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
8
- if (e) {
9
- for (const k in e) {
10
- if (k !== "default") {
11
- const d = Object.getOwnPropertyDescriptor(e, k);
12
- Object.defineProperty(n, k, d.get ? d : {
13
- enumerable: true,
14
- get: () => e[k]
15
- });
16
- }
17
- }
18
- }
19
- n.default = e;
20
- return Object.freeze(n);
21
- }
22
- const goober__namespace = /* @__PURE__ */ _interopNamespaceDefault(goober);
23
- const stylesFactory = () => {
24
- const { colors, font, size, alpha, border } = tokens.tokens;
25
- const { fontFamily, size: fontSize } = font;
26
- const css = goober__namespace.css;
27
- return {
28
- devtoolsPanel: css`
29
- background: ${colors.darkGray[900]};
30
- color: ${colors.gray[100]};
31
- font-family: ${fontFamily.sans};
32
- font-size: ${fontSize.sm};
33
- box-sizing: border-box;
34
- display: flex;
35
- flex-direction: column;
36
- width: 100%;
37
- height: 100%;
38
- overflow: hidden;
39
- `,
40
- stickyHeader: css`
41
- position: sticky;
42
- top: 0;
43
- z-index: 10;
44
- background: ${colors.darkGray[900]};
45
- padding: ${size[2]};
46
- font-size: ${fontSize.lg};
47
- font-weight: ${font.weight.bold};
48
- color: #84cc16;
49
- letter-spacing: 0.04em;
50
- text-transform: uppercase;
51
- border-bottom: 1px solid ${colors.darkGray[700]};
52
- box-shadow: 0 2px 8px 0 ${colors.black + alpha[40]};
53
- flex-shrink: 0;
54
- `,
55
- mainContainer: css`
56
- display: flex;
57
- flex: 1;
58
- min-height: 0;
59
- overflow: hidden;
60
- padding: ${size[2]};
61
- padding-top: 0;
62
- `,
63
- dragHandle: css`
64
- width: 8px;
65
- background: ${colors.darkGray[600]};
66
- cursor: col-resize;
67
- position: relative;
68
- transition: all 0.2s ease;
69
- user-select: none;
70
- pointer-events: all;
71
- margin: 0 ${size[1]};
72
- border-radius: 2px;
73
-
74
- &:hover {
75
- background: ${colors.blue[500]};
76
- margin: 0 ${size[1]};
77
- }
78
-
79
- &.dragging {
80
- background: ${colors.blue[600]};
81
- margin: 0 ${size[1]};
82
- }
83
-
84
- &::after {
85
- content: '';
86
- position: absolute;
87
- top: 50%;
88
- left: 50%;
89
- transform: translate(-50%, -50%);
90
- width: 2px;
91
- height: 20px;
92
- background: ${colors.darkGray[400]};
93
- border-radius: 1px;
94
- pointer-events: none;
95
- }
96
-
97
- &:hover::after,
98
- &.dragging::after {
99
- background: ${colors.blue[300]};
100
- }
101
- `,
102
- leftPanel: css`
103
- background: ${colors.darkGray[800]};
104
- border-radius: ${border.radius.lg};
105
- border: 1px solid ${colors.darkGray[700]};
106
- display: flex;
107
- flex-direction: column;
108
- overflow: hidden;
109
- min-height: 0;
110
- flex-shrink: 0;
111
- `,
112
- rightPanel: css`
113
- background: ${colors.darkGray[800]};
114
- border-radius: ${border.radius.lg};
115
- border: 1px solid ${colors.darkGray[700]};
116
- display: flex;
117
- flex-direction: column;
118
- overflow: hidden;
119
- min-height: 0;
120
- flex: 1;
121
- `,
122
- panelHeader: css`
123
- font-size: ${fontSize.md};
124
- font-weight: ${font.weight.bold};
125
- color: ${colors.blue[400]};
126
- padding: ${size[2]};
127
- border-bottom: 1px solid ${colors.darkGray[700]};
128
- background: ${colors.darkGray[800]};
129
- flex-shrink: 0;
130
- `,
131
- utilList: css`
132
- flex: 1;
133
- overflow-y: auto;
134
- padding: ${size[1]};
135
- min-height: 0;
136
- `,
137
- utilGroup: css`
138
- margin-bottom: ${size[2]};
139
- `,
140
- utilGroupHeader: css`
141
- font-size: ${fontSize.xs};
142
- font-weight: ${font.weight.semibold};
143
- color: ${colors.gray[400]};
144
- text-transform: uppercase;
145
- letter-spacing: 0.05em;
146
- margin-bottom: ${size[1]};
147
- padding: ${size[1]} ${size[2]};
148
- background: ${colors.darkGray[700]};
149
- border-radius: ${border.radius.md};
150
- `,
151
- utilRow: css`
152
- display: flex;
153
- justify-content: space-between;
154
- align-items: center;
155
- padding: ${size[2]};
156
- margin-bottom: ${size[1]};
157
- background: ${colors.darkGray[700]};
158
- border-radius: ${border.radius.md};
159
- cursor: pointer;
160
- transition: all 0.2s ease;
161
- border: 1px solid transparent;
162
-
163
- &:hover {
164
- background: ${colors.darkGray[600]};
165
- border-color: ${colors.darkGray[500]};
166
- }
167
- `,
168
- utilRowSelected: css`
169
- background: ${colors.blue[900] + alpha[20]};
170
- border-color: ${colors.blue[500]};
171
- box-shadow: 0 0 0 1px ${colors.blue[500] + alpha[30]};
172
- `,
173
- utilKey: css`
174
- font-family: ${fontFamily.mono};
175
- font-size: ${fontSize.xs};
176
- color: ${colors.gray[100]};
177
- flex: 1;
178
- overflow: hidden;
179
- text-overflow: ellipsis;
180
- white-space: nowrap;
181
- `,
182
- utilStatus: css`
183
- font-size: ${fontSize.xs};
184
- color: ${colors.gray[400]};
185
- text-transform: uppercase;
186
- letter-spacing: 0.05em;
187
- padding: ${size[1]} ${size[1]};
188
- background: ${colors.darkGray[600]};
189
- border-radius: ${border.radius.sm};
190
- margin-left: ${size[1]};
191
- `,
192
- stateDetails: css`
193
- flex: 1;
194
- overflow-y: auto;
195
- padding: ${size[2]};
196
- min-height: 0;
197
- `,
198
- stateHeader: css`
199
- margin-bottom: ${size[2]};
200
- padding-bottom: ${size[2]};
201
- border-bottom: 1px solid ${colors.darkGray[700]};
202
- `,
203
- stateTitle: css`
204
- font-size: ${fontSize.md};
205
- font-weight: ${font.weight.bold};
206
- color: ${colors.blue[400]};
207
- margin-bottom: ${size[1]};
208
- `,
209
- stateKey: css`
210
- font-family: ${fontFamily.mono};
211
- font-size: ${fontSize.xs};
212
- color: ${colors.gray[400]};
213
- word-break: break-all;
214
- `,
215
- stateContent: css`
216
- background: ${colors.darkGray[700]};
217
- border-radius: ${border.radius.md};
218
- padding: ${size[2]};
219
- border: 1px solid ${colors.darkGray[600]};
220
- `,
221
- detailsGrid: css`
222
- display: grid;
223
- grid-template-columns: 1fr;
224
- gap: ${size[2]};
225
- align-items: start;
226
- `,
227
- detailSection: css`
228
- background: ${colors.darkGray[700]};
229
- border: 1px solid ${colors.darkGray[600]};
230
- border-radius: ${border.radius.md};
231
- padding: ${size[2]};
232
- `,
233
- detailSectionHeader: css`
234
- font-size: ${fontSize.sm};
235
- font-weight: ${font.weight.bold};
236
- color: ${colors.gray[200]};
237
- margin-bottom: ${size[1]};
238
- text-transform: uppercase;
239
- letter-spacing: 0.04em;
240
- `,
241
- actionsRow: css`
242
- display: flex;
243
- flex-wrap: wrap;
244
- gap: ${size[2]};
245
- `,
246
- actionButton: css`
247
- display: inline-flex;
248
- align-items: center;
249
- gap: ${size[1]};
250
- padding: ${size[1]} ${size[2]};
251
- border-radius: ${border.radius.md};
252
- border: 1px solid ${colors.darkGray[500]};
253
- background: ${colors.darkGray[600]};
254
- color: ${colors.gray[100]};
255
- font-size: ${fontSize.xs};
256
- cursor: pointer;
257
- user-select: none;
258
- transition:
259
- background 0.15s,
260
- border-color 0.15s;
261
- &:hover {
262
- background: ${colors.darkGray[500]};
263
- border-color: ${colors.darkGray[400]};
264
- }
265
- &:disabled {
266
- opacity: 0.5;
267
- cursor: not-allowed;
268
- &:hover {
269
- background: ${colors.darkGray[600]};
270
- border-color: ${colors.darkGray[500]};
271
- }
272
- }
273
- `,
274
- actionDotBlue: css`
275
- width: 6px;
276
- height: 6px;
277
- border-radius: 9999px;
278
- background: ${colors.blue[400]};
279
- `,
280
- actionDotGreen: css`
281
- width: 6px;
282
- height: 6px;
283
- border-radius: 9999px;
284
- background: ${colors.green[400]};
285
- `,
286
- actionDotRed: css`
287
- width: 6px;
288
- height: 6px;
289
- border-radius: 9999px;
290
- background: ${colors.red[400]};
291
- `,
292
- actionDotYellow: css`
293
- width: 6px;
294
- height: 6px;
295
- border-radius: 9999px;
296
- background: ${colors.yellow[400]};
297
- `,
298
- actionDotOrange: css`
299
- width: 6px;
300
- height: 6px;
301
- border-radius: 9999px;
302
- background: ${colors.pink[400]};
303
- `,
304
- actionDotPurple: css`
305
- width: 6px;
306
- height: 6px;
307
- border-radius: 9999px;
308
- background: ${colors.purple[400]};
309
- `,
310
- infoGrid: css`
311
- display: grid;
312
- grid-template-columns: auto 1fr;
313
- gap: ${size[1]};
314
- row-gap: ${size[1]};
315
- align-items: center;
316
- `,
317
- infoLabel: css`
318
- color: ${colors.gray[400]};
319
- font-size: ${fontSize.xs};
320
- text-transform: uppercase;
321
- letter-spacing: 0.05em;
322
- `,
323
- infoValueMono: css`
324
- font-family: ${fontFamily.mono};
325
- font-size: ${fontSize.xs};
326
- color: ${colors.gray[100]};
327
- word-break: break-all;
328
- `,
329
- noSelection: css`
330
- flex: 1;
331
- display: flex;
332
- align-items: center;
333
- justify-content: center;
334
- color: ${colors.gray[500]};
335
- font-style: italic;
336
- text-align: center;
337
- padding: ${size[4]};
338
- `,
339
- // Keep existing styles for backward compatibility
340
- sectionContainer: css`
341
- display: flex;
342
- flex-wrap: wrap;
343
- gap: ${size[4]};
344
- `,
345
- section: css`
346
- background: ${colors.darkGray[800]};
347
- border-radius: ${border.radius.lg};
348
- box-shadow: ${tokens.tokens.shadow.md(colors.black + alpha[80])};
349
- padding: ${size[4]};
350
- margin-bottom: ${size[4]};
351
- border: 1px solid ${colors.darkGray[700]};
352
- min-width: 0;
353
- max-width: 33%;
354
- max-height: fit-content;
355
- `,
356
- sectionHeader: css`
357
- font-size: ${fontSize.lg};
358
- font-weight: ${font.weight.bold};
359
- margin-bottom: ${size[2]};
360
- color: ${colors.blue[400]};
361
- letter-spacing: 0.01em;
362
- display: flex;
363
- align-items: center;
364
- gap: ${size[2]};
365
- `,
366
- sectionEmpty: css`
367
- color: ${colors.gray[500]};
368
- font-size: ${fontSize.sm};
369
- font-style: italic;
370
- margin: ${size[2]} 0;
371
- `,
372
- instanceList: css`
373
- display: flex;
374
- flex-direction: column;
375
- gap: ${size[2]};
376
- `,
377
- instanceCard: css`
378
- background: ${colors.darkGray[700]};
379
- border-radius: ${border.radius.md};
380
- padding: ${size[3]};
381
- border: 1px solid ${colors.darkGray[600]};
382
- font-size: ${fontSize.sm};
383
- color: ${colors.gray[100]};
384
- font-family: ${fontFamily.mono};
385
- overflow-x: auto;
386
- transition:
387
- box-shadow 0.3s,
388
- background 0.3s;
389
- `
390
- };
391
- };
392
- function useStyles() {
393
- const [_styles] = solidJs.createSignal(stylesFactory());
394
- return _styles;
395
- }
396
- exports.useStyles = useStyles;
397
- //# sourceMappingURL=use-styles.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-styles.cjs","sources":["../../../src/styles/use-styles.ts"],"sourcesContent":["import * as goober from 'goober'\nimport { createSignal } from 'solid-js'\nimport { tokens } from './tokens'\n\nconst stylesFactory = () => {\n const { colors, font, size, alpha, border } = tokens\n const { fontFamily, size: fontSize } = font\n const css = goober.css\n\n return {\n devtoolsPanel: css`\n background: ${colors.darkGray[900]};\n color: ${colors.gray[100]};\n font-family: ${fontFamily.sans};\n font-size: ${fontSize.sm};\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n overflow: hidden;\n `,\n stickyHeader: css`\n position: sticky;\n top: 0;\n z-index: 10;\n background: ${colors.darkGray[900]};\n padding: ${size[2]};\n font-size: ${fontSize.lg};\n font-weight: ${font.weight.bold};\n color: #84cc16;\n letter-spacing: 0.04em;\n text-transform: uppercase;\n border-bottom: 1px solid ${colors.darkGray[700]};\n box-shadow: 0 2px 8px 0 ${colors.black + alpha[40]};\n flex-shrink: 0;\n `,\n mainContainer: css`\n display: flex;\n flex: 1;\n min-height: 0;\n overflow: hidden;\n padding: ${size[2]};\n padding-top: 0;\n `,\n dragHandle: css`\n width: 8px;\n background: ${colors.darkGray[600]};\n cursor: col-resize;\n position: relative;\n transition: all 0.2s ease;\n user-select: none;\n pointer-events: all;\n margin: 0 ${size[1]};\n border-radius: 2px;\n\n &:hover {\n background: ${colors.blue[500]};\n margin: 0 ${size[1]};\n }\n\n &.dragging {\n background: ${colors.blue[600]};\n margin: 0 ${size[1]};\n }\n\n &::after {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 2px;\n height: 20px;\n background: ${colors.darkGray[400]};\n border-radius: 1px;\n pointer-events: none;\n }\n\n &:hover::after,\n &.dragging::after {\n background: ${colors.blue[300]};\n }\n `,\n leftPanel: css`\n background: ${colors.darkGray[800]};\n border-radius: ${border.radius.lg};\n border: 1px solid ${colors.darkGray[700]};\n display: flex;\n flex-direction: column;\n overflow: hidden;\n min-height: 0;\n flex-shrink: 0;\n `,\n rightPanel: css`\n background: ${colors.darkGray[800]};\n border-radius: ${border.radius.lg};\n border: 1px solid ${colors.darkGray[700]};\n display: flex;\n flex-direction: column;\n overflow: hidden;\n min-height: 0;\n flex: 1;\n `,\n panelHeader: css`\n font-size: ${fontSize.md};\n font-weight: ${font.weight.bold};\n color: ${colors.blue[400]};\n padding: ${size[2]};\n border-bottom: 1px solid ${colors.darkGray[700]};\n background: ${colors.darkGray[800]};\n flex-shrink: 0;\n `,\n utilList: css`\n flex: 1;\n overflow-y: auto;\n padding: ${size[1]};\n min-height: 0;\n `,\n utilGroup: css`\n margin-bottom: ${size[2]};\n `,\n utilGroupHeader: css`\n font-size: ${fontSize.xs};\n font-weight: ${font.weight.semibold};\n color: ${colors.gray[400]};\n text-transform: uppercase;\n letter-spacing: 0.05em;\n margin-bottom: ${size[1]};\n padding: ${size[1]} ${size[2]};\n background: ${colors.darkGray[700]};\n border-radius: ${border.radius.md};\n `,\n utilRow: css`\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: ${size[2]};\n margin-bottom: ${size[1]};\n background: ${colors.darkGray[700]};\n border-radius: ${border.radius.md};\n cursor: pointer;\n transition: all 0.2s ease;\n border: 1px solid transparent;\n\n &:hover {\n background: ${colors.darkGray[600]};\n border-color: ${colors.darkGray[500]};\n }\n `,\n utilRowSelected: css`\n background: ${colors.blue[900] + alpha[20]};\n border-color: ${colors.blue[500]};\n box-shadow: 0 0 0 1px ${colors.blue[500] + alpha[30]};\n `,\n utilKey: css`\n font-family: ${fontFamily.mono};\n font-size: ${fontSize.xs};\n color: ${colors.gray[100]};\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n `,\n utilStatus: css`\n font-size: ${fontSize.xs};\n color: ${colors.gray[400]};\n text-transform: uppercase;\n letter-spacing: 0.05em;\n padding: ${size[1]} ${size[1]};\n background: ${colors.darkGray[600]};\n border-radius: ${border.radius.sm};\n margin-left: ${size[1]};\n `,\n stateDetails: css`\n flex: 1;\n overflow-y: auto;\n padding: ${size[2]};\n min-height: 0;\n `,\n stateHeader: css`\n margin-bottom: ${size[2]};\n padding-bottom: ${size[2]};\n border-bottom: 1px solid ${colors.darkGray[700]};\n `,\n stateTitle: css`\n font-size: ${fontSize.md};\n font-weight: ${font.weight.bold};\n color: ${colors.blue[400]};\n margin-bottom: ${size[1]};\n `,\n stateKey: css`\n font-family: ${fontFamily.mono};\n font-size: ${fontSize.xs};\n color: ${colors.gray[400]};\n word-break: break-all;\n `,\n stateContent: css`\n background: ${colors.darkGray[700]};\n border-radius: ${border.radius.md};\n padding: ${size[2]};\n border: 1px solid ${colors.darkGray[600]};\n `,\n detailsGrid: css`\n display: grid;\n grid-template-columns: 1fr;\n gap: ${size[2]};\n align-items: start;\n `,\n detailSection: css`\n background: ${colors.darkGray[700]};\n border: 1px solid ${colors.darkGray[600]};\n border-radius: ${border.radius.md};\n padding: ${size[2]};\n `,\n detailSectionHeader: css`\n font-size: ${fontSize.sm};\n font-weight: ${font.weight.bold};\n color: ${colors.gray[200]};\n margin-bottom: ${size[1]};\n text-transform: uppercase;\n letter-spacing: 0.04em;\n `,\n actionsRow: css`\n display: flex;\n flex-wrap: wrap;\n gap: ${size[2]};\n `,\n actionButton: css`\n display: inline-flex;\n align-items: center;\n gap: ${size[1]};\n padding: ${size[1]} ${size[2]};\n border-radius: ${border.radius.md};\n border: 1px solid ${colors.darkGray[500]};\n background: ${colors.darkGray[600]};\n color: ${colors.gray[100]};\n font-size: ${fontSize.xs};\n cursor: pointer;\n user-select: none;\n transition:\n background 0.15s,\n border-color 0.15s;\n &:hover {\n background: ${colors.darkGray[500]};\n border-color: ${colors.darkGray[400]};\n }\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n &:hover {\n background: ${colors.darkGray[600]};\n border-color: ${colors.darkGray[500]};\n }\n }\n `,\n actionDotBlue: css`\n width: 6px;\n height: 6px;\n border-radius: 9999px;\n background: ${colors.blue[400]};\n `,\n actionDotGreen: css`\n width: 6px;\n height: 6px;\n border-radius: 9999px;\n background: ${colors.green[400]};\n `,\n actionDotRed: css`\n width: 6px;\n height: 6px;\n border-radius: 9999px;\n background: ${colors.red[400]};\n `,\n actionDotYellow: css`\n width: 6px;\n height: 6px;\n border-radius: 9999px;\n background: ${colors.yellow[400]};\n `,\n actionDotOrange: css`\n width: 6px;\n height: 6px;\n border-radius: 9999px;\n background: ${colors.pink[400]};\n `,\n actionDotPurple: css`\n width: 6px;\n height: 6px;\n border-radius: 9999px;\n background: ${colors.purple[400]};\n `,\n infoGrid: css`\n display: grid;\n grid-template-columns: auto 1fr;\n gap: ${size[1]};\n row-gap: ${size[1]};\n align-items: center;\n `,\n infoLabel: css`\n color: ${colors.gray[400]};\n font-size: ${fontSize.xs};\n text-transform: uppercase;\n letter-spacing: 0.05em;\n `,\n infoValueMono: css`\n font-family: ${fontFamily.mono};\n font-size: ${fontSize.xs};\n color: ${colors.gray[100]};\n word-break: break-all;\n `,\n noSelection: css`\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${colors.gray[500]};\n font-style: italic;\n text-align: center;\n padding: ${size[4]};\n `,\n // Keep existing styles for backward compatibility\n sectionContainer: css`\n display: flex;\n flex-wrap: wrap;\n gap: ${size[4]};\n `,\n section: css`\n background: ${colors.darkGray[800]};\n border-radius: ${border.radius.lg};\n box-shadow: ${tokens.shadow.md(colors.black + alpha[80])};\n padding: ${size[4]};\n margin-bottom: ${size[4]};\n border: 1px solid ${colors.darkGray[700]};\n min-width: 0;\n max-width: 33%;\n max-height: fit-content;\n `,\n sectionHeader: css`\n font-size: ${fontSize.lg};\n font-weight: ${font.weight.bold};\n margin-bottom: ${size[2]};\n color: ${colors.blue[400]};\n letter-spacing: 0.01em;\n display: flex;\n align-items: center;\n gap: ${size[2]};\n `,\n sectionEmpty: css`\n color: ${colors.gray[500]};\n font-size: ${fontSize.sm};\n font-style: italic;\n margin: ${size[2]} 0;\n `,\n instanceList: css`\n display: flex;\n flex-direction: column;\n gap: ${size[2]};\n `,\n instanceCard: css`\n background: ${colors.darkGray[700]};\n border-radius: ${border.radius.md};\n padding: ${size[3]};\n border: 1px solid ${colors.darkGray[600]};\n font-size: ${fontSize.sm};\n color: ${colors.gray[100]};\n font-family: ${fontFamily.mono};\n overflow-x: auto;\n transition:\n box-shadow 0.3s,\n background 0.3s;\n `,\n }\n}\n\nexport function useStyles() {\n const [_styles] = createSignal(stylesFactory())\n return _styles\n}\n"],"names":["tokens","goober","createSignal"],"mappings":"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"}
@@ -1,42 +0,0 @@
1
- export declare function useStyles(): import('solid-js').Accessor<{
2
- devtoolsPanel: string;
3
- stickyHeader: string;
4
- mainContainer: string;
5
- dragHandle: string;
6
- leftPanel: string;
7
- rightPanel: string;
8
- panelHeader: string;
9
- utilList: string;
10
- utilGroup: string;
11
- utilGroupHeader: string;
12
- utilRow: string;
13
- utilRowSelected: string;
14
- utilKey: string;
15
- utilStatus: string;
16
- stateDetails: string;
17
- stateHeader: string;
18
- stateTitle: string;
19
- stateKey: string;
20
- stateContent: string;
21
- detailsGrid: string;
22
- detailSection: string;
23
- detailSectionHeader: string;
24
- actionsRow: string;
25
- actionButton: string;
26
- actionDotBlue: string;
27
- actionDotGreen: string;
28
- actionDotRed: string;
29
- actionDotYellow: string;
30
- actionDotOrange: string;
31
- actionDotPurple: string;
32
- infoGrid: string;
33
- infoLabel: string;
34
- infoValueMono: string;
35
- noSelection: string;
36
- sectionContainer: string;
37
- section: string;
38
- sectionHeader: string;
39
- sectionEmpty: string;
40
- instanceList: string;
41
- instanceCard: string;
42
- }>;
@@ -1,19 +0,0 @@
1
- import { AsyncBatcher, AsyncDebouncer, AsyncQueuer, AsyncRateLimiter, AsyncThrottler, Batcher, Debouncer, Queuer, RateLimiter, Throttler } from '@tanstack/pacer';
2
- interface PacerDevtoolsContextType {
3
- asyncBatchers: Array<AsyncBatcher<any>>;
4
- asyncDebouncers: Array<AsyncDebouncer<any>>;
5
- asyncQueuers: Array<AsyncQueuer<any>>;
6
- asyncRateLimiters: Array<AsyncRateLimiter<any>>;
7
- asyncThrottlers: Array<AsyncThrottler<any>>;
8
- batchers: Array<Batcher<any>>;
9
- debouncers: Array<Debouncer<any>>;
10
- queuers: Array<Queuer<any>>;
11
- rateLimiters: Array<RateLimiter<any>>;
12
- throttlers: Array<Throttler<any>>;
13
- lastUpdatedByKey: Record<string, number>;
14
- }
15
- export declare function PacerContextProvider(props: {
16
- children: any;
17
- }): import("solid-js").JSX.Element;
18
- export declare const usePacerDevtoolsState: () => PacerDevtoolsContextType;
19
- export {};
@@ -1,156 +0,0 @@
1
- import { createComponent } from "solid-js/web";
2
- import { createStore } from "solid-js/store";
3
- import { createEffect, onCleanup, createContext, useContext } from "solid-js";
4
- import { pacerEventClient } from "@tanstack/pacer/event-client";
5
- const initialPacerDevtoolsStore = {
6
- asyncBatchers: [],
7
- asyncDebouncers: [],
8
- asyncQueuers: [],
9
- asyncRateLimiters: [],
10
- asyncThrottlers: [],
11
- batchers: [],
12
- debouncers: [],
13
- queuers: [],
14
- rateLimiters: [],
15
- throttlers: [],
16
- lastUpdatedByKey: {}
17
- };
18
- const PacerDevtoolsContext = createContext([initialPacerDevtoolsStore, () => {
19
- }]);
20
- const updateOrAddToArray = (oldArray, newItem) => {
21
- const index = oldArray.findIndex((item) => item.key === newItem.key);
22
- if (index !== -1) {
23
- return oldArray.map((item, i) => i === index ? newItem : item);
24
- }
25
- return [...oldArray, newItem];
26
- };
27
- function PacerContextProvider(props) {
28
- const [store, setStore] = createStore(initialPacerDevtoolsStore);
29
- createEffect(() => {
30
- const cleanup = pacerEventClient.onAllPluginEvents((_e) => {
31
- const e = _e;
32
- switch (e.type) {
33
- case "pacer:AsyncBatcher": {
34
- setStore({
35
- asyncBatchers: updateOrAddToArray(store.asyncBatchers, e.payload),
36
- lastUpdatedByKey: {
37
- ...store.lastUpdatedByKey,
38
- [e.payload.key]: Date.now()
39
- }
40
- });
41
- break;
42
- }
43
- case "pacer:AsyncDebouncer": {
44
- setStore({
45
- asyncDebouncers: updateOrAddToArray(store.asyncDebouncers, e.payload),
46
- lastUpdatedByKey: {
47
- ...store.lastUpdatedByKey,
48
- [e.payload.key]: Date.now()
49
- }
50
- });
51
- break;
52
- }
53
- case "pacer:AsyncQueuer": {
54
- setStore({
55
- asyncQueuers: updateOrAddToArray(store.asyncQueuers, e.payload),
56
- lastUpdatedByKey: {
57
- ...store.lastUpdatedByKey,
58
- [e.payload.key]: Date.now()
59
- }
60
- });
61
- break;
62
- }
63
- case "pacer:AsyncRateLimiter": {
64
- setStore({
65
- asyncRateLimiters: updateOrAddToArray(store.asyncRateLimiters, e.payload),
66
- lastUpdatedByKey: {
67
- ...store.lastUpdatedByKey,
68
- [e.payload.key]: Date.now()
69
- }
70
- });
71
- break;
72
- }
73
- case "pacer:AsyncThrottler": {
74
- setStore({
75
- asyncThrottlers: updateOrAddToArray(store.asyncThrottlers, e.payload),
76
- lastUpdatedByKey: {
77
- ...store.lastUpdatedByKey,
78
- [e.payload.key]: Date.now()
79
- }
80
- });
81
- break;
82
- }
83
- case "pacer:Batcher": {
84
- setStore({
85
- batchers: updateOrAddToArray(store.batchers, e.payload),
86
- lastUpdatedByKey: {
87
- ...store.lastUpdatedByKey,
88
- [e.payload.key]: Date.now()
89
- }
90
- });
91
- break;
92
- }
93
- case "pacer:Debouncer": {
94
- setStore({
95
- debouncers: updateOrAddToArray(store.debouncers, e.payload),
96
- lastUpdatedByKey: {
97
- ...store.lastUpdatedByKey,
98
- [e.payload.key]: Date.now()
99
- }
100
- });
101
- break;
102
- }
103
- case "pacer:Queuer": {
104
- setStore({
105
- queuers: updateOrAddToArray(store.queuers, e.payload),
106
- lastUpdatedByKey: {
107
- ...store.lastUpdatedByKey,
108
- [e.payload.key]: Date.now()
109
- }
110
- });
111
- break;
112
- }
113
- case "pacer:RateLimiter": {
114
- setStore({
115
- rateLimiters: updateOrAddToArray(store.rateLimiters, e.payload),
116
- lastUpdatedByKey: {
117
- ...store.lastUpdatedByKey,
118
- [e.payload.key]: Date.now()
119
- }
120
- });
121
- break;
122
- }
123
- case "pacer:Throttler": {
124
- setStore({
125
- throttlers: updateOrAddToArray(store.throttlers, e.payload),
126
- lastUpdatedByKey: {
127
- ...store.lastUpdatedByKey,
128
- [e.payload.key]: Date.now()
129
- }
130
- });
131
- break;
132
- }
133
- }
134
- });
135
- onCleanup(cleanup);
136
- });
137
- return createComponent(PacerDevtoolsContext.Provider, {
138
- value: [store, setStore],
139
- get children() {
140
- return props.children;
141
- }
142
- });
143
- }
144
- const usePacerDevtoolsContext = () => {
145
- const context = useContext(PacerDevtoolsContext);
146
- return context;
147
- };
148
- const usePacerDevtoolsState = () => {
149
- const [state] = usePacerDevtoolsContext();
150
- return state;
151
- };
152
- export {
153
- PacerContextProvider,
154
- usePacerDevtoolsState
155
- };
156
- //# sourceMappingURL=PacerContextProvider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PacerContextProvider.js","sources":["../../src/PacerContextProvider.tsx"],"sourcesContent":["import { createStore } from 'solid-js/store'\nimport { createContext, createEffect, onCleanup, useContext } from 'solid-js'\nimport { pacerEventClient } from '@tanstack/pacer/event-client'\nimport type {\n AsyncBatcher,\n AsyncDebouncer,\n AsyncQueuer,\n AsyncRateLimiter,\n AsyncThrottler,\n Batcher,\n Debouncer,\n Queuer,\n RateLimiter,\n Throttler,\n} from '@tanstack/pacer'\n\ninterface PacerDevtoolsContextType {\n asyncBatchers: Array<AsyncBatcher<any>>\n asyncDebouncers: Array<AsyncDebouncer<any>>\n asyncQueuers: Array<AsyncQueuer<any>>\n asyncRateLimiters: Array<AsyncRateLimiter<any>>\n asyncThrottlers: Array<AsyncThrottler<any>>\n batchers: Array<Batcher<any>>\n debouncers: Array<Debouncer<any>>\n queuers: Array<Queuer<any>>\n rateLimiters: Array<RateLimiter<any>>\n throttlers: Array<Throttler<any>>\n lastUpdatedByKey: Record<string, number>\n}\n\nconst initialPacerDevtoolsStore = {\n asyncBatchers: [],\n asyncDebouncers: [],\n asyncQueuers: [],\n asyncRateLimiters: [],\n asyncThrottlers: [],\n batchers: [],\n debouncers: [],\n queuers: [],\n rateLimiters: [],\n throttlers: [],\n lastUpdatedByKey: {},\n}\n\nconst PacerDevtoolsContext = createContext<\n [\n PacerDevtoolsContextType,\n (newState: Partial<PacerDevtoolsContextType>) => void,\n ]\n>([initialPacerDevtoolsStore, () => {}])\n\nconst updateOrAddToArray = <T extends { key: string }>(\n oldArray: Array<T>,\n newItem: T,\n) => {\n const index = oldArray.findIndex((item) => item.key === newItem.key)\n if (index !== -1) {\n // Update existing item\n return oldArray.map((item, i) => (i === index ? newItem : item))\n }\n // Add new item\n return [...oldArray, newItem]\n}\n\nexport function PacerContextProvider(props: { children: any }) {\n const [store, setStore] = createStore<PacerDevtoolsContextType>(\n initialPacerDevtoolsStore,\n )\n\n createEffect(() => {\n const cleanup = pacerEventClient.onAllPluginEvents((_e) => {\n const e = _e as unknown as { type: string; payload: any }\n switch (e.type) {\n case 'pacer:AsyncBatcher': {\n setStore({\n asyncBatchers: updateOrAddToArray(store.asyncBatchers, e.payload),\n lastUpdatedByKey: {\n ...store.lastUpdatedByKey,\n [e.payload.key]: Date.now(),\n },\n })\n break\n }\n case 'pacer:AsyncDebouncer': {\n setStore({\n asyncDebouncers: updateOrAddToArray(\n store.asyncDebouncers,\n e.payload,\n ),\n lastUpdatedByKey: {\n ...store.lastUpdatedByKey,\n [e.payload.key]: Date.now(),\n },\n })\n break\n }\n case 'pacer:AsyncQueuer': {\n setStore({\n asyncQueuers: updateOrAddToArray(store.asyncQueuers, e.payload),\n lastUpdatedByKey: {\n ...store.lastUpdatedByKey,\n [e.payload.key]: Date.now(),\n },\n })\n break\n }\n case 'pacer:AsyncRateLimiter': {\n setStore({\n asyncRateLimiters: updateOrAddToArray(\n store.asyncRateLimiters,\n e.payload,\n ),\n lastUpdatedByKey: {\n ...store.lastUpdatedByKey,\n [e.payload.key]: Date.now(),\n },\n })\n break\n }\n case 'pacer:AsyncThrottler': {\n setStore({\n asyncThrottlers: updateOrAddToArray(\n store.asyncThrottlers,\n e.payload,\n ),\n lastUpdatedByKey: {\n ...store.lastUpdatedByKey,\n [e.payload.key]: Date.now(),\n },\n })\n break\n }\n case 'pacer:Batcher': {\n setStore({\n batchers: updateOrAddToArray(store.batchers, e.payload),\n lastUpdatedByKey: {\n ...store.lastUpdatedByKey,\n [e.payload.key]: Date.now(),\n },\n })\n break\n }\n case 'pacer:Debouncer': {\n setStore({\n debouncers: updateOrAddToArray(store.debouncers, e.payload),\n lastUpdatedByKey: {\n ...store.lastUpdatedByKey,\n [e.payload.key]: Date.now(),\n },\n })\n break\n }\n case 'pacer:Queuer': {\n setStore({\n queuers: updateOrAddToArray(store.queuers, e.payload),\n lastUpdatedByKey: {\n ...store.lastUpdatedByKey,\n [e.payload.key]: Date.now(),\n },\n })\n break\n }\n case 'pacer:RateLimiter': {\n setStore({\n rateLimiters: updateOrAddToArray(store.rateLimiters, e.payload),\n lastUpdatedByKey: {\n ...store.lastUpdatedByKey,\n [e.payload.key]: Date.now(),\n },\n })\n break\n }\n case 'pacer:Throttler': {\n setStore({\n throttlers: updateOrAddToArray(store.throttlers, e.payload),\n lastUpdatedByKey: {\n ...store.lastUpdatedByKey,\n [e.payload.key]: Date.now(),\n },\n })\n break\n }\n }\n })\n onCleanup(cleanup)\n })\n return (\n <PacerDevtoolsContext.Provider value={[store, setStore]}>\n {props.children}\n </PacerDevtoolsContext.Provider>\n )\n}\n\nconst usePacerDevtoolsContext = () => {\n const context = useContext(PacerDevtoolsContext)\n\n return context\n}\n\nexport const usePacerDevtoolsState = () => {\n const [state] = usePacerDevtoolsContext()\n return state\n}\n"],"names":["initialPacerDevtoolsStore","asyncBatchers","asyncDebouncers","asyncQueuers","asyncRateLimiters","asyncThrottlers","batchers","debouncers","queuers","rateLimiters","throttlers","lastUpdatedByKey","PacerDevtoolsContext","createContext","updateOrAddToArray","oldArray","newItem","index","findIndex","item","key","map","i","PacerContextProvider","props","store","setStore","createStore","createEffect","cleanup","pacerEventClient","onAllPluginEvents","_e","e","type","payload","Date","now","onCleanup","_$createComponent","Provider","value","children","usePacerDevtoolsContext","context","useContext","usePacerDevtoolsState","state"],"mappings":"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"}
@@ -1 +0,0 @@
1
- export default function PacerDevtools(): import("solid-js").JSX.Element;
@@ -1,14 +0,0 @@
1
- import { createComponent } from "solid-js/web";
2
- import { PacerContextProvider } from "./PacerContextProvider.js";
3
- import { Shell } from "./components/Shell.js";
4
- function PacerDevtools() {
5
- return createComponent(PacerContextProvider, {
6
- get children() {
7
- return createComponent(Shell, {});
8
- }
9
- });
10
- }
11
- export {
12
- PacerDevtools as default
13
- };
14
- //# sourceMappingURL=PacerDevtools.js.map