@tanstack/query-devtools 5.0.0-beta.36 → 5.0.0-rc.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.
package/src/Devtools.tsx CHANGED
@@ -15,6 +15,7 @@ import { TransitionGroup } from 'solid-transition-group'
15
15
  import { Key } from '@solid-primitives/keyed'
16
16
  import { createLocalStorage } from '@solid-primitives/storage'
17
17
  import { createResizeObserver } from '@solid-primitives/resize-observer'
18
+ import { DropdownMenu } from '@kobalte/core'
18
19
  import { tokens } from './theme'
19
20
  import {
20
21
  convertRemToPixels,
@@ -27,6 +28,8 @@ import {
27
28
  } from './utils'
28
29
  import {
29
30
  ArrowDown,
31
+ ArrowLeft,
32
+ ArrowRight,
30
33
  ArrowUp,
31
34
  ChevronDown,
32
35
  Offline,
@@ -203,7 +206,6 @@ export const DevtoolsPanel: Component<DevtoolsPanelProps> = (props) => {
203
206
  ) as () => 1 | -1
204
207
 
205
208
  const [offline, setOffline] = createSignal(false)
206
- const [settingsOpen, setSettingsOpen] = createSignal(false)
207
209
 
208
210
  const position = createMemo(
209
211
  () =>
@@ -323,7 +325,6 @@ export const DevtoolsPanel: Component<DevtoolsPanelProps> = (props) => {
323
325
 
324
326
  const setDevtoolsPosition = (pos: DevtoolsPosition) => {
325
327
  props.setLocalStore('position', pos)
326
- setSettingsOpen(false)
327
328
  }
328
329
 
329
330
  createEffect(() => {
@@ -530,6 +531,7 @@ export const DevtoolsPanel: Component<DevtoolsPanelProps> = (props) => {
530
531
  'tsqd-action-clear-cache',
531
532
  )}
532
533
  aria-label="Clear query cache"
534
+ title="Clear query cache"
533
535
  >
534
536
  <Trash />
535
537
  </button>
@@ -554,32 +556,27 @@ export const DevtoolsPanel: Component<DevtoolsPanelProps> = (props) => {
554
556
  : 'Mock offline behavior'
555
557
  }`}
556
558
  aria-pressed={offline()}
559
+ title={`${
560
+ offline()
561
+ ? 'Unset offline mocking behavior'
562
+ : 'Mock offline behavior'
563
+ }`}
557
564
  >
558
565
  {offline() ? <Offline /> : <Wifi />}
559
566
  </button>
560
- <div style={{ position: 'relative' }}>
561
- <button
562
- onClick={() => setSettingsOpen((prev) => !prev)}
567
+
568
+ <DropdownMenu.Root gutter={4}>
569
+ <DropdownMenu.Trigger
563
570
  class={cx(
564
571
  styles.actionsBtn,
565
572
  'tsqd-actions-btn',
566
573
  'tsqd-action-settings',
567
574
  )}
568
- id="tsqd-settings-menu-btn"
569
- aria-label={`${
570
- settingsOpen() ? 'Close' : 'Open'
571
- } settings menu`}
572
- aria-haspopup="true"
573
- aria-controls="tsqd-settings-menu"
574
575
  >
575
576
  <Settings />
576
- </button>
577
- <Show when={settingsOpen()}>
578
- <div
579
- role="menu"
580
- tabindex="-1"
581
- aria-labelledby="tsqd-settings-menu-btn"
582
- id="tsqd-settings-menu"
577
+ </DropdownMenu.Trigger>
578
+ <DropdownMenu.Portal>
579
+ <DropdownMenu.Content
583
580
  class={cx(styles.settingsMenu, 'tsqd-settings-menu')}
584
581
  >
585
582
  <div
@@ -588,58 +585,85 @@ export const DevtoolsPanel: Component<DevtoolsPanelProps> = (props) => {
588
585
  'tsqd-settings-menu-header',
589
586
  )}
590
587
  >
591
- Position
588
+ Settings
592
589
  </div>
593
- <div
594
- class={cx(
595
- styles.settingsMenuSection,
596
- 'tsqd-settings-menu-section',
597
- )}
598
- >
599
- <button
600
- onClick={() => {
601
- setDevtoolsPosition('top')
602
- }}
603
- aria-label="Position top"
604
- class="tsqd-settings-menu-position-btn tsqd-settings-menu-position-btn-top"
590
+ <DropdownMenu.Sub overlap gutter={8} shift={-4}>
591
+ <DropdownMenu.SubTrigger
592
+ class={cx(
593
+ styles.settingsSubTrigger,
594
+ 'tsqd-settings-menu-sub-trigger',
595
+ 'tsqd-settings-menu-sub-trigger-position',
596
+ )}
605
597
  >
606
- <ArrowUp />
607
- <span>Top</span>
608
- </button>
609
- <button
610
- onClick={() => {
611
- setDevtoolsPosition('bottom')
612
- }}
613
- aria-label="Position bottom"
614
- class="tsqd-settings-menu-position-btn tsqd-settings-menu-position-btn-bottom"
615
- >
616
- <ArrowDown />
617
- <span>Bottom</span>
618
- </button>
619
- <button
620
- onClick={() => {
621
- setDevtoolsPosition('left')
622
- }}
623
- aria-label="Position left"
624
- class="tsqd-settings-menu-position-btn tsqd-settings-menu-position-btn-left"
625
- >
626
- <ArrowDown />
627
- <span>Left</span>
628
- </button>
629
- <button
630
- onClick={() => {
631
- setDevtoolsPosition('right')
632
- }}
633
- aria-label="Position right"
634
- class="tsqd-settings-menu-position-btn tsqd-settings-menu-position-btn-right"
635
- >
636
- <ArrowDown />
637
- <span>Right</span>
638
- </button>
639
- </div>
640
- </div>
641
- </Show>
642
- </div>
598
+ <span>Position</span>
599
+ <ChevronDown />
600
+ </DropdownMenu.SubTrigger>
601
+ <DropdownMenu.Portal>
602
+ <DropdownMenu.SubContent
603
+ class={cx(styles.settingsMenu, 'tsqd-settings-submenu')}
604
+ >
605
+ <DropdownMenu.Item
606
+ onSelect={() => {
607
+ setDevtoolsPosition('top')
608
+ }}
609
+ as="button"
610
+ class={cx(
611
+ styles.settingsSubButton,
612
+ 'tsqd-settings-menu-position-btn',
613
+ 'tsqd-settings-menu-position-btn-top',
614
+ )}
615
+ >
616
+ <span>Top</span>
617
+ <ArrowUp />
618
+ </DropdownMenu.Item>
619
+ <DropdownMenu.Item
620
+ onSelect={() => {
621
+ setDevtoolsPosition('bottom')
622
+ }}
623
+ as="button"
624
+ class={cx(
625
+ styles.settingsSubButton,
626
+ 'tsqd-settings-menu-position-btn',
627
+ 'tsqd-settings-menu-position-btn-bottom',
628
+ )}
629
+ >
630
+ <span>Bottom</span>
631
+ <ArrowDown />
632
+ </DropdownMenu.Item>
633
+ <DropdownMenu.Item
634
+ onSelect={() => {
635
+ setDevtoolsPosition('left')
636
+ }}
637
+ as="button"
638
+ class={cx(
639
+ styles.settingsSubButton,
640
+ 'tsqd-settings-menu-position-btn',
641
+ 'tsqd-settings-menu-position-btn-left',
642
+ )}
643
+ >
644
+ <span>Left</span>
645
+ <ArrowLeft />
646
+ </DropdownMenu.Item>
647
+ <DropdownMenu.Item
648
+ onSelect={() => {
649
+ setDevtoolsPosition('right')
650
+ }}
651
+ as="button"
652
+ class={cx(
653
+ styles.settingsSubButton,
654
+ 'tsqd-settings-menu-position-btn',
655
+ 'tsqd-settings-menu-position-btn-right',
656
+ )}
657
+ >
658
+ <span>Right</span>
659
+ <ArrowRight />
660
+ </DropdownMenu.Item>
661
+ </DropdownMenu.SubContent>
662
+ </DropdownMenu.Portal>
663
+ </DropdownMenu.Sub>
664
+ </DropdownMenu.Content>
665
+ </DropdownMenu.Portal>
666
+ </DropdownMenu.Root>
643
667
  </div>
644
668
  </div>
645
669
  <div
@@ -861,8 +885,8 @@ export const QueryStatus: Component<QueryStatusProps> = (props) => {
861
885
  <span
862
886
  class={cx(
863
887
  css`
864
- width: ${tokens.size[2]};
865
- height: ${tokens.size[2]};
888
+ width: ${tokens.size[1.5]};
889
+ height: ${tokens.size[1.5]};
866
890
  border-radius: ${tokens.border.radius.full};
867
891
  background-color: ${tokens.colors[props.color][500]};
868
892
  `,
@@ -870,7 +894,11 @@ export const QueryStatus: Component<QueryStatusProps> = (props) => {
870
894
  )}
871
895
  />
872
896
  <Show when={showLabel()}>
873
- <span class="tsqd-query-status-tag-label">{props.label}</span>
897
+ <span
898
+ class={cx(styles.queryStatusTagLabel, 'tsqd-query-status-tag-label')}
899
+ >
900
+ {props.label}
901
+ </span>
874
902
  </Show>
875
903
  <span
876
904
  class={cx(
@@ -1451,10 +1479,14 @@ const getStyles = () => {
1451
1479
  &:focus-visible {
1452
1480
  outline: 2px solid ${colors.blue[600]};
1453
1481
  }
1482
+ & svg {
1483
+ width: ${size[2]};
1484
+ height: ${size[2]};
1485
+ }
1454
1486
  `,
1455
1487
  'closeBtn-position-top': css`
1456
1488
  bottom: 0;
1457
- right: ${size[3]};
1489
+ right: ${size[2]};
1458
1490
  transform: translate(0, 100%);
1459
1491
  background-color: ${colors.darkGray[700]};
1460
1492
  border-right: ${colors.darkGray[300]} 1px solid;
@@ -1462,7 +1494,7 @@ const getStyles = () => {
1462
1494
  border-top: none;
1463
1495
  border-bottom: ${colors.darkGray[300]} 1px solid;
1464
1496
  border-radius: 0px 0px ${border.radius.sm} ${border.radius.sm};
1465
- padding: ${size[1.5]} ${size[2.5]} ${size[2]} ${size[2.5]};
1497
+ padding: ${size[0.5]} ${size[1.5]} ${size[1]} ${size[1.5]};
1466
1498
 
1467
1499
  &::after {
1468
1500
  content: ' ';
@@ -1479,7 +1511,7 @@ const getStyles = () => {
1479
1511
  `,
1480
1512
  'closeBtn-position-bottom': css`
1481
1513
  top: 0;
1482
- right: ${size[3]};
1514
+ right: ${size[2]};
1483
1515
  transform: translate(0, -100%);
1484
1516
  background-color: ${colors.darkGray[700]};
1485
1517
  border-right: ${colors.darkGray[300]} 1px solid;
@@ -1487,7 +1519,7 @@ const getStyles = () => {
1487
1519
  border-top: ${colors.darkGray[300]} 1px solid;
1488
1520
  border-bottom: none;
1489
1521
  border-radius: ${border.radius.sm} ${border.radius.sm} 0px 0px;
1490
- padding: ${size[2]} ${size[2.5]} ${size[1.5]} ${size[2.5]};
1522
+ padding: ${size[1]} ${size[1.5]} ${size[0.5]} ${size[1.5]};
1491
1523
 
1492
1524
  &::after {
1493
1525
  content: ' ';
@@ -1499,7 +1531,7 @@ const getStyles = () => {
1499
1531
  }
1500
1532
  `,
1501
1533
  'closeBtn-position-right': css`
1502
- bottom: ${size[3]};
1534
+ bottom: ${size[2]};
1503
1535
  left: 0;
1504
1536
  transform: translate(-100%, 0);
1505
1537
  background-color: ${colors.darkGray[700]};
@@ -1508,7 +1540,7 @@ const getStyles = () => {
1508
1540
  border-top: ${colors.darkGray[300]} 1px solid;
1509
1541
  border-bottom: ${colors.darkGray[300]} 1px solid;
1510
1542
  border-radius: ${border.radius.sm} 0px 0px ${border.radius.sm};
1511
- padding: ${size[2.5]} ${size[1]} ${size[2.5]} ${size[1.5]};
1543
+ padding: ${size[1.5]} ${size[0.5]} ${size[1.5]} ${size[1]};
1512
1544
 
1513
1545
  &::after {
1514
1546
  content: ' ';
@@ -1523,7 +1555,7 @@ const getStyles = () => {
1523
1555
  }
1524
1556
  `,
1525
1557
  'closeBtn-position-left': css`
1526
- bottom: ${size[3]};
1558
+ bottom: ${size[2]};
1527
1559
  right: 0;
1528
1560
  transform: translate(100%, 0);
1529
1561
  background-color: ${colors.darkGray[700]};
@@ -1532,7 +1564,7 @@ const getStyles = () => {
1532
1564
  border-top: ${colors.darkGray[300]} 1px solid;
1533
1565
  border-bottom: ${colors.darkGray[300]} 1px solid;
1534
1566
  border-radius: 0px ${border.radius.sm} ${border.radius.sm} 0px;
1535
- padding: ${size[2.5]} ${size[1.5]} ${size[2.5]} ${size[1]};
1567
+ padding: ${size[1.5]} ${size[1]} ${size[1.5]} ${size[0.5]};
1536
1568
 
1537
1569
  &::after {
1538
1570
  content: ' ';
@@ -1556,39 +1588,40 @@ const getStyles = () => {
1556
1588
  position: absolute;
1557
1589
  transition: background-color 0.125s ease;
1558
1590
  &:hover {
1559
- background-color: ${colors.gray[400]}${alpha[90]};
1591
+ background-color: ${colors.purple[400]}${alpha[90]};
1560
1592
  }
1561
1593
  z-index: 4;
1562
1594
  `,
1563
1595
  'dragHandle-position-top': css`
1564
1596
  bottom: 0;
1565
1597
  width: 100%;
1566
- height: ${tokens.size[1]};
1598
+ height: 3px;
1567
1599
  cursor: ns-resize;
1568
1600
  `,
1569
1601
  'dragHandle-position-bottom': css`
1570
1602
  top: 0;
1571
1603
  width: 100%;
1572
- height: ${tokens.size[1]};
1604
+ height: 3px;
1573
1605
  cursor: ns-resize;
1574
1606
  `,
1575
1607
  'dragHandle-position-right': css`
1576
1608
  left: 0;
1577
- width: ${tokens.size[1]};
1609
+ width: 3px;
1578
1610
  height: 100%;
1579
1611
  cursor: ew-resize;
1580
1612
  `,
1581
1613
  'dragHandle-position-left': css`
1582
1614
  right: 0;
1583
- width: ${tokens.size[1]};
1615
+ width: 3px;
1584
1616
  height: 100%;
1585
1617
  cursor: ew-resize;
1586
1618
  `,
1587
1619
  row: css`
1588
1620
  display: flex;
1589
1621
  justify-content: space-between;
1590
- padding: ${tokens.size[2.5]} ${tokens.size[3]};
1591
- gap: ${tokens.size[4]};
1622
+ align-items: center;
1623
+ padding: ${tokens.size[2]} ${tokens.size[2.5]};
1624
+ gap: ${tokens.size[3]};
1592
1625
  border-bottom: ${colors.darkGray[500]} 1px solid;
1593
1626
  align-items: center;
1594
1627
  & > button {
@@ -1596,6 +1629,7 @@ const getStyles = () => {
1596
1629
  background: transparent;
1597
1630
  border: none;
1598
1631
  display: flex;
1632
+ gap: ${size[0.5]};
1599
1633
  flex-direction: column;
1600
1634
  }
1601
1635
  `,
@@ -1611,18 +1645,18 @@ const getStyles = () => {
1611
1645
  }
1612
1646
  `,
1613
1647
  tanstackLogo: css`
1614
- font-size: ${font.size.lg};
1615
- font-weight: ${font.weight.extrabold};
1616
- line-height: ${font.lineHeight.sm};
1648
+ font-size: ${font.size.md};
1649
+ font-weight: ${font.weight.bold};
1650
+ line-height: ${font.lineHeight.xs};
1617
1651
  white-space: nowrap;
1618
1652
  `,
1619
1653
  queryFlavorLogo: css`
1620
1654
  font-weight: ${font.weight.semibold};
1621
- font-size: ${font.size.sm};
1655
+ font-size: ${font.size.xs};
1622
1656
  background: linear-gradient(to right, #dd524b, #e9a03b);
1623
1657
  background-clip: text;
1624
1658
  -webkit-background-clip: text;
1625
- line-height: ${font.lineHeight.xs};
1659
+ line-height: 1;
1626
1660
  -webkit-text-fill-color: transparent;
1627
1661
  white-space: nowrap;
1628
1662
  `,
@@ -1635,12 +1669,11 @@ const getStyles = () => {
1635
1669
  display: flex;
1636
1670
  gap: ${tokens.size[1.5]};
1637
1671
  background: ${colors.darkGray[500]};
1638
- border-radius: ${tokens.border.radius.md};
1672
+ border-radius: ${tokens.border.radius.sm};
1639
1673
  font-size: ${font.size.sm};
1640
1674
  padding: ${tokens.size[1]};
1641
- padding-left: ${tokens.size[2.5]};
1675
+ padding-left: ${tokens.size[2]};
1642
1676
  align-items: center;
1643
- line-height: ${font.lineHeight.md};
1644
1677
  font-weight: ${font.weight.medium};
1645
1678
  border: none;
1646
1679
  user-select: none;
@@ -1650,6 +1683,21 @@ const getStyles = () => {
1650
1683
  outline: 2px solid ${colors.blue[800]};
1651
1684
  }
1652
1685
  `,
1686
+ queryStatusTagLabel: css`
1687
+ font-size: ${font.size.xs};
1688
+ `,
1689
+ queryStatusCount: css`
1690
+ font-size: ${font.size.xs};
1691
+ padding: 0 5px;
1692
+ display: flex;
1693
+ align-items: center;
1694
+ justify-content: center;
1695
+ color: ${colors.gray[400]};
1696
+ background-color: ${colors.darkGray[300]};
1697
+ border-radius: 2px;
1698
+ font-variant-numeric: tabular-nums;
1699
+ height: ${tokens.size[4.5]};
1700
+ `,
1653
1701
  statusTooltip: css`
1654
1702
  position: absolute;
1655
1703
  z-index: 1;
@@ -1657,10 +1705,10 @@ const getStyles = () => {
1657
1705
  top: 100%;
1658
1706
  left: 50%;
1659
1707
  transform: translate(-50%, calc(${tokens.size[2]}));
1660
- padding: ${tokens.size[0.5]} ${tokens.size[3]};
1708
+ padding: ${tokens.size[0.5]} ${tokens.size[2]};
1661
1709
  border-radius: ${tokens.border.radius.md};
1662
- font-size: ${font.size.sm};
1663
- border: 2px solid ${colors.gray[600]};
1710
+ font-size: ${font.size.xs};
1711
+ border: 1px solid ${colors.gray[600]};
1664
1712
  color: ${tokens.colors['gray'][300]};
1665
1713
 
1666
1714
  &::before {
@@ -1692,26 +1740,16 @@ const getStyles = () => {
1692
1740
  selectedQueryRow: css`
1693
1741
  background-color: ${colors.darkGray[500]};
1694
1742
  `,
1695
- queryStatusCount: css`
1696
- padding: 0 8px;
1697
- display: flex;
1698
- align-items: center;
1699
- justify-content: center;
1700
- color: ${colors.gray[400]};
1701
- background-color: ${colors.darkGray[300]};
1702
- border-radius: 3px;
1703
- font-variant-numeric: tabular-nums;
1704
- `,
1705
1743
  filtersContainer: css`
1706
1744
  display: flex;
1707
- gap: ${tokens.size[2.5]};
1745
+ gap: ${tokens.size[2]};
1708
1746
  & > button {
1709
1747
  cursor: pointer;
1710
- padding: ${tokens.size[1.5]} ${tokens.size[2.5]};
1748
+ padding: ${tokens.size[0.5]} ${tokens.size[2]};
1711
1749
  padding-right: ${tokens.size[1.5]};
1712
- border-radius: ${tokens.border.radius.md};
1750
+ border-radius: ${tokens.border.radius.sm};
1713
1751
  background-color: ${colors.darkGray[400]};
1714
- font-size: ${font.size.sm};
1752
+ font-size: ${font.size.xs};
1715
1753
  display: flex;
1716
1754
  align-items: center;
1717
1755
  line-height: ${font.lineHeight.sm};
@@ -1726,8 +1764,8 @@ const getStyles = () => {
1726
1764
  }
1727
1765
  `,
1728
1766
  filterInput: css`
1729
- padding: ${tokens.size[1.5]} ${tokens.size[2.5]};
1730
- border-radius: ${tokens.border.radius.md};
1767
+ padding: ${tokens.size[0.5]} ${tokens.size[2]};
1768
+ border-radius: ${tokens.border.radius.sm};
1731
1769
  background-color: ${colors.darkGray[400]};
1732
1770
  display: flex;
1733
1771
  box-sizing: content-box;
@@ -1738,11 +1776,11 @@ const getStyles = () => {
1738
1776
  border: 1px solid ${colors.darkGray[200]};
1739
1777
  height: min-content;
1740
1778
  & > svg {
1741
- width: ${tokens.size[3.5]};
1742
- height: ${tokens.size[3.5]};
1779
+ width: ${tokens.size[3]};
1780
+ height: ${tokens.size[3]};
1743
1781
  }
1744
1782
  & input {
1745
- font-size: ${font.size.sm};
1783
+ font-size: ${font.size.xs};
1746
1784
  width: 100%;
1747
1785
  background-color: ${colors.darkGray[400]};
1748
1786
  border: none;
@@ -1764,8 +1802,8 @@ const getStyles = () => {
1764
1802
  }
1765
1803
  `,
1766
1804
  filterSelect: css`
1767
- padding: ${tokens.size[1.5]} ${tokens.size[2.5]};
1768
- border-radius: ${tokens.border.radius.md};
1805
+ padding: ${tokens.size[0.5]} ${tokens.size[2]};
1806
+ border-radius: ${tokens.border.radius.sm};
1769
1807
  background-color: ${colors.darkGray[400]};
1770
1808
  display: flex;
1771
1809
  align-items: center;
@@ -1775,14 +1813,14 @@ const getStyles = () => {
1775
1813
  border: 1px solid ${colors.darkGray[200]};
1776
1814
  height: min-content;
1777
1815
  & > svg {
1778
- width: ${tokens.size[3]};
1779
- height: ${tokens.size[3]};
1816
+ width: ${tokens.size[2]};
1817
+ height: ${tokens.size[2]};
1780
1818
  }
1781
1819
  & > select {
1782
1820
  appearance: none;
1783
1821
  min-width: 100px;
1784
1822
  line-height: ${font.lineHeight.sm};
1785
- font-size: ${font.size.sm};
1823
+ font-size: ${font.size.xs};
1786
1824
  background-color: ${colors.darkGray[400]};
1787
1825
  border: none;
1788
1826
  &:focus {
@@ -1797,13 +1835,13 @@ const getStyles = () => {
1797
1835
  `,
1798
1836
  actionsContainer: css`
1799
1837
  display: flex;
1800
- gap: ${tokens.size[2.5]};
1838
+ gap: ${tokens.size[2]};
1801
1839
  `,
1802
1840
  actionsBtn: css`
1803
- border-radius: ${tokens.border.radius.md};
1841
+ border-radius: ${tokens.border.radius.sm};
1804
1842
  background-color: ${colors.darkGray[400]};
1805
- width: 2.125rem;
1806
- height: 2.125rem;
1843
+ width: 1.625rem;
1844
+ height: 1.625rem;
1807
1845
  justify-content: center;
1808
1846
  display: flex;
1809
1847
  align-items: center;
@@ -1816,8 +1854,8 @@ const getStyles = () => {
1816
1854
  background-color: ${colors.darkGray[500]};
1817
1855
  }
1818
1856
  & svg {
1819
- width: ${tokens.size[4]};
1820
- height: ${tokens.size[4]};
1857
+ width: ${tokens.size[3]};
1858
+ height: ${tokens.size[3]};
1821
1859
  }
1822
1860
  &:focus-visible {
1823
1861
  outline-offset: 2px;
@@ -1855,21 +1893,23 @@ const getStyles = () => {
1855
1893
  & .tsqd-query-observer-count {
1856
1894
  padding: 0 ${tokens.size[1]};
1857
1895
  user-select: none;
1858
- min-width: ${tokens.size[8]};
1896
+ min-width: ${tokens.size[6.5]};
1859
1897
  align-self: stretch;
1860
1898
  display: flex;
1861
1899
  align-items: center;
1862
1900
  justify-content: center;
1863
- font-size: ${font.size.sm};
1901
+ font-size: ${font.size.xs};
1864
1902
  font-weight: ${font.weight.medium};
1903
+ border-bottom-width: 1px;
1904
+ border-bottom-style: solid;
1865
1905
  border-bottom: 1px solid ${colors.darkGray[700]};
1866
1906
  }
1867
1907
  & .tsqd-query-hash {
1868
1908
  user-select: text;
1869
- font-size: ${font.size.sm};
1909
+ font-size: ${font.size.xs};
1870
1910
  display: flex;
1871
1911
  align-items: center;
1872
- min-height: ${tokens.size[8]};
1912
+ min-height: ${tokens.size[6]};
1873
1913
  flex: 1;
1874
1914
  padding: ${tokens.size[1]} ${tokens.size[2]};
1875
1915
  font-family: 'Menlo', 'Fira Code', monospace;
@@ -1883,11 +1923,11 @@ const getStyles = () => {
1883
1923
  align-self: stretch;
1884
1924
  display: flex;
1885
1925
  align-items: center;
1886
- padding: 0 ${tokens.size[3]};
1926
+ padding: 0 ${tokens.size[2]};
1887
1927
  color: ${colors.gray[300]};
1888
1928
  background-color: ${colors.darkGray[600]};
1889
1929
  border-bottom: 1px solid ${colors.darkGray[400]};
1890
- font-size: ${font.size.sm};
1930
+ font-size: ${font.size.xs};
1891
1931
  }
1892
1932
  `,
1893
1933
  detailsContainer: css`
@@ -1904,13 +1944,14 @@ const getStyles = () => {
1904
1944
  top: 0;
1905
1945
  z-index: 2;
1906
1946
  background-color: ${colors.darkGray[600]};
1907
- padding: ${tokens.size[2]} ${tokens.size[2]};
1947
+ padding: ${tokens.size[1.5]} ${tokens.size[2]};
1908
1948
  font-weight: ${font.weight.medium};
1909
- font-size: ${font.size.sm};
1949
+ font-size: ${font.size.xs};
1950
+ line-height: ${font.lineHeight.xs};
1910
1951
  text-align: left;
1911
1952
  `,
1912
1953
  detailsBody: css`
1913
- margin: ${tokens.size[2]} 0px ${tokens.size[3]} 0px;
1954
+ margin: ${tokens.size[1.5]} 0px ${tokens.size[2]} 0px;
1914
1955
  & > div {
1915
1956
  display: flex;
1916
1957
  align-items: stretch;
@@ -1918,7 +1959,7 @@ const getStyles = () => {
1918
1959
  line-height: ${font.lineHeight.sm};
1919
1960
  justify-content: space-between;
1920
1961
  & > span {
1921
- font-size: ${font.size.sm};
1962
+ font-size: ${font.size.xs};
1922
1963
  }
1923
1964
  & > span:nth-child(2) {
1924
1965
  font-variant-numeric: tabular-nums;
@@ -1926,39 +1967,39 @@ const getStyles = () => {
1926
1967
  }
1927
1968
 
1928
1969
  & > div:first-child {
1929
- margin-bottom: ${tokens.size[2]};
1970
+ margin-bottom: ${tokens.size[1.5]};
1930
1971
  }
1931
1972
 
1932
1973
  & code {
1933
1974
  font-family: 'Menlo', 'Fira Code', monospace;
1934
1975
  margin: 0;
1935
- font-size: ${font.size.sm};
1936
- line-height: ${font.lineHeight.sm};
1976
+ font-size: ${font.size.xs};
1977
+ line-height: ${font.lineHeight.xs};
1937
1978
  }
1938
1979
  `,
1939
1980
  queryDetailsStatus: css`
1940
1981
  border: 1px solid ${colors.darkGray[200]};
1941
- border-radius: ${tokens.border.radius.md};
1982
+ border-radius: ${tokens.border.radius.sm};
1942
1983
  font-weight: ${font.weight.medium};
1943
1984
  padding: ${tokens.size[1]} ${tokens.size[2.5]};
1944
1985
  `,
1945
1986
  actionsBody: css`
1946
1987
  flex-wrap: wrap;
1947
- margin: ${tokens.size[3]} 0px ${tokens.size[3]} 0px;
1988
+ margin: ${tokens.size[2]} 0px ${tokens.size[2]} 0px;
1948
1989
  display: flex;
1949
1990
  gap: ${tokens.size[2]};
1950
1991
  padding: 0px ${tokens.size[2]};
1951
1992
  & > button {
1952
- font-size: ${font.size.sm};
1953
- padding: ${tokens.size[2]} ${tokens.size[2]};
1993
+ font-size: ${font.size.xs};
1994
+ padding: ${tokens.size[1]} ${tokens.size[2]};
1954
1995
  display: flex;
1955
- border-radius: ${tokens.border.radius.md};
1996
+ border-radius: ${tokens.border.radius.sm};
1956
1997
  border: 1px solid ${colors.darkGray[400]};
1957
1998
  background-color: ${colors.darkGray[600]};
1958
1999
  align-items: center;
1959
2000
  gap: ${tokens.size[2]};
1960
2001
  font-weight: ${font.weight.medium};
1961
- line-height: ${font.lineHeight.sm};
2002
+ line-height: ${font.lineHeight.xs};
1962
2003
  cursor: pointer;
1963
2004
  &:focus-visible {
1964
2005
  outline-offset: 2px;
@@ -1975,17 +2016,17 @@ const getStyles = () => {
1975
2016
  }
1976
2017
 
1977
2018
  & > span {
1978
- width: ${size[2]};
1979
- height: ${size[2]};
2019
+ width: ${size[1.5]};
2020
+ height: ${size[1.5]};
1980
2021
  border-radius: ${tokens.border.radius.full};
1981
2022
  }
1982
2023
  }
1983
2024
  `,
1984
2025
  actionsSelect: css`
1985
- font-size: ${font.size.sm};
1986
- padding: ${tokens.size[2]} ${tokens.size[2]};
2026
+ font-size: ${font.size.xs};
2027
+ padding: ${tokens.size[0.5]} ${tokens.size[2]};
1987
2028
  display: flex;
1988
- border-radius: ${tokens.border.radius.md};
2029
+ border-radius: ${tokens.border.radius.sm};
1989
2030
  overflow: hidden;
1990
2031
  border: 1px solid ${colors.darkGray[400]};
1991
2032
  background-color: ${colors.darkGray[600]};
@@ -2000,8 +2041,8 @@ const getStyles = () => {
2000
2041
  background-color: ${colors.darkGray[500]};
2001
2042
  }
2002
2043
  & > span {
2003
- width: ${size[2]};
2004
- height: ${size[2]};
2044
+ width: ${size[1.5]};
2045
+ height: ${size[1.5]};
2005
2046
  border-radius: ${tokens.border.radius.full};
2006
2047
  }
2007
2048
  &:focus-within {
@@ -2025,57 +2066,77 @@ const getStyles = () => {
2025
2066
  & svg path {
2026
2067
  stroke: ${tokens.colors.red[400]};
2027
2068
  }
2069
+ & svg {
2070
+ width: ${tokens.size[2]};
2071
+ height: ${tokens.size[2]};
2072
+ }
2028
2073
  `,
2029
2074
  settingsMenu: css`
2030
- position: absolute;
2031
- top: calc(100% + ${tokens.size[2]});
2032
- border-radius: ${tokens.border.radius.lg};
2033
- border: 1px solid ${colors.gray[600]};
2034
- right: 0;
2035
- min-width: ${tokens.size[44]};
2036
- background-color: ${colors.darkGray[400]};
2037
- font-size: ${font.size.sm};
2038
- color: ${colors.gray[500]};
2039
- z-index: 7;
2075
+ display: flex;
2076
+ & * {
2077
+ font-family: 'Inter', sans-serif;
2078
+ }
2079
+ flex-direction: column;
2080
+ gap: ${size[0.5]};
2081
+ border-radius: ${tokens.border.radius.sm};
2082
+ border: 1px solid ${colors.gray[700]};
2083
+ background-color: ${colors.darkGray[600]};
2084
+ font-size: ${font.size.xs};
2085
+ color: ${colors.gray[300]};
2086
+ z-index: 99999;
2087
+ min-width: 120px;
2088
+ padding: ${size[0.5]};
2089
+ `,
2090
+ settingsSubTrigger: css`
2091
+ display: flex;
2092
+ align-items: center;
2093
+ justify-content: space-between;
2094
+ border-radius: ${tokens.border.radius.xs};
2095
+ padding: ${tokens.size[0.5]} ${tokens.size[1]};
2096
+ cursor: pointer;
2097
+ background-color: transparent;
2098
+ border: none;
2099
+ & svg {
2100
+ transform: rotate(-90deg);
2101
+ width: ${tokens.size[2]};
2102
+ height: ${tokens.size[2]};
2103
+ }
2104
+ &:hover {
2105
+ background-color: ${colors.darkGray[500]};
2106
+ }
2107
+ &:focus-visible {
2108
+ outline-offset: 2px;
2109
+ outline: 2px solid ${colors.blue[800]};
2110
+ }
2111
+ &.data-disabled {
2112
+ opacity: 0.6;
2113
+ cursor: not-allowed;
2114
+ }
2040
2115
  `,
2041
2116
  settingsMenuHeader: css`
2042
- padding: ${tokens.size[1.5]} ${tokens.size[2.5]};
2043
- color: ${colors.gray[300]};
2117
+ padding: ${tokens.size[0.5]} ${tokens.size[1]};
2044
2118
  font-weight: ${font.weight.medium};
2119
+ border-bottom: 1px solid ${colors.darkGray[400]};
2120
+ color: ${colors.gray[400]};
2121
+ font-size: ${font.size['xs']};
2045
2122
  `,
2046
- settingsMenuSection: css`
2047
- border-top: 1px solid ${colors.gray[600]};
2123
+ settingsSubButton: css`
2048
2124
  display: flex;
2049
- flex-direction: column;
2050
- padding: ${tokens.size[1]} ${tokens.size[1]};
2051
-
2052
- & > button {
2053
- cursor: pointer;
2054
- background-color: transparent;
2055
- border: none;
2056
- padding: ${tokens.size[2]} ${tokens.size[1.5]};
2057
- font-size: ${font.size.sm};
2058
- display: flex;
2059
- align-items: center;
2060
- justify-content: flex-start;
2061
- gap: ${tokens.size[2]};
2062
- border-radius: ${tokens.border.radius.md};
2063
- &:hover {
2064
- background-color: ${colors.darkGray[500]};
2065
- }
2066
-
2067
- &:focus-visible {
2068
- outline-offset: 2px;
2069
- outline: 2px solid ${colors.blue[800]};
2070
- }
2071
- }
2072
-
2073
- & button:nth-child(4) svg {
2074
- transform: rotate(-90deg);
2125
+ align-items: center;
2126
+ justify-content: space-between;
2127
+ color: ${colors.gray[300]};
2128
+ font-size: ${font.size['xs']};
2129
+ border-radius: ${tokens.border.radius.xs};
2130
+ padding: ${tokens.size[0.5]} ${tokens.size[1]};
2131
+ cursor: pointer;
2132
+ background-color: transparent;
2133
+ border: none;
2134
+ &:hover {
2135
+ background-color: ${colors.darkGray[500]};
2075
2136
  }
2076
-
2077
- & button:nth-child(3) svg {
2078
- transform: rotate(90deg);
2137
+ &:focus-visible {
2138
+ outline-offset: 2px;
2139
+ outline: 2px solid ${colors.blue[800]};
2079
2140
  }
2080
2141
  `,
2081
2142
  }