Skip to content

Commit 75d198e

Browse files
committed
tree shaken
1 parent 67bb203 commit 75d198e

28 files changed

Lines changed: 1477 additions & 2801 deletions

app/package.json

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,12 @@
88
"dev": "vite",
99
"build": "tsc -b && vite build",
1010
"lint": "eslint .",
11-
"preview": "vite preview",
12-
"predeploy": "npm run build",
13-
"deploy": "gh-pages -d dist"
11+
"preview": "vite preview"
1412
},
1513
"dependencies": {
1614
"@hookform/resolvers": "^5.2.2",
1715
"@radix-ui/react-accordion": "^1.2.12",
1816
"@radix-ui/react-label": "^2.1.7",
19-
"@radix-ui/react-navigation-menu": "^1.2.14",
2017
"@radix-ui/react-popover": "^1.1.15",
2118
"@radix-ui/react-progress": "^1.1.7",
2219
"@radix-ui/react-select": "^2.2.6",
@@ -29,7 +26,6 @@
2926
"clsx": "^2.1.1",
3027
"date-fns": "^4.1.0",
3128
"embla-carousel-react": "^8.6.0",
32-
"gh-pages": "^6.3.0",
3329
"lucide-react": "^0.540.0",
3430
"react": "^19.1.1",
3531
"react-day-picker": "8.10.1",
@@ -50,11 +46,9 @@
5046
"eslint-plugin-react-hooks": "^5.2.0",
5147
"eslint-plugin-react-refresh": "^0.4.20",
5248
"globals": "^16.3.0",
53-
"prettier": "^3.6.2",
5449
"tw-animate-css": "^1.3.7",
5550
"typescript": "~5.8.3",
5651
"typescript-eslint": "^8.39.1",
57-
"vite": "^7.1.2",
58-
"vite-plugin-node-polyfills": "^0.24.0"
52+
"vite": "^7.1.2"
5953
}
6054
}

app/src/App.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,4 +113,4 @@
113113

114114
.card-active {
115115
display: block;
116-
}
116+
}

app/src/components/assets/star-38.tsx

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,28 +11,28 @@ export default function Star38({
1111
height,
1212
...props
1313
}: React.SVGProps<SVGSVGElement> & {
14-
color?: string
15-
size?: number
16-
stroke?: string
17-
pathClassName?: string
18-
strokeWidth?: number
14+
color?: string;
15+
size?: number;
16+
stroke?: string;
17+
pathClassName?: string;
18+
strokeWidth?: number;
1919
}) {
2020
return (
2121
<svg
22-
xmlns="http://www.w3.org/2000/svg"
23-
fill="none"
24-
viewBox="0 0 200 200"
22+
xmlns='http://www.w3.org/2000/svg'
23+
fill='none'
24+
viewBox='0 0 200 200'
2525
width={size ?? width}
2626
height={size ?? height}
2727
{...props}
2828
>
2929
<path
30-
fill={color ?? "currentColor"}
30+
fill={color ?? 'currentColor'}
3131
stroke={stroke}
3232
strokeWidth={strokeWidth}
3333
className={pathClassName}
34-
d="M179.8 49.65c-23.75-2.85-51.3 3.8-64.6 25.65 16.15-10.45 36.1-11.4 54.15-6.65 9.5 2.85 17.1 6.65 24.7 12.35.95.95.95 2.85.95 3.8-8.55-1.9-15.2-7.6-23.75-9.5-7.6-1.9-14.25-2.85-20.9-1.9-9.5 1.9-19 2.85-26.6 9.5 12.35-2.85 25.65.95 37.05 5.7 10.45 5.7 19.95 13.3 28.5 21.85 1.9 2.85 6.65 8.55 3.8 12.35-14.25-19.95-38.95-35.15-64.6-29.45 8.55.95 16.15 6.65 23.75 11.4 15.2 12.35 25.65 29.45 27.55 48.45 0 .95-.95 2.85-1.9 3.8-6.65-23.75-22.8-48.45-49.4-52.25 10.45 7.6 18.05 18.05 22.8 29.45 4.75 14.25 6.65 30.4 1.9 45.6l-1.9 1.9c.95-24.7-3.8-52.25-26.6-66.5 10.45 16.15 11.4 36.1 6.65 54.15-2.85 9.5-6.65 17.1-12.35 24.7-.95.95-2.85.95-3.8.95 1.9-8.55 7.6-15.2 9.5-23.75 1.9-7.6 2.85-14.25 1.9-20.9-1.9-9.5-2.85-19-9.5-26.6 2.85 12.35-.95 25.65-5.7 37.05-5.7 10.45-13.3 19.95-21.85 28.5-2.85 1.9-8.55 6.65-12.35 3.8 19.95-14.25 35.15-38.95 29.45-64.6-.95 8.55-6.65 16.15-11.4 23.75C82.9 167.45 65.8 177.9 46.8 179.8c-.95 0-2.85-.95-3.8-1.9 23.75-6.65 48.45-22.8 52.25-49.4-7.6 10.45-18.05 18.05-29.45 22.8-14.25 4.75-30.4 6.65-45.6 1.9l-1.9-1.9c24.7.95 52.25-3.8 66.5-26.6-16.15 10.45-36.1 11.4-54.15 6.65-9.5-2.85-17.1-6.65-24.7-12.35-.95-.95-.95-2.85-.95-3.8 8.55 1.9 15.2 7.6 23.75 9.5 7.6 1.9 14.25 2.85 20.9 1.9 9.5-1.9 19-2.85 26.6-9.5-12.35 2.85-25.65-.95-37.05-5.7-10.45-5.7-19.95-13.3-28.5-21.85C8.8 86.7 4.05 81 6.9 77.2c14.25 19.95 38.95 35.15 64.6 29.45-8.55-.95-16.15-6.65-23.75-11.4C32.55 82.9 22.1 65.8 20.2 46.8c0-.95.95-2.85 1.9-3.8 6.65 23.75 22.8 48.45 49.4 52.25-10.45-7.6-18.05-18.05-22.8-29.45-4.75-14.25-6.65-30.4-1.9-45.6l1.9-1.9c-.95 24.7 3.8 52.25 26.6 66.5-10.45-16.15-11.4-36.1-6.65-54.15 2.85-9.5 6.65-17.1 12.35-24.7C81.95 5 83.85 5 84.8 5c-1.9 8.55-7.6 15.2-9.5 23.75-1.9 7.6-2.85 14.25-1.9 20.9 1.9 9.5 2.85 19 9.5 26.6-2.85-12.35.95-25.65 5.7-37.05 5.7-10.45 13.3-19.95 21.85-28.5 2.85-1.9 8.55-6.65 12.35-3.8-19.95 14.25-35.15 38.95-29.45 64.6.95-8.55 6.65-16.15 11.4-23.75C117.1 32.55 134.2 22.1 153.2 20.2c.95 0 2.85.95 3.8 1.9-23.75 6.65-48.45 22.8-52.25 49.4 7.6-10.45 18.05-18.05 29.45-22.8 14.25-4.75 30.4-6.65 45.6-1.9.95.95 2.85 1.9 1.9 2.85z"
34+
d='M179.8 49.65c-23.75-2.85-51.3 3.8-64.6 25.65 16.15-10.45 36.1-11.4 54.15-6.65 9.5 2.85 17.1 6.65 24.7 12.35.95.95.95 2.85.95 3.8-8.55-1.9-15.2-7.6-23.75-9.5-7.6-1.9-14.25-2.85-20.9-1.9-9.5 1.9-19 2.85-26.6 9.5 12.35-2.85 25.65.95 37.05 5.7 10.45 5.7 19.95 13.3 28.5 21.85 1.9 2.85 6.65 8.55 3.8 12.35-14.25-19.95-38.95-35.15-64.6-29.45 8.55.95 16.15 6.65 23.75 11.4 15.2 12.35 25.65 29.45 27.55 48.45 0 .95-.95 2.85-1.9 3.8-6.65-23.75-22.8-48.45-49.4-52.25 10.45 7.6 18.05 18.05 22.8 29.45 4.75 14.25 6.65 30.4 1.9 45.6l-1.9 1.9c.95-24.7-3.8-52.25-26.6-66.5 10.45 16.15 11.4 36.1 6.65 54.15-2.85 9.5-6.65 17.1-12.35 24.7-.95.95-2.85.95-3.8.95 1.9-8.55 7.6-15.2 9.5-23.75 1.9-7.6 2.85-14.25 1.9-20.9-1.9-9.5-2.85-19-9.5-26.6 2.85 12.35-.95 25.65-5.7 37.05-5.7 10.45-13.3 19.95-21.85 28.5-2.85 1.9-8.55 6.65-12.35 3.8 19.95-14.25 35.15-38.95 29.45-64.6-.95 8.55-6.65 16.15-11.4 23.75C82.9 167.45 65.8 177.9 46.8 179.8c-.95 0-2.85-.95-3.8-1.9 23.75-6.65 48.45-22.8 52.25-49.4-7.6 10.45-18.05 18.05-29.45 22.8-14.25 4.75-30.4 6.65-45.6 1.9l-1.9-1.9c24.7.95 52.25-3.8 66.5-26.6-16.15 10.45-36.1 11.4-54.15 6.65-9.5-2.85-17.1-6.65-24.7-12.35-.95-.95-.95-2.85-.95-3.8 8.55 1.9 15.2 7.6 23.75 9.5 7.6 1.9 14.25 2.85 20.9 1.9 9.5-1.9 19-2.85 26.6-9.5-12.35 2.85-25.65-.95-37.05-5.7-10.45-5.7-19.95-13.3-28.5-21.85C8.8 86.7 4.05 81 6.9 77.2c14.25 19.95 38.95 35.15 64.6 29.45-8.55-.95-16.15-6.65-23.75-11.4C32.55 82.9 22.1 65.8 20.2 46.8c0-.95.95-2.85 1.9-3.8 6.65 23.75 22.8 48.45 49.4 52.25-10.45-7.6-18.05-18.05-22.8-29.45-4.75-14.25-6.65-30.4-1.9-45.6l1.9-1.9c-.95 24.7 3.8 52.25 26.6 66.5-10.45-16.15-11.4-36.1-6.65-54.15 2.85-9.5 6.65-17.1 12.35-24.7C81.95 5 83.85 5 84.8 5c-1.9 8.55-7.6 15.2-9.5 23.75-1.9 7.6-2.85 14.25-1.9 20.9 1.9 9.5 2.85 19 9.5 26.6-2.85-12.35.95-25.65 5.7-37.05 5.7-10.45 13.3-19.95 21.85-28.5 2.85-1.9 8.55-6.65 12.35-3.8-19.95 14.25-35.15 38.95-29.45 64.6.95-8.55 6.65-16.15 11.4-23.75C117.1 32.55 134.2 22.1 153.2 20.2c.95 0 2.85.95 3.8 1.9-23.75 6.65-48.45 22.8-52.25 49.4 7.6-10.45 18.05-18.05 29.45-22.8 14.25-4.75 30.4-6.65 45.6-1.9.95.95 2.85 1.9 1.9 2.85z'
3535
/>
3636
</svg>
37-
)
37+
);
3838
}

app/src/components/sections/FAQs.tsx

Lines changed: 37 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,67 +1,75 @@
1-
import Star9 from "@/components/assets/star-9";
2-
import Star21 from "@/components/assets/star-21";
1+
import Star9 from '@/components/assets/star-9';
2+
import Star21 from '@/components/assets/star-21';
33

44
import {
55
Accordion,
66
AccordionContent,
77
AccordionItem,
88
AccordionTrigger,
9-
} from "@/components/ui/accordion";
9+
} from '@/components/ui/accordion';
1010

1111
const faqs = [
1212
{
13-
q: "What is Cascade?",
14-
a: "Cascade is a decentralized fundraising platform built on Solana. It allows anyone to raise and support causes directly without banks, middlemen, or censorship.",
13+
q: 'What is Cascade?',
14+
a: 'Cascade is a decentralized fundraising platform built on Solana. It allows anyone to raise and support causes directly without banks, middlemen, or censorship.',
1515
},
1616
{
17-
q: "Are donations refundable?",
17+
q: 'Are donations refundable?',
1818
a: "Blockchain transactions on Solana are irreversible. Refunds are only possible if the campaign's creator chooses.",
1919
},
2020
{
21-
q: "Can I donate anonymously?",
22-
a: "Yes. You can donate directly from your Solana wallet without linking personal identity",
21+
q: 'Can I donate anonymously?',
22+
a: 'Yes. You can donate directly from your Solana wallet without linking personal identity',
2323
},
2424
{
25-
q: "What fees does Cascade charge?",
26-
a: "Cascade charges a 2% platform fee to keep the service running, along with the small network fee (gas) required by Solana for each transaction.",
25+
q: 'What fees does Cascade charge?',
26+
a: 'Cascade charges a 2% platform fee to keep the service running, along with the small network fee (gas) required by Solana for each transaction.',
2727
},
2828
{
29-
q: "Which cryptocurrencies can I use to donate?",
30-
a: "Cascade runs on Solana, so you can donate using SOL and supported Solana Program Library (SPL) tokens like USDC.",
29+
q: 'Which cryptocurrencies can I use to donate?',
30+
a: 'Cascade runs on Solana, so you can donate using SOL and supported Solana Program Library (SPL) tokens like USDC.',
3131
},
3232
{
33-
q: "Do I need a crypto wallet to start a campaign?",
34-
a: "Yes. You will need a Solana-compatible wallet such as Phantom or Solflare to create campaigns and receive funds.",
33+
q: 'Do I need a crypto wallet to start a campaign?',
34+
a: 'Yes. You will need a Solana-compatible wallet such as Phantom or Solflare to create campaigns and receive funds.',
3535
},
3636
{
37-
q: "How do I know campaigns are trustworthy?",
38-
a: "Every transaction is transparent on-chain. Cascade also supports verification badges, trust scores, and community reporting to help backers identify trustworthy campaigns.",
37+
q: 'How do I know campaigns are trustworthy?',
38+
a: 'Every transaction is transparent on-chain. Cascade also supports verification badges, trust scores, and community reporting to help backers identify trustworthy campaigns.',
3939
},
4040
{
41-
q: "What happens if a campaign does not reach its goal?",
42-
a: "Campaign behavior depends on how it is set up. Some campaigns release funds only when the goal is met, while others allow partial funding to be claimed.",
41+
q: 'What happens if a campaign does not reach its goal?',
42+
a: 'Campaign behavior depends on how it is set up. Some campaigns release funds only when the goal is met, while others allow partial funding to be claimed.',
4343
},
4444
];
4545

4646
const faqItems = faqs.map((faq, index) => {
4747
const ident = `item-${index + 1}`;
48-
return <AccordionItem value={ident} key={index} id={ident} className="my-2 ">
49-
<AccordionTrigger className="accord-trig font-semibold tracking-wide"><span className="mt-1">{faq.q}</span></AccordionTrigger>
50-
<AccordionContent className="text-left text-[2rem] text-base">{faq.a}</AccordionContent>
51-
</AccordionItem>;
48+
return (
49+
<AccordionItem value={ident} key={index} id={ident} className='my-2 '>
50+
<AccordionTrigger className='accord-trig font-semibold tracking-wide'>
51+
<span className='mt-1'>{faq.q}</span>
52+
</AccordionTrigger>
53+
<AccordionContent className='text-left text-[2rem] text-base'>
54+
{faq.a}
55+
</AccordionContent>
56+
</AccordionItem>
57+
);
5258
});
5359

5460
function FAQs() {
5561
return (
56-
<div className="flex min-h-screen relative py-20">
62+
<div className='flex min-h-screen relative py-20'>
5763
<Star9 className='absolute w-[32vh] right-0 bottom-0 translate-x-1/2 translate-y-1/2' />
58-
59-
<div className="z-10 flex flex-col self-center w-full max-w-lg md:max-w-2xl lg:max-w-3xl xl:max-w-5xl mx-auto ">
60-
<div className="flex justify-between items-center">
61-
<h1 className="text-left text-4xl md:text-6xl font-extrabold text-border mt-4">FAQs</h1>
62-
<Star21 className="h-16"/>
64+
65+
<div className='z-10 flex flex-col self-center w-full max-w-lg md:max-w-2xl lg:max-w-3xl xl:max-w-5xl mx-auto '>
66+
<div className='flex justify-between items-center'>
67+
<h1 className='text-left text-4xl md:text-6xl font-extrabold text-border mt-4'>
68+
FAQs
69+
</h1>
70+
<Star21 className='h-16' />
6371
</div>
64-
<Accordion type="single" className="">
72+
<Accordion type='single' className=''>
6573
{faqItems}
6674
</Accordion>
6775
</div>

app/src/components/sections/Footer.tsx

Lines changed: 60 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -6,69 +6,88 @@ import x from '@/assets/x.svg';
66

77
function Footer() {
88
return (
9-
<footer className="bg-main border-t-4 border-border overflow-hidden">
10-
<div className="relative z-10 max-w-6xl mx-auto px-8 pt-16 pb-4">
11-
12-
<div className="flex flex-wrap gap-6 mb-12 justify-between">
13-
14-
<div className="flex flex-col justify-between max-w-[600px] lg:max-w-[700px] text-left p-6">
15-
<div className="mb-6">
16-
<img src={logo} alt="Cascade Logo" className="h-8 mb-6" />
17-
<p className="text-foreground text-lg leading-snug tracking-wide font-semibold">
18-
Transparent and secure funding for all.</p>
9+
<footer className='bg-main border-t-4 border-border overflow-hidden'>
10+
<div className='relative z-10 max-w-6xl mx-auto px-8 pt-16 pb-4'>
11+
<div className='flex flex-wrap gap-6 mb-12 justify-between'>
12+
<div className='flex flex-col justify-between max-w-[600px] lg:max-w-[700px] text-left p-6'>
13+
<div className='mb-6'>
14+
<img src={logo} alt='Cascade Logo' className='h-8 mb-6' />
15+
<p className='text-foreground text-lg leading-snug tracking-wide font-semibold'>
16+
Transparent and secure funding for all.
17+
</p>
1918
</div>
20-
<div className="flex gap-4 mt-4">
21-
<Button size="icon">
22-
<img src={github} alt="GitHub" className="h-6 w-6" />
19+
<div className='flex gap-4 mt-4'>
20+
<Button size='icon'>
21+
<img src={github} alt='GitHub' className='h-6 w-6' />
2322
</Button>
24-
<Button size="icon">
25-
<img src={x} alt="X" className="h-6 w-6" />
23+
<Button size='icon'>
24+
<img src={x} alt='X' className='h-6 w-6' />
2625
</Button>
2726
</div>
2827
</div>
2928

30-
<div className="flex md:flex-wrap gap-6">
31-
<div className="flex-none w-full text-left p-6">
32-
<h4 className="text-xl font-bold text-foreground mb-6">
29+
<div className='flex md:flex-wrap gap-6'>
30+
<div className='flex-none w-full text-left p-6'>
31+
<h4 className='text-xl font-bold text-foreground mb-6'>
3332
Legal Schmeagal
3433
</h4>
35-
<nav className="space-y-3">
36-
<Link to="/raise" className="block text-foreground hover:text-background transition-colors duration-200 text-lg font-semibold relative group">
37-
<span className="absolute left-0 bottom-0 w-0 h-0.5 bg-background transition-all duration-300 group-hover:w-full"></span>
34+
<nav className='space-y-3'>
35+
<Link
36+
to='/raise'
37+
className='block text-foreground hover:text-background transition-colors duration-200 text-lg font-semibold relative group'
38+
>
39+
<span className='absolute left-0 bottom-0 w-0 h-0.5 bg-background transition-all duration-300 group-hover:w-full'></span>
3840
Privacy Policy
3941
</Link>
40-
<Link to="/about" className="block text-foreground hover:text-background transition-colors duration-200 text-lg font-semibold relative group">
41-
<span className="absolute left-0 bottom-0 w-0 h-0.5 bg-background transition-all duration-300 group-hover:w-full"></span>
42+
<Link
43+
to='/about'
44+
className='block text-foreground hover:text-background transition-colors duration-200 text-lg font-semibold relative group'
45+
>
46+
<span className='absolute left-0 bottom-0 w-0 h-0.5 bg-background transition-all duration-300 group-hover:w-full'></span>
4247
Terms of Service
4348
</Link>
44-
<Link to="/how-it-works" className="block text-foreground hover:text-background transition-colors duration-200 text-lg font-semibold relative group">
45-
<span className="absolute left-0 bottom-0 w-0 h-0.5 bg-background transition-all duration-300 group-hover:w-full"></span>
46-
49+
<Link
50+
to='/how-it-works'
51+
className='block text-foreground hover:text-background transition-colors duration-200 text-lg font-semibold relative group'
52+
>
53+
<span className='absolute left-0 bottom-0 w-0 h-0.5 bg-background transition-all duration-300 group-hover:w-full'></span>
4754
</Link>
4855
</nav>
4956
</div>
5057
</div>
51-
52-
<div className="flex md:flex-wrap gap-6">
53-
<div className="flex-none w-full text-left p-6">
54-
<h4 className="text-xl font-bold text-foreground mb-6">
58+
59+
<div className='flex md:flex-wrap gap-6'>
60+
<div className='flex-none w-full text-left p-6'>
61+
<h4 className='text-xl font-bold text-foreground mb-6'>
5562
Navigation
5663
</h4>
57-
<nav className="space-y-3">
58-
<Link to="/how-it-works" className="block text-foreground hover:text-background transition-colors duration-200 text-lg font-semibold relative group">
59-
<span className="absolute left-0 bottom-0 w-0 h-0.5 bg-background transition-all duration-300 group-hover:w-full"></span>
64+
<nav className='space-y-3'>
65+
<Link
66+
to='/how-it-works'
67+
className='block text-foreground hover:text-background transition-colors duration-200 text-lg font-semibold relative group'
68+
>
69+
<span className='absolute left-0 bottom-0 w-0 h-0.5 bg-background transition-all duration-300 group-hover:w-full'></span>
6070
Home
6171
</Link>
62-
<Link to="/donate" className="block text-foreground hover:text-background transition-colors duration-200 text-lg font-semibold relative group">
63-
<span className="absolute left-0 bottom-0 w-0 h-0.5 bg-background transition-all duration-300 group-hover:w-full"></span>
72+
<Link
73+
to='/donate'
74+
className='block text-foreground hover:text-background transition-colors duration-200 text-lg font-semibold relative group'
75+
>
76+
<span className='absolute left-0 bottom-0 w-0 h-0.5 bg-background transition-all duration-300 group-hover:w-full'></span>
6477
How it works
6578
</Link>
66-
<Link to="/raise" className="block text-foreground hover:text-background transition-colors duration-200 text-lg font-semibold relative group">
67-
<span className="absolute left-0 bottom-0 w-0 h-0.5 bg-background transition-all duration-300 group-hover:w-full"></span>
79+
<Link
80+
to='/raise'
81+
className='block text-foreground hover:text-background transition-colors duration-200 text-lg font-semibold relative group'
82+
>
83+
<span className='absolute left-0 bottom-0 w-0 h-0.5 bg-background transition-all duration-300 group-hover:w-full'></span>
6884
Features
6985
</Link>
70-
<Link to="/about" className="block text-foreground hover:text-background transition-colors duration-200 text-lg font-semibold relative group">
71-
<span className="absolute left-0 bottom-0 w-0 h-0.5 bg-background transition-all duration-300 group-hover:w-full"></span>
86+
<Link
87+
to='/about'
88+
className='block text-foreground hover:text-background transition-colors duration-200 text-lg font-semibold relative group'
89+
>
90+
<span className='absolute left-0 bottom-0 w-0 h-0.5 bg-background transition-all duration-300 group-hover:w-full'></span>
7291
FAQs
7392
</Link>
7493
</nav>
@@ -77,8 +96,8 @@ function Footer() {
7796
</div>
7897

7998
{/* Bottom section - also a grid-like element */}
80-
<div className="p-3">
81-
<div className="flex flex-col justify-center items-center gap-4 text-foreground text-lg font-semibold px-4 py-1">
99+
<div className='p-3'>
100+
<div className='flex flex-col justify-center items-center gap-4 text-foreground text-lg font-semibold px-4 py-1'>
82101
<span>© 2024 Cascade. All rights reserved</span>
83102
<span>Made with ❤️ in India.</span>
84103
</div>

0 commit comments

Comments
 (0)