@tanstack/devtools 0.10.4 → 0.10.6

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/dist/dev.js CHANGED
@@ -30,7 +30,7 @@ var TanStackDevtoolsCore = class {
30
30
  const mountTo = el;
31
31
  const dispose = render(() => {
32
32
  const _self$ = this;
33
- this.#Component = lazy(() => import('./devtools/PYVV4DLY.js'));
33
+ this.#Component = lazy(() => import('./devtools/WI3NLQMI.js'));
34
34
  const Devtools = this.#Component;
35
35
  this.#eventBus = new ClientEventBus(this.#eventBusConfig);
36
36
  this.#eventBus.start();
@@ -516,6 +516,69 @@ var tokens = {
516
516
 
517
517
  // src/styles/use-styles.ts
518
518
  var mSecondsToCssSeconds = (mSeconds) => `${(mSeconds / 1e3).toFixed(2)}s`;
519
+ var fadeIn = goober.keyframes`
520
+ from {
521
+ opacity: 0;
522
+ transform: translateY(10px);
523
+ }
524
+ to {
525
+ opacity: 1;
526
+ transform: translateY(0);
527
+ }
528
+ `;
529
+ var slideInRight = goober.keyframes`
530
+ from {
531
+ transform: translateX(100%);
532
+ }
533
+ to {
534
+ transform: translateX(0);
535
+ }
536
+ `;
537
+ var slideUp = goober.keyframes`
538
+ from {
539
+ opacity: 0;
540
+ transform: translateY(20px);
541
+ }
542
+ to {
543
+ opacity: 1;
544
+ transform: translateY(0);
545
+ }
546
+ `;
547
+ var statusFadeIn = goober.keyframes`
548
+ from {
549
+ opacity: 0;
550
+ }
551
+ to {
552
+ opacity: 1;
553
+ }
554
+ `;
555
+ var iconPop = goober.keyframes`
556
+ 0% {
557
+ transform: scale(0);
558
+ }
559
+ 50% {
560
+ transform: scale(1.2);
561
+ }
562
+ 100% {
563
+ transform: scale(1);
564
+ }
565
+ `;
566
+ var spin = goober.keyframes`
567
+ to {
568
+ transform: rotate(360deg);
569
+ }
570
+ `;
571
+ var sparkle = goober.keyframes`
572
+ 0%,
573
+ 100% {
574
+ opacity: 1;
575
+ transform: scale(1) rotate(0deg);
576
+ }
577
+ 50% {
578
+ opacity: 0.6;
579
+ transform: scale(1.1) rotate(10deg);
580
+ }
581
+ `;
519
582
  var stylesFactory = (theme) => {
520
583
  const { colors, font, size, border } = tokens;
521
584
  const { fontFamily, size: fontSize } = font;
@@ -1111,18 +1174,7 @@ var stylesFactory = (theme) => {
1111
1174
  "linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%)",
1112
1175
  "linear-gradient(135deg, #1a1d23 0%, #13161a 100%)"
1113
1176
  )};
1114
- animation: fadeIn 0.3s ease;
1115
-
1116
- @keyframes fadeIn {
1117
- from {
1118
- opacity: 0;
1119
- transform: translateY(10px);
1120
- }
1121
- to {
1122
- opacity: 1;
1123
- transform: translateY(0);
1124
- }
1125
- }
1177
+ animation: ${fadeIn} 0.3s ease;
1126
1178
  `,
1127
1179
  pluginMarketplaceHeader: css2`
1128
1180
  margin-bottom: 2rem;
@@ -1268,16 +1320,7 @@ var stylesFactory = (theme) => {
1268
1320
  z-index: 1000;
1269
1321
  display: flex;
1270
1322
  flex-direction: column;
1271
- animation: slideInRight 0.3s ease;
1272
-
1273
- @keyframes slideInRight {
1274
- from {
1275
- transform: translateX(100%);
1276
- }
1277
- to {
1278
- transform: translateX(0);
1279
- }
1280
- }
1323
+ animation: ${slideInRight} 0.3s ease;
1281
1324
  `,
1282
1325
  pluginMarketplaceSettingsPanelHeader: css2`
1283
1326
  display: flex;
@@ -1318,18 +1361,7 @@ var stylesFactory = (theme) => {
1318
1361
  display: grid;
1319
1362
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
1320
1363
  gap: 1.25rem;
1321
- animation: slideUp 0.4s ease;
1322
-
1323
- @keyframes slideUp {
1324
- from {
1325
- opacity: 0;
1326
- transform: translateY(20px);
1327
- }
1328
- to {
1329
- opacity: 1;
1330
- transform: translateY(0);
1331
- }
1332
- }
1364
+ animation: ${slideUp} 0.4s ease;
1333
1365
  `,
1334
1366
  pluginMarketplaceCard: css2`
1335
1367
  background: ${t(colors.white, colors.darkGray[800])};
@@ -1517,33 +1549,12 @@ var stylesFactory = (theme) => {
1517
1549
  align-items: center;
1518
1550
  gap: 0.5rem;
1519
1551
  color: ${t(colors.green[600], colors.green[400])};
1520
- animation: statusFadeIn 0.3s ease;
1521
-
1522
- @keyframes statusFadeIn {
1523
- from {
1524
- opacity: 0;
1525
- }
1526
- to {
1527
- opacity: 1;
1528
- }
1529
- }
1552
+ animation: ${statusFadeIn} 0.3s ease;
1530
1553
 
1531
1554
  svg {
1532
1555
  width: 18px;
1533
1556
  height: 18px;
1534
- animation: iconPop 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55);
1535
- }
1536
-
1537
- @keyframes iconPop {
1538
- 0% {
1539
- transform: scale(0);
1540
- }
1541
- 50% {
1542
- transform: scale(1.2);
1543
- }
1544
- 100% {
1545
- transform: scale(1);
1546
- }
1557
+ animation: ${iconPop} 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55);
1547
1558
  }
1548
1559
  `,
1549
1560
  pluginMarketplaceCardSpinner: css2`
@@ -1552,13 +1563,7 @@ var stylesFactory = (theme) => {
1552
1563
  border: 2px solid ${t(colors.gray[200], colors.gray[700])};
1553
1564
  border-top-color: ${t(colors.blue[600], colors.blue[400])};
1554
1565
  border-radius: 50%;
1555
- animation: spin 0.8s linear infinite;
1556
-
1557
- @keyframes spin {
1558
- to {
1559
- transform: rotate(360deg);
1560
- }
1561
- }
1566
+ animation: ${spin} 0.8s linear infinite;
1562
1567
  `,
1563
1568
  pluginMarketplaceCardStatusText: css2`
1564
1569
  font-size: 0.875rem;
@@ -1575,7 +1580,7 @@ var stylesFactory = (theme) => {
1575
1580
  background: ${t(colors.white, colors.darkGray[800])};
1576
1581
  border: 2px dashed ${t(colors.gray[300], colors.gray[700])};
1577
1582
  border-radius: 0.75rem;
1578
- animation: fadeIn 0.3s ease;
1583
+ animation: ${fadeIn} 0.3s ease;
1579
1584
  `,
1580
1585
  pluginMarketplaceEmptyText: css2`
1581
1586
  font-size: 0.95rem;
@@ -1783,19 +1788,7 @@ var stylesFactory = (theme) => {
1783
1788
  &::before {
1784
1789
  content: '✨';
1785
1790
  font-size: 0.875rem;
1786
- animation: sparkle 2s ease-in-out infinite;
1787
- }
1788
- }
1789
-
1790
- @keyframes sparkle {
1791
- 0%,
1792
- 100% {
1793
- opacity: 1;
1794
- transform: scale(1) rotate(0deg);
1795
- }
1796
- 50% {
1797
- opacity: 0.6;
1798
- transform: scale(1.1) rotate(10deg);
1791
+ animation: ${sparkle} 2s ease-in-out infinite;
1799
1792
  }
1800
1793
  }
1801
1794
 
@@ -1808,7 +1801,7 @@ var stylesFactory = (theme) => {
1808
1801
  border-left-color: ${t(colors.blue[500], colors.blue[400])};
1809
1802
 
1810
1803
  h3::before {
1811
- animation: sparkle 0.5s ease-in-out infinite;
1804
+ animation: ${sparkle} 0.5s ease-in-out infinite;
1812
1805
  }
1813
1806
  }
1814
1807
 
@@ -3472,7 +3465,7 @@ var Tabs = (props) => {
3472
3465
  children: (tab) => ssr(_tmpl$210, ssrAttribute("class", escape(clsx3(styles().tab, {
3473
3466
  active: state().activeTab === tab.id
3474
3467
  }), true), false), escape(tab.icon()))
3475
- })), pipWindow().pipWindow !== null ? escape(null) : ssr(_tmpl$37, "margin-top:auto", ssrAttribute("class", escape(clsx3(styles().tab, "detach"), true), false), escape(createComponent(PiP, {})), ssrAttribute("class", escape(clsx3(styles().tab, "close"), true), false), escape(createComponent(X, {}))));
3468
+ })), pipWindow().pipWindow !== null ? escape(null) : ssr(_tmpl$37, "margin-top:auto;width:100%", ssrAttribute("class", escape(clsx3(styles().tab, "detach"), true), false), escape(createComponent(PiP, {})), ssrAttribute("class", escape(clsx3(styles().tab, "close"), true), false), escape(createComponent(X, {}))));
3476
3469
  };
3477
3470
  var _tmpl$20 = ["<div", ">", "</div>"];
3478
3471
  var TabContent = () => {
@@ -516,6 +516,69 @@ var tokens = {
516
516
 
517
517
  // src/styles/use-styles.ts
518
518
  var mSecondsToCssSeconds = (mSeconds) => `${(mSeconds / 1e3).toFixed(2)}s`;
519
+ var fadeIn = goober.keyframes`
520
+ from {
521
+ opacity: 0;
522
+ transform: translateY(10px);
523
+ }
524
+ to {
525
+ opacity: 1;
526
+ transform: translateY(0);
527
+ }
528
+ `;
529
+ var slideInRight = goober.keyframes`
530
+ from {
531
+ transform: translateX(100%);
532
+ }
533
+ to {
534
+ transform: translateX(0);
535
+ }
536
+ `;
537
+ var slideUp = goober.keyframes`
538
+ from {
539
+ opacity: 0;
540
+ transform: translateY(20px);
541
+ }
542
+ to {
543
+ opacity: 1;
544
+ transform: translateY(0);
545
+ }
546
+ `;
547
+ var statusFadeIn = goober.keyframes`
548
+ from {
549
+ opacity: 0;
550
+ }
551
+ to {
552
+ opacity: 1;
553
+ }
554
+ `;
555
+ var iconPop = goober.keyframes`
556
+ 0% {
557
+ transform: scale(0);
558
+ }
559
+ 50% {
560
+ transform: scale(1.2);
561
+ }
562
+ 100% {
563
+ transform: scale(1);
564
+ }
565
+ `;
566
+ var spin = goober.keyframes`
567
+ to {
568
+ transform: rotate(360deg);
569
+ }
570
+ `;
571
+ var sparkle = goober.keyframes`
572
+ 0%,
573
+ 100% {
574
+ opacity: 1;
575
+ transform: scale(1) rotate(0deg);
576
+ }
577
+ 50% {
578
+ opacity: 0.6;
579
+ transform: scale(1.1) rotate(10deg);
580
+ }
581
+ `;
519
582
  var stylesFactory = (theme) => {
520
583
  const { colors, font, size, border } = tokens;
521
584
  const { fontFamily, size: fontSize } = font;
@@ -1111,18 +1174,7 @@ var stylesFactory = (theme) => {
1111
1174
  "linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%)",
1112
1175
  "linear-gradient(135deg, #1a1d23 0%, #13161a 100%)"
1113
1176
  )};
1114
- animation: fadeIn 0.3s ease;
1115
-
1116
- @keyframes fadeIn {
1117
- from {
1118
- opacity: 0;
1119
- transform: translateY(10px);
1120
- }
1121
- to {
1122
- opacity: 1;
1123
- transform: translateY(0);
1124
- }
1125
- }
1177
+ animation: ${fadeIn} 0.3s ease;
1126
1178
  `,
1127
1179
  pluginMarketplaceHeader: css2`
1128
1180
  margin-bottom: 2rem;
@@ -1268,16 +1320,7 @@ var stylesFactory = (theme) => {
1268
1320
  z-index: 1000;
1269
1321
  display: flex;
1270
1322
  flex-direction: column;
1271
- animation: slideInRight 0.3s ease;
1272
-
1273
- @keyframes slideInRight {
1274
- from {
1275
- transform: translateX(100%);
1276
- }
1277
- to {
1278
- transform: translateX(0);
1279
- }
1280
- }
1323
+ animation: ${slideInRight} 0.3s ease;
1281
1324
  `,
1282
1325
  pluginMarketplaceSettingsPanelHeader: css2`
1283
1326
  display: flex;
@@ -1318,18 +1361,7 @@ var stylesFactory = (theme) => {
1318
1361
  display: grid;
1319
1362
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
1320
1363
  gap: 1.25rem;
1321
- animation: slideUp 0.4s ease;
1322
-
1323
- @keyframes slideUp {
1324
- from {
1325
- opacity: 0;
1326
- transform: translateY(20px);
1327
- }
1328
- to {
1329
- opacity: 1;
1330
- transform: translateY(0);
1331
- }
1332
- }
1364
+ animation: ${slideUp} 0.4s ease;
1333
1365
  `,
1334
1366
  pluginMarketplaceCard: css2`
1335
1367
  background: ${t(colors.white, colors.darkGray[800])};
@@ -1517,33 +1549,12 @@ var stylesFactory = (theme) => {
1517
1549
  align-items: center;
1518
1550
  gap: 0.5rem;
1519
1551
  color: ${t(colors.green[600], colors.green[400])};
1520
- animation: statusFadeIn 0.3s ease;
1521
-
1522
- @keyframes statusFadeIn {
1523
- from {
1524
- opacity: 0;
1525
- }
1526
- to {
1527
- opacity: 1;
1528
- }
1529
- }
1552
+ animation: ${statusFadeIn} 0.3s ease;
1530
1553
 
1531
1554
  svg {
1532
1555
  width: 18px;
1533
1556
  height: 18px;
1534
- animation: iconPop 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55);
1535
- }
1536
-
1537
- @keyframes iconPop {
1538
- 0% {
1539
- transform: scale(0);
1540
- }
1541
- 50% {
1542
- transform: scale(1.2);
1543
- }
1544
- 100% {
1545
- transform: scale(1);
1546
- }
1557
+ animation: ${iconPop} 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55);
1547
1558
  }
1548
1559
  `,
1549
1560
  pluginMarketplaceCardSpinner: css2`
@@ -1552,13 +1563,7 @@ var stylesFactory = (theme) => {
1552
1563
  border: 2px solid ${t(colors.gray[200], colors.gray[700])};
1553
1564
  border-top-color: ${t(colors.blue[600], colors.blue[400])};
1554
1565
  border-radius: 50%;
1555
- animation: spin 0.8s linear infinite;
1556
-
1557
- @keyframes spin {
1558
- to {
1559
- transform: rotate(360deg);
1560
- }
1561
- }
1566
+ animation: ${spin} 0.8s linear infinite;
1562
1567
  `,
1563
1568
  pluginMarketplaceCardStatusText: css2`
1564
1569
  font-size: 0.875rem;
@@ -1575,7 +1580,7 @@ var stylesFactory = (theme) => {
1575
1580
  background: ${t(colors.white, colors.darkGray[800])};
1576
1581
  border: 2px dashed ${t(colors.gray[300], colors.gray[700])};
1577
1582
  border-radius: 0.75rem;
1578
- animation: fadeIn 0.3s ease;
1583
+ animation: ${fadeIn} 0.3s ease;
1579
1584
  `,
1580
1585
  pluginMarketplaceEmptyText: css2`
1581
1586
  font-size: 0.95rem;
@@ -1783,19 +1788,7 @@ var stylesFactory = (theme) => {
1783
1788
  &::before {
1784
1789
  content: '✨';
1785
1790
  font-size: 0.875rem;
1786
- animation: sparkle 2s ease-in-out infinite;
1787
- }
1788
- }
1789
-
1790
- @keyframes sparkle {
1791
- 0%,
1792
- 100% {
1793
- opacity: 1;
1794
- transform: scale(1) rotate(0deg);
1795
- }
1796
- 50% {
1797
- opacity: 0.6;
1798
- transform: scale(1.1) rotate(10deg);
1791
+ animation: ${sparkle} 2s ease-in-out infinite;
1799
1792
  }
1800
1793
  }
1801
1794
 
@@ -1808,7 +1801,7 @@ var stylesFactory = (theme) => {
1808
1801
  border-left-color: ${t(colors.blue[500], colors.blue[400])};
1809
1802
 
1810
1803
  h3::before {
1811
- animation: sparkle 0.5s ease-in-out infinite;
1804
+ animation: ${sparkle} 0.5s ease-in-out infinite;
1812
1805
  }
1813
1806
  }
1814
1807
 
@@ -3996,6 +3989,7 @@ var Tabs = (props) => {
3996
3989
  return () => _c$() ? null : (() => {
3997
3990
  var _el$3 = _tmpl$36(), _el$4 = _el$3.firstChild, _el$5 = _el$4.nextSibling;
3998
3991
  _el$3.style.setProperty("margin-top", "auto");
3992
+ _el$3.style.setProperty("width", "100%");
3999
3993
  _el$4.$$click = handleDetachment;
4000
3994
  insert(_el$4, createComponent(PiP, {}));
4001
3995
  _el$5.$$click = () => props.toggleOpen();
package/dist/index.js CHANGED
@@ -30,7 +30,7 @@ var TanStackDevtoolsCore = class {
30
30
  const mountTo = el;
31
31
  const dispose = render(() => {
32
32
  const _self$ = this;
33
- this.#Component = lazy(() => import('./devtools/PYVV4DLY.js'));
33
+ this.#Component = lazy(() => import('./devtools/WI3NLQMI.js'));
34
34
  const Devtools = this.#Component;
35
35
  this.#eventBus = new ClientEventBus(this.#eventBusConfig);
36
36
  this.#eventBus.start();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tanstack/devtools",
3
- "version": "0.10.4",
3
+ "version": "0.10.6",
4
4
  "description": "TanStack Devtools is a set of tools for building advanced devtools for your application.",
5
5
  "author": "Tanner Linsley",
6
6
  "license": "MIT",
@@ -56,7 +56,7 @@
56
56
  "goober": "^2.1.16",
57
57
  "solid-js": "^1.9.9",
58
58
  "@tanstack/devtools-client": "0.0.5",
59
- "@tanstack/devtools-event-bus": "0.4.0",
59
+ "@tanstack/devtools-event-bus": "0.4.1",
60
60
  "@tanstack/devtools-ui": "0.4.4"
61
61
  },
62
62
  "peerDependencies": {
@@ -45,6 +45,7 @@ export const Tabs = (props: TabsProps) => {
45
45
  <div
46
46
  style={{
47
47
  'margin-top': 'auto',
48
+ width: '100%',
48
49
  }}
49
50
  >
50
51
  <button
@@ -9,6 +9,76 @@ import type { DevtoolsStore } from '../context/devtools-store'
9
9
  const mSecondsToCssSeconds = (mSeconds: number) =>
10
10
  `${(mSeconds / 1000).toFixed(2)}s`
11
11
 
12
+ const fadeIn = goober.keyframes`
13
+ from {
14
+ opacity: 0;
15
+ transform: translateY(10px);
16
+ }
17
+ to {
18
+ opacity: 1;
19
+ transform: translateY(0);
20
+ }
21
+ `
22
+
23
+ const slideInRight = goober.keyframes`
24
+ from {
25
+ transform: translateX(100%);
26
+ }
27
+ to {
28
+ transform: translateX(0);
29
+ }
30
+ `
31
+
32
+ const slideUp = goober.keyframes`
33
+ from {
34
+ opacity: 0;
35
+ transform: translateY(20px);
36
+ }
37
+ to {
38
+ opacity: 1;
39
+ transform: translateY(0);
40
+ }
41
+ `
42
+
43
+ const statusFadeIn = goober.keyframes`
44
+ from {
45
+ opacity: 0;
46
+ }
47
+ to {
48
+ opacity: 1;
49
+ }
50
+ `
51
+
52
+ const iconPop = goober.keyframes`
53
+ 0% {
54
+ transform: scale(0);
55
+ }
56
+ 50% {
57
+ transform: scale(1.2);
58
+ }
59
+ 100% {
60
+ transform: scale(1);
61
+ }
62
+ `
63
+
64
+ const spin = goober.keyframes`
65
+ to {
66
+ transform: rotate(360deg);
67
+ }
68
+ `
69
+
70
+ const sparkle = goober.keyframes`
71
+ 0%,
72
+ 100% {
73
+ opacity: 1;
74
+ transform: scale(1) rotate(0deg);
75
+ }
76
+ 50% {
77
+ opacity: 0.6;
78
+ transform: scale(1.1) rotate(10deg);
79
+ }
80
+ `
81
+
12
82
  const stylesFactory = (theme: DevtoolsStore['settings']['theme']) => {
13
83
  const { colors, font, size, border } = tokens
14
84
  const { fontFamily, size: fontSize } = font
@@ -635,18 +705,7 @@ const stylesFactory = (theme: DevtoolsStore['settings']['theme']) => {
635
705
  'linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%)',
636
706
  'linear-gradient(135deg, #1a1d23 0%, #13161a 100%)',
637
707
  )};
638
- animation: fadeIn 0.3s ease;
639
-
640
- @keyframes fadeIn {
641
- from {
642
- opacity: 0;
643
- transform: translateY(10px);
644
- }
645
- to {
646
- opacity: 1;
647
- transform: translateY(0);
648
- }
649
- }
708
+ animation: ${fadeIn} 0.3s ease;
650
709
  `,
651
710
  pluginMarketplaceHeader: css`
652
711
  margin-bottom: 2rem;
@@ -792,16 +851,7 @@ const stylesFactory = (theme: DevtoolsStore['settings']['theme']) => {
792
851
  z-index: 1000;
793
852
  display: flex;
794
853
  flex-direction: column;
795
- animation: slideInRight 0.3s ease;
796
-
797
- @keyframes slideInRight {
798
- from {
799
- transform: translateX(100%);
800
- }
801
- to {
802
- transform: translateX(0);
803
- }
804
- }
854
+ animation: ${slideInRight} 0.3s ease;
805
855
  `,
806
856
  pluginMarketplaceSettingsPanelHeader: css`
807
857
  display: flex;
@@ -842,18 +892,7 @@ const stylesFactory = (theme: DevtoolsStore['settings']['theme']) => {
842
892
  display: grid;
843
893
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
844
894
  gap: 1.25rem;
845
- animation: slideUp 0.4s ease;
846
-
847
- @keyframes slideUp {
848
- from {
849
- opacity: 0;
850
- transform: translateY(20px);
851
- }
852
- to {
853
- opacity: 1;
854
- transform: translateY(0);
855
- }
856
- }
895
+ animation: ${slideUp} 0.4s ease;
857
896
  `,
858
897
  pluginMarketplaceCard: css`
859
898
  background: ${t(colors.white, colors.darkGray[800])};
@@ -1041,33 +1080,12 @@ const stylesFactory = (theme: DevtoolsStore['settings']['theme']) => {
1041
1080
  align-items: center;
1042
1081
  gap: 0.5rem;
1043
1082
  color: ${t(colors.green[600], colors.green[400])};
1044
- animation: statusFadeIn 0.3s ease;
1045
-
1046
- @keyframes statusFadeIn {
1047
- from {
1048
- opacity: 0;
1049
- }
1050
- to {
1051
- opacity: 1;
1052
- }
1053
- }
1083
+ animation: ${statusFadeIn} 0.3s ease;
1054
1084
 
1055
1085
  svg {
1056
1086
  width: 18px;
1057
1087
  height: 18px;
1058
- animation: iconPop 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55);
1059
- }
1060
-
1061
- @keyframes iconPop {
1062
- 0% {
1063
- transform: scale(0);
1064
- }
1065
- 50% {
1066
- transform: scale(1.2);
1067
- }
1068
- 100% {
1069
- transform: scale(1);
1070
- }
1088
+ animation: ${iconPop} 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55);
1071
1089
  }
1072
1090
  `,
1073
1091
  pluginMarketplaceCardSpinner: css`
@@ -1076,13 +1094,7 @@ const stylesFactory = (theme: DevtoolsStore['settings']['theme']) => {
1076
1094
  border: 2px solid ${t(colors.gray[200], colors.gray[700])};
1077
1095
  border-top-color: ${t(colors.blue[600], colors.blue[400])};
1078
1096
  border-radius: 50%;
1079
- animation: spin 0.8s linear infinite;
1080
-
1081
- @keyframes spin {
1082
- to {
1083
- transform: rotate(360deg);
1084
- }
1085
- }
1097
+ animation: ${spin} 0.8s linear infinite;
1086
1098
  `,
1087
1099
  pluginMarketplaceCardStatusText: css`
1088
1100
  font-size: 0.875rem;
@@ -1099,7 +1111,7 @@ const stylesFactory = (theme: DevtoolsStore['settings']['theme']) => {
1099
1111
  background: ${t(colors.white, colors.darkGray[800])};
1100
1112
  border: 2px dashed ${t(colors.gray[300], colors.gray[700])};
1101
1113
  border-radius: 0.75rem;
1102
- animation: fadeIn 0.3s ease;
1114
+ animation: ${fadeIn} 0.3s ease;
1103
1115
  `,
1104
1116
  pluginMarketplaceEmptyText: css`
1105
1117
  font-size: 0.95rem;
@@ -1311,19 +1323,7 @@ const stylesFactory = (theme: DevtoolsStore['settings']['theme']) => {
1311
1323
  &::before {
1312
1324
  content: '✨';
1313
1325
  font-size: 0.875rem;
1314
- animation: sparkle 2s ease-in-out infinite;
1315
- }
1316
- }
1317
-
1318
- @keyframes sparkle {
1319
- 0%,
1320
- 100% {
1321
- opacity: 1;
1322
- transform: scale(1) rotate(0deg);
1323
- }
1324
- 50% {
1325
- opacity: 0.6;
1326
- transform: scale(1.1) rotate(10deg);
1326
+ animation: ${sparkle} 2s ease-in-out infinite;
1327
1327
  }
1328
1328
  }
1329
1329
 
@@ -1336,7 +1336,7 @@ const stylesFactory = (theme: DevtoolsStore['settings']['theme']) => {
1336
1336
  border-left-color: ${t(colors.blue[500], colors.blue[400])};
1337
1337
 
1338
1338
  h3::before {
1339
- animation: sparkle 0.5s ease-in-out infinite;
1339
+ animation: ${sparkle} 0.5s ease-in-out infinite;
1340
1340
  }
1341
1341
  }
1342
1342