ework-web 0.10.33 → 0.10.34

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ework-web",
3
- "version": "0.10.33",
3
+ "version": "0.10.34",
4
4
  "type": "module",
5
5
  "description": "ework-web — standalone multi-project issue tracker. Local SQLite-backed, no external API dependency. Bun + TypeScript + SSR HTML.",
6
6
  "license": "MIT",
@@ -6,7 +6,7 @@ export const LIST_PAGE_SIZE = 50;
6
6
 
7
7
  function labelChip(label: LabelRow, owner: string, repo: string, state: string): string {
8
8
  const href = `/${encodeURIComponent(owner)}/${encodeURIComponent(repo)}/issues?state=${state}&label=${encodeURIComponent(label.name)}`;
9
- return `<a class="issue-label" href="${escapeAttr(href)}" style="--lc:${escapeAttr(label.color)}" title="${escapeAttr(label.description ?? "")}">${escapeHtml(label.name)}</a>`;
9
+ return `<span class="issue-label" data-href="${escapeAttr(href)}" style="--lc:${escapeAttr(label.color)}" title="${escapeAttr(label.description ?? "")}">${escapeHtml(label.name)}</span>`;
10
10
  }
11
11
 
12
12
  function issueRow(
@@ -79,7 +79,7 @@ export async function buildIssueList(
79
79
  .row-meta{color:var(--text-muted);font-size:12px;margin-top:.2rem}
80
80
  .empty{color:var(--text-muted);text-align:center;padding:2rem;font-size:13px}
81
81
  .row-labels{display:inline;margin-left:.3rem}
82
- .issue-label{display:inline;color:var(--text-muted);font-size:11px;text-decoration:none;margin-left:.35rem;white-space:nowrap}
82
+ .issue-label{display:inline;color:var(--text-muted);font-size:11px;text-decoration:none;margin-left:.35rem;white-space:nowrap;cursor:pointer}
83
83
  .issue-label::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--lc);margin-right:2px;vertical-align:middle}
84
84
  .issue-label:hover{color:var(--text);text-decoration:underline}
85
85
  .label-filter{font-size:13px;color:var(--text-muted);margin-bottom:.4rem}
@@ -107,6 +107,7 @@ ${tabNavHTML("issues")}
107
107
  </div>
108
108
  ${labelFilterHint}
109
109
  <div class="rows">${rows}</div>
110
+ <script>document.addEventListener("click",e=>{const t=e.target.closest(".issue-label");if(!t)return;e.preventDefault();e.stopPropagation();location.href=t.dataset.href})</script>
110
111
  </main>
111
112
  </body></html>`;
112
113
  }
@@ -6,7 +6,7 @@ export const FEED_PAGE_SIZE = 50;
6
6
 
7
7
  function labelChip(label: LabelRow, owner: string, repo: string, state: string): string {
8
8
  const href = `/${encodeURIComponent(owner)}/${encodeURIComponent(repo)}/issues?state=${state}&label=${encodeURIComponent(label.name)}`;
9
- return `<a class="issue-label" href="${escapeAttr(href)}" style="--lc:${escapeAttr(label.color)}" title="${escapeAttr(label.description ?? "")}">${escapeHtml(label.name)}</a>`;
9
+ return `<span class="issue-label" data-href="${escapeAttr(href)}" style="--lc:${escapeAttr(label.color)}" title="${escapeAttr(label.description ?? "")}">${escapeHtml(label.name)}</span>`;
10
10
  }
11
11
 
12
12
  function issueRow(it: IssueWithMeta, q: string, state: string, labels: LabelRow[]): string {
@@ -60,7 +60,7 @@ export async function buildIssuesFeed(
60
60
  .row-meta{color:var(--text-muted);font-size:12px;margin-top:.2rem}
61
61
  .empty{color:var(--text-muted);text-align:center;padding:2rem;font-size:13px}
62
62
  .row-labels{display:inline;margin-left:.3rem}
63
- .issue-label{display:inline;color:var(--text-muted);font-size:11px;text-decoration:none;margin-left:.35rem;white-space:nowrap}
63
+ .issue-label{display:inline;color:var(--text-muted);font-size:11px;text-decoration:none;margin-left:.35rem;white-space:nowrap;cursor:pointer}
64
64
  .issue-label::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--lc);margin-right:2px;vertical-align:middle}
65
65
  .issue-label:hover{color:var(--text);text-decoration:underline}
66
66
  .label-filter{font-size:13px;color:var(--text-muted);margin-bottom:.4rem}
@@ -81,6 +81,7 @@ ${tabNavHTML("issues")}
81
81
  </div>
82
82
  ${labelFilterHint}
83
83
  <div class="rows">${rows}</div>
84
+ <script>document.addEventListener("click",e=>{const t=e.target.closest(".issue-label");if(!t)return;e.preventDefault();e.stopPropagation();location.href=t.dataset.href})</script>
84
85
  </main>
85
86
  </body></html>`;
86
87
  }