@quanta-intellect/vessel-browser 0.1.90 → 0.1.92

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.
@@ -133,6 +133,11 @@ const Channels = {
133
133
  DOWNLOAD_STARTED: "download:started",
134
134
  DOWNLOAD_PROGRESS: "download:progress",
135
135
  DOWNLOAD_DONE: "download:done",
136
+ DOWNLOADS_GET: "downloads:get",
137
+ DOWNLOADS_CLEAR: "downloads:clear",
138
+ DOWNLOADS_OPEN: "downloads:open",
139
+ DOWNLOADS_SHOW_IN_FOLDER: "downloads:show-in-folder",
140
+ DOWNLOADS_UPDATE: "downloads:update",
136
141
  // Premium
137
142
  PREMIUM_GET_STATE: "premium:get-state",
138
143
  PREMIUM_ACTIVATION_START: "premium:activation-start",
@@ -192,7 +197,14 @@ const Channels = {
192
197
  CODEX_START_AUTH: "codex:start-auth",
193
198
  CODEX_CANCEL_AUTH: "codex:cancel-auth",
194
199
  CODEX_AUTH_STATUS: "codex:auth-status",
195
- CODEX_DISCONNECT: "codex:disconnect"
200
+ CODEX_DISCONNECT: "codex:disconnect",
201
+ // Updates
202
+ UPDATES_CHECK: "updates:check",
203
+ UPDATES_OPEN_DOWNLOAD: "updates:open-download",
204
+ // Permissions
205
+ PERMISSIONS_GET: "permissions:get",
206
+ PERMISSIONS_CLEAR: "permissions:clear",
207
+ PERMISSIONS_CLEAR_ORIGIN: "permissions:clear-origin"
196
208
  };
197
209
  const api = {
198
210
  tabs: {
@@ -487,6 +499,15 @@ const api = {
487
499
  fill: (profileId) => electron.ipcRenderer.invoke(Channels.AUTOFILL_FILL, profileId)
488
500
  },
489
501
  downloads: {
502
+ getAll: () => electron.ipcRenderer.invoke(Channels.DOWNLOADS_GET),
503
+ clear: () => electron.ipcRenderer.invoke(Channels.DOWNLOADS_CLEAR),
504
+ open: (id) => electron.ipcRenderer.invoke(Channels.DOWNLOADS_OPEN, id),
505
+ showInFolder: (id) => electron.ipcRenderer.invoke(Channels.DOWNLOADS_SHOW_IN_FOLDER, id),
506
+ onUpdate: (cb) => {
507
+ const handler = (_, items) => cb(items);
508
+ electron.ipcRenderer.on(Channels.DOWNLOADS_UPDATE, handler);
509
+ return () => electron.ipcRenderer.removeListener(Channels.DOWNLOADS_UPDATE, handler);
510
+ },
490
511
  onStarted: (cb) => {
491
512
  const handler = (_, info) => cb(info);
492
513
  electron.ipcRenderer.on(Channels.DOWNLOAD_STARTED, handler);
@@ -522,6 +543,15 @@ const api = {
522
543
  proceedAnyway: (tabId) => electron.ipcRenderer.invoke(Channels.SECURITY_PROCEED_ANYWAY, tabId),
523
544
  goBackToSafety: (tabId) => electron.ipcRenderer.invoke(Channels.SECURITY_GO_BACK_TO_SAFETY, tabId)
524
545
  },
546
+ updates: {
547
+ check: () => electron.ipcRenderer.invoke(Channels.UPDATES_CHECK),
548
+ openDownload: () => electron.ipcRenderer.invoke(Channels.UPDATES_OPEN_DOWNLOAD)
549
+ },
550
+ permissions: {
551
+ getAll: () => electron.ipcRenderer.invoke(Channels.PERMISSIONS_GET),
552
+ clear: () => electron.ipcRenderer.invoke(Channels.PERMISSIONS_CLEAR),
553
+ clearOrigin: (origin) => electron.ipcRenderer.invoke(Channels.PERMISSIONS_CLEAR_ORIGIN, origin)
554
+ },
525
555
  browsingData: {
526
556
  clear: (options) => electron.ipcRenderer.invoke(Channels.CLEAR_BROWSING_DATA, options),
527
557
  onOpenDialog: (cb) => {
@@ -1746,7 +1746,7 @@
1746
1746
  border: 1px solid rgba(255, 255, 255, 0.08);
1747
1747
  border-radius: 8px;
1748
1748
  padding: 12px 16px;
1749
- min-width: 220px;
1749
+ min-width: 280px;
1750
1750
  z-index: 100;
1751
1751
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
1752
1752
  }
@@ -1779,6 +1779,38 @@
1779
1779
  color: #93c5fd;
1780
1780
  }
1781
1781
 
1782
+ .security-popup-section {
1783
+ border-top: 1px solid rgba(255, 255, 255, 0.08);
1784
+ padding-top: 8px;
1785
+ margin-top: 2px;
1786
+ }
1787
+
1788
+ .security-popup-section-title {
1789
+ font-size: 11px;
1790
+ color: #9ca3af;
1791
+ text-transform: uppercase;
1792
+ letter-spacing: 0.04em;
1793
+ margin-bottom: 6px;
1794
+ }
1795
+
1796
+ .security-popup-muted {
1797
+ color: #9ca3af;
1798
+ font-size: 12px;
1799
+ margin: 0;
1800
+ }
1801
+
1802
+ .security-popup-permission-row {
1803
+ display: flex;
1804
+ justify-content: space-between;
1805
+ gap: 14px;
1806
+ font-size: 12px;
1807
+ color: #e5e7eb;
1808
+ margin: 4px 0;
1809
+ }
1810
+
1811
+ .security-popup-permission-row strong.allow { color: #86efac; }
1812
+ .security-popup-permission-row strong.deny { color: #fca5a5; }
1813
+
1782
1814
  .security-popup-actions {
1783
1815
  display: flex;
1784
1816
  gap: 8px;
@@ -1974,6 +2006,55 @@
1974
2006
  font-size: 14px;
1975
2007
  color: var(--accent-secondary);
1976
2008
  }
2009
+
2010
+ .downloads-panel {
2011
+ width: min(760px, calc(100vw - 48px));
2012
+ max-height: min(680px, calc(100vh - 48px));
2013
+ background: var(--bg-panel);
2014
+ border: 1px solid var(--border-visible);
2015
+ border-radius: var(--radius-lg);
2016
+ box-shadow: var(--shadow-xl);
2017
+ display: flex;
2018
+ flex-direction: column;
2019
+ overflow: hidden;
2020
+ }
2021
+
2022
+ .downloads-panel-header {
2023
+ display: flex;
2024
+ align-items: flex-start;
2025
+ justify-content: space-between;
2026
+ gap: 16px;
2027
+ padding: 18px 20px;
2028
+ border-bottom: 1px solid var(--border-subtle);
2029
+ }
2030
+
2031
+ .downloads-panel-header h2 { margin: 0 0 4px; font-size: 18px; }
2032
+ .downloads-panel-header p { margin: 0; color: var(--text-secondary); font-size: 13px; }
2033
+ .downloads-panel-actions, .downloads-row-actions { display: flex; gap: 8px; }
2034
+ .downloads-panel-actions button, .downloads-row-actions button {
2035
+ padding: 6px 10px;
2036
+ border: 1px solid var(--border-visible);
2037
+ border-radius: var(--radius-sm);
2038
+ background: var(--bg-elevated);
2039
+ color: var(--text-primary);
2040
+ cursor: pointer;
2041
+ }
2042
+ .downloads-panel-actions button:hover, .downloads-row-actions button:hover:not(:disabled) { background: var(--bg-hover); }
2043
+ .downloads-row-actions button:disabled { opacity: 0.45; cursor: not-allowed; }
2044
+ .downloads-panel-list { overflow: auto; padding: 8px; }
2045
+ .downloads-row {
2046
+ display: flex;
2047
+ justify-content: space-between;
2048
+ gap: 14px;
2049
+ padding: 12px;
2050
+ border-radius: var(--radius-md);
2051
+ border: 1px solid transparent;
2052
+ }
2053
+ .downloads-row:hover { background: var(--bg-elevated); border-color: var(--border-subtle); }
2054
+ .downloads-file { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
2055
+ .downloads-file strong, .downloads-file span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
2056
+ .downloads-file span, .downloads-file small, .downloads-empty { color: var(--text-secondary); font-size: 12px; }
2057
+ .downloads-empty { padding: 28px; text-align: center; }
1977
2058
  /* ═══════════════════════════════════════
1978
2059
  Command bar overlay — cinematic entrance
1979
2060
  ═══════════════════════════════════════ */