litura-app 0.3.0 → 0.3.1

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 CHANGED
@@ -5,6 +5,10 @@ number carries breaking changes.
5
5
 
6
6
  ## Unreleased
7
7
 
8
+ ## 0.3.1 — 2026-09-07
9
+
10
+ - The update badge now copies `npx litura-app` instead of opening a changelog, so the next update command is ready to paste.
11
+
8
12
  ## 0.3.0 — 2026-09-07
9
13
 
10
14
  - Review remarks stay beside the passage they describe without shifting the draft when opened or clicked.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "litura-app",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "A local AI-assisted editor for sharper, more human writing",
5
5
  "keywords": [
6
6
  "writing",
package/public/app.js CHANGED
@@ -18566,10 +18566,21 @@
18566
18566
  updateBadge.hidden = !stale;
18567
18567
  if (stale) {
18568
18568
  updateBadge.textContent = `${latest} available`;
18569
- updateBadge.title = `Running ${current}. Restart with npx to pick it up; a global install needs npm i -g.`;
18569
+ updateBadge.title = "Copy npx litura-app to update";
18570
18570
  }
18571
18571
  updateStatus.textContent = error ? `Running ${current} \u2014 npm could not be reached.` : stale ? `Running ${current}; npm publishes ${latest}.` : latest ? `Running ${current} \u2014 the published version.` : `Running ${current}.`;
18572
18572
  }
18573
+ updateBadge.addEventListener("click", async () => {
18574
+ if (updateBadge.hidden) return;
18575
+ const command2 = "npx litura-app";
18576
+ try {
18577
+ await navigator.clipboard.writeText(command2);
18578
+ updateBadge.textContent = `Copied: ${command2}`;
18579
+ } catch {
18580
+ updateBadge.textContent = `Run: ${command2}`;
18581
+ }
18582
+ updateBadge.title = command2;
18583
+ });
18573
18584
  async function refreshUpdate({ force = false } = {}) {
18574
18585
  let cached = null;
18575
18586
  try {
package/public/index.html CHANGED
@@ -37,12 +37,9 @@
37
37
  <span class="style-score-label">Slop Score</span>
38
38
  <span id="style-score-value"></span>
39
39
  </button>
40
- <!-- Only ever shown when the writer opted into the check and a newer
41
- version exists. It links to the changelog, not to an installer:
42
- updating is a command the writer runs. -->
43
- <a class="update-badge" id="update-badge" hidden
44
- href="https://github.com/vadimchirkov/litura/blob/main/CHANGELOG.md"
45
- target="_blank" rel="noreferrer"></a>
40
+ <!-- Only shown when a newer version exists. Clicking it copies the
41
+ update command; the running process is never replaced in place. -->
42
+ <button type="button" class="update-badge" id="update-badge" hidden></button>
46
43
  <button class="settings-open" id="settings-open" title="Model and access" aria-label="Model and access">
47
44
  <svg viewBox="0 0 20 20" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round">
48
45
  <path d="M3 5h14M3 10h14M3 15h14"/>
package/public/style.css CHANGED
@@ -517,12 +517,15 @@ html, body {
517
517
  mid-sentence; this must not compete with the draft. */
518
518
  .update-badge {
519
519
  padding: 2px 8px;
520
+ border: 0;
520
521
  border-radius: var(--r-pill);
521
522
  background: var(--fill);
522
523
  color: var(--text-2);
524
+ font: inherit;
523
525
  font-size: 12px;
524
526
  text-decoration: none;
525
527
  white-space: nowrap;
528
+ cursor: pointer;
526
529
  }
527
530
 
528
531
  .update-badge:hover { background: var(--fill-hover); color: var(--text); }