@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
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'
@@ -1,40 +1,15 @@
1
1
  import * as goober from 'goober'
2
- import { createSignal } from 'solid-js'
2
+ import { createEffect, createSignal } from 'solid-js'
3
+ import { useTheme } from '@tanstack/devtools-ui'
3
4
  import { tokens } from './tokens'
4
5
 
5
- const stylesFactory = () => {
6
+ const stylesFactory = (theme: 'light' | 'dark') => {
6
7
  const { colors, font, size, alpha, border } = tokens
7
8
  const { fontFamily, size: fontSize } = font
8
9
  const css = goober.css
10
+ const t = (light: string, dark: string) => (theme === 'light' ? light : dark)
9
11
 
10
12
  return {
11
- devtoolsPanel: css`
12
- background: ${colors.darkGray[900]};
13
- color: ${colors.gray[100]};
14
- font-family: ${fontFamily.sans};
15
- font-size: ${fontSize.sm};
16
- box-sizing: border-box;
17
- display: flex;
18
- flex-direction: column;
19
- width: 100%;
20
- height: 100%;
21
- overflow: hidden;
22
- `,
23
- stickyHeader: css`
24
- position: sticky;
25
- top: 0;
26
- z-index: 10;
27
- background: ${colors.darkGray[900]};
28
- padding: ${size[2]};
29
- font-size: ${fontSize.lg};
30
- font-weight: ${font.weight.bold};
31
- color: #84cc16;
32
- letter-spacing: 0.04em;
33
- text-transform: uppercase;
34
- border-bottom: 1px solid ${colors.darkGray[700]};
35
- box-shadow: 0 2px 8px 0 ${colors.black + alpha[40]};
36
- flex-shrink: 0;
37
- `,
38
13
  mainContainer: css`
39
14
  display: flex;
40
15
  flex: 1;
@@ -42,10 +17,11 @@ const stylesFactory = () => {
42
17
  overflow: hidden;
43
18
  padding: ${size[2]};
44
19
  padding-top: 0;
20
+ margin-top: ${size[2]};
45
21
  `,
46
22
  dragHandle: css`
47
23
  width: 8px;
48
- background: ${colors.darkGray[600]};
24
+ background: ${t(colors.gray[300], colors.darkGray[600])};
49
25
  cursor: col-resize;
50
26
  position: relative;
51
27
  transition: all 0.2s ease;
@@ -55,12 +31,12 @@ const stylesFactory = () => {
55
31
  border-radius: 2px;
56
32
 
57
33
  &:hover {
58
- background: ${colors.blue[500]};
34
+ background: ${t(colors.blue[600], colors.blue[500])};
59
35
  margin: 0 ${size[1]};
60
36
  }
61
37
 
62
38
  &.dragging {
63
- background: ${colors.blue[600]};
39
+ background: ${t(colors.blue[700], colors.blue[600])};
64
40
  margin: 0 ${size[1]};
65
41
  }
66
42
 
@@ -72,20 +48,20 @@ const stylesFactory = () => {
72
48
  transform: translate(-50%, -50%);
73
49
  width: 2px;
74
50
  height: 20px;
75
- background: ${colors.darkGray[400]};
51
+ background: ${t(colors.gray[400], colors.darkGray[400])};
76
52
  border-radius: 1px;
77
53
  pointer-events: none;
78
54
  }
79
55
 
80
56
  &:hover::after,
81
57
  &.dragging::after {
82
- background: ${colors.blue[300]};
58
+ background: ${t(colors.blue[500], colors.blue[300])};
83
59
  }
84
60
  `,
85
61
  leftPanel: css`
86
- background: ${colors.darkGray[800]};
62
+ background: ${t(colors.gray[100], colors.darkGray[800])};
87
63
  border-radius: ${border.radius.lg};
88
- border: 1px solid ${colors.darkGray[700]};
64
+ border: 1px solid ${t(colors.gray[200], colors.darkGray[700])};
89
65
  display: flex;
90
66
  flex-direction: column;
91
67
  overflow: hidden;
@@ -93,9 +69,9 @@ const stylesFactory = () => {
93
69
  flex-shrink: 0;
94
70
  `,
95
71
  rightPanel: css`
96
- background: ${colors.darkGray[800]};
72
+ background: ${t(colors.gray[100], colors.darkGray[800])};
97
73
  border-radius: ${border.radius.lg};
98
- border: 1px solid ${colors.darkGray[700]};
74
+ border: 1px solid ${t(colors.gray[200], colors.darkGray[700])};
99
75
  display: flex;
100
76
  flex-direction: column;
101
77
  overflow: hidden;
@@ -105,10 +81,10 @@ const stylesFactory = () => {
105
81
  panelHeader: css`
106
82
  font-size: ${fontSize.md};
107
83
  font-weight: ${font.weight.bold};
108
- color: ${colors.blue[400]};
84
+ color: ${t(colors.blue[700], colors.blue[400])};
109
85
  padding: ${size[2]};
110
- border-bottom: 1px solid ${colors.darkGray[700]};
111
- background: ${colors.darkGray[800]};
86
+ border-bottom: 1px solid ${t(colors.gray[200], colors.darkGray[700])};
87
+ background: ${t(colors.gray[100], colors.darkGray[800])};
112
88
  flex-shrink: 0;
113
89
  `,
114
90
  utilList: css`
@@ -123,12 +99,12 @@ const stylesFactory = () => {
123
99
  utilGroupHeader: css`
124
100
  font-size: ${fontSize.xs};
125
101
  font-weight: ${font.weight.semibold};
126
- color: ${colors.gray[400]};
102
+ color: ${t(colors.gray[600], colors.gray[400])};
127
103
  text-transform: uppercase;
128
104
  letter-spacing: 0.05em;
129
105
  margin-bottom: ${size[1]};
130
106
  padding: ${size[1]} ${size[2]};
131
- background: ${colors.darkGray[700]};
107
+ background: ${t(colors.gray[200], colors.darkGray[700])};
132
108
  border-radius: ${border.radius.md};
133
109
  `,
134
110
  utilRow: css`
@@ -137,26 +113,27 @@ const stylesFactory = () => {
137
113
  align-items: center;
138
114
  padding: ${size[2]};
139
115
  margin-bottom: ${size[1]};
140
- background: ${colors.darkGray[700]};
116
+ background: ${t(colors.gray[200], colors.darkGray[700])};
141
117
  border-radius: ${border.radius.md};
142
118
  cursor: pointer;
143
119
  transition: all 0.2s ease;
144
120
  border: 1px solid transparent;
145
121
 
146
122
  &:hover {
147
- background: ${colors.darkGray[600]};
148
- border-color: ${colors.darkGray[500]};
123
+ background: ${t(colors.gray[300], colors.darkGray[600])};
124
+ border-color: ${t(colors.gray[400], colors.darkGray[500])};
149
125
  }
150
126
  `,
151
127
  utilRowSelected: css`
152
- background: ${colors.blue[900] + alpha[20]};
153
- border-color: ${colors.blue[500]};
154
- box-shadow: 0 0 0 1px ${colors.blue[500] + alpha[30]};
128
+ background: ${t(colors.blue[100], colors.blue[900] + alpha[20])};
129
+ border-color: ${t(colors.blue[600], colors.blue[500])};
130
+ box-shadow: 0 0 0 1px
131
+ ${t(colors.blue[600] + alpha[30], colors.blue[500] + alpha[30])};
155
132
  `,
156
133
  utilKey: css`
157
134
  font-family: ${fontFamily.mono};
158
135
  font-size: ${fontSize.xs};
159
- color: ${colors.gray[100]};
136
+ color: ${t(colors.gray[900], colors.gray[100])};
160
137
  flex: 1;
161
138
  overflow: hidden;
162
139
  text-overflow: ellipsis;
@@ -164,11 +141,11 @@ const stylesFactory = () => {
164
141
  `,
165
142
  utilStatus: css`
166
143
  font-size: ${fontSize.xs};
167
- color: ${colors.gray[400]};
144
+ color: ${t(colors.gray[600], colors.gray[400])};
168
145
  text-transform: uppercase;
169
146
  letter-spacing: 0.05em;
170
147
  padding: ${size[1]} ${size[1]};
171
- background: ${colors.darkGray[600]};
148
+ background: ${t(colors.gray[300], colors.darkGray[600])};
172
149
  border-radius: ${border.radius.sm};
173
150
  margin-left: ${size[1]};
174
151
  `,
@@ -181,25 +158,25 @@ const stylesFactory = () => {
181
158
  stateHeader: css`
182
159
  margin-bottom: ${size[2]};
183
160
  padding-bottom: ${size[2]};
184
- border-bottom: 1px solid ${colors.darkGray[700]};
161
+ border-bottom: 1px solid ${t(colors.gray[200], colors.darkGray[700])};
185
162
  `,
186
163
  stateTitle: css`
187
164
  font-size: ${fontSize.md};
188
165
  font-weight: ${font.weight.bold};
189
- color: ${colors.blue[400]};
166
+ color: ${t(colors.blue[700], colors.blue[400])};
190
167
  margin-bottom: ${size[1]};
191
168
  `,
192
169
  stateKey: css`
193
170
  font-family: ${fontFamily.mono};
194
171
  font-size: ${fontSize.xs};
195
- color: ${colors.gray[400]};
172
+ color: ${t(colors.gray[600], colors.gray[400])};
196
173
  word-break: break-all;
197
174
  `,
198
175
  stateContent: css`
199
- background: ${colors.darkGray[700]};
176
+ background: ${t(colors.gray[100], colors.darkGray[700])};
200
177
  border-radius: ${border.radius.md};
201
178
  padding: ${size[2]};
202
- border: 1px solid ${colors.darkGray[600]};
179
+ border: 1px solid ${t(colors.gray[300], colors.darkGray[600])};
203
180
  `,
204
181
  detailsGrid: css`
205
182
  display: grid;
@@ -208,15 +185,15 @@ const stylesFactory = () => {
208
185
  align-items: start;
209
186
  `,
210
187
  detailSection: css`
211
- background: ${colors.darkGray[700]};
212
- border: 1px solid ${colors.darkGray[600]};
188
+ background: ${t(colors.white, colors.darkGray[700])};
189
+ border: 1px solid ${t(colors.gray[300], colors.darkGray[600])};
213
190
  border-radius: ${border.radius.md};
214
191
  padding: ${size[2]};
215
192
  `,
216
193
  detailSectionHeader: css`
217
194
  font-size: ${fontSize.sm};
218
195
  font-weight: ${font.weight.bold};
219
- color: ${colors.gray[200]};
196
+ color: ${t(colors.gray[800], colors.gray[200])};
220
197
  margin-bottom: ${size[1]};
221
198
  text-transform: uppercase;
222
199
  letter-spacing: 0.04em;
@@ -232,9 +209,9 @@ const stylesFactory = () => {
232
209
  gap: ${size[1]};
233
210
  padding: ${size[1]} ${size[2]};
234
211
  border-radius: ${border.radius.md};
235
- border: 1px solid ${colors.darkGray[500]};
236
- background: ${colors.darkGray[600]};
237
- color: ${colors.gray[100]};
212
+ border: 1px solid ${t(colors.gray[300], colors.darkGray[500])};
213
+ background: ${t(colors.gray[200], colors.darkGray[600])};
214
+ color: ${t(colors.gray[900], colors.gray[100])};
238
215
  font-size: ${fontSize.xs};
239
216
  cursor: pointer;
240
217
  user-select: none;
@@ -242,15 +219,15 @@ const stylesFactory = () => {
242
219
  background 0.15s,
243
220
  border-color 0.15s;
244
221
  &:hover {
245
- background: ${colors.darkGray[500]};
246
- border-color: ${colors.darkGray[400]};
222
+ background: ${t(colors.gray[300], colors.darkGray[500])};
223
+ border-color: ${t(colors.gray[400], colors.darkGray[400])};
247
224
  }
248
225
  &:disabled {
249
226
  opacity: 0.5;
250
227
  cursor: not-allowed;
251
228
  &:hover {
252
- background: ${colors.darkGray[600]};
253
- border-color: ${colors.darkGray[500]};
229
+ background: ${t(colors.gray[200], colors.darkGray[600])};
230
+ border-color: ${t(colors.gray[300], colors.darkGray[500])};
254
231
  }
255
232
  }
256
233
  `,
@@ -298,7 +275,7 @@ const stylesFactory = () => {
298
275
  align-items: center;
299
276
  `,
300
277
  infoLabel: css`
301
- color: ${colors.gray[400]};
278
+ color: ${t(colors.gray[600], colors.gray[400])};
302
279
  font-size: ${fontSize.xs};
303
280
  text-transform: uppercase;
304
281
  letter-spacing: 0.05em;
@@ -306,7 +283,7 @@ const stylesFactory = () => {
306
283
  infoValueMono: css`
307
284
  font-family: ${fontFamily.mono};
308
285
  font-size: ${fontSize.xs};
309
- color: ${colors.gray[100]};
286
+ color: ${t(colors.gray[900], colors.gray[100])};
310
287
  word-break: break-all;
311
288
  `,
312
289
  noSelection: css`
@@ -314,7 +291,7 @@ const stylesFactory = () => {
314
291
  display: flex;
315
292
  align-items: center;
316
293
  justify-content: center;
317
- color: ${colors.gray[500]};
294
+ color: ${t(colors.gray[500], colors.gray[500])};
318
295
  font-style: italic;
319
296
  text-align: center;
320
297
  padding: ${size[4]};
@@ -326,12 +303,14 @@ const stylesFactory = () => {
326
303
  gap: ${size[4]};
327
304
  `,
328
305
  section: css`
329
- background: ${colors.darkGray[800]};
306
+ background: ${t(colors.gray[100], colors.darkGray[800])};
330
307
  border-radius: ${border.radius.lg};
331
- box-shadow: ${tokens.shadow.md(colors.black + alpha[80])};
308
+ box-shadow: ${tokens.shadow.md(
309
+ t(colors.gray[400] + alpha[80], colors.black + alpha[80]),
310
+ )};
332
311
  padding: ${size[4]};
333
312
  margin-bottom: ${size[4]};
334
- border: 1px solid ${colors.darkGray[700]};
313
+ border: 1px solid ${t(colors.gray[200], colors.darkGray[700])};
335
314
  min-width: 0;
336
315
  max-width: 33%;
337
316
  max-height: fit-content;
@@ -340,14 +319,14 @@ const stylesFactory = () => {
340
319
  font-size: ${fontSize.lg};
341
320
  font-weight: ${font.weight.bold};
342
321
  margin-bottom: ${size[2]};
343
- color: ${colors.blue[400]};
322
+ color: ${t(colors.blue[600], colors.blue[400])};
344
323
  letter-spacing: 0.01em;
345
324
  display: flex;
346
325
  align-items: center;
347
326
  gap: ${size[2]};
348
327
  `,
349
328
  sectionEmpty: css`
350
- color: ${colors.gray[500]};
329
+ color: ${t(colors.gray[500], colors.gray[500])};
351
330
  font-size: ${fontSize.sm};
352
331
  font-style: italic;
353
332
  margin: ${size[2]} 0;
@@ -356,14 +335,16 @@ const stylesFactory = () => {
356
335
  display: flex;
357
336
  flex-direction: column;
358
337
  gap: ${size[2]};
338
+ background: ${t(colors.gray[200], colors.darkGray[700])};
339
+ border: 1px solid ${t(colors.gray[300], colors.darkGray[600])};
359
340
  `,
360
341
  instanceCard: css`
361
- background: ${colors.darkGray[700]};
342
+ background: ${t(colors.gray[200], colors.darkGray[700])};
362
343
  border-radius: ${border.radius.md};
363
344
  padding: ${size[3]};
364
- border: 1px solid ${colors.darkGray[600]};
345
+ border: 1px solid ${t(colors.gray[300], colors.darkGray[600])};
365
346
  font-size: ${fontSize.sm};
366
- color: ${colors.gray[100]};
347
+ color: ${t(colors.gray[900], colors.gray[100])};
367
348
  font-family: ${fontFamily.mono};
368
349
  overflow-x: auto;
369
350
  transition:
@@ -374,6 +355,10 @@ const stylesFactory = () => {
374
355
  }
375
356
 
376
357
  export function useStyles() {
377
- const [_styles] = createSignal(stylesFactory())
378
- return _styles
358
+ const { theme } = useTheme()
359
+ const [styles, setStyles] = createSignal(stylesFactory(theme()))
360
+ createEffect(() => {
361
+ setStyles(stylesFactory(theme()))
362
+ })
363
+ return styles
379
364
  }
@@ -1,156 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const web = require("solid-js/web");
4
- const store = require("solid-js/store");
5
- const solidJs = require("solid-js");
6
- const eventClient = require("@tanstack/pacer/event-client");
7
- const initialPacerDevtoolsStore = {
8
- asyncBatchers: [],
9
- asyncDebouncers: [],
10
- asyncQueuers: [],
11
- asyncRateLimiters: [],
12
- asyncThrottlers: [],
13
- batchers: [],
14
- debouncers: [],
15
- queuers: [],
16
- rateLimiters: [],
17
- throttlers: [],
18
- lastUpdatedByKey: {}
19
- };
20
- const PacerDevtoolsContext = solidJs.createContext([initialPacerDevtoolsStore, () => {
21
- }]);
22
- const updateOrAddToArray = (oldArray, newItem) => {
23
- const index = oldArray.findIndex((item) => item.key === newItem.key);
24
- if (index !== -1) {
25
- return oldArray.map((item, i) => i === index ? newItem : item);
26
- }
27
- return [...oldArray, newItem];
28
- };
29
- function PacerContextProvider(props) {
30
- const [store$1, setStore] = store.createStore(initialPacerDevtoolsStore);
31
- solidJs.createEffect(() => {
32
- const cleanup = eventClient.pacerEventClient.onAllPluginEvents((_e) => {
33
- const e = _e;
34
- switch (e.type) {
35
- case "pacer:AsyncBatcher": {
36
- setStore({
37
- asyncBatchers: updateOrAddToArray(store$1.asyncBatchers, e.payload),
38
- lastUpdatedByKey: {
39
- ...store$1.lastUpdatedByKey,
40
- [e.payload.key]: Date.now()
41
- }
42
- });
43
- break;
44
- }
45
- case "pacer:AsyncDebouncer": {
46
- setStore({
47
- asyncDebouncers: updateOrAddToArray(store$1.asyncDebouncers, e.payload),
48
- lastUpdatedByKey: {
49
- ...store$1.lastUpdatedByKey,
50
- [e.payload.key]: Date.now()
51
- }
52
- });
53
- break;
54
- }
55
- case "pacer:AsyncQueuer": {
56
- setStore({
57
- asyncQueuers: updateOrAddToArray(store$1.asyncQueuers, e.payload),
58
- lastUpdatedByKey: {
59
- ...store$1.lastUpdatedByKey,
60
- [e.payload.key]: Date.now()
61
- }
62
- });
63
- break;
64
- }
65
- case "pacer:AsyncRateLimiter": {
66
- setStore({
67
- asyncRateLimiters: updateOrAddToArray(store$1.asyncRateLimiters, e.payload),
68
- lastUpdatedByKey: {
69
- ...store$1.lastUpdatedByKey,
70
- [e.payload.key]: Date.now()
71
- }
72
- });
73
- break;
74
- }
75
- case "pacer:AsyncThrottler": {
76
- setStore({
77
- asyncThrottlers: updateOrAddToArray(store$1.asyncThrottlers, e.payload),
78
- lastUpdatedByKey: {
79
- ...store$1.lastUpdatedByKey,
80
- [e.payload.key]: Date.now()
81
- }
82
- });
83
- break;
84
- }
85
- case "pacer:Batcher": {
86
- setStore({
87
- batchers: updateOrAddToArray(store$1.batchers, e.payload),
88
- lastUpdatedByKey: {
89
- ...store$1.lastUpdatedByKey,
90
- [e.payload.key]: Date.now()
91
- }
92
- });
93
- break;
94
- }
95
- case "pacer:Debouncer": {
96
- setStore({
97
- debouncers: updateOrAddToArray(store$1.debouncers, e.payload),
98
- lastUpdatedByKey: {
99
- ...store$1.lastUpdatedByKey,
100
- [e.payload.key]: Date.now()
101
- }
102
- });
103
- break;
104
- }
105
- case "pacer:Queuer": {
106
- setStore({
107
- queuers: updateOrAddToArray(store$1.queuers, e.payload),
108
- lastUpdatedByKey: {
109
- ...store$1.lastUpdatedByKey,
110
- [e.payload.key]: Date.now()
111
- }
112
- });
113
- break;
114
- }
115
- case "pacer:RateLimiter": {
116
- setStore({
117
- rateLimiters: updateOrAddToArray(store$1.rateLimiters, e.payload),
118
- lastUpdatedByKey: {
119
- ...store$1.lastUpdatedByKey,
120
- [e.payload.key]: Date.now()
121
- }
122
- });
123
- break;
124
- }
125
- case "pacer:Throttler": {
126
- setStore({
127
- throttlers: updateOrAddToArray(store$1.throttlers, e.payload),
128
- lastUpdatedByKey: {
129
- ...store$1.lastUpdatedByKey,
130
- [e.payload.key]: Date.now()
131
- }
132
- });
133
- break;
134
- }
135
- }
136
- });
137
- solidJs.onCleanup(cleanup);
138
- });
139
- return web.createComponent(PacerDevtoolsContext.Provider, {
140
- value: [store$1, setStore],
141
- get children() {
142
- return props.children;
143
- }
144
- });
145
- }
146
- const usePacerDevtoolsContext = () => {
147
- const context = solidJs.useContext(PacerDevtoolsContext);
148
- return context;
149
- };
150
- const usePacerDevtoolsState = () => {
151
- const [state] = usePacerDevtoolsContext();
152
- return state;
153
- };
154
- exports.PacerContextProvider = PacerContextProvider;
155
- exports.usePacerDevtoolsState = usePacerDevtoolsState;
156
- //# sourceMappingURL=PacerContextProvider.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PacerContextProvider.cjs","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,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,13 +0,0 @@
1
- "use strict";
2
- const web = require("solid-js/web");
3
- const PacerContextProvider = require("./PacerContextProvider.cjs");
4
- const Shell = require("./components/Shell.cjs");
5
- function PacerDevtools() {
6
- return web.createComponent(PacerContextProvider.PacerContextProvider, {
7
- get children() {
8
- return web.createComponent(Shell.Shell, {});
9
- }
10
- });
11
- }
12
- module.exports = PacerDevtools;
13
- //# sourceMappingURL=PacerDevtools.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PacerDevtools.cjs","sources":["../../src/PacerDevtools.tsx"],"sourcesContent":["import { PacerContextProvider } from './PacerContextProvider'\nimport { Shell } from './components/Shell'\n\nexport default function PacerDevtools() {\n return (\n <PacerContextProvider>\n <Shell />\n </PacerContextProvider>\n )\n}\n"],"names":["PacerDevtools","_$createComponent","PacerContextProvider","children","Shell"],"mappings":";;;;AAGA,SAAwBA,gBAAgB;AACtC,SAAAC,IAAAA,gBACGC,qBAAAA,sBAAoB;AAAA,IAAA,IAAAC,WAAA;AAAA,aAAAF,IAAAA,gBAClBG,MAAAA,OAAK,EAAA;AAAA,IAAA;AAAA,EAAA,CAAA;AAGZ;;"}
@@ -1 +0,0 @@
1
- export default function PacerDevtools(): import("solid-js").JSX.Element;