Merge version_1 into main #2
@@ -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>
|
||||
|
||||
@@ -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;
|
||||
Reference in New Issue
Block a user