Fix React TypeScript types and update BM Alpha UI
This commit is contained in:
Generated
+29
@@ -24,6 +24,8 @@
|
|||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/express": "^4.17.21",
|
"@types/express": "^4.17.21",
|
||||||
"@types/node": "^22.14.0",
|
"@types/node": "^22.14.0",
|
||||||
|
"@types/react": "^19.2.18",
|
||||||
|
"@types/react-dom": "^19.2.5",
|
||||||
"autoprefixer": "^10.4.21",
|
"autoprefixer": "^10.4.21",
|
||||||
"esbuild": "^0.25.0",
|
"esbuild": "^0.25.0",
|
||||||
"tailwindcss": "^4.1.14",
|
"tailwindcss": "^4.1.14",
|
||||||
@@ -1632,6 +1634,26 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
|
"node_modules/@types/react": {
|
||||||
|
"version": "19.2.18",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.18.tgz",
|
||||||
|
"integrity": "sha512-AnzbBERsrLKtk2XSfTbYRLjQPdy116Sty4q+T+Bp3IC4l6jNBvreVPAHmpq9qhXQM7CXZPjLVmGMw9sy+hxQ3w==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"csstype": "^3.2.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@types/react-dom": {
|
||||||
|
"version": "19.2.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.5.tgz",
|
||||||
|
"integrity": "sha512-fMPwH9v7r/pp43yUd2/Mbiex5KouJwwR3dzHkhLREUC6764VyDsqxhAxv6OFEYR1RhjOyD1naqba8ECDBe7ZQg==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"peerDependencies": {
|
||||||
|
"@types/react": "^19.2.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@types/retry": {
|
"node_modules/@types/retry": {
|
||||||
"version": "0.12.0",
|
"version": "0.12.0",
|
||||||
"resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz",
|
"resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz",
|
||||||
@@ -1985,6 +2007,13 @@
|
|||||||
"integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==",
|
"integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==",
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
|
"node_modules/csstype": {
|
||||||
|
"version": "3.2.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",
|
||||||
|
"integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
"node_modules/data-uri-to-buffer": {
|
"node_modules/data-uri-to-buffer": {
|
||||||
"version": "4.0.1",
|
"version": "4.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz",
|
||||||
|
|||||||
+4
-2
@@ -25,13 +25,15 @@
|
|||||||
"vite": "^6.2.3"
|
"vite": "^6.2.3"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@types/express": "^4.17.21",
|
||||||
"@types/node": "^22.14.0",
|
"@types/node": "^22.14.0",
|
||||||
|
"@types/react": "^19.2.18",
|
||||||
|
"@types/react-dom": "^19.2.5",
|
||||||
"autoprefixer": "^10.4.21",
|
"autoprefixer": "^10.4.21",
|
||||||
"esbuild": "^0.25.0",
|
"esbuild": "^0.25.0",
|
||||||
"tailwindcss": "^4.1.14",
|
"tailwindcss": "^4.1.14",
|
||||||
"tsx": "^4.21.0",
|
"tsx": "^4.21.0",
|
||||||
"typescript": "~5.8.2",
|
"typescript": "~5.8.2",
|
||||||
"vite": "^6.2.3",
|
"vite": "^6.2.3"
|
||||||
"@types/express": "^4.17.21"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ export const CommunityCTA: React.FC = () => {
|
|||||||
id="community-cta-subheading"
|
id="community-cta-subheading"
|
||||||
className="mt-4 text-xl sm:text-2xl lg:text-3xl font-extrabold text-[#00A6DB] dark:text-[#00D7FF] drop-shadow-sm"
|
className="mt-4 text-xl sm:text-2xl lg:text-3xl font-extrabold text-[#00A6DB] dark:text-[#00D7FF] drop-shadow-sm"
|
||||||
>
|
>
|
||||||
BM Alpha launches September 3 at 10 PM GMT.
|
BM Alpha launches September 17 at 10 PM GMT.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p className="mt-3 text-slate-700 dark:text-gray-300 text-sm sm:text-base max-w-xl mx-auto font-medium">
|
<p className="mt-3 text-slate-700 dark:text-gray-300 text-sm sm:text-base max-w-xl mx-auto font-medium">
|
||||||
|
|||||||
@@ -11,6 +11,13 @@ interface TimeLeft {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export const Countdown: React.FC = () => {
|
export const Countdown: React.FC = () => {
|
||||||
|
const launchDateLabel = new Intl.DateTimeFormat('en-US', {
|
||||||
|
month: 'short',
|
||||||
|
day: 'numeric',
|
||||||
|
year: 'numeric',
|
||||||
|
timeZone: 'UTC',
|
||||||
|
}).format(new Date(LAUNCH_DATE)).toUpperCase();
|
||||||
|
|
||||||
const calculateTimeLeft = (): TimeLeft => {
|
const calculateTimeLeft = (): TimeLeft => {
|
||||||
const target = new Date(LAUNCH_DATE).getTime();
|
const target = new Date(LAUNCH_DATE).getTime();
|
||||||
const now = new Date().getTime();
|
const now = new Date().getTime();
|
||||||
@@ -67,7 +74,7 @@ export const Countdown: React.FC = () => {
|
|||||||
<span className="w-2 h-2 rounded-full bg-[#FF8C32] animate-ping" />
|
<span className="w-2 h-2 rounded-full bg-[#FF8C32] animate-ping" />
|
||||||
<span className="w-1.5 h-1.5 rounded-full bg-[#FF8C32]" />
|
<span className="w-1.5 h-1.5 rounded-full bg-[#FF8C32]" />
|
||||||
<span className="text-[10px] font-bold text-[#00A6DB] dark:text-[#00D7FF] tracking-wider">
|
<span className="text-[10px] font-bold text-[#00A6DB] dark:text-[#00D7FF] tracking-wider">
|
||||||
SEP 3, 2026
|
{launchDateLabel}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ export const HeroSection: React.FC = () => {
|
|||||||
>
|
>
|
||||||
<span className="text-sm">🚀</span>
|
<span className="text-sm">🚀</span>
|
||||||
<span className="font-display font-black text-xs tracking-widest text-[#00A6DB] dark:text-[#00D7FF]">
|
<span className="font-display font-black text-xs tracking-widest text-[#00A6DB] dark:text-[#00D7FF]">
|
||||||
OFFICIAL LAUNCH: SEPTEMBER 3, 2026 AT 10 PM GMT
|
OFFICIAL LAUNCH: SEPTEMBER 17, 2026 AT 10 PM GMT
|
||||||
</span>
|
</span>
|
||||||
<span className="inline-block w-2 h-2 rounded-full bg-[#FF8C32] animate-pulse" />
|
<span className="inline-block w-2 h-2 rounded-full bg-[#FF8C32] animate-pulse" />
|
||||||
</div>
|
</div>
|
||||||
@@ -63,7 +63,7 @@ export const HeroSection: React.FC = () => {
|
|||||||
id="hero-description"
|
id="hero-description"
|
||||||
className="mt-4 text-base sm:text-lg text-slate-600 dark:text-gray-400 max-w-2xl font-medium"
|
className="mt-4 text-base sm:text-lg text-slate-600 dark:text-gray-400 max-w-2xl font-medium"
|
||||||
>
|
>
|
||||||
Built for the community. Powered by memes. Launching September 3, 2026 at 10 PM GMT on Solana.
|
Built for the community. Powered by memes. Launching September 17, 2026 at 10 PM GMT on Solana.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
{/* Primary CTA Buttons */}
|
{/* Primary CTA Buttons */}
|
||||||
|
|||||||
@@ -176,7 +176,7 @@ export const HowToBuySection: React.FC = () => {
|
|||||||
<ArrowRight className="w-4 h-4 text-black" />
|
<ArrowRight className="w-4 h-4 text-black" />
|
||||||
</a>
|
</a>
|
||||||
<p className="text-[11px] text-center text-slate-500 dark:text-gray-400 mt-2.5">
|
<p className="text-[11px] text-center text-slate-500 dark:text-gray-400 mt-2.5">
|
||||||
Trading opens on Solana decentralized exchanges upon launch on September 3, 2026 at 10 PM GMT.
|
Trading opens on Solana decentralized exchanges upon launch on September 17, 2026 at 10 PM GMT.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
+3
-3
@@ -4,8 +4,8 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
// Official Launch Date (Configurable in one single place)
|
// Official Launch Date (Configurable in one single place)
|
||||||
// Target: September 3, 2026 at 22:00 GMT (UTC)
|
// Target: September 17, 2026 at 22:00 GMT (UTC)
|
||||||
export const LAUNCH_DATE = "2026-09-03T22:00:00Z";
|
export const LAUNCH_DATE = "2026-09-17T22:00:00Z";
|
||||||
|
|
||||||
// Token Contract Address (Easily replaced once live on Solana mainnet)
|
// Token Contract Address (Easily replaced once live on Solana mainnet)
|
||||||
export const CONTRACT_ADDRESS = "COMING SOON";
|
export const CONTRACT_ADDRESS = "COMING SOON";
|
||||||
@@ -25,7 +25,7 @@ export const TOKEN_INFO = {
|
|||||||
name: "BM Alpha",
|
name: "BM Alpha",
|
||||||
ticker: "BMALPHA",
|
ticker: "BMALPHA",
|
||||||
network: "Solana",
|
network: "Solana",
|
||||||
launchDateString: "September 3, 2026",
|
launchDateString: "September 17, 2026",
|
||||||
totalSupply: "10,000,000,000 BMALPHA",
|
totalSupply: "10,000,000,000 BMALPHA",
|
||||||
totalSupplyNumber: 10000000000,
|
totalSupplyNumber: 10000000000,
|
||||||
buySellTax: "0% / 0%",
|
buySellTax: "0% / 0%",
|
||||||
|
|||||||
Reference in New Issue
Block a user