Skip to content

Commit 0f6a2aa

Browse files
authored
Merge branch 'main' into main_10
2 parents 77fb368 + 20107a0 commit 0f6a2aa

7 files changed

Lines changed: 828 additions & 2282 deletions

File tree

.github/labeler.yml

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
type:feature:
2+
- changed-files:
3+
- any-glob-to-any-file:
4+
- 'src/components/**'
5+
- 'src/app/**'
6+
- 'src/lib/**'
7+
8+
type:bug:
9+
- changed-files:
10+
- any-glob-to-any-file:
11+
- 'src/**'
12+
13+
type:docs:
14+
- changed-files:
15+
- any-glob-to-any-file:
16+
- '**/*.md'
17+
- 'docs/**'
18+
19+
type:testing:
20+
- changed-files:
21+
- any-glob-to-any-file:
22+
- 'test/**'
23+
- 'e2e/**'
24+
- '**/*.test.ts'
25+
- '**/*.test.tsx'
26+
- '**/*.spec.ts'
27+
- '**/*.spec.js'
28+
29+
type:devops:
30+
- changed-files:
31+
- any-glob-to-any-file:
32+
- '.github/**'
33+
- 'Dockerfile*'
34+
- 'docker-compose*'
35+
- '.eslintrc*'
36+
- 'eslint.config*'
37+
38+
type:performance:
39+
- changed-files:
40+
- any-glob-to-any-file:
41+
- 'src/**'
42+
43+
type:design:
44+
- changed-files:
45+
- any-glob-to-any-file:
46+
- 'src/components/**'
47+
- 'src/app/**/*.css'
48+
- 'src/app/globals.css'
49+
- 'tailwind.config*'

src/app/dashboard/page.tsx

Lines changed: 12 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -104,71 +104,36 @@ export default async function DashboardPage() {
104104

105105
return (
106106
<DashboardSSEProvider>
107-
<div className="min-h-screen overflow-x-hidden bg-[var(--background)] p-4 text-[var(--foreground)] transition-colors md:p-8">
107+
<div className="min-h-screen bg-[var(--background)] p-4 text-[var(--foreground)] transition-colors md:p-8">
108108
<DashboardHeader />
109-
<div className="mb-6 rounded-2xl border border-[var(--border)] bg-[var(--card)]/80 p-3 shadow-sm backdrop-blur-sm sm:p-4">
110-
<div className="mb-3 flex items-center justify-between gap-3">
111-
<div>
112-
<p
113-
className="text-[11px] font-semibold uppercase tracking-[0.22em] text-[var(--muted-foreground)]"
114-
style={{ fontFamily: "var(--font-jetbrains, ui-monospace, monospace)" }}
115-
>
116-
Quick actions
117-
</p>
118-
<p className="mt-1 text-sm text-[var(--muted-foreground)]">
119-
Common dashboard tasks and exports
120-
</p>
121-
</div>
122-
</div>
123109

124-
<div className="grid grid-cols-2 gap-2 sm:grid-cols-4">
110+
{/* Quick actions */}
111+
<div className="mt-4 flex flex-wrap items-center gap-2 sm:gap-3">
125112
<Link
126113
href="/wrapped"
127-
className="flex min-h-11 items-center justify-center rounded-xl border border-[var(--accent)] bg-[var(--accent-soft)] px-4 py-2 text-sm font-semibold text-[var(--accent)] transition-opacity hover:opacity-90"
114+
className="inline-flex items-center gap-2 rounded-lg border border-[var(--accent)] bg-[var(--accent-soft)] px-4 py-2 text-sm font-semibold text-[var(--accent)] transition-opacity hover:opacity-90"
128115
>
129-
Year in Code
116+
Year in Code
130117
</Link>
131118
<Link
132119
href="/dashboard/settings"
133-
className="secondary-button flex min-h-11 items-center justify-center rounded-xl px-4 py-2 text-sm font-medium"
120+
className="secondary-button inline-flex items-center justify-center rounded-lg px-4 py-2 text-sm font-medium"
134121
>
135122
Settings
136123
</Link>
137-
<div className="col-span-2">
124+
<div className="sm:ml-auto">
138125
<ExportButton />
139126
</div>
140127
</div>
141-
</div>
142-
<StreakAtRiskBanner />
143128

144-
<div className="mt-6 mb-6">
145-
<TodayFocusHero userName={session.user?.name ?? null} />
129+
<div className="mt-4">
130+
<StreakAtRiskBanner />
146131
</div>
147132

148-
{/* Action bar */}
149-
<div
150-
id="overview"
151-
className="mb-6 flex flex-wrap items-stretch justify-center gap-2 scroll-mt-24 sm:justify-end"
152-
>
153-
<Link
154-
href="/wrapped"
155-
className="flex min-w-0 flex-1 items-center justify-center rounded-lg border border-[var(--accent)] bg-[var(--accent-soft)] px-4 py-2 text-center text-sm font-semibold text-[var(--accent)] transition-opacity hover:opacity-90 sm:min-w-[140px] sm:flex-none"
156-
>
157-
Year in Code
158-
</Link>
159-
<Link
160-
href="/dashboard/settings"
161-
className="secondary-button flex min-w-0 flex-1 items-center justify-center rounded-xl px-4 py-2 text-center text-sm font-medium sm:min-w-[140px] sm:flex-none"
162-
>
163-
Settings
164-
</Link>
165-
<div className="w-full sm:w-auto">
166-
<ExportButton />
167-
</div>
133+
<div className="mt-6 mb-6">
134+
<TodayFocusHero userName={session.user?.name ?? null} />
168135
</div>
169136

170-
<StreakAtRiskBanner />
171-
172137
{/* Weekly summary — full width */}
173138
<div className="mt-6">
174139
<WeeklySummaryCard />
@@ -185,9 +150,7 @@ export default async function DashboardPage() {
185150
{/* Left: contribution graph + heatmap */}
186151
<div className="lg:col-span-2 flex flex-col gap-6">
187152
<ContributionGraph />
188-
<LazyWidget fallback={<SkeletonCard />}>
189-
<ContributionHeatmap />
190-
</LazyWidget>
153+
<ContributionHeatmap />
191154
</div>
192155

193156
{/* Right: streak + coding time */}

src/app/globals.css

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,15 +33,15 @@
3333
.dark {
3434
color-scheme: dark;
3535

36-
--background: #0f172a;
37-
--foreground: #f8fafc;
38-
--muted-foreground: #94a3b8;
36+
--background: #060b18;
37+
--foreground: #f0f6ff;
38+
--muted-foreground: #8a9ab5;
3939

40-
--card: #202b3f;
41-
--card-foreground: #f8fafc;
40+
--card: #0c1525;
41+
--card-foreground: #f0f6ff;
4242

43-
--card-muted: #2a3a52;
44-
--border: #475569;
43+
--card-muted: #122035;
44+
--border: #1c2d44;
4545

4646
--accent: #60a5fa;
4747
--accent-secondary: #3b82f6;

src/app/layout.tsx

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -64,18 +64,12 @@ export default async function RootLayout({
6464
(function() {
6565
try {
6666
const stored = localStorage.getItem('theme');
67-
if (stored === 'dark') {
68-
document.documentElement.classList.add('dark');
69-
document.documentElement.style.colorScheme = 'dark';
70-
} else if (stored === 'light') {
67+
if (stored === 'light') {
7168
document.documentElement.classList.remove('dark');
7269
document.documentElement.style.colorScheme = 'light';
73-
} else if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {
70+
} else {
7471
document.documentElement.classList.add('dark');
7572
document.documentElement.style.colorScheme = 'dark';
76-
} else {
77-
document.documentElement.classList.remove('dark');
78-
document.documentElement.style.colorScheme = 'light';
7973
}
8074
} catch (e) {}
8175
})();

0 commit comments

Comments
 (0)