openvibers/openvibe.sites Commits

openvibe-shared v2.20.3 (was v2.20.0) (#37)

OP OpenVibers committed 10 Oct 2026 · 5ede38055e · 9 files, +19 −17

* openvibe-shared v2.20.3 (was v2.20.0)

Opened by scripts/pin-bump.js in OpenVibers/OpenVibe.Shared after the v2.20.3 release.

* dist/_shared rebuilt from openvibe-shared v2.20.3 (node build.js)

Changes

ddiff --git a/README.md b/README.md
iindex 64a4c76..1f23ace 100644
---- a/README.md
++++ b/README.md
@@@ -72,7 +72,7 @@ The pinned `openvibe-contracts` release supplies the catalog `sites.json` mirror
## Depends on
- `openvibe-contracts` v0.126.0 — `scripts/sync-catalog.js` reads `openvibe-contracts/lib/products` (`catalog()`) to generate `sites.json`.
--- `openvibe-shared` v2.20.0 — `build.js` uses `legal` for the terms, privacy and dmca pages, `files` for the `BROWSER` list copied to `dist/_shared/`, and `app-icon` for the manifest and head tags; `test/run.js` uses `test-runner`.
++- `openvibe-shared` v2.20.3 — `build.js` uses `legal` for the terms, privacy and dmca pages, `files` for the `BROWSER` list copied to `dist/_shared/`, and `app-icon` for the manifest and head tags; `test/run.js` uses `test-runner`.
- OpenVibe.Host — the deploy wrapper probes and calls `ovhost` (the `capabilities` probe, `deploy`, `plan`, `announce`).
- OpenVibe.Network at `https://openvibe.network` — the frozen pages and shared browser files load its assets and API in the browser; `NET.networkUrl` in `build.js` is that base.
@@@ -108,5 +108,5 @@ Report security issues through [SECURITY.md](SECURITY.md).
<!-- versions:start -->
- openvibe-contracts: v0.126.0
--- openvibe-shared: v2.20.0
++- openvibe-shared: v2.20.3
<!-- versions:end -->
ddiff --git a/STATUS.json b/STATUS.json
iindex e03ccc4..c4cfb81 100644
---- a/STATUS.json
++++ b/STATUS.json
@@@ -23,7 +23,7 @@
"status.openvibe.network (status notice)"
],
"contracts": "openvibe-contracts v0.126.0: sites.json mirrors products.catalog() (scripts/sync-catalog.js)",
-- "shared": "openvibe-shared v2.20.0",
++ "shared": "openvibe-shared v2.20.3",
"deployed": true,
"deployment": "Deployed with `sudo ovhost deploy sites --restart` (OpenVibe.Host strategy static-build since the 2026-09-27 cutover): /opt/openvibe.sites, nginx serves dist/<domain>/ through deploy/nginx/<domain>.conf; no unit, no port, no env file",
"features": [
ddiff --git a/dist/_shared/account-switcher.js b/dist/_shared/account-switcher.js
iindex 6e6ec62..bba5e11 100644
---- a/dist/_shared/account-switcher.js
++++ b/dist/_shared/account-switcher.js
@@@ -411,9 +411,9 @@
transition: all .15s;
}
.openvibe-switcher-actions .btn-add {
-- background: var(--accent, #3b82f6); color: #fff;
++ background: var(--accent-strong, var(--accent, #3472d8)); color: var(--on-accent-strong, var(--on-accent, #fff));
}
-- .openvibe-switcher-actions .btn-add:hover { background: var(--accent-dark, #a07840); }
++ .openvibe-switcher-actions .btn-add:hover { background: var(--accent-dark, #1d4ed8); }
.openvibe-switcher-actions .btn-signout {
background: rgba(231,76,60,0.1); color: var(--live-red, #e74c3c);
}
ddiff --git a/dist/_shared/footer.js b/dist/_shared/footer.js
iindex 0f4114a..1a6ad6f 100644
---- a/dist/_shared/footer.js
++++ b/dist/_shared/footer.js
@@@ -344,7 +344,7 @@
.ovf-account-who{display:inline-flex;align-items:center;gap:8px;font-size:.84rem;color:var(--text-secondary,#b6bdd2)}
.ovf-account-who strong{color:var(--text-primary,#f1f4fb)}
.ovf-avatar{width:24px;height:24px;border-radius:50%;overflow:hidden;display:grid;place-items:center;
-- background:var(--accent,#60a5fa);color:#fff;font-size:.7rem;font-weight:800;flex:none}
++ background:var(--accent-strong,var(--accent,#3472d8));color:var(--on-accent-strong,var(--on-accent,#fff));font-size:.7rem;font-weight:800;flex:none}
.ovf-avatar img{width:100%;height:100%;object-fit:cover}
.ovf-account-links{display:flex;flex-wrap:wrap;gap:6px}
.ovf-account-links a{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;font-size:.78rem;font-weight:600;
ddiff --git a/dist/_shared/navbar.js b/dist/_shared/navbar.js
iindex 9af4953..573b240 100644
---- a/dist/_shared/navbar.js
++++ b/dist/_shared/navbar.js
@@@ -55,6 +55,8 @@
.openvibe-navbar .openvibe-navbar-brand.has-sub .name a.b-core, .openvibe-navbar .openvibe-navbar-brand.has-sub .name a.b-tld { color: var(--text-secondary, #a8b3c4); font-weight: 600; }
.openvibe-navbar .openvibe-navbar-brand .name a:hover { color: var(--accent-light, var(--accent, #60a5fa)); background: var(--accent-glow, rgba(59,130,246,.12)); }
.openvibe-navbar .openvibe-navbar-brand .b-dot { margin: 0; padding: 0; opacity: .5; }
++ .openvibe-navbar .openvibe-navbar-brand.joined .name a.b-core { padding-right: 0; }
++ .openvibe-navbar .openvibe-navbar-brand.joined .name a.b-tld { padding-left: 0; }
.openvibe-navbar .openvibe-navbar-brand a:focus-visible, .ovnav-launch:focus-visible { outline: 2px solid var(--accent, #3b82f6); outline-offset: 1px; }
.ovnav-launch { all: unset; box-sizing: border-box; cursor: pointer; color: var(--text-secondary, #a8b3c4); width: 32px; height: 32px; border-radius: 10px; display: inline-grid; place-items: center; flex: none; margin-right: 2px; border: 1px solid transparent; transition: background .15s, color .15s, border-color .15s; }
.ovnav-launch:hover, .ovnav-launch[aria-expanded="true"] { background: var(--accent-glow, rgba(59,130,246,.14)); color: var(--accent-light, var(--accent, #60a5fa)); border-color: color-mix(in srgb, var(--accent, #3b82f6) 35%, transparent); }
@@@ -120,7 +122,7 @@
.ovnav-launcher .ovl-dl { font-weight: 700; letter-spacing: .6px; text-transform: uppercase; font-size: 11px; margin-right: 2px; }
.ovnav-launcher .ovl-seg { display: inline-flex; border: 1px solid var(--border, rgba(255,255,255,.12)); border-radius: 9px; overflow: hidden; }
.ovnav-launcher .ovl-seg button { all: unset; cursor: pointer; padding: 5px 9px; font-size: 12px; font-weight: 650; color: var(--text-secondary, #a8b3c4); }
-- .ovnav-launcher .ovl-seg button[aria-pressed="true"] { background: var(--accent, #3b82f6); color: var(--on-accent, #fff); }
++ .ovnav-launcher .ovl-seg button[aria-pressed="true"] { background: var(--accent-strong, var(--accent, #3472d8)); color: var(--on-accent-strong, var(--on-accent, #fff)); }
.ovnav-launcher .ovl-seg button:focus-visible { outline: 2px solid var(--accent, #3b82f6); outline-offset: -2px; }
.ovnav-launcher .ovl-display a { margin-left: auto; color: var(--accent-light, var(--accent, #60a5fa)); font-weight: 600; }
.ovnav-launcher .ovl-addr a { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11.5px; }
@@@ -153,8 +155,8 @@
.openvibe-navbar[data-compact="auto"] .openvibe-navbar-brand.has-sub .b-dot { display: none; }
}
@media (max-width: 420px) {
-- .openvibe-navbar[data-compact="auto"] .openvibe-navbar-brand:not(.has-sub) .b-core,
-- .openvibe-navbar[data-compact="auto"] .openvibe-navbar-brand:not(.has-sub) .b-dot { display: none; }
++ .openvibe-navbar[data-compact="auto"] .openvibe-navbar-brand:not(.has-sub):not(.joined) .b-core,
++ .openvibe-navbar[data-compact="auto"] .openvibe-navbar-brand:not(.has-sub):not(.joined) .b-dot { display: none; }
.openvibe-navbar[data-compact="auto"] .openvibe-navbar-brand .b-tag { display: none; }
}
.openvibe-navbar-links a .icon { margin-right: 5px; opacity: .8; }
@@@ -522,7 +524,7 @@
const mark = brand.icon
? `<i class="fa-solid ${escapeAttr(brand.icon)}"></i>`
: `<span class="ov-mark" data-size="28" data-variant="${escapeAttr(brand.variant)}"></span>`;
-- return `<div class="openvibe-navbar-brand${brand.subText ? ' has-sub' : ''}">
++ return `<div class="openvibe-navbar-brand${brand.subText ? ' has-sub' : ''}${brand.joined ? ' joined' : ''}">
<a class="flame" href="${escapeAttr(brand.href)}" aria-label="${escapeAttr(brand.name)} home">${mark}</a>
<span class="name">${text}${brand.tag ? `<span class="b-tag">${escapeAttr(brand.tag)}</span>` : ''}</span>
</div>
ddiff --git a/dist/_shared/notification-ui.js b/dist/_shared/notification-ui.js
iindex 7741c33..a5305bc 100644
---- a/dist/_shared/notification-ui.js
++++ b/dist/_shared/notification-ui.js
@@@ -78,7 +78,7 @@
.openvibe-toast.priority-critical { border-left: 3px solid var(--live-red, #e74c3c); background: rgba(231,76,60,0.06); }
.openvibe-toast-actions { display: flex; gap: 6px; margin-top: 8px; }
.openvibe-toast-actions button { padding: 5px 12px; border-radius: 5px; border: 1px solid var(--border, #333340); background: var(--bg-hover, #2f2f3d); color: var(--text-primary, #e0e0e0); font-size: 11px; font-weight: 600; cursor: pointer; }
-- .openvibe-toast-actions button.primary { background: var(--accent, #3b82f6); color: #fff; border-color: var(--accent, #3b82f6); }
++ .openvibe-toast-actions button.primary { background: var(--accent-strong, var(--accent, #3472d8)); color: var(--on-accent-strong, var(--on-accent, #fff)); border-color: var(--accent-strong, var(--accent, #3472d8)); }
.openvibe-bell { position: relative; cursor: pointer; padding: 6px; display: inline-flex; align-items: center; justify-content: center; }
.openvibe-bell svg { width: 22px; height: 22px; fill: var(--text-secondary, #b0b0b8); transition: fill .2s; }
ddiff --git a/dist/_shared/ui.js b/dist/_shared/ui.js
iindex 343e687..ec9a5e8 100644
---- a/dist/_shared/ui.js
++++ b/dist/_shared/ui.js
@@@ -41,7 +41,7 @@
.ovui-btns{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}
.ovui-btn{appearance:none;border:1px solid var(--border,rgba(255,255,255,.14));background:transparent;color:inherit;font:600 14px/1 system-ui,sans-serif;padding:10px 16px;border-radius:10px;cursor:pointer}
.ovui-btn:hover{background:rgba(127,127,127,.12)}
--.ovui-btn.is-primary{background:var(--accent,#3b82f6);border-color:transparent;color:var(--on-accent,#fff)}
++.ovui-btn.is-primary{background:var(--accent-strong,var(--accent,#3472d8));border-color:transparent;color:var(--on-accent-strong,var(--on-accent,#fff))}
.ovui-btn.is-danger{background:var(--danger,#ef4444);border-color:transparent;color:#fff}
.ovui-btn:focus-visible,.ovui-x:focus-visible,.ovui-act:focus-visible{outline:2px solid var(--accent,#3b82f6);outline-offset:2px}
.ovui-notices{display:flex;flex-direction:column;gap:8px;max-width:1080px;margin:14px auto 0;padding:0 16px;box-sizing:border-box;width:100%}
ddiff --git a/package-lock.json b/package-lock.json
iindex f161f52..f847a5a 100644
---- a/package-lock.json
++++ b/package-lock.json
@@@ -7,7 +7,7 @@
"name": "openvibe-sites",
"dependencies": {
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.126.0",
-- "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v2.20.0"
++ "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v2.20.3"
},
"engines": {
"node": ">=20"
@@@ -197,9 +197,9 @@
}
},
"node_modules/openvibe-shared": {
-- "version": "2.20.0",
-- "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v2.20.0",
-- "integrity": "sha512-rE43C5ik80zixTb+cOGI8nNj2uoKGzIt4J25pPJ8CDFUAIqE5ZRYFfdXa9+dX2GlFQEjclruNbpAF+p8wli+Dw==",
++ "version": "2.20.3",
++ "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v2.20.3",
++ "integrity": "sha512-SXw6W4oHxbSHXG0+YFF4ATyz6xbNXD5gq/7GiS9fxE0zuYXCDri+dMpj+NTN8eytp57liBTAC4RMEluFsulbqw==",
"license": "MIT",
"dependencies": {
"jsonwebtoken": "^9.0.0"
ddiff --git a/package.json b/package.json
iindex ddc9883..5141ab1 100644
---- a/package.json
++++ b/package.json
@@@ -8,7 +8,7 @@
},
"dependencies": {
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.126.0",
-- "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v2.20.0"
++ "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v2.20.3"
},
"engines": {
"node": ">=20"