Merge version_2_1781487584484 into main #3

Merged
bender merged 1 commits from version_2_1781487584484 into main 2026-06-15 01:41:15 +00:00
11 changed files with 281 additions and 166 deletions

View File

@@ -1,5 +1,5 @@
import FooterMinimal from '@/components/sections/footer/FooterMinimal';
import NavbarDropdown from '@/components/ui/NavbarDropdown';
import NavbarFloatingLogo from '@/components/ui/NavbarFloatingLogo';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
import SiteBackgroundSlot from "@/components/ui/SiteBackgroundSlot";
import { Film, Instagram, Twitter } from "lucide-react";
@@ -42,8 +42,9 @@ export default function Layout() {
<StyleProvider buttonVariant="stagger" siteBackground="floatingGradient" heroBackground="lightRaysCenter">
<SiteBackgroundSlot />
<SectionErrorBoundary name="navbar">
<NavbarDropdown
<NavbarFloatingLogo
logo="Bilal Ethio-Swiss"
logoImageSrc="https://storage.googleapis.com/webild/users/user_3F9VDqmsKMWcc1BMo8WpdOd5oJ5/uploaded-1781487583335-i2j5y38y.jpg"
ctaButton={{
text: "Donate",
href: "#contact",

View File

@@ -1,177 +1,39 @@
import AboutText from '@/components/sections/about/AboutText';
import ContactCta from '@/components/sections/contact/ContactCta';
import FaqSimple from '@/components/sections/faq/FaqSimple';
import FeaturesBento from '@/components/sections/features/FeaturesBento';
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
import HeroOverlay from '@/components/sections/hero/HeroOverlay';
import MetricsMediaCards from '@/components/sections/metrics/MetricsMediaCards';
import TestimonialColumnMarqueeCards from '@/components/sections/testimonial/TestimonialColumnMarqueeCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
// AUTO-GENERATED shell by per-section-migrate.
// Section bodies live in ./<PageBase>/sections/<X>.tsx. Edit the section
// files directly. Non-block content (wrappers, non-inlinable sections) is
// preserved inline; extracted section blocks become <XSection/> refs.
export default function HomePage() {
import React from 'react';
import HeroSection from './HomePage/sections/Hero';
import AboutSection from './HomePage/sections/About';
import QuranSection from './HomePage/sections/Quran';
import CoursesSection from './HomePage/sections/Courses';
import VideosSection from './HomePage/sections/Videos';
import KidsSection from './HomePage/sections/Kids';
import FaqSection from './HomePage/sections/Faq';
import CommunitySection from './HomePage/sections/Community';
import ContactSection from './HomePage/sections/Contact';
export default function HomePage(): React.JSX.Element {
return (
<>
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroOverlay
tag="Ethio-Swiss Community"
title="Bilal Islamic Education"
description="Connecting heritage and faith through modern Islamic learning."
primaryButton={{
text: "Start Learning", href: "#courses"}}
secondaryButton={{
text: "Our Vision", href: "#about"}}
imageSrc="http://img.b2bpic.net/free-vector/gradient-golden-arabic-pattern_23-2148914195.jpg"
/>
</SectionErrorBoundary>
</div>
<>
<HeroSection />
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutText
title="Welcome to Bilal Ethio-Swiss, where tradition meets modern education to nurture our community."
primaryButton={{
text: "About Us", href: "#about"}}
/>
</SectionErrorBoundary>
</div>
<AboutSection />
<div id="quran" data-section="quran">
<SectionErrorBoundary name="quran">
<MetricsMediaCards
tag="Qur'an Program"
title="Excellence in Recitation"
description="Tajweed, Hifz, and daily reflection programs for all levels."
metrics={[
{
value: "Tajweed", title: "Precision", description: "Mastering the rules of articulation.", imageSrc: "http://img.b2bpic.net/free-photo/old-fashioned-library-desks-with-historic-charm-beautiful-decorations_482257-125708.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
<QuranSection />
<div id="courses" data-section="courses">
<SectionErrorBoundary name="courses">
<FeaturesRevealCardsBento
tag="Study Program"
title="Core Islamic Sciences"
description="Comprehensive curriculum covering the fundamentals of faith."
items={[
{
title: "Aqeedah", description: "Foundational belief studies.", href: "#", imageSrc: "http://img.b2bpic.net/free-vector/books-yellow-circle-celebrate-literacy-day_23-2147567325.jpg"},
{
title: "Fiqh", description: "Daily practical laws.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/ramadan-holy-quran-drums-front-side-white-background_187299-35722.jpg"},
{
title: "Seerah", description: "Life of the Prophet.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/ramadan-frame-holy-quran-front-view_187299-35699.jpg"},
{
title: "Islamic History", description: "Reflecting on our past.", href: "#", imageSrc: "http://img.b2bpic.net/free-vector/ebook-graphic-illustration_24908-54740.jpg"},
{
title: "Dawah", description: "Community building.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/ramadan-top-view-concept-with-quran_23-2147791794.jpg"},
{
title: "Tarbiyah", description: "Character building.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-senior-man-education-concept_23-2151074931.jpg"},
{
title: "Hadith", description: "Teachings of the Prophet.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/half-dried-brown-sour-cherries-cup-concrete-background-high-quality-photo_114579-67598.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
<CoursesSection />
<div id="videos" data-section="videos">
<SectionErrorBoundary name="videos">
<FeaturesBento
tag="Library"
title="Video Lessons"
description="Learn from our channel and insightful lectures."
features={[
{
title: "Islamic Stories", description: "Engaging narratives for all ages.", bentoComponent: "media-stack", mediaItems: [
{
imageSrc: "http://img.b2bpic.net/free-photo/happy-woman-talking-with-her-father-video-call-using-tablet-computer_482257-19679.jpg"},
{
imageSrc: "http://img.b2bpic.net/free-photo/old-woman-with-disability-holding-green-screen-digital-tablet-senior-person-sitting-wheelchair-using-blank-copy-space-with-isolated-chroma-key-mock-up-background-display_482257-39047.jpg"},
{
imageSrc: "http://img.b2bpic.net/free-photo/young-woman-teaching-students-english-lesson-online_23-2148962968.jpg"},
],
},
]}
/>
</SectionErrorBoundary>
</div>
<VideosSection />
<div id="kids" data-section="kids">
<SectionErrorBoundary name="kids">
<FeaturesBento
tag="Junior Scholars"
title="Kids Corner"
description="Fun stories, Duas, and Islamic cartoons."
features={[
{
title: "Dua Learning", description: "Everyday supplications.", bentoComponent: "media-stack", mediaItems: [
{
imageSrc: "http://img.b2bpic.net/free-photo/muslims-reading-from-quran_53876-20958.jpg"},
{
imageSrc: "http://img.b2bpic.net/free-photo/woman-teaching-classroom_23-2151696367.jpg"},
{
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-cartoony-jesus-christ_23-2150972171.jpg"},
],
},
]}
/>
</SectionErrorBoundary>
</div>
<KidsSection />
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqSimple
tag="Ask a Scholar"
title="Q&A Forum"
description="Get answers to your daily questions."
items={[
{
question: "How do I register for classes?", answer: "Click the registration button in our student portal."},
{
question: "Can I request a private session?", answer: "Yes, contact our administration team."},
{
question: "Is the content available in Amharic and German?", answer: "Yes, we prioritize multi-language support."},
]}
/>
</SectionErrorBoundary>
</div>
<FaqSection />
<div id="community" data-section="community">
<SectionErrorBoundary name="community">
<TestimonialColumnMarqueeCards
tag="Events"
title="Community Gatherings"
description="Join our Ethiopian-Swiss events."
testimonials={[
{
name: "Ahmed", role: "Student", quote: "The community bond is incredible.", imageSrc: "http://img.b2bpic.net/free-photo/girl-with-umbrella-cloudy-weather-walk-forest-stands-bridge-against-backdrop-landscape_169016-11781.jpg"},
{
name: "Sara", role: "Parent", quote: "My kids love the lessons.", imageSrc: "http://img.b2bpic.net/free-photo/cartoon-illustration-muslim-family_23-2151811894.jpg"},
{
name: "Yusuf", role: "Ustadh", quote: "Teaching here is a blessing.", imageSrc: "http://img.b2bpic.net/free-photo/man-sitting-bridge-edge-taking-selfie_23-2148622622.jpg"},
{
name: "Fatima", role: "Volunteer", quote: "A perfect bridge between two cultures.", imageSrc: "http://img.b2bpic.net/free-photo/young-photographer-with-backpack-cap-photographing-old-iron-bridge-rio-tinto_181624-50560.jpg"},
{
name: "Hassan", role: "Member", quote: "Truly educational and spiritual.", imageSrc: "http://img.b2bpic.net/free-photo/joyful-female-colleagues-watching-content-phone_74855-2027.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
<CommunitySection />
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<ContactCta
tag="Support Us"
text="Support Bilal Ethio-Swiss Dawah programs today."
primaryButton={{
text: "Donate Now", href: "#"}}
secondaryButton={{
text: "Get In Touch", href: "#"}}
/>
</SectionErrorBoundary>
</div>
<ContactSection />
</>
);
}

View File

@@ -0,0 +1,20 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "about" section.
import React from 'react';
import AboutText from '@/components/sections/about/AboutText';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function AboutSection(): React.JSX.Element {
return (
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutText
title="Welcome to Bilal Ethio-Swiss, where tradition meets modern education to nurture our community."
primaryButton={{
text: "About Us", href: "#about"}}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,32 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "community" section.
import React from 'react';
import TestimonialColumnMarqueeCards from '@/components/sections/testimonial/TestimonialColumnMarqueeCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function CommunitySection(): React.JSX.Element {
return (
<div id="community" data-section="community">
<SectionErrorBoundary name="community">
<TestimonialColumnMarqueeCards
tag="Events"
title="Community Gatherings"
description="Join our Ethiopian-Swiss events."
testimonials={[
{
name: "Ahmed", role: "Student", quote: "The community bond is incredible.", imageSrc: "http://img.b2bpic.net/free-photo/girl-with-umbrella-cloudy-weather-walk-forest-stands-bridge-against-backdrop-landscape_169016-11781.jpg"},
{
name: "Sara", role: "Parent", quote: "My kids love the lessons.", imageSrc: "http://img.b2bpic.net/free-photo/cartoon-illustration-muslim-family_23-2151811894.jpg"},
{
name: "Yusuf", role: "Ustadh", quote: "Teaching here is a blessing.", imageSrc: "http://img.b2bpic.net/free-photo/man-sitting-bridge-edge-taking-selfie_23-2148622622.jpg"},
{
name: "Fatima", role: "Volunteer", quote: "A perfect bridge between two cultures.", imageSrc: "http://img.b2bpic.net/free-photo/young-photographer-with-backpack-cap-photographing-old-iron-bridge-rio-tinto_181624-50560.jpg"},
{
name: "Hassan", role: "Member", quote: "Truly educational and spiritual.", imageSrc: "http://img.b2bpic.net/free-photo/joyful-female-colleagues-watching-content-phone_74855-2027.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,23 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "contact" section.
import React from 'react';
import ContactCta from '@/components/sections/contact/ContactCta';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function ContactSection(): React.JSX.Element {
return (
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<ContactCta
tag="Support Us"
text="Support Bilal Ethio-Swiss Dawah programs today."
primaryButton={{
text: "Donate Now", href: "#"}}
secondaryButton={{
text: "Get In Touch", href: "#"}}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,36 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "courses" section.
import React from 'react';
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function CoursesSection(): React.JSX.Element {
return (
<div id="courses" data-section="courses">
<SectionErrorBoundary name="courses">
<FeaturesRevealCardsBento
tag="Study Program"
title="Core Islamic Sciences"
description="Comprehensive curriculum covering the fundamentals of faith."
items={[
{
title: "Aqeedah", description: "Foundational belief studies.", href: "#", imageSrc: "http://img.b2bpic.net/free-vector/books-yellow-circle-celebrate-literacy-day_23-2147567325.jpg"},
{
title: "Fiqh", description: "Daily practical laws.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/ramadan-holy-quran-drums-front-side-white-background_187299-35722.jpg"},
{
title: "Seerah", description: "Life of the Prophet.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/ramadan-frame-holy-quran-front-view_187299-35699.jpg"},
{
title: "Islamic History", description: "Reflecting on our past.", href: "#", imageSrc: "http://img.b2bpic.net/free-vector/ebook-graphic-illustration_24908-54740.jpg"},
{
title: "Dawah", description: "Community building.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/ramadan-top-view-concept-with-quran_23-2147791794.jpg"},
{
title: "Tarbiyah", description: "Character building.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-senior-man-education-concept_23-2151074931.jpg"},
{
title: "Hadith", description: "Teachings of the Prophet.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/half-dried-brown-sour-cherries-cup-concrete-background-high-quality-photo_114579-67598.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,28 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "faq" section.
import React from 'react';
import FaqSimple from '@/components/sections/faq/FaqSimple';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function FaqSection(): React.JSX.Element {
return (
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqSimple
tag="Ask a Scholar"
title="Q&A Forum"
description="Get answers to your daily questions."
items={[
{
question: "How do I register for classes?", answer: "Click the registration button in our student portal."},
{
question: "Can I request a private session?", answer: "Yes, contact our administration team."},
{
question: "Is the content available in Amharic and German?", answer: "Yes, we prioritize multi-language support."},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,25 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "hero" section.
import React from 'react';
import HeroOverlay from '@/components/sections/hero/HeroOverlay';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function HeroSection(): React.JSX.Element {
return (
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroOverlay
tag="Ethio-Swiss Community"
title="Bilal Islamic Education"
description="Connecting heritage and faith through modern Islamic learning."
primaryButton={{
text: "Start Learning", href: "#courses"}}
secondaryButton={{
text: "Our Vision", href: "#about"}}
imageSrc="http://img.b2bpic.net/free-vector/gradient-golden-arabic-pattern_23-2148914195.jpg"
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,32 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "kids" section.
import React from 'react';
import FeaturesBento from '@/components/sections/features/FeaturesBento';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function KidsSection(): React.JSX.Element {
return (
<div id="kids" data-section="kids">
<SectionErrorBoundary name="kids">
<FeaturesBento
tag="Junior Scholars"
title="Kids Corner"
description="Fun stories, Duas, and Islamic cartoons."
features={[
{
title: "Dua Learning", description: "Everyday supplications.", bentoComponent: "media-stack", mediaItems: [
{
imageSrc: "http://img.b2bpic.net/free-photo/muslims-reading-from-quran_53876-20958.jpg"},
{
imageSrc: "http://img.b2bpic.net/free-photo/woman-teaching-classroom_23-2151696367.jpg"},
{
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-cartoony-jesus-christ_23-2150972171.jpg"},
],
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,24 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "quran" section.
import React from 'react';
import MetricsMediaCards from '@/components/sections/metrics/MetricsMediaCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function QuranSection(): React.JSX.Element {
return (
<div id="quran" data-section="quran">
<SectionErrorBoundary name="quran">
<MetricsMediaCards
tag="Qur'an Program"
title="Excellence in Recitation"
description="Tajweed, Hifz, and daily reflection programs for all levels."
metrics={[
{
value: "Tajweed", title: "Precision", description: "Mastering the rules of articulation.", imageSrc: "http://img.b2bpic.net/free-photo/old-fashioned-library-desks-with-historic-charm-beautiful-decorations_482257-125708.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,32 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "videos" section.
import React from 'react';
import FeaturesBento from '@/components/sections/features/FeaturesBento';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function VideosSection(): React.JSX.Element {
return (
<div id="videos" data-section="videos">
<SectionErrorBoundary name="videos">
<FeaturesBento
tag="Library"
title="Video Lessons"
description="Learn from our channel and insightful lectures."
features={[
{
title: "Islamic Stories", description: "Engaging narratives for all ages.", bentoComponent: "media-stack", mediaItems: [
{
imageSrc: "http://img.b2bpic.net/free-photo/happy-woman-talking-with-her-father-video-call-using-tablet-computer_482257-19679.jpg"},
{
imageSrc: "http://img.b2bpic.net/free-photo/old-woman-with-disability-holding-green-screen-digital-tablet-senior-person-sitting-wheelchair-using-blank-copy-space-with-isolated-chroma-key-mock-up-background-display_482257-39047.jpg"},
{
imageSrc: "http://img.b2bpic.net/free-photo/young-woman-teaching-students-english-lesson-online_23-2148962968.jpg"},
],
},
]}
/>
</SectionErrorBoundary>
</div>
);
}