@tanstack/pacer-devtools 0.2.0 → 0.3.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.
@@ -1,10 +1,12 @@
1
1
  import * as goober from "goober";
2
- import { createSignal } from "solid-js";
2
+ import { createSignal, createEffect } from "solid-js";
3
+ import { useTheme } from "@tanstack/devtools-ui";
3
4
  import { tokens } from "./tokens.js";
4
- const stylesFactory = () => {
5
+ const stylesFactory = (theme) => {
5
6
  const { colors, font, size, alpha, border } = tokens;
6
7
  const { fontFamily, size: fontSize } = font;
7
8
  const css = goober.css;
9
+ const t = (light, dark) => theme === "light" ? light : dark;
8
10
  return {
9
11
  mainContainer: css`
10
12
  display: flex;
@@ -17,7 +19,7 @@ const stylesFactory = () => {
17
19
  `,
18
20
  dragHandle: css`
19
21
  width: 8px;
20
- background: ${colors.darkGray[600]};
22
+ background: ${t(colors.gray[300], colors.darkGray[600])};
21
23
  cursor: col-resize;
22
24
  position: relative;
23
25
  transition: all 0.2s ease;
@@ -27,12 +29,12 @@ const stylesFactory = () => {
27
29
  border-radius: 2px;
28
30
 
29
31
  &:hover {
30
- background: ${colors.blue[500]};
32
+ background: ${t(colors.blue[600], colors.blue[500])};
31
33
  margin: 0 ${size[1]};
32
34
  }
33
35
 
34
36
  &.dragging {
35
- background: ${colors.blue[600]};
37
+ background: ${t(colors.blue[700], colors.blue[600])};
36
38
  margin: 0 ${size[1]};
37
39
  }
38
40
 
@@ -44,20 +46,20 @@ const stylesFactory = () => {
44
46
  transform: translate(-50%, -50%);
45
47
  width: 2px;
46
48
  height: 20px;
47
- background: ${colors.darkGray[400]};
49
+ background: ${t(colors.gray[400], colors.darkGray[400])};
48
50
  border-radius: 1px;
49
51
  pointer-events: none;
50
52
  }
51
53
 
52
54
  &:hover::after,
53
55
  &.dragging::after {
54
- background: ${colors.blue[300]};
56
+ background: ${t(colors.blue[500], colors.blue[300])};
55
57
  }
56
58
  `,
57
59
  leftPanel: css`
58
- background: ${colors.darkGray[800]};
60
+ background: ${t(colors.gray[100], colors.darkGray[800])};
59
61
  border-radius: ${border.radius.lg};
60
- border: 1px solid ${colors.darkGray[700]};
62
+ border: 1px solid ${t(colors.gray[200], colors.darkGray[700])};
61
63
  display: flex;
62
64
  flex-direction: column;
63
65
  overflow: hidden;
@@ -65,9 +67,9 @@ const stylesFactory = () => {
65
67
  flex-shrink: 0;
66
68
  `,
67
69
  rightPanel: css`
68
- background: ${colors.darkGray[800]};
70
+ background: ${t(colors.gray[100], colors.darkGray[800])};
69
71
  border-radius: ${border.radius.lg};
70
- border: 1px solid ${colors.darkGray[700]};
72
+ border: 1px solid ${t(colors.gray[200], colors.darkGray[700])};
71
73
  display: flex;
72
74
  flex-direction: column;
73
75
  overflow: hidden;
@@ -77,10 +79,10 @@ const stylesFactory = () => {
77
79
  panelHeader: css`
78
80
  font-size: ${fontSize.md};
79
81
  font-weight: ${font.weight.bold};
80
- color: ${colors.blue[400]};
82
+ color: ${t(colors.blue[700], colors.blue[400])};
81
83
  padding: ${size[2]};
82
- border-bottom: 1px solid ${colors.darkGray[700]};
83
- background: ${colors.darkGray[800]};
84
+ border-bottom: 1px solid ${t(colors.gray[200], colors.darkGray[700])};
85
+ background: ${t(colors.gray[100], colors.darkGray[800])};
84
86
  flex-shrink: 0;
85
87
  `,
86
88
  utilList: css`
@@ -95,12 +97,12 @@ const stylesFactory = () => {
95
97
  utilGroupHeader: css`
96
98
  font-size: ${fontSize.xs};
97
99
  font-weight: ${font.weight.semibold};
98
- color: ${colors.gray[400]};
100
+ color: ${t(colors.gray[600], colors.gray[400])};
99
101
  text-transform: uppercase;
100
102
  letter-spacing: 0.05em;
101
103
  margin-bottom: ${size[1]};
102
104
  padding: ${size[1]} ${size[2]};
103
- background: ${colors.darkGray[700]};
105
+ background: ${t(colors.gray[200], colors.darkGray[700])};
104
106
  border-radius: ${border.radius.md};
105
107
  `,
106
108
  utilRow: css`
@@ -109,26 +111,27 @@ const stylesFactory = () => {
109
111
  align-items: center;
110
112
  padding: ${size[2]};
111
113
  margin-bottom: ${size[1]};
112
- background: ${colors.darkGray[700]};
114
+ background: ${t(colors.gray[200], colors.darkGray[700])};
113
115
  border-radius: ${border.radius.md};
114
116
  cursor: pointer;
115
117
  transition: all 0.2s ease;
116
118
  border: 1px solid transparent;
117
119
 
118
120
  &:hover {
119
- background: ${colors.darkGray[600]};
120
- border-color: ${colors.darkGray[500]};
121
+ background: ${t(colors.gray[300], colors.darkGray[600])};
122
+ border-color: ${t(colors.gray[400], colors.darkGray[500])};
121
123
  }
122
124
  `,
123
125
  utilRowSelected: css`
124
- background: ${colors.blue[900] + alpha[20]};
125
- border-color: ${colors.blue[500]};
126
- box-shadow: 0 0 0 1px ${colors.blue[500] + alpha[30]};
126
+ background: ${t(colors.blue[100], colors.blue[900] + alpha[20])};
127
+ border-color: ${t(colors.blue[600], colors.blue[500])};
128
+ box-shadow: 0 0 0 1px
129
+ ${t(colors.blue[600] + alpha[30], colors.blue[500] + alpha[30])};
127
130
  `,
128
131
  utilKey: css`
129
132
  font-family: ${fontFamily.mono};
130
133
  font-size: ${fontSize.xs};
131
- color: ${colors.gray[100]};
134
+ color: ${t(colors.gray[900], colors.gray[100])};
132
135
  flex: 1;
133
136
  overflow: hidden;
134
137
  text-overflow: ellipsis;
@@ -136,11 +139,11 @@ const stylesFactory = () => {
136
139
  `,
137
140
  utilStatus: css`
138
141
  font-size: ${fontSize.xs};
139
- color: ${colors.gray[400]};
142
+ color: ${t(colors.gray[600], colors.gray[400])};
140
143
  text-transform: uppercase;
141
144
  letter-spacing: 0.05em;
142
145
  padding: ${size[1]} ${size[1]};
143
- background: ${colors.darkGray[600]};
146
+ background: ${t(colors.gray[300], colors.darkGray[600])};
144
147
  border-radius: ${border.radius.sm};
145
148
  margin-left: ${size[1]};
146
149
  `,
@@ -153,25 +156,25 @@ const stylesFactory = () => {
153
156
  stateHeader: css`
154
157
  margin-bottom: ${size[2]};
155
158
  padding-bottom: ${size[2]};
156
- border-bottom: 1px solid ${colors.darkGray[700]};
159
+ border-bottom: 1px solid ${t(colors.gray[200], colors.darkGray[700])};
157
160
  `,
158
161
  stateTitle: css`
159
162
  font-size: ${fontSize.md};
160
163
  font-weight: ${font.weight.bold};
161
- color: ${colors.blue[400]};
164
+ color: ${t(colors.blue[700], colors.blue[400])};
162
165
  margin-bottom: ${size[1]};
163
166
  `,
164
167
  stateKey: css`
165
168
  font-family: ${fontFamily.mono};
166
169
  font-size: ${fontSize.xs};
167
- color: ${colors.gray[400]};
170
+ color: ${t(colors.gray[600], colors.gray[400])};
168
171
  word-break: break-all;
169
172
  `,
170
173
  stateContent: css`
171
- background: ${colors.darkGray[700]};
174
+ background: ${t(colors.gray[100], colors.darkGray[700])};
172
175
  border-radius: ${border.radius.md};
173
176
  padding: ${size[2]};
174
- border: 1px solid ${colors.darkGray[600]};
177
+ border: 1px solid ${t(colors.gray[300], colors.darkGray[600])};
175
178
  `,
176
179
  detailsGrid: css`
177
180
  display: grid;
@@ -180,15 +183,15 @@ const stylesFactory = () => {
180
183
  align-items: start;
181
184
  `,
182
185
  detailSection: css`
183
- background: ${colors.darkGray[700]};
184
- border: 1px solid ${colors.darkGray[600]};
186
+ background: ${t(colors.white, colors.darkGray[700])};
187
+ border: 1px solid ${t(colors.gray[300], colors.darkGray[600])};
185
188
  border-radius: ${border.radius.md};
186
189
  padding: ${size[2]};
187
190
  `,
188
191
  detailSectionHeader: css`
189
192
  font-size: ${fontSize.sm};
190
193
  font-weight: ${font.weight.bold};
191
- color: ${colors.gray[200]};
194
+ color: ${t(colors.gray[800], colors.gray[200])};
192
195
  margin-bottom: ${size[1]};
193
196
  text-transform: uppercase;
194
197
  letter-spacing: 0.04em;
@@ -204,9 +207,9 @@ const stylesFactory = () => {
204
207
  gap: ${size[1]};
205
208
  padding: ${size[1]} ${size[2]};
206
209
  border-radius: ${border.radius.md};
207
- border: 1px solid ${colors.darkGray[500]};
208
- background: ${colors.darkGray[600]};
209
- color: ${colors.gray[100]};
210
+ border: 1px solid ${t(colors.gray[300], colors.darkGray[500])};
211
+ background: ${t(colors.gray[200], colors.darkGray[600])};
212
+ color: ${t(colors.gray[900], colors.gray[100])};
210
213
  font-size: ${fontSize.xs};
211
214
  cursor: pointer;
212
215
  user-select: none;
@@ -214,15 +217,15 @@ const stylesFactory = () => {
214
217
  background 0.15s,
215
218
  border-color 0.15s;
216
219
  &:hover {
217
- background: ${colors.darkGray[500]};
218
- border-color: ${colors.darkGray[400]};
220
+ background: ${t(colors.gray[300], colors.darkGray[500])};
221
+ border-color: ${t(colors.gray[400], colors.darkGray[400])};
219
222
  }
220
223
  &:disabled {
221
224
  opacity: 0.5;
222
225
  cursor: not-allowed;
223
226
  &:hover {
224
- background: ${colors.darkGray[600]};
225
- border-color: ${colors.darkGray[500]};
227
+ background: ${t(colors.gray[200], colors.darkGray[600])};
228
+ border-color: ${t(colors.gray[300], colors.darkGray[500])};
226
229
  }
227
230
  }
228
231
  `,
@@ -270,7 +273,7 @@ const stylesFactory = () => {
270
273
  align-items: center;
271
274
  `,
272
275
  infoLabel: css`
273
- color: ${colors.gray[400]};
276
+ color: ${t(colors.gray[600], colors.gray[400])};
274
277
  font-size: ${fontSize.xs};
275
278
  text-transform: uppercase;
276
279
  letter-spacing: 0.05em;
@@ -278,7 +281,7 @@ const stylesFactory = () => {
278
281
  infoValueMono: css`
279
282
  font-family: ${fontFamily.mono};
280
283
  font-size: ${fontSize.xs};
281
- color: ${colors.gray[100]};
284
+ color: ${t(colors.gray[900], colors.gray[100])};
282
285
  word-break: break-all;
283
286
  `,
284
287
  noSelection: css`
@@ -286,7 +289,7 @@ const stylesFactory = () => {
286
289
  display: flex;
287
290
  align-items: center;
288
291
  justify-content: center;
289
- color: ${colors.gray[500]};
292
+ color: ${t(colors.gray[500], colors.gray[500])};
290
293
  font-style: italic;
291
294
  text-align: center;
292
295
  padding: ${size[4]};
@@ -298,12 +301,14 @@ const stylesFactory = () => {
298
301
  gap: ${size[4]};
299
302
  `,
300
303
  section: css`
301
- background: ${colors.darkGray[800]};
304
+ background: ${t(colors.gray[100], colors.darkGray[800])};
302
305
  border-radius: ${border.radius.lg};
303
- box-shadow: ${tokens.shadow.md(colors.black + alpha[80])};
306
+ box-shadow: ${tokens.shadow.md(
307
+ t(colors.gray[400] + alpha[80], colors.black + alpha[80])
308
+ )};
304
309
  padding: ${size[4]};
305
310
  margin-bottom: ${size[4]};
306
- border: 1px solid ${colors.darkGray[700]};
311
+ border: 1px solid ${t(colors.gray[200], colors.darkGray[700])};
307
312
  min-width: 0;
308
313
  max-width: 33%;
309
314
  max-height: fit-content;
@@ -312,14 +317,14 @@ const stylesFactory = () => {
312
317
  font-size: ${fontSize.lg};
313
318
  font-weight: ${font.weight.bold};
314
319
  margin-bottom: ${size[2]};
315
- color: ${colors.blue[400]};
320
+ color: ${t(colors.blue[600], colors.blue[400])};
316
321
  letter-spacing: 0.01em;
317
322
  display: flex;
318
323
  align-items: center;
319
324
  gap: ${size[2]};
320
325
  `,
321
326
  sectionEmpty: css`
322
- color: ${colors.gray[500]};
327
+ color: ${t(colors.gray[500], colors.gray[500])};
323
328
  font-size: ${fontSize.sm};
324
329
  font-style: italic;
325
330
  margin: ${size[2]} 0;
@@ -328,14 +333,16 @@ const stylesFactory = () => {
328
333
  display: flex;
329
334
  flex-direction: column;
330
335
  gap: ${size[2]};
336
+ background: ${t(colors.gray[200], colors.darkGray[700])};
337
+ border: 1px solid ${t(colors.gray[300], colors.darkGray[600])};
331
338
  `,
332
339
  instanceCard: css`
333
- background: ${colors.darkGray[700]};
340
+ background: ${t(colors.gray[200], colors.darkGray[700])};
334
341
  border-radius: ${border.radius.md};
335
342
  padding: ${size[3]};
336
- border: 1px solid ${colors.darkGray[600]};
343
+ border: 1px solid ${t(colors.gray[300], colors.darkGray[600])};
337
344
  font-size: ${fontSize.sm};
338
- color: ${colors.gray[100]};
345
+ color: ${t(colors.gray[900], colors.gray[100])};
339
346
  font-family: ${fontFamily.mono};
340
347
  overflow-x: auto;
341
348
  transition:
@@ -345,8 +352,12 @@ const stylesFactory = () => {
345
352
  };
346
353
  };
347
354
  function useStyles() {
348
- const [_styles] = createSignal(stylesFactory());
349
- return _styles;
355
+ const { theme } = useTheme();
356
+ const [styles, setStyles] = createSignal(stylesFactory(theme()));
357
+ createEffect(() => {
358
+ setStyles(stylesFactory(theme()));
359
+ });
360
+ return styles;
350
361
  }
351
362
  export {
352
363
  useStyles
@@ -1 +1 @@
1
- {"version":3,"file":"use-styles.js","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 mainContainer: css`\n display: flex;\n flex: 1;\n min-height: 0;\n overflow: hidden;\n padding: ${size[2]};\n padding-top: 0;\n margin-top: ${size[2]};\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":[],"mappings":"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"}
1
+ {"version":3,"file":"use-styles.js","sources":["../../../src/styles/use-styles.ts"],"sourcesContent":["import * as goober from 'goober'\nimport { createEffect, createSignal } from 'solid-js'\nimport { useTheme } from '@tanstack/devtools-ui'\nimport { tokens } from './tokens'\n\nconst stylesFactory = (theme: 'light' | 'dark') => {\n const { colors, font, size, alpha, border } = tokens\n const { fontFamily, size: fontSize } = font\n const css = goober.css\n const t = (light: string, dark: string) => (theme === 'light' ? light : dark)\n\n return {\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 margin-top: ${size[2]};\n `,\n dragHandle: css`\n width: 8px;\n background: ${t(colors.gray[300], 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: ${t(colors.blue[600], colors.blue[500])};\n margin: 0 ${size[1]};\n }\n\n &.dragging {\n background: ${t(colors.blue[700], 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: ${t(colors.gray[400], colors.darkGray[400])};\n border-radius: 1px;\n pointer-events: none;\n }\n\n &:hover::after,\n &.dragging::after {\n background: ${t(colors.blue[500], colors.blue[300])};\n }\n `,\n leftPanel: css`\n background: ${t(colors.gray[100], colors.darkGray[800])};\n border-radius: ${border.radius.lg};\n border: 1px solid ${t(colors.gray[200], 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: ${t(colors.gray[100], colors.darkGray[800])};\n border-radius: ${border.radius.lg};\n border: 1px solid ${t(colors.gray[200], 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: ${t(colors.blue[700], colors.blue[400])};\n padding: ${size[2]};\n border-bottom: 1px solid ${t(colors.gray[200], colors.darkGray[700])};\n background: ${t(colors.gray[100], 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: ${t(colors.gray[600], 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: ${t(colors.gray[200], 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: ${t(colors.gray[200], 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: ${t(colors.gray[300], colors.darkGray[600])};\n border-color: ${t(colors.gray[400], colors.darkGray[500])};\n }\n `,\n utilRowSelected: css`\n background: ${t(colors.blue[100], colors.blue[900] + alpha[20])};\n border-color: ${t(colors.blue[600], colors.blue[500])};\n box-shadow: 0 0 0 1px\n ${t(colors.blue[600] + alpha[30], colors.blue[500] + alpha[30])};\n `,\n utilKey: css`\n font-family: ${fontFamily.mono};\n font-size: ${fontSize.xs};\n color: ${t(colors.gray[900], 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: ${t(colors.gray[600], colors.gray[400])};\n text-transform: uppercase;\n letter-spacing: 0.05em;\n padding: ${size[1]} ${size[1]};\n background: ${t(colors.gray[300], 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 ${t(colors.gray[200], colors.darkGray[700])};\n `,\n stateTitle: css`\n font-size: ${fontSize.md};\n font-weight: ${font.weight.bold};\n color: ${t(colors.blue[700], colors.blue[400])};\n margin-bottom: ${size[1]};\n `,\n stateKey: css`\n font-family: ${fontFamily.mono};\n font-size: ${fontSize.xs};\n color: ${t(colors.gray[600], colors.gray[400])};\n word-break: break-all;\n `,\n stateContent: css`\n background: ${t(colors.gray[100], colors.darkGray[700])};\n border-radius: ${border.radius.md};\n padding: ${size[2]};\n border: 1px solid ${t(colors.gray[300], 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: ${t(colors.white, colors.darkGray[700])};\n border: 1px solid ${t(colors.gray[300], 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: ${t(colors.gray[800], 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 ${t(colors.gray[300], colors.darkGray[500])};\n background: ${t(colors.gray[200], colors.darkGray[600])};\n color: ${t(colors.gray[900], 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: ${t(colors.gray[300], colors.darkGray[500])};\n border-color: ${t(colors.gray[400], colors.darkGray[400])};\n }\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n &:hover {\n background: ${t(colors.gray[200], colors.darkGray[600])};\n border-color: ${t(colors.gray[300], 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: ${t(colors.gray[600], 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: ${t(colors.gray[900], 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: ${t(colors.gray[500], 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: ${t(colors.gray[100], colors.darkGray[800])};\n border-radius: ${border.radius.lg};\n box-shadow: ${tokens.shadow.md(\n t(colors.gray[400] + alpha[80], colors.black + alpha[80]),\n )};\n padding: ${size[4]};\n margin-bottom: ${size[4]};\n border: 1px solid ${t(colors.gray[200], 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: ${t(colors.blue[600], 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: ${t(colors.gray[500], 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 background: ${t(colors.gray[200], colors.darkGray[700])};\n border: 1px solid ${t(colors.gray[300], colors.darkGray[600])};\n `,\n instanceCard: css`\n background: ${t(colors.gray[200], colors.darkGray[700])};\n border-radius: ${border.radius.md};\n padding: ${size[3]};\n border: 1px solid ${t(colors.gray[300], colors.darkGray[600])};\n font-size: ${fontSize.sm};\n color: ${t(colors.gray[900], 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 { theme } = useTheme()\n const [styles, setStyles] = createSignal(stylesFactory(theme()))\n createEffect(() => {\n setStyles(stylesFactory(theme()))\n })\n return styles\n}\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tanstack/pacer-devtools",
3
- "version": "0.2.0",
3
+ "version": "0.3.1",
4
4
  "description": "Devtools for Pacer.",
5
5
  "author": "Tanner Linsley",
6
6
  "license": "MIT",
@@ -52,10 +52,11 @@
52
52
  "@tanstack/pacer": ">=0.15.0"
53
53
  },
54
54
  "dependencies": {
55
- "@tanstack/devtools-ui": "^0.3.3",
56
- "@tanstack/solid-store": "^0.7.3",
55
+ "@tanstack/devtools-ui": "^0.3.5",
56
+ "@tanstack/devtools-utils": "^0.0.3",
57
+ "@tanstack/solid-store": "^0.7.7",
57
58
  "clsx": "^2.1.1",
58
- "dayjs": "^1.11.13",
59
+ "dayjs": "^1.11.18",
59
60
  "goober": "^2.1.16",
60
61
  "solid-js": "^1.9.9"
61
62
  },
package/src/core.tsx CHANGED
@@ -1,41 +1,10 @@
1
+ import { constructCoreClass } from '@tanstack/devtools-utils/solid'
1
2
  import { lazy } from 'solid-js'
2
- import { Portal, render } from 'solid-js/web'
3
3
 
4
- export interface PacerDevtoolsInit {}
5
-
6
- export class PacerDevtoolsCore {
7
- #isMounted = false
8
- #dispose?: () => void
9
- #Component: any
4
+ const Component = lazy(() => import('./PacerDevtools'))
10
5
 
11
- constructor(_init?: PacerDevtoolsInit | undefined) {}
12
-
13
- mount<T extends HTMLElement>(el: T) {
14
- if (this.#isMounted) {
15
- throw new Error('Devtools is already mounted')
16
- }
17
- const mountTo = el
18
- const dispose = render(() => {
19
- this.#Component = lazy(() => import('./PacerDevtools'))
20
- const Devtools = this.#Component
6
+ export interface PacerDevtoolsInit {}
21
7
 
22
- return (
23
- <Portal mount={mountTo}>
24
- <div style={{ height: '100%' }}>
25
- <Devtools />
26
- </div>
27
- </Portal>
28
- )
29
- }, mountTo)
30
- this.#isMounted = true
31
- this.#dispose = dispose
32
- }
8
+ const [PacerDevtoolsCore, PacerDevtoolsCoreNoOp] = constructCoreClass(Component)
33
9
 
34
- unmount() {
35
- if (!this.#isMounted) {
36
- throw new Error('Devtools is not mounted')
37
- }
38
- this.#dispose?.()
39
- this.#isMounted = false
40
- }
41
- }
10
+ export { PacerDevtoolsCore, PacerDevtoolsCoreNoOp }
package/src/index.ts CHANGED
@@ -2,16 +2,9 @@
2
2
 
3
3
  import * as Devtools from './core'
4
4
 
5
- // Create a dummy class for production that does nothing
6
- class DummyPacerDevtoolsCore {
7
- constructor() {}
8
- mount() {}
9
- unmount() {}
10
- }
11
-
12
- export const PacerDevtoolsCore: (typeof Devtools)['PacerDevtoolsCore'] =
5
+ export const PacerDevtoolsCore =
13
6
  process.env.NODE_ENV !== 'development'
14
- ? (DummyPacerDevtoolsCore as any)
7
+ ? Devtools.PacerDevtoolsCoreNoOp
15
8
  : Devtools.PacerDevtoolsCore
16
9
 
17
10
  export type { PacerDevtoolsInit } from './core'
package/src/production.ts CHANGED
@@ -1,7 +1,5 @@
1
1
  'use client'
2
2
 
3
- import * as Devtools from './core'
4
-
5
- export const PacerDevtoolsCore = Devtools.PacerDevtoolsCore
3
+ export { PacerDevtoolsCore } from './core'
6
4
 
7
5
  export type { PacerDevtoolsInit } from './core'