Merge version_1 into main #2

Merged
bender merged 2 commits from version_1 into main 2026-03-11 19:24:52 +00:00
2 changed files with 28 additions and 45 deletions

View File

@@ -59,10 +59,10 @@ export default function LandingPage() {
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AoNZKUMOk13TA4FpAcwluoe7g9/a-sleek-professional-discord-bot-dashboa-1773256989843-6c0154b1.png", imageAlt: "Kavach Bot Dashboard"
},
{
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AoNZKUMOk13TA4FpAcwluoe7g9/a-premium-shield-icon-symbolizing-securi-1773256987658-3dbffe55.png?_wi=1", imageAlt: "Security Shield"
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AoNZKUMOk13TA4FpAcwluoe7g9/a-premium-shield-icon-symbolizing-securi-1773256987658-3dbffe55.png", imageAlt: "Security Shield"
},
{
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AoNZKUMOk13TA4FpAcwluoe7g9/a-visual-representation-of-antinuke-prot-1773256988833-844a9c0f.png?_wi=1", imageAlt: "AntiNuke Protection"
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AoNZKUMOk13TA4FpAcwluoe7g9/a-visual-representation-of-antinuke-prot-1773256988833-844a9c0f.png", imageAlt: "AntiNuke Protection"
}
]}
autoplayDelay={5000}
@@ -102,7 +102,7 @@ export default function LandingPage() {
tag="Protection"
features={[
{
title: "AntiNuke Protection", description: "Prevent server nuking with real-time detection of mass bans, channel deletions, role removals, and unauthorized permission changes. Instantly reverts destructive actions and strips attacker permissions.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AoNZKUMOk13TA4FpAcwluoe7g9/a-visual-representation-of-antinuke-prot-1773256988833-844a9c0f.png?_wi=2", imageAlt: "AntiNuke Protection"
title: "AntiNuke Protection", description: "Prevent server nuking with real-time detection of mass bans, channel deletions, role removals, and unauthorized permission changes. Instantly reverts destructive actions and strips attacker permissions.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AoNZKUMOk13TA4FpAcwluoe7g9/a-visual-representation-of-antinuke-prot-1773256988833-844a9c0f.png", imageAlt: "AntiNuke Protection"
},
{
title: "AI Automod", description: "Advanced AI-powered spam filtering, phishing detection, and malicious content blocking. Automatically moderate your server with intelligent threat detection.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AoNZKUMOk13TA4FpAcwluoe7g9/a-visual-showing-ai-powered-automated-mo-1773256988978-b13056c4.png", imageAlt: "AI Automod Spam Filtering"
@@ -117,10 +117,9 @@ export default function LandingPage() {
title: "Captcha Verification", description: "Advanced member verification system with CAPTCHA challenges. Screen new members to prevent raid attacks and malicious bots.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AoNZKUMOk13TA4FpAcwluoe7g9/a-captcha-verification-and-member-verifi-1773256989614-ed5dc2a6.png", imageAlt: "Captcha Verification"
},
{
title: "JoinGate Raid Protection", description: "Real-time raid detection and automatic blocking. Protect your server from coordinated attacks and mass join raids.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AoNZKUMOk13TA4FpAcwluoe7g9/a-visualization-of-joingate-raid-protect-1773256989279-2c602c38.png?_wi=1", imageAlt: "JoinGate Raid Protection"
title: "JoinGate Raid Protection", description: "Real-time raid detection and automatic blocking. Protect your server from coordinated attacks and mass join raids.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AoNZKUMOk13TA4FpAcwluoe7g9/a-visualization-of-joingate-raid-protect-1773256989279-2c602c38.png", imageAlt: "JoinGate Raid Protection"
}
]}
gridVariant="three-columns-all-equal-width"
animationType="slide-up"
textboxLayout="default"
useInvertedBackground={false}
@@ -134,10 +133,10 @@ export default function LandingPage() {
tag="Official"
products={[
{
id: "kavach-standard", name: "Kavach", price: "Free", variant: "Standard Security Suite", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AoNZKUMOk13TA4FpAcwluoe7g9/a-premium-shield-icon-symbolizing-securi-1773256987658-3dbffe55.png?_wi=2", imageAlt: "Kavach Bot"
id: "kavach-standard", name: "Kavach", price: "Free", variant: "Standard Security Suite", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AoNZKUMOk13TA4FpAcwluoe7g9/a-premium-shield-icon-symbolizing-securi-1773256987658-3dbffe55.png", imageAlt: "Kavach Bot"
},
{
id: "kavach-premium", name: "Kavach Premium", price: "Premium Tier", variant: "Enhanced Protection", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AoNZKUMOk13TA4FpAcwluoe7g9/a-visualization-of-joingate-raid-protect-1773256989279-2c602c38.png?_wi=2", imageAlt: "Kavach Premium Bot"
id: "kavach-premium", name: "Kavach Premium", price: "Premium Tier", variant: "Enhanced Protection", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AoNZKUMOk13TA4FpAcwluoe7g9/a-visualization-of-joingate-raid-protect-1773256989279-2c602c38.png", imageAlt: "Kavach Premium Bot"
},
{
id: "suno-music", name: "Suno Music Bot", price: "Free", variant: "Music & Entertainment", imageSrc: "http://img.b2bpic.net/free-vector/gradient-pack-twitch-panels_23-2149207785.jpg", imageAlt: "Suno Music Bot"
@@ -166,7 +165,6 @@ export default function LandingPage() {
id: "uptime", value: "99.9%", title: "Guaranteed Uptime", items: ["Reliable infrastructure", "Redundant systems", "Priority support"]
}
]}
gridVariant="three-columns-all-equal-width"
animationType="slide-up"
textboxLayout="default"
useInvertedBackground={false}
@@ -189,7 +187,6 @@ export default function LandingPage() {
title: "Multi-Server Dashboard", description: "Manage AntiNuke, Automod, and moderation settings across all your Discord servers from a single centralized dashboard.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AoNZKUMOk13TA4FpAcwluoe7g9/a-multi-server-management-dashboard-show-1773256988775-c96d210c.png", imageAlt: "Multi-Server Dashboard"
}
]}
gridVariant="three-columns-all-equal-width"
animationType="slide-up"
textboxLayout="default"
useInvertedBackground={false}
@@ -215,7 +212,6 @@ export default function LandingPage() {
id: "4", name: "Casey Williams", role: "Security Officer", testimonial: "Professional-grade security at no cost. Kavach Bot provides enterprise-level protection that rivals paid alternatives. This is a game-changer.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AoNZKUMOk13TA4FpAcwluoe7g9/professional-headshot-of-a-discord-secur-1773256989083-ee3ec59f.png", imageAlt: "Casey Williams"
}
]}
gridVariant="four-items-2x2-equal-grid"
animationType="slide-up"
textboxLayout="default"
useInvertedBackground={false}
@@ -227,6 +223,7 @@ export default function LandingPage() {
title="Trusted by Leading Platforms"
description="Kavach Bot is recognized and supported by the Discord community ecosystem"
tag="Partners"
names={["Discord", "GitHub", "Twitter", "Reddit", "YouTube", "Twitch", "Stripe", "Vercel"]}
logos={[
"http://img.b2bpic.net/free-vector/gradient-social-media-logo-collection_23-2148311384.jpg", "http://img.b2bpic.net/free-vector/creative-code-logo-set_23-2148814922.jpg", "http://img.b2bpic.net/free-vector/hand-drawn-flat-social-media-logo-set_23-2150787558.jpg", "http://img.b2bpic.net/free-photo/medium-shot-friends-celebrating-gender-reveal_23-2150154728.jpg", "http://img.b2bpic.net/free-vector/subscribers-label-set_23-2151000411.jpg", "http://img.b2bpic.net/free-vector/gradient-pack-twitch-panels_23-2149207785.jpg", "http://img.b2bpic.net/free-vector/web-template-business-with-smartphone_23-2148335282.jpg", "http://img.b2bpic.net/free-vector/cloud-computing-concept_24908-55292.jpg"
]}

View File

@@ -1,51 +1,37 @@
"use client";
import { memo } from "react";
import useSvgTextLogo from "./useSvgTextLogo";
import { cls } from "@/lib/utils";
import React from 'react';
interface SvgTextLogoProps {
logoText: string;
adjustHeightFactor?: number;
verticalAlign?: "top" | "center";
text: string;
className?: string;
textClassName?: string;
dominantBaseline?: 'auto' | 'middle' | 'hanging' | 'mathematical';
}
const SvgTextLogo = memo<SvgTextLogoProps>(function SvgTextLogo({
logoText,
adjustHeightFactor,
verticalAlign = "top",
className = "",
}) {
const { svgRef, textRef, viewBox, aspectRatio } = useSvgTextLogo(logoText, false, adjustHeightFactor);
const SvgTextLogo: React.FC<SvgTextLogoProps> = ({
text,
className = '',
textClassName = '',
dominantBaseline = 'middle',
}) => {
return (
<svg
ref={svgRef}
viewBox={viewBox}
className={cls("w-full", className)}
style={{ aspectRatio: aspectRatio }}
preserveAspectRatio="none"
viewBox="0 0 300 100"
className={`w-full h-auto ${className}`}
role="img"
aria-label={`${logoText} logo`}
aria-label={text}
>
<text
ref={textRef}
x="0"
y={verticalAlign === "center" ? "50%" : "0"}
className="font-bold fill-current"
style={{
fontSize: "20px",
letterSpacing: "-0.02em",
dominantBaseline: verticalAlign === "center" ? "middle" : "text-before-edge"
}}
x="50%"
y="50%"
dominantBaseline={dominantBaseline}
textAnchor="middle"
className={`text-4xl font-bold ${textClassName}`}
fill="currentColor"
>
{logoText}
{text}
</text>
</svg>
);
});
SvgTextLogo.displayName = "SvgTextLogo";
};
export default SvgTextLogo;