@opentabs-dev/browser-extension 0.0.52 → 0.0.54

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 (88) hide show
  1. package/dist/background-message-handlers.d.ts +33 -6
  2. package/dist/background-message-handlers.d.ts.map +1 -1
  3. package/dist/background-message-handlers.js +335 -20
  4. package/dist/background-message-handlers.js.map +1 -1
  5. package/dist/background.js +859 -365
  6. package/dist/background.js.map +1 -1
  7. package/dist/browser-commands/extension-commands.d.ts.map +1 -1
  8. package/dist/browser-commands/extension-commands.js +5 -2
  9. package/dist/browser-commands/extension-commands.js.map +1 -1
  10. package/dist/browser-commands/key-press-command.d.ts +2 -0
  11. package/dist/browser-commands/key-press-command.d.ts.map +1 -1
  12. package/dist/browser-commands/key-press-command.js +42 -4
  13. package/dist/browser-commands/key-press-command.js.map +1 -1
  14. package/dist/confirmation-badge.d.ts +17 -3
  15. package/dist/confirmation-badge.d.ts.map +1 -1
  16. package/dist/confirmation-badge.js +55 -18
  17. package/dist/confirmation-badge.js.map +1 -1
  18. package/dist/constants.d.ts +8 -0
  19. package/dist/constants.d.ts.map +1 -1
  20. package/dist/constants.js +8 -0
  21. package/dist/constants.js.map +1 -1
  22. package/dist/dispatch-helpers.d.ts +1 -1
  23. package/dist/extension-messages.d.ts +48 -21
  24. package/dist/extension-messages.d.ts.map +1 -1
  25. package/dist/known-methods.d.ts +2 -2
  26. package/dist/known-methods.d.ts.map +1 -1
  27. package/dist/known-methods.js +1 -2
  28. package/dist/known-methods.js.map +1 -1
  29. package/dist/message-router.d.ts.map +1 -1
  30. package/dist/message-router.js +163 -24
  31. package/dist/message-router.js.map +1 -1
  32. package/dist/offscreen/index.js +17 -7
  33. package/dist/offscreen/index.js.map +1 -1
  34. package/dist/server-request.d.ts +19 -0
  35. package/dist/server-request.d.ts.map +1 -0
  36. package/dist/server-request.js +79 -0
  37. package/dist/server-request.js.map +1 -0
  38. package/dist/server-state-cache.d.ts +68 -0
  39. package/dist/server-state-cache.d.ts.map +1 -0
  40. package/dist/server-state-cache.js +208 -0
  41. package/dist/server-state-cache.js.map +1 -0
  42. package/dist/side-panel/App.d.ts.map +1 -1
  43. package/dist/side-panel/App.js +60 -58
  44. package/dist/side-panel/App.js.map +1 -1
  45. package/dist/side-panel/bridge.d.ts +31 -34
  46. package/dist/side-panel/bridge.d.ts.map +1 -1
  47. package/dist/side-panel/bridge.js +27 -91
  48. package/dist/side-panel/bridge.js.map +1 -1
  49. package/dist/side-panel/components/BrowserToolsCard.d.ts.map +1 -1
  50. package/dist/side-panel/components/BrowserToolsCard.js +2 -1
  51. package/dist/side-panel/components/BrowserToolsCard.js.map +1 -1
  52. package/dist/side-panel/components/ConfirmationDialog.d.ts +7 -2
  53. package/dist/side-panel/components/ConfirmationDialog.d.ts.map +1 -1
  54. package/dist/side-panel/components/ConfirmationDialog.js.map +1 -1
  55. package/dist/side-panel/components/PluginCard.d.ts.map +1 -1
  56. package/dist/side-panel/components/PluginCard.js +2 -1
  57. package/dist/side-panel/components/PluginCard.js.map +1 -1
  58. package/dist/side-panel/components/PluginIcon.d.ts +2 -1
  59. package/dist/side-panel/components/PluginIcon.d.ts.map +1 -1
  60. package/dist/side-panel/components/PluginIcon.js +23 -5
  61. package/dist/side-panel/components/PluginIcon.js.map +1 -1
  62. package/dist/side-panel/components/ToolIcon.d.ts +2 -1
  63. package/dist/side-panel/components/ToolIcon.d.ts.map +1 -1
  64. package/dist/side-panel/components/ToolIcon.js +17 -3
  65. package/dist/side-panel/components/ToolIcon.js.map +1 -1
  66. package/dist/side-panel/components/ToolRow.d.ts.map +1 -1
  67. package/dist/side-panel/components/ToolRow.js +1 -2
  68. package/dist/side-panel/components/ToolRow.js.map +1 -1
  69. package/dist/side-panel/components/retro/Button.d.ts +1 -1
  70. package/dist/side-panel/hooks/useServerNotifications.d.ts +1 -3
  71. package/dist/side-panel/hooks/useServerNotifications.d.ts.map +1 -1
  72. package/dist/side-panel/hooks/useServerNotifications.js +15 -11
  73. package/dist/side-panel/hooks/useServerNotifications.js.map +1 -1
  74. package/dist/side-panel/side-panel.js +1254 -1218
  75. package/dist/side-panel/styles.css +1 -1
  76. package/dist/side-panel-toggle.d.ts +6 -0
  77. package/dist/side-panel-toggle.d.ts.map +1 -1
  78. package/dist/side-panel-toggle.js +6 -0
  79. package/dist/side-panel-toggle.js.map +1 -1
  80. package/dist/tab-state.d.ts +26 -1
  81. package/dist/tab-state.d.ts.map +1 -1
  82. package/dist/tab-state.js +163 -11
  83. package/dist/tab-state.js.map +1 -1
  84. package/dist/tool-dispatch.d.ts.map +1 -1
  85. package/dist/tool-dispatch.js +3 -2
  86. package/dist/tool-dispatch.js.map +1 -1
  87. package/manifest.json +1 -1
  88. package/package.json +1 -1
@@ -58455,104 +58455,56 @@ var import_compiler_runtime31 = __toESM(require_compiler_runtime(), 1);
58455
58455
  var matchesTool = (tool, filterLower) => tool.displayName.toLowerCase().includes(filterLower) || tool.name.toLowerCase().includes(filterLower) || tool.description.toLowerCase().includes(filterLower);
58456
58456
  var matchesPlugin = (plugin, filterLower) => plugin.displayName.toLowerCase().includes(filterLower) || plugin.name.toLowerCase().includes(filterLower) || (plugin.tools ?? []).some((tool) => tool.displayName.toLowerCase().includes(filterLower) || tool.name.toLowerCase().includes(filterLower));
58457
58457
  var extractShortName = (name) => (name.split("/").pop() ?? name).replace(/^opentabs-plugin-/, "");
58458
- var REQUEST_TIMEOUT_MS = 3e4;
58459
- var pendingRequests = /* @__PURE__ */ new Map();
58460
- var rejectAllPending = () => {
58461
- for (const [id, pending] of pendingRequests) {
58462
- pendingRequests.delete(id);
58463
- clearTimeout(pending.timerId);
58464
- pending.reject(new Error("Server disconnected"));
58465
- }
58466
- };
58467
- var sendRequest = (method, params = {}) => {
58468
- const id = crypto.randomUUID();
58469
- const data = {
58470
- jsonrpc: "2.0",
58471
- method,
58472
- params,
58473
- id
58474
- };
58475
- return new Promise((resolve, reject) => {
58476
- const timerId = setTimeout(() => {
58477
- if (pendingRequests.has(id)) {
58478
- pendingRequests.delete(id);
58479
- reject(new Error(`Request ${method} timed out after ${REQUEST_TIMEOUT_MS}ms`));
58480
- }
58481
- }, REQUEST_TIMEOUT_MS);
58482
- pendingRequests.set(id, {
58483
- resolve,
58484
- reject,
58485
- timerId
58486
- });
58487
- chrome.runtime.sendMessage({
58488
- type: "bg:send",
58489
- data
58490
- }).catch((err) => {
58491
- clearTimeout(timerId);
58492
- pendingRequests.delete(id);
58493
- reject(err instanceof Error ? err : new Error(String(err)));
58494
- });
58495
- });
58496
- };
58497
- var handleServerResponse = (data) => {
58498
- const rawId = data.id;
58499
- if (rawId === void 0 || rawId === null || data.method) return false;
58500
- const id = String(rawId);
58501
- const pending = pendingRequests.get(id);
58502
- if (!pending) return false;
58503
- pendingRequests.delete(id);
58504
- clearTimeout(pending.timerId);
58505
- if ("error" in data) {
58506
- const err = data.error;
58507
- pending.reject(new Error(err.message ?? "Unknown server error"));
58508
- } else {
58509
- pending.resolve(data.result);
58510
- }
58511
- return true;
58512
- };
58513
- var getConnectionState = () => new Promise((resolve) => {
58514
- chrome.runtime.sendMessage({
58515
- type: "bg:getConnectionState"
58516
- }, (response) => {
58458
+ var sendBgMessage = (message) => new Promise((resolve, reject) => {
58459
+ chrome.runtime.sendMessage(message, (response) => {
58517
58460
  if (chrome.runtime.lastError) {
58518
- resolve({
58519
- connected: false
58520
- });
58521
- } else {
58522
- resolve({
58523
- connected: response?.connected === true,
58524
- disconnectReason: response?.disconnectReason
58525
- });
58461
+ reject(new Error(chrome.runtime.lastError.message ?? "Unknown error"));
58462
+ return;
58463
+ }
58464
+ if (response && typeof response === "object" && "error" in response) {
58465
+ reject(new Error(response.error));
58466
+ return;
58526
58467
  }
58468
+ resolve(response);
58527
58469
  });
58528
58470
  });
58529
- var fetchConfigState = () => sendRequest("config.getState");
58530
- var setToolEnabled = (plugin, tool, enabled) => sendRequest("config.setToolEnabled", {
58471
+ var getFullState = () => sendBgMessage({
58472
+ type: "bg:getFullState"
58473
+ });
58474
+ var setToolEnabled = (plugin, tool, enabled) => sendBgMessage({
58475
+ type: "bg:setToolEnabled",
58531
58476
  plugin,
58532
58477
  tool,
58533
58478
  enabled
58534
58479
  });
58535
- var setAllToolsEnabled = (plugin, enabled) => sendRequest("config.setAllToolsEnabled", {
58480
+ var setAllToolsEnabled = (plugin, enabled) => sendBgMessage({
58481
+ type: "bg:setAllToolsEnabled",
58536
58482
  plugin,
58537
58483
  enabled
58538
58484
  });
58539
- var setBrowserToolEnabled = (tool, enabled) => sendRequest("config.setBrowserToolEnabled", {
58485
+ var setBrowserToolEnabled = (tool, enabled) => sendBgMessage({
58486
+ type: "bg:setBrowserToolEnabled",
58540
58487
  tool,
58541
58488
  enabled
58542
58489
  });
58543
- var setAllBrowserToolsEnabled = (enabled) => sendRequest("config.setAllBrowserToolsEnabled", {
58490
+ var setAllBrowserToolsEnabled = (enabled) => sendBgMessage({
58491
+ type: "bg:setAllBrowserToolsEnabled",
58544
58492
  enabled
58545
58493
  });
58546
- var searchPlugins = (query) => sendRequest("plugin.search", {
58494
+ var searchPlugins = (query) => sendBgMessage({
58495
+ type: "bg:searchPlugins",
58547
58496
  query
58548
58497
  });
58549
- var installPlugin = (name) => sendRequest("plugin.install", {
58498
+ var installPlugin = (name) => sendBgMessage({
58499
+ type: "bg:installPlugin",
58550
58500
  name
58551
58501
  });
58552
- var removePlugin = (name) => sendRequest("plugin.remove", {
58502
+ var removePlugin = (name) => sendBgMessage({
58503
+ type: "bg:removePlugin",
58553
58504
  name
58554
58505
  });
58555
- var updatePlugin = (name) => sendRequest("plugin.updateFromRegistry", {
58506
+ var updatePlugin = (name) => sendBgMessage({
58507
+ type: "bg:updatePlugin",
58556
58508
  name
58557
58509
  });
58558
58510
  var sendConfirmationResponse = (id, decision, scope) => {
@@ -58571,7 +58523,7 @@ var sendConfirmationResponse = (id, decision, scope) => {
58571
58523
  };
58572
58524
 
58573
58525
  // src/side-panel/components/BrowserToolsCard.tsx
58574
- var import_compiler_runtime13 = __toESM(require_compiler_runtime(), 1);
58526
+ var import_compiler_runtime12 = __toESM(require_compiler_runtime(), 1);
58575
58527
 
58576
58528
  // src/side-panel/components/BrowserToolsMenu.tsx
58577
58529
  var import_compiler_runtime2 = __toESM(require_compiler_runtime(), 1);
@@ -67813,6 +67765,7 @@ var sanitizeSvg = (svg) => {
67813
67765
  };
67814
67766
 
67815
67767
  // src/side-panel/components/PluginIcon.tsx
67768
+ var import_react7 = __toESM(require_react(), 1);
67816
67769
  var import_jsx_runtime19 = __toESM(require_jsx_runtime(), 1);
67817
67770
  var AVATAR_PALETTE_SIZE = 10;
67818
67771
  var hashString = (str) => {
@@ -67825,28 +67778,57 @@ var hashString = (str) => {
67825
67778
  var getAvatarVar = (pluginName) => `var(--avatar-${String(hashString(pluginName) % AVATAR_PALETTE_SIZE)})`;
67826
67779
  var getAvatarLetter = (displayName, pluginName) => (displayName[0] ?? pluginName[0] ?? "?").toUpperCase();
67827
67780
  var StatusIndicator = (t0) => {
67828
- const $2 = (0, import_compiler_runtime3.c)(15);
67781
+ const $2 = (0, import_compiler_runtime3.c)(24);
67829
67782
  const {
67830
67783
  tabState,
67831
67784
  hasUpdate,
67832
- size: size4
67785
+ size: size4,
67786
+ active: t1
67833
67787
  } = t0;
67788
+ const active = t1 === void 0 ? false : t1;
67789
+ const prevActiveRef = (0, import_react7.useRef)(false);
67790
+ const [fadingOut, setFadingOut] = (0, import_react7.useState)(false);
67791
+ let t2;
67792
+ let t3;
67793
+ if ($2[0] !== active) {
67794
+ t2 = () => {
67795
+ const wasActive = prevActiveRef.current;
67796
+ prevActiveRef.current = active;
67797
+ if (!wasActive || active) {
67798
+ return;
67799
+ }
67800
+ const startTimer = setTimeout(() => setFadingOut(true), 0);
67801
+ const endTimer = setTimeout(() => setFadingOut(false), 500);
67802
+ return () => {
67803
+ clearTimeout(startTimer);
67804
+ clearTimeout(endTimer);
67805
+ };
67806
+ };
67807
+ t3 = [active];
67808
+ $2[0] = active;
67809
+ $2[1] = t2;
67810
+ $2[2] = t3;
67811
+ } else {
67812
+ t2 = $2[1];
67813
+ t3 = $2[2];
67814
+ }
67815
+ (0, import_react7.useEffect)(t2, t3);
67834
67816
  if (tabState === "closed") {
67835
67817
  return null;
67836
67818
  }
67837
- let t1;
67838
- if ($2[0] !== size4) {
67839
- t1 = Math.round(size4 * 0.3);
67840
- $2[0] = size4;
67841
- $2[1] = t1;
67819
+ let t4;
67820
+ if ($2[3] !== size4) {
67821
+ t4 = Math.round(size4 * 0.3);
67822
+ $2[3] = size4;
67823
+ $2[4] = t4;
67842
67824
  } else {
67843
- t1 = $2[1];
67825
+ t4 = $2[4];
67844
67826
  }
67845
- const dotSize = Math.max(8, t1);
67827
+ const dotSize = Math.max(8, t4);
67846
67828
  if (tabState === "unavailable") {
67847
- let t22;
67848
- if ($2[2] !== dotSize) {
67849
- t22 = /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", {
67829
+ let t52;
67830
+ if ($2[5] !== dotSize) {
67831
+ t52 = /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", {
67850
67832
  className: "bg-primary border-card absolute rounded-full border-2",
67851
67833
  style: {
67852
67834
  width: dotSize,
@@ -67855,39 +67837,39 @@ var StatusIndicator = (t0) => {
67855
67837
  right: -2
67856
67838
  }
67857
67839
  });
67858
- $2[2] = dotSize;
67859
- $2[3] = t22;
67840
+ $2[5] = dotSize;
67841
+ $2[6] = t52;
67860
67842
  } else {
67861
- t22 = $2[3];
67843
+ t52 = $2[6];
67862
67844
  }
67863
- return t22;
67845
+ return t52;
67864
67846
  }
67865
67847
  if (hasUpdate) {
67866
- let t22;
67867
- if ($2[4] !== dotSize) {
67868
- t22 = Math.round(dotSize * 0.6);
67869
- $2[4] = dotSize;
67870
- $2[5] = t22;
67848
+ let t52;
67849
+ if ($2[7] !== dotSize) {
67850
+ t52 = Math.round(dotSize * 0.6);
67851
+ $2[7] = dotSize;
67852
+ $2[8] = t52;
67871
67853
  } else {
67872
- t22 = $2[5];
67854
+ t52 = $2[8];
67873
67855
  }
67874
- const iconSize = Math.max(6, t22);
67875
- let t3;
67876
- if ($2[6] !== dotSize) {
67877
- t3 = {
67856
+ const iconSize = Math.max(6, t52);
67857
+ let t62;
67858
+ if ($2[9] !== dotSize) {
67859
+ t62 = {
67878
67860
  width: dotSize,
67879
67861
  height: dotSize,
67880
67862
  bottom: -2,
67881
67863
  right: -2
67882
67864
  };
67883
- $2[6] = dotSize;
67884
- $2[7] = t3;
67865
+ $2[9] = dotSize;
67866
+ $2[10] = t62;
67885
67867
  } else {
67886
- t3 = $2[7];
67868
+ t62 = $2[10];
67887
67869
  }
67888
- let t4;
67889
- if ($2[8] !== iconSize) {
67890
- t4 = /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(ArrowUp, {
67870
+ let t72;
67871
+ if ($2[11] !== iconSize) {
67872
+ t72 = /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(ArrowUp, {
67891
67873
  className: "text-accent-foreground",
67892
67874
  style: {
67893
67875
  width: iconSize,
@@ -67895,43 +67877,63 @@ var StatusIndicator = (t0) => {
67895
67877
  },
67896
67878
  strokeWidth: 3
67897
67879
  });
67898
- $2[8] = iconSize;
67899
- $2[9] = t4;
67880
+ $2[11] = iconSize;
67881
+ $2[12] = t72;
67900
67882
  } else {
67901
- t4 = $2[9];
67883
+ t72 = $2[12];
67902
67884
  }
67903
- let t5;
67904
- if ($2[10] !== t3 || $2[11] !== t4) {
67905
- t5 = /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", {
67885
+ let t82;
67886
+ if ($2[13] !== t62 || $2[14] !== t72) {
67887
+ t82 = /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", {
67906
67888
  className: "bg-accent border-card absolute flex items-center justify-center rounded-full border-2",
67907
- style: t3,
67908
- children: t4
67889
+ style: t62,
67890
+ children: t72
67909
67891
  });
67910
- $2[10] = t3;
67911
- $2[11] = t4;
67912
- $2[12] = t5;
67892
+ $2[13] = t62;
67893
+ $2[14] = t72;
67894
+ $2[15] = t82;
67913
67895
  } else {
67914
- t5 = $2[12];
67896
+ t82 = $2[15];
67915
67897
  }
67916
- return t5;
67898
+ return t82;
67917
67899
  }
67918
- let t2;
67919
- if ($2[13] !== dotSize) {
67920
- t2 = /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", {
67921
- className: "bg-success border-card absolute rounded-full border-2",
67922
- style: {
67923
- width: dotSize,
67924
- height: dotSize,
67925
- bottom: -2,
67926
- right: -2
67927
- }
67900
+ const t5 = active && "animate-activity-flash";
67901
+ const t6 = fadingOut && !active && "animate-activity-fade-out";
67902
+ let t7;
67903
+ if ($2[16] !== t5 || $2[17] !== t6) {
67904
+ t7 = cn("bg-success border-card absolute rounded-full border-2", t5, t6);
67905
+ $2[16] = t5;
67906
+ $2[17] = t6;
67907
+ $2[18] = t7;
67908
+ } else {
67909
+ t7 = $2[18];
67910
+ }
67911
+ let t8;
67912
+ if ($2[19] !== dotSize) {
67913
+ t8 = {
67914
+ width: dotSize,
67915
+ height: dotSize,
67916
+ bottom: -2,
67917
+ right: -2
67918
+ };
67919
+ $2[19] = dotSize;
67920
+ $2[20] = t8;
67921
+ } else {
67922
+ t8 = $2[20];
67923
+ }
67924
+ let t9;
67925
+ if ($2[21] !== t7 || $2[22] !== t8) {
67926
+ t9 = /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", {
67927
+ className: t7,
67928
+ style: t8
67928
67929
  });
67929
- $2[13] = dotSize;
67930
- $2[14] = t2;
67930
+ $2[21] = t7;
67931
+ $2[22] = t8;
67932
+ $2[23] = t9;
67931
67933
  } else {
67932
- t2 = $2[14];
67934
+ t9 = $2[23];
67933
67935
  }
67934
- return t2;
67936
+ return t9;
67935
67937
  };
67936
67938
  var tryGetSanitizedSvg = (rawSvg, pluginName) => {
67937
67939
  if (!rawSvg) return void 0;
@@ -67943,7 +67945,7 @@ var tryGetSanitizedSvg = (rawSvg, pluginName) => {
67943
67945
  }
67944
67946
  };
67945
67947
  var PluginIcon = (t0) => {
67946
- const $2 = (0, import_compiler_runtime3.c)(57);
67948
+ const $2 = (0, import_compiler_runtime3.c)(59);
67947
67949
  const {
67948
67950
  pluginName,
67949
67951
  displayName,
@@ -67952,262 +67954,268 @@ var PluginIcon = (t0) => {
67952
67954
  size: t3,
67953
67955
  className: t4,
67954
67956
  iconSvg,
67955
- iconInactiveSvg
67957
+ iconInactiveSvg,
67958
+ active: t5
67956
67959
  } = t0;
67957
67960
  const tabState = t1 === void 0 ? "closed" : t1;
67958
67961
  const hasUpdate = t2 === void 0 ? false : t2;
67959
67962
  const size4 = t3 === void 0 ? 32 : t3;
67960
67963
  const className = t4 === void 0 ? "" : t4;
67964
+ const active = t5 === void 0 ? false : t5;
67961
67965
  const isReady = tabState === "ready";
67962
67966
  const hasSvg = !!iconSvg;
67963
67967
  const rawSvg = isReady ? iconSvg : iconInactiveSvg;
67964
- let t5;
67968
+ let t6;
67965
67969
  if ($2[0] !== pluginName || $2[1] !== rawSvg) {
67966
- t5 = tryGetSanitizedSvg(rawSvg, pluginName);
67970
+ t6 = tryGetSanitizedSvg(rawSvg, pluginName);
67967
67971
  $2[0] = pluginName;
67968
67972
  $2[1] = rawSvg;
67969
- $2[2] = t5;
67973
+ $2[2] = t6;
67970
67974
  } else {
67971
- t5 = $2[2];
67975
+ t6 = $2[2];
67972
67976
  }
67973
- const svgToRender = t5;
67974
- let t6;
67977
+ const svgToRender = t6;
67978
+ let t7;
67975
67979
  if ($2[3] !== size4) {
67976
- t6 = Math.round(size4 * 0.6);
67980
+ t7 = Math.round(size4 * 0.6);
67977
67981
  $2[3] = size4;
67978
- $2[4] = t6;
67982
+ $2[4] = t7;
67979
67983
  } else {
67980
- t6 = $2[4];
67984
+ t7 = $2[4];
67981
67985
  }
67982
- const innerSize = t6;
67986
+ const innerSize = t7;
67983
67987
  if (hasSvg && svgToRender) {
67984
- const t72 = `relative shrink-0 ${className}`;
67985
- let t82;
67988
+ const t82 = `relative shrink-0 ${className}`;
67989
+ let t92;
67986
67990
  if ($2[5] !== size4) {
67987
- t82 = {
67991
+ t92 = {
67988
67992
  width: size4,
67989
67993
  height: size4
67990
67994
  };
67991
67995
  $2[5] = size4;
67992
- $2[6] = t82;
67996
+ $2[6] = t92;
67993
67997
  } else {
67994
- t82 = $2[6];
67998
+ t92 = $2[6];
67995
67999
  }
67996
- let t92;
68000
+ let t102;
67997
68001
  if ($2[7] !== size4) {
67998
- t92 = {
68002
+ t102 = {
67999
68003
  width: size4,
68000
68004
  height: size4
68001
68005
  };
68002
68006
  $2[7] = size4;
68003
- $2[8] = t92;
68007
+ $2[8] = t102;
68004
68008
  } else {
68005
- t92 = $2[8];
68009
+ t102 = $2[8];
68006
68010
  }
68007
- let t102;
68011
+ let t112;
68008
68012
  if ($2[9] !== innerSize) {
68009
- t102 = {
68013
+ t112 = {
68010
68014
  width: innerSize,
68011
68015
  height: innerSize
68012
68016
  };
68013
68017
  $2[9] = innerSize;
68014
- $2[10] = t102;
68018
+ $2[10] = t112;
68015
68019
  } else {
68016
- t102 = $2[10];
68020
+ t112 = $2[10];
68017
68021
  }
68018
- let t112;
68022
+ let t122;
68019
68023
  if ($2[11] !== svgToRender) {
68020
- t112 = {
68024
+ t122 = {
68021
68025
  __html: svgToRender
68022
68026
  };
68023
68027
  $2[11] = svgToRender;
68024
- $2[12] = t112;
68028
+ $2[12] = t122;
68025
68029
  } else {
68026
- t112 = $2[12];
68030
+ t122 = $2[12];
68027
68031
  }
68028
- let t122;
68029
- if ($2[13] !== t102 || $2[14] !== t112) {
68030
- t122 = /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", {
68032
+ let t132;
68033
+ if ($2[13] !== t112 || $2[14] !== t122) {
68034
+ t132 = /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", {
68031
68035
  className: "overflow-hidden",
68032
- style: t102,
68033
- dangerouslySetInnerHTML: t112
68036
+ style: t112,
68037
+ dangerouslySetInnerHTML: t122
68034
68038
  });
68035
- $2[13] = t102;
68036
- $2[14] = t112;
68037
- $2[15] = t122;
68039
+ $2[13] = t112;
68040
+ $2[14] = t122;
68041
+ $2[15] = t132;
68038
68042
  } else {
68039
- t122 = $2[15];
68043
+ t132 = $2[15];
68040
68044
  }
68041
- let t132;
68042
- if ($2[16] !== t122 || $2[17] !== t92) {
68043
- t132 = /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", {
68045
+ let t142;
68046
+ if ($2[16] !== t102 || $2[17] !== t132) {
68047
+ t142 = /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", {
68044
68048
  className: "border-border flex h-full w-full items-center justify-center rounded border-2",
68045
- style: t92,
68046
- children: t122
68049
+ style: t102,
68050
+ children: t132
68047
68051
  });
68048
- $2[16] = t122;
68049
- $2[17] = t92;
68050
- $2[18] = t132;
68052
+ $2[16] = t102;
68053
+ $2[17] = t132;
68054
+ $2[18] = t142;
68051
68055
  } else {
68052
- t132 = $2[18];
68056
+ t142 = $2[18];
68053
68057
  }
68054
- let t142;
68055
- if ($2[19] !== hasUpdate || $2[20] !== size4 || $2[21] !== tabState) {
68056
- t142 = /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(StatusIndicator, {
68058
+ let t152;
68059
+ if ($2[19] !== active || $2[20] !== hasUpdate || $2[21] !== size4 || $2[22] !== tabState) {
68060
+ t152 = /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(StatusIndicator, {
68057
68061
  tabState,
68058
68062
  hasUpdate,
68059
- size: size4
68063
+ size: size4,
68064
+ active
68060
68065
  });
68061
- $2[19] = hasUpdate;
68062
- $2[20] = size4;
68063
- $2[21] = tabState;
68064
- $2[22] = t142;
68066
+ $2[19] = active;
68067
+ $2[20] = hasUpdate;
68068
+ $2[21] = size4;
68069
+ $2[22] = tabState;
68070
+ $2[23] = t152;
68065
68071
  } else {
68066
- t142 = $2[22];
68072
+ t152 = $2[23];
68067
68073
  }
68068
- let t152;
68069
- if ($2[23] !== t132 || $2[24] !== t142 || $2[25] !== t72 || $2[26] !== t82) {
68070
- t152 = /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", {
68071
- className: t72,
68072
- style: t82,
68073
- children: [t132, t142]
68074
+ let t162;
68075
+ if ($2[24] !== t142 || $2[25] !== t152 || $2[26] !== t82 || $2[27] !== t92) {
68076
+ t162 = /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", {
68077
+ className: t82,
68078
+ style: t92,
68079
+ children: [t142, t152]
68074
68080
  });
68075
- $2[23] = t132;
68076
68081
  $2[24] = t142;
68077
- $2[25] = t72;
68082
+ $2[25] = t152;
68078
68083
  $2[26] = t82;
68079
- $2[27] = t152;
68084
+ $2[27] = t92;
68085
+ $2[28] = t162;
68080
68086
  } else {
68081
- t152 = $2[27];
68087
+ t162 = $2[28];
68082
68088
  }
68083
- return t152;
68089
+ return t162;
68084
68090
  }
68085
- let t7;
68086
- if ($2[28] !== displayName || $2[29] !== pluginName) {
68087
- t7 = getAvatarLetter(displayName, pluginName);
68088
- $2[28] = displayName;
68089
- $2[29] = pluginName;
68090
- $2[30] = t7;
68091
+ let t8;
68092
+ if ($2[29] !== displayName || $2[30] !== pluginName) {
68093
+ t8 = getAvatarLetter(displayName, pluginName);
68094
+ $2[29] = displayName;
68095
+ $2[30] = pluginName;
68096
+ $2[31] = t8;
68091
68097
  } else {
68092
- t7 = $2[30];
68098
+ t8 = $2[31];
68093
68099
  }
68094
- const letter = t7;
68095
- let t8;
68096
- if ($2[31] !== size4) {
68097
- t8 = Math.round(size4 * 0.55);
68098
- $2[31] = size4;
68099
- $2[32] = t8;
68100
+ const letter = t8;
68101
+ let t9;
68102
+ if ($2[32] !== size4) {
68103
+ t9 = Math.round(size4 * 0.55);
68104
+ $2[32] = size4;
68105
+ $2[33] = t9;
68100
68106
  } else {
68101
- t8 = $2[32];
68107
+ t9 = $2[33];
68102
68108
  }
68103
- const fontSize = t8;
68104
- const t9 = `relative shrink-0 ${className}`;
68105
- let t10;
68106
- if ($2[33] !== size4) {
68107
- t10 = {
68109
+ const fontSize = t9;
68110
+ const t10 = `relative shrink-0 ${className}`;
68111
+ let t11;
68112
+ if ($2[34] !== size4) {
68113
+ t11 = {
68108
68114
  width: size4,
68109
68115
  height: size4
68110
68116
  };
68111
- $2[33] = size4;
68112
- $2[34] = t10;
68117
+ $2[34] = size4;
68118
+ $2[35] = t11;
68113
68119
  } else {
68114
- t10 = $2[34];
68120
+ t11 = $2[35];
68115
68121
  }
68116
- let t11;
68117
- if ($2[35] !== pluginName) {
68118
- t11 = getAvatarVar(pluginName);
68119
- $2[35] = pluginName;
68120
- $2[36] = t11;
68122
+ let t12;
68123
+ if ($2[36] !== pluginName) {
68124
+ t12 = getAvatarVar(pluginName);
68125
+ $2[36] = pluginName;
68126
+ $2[37] = t12;
68121
68127
  } else {
68122
- t11 = $2[36];
68128
+ t12 = $2[37];
68123
68129
  }
68124
- let t12;
68125
- if ($2[37] !== size4 || $2[38] !== t11) {
68126
- t12 = {
68130
+ let t13;
68131
+ if ($2[38] !== size4 || $2[39] !== t12) {
68132
+ t13 = {
68127
68133
  width: size4,
68128
68134
  height: size4,
68129
- backgroundColor: t11
68135
+ backgroundColor: t12
68130
68136
  };
68131
- $2[37] = size4;
68132
- $2[38] = t11;
68137
+ $2[38] = size4;
68133
68138
  $2[39] = t12;
68139
+ $2[40] = t13;
68134
68140
  } else {
68135
- t12 = $2[39];
68141
+ t13 = $2[40];
68136
68142
  }
68137
- let t13;
68138
- if ($2[40] !== fontSize) {
68139
- t13 = {
68143
+ let t14;
68144
+ if ($2[41] !== fontSize) {
68145
+ t14 = {
68140
68146
  fontSize,
68141
68147
  letterSpacing: "-0.02em"
68142
68148
  };
68143
- $2[40] = fontSize;
68144
- $2[41] = t13;
68149
+ $2[41] = fontSize;
68150
+ $2[42] = t14;
68145
68151
  } else {
68146
- t13 = $2[41];
68152
+ t14 = $2[42];
68147
68153
  }
68148
- let t14;
68149
- if ($2[42] !== letter || $2[43] !== t13) {
68150
- t14 = /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", {
68154
+ let t15;
68155
+ if ($2[43] !== letter || $2[44] !== t14) {
68156
+ t15 = /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", {
68151
68157
  className: "font-head leading-none text-white select-none",
68152
- style: t13,
68158
+ style: t14,
68153
68159
  children: letter
68154
68160
  });
68155
- $2[42] = letter;
68156
- $2[43] = t13;
68161
+ $2[43] = letter;
68157
68162
  $2[44] = t14;
68163
+ $2[45] = t15;
68158
68164
  } else {
68159
- t14 = $2[44];
68165
+ t15 = $2[45];
68160
68166
  }
68161
- let t15;
68162
- if ($2[45] !== t12 || $2[46] !== t14) {
68163
- t15 = /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", {
68167
+ let t16;
68168
+ if ($2[46] !== t13 || $2[47] !== t15) {
68169
+ t16 = /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", {
68164
68170
  className: "border-border flex h-full w-full items-center justify-center rounded border-2",
68165
- style: t12,
68166
- children: t14
68171
+ style: t13,
68172
+ children: t15
68167
68173
  });
68168
- $2[45] = t12;
68169
- $2[46] = t14;
68174
+ $2[46] = t13;
68170
68175
  $2[47] = t15;
68176
+ $2[48] = t16;
68171
68177
  } else {
68172
- t15 = $2[47];
68178
+ t16 = $2[48];
68173
68179
  }
68174
- let t16;
68175
- if ($2[48] !== hasUpdate || $2[49] !== size4 || $2[50] !== tabState) {
68176
- t16 = /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(StatusIndicator, {
68180
+ let t17;
68181
+ if ($2[49] !== active || $2[50] !== hasUpdate || $2[51] !== size4 || $2[52] !== tabState) {
68182
+ t17 = /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(StatusIndicator, {
68177
68183
  tabState,
68178
68184
  hasUpdate,
68179
- size: size4
68185
+ size: size4,
68186
+ active
68180
68187
  });
68181
- $2[48] = hasUpdate;
68182
- $2[49] = size4;
68183
- $2[50] = tabState;
68184
- $2[51] = t16;
68188
+ $2[49] = active;
68189
+ $2[50] = hasUpdate;
68190
+ $2[51] = size4;
68191
+ $2[52] = tabState;
68192
+ $2[53] = t17;
68185
68193
  } else {
68186
- t16 = $2[51];
68194
+ t17 = $2[53];
68187
68195
  }
68188
- let t17;
68189
- if ($2[52] !== t10 || $2[53] !== t15 || $2[54] !== t16 || $2[55] !== t9) {
68190
- t17 = /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", {
68191
- className: t9,
68192
- style: t10,
68193
- children: [t15, t16]
68196
+ let t18;
68197
+ if ($2[54] !== t10 || $2[55] !== t11 || $2[56] !== t16 || $2[57] !== t17) {
68198
+ t18 = /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", {
68199
+ className: t10,
68200
+ style: t11,
68201
+ children: [t16, t17]
68194
68202
  });
68195
- $2[52] = t10;
68196
- $2[53] = t15;
68197
- $2[54] = t16;
68198
- $2[55] = t9;
68199
- $2[56] = t17;
68203
+ $2[54] = t10;
68204
+ $2[55] = t11;
68205
+ $2[56] = t16;
68206
+ $2[57] = t17;
68207
+ $2[58] = t18;
68200
68208
  } else {
68201
- t17 = $2[56];
68209
+ t18 = $2[58];
68202
68210
  }
68203
- return t17;
68211
+ return t18;
68204
68212
  };
68205
68213
 
68206
68214
  // src/side-panel/components/retro/Accordion.tsx
68207
68215
  var import_compiler_runtime4 = __toESM(require_compiler_runtime(), 1);
68208
68216
 
68209
68217
  // ../../node_modules/@radix-ui/react-accordion/dist/index.mjs
68210
- var import_react7 = __toESM(require_react(), 1);
68218
+ var import_react8 = __toESM(require_react(), 1);
68211
68219
 
68212
68220
  // ../../node_modules/@radix-ui/react-collapsible/dist/index.mjs
68213
68221
  var React36 = __toESM(require_react(), 1);
@@ -68355,7 +68363,7 @@ var [createAccordionContext, createAccordionScope] = createContextScope(ACCORDIO
68355
68363
  createCollapsibleScope
68356
68364
  ]);
68357
68365
  var useCollapsibleScope = createCollapsibleScope();
68358
- var Accordion = import_react7.default.forwardRef(
68366
+ var Accordion = import_react8.default.forwardRef(
68359
68367
  (props, forwardedRef) => {
68360
68368
  const { type, ...accordionProps } = props;
68361
68369
  const singleProps = accordionProps;
@@ -68369,7 +68377,7 @@ var [AccordionCollapsibleProvider, useAccordionCollapsibleContext] = createAccor
68369
68377
  ACCORDION_NAME,
68370
68378
  { collapsible: false }
68371
68379
  );
68372
- var AccordionImplSingle = import_react7.default.forwardRef(
68380
+ var AccordionImplSingle = import_react8.default.forwardRef(
68373
68381
  (props, forwardedRef) => {
68374
68382
  const {
68375
68383
  value: valueProp,
@@ -68389,15 +68397,15 @@ var AccordionImplSingle = import_react7.default.forwardRef(
68389
68397
  AccordionValueProvider,
68390
68398
  {
68391
68399
  scope: props.__scopeAccordion,
68392
- value: import_react7.default.useMemo(() => value ? [value] : [], [value]),
68400
+ value: import_react8.default.useMemo(() => value ? [value] : [], [value]),
68393
68401
  onItemOpen: setValue,
68394
- onItemClose: import_react7.default.useCallback(() => collapsible && setValue(""), [collapsible, setValue]),
68402
+ onItemClose: import_react8.default.useCallback(() => collapsible && setValue(""), [collapsible, setValue]),
68395
68403
  children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(AccordionCollapsibleProvider, { scope: props.__scopeAccordion, collapsible, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(AccordionImpl, { ...accordionSingleProps, ref: forwardedRef }) })
68396
68404
  }
68397
68405
  );
68398
68406
  }
68399
68407
  );
68400
- var AccordionImplMultiple = import_react7.default.forwardRef((props, forwardedRef) => {
68408
+ var AccordionImplMultiple = import_react8.default.forwardRef((props, forwardedRef) => {
68401
68409
  const {
68402
68410
  value: valueProp,
68403
68411
  defaultValue,
@@ -68411,11 +68419,11 @@ var AccordionImplMultiple = import_react7.default.forwardRef((props, forwardedRe
68411
68419
  onChange: onValueChange,
68412
68420
  caller: ACCORDION_NAME
68413
68421
  });
68414
- const handleItemOpen = import_react7.default.useCallback(
68422
+ const handleItemOpen = import_react8.default.useCallback(
68415
68423
  (itemValue) => setValue((prevValue = []) => [...prevValue, itemValue]),
68416
68424
  [setValue]
68417
68425
  );
68418
- const handleItemClose = import_react7.default.useCallback(
68426
+ const handleItemClose = import_react8.default.useCallback(
68419
68427
  (itemValue) => setValue((prevValue = []) => prevValue.filter((value2) => value2 !== itemValue)),
68420
68428
  [setValue]
68421
68429
  );
@@ -68431,10 +68439,10 @@ var AccordionImplMultiple = import_react7.default.forwardRef((props, forwardedRe
68431
68439
  );
68432
68440
  });
68433
68441
  var [AccordionImplProvider, useAccordionContext] = createAccordionContext(ACCORDION_NAME);
68434
- var AccordionImpl = import_react7.default.forwardRef(
68442
+ var AccordionImpl = import_react8.default.forwardRef(
68435
68443
  (props, forwardedRef) => {
68436
68444
  const { __scopeAccordion, disabled, dir, orientation = "vertical", ...accordionProps } = props;
68437
- const accordionRef = import_react7.default.useRef(null);
68445
+ const accordionRef = import_react8.default.useRef(null);
68438
68446
  const composedRefs = useComposedRefs(accordionRef, forwardedRef);
68439
68447
  const getItems = useCollection3(__scopeAccordion);
68440
68448
  const direction = useDirection(dir);
@@ -68523,7 +68531,7 @@ var AccordionImpl = import_react7.default.forwardRef(
68523
68531
  );
68524
68532
  var ITEM_NAME4 = "AccordionItem";
68525
68533
  var [AccordionItemProvider, useAccordionItemContext] = createAccordionContext(ITEM_NAME4);
68526
- var AccordionItem = import_react7.default.forwardRef(
68534
+ var AccordionItem = import_react8.default.forwardRef(
68527
68535
  (props, forwardedRef) => {
68528
68536
  const { __scopeAccordion, value, ...accordionItemProps } = props;
68529
68537
  const accordionContext = useAccordionContext(ITEM_NAME4, __scopeAccordion);
@@ -68564,7 +68572,7 @@ var AccordionItem = import_react7.default.forwardRef(
68564
68572
  );
68565
68573
  AccordionItem.displayName = ITEM_NAME4;
68566
68574
  var HEADER_NAME = "AccordionHeader";
68567
- var AccordionHeader = import_react7.default.forwardRef(
68575
+ var AccordionHeader = import_react8.default.forwardRef(
68568
68576
  (props, forwardedRef) => {
68569
68577
  const { __scopeAccordion, ...headerProps } = props;
68570
68578
  const accordionContext = useAccordionContext(ACCORDION_NAME, __scopeAccordion);
@@ -68583,7 +68591,7 @@ var AccordionHeader = import_react7.default.forwardRef(
68583
68591
  );
68584
68592
  AccordionHeader.displayName = HEADER_NAME;
68585
68593
  var TRIGGER_NAME3 = "AccordionTrigger";
68586
- var AccordionTrigger = import_react7.default.forwardRef(
68594
+ var AccordionTrigger = import_react8.default.forwardRef(
68587
68595
  (props, forwardedRef) => {
68588
68596
  const { __scopeAccordion, ...triggerProps } = props;
68589
68597
  const accordionContext = useAccordionContext(ACCORDION_NAME, __scopeAccordion);
@@ -68605,7 +68613,7 @@ var AccordionTrigger = import_react7.default.forwardRef(
68605
68613
  );
68606
68614
  AccordionTrigger.displayName = TRIGGER_NAME3;
68607
68615
  var CONTENT_NAME5 = "AccordionContent";
68608
- var AccordionContent = import_react7.default.forwardRef(
68616
+ var AccordionContent = import_react8.default.forwardRef(
68609
68617
  (props, forwardedRef) => {
68610
68618
  const { __scopeAccordion, ...contentProps } = props;
68611
68619
  const accordionContext = useAccordionContext(ACCORDION_NAME, __scopeAccordion);
@@ -69310,187 +69318,62 @@ var Switch2 = (t0) => {
69310
69318
  };
69311
69319
 
69312
69320
  // src/side-panel/components/ToolRow.tsx
69313
- var import_compiler_runtime12 = __toESM(require_compiler_runtime(), 1);
69321
+ var import_compiler_runtime11 = __toESM(require_compiler_runtime(), 1);
69314
69322
 
69315
- // src/side-panel/components/retro/Loader.tsx
69323
+ // src/side-panel/components/retro/Tooltip.tsx
69316
69324
  var import_compiler_runtime9 = __toESM(require_compiler_runtime(), 1);
69325
+
69326
+ // ../../node_modules/@radix-ui/react-tooltip/dist/index.mjs
69327
+ var React42 = __toESM(require_react(), 1);
69328
+
69329
+ // ../../node_modules/@radix-ui/react-tooltip/node_modules/@radix-ui/react-slot/dist/index.mjs
69330
+ var React40 = __toESM(require_react(), 1);
69317
69331
  var import_jsx_runtime28 = __toESM(require_jsx_runtime(), 1);
69318
- var loaderVariants = cva("flex gap-1", {
69319
- variants: {
69320
- variant: {
69321
- default: "[&>div]:bg-primary [&>div]:border-border",
69322
- secondary: "[&>div]:bg-secondary [&>div]:border-border",
69323
- outline: "[&>div]:bg-transparent [&>div]:border-border"
69324
- },
69325
- size: {
69326
- sm: "[&>div]:w-2 [&>div]:h-2",
69327
- md: "[&>div]:w-3 [&>div]:h-3",
69328
- lg: "[&>div]:w-4 [&>div]:h-4"
69329
- }
69330
- },
69331
- defaultVariants: {
69332
- variant: "default",
69333
- size: "md"
69334
- }
69332
+ var SLOTTABLE_IDENTIFIER4 = /* @__PURE__ */ Symbol("radix.slottable");
69333
+ // @__NO_SIDE_EFFECTS__
69334
+ function createSlottable(ownerName) {
69335
+ const Slottable2 = ({ children }) => {
69336
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_jsx_runtime28.Fragment, { children });
69337
+ };
69338
+ Slottable2.displayName = `${ownerName}.Slottable`;
69339
+ Slottable2.__radixId = SLOTTABLE_IDENTIFIER4;
69340
+ return Slottable2;
69341
+ }
69342
+
69343
+ // ../../node_modules/@radix-ui/react-visually-hidden/dist/index.mjs
69344
+ var React41 = __toESM(require_react(), 1);
69345
+ var import_jsx_runtime29 = __toESM(require_jsx_runtime(), 1);
69346
+ var VISUALLY_HIDDEN_STYLES = Object.freeze({
69347
+ // See: https://github.com/twbs/bootstrap/blob/main/scss/mixins/_visually-hidden.scss
69348
+ position: "absolute",
69349
+ border: 0,
69350
+ width: 1,
69351
+ height: 1,
69352
+ padding: 0,
69353
+ margin: -1,
69354
+ overflow: "hidden",
69355
+ clip: "rect(0, 0, 0, 0)",
69356
+ whiteSpace: "nowrap",
69357
+ wordWrap: "normal"
69335
69358
  });
69336
- var Loader2 = (t0) => {
69337
- const $2 = (0, import_compiler_runtime9.c)(24);
69338
- let className;
69339
- let props;
69340
- let ref;
69341
- let size4;
69342
- let t1;
69343
- let t2;
69344
- let t3;
69345
- let variant;
69346
- if ($2[0] !== t0) {
69347
- ({
69348
- className,
69349
- variant,
69350
- size: size4,
69351
- count: t1,
69352
- duration: t2,
69353
- delayStep: t3,
69354
- ref,
69355
- ...props
69356
- } = t0);
69357
- $2[0] = t0;
69358
- $2[1] = className;
69359
- $2[2] = props;
69360
- $2[3] = ref;
69361
- $2[4] = size4;
69362
- $2[5] = t1;
69363
- $2[6] = t2;
69364
- $2[7] = t3;
69365
- $2[8] = variant;
69366
- } else {
69367
- className = $2[1];
69368
- props = $2[2];
69369
- ref = $2[3];
69370
- size4 = $2[4];
69371
- t1 = $2[5];
69372
- t2 = $2[6];
69373
- t3 = $2[7];
69374
- variant = $2[8];
69375
- }
69376
- const count3 = t1 === void 0 ? 3 : t1;
69377
- const duration = t2 === void 0 ? 0.5 : t2;
69378
- const delayStep = t3 === void 0 ? 100 : t3;
69379
- let t4;
69380
- if ($2[9] !== className || $2[10] !== size4 || $2[11] !== variant) {
69381
- t4 = cn(loaderVariants({
69382
- variant,
69383
- size: size4
69384
- }), className);
69385
- $2[9] = className;
69386
- $2[10] = size4;
69387
- $2[11] = variant;
69388
- $2[12] = t4;
69389
- } else {
69390
- t4 = $2[12];
69391
- }
69392
- let t5;
69393
- if ($2[13] !== count3) {
69394
- t5 = Array.from({
69395
- length: count3
69396
- });
69397
- $2[13] = count3;
69398
- $2[14] = t5;
69399
- } else {
69400
- t5 = $2[14];
69401
- }
69402
- let t6;
69403
- if ($2[15] !== delayStep || $2[16] !== duration || $2[17] !== t5) {
69404
- t6 = t5.map((_2, i2) => /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", {
69405
- className: "animate-bounce rounded border-2",
69406
- style: {
69407
- animationDuration: `${duration}s`,
69408
- animationIterationCount: "infinite",
69409
- animationDelay: `${i2 * delayStep}ms`
69410
- }
69411
- }, i2));
69412
- $2[15] = delayStep;
69413
- $2[16] = duration;
69414
- $2[17] = t5;
69415
- $2[18] = t6;
69416
- } else {
69417
- t6 = $2[18];
69418
- }
69419
- let t7;
69420
- if ($2[19] !== props || $2[20] !== ref || $2[21] !== t4 || $2[22] !== t6) {
69421
- t7 = /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", {
69422
- className: t4,
69423
- ref,
69424
- role: "status",
69425
- "aria-label": "Loading...",
69426
- ...props,
69427
- children: t6
69428
- });
69429
- $2[19] = props;
69430
- $2[20] = ref;
69431
- $2[21] = t4;
69432
- $2[22] = t6;
69433
- $2[23] = t7;
69434
- } else {
69435
- t7 = $2[23];
69436
- }
69437
- return t7;
69438
- };
69439
-
69440
- // src/side-panel/components/retro/Tooltip.tsx
69441
- var import_compiler_runtime10 = __toESM(require_compiler_runtime(), 1);
69442
-
69443
- // ../../node_modules/@radix-ui/react-tooltip/dist/index.mjs
69444
- var React42 = __toESM(require_react(), 1);
69445
-
69446
- // ../../node_modules/@radix-ui/react-tooltip/node_modules/@radix-ui/react-slot/dist/index.mjs
69447
- var React40 = __toESM(require_react(), 1);
69448
- var import_jsx_runtime29 = __toESM(require_jsx_runtime(), 1);
69449
- var SLOTTABLE_IDENTIFIER4 = /* @__PURE__ */ Symbol("radix.slottable");
69450
- // @__NO_SIDE_EFFECTS__
69451
- function createSlottable(ownerName) {
69452
- const Slottable2 = ({ children }) => {
69453
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_jsx_runtime29.Fragment, { children });
69454
- };
69455
- Slottable2.displayName = `${ownerName}.Slottable`;
69456
- Slottable2.__radixId = SLOTTABLE_IDENTIFIER4;
69457
- return Slottable2;
69458
- }
69459
-
69460
- // ../../node_modules/@radix-ui/react-visually-hidden/dist/index.mjs
69461
- var React41 = __toESM(require_react(), 1);
69462
- var import_jsx_runtime30 = __toESM(require_jsx_runtime(), 1);
69463
- var VISUALLY_HIDDEN_STYLES = Object.freeze({
69464
- // See: https://github.com/twbs/bootstrap/blob/main/scss/mixins/_visually-hidden.scss
69465
- position: "absolute",
69466
- border: 0,
69467
- width: 1,
69468
- height: 1,
69469
- padding: 0,
69470
- margin: -1,
69471
- overflow: "hidden",
69472
- clip: "rect(0, 0, 0, 0)",
69473
- whiteSpace: "nowrap",
69474
- wordWrap: "normal"
69475
- });
69476
- var NAME2 = "VisuallyHidden";
69477
- var VisuallyHidden = React41.forwardRef(
69478
- (props, forwardedRef) => {
69479
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
69480
- Primitive.span,
69481
- {
69482
- ...props,
69483
- ref: forwardedRef,
69484
- style: { ...VISUALLY_HIDDEN_STYLES, ...props.style }
69485
- }
69486
- );
69359
+ var NAME2 = "VisuallyHidden";
69360
+ var VisuallyHidden = React41.forwardRef(
69361
+ (props, forwardedRef) => {
69362
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
69363
+ Primitive.span,
69364
+ {
69365
+ ...props,
69366
+ ref: forwardedRef,
69367
+ style: { ...VISUALLY_HIDDEN_STYLES, ...props.style }
69368
+ }
69369
+ );
69487
69370
  }
69488
69371
  );
69489
69372
  VisuallyHidden.displayName = NAME2;
69490
69373
  var Root6 = VisuallyHidden;
69491
69374
 
69492
69375
  // ../../node_modules/@radix-ui/react-tooltip/dist/index.mjs
69493
- var import_jsx_runtime31 = __toESM(require_jsx_runtime(), 1);
69376
+ var import_jsx_runtime30 = __toESM(require_jsx_runtime(), 1);
69494
69377
  var [createTooltipContext, createTooltipScope] = createContextScope("Tooltip", [
69495
69378
  createPopperScope
69496
69379
  ]);
@@ -69514,7 +69397,7 @@ var TooltipProvider = (props) => {
69514
69397
  const skipDelayTimer = skipDelayTimerRef.current;
69515
69398
  return () => window.clearTimeout(skipDelayTimer);
69516
69399
  }, []);
69517
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
69400
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
69518
69401
  TooltipProviderContextProvider,
69519
69402
  {
69520
69403
  scope: __scopeTooltip,
@@ -69605,7 +69488,7 @@ var Tooltip = (props) => {
69605
69488
  }
69606
69489
  };
69607
69490
  }, []);
69608
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Root2, { ...popperScope, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
69491
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Root2, { ...popperScope, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
69609
69492
  TooltipContextProvider,
69610
69493
  {
69611
69494
  scope: __scopeTooltip,
@@ -69649,7 +69532,7 @@ var TooltipTrigger = React42.forwardRef(
69649
69532
  React42.useEffect(() => {
69650
69533
  return () => document.removeEventListener("pointerup", handlePointerUp);
69651
69534
  }, [handlePointerUp]);
69652
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
69535
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
69653
69536
  Primitive.button,
69654
69537
  {
69655
69538
  "aria-describedby": context.open ? context.contentId : void 0,
@@ -69691,7 +69574,7 @@ var [PortalProvider2, usePortalContext2] = createTooltipContext(PORTAL_NAME4, {
69691
69574
  var TooltipPortal = (props) => {
69692
69575
  const { __scopeTooltip, forceMount, children, container } = props;
69693
69576
  const context = useTooltipContext(PORTAL_NAME4, __scopeTooltip);
69694
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(PortalProvider2, { scope: __scopeTooltip, forceMount, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Portal, { asChild: true, container, children }) }) });
69577
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(PortalProvider2, { scope: __scopeTooltip, forceMount, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Portal, { asChild: true, container, children }) }) });
69695
69578
  };
69696
69579
  TooltipPortal.displayName = PORTAL_NAME4;
69697
69580
  var CONTENT_NAME6 = "TooltipContent";
@@ -69700,7 +69583,7 @@ var TooltipContent = React42.forwardRef(
69700
69583
  const portalContext = usePortalContext2(CONTENT_NAME6, props.__scopeTooltip);
69701
69584
  const { forceMount = portalContext.forceMount, side = "top", ...contentProps } = props;
69702
69585
  const context = useTooltipContext(CONTENT_NAME6, props.__scopeTooltip);
69703
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Presence, { present: forceMount || context.open, children: context.disableHoverableContent ? /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(TooltipContentImpl, { side, ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(TooltipContentHoverable, { side, ...contentProps, ref: forwardedRef }) });
69586
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Presence, { present: forceMount || context.open, children: context.disableHoverableContent ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(TooltipContentImpl, { side, ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(TooltipContentHoverable, { side, ...contentProps, ref: forwardedRef }) });
69704
69587
  }
69705
69588
  );
69706
69589
  var TooltipContentHoverable = React42.forwardRef((props, forwardedRef) => {
@@ -69762,7 +69645,7 @@ var TooltipContentHoverable = React42.forwardRef((props, forwardedRef) => {
69762
69645
  return () => document.removeEventListener("pointermove", handleTrackPointerGrace);
69763
69646
  }
69764
69647
  }, [trigger, content, pointerGraceArea, onClose, handleRemoveGraceArea]);
69765
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(TooltipContentImpl, { ...props, ref: composedRefs });
69648
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(TooltipContentImpl, { ...props, ref: composedRefs });
69766
69649
  });
69767
69650
  var [VisuallyHiddenContentContextProvider, useVisuallyHiddenContentContext] = createTooltipContext(TOOLTIP_NAME, { isInside: false });
69768
69651
  var Slottable = createSlottable("TooltipContent");
@@ -69793,7 +69676,7 @@ var TooltipContentImpl = React42.forwardRef(
69793
69676
  return () => window.removeEventListener("scroll", handleScroll2, { capture: true });
69794
69677
  }
69795
69678
  }, [context.trigger, onClose]);
69796
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
69679
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
69797
69680
  DismissableLayer,
69798
69681
  {
69799
69682
  asChild: true,
@@ -69802,7 +69685,7 @@ var TooltipContentImpl = React42.forwardRef(
69802
69685
  onPointerDownOutside,
69803
69686
  onFocusOutside: (event) => event.preventDefault(),
69804
69687
  onDismiss: onClose,
69805
- children: /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
69688
+ children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
69806
69689
  Content,
69807
69690
  {
69808
69691
  "data-state": context.stateAttribute,
@@ -69821,8 +69704,8 @@ var TooltipContentImpl = React42.forwardRef(
69821
69704
  }
69822
69705
  },
69823
69706
  children: [
69824
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Slottable, { children }),
69825
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(VisuallyHiddenContentContextProvider, { scope: __scopeTooltip, isInside: true, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Root6, { id: context.contentId, role: "tooltip", children: ariaLabel || children }) })
69707
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Slottable, { children }),
69708
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(VisuallyHiddenContentContextProvider, { scope: __scopeTooltip, isInside: true, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Root6, { id: context.contentId, role: "tooltip", children: ariaLabel || children }) })
69826
69709
  ]
69827
69710
  }
69828
69711
  )
@@ -69840,7 +69723,7 @@ var TooltipArrow = React42.forwardRef(
69840
69723
  ARROW_NAME4,
69841
69724
  __scopeTooltip
69842
69725
  );
69843
- return visuallyHiddenContentContext.isInside ? null : /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Arrow2, { ...popperScope, ...arrowProps, ref: forwardedRef });
69726
+ return visuallyHiddenContentContext.isInside ? null : /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Arrow2, { ...popperScope, ...arrowProps, ref: forwardedRef });
69844
69727
  }
69845
69728
  );
69846
69729
  TooltipArrow.displayName = ARROW_NAME4;
@@ -69966,7 +69849,7 @@ var Portal3 = TooltipPortal;
69966
69849
  var Content24 = TooltipContent;
69967
69850
 
69968
69851
  // src/side-panel/components/retro/Tooltip.tsx
69969
- var import_jsx_runtime32 = __toESM(require_jsx_runtime(), 1);
69852
+ var import_jsx_runtime31 = __toESM(require_jsx_runtime(), 1);
69970
69853
  var tooltipContentVariants = cva("z-50 overflow-hidden rounded border-2 border-border px-3 py-1.5 text-xs animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-tooltip-content-transform-origin]", {
69971
69854
  variants: {
69972
69855
  variant: {
@@ -69983,7 +69866,7 @@ var TooltipProvider2 = Provider;
69983
69866
  var Tooltip2 = Root33;
69984
69867
  var TooltipTrigger2 = Trigger3;
69985
69868
  var TooltipContent2 = (t0) => {
69986
- const $2 = (0, import_compiler_runtime10.c)(14);
69869
+ const $2 = (0, import_compiler_runtime9.c)(14);
69987
69870
  let className;
69988
69871
  let props;
69989
69872
  let ref;
@@ -70025,8 +69908,8 @@ var TooltipContent2 = (t0) => {
70025
69908
  }
70026
69909
  let t3;
70027
69910
  if ($2[9] !== props || $2[10] !== ref || $2[11] !== sideOffset || $2[12] !== t2) {
70028
- t3 = /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Portal3, {
70029
- children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Content24, {
69911
+ t3 = /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Portal3, {
69912
+ children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Content24, {
70030
69913
  ref,
70031
69914
  sideOffset,
70032
69915
  className: t2,
@@ -70050,10 +69933,10 @@ var TooltipObject = Object.assign(Tooltip2, {
70050
69933
  });
70051
69934
 
70052
69935
  // src/side-panel/components/ToolIcon.tsx
70053
- var import_compiler_runtime11 = __toESM(require_compiler_runtime(), 1);
69936
+ var import_compiler_runtime10 = __toESM(require_compiler_runtime(), 1);
70054
69937
 
70055
69938
  // ../../node_modules/lucide-react/dist/esm/DynamicIcon.js
70056
- var import_react8 = __toESM(require_react());
69939
+ var import_react9 = __toESM(require_react());
70057
69940
 
70058
69941
  // ../../node_modules/lucide-react/dist/esm/dynamicIconImports.js
70059
69942
  var dynamicIconImports = {
@@ -72005,13 +71888,13 @@ async function getIconNode(name) {
72005
71888
  const icon = await dynamicIconImports[name]();
72006
71889
  return icon.__iconNode;
72007
71890
  }
72008
- var DynamicIcon = /* @__PURE__ */ (0, import_react8.forwardRef)(({
71891
+ var DynamicIcon = /* @__PURE__ */ (0, import_react9.forwardRef)(({
72009
71892
  name,
72010
71893
  fallback: Fallback,
72011
71894
  ...props
72012
71895
  }, ref) => {
72013
- const [iconNode, setIconNode] = (0, import_react8.useState)();
72014
- (0, import_react8.useEffect)(() => {
71896
+ const [iconNode, setIconNode] = (0, import_react9.useState)();
71897
+ (0, import_react9.useEffect)(() => {
72015
71898
  getIconNode(name).then(setIconNode).catch((error) => {
72016
71899
  console.error(error);
72017
71900
  });
@@ -72020,9 +71903,9 @@ var DynamicIcon = /* @__PURE__ */ (0, import_react8.forwardRef)(({
72020
71903
  if (Fallback == null) {
72021
71904
  return null;
72022
71905
  }
72023
- return /* @__PURE__ */ (0, import_react8.createElement)(Fallback);
71906
+ return /* @__PURE__ */ (0, import_react9.createElement)(Fallback);
72024
71907
  }
72025
- return /* @__PURE__ */ (0, import_react8.createElement)(Icon, {
71908
+ return /* @__PURE__ */ (0, import_react9.createElement)(Icon, {
72026
71909
  ref,
72027
71910
  ...props,
72028
71911
  iconNode
@@ -72030,10 +71913,10 @@ var DynamicIcon = /* @__PURE__ */ (0, import_react8.forwardRef)(({
72030
71913
  });
72031
71914
 
72032
71915
  // src/side-panel/components/ToolIcon.tsx
72033
- var import_react9 = __toESM(require_react(), 1);
72034
- var import_jsx_runtime33 = __toESM(require_jsx_runtime(), 1);
71916
+ var import_react10 = __toESM(require_react(), 1);
71917
+ var import_jsx_runtime32 = __toESM(require_jsx_runtime(), 1);
72035
71918
  var FallbackIcon = (t0) => {
72036
- const $2 = (0, import_compiler_runtime11.c)(4);
71919
+ const $2 = (0, import_compiler_runtime10.c)(4);
72037
71920
  const {
72038
71921
  enabled: t1
72039
71922
  } = t0;
@@ -72049,7 +71932,7 @@ var FallbackIcon = (t0) => {
72049
71932
  }
72050
71933
  let t4;
72051
71934
  if ($2[2] !== t3) {
72052
- t4 = /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Wrench, {
71935
+ t4 = /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Wrench, {
72053
71936
  className: t3
72054
71937
  });
72055
71938
  $2[2] = t3;
@@ -72060,65 +71943,108 @@ var FallbackIcon = (t0) => {
72060
71943
  return t4;
72061
71944
  };
72062
71945
  var ToolIcon = (t0) => {
72063
- const $2 = (0, import_compiler_runtime11.c)(9);
71946
+ const $2 = (0, import_compiler_runtime10.c)(16);
72064
71947
  const {
72065
71948
  icon,
72066
71949
  className: t1,
72067
- enabled: t2
71950
+ enabled: t2,
71951
+ active: t3
72068
71952
  } = t0;
72069
71953
  const className = t1 === void 0 ? "" : t1;
72070
71954
  const enabled = t2 === void 0 ? true : t2;
72071
- const t3 = enabled ? "border-border bg-primary" : "border-border/40 bg-muted/40";
71955
+ const active = t3 === void 0 ? false : t3;
71956
+ const [fadingOut, setFadingOut] = (0, import_react10.useState)(false);
71957
+ const prevActiveRef = (0, import_react10.useRef)(false);
72072
71958
  let t4;
72073
- if ($2[0] !== className || $2[1] !== t3) {
72074
- t4 = cn("flex h-6 w-6 shrink-0 items-center justify-center rounded border-2 transition-colors", t3, className);
72075
- $2[0] = className;
72076
- $2[1] = t3;
72077
- $2[2] = t4;
71959
+ let t5;
71960
+ if ($2[0] !== active) {
71961
+ t4 = () => {
71962
+ if (prevActiveRef.current && !active) {
71963
+ setTimeout(() => setFadingOut(true), 0);
71964
+ const timer = setTimeout(() => setFadingOut(false), 500);
71965
+ prevActiveRef.current = active;
71966
+ return () => clearTimeout(timer);
71967
+ }
71968
+ prevActiveRef.current = active;
71969
+ };
71970
+ t5 = [active];
71971
+ $2[0] = active;
71972
+ $2[1] = t4;
71973
+ $2[2] = t5;
72078
71974
  } else {
72079
- t4 = $2[2];
71975
+ t4 = $2[1];
71976
+ t5 = $2[2];
72080
71977
  }
72081
- let t5;
72082
- if ($2[3] !== enabled || $2[4] !== icon) {
72083
- t5 = icon ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_react9.Suspense, {
72084
- fallback: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(FallbackIcon, {
71978
+ (0, import_react10.useEffect)(t4, t5);
71979
+ const t6 = enabled ? "border-border bg-primary" : "border-border/40 bg-muted/40";
71980
+ let t7;
71981
+ if ($2[3] !== className || $2[4] !== t6) {
71982
+ t7 = cn("relative flex h-6 w-6 shrink-0 items-center justify-center rounded border-2 transition-colors", t6, className);
71983
+ $2[3] = className;
71984
+ $2[4] = t6;
71985
+ $2[5] = t7;
71986
+ } else {
71987
+ t7 = $2[5];
71988
+ }
71989
+ let t8;
71990
+ if ($2[6] !== enabled || $2[7] !== icon) {
71991
+ t8 = icon ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_react10.Suspense, {
71992
+ fallback: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(FallbackIcon, {
72085
71993
  enabled
72086
71994
  }),
72087
- children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(DynamicIcon, {
71995
+ children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(DynamicIcon, {
72088
71996
  name: icon,
72089
71997
  className: cn("h-3 w-3 transition-colors", enabled ? "text-primary-foreground" : "text-muted-foreground"),
72090
- fallback: () => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(FallbackIcon, {
71998
+ fallback: () => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(FallbackIcon, {
72091
71999
  enabled
72092
72000
  })
72093
72001
  })
72094
- }) : /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(FallbackIcon, {
72002
+ }) : /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(FallbackIcon, {
72095
72003
  enabled
72096
72004
  });
72097
- $2[3] = enabled;
72098
- $2[4] = icon;
72099
- $2[5] = t5;
72005
+ $2[6] = enabled;
72006
+ $2[7] = icon;
72007
+ $2[8] = t8;
72100
72008
  } else {
72101
- t5 = $2[5];
72009
+ t8 = $2[8];
72102
72010
  }
72103
- let t6;
72104
- if ($2[6] !== t4 || $2[7] !== t5) {
72105
- t6 = /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", {
72106
- className: t4,
72107
- children: t5
72011
+ let t9;
72012
+ if ($2[9] !== active || $2[10] !== fadingOut) {
72013
+ t9 = (active || fadingOut) && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", {
72014
+ className: cn("bg-success border-card absolute rounded-full border-2", active && "animate-activity-flash", fadingOut && !active && "animate-activity-fade-out"),
72015
+ style: {
72016
+ width: 8,
72017
+ height: 8,
72018
+ bottom: -4,
72019
+ right: -4
72020
+ }
72108
72021
  });
72109
- $2[6] = t4;
72110
- $2[7] = t5;
72111
- $2[8] = t6;
72022
+ $2[9] = active;
72023
+ $2[10] = fadingOut;
72024
+ $2[11] = t9;
72112
72025
  } else {
72113
- t6 = $2[8];
72026
+ t9 = $2[11];
72114
72027
  }
72115
- return t6;
72028
+ let t10;
72029
+ if ($2[12] !== t7 || $2[13] !== t8 || $2[14] !== t9) {
72030
+ t10 = /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", {
72031
+ className: t7,
72032
+ children: [t8, t9]
72033
+ });
72034
+ $2[12] = t7;
72035
+ $2[13] = t8;
72036
+ $2[14] = t9;
72037
+ $2[15] = t10;
72038
+ } else {
72039
+ t10 = $2[15];
72040
+ }
72041
+ return t10;
72116
72042
  };
72117
72043
 
72118
72044
  // src/side-panel/components/ToolRow.tsx
72119
- var import_jsx_runtime34 = __toESM(require_jsx_runtime(), 1);
72045
+ var import_jsx_runtime33 = __toESM(require_jsx_runtime(), 1);
72120
72046
  var ToolRow = (t0) => {
72121
- const $2 = (0, import_compiler_runtime12.c)(29);
72047
+ const $2 = (0, import_compiler_runtime11.c)(24);
72122
72048
  const {
72123
72049
  name,
72124
72050
  displayName,
@@ -72129,130 +72055,108 @@ var ToolRow = (t0) => {
72129
72055
  onToggle
72130
72056
  } = t0;
72131
72057
  const t1 = enabled ? "hover:bg-primary/10" : "hover:bg-muted/50";
72132
- const t2 = active && "bg-accent/20";
72133
- let t3;
72134
- if ($2[0] !== t1 || $2[1] !== t2) {
72135
- t3 = cn("border-border flex items-center gap-2 border-b px-3 py-2 transition-colors last:border-b-0", t1, t2);
72058
+ let t2;
72059
+ if ($2[0] !== t1) {
72060
+ t2 = cn("border-border flex items-center gap-2 border-b px-3 py-2 transition-colors last:border-b-0", t1);
72136
72061
  $2[0] = t1;
72137
72062
  $2[1] = t2;
72138
- $2[2] = t3;
72139
72063
  } else {
72140
- t3 = $2[2];
72064
+ t2 = $2[1];
72141
72065
  }
72142
- let t4;
72143
- if ($2[3] !== enabled || $2[4] !== icon) {
72144
- t4 = /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(ToolIcon, {
72066
+ let t3;
72067
+ if ($2[2] !== active || $2[3] !== enabled || $2[4] !== icon) {
72068
+ t3 = /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(ToolIcon, {
72145
72069
  icon,
72146
- enabled
72070
+ enabled,
72071
+ active
72147
72072
  });
72073
+ $2[2] = active;
72148
72074
  $2[3] = enabled;
72149
72075
  $2[4] = icon;
72150
- $2[5] = t4;
72076
+ $2[5] = t3;
72151
72077
  } else {
72152
- t4 = $2[5];
72078
+ t3 = $2[5];
72153
72079
  }
72154
- let t5;
72080
+ let t4;
72155
72081
  if ($2[6] !== displayName) {
72156
- t5 = /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(TooltipObject.Trigger, {
72082
+ t4 = /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(TooltipObject.Trigger, {
72157
72083
  asChild: true,
72158
- children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", {
72084
+ children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", {
72159
72085
  className: "min-w-0 flex-1",
72160
- children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", {
72086
+ children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", {
72161
72087
  className: "text-foreground truncate text-sm",
72162
72088
  children: displayName
72163
72089
  })
72164
72090
  })
72165
72091
  });
72166
72092
  $2[6] = displayName;
72167
- $2[7] = t5;
72093
+ $2[7] = t4;
72168
72094
  } else {
72169
- t5 = $2[7];
72095
+ t4 = $2[7];
72170
72096
  }
72171
- let t6;
72097
+ let t5;
72172
72098
  if ($2[8] !== description) {
72173
- t6 = /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(TooltipObject.Content, {
72099
+ t5 = /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(TooltipObject.Content, {
72174
72100
  children: description
72175
72101
  });
72176
72102
  $2[8] = description;
72177
- $2[9] = t6;
72103
+ $2[9] = t5;
72178
72104
  } else {
72179
- t6 = $2[9];
72105
+ t5 = $2[9];
72180
72106
  }
72181
- let t7;
72182
- if ($2[10] !== t5 || $2[11] !== t6) {
72183
- t7 = /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(TooltipObject, {
72184
- children: [t5, t6]
72107
+ let t6;
72108
+ if ($2[10] !== t4 || $2[11] !== t5) {
72109
+ t6 = /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(TooltipObject, {
72110
+ children: [t4, t5]
72185
72111
  });
72186
- $2[10] = t5;
72187
- $2[11] = t6;
72188
- $2[12] = t7;
72112
+ $2[10] = t4;
72113
+ $2[11] = t5;
72114
+ $2[12] = t6;
72189
72115
  } else {
72190
- t7 = $2[12];
72116
+ t6 = $2[12];
72191
72117
  }
72192
- let t8;
72193
- if ($2[13] !== active) {
72194
- t8 = active && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Loader2, {
72195
- size: "sm",
72196
- count: 2,
72197
- duration: 0.4,
72198
- delayStep: 80
72199
- });
72200
- $2[13] = active;
72201
- $2[14] = t8;
72118
+ let t7;
72119
+ if ($2[13] !== onToggle) {
72120
+ t7 = () => onToggle();
72121
+ $2[13] = onToggle;
72122
+ $2[14] = t7;
72202
72123
  } else {
72203
- t8 = $2[14];
72124
+ t7 = $2[14];
72204
72125
  }
72126
+ const t8 = `Toggle ${name} tool`;
72205
72127
  let t9;
72206
- if ($2[15] !== onToggle) {
72207
- t9 = () => onToggle();
72208
- $2[15] = onToggle;
72209
- $2[16] = t9;
72210
- } else {
72211
- t9 = $2[16];
72212
- }
72213
- const t10 = `Toggle ${name} tool`;
72214
- let t11;
72215
- if ($2[17] !== enabled || $2[18] !== t10 || $2[19] !== t9) {
72216
- t11 = /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Switch2, {
72217
- checked: enabled,
72218
- onCheckedChange: t9,
72219
- onClick: _temp3,
72220
- "aria-label": t10
72221
- });
72222
- $2[17] = enabled;
72223
- $2[18] = t10;
72224
- $2[19] = t9;
72225
- $2[20] = t11;
72226
- } else {
72227
- t11 = $2[20];
72228
- }
72229
- let t12;
72230
- if ($2[21] !== t11 || $2[22] !== t8) {
72231
- t12 = /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", {
72128
+ if ($2[15] !== enabled || $2[16] !== t7 || $2[17] !== t8) {
72129
+ t9 = /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", {
72232
72130
  className: "flex shrink-0 items-center gap-2",
72233
- children: [t8, t11]
72131
+ children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Switch2, {
72132
+ checked: enabled,
72133
+ onCheckedChange: t7,
72134
+ onClick: _temp3,
72135
+ "aria-label": t8
72136
+ })
72234
72137
  });
72235
- $2[21] = t11;
72236
- $2[22] = t8;
72237
- $2[23] = t12;
72138
+ $2[15] = enabled;
72139
+ $2[16] = t7;
72140
+ $2[17] = t8;
72141
+ $2[18] = t9;
72238
72142
  } else {
72239
- t12 = $2[23];
72143
+ t9 = $2[18];
72240
72144
  }
72241
- let t13;
72242
- if ($2[24] !== t12 || $2[25] !== t3 || $2[26] !== t4 || $2[27] !== t7) {
72243
- t13 = /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", {
72244
- className: t3,
72245
- children: [t4, t7, t12]
72145
+ let t10;
72146
+ if ($2[19] !== t2 || $2[20] !== t3 || $2[21] !== t6 || $2[22] !== t9) {
72147
+ t10 = /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", {
72148
+ className: t2,
72149
+ children: [t3, t6, t9]
72246
72150
  });
72247
- $2[24] = t12;
72248
- $2[25] = t3;
72249
- $2[26] = t4;
72250
- $2[27] = t7;
72251
- $2[28] = t13;
72151
+ $2[19] = t2;
72152
+ $2[20] = t3;
72153
+ $2[21] = t6;
72154
+ $2[22] = t9;
72155
+ $2[23] = t10;
72252
72156
  } else {
72253
- t13 = $2[28];
72157
+ t10 = $2[23];
72254
72158
  }
72255
- return t13;
72159
+ return t10;
72256
72160
  };
72257
72161
  function _temp3(e2) {
72258
72162
  return e2.stopPropagation();
@@ -72264,12 +72168,12 @@ var COUNTDOWN_POLL_INTERVAL_MS = 200;
72264
72168
  var TOOL_INVOCATION_TIMEOUT_MS = 5 * 60 * 1e3;
72265
72169
 
72266
72170
  // src/side-panel/components/BrowserToolsCard.tsx
72267
- var import_react10 = __toESM(require_react(), 1);
72268
- var import_jsx_runtime35 = __toESM(require_jsx_runtime(), 1);
72171
+ var import_react11 = __toESM(require_react(), 1);
72172
+ var import_jsx_runtime34 = __toESM(require_jsx_runtime(), 1);
72269
72173
  var CHROME_ICON_SVG = ['<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48">', "<defs>", '<linearGradient id="chrome-a" x1="3.2173" y1="15" x2="44.7812" y2="15" gradientUnits="userSpaceOnUse">', '<stop offset="0" stop-color="#d93025"/><stop offset="1" stop-color="#ea4335"/>', "</linearGradient>", '<linearGradient id="chrome-b" x1="20.7219" y1="47.6791" x2="41.5039" y2="11.6837" gradientUnits="userSpaceOnUse">', '<stop offset="0" stop-color="#fcc934"/><stop offset="1" stop-color="#fbbc04"/>', "</linearGradient>", '<linearGradient id="chrome-c" x1="26.5981" y1="46.5015" x2="5.8161" y2="10.506" gradientUnits="userSpaceOnUse">', '<stop offset="0" stop-color="#1e8e3e"/><stop offset="1" stop-color="#34a853"/>', "</linearGradient>", "</defs>", '<circle cx="24" cy="23.9947" r="12" fill="#fff"/>', '<path d="M3.2154,36A24,24,0,1,0,12,3.2154,24,24,0,0,0,3.2154,36ZM34.3923,18A12,12,0,1,1,18,13.6077,12,12,0,0,1,34.3923,18Z" fill="none"/>', '<path d="M24,12H44.7812a23.9939,23.9939,0,0,0-41.5639.0029L13.6079,30l.0093-.0024A11.9852,11.9852,0,0,1,24,12Z" fill="url(#chrome-a)"/>', '<circle cx="24" cy="24" r="9.5" fill="#1a73e8"/>', '<path d="M34.3913,30.0029,24.0007,48A23.994,23.994,0,0,0,44.78,12.0031H23.9989l-.0025.0093A11.985,11.985,0,0,1,34.3913,30.0029Z" fill="url(#chrome-b)"/>', '<path d="M13.6086,30.0031,3.218,12.006A23.994,23.994,0,0,0,24.0025,48L34.3931,30.0029l-.0067-.0068a11.9852,11.9852,0,0,1-20.7778.007Z" fill="url(#chrome-c)"/>', "</svg>"].join("");
72270
72174
  var toDisplayName = (name) => name.replace(/^browser_/, "").split("_").map((w3) => w3.charAt(0).toUpperCase() + w3.slice(1)).join(" ");
72271
72175
  var BrowserToolsCard = (t0) => {
72272
- const $2 = (0, import_compiler_runtime13.c)(14);
72176
+ const $2 = (0, import_compiler_runtime12.c)(23);
72273
72177
  const {
72274
72178
  tools,
72275
72179
  activeTools,
@@ -72277,10 +72181,10 @@ var BrowserToolsCard = (t0) => {
72277
72181
  toolFilter,
72278
72182
  serverVersion
72279
72183
  } = t0;
72280
- const [toggleError, setToggleError] = (0, import_react10.useState)(null);
72281
- const errorTimerRef = (0, import_react10.useRef)(void 0);
72282
- const toggleCounter = (0, import_react10.useRef)(0);
72283
- const preToggleRef = (0, import_react10.useRef)([]);
72184
+ const [toggleError, setToggleError] = (0, import_react11.useState)(null);
72185
+ const errorTimerRef = (0, import_react11.useRef)(void 0);
72186
+ const toggleCounter = (0, import_react11.useRef)(0);
72187
+ const preToggleRef = (0, import_react11.useRef)([]);
72284
72188
  let t1;
72285
72189
  let t2;
72286
72190
  if ($2[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
@@ -72292,7 +72196,7 @@ var BrowserToolsCard = (t0) => {
72292
72196
  t1 = $2[0];
72293
72197
  t2 = $2[1];
72294
72198
  }
72295
- (0, import_react10.useEffect)(t1, t2);
72199
+ (0, import_react11.useEffect)(t1, t2);
72296
72200
  const showToggleError = (message) => {
72297
72201
  clearTimeout(errorTimerRef.current);
72298
72202
  setToggleError(message);
@@ -72343,68 +72247,101 @@ var BrowserToolsCard = (t0) => {
72343
72247
  const filterLower = toolFilter?.toLowerCase() ?? "";
72344
72248
  const visibleTools = filterLower ? tools.filter((t_2) => toDisplayName(t_2.name).toLowerCase().includes(filterLower) || t_2.name.toLowerCase().includes(filterLower) || t_2.description.toLowerCase().includes(filterLower)) : tools;
72345
72249
  let t4;
72346
- if ($2[4] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
72347
- t4 = /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(PluginIcon, {
72250
+ if ($2[4] !== activeTools || $2[5] !== tools) {
72251
+ let t52;
72252
+ if ($2[7] !== activeTools) {
72253
+ t52 = (t_3) => activeTools.has(`browser:${t_3.name}`);
72254
+ $2[7] = activeTools;
72255
+ $2[8] = t52;
72256
+ } else {
72257
+ t52 = $2[8];
72258
+ }
72259
+ t4 = tools.some(t52);
72260
+ $2[4] = activeTools;
72261
+ $2[5] = tools;
72262
+ $2[6] = t4;
72263
+ } else {
72264
+ t4 = $2[6];
72265
+ }
72266
+ const hasActiveTool = t4;
72267
+ let t5;
72268
+ if ($2[9] !== hasActiveTool) {
72269
+ t5 = /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(PluginIcon, {
72348
72270
  pluginName: "browser",
72349
72271
  displayName: "Browser",
72272
+ tabState: "ready",
72350
72273
  size: 32,
72351
72274
  iconSvg: CHROME_ICON_SVG,
72352
- iconInactiveSvg: CHROME_ICON_SVG
72275
+ iconInactiveSvg: CHROME_ICON_SVG,
72276
+ active: hasActiveTool
72353
72277
  });
72354
- $2[4] = t4;
72278
+ $2[9] = hasActiveTool;
72279
+ $2[10] = t5;
72355
72280
  } else {
72356
- t4 = $2[4];
72281
+ t5 = $2[10];
72357
72282
  }
72358
- let t5;
72359
- if ($2[5] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
72360
- t5 = /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(Trigger22, {
72361
- className: "flex min-w-0 flex-1 cursor-pointer items-center gap-2 px-3 py-2 focus:outline-hidden [&[data-state=open]>svg.chevron]:rotate-180",
72362
- children: [t4, /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", {
72363
- className: "font-head text-foreground flex min-w-0 flex-1 items-center gap-1.5 truncate text-sm",
72364
- children: ["Browser", /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Badge2, {
72365
- variant: "default",
72366
- size: "sm",
72367
- className: "align-middle",
72368
- children: "CORE"
72369
- })]
72370
- }), /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(ChevronDown, {
72371
- className: "chevron h-4 w-4 shrink-0 transition-transform duration-200"
72283
+ let t6;
72284
+ let t7;
72285
+ if ($2[11] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
72286
+ t6 = /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", {
72287
+ className: "font-head text-foreground flex min-w-0 flex-1 items-center gap-1.5 truncate text-sm",
72288
+ children: ["Browser", /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Badge2, {
72289
+ variant: "default",
72290
+ size: "sm",
72291
+ className: "align-middle",
72292
+ children: "CORE"
72372
72293
  })]
72373
72294
  });
72374
- $2[5] = t5;
72295
+ t7 = /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(ChevronDown, {
72296
+ className: "chevron h-4 w-4 shrink-0 transition-transform duration-200"
72297
+ });
72298
+ $2[11] = t6;
72299
+ $2[12] = t7;
72375
72300
  } else {
72376
- t5 = $2[5];
72301
+ t6 = $2[11];
72302
+ t7 = $2[12];
72377
72303
  }
72378
- let t6;
72379
- if ($2[6] !== serverVersion) {
72380
- t6 = /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(BrowserToolsMenu, {
72304
+ let t8;
72305
+ if ($2[13] !== t5) {
72306
+ t8 = /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(Trigger22, {
72307
+ className: "flex min-w-0 flex-1 cursor-pointer items-center gap-2 px-3 py-2 focus:outline-hidden [&[data-state=open]>svg.chevron]:rotate-180",
72308
+ children: [t5, t6, t7]
72309
+ });
72310
+ $2[13] = t5;
72311
+ $2[14] = t8;
72312
+ } else {
72313
+ t8 = $2[14];
72314
+ }
72315
+ let t9;
72316
+ if ($2[15] !== serverVersion) {
72317
+ t9 = /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(BrowserToolsMenu, {
72381
72318
  serverVersion,
72382
72319
  className: "flex shrink-0 items-center px-1"
72383
72320
  });
72384
- $2[6] = serverVersion;
72385
- $2[7] = t6;
72321
+ $2[15] = serverVersion;
72322
+ $2[16] = t9;
72386
72323
  } else {
72387
- t6 = $2[7];
72324
+ t9 = $2[16];
72388
72325
  }
72389
- let t7;
72390
- if ($2[8] !== toggleError) {
72391
- t7 = toggleError && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(AlertComponent, {
72326
+ let t10;
72327
+ if ($2[17] !== toggleError) {
72328
+ t10 = toggleError && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(AlertComponent, {
72392
72329
  status: "error",
72393
72330
  className: "mx-3 mb-1 px-2 py-1 text-xs",
72394
72331
  children: toggleError
72395
72332
  });
72396
- $2[8] = toggleError;
72397
- $2[9] = t7;
72333
+ $2[17] = toggleError;
72334
+ $2[18] = t10;
72398
72335
  } else {
72399
- t7 = $2[9];
72336
+ t10 = $2[18];
72400
72337
  }
72401
- const t8 = AccordionComponent;
72402
- const t9 = "border-border border-t";
72403
- const t10 = toolFilter && /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", {
72338
+ const t11 = AccordionComponent;
72339
+ const t12 = "border-border border-t";
72340
+ const t13 = toolFilter && /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", {
72404
72341
  className: "text-muted-foreground mb-1 px-3 pt-2 text-xs",
72405
72342
  children: [visibleTools.length, " of ", tools.length, " tools"]
72406
72343
  });
72407
- const t11 = visibleTools.map((tool) => /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(ToolRow, {
72344
+ const t14 = visibleTools.map((tool) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(ToolRow, {
72408
72345
  name: tool.name,
72409
72346
  displayName: toDisplayName(tool.name),
72410
72347
  description: tool.description,
@@ -72413,35 +72350,35 @@ var BrowserToolsCard = (t0) => {
72413
72350
  active: activeTools.has(`browser:${tool.name}`),
72414
72351
  onToggle: () => handleToggleTool(tool.name, tool.enabled)
72415
72352
  }, tool.name));
72416
- let t12;
72417
- if ($2[10] !== t10 || $2[11] !== t11 || $2[12] !== t8.Content) {
72418
- t12 = /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(t8.Content, {
72419
- className: t9,
72420
- children: [t10, t11]
72353
+ let t15;
72354
+ if ($2[19] !== t11.Content || $2[20] !== t13 || $2[21] !== t14) {
72355
+ t15 = /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(t11.Content, {
72356
+ className: t12,
72357
+ children: [t13, t14]
72421
72358
  });
72422
- $2[10] = t10;
72423
- $2[11] = t11;
72424
- $2[12] = t8.Content;
72425
- $2[13] = t12;
72359
+ $2[19] = t11.Content;
72360
+ $2[20] = t13;
72361
+ $2[21] = t14;
72362
+ $2[22] = t15;
72426
72363
  } else {
72427
- t12 = $2[13];
72364
+ t15 = $2[22];
72428
72365
  }
72429
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(AccordionComponent.Item, {
72366
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(AccordionComponent.Item, {
72430
72367
  value: "browser-tools",
72431
- children: [/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(Header, {
72368
+ children: [/* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(Header, {
72432
72369
  className: "flex",
72433
- children: [t5, t6, /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", {
72370
+ children: [t8, t9, /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", {
72434
72371
  className: "flex shrink-0 items-center px-3",
72435
72372
  onClick: _temp22,
72436
72373
  onKeyDown: _temp32,
72437
72374
  role: "presentation",
72438
- children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Switch2, {
72375
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Switch2, {
72439
72376
  checked: allEnabled,
72440
72377
  onCheckedChange: handleToggleAll,
72441
72378
  "aria-label": "Toggle all browser tools"
72442
72379
  })
72443
72380
  })]
72444
- }), t7, t12]
72381
+ }), t10, t15]
72445
72382
  });
72446
72383
  };
72447
72384
  function _temp4(t2) {
@@ -72457,14 +72394,14 @@ function _temp32(e_0) {
72457
72394
  }
72458
72395
 
72459
72396
  // src/side-panel/components/ConfirmationDialog.tsx
72460
- var import_compiler_runtime16 = __toESM(require_compiler_runtime(), 1);
72397
+ var import_compiler_runtime15 = __toESM(require_compiler_runtime(), 1);
72461
72398
 
72462
72399
  // src/side-panel/components/retro/Button.tsx
72463
- var import_compiler_runtime14 = __toESM(require_compiler_runtime(), 1);
72400
+ var import_compiler_runtime13 = __toESM(require_compiler_runtime(), 1);
72464
72401
 
72465
72402
  // ../../node_modules/@radix-ui/react-slot/dist/index.mjs
72466
72403
  var React43 = __toESM(require_react(), 1);
72467
- var import_jsx_runtime36 = __toESM(require_jsx_runtime(), 1);
72404
+ var import_jsx_runtime35 = __toESM(require_jsx_runtime(), 1);
72468
72405
  var REACT_LAZY_TYPE = /* @__PURE__ */ Symbol.for("react.lazy");
72469
72406
  var use = React43[" use ".trim().toString()];
72470
72407
  function isPromiseLike(value) {
@@ -72493,9 +72430,9 @@ function createSlot4(ownerName) {
72493
72430
  return child;
72494
72431
  }
72495
72432
  });
72496
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: React43.isValidElement(newElement) ? React43.cloneElement(newElement, void 0, newChildren) : null });
72433
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: React43.isValidElement(newElement) ? React43.cloneElement(newElement, void 0, newChildren) : null });
72497
72434
  }
72498
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children });
72435
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children });
72499
72436
  });
72500
72437
  Slot22.displayName = `${ownerName}.Slot`;
72501
72438
  return Slot22;
@@ -72564,7 +72501,7 @@ function getElementRef5(element) {
72564
72501
  }
72565
72502
 
72566
72503
  // src/side-panel/components/retro/Button.tsx
72567
- var import_jsx_runtime37 = __toESM(require_jsx_runtime(), 1);
72504
+ var import_jsx_runtime36 = __toESM(require_jsx_runtime(), 1);
72568
72505
  var buttonVariants = cva("font-head transition-all rounded outline-hidden cursor-pointer duration-200 font-medium flex justify-center items-center disabled:opacity-60 disabled:cursor-not-allowed", {
72569
72506
  variants: {
72570
72507
  variant: {
@@ -72587,7 +72524,7 @@ var buttonVariants = cva("font-head transition-all rounded outline-hidden cursor
72587
72524
  }
72588
72525
  });
72589
72526
  var Button = (t0) => {
72590
- const $2 = (0, import_compiler_runtime14.c)(18);
72527
+ const $2 = (0, import_compiler_runtime13.c)(18);
72591
72528
  let children;
72592
72529
  let props;
72593
72530
  let ref;
@@ -72642,7 +72579,7 @@ var Button = (t0) => {
72642
72579
  }
72643
72580
  let t6;
72644
72581
  if ($2[12] !== Comp || $2[13] !== children || $2[14] !== props || $2[15] !== ref || $2[16] !== t5) {
72645
- t6 = /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Comp, {
72582
+ t6 = /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Comp, {
72646
72583
  ref,
72647
72584
  className: t5,
72648
72585
  ...props,
@@ -72661,14 +72598,14 @@ var Button = (t0) => {
72661
72598
  };
72662
72599
 
72663
72600
  // src/side-panel/components/retro/Progress.tsx
72664
- var import_compiler_runtime15 = __toESM(require_compiler_runtime(), 1);
72601
+ var import_compiler_runtime14 = __toESM(require_compiler_runtime(), 1);
72665
72602
 
72666
72603
  // ../../node_modules/@radix-ui/react-progress/dist/index.mjs
72667
72604
  var React46 = __toESM(require_react(), 1);
72668
72605
 
72669
72606
  // ../../node_modules/@radix-ui/react-progress/node_modules/@radix-ui/react-context/dist/index.mjs
72670
72607
  var React44 = __toESM(require_react(), 1);
72671
- var import_jsx_runtime38 = __toESM(require_jsx_runtime(), 1);
72608
+ var import_jsx_runtime37 = __toESM(require_jsx_runtime(), 1);
72672
72609
  function createContextScope2(scopeName, createContextScopeDeps = []) {
72673
72610
  let defaultContexts = [];
72674
72611
  function createContext32(rootComponentName, defaultContext) {
@@ -72680,7 +72617,7 @@ function createContextScope2(scopeName, createContextScopeDeps = []) {
72680
72617
  const { scope, children, ...context } = props;
72681
72618
  const Context = scope?.[scopeName]?.[index2] || BaseContext;
72682
72619
  const value = React44.useMemo(() => context, Object.values(context));
72683
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Context.Provider, { value, children });
72620
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Context.Provider, { value, children });
72684
72621
  };
72685
72622
  Provider2.displayName = rootComponentName + "Provider";
72686
72623
  function useContext22(consumerName, scope) {
@@ -72731,7 +72668,7 @@ function composeContextScopes2(...scopes) {
72731
72668
  // ../../node_modules/@radix-ui/react-progress/node_modules/@radix-ui/react-primitive/dist/index.mjs
72732
72669
  var React45 = __toESM(require_react(), 1);
72733
72670
  var ReactDOM4 = __toESM(require_react_dom(), 1);
72734
- var import_jsx_runtime39 = __toESM(require_jsx_runtime(), 1);
72671
+ var import_jsx_runtime38 = __toESM(require_jsx_runtime(), 1);
72735
72672
  var NODES2 = [
72736
72673
  "a",
72737
72674
  "button",
@@ -72759,14 +72696,14 @@ var Primitive2 = NODES2.reduce((primitive, node) => {
72759
72696
  if (typeof window !== "undefined") {
72760
72697
  window[/* @__PURE__ */ Symbol.for("radix-ui")] = true;
72761
72698
  }
72762
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Comp, { ...primitiveProps, ref: forwardedRef });
72699
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Comp, { ...primitiveProps, ref: forwardedRef });
72763
72700
  });
72764
72701
  Node2.displayName = `Primitive.${node}`;
72765
72702
  return { ...primitive, [node]: Node2 };
72766
72703
  }, {});
72767
72704
 
72768
72705
  // ../../node_modules/@radix-ui/react-progress/dist/index.mjs
72769
- var import_jsx_runtime40 = __toESM(require_jsx_runtime(), 1);
72706
+ var import_jsx_runtime39 = __toESM(require_jsx_runtime(), 1);
72770
72707
  var PROGRESS_NAME = "Progress";
72771
72708
  var DEFAULT_MAX = 100;
72772
72709
  var [createProgressContext, createProgressScope] = createContextScope2(PROGRESS_NAME);
@@ -72789,7 +72726,7 @@ var Progress = React46.forwardRef(
72789
72726
  }
72790
72727
  const value = isValidValueNumber(valueProp, max2) ? valueProp : null;
72791
72728
  const valueLabel = isNumber2(value) ? getValueLabel(value, max2) : void 0;
72792
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(ProgressProvider, { scope: __scopeProgress, value, max: max2, children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
72729
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(ProgressProvider, { scope: __scopeProgress, value, max: max2, children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
72793
72730
  Primitive2.div,
72794
72731
  {
72795
72732
  "aria-valuemax": max2,
@@ -72812,7 +72749,7 @@ var ProgressIndicator = React46.forwardRef(
72812
72749
  (props, forwardedRef) => {
72813
72750
  const { __scopeProgress, ...indicatorProps } = props;
72814
72751
  const context = useProgressContext(INDICATOR_NAME2, __scopeProgress);
72815
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
72752
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
72816
72753
  Primitive2.div,
72817
72754
  {
72818
72755
  "data-state": getProgressState(context.value, context.max),
@@ -72855,9 +72792,9 @@ var Root7 = Progress;
72855
72792
  var Indicator = ProgressIndicator;
72856
72793
 
72857
72794
  // src/side-panel/components/retro/Progress.tsx
72858
- var import_jsx_runtime41 = __toESM(require_jsx_runtime(), 1);
72795
+ var import_jsx_runtime40 = __toESM(require_jsx_runtime(), 1);
72859
72796
  var Progress2 = (t0) => {
72860
- const $2 = (0, import_compiler_runtime15.c)(19);
72797
+ const $2 = (0, import_compiler_runtime14.c)(19);
72861
72798
  let className;
72862
72799
  let indicatorClassName;
72863
72800
  let props;
@@ -72909,7 +72846,7 @@ var Progress2 = (t0) => {
72909
72846
  }
72910
72847
  let t5;
72911
72848
  if ($2[11] !== t2 || $2[12] !== t4) {
72912
- t5 = /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Indicator, {
72849
+ t5 = /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Indicator, {
72913
72850
  className: t2,
72914
72851
  style: t4
72915
72852
  });
@@ -72921,7 +72858,7 @@ var Progress2 = (t0) => {
72921
72858
  }
72922
72859
  let t6;
72923
72860
  if ($2[14] !== props || $2[15] !== t1 || $2[16] !== t5 || $2[17] !== value) {
72924
- t6 = /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Root7, {
72861
+ t6 = /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Root7, {
72925
72862
  className: t1,
72926
72863
  value,
72927
72864
  ...props,
@@ -72939,15 +72876,15 @@ var Progress2 = (t0) => {
72939
72876
  };
72940
72877
 
72941
72878
  // src/side-panel/components/ConfirmationDialog.tsx
72942
- var import_react11 = __toESM(require_react(), 1);
72943
- var import_jsx_runtime42 = __toESM(require_jsx_runtime(), 1);
72879
+ var import_react12 = __toESM(require_react(), 1);
72880
+ var import_jsx_runtime41 = __toESM(require_jsx_runtime(), 1);
72944
72881
  var CountdownBar = (t0) => {
72945
- const $2 = (0, import_compiler_runtime16.c)(12);
72882
+ const $2 = (0, import_compiler_runtime15.c)(12);
72946
72883
  const {
72947
72884
  timeoutMs,
72948
72885
  receivedAt
72949
72886
  } = t0;
72950
- const [remaining, setRemaining] = (0, import_react11.useState)(timeoutMs);
72887
+ const [remaining, setRemaining] = (0, import_react12.useState)(timeoutMs);
72951
72888
  let t1;
72952
72889
  let t2;
72953
72890
  if ($2[0] !== receivedAt || $2[1] !== timeoutMs) {
@@ -72973,14 +72910,14 @@ var CountdownBar = (t0) => {
72973
72910
  t1 = $2[2];
72974
72911
  t2 = $2[3];
72975
72912
  }
72976
- (0, import_react11.useEffect)(t1, t2);
72913
+ (0, import_react12.useEffect)(t1, t2);
72977
72914
  const seconds = Math.ceil(remaining / 1e3);
72978
72915
  const fraction = remaining / timeoutMs;
72979
72916
  const t3 = fraction * 100;
72980
72917
  const t4 = fraction > 0.33 ? "bg-accent-foreground" : "bg-destructive";
72981
72918
  let t5;
72982
72919
  if ($2[4] !== t3 || $2[5] !== t4) {
72983
- t5 = /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Progress2, {
72920
+ t5 = /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Progress2, {
72984
72921
  value: t3,
72985
72922
  className: "flex-1",
72986
72923
  indicatorClassName: t4
@@ -72993,7 +72930,7 @@ var CountdownBar = (t0) => {
72993
72930
  }
72994
72931
  let t6;
72995
72932
  if ($2[7] !== seconds) {
72996
- t6 = /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("span", {
72933
+ t6 = /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("span", {
72997
72934
  className: "text-muted-foreground font-mono text-xs tabular-nums",
72998
72935
  children: [seconds, "s"]
72999
72936
  });
@@ -73004,7 +72941,7 @@ var CountdownBar = (t0) => {
73004
72941
  }
73005
72942
  let t7;
73006
72943
  if ($2[9] !== t5 || $2[10] !== t6) {
73007
- t7 = /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("div", {
72944
+ t7 = /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", {
73008
72945
  className: "mt-2 flex items-center gap-2",
73009
72946
  children: [t5, t6]
73010
72947
  });
@@ -73017,20 +72954,20 @@ var CountdownBar = (t0) => {
73017
72954
  return t7;
73018
72955
  };
73019
72956
  var AllowAlwaysButton = (t0) => {
73020
- const $2 = (0, import_compiler_runtime16.c)(13);
72957
+ const $2 = (0, import_compiler_runtime15.c)(13);
73021
72958
  const {
73022
72959
  domain,
73023
72960
  onSelect
73024
72961
  } = t0;
73025
72962
  let t1;
73026
72963
  if ($2[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
73027
- t1 = /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(MenuObject.Trigger, {
72964
+ t1 = /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(MenuObject.Trigger, {
73028
72965
  asChild: true,
73029
- children: /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Button, {
72966
+ children: /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Button, {
73030
72967
  size: "sm",
73031
72968
  variant: "outline",
73032
72969
  className: "w-full gap-1 text-xs",
73033
- children: ["Allow Always", /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(ChevronDown, {
72970
+ children: ["Allow Always", /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(ChevronDown, {
73034
72971
  className: "h-3 w-3"
73035
72972
  })]
73036
72973
  })
@@ -73041,7 +72978,7 @@ var AllowAlwaysButton = (t0) => {
73041
72978
  }
73042
72979
  let t2;
73043
72980
  if ($2[1] !== domain || $2[2] !== onSelect) {
73044
- t2 = domain && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(MenuObject.Item, {
72981
+ t2 = domain && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(MenuObject.Item, {
73045
72982
  onSelect: () => onSelect("tool_domain"),
73046
72983
  children: "For this tool on this domain"
73047
72984
  });
@@ -73053,7 +72990,7 @@ var AllowAlwaysButton = (t0) => {
73053
72990
  }
73054
72991
  let t3;
73055
72992
  if ($2[4] !== onSelect) {
73056
- t3 = /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(MenuObject.Item, {
72993
+ t3 = /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(MenuObject.Item, {
73057
72994
  onSelect: () => onSelect("tool_all"),
73058
72995
  children: "For this tool everywhere"
73059
72996
  });
@@ -73064,7 +73001,7 @@ var AllowAlwaysButton = (t0) => {
73064
73001
  }
73065
73002
  let t4;
73066
73003
  if ($2[6] !== domain || $2[7] !== onSelect) {
73067
- t4 = domain && /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(MenuObject.Item, {
73004
+ t4 = domain && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(MenuObject.Item, {
73068
73005
  onSelect: () => onSelect("domain_all"),
73069
73006
  children: ["For all tools on ", domain]
73070
73007
  });
@@ -73076,8 +73013,8 @@ var AllowAlwaysButton = (t0) => {
73076
73013
  }
73077
73014
  let t5;
73078
73015
  if ($2[9] !== t2 || $2[10] !== t3 || $2[11] !== t4) {
73079
- t5 = /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(MenuObject, {
73080
- children: [t1, /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(MenuObject.Content, {
73016
+ t5 = /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(MenuObject, {
73017
+ children: [t1, /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(MenuObject.Content, {
73081
73018
  side: "top",
73082
73019
  align: "end",
73083
73020
  children: [t2, t3, t4]
@@ -73094,13 +73031,13 @@ var AllowAlwaysButton = (t0) => {
73094
73031
  };
73095
73032
  var resolveDisplayIndex = (currentIndex, count3) => Math.min(currentIndex, count3 - 1);
73096
73033
  var ConfirmationDialog = (t0) => {
73097
- const $2 = (0, import_compiler_runtime16.c)(52);
73034
+ const $2 = (0, import_compiler_runtime15.c)(52);
73098
73035
  const {
73099
73036
  confirmations,
73100
73037
  onRespond,
73101
73038
  onDenyAll
73102
73039
  } = t0;
73103
- const [currentIndex, setCurrentIndex] = (0, import_react11.useState)(0);
73040
+ const [currentIndex, setCurrentIndex] = (0, import_react12.useState)(0);
73104
73041
  const safeIndex = resolveDisplayIndex(currentIndex, confirmations.length);
73105
73042
  const current = confirmations[safeIndex];
73106
73043
  if (!current) {
@@ -73110,10 +73047,10 @@ var ConfirmationDialog = (t0) => {
73110
73047
  let t1;
73111
73048
  let t2;
73112
73049
  if ($2[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
73113
- t1 = /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(ShieldAlert, {
73050
+ t1 = /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(ShieldAlert, {
73114
73051
  className: "text-accent-foreground h-4 w-4 shrink-0"
73115
73052
  });
73116
- t2 = /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, {
73053
+ t2 = /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, {
73117
73054
  as: "h6",
73118
73055
  className: "flex-1 text-sm",
73119
73056
  children: "Approval Required"
@@ -73126,7 +73063,7 @@ var ConfirmationDialog = (t0) => {
73126
73063
  }
73127
73064
  let t3;
73128
73065
  if ($2[2] !== count3 || $2[3] !== safeIndex) {
73129
- t3 = count3 > 1 && /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("span", {
73066
+ t3 = count3 > 1 && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("span", {
73130
73067
  className: "text-muted-foreground font-mono text-xs",
73131
73068
  children: [safeIndex + 1, " of ", count3]
73132
73069
  });
@@ -73138,7 +73075,7 @@ var ConfirmationDialog = (t0) => {
73138
73075
  }
73139
73076
  let t4;
73140
73077
  if ($2[5] !== t3) {
73141
- t4 = /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("div", {
73078
+ t4 = /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", {
73142
73079
  className: "border-accent-foreground flex items-center gap-2 border-b-2 px-3 py-2",
73143
73080
  children: [t1, t2, t3]
73144
73081
  });
@@ -73149,7 +73086,7 @@ var ConfirmationDialog = (t0) => {
73149
73086
  }
73150
73087
  let t5;
73151
73088
  if ($2[7] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
73152
- t5 = /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", {
73089
+ t5 = /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", {
73153
73090
  className: "text-muted-foreground font-sans text-xs",
73154
73091
  children: "Tool"
73155
73092
  });
@@ -73159,8 +73096,8 @@ var ConfirmationDialog = (t0) => {
73159
73096
  }
73160
73097
  let t6;
73161
73098
  if ($2[8] !== current.tool) {
73162
- t6 = /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("div", {
73163
- children: [t5, /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", {
73099
+ t6 = /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", {
73100
+ children: [t5, /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", {
73164
73101
  className: "font-mono text-sm",
73165
73102
  children: current.tool
73166
73103
  })]
@@ -73172,11 +73109,11 @@ var ConfirmationDialog = (t0) => {
73172
73109
  }
73173
73110
  let t7;
73174
73111
  if ($2[10] !== current.domain) {
73175
- t7 = current.domain && /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("div", {
73176
- children: [/* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", {
73112
+ t7 = current.domain && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", {
73113
+ children: [/* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", {
73177
73114
  className: "text-muted-foreground font-sans text-xs",
73178
73115
  children: "Domain"
73179
- }), /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", {
73116
+ }), /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", {
73180
73117
  className: "font-sans text-sm",
73181
73118
  children: current.domain
73182
73119
  })]
@@ -73188,11 +73125,11 @@ var ConfirmationDialog = (t0) => {
73188
73125
  }
73189
73126
  let t8;
73190
73127
  if ($2[12] !== current.paramsPreview) {
73191
- t8 = current.paramsPreview && /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("div", {
73192
- children: [/* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", {
73128
+ t8 = current.paramsPreview && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", {
73129
+ children: [/* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", {
73193
73130
  className: "text-muted-foreground font-sans text-xs",
73194
73131
  children: "Parameters"
73195
- }), /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("pre", {
73132
+ }), /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("pre", {
73196
73133
  className: "border-border bg-card mt-0.5 max-h-20 overflow-auto rounded border px-2 py-1 font-mono text-xs leading-tight",
73197
73134
  children: current.paramsPreview
73198
73135
  })]
@@ -73204,7 +73141,7 @@ var ConfirmationDialog = (t0) => {
73204
73141
  }
73205
73142
  let t9;
73206
73143
  if ($2[14] !== current.receivedAt || $2[15] !== current.timeoutMs) {
73207
- t9 = /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(CountdownBar, {
73144
+ t9 = /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(CountdownBar, {
73208
73145
  timeoutMs: current.timeoutMs,
73209
73146
  receivedAt: current.receivedAt
73210
73147
  });
@@ -73216,7 +73153,7 @@ var ConfirmationDialog = (t0) => {
73216
73153
  }
73217
73154
  let t10;
73218
73155
  if ($2[17] !== t6 || $2[18] !== t7 || $2[19] !== t8 || $2[20] !== t9) {
73219
- t10 = /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("div", {
73156
+ t10 = /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", {
73220
73157
  className: "space-y-2 px-3 py-2",
73221
73158
  children: [t6, t7, t8, t9]
73222
73159
  });
@@ -73230,7 +73167,7 @@ var ConfirmationDialog = (t0) => {
73230
73167
  }
73231
73168
  let t11;
73232
73169
  if ($2[22] !== current.id || $2[23] !== onRespond) {
73233
- t11 = /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Button, {
73170
+ t11 = /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Button, {
73234
73171
  size: "sm",
73235
73172
  className: "w-full",
73236
73173
  onClick: () => onRespond(current.id, "allow_once"),
@@ -73253,7 +73190,7 @@ var ConfirmationDialog = (t0) => {
73253
73190
  }
73254
73191
  let t13;
73255
73192
  if ($2[28] !== current.domain || $2[29] !== t12) {
73256
- t13 = /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(AllowAlwaysButton, {
73193
+ t13 = /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(AllowAlwaysButton, {
73257
73194
  domain: current.domain,
73258
73195
  onSelect: t12
73259
73196
  });
@@ -73265,7 +73202,7 @@ var ConfirmationDialog = (t0) => {
73265
73202
  }
73266
73203
  let t14;
73267
73204
  if ($2[31] !== current.id || $2[32] !== onRespond) {
73268
- t14 = /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Button, {
73205
+ t14 = /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Button, {
73269
73206
  size: "sm",
73270
73207
  variant: "outline",
73271
73208
  className: "text-destructive w-full text-xs",
@@ -73280,7 +73217,7 @@ var ConfirmationDialog = (t0) => {
73280
73217
  }
73281
73218
  let t15;
73282
73219
  if ($2[34] !== count3 || $2[35] !== onDenyAll) {
73283
- t15 = count3 > 1 && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Button, {
73220
+ t15 = count3 > 1 && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Button, {
73284
73221
  size: "sm",
73285
73222
  variant: "outline",
73286
73223
  className: "text-destructive w-full text-xs",
@@ -73295,7 +73232,7 @@ var ConfirmationDialog = (t0) => {
73295
73232
  }
73296
73233
  let t16;
73297
73234
  if ($2[37] !== t14 || $2[38] !== t15) {
73298
- t16 = /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("div", {
73235
+ t16 = /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", {
73299
73236
  className: "flex items-center gap-2",
73300
73237
  children: [t14, t15]
73301
73238
  });
@@ -73307,7 +73244,7 @@ var ConfirmationDialog = (t0) => {
73307
73244
  }
73308
73245
  let t17;
73309
73246
  if ($2[40] !== t11 || $2[41] !== t13 || $2[42] !== t16) {
73310
- t17 = /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("div", {
73247
+ t17 = /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", {
73311
73248
  className: "border-accent-foreground flex flex-col gap-1.5 border-t-2 py-2 pr-4 pl-3",
73312
73249
  children: [t11, t13, t16]
73313
73250
  });
@@ -73320,15 +73257,15 @@ var ConfirmationDialog = (t0) => {
73320
73257
  }
73321
73258
  let t18;
73322
73259
  if ($2[44] !== count3 || $2[45] !== safeIndex) {
73323
- t18 = count3 > 1 && /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("div", {
73260
+ t18 = count3 > 1 && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", {
73324
73261
  className: "border-border flex justify-center gap-2 border-t px-3 py-1",
73325
- children: [/* @__PURE__ */ (0, import_jsx_runtime42.jsx)("button", {
73262
+ children: [/* @__PURE__ */ (0, import_jsx_runtime41.jsx)("button", {
73326
73263
  type: "button",
73327
73264
  className: "text-muted-foreground hover:text-foreground cursor-pointer font-mono text-xs disabled:cursor-not-allowed disabled:opacity-40",
73328
73265
  disabled: safeIndex === 0,
73329
73266
  onClick: () => setCurrentIndex(_temp5),
73330
73267
  children: "prev"
73331
- }), /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("button", {
73268
+ }), /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("button", {
73332
73269
  type: "button",
73333
73270
  className: "text-muted-foreground hover:text-foreground cursor-pointer font-mono text-xs disabled:cursor-not-allowed disabled:opacity-40",
73334
73271
  disabled: safeIndex >= count3 - 1,
@@ -73344,10 +73281,10 @@ var ConfirmationDialog = (t0) => {
73344
73281
  }
73345
73282
  let t19;
73346
73283
  if ($2[47] !== t10 || $2[48] !== t17 || $2[49] !== t18 || $2[50] !== t4) {
73347
- t19 = /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", {
73284
+ t19 = /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", {
73348
73285
  className: "mx-4 mt-2",
73349
73286
  role: "alert",
73350
- children: /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("div", {
73287
+ children: /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", {
73351
73288
  className: "border-accent-foreground bg-accent/30 rounded border-2 shadow-md",
73352
73289
  children: [t4, t10, t17, t18]
73353
73290
  })
@@ -73373,10 +73310,10 @@ function _temp23(i_0) {
73373
73310
  var import_compiler_runtime18 = __toESM(require_compiler_runtime(), 1);
73374
73311
 
73375
73312
  // src/side-panel/components/retro/Empty.tsx
73376
- var import_compiler_runtime17 = __toESM(require_compiler_runtime(), 1);
73377
- var import_jsx_runtime43 = __toESM(require_jsx_runtime(), 1);
73313
+ var import_compiler_runtime16 = __toESM(require_compiler_runtime(), 1);
73314
+ var import_jsx_runtime42 = __toESM(require_jsx_runtime(), 1);
73378
73315
  var Empty = (t0) => {
73379
- const $2 = (0, import_compiler_runtime17.c)(8);
73316
+ const $2 = (0, import_compiler_runtime16.c)(8);
73380
73317
  let className;
73381
73318
  let props;
73382
73319
  if ($2[0] !== t0) {
@@ -73401,7 +73338,7 @@ var Empty = (t0) => {
73401
73338
  }
73402
73339
  let t2;
73403
73340
  if ($2[5] !== props || $2[6] !== t1) {
73404
- t2 = /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", {
73341
+ t2 = /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", {
73405
73342
  className: t1,
73406
73343
  ...props
73407
73344
  });
@@ -73415,7 +73352,7 @@ var Empty = (t0) => {
73415
73352
  };
73416
73353
  Empty.displayName = "Empty";
73417
73354
  var EmptyContent = (t0) => {
73418
- const $2 = (0, import_compiler_runtime17.c)(8);
73355
+ const $2 = (0, import_compiler_runtime16.c)(8);
73419
73356
  let className;
73420
73357
  let props;
73421
73358
  if ($2[0] !== t0) {
@@ -73440,7 +73377,7 @@ var EmptyContent = (t0) => {
73440
73377
  }
73441
73378
  let t2;
73442
73379
  if ($2[5] !== props || $2[6] !== t1) {
73443
- t2 = /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", {
73380
+ t2 = /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", {
73444
73381
  className: t1,
73445
73382
  ...props
73446
73383
  });
@@ -73454,7 +73391,7 @@ var EmptyContent = (t0) => {
73454
73391
  };
73455
73392
  EmptyContent.displayName = "Empty.Content";
73456
73393
  var EmptyIcon = (t0) => {
73457
- const $2 = (0, import_compiler_runtime17.c)(12);
73394
+ const $2 = (0, import_compiler_runtime16.c)(12);
73458
73395
  let children;
73459
73396
  let className;
73460
73397
  let props;
@@ -73483,7 +73420,7 @@ var EmptyIcon = (t0) => {
73483
73420
  }
73484
73421
  let t2;
73485
73422
  if ($2[6] !== children) {
73486
- t2 = children || /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Ghost, {
73423
+ t2 = children || /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Ghost, {
73487
73424
  className: "h-full w-full"
73488
73425
  });
73489
73426
  $2[6] = children;
@@ -73493,7 +73430,7 @@ var EmptyIcon = (t0) => {
73493
73430
  }
73494
73431
  let t3;
73495
73432
  if ($2[8] !== props || $2[9] !== t1 || $2[10] !== t2) {
73496
- t3 = /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", {
73433
+ t3 = /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", {
73497
73434
  className: t1,
73498
73435
  ...props,
73499
73436
  children: t2
@@ -73509,7 +73446,7 @@ var EmptyIcon = (t0) => {
73509
73446
  };
73510
73447
  EmptyIcon.displayName = "Empty.Icon";
73511
73448
  var EmptyTitle = (t0) => {
73512
- const $2 = (0, import_compiler_runtime17.c)(8);
73449
+ const $2 = (0, import_compiler_runtime16.c)(8);
73513
73450
  let className;
73514
73451
  let props;
73515
73452
  if ($2[0] !== t0) {
@@ -73534,7 +73471,7 @@ var EmptyTitle = (t0) => {
73534
73471
  }
73535
73472
  let t2;
73536
73473
  if ($2[5] !== props || $2[6] !== t1) {
73537
- t2 = /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text, {
73474
+ t2 = /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, {
73538
73475
  as: "h3",
73539
73476
  className: t1,
73540
73477
  ...props
@@ -73549,7 +73486,7 @@ var EmptyTitle = (t0) => {
73549
73486
  };
73550
73487
  EmptyTitle.displayName = "Empty.Title";
73551
73488
  var EmptySeparator = (t0) => {
73552
- const $2 = (0, import_compiler_runtime17.c)(8);
73489
+ const $2 = (0, import_compiler_runtime16.c)(8);
73553
73490
  let className;
73554
73491
  let props;
73555
73492
  if ($2[0] !== t0) {
@@ -73574,7 +73511,7 @@ var EmptySeparator = (t0) => {
73574
73511
  }
73575
73512
  let t2;
73576
73513
  if ($2[5] !== props || $2[6] !== t1) {
73577
- t2 = /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", {
73514
+ t2 = /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", {
73578
73515
  role: "separator",
73579
73516
  className: t1,
73580
73517
  ...props
@@ -73589,7 +73526,7 @@ var EmptySeparator = (t0) => {
73589
73526
  };
73590
73527
  EmptySeparator.displayName = "Empty.Separator";
73591
73528
  var EmptyDescription = (t0) => {
73592
- const $2 = (0, import_compiler_runtime17.c)(8);
73529
+ const $2 = (0, import_compiler_runtime16.c)(8);
73593
73530
  let className;
73594
73531
  let props;
73595
73532
  if ($2[0] !== t0) {
@@ -73610,30 +73547,155 @@ var EmptyDescription = (t0) => {
73610
73547
  $2[3] = className;
73611
73548
  $2[4] = t1;
73612
73549
  } else {
73613
- t1 = $2[4];
73550
+ t1 = $2[4];
73551
+ }
73552
+ let t2;
73553
+ if ($2[5] !== props || $2[6] !== t1) {
73554
+ t2 = /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("p", {
73555
+ className: t1,
73556
+ ...props
73557
+ });
73558
+ $2[5] = props;
73559
+ $2[6] = t1;
73560
+ $2[7] = t2;
73561
+ } else {
73562
+ t2 = $2[7];
73563
+ }
73564
+ return t2;
73565
+ };
73566
+ EmptyDescription.displayName = "Empty.Description";
73567
+ var EmptyComponent = Object.assign(Empty, {
73568
+ Content: EmptyContent,
73569
+ Icon: EmptyIcon,
73570
+ Title: EmptyTitle,
73571
+ Separator: EmptySeparator,
73572
+ Description: EmptyDescription
73573
+ });
73574
+
73575
+ // src/side-panel/components/retro/Loader.tsx
73576
+ var import_compiler_runtime17 = __toESM(require_compiler_runtime(), 1);
73577
+ var import_jsx_runtime43 = __toESM(require_jsx_runtime(), 1);
73578
+ var loaderVariants = cva("flex gap-1", {
73579
+ variants: {
73580
+ variant: {
73581
+ default: "[&>div]:bg-primary [&>div]:border-border",
73582
+ secondary: "[&>div]:bg-secondary [&>div]:border-border",
73583
+ outline: "[&>div]:bg-transparent [&>div]:border-border"
73584
+ },
73585
+ size: {
73586
+ sm: "[&>div]:w-2 [&>div]:h-2",
73587
+ md: "[&>div]:w-3 [&>div]:h-3",
73588
+ lg: "[&>div]:w-4 [&>div]:h-4"
73589
+ }
73590
+ },
73591
+ defaultVariants: {
73592
+ variant: "default",
73593
+ size: "md"
73594
+ }
73595
+ });
73596
+ var Loader2 = (t0) => {
73597
+ const $2 = (0, import_compiler_runtime17.c)(24);
73598
+ let className;
73599
+ let props;
73600
+ let ref;
73601
+ let size4;
73602
+ let t1;
73603
+ let t2;
73604
+ let t3;
73605
+ let variant;
73606
+ if ($2[0] !== t0) {
73607
+ ({
73608
+ className,
73609
+ variant,
73610
+ size: size4,
73611
+ count: t1,
73612
+ duration: t2,
73613
+ delayStep: t3,
73614
+ ref,
73615
+ ...props
73616
+ } = t0);
73617
+ $2[0] = t0;
73618
+ $2[1] = className;
73619
+ $2[2] = props;
73620
+ $2[3] = ref;
73621
+ $2[4] = size4;
73622
+ $2[5] = t1;
73623
+ $2[6] = t2;
73624
+ $2[7] = t3;
73625
+ $2[8] = variant;
73626
+ } else {
73627
+ className = $2[1];
73628
+ props = $2[2];
73629
+ ref = $2[3];
73630
+ size4 = $2[4];
73631
+ t1 = $2[5];
73632
+ t2 = $2[6];
73633
+ t3 = $2[7];
73634
+ variant = $2[8];
73635
+ }
73636
+ const count3 = t1 === void 0 ? 3 : t1;
73637
+ const duration = t2 === void 0 ? 0.5 : t2;
73638
+ const delayStep = t3 === void 0 ? 100 : t3;
73639
+ let t4;
73640
+ if ($2[9] !== className || $2[10] !== size4 || $2[11] !== variant) {
73641
+ t4 = cn(loaderVariants({
73642
+ variant,
73643
+ size: size4
73644
+ }), className);
73645
+ $2[9] = className;
73646
+ $2[10] = size4;
73647
+ $2[11] = variant;
73648
+ $2[12] = t4;
73649
+ } else {
73650
+ t4 = $2[12];
73651
+ }
73652
+ let t5;
73653
+ if ($2[13] !== count3) {
73654
+ t5 = Array.from({
73655
+ length: count3
73656
+ });
73657
+ $2[13] = count3;
73658
+ $2[14] = t5;
73659
+ } else {
73660
+ t5 = $2[14];
73661
+ }
73662
+ let t6;
73663
+ if ($2[15] !== delayStep || $2[16] !== duration || $2[17] !== t5) {
73664
+ t6 = t5.map((_2, i2) => /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", {
73665
+ className: "animate-bounce rounded border-2",
73666
+ style: {
73667
+ animationDuration: `${duration}s`,
73668
+ animationIterationCount: "infinite",
73669
+ animationDelay: `${i2 * delayStep}ms`
73670
+ }
73671
+ }, i2));
73672
+ $2[15] = delayStep;
73673
+ $2[16] = duration;
73674
+ $2[17] = t5;
73675
+ $2[18] = t6;
73676
+ } else {
73677
+ t6 = $2[18];
73614
73678
  }
73615
- let t2;
73616
- if ($2[5] !== props || $2[6] !== t1) {
73617
- t2 = /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("p", {
73618
- className: t1,
73619
- ...props
73679
+ let t7;
73680
+ if ($2[19] !== props || $2[20] !== ref || $2[21] !== t4 || $2[22] !== t6) {
73681
+ t7 = /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", {
73682
+ className: t4,
73683
+ ref,
73684
+ role: "status",
73685
+ "aria-label": "Loading...",
73686
+ ...props,
73687
+ children: t6
73620
73688
  });
73621
- $2[5] = props;
73622
- $2[6] = t1;
73623
- $2[7] = t2;
73689
+ $2[19] = props;
73690
+ $2[20] = ref;
73691
+ $2[21] = t4;
73692
+ $2[22] = t6;
73693
+ $2[23] = t7;
73624
73694
  } else {
73625
- t2 = $2[7];
73695
+ t7 = $2[23];
73626
73696
  }
73627
- return t2;
73697
+ return t7;
73628
73698
  };
73629
- EmptyDescription.displayName = "Empty.Description";
73630
- var EmptyComponent = Object.assign(Empty, {
73631
- Content: EmptyContent,
73632
- Icon: EmptyIcon,
73633
- Title: EmptyTitle,
73634
- Separator: EmptySeparator,
73635
- Description: EmptyDescription
73636
- });
73637
73699
 
73638
73700
  // src/constants.ts
73639
73701
  var SERVER_PORT_KEY = "serverPort";
@@ -73642,11 +73704,11 @@ var MAX_INPUT_SIZE = 10 * 1024 * 1024;
73642
73704
  var VALID_PLUGIN_NAME = /^[a-z0-9]+(-[a-z0-9]+)*$/;
73643
73705
 
73644
73706
  // src/side-panel/components/EmptyStates.tsx
73645
- var import_react12 = __toESM(require_react(), 1);
73707
+ var import_react13 = __toESM(require_react(), 1);
73646
73708
  var import_jsx_runtime44 = __toESM(require_jsx_runtime(), 1);
73647
73709
  var ConnectionRefusedState = () => {
73648
73710
  const $2 = (0, import_compiler_runtime18.c)(7);
73649
- const [port, setPort] = (0, import_react12.useState)(DEFAULT_SERVER_PORT);
73711
+ const [port, setPort] = (0, import_react13.useState)(DEFAULT_SERVER_PORT);
73650
73712
  let t0;
73651
73713
  let t1;
73652
73714
  if ($2[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
@@ -73676,7 +73738,7 @@ var ConnectionRefusedState = () => {
73676
73738
  t0 = $2[0];
73677
73739
  t1 = $2[1];
73678
73740
  }
73679
- (0, import_react12.useEffect)(t0, t1);
73741
+ (0, import_react13.useEffect)(t0, t1);
73680
73742
  const command = port === DEFAULT_SERVER_PORT ? "opentabs start" : `opentabs start --port ${port}`;
73681
73743
  let t2;
73682
73744
  let t3;
@@ -73787,7 +73849,7 @@ var import_compiler_runtime21 = __toESM(require_compiler_runtime(), 1);
73787
73849
 
73788
73850
  // src/side-panel/components/retro/NumberStepper.tsx
73789
73851
  var import_compiler_runtime19 = __toESM(require_compiler_runtime(), 1);
73790
- var import_react13 = __toESM(require_react(), 1);
73852
+ var import_react14 = __toESM(require_react(), 1);
73791
73853
  var import_jsx_runtime45 = __toESM(require_jsx_runtime(), 1);
73792
73854
  var NumberStepper = (t0) => {
73793
73855
  const $2 = (0, import_compiler_runtime19.c)(42);
@@ -73828,7 +73890,7 @@ var NumberStepper = (t0) => {
73828
73890
  const min2 = t1 === void 0 ? 1 : t1;
73829
73891
  const max2 = t2 === void 0 ? 65535 : t2;
73830
73892
  const step = t3 === void 0 ? 1 : t3;
73831
- const inputRef = (0, import_react13.useRef)(null);
73893
+ const inputRef = (0, import_react14.useRef)(null);
73832
73894
  let t4;
73833
73895
  if ($2[8] !== max2 || $2[9] !== min2 || $2[10] !== onChange) {
73834
73896
  t4 = () => {
@@ -74032,14 +74094,14 @@ var NumberStepper = (t0) => {
74032
74094
 
74033
74095
  // src/side-panel/hooks/useTheme.ts
74034
74096
  var import_compiler_runtime20 = __toESM(require_compiler_runtime(), 1);
74035
- var import_react14 = __toESM(require_react(), 1);
74097
+ var import_react15 = __toESM(require_react(), 1);
74036
74098
  var STORAGE_KEY = "theme";
74037
74099
  var applyTheme = (theme) => {
74038
74100
  document.documentElement.classList.toggle("dark", theme === "dark");
74039
74101
  };
74040
74102
  var useTheme = () => {
74041
74103
  const $2 = (0, import_compiler_runtime20.c)(5);
74042
- const [theme, setTheme] = (0, import_react14.useState)(_temp7);
74104
+ const [theme, setTheme] = (0, import_react15.useState)(_temp7);
74043
74105
  let t0;
74044
74106
  let t1;
74045
74107
  if ($2[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
@@ -74059,7 +74121,7 @@ var useTheme = () => {
74059
74121
  t0 = $2[0];
74060
74122
  t1 = $2[1];
74061
74123
  }
74062
- (0, import_react14.useEffect)(t0, t1);
74124
+ (0, import_react15.useEffect)(t0, t1);
74063
74125
  let t2;
74064
74126
  if ($2[2] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
74065
74127
  t2 = () => {
@@ -74097,11 +74159,11 @@ function _temp33() {
74097
74159
  }
74098
74160
 
74099
74161
  // src/side-panel/components/Footer.tsx
74100
- var import_react15 = __toESM(require_react(), 1);
74162
+ var import_react16 = __toESM(require_react(), 1);
74101
74163
  var import_jsx_runtime46 = __toESM(require_jsx_runtime(), 1);
74102
74164
  var PortEditor = () => {
74103
74165
  const $2 = (0, import_compiler_runtime21.c)(5);
74104
- const [initialPort, setInitialPort] = (0, import_react15.useState)(null);
74166
+ const [initialPort, setInitialPort] = (0, import_react16.useState)(null);
74105
74167
  let t0;
74106
74168
  let t1;
74107
74169
  if ($2[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
@@ -74120,7 +74182,7 @@ var PortEditor = () => {
74120
74182
  t0 = $2[0];
74121
74183
  t1 = $2[1];
74122
74184
  }
74123
- (0, import_react15.useEffect)(t0, t1);
74185
+ (0, import_react16.useEffect)(t0, t1);
74124
74186
  const handleChange = _temp34;
74125
74187
  if (initialPort === null) {
74126
74188
  return null;
@@ -74261,14 +74323,14 @@ var import_compiler_runtime26 = __toESM(require_compiler_runtime(), 1);
74261
74323
 
74262
74324
  // src/side-panel/components/FailedPluginCard.tsx
74263
74325
  var import_compiler_runtime22 = __toESM(require_compiler_runtime(), 1);
74264
- var import_react16 = __toESM(require_react(), 1);
74326
+ var import_react17 = __toESM(require_react(), 1);
74265
74327
  var import_jsx_runtime47 = __toESM(require_jsx_runtime(), 1);
74266
74328
  var FailedPluginCard = (t0) => {
74267
74329
  const $2 = (0, import_compiler_runtime22.c)(13);
74268
74330
  const {
74269
74331
  plugin
74270
74332
  } = t0;
74271
- const [expanded, setExpanded] = (0, import_react16.useState)(false);
74333
+ const [expanded, setExpanded] = (0, import_react17.useState)(false);
74272
74334
  let t1;
74273
74335
  if ($2[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
74274
74336
  t1 = /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", {
@@ -75032,7 +75094,7 @@ var DialogObject = Object.assign(Dialog2, {
75032
75094
  });
75033
75095
 
75034
75096
  // src/side-panel/components/PluginMenu.tsx
75035
- var import_react17 = __toESM(require_react(), 1);
75097
+ var import_react18 = __toESM(require_react(), 1);
75036
75098
  var import_jsx_runtime51 = __toESM(require_jsx_runtime(), 1);
75037
75099
  var PluginMenu = (t0) => {
75038
75100
  const $2 = (0, import_compiler_runtime24.c)(48);
@@ -75044,7 +75106,7 @@ var PluginMenu = (t0) => {
75044
75106
  removing,
75045
75107
  className
75046
75108
  } = t0;
75047
- const [confirmOpen, setConfirmOpen] = (0, import_react17.useState)(false);
75109
+ const [confirmOpen, setConfirmOpen] = (0, import_react18.useState)(false);
75048
75110
  const isLocal = plugin.source === "local";
75049
75111
  const removeLabel = isLocal ? "Remove" : "Uninstall";
75050
75112
  let t1;
@@ -75299,10 +75361,10 @@ function _temp26(e_0) {
75299
75361
  }
75300
75362
 
75301
75363
  // src/side-panel/components/PluginCard.tsx
75302
- var import_react18 = __toESM(require_react(), 1);
75364
+ var import_react19 = __toESM(require_react(), 1);
75303
75365
  var import_jsx_runtime52 = __toESM(require_jsx_runtime(), 1);
75304
75366
  var PluginCard = (t0) => {
75305
- const $2 = (0, import_compiler_runtime25.c)(47);
75367
+ const $2 = (0, import_compiler_runtime25.c)(37);
75306
75368
  const {
75307
75369
  plugin,
75308
75370
  activeTools,
@@ -75314,10 +75376,10 @@ var PluginCard = (t0) => {
75314
75376
  removingPlugin,
75315
75377
  actionError
75316
75378
  } = t0;
75317
- const [toggleError, setToggleError] = (0, import_react18.useState)(null);
75318
- const errorTimerRef = (0, import_react18.useRef)(void 0);
75319
- const toggleCounter = (0, import_react18.useRef)(0);
75320
- const preToggleRef = (0, import_react18.useRef)([]);
75379
+ const [toggleError, setToggleError] = (0, import_react19.useState)(null);
75380
+ const errorTimerRef = (0, import_react19.useRef)(void 0);
75381
+ const toggleCounter = (0, import_react19.useRef)(0);
75382
+ const preToggleRef = (0, import_react19.useRef)([]);
75321
75383
  let t1;
75322
75384
  let t2;
75323
75385
  if ($2[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
@@ -75329,7 +75391,7 @@ var PluginCard = (t0) => {
75329
75391
  t1 = $2[0];
75330
75392
  t2 = $2[1];
75331
75393
  }
75332
- (0, import_react18.useEffect)(t1, t2);
75394
+ (0, import_react19.useEffect)(t1, t2);
75333
75395
  const showToggleError = (message) => {
75334
75396
  clearTimeout(errorTimerRef.current);
75335
75397
  setToggleError(message);
@@ -75385,83 +75447,55 @@ var PluginCard = (t0) => {
75385
75447
  };
75386
75448
  const filterLower = toolFilter?.toLowerCase() ?? "";
75387
75449
  const visibleTools = filterLower ? pluginTools.filter((t_2) => matchesTool(t_2, filterLower)) : pluginTools;
75388
- const t4 = plugin.name;
75389
- const t5 = !!plugin.update;
75450
+ let t4;
75451
+ if ($2[5] !== activeTools || $2[6] !== plugin.name) {
75452
+ t4 = (t_3) => activeTools.has(`${plugin.name}:${t_3.name}`);
75453
+ $2[5] = activeTools;
75454
+ $2[6] = plugin.name;
75455
+ $2[7] = t4;
75456
+ } else {
75457
+ t4 = $2[7];
75458
+ }
75459
+ const hasActiveTool = pluginTools.some(t4);
75460
+ const t5 = plugin.name;
75390
75461
  let t6;
75391
- if ($2[5] !== plugin.displayName || $2[6] !== plugin.iconInactiveSvg || $2[7] !== plugin.iconSvg || $2[8] !== plugin.name || $2[9] !== plugin.tabState || $2[10] !== t5) {
75392
- t6 = /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(TooltipObject.Trigger, {
75393
- asChild: true,
75394
- children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", {
75395
- children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(PluginIcon, {
75396
- pluginName: plugin.name,
75397
- displayName: plugin.displayName,
75398
- tabState: plugin.tabState,
75399
- hasUpdate: t5,
75400
- size: 32,
75401
- iconSvg: plugin.iconSvg,
75402
- iconInactiveSvg: plugin.iconInactiveSvg
75403
- })
75404
- })
75462
+ if ($2[8] !== plugin.update) {
75463
+ t6 = plugin.update && /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_jsx_runtime52.Fragment, {
75464
+ children: [" \xB7 Update: ", plugin.update.latestVersion]
75405
75465
  });
75406
- $2[5] = plugin.displayName;
75407
- $2[6] = plugin.iconInactiveSvg;
75408
- $2[7] = plugin.iconSvg;
75409
- $2[8] = plugin.name;
75410
- $2[9] = plugin.tabState;
75411
- $2[10] = t5;
75412
- $2[11] = t6;
75466
+ $2[8] = plugin.update;
75467
+ $2[9] = t6;
75413
75468
  } else {
75414
- t6 = $2[11];
75469
+ t6 = $2[9];
75415
75470
  }
75416
75471
  let t7;
75417
- if ($2[12] !== plugin.update) {
75418
- t7 = plugin.update && /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_jsx_runtime52.Fragment, {
75419
- children: [" \xB7 Update: ", plugin.update.latestVersion]
75472
+ if ($2[10] !== plugin.trustTier || $2[11] !== plugin.version || $2[12] !== t6) {
75473
+ t7 = /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(TooltipObject.Content, {
75474
+ children: ["v", plugin.version, " \xB7 ", plugin.trustTier, t6]
75420
75475
  });
75421
- $2[12] = plugin.update;
75476
+ $2[10] = plugin.trustTier;
75477
+ $2[11] = plugin.version;
75478
+ $2[12] = t6;
75422
75479
  $2[13] = t7;
75423
75480
  } else {
75424
75481
  t7 = $2[13];
75425
75482
  }
75426
75483
  let t8;
75427
- if ($2[14] !== plugin.trustTier || $2[15] !== plugin.version || $2[16] !== t7) {
75428
- t8 = /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(TooltipObject.Content, {
75429
- children: ["v", plugin.version, " \xB7 ", plugin.trustTier, t7]
75430
- });
75431
- $2[14] = plugin.trustTier;
75432
- $2[15] = plugin.version;
75433
- $2[16] = t7;
75434
- $2[17] = t8;
75435
- } else {
75436
- t8 = $2[17];
75437
- }
75438
- let t9;
75439
- if ($2[18] !== t6 || $2[19] !== t8) {
75440
- t9 = /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(TooltipObject, {
75441
- children: [t6, t8]
75442
- });
75443
- $2[18] = t6;
75444
- $2[19] = t8;
75445
- $2[20] = t9;
75446
- } else {
75447
- t9 = $2[20];
75448
- }
75449
- let t10;
75450
- if ($2[21] !== plugin.source) {
75451
- t10 = plugin.source === "local" && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Badge2, {
75484
+ if ($2[14] !== plugin.source) {
75485
+ t8 = plugin.source === "local" && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Badge2, {
75452
75486
  variant: "default",
75453
75487
  size: "sm",
75454
75488
  className: "align-middle",
75455
75489
  children: "DEV"
75456
75490
  });
75457
- $2[21] = plugin.source;
75458
- $2[22] = t10;
75491
+ $2[14] = plugin.source;
75492
+ $2[15] = t8;
75459
75493
  } else {
75460
- t10 = $2[22];
75494
+ t8 = $2[15];
75461
75495
  }
75462
- let t11;
75463
- if ($2[23] !== plugin.sdkVersion) {
75464
- t11 = !plugin.sdkVersion && /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(TooltipObject, {
75496
+ let t9;
75497
+ if ($2[16] !== plugin.sdkVersion) {
75498
+ t9 = !plugin.sdkVersion && /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(TooltipObject, {
75465
75499
  children: [/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(TooltipObject.Trigger, {
75466
75500
  asChild: true,
75467
75501
  children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Badge2, {
@@ -75474,99 +75508,87 @@ var PluginCard = (t0) => {
75474
75508
  children: "SDK version mismatch \u2014 rebuild plugin"
75475
75509
  })]
75476
75510
  });
75477
- $2[23] = plugin.sdkVersion;
75478
- $2[24] = t11;
75511
+ $2[16] = plugin.sdkVersion;
75512
+ $2[17] = t9;
75479
75513
  } else {
75480
- t11 = $2[24];
75514
+ t9 = $2[17];
75481
75515
  }
75482
- let t12;
75483
- if ($2[25] !== plugin.displayName || $2[26] !== t10 || $2[27] !== t11) {
75484
- t12 = /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", {
75516
+ let t10;
75517
+ if ($2[18] !== plugin.displayName || $2[19] !== t8 || $2[20] !== t9) {
75518
+ t10 = /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", {
75485
75519
  className: "font-head text-foreground flex min-w-0 flex-1 items-center gap-1.5 truncate text-sm",
75486
- children: [plugin.displayName, t10, t11]
75520
+ children: [plugin.displayName, t8, t9]
75487
75521
  });
75488
- $2[25] = plugin.displayName;
75489
- $2[26] = t10;
75490
- $2[27] = t11;
75491
- $2[28] = t12;
75522
+ $2[18] = plugin.displayName;
75523
+ $2[19] = t8;
75524
+ $2[20] = t9;
75525
+ $2[21] = t10;
75492
75526
  } else {
75493
- t12 = $2[28];
75527
+ t10 = $2[21];
75494
75528
  }
75495
- let t13;
75496
- if ($2[29] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
75497
- t13 = /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(ChevronDown, {
75529
+ let t11;
75530
+ if ($2[22] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
75531
+ t11 = /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(ChevronDown, {
75498
75532
  className: "h-4 w-4 shrink-0 transition-transform duration-200"
75499
75533
  });
75500
- $2[29] = t13;
75501
- } else {
75502
- t13 = $2[29];
75503
- }
75504
- let t14;
75505
- if ($2[30] !== t12 || $2[31] !== t9) {
75506
- t14 = /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(Trigger22, {
75507
- className: "flex min-w-0 flex-1 cursor-pointer items-center gap-2 px-3 py-2 focus:outline-hidden [&[data-state=open]>svg]:rotate-180",
75508
- children: [t9, t12, t13]
75509
- });
75510
- $2[30] = t12;
75511
- $2[31] = t9;
75512
- $2[32] = t14;
75534
+ $2[22] = t11;
75513
75535
  } else {
75514
- t14 = $2[32];
75536
+ t11 = $2[22];
75515
75537
  }
75516
- const t15 = onUpdate ?? _temp27;
75517
- const t16 = onRemove ?? _temp35;
75518
- const t17 = updatingPlugin ?? false;
75519
- const t18 = removingPlugin ?? false;
75520
- let t19;
75521
- if ($2[33] !== plugin || $2[34] !== t15 || $2[35] !== t16 || $2[36] !== t17 || $2[37] !== t18) {
75522
- t19 = /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(PluginMenu, {
75538
+ const t12 = onUpdate ?? _temp27;
75539
+ const t13 = onRemove ?? _temp35;
75540
+ const t14 = updatingPlugin ?? false;
75541
+ const t15 = removingPlugin ?? false;
75542
+ let t16;
75543
+ if ($2[23] !== plugin || $2[24] !== t12 || $2[25] !== t13 || $2[26] !== t14 || $2[27] !== t15) {
75544
+ t16 = /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(PluginMenu, {
75523
75545
  plugin,
75524
- onUpdate: t15,
75525
- onRemove: t16,
75526
- updating: t17,
75527
- removing: t18,
75546
+ onUpdate: t12,
75547
+ onRemove: t13,
75548
+ updating: t14,
75549
+ removing: t15,
75528
75550
  className: "flex shrink-0 items-center px-1"
75529
75551
  });
75530
- $2[33] = plugin;
75531
- $2[34] = t15;
75532
- $2[35] = t16;
75533
- $2[36] = t17;
75534
- $2[37] = t18;
75535
- $2[38] = t19;
75552
+ $2[23] = plugin;
75553
+ $2[24] = t12;
75554
+ $2[25] = t13;
75555
+ $2[26] = t14;
75556
+ $2[27] = t15;
75557
+ $2[28] = t16;
75536
75558
  } else {
75537
- t19 = $2[38];
75559
+ t16 = $2[28];
75538
75560
  }
75539
- let t20;
75540
- if ($2[39] !== toggleError) {
75541
- t20 = toggleError && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(AlertComponent, {
75561
+ let t17;
75562
+ if ($2[29] !== toggleError) {
75563
+ t17 = toggleError && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(AlertComponent, {
75542
75564
  status: "error",
75543
75565
  className: "mx-3 mb-1 px-2 py-1 text-xs",
75544
75566
  children: toggleError
75545
75567
  });
75546
- $2[39] = toggleError;
75547
- $2[40] = t20;
75568
+ $2[29] = toggleError;
75569
+ $2[30] = t17;
75548
75570
  } else {
75549
- t20 = $2[40];
75571
+ t17 = $2[30];
75550
75572
  }
75551
- let t21;
75552
- if ($2[41] !== actionError) {
75553
- t21 = actionError && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(AlertComponent, {
75573
+ let t18;
75574
+ if ($2[31] !== actionError) {
75575
+ t18 = actionError && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(AlertComponent, {
75554
75576
  status: "error",
75555
75577
  className: "mx-3 mb-1 px-2 py-1 text-xs",
75556
75578
  children: actionError
75557
75579
  });
75558
- $2[41] = actionError;
75559
- $2[42] = t21;
75580
+ $2[31] = actionError;
75581
+ $2[32] = t18;
75560
75582
  } else {
75561
- t21 = $2[42];
75583
+ t18 = $2[32];
75562
75584
  }
75563
- const t22 = AccordionComponent;
75564
- const t23 = "border-border border-t";
75565
- const t24 = toolFilter && /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", {
75585
+ const t19 = AccordionComponent;
75586
+ const t20 = "border-border border-t";
75587
+ const t21 = toolFilter && /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", {
75566
75588
  className: "text-muted-foreground mb-1 px-3 pt-2 text-xs",
75567
75589
  children: [visibleTools.length, " of ", pluginTools.length, " tools"]
75568
75590
  });
75569
- const t25 = visibleTools.map((tool) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(ToolRow, {
75591
+ const t22 = visibleTools.map((tool) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(ToolRow, {
75570
75592
  name: tool.name,
75571
75593
  displayName: tool.displayName,
75572
75594
  description: tool.description,
@@ -75575,25 +75597,44 @@ var PluginCard = (t0) => {
75575
75597
  active: activeTools.has(`${plugin.name}:${tool.name}`),
75576
75598
  onToggle: () => handleToggleTool(tool.name, tool.enabled)
75577
75599
  }, tool.name));
75578
- let t26;
75579
- if ($2[43] !== t22.Content || $2[44] !== t24 || $2[45] !== t25) {
75580
- t26 = /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(t22.Content, {
75581
- className: t23,
75582
- children: [t24, t25]
75600
+ let t23;
75601
+ if ($2[33] !== t19.Content || $2[34] !== t21 || $2[35] !== t22) {
75602
+ t23 = /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(t19.Content, {
75603
+ className: t20,
75604
+ children: [t21, t22]
75583
75605
  });
75584
- $2[43] = t22.Content;
75585
- $2[44] = t24;
75586
- $2[45] = t25;
75587
- $2[46] = t26;
75606
+ $2[33] = t19.Content;
75607
+ $2[34] = t21;
75608
+ $2[35] = t22;
75609
+ $2[36] = t23;
75588
75610
  } else {
75589
- t26 = $2[46];
75611
+ t23 = $2[36];
75590
75612
  }
75591
75613
  return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(AccordionComponent.Item, {
75592
- value: t4,
75614
+ value: t5,
75593
75615
  className: removingPlugin ? "pointer-events-none opacity-60 transition-opacity" : void 0,
75594
75616
  children: [/* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(Header, {
75595
75617
  className: "flex",
75596
- children: [t14, t19, /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", {
75618
+ children: [/* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(Trigger22, {
75619
+ className: "flex min-w-0 flex-1 cursor-pointer items-center gap-2 px-3 py-2 focus:outline-hidden [&[data-state=open]>svg]:rotate-180",
75620
+ children: [/* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(TooltipObject, {
75621
+ children: [/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(TooltipObject.Trigger, {
75622
+ asChild: true,
75623
+ children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", {
75624
+ children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(PluginIcon, {
75625
+ pluginName: plugin.name,
75626
+ displayName: plugin.displayName,
75627
+ tabState: plugin.tabState,
75628
+ hasUpdate: !!plugin.update,
75629
+ size: 32,
75630
+ iconSvg: plugin.iconSvg,
75631
+ iconInactiveSvg: plugin.iconInactiveSvg,
75632
+ active: hasActiveTool
75633
+ })
75634
+ })
75635
+ }), t7]
75636
+ }), t10, t11]
75637
+ }), t16, /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", {
75597
75638
  className: "flex shrink-0 items-center px-3",
75598
75639
  onClick: _temp42,
75599
75640
  onKeyDown: _temp52,
@@ -75604,7 +75645,7 @@ var PluginCard = (t0) => {
75604
75645
  "aria-label": `Toggle all tools for ${plugin.name}`
75605
75646
  })
75606
75647
  })]
75607
- }), t20, t21, t26]
75648
+ }), t17, t18, t23]
75608
75649
  });
75609
75650
  };
75610
75651
  function _temp10(t2) {
@@ -76228,15 +76269,14 @@ function _temp12(p_1) {
76228
76269
 
76229
76270
  // src/side-panel/hooks/useServerNotifications.ts
76230
76271
  var import_compiler_runtime30 = __toESM(require_compiler_runtime(), 1);
76231
- var import_react19 = __toESM(require_react(), 1);
76272
+ var import_react20 = __toESM(require_react(), 1);
76232
76273
  var validTabStates = /* @__PURE__ */ new Set(["closed", "unavailable", "ready"]);
76233
76274
  var useServerNotifications = (t0) => {
76234
- const $2 = (0, import_compiler_runtime30.c)(10);
76275
+ const $2 = (0, import_compiler_runtime30.c)(9);
76235
76276
  const {
76236
76277
  setPlugins,
76237
76278
  setActiveTools,
76238
- setPendingConfirmations,
76239
- pendingTabStates
76279
+ setPendingConfirmations
76240
76280
  } = t0;
76241
76281
  let t1;
76242
76282
  if ($2[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
@@ -76245,7 +76285,7 @@ var useServerNotifications = (t0) => {
76245
76285
  } else {
76246
76286
  t1 = $2[0];
76247
76287
  }
76248
- const timeoutIds = (0, import_react19.useRef)(t1);
76288
+ const timeoutIds = (0, import_react20.useRef)(t1);
76249
76289
  let t2;
76250
76290
  if ($2[1] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
76251
76291
  t2 = /* @__PURE__ */ new Map();
@@ -76253,7 +76293,7 @@ var useServerNotifications = (t0) => {
76253
76293
  } else {
76254
76294
  t2 = $2[1];
76255
76295
  }
76256
- const invocationTimeoutIds = (0, import_react19.useRef)(t2);
76296
+ const invocationTimeoutIds = (0, import_react20.useRef)(t2);
76257
76297
  let t3;
76258
76298
  let t4;
76259
76299
  if ($2[2] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
@@ -76278,7 +76318,7 @@ var useServerNotifications = (t0) => {
76278
76318
  t3 = $2[2];
76279
76319
  t4 = $2[3];
76280
76320
  }
76281
- (0, import_react19.useEffect)(t3, t4);
76321
+ (0, import_react20.useEffect)(t3, t4);
76282
76322
  let t5;
76283
76323
  if ($2[4] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
76284
76324
  t5 = (id_1) => {
@@ -76294,11 +76334,12 @@ var useServerNotifications = (t0) => {
76294
76334
  }
76295
76335
  const clearConfirmationTimeout = t5;
76296
76336
  let t6;
76297
- if ($2[5] !== pendingTabStates || $2[6] !== setActiveTools || $2[7] !== setPendingConfirmations || $2[8] !== setPlugins) {
76337
+ if ($2[5] !== setActiveTools || $2[6] !== setPendingConfirmations || $2[7] !== setPlugins) {
76298
76338
  const handleNotification = (data) => {
76299
76339
  if (data.method === "confirmation.request" && data.params) {
76300
76340
  const params = data.params;
76301
76341
  if (typeof params.id === "string" && typeof params.tool === "string" && typeof params.timeoutMs === "number") {
76342
+ const receivedAt = typeof params.receivedAt === "number" && params.receivedAt > 0 ? params.receivedAt : Date.now();
76302
76343
  const confirmation = {
76303
76344
  id: params.id,
76304
76345
  tool: params.tool,
@@ -76306,13 +76347,17 @@ var useServerNotifications = (t0) => {
76306
76347
  tabId: typeof params.tabId === "number" && Number.isInteger(params.tabId) && params.tabId > 0 ? params.tabId : void 0,
76307
76348
  paramsPreview: typeof params.paramsPreview === "string" ? params.paramsPreview : "",
76308
76349
  timeoutMs: params.timeoutMs,
76309
- receivedAt: Date.now()
76350
+ receivedAt
76310
76351
  };
76311
- setPendingConfirmations((prev) => [...prev, confirmation]);
76312
- const removeDelay = params.timeoutMs + 1e3;
76352
+ if (timeoutIds.current.has(confirmation.id)) {
76353
+ return;
76354
+ }
76355
+ setPendingConfirmations((prev) => prev.some((c2) => c2.id === confirmation.id) ? prev : [...prev, confirmation]);
76356
+ const elapsed = Date.now() - receivedAt;
76357
+ const removeDelay = Math.max(0, params.timeoutMs + 1e3 - elapsed);
76313
76358
  const tid_0 = setTimeout(() => {
76314
76359
  timeoutIds.current.delete(confirmation.id);
76315
- setPendingConfirmations((prev_0) => prev_0.filter((c2) => c2.id !== confirmation.id));
76360
+ setPendingConfirmations((prev_0) => prev_0.filter((c_0) => c_0.id !== confirmation.id));
76316
76361
  chrome.runtime.sendMessage({
76317
76362
  type: "sp:confirmationTimeout",
76318
76363
  id: confirmation.id
@@ -76326,16 +76371,10 @@ var useServerNotifications = (t0) => {
76326
76371
  if (typeof params_0.plugin === "string" && typeof params_0.state === "string" && validTabStates.has(params_0.state) && VALID_PLUGIN_NAME.test(params_0.plugin)) {
76327
76372
  const pluginName = params_0.plugin;
76328
76373
  const newState = params_0.state;
76329
- setPlugins((prev_1) => {
76330
- if (prev_1.length === 0) {
76331
- pendingTabStates.current.set(pluginName, newState);
76332
- return prev_1;
76333
- }
76334
- return prev_1.map((p3) => p3.name === pluginName ? {
76335
- ...p3,
76336
- tabState: newState
76337
- } : p3);
76338
- });
76374
+ setPlugins((prev_1) => prev_1.map((p3) => p3.name === pluginName ? {
76375
+ ...p3,
76376
+ tabState: newState
76377
+ } : p3));
76339
76378
  }
76340
76379
  }
76341
76380
  if (data.method === "tool.invocationStart" && data.params) {
@@ -76379,13 +76418,12 @@ var useServerNotifications = (t0) => {
76379
76418
  handleNotification,
76380
76419
  clearConfirmationTimeout
76381
76420
  };
76382
- $2[5] = pendingTabStates;
76383
- $2[6] = setActiveTools;
76384
- $2[7] = setPendingConfirmations;
76385
- $2[8] = setPlugins;
76386
- $2[9] = t6;
76421
+ $2[5] = setActiveTools;
76422
+ $2[6] = setPendingConfirmations;
76423
+ $2[7] = setPlugins;
76424
+ $2[8] = t6;
76387
76425
  } else {
76388
- t6 = $2[9];
76426
+ t6 = $2[8];
76389
76427
  }
76390
76428
  return t6;
76391
76429
  };
@@ -76556,7 +76594,7 @@ var BROWSER_TOOLS_CATALOG = [{
76556
76594
  }];
76557
76595
 
76558
76596
  // ../../node_modules/overlayscrollbars-react/overlayscrollbars-react.mjs
76559
- var import_react20 = __toESM(require_react(), 1);
76597
+ var import_react21 = __toESM(require_react(), 1);
76560
76598
 
76561
76599
  // ../../node_modules/overlayscrollbars/overlayscrollbars.mjs
76562
76600
  var createCache = (t2, n2) => {
@@ -79155,22 +79193,22 @@ var S2 = () => {
79155
79193
  ];
79156
79194
  };
79157
79195
  var F2 = (l2) => {
79158
- const { options: o2, events: t2, defer: c2 } = l2 || {}, [a2, i2] = (0, import_react20.useMemo)(S2, []), r3 = (0, import_react20.useRef)(null), u2 = (0, import_react20.useRef)(c2), s2 = (0, import_react20.useRef)(o2), n2 = (0, import_react20.useRef)(t2);
79159
- return (0, import_react20.useEffect)(() => {
79196
+ const { options: o2, events: t2, defer: c2 } = l2 || {}, [a2, i2] = (0, import_react21.useMemo)(S2, []), r3 = (0, import_react21.useRef)(null), u2 = (0, import_react21.useRef)(c2), s2 = (0, import_react21.useRef)(o2), n2 = (0, import_react21.useRef)(t2);
79197
+ return (0, import_react21.useEffect)(() => {
79160
79198
  u2.current = c2;
79161
- }, [c2]), (0, import_react20.useEffect)(() => {
79199
+ }, [c2]), (0, import_react21.useEffect)(() => {
79162
79200
  const { current: e2 } = r3;
79163
79201
  s2.current = o2, OverlayScrollbars.valid(e2) && e2.options(o2 || {}, true);
79164
- }, [o2]), (0, import_react20.useEffect)(() => {
79202
+ }, [o2]), (0, import_react21.useEffect)(() => {
79165
79203
  const { current: e2 } = r3;
79166
79204
  n2.current = t2, OverlayScrollbars.valid(e2) && e2.on(t2 || {}, true);
79167
- }, [t2]), (0, import_react20.useEffect)(
79205
+ }, [t2]), (0, import_react21.useEffect)(
79168
79206
  () => () => {
79169
79207
  var e2;
79170
79208
  i2(), (e2 = r3.current) == null || e2.destroy();
79171
79209
  },
79172
79210
  []
79173
- ), (0, import_react20.useMemo)(
79211
+ ), (0, import_react21.useMemo)(
79174
79212
  () => [
79175
79213
  (e2) => {
79176
79214
  const v2 = r3.current;
@@ -79185,8 +79223,8 @@ var F2 = (l2) => {
79185
79223
  );
79186
79224
  };
79187
79225
  var q2 = (l2, o2) => {
79188
- const { element: t2 = "div", options: c2, events: a2, defer: i2, children: r3, ...u2 } = l2, s2 = t2, n2 = (0, import_react20.useRef)(null), e2 = (0, import_react20.useRef)(null), [v2, f2] = F2({ options: c2, events: a2, defer: i2 });
79189
- return (0, import_react20.useEffect)(() => {
79226
+ const { element: t2 = "div", options: c2, events: a2, defer: i2, children: r3, ...u2 } = l2, s2 = t2, n2 = (0, import_react21.useRef)(null), e2 = (0, import_react21.useRef)(null), [v2, f2] = F2({ options: c2, events: a2, defer: i2 });
79227
+ return (0, import_react21.useEffect)(() => {
79190
79228
  const { current: y2 } = n2, { current: b2 } = e2;
79191
79229
  if (!y2)
79192
79230
  return;
@@ -79208,7 +79246,7 @@ var q2 = (l2, o2) => {
79208
79246
  var R2;
79209
79247
  return (R2 = f2()) == null ? void 0 : R2.destroy();
79210
79248
  };
79211
- }, [v2, t2]), (0, import_react20.useImperativeHandle)(
79249
+ }, [v2, t2]), (0, import_react21.useImperativeHandle)(
79212
79250
  o2,
79213
79251
  () => ({
79214
79252
  osInstance: f2,
@@ -79216,17 +79254,17 @@ var q2 = (l2, o2) => {
79216
79254
  }),
79217
79255
  []
79218
79256
  ), // @ts-ignore
79219
- /* @__PURE__ */ import_react20.default.createElement(s2, { "data-overlayscrollbars-initialize": "", ref: n2, ...u2 }, t2 === "body" ? r3 : /* @__PURE__ */ import_react20.default.createElement("div", { "data-overlayscrollbars-contents": "", ref: e2 }, r3));
79257
+ /* @__PURE__ */ import_react21.default.createElement(s2, { "data-overlayscrollbars-initialize": "", ref: n2, ...u2 }, t2 === "body" ? r3 : /* @__PURE__ */ import_react21.default.createElement("div", { "data-overlayscrollbars-contents": "", ref: e2 }, r3));
79220
79258
  };
79221
- var g2 = (0, import_react20.forwardRef)(q2);
79259
+ var g2 = (0, import_react21.forwardRef)(q2);
79222
79260
 
79223
79261
  // src/side-panel/App.tsx
79224
- var import_react21 = __toESM(require_react(), 1);
79262
+ var import_react22 = __toESM(require_react(), 1);
79225
79263
  var import_jsx_runtime57 = __toESM(require_jsx_runtime(), 1);
79226
79264
  var App = () => {
79227
- const $2 = (0, import_compiler_runtime31.c)(68);
79228
- const [connected, setConnected] = (0, import_react21.useState)(false);
79229
- const [disconnectReason, setDisconnectReason] = (0, import_react21.useState)();
79265
+ const $2 = (0, import_compiler_runtime31.c)(67);
79266
+ const [connected, setConnected] = (0, import_react22.useState)(false);
79267
+ const [disconnectReason, setDisconnectReason] = (0, import_react22.useState)();
79230
79268
  let t0;
79231
79269
  if ($2[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
79232
79270
  t0 = [];
@@ -79234,7 +79272,7 @@ var App = () => {
79234
79272
  } else {
79235
79273
  t0 = $2[0];
79236
79274
  }
79237
- const [plugins, setPlugins] = (0, import_react21.useState)(t0);
79275
+ const [plugins, setPlugins] = (0, import_react22.useState)(t0);
79238
79276
  let t1;
79239
79277
  if ($2[1] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
79240
79278
  t1 = [];
@@ -79242,10 +79280,10 @@ var App = () => {
79242
79280
  } else {
79243
79281
  t1 = $2[1];
79244
79282
  }
79245
- const [failedPlugins, setFailedPlugins] = (0, import_react21.useState)(t1);
79246
- const [browserTools, setBrowserTools] = (0, import_react21.useState)(_temp28);
79247
- const [serverVersion, setServerVersion] = (0, import_react21.useState)(void 0);
79248
- const [loading, setLoading] = (0, import_react21.useState)(true);
79283
+ const [failedPlugins, setFailedPlugins] = (0, import_react22.useState)(t1);
79284
+ const [browserTools, setBrowserTools] = (0, import_react22.useState)(_temp28);
79285
+ const [serverVersion, setServerVersion] = (0, import_react22.useState)(void 0);
79286
+ const [loading, setLoading] = (0, import_react22.useState)(true);
79249
79287
  let t2;
79250
79288
  if ($2[2] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
79251
79289
  t2 = /* @__PURE__ */ new Set();
@@ -79253,8 +79291,8 @@ var App = () => {
79253
79291
  } else {
79254
79292
  t2 = $2[2];
79255
79293
  }
79256
- const [activeTools, setActiveTools] = (0, import_react21.useState)(t2);
79257
- const [searchQuery, setSearchQuery] = (0, import_react21.useState)("");
79294
+ const [activeTools, setActiveTools] = (0, import_react22.useState)(t2);
79295
+ const [searchQuery, setSearchQuery] = (0, import_react22.useState)("");
79258
79296
  let t3;
79259
79297
  if ($2[3] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
79260
79298
  t3 = [];
@@ -79262,7 +79300,7 @@ var App = () => {
79262
79300
  } else {
79263
79301
  t3 = $2[3];
79264
79302
  }
79265
- const [pendingConfirmations, setPendingConfirmations] = (0, import_react21.useState)(t3);
79303
+ const [pendingConfirmations, setPendingConfirmations] = (0, import_react22.useState)(t3);
79266
79304
  let t4;
79267
79305
  if ($2[4] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
79268
79306
  t4 = [];
@@ -79270,8 +79308,8 @@ var App = () => {
79270
79308
  } else {
79271
79309
  t4 = $2[4];
79272
79310
  }
79273
- const [npmResults, setNpmResults] = (0, import_react21.useState)(t4);
79274
- const [npmSearching, setNpmSearching] = (0, import_react21.useState)(false);
79311
+ const [npmResults, setNpmResults] = (0, import_react22.useState)(t4);
79312
+ const [npmSearching, setNpmSearching] = (0, import_react22.useState)(false);
79275
79313
  let t5;
79276
79314
  if ($2[5] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
79277
79315
  t5 = /* @__PURE__ */ new Set();
@@ -79279,7 +79317,7 @@ var App = () => {
79279
79317
  } else {
79280
79318
  t5 = $2[5];
79281
79319
  }
79282
- const [installingPlugins, setInstallingPlugins] = (0, import_react21.useState)(t5);
79320
+ const [installingPlugins, setInstallingPlugins] = (0, import_react22.useState)(t5);
79283
79321
  let t6;
79284
79322
  if ($2[6] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
79285
79323
  t6 = /* @__PURE__ */ new Set();
@@ -79287,7 +79325,7 @@ var App = () => {
79287
79325
  } else {
79288
79326
  t6 = $2[6];
79289
79327
  }
79290
- const [removingPlugins, setRemovingPlugins] = (0, import_react21.useState)(t6);
79328
+ const [removingPlugins, setRemovingPlugins] = (0, import_react22.useState)(t6);
79291
79329
  let t7;
79292
79330
  if ($2[7] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
79293
79331
  t7 = /* @__PURE__ */ new Map();
@@ -79295,7 +79333,7 @@ var App = () => {
79295
79333
  } else {
79296
79334
  t7 = $2[7];
79297
79335
  }
79298
- const [installErrors, setInstallErrors] = (0, import_react21.useState)(t7);
79336
+ const [installErrors, setInstallErrors] = (0, import_react22.useState)(t7);
79299
79337
  let t8;
79300
79338
  if ($2[8] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
79301
79339
  t8 = /* @__PURE__ */ new Map();
@@ -79303,8 +79341,7 @@ var App = () => {
79303
79341
  } else {
79304
79342
  t8 = $2[8];
79305
79343
  }
79306
- const [pluginErrors, setPluginErrors] = (0, import_react21.useState)(t8);
79307
- const lastFetchRef = (0, import_react21.useRef)(0);
79344
+ const [pluginErrors, setPluginErrors] = (0, import_react22.useState)(t8);
79308
79345
  let t9;
79309
79346
  if ($2[9] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
79310
79347
  t9 = /* @__PURE__ */ new Map();
@@ -79312,74 +79349,65 @@ var App = () => {
79312
79349
  } else {
79313
79350
  t9 = $2[9];
79314
79351
  }
79315
- const pluginErrorTimers = (0, import_react21.useRef)(t9);
79352
+ const pluginErrorTimers = (0, import_react22.useRef)(t9);
79353
+ const npmSearchTimer = (0, import_react22.useRef)(void 0);
79354
+ const npmSearchCounter = (0, import_react22.useRef)(0);
79355
+ const connectedRef = (0, import_react22.useRef)(connected);
79356
+ const loadingRef = (0, import_react22.useRef)(loading);
79357
+ const pluginsRef = (0, import_react22.useRef)(plugins);
79316
79358
  let t10;
79317
- if ($2[10] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
79318
- t10 = /* @__PURE__ */ new Map();
79319
- $2[10] = t10;
79320
- } else {
79321
- t10 = $2[10];
79322
- }
79323
- const pendingTabStates = (0, import_react21.useRef)(t10);
79324
- const npmSearchTimer = (0, import_react21.useRef)(void 0);
79325
- const npmSearchCounter = (0, import_react21.useRef)(0);
79326
- const connectedRef = (0, import_react21.useRef)(connected);
79327
- const loadingRef = (0, import_react21.useRef)(loading);
79328
- const pluginsRef = (0, import_react21.useRef)(plugins);
79329
79359
  let t11;
79330
- let t12;
79331
- if ($2[11] !== connected || $2[12] !== loading || $2[13] !== plugins) {
79332
- t11 = () => {
79360
+ if ($2[10] !== connected || $2[11] !== loading || $2[12] !== plugins) {
79361
+ t10 = () => {
79333
79362
  connectedRef.current = connected;
79334
79363
  loadingRef.current = loading;
79335
79364
  pluginsRef.current = plugins;
79336
79365
  };
79337
- t12 = [connected, loading, plugins];
79338
- $2[11] = connected;
79339
- $2[12] = loading;
79340
- $2[13] = plugins;
79366
+ t11 = [connected, loading, plugins];
79367
+ $2[10] = connected;
79368
+ $2[11] = loading;
79369
+ $2[12] = plugins;
79370
+ $2[13] = t10;
79341
79371
  $2[14] = t11;
79342
- $2[15] = t12;
79343
79372
  } else {
79373
+ t10 = $2[13];
79344
79374
  t11 = $2[14];
79345
- t12 = $2[15];
79346
79375
  }
79347
- (0, import_react21.useEffect)(t11, t12);
79348
- let t13;
79349
- if ($2[16] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
79350
- t13 = {
79376
+ (0, import_react22.useEffect)(t10, t11);
79377
+ let t12;
79378
+ if ($2[15] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
79379
+ t12 = {
79351
79380
  setPlugins,
79352
79381
  setActiveTools,
79353
- setPendingConfirmations,
79354
- pendingTabStates
79382
+ setPendingConfirmations
79355
79383
  };
79356
- $2[16] = t13;
79384
+ $2[15] = t12;
79357
79385
  } else {
79358
- t13 = $2[16];
79386
+ t12 = $2[15];
79359
79387
  }
79360
79388
  const {
79361
79389
  handleNotification,
79362
79390
  clearConfirmationTimeout
79363
- } = useServerNotifications(t13);
79391
+ } = useServerNotifications(t12);
79392
+ let t13;
79364
79393
  let t14;
79365
- let t15;
79366
- if ($2[17] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
79367
- t14 = () => () => {
79394
+ if ($2[16] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
79395
+ t13 = () => () => {
79368
79396
  for (const timer of pluginErrorTimers.current.values()) {
79369
79397
  clearTimeout(timer);
79370
79398
  }
79371
79399
  };
79372
- t15 = [];
79400
+ t14 = [];
79401
+ $2[16] = t13;
79373
79402
  $2[17] = t14;
79374
- $2[18] = t15;
79375
79403
  } else {
79404
+ t13 = $2[16];
79376
79405
  t14 = $2[17];
79377
- t15 = $2[18];
79378
79406
  }
79379
- (0, import_react21.useEffect)(t14, t15);
79380
- let t16;
79381
- if ($2[19] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
79382
- t16 = (pluginName, message) => {
79407
+ (0, import_react22.useEffect)(t13, t14);
79408
+ let t15;
79409
+ if ($2[18] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
79410
+ t15 = (pluginName, message) => {
79383
79411
  const existing = pluginErrorTimers.current.get(pluginName);
79384
79412
  if (existing) {
79385
79413
  clearTimeout(existing);
@@ -79394,14 +79422,14 @@ var App = () => {
79394
79422
  pluginErrorTimers.current.delete(pluginName);
79395
79423
  }, ERROR_DISPLAY_DURATION_MS));
79396
79424
  };
79397
- $2[19] = t16;
79425
+ $2[18] = t15;
79398
79426
  } else {
79399
- t16 = $2[19];
79427
+ t15 = $2[18];
79400
79428
  }
79401
- const showPluginError = t16;
79402
- let t17;
79403
- if ($2[20] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
79404
- t17 = (pluginName_0) => {
79429
+ const showPluginError = t15;
79430
+ let t16;
79431
+ if ($2[19] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
79432
+ t16 = (pluginName_0) => {
79405
79433
  const existing_0 = pluginErrorTimers.current.get(pluginName_0);
79406
79434
  if (existing_0) {
79407
79435
  clearTimeout(existing_0);
@@ -79413,14 +79441,14 @@ var App = () => {
79413
79441
  return next_0;
79414
79442
  });
79415
79443
  };
79416
- $2[20] = t17;
79444
+ $2[19] = t16;
79417
79445
  } else {
79418
- t17 = $2[20];
79446
+ t16 = $2[19];
79419
79447
  }
79420
- const clearPluginError = t17;
79421
- let t18;
79422
- if ($2[21] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
79423
- t18 = (query) => {
79448
+ const clearPluginError = t16;
79449
+ let t17;
79450
+ if ($2[20] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
79451
+ t17 = (query) => {
79424
79452
  setSearchQuery(query);
79425
79453
  clearTimeout(npmSearchTimer.current);
79426
79454
  if (!query.trim()) {
@@ -79446,14 +79474,14 @@ var App = () => {
79446
79474
  });
79447
79475
  }, 400);
79448
79476
  };
79449
- $2[21] = t18;
79477
+ $2[20] = t17;
79450
79478
  } else {
79451
- t18 = $2[21];
79479
+ t17 = $2[20];
79452
79480
  }
79453
- const handleSearchChange = t18;
79454
- let t19;
79455
- if ($2[22] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
79456
- t19 = (name) => {
79481
+ const handleSearchChange = t17;
79482
+ let t18;
79483
+ if ($2[21] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
79484
+ t18 = (name) => {
79457
79485
  setInstallingPlugins((prev_2) => new Set(prev_2).add(name));
79458
79486
  setInstallErrors((prev_3) => {
79459
79487
  const next_1 = new Map(prev_3);
@@ -79476,14 +79504,14 @@ var App = () => {
79476
79504
  setInstallErrors((prev_6) => new Map(prev_6).set(name, err instanceof Error ? err.message : String(err)));
79477
79505
  });
79478
79506
  };
79479
- $2[22] = t19;
79507
+ $2[21] = t18;
79480
79508
  } else {
79481
- t19 = $2[22];
79509
+ t18 = $2[21];
79482
79510
  }
79483
- const handleInstall = t19;
79484
- let t20;
79485
- if ($2[23] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
79486
- t20 = (pluginName_1) => {
79511
+ const handleInstall = t18;
79512
+ let t19;
79513
+ if ($2[22] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
79514
+ t19 = (pluginName_1) => {
79487
79515
  clearPluginError(pluginName_1);
79488
79516
  setRemovingPlugins((prev_7) => new Set(prev_7).add(pluginName_1));
79489
79517
  removePlugin(pluginName_1).then(() => {
@@ -79501,73 +79529,76 @@ var App = () => {
79501
79529
  showPluginError(pluginName_1, err_0 instanceof Error ? err_0.message : String(err_0));
79502
79530
  });
79503
79531
  };
79504
- $2[23] = t20;
79532
+ $2[22] = t19;
79505
79533
  } else {
79506
- t20 = $2[23];
79534
+ t19 = $2[22];
79507
79535
  }
79508
- const handleRemove = t20;
79509
- let t21;
79510
- if ($2[24] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
79511
- t21 = (pluginName_2) => {
79536
+ const handleRemove = t19;
79537
+ let t20;
79538
+ if ($2[23] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
79539
+ t20 = (pluginName_2) => {
79512
79540
  clearPluginError(pluginName_2);
79513
79541
  updatePlugin(pluginName_2).catch((err_1) => {
79514
79542
  showPluginError(pluginName_2, err_1 instanceof Error ? err_1.message : String(err_1));
79515
79543
  });
79516
79544
  };
79517
- $2[24] = t21;
79545
+ $2[23] = t20;
79518
79546
  } else {
79519
- t21 = $2[24];
79547
+ t20 = $2[23];
79520
79548
  }
79521
- const handleUpdate = t21;
79549
+ const handleUpdate = t20;
79550
+ let t21;
79522
79551
  let t22;
79523
- let t23;
79524
- if ($2[25] !== handleNotification) {
79525
- t22 = () => {
79526
- const loadPlugins = () => {
79527
- const now = Date.now();
79528
- if (now - lastFetchRef.current < 200) {
79529
- return Promise.resolve();
79530
- }
79531
- lastFetchRef.current = now;
79532
- return fetchConfigState().then((result_0) => {
79533
- let updatedPlugins = result_0.plugins ?? [];
79534
- if (pendingTabStates.current.size > 0) {
79535
- updatedPlugins = updatedPlugins.map((p3) => {
79536
- const buffered = pendingTabStates.current.get(p3.name);
79537
- return buffered ? {
79538
- ...p3,
79539
- tabState: buffered
79540
- } : p3;
79541
- });
79542
- pendingTabStates.current.clear();
79552
+ if ($2[24] !== handleNotification) {
79553
+ t21 = () => {
79554
+ const applyFullState = (result_0) => {
79555
+ setConnected(result_0.connected);
79556
+ setDisconnectReason(result_0.disconnectReason);
79557
+ setPlugins(result_0.plugins);
79558
+ setFailedPlugins(result_0.failedPlugins);
79559
+ setBrowserTools(() => {
79560
+ if (result_0.browserTools.length === 0) {
79561
+ return BROWSER_TOOLS_CATALOG.map(_temp36);
79543
79562
  }
79544
- setPlugins(updatedPlugins);
79545
- setFailedPlugins(result_0.failedPlugins ?? []);
79546
- setBrowserTools((prev_10) => prev_10.map((t_0) => {
79547
- const serverTool = result_0.browserTools?.find((s2) => s2.name === t_0.name);
79548
- return serverTool ? {
79549
- ...t_0,
79550
- enabled: serverTool.enabled
79551
- } : t_0;
79552
- }));
79553
- setServerVersion(result_0.serverVersion);
79554
- setActiveTools((prev_11) => {
79555
- const next_6 = /* @__PURE__ */ new Set();
79556
- for (const key of prev_11) {
79557
- if (key.startsWith("browser:") || updatedPlugins.some((p_0) => key.startsWith(p_0.name + ":"))) {
79558
- next_6.add(key);
79559
- }
79563
+ const serverNames = new Set(result_0.browserTools.map(_temp43));
79564
+ const merged = [...result_0.browserTools];
79565
+ for (const local of BROWSER_TOOLS_CATALOG) {
79566
+ if (!serverNames.has(local.name)) {
79567
+ merged.push({
79568
+ ...local,
79569
+ enabled: true
79570
+ });
79571
+ }
79572
+ }
79573
+ return merged;
79574
+ });
79575
+ setServerVersion(result_0.serverVersion);
79576
+ setActiveTools((prev_10) => {
79577
+ const next_6 = /* @__PURE__ */ new Set();
79578
+ for (const key of prev_10) {
79579
+ if (key.startsWith("browser:") || result_0.plugins.some((p3) => key.startsWith(p3.name + ":"))) {
79580
+ next_6.add(key);
79581
+ }
79582
+ }
79583
+ return next_6;
79584
+ });
79585
+ for (const c2 of result_0.pendingConfirmations ?? []) {
79586
+ handleNotification({
79587
+ method: "confirmation.request",
79588
+ params: {
79589
+ id: c2.id,
79590
+ tool: c2.tool,
79591
+ domain: c2.domain,
79592
+ tabId: c2.tabId,
79593
+ paramsPreview: c2.paramsPreview,
79594
+ timeoutMs: c2.timeoutMs,
79595
+ receivedAt: c2.receivedAt
79560
79596
  }
79561
- return next_6;
79562
79597
  });
79563
- }).catch(_temp36);
79564
- };
79565
- getConnectionState().then(async (result_1) => {
79566
- setConnected(result_1.connected);
79567
- setDisconnectReason(result_1.disconnectReason);
79568
- if (result_1.connected) {
79569
- await loadPlugins();
79570
79598
  }
79599
+ };
79600
+ getFullState().then((result_1) => {
79601
+ applyFullState(result_1);
79571
79602
  setLoading(false);
79572
79603
  }).catch(() => {
79573
79604
  setLoading(false);
@@ -79582,7 +79613,7 @@ var App = () => {
79582
79613
  connected: connectedRef.current,
79583
79614
  loading: loadingRef.current,
79584
79615
  pluginCount: currentPlugins.length,
79585
- plugins: currentPlugins.map(_temp43)
79616
+ plugins: currentPlugins.map(_temp53)
79586
79617
  },
79587
79618
  html
79588
79619
  });
@@ -79593,11 +79624,11 @@ var App = () => {
79593
79624
  setConnected(isConnected);
79594
79625
  setDisconnectReason(isConnected ? void 0 : message_0.data.disconnectReason);
79595
79626
  if (isConnected) {
79596
- loadPlugins();
79627
+ getFullState().then(applyFullState).catch(_temp62);
79597
79628
  } else {
79598
79629
  setPlugins([]);
79599
79630
  setFailedPlugins([]);
79600
- setBrowserTools(BROWSER_TOOLS_CATALOG.map(_temp53));
79631
+ setBrowserTools(BROWSER_TOOLS_CATALOG.map(_temp72));
79601
79632
  setServerVersion(void 0);
79602
79633
  setActiveTools(/* @__PURE__ */ new Set());
79603
79634
  setPendingConfirmations([]);
@@ -79605,7 +79636,14 @@ var App = () => {
79605
79636
  clearTimeout(npmSearchTimer.current);
79606
79637
  setNpmResults([]);
79607
79638
  setNpmSearching(false);
79608
- rejectAllPending();
79639
+ setInstallingPlugins(/* @__PURE__ */ new Set());
79640
+ setRemovingPlugins(/* @__PURE__ */ new Set());
79641
+ setInstallErrors(/* @__PURE__ */ new Map());
79642
+ for (const timer_0 of pluginErrorTimers.current.values()) {
79643
+ clearTimeout(timer_0);
79644
+ }
79645
+ pluginErrorTimers.current.clear();
79646
+ setPluginErrors(/* @__PURE__ */ new Map());
79609
79647
  }
79610
79648
  sendResponse({
79611
79649
  ok: true
@@ -79614,14 +79652,8 @@ var App = () => {
79614
79652
  }
79615
79653
  if (message_0.type === "sp:serverMessage") {
79616
79654
  const data = message_0.data;
79617
- if (handleServerResponse(data)) {
79618
- sendResponse({
79619
- ok: true
79620
- });
79621
- return true;
79622
- }
79623
79655
  if (data.method === "plugins.changed") {
79624
- loadPlugins();
79656
+ getFullState().then(applyFullState).catch(_temp82);
79625
79657
  sendResponse({
79626
79658
  ok: true
79627
79659
  });
@@ -79633,13 +79665,6 @@ var App = () => {
79633
79665
  });
79634
79666
  return true;
79635
79667
  }
79636
- if (message_0.type === "ws:message") {
79637
- const wsData = message_0.data;
79638
- if (wsData?.method === "sync.full") {
79639
- loadPlugins();
79640
- }
79641
- return false;
79642
- }
79643
79668
  return false;
79644
79669
  };
79645
79670
  chrome.runtime.onMessage.addListener(listener);
@@ -79648,65 +79673,65 @@ var App = () => {
79648
79673
  chrome.runtime.onMessage.removeListener(listener);
79649
79674
  };
79650
79675
  };
79651
- t23 = [handleNotification];
79652
- $2[25] = handleNotification;
79676
+ t22 = [handleNotification];
79677
+ $2[24] = handleNotification;
79678
+ $2[25] = t21;
79653
79679
  $2[26] = t22;
79654
- $2[27] = t23;
79655
79680
  } else {
79681
+ t21 = $2[25];
79656
79682
  t22 = $2[26];
79657
- t23 = $2[27];
79658
79683
  }
79659
- (0, import_react21.useEffect)(t22, t23);
79660
- let t24;
79661
- if ($2[28] !== clearConfirmationTimeout) {
79662
- t24 = (id, decision, scope) => {
79684
+ (0, import_react22.useEffect)(t21, t22);
79685
+ let t23;
79686
+ if ($2[27] !== clearConfirmationTimeout) {
79687
+ t23 = (id, decision, scope) => {
79663
79688
  clearConfirmationTimeout(id);
79664
79689
  sendConfirmationResponse(id, decision, scope);
79665
- setPendingConfirmations((prev_12) => prev_12.filter((c2) => c2.id !== id));
79690
+ setPendingConfirmations((prev_11) => prev_11.filter((c_0) => c_0.id !== id));
79666
79691
  };
79667
- $2[28] = clearConfirmationTimeout;
79668
- $2[29] = t24;
79692
+ $2[27] = clearConfirmationTimeout;
79693
+ $2[28] = t23;
79669
79694
  } else {
79670
- t24 = $2[29];
79695
+ t23 = $2[28];
79671
79696
  }
79672
- const handleConfirmationRespond = t24;
79673
- let t25;
79674
- if ($2[30] !== clearConfirmationTimeout || $2[31] !== pendingConfirmations) {
79675
- t25 = () => {
79676
- for (const c_0 of pendingConfirmations) {
79677
- clearConfirmationTimeout(c_0.id);
79678
- sendConfirmationResponse(c_0.id, "deny");
79697
+ const handleConfirmationRespond = t23;
79698
+ let t24;
79699
+ if ($2[29] !== clearConfirmationTimeout || $2[30] !== pendingConfirmations) {
79700
+ t24 = () => {
79701
+ for (const c_1 of pendingConfirmations) {
79702
+ clearConfirmationTimeout(c_1.id);
79703
+ sendConfirmationResponse(c_1.id, "deny");
79679
79704
  }
79680
79705
  setPendingConfirmations([]);
79681
79706
  };
79682
- $2[30] = clearConfirmationTimeout;
79683
- $2[31] = pendingConfirmations;
79684
- $2[32] = t25;
79707
+ $2[29] = clearConfirmationTimeout;
79708
+ $2[30] = pendingConfirmations;
79709
+ $2[31] = t24;
79685
79710
  } else {
79686
- t25 = $2[32];
79711
+ t24 = $2[31];
79687
79712
  }
79688
- const handleDenyAll = t25;
79713
+ const handleDenyAll = t24;
79689
79714
  const hasContent = plugins.length > 0 || failedPlugins.length > 0 || browserTools.length > 0;
79690
79715
  const showPlugins = !loading && connected && (hasContent || !!searchQuery);
79691
79716
  const showSearchBar = connected && !loading;
79692
- let t26;
79693
- if ($2[33] !== connected || $2[34] !== handleConfirmationRespond || $2[35] !== handleDenyAll || $2[36] !== pendingConfirmations) {
79694
- t26 = connected && pendingConfirmations.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(ConfirmationDialog, {
79717
+ let t25;
79718
+ if ($2[32] !== connected || $2[33] !== handleConfirmationRespond || $2[34] !== handleDenyAll || $2[35] !== pendingConfirmations) {
79719
+ t25 = connected && pendingConfirmations.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(ConfirmationDialog, {
79695
79720
  confirmations: pendingConfirmations,
79696
79721
  onRespond: handleConfirmationRespond,
79697
79722
  onDenyAll: handleDenyAll
79698
79723
  });
79699
- $2[33] = connected;
79700
- $2[34] = handleConfirmationRespond;
79701
- $2[35] = handleDenyAll;
79702
- $2[36] = pendingConfirmations;
79703
- $2[37] = t26;
79724
+ $2[32] = connected;
79725
+ $2[33] = handleConfirmationRespond;
79726
+ $2[34] = handleDenyAll;
79727
+ $2[35] = pendingConfirmations;
79728
+ $2[36] = t25;
79704
79729
  } else {
79705
- t26 = $2[37];
79730
+ t25 = $2[36];
79706
79731
  }
79707
- let t27;
79708
- if ($2[38] !== searchQuery || $2[39] !== showSearchBar) {
79709
- t27 = showSearchBar && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", {
79732
+ let t26;
79733
+ if ($2[37] !== searchQuery || $2[38] !== showSearchBar) {
79734
+ t26 = showSearchBar && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", {
79710
79735
  className: "shrink-0 px-4 pt-4 pb-2",
79711
79736
  children: /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", {
79712
79737
  className: "relative",
@@ -79727,35 +79752,35 @@ var App = () => {
79727
79752
  })]
79728
79753
  })
79729
79754
  });
79730
- $2[38] = searchQuery;
79731
- $2[39] = showSearchBar;
79732
- $2[40] = t27;
79755
+ $2[37] = searchQuery;
79756
+ $2[38] = showSearchBar;
79757
+ $2[39] = t26;
79733
79758
  } else {
79734
- t27 = $2[40];
79759
+ t26 = $2[39];
79735
79760
  }
79761
+ let t27;
79736
79762
  let t28;
79737
- let t29;
79738
- if ($2[41] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
79739
- t28 = {
79763
+ if ($2[40] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
79764
+ t27 = {
79740
79765
  height: 0
79741
79766
  };
79742
- t29 = {
79767
+ t28 = {
79743
79768
  scrollbars: {
79744
79769
  theme: "os-theme-retro",
79745
79770
  autoHide: "scroll",
79746
79771
  autoHideDelay: 600
79747
79772
  }
79748
79773
  };
79774
+ $2[40] = t27;
79749
79775
  $2[41] = t28;
79750
- $2[42] = t29;
79751
79776
  } else {
79777
+ t27 = $2[40];
79752
79778
  t28 = $2[41];
79753
- t29 = $2[42];
79754
79779
  }
79755
- const t30 = `px-4 pb-4 ${showSearchBar ? "pt-2" : "pt-4"} ${showPlugins ? "" : "flex min-h-full items-center justify-center"}`;
79756
- let t31;
79757
- if ($2[43] !== activeTools || $2[44] !== browserTools || $2[45] !== connected || $2[46] !== disconnectReason || $2[47] !== failedPlugins || $2[48] !== hasContent || $2[49] !== installErrors || $2[50] !== installingPlugins || $2[51] !== loading || $2[52] !== npmResults || $2[53] !== npmSearching || $2[54] !== pluginErrors || $2[55] !== plugins || $2[56] !== removingPlugins || $2[57] !== searchQuery || $2[58] !== serverVersion) {
79758
- t31 = loading ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(LoadingState, {}) : !connected ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(DisconnectedState, {
79780
+ const t29 = `px-4 pb-4 ${showSearchBar ? "pt-2" : "pt-4"} ${showPlugins ? "" : "flex min-h-full items-center justify-center"}`;
79781
+ let t30;
79782
+ if ($2[42] !== activeTools || $2[43] !== browserTools || $2[44] !== connected || $2[45] !== disconnectReason || $2[46] !== failedPlugins || $2[47] !== hasContent || $2[48] !== installErrors || $2[49] !== installingPlugins || $2[50] !== loading || $2[51] !== npmResults || $2[52] !== npmSearching || $2[53] !== pluginErrors || $2[54] !== plugins || $2[55] !== removingPlugins || $2[56] !== searchQuery || $2[57] !== serverVersion) {
79783
+ t30 = loading ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(LoadingState, {}) : !connected ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(DisconnectedState, {
79759
79784
  reason: disconnectReason
79760
79785
  }) : searchQuery ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(SearchResults, {
79761
79786
  plugins,
@@ -79797,66 +79822,66 @@ var App = () => {
79797
79822
  pluginErrors
79798
79823
  })]
79799
79824
  }) : null;
79800
- $2[43] = activeTools;
79801
- $2[44] = browserTools;
79802
- $2[45] = connected;
79803
- $2[46] = disconnectReason;
79804
- $2[47] = failedPlugins;
79805
- $2[48] = hasContent;
79806
- $2[49] = installErrors;
79807
- $2[50] = installingPlugins;
79808
- $2[51] = loading;
79809
- $2[52] = npmResults;
79810
- $2[53] = npmSearching;
79811
- $2[54] = pluginErrors;
79812
- $2[55] = plugins;
79813
- $2[56] = removingPlugins;
79814
- $2[57] = searchQuery;
79815
- $2[58] = serverVersion;
79816
- $2[59] = t31;
79825
+ $2[42] = activeTools;
79826
+ $2[43] = browserTools;
79827
+ $2[44] = connected;
79828
+ $2[45] = disconnectReason;
79829
+ $2[46] = failedPlugins;
79830
+ $2[47] = hasContent;
79831
+ $2[48] = installErrors;
79832
+ $2[49] = installingPlugins;
79833
+ $2[50] = loading;
79834
+ $2[51] = npmResults;
79835
+ $2[52] = npmSearching;
79836
+ $2[53] = pluginErrors;
79837
+ $2[54] = plugins;
79838
+ $2[55] = removingPlugins;
79839
+ $2[56] = searchQuery;
79840
+ $2[57] = serverVersion;
79841
+ $2[58] = t30;
79817
79842
  } else {
79818
- t31 = $2[59];
79843
+ t30 = $2[58];
79819
79844
  }
79820
- let t32;
79821
- if ($2[60] !== t30 || $2[61] !== t31) {
79822
- t32 = /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(g2, {
79845
+ let t31;
79846
+ if ($2[59] !== t29 || $2[60] !== t30) {
79847
+ t31 = /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(g2, {
79823
79848
  className: "flex-1",
79824
- style: t28,
79825
- options: t29,
79849
+ style: t27,
79850
+ options: t28,
79826
79851
  children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("main", {
79827
- className: t30,
79828
- children: t31
79852
+ className: t29,
79853
+ children: t30
79829
79854
  })
79830
79855
  });
79856
+ $2[59] = t29;
79831
79857
  $2[60] = t30;
79832
79858
  $2[61] = t31;
79859
+ } else {
79860
+ t31 = $2[61];
79861
+ }
79862
+ let t32;
79863
+ if ($2[62] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
79864
+ t32 = /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Footer, {});
79833
79865
  $2[62] = t32;
79834
79866
  } else {
79835
79867
  t32 = $2[62];
79836
79868
  }
79837
79869
  let t33;
79838
- if ($2[63] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
79839
- t33 = /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Footer, {});
79840
- $2[63] = t33;
79841
- } else {
79842
- t33 = $2[63];
79843
- }
79844
- let t34;
79845
- if ($2[64] !== t26 || $2[65] !== t27 || $2[66] !== t32) {
79846
- t34 = /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(TooltipObject.Provider, {
79870
+ if ($2[63] !== t25 || $2[64] !== t26 || $2[65] !== t31) {
79871
+ t33 = /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(TooltipObject.Provider, {
79847
79872
  children: /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", {
79848
79873
  className: "text-foreground flex h-screen flex-col overflow-hidden",
79849
- children: [t26, t27, t32, t33]
79874
+ children: [t25, t26, t31, t32]
79850
79875
  })
79851
79876
  });
79877
+ $2[63] = t25;
79852
79878
  $2[64] = t26;
79853
- $2[65] = t27;
79854
- $2[66] = t32;
79855
- $2[67] = t34;
79879
+ $2[65] = t31;
79880
+ $2[66] = t33;
79856
79881
  } else {
79857
- t34 = $2[67];
79882
+ t33 = $2[66];
79858
79883
  }
79859
- return t34;
79884
+ return t33;
79860
79885
  };
79861
79886
  function _temp14(t2) {
79862
79887
  return {
@@ -79867,25 +79892,36 @@ function _temp14(t2) {
79867
79892
  function _temp28() {
79868
79893
  return BROWSER_TOOLS_CATALOG.map(_temp14);
79869
79894
  }
79870
- function _temp36() {
79895
+ function _temp36(t_0) {
79896
+ return {
79897
+ ...t_0,
79898
+ enabled: true
79899
+ };
79900
+ }
79901
+ function _temp43(t_1) {
79902
+ return t_1.name;
79871
79903
  }
79872
- function _temp43(p_1) {
79904
+ function _temp53(p_0) {
79873
79905
  return {
79874
- name: p_1.name,
79875
- tabState: p_1.tabState
79906
+ name: p_0.name,
79907
+ tabState: p_0.tabState
79876
79908
  };
79877
79909
  }
79878
- function _temp53(t_1) {
79910
+ function _temp62() {
79911
+ }
79912
+ function _temp72(t_2) {
79879
79913
  return {
79880
- ...t_1,
79914
+ ...t_2,
79881
79915
  enabled: true
79882
79916
  };
79883
79917
  }
79918
+ function _temp82() {
79919
+ }
79884
79920
 
79885
79921
  // src/side-panel/components/ErrorBoundary.tsx
79886
- var import_react22 = __toESM(require_react(), 1);
79922
+ var import_react23 = __toESM(require_react(), 1);
79887
79923
  var import_jsx_runtime58 = __toESM(require_jsx_runtime(), 1);
79888
- var ErrorBoundary = class extends import_react22.Component {
79924
+ var ErrorBoundary = class extends import_react23.Component {
79889
79925
  state = {
79890
79926
  hasError: false
79891
79927
  };
@@ -79923,7 +79959,7 @@ var ErrorBoundary = class extends import_react22.Component {
79923
79959
  };
79924
79960
 
79925
79961
  // src/side-panel/index.tsx
79926
- var import_react23 = __toESM(require_react(), 1);
79962
+ var import_react24 = __toESM(require_react(), 1);
79927
79963
  var import_client = __toESM(require_client(), 1);
79928
79964
  var import_jsx_runtime59 = __toESM(require_jsx_runtime(), 1);
79929
79965
  var rootEl = document.getElementById("root");
@@ -79931,7 +79967,7 @@ if (!rootEl) {
79931
79967
  throw new Error("Root element not found");
79932
79968
  }
79933
79969
  var root = (0, import_client.createRoot)(rootEl);
79934
- root.render(/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_react23.StrictMode, {
79970
+ root.render(/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_react24.StrictMode, {
79935
79971
  children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(ErrorBoundary, {
79936
79972
  children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(App, {})
79937
79973
  })