Merge version_2_1781419274498 into main

Merge version_2_1781419274498 into main
This commit was merged in pull request #2.
This commit is contained in:
2026-06-14 06:43:13 +00:00
8 changed files with 341 additions and 205 deletions

View File

@@ -1,216 +1,33 @@
import AboutText from '@/components/sections/about/AboutText';
import ContactCta from '@/components/sections/contact/ContactCta';
import FaqTwoColumn from '@/components/sections/faq/FaqTwoColumn';
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
import FeaturesMediaCarousel from '@/components/sections/features/FeaturesMediaCarousel';
import HeroBrand from '@/components/sections/hero/HeroBrand';
import MetricsFeatureCards from '@/components/sections/metrics/MetricsFeatureCards';
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 FeaturesSection from './HomePage/sections/Features';
import ProductSection from './HomePage/sections/Product';
import FaqSection from './HomePage/sections/Faq';
import MetricsSection from './HomePage/sections/Metrics';
import ContactSection from './HomePage/sections/Contact';
export default function HomePage(): React.JSX.Element {
return (
<>
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroBrand
brand="KOINOT SAYOHATI 🚀"
description="Keling, koinotni birgalikda kashf etamiz! Sayyoralar va yulduzlar olamiga xush kelibsiz."
primaryButton={{
text: "Boshlash",
href: "#features",
}}
secondaryButton={{
text: "Qoidalar",
href: "#about",
}}
imageSrc="http://img.b2bpic.net/free-photo/anime-character-near-galaxy-planet-illustration_23-2151749881.jpg"
/>
</SectionErrorBoundary>
</div>
<>
<HeroSection />
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutText
title="Biz kimmiz?"
primaryButton={{
text: "O'yinni boshlash",
href: "#features",
}}
/>
</SectionErrorBoundary>
</div>
<AboutSection />
<div id="features" data-section="features">
<SectionErrorBoundary name="features">
<FeaturesMediaCarousel
tag="Sayyoralar"
title="Bizning ajoyib sayyoralarimiz"
description="Har bir sayyora haqida qiziqarli ma'lumotlar."
items={[
{
title: "Quyosh",
description: "Eng issiq yulduz!",
imageSrc: "http://img.b2bpic.net/free-photo/3d-sun-studio_23-2151021312.jpg",
buttonIcon: "Sun",
},
{
title: "Yer",
description: "Bizning uyimiz!",
imageSrc: "http://img.b2bpic.net/free-photo/planet-earth-cartoon-style_23-2151079670.jpg",
buttonIcon: "Globe",
},
{
title: "Oy",
description: "Tungi chirog'imiz!",
imageSrc: "http://img.b2bpic.net/free-photo/yellow-crescent-moon-isolated-white-background_107791-16442.jpg",
buttonIcon: "Moon",
},
{
title: "Mars",
description: "Qizil sayyora!",
imageSrc: "http://img.b2bpic.net/free-photo/view-animated-cartoon-planets-with-astronaut_23-2151699396.jpg",
buttonIcon: "Rocket",
},
{
title: "Saturn",
description: "Halqali go'zal!",
imageSrc: "http://img.b2bpic.net/free-photo/3d-rendering-space-planets-illustration_23-2151874984.jpg",
buttonIcon: "Circle",
},
{
title: "Yupiter",
description: "Eng kattasi!",
imageSrc: "http://img.b2bpic.net/free-photo/cartoon-style-portrait-two-child-austronauts_23-2151108976.jpg",
buttonIcon: "Star",
},
]}
/>
</SectionErrorBoundary>
</div>
<FeaturesSection />
<div id="product" data-section="product">
<SectionErrorBoundary name="product">
<FeaturesImageBento
tag="Mini O'yinlar"
title="Interaktiv vazifalar"
description="Sayyoralarni joylashtiring va yulduzlarni yig'ing!"
items={[
{
title: "Sudrab qo'y",
description: "Sayyoralarni o'rniga joyla",
imageSrc: "http://img.b2bpic.net/free-photo/view-3d-smiley-happy-sun-with-sky-background_23-2150937806.jpg",
},
{
title: "Topishmoq",
description: "Qaysi biri qizil?",
imageSrc: "http://img.b2bpic.net/free-photo/earth-cartoon-style_23-2151079778.jpg",
},
{
title: "Rang tanla",
description: "Quyosh rangini top",
imageSrc: "http://img.b2bpic.net/free-photo/fantasy-house-moon-illustration_23-2151627934.jpg",
},
{
title: "Koinot yugurishi",
description: "Astronavtga yordam ber",
imageSrc: "http://img.b2bpic.net/free-photo/view-animated-cartoon-planets_23-2151699411.jpg",
},
{
title: "Yulduz yig'ish",
description: "Yulduzlarni sana",
imageSrc: "http://img.b2bpic.net/free-vector/sticker-template-with-saturn-cartoon-style-isolated_1308-65463.jpg",
},
{
title: "Kometani ushla",
description: "Kometalarni tut",
imageSrc: "http://img.b2bpic.net/free-photo/cartoon-style-portrait-two-child-austronauts_23-2151108891.jpg",
},
{
title: "Yakuniy bosqich",
description: "Sayohatni yakunla",
imageSrc: "http://img.b2bpic.net/free-photo/galaxy-planets-digital-art_23-2151727705.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<ProductSection />
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqTwoColumn
tag="Savol-Javob"
title="Koinot sirlari"
description="Bolalar uchun sodda javoblar."
items={[
{
question: "Quyosh nima?",
answer: "Quyosh bu katta va issiq yulduz!",
},
{
question: "Mars qanaqa rang?",
answer: "Mars - qizil sayyora!",
},
{
question: "Biz qaysi sayyorada yashaymiz?",
answer: "Bizning uyimiz - Yer!",
},
]}
/>
</SectionErrorBoundary>
</div>
<FaqSection />
<div id="metrics" data-section="metrics">
<SectionErrorBoundary name="metrics">
<MetricsFeatureCards
tag="Yutuqlar"
title="Sen to'plagan yulduzlar"
description="Sening koinotdagi muvaffaqiyatlaring."
metrics={[
{
value: "12",
title: "Yulduzlar",
features: [
"Yaxshi!",
"Ajoyib!",
"Super!",
],
},
{
value: "5",
title: "Sayyoralar",
features: [
"Kashfiyotchi!",
"Astronavt!",
],
},
{
value: "1",
title: "Raketa",
features: [
"Parvoz tayyor!",
],
},
]}
/>
</SectionErrorBoundary>
</div>
<MetricsSection />
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<ContactCta
tag="Yakun"
text="Sayohatni qaytadan boshlaysizmi?"
primaryButton={{
text: "Qaytadan o'ynash",
href: "#hero",
}}
secondaryButton={{
text: "Chiqish",
href: "/",
}}
/>
</SectionErrorBoundary>
</div>
<ContactSection />
</>
);
}

View File

@@ -0,0 +1,22 @@
// 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="Biz kimmiz?"
primaryButton={{
text: "O'yinni boshlash",
href: "#features",
}}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,27 @@
// 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="Yakun"
text="Sayohatni qaytadan boshlaysizmi?"
primaryButton={{
text: "Qaytadan o'ynash",
href: "#hero",
}}
secondaryButton={{
text: "Chiqish",
href: "/",
}}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,34 @@
// 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 FaqTwoColumn from '@/components/sections/faq/FaqTwoColumn';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function FaqSection(): React.JSX.Element {
return (
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqTwoColumn
tag="Savol-Javob"
title="Koinot sirlari"
description="Bolalar uchun sodda javoblar."
items={[
{
question: "Quyosh nima?",
answer: "Quyosh bu katta va issiq yulduz!",
},
{
question: "Mars qanaqa rang?",
answer: "Mars - qizil sayyora!",
},
{
question: "Biz qaysi sayyorada yashaymiz?",
answer: "Bizning uyimiz - Yer!",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,58 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "features" section.
import React from 'react';
import FeaturesMediaCarousel from '@/components/sections/features/FeaturesMediaCarousel';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function FeaturesSection(): React.JSX.Element {
return (
<div id="features" data-section="features">
<SectionErrorBoundary name="features">
<FeaturesMediaCarousel
tag="Sayyoralar"
title="Bizning ajoyib sayyoralarimiz"
description="Har bir sayyora haqida qiziqarli ma'lumotlar."
items={[
{
title: "Quyosh",
description: "Eng issiq yulduz!",
imageSrc: "http://img.b2bpic.net/free-photo/3d-sun-studio_23-2151021312.jpg",
buttonIcon: "Sun",
},
{
title: "Yer",
description: "Bizning uyimiz!",
imageSrc: "http://img.b2bpic.net/free-photo/planet-earth-cartoon-style_23-2151079670.jpg",
buttonIcon: "Globe",
},
{
title: "Oy",
description: "Tungi chirog'imiz!",
imageSrc: "http://img.b2bpic.net/free-photo/yellow-crescent-moon-isolated-white-background_107791-16442.jpg",
buttonIcon: "Moon",
},
{
title: "Mars",
description: "Qizil sayyora!",
imageSrc: "http://img.b2bpic.net/free-photo/view-animated-cartoon-planets-with-astronaut_23-2151699396.jpg",
buttonIcon: "Rocket",
},
{
title: "Saturn",
description: "Halqali go'zal!",
imageSrc: "http://img.b2bpic.net/free-photo/3d-rendering-space-planets-illustration_23-2151874984.jpg",
buttonIcon: "Circle",
},
{
title: "Yupiter",
description: "Eng kattasi!",
imageSrc: "http://img.b2bpic.net/free-photo/cartoon-style-portrait-two-child-austronauts_23-2151108976.jpg",
buttonIcon: "Star",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,75 @@
/* eslint-disable */
// @ts-nocheck — generated by catalog-eject; runtime-correct but TS strict-mode false-positives on inlined catalog body
import ButtonBounce from "@/components/ui/ButtonBounce";
import ButtonBubble from "@/components/ui/ButtonBubble";
import HeroBackgroundSlot from "@/components/ui/HeroBackgroundSlot";
import TextAnimation from "@/components/ui/TextAnimation";
import ImageOrVideo from "@/components/ui/ImageOrVideo";
import AutoFillText from "@/components/ui/AutoFillText";
const primaryButton = {
text: "BOSHLASH 🚀",
href: "#features"
};
const secondaryButton = {
text: "Qoidalar 📜",
href: "#about"
};
type HeroBrandProps = {
brand: string;
description: string;
primaryButton: { text: string; href: string };
secondaryButton: { text: string; href: string };
} & ({ imageSrc: string; videoSrc?: never } | { videoSrc: string; imageSrc?: never });
const HeroInline = () => {
return (
<section
aria-label="Hero section"
className="relative w-full h-svh overflow-hidden flex flex-col justify-end mb-20"
>
<HeroBackgroundSlot />
<ImageOrVideo
imageSrc={"https://img.freepik.com/free-vector/cute-astronaut-riding-rocket-cartoon-vector-icon-illustration-science-technology-icon-isolated_138676-5177.jpg"}
className="absolute inset-0 w-full h-full object-cover rounded-none"
/>
<div
className="absolute z-10 w-full h-[50svh] md:h-[75svh] left-0 bottom-0 backdrop-blur-xl mask-[linear-gradient(to_bottom,transparent,black_60%)]"
aria-hidden="true"
/>
<div className="relative z-10 w-content-width mx-auto pb-5">
<div className="flex flex-col">
<div className="w-full flex flex-col md:flex-row md:justify-between items-start md:items-end gap-3 md:gap-5">
<TextAnimation
text={"Keling, sayyoralar va yulduzlar olamiga birgalikda uchamiz! 🌟🪐"}
variant="fade-blur"
gradientText={false}
tag="p"
className="w-full md:w-1/2 text-lg md:text-2xl text-balance font-normal text-white leading-snug"
/>
<div className="w-full md:w-1/2 flex justify-start md:justify-end">
<div className="flex flex-wrap gap-3">
<ButtonBounce text={primaryButton.text} href={primaryButton.href} variant="primary"/>
<ButtonBubble text={secondaryButton.text} href={secondaryButton.href} variant="secondary"animationDelay={0.1} />
</div>
</div>
</div>
<AutoFillText className="font-semibold text-white">{"KOINOT SAYOHATI 🚀"}</AutoFillText>
</div>
</div>
</section>
);
};
export default function HeroSection() {
return (
<div data-webild-section="hero" id="hero">
<HeroInline />
</div>
);
}

View File

@@ -0,0 +1,46 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "metrics" section.
import React from 'react';
import MetricsFeatureCards from '@/components/sections/metrics/MetricsFeatureCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function MetricsSection(): React.JSX.Element {
return (
<div id="metrics" data-section="metrics">
<SectionErrorBoundary name="metrics">
<MetricsFeatureCards
tag="Yutuqlar"
title="Sen to'plagan yulduzlar"
description="Sening koinotdagi muvaffaqiyatlaring."
metrics={[
{
value: "12",
title: "Yulduzlar",
features: [
"Yaxshi!",
"Ajoyib!",
"Super!",
],
},
{
value: "5",
title: "Sayyoralar",
features: [
"Kashfiyotchi!",
"Astronavt!",
],
},
{
value: "1",
title: "Raketa",
features: [
"Parvoz tayyor!",
],
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,57 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "product" section.
import React from 'react';
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function ProductSection(): React.JSX.Element {
return (
<div id="product" data-section="product">
<SectionErrorBoundary name="product">
<FeaturesImageBento
tag="Mini O'yinlar"
title="Interaktiv vazifalar"
description="Sayyoralarni joylashtiring va yulduzlarni yig'ing!"
items={[
{
title: "Sudrab qo'y",
description: "Sayyoralarni o'rniga joyla",
imageSrc: "http://img.b2bpic.net/free-photo/view-3d-smiley-happy-sun-with-sky-background_23-2150937806.jpg",
},
{
title: "Topishmoq",
description: "Qaysi biri qizil?",
imageSrc: "http://img.b2bpic.net/free-photo/earth-cartoon-style_23-2151079778.jpg",
},
{
title: "Rang tanla",
description: "Quyosh rangini top",
imageSrc: "http://img.b2bpic.net/free-photo/fantasy-house-moon-illustration_23-2151627934.jpg",
},
{
title: "Koinot yugurishi",
description: "Astronavtga yordam ber",
imageSrc: "http://img.b2bpic.net/free-photo/view-animated-cartoon-planets_23-2151699411.jpg",
},
{
title: "Yulduz yig'ish",
description: "Yulduzlarni sana",
imageSrc: "http://img.b2bpic.net/free-vector/sticker-template-with-saturn-cartoon-style-isolated_1308-65463.jpg",
},
{
title: "Kometani ushla",
description: "Kometalarni tut",
imageSrc: "http://img.b2bpic.net/free-photo/cartoon-style-portrait-two-child-austronauts_23-2151108891.jpg",
},
{
title: "Yakuniy bosqich",
description: "Sayohatni yakunla",
imageSrc: "http://img.b2bpic.net/free-photo/galaxy-planets-digital-art_23-2151727705.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}