diff --git a/package-lock.json b/package-lock.json
index 68e6db0..6e0d63e 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -14,7 +14,8 @@
"next": "15.3.4",
"nodemailer": "^7.0.3",
"react": "^19.0.0",
- "react-dom": "^19.0.0"
+ "react-dom": "^19.0.0",
+ "swiper": "^11.2.10"
},
"devDependencies": {
"@eslint/eslintrc": "^3",
@@ -5689,6 +5690,25 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/swiper": {
+ "version": "11.2.10",
+ "resolved": "https://registry.npmjs.org/swiper/-/swiper-11.2.10.tgz",
+ "integrity": "sha512-RMeVUUjTQH+6N3ckimK93oxz6Sn5la4aDlgPzB+rBrG/smPdCTicXyhxa+woIpopz+jewEloiEE3lKo1h9w2YQ==",
+ "funding": [
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/swiperjs"
+ },
+ {
+ "type": "open_collective",
+ "url": "http://opencollective.com/swiper"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4.7.0"
+ }
+ },
"node_modules/tinyglobby": {
"version": "0.2.14",
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz",
diff --git a/package.json b/package.json
index bae9d84..ab7497d 100644
--- a/package.json
+++ b/package.json
@@ -17,7 +17,8 @@
"next": "15.3.4",
"nodemailer": "^7.0.3",
"react": "^19.0.0",
- "react-dom": "^19.0.0"
+ "react-dom": "^19.0.0",
+ "swiper": "^11.2.10"
},
"devDependencies": {
"@eslint/eslintrc": "^3",
diff --git a/public/images/partners/jur-firma-zevs.png b/public/images/partners/jur-firma-zevs.png
index 5870ce8..ea438fd 100644
Binary files a/public/images/partners/jur-firma-zevs.png and b/public/images/partners/jur-firma-zevs.png differ
diff --git a/public/images/partners/transdekra.png b/public/images/partners/transdekra.png
new file mode 100644
index 0000000..aa3be9e
Binary files /dev/null and b/public/images/partners/transdekra.png differ
diff --git a/src/views/expertise/autotech/styles.module.scss b/src/views/expertise/autotech/styles.module.scss
index 9861d33..36d3507 100644
--- a/src/views/expertise/autotech/styles.module.scss
+++ b/src/views/expertise/autotech/styles.module.scss
@@ -52,8 +52,7 @@
width: 100%;
display: flex;
text-align: center;
- padding-top: 20px;
- padding-bottom: 20px;
+ padding: rem(40px) 0;
.Separator {
display: flex;
diff --git a/src/views/expertise/autotech/ui.tsx b/src/views/expertise/autotech/ui.tsx
index 99a48da..c8048f9 100644
--- a/src/views/expertise/autotech/ui.tsx
+++ b/src/views/expertise/autotech/ui.tsx
@@ -1,6 +1,7 @@
import s from './styles.module.scss';
import { CallbackForm, Connect, OrderSchema } from '@/entities';
import { Consultation, RelatedArticles, Sidebar } from '@/feature/article';
+import { PartnersSlider } from '@/widgets';
import { sidebarData } from './model/sidebar';
import { relatedArticlesData } from './model/relatedArticles';
import { expertData } from './model/expert';
@@ -100,7 +101,7 @@ function AutoTech() {
- Slider
+
diff --git a/src/widgets/breadcrumbs/index.ts b/src/widgets/breadcrumbs/index.ts
new file mode 100644
index 0000000..5ecdd1f
--- /dev/null
+++ b/src/widgets/breadcrumbs/index.ts
@@ -0,0 +1 @@
+export * from './ui';
diff --git a/src/widgets/index.ts b/src/widgets/index.ts
index f4c09fc..d6929da 100644
--- a/src/widgets/index.ts
+++ b/src/widgets/index.ts
@@ -1,2 +1,4 @@
export * from './header';
export * from './footer';
+export * from './breadcrumbs';
+export * from './partners-slider';
diff --git a/src/widgets/partners-slider/index.ts b/src/widgets/partners-slider/index.ts
new file mode 100644
index 0000000..5ecdd1f
--- /dev/null
+++ b/src/widgets/partners-slider/index.ts
@@ -0,0 +1 @@
+export * from './ui';
diff --git a/src/widgets/partners-slider/model/slides.ts b/src/widgets/partners-slider/model/slides.ts
new file mode 100644
index 0000000..67ea41a
--- /dev/null
+++ b/src/widgets/partners-slider/model/slides.ts
@@ -0,0 +1,75 @@
+import logoMegafon from '@public/images/partners/megafon.png';
+import logoMig from '@public/images/partners/mig.png';
+import logoECZ from '@public/images/partners/edinyi-centr-zashhity.png';
+import logoZevs from '@public/images/partners/jur-firma-zevs.png';
+import logoETD from '@public/images/partners/etd.png';
+import logoLaura from '@public/images/partners/laura-sochi.png';
+import logoMTS from '@public/images/partners/mts.png';
+import logoSAH from '@public/images/partners/sah.png';
+import logoSochiPark from '@public/images/partners/sochi-park.png';
+import logoSputnik from '@public/images/partners/sputnik.png';
+import logoYugoria from '@public/images/partners/yugoriya.png';
+import logoTransdekra from '@public/images/partners/transdekra.png';
+
+export const slidesData = [
+ {
+ id: '0',
+ name: '',
+ image: logoMegafon,
+ },
+ {
+ id: '1',
+ name: '',
+ image: logoMig,
+ },
+ {
+ id: '2',
+ name: '',
+ image: logoECZ,
+ },
+ {
+ id: '3',
+ name: '',
+ image: logoZevs,
+ },
+ {
+ id: '4',
+ name: '',
+ image: logoETD,
+ },
+ {
+ id: '5',
+ name: '',
+ image: logoLaura,
+ },
+ {
+ id: '6',
+ name: '',
+ image: logoMTS,
+ },
+ {
+ id: '7',
+ name: '',
+ image: logoSAH,
+ },
+ {
+ id: '8',
+ name: '',
+ image: logoSochiPark,
+ },
+ {
+ id: '9',
+ name: '',
+ image: logoSputnik,
+ },
+ {
+ id: '10',
+ name: '',
+ image: logoYugoria,
+ },
+ {
+ id: '11',
+ name: '',
+ image: logoTransdekra,
+ },
+];
diff --git a/src/widgets/partners-slider/styles.module.scss b/src/widgets/partners-slider/styles.module.scss
new file mode 100644
index 0000000..2f26668
--- /dev/null
+++ b/src/widgets/partners-slider/styles.module.scss
@@ -0,0 +1,14 @@
+.Slider {
+ display: block;
+ padding: 0 20px;
+ //flex-direction: row;
+ //justify-content: space-between;
+}
+
+.Slide {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ width: 200px;
+ height: auto;
+}
\ No newline at end of file
diff --git a/src/widgets/partners-slider/ui.tsx b/src/widgets/partners-slider/ui.tsx
new file mode 100644
index 0000000..29fa92f
--- /dev/null
+++ b/src/widgets/partners-slider/ui.tsx
@@ -0,0 +1,54 @@
+'use client';
+
+import 'swiper/css';
+import 'swiper/css/navigation';
+import 'swiper/css/grid';
+import 'swiper/css/autoplay';
+import s from './styles.module.scss';
+
+import Image from 'next/image';
+import { Swiper, SwiperSlide } from 'swiper/react';
+import { Autoplay, Grid } from 'swiper/modules';
+import { slidesData } from '@widgets/partners-slider/model/slides';
+
+const swiperBreakpoints = {
+ 360: {
+ slidesPerView: 1,
+ spaceBetween: 10,
+ },
+ 768: {
+ slidesPerView: 3,
+ spaceBetween: 30,
+ },
+ 1024: {
+ slidesPerView: 4,
+ spaceBetween: 30,
+ },
+ 1440: {
+ slidesPerView: 5,
+ spaceBetween: 30,
+ },
+};
+
+function PartnersSlider() {
+ return (
+
+ {slidesData.map(({ id, name, image }) => (
+
+
+
+ ))}
+
+ );
+}
+
+export { PartnersSlider };
diff --git a/src/widgets/partners/index.ts b/src/widgets/partners/index.ts
deleted file mode 100644
index e69de29..0000000
diff --git a/src/widgets/partners/styles.module.scss b/src/widgets/partners/styles.module.scss
deleted file mode 100644
index e69de29..0000000
diff --git a/src/widgets/partners/ui.tsx b/src/widgets/partners/ui.tsx
deleted file mode 100644
index e69de29..0000000