@tanstack/pacer-devtools 1.4.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,305 +0,0 @@
1
- export const tokens = {
2
- colors: {
3
- inherit: 'inherit',
4
- current: 'currentColor',
5
- transparent: 'transparent',
6
- black: '#000000',
7
- white: '#ffffff',
8
- neutral: {
9
- 50: '#f9fafb',
10
- 100: '#f2f4f7',
11
- 200: '#eaecf0',
12
- 300: '#d0d5dd',
13
- 400: '#98a2b3',
14
- 500: '#667085',
15
- 600: '#475467',
16
- 700: '#344054',
17
- 800: '#1d2939',
18
- 900: '#101828',
19
- },
20
- darkGray: {
21
- 50: '#525c7a',
22
- 100: '#49536e',
23
- 200: '#414962',
24
- 300: '#394056',
25
- 400: '#313749',
26
- 500: '#292e3d',
27
- 600: '#212530',
28
- 700: '#191c24',
29
- 800: '#111318',
30
- 900: '#0b0d10',
31
- },
32
- gray: {
33
- 50: '#f9fafb',
34
- 100: '#f2f4f7',
35
- 200: '#eaecf0',
36
- 300: '#d0d5dd',
37
- 400: '#98a2b3',
38
- 500: '#667085',
39
- 600: '#475467',
40
- 700: '#344054',
41
- 800: '#1d2939',
42
- 900: '#101828',
43
- },
44
- blue: {
45
- 25: '#F5FAFF',
46
- 50: '#EFF8FF',
47
- 100: '#D1E9FF',
48
- 200: '#B2DDFF',
49
- 300: '#84CAFF',
50
- 400: '#53B1FD',
51
- 500: '#2E90FA',
52
- 600: '#1570EF',
53
- 700: '#175CD3',
54
- 800: '#1849A9',
55
- 900: '#194185',
56
- },
57
- green: {
58
- 25: '#F6FEF9',
59
- 50: '#ECFDF3',
60
- 100: '#D1FADF',
61
- 200: '#A6F4C5',
62
- 300: '#6CE9A6',
63
- 400: '#32D583',
64
- 500: '#12B76A',
65
- 600: '#039855',
66
- 700: '#027A48',
67
- 800: '#05603A',
68
- 900: '#054F31',
69
- },
70
- red: {
71
- 50: '#fef2f2',
72
- 100: '#fee2e2',
73
- 200: '#fecaca',
74
- 300: '#fca5a5',
75
- 400: '#f87171',
76
- 500: '#ef4444',
77
- 600: '#dc2626',
78
- 700: '#b91c1c',
79
- 800: '#991b1b',
80
- 900: '#7f1d1d',
81
- 950: '#450a0a',
82
- },
83
- yellow: {
84
- 25: '#FFFCF5',
85
- 50: '#FFFAEB',
86
- 100: '#FEF0C7',
87
- 200: '#FEDF89',
88
- 300: '#FEC84B',
89
- 400: '#FDB022',
90
- 500: '#F79009',
91
- 600: '#DC6803',
92
- 700: '#B54708',
93
- 800: '#93370D',
94
- 900: '#7A2E0E',
95
- },
96
- purple: {
97
- 25: '#FAFAFF',
98
- 50: '#F4F3FF',
99
- 100: '#EBE9FE',
100
- 200: '#D9D6FE',
101
- 300: '#BDB4FE',
102
- 400: '#9B8AFB',
103
- 500: '#7A5AF8',
104
- 600: '#6938EF',
105
- 700: '#5925DC',
106
- 800: '#4A1FB8',
107
- 900: '#3E1C96',
108
- },
109
- teal: {
110
- 25: '#F6FEFC',
111
- 50: '#F0FDF9',
112
- 100: '#CCFBEF',
113
- 200: '#99F6E0',
114
- 300: '#5FE9D0',
115
- 400: '#2ED3B7',
116
- 500: '#15B79E',
117
- 600: '#0E9384',
118
- 700: '#107569',
119
- 800: '#125D56',
120
- 900: '#134E48',
121
- },
122
- pink: {
123
- 25: '#fdf2f8',
124
- 50: '#fce7f3',
125
- 100: '#fbcfe8',
126
- 200: '#f9a8d4',
127
- 300: '#f472b6',
128
- 400: '#ec4899',
129
- 500: '#db2777',
130
- 600: '#be185d',
131
- 700: '#9d174d',
132
- 800: '#831843',
133
- 900: '#500724',
134
- },
135
- cyan: {
136
- 25: '#ecfeff',
137
- 50: '#cffafe',
138
- 100: '#a5f3fc',
139
- 200: '#67e8f9',
140
- 300: '#22d3ee',
141
- 400: '#06b6d4',
142
- 500: '#0891b2',
143
- 600: '#0e7490',
144
- 700: '#155e75',
145
- 800: '#164e63',
146
- 900: '#083344',
147
- },
148
- },
149
- alpha: {
150
- 100: 'ff',
151
- 90: 'e5',
152
- 80: 'cc',
153
- 70: 'b3',
154
- 60: '99',
155
- 50: '80',
156
- 40: '66',
157
- 30: '4d',
158
- 20: '33',
159
- 10: '1a',
160
- 0: '00',
161
- },
162
- font: {
163
- size: {
164
- '2xs': 'calc(var(--tsrd-font-size) * 0.625)',
165
- xs: 'calc(var(--tsrd-font-size) * 0.75)',
166
- sm: 'calc(var(--tsrd-font-size) * 0.875)',
167
- md: 'var(--tsrd-font-size)',
168
- lg: 'calc(var(--tsrd-font-size) * 1.125)',
169
- xl: 'calc(var(--tsrd-font-size) * 1.25)',
170
- '2xl': 'calc(var(--tsrd-font-size) * 1.5)',
171
- '3xl': 'calc(var(--tsrd-font-size) * 1.875)',
172
- '4xl': 'calc(var(--tsrd-font-size) * 2.25)',
173
- '5xl': 'calc(var(--tsrd-font-size) * 3)',
174
- '6xl': 'calc(var(--tsrd-font-size) * 3.75)',
175
- '7xl': 'calc(var(--tsrd-font-size) * 4.5)',
176
- '8xl': 'calc(var(--tsrd-font-size) * 6)',
177
- '9xl': 'calc(var(--tsrd-font-size) * 8)',
178
- },
179
- lineHeight: {
180
- '3xs': 'calc(var(--tsrd-font-size) * 0.75)',
181
- '2xs': 'calc(var(--tsrd-font-size) * 0.875)',
182
- xs: 'calc(var(--tsrd-font-size) * 1)',
183
- sm: 'calc(var(--tsrd-font-size) * 1.25)',
184
- md: 'calc(var(--tsrd-font-size) * 1.5)',
185
- lg: 'calc(var(--tsrd-font-size) * 1.75)',
186
- xl: 'calc(var(--tsrd-font-size) * 2)',
187
- '2xl': 'calc(var(--tsrd-font-size) * 2.25)',
188
- '3xl': 'calc(var(--tsrd-font-size) * 2.5)',
189
- '4xl': 'calc(var(--tsrd-font-size) * 2.75)',
190
- '5xl': 'calc(var(--tsrd-font-size) * 3)',
191
- '6xl': 'calc(var(--tsrd-font-size) * 3.25)',
192
- '7xl': 'calc(var(--tsrd-font-size) * 3.5)',
193
- '8xl': 'calc(var(--tsrd-font-size) * 3.75)',
194
- '9xl': 'calc(var(--tsrd-font-size) * 4)',
195
- },
196
- weight: {
197
- thin: '100',
198
- extralight: '200',
199
- light: '300',
200
- normal: '400',
201
- medium: '500',
202
- semibold: '600',
203
- bold: '700',
204
- extrabold: '800',
205
- black: '900',
206
- },
207
- fontFamily: {
208
- sans: 'ui-sans-serif, Inter, system-ui, sans-serif, sans-serif',
209
- mono: `ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace`,
210
- },
211
- },
212
- breakpoints: {
213
- xs: '320px',
214
- sm: '640px',
215
- md: '768px',
216
- lg: '1024px',
217
- xl: '1280px',
218
- '2xl': '1536px',
219
- },
220
- border: {
221
- radius: {
222
- none: '0px',
223
- xs: 'calc(var(--tsrd-font-size) * 0.125)',
224
- sm: 'calc(var(--tsrd-font-size) * 0.25)',
225
- md: 'calc(var(--tsrd-font-size) * 0.375)',
226
- lg: 'calc(var(--tsrd-font-size) * 0.5)',
227
- xl: 'calc(var(--tsrd-font-size) * 0.75)',
228
- '2xl': 'calc(var(--tsrd-font-size) * 1)',
229
- '3xl': 'calc(var(--tsrd-font-size) * 1.5)',
230
- full: '9999px',
231
- },
232
- },
233
- size: {
234
- 0: '0px',
235
- 0.25: 'calc(var(--tsrd-font-size) * 0.0625)',
236
- 0.5: 'calc(var(--tsrd-font-size) * 0.125)',
237
- 1: 'calc(var(--tsrd-font-size) * 0.25)',
238
- 1.5: 'calc(var(--tsrd-font-size) * 0.375)',
239
- 2: 'calc(var(--tsrd-font-size) * 0.5)',
240
- 2.5: 'calc(var(--tsrd-font-size) * 0.625)',
241
- 3: 'calc(var(--tsrd-font-size) * 0.75)',
242
- 3.5: 'calc(var(--tsrd-font-size) * 0.875)',
243
- 4: 'calc(var(--tsrd-font-size) * 1)',
244
- 4.5: 'calc(var(--tsrd-font-size) * 1.125)',
245
- 5: 'calc(var(--tsrd-font-size) * 1.25)',
246
- 5.5: 'calc(var(--tsrd-font-size) * 1.375)',
247
- 6: 'calc(var(--tsrd-font-size) * 1.5)',
248
- 6.5: 'calc(var(--tsrd-font-size) * 1.625)',
249
- 7: 'calc(var(--tsrd-font-size) * 1.75)',
250
- 8: 'calc(var(--tsrd-font-size) * 2)',
251
- 9: 'calc(var(--tsrd-font-size) * 2.25)',
252
- 10: 'calc(var(--tsrd-font-size) * 2.5)',
253
- 11: 'calc(var(--tsrd-font-size) * 2.75)',
254
- 12: 'calc(var(--tsrd-font-size) * 3)',
255
- 14: 'calc(var(--tsrd-font-size) * 3.5)',
256
- 16: 'calc(var(--tsrd-font-size) * 4)',
257
- 20: 'calc(var(--tsrd-font-size) * 5)',
258
- 24: 'calc(var(--tsrd-font-size) * 6)',
259
- 28: 'calc(var(--tsrd-font-size) * 7)',
260
- 32: 'calc(var(--tsrd-font-size) * 8)',
261
- 36: 'calc(var(--tsrd-font-size) * 9)',
262
- 40: 'calc(var(--tsrd-font-size) * 10)',
263
- 44: 'calc(var(--tsrd-font-size) * 11)',
264
- 48: 'calc(var(--tsrd-font-size) * 12)',
265
- 52: 'calc(var(--tsrd-font-size) * 13)',
266
- 56: 'calc(var(--tsrd-font-size) * 14)',
267
- 60: 'calc(var(--tsrd-font-size) * 15)',
268
- 64: 'calc(var(--tsrd-font-size) * 16)',
269
- 72: 'calc(var(--tsrd-font-size) * 18)',
270
- 80: 'calc(var(--tsrd-font-size) * 20)',
271
- 96: 'calc(var(--tsrd-font-size) * 24)',
272
- },
273
- shadow: {
274
- xs: (_: string = 'rgb(0 0 0 / 0.1)') =>
275
- `0 1px 2px 0 rgb(0 0 0 / 0.05)` as const,
276
- sm: (color: string = 'rgb(0 0 0 / 0.1)') =>
277
- `0 1px 3px 0 ${color}, 0 1px 2px -1px ${color}` as const,
278
- md: (color: string = 'rgb(0 0 0 / 0.1)') =>
279
- `0 4px 6px -1px ${color}, 0 2px 4px -2px ${color}` as const,
280
- lg: (color: string = 'rgb(0 0 0 / 0.1)') =>
281
- `0 10px 15px -3px ${color}, 0 4px 6px -4px ${color}` as const,
282
- xl: (color: string = 'rgb(0 0 0 / 0.1)') =>
283
- `0 20px 25px -5px ${color}, 0 8px 10px -6px ${color}` as const,
284
- '2xl': (color: string = 'rgb(0 0 0 / 0.25)') =>
285
- `0 25px 50px -12px ${color}` as const,
286
- inner: (color: string = 'rgb(0 0 0 / 0.05)') =>
287
- `inset 0 2px 4px 0 ${color}` as const,
288
- none: () => `none` as const,
289
- },
290
- zIndices: {
291
- hide: -1,
292
- auto: 'auto',
293
- base: 0,
294
- docked: 10,
295
- dropdown: 1000,
296
- sticky: 1100,
297
- banner: 1200,
298
- overlay: 1300,
299
- modal: 1400,
300
- popover: 1500,
301
- skipLink: 1600,
302
- toast: 1700,
303
- tooltip: 1800,
304
- },
305
- } as const
@@ -1,385 +0,0 @@
1
- import * as goober from 'goober'
2
- import { createEffect, createSignal } from 'solid-js'
3
- import { createTheme } from '@tanstack/devtools-ui'
4
- import { tokens } from './tokens'
5
-
6
- const stylesFactory = (theme: 'light' | 'dark') => {
7
- const { colors, font, size, alpha, border } = tokens
8
- const { fontFamily, size: fontSize } = font
9
- const css = goober.css
10
- const t = (light: string, dark: string) => (theme === 'light' ? light : dark)
11
-
12
- return {
13
- /**
14
- * Fills the devtools-utils portal div (height: 100%) and is a flex parent so MainPanel
15
- * gets a real flex height budget (not just height: 100% without a flex chain).
16
- */
17
- shellRoot: css`
18
- display: flex;
19
- flex-direction: column;
20
- box-sizing: border-box;
21
- width: 100%;
22
- height: 100%;
23
- min-height: 0;
24
- overflow: hidden;
25
- `,
26
- /** Overrides devtools-ui MainPanel overflow-y: auto so inner columns own scrolling */
27
- mainPanelShell: css`
28
- display: flex;
29
- flex-direction: column;
30
- flex: 1 1 0%;
31
- min-height: 0;
32
- overflow: hidden !important;
33
- `,
34
- mainContainer: css`
35
- display: flex;
36
- flex: 1 1 0%;
37
- min-height: 0;
38
- overflow: hidden;
39
- padding: ${size[2]};
40
- padding-top: 0;
41
- margin-top: ${size[2]};
42
- `,
43
- dragHandle: css`
44
- width: 8px;
45
- background: ${t(colors.gray[300], colors.darkGray[600])};
46
- cursor: col-resize;
47
- position: relative;
48
- transition: all 0.2s ease;
49
- user-select: none;
50
- pointer-events: all;
51
- margin: 0 ${size[1]};
52
- border-radius: 2px;
53
-
54
- &:hover {
55
- background: ${t(colors.blue[600], colors.blue[500])};
56
- margin: 0 ${size[1]};
57
- }
58
-
59
- &.dragging {
60
- background: ${t(colors.blue[700], colors.blue[600])};
61
- margin: 0 ${size[1]};
62
- }
63
-
64
- &::after {
65
- content: '';
66
- position: absolute;
67
- top: 50%;
68
- left: 50%;
69
- transform: translate(-50%, -50%);
70
- width: 2px;
71
- height: 20px;
72
- background: ${t(colors.gray[400], colors.darkGray[400])};
73
- border-radius: 1px;
74
- pointer-events: none;
75
- }
76
-
77
- &:hover::after,
78
- &.dragging::after {
79
- background: ${t(colors.blue[500], colors.blue[300])};
80
- }
81
- `,
82
- leftPanel: css`
83
- background: ${t(colors.gray[100], colors.darkGray[800])};
84
- border-radius: ${border.radius.lg};
85
- border: 1px solid ${t(colors.gray[200], colors.darkGray[700])};
86
- display: flex;
87
- flex-direction: column;
88
- overflow: hidden;
89
- min-height: 0;
90
- flex-shrink: 0;
91
- `,
92
- rightPanel: css`
93
- background: ${t(colors.gray[100], colors.darkGray[800])};
94
- border-radius: ${border.radius.lg};
95
- border: 1px solid ${t(colors.gray[200], colors.darkGray[700])};
96
- display: flex;
97
- flex-direction: column;
98
- overflow: hidden;
99
- min-height: 0;
100
- flex: 1;
101
- `,
102
- panelHeader: css`
103
- font-size: ${fontSize.md};
104
- font-weight: ${font.weight.bold};
105
- color: ${t(colors.blue[700], colors.blue[400])};
106
- padding: ${size[2]};
107
- border-bottom: 1px solid ${t(colors.gray[200], colors.darkGray[700])};
108
- background: ${t(colors.gray[100], colors.darkGray[800])};
109
- flex-shrink: 0;
110
- `,
111
- utilList: css`
112
- flex: 1;
113
- overflow-y: auto;
114
- padding: ${size[1]};
115
- min-height: 0;
116
- `,
117
- utilGroup: css`
118
- margin-bottom: ${size[2]};
119
- `,
120
- utilGroupHeader: css`
121
- font-size: ${fontSize.xs};
122
- font-weight: ${font.weight.semibold};
123
- color: ${t(colors.gray[600], colors.gray[400])};
124
- text-transform: uppercase;
125
- letter-spacing: 0.05em;
126
- margin-bottom: ${size[1]};
127
- padding: ${size[1]} ${size[2]};
128
- background: ${t(colors.gray[200], colors.darkGray[700])};
129
- border-radius: ${border.radius.md};
130
- `,
131
- utilRow: css`
132
- display: flex;
133
- justify-content: space-between;
134
- align-items: center;
135
- padding: ${size[2]};
136
- margin-bottom: ${size[1]};
137
- background: ${t(colors.gray[200], colors.darkGray[700])};
138
- border-radius: ${border.radius.md};
139
- cursor: pointer;
140
- transition: all 0.2s ease;
141
- border: 1px solid transparent;
142
-
143
- &:hover {
144
- background: ${t(colors.gray[300], colors.darkGray[600])};
145
- border-color: ${t(colors.gray[400], colors.darkGray[500])};
146
- }
147
- `,
148
- utilRowSelected: css`
149
- background: ${t(colors.blue[100], colors.blue[900] + alpha[20])};
150
- border-color: ${t(colors.blue[600], colors.blue[500])};
151
- box-shadow: 0 0 0 1px
152
- ${t(colors.blue[600] + alpha[30], colors.blue[500] + alpha[30])};
153
- `,
154
- utilKey: css`
155
- font-family: ${fontFamily.mono};
156
- font-size: ${fontSize.xs};
157
- color: ${t(colors.gray[900], colors.gray[100])};
158
- flex: 1;
159
- overflow: hidden;
160
- text-overflow: ellipsis;
161
- white-space: nowrap;
162
- `,
163
- utilStatus: css`
164
- font-size: ${fontSize.xs};
165
- color: ${t(colors.gray[600], colors.gray[400])};
166
- text-transform: uppercase;
167
- letter-spacing: 0.05em;
168
- padding: ${size[1]} ${size[1]};
169
- background: ${t(colors.gray[300], colors.darkGray[600])};
170
- border-radius: ${border.radius.sm};
171
- margin-left: ${size[1]};
172
- `,
173
- stateDetails: css`
174
- flex: 1;
175
- overflow-y: auto;
176
- padding: ${size[2]};
177
- min-height: 0;
178
- `,
179
- stateHeader: css`
180
- margin-bottom: ${size[2]};
181
- padding-bottom: ${size[2]};
182
- border-bottom: 1px solid ${t(colors.gray[200], colors.darkGray[700])};
183
- `,
184
- stateTitle: css`
185
- font-size: ${fontSize.md};
186
- font-weight: ${font.weight.bold};
187
- color: ${t(colors.blue[700], colors.blue[400])};
188
- margin-bottom: ${size[1]};
189
- `,
190
- stateKey: css`
191
- font-family: ${fontFamily.mono};
192
- font-size: ${fontSize.xs};
193
- color: ${t(colors.gray[600], colors.gray[400])};
194
- word-break: break-all;
195
- `,
196
- stateContent: css`
197
- background: ${t(colors.gray[100], colors.darkGray[700])};
198
- border-radius: ${border.radius.md};
199
- padding: ${size[2]};
200
- border: 1px solid ${t(colors.gray[300], colors.darkGray[600])};
201
- `,
202
- detailsGrid: css`
203
- display: grid;
204
- grid-template-columns: 1fr;
205
- gap: ${size[2]};
206
- align-items: start;
207
- `,
208
- detailSection: css`
209
- background: ${t(colors.white, colors.darkGray[700])};
210
- border: 1px solid ${t(colors.gray[300], colors.darkGray[600])};
211
- border-radius: ${border.radius.md};
212
- padding: ${size[2]};
213
- `,
214
- detailSectionHeader: css`
215
- font-size: ${fontSize.sm};
216
- font-weight: ${font.weight.bold};
217
- color: ${t(colors.gray[800], colors.gray[200])};
218
- margin-bottom: ${size[1]};
219
- text-transform: uppercase;
220
- letter-spacing: 0.04em;
221
- `,
222
- actionsRow: css`
223
- display: flex;
224
- flex-wrap: wrap;
225
- gap: ${size[2]};
226
- `,
227
- actionButton: css`
228
- display: inline-flex;
229
- align-items: center;
230
- gap: ${size[1]};
231
- padding: ${size[1]} ${size[2]};
232
- border-radius: ${border.radius.md};
233
- border: 1px solid ${t(colors.gray[300], colors.darkGray[500])};
234
- background: ${t(colors.gray[200], colors.darkGray[600])};
235
- color: ${t(colors.gray[900], colors.gray[100])};
236
- font-size: ${fontSize.xs};
237
- cursor: pointer;
238
- user-select: none;
239
- transition:
240
- background 0.15s,
241
- border-color 0.15s;
242
- &:hover {
243
- background: ${t(colors.gray[300], colors.darkGray[500])};
244
- border-color: ${t(colors.gray[400], colors.darkGray[400])};
245
- }
246
- &:disabled {
247
- opacity: 0.5;
248
- cursor: not-allowed;
249
- &:hover {
250
- background: ${t(colors.gray[200], colors.darkGray[600])};
251
- border-color: ${t(colors.gray[300], colors.darkGray[500])};
252
- }
253
- }
254
- `,
255
- actionDotBlue: css`
256
- width: 6px;
257
- height: 6px;
258
- border-radius: 9999px;
259
- background: ${colors.blue[400]};
260
- `,
261
- actionDotGreen: css`
262
- width: 6px;
263
- height: 6px;
264
- border-radius: 9999px;
265
- background: ${colors.green[400]};
266
- `,
267
- actionDotRed: css`
268
- width: 6px;
269
- height: 6px;
270
- border-radius: 9999px;
271
- background: ${colors.red[400]};
272
- `,
273
- actionDotYellow: css`
274
- width: 6px;
275
- height: 6px;
276
- border-radius: 9999px;
277
- background: ${colors.yellow[400]};
278
- `,
279
- actionDotOrange: css`
280
- width: 6px;
281
- height: 6px;
282
- border-radius: 9999px;
283
- background: ${colors.pink[400]};
284
- `,
285
- actionDotPurple: css`
286
- width: 6px;
287
- height: 6px;
288
- border-radius: 9999px;
289
- background: ${colors.purple[400]};
290
- `,
291
- infoGrid: css`
292
- display: grid;
293
- grid-template-columns: auto 1fr;
294
- gap: ${size[1]};
295
- row-gap: ${size[1]};
296
- align-items: center;
297
- `,
298
- infoLabel: css`
299
- color: ${t(colors.gray[600], colors.gray[400])};
300
- font-size: ${fontSize.xs};
301
- text-transform: uppercase;
302
- letter-spacing: 0.05em;
303
- `,
304
- infoValueMono: css`
305
- font-family: ${fontFamily.mono};
306
- font-size: ${fontSize.xs};
307
- color: ${t(colors.gray[900], colors.gray[100])};
308
- word-break: break-all;
309
- `,
310
- noSelection: css`
311
- flex: 1;
312
- display: flex;
313
- align-items: center;
314
- justify-content: center;
315
- color: ${t(colors.gray[500], colors.gray[500])};
316
- font-style: italic;
317
- text-align: center;
318
- padding: ${size[4]};
319
- `,
320
- // Keep existing styles for backward compatibility
321
- sectionContainer: css`
322
- display: flex;
323
- flex-wrap: wrap;
324
- gap: ${size[4]};
325
- `,
326
- section: css`
327
- background: ${t(colors.gray[100], colors.darkGray[800])};
328
- border-radius: ${border.radius.lg};
329
- box-shadow: ${tokens.shadow.md(
330
- t(colors.gray[400] + alpha[80], colors.black + alpha[80]),
331
- )};
332
- padding: ${size[4]};
333
- margin-bottom: ${size[4]};
334
- border: 1px solid ${t(colors.gray[200], colors.darkGray[700])};
335
- min-width: 0;
336
- max-width: 33%;
337
- max-height: fit-content;
338
- `,
339
- sectionHeader: css`
340
- font-size: ${fontSize.lg};
341
- font-weight: ${font.weight.bold};
342
- margin-bottom: ${size[2]};
343
- color: ${t(colors.blue[600], colors.blue[400])};
344
- letter-spacing: 0.01em;
345
- display: flex;
346
- align-items: center;
347
- gap: ${size[2]};
348
- `,
349
- sectionEmpty: css`
350
- color: ${t(colors.gray[500], colors.gray[500])};
351
- font-size: ${fontSize.sm};
352
- font-style: italic;
353
- margin: ${size[2]} 0;
354
- `,
355
- instanceList: css`
356
- display: flex;
357
- flex-direction: column;
358
- gap: ${size[2]};
359
- background: ${t(colors.gray[200], colors.darkGray[700])};
360
- border: 1px solid ${t(colors.gray[300], colors.darkGray[600])};
361
- `,
362
- instanceCard: css`
363
- background: ${t(colors.gray[200], colors.darkGray[700])};
364
- border-radius: ${border.radius.md};
365
- padding: ${size[3]};
366
- border: 1px solid ${t(colors.gray[300], colors.darkGray[600])};
367
- font-size: ${fontSize.sm};
368
- color: ${t(colors.gray[900], colors.gray[100])};
369
- font-family: ${fontFamily.mono};
370
- overflow-x: auto;
371
- transition:
372
- box-shadow 0.3s,
373
- background 0.3s;
374
- `,
375
- }
376
- }
377
-
378
- export function useStyles() {
379
- const { theme } = createTheme()
380
- const [styles, setStyles] = createSignal(stylesFactory(theme()))
381
- createEffect(() => {
382
- setStyles(stylesFactory(theme()))
383
- })
384
- return styles
385
- }