diff --git a/app/[locale]/about/baza/page.tsx b/app/[locale]/about/baza/page.tsx index 3170f01..30aea75 100644 --- a/app/[locale]/about/baza/page.tsx +++ b/app/[locale]/about/baza/page.tsx @@ -1,8 +1,10 @@ import NormativBazaPage from "@/components/pages/about/aboutDetail/baza"; +import { Statistics } from "@/components/pages/home"; export default function Baza() { return (
+
); diff --git a/components/pages/about/aboutDetail/baza.tsx b/components/pages/about/aboutDetail/baza.tsx index 8c1aa20..195a263 100644 --- a/components/pages/about/aboutDetail/baza.tsx +++ b/components/pages/about/aboutDetail/baza.tsx @@ -1,65 +1,162 @@ "use client"; import { motion } from "framer-motion"; +import { ShieldCheck, BookOpen, Flame } from "lucide-react"; +import { useTranslations } from "next-intl"; + +const fadeUp = (delay = 0) => ({ + initial: { opacity: 0, y: 36 }, + animate: { opacity: 1, y: 0 }, + transition: { duration: 0.65, ease: [0.22, 1, 0.36, 1] as any, delay }, +}); + +const fadeUpView = (delay = 0) => ({ + initial: { opacity: 0, y: 48 }, + whileInView: { opacity: 1, y: 0 }, + transition: { duration: 0.65, ease: [0.22, 1, 0.36, 1] as any, delay }, + viewport: { once: true }, +}); export default function NormativBazaPage() { + const t = useTranslations(); + + const cards = [ + { + icon: BookOpen, + title: t("about.normativBaza.cards.card1.title"), + text: t("about.normativBaza.cards.card1.text"), + number: "01", + }, + { + icon: Flame, + title: t("about.normativBaza.cards.card2.title"), + text: t("about.normativBaza.cards.card2.text"), + number: "02", + }, + { + icon: ShieldCheck, + title: t("about.normativBaza.cards.card3.title"), + text: t("about.normativBaza.cards.card3.text"), + number: "03", + }, + ]; + return ( -
- {/* Hero Section */} -
- - Normativ Baza - +
+ {/* ── Hero ── */} +
+ {/* Background image */} + Normativ Baza - - Kompaniyamiz yong‘inga qarshi vositalar va tizimlarni o‘rnatish hamda - sotish faoliyatini amaldagi normativ-huquqiy hujjatlar asosida olib - boradi. Barcha ishlar davlat standartlari va xavfsizlik talablariga - muvofiq amalga oshiriladi. - -
+ {/* Layered gradient overlay — dark at bottom, semi at top */} +
- {/* Cards */} -
- {[ - { - title: "Davlat Standartlari", - text: "Yong‘in xavfsizligi bo‘yicha milliy standartlarga to‘liq mos keluvchi uskunalar va montaj ishlari.", - }, - { - title: "Texnik Reglamentlar", - text: "Yong‘inga qarshi tizimlarni loyihalash va o‘rnatishda amaldagi texnik reglamentlarga rioya qilinadi.", - }, - { - title: "Xavfsizlik Talablari", - text: "Har bir loyiha individual tahlil qilinadi va obyektning xavfsizlik darajasi hisobga olinadi.", - }, - ].map((item, i) => ( - + + {/* Content */} +
+ -

{item.title}

-

{item.text}

- - ))} + {t("about.normativBaza.hero.label")} +
+ + + {t("about.normativBaza.hero.title1")} +
+ + {t("about.normativBaza.hero.title2")} + +
+ + + {t("about.normativBaza.hero.description")} + + + {/* Decorative line */} + +
+ + {/* ── Cards section ── */} +
+ {/* Section label */} + + Asosiy yo'nalishlar + {t("about.normativBaza.sectionLabel")} + + +
+ {cards.map((card, i) => { + const Icon = card.icon; + return ( + + {/* Large number watermark */} + + {card.number} + + + {/* Icon */} +
+ +
+ + {/* Text */} +
+

+ {card.title} +

+

+ {card.text} +

+
+
+ ); + })} +
+
+ + {/* ── Bottom quote band ── */} + +

+ {t("about.normativBaza.bottomText")} +

+
+ +
+
); } diff --git a/components/pages/about/whyChooseUs.tsx b/components/pages/about/whyChooseUs.tsx index e140179..4ae0947 100644 --- a/components/pages/about/whyChooseUs.tsx +++ b/components/pages/about/whyChooseUs.tsx @@ -1,5 +1,3 @@ -"use client"; - import Image from "next/image"; import { Check } from "lucide-react"; import DotAnimatsiya from "@/components/dot/DotAnimatsiya"; diff --git a/messages/en.json b/messages/en.json index ee9c92e..9af714a 100644 --- a/messages/en.json +++ b/messages/en.json @@ -127,6 +127,30 @@ "notePP": "Installation guide for PP pipes and fittings", "noteTrailer": "Installation guide for welded saddles", "noteFlans": "Installation guide for PP flanges" + }, + "normativBaza": { + "hero": { + "label": "Documents & Standards", + "title1": "Regulatory", + "title2": "Framework", + "description": "Our company installs and supplies fire protection equipment and systems in accordance with current regulatory and legal standards." + }, + "sectionLabel": "Main Directions", + "cards": { + "card1": { + "title": "State Standards", + "text": "Equipment and installation works fully comply with national fire safety standards." + }, + "card2": { + "title": "Technical Regulations", + "text": "All fire protection systems are designed and installed in compliance with current technical regulations." + }, + "card3": { + "title": "Safety Requirements", + "text": "Each project is individually analyzed, taking into account the safety level of the facility." + } + }, + "bottomText": "All works are carried out in accordance with state standards and safety requirements." } }, "contact": { diff --git a/messages/ru.json b/messages/ru.json index 27e01b8..671504a 100644 --- a/messages/ru.json +++ b/messages/ru.json @@ -127,6 +127,30 @@ "notePP": "Инструкция по монтажу ПП труб и фитингов", "noteTrailer": "Инструкция по монтажу вварных сёдел", "noteFlans": "Инструкция по монтажу фланцев из ПП" + }, + "normativBaza": { + "hero": { + "label": "Документы и стандарты", + "title1": "Нормативная", + "title2": "База", + "description": "Наша компания осуществляет установку и продажу противопожарных средств и систем на основании действующих нормативно-правовых документов." + }, + "sectionLabel": "Основные направления", + "cards": { + "card1": { + "title": "Государственные стандарты", + "text": "Оборудование и монтажные работы полностью соответствуют национальным стандартам пожарной безопасности." + }, + "card2": { + "title": "Технические регламенты", + "text": "При проектировании и установке противопожарных систем соблюдаются действующие технические регламенты." + }, + "card3": { + "title": "Требования безопасности", + "text": "Каждый проект анализируется индивидуально с учетом уровня безопасности объекта." + } + }, + "bottomText": "Все работы выполняются в соответствии с государственными стандартами и требованиями безопасности." } }, "contact": { diff --git a/messages/uz.json b/messages/uz.json index d1f0505..9b654c8 100644 --- a/messages/uz.json +++ b/messages/uz.json @@ -121,12 +121,36 @@ "contact": "BIZ BILAN BOG'LANISH", "award": "Eng Yaxshi Yong'in Himoyasi 2025" }, - "subPages":{ - "baza":"Normativ baza", - "certificate":"SLT BLOCKFIRE sertifikatlari", - "notePP":"PP trubalar va fitinglar bo‘yicha o‘rnatish qo‘llanmasi", - "noteTrailer":"Qo‘shma tirkamalar o‘rnatish bo‘yicha qo‘llanma", - "noteFlans":"PP flanslar o‘rnatish bo‘yicha qo‘llanma" + "subPages": { + "baza": "Normativ baza", + "certificate": "SLT BLOCKFIRE sertifikatlari", + "notePP": "PP trubalar va fitinglar bo‘yicha o‘rnatish qo‘llanmasi", + "noteTrailer": "Qo‘shma tirkamalar o‘rnatish bo‘yicha qo‘llanma", + "noteFlans": "PP flanslar o‘rnatish bo‘yicha qo‘llanma" + }, + "normativBaza": { + "hero": { + "label": "Hujjatlar va standartlar", + "title1": "Normativ", + "title2": "Baza", + "description": "Kompaniyamiz yong'inga qarshi vositalar va tizimlarni o'rnatish hamda sotish faoliyatini amaldagi normativ-huquqiy hujjatlar asosida olib boradi." + }, + "sectionLabel": "Asosiy yo'nalishlar", + "cards": { + "card1": { + "title": "Davlat Standartlari", + "text": "Yong'in xavfsizligi bo'yicha milliy standartlarga to'liq mos keluvchi uskunalar va montaj ishlari." + }, + "card2": { + "title": "Texnik Reglamentlar", + "text": "Yong'inga qarshi tizimlarni loyihalash va o'rnatishda amaldagi texnik reglamentlarga rioya qilinadi." + }, + "card3": { + "title": "Xavfsizlik Talablari", + "text": "Har bir loyiha individual tahlil qilinadi va obyektning xavfsizlik darajasi hisobga olinadi." + } + }, + "bottomText": "Barcha ishlar davlat standartlari va xavfsizlik talablariga muvofiq amalga oshiriladi." } }, "contact": { @@ -304,10 +328,10 @@ "productsNotFound": "Mahsulotlar topilmadi", "subcategory_not_found": "Subkategoriya topilmadi", "section": "Bo'lim", - "clear_all":"Barchasini tozalash", - "image_not_found":"Rasm mavjud emas", + "clear_all": "Barchasini tozalash", + "image_not_found": "Rasm mavjud emas", "loading_error": "Ma'lumotlarni yuklashda xatolik yuz berdi", - "products_not_found":"Mahsulotlar topilmadi", + "products_not_found": "Mahsulotlar topilmadi", "priceModal": { "title": "Narxni bilish", "product": {