diff --git a/src/components/TabsNav.tsx b/src/components/TabsNav.tsx
new file mode 100644
index 0000000..6c75fc7
--- /dev/null
+++ b/src/components/TabsNav.tsx
@@ -0,0 +1,71 @@
+import React from "react";
+import Link from "next/link";
+import defaultTabsStyles from "../styles/tabs.module.css";
+
+interface TabItem {
+ id: string;
+ label: string;
+ href?: string;
+ icon?: React.ReactNode;
+}
+
+interface TabsNavProps {
+ activeTab: string;
+ setActiveTab: (tabId: string) => void;
+ tabs: TabItem[];
+ tabStyles?: {
+ nav: string;
+ button: string;
+ buttonActive: string;
+ };
+}
+
+const TabsNav: React.FC = ({
+ activeTab,
+ setActiveTab,
+ tabs,
+ tabStyles,
+}) => {
+ const currentTabStyles = tabStyles || {
+ nav: defaultTabsStyles.tabsNav,
+ button: defaultTabsStyles.tabButton,
+ buttonActive: defaultTabsStyles.tabButtonActive,
+ };
+
+ return (
+
+ );
+};
+
+export default TabsNav;
\ No newline at end of file
diff --git a/src/styles/account.module.css b/src/styles/account.module.css
index e820b83..3b47322 100644
--- a/src/styles/account.module.css
+++ b/src/styles/account.module.css
@@ -258,6 +258,7 @@
font-weight: 500;
display: flex;
align-items: center;
+ justify-content: center;
gap: 8px;
cursor: pointer;
margin-top: 8px;
@@ -273,6 +274,7 @@
padding: 0;
display: flex;
align-items: center;
+ color: #6b7280;
}
/* --- Стили для вкладки уведомлений --- */
@@ -362,9 +364,11 @@
left: 22px;
}
-/* --- Стили для табов и навигации из page.tsx --- */
-.accountTabsNav {
+
+/* Стили для табов и навигации из page.tsx */
+
+/* .accountTabsNav {
display: flex;
gap: 32px;
border-bottom: 1px solid #e5e7eb;
@@ -389,51 +393,18 @@
border-bottom: 2px solid #2563eb;
color: #2563eb;
font-weight: 600;
-}
+} */
/* Стили для кнопок подтверждения */
.primaryButton {
- background-color: #2563eb; /* Синий */
- color: #ffffff;
+ background: #2563eb;
+ color: #fff;
border: none;
border-radius: 6px;
- padding: 8px 16px;
+ padding: 8px 20px;
font-weight: 500;
+ display: flex;
+ align-items: center;
+ gap: 8px;
cursor: pointer;
- transition: background-color 0.2s ease;
-}
-
-.primaryButton:hover {
- background-color: #1d4ed8;
-}
-
-.secondaryButton {
- background-color: #f3f4f6; /* Серый */
- color: #374151;
- border: 1px solid #d1d5db;
- border-radius: 6px;
- padding: 8px 16px;
- font-weight: 500;
- cursor: pointer;
- transition: background-color 0.2s ease;
-}
-
-.secondaryButton:hover {
- background-color: #e5e7eb;
-}
-
-.tertiaryButton {
- background: none;
- color: #6b7280; /* Темно-серый */
- border: none;
- padding: 8px 16px;
- font-weight: 500;
- cursor: pointer;
- transition: color 0.2s ease;
-}
-
-.tertiaryButton:hover {
- color: #4b5563;
-}
-
-/* ... можно добавить другие стили по необходимости ... */
\ No newline at end of file
+}
\ No newline at end of file
diff --git a/src/styles/dateinput.module.css b/src/styles/dateinput.module.css
new file mode 100644
index 0000000..f516a0e
--- /dev/null
+++ b/src/styles/dateinput.module.css
@@ -0,0 +1,37 @@
+.dateInputHiddenIcon {
+ -webkit-appearance: none; /* Safari и Chrome */
+ -moz-appearance: none; /* Firefox */
+ appearance: none; /* Стандартное свойство */
+}
+
+.dateInputHiddenIcon::-webkit-calendar-picker-indicator {
+ display: none; /* Скрыть для WebKit-браузеров */
+}
+
+.dateInputHiddenIcon::-moz-calendar-picker-indicator {
+ display: none; /* Скрыть для Mozilla-браузеров */
+}
+
+.dateInputHiddenIcon::-ms-calendar-picker-indicator {
+ display: none; /* Скрыть для Internet Explorer/Edge */
+}
+
+.dateInputBase {
+ width: 100%;
+ padding: 8px;
+ border: 1px solid #e5e7eb;
+ border-radius: 6px;
+ margin-top: 4px;
+ box-sizing: border-box;
+ padding-right: 40px;
+ cursor: pointer;
+}
+
+.dateIcon {
+ position: absolute;
+ right: 8px;
+ top: 50%;
+ transform: translateY(-50%);
+ cursor: pointer;
+ color: #6b7280;
+}
\ No newline at end of file
diff --git a/src/styles/navigation.module.css b/src/styles/navigation.module.css
index a9062a4..b777828 100644
--- a/src/styles/navigation.module.css
+++ b/src/styles/navigation.module.css
@@ -13,7 +13,7 @@
font-weight: bold;
color: #2563eb;
}
-.links {
+/* .links {
display: flex;
gap: 32px;
}
@@ -34,7 +34,7 @@
color: #2563eb;
border-bottom: 2px solid #2563eb;
font-weight: 600;
-}
+} */
.profile {
display: flex;
align-items: center;
diff --git a/src/styles/stat.module.css b/src/styles/stat.module.css
index b338651..622cc12 100644
--- a/src/styles/stat.module.css
+++ b/src/styles/stat.module.css
@@ -27,11 +27,14 @@
.exportBtn:hover {
background: #1d4ed8;
}
-.tabs {
+/* Tabs */
+/* .tabs {
display: flex;
gap: 32px;
border-bottom: 1.5px solid #e5e7eb;
+ margin-bottom: 24px;
}
+
.tab {
background: none;
border: none;
@@ -43,17 +46,19 @@
cursor: pointer;
transition: color 0.2s, border 0.2s;
}
+
.tab:hover {
color: #2563eb;
border-bottom: 2px solid #dbeafe;
}
+
.activeTab {
color: #2563eb;
border: none;
border-bottom: 2px solid #2563eb;
font-weight: 600;
background: none;
-}
+} */
.filters {
display: grid;
grid-template-columns: repeat(1, 1fr);
diff --git a/src/styles/tabs.module.css b/src/styles/tabs.module.css
new file mode 100644
index 0000000..a07a373
--- /dev/null
+++ b/src/styles/tabs.module.css
@@ -0,0 +1,31 @@
+.tabsNav {
+ display: flex;
+ gap: 32px;
+ border-bottom: 1px solid #e5e7eb;
+ margin-bottom: 24px;
+}
+
+.tabButton {
+ background: none;
+ border: none;
+ border-bottom: 2px solid transparent;
+ color: #6b7280;
+ font-weight: 500;
+ font-size: 16px;
+ padding: 8px 0;
+ cursor: pointer;
+ display: flex;
+ align-items: center;
+ gap: 8px;
+}
+
+.tabButton:hover {
+ color: #2563eb;
+ border-bottom: 2px solid #dbeafe;
+}
+
+.tabButtonActive {
+ border-bottom: 2px solid #2563eb;
+ color: #2563eb;
+ font-weight: 600;
+}
\ No newline at end of file