openvibers/openvibe.shared Commits

Shipped: the patch-notes link wraps on a narrow screen (4.53.1) (#200)

OP OpenVibers committed 14 days ago · f0c8616432 · 6 files, +14 −3

It carries a whole post title and was kept on one line, so it ran past a 320 px
screen. The short "What's in it" link in a grouped row stays whole.

Changes

ddiff --git a/CHANGELOG.md b/CHANGELOG.md
iindex c9b3b8a..2a89583 100644
---- a/CHANGELOG.md
++++ b/CHANGELOG.md
@@@ -6,6 +6,12 @@ A release is the git tag `vX.Y.Z`; consumers pin the tag's tarball (see README).
## Unreleased
++## 4.53.1 — 2026-10-30
++
++- **The patch-notes link under "Recently shipped" wraps on a narrow screen.** It carries a whole post title ("Patch
++ notes: 81 changes across 43 sites (Oct 30) →") and was kept on one line, so it ran past a 320 px screen (found on
++ openvibe.host, which had overridden it). The short "What's in it" link in a grouped row stays whole.
++
## 4.53.0 — 2026-10-30
- **The full footer folds on phones** (the short-pages rule: a phone page is one or two screens, and the footer alone
ddiff --git a/README.md b/README.md
iindex 195f8d0..d29373a 100644
---- a/README.md
++++ b/README.md
@@@ -2,7 +2,7 @@
> Versioned UI, the OpenVibe Frame (the navbar, footer and "shipped" views every site sits in), SEO, legal and release-client packages every OpenVibe site renders.
--**Status:** alpha, v4.53.0 (every release is a tag; see [CHANGELOG.md](CHANGELOG.md)). Every deployed
++**Status:** alpha, v4.53.1 (every release is a tag; see [CHANGELOG.md](CHANGELOG.md)). Every deployed
consumer installs a tagged release and none keeps a vendored copy
([docs/migration-plan.md](docs/migration-plan.md) is done); each repository's `package.json` names
the tag it pins.
ddiff --git a/STATUS.json b/STATUS.json
iindex 6bdbdae..f11611e 100644
---- a/STATUS.json
++++ b/STATUS.json
@@@ -4,7 +4,7 @@
"code": true,
"wave": "W2",
"package": "openvibe-shared",
-- "version": "4.53.0",
++ "version": "4.53.1",
"plan": "OpenVibe End-to-End Realignment & Implementation Plan, revision 3 (20 Sep 2026)",
"deployed": false,
"deployment": "none of its own: a package released as git tags; OpenVibe.Network serves /shared/* from its pinned tag, and a site can serve its own pinned copy (openvibe-shared/serve)",
ddiff --git a/package.json b/package.json
iindex a3ddf61..a24dbde 100644
---- a/package.json
++++ b/package.json
@@@ -1,6 +1,6 @@
{
"name": "openvibe-shared",
-- "version": "4.53.0",
++ "version": "4.53.1",
"description": "Shared navbar, footer, themes, icons, legal pages, SEO, auth and analytics for every OpenVibe site",
"main": "index.js",
"bin": {
ddiff --git a/shipped.js b/shipped.js
iindex cd67def..edd2ed5 100644
---- a/shipped.js
++++ b/shipped.js
@@@ -85,6 +85,9 @@
'.ov-shipped-group{flex-wrap:wrap}',
`.ov-shipped-count{flex:none;min-width:2em;text-align:center;font-size:.72rem;font-weight:800;padding:.12rem .45rem;border-radius:999px;background:color-mix(in srgb,var(--accent,#3b82f6) 22%,transparent);color:${TEXT}}`,
`.ov-shipped-notes{color:${ACCENT};font-size:.82rem;font-weight:600;text-decoration:none;white-space:nowrap}.ov-shipped-notes:hover{text-decoration:underline}`,
++ // 4.53.1: the patch-notes link under the list carries a whole post title ("Patch notes: 81 changes across 43 sites
++ // (Oct 30) →"); kept on one line it ran past a 320 px screen. It wraps there; the short "What's in it" stays whole.
++ '.ov-shipped-links .ov-shipped-notes{white-space:normal;min-width:0;overflow-wrap:anywhere}',
`.ov-shipped-fold{flex-basis:100%;min-width:0;font-size:.82rem;color:${MUTED}}.ov-shipped-fold summary{cursor:pointer;padding:3px 0;overflow-wrap:anywhere}`,
`.ov-shipped-fold .ov-shipped-entries{margin:4px 0 2px;padding-left:10px;border-left:2px solid ${BORDER}}.ov-shipped-fold .ov-shipped-entry{padding:5px 8px}`,
'@media (max-width:600px){.ov-shipped-entry{flex-wrap:wrap;gap:4px 8px}.ov-shipped-meta{width:100%}}',
ddiff --git a/test/shipped.test.js b/test/shipped.test.js
iindex 16f1c60..16ab39c 100644
---- a/test/shipped.test.js
++++ b/test/shipped.test.js
@@@ -33,6 +33,8 @@ const data = {
assert.strictEqual(items[1].querySelector('a'), null, 'a non-https link is not a link');
assert.ok(items[0].querySelector('time').textContent.endsWith('h ago'));
assert.strictEqual(node.querySelector('.ov-shipped-notes').getAttribute('href'), data.latest_post.url);
++ // 4.53.1: the patch-notes link under the list wraps on a narrow screen (a whole post title ran past 320 px).
++ assert.ok(require('fs').readFileSync(require.resolve('../shipped'), 'utf8').includes("'.ov-shipped-links .ov-shipped-notes{white-space:normal;min-width:0;overflow-wrap:anywhere}'"), 'the long notes link may wrap');
const one = document.getElementById('n');
shipped.render(one, data, { service: 'live', title: '' });