@quanta-intellect/vessel-browser 0.1.60 → 0.1.63
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/out/main/index.js +483 -202
- package/out/preload/index.js +11 -1
- package/out/renderer/assets/{index-CBe7EN_l.css → index-4OgPv5GF.css} +412 -331
- package/out/renderer/assets/{index-NKk_lpQh.js → index-B2vPgkX2.js} +139 -114
- package/out/renderer/index.html +2 -2
- package/package.json +1 -1
|
@@ -1491,32 +1491,34 @@ const [activeTabId, setActiveTabId] = createSignal("");
|
|
|
1491
1491
|
let initialized$4 = false;
|
|
1492
1492
|
let initPromise$3 = null;
|
|
1493
1493
|
let unsubscribeStateUpdate = null;
|
|
1494
|
+
async function doInit() {
|
|
1495
|
+
try {
|
|
1496
|
+
if (unsubscribeStateUpdate) {
|
|
1497
|
+
unsubscribeStateUpdate();
|
|
1498
|
+
unsubscribeStateUpdate = null;
|
|
1499
|
+
}
|
|
1500
|
+
unsubscribeStateUpdate = window.vessel.tabs.onStateUpdate(
|
|
1501
|
+
(newTabs, newActiveId) => {
|
|
1502
|
+
setTabs(newTabs);
|
|
1503
|
+
setActiveTabId(newActiveId);
|
|
1504
|
+
}
|
|
1505
|
+
);
|
|
1506
|
+
const initialState = await window.vessel.tabs.getState();
|
|
1507
|
+
setTabs(initialState.tabs);
|
|
1508
|
+
setActiveTabId(initialState.activeId);
|
|
1509
|
+
} catch (error) {
|
|
1510
|
+
initialized$4 = false;
|
|
1511
|
+
console.error("Failed to initialize tabs store", error);
|
|
1512
|
+
throw error;
|
|
1513
|
+
}
|
|
1514
|
+
}
|
|
1494
1515
|
function init$4() {
|
|
1495
1516
|
if (initPromise$3) return initPromise$3;
|
|
1496
1517
|
if (initialized$4) return;
|
|
1497
1518
|
initialized$4 = true;
|
|
1498
|
-
initPromise$3 = (
|
|
1499
|
-
|
|
1500
|
-
|
|
1501
|
-
unsubscribeStateUpdate();
|
|
1502
|
-
unsubscribeStateUpdate = null;
|
|
1503
|
-
}
|
|
1504
|
-
unsubscribeStateUpdate = window.vessel.tabs.onStateUpdate(
|
|
1505
|
-
(newTabs, newActiveId) => {
|
|
1506
|
-
setTabs(newTabs);
|
|
1507
|
-
setActiveTabId(newActiveId);
|
|
1508
|
-
}
|
|
1509
|
-
);
|
|
1510
|
-
const initialState = await window.vessel.tabs.getState();
|
|
1511
|
-
setTabs(initialState.tabs);
|
|
1512
|
-
setActiveTabId(initialState.activeId);
|
|
1513
|
-
} catch (error) {
|
|
1514
|
-
initialized$4 = false;
|
|
1515
|
-
console.error("Failed to initialize tabs store", error);
|
|
1516
|
-
} finally {
|
|
1517
|
-
initPromise$3 = null;
|
|
1518
|
-
}
|
|
1519
|
-
})();
|
|
1519
|
+
initPromise$3 = doInit().finally(() => {
|
|
1520
|
+
initPromise$3 = null;
|
|
1521
|
+
});
|
|
1520
1522
|
return initPromise$3;
|
|
1521
1523
|
}
|
|
1522
1524
|
const patchTab = (id, patch) => {
|
|
@@ -1867,28 +1869,10 @@ const [focusMode, setFocusMode] = createSignal(false);
|
|
|
1867
1869
|
const [commandBarOpen, setCommandBarOpen] = createSignal(false);
|
|
1868
1870
|
const [settingsOpen, setSettingsOpen] = createSignal(false);
|
|
1869
1871
|
const [devtoolsPanelOpen, setDevtoolsPanelOpen] = createSignal(false);
|
|
1870
|
-
let
|
|
1871
|
-
|
|
1872
|
-
|
|
1873
|
-
|
|
1874
|
-
await resizeInFlight;
|
|
1875
|
-
if (pendingWidth !== null) {
|
|
1876
|
-
return flushResize();
|
|
1877
|
-
}
|
|
1878
|
-
return;
|
|
1879
|
-
}
|
|
1880
|
-
resizeInFlight = (async () => {
|
|
1881
|
-
while (pendingWidth !== null) {
|
|
1882
|
-
const nextWidth = pendingWidth;
|
|
1883
|
-
pendingWidth = null;
|
|
1884
|
-
await window.vessel.ui.resizeSidebar(nextWidth);
|
|
1885
|
-
}
|
|
1886
|
-
})();
|
|
1887
|
-
try {
|
|
1888
|
-
await resizeInFlight;
|
|
1889
|
-
} finally {
|
|
1890
|
-
resizeInFlight = null;
|
|
1891
|
-
}
|
|
1872
|
+
let lastIpcTime = 0;
|
|
1873
|
+
const IPC_THROTTLE_MS = 8;
|
|
1874
|
+
function clampSidebarWidth(width) {
|
|
1875
|
+
return Math.max(MIN_SIDEBAR, Math.min(MAX_SIDEBAR, Math.round(width)));
|
|
1892
1876
|
}
|
|
1893
1877
|
function useUI() {
|
|
1894
1878
|
return {
|
|
@@ -1904,17 +1888,18 @@ function useUI() {
|
|
|
1904
1888
|
setSidebarWidth(result.width);
|
|
1905
1889
|
},
|
|
1906
1890
|
resizeSidebar: (width) => {
|
|
1907
|
-
const clamped =
|
|
1908
|
-
MIN_SIDEBAR,
|
|
1909
|
-
Math.min(MAX_SIDEBAR, Math.round(width))
|
|
1910
|
-
);
|
|
1891
|
+
const clamped = clampSidebarWidth(width);
|
|
1911
1892
|
setSidebarWidth(clamped);
|
|
1912
|
-
|
|
1913
|
-
|
|
1893
|
+
const now2 = performance.now();
|
|
1894
|
+
if (now2 - lastIpcTime >= IPC_THROTTLE_MS) {
|
|
1895
|
+
lastIpcTime = now2;
|
|
1896
|
+
void window.vessel.ui.resizeSidebar(clamped);
|
|
1897
|
+
}
|
|
1914
1898
|
},
|
|
1915
1899
|
commitResize: async () => {
|
|
1916
|
-
|
|
1917
|
-
|
|
1900
|
+
const finalWidth = clampSidebarWidth(sidebarWidth());
|
|
1901
|
+
lastIpcTime = performance.now();
|
|
1902
|
+
await window.vessel.ui.resizeSidebar(finalWidth);
|
|
1918
1903
|
await window.vessel.ui.commitSidebarResize();
|
|
1919
1904
|
},
|
|
1920
1905
|
toggleFocusMode: async () => {
|
|
@@ -3533,7 +3518,16 @@ function useBookmarks() {
|
|
|
3533
3518
|
void init();
|
|
3534
3519
|
return {
|
|
3535
3520
|
bookmarksState,
|
|
3536
|
-
saveBookmark: (url, title, folderId, note) => window.vessel.bookmarks.saveBookmark(
|
|
3521
|
+
saveBookmark: (url, title, folderId, note, intent, expectedContent, keyFields, agentHints) => window.vessel.bookmarks.saveBookmark(
|
|
3522
|
+
url,
|
|
3523
|
+
title,
|
|
3524
|
+
folderId,
|
|
3525
|
+
note,
|
|
3526
|
+
intent,
|
|
3527
|
+
expectedContent,
|
|
3528
|
+
keyFields,
|
|
3529
|
+
agentHints
|
|
3530
|
+
),
|
|
3537
3531
|
removeBookmark: (id) => window.vessel.bookmarks.removeBookmark(id),
|
|
3538
3532
|
createFolder: (name) => window.vessel.bookmarks.createFolder(name),
|
|
3539
3533
|
createFolderWithSummary: (name, summary) => window.vessel.bookmarks.createFolderWithSummary(name, summary),
|
|
@@ -4981,7 +4975,9 @@ const FIELD_WEIGHTS = {
|
|
|
4981
4975
|
note: 5,
|
|
4982
4976
|
folder: 3,
|
|
4983
4977
|
folderSummary: 2,
|
|
4984
|
-
url: 1
|
|
4978
|
+
url: 1,
|
|
4979
|
+
intent: 4,
|
|
4980
|
+
expectedContent: 3
|
|
4985
4981
|
};
|
|
4986
4982
|
function normalizeBookmarkSearchText(value) {
|
|
4987
4983
|
let normalized = value.toLowerCase();
|
|
@@ -5012,7 +5008,9 @@ function getBookmarkSearchMatch(args) {
|
|
|
5012
5008
|
url: args.url,
|
|
5013
5009
|
note: args.note,
|
|
5014
5010
|
folder: args.folder,
|
|
5015
|
-
folderSummary: args.folderSummary
|
|
5011
|
+
folderSummary: args.folderSummary,
|
|
5012
|
+
intent: args.intent,
|
|
5013
|
+
expectedContent: args.expectedContent
|
|
5016
5014
|
};
|
|
5017
5015
|
for (const field of Object.keys(values)) {
|
|
5018
5016
|
if (!bookmarkFieldMatchesQuery(values[field], normalizedQuery, tokens)) {
|
|
@@ -6671,6 +6669,18 @@ ${contextBlock}` : contextBlock);
|
|
|
6671
6669
|
const startX = e.screenX;
|
|
6672
6670
|
const startWidth = sidebarWidth2();
|
|
6673
6671
|
let finished = false;
|
|
6672
|
+
const state = {
|
|
6673
|
+
currentX: startX,
|
|
6674
|
+
rafId: null
|
|
6675
|
+
};
|
|
6676
|
+
const flushResizeUpdate = () => {
|
|
6677
|
+
state.rafId = null;
|
|
6678
|
+
if (finished) return;
|
|
6679
|
+
const totalDelta = startX - state.currentX;
|
|
6680
|
+
const targetWidth = startWidth + totalDelta;
|
|
6681
|
+
const newWidth = Math.max(240, Math.min(800, Math.round(targetWidth)));
|
|
6682
|
+
resizeSidebar(newWidth);
|
|
6683
|
+
};
|
|
6674
6684
|
const clearPointerTracking = () => {
|
|
6675
6685
|
window.removeEventListener("pointermove", onPointerMove);
|
|
6676
6686
|
window.removeEventListener("pointerup", onPointerUp);
|
|
@@ -6681,14 +6691,25 @@ ${contextBlock}` : contextBlock);
|
|
|
6681
6691
|
if (target.hasPointerCapture?.(e.pointerId)) {
|
|
6682
6692
|
target.releasePointerCapture(e.pointerId);
|
|
6683
6693
|
}
|
|
6694
|
+
if (state.rafId !== null) {
|
|
6695
|
+
cancelAnimationFrame(state.rafId);
|
|
6696
|
+
state.rafId = null;
|
|
6697
|
+
}
|
|
6684
6698
|
};
|
|
6685
6699
|
const onPointerMove = (ev) => {
|
|
6686
|
-
|
|
6687
|
-
|
|
6700
|
+
state.currentX = ev.screenX;
|
|
6701
|
+
if (state.rafId === null) {
|
|
6702
|
+
state.rafId = requestAnimationFrame(flushResizeUpdate);
|
|
6703
|
+
}
|
|
6688
6704
|
};
|
|
6689
6705
|
const finishResize = () => {
|
|
6690
6706
|
if (finished) return;
|
|
6691
6707
|
finished = true;
|
|
6708
|
+
if (state.rafId !== null) {
|
|
6709
|
+
cancelAnimationFrame(state.rafId);
|
|
6710
|
+
state.rafId = null;
|
|
6711
|
+
}
|
|
6712
|
+
flushResizeUpdate();
|
|
6692
6713
|
setIsDragging(false);
|
|
6693
6714
|
clearPointerTracking();
|
|
6694
6715
|
document.body.style.cursor = "";
|
|
@@ -8066,9 +8087,9 @@ var _tmpl$$2 = /* @__PURE__ */ template(`<div class=welcome-banner-actions><butt
|
|
|
8066
8087
|
overscroll-behavior: contain;
|
|
8067
8088
|
scrollbar-gutter: stable;
|
|
8068
8089
|
box-shadow:
|
|
8069
|
-
0 4px 24px
|
|
8070
|
-
0 24px 64px
|
|
8071
|
-
inset 0 1px 0
|
|
8090
|
+
0 4px 24px var(--shadow-color),
|
|
8091
|
+
0 24px 64px var(--shadow-color-strong),
|
|
8092
|
+
inset 0 1px 0 var(--inset-highlight);
|
|
8072
8093
|
animation: command-bar-enter 350ms var(--ease-out-expo) both;
|
|
8073
8094
|
}
|
|
8074
8095
|
.command-bar-overlay.closing .settings-panel {
|
|
@@ -8085,8 +8106,8 @@ var _tmpl$$2 = /* @__PURE__ */ template(`<div class=welcome-banner-actions><butt
|
|
|
8085
8106
|
margin-bottom: 20px;
|
|
8086
8107
|
padding: 14px;
|
|
8087
8108
|
border-radius: var(--radius-md);
|
|
8088
|
-
border: 1px solid
|
|
8089
|
-
background:
|
|
8109
|
+
border: 1px solid color-mix(in srgb, var(--accent-primary) 14%, transparent);
|
|
8110
|
+
background: color-mix(in srgb, var(--accent-primary) 6%, transparent);
|
|
8090
8111
|
}
|
|
8091
8112
|
.settings-callout-title {
|
|
8092
8113
|
font-size: 12px;
|
|
@@ -8103,9 +8124,9 @@ var _tmpl$$2 = /* @__PURE__ */ template(`<div class=welcome-banner-actions><butt
|
|
|
8103
8124
|
}
|
|
8104
8125
|
.settings-premium-callout {
|
|
8105
8126
|
background:
|
|
8106
|
-
radial-gradient(circle at top right,
|
|
8107
|
-
|
|
8108
|
-
border-color:
|
|
8127
|
+
radial-gradient(circle at top right, color-mix(in srgb, var(--accent-primary) 16%, transparent), transparent 40%),
|
|
8128
|
+
color-mix(in srgb, var(--accent-primary) 6%, transparent);
|
|
8129
|
+
border-color: color-mix(in srgb, var(--accent-primary) 22%, transparent);
|
|
8109
8130
|
}
|
|
8110
8131
|
.settings-premium-callout-actions {
|
|
8111
8132
|
display: flex;
|
|
@@ -8121,7 +8142,7 @@ var _tmpl$$2 = /* @__PURE__ */ template(`<div class=welcome-banner-actions><butt
|
|
|
8121
8142
|
padding: 14px;
|
|
8122
8143
|
border-radius: var(--radius-md);
|
|
8123
8144
|
border: 1px solid var(--border-visible);
|
|
8124
|
-
background:
|
|
8145
|
+
background: var(--surface-glass);
|
|
8125
8146
|
}
|
|
8126
8147
|
.settings-health-issues {
|
|
8127
8148
|
display: flex;
|
|
@@ -8134,16 +8155,16 @@ var _tmpl$$2 = /* @__PURE__ */ template(`<div class=welcome-banner-actions><butt
|
|
|
8134
8155
|
line-height: 1.5;
|
|
8135
8156
|
padding: 10px 12px;
|
|
8136
8157
|
border-radius: var(--radius-md);
|
|
8137
|
-
border: 1px solid
|
|
8158
|
+
border: 1px solid var(--border-glass);
|
|
8138
8159
|
color: var(--text-secondary);
|
|
8139
8160
|
}
|
|
8140
8161
|
.settings-health-issue.warning {
|
|
8141
|
-
border-color:
|
|
8142
|
-
background:
|
|
8162
|
+
border-color: color-mix(in srgb, var(--accent-primary) 28%, transparent);
|
|
8163
|
+
background: color-mix(in srgb, var(--accent-primary) 6%, transparent);
|
|
8143
8164
|
}
|
|
8144
8165
|
.settings-health-issue.error {
|
|
8145
|
-
border-color:
|
|
8146
|
-
background:
|
|
8166
|
+
border-color: color-mix(in srgb, var(--status-error) 32%, transparent);
|
|
8167
|
+
background: color-mix(in srgb, var(--status-error) 6%, transparent);
|
|
8147
8168
|
}
|
|
8148
8169
|
.settings-label {
|
|
8149
8170
|
display: block;
|
|
@@ -8184,7 +8205,7 @@ var _tmpl$$2 = /* @__PURE__ */ template(`<div class=welcome-banner-actions><butt
|
|
|
8184
8205
|
}
|
|
8185
8206
|
.settings-input:focus {
|
|
8186
8207
|
border-color: var(--accent-primary);
|
|
8187
|
-
box-shadow: 0 0 0 2px
|
|
8208
|
+
box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent-primary) 10%, transparent);
|
|
8188
8209
|
outline: none;
|
|
8189
8210
|
}
|
|
8190
8211
|
.settings-hint {
|
|
@@ -8213,8 +8234,8 @@ var _tmpl$$2 = /* @__PURE__ */ template(`<div class=welcome-banner-actions><butt
|
|
|
8213
8234
|
width: 36px;
|
|
8214
8235
|
height: 20px;
|
|
8215
8236
|
border-radius: 999px;
|
|
8216
|
-
background:
|
|
8217
|
-
border: 1px solid
|
|
8237
|
+
background: var(--surface-hover);
|
|
8238
|
+
border: 1px solid var(--border-glass);
|
|
8218
8239
|
padding: 0;
|
|
8219
8240
|
flex-shrink: 0;
|
|
8220
8241
|
cursor: pointer;
|
|
@@ -8223,14 +8244,14 @@ var _tmpl$$2 = /* @__PURE__ */ template(`<div class=welcome-banner-actions><butt
|
|
|
8223
8244
|
border-color var(--duration-normal) var(--ease-in-out);
|
|
8224
8245
|
}
|
|
8225
8246
|
.toggle-switch:hover {
|
|
8226
|
-
background:
|
|
8247
|
+
background: var(--surface-active);
|
|
8227
8248
|
}
|
|
8228
8249
|
.toggle-switch.on {
|
|
8229
8250
|
background: var(--accent-primary);
|
|
8230
8251
|
border-color: transparent;
|
|
8231
8252
|
}
|
|
8232
8253
|
.toggle-switch.on:hover {
|
|
8233
|
-
background:
|
|
8254
|
+
background: color-mix(in srgb, var(--accent-primary) 85%, white);
|
|
8234
8255
|
}
|
|
8235
8256
|
.toggle-switch-thumb {
|
|
8236
8257
|
position: absolute;
|
|
@@ -8240,7 +8261,7 @@ var _tmpl$$2 = /* @__PURE__ */ template(`<div class=welcome-banner-actions><butt
|
|
|
8240
8261
|
height: 14px;
|
|
8241
8262
|
border-radius: 999px;
|
|
8242
8263
|
background: var(--text-primary);
|
|
8243
|
-
box-shadow: 0 1px 3px
|
|
8264
|
+
box-shadow: 0 1px 3px var(--shadow-color-strong);
|
|
8244
8265
|
transition: transform var(--duration-normal) var(--ease-out-expo);
|
|
8245
8266
|
pointer-events: none;
|
|
8246
8267
|
}
|
|
@@ -8253,10 +8274,10 @@ var _tmpl$$2 = /* @__PURE__ */ template(`<div class=welcome-banner-actions><butt
|
|
|
8253
8274
|
line-height: 1.5;
|
|
8254
8275
|
}
|
|
8255
8276
|
.settings-status.success {
|
|
8256
|
-
color:
|
|
8277
|
+
color: var(--status-success);
|
|
8257
8278
|
}
|
|
8258
8279
|
.settings-status.error {
|
|
8259
|
-
color:
|
|
8280
|
+
color: var(--status-error);
|
|
8260
8281
|
}
|
|
8261
8282
|
.settings-save, .settings-close {
|
|
8262
8283
|
height: 34px;
|
|
@@ -8273,9 +8294,9 @@ var _tmpl$$2 = /* @__PURE__ */ template(`<div class=welcome-banner-actions><butt
|
|
|
8273
8294
|
}
|
|
8274
8295
|
.settings-save {
|
|
8275
8296
|
background: var(--accent-primary);
|
|
8276
|
-
color:
|
|
8297
|
+
color: var(--button-primary-fg);
|
|
8277
8298
|
}
|
|
8278
|
-
.settings-save:hover { background:
|
|
8299
|
+
.settings-save:hover { background: var(--button-primary-hover-bg); }
|
|
8279
8300
|
.settings-close {
|
|
8280
8301
|
background: var(--bg-tertiary);
|
|
8281
8302
|
color: var(--text-secondary);
|
|
@@ -8366,11 +8387,11 @@ var _tmpl$$2 = /* @__PURE__ */ template(`<div class=welcome-banner-actions><butt
|
|
|
8366
8387
|
}
|
|
8367
8388
|
.premium-btn-upgrade {
|
|
8368
8389
|
background: var(--accent-primary);
|
|
8369
|
-
color:
|
|
8390
|
+
color: var(--button-primary-fg);
|
|
8370
8391
|
width: 100%;
|
|
8371
8392
|
}
|
|
8372
8393
|
.premium-btn-upgrade:hover {
|
|
8373
|
-
background:
|
|
8394
|
+
background: var(--button-primary-hover-bg);
|
|
8374
8395
|
}
|
|
8375
8396
|
.premium-btn-manage {
|
|
8376
8397
|
background: var(--bg-tertiary);
|
|
@@ -8386,8 +8407,8 @@ var _tmpl$$2 = /* @__PURE__ */ template(`<div class=welcome-banner-actions><butt
|
|
|
8386
8407
|
display: inline-flex;
|
|
8387
8408
|
align-items: center;
|
|
8388
8409
|
gap: 6px;
|
|
8389
|
-
background:
|
|
8390
|
-
color:
|
|
8410
|
+
background: color-mix(in srgb, var(--accent-primary) 15%, transparent);
|
|
8411
|
+
color: var(--accent-primary);
|
|
8391
8412
|
font-size: 12px;
|
|
8392
8413
|
font-weight: 600;
|
|
8393
8414
|
padding: 4px 12px;
|
|
@@ -8406,7 +8427,7 @@ var _tmpl$$2 = /* @__PURE__ */ template(`<div class=welcome-banner-actions><butt
|
|
|
8406
8427
|
}
|
|
8407
8428
|
.premium-btn-reset {
|
|
8408
8429
|
background: transparent;
|
|
8409
|
-
color: var(--text-
|
|
8430
|
+
color: var(--text-muted);
|
|
8410
8431
|
border: 1px solid var(--border-subtle);
|
|
8411
8432
|
font-size: 11px;
|
|
8412
8433
|
padding: 0 12px;
|
|
@@ -8422,8 +8443,8 @@ var _tmpl$$2 = /* @__PURE__ */ template(`<div class=welcome-banner-actions><butt
|
|
|
8422
8443
|
margin-bottom: 20px;
|
|
8423
8444
|
padding: 16px;
|
|
8424
8445
|
border-radius: var(--radius-md);
|
|
8425
|
-
border: 1px solid
|
|
8426
|
-
background:
|
|
8446
|
+
border: 1px solid color-mix(in srgb, var(--accent-primary) 25%, transparent);
|
|
8447
|
+
background: color-mix(in srgb, var(--accent-primary) 8%, transparent);
|
|
8427
8448
|
}
|
|
8428
8449
|
.welcome-banner-header {
|
|
8429
8450
|
display: flex;
|
|
@@ -8450,7 +8471,7 @@ var _tmpl$$2 = /* @__PURE__ */ template(`<div class=welcome-banner-actions><butt
|
|
|
8450
8471
|
justify-content: center;
|
|
8451
8472
|
}
|
|
8452
8473
|
.welcome-banner-dismiss:hover {
|
|
8453
|
-
background:
|
|
8474
|
+
background: var(--surface-hover);
|
|
8454
8475
|
color: var(--text-primary);
|
|
8455
8476
|
}
|
|
8456
8477
|
.welcome-banner-text {
|
|
@@ -8478,8 +8499,8 @@ var _tmpl$$2 = /* @__PURE__ */ template(`<div class=welcome-banner-actions><butt
|
|
|
8478
8499
|
padding: 0 5px;
|
|
8479
8500
|
font-size: 11px;
|
|
8480
8501
|
font-family: var(--font-mono);
|
|
8481
|
-
background:
|
|
8482
|
-
border: 1px solid
|
|
8502
|
+
background: var(--kbd-bg);
|
|
8503
|
+
border: 1px solid var(--kbd-border);
|
|
8483
8504
|
border-radius: 3px;
|
|
8484
8505
|
color: var(--text-primary);
|
|
8485
8506
|
}
|
|
@@ -8502,8 +8523,8 @@ var _tmpl$$2 = /* @__PURE__ */ template(`<div class=welcome-banner-actions><butt
|
|
|
8502
8523
|
display: inline-block;
|
|
8503
8524
|
font-size: 10px;
|
|
8504
8525
|
font-weight: 600;
|
|
8505
|
-
color:
|
|
8506
|
-
background:
|
|
8526
|
+
color: var(--accent-primary);
|
|
8527
|
+
background: color-mix(in srgb, var(--accent-primary) 15%, transparent);
|
|
8507
8528
|
padding: 1px 6px;
|
|
8508
8529
|
border-radius: 4px;
|
|
8509
8530
|
margin-left: 8px;
|
|
@@ -8552,7 +8573,7 @@ var _tmpl$$2 = /* @__PURE__ */ template(`<div class=welcome-banner-actions><butt
|
|
|
8552
8573
|
border-radius: 4px;
|
|
8553
8574
|
background: transparent;
|
|
8554
8575
|
border: none;
|
|
8555
|
-
color: var(--text-
|
|
8576
|
+
color: var(--text-muted);
|
|
8556
8577
|
font-size: 16px;
|
|
8557
8578
|
cursor: pointer;
|
|
8558
8579
|
display: flex;
|
|
@@ -8561,8 +8582,8 @@ var _tmpl$$2 = /* @__PURE__ */ template(`<div class=welcome-banner-actions><butt
|
|
|
8561
8582
|
transition: background var(--duration-fast), color var(--duration-fast);
|
|
8562
8583
|
}
|
|
8563
8584
|
.vault-entry-remove:hover {
|
|
8564
|
-
background:
|
|
8565
|
-
color:
|
|
8585
|
+
background: color-mix(in srgb, var(--status-error) 12%, transparent);
|
|
8586
|
+
color: var(--status-error);
|
|
8566
8587
|
}
|
|
8567
8588
|
.vault-add-btn {
|
|
8568
8589
|
height: 32px;
|
|
@@ -8586,7 +8607,7 @@ var _tmpl$$2 = /* @__PURE__ */ template(`<div class=welcome-banner-actions><butt
|
|
|
8586
8607
|
flex-direction: column;
|
|
8587
8608
|
gap: 8px;
|
|
8588
8609
|
padding: 12px;
|
|
8589
|
-
background:
|
|
8610
|
+
background: var(--surface-glass);
|
|
8590
8611
|
border: 1px solid var(--border-subtle);
|
|
8591
8612
|
border-radius: var(--radius-md);
|
|
8592
8613
|
}
|
|
@@ -9922,9 +9943,9 @@ var _tmpl$$1 = /* @__PURE__ */ template(`<div class=command-bar-overlay><div cla
|
|
|
9922
9943
|
border-radius: 14px;
|
|
9923
9944
|
padding: 24px;
|
|
9924
9945
|
box-shadow:
|
|
9925
|
-
0 4px 24px
|
|
9926
|
-
0 24px 64px
|
|
9927
|
-
inset 0 1px 0
|
|
9946
|
+
0 4px 24px var(--shadow-color),
|
|
9947
|
+
0 24px 64px var(--shadow-color-strong),
|
|
9948
|
+
inset 0 1px 0 var(--inset-highlight);
|
|
9928
9949
|
animation: command-bar-enter 350ms var(--ease-out-expo) both;
|
|
9929
9950
|
}
|
|
9930
9951
|
.command-bar-overlay.closing .keyboard-help {
|
|
@@ -9949,8 +9970,8 @@ var _tmpl$$1 = /* @__PURE__ */ template(`<div class=command-bar-overlay><div cla
|
|
|
9949
9970
|
padding: 0;
|
|
9950
9971
|
}
|
|
9951
9972
|
.keyboard-help-close kbd {
|
|
9952
|
-
background:
|
|
9953
|
-
border: 1px solid
|
|
9973
|
+
background: var(--kbd-bg);
|
|
9974
|
+
border: 1px solid var(--kbd-border);
|
|
9954
9975
|
padding: 2px 8px;
|
|
9955
9976
|
border-radius: 4px;
|
|
9956
9977
|
font-size: 11px;
|
|
@@ -9958,7 +9979,7 @@ var _tmpl$$1 = /* @__PURE__ */ template(`<div class=command-bar-overlay><div cla
|
|
|
9958
9979
|
font-family: var(--font-ui);
|
|
9959
9980
|
}
|
|
9960
9981
|
.keyboard-help-close:hover kbd {
|
|
9961
|
-
background:
|
|
9982
|
+
background: var(--surface-hover);
|
|
9962
9983
|
color: var(--text-secondary);
|
|
9963
9984
|
}
|
|
9964
9985
|
.keyboard-help-grid {
|
|
@@ -9981,11 +10002,11 @@ var _tmpl$$1 = /* @__PURE__ */ template(`<div class=command-bar-overlay><div cla
|
|
|
9981
10002
|
font-size: 11px;
|
|
9982
10003
|
font-family: var(--font-mono);
|
|
9983
10004
|
font-weight: 500;
|
|
9984
|
-
background:
|
|
9985
|
-
border: 1px solid
|
|
10005
|
+
background: var(--kbd-bg);
|
|
10006
|
+
border: 1px solid var(--kbd-border);
|
|
9986
10007
|
border-radius: 4px;
|
|
9987
10008
|
color: var(--text-primary);
|
|
9988
|
-
box-shadow: 0 1px 2px
|
|
10009
|
+
box-shadow: 0 1px 2px var(--shadow-color);
|
|
9989
10010
|
}
|
|
9990
10011
|
.keyboard-help-plus {
|
|
9991
10012
|
font-size: 10px;
|
|
@@ -10166,18 +10187,26 @@ const App = () => {
|
|
|
10166
10187
|
});
|
|
10167
10188
|
}
|
|
10168
10189
|
};
|
|
10169
|
-
const applyTheme =
|
|
10170
|
-
const s = await window.vessel.settings.get();
|
|
10171
|
-
const theme = s.theme ?? "dark";
|
|
10190
|
+
const applyTheme = (theme) => {
|
|
10172
10191
|
document.documentElement.setAttribute("data-theme", theme);
|
|
10173
10192
|
try {
|
|
10174
10193
|
localStorage.setItem("vessel:theme", theme);
|
|
10175
10194
|
} catch {
|
|
10176
10195
|
}
|
|
10177
10196
|
};
|
|
10197
|
+
const loadAndApplyTheme = async () => {
|
|
10198
|
+
const s = await window.vessel.settings.get();
|
|
10199
|
+
applyTheme(s.theme ?? "dark");
|
|
10200
|
+
};
|
|
10178
10201
|
onMount(() => {
|
|
10179
|
-
void
|
|
10202
|
+
void loadAndApplyTheme();
|
|
10180
10203
|
window.vessel.ui.rendererReady(view);
|
|
10204
|
+
const cleanupSettings = window.vessel.settings.onUpdate((settings) => {
|
|
10205
|
+
applyTheme(settings.theme ?? "dark");
|
|
10206
|
+
});
|
|
10207
|
+
onCleanup(() => {
|
|
10208
|
+
cleanupSettings();
|
|
10209
|
+
});
|
|
10181
10210
|
if (view !== "chrome") return;
|
|
10182
10211
|
const cleanupKeys = setupKeybindings({
|
|
10183
10212
|
openCommandBar,
|
|
@@ -10196,13 +10225,9 @@ const App = () => {
|
|
|
10196
10225
|
toggleKeyboardHelp: () => setKeyboardHelpOpen((v) => !v)
|
|
10197
10226
|
});
|
|
10198
10227
|
const cleanupCapture = window.vessel.highlights.onCaptureResult(showHighlightResult);
|
|
10199
|
-
const cleanupSettings = window.vessel.settings.onUpdate(() => {
|
|
10200
|
-
void applyTheme();
|
|
10201
|
-
});
|
|
10202
10228
|
onCleanup(() => {
|
|
10203
10229
|
cleanupKeys();
|
|
10204
10230
|
cleanupCapture();
|
|
10205
|
-
cleanupSettings();
|
|
10206
10231
|
});
|
|
10207
10232
|
});
|
|
10208
10233
|
if (view === "sidebar") {
|
package/out/renderer/index.html
CHANGED
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; connect-src 'self'; font-src 'self' data:;" />
|
|
7
7
|
<title>Vessel</title>
|
|
8
|
-
<script type="module" crossorigin src="./assets/index-
|
|
9
|
-
<link rel="stylesheet" crossorigin href="./assets/index-
|
|
8
|
+
<script type="module" crossorigin src="./assets/index-B2vPgkX2.js"></script>
|
|
9
|
+
<link rel="stylesheet" crossorigin href="./assets/index-4OgPv5GF.css">
|
|
10
10
|
</head>
|
|
11
11
|
<body>
|
|
12
12
|
<div id="root"></div>
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quanta-intellect/vessel-browser",
|
|
3
3
|
"mcpName": "io.github.unmodeled-tyler/vessel-browser",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.63",
|
|
5
5
|
"description": "AI-native web browser runtime for autonomous agents with human supervision",
|
|
6
6
|
"main": "./out/main/index.js",
|
|
7
7
|
"bin": {
|