openvibers/openvibe.shared Commits
Tool terms spaced, not dotted; kit.seg wraps on narrow screens (4.57.1) (#206)
Changes
@@@ -6,6 +6,13 @@ A release is the git tag `vX.Y.Z`; consumers pin the tag's tarball (see README).## Unreleased++## 4.57.1 — 2026-10-31++++- **A tool's terms line wraps cleanly.** The facts in `kit.toolHead({ facts })` are spaced apart, not joined by dots,++ so a wrapped line no longer starts with a dot that reads like a list bullet.++- **`kit.seg` wraps on a narrow screen.** A segmented control with four to six options (Tools' formatters) stays++ inside a 320 px screen instead of running off it. Tools had a page-scoped rule for this; the kit does it now.++## 4.57.0 — 2026-10-30- **The Dock can use a refreshing token and a read-only scope set** (the browser extension's one-click@@@ -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.57.0 (every release is a tag; see [CHANGELOG.md](CHANGELOG.md)). Every deployed++**Status:** alpha, v4.57.1 (every release is a tag; see [CHANGELOG.md](CHANGELOG.md)). Every deployedconsumer 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` namesthe tag it pins.@@@ -4,7 +4,7 @@"code": true,"wave": "W2","package": "openvibe-shared",-- "version": "4.57.0",++ "version": "4.57.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)",@@@ -189,9 +189,9 @@a.ovk-tool-crumb:hover { color: var(--ovk-text); }.ovk-tool-head .ovk-tool-title.ovk-tool-title { margin: 0; font-family: inherit; font-size: 1.5rem; line-height: 1.15; font-weight: 800; letter-spacing: -.02em; color: var(--ovk-text); text-wrap: balance; }.ovk-tool-head .ovk-tool-task.ovk-tool-task { grid-column: 1 / -1; margin: 8px 0 0; color: var(--text-secondary, var(--ovk-muted)); font-size: .95rem; line-height: 1.45; text-wrap: pretty; }--.ovk-tool-facts { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 4px 0; margin: 8px 0 0; padding: 0; list-style: none; color: var(--ovk-muted); font-size: .8rem; line-height: 1.4; }++/* Spaced, not dotted: a separator at the start of a wrapped line read as a list bullet (Tools, 2026-10-31). */++.ovk-tool-facts { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 4px 14px; margin: 8px 0 0; padding: 0; list-style: none; color: var(--ovk-muted); font-size: .8rem; line-height: 1.4; }.ovk-tool-facts > li { display: inline-flex; align-items: center; gap: 5px; }--.ovk-tool-facts > li + li::before { content: '·'; margin: 0 8px; opacity: .7; }.ovk-tool-facts > li > .ovk-i { width: 1em; height: 1em; }.ovk-tool-card { display: grid; gap: 12px; padding: 14px; border: 1px solid var(--ovk-line); border-radius: 16px; background: var(--ovk-panel); }@@@ -160,7 +160,7 @@ div.ovk-set-row { cursor: default; }.ovk-switch:checked { background: var(--ovk-fill); }.ovk-switch:checked::after { transform: translateX(18px); }.ovk-switch:focus-visible { outline: 2px solid var(--ovk-accent); outline-offset: 2px; }--.ovk-seg { display: inline-flex; flex: none; gap: 2px; padding: 3px; border-radius: 10px; background: var(--ovk-panel-2); }++.ovk-seg { display: inline-flex; flex: none; flex-wrap: wrap; max-width: 100%; gap: 2px; padding: 3px; border-radius: 10px; background: var(--ovk-panel-2); }.ovk-seg input, .ovk-chip input { position: absolute; opacity: 0; pointer-events: none; }.ovk-seg span { display: block; padding: 6px 12px; border-radius: 8px; color: var(--ovk-muted); font-size: .86rem; font-weight: 650; cursor: pointer; }.ovk-seg input:checked + span { background: var(--ovk-fill); color: var(--ovk-on-fill); }@@@ -1,6 +1,6 @@{"name": "openvibe-shared",-- "version": "4.57.0",++ "version": "4.57.1","description": "Shared navbar, footer, themes, icons, legal pages, SEO, auth and analytics for every OpenVibe site","main": "index.js","bin": {
@@ -6,6 +6,13 @@ A release is the git tag `vX.Y.Z`; consumers pin the tag's tarball (see README).
@@ -6,6 +6,13 @@ A release is the git tag `vX.Y.Z`; consumers pin the tag's tarball (see README).
## Unreleased
## Unreleased
+## 4.57.1 — 2026-10-31
+
+- **A tool's terms line wraps cleanly.** The facts in `kit.toolHead({ facts })` are spaced apart, not joined by dots,
+ so a wrapped line no longer starts with a dot that reads like a list bullet.
+- **`kit.seg` wraps on a narrow screen.** A segmented control with four to six options (Tools' formatters) stays
+ inside a 320 px screen instead of running off it. Tools had a page-scoped rule for this; the kit does it now.
+
## 4.57.0 — 2026-10-30
## 4.57.0 — 2026-10-30
- **The Dock can use a refreshing token and a read-only scope set** (the browser extension's one-click
- **The Dock can use a refreshing token and a read-only scope set** (the browser extension's one-click
@@ -2,7 +2,7 @@
@@ -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.
> 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.57.0 (every release is a tag; see [CHANGELOG.md](CHANGELOG.md)). Every deployed
+**Status:** alpha, v4.57.1 (every release is a tag; see [CHANGELOG.md](CHANGELOG.md)). Every deployed
consumer installs a tagged release and none keeps a vendored copy
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
([docs/migration-plan.md](docs/migration-plan.md) is done); each repository's `package.json` names
the tag it pins.
the tag it pins.
@@ -4,7 +4,7 @@
@@ -4,7 +4,7 @@
"code": true,
"code": true,
"wave": "W2",
"wave": "W2",
"package": "openvibe-shared",
"package": "openvibe-shared",
- "version": "4.57.0",
+ "version": "4.57.1",
"plan": "OpenVibe End-to-End Realignment & Implementation Plan, revision 3 (20 Sep 2026)",
"plan": "OpenVibe End-to-End Realignment & Implementation Plan, revision 3 (20 Sep 2026)",
"deployed": false,
"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)",
"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)",
@@ -189,9 +189,9 @@
@@ -189,9 +189,9 @@
a.ovk-tool-crumb:hover { color: var(--ovk-text); }
a.ovk-tool-crumb:hover { color: var(--ovk-text); }
.ovk-tool-head .ovk-tool-title.ovk-tool-title { margin: 0; font-family: inherit; font-size: 1.5rem; line-height: 1.15; font-weight: 800; letter-spacing: -.02em; color: var(--ovk-text); text-wrap: balance; }
.ovk-tool-head .ovk-tool-title.ovk-tool-title { margin: 0; font-family: inherit; font-size: 1.5rem; line-height: 1.15; font-weight: 800; letter-spacing: -.02em; color: var(--ovk-text); text-wrap: balance; }
.ovk-tool-head .ovk-tool-task.ovk-tool-task { grid-column: 1 / -1; margin: 8px 0 0; color: var(--text-secondary, var(--ovk-muted)); font-size: .95rem; line-height: 1.45; text-wrap: pretty; }
.ovk-tool-head .ovk-tool-task.ovk-tool-task { grid-column: 1 / -1; margin: 8px 0 0; color: var(--text-secondary, var(--ovk-muted)); font-size: .95rem; line-height: 1.45; text-wrap: pretty; }
-.ovk-tool-facts { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 4px 0; margin: 8px 0 0; padding: 0; list-style: none; color: var(--ovk-muted); font-size: .8rem; line-height: 1.4; }
+/* Spaced, not dotted: a separator at the start of a wrapped line read as a list bullet (Tools, 2026-10-31). */
+.ovk-tool-facts { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 4px 14px; margin: 8px 0 0; padding: 0; list-style: none; color: var(--ovk-muted); font-size: .8rem; line-height: 1.4; }
.ovk-tool-facts > li { display: inline-flex; align-items: center; gap: 5px; }
.ovk-tool-facts > li { display: inline-flex; align-items: center; gap: 5px; }
-.ovk-tool-facts > li + li::before { content: '·'; margin: 0 8px; opacity: .7; }
.ovk-tool-facts > li > .ovk-i { width: 1em; height: 1em; }
.ovk-tool-facts > li > .ovk-i { width: 1em; height: 1em; }
.ovk-tool-card { display: grid; gap: 12px; padding: 14px; border: 1px solid var(--ovk-line); border-radius: 16px; background: var(--ovk-panel); }
.ovk-tool-card { display: grid; gap: 12px; padding: 14px; border: 1px solid var(--ovk-line); border-radius: 16px; background: var(--ovk-panel); }
@@ -160,7 +160,7 @@ div.ovk-set-row { cursor: default; }
@@ -160,7 +160,7 @@ div.ovk-set-row { cursor: default; }
.ovk-switch:checked { background: var(--ovk-fill); }
.ovk-switch:checked { background: var(--ovk-fill); }
.ovk-switch:checked::after { transform: translateX(18px); }
.ovk-switch:checked::after { transform: translateX(18px); }
.ovk-switch:focus-visible { outline: 2px solid var(--ovk-accent); outline-offset: 2px; }
.ovk-switch:focus-visible { outline: 2px solid var(--ovk-accent); outline-offset: 2px; }
-.ovk-seg { display: inline-flex; flex: none; gap: 2px; padding: 3px; border-radius: 10px; background: var(--ovk-panel-2); }
+.ovk-seg { display: inline-flex; flex: none; flex-wrap: wrap; max-width: 100%; gap: 2px; padding: 3px; border-radius: 10px; background: var(--ovk-panel-2); }
.ovk-seg input, .ovk-chip input { position: absolute; opacity: 0; pointer-events: none; }
.ovk-seg input, .ovk-chip input { position: absolute; opacity: 0; pointer-events: none; }
.ovk-seg span { display: block; padding: 6px 12px; border-radius: 8px; color: var(--ovk-muted); font-size: .86rem; font-weight: 650; cursor: pointer; }
.ovk-seg span { display: block; padding: 6px 12px; border-radius: 8px; color: var(--ovk-muted); font-size: .86rem; font-weight: 650; cursor: pointer; }
.ovk-seg input:checked + span { background: var(--ovk-fill); color: var(--ovk-on-fill); }
.ovk-seg input:checked + span { background: var(--ovk-fill); color: var(--ovk-on-fill); }
@@ -1,6 +1,6 @@
@@ -1,6 +1,6 @@
{
{
"name": "openvibe-shared",
"name": "openvibe-shared",
- "version": "4.57.0",
+ "version": "4.57.1",
"description": "Shared navbar, footer, themes, icons, legal pages, SEO, auth and analytics for every OpenVibe site",
"description": "Shared navbar, footer, themes, icons, legal pages, SEO, auth and analytics for every OpenVibe site",
"main": "index.js",
"main": "index.js",
"bin": {
"bin": {