overplay 4.1.0 → 4.2.0
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/CHANGELOG.md +8 -0
- package/dist/overplay.esm.js +28 -10
- package/dist/overplay.esm.js.map +1 -1
- package/dist/overplay.iife.js +1 -1
- package/dist/overplay.iife.js.map +1 -1
- package/dist/overplay.umd.js +1 -1
- package/dist/overplay.umd.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 4.2.0 — 2026-10-17
|
|
4
|
+
|
|
5
|
+
- Widget Settings has two tabs: **General** (panel, notifications and the shortcut) and **Appearance** (theme, pins and the comments button).
|
|
6
|
+
- Opening the sidebar with the shortcut no longer shows a focus ring on the Settings button. Focus moves to the panel; Tab still reaches every button.
|
|
7
|
+
- Website: new pages **How It Works** and **MCP Server** in the header. The MCP Server page lists all 20 MCP tools by permission. The New pill on the landing page opens it.
|
|
8
|
+
- Website: Pricing, Docs, How It Works and MCP Server share one page header (label, title, text, buttons).
|
|
9
|
+
- Dashboard: the usage bars on Plan & Billing use the full width. Team rows no longer push the arrow out of the card on hover, and Teams in the sidebar has a two-people icon.
|
|
10
|
+
|
|
3
11
|
## 4.1.0 — 2026-10-17
|
|
4
12
|
|
|
5
13
|
- New default shortcut to open and close comments: **Alt+C** (**Option+C** on Mac). It works on any keyboard layout. Alt+Shift+C still works, but on Windows Alt+Shift can switch the keyboard language. Settings shows Option on Mac. Set `keyboardShortcut` to keep another key.
|
package/dist/overplay.esm.js
CHANGED
|
@@ -474,7 +474,7 @@ function newActivity(comments, seen, selfId) {
|
|
|
474
474
|
function sameComments(a, b) {
|
|
475
475
|
return a.length === b.length && JSON.stringify(a) === JSON.stringify(b);
|
|
476
476
|
}
|
|
477
|
-
const version = "4.
|
|
477
|
+
const version = "4.2.0";
|
|
478
478
|
const VERSION = version;
|
|
479
479
|
const PACKAGE = "overplay";
|
|
480
480
|
function updatePrompt(current, latest) {
|
|
@@ -781,7 +781,7 @@ const styles = `
|
|
|
781
781
|
.menu-note{display:flex;align-items:center;gap:2px;margin:4px 0 0;padding:8px 10px 4px;border-top:1px solid var(--cw-line);font-size:12px;color:var(--cw-muted)}
|
|
782
782
|
.footer{justify-content:space-between}
|
|
783
783
|
.footer-note{font-size:13px;color:var(--cw-muted)}
|
|
784
|
-
.settings-body{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:4px 20px 12px}
|
|
784
|
+
.panel:focus{outline:0}.settings-tabs{grid-template-columns:1fr 1fr;margin:0 0 12px}.settings-body{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:4px 20px 12px}
|
|
785
785
|
.setting-group{padding:14px 0 6px}
|
|
786
786
|
.setting-group+.setting-group{border-top:1px solid var(--cw-line)}
|
|
787
787
|
.setting-group h3{margin:0 0 6px;font-size:12px;font-weight:650;letter-spacing:1.1px;text-transform:uppercase;color:var(--cw-muted)}
|
|
@@ -1697,6 +1697,7 @@ class Overlay {
|
|
|
1697
1697
|
/** A newer npm version, found when the sidebar first opens. See checkForUpdate(). */
|
|
1698
1698
|
__publicField(this, "update", null);
|
|
1699
1699
|
__publicField(this, "updatePromptOpen", false);
|
|
1700
|
+
__publicField(this, "settingsTab", "general");
|
|
1700
1701
|
__publicField(this, "updateChecked", false);
|
|
1701
1702
|
/** The page margin we replaced to make room for the sidebar, restored when it closes. */
|
|
1702
1703
|
__publicField(this, "pushed", null);
|
|
@@ -2259,7 +2260,11 @@ ${this.currentPage()}`;
|
|
|
2259
2260
|
this.visible = true;
|
|
2260
2261
|
this.render();
|
|
2261
2262
|
this.trackLayoutMotion();
|
|
2262
|
-
|
|
2263
|
+
const panel = this.shadow.querySelector(".panel");
|
|
2264
|
+
if (panel) {
|
|
2265
|
+
panel.tabIndex = -1;
|
|
2266
|
+
panel.focus({ preventScroll: true });
|
|
2267
|
+
} else (_a = this.shadow.querySelector(".launcher")) == null ? void 0 : _a.focus();
|
|
2263
2268
|
this.checkForUpdate();
|
|
2264
2269
|
}
|
|
2265
2270
|
hide() {
|
|
@@ -3689,10 +3694,23 @@ ${this.currentPage()}`;
|
|
|
3689
3694
|
const view = this.view("Settings", "settings");
|
|
3690
3695
|
view.append(this.detailHeading("Settings", "Your choices for this project. Other people keep their own."));
|
|
3691
3696
|
const current = this.settings, body = element("div", "settings-body");
|
|
3692
|
-
const
|
|
3697
|
+
const tabs = element("div", "tabs settings-tabs");
|
|
3698
|
+
tabs.setAttribute("role", "group");
|
|
3699
|
+
tabs.setAttribute("aria-label", "Settings section");
|
|
3700
|
+
for (const [id, label2] of [["general", "General"], ["appearance", "Appearance"]]) {
|
|
3701
|
+
const tab = button(label2, "tab", () => {
|
|
3702
|
+
this.settingsTab = id;
|
|
3703
|
+
this.render();
|
|
3704
|
+
});
|
|
3705
|
+
tab.setAttribute("aria-pressed", String(this.settingsTab === id));
|
|
3706
|
+
tab.dataset.focus = `settings-tab-${id}`;
|
|
3707
|
+
tabs.append(tab);
|
|
3708
|
+
}
|
|
3709
|
+
body.append(tabs);
|
|
3710
|
+
const section = (title, tab) => {
|
|
3693
3711
|
const group = element("section", "setting-group");
|
|
3694
3712
|
group.append(element("h3", "", title));
|
|
3695
|
-
body.append(group);
|
|
3713
|
+
if (tab === this.settingsTab) body.append(group);
|
|
3696
3714
|
return group;
|
|
3697
3715
|
};
|
|
3698
3716
|
const row = (group, label2, hint, control) => {
|
|
@@ -3728,9 +3746,9 @@ ${this.currentPage()}`;
|
|
|
3728
3746
|
control.addEventListener("click", () => this.setSetting(name, !on));
|
|
3729
3747
|
return control;
|
|
3730
3748
|
};
|
|
3731
|
-
const look = section("
|
|
3749
|
+
const look = section("Theme", "appearance");
|
|
3732
3750
|
row(look, "Theme", current.theme === "system" ? "Follows your device" : "", choice("theme", "Theme", [["light", "Light"], ["dark", "Dark"], ["system", "System"]]));
|
|
3733
|
-
const pins = section("Pins");
|
|
3751
|
+
const pins = section("Pins", "appearance");
|
|
3734
3752
|
const sample = element("div", `pin-sample${current.pinSize === "small" ? " small" : ""}${current.resolvedPins === "gray" ? " resolved-gray" : ""}`);
|
|
3735
3753
|
sample.setAttribute("aria-hidden", "true");
|
|
3736
3754
|
sample.style.setProperty("--cw-accent", this.pinColor());
|
|
@@ -3754,7 +3772,7 @@ ${this.currentPage()}`;
|
|
|
3754
3772
|
row(pins, "Resolved pins", "", choice("resolvedPins", "Resolved pins", [["green", "Green"], ["gray", "Gray"]]));
|
|
3755
3773
|
row(pins, "Size", "", choice("pinSize", "Pin size", [["regular", "Regular"], ["small", "Small"]]));
|
|
3756
3774
|
row(pins, "Label", "", choice("pinLabel", "Pin label", [["number", "Number"], ["initials", "Initials"]]));
|
|
3757
|
-
const floating = section("Comments button");
|
|
3775
|
+
const floating = section("Comments button", "appearance");
|
|
3758
3776
|
const buttonSample = element("div", "launcher-sample");
|
|
3759
3777
|
buttonSample.setAttribute("aria-hidden", "true");
|
|
3760
3778
|
const mini = element("span", "launcher-mini");
|
|
@@ -3776,7 +3794,7 @@ ${this.currentPage()}`;
|
|
|
3776
3794
|
}
|
|
3777
3795
|
const buttonHint = current.buttonColor === "default" ? "Dark. Takes the site color while open." : current.buttonColor === "site" ? "The color of this site" : PIN_COLORS[current.buttonColor].label;
|
|
3778
3796
|
row(floating, "Color", buttonHint, buttonSwatches).classList.add("wide");
|
|
3779
|
-
const panel = section("Panel");
|
|
3797
|
+
const panel = section("Panel", "general");
|
|
3780
3798
|
const open = element("div", "segmented");
|
|
3781
3799
|
open.setAttribute("role", "group");
|
|
3782
3800
|
open.setAttribute("aria-label", "Open comments");
|
|
@@ -3790,7 +3808,7 @@ ${this.currentPage()}`;
|
|
|
3790
3808
|
}
|
|
3791
3809
|
row(panel, "Open comments", "", open);
|
|
3792
3810
|
row(panel, "Push the page aside", "The open panel does not cover the page.", toggle("pushContent", "Push the page aside"));
|
|
3793
|
-
const alerts = section("Notifications and keys");
|
|
3811
|
+
const alerts = section("Notifications and keys", "general");
|
|
3794
3812
|
row(alerts, "New activity", "Show a short notice when others comment or reply.", toggle("notifications", "Show new activity"));
|
|
3795
3813
|
const keys = shortcutLabel(this.config.keyboardShortcut ?? "", /Mac|iPhone|iPad/.test(navigator.platform || navigator.userAgent));
|
|
3796
3814
|
row(alerts, "Keyboard shortcut", this.shortcut ? `${keys} opens and closes comments.` : "This site has no shortcut.", toggle("shortcut", "Keyboard shortcut", !this.shortcut));
|