Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
b6a80d9
fix: sidebar occupies space now
edulennert Jan 14, 2026
12dc10a
feat: limit screen size to 2xl
edulennert Jan 15, 2026
3c8960f
feat: fix proposal page
edulennert Jan 15, 2026
04fe842
fix: app bg color
edulennert Jan 15, 2026
34cd075
Merge branch 'dev' into feat/platform-max-width
edulennert Jan 15, 2026
962b5e3
fix: governance proposal skeleton
edulennert Jan 15, 2026
fbeef0d
Merge branch 'feat/platform-max-width' of github.com:blockful-io/anti…
edulennert Jan 15, 2026
621fad5
feat: make tablet respond like mobile
edulennert Jan 19, 2026
214de30
feat: replace all sm and md classes by lg ones
edulennert Jan 19, 2026
960a90b
feat: fix typecheck
edulennert Jan 19, 2026
8f7360e
feat: fix default config - next stuff
edulennert Jan 19, 2026
aa106d6
feat: fix border
edulennert Jan 19, 2026
37967ce
feat: nake sidebar collapse
edulennert Jan 19, 2026
8fbec3d
feat: fix sidebar on governance page
edulennert Jan 19, 2026
3a5a826
fix: dropdown on mouse leave
edulennert Jan 19, 2026
f082fce
fix: sidebar labels
edulennert Jan 19, 2026
04842ee
Merge branch 'dev' into feat/platform-max-width
edulennert Jan 19, 2026
6469f5c
feat: add cursor mcp
edulennert Jan 20, 2026
7c82c35
feat: sidebar design
edulennert Jan 20, 2026
f274a88
feat: create button on the main sidebar
edulennert Jan 20, 2026
b122cbf
fix: active colors on dao sidebar
edulennert Jan 20, 2026
e16e009
feat: make sidebar take space on the screen
edulennert Jan 20, 2026
5567593
feat: create collapsable sidebar
edulennert Jan 20, 2026
708baa3
Merge branch 'dev' into feat/platform-max-width
edulennert Jan 20, 2026
9dca426
fix: design
edulennert Jan 20, 2026
938f9dc
Merge branch 'feat/platform-max-width' of github.com:blockful-io/anti…
edulennert Jan 20, 2026
9254d86
fix: border rounded on dao select
edulennert Jan 20, 2026
9efa5df
fix: select dao on sidebar
edulennert Jan 20, 2026
fc3b35d
fix: hover and selected colors
edulennert Jan 20, 2026
75d905e
Merge branch 'dev' into feat/platform-max-width
edulennert Jan 21, 2026
9f6ac1c
Merge branch 'dev' into feat/platform-max-width
edulennert Jan 21, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 6 additions & 7 deletions .cursor/mcp.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,15 @@
},
"playwright": {
"command": "npx",
"args": [
"@playwright/mcp@latest"
]
"args": ["@playwright/mcp@latest"]
},
"figma": {
"url": "https://mcp.figma.com/mcp",
"type": "http"
},
"sequential-thinking": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-sequential-thinking"
]
"args": ["-y", "@modelcontextprotocol/server-sequential-thinking"]
}
}
}
32 changes: 17 additions & 15 deletions apps/dashboard/app/[daoId]/(main)/attack-profitability/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -73,20 +73,22 @@ export default async function AttackProfitabilityPage({
}

return (
<TheSectionLayout
title={PAGES_CONSTANTS.attackProfitability.title}
icon={<Crosshair2Icon className="section-layout-icon" />}
description={PAGES_CONSTANTS.attackProfitability.description}
riskLevel={
<RiskLevelCard status={daoConstants.attackProfitability?.riskLevel} />
}
>
<SubSectionsContainer>
<AttackProfitabilitySection
daoId={daoIdEnum}
attackProfitability={daoConstants.attackProfitability}
/>
</SubSectionsContainer>
</TheSectionLayout>
<div>
<TheSectionLayout
title={PAGES_CONSTANTS.attackProfitability.title}
icon={<Crosshair2Icon className="section-layout-icon" />}
description={PAGES_CONSTANTS.attackProfitability.description}
riskLevel={
<RiskLevelCard status={daoConstants.attackProfitability?.riskLevel} />
}
>
<SubSectionsContainer>
<AttackProfitabilitySection
daoId={daoIdEnum}
attackProfitability={daoConstants.attackProfitability}
/>
</SubSectionsContainer>
</TheSectionLayout>
</div>
);
}
24 changes: 14 additions & 10 deletions apps/dashboard/app/[daoId]/(main)/layout.tsx
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import { ReactNode } from "react";
import { ALL_DAOS, DaoIdEnum } from "@/shared/types/daos";
import NotFound from "@/app/not-found";
import { BaseHeaderLayoutSidebar } from "@/shared/components/";
import { HeaderMobile } from "@/widgets/HeaderMobile";
import { HeaderDAOSidebar, HeaderSidebar, StickyPageHeader } from "@/widgets";
import { Footer } from "@/shared/components/design-system/footer/Footer";
// import { BaseHeaderLayoutSidebar } from "@/shared/components";

type DaoParams = {
daoId: string;
Expand All @@ -26,17 +26,21 @@ export default async function DaoLayout({ children, params }: DaoLayoutProps) {

// For FULL, IN_ANALYSIS and ELECTION stages, render the layout with appropriate providers
return (
<div className="bg-surface-background dark flex h-screen overflow-hidden">
<BaseHeaderLayoutSidebar>
<HeaderSidebar />
<HeaderDAOSidebar />
</BaseHeaderLayoutSidebar>
<main className="relative flex-1 overflow-auto lg:ml-[330px]">
<div className="md:hidden">
<StickyPageHeader />
<div className="bg-surface-background dark relative mx-auto flex h-screen max-w-screen-2xl">
<div className="active relative hidden h-screen lg:flex">
<div className="h-full w-[68px] shrink-0 overflow-y-auto">
<HeaderSidebar />
</div>
<div className="h-full shrink-0">
<HeaderDAOSidebar />
</div>
</div>
<main className="h-screen flex-1 overflow-auto">
<div className="lg:hidden">
<HeaderMobile />
<StickyPageHeader />
</div>
<div className="flex min-h-screen w-full flex-col items-center">
<div className="flex w-full flex-col items-center overflow-y-scroll lg:h-screen">
<div className="w-full flex-1">{children}</div>
<Footer />
</div>
Expand Down
54 changes: 28 additions & 26 deletions apps/dashboard/app/[daoId]/(main)/risk-analysis/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -99,31 +99,33 @@ export default async function RiskAnalysisPage({
};

return (
<TheSectionLayout
title={PAGES_CONSTANTS.riskAnalysis.title}
icon={<Gauge className="section-layout-icon" />}
description={PAGES_CONSTANTS.riskAnalysis.description}
riskLevel={<RiskLevelCard status={getHighestRiskLevel()} />}
>
<SubSectionsContainer>
<SubSection
subsectionTitle={PAGES_CONSTANTS.riskAnalysis.subTitle}
subsectionDescription={PAGES_CONSTANTS.riskAnalysis.subDescription}
dateRange=""
>
<RiskAnalysisSection daoId={daoIdEnum} />
</SubSection>
<DividerDefault isHorizontal />
<SubSection
subsectionTitle={PAGES_CONSTANTS.governanceImplementation.subTitle}
subsectionDescription={
PAGES_CONSTANTS.governanceImplementation.subDescription
}
dateRange=""
>
<GovernanceImplementationSection daoId={daoIdEnum} />
</SubSection>
</SubSectionsContainer>
</TheSectionLayout>
<div>
<TheSectionLayout
title={PAGES_CONSTANTS.riskAnalysis.title}
icon={<Gauge className="section-layout-icon" />}
description={PAGES_CONSTANTS.riskAnalysis.description}
riskLevel={<RiskLevelCard status={getHighestRiskLevel()} />}
>
<SubSectionsContainer>
<SubSection
subsectionTitle={PAGES_CONSTANTS.riskAnalysis.subTitle}
subsectionDescription={PAGES_CONSTANTS.riskAnalysis.subDescription}
dateRange=""
>
<RiskAnalysisSection daoId={daoIdEnum} />
</SubSection>
<DividerDefault isHorizontal />
<SubSection
subsectionTitle={PAGES_CONSTANTS.governanceImplementation.subTitle}
subsectionDescription={
PAGES_CONSTANTS.governanceImplementation.subDescription
}
dateRange=""
>
<GovernanceImplementationSection daoId={daoIdEnum} />
</SubSection>
</SubSectionsContainer>
</TheSectionLayout>
</div>
);
}
20 changes: 11 additions & 9 deletions apps/dashboard/app/[daoId]/(main)/token-distribution/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -73,14 +73,16 @@ export default async function TokenDistributionPage({
}

return (
<TheSectionLayout
title={PAGES_CONSTANTS.tokenDistribution.title}
icon={<ArrowRightLeft className="section-layout-icon" />}
description={PAGES_CONSTANTS.tokenDistribution.description}
>
<SubSectionsContainer>
<TokenDistributionSection daoId={daoIdEnum} />
</SubSectionsContainer>
</TheSectionLayout>
<div>
<TheSectionLayout
title={PAGES_CONSTANTS.tokenDistribution.title}
icon={<ArrowRightLeft className="section-layout-icon" />}
description={PAGES_CONSTANTS.tokenDistribution.description}
>
<SubSectionsContainer>
<TokenDistributionSection daoId={daoIdEnum} />
</SubSectionsContainer>
</TheSectionLayout>
</div>
);
}
19 changes: 11 additions & 8 deletions apps/dashboard/app/[daoId]/(secondary)/governance/page.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import type { Metadata } from "next";
import { DaoIdEnum } from "@/shared/types/daos";
import { BaseHeaderLayoutSidebar } from "@/shared/components/";

import { HeaderMobile } from "@/widgets/HeaderMobile";
import { HeaderDAOSidebar, HeaderSidebar, StickyPageHeader } from "@/widgets";
Expand Down Expand Up @@ -65,14 +64,18 @@ export async function generateMetadata(props: Props): Promise<Metadata> {
export default function DaoPage() {
return (
<div className="bg-surface-background dark flex h-screen overflow-hidden">
<BaseHeaderLayoutSidebar>
<HeaderSidebar />
<HeaderDAOSidebar />
</BaseHeaderLayoutSidebar>
<main className="relative flex-1 overflow-auto lg:ml-[330px]">
<div className="sm:hidden">
<StickyPageHeader />
<div className="active relative hidden h-screen lg:flex">
<div className="h-full w-[68px] shrink-0 overflow-y-auto">
<HeaderSidebar />
</div>
<div className="h-full shrink-0">
<HeaderDAOSidebar />
</div>
</div>
<main className="relative flex-1 overflow-auto">
<div className="lg:hidden">
<HeaderMobile />
<StickyPageHeader />
</div>
<div className="flex min-h-screen w-full flex-col items-center">
<div className="xl4k:max-w-7xl w-full flex-1">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ import { ProposalSectionSkeleton } from "@/features/governance/components/propos
export default function Loading() {
return (
<div className="bg-surface-background dark flex h-screen overflow-hidden">
<main className="relative flex-1 overflow-auto pt-[57px] sm:ml-[70px] sm:pt-0">
<main className="relative flex-1 overflow-auto pt-[57px] lg:pt-0">
<div className="flex min-h-screen w-full flex-col items-center">
<div className="xl4k:max-w-7xl w-full flex-1">
<div className="border-light-dark w-full max-w-screen-2xl flex-1 border">
<ProposalSectionSkeleton />
</div>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,12 +61,12 @@ export async function generateMetadata(props: Props): Promise<Metadata> {

export default function ProposalPage() {
return (
<div className="bg-surface-background dark flex h-screen overflow-hidden">
<div className="bg-surface-background border-light-dark dark flex h-screen max-w-screen-2xl overflow-hidden border">
<BaseHeaderLayoutSidebar>
<HeaderSidebar />
</BaseHeaderLayoutSidebar>
<main className="relative flex-1 overflow-auto pt-[57px] sm:ml-[70px] sm:pt-0">
<div className="sm:hidden">
<main className="relative flex-1 overflow-auto pt-[57px] lg:pt-0">
<div className="lg:hidden">
<HeaderMobile />
</div>
<div className="flex min-h-screen w-full flex-col items-center">
Expand Down
4 changes: 2 additions & 2 deletions apps/dashboard/app/alerts/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ export default function DonatePage() {
return (
<div className="bg-surface-background dark flex h-screen overflow-hidden">
<HeaderSidebar />
<main className="flex-1 overflow-auto sm:ml-[72px]">
<div className="sm:hidden">
<main className="flex-1 overflow-auto">
<div className="lg:hidden">
<HeaderMobile overlayClassName="top-[57px]" />
</div>
<div className="flex min-h-screen w-full flex-col items-center">
Expand Down
6 changes: 3 additions & 3 deletions apps/dashboard/app/contact/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -74,9 +74,9 @@ export default function ContactPage() {
return (
<div className="bg-surface-background dark flex h-screen">
<HeaderSidebar />
<main className="flex-1 overflow-auto sm:ml-[72px]">
<div className="sm:hidden">
<div className="h-[57px] w-full sm:hidden" />
<main className="flex-1 overflow-auto">
<div className="lg:hidden">
<div className="h-[57px] w-full lg:hidden" />
<HeaderMobile overlayClassName="top-[57px]" />
</div>
<div className="flex min-h-screen w-full flex-col items-center">
Expand Down
4 changes: 2 additions & 2 deletions apps/dashboard/app/donate/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ export default function DonatePage() {
return (
<div className="bg-surface-background dark flex h-screen overflow-hidden">
<HeaderSidebar />
<main className="flex-1 overflow-auto sm:ml-[72px]">
<div className="sm:hidden">
<main className="flex-1 overflow-auto">
<div className="lg:hidden">
<HeaderMobile overlayClassName="top-[57px]" />
</div>
<div className="flex min-h-screen w-full flex-col items-center">
Expand Down
6 changes: 3 additions & 3 deletions apps/dashboard/app/faq/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ export default function FAQPage() {
return (
<div className="bg-surface-background dark flex h-screen">
<HeaderSidebar />
<main className="flex-1 overflow-auto sm:ml-[72px]">
<div className="sm:hidden">
<div className="h-[57px] w-full sm:hidden" />
<main className="flex-1 overflow-auto">
<div className="lg:hidden">
<div className="h-[57px] w-full lg:hidden" />
<HeaderMobile overlayClassName="top-[57px]" />
</div>
<div className="flex min-h-screen w-full flex-col items-center">
Expand Down
8 changes: 4 additions & 4 deletions apps/dashboard/app/glossary/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,9 @@ export default function GlossaryPage() {
<div className="bg-surface-background dark flex h-screen">
<HeaderSidebar />

<main className="flex-1 overflow-auto sm:ml-[72px]">
<div className="sm:hidden">
<div className="h-[57px] w-full sm:hidden" />
<main className="flex-1 overflow-auto">
<div className="lg:hidden">
<div className="h-[57px] w-full lg:hidden" />
<HeaderMobile overlayClassName="top-[57px]" />
</div>

Expand All @@ -51,7 +51,7 @@ export default function GlossaryPage() {
title={PAGES_CONSTANTS.glossary.title}
icon={<BookOpen className="section-layout-icon" />}
description={PAGES_CONSTANTS.glossary.description}
className="bg-surface-background! sm:mt-0! gap-4! lg:gap-6!"
className="bg-surface-background! lg:mt-0! gap-4! lg:gap-6!"
>
<div className="border-light-dark flex flex-col gap-2 border-t border-dashed py-5 lg:flex-row lg:gap-10 lg:border-none">
{/* Sticky Sidebar - Left Side */}
Expand Down
2 changes: 1 addition & 1 deletion apps/dashboard/app/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ export default function RootLayout({ children }: { children: ReactNode }) {
/>
</head>
<body
className={`${inter.className} ${roboto.variable} overflow-x-hidden xl:overflow-hidden`}
className={`${inter.className} ${roboto.variable} bg-surface-background border-light-dark mx-auto max-w-screen-2xl overflow-x-hidden border xl:overflow-hidden`}
>
<GlobalProviders>
{children}
Expand Down
10 changes: 5 additions & 5 deletions apps/dashboard/app/not-found.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ const NotFound = () => {
return (
<div className="bg-surface-background dark flex h-screen overflow-hidden">
<HeaderSidebar />
<main className="flex-1 overflow-auto sm:ml-[72px]">
<div className="sm:hidden">
<main className="flex-1 overflow-auto">
<div className="lg:hidden">
<HeaderMobile />
</div>
<div className="flex min-h-screen w-full flex-col items-center">
Expand All @@ -42,19 +42,19 @@ const NotFound = () => {
</p>
</div>

<div className="mt-4 flex w-full flex-col items-center justify-center gap-2 md:flex-row">
<div className="mt-4 flex w-full flex-col items-center justify-center gap-2 lg:flex-row">
<Button
asChild
variant="primary"
className="w-full md:w-auto"
className="w-full lg:w-auto"
size="md"
>
<Link href="/">Go to Dashboard</Link>
</Button>
<Button
asChild
variant="outline"
className="w-full md:w-auto"
className="w-full lg:w-auto"
size="md"
>
<Link
Expand Down
6 changes: 3 additions & 3 deletions apps/dashboard/app/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ export default function Home() {
return (
<div className="bg-surface-background dark flex h-screen overflow-hidden">
<HeaderSidebar />
<main className="flex-1 overflow-auto sm:ml-[72px]">
<div className="sm:hidden">
<HeaderMobile />
<main className="flex-1 overflow-auto">
<div className="lg:hidden">
<HeaderMobile className="fixed! top-0" />
</div>
<div className="flex min-h-screen w-full flex-col items-center">
<div className="w-full flex-1">
Expand Down
4 changes: 2 additions & 2 deletions apps/dashboard/app/terms-of-service/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ export default function TermsPage() {
return (
<div className="bg-surface-background dark flex h-screen overflow-hidden">
<HeaderSidebar />
<main className="flex-1 overflow-auto sm:ml-[72px]">
<div className="sm:hidden">
<main className="flex-1 overflow-auto">
<div className="lg:hidden">
<HeaderMobile overlayClassName="top-[57px]" />
</div>
<div className="flex min-h-screen w-full flex-col items-center">
Expand Down
Loading