gabriel / musehub public
repo_tabs.html html
114 lines 7.7 KB
d4eb1c39 Theme overhaul: domains, new-repo, MCP docs, copy icons; legacy CSS rem… Gabriel Cardona <cgcardona@gmail.com> 3d ago
1 {#
2 Repo-level tab strip.
3
4 Required variables: base_url, current_page
5 Optional: repo_domain (dict with viewer_type key)
6 #}
7 <nav class="repo-tabs" id="repo-tabs" hx-boost="true" aria-label="Repository navigation">
8 <div class="repo-tabs-inner">
9 <a href="{{ base_url }}"
10 class="repo-tab{% if current_page == 'commits' %} active{% endif %}"
11 {% if current_page == 'commits' %}aria-current="page"{% endif %}>
12 <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="3"/><line x1="3" y1="12" x2="9" y2="12"/><line x1="15" y1="12" x2="21" y2="12"/></svg>
13 Commits
14 </a>
15
16 <a href="{{ base_url }}/graph"
17 class="repo-tab{% if current_page == 'graph' %} active{% endif %}"
18 {% if current_page == 'graph' %}aria-current="page"{% endif %}>
19 <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"/></svg>
20 Graph
21 </a>
22
23 <a href="{{ base_url }}/view/HEAD"
24 class="repo-tab{% if current_page in ('view', 'domain-view') %} active{% endif %}"
25 {% if current_page in ('view', 'domain-view') %}aria-current="page"{% endif %}>
26 <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"/><circle cx="12" cy="12" r="3"/></svg>
27 View
28 </a>
29
30 <a href="{{ base_url }}/insights/HEAD"
31 class="repo-tab{% if current_page in ('insights', 'analysis', 'divergence') %} active{% endif %}"
32 {% if current_page in ('insights', 'analysis', 'divergence') %}aria-current="page"{% endif %}>
33 <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><line x1="18" y1="20" x2="18" y2="10"/><line x1="12" y1="20" x2="12" y2="4"/><line x1="6" y1="20" x2="6" y2="14"/></svg>
34 Insights
35 </a>
36
37 <a href="{{ base_url }}/pulls"
38 class="repo-tab{% if current_page == 'pulls' %} active{% endif %}"
39 {% if current_page == 'pulls' %}aria-current="page"{% endif %}>
40 <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="18" cy="18" r="3"/><circle cx="6" cy="6" r="3"/><path d="M13 6h3a2 2 0 0 1 2 2v7"/><line x1="6" y1="9" x2="6" y2="21"/></svg>
41 Pull Requests
42 {%- if (nav_open_pr_count | default(0)) > 0 -%}
43 <span class="tab-count" id="nav-pr-count">{{ nav_open_pr_count }}</span>
44 {%- endif -%}
45 </a>
46
47 <a href="{{ base_url }}/issues"
48 class="repo-tab{% if current_page == 'issues' %} active{% endif %}"
49 {% if current_page == 'issues' %}aria-current="page"{% endif %}>
50 <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="10"/><line x1="12" y1="8" x2="12" y2="12"/><line x1="12" y1="16" x2="12.01" y2="16"/></svg>
51 Issues
52 {%- if (nav_open_issue_count | default(0)) > 0 -%}
53 <span class="tab-count" id="nav-issue-count">{{ nav_open_issue_count }}</span>
54 {%- endif -%}
55 </a>
56
57 <a href="{{ base_url }}/branches"
58 class="repo-tab{% if current_page == 'branches' %} active{% endif %}"
59 {% if current_page == 'branches' %}aria-current="page"{% endif %}>
60 <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><line x1="6" y1="3" x2="6" y2="15"/><circle cx="18" cy="6" r="3"/><circle cx="6" cy="18" r="3"/><path d="M18 9a9 9 0 0 1-9 9"/></svg>
61 Branches
62 </a>
63
64 <a href="{{ base_url }}/tags"
65 class="repo-tab{% if current_page == 'tags' %} active{% endif %}"
66 {% if current_page == 'tags' %}aria-current="page"{% endif %}>
67 <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 2H2v10l9.29 9.29c.94.94 2.48.94 3.42 0l6.58-6.58c.94-.94.94-2.48 0-3.42L12 2Z"/><path d="M7 7h.01"/></svg>
68 Tags
69 </a>
70
71 <a href="{{ base_url }}/releases"
72 class="repo-tab{% if current_page == 'releases' %} active{% endif %}"
73 {% if current_page == 'releases' %}aria-current="page"{% endif %}>
74 <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7 10 12 15 17 10"/><line x1="12" y1="15" x2="12" y2="3"/></svg>
75 Releases
76 </a>
77
78 <a href="{{ base_url }}/sessions"
79 class="repo-tab{% if current_page == 'sessions' %} active{% endif %}"
80 {% if current_page == 'sessions' %}aria-current="page"{% endif %}>
81 <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="10"/><polyline points="12 6 12 12 16 14"/></svg>
82 Sessions
83 </a>
84
85 <a href="{{ base_url }}/timeline"
86 class="repo-tab{% if current_page == 'timeline' %} active{% endif %}"
87 {% if current_page == 'timeline' %}aria-current="page"{% endif %}>
88 <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="3" y="4" width="18" height="18" rx="2" ry="2"/><line x1="16" y1="2" x2="16" y2="6"/><line x1="8" y1="2" x2="8" y2="6"/><line x1="3" y1="10" x2="21" y2="10"/></svg>
89 Timeline
90 </a>
91
92 <a href="{{ base_url }}/credits"
93 class="repo-tab{% if current_page == 'credits' %} active{% endif %}"
94 {% if current_page == 'credits' %}aria-current="page"{% endif %}>
95 <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M23 21v-2a4 4 0 0 0-3-3.87"/><path d="M16 3.13a4 4 0 0 1 0 7.75"/></svg>
96 Credits
97 </a>
98
99 <a href="{{ base_url }}/search"
100 class="repo-tab{% if current_page == 'search' %} active{% endif %}"
101 {% if current_page == 'search' %}aria-current="page"{% endif %}>
102 <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/></svg>
103 Search
104 </a>
105
106 <a href="{{ base_url }}/activity"
107 class="repo-tab{% if current_page == 'activity' %} active{% endif %}"
108 {% if current_page == 'activity' %}aria-current="page"{% endif %}>
109 <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"/></svg>
110 Activity
111 </a>
112
113 </div>
114 </nav>