Merge version_1 into main #2

Merged
bender merged 2 commits from version_1 into main 2026-03-10 19:38:40 +00:00
2 changed files with 46 additions and 117 deletions

View File

@@ -39,9 +39,7 @@ export default function HomePage() {
brandName="Бабасов Камиль"
navItems={navItems}
button={{
text: "WhatsApp",
href: "https://wa.me/79689514737?text=Здравствуйте%21%20Нужна%20правовая%20помощь.%20Кратко%3A%20",
}}
text: "WhatsApp", href: "https://wa.me/79689514737?text=Здравствуйте%21%20Нужна%20правовая%20помощь.%20Кратко%3A%20"}}
className=""
buttonClassName="bg-red-600 hover:bg-red-700 text-white px-6 py-2 rounded-full"
/>
@@ -57,45 +55,23 @@ export default function HomePage() {
background={{ variant: "plain" }}
buttons={[
{
text: "Записаться на консультацию",
href: "https://wa.me/79689514737?text=Здравствуйте%21%20Нужна%20правовая%20помощь.%20Кратко%3A%20",
},
text: "Записаться на консультацию", href: "https://wa.me/79689514737?text=Здравствуйте%21%20Нужна%20правовая%20помощь.%20Кратко%3A%20"},
{
text: "Направления практики →",
href: "/practice",
},
text: "Направления практики →", href: "/practice"},
]}
carouselItems={[
{
id: "1",
imageSrc: "http://img.b2bpic.net/free-photo/old-psychologist-reviewing-patient-notes_482257-119283.jpg",
imageAlt: "адвокат консультация деловой офис",
},
id: "1", imageSrc: "http://img.b2bpic.net/free-photo/old-psychologist-reviewing-patient-notes_482257-119283.jpg", imageAlt: "адвокат консультация деловой офис"},
{
id: "2",
imageSrc: "http://img.b2bpic.net/free-photo/male-speaking-near-wooden-speech-stand-holding-book-his-hands_181624-42121.jpg",
imageAlt: "уголовное право суд зал",
},
id: "2", imageSrc: "http://img.b2bpic.net/free-photo/male-speaking-near-wooden-speech-stand-holding-book-his-hands_181624-42121.jpg", imageAlt: "уголовное право суд зал"},
{
id: "3",
imageSrc: "http://img.b2bpic.net/free-photo/close-up-businesswoman-s-hand-holding-pencil-paper-clipboard-desk_23-2148073330.jpg",
imageAlt: "адвокат коллегия профессиональное сообщество",
},
id: "3", imageSrc: "http://img.b2bpic.net/free-photo/close-up-businesswoman-s-hand-holding-pencil-paper-clipboard-desk_23-2148073330.jpg", imageAlt: "адвокат коллегия профессиональное сообщество"},
{
id: "4",
imageSrc: "http://img.b2bpic.net/free-photo/young-woman-white-shirt-holding-open-folder-looking-it-with-serious-face-standing-orange-wall_141793-71956.jpg",
imageAlt: "судебная экспертиза лаборатория",
},
id: "4", imageSrc: "http://img.b2bpic.net/free-photo/young-woman-white-shirt-holding-open-folder-looking-it-with-serious-face-standing-orange-wall_141793-71956.jpg", imageAlt: "судебная экспертиза лаборатория"},
{
id: "5",
imageSrc: "http://img.b2bpic.net/free-photo/physician-using-laptop-checkup-visit-with-old-man-sitting-waiting-room-lobby-general-practitioner-patient-talking-about-disease-diagnosis-healthcare-consulting-adult-health-center_482257-51644.jpg",
imageAlt: "уголовно-исполнительная система учреждение",
},
id: "5", imageSrc: "http://img.b2bpic.net/free-photo/physician-using-laptop-checkup-visit-with-old-man-sitting-waiting-room-lobby-general-practitioner-patient-talking-about-disease-diagnosis-healthcare-consulting-adult-health-center_482257-51644.jpg", imageAlt: "уголовно-исполнительная система учреждение"},
{
id: "6",
imageSrc: "http://img.b2bpic.net/free-photo/businesswomen-using-sign-language-talk-each-other_23-2148740306.jpg",
imageAlt: "адвокатская консультация мнение",
},
id: "6", imageSrc: "http://img.b2bpic.net/free-photo/businesswomen-using-sign-language-talk-each-other_23-2148740306.jpg", imageAlt: "адвокатская консультация мнение"},
]}
autoPlay={true}
autoPlayInterval={4000}
@@ -135,33 +111,13 @@ export default function HomePage() {
tagIcon={Briefcase}
features={[
{
id: "01",
title: "Уголовное право и процесс",
description: "Квалифицированная помощь на всех стадиях уголовного судопроизводства: предварительное следствие, дознание, судебное разбирательство в суде первой инстанции и апелляционном порядке. Защита прав и интересов доверителя в уголовных процессах.",
imageSrc: "http://img.b2bpic.net/free-photo/top-view-frame-with-book-handcuffs_23-2148230090.jpg?_wi=1",
imageAlt: "уголовный кодекс книга правовая",
},
id: "01", title: "Уголовное право и процесс", description: "Квалифицированная помощь на всех стадиях уголовного судопроизводства: предварительное следствие, дознание, судебное разбирательство в суде первой инстанции и апелляционном порядке. Защита прав и интересов доверителя в уголовных процессах.", imageSrc: "http://img.b2bpic.net/free-photo/top-view-frame-with-book-handcuffs_23-2148230090.jpg", imageAlt: "уголовный кодекс книга правовая"},
{
id: "02",
title: "Защита прав адвокатов",
description: "Специализированная защита профессиональных прав адвокатов, включая вопросы взаимодействия с органами следствия и дознания, защиту адвокатской деятельности и профессиональной независимости, разрешение конфликтов с профессиональным сообществом.",
imageSrc: "http://img.b2bpic.net/free-photo/executives-planning-business-strategy_1098-615.jpg?_wi=1",
imageAlt: "адвокатская коллегия членство",
},
id: "02", title: "Защита прав адвокатов", description: "Специализированная защита профессиональных прав адвокатов, включая вопросы взаимодействия с органами следствия и дознания, защиту адвокатской деятельности и профессиональной независимости, разрешение конфликтов с профессиональным сообществом.", imageSrc: "http://img.b2bpic.net/free-photo/executives-planning-business-strategy_1098-615.jpg", imageAlt: "адвокатская коллегия членство"},
{
id: "03",
title: "Экспертизы в процессе",
description: "Обеспечение эффективности судебных экспертиз в уголовном процессе: назначение экспертиз, взаимодействие с экспертами, оценка заключений, включая криминалистические, медико-правовые и иные виды экспертиз.",
imageSrc: "http://img.b2bpic.net/free-photo/digital-devices-graduation-diploma-certificate_23-2148769701.jpg?_wi=1",
imageAlt: "судебная экспертиза анализ доказательств",
},
id: "03", title: "Экспертизы в процессе", description: "Обеспечение эффективности судебных экспертиз в уголовном процессе: назначение экспертиз, взаимодействие с экспертами, оценка заключений, включая криминалистические, медико-правовые и иные виды экспертиз.", imageSrc: "http://img.b2bpic.net/free-photo/digital-devices-graduation-diploma-certificate_23-2148769701.jpg", imageAlt: "судебная экспертиза анализ доказательств"},
{
id: "04",
title: "Уголовно-исполнительное право",
description: "Правовая помощь по вопросам, связанным с исполнением уголовных наказаний: взаимодействие с учреждениями уголовно-исполнительной системы, защита прав осуждённых, рассмотрение жалоб и представлений.",
imageSrc: "http://img.b2bpic.net/free-photo/close-up-mature-male-adviser-holding-contract-hand-giving-pen_23-2147898666.jpg?_wi=1",
imageAlt: "исправительное учреждение админист система",
},
id: "04", title: "Уголовно-исполнительное право", description: "Правовая помощь по вопросам, связанным с исполнением уголовных наказаний: взаимодействие с учреждениями уголовно-исполнительной системы, защита прав осуждённых, рассмотрение жалоб и представлений.", imageSrc: "http://img.b2bpic.net/free-photo/close-up-mature-male-adviser-holding-contract-hand-giving-pen_23-2147898666.jpg", imageAlt: "исправительное учреждение админист система"},
]}
gridVariant="four-items-2x2-equal-grid"
textboxLayout="default"
@@ -181,26 +137,11 @@ export default function HomePage() {
tagIcon={Award}
features={[
{
id: "01",
title: "Конфиденциальность",
description: "Полное соблюдение адвокатской тайны. Вся информация, полученная от доверителя, является строго конфиденциальной и не подлежит разглашению без письменного согласия.",
imageSrc: "/placeholders/placeholder1.webp?_wi=1",
imageAlt: "Конфиденциальность",
},
id: "01", title: "Конфиденциальность", description: "Полное соблюдение адвокатской тайны. Вся информация, полученная от доверителя, является строго конфиденциальной и не подлежит разглашению без письменного согласия.", imageSrc: "/placeholders/placeholder1.webp", imageAlt: "Конфиденциальность"},
{
id: "02",
title: "Индивидуальный подход",
description: "Каждое дело анализируется учитывая его специфику. Стратегия защиты разрабатывается индивидуально в зависимости от обстоятельств и целей доверителя.",
imageSrc: "/placeholders/placeholder1.webp?_wi=2",
imageAlt: "Индивидуальный подход",
},
id: "02", title: "Индивидуальный подход", description: "Каждое дело анализируется учитывая его специфику. Стратегия защиты разрабатывается индивидуально в зависимости от обстоятельств и целей доверителя.", imageSrc: "/placeholders/placeholder1.webp", imageAlt: "Индивидуальный подход"},
{
id: "03",
title: "Правовая определённость",
description: "Честное и объективное консультирование о возможностях и рисках. Информация предоставляется в полном объёме для информированного принятия решения.",
imageSrc: "/placeholders/placeholder1.webp?_wi=3",
imageAlt: "Правовая определённость",
},
id: "03", title: "Правовая определённость", description: "Честное и объективное консультирование о возможностях и рисках. Информация предоставляется в полном объёме для информированного принятия решения.", imageSrc: "/placeholders/placeholder1.webp", imageAlt: "Правовая определённость"},
]}
gridVariant="three-columns-all-equal-width"
textboxLayout="default"
@@ -231,13 +172,9 @@ export default function HomePage() {
<FooterLogoReveal
logoText="Бабасов Камиль"
leftLink={{
text: "Политика ПДН",
href: "/privacy",
}}
text: "Политика ПДН", href: "/privacy"}}
rightLink={{
text: "WhatsApp",
href: "https://wa.me/79689514737?text=Здравствуйте%21%20Нужна%20правовая%20помощь.%20Кратко%3A%20",
}}
text: "WhatsApp", href: "https://wa.me/79689514737?text=Здравствуйте%21%20Нужна%20правовая%20помощь.%20Кратко%3A%20"}}
/>
</div>
</ThemeProvider>

View File

@@ -1,51 +1,43 @@
"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;
fontSize?: number;
fontWeight?: number | string;
letterSpacing?: number;
dominantBaseline?: 'auto' | 'middle' | 'hanging' | 'ideographic' | '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 = '',
fontSize = 48,
fontWeight = 700,
letterSpacing = 0,
dominantBaseline = 'middle',
}) => {
return (
<svg
ref={svgRef}
viewBox={viewBox}
className={cls("w-full", className)}
style={{ aspectRatio: aspectRatio }}
preserveAspectRatio="none"
viewBox="0 0 400 100"
className={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%"
fontSize={fontSize}
fontWeight={fontWeight}
letterSpacing={letterSpacing}
textAnchor="middle"
dominantBaseline={dominantBaseline}
className="fill-current"
>
{logoText}
{text}
</text>
</svg>
);
});
};
SvgTextLogo.displayName = "SvgTextLogo";
export default SvgTextLogo;
export default SvgTextLogo;