@tanstack/hotkeys-devtools 0.4.4 → 0.7.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.
@@ -10,12 +10,33 @@ const stylesFactory = (theme: 'light' | 'dark') => {
10
10
  const t = (light: string, dark: string) => (theme === 'light' ? light : dark)
11
11
 
12
12
  return {
13
+ /** Full-height flex child so MainPanel gets a bounded height from the portal */
14
+ shellRoot: css`
15
+ display: flex;
16
+ flex-direction: column;
17
+ min-height: 0;
18
+ height: 100%;
19
+ flex: 1;
20
+ overflow: hidden;
21
+ `,
22
+ /** Overrides devtools-ui MainPanel (overflow-y: auto) so inner columns scroll independently */
23
+ mainPanelShell: css`
24
+ display: flex;
25
+ flex-direction: column;
26
+ flex: 1 1 0%;
27
+ min-height: 0;
28
+ height: auto;
29
+ overflow: hidden !important;
30
+ `,
13
31
  mainContainer: css`
14
32
  display: flex;
15
33
  flex-direction: column;
34
+ flex: 1 1 0%;
35
+ min-height: 0;
36
+ overflow: hidden;
16
37
  padding: ${size[2]};
17
38
  padding-top: 0;
18
- margin-top: ${size[2]};
39
+ margin-top: -8px;
19
40
  `,
20
41
  heldKeysBar: css`
21
42
  background: ${t(colors.gray[100], colors.darkGray[800])};
@@ -26,7 +47,7 @@ const stylesFactory = (theme: 'light' | 'dark') => {
26
47
  gap: ${size[3]};
27
48
  padding: ${size[3]} ${size[3]};
28
49
  flex-shrink: 0;
29
- min-height: 64px;
50
+ min-height: 72px;
30
51
  margin-bottom: ${size[2]};
31
52
  `,
32
53
  heldKeysBarHeader: css`
@@ -47,6 +68,10 @@ const stylesFactory = (theme: 'light' | 'dark') => {
47
68
  `,
48
69
  panelsContainer: css`
49
70
  display: flex;
71
+ flex: 1 1 0%;
72
+ min-height: 0;
73
+ overflow: hidden;
74
+ align-items: stretch;
50
75
  `,
51
76
  dragHandle: css`
52
77
  width: 8px;
@@ -129,6 +154,13 @@ const stylesFactory = (theme: 'light' | 'dark') => {
129
154
  display: flex;
130
155
  flex-direction: column;
131
156
  flex-shrink: 0;
157
+ min-height: 0;
158
+ min-width: 0;
159
+ `,
160
+ leftPanelScroll: css`
161
+ flex: 1;
162
+ min-height: 0;
163
+ overflow-y: auto;
132
164
  `,
133
165
  rightPanel: css`
134
166
  background: ${t(colors.gray[100], colors.darkGray[800])};
@@ -137,6 +169,9 @@ const stylesFactory = (theme: 'light' | 'dark') => {
137
169
  display: flex;
138
170
  flex-direction: column;
139
171
  flex: 1;
172
+ min-height: 0;
173
+ min-width: 0;
174
+ overflow: hidden;
140
175
  `,
141
176
  panelHeader: css`
142
177
  font-size: ${fontSize.md};
@@ -198,6 +233,10 @@ const stylesFactory = (theme: 'light' | 'dark') => {
198
233
  text-overflow: ellipsis;
199
234
  white-space: nowrap;
200
235
  `,
236
+ sequenceStepMatched: css`
237
+ font-weight: ${font.weight.bold};
238
+ color: ${t(colors.blue[700], colors.blue[300])};
239
+ `,
201
240
  hotkeyBadges: css`
202
241
  display: flex;
203
242
  gap: ${size[1]};
@@ -250,6 +289,11 @@ const stylesFactory = (theme: 'light' | 'dark') => {
250
289
  background: ${t(colors.blue[100], colors.blue[900] + alpha[30])};
251
290
  `,
252
291
  stateDetails: css`
292
+ display: flex;
293
+ flex-direction: column;
294
+ flex: 1;
295
+ min-height: 0;
296
+ overflow-y: auto;
253
297
  padding: ${size[2]};
254
298
  `,
255
299
  stateHeader: css`
@@ -361,6 +405,64 @@ const stylesFactory = (theme: 'light' | 'dark') => {
361
405
  color: ${t(colors.gray[500], colors.gray[400])};
362
406
  font-size: ${fontSize.sm};
363
407
  `,
408
+ keyBreakdownSubHeader: css`
409
+ font-size: ${fontSize.xs};
410
+ font-weight: ${font.weight.semibold};
411
+ color: ${t(colors.gray[500], colors.gray[400])};
412
+ margin-top: ${size[3]};
413
+ margin-bottom: ${size[1]};
414
+ `,
415
+ keyBreakdownSplitRow: css`
416
+ display: flex;
417
+ flex-direction: row;
418
+ flex-wrap: wrap;
419
+ align-items: center;
420
+ gap: ${size[3]};
421
+ `,
422
+ keyBreakdownSplitLeft: css`
423
+ flex: 0 0 auto;
424
+ display: flex;
425
+ flex-wrap: wrap;
426
+ align-items: center;
427
+ gap: ${size[1]};
428
+ `,
429
+ keyBreakdownSplitArrow: css`
430
+ flex-shrink: 0;
431
+ color: ${t(colors.gray[500], colors.gray[400])};
432
+ font-size: ${fontSize.sm};
433
+ font-family: ${fontFamily.mono};
434
+ user-select: none;
435
+ `,
436
+ keyBreakdownSplitRight: css`
437
+ flex: 1 1 200px;
438
+ min-width: min(220px, 100%);
439
+ `,
440
+ platformBreakdown: css`
441
+ display: flex;
442
+ flex-direction: column;
443
+ gap: ${size[1]};
444
+ `,
445
+ platformBreakdownRow: css`
446
+ display: grid;
447
+ grid-template-columns: 72px 1fr;
448
+ gap: ${size[2]};
449
+ align-items: center;
450
+ font-size: ${fontSize.xs};
451
+ `,
452
+ platformBreakdownLabel: css`
453
+ color: ${t(colors.gray[500], colors.gray[400])};
454
+ flex-shrink: 0;
455
+ `,
456
+ platformBreakdownPretty: css`
457
+ color: ${t(colors.gray[900], colors.gray[100])};
458
+ word-break: break-word;
459
+ min-width: 0;
460
+ `,
461
+ sequenceChordDetail: css`
462
+ margin-top: ${size[3]};
463
+ padding-top: ${size[2]};
464
+ border-top: 1px solid ${t(colors.gray[200], colors.darkGray[600])};
465
+ `,
364
466
  keyCapLarge: css`
365
467
  display: inline-flex;
366
468
  align-items: center;
@@ -379,6 +481,11 @@ const stylesFactory = (theme: 'light' | 'dark') => {
379
481
  text-transform: capitalize;
380
482
  white-space: nowrap;
381
483
  `,
484
+ keyCapLargeInProgress: css`
485
+ border-color: ${t(colors.blue[500], colors.blue[400])};
486
+ color: ${t(colors.blue[900], colors.blue[200])};
487
+ background: ${t(colors.blue[50], colors.darkGray[500])};
488
+ `,
382
489
  conflictList: css`
383
490
  display: flex;
384
491
  flex-direction: column;