- {/* Всегда отображаемые вкладки */}
-
onTabClick("Главная")}
- onMouseDown={(e) => handleMouseDown(e, "Главная")} // Добавляем обработчик для СКМ
- >
- Главная
-
-
onTabClick("Визуализация")}
- onMouseDown={(e) => handleMouseDown(e, "Визуализация")} // Добавляем обработчик для СКМ
- >
- Визуализация
-
-
- {/* Динамически добавляемые вкладки */}
- {tabs.map((tab) => (
-
onTabClick(tab.id)}
- onMouseDown={(e) => handleMouseDown(e, tab.id)} // Добавляем обработчик для СКМ
- >
- {tab.title}
-
-
- ))}
-
- );
-};
-
-export default Tabs;
\ No newline at end of file
diff --git a/src/Style/Dashboard.css b/src/Style/Dashboard.css
deleted file mode 100755
index 4f9eb18..0000000
--- a/src/Style/Dashboard.css
+++ /dev/null
@@ -1,52 +0,0 @@
-/* Основной контейнер */
-.dashboard-container {
- display: flex;
- height: 100vh;
- width: 100vw;
- overflow: hidden;
- background-color: var(--background-color);
- color: var(--text-color);
-}
-
-/* Сайдбар */
-.sidebar {
- flex-shrink: 0;
- height: 100vh;
- overflow-y: auto;
- background-color: var(--sidebar-color);
- color: var(--sidebar-text-color);
- transition: width 0.2s ease;
-}
-
-/* Основной контент */
-.main-content {
- flex-grow: 1;
- display: flex;
- flex-direction: column;
- padding: 20px;
- overflow: auto;
- background-color: var(--background-color);
- color: var(--text-color);
-}
-
-
-/* Контент */
-.content {
- background-color: var(--modal-background);
- padding: 20px;
- border-radius: 10px;
- box-shadow: 0 2px 5px rgba(0, 0, 0, 0.521);
- max-width: 100%;
- overflow: auto;
- color: var(--text-color);
-}
-
-/* Заголовки */
-h2 {
- color: var(--text-color);
- text-align: center;
-}
-
-p {
- color: var(--text-color);
-}
\ No newline at end of file
diff --git a/src/Style/ErrorIndicator.css b/src/Style/ErrorIndicator.css
deleted file mode 100755
index 115f992..0000000
--- a/src/Style/ErrorIndicator.css
+++ /dev/null
@@ -1,38 +0,0 @@
-.error-indicator {
- display: flex;
- align-items: center;
- gap: 15px;
- padding-bottom: 20px;
-}
-
-.error-item {
- display: flex;
- align-items: center;
- gap: 5px;
-}
-
-.error-item img {
- width: 30px;
- height: 30px;
-}
-
-.error-item span {
- font-size: 18px;
- font-weight: bold;
-}
-
-.critical span {
- color: red;
-}
-
-.warning span {
- color: orange;
-}
-
-.indicator-container {
- display: flex;
- align-items: center;
- gap: 15px;
- justify-content: center;
-
-}
\ No newline at end of file
diff --git a/src/Style/Expandable.css b/src/Style/Expandable.css
deleted file mode 100755
index 6550184..0000000
--- a/src/Style/Expandable.css
+++ /dev/null
@@ -1,39 +0,0 @@
-.expandable-info {
- margin-top: 10px;
-}
-
-.expand-button {
- background-color: #444;
- color: white;
- border: none;
- padding: 8px 16px;
- cursor: pointer;
- border-radius: 4px;
-}
-
-.expand-button:hover {
- background-color: #333;
-}
-
-.details-menu {
- margin-top: 10px;
- padding: 10px;
- border: 1px solid #333;
- border-radius: 4px;
- background-color: white;
-}
-
-.detail-item {
- display: flex;
- justify-content: space-between;
- margin-bottom: 5px;
-}
-
-.label {
- font-weight: bold;
- color: #333
-}
-
-.value {
- color: #333;
-}
\ No newline at end of file
diff --git a/src/Style/SidebarMenu.css b/src/Style/SidebarMenu.css
index d4670ec..e69de29 100755
--- a/src/Style/SidebarMenu.css
+++ b/src/Style/SidebarMenu.css
@@ -1,143 +0,0 @@
-/* Сайдбар */
-.sidebar {
- height: 100vh;
- background-color: var(--sidebar-color);
- color: var(--sidebar-text-color);
- position: fixed;
- left: 0;
- top: 0;
- z-index: 999;
- overflow: hidden;
- transition: width 0.2s ease;
- display: flex;
- flex-direction: column;
-}
-
-/* Контейнер для основного контента меню */
-.sidebar-content {
- flex: 1;
- overflow-y: auto;
- overflow-x: hidden;
- padding-bottom: 20px;
- padding-right: 10px;
- /* Отступ справа для скроллбара */
-}
-
-/* Заголовок меню */
-.sidebar-title {
- margin-bottom: 20px;
- font-size: 1.5em;
- font-weight: bold;
- color: var(--sidebar-text-color);
- padding: 10px;
- text-align: center;
- /* font-size: 2vh; */
-}
-
-/* Элементы меню */
-.menu-item {
- margin-bottom: 10px;
- color: var(--sidebar-text-color);
- width: 100%;
-}
-
-/* Элемент для перетаскивания */
-.sidebar-resizer {
- width: 5px;
- height: 100%;
- background-color: rgba(255, 255, 255, 0.1);
- position: absolute;
- right: 0;
- top: 0;
- cursor: ew-resize;
- transition: background-color 0.2s ease;
- z-index: 1000;
-}
-
-.sidebar-resizer:hover {
- background-color: rgba(255, 255, 255, 0.3);
-}
-
-/* Стили для заголовка элемента меню */
-.menu-item-header {
- display: flex;
- align-items: center;
- justify-content: space-between;
- /* Распределяем пространство между элементами */
- padding: 10px;
- border-radius: 5px;
- cursor: pointer;
- transition: background-color 0.3s ease;
- width: 100%;
- /* Занимаем всю доступную ширину */
- box-sizing: border-box;
- /* Учитываем padding в ширине */
-}
-
-/* Стили для текста элемента меню */
-.menu-item-header span {
- flex: 1;
- /* Текст занимает все доступное пространство */
- margin-right: 14px;
- /* Отступ справа для текста */
- overflow: hidden;
- /* Скрываем текст, который не помещается */
- text-overflow: ellipsis;
- /* Добавляем многоточие, если текст не помещается */
-}
-
-/* Стили для иконок */
-.menu-item-header .open-parent-icon,
-.menu-item-header .toggle-icon {
- flex-shrink: 0;
- /* Запрещаем сжатие иконок */
- margin-left: 1px;
- /* Отступ между иконками */
- cursor: pointer;
-}
-
-.menu-item-header:hover {
- background-color: rgba(255, 255, 255, 0.1);
-}
-
-/* Круглый индикатор статуса */
-.status-indicator {
- width: 10px;
- height: 10px;
- border-radius: 50%;
- margin-right: 10px;
- flex-shrink: 0;
-}
-
-/* Подменю */
-.submenu {
- margin-left: 20px;
- /* Отступ слева для вложенных элементов */
- margin-top: 10px;
-}
-
-/* Стили для элементов нижнего уровня вложенности */
-
-/* Дополнительные отступы для элементов без иконок */
-.menu-item:not(.has-children) .menu-item-header {
- padding-right: 25px;
- /* Добавляем отступ справа для элементов без иконок */
-}
-
-/* Футер сайдбара */
-.sidebar-footer {
- padding: 10px;
- background-color: var(--sidebar-color);
- text-align: center;
- border-top: 1px solid rgba(255, 255, 255, 0.1);
- flex-shrink: 0;
- width: 100%;
-}
-
-.help,
-.settings {
- color: var(--sidebar-text-color);
- margin: 5px 0;
- overflow-x: hidden;
- text-align: left;
-}
\ No newline at end of file
diff --git a/src/Style/TreeTable.css b/src/Style/TreeTable.css
deleted file mode 100755
index d31dad5..0000000
--- a/src/Style/TreeTable.css
+++ /dev/null
@@ -1,62 +0,0 @@
-.tree-table-container {
- width: 100%;
- overflow-x: hidden;
- /* Убираем горизонтальный скролл */
-}
-
-.tree-table {
- width: 100%;
- border-collapse: collapse;
- text-align: center;
- table-layout: fixed;
- /* Фиксированная ширина колонок */
- background-color: var(--table-cell-background);
- color: var(--table-text-color);
-}
-
-.tree-table-header {
- padding: 10px;
- border: 1px solid black;
- font-weight: bold;
- white-space: nowrap;
- /* Текст не переносится */
- overflow: hidden;
- /* Скрываем текст, который не помещается */
- text-overflow: ellipsis;
- /* Добавляем многоточие */
- background-color: var(--table-header-background);
-}
-
-.tree-table-cell {
- padding: 8px;
- border: 1px solid black;
- white-space: nowrap;
- /* Текст не переносится */
- overflow: hidden;
- /* Скрываем текст, который не помещается */
- text-overflow: ellipsis;
- /* Добавляем многоточие */
-}
-
-.cell-content,
-.header-content {
- display: flex;
- align-items: center;
- gap: 2px;
- width: 100%;
- overflow: hidden;
- text-overflow: ellipsis;
-}
-
-.cell-text {
- flex: 1;
- overflow: hidden;
- text-overflow: ellipsis;
-}
-
-.status-indicator-bar {
- width: 6px;
- height: 20px;
- border-radius: 3px;
- flex-shrink: 0;
-}
\ No newline at end of file
diff --git a/src/Style/common.css b/src/Style/common.css
deleted file mode 100755
index d0184b1..0000000
--- a/src/Style/common.css
+++ /dev/null
@@ -1,53 +0,0 @@
-/* Контейнер для вкладок */
-.tabs {
- display: flex;
- gap: 5px;
- padding: 5px;
- background-color: var(--sidebar-color);
- border-bottom: 2px solid var(--accent-color);
- overflow-x: auto;
- border-radius: 5px;
- white-space: nowrap;
-}
-
-/* Стили для отдельной вкладки */
-.tab {
- display: flex;
- align-items: center;
- background-color: var(--sidebar-color);
- color: var(--sidebar-text-color);
- /* Используем переменную для цвета текста */
- padding: 5px 15px;
- border-radius: 5px 5px 0 0;
- cursor: pointer;
- flex-shrink: 0;
- transition: background-color 0.3s ease;
-}
-
-/* Активная вкладка */
-.tab.active {
- background-color: var(--accent-color);
-}
-
-/* Кнопка закрытия вкладки */
-.close-tab {
- background: none;
- border: none;
- color: var(--sidebar-text-color);
- /* Используем переменную для цвета текста */
- cursor: pointer;
- font-size: 16px;
- margin-left: 10px;
- padding: 0;
- transition: color 0.3s ease;
-}
-
-/* Эффект при наведении на кнопку закрытия */
-.close-tab:hover {
- color: #ff6b6b;
-}
-
-/* Эффект при наведении на вкладку */
-.tab:hover {
- background-color: var(--accent-hover-color);
-}
\ No newline at end of file
diff --git a/src/Style/dark-theme.css b/src/Style/dark-theme.css
deleted file mode 100644
index fc21f59..0000000
--- a/src/Style/dark-theme.css
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Темная тема, если пользователь предпочитает ее */
-@media (prefers-color-scheme: dark) {
- :root {
- --background-color: #1E1E1E;
- --text-color: #E0E0E0;
- --header-color: #FFFFFF;
- /* Основной цвет текста (светлый) */
- --sidebar-color: #2d2d2d;
- /* Темный цвет сайдбара */
- --sidebar-text-color: #E0E0E0;
- /* Светлый текст в сайдбаре */
- --modal-background: #2d2d2d;
- --modal--btn-background: #333333;
- --modal-text: #FFFFFF;
- --table-border: #c70a0a;
- --table-header-background: #2d2d2d;
- --table-cell-background: #333333;
- --table-text-color: #E0E0E0;
- /* Светлый текст в таблице */
- --TreeChart-text-color: #ffffff;
- --scrollbar-track-color: #333;
- /* hover for buttons */
- --hover-button: #333d4d;
- }
-}
\ No newline at end of file
diff --git a/src/Style/light-theme.css b/src/Style/light-theme.css
deleted file mode 100644
index b4f6d03..0000000
--- a/src/Style/light-theme.css
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Светлая тема по умолчанию */
-:root {
- --background-color: #FFFFFF;
- --text-color: #000000;
- --header-color: #333333;
- /* Основной цвет текста (черный) */
- --sidebar-color: #3d74c7;
- /* Синий цвет сайдбара */
- --sidebar-text-color: #FFFFFF;
- /* Белый текст в сайдбаре и вкладках */
- --modal-background: #FFFFFF;
- --modal--btn-background: #0f55bec2;
- --modal-text: #333333;
- --table-border: #ddd;
- --table-header-background: #f9f9f9;
- --table-cell-background: #FFFFFF;
- --table-text-color: #000000;
- /* Черный текст в таблице */
-
- /* hover for buttons */
- --hover-button: #2d62b1;
- --hover-text-color: #FFFFFF
-}
\ No newline at end of file
diff --git a/src/Style/range-selector.css b/src/Style/range-selector.css
deleted file mode 100644
index e69de29..0000000
diff --git a/src/Style/theme.jsx b/src/Style/theme.jsx
index 7bcabf1..40c405d 100644
--- a/src/Style/theme.jsx
+++ b/src/Style/theme.jsx
@@ -1,73 +1,191 @@
import { createTheme } from "@mui/material/styles";
+/**
+ * Общие настройки темы, применяемые для обеих тем (светлой и темной)
+ */
+const commonThemeSettings = {
+ // Настройки формы элементов
+ shape: {
+ borderRadius: 8, // Базовый радиус скругления углов для всех компонентов
+ },
+
+ // Переопределения стилей конкретных MUI компонентов
+ components: {
+ // Стили для компонента Drawer (боковое меню)
+ MuiDrawer: {
+ styleOverrides: {
+ paper: {
+ borderRight: 'none', // Убираем правую границу у бокового меню
+ }
+ },
+ MuiTab: {
+ styleOverrides: {
+ root: {
+ textTransform: 'none', // Убираем uppercase
+ minWidth: 'unset', // Убираем минимальную ширину
+ padding: '6px 16px',
+ '&:hover': {
+ color: 'primary.main',
+ opacity: 1,
+ },
+ '&.Mui-selected': {
+ color: 'primary.main',
+ },
+ '&.Mui-focusVisible': {
+ backgroundColor: 'action.selected',
+ },
+ },
+ },
+ },
+ MuiTabs: {
+ styleOverrides: {
+ indicator: {
+ height: 3, // Толщина индикатора
+ },
+ },
+ },
+ },
+
+ // Стили для кнопок-элементов списка
+ MuiListItemButton: {
+ styleOverrides: {
+ root: {
+ // Стиль для выбранного элемента
+ '&.Mui-selected': {
+ backgroundColor: 'rgba(255, 255, 255, 0.16)',
+ },
+ // Стиль при наведении на выбранный элемент
+ '&.Mui-selected:hover': {
+ backgroundColor: 'rgba(255, 255, 255, 0.24)',
+ },
+ }
+ }
+ }
+ }
+};
+
+/**
+ * Светлая тема приложения
+ */
export const lightTheme = createTheme({
+ ...commonThemeSettings, // Распаковываем общие настройки
+
+ // Цветовая палитра для светлой темы
palette: {
- mode: "light",
+ mode: "light", // Режим светлой темы
+
+ // Фоновые цвета
background: {
- default: "#FFFFFF",
- paper: "#FFFFFF",
+ default: "#6CACE4", // Основной фон приложения
+ paper: "#FFFFFF", // Фон "бумажных" поверхностей (карточек, панелей)
},
+
+ // Текстовые цвета
text: {
- primary: "#000000",
+ primary: "#000000", // Основной цвет текста
+ secondary: "#333333", // Вторичный цвет текста
},
+
+ // Основные цвета UI
primary: {
- main: "#3d74c7",
+ main: "#3d74c7", // Основной брендовый цвет
+ contrastText: "#FFFFFF", // Цвет текста на кнопках primary цвета
},
+
+ // Дополнительные цвета UI
secondary: {
- main: "#0f55bec2",
+ main: "#0f55bec2", // Вторичный брендовый цвет
},
+
+ divider: "#e0e0e0", // Цвет разделителей
+
+ // Кастомные цвета для специфических элементов
custom: {
- background: "#025EA1",
- text: "#000000",
- sidebar: "#025EA1",
- sidebarText: "#FFFFFF",
- modalBackground: "#FFFFFF",
- modalBtnBackground: "#0f55bec2",
- modalText: "#333333",
- tableBorder: "#ddd",
- tableHeaderBackground: "#f9f9f9",
- tableCellBackground: "#FFFFFF",
- tableText: "#000000",
- treeChartText: "#000000",
- scrollbarTrack: "#f1f1f1",
- hoverButton: "#2d62b1",
- hoverText: "#FFFFFF",
+ background: "#D4EFFC", // Кастомный фоновый цвет
+ text: "#000000", // Кастомный цвет текста
+ sidebar: "#025EA1", // Фон боковой панели
+ sidebarText: "#FFFFFF", // Текст в боковой панели
+ sidebarHover: "rgba(255, 255, 255, 0.08)", // Цвет при наведении в боковой панели
+ modalBackground: "#FFFFFF", // Фон модальных окон
+ modalBtnBackground: "#0f55bec2", // Фон кнопок в модальных окнах
+ modalText: "#333333", // Текст в модальных окнах
+ tableBorder: "#ddd", // Границы таблиц
+ tableHeaderBackground: "#f9f9f9", // Фон заголовков таблиц
+ tableCellBackground: "#FFFFFF", // Фон ячеек таблиц
+ tableText: "#000000", // Текст в таблицах
+ treeChartText: "#000000", // Текст в древовидных диаграммах
+ scrollbarTrack: "#f1f1f1", // Цвет трека скроллбара
+ hoverButton: "#2d62b1", // Цвет кнопок при наведении
+ hoverText: "#FFFFFF", // Цвет текста при наведении
},
+
+ // Цвета для различных состояний
+ action: {
+ hover: "rgba(0, 0, 0, 0.04)", // Цвет при наведении на интерактивные элементы
+ selected: "rgba(0, 0, 0, 0.08)", // Цвет выбранных элементов
+ }
},
});
+/**
+ * Темная тема приложения
+ */
export const darkTheme = createTheme({
+ ...commonThemeSettings, // Распаковываем общие настройки
+
+ // Цветовая палитра для темной темы
palette: {
- mode: "dark",
+ mode: "dark", // Режим темной темы
+
+ // Фоновые цвета
background: {
- default: "#1E1E1E",
- paper: "#2d2d2d",
+ default: "#1E1E1E", // Основной фон приложения
+ paper: "#2d2d2d", // Фон "бумажных" поверхностей
},
+
+ // Текстовые цвета
text: {
- primary: "#E0E0E0",
+ primary: "#E0E0E0", // Основной цвет текста
+ secondary: "#B0B0B0", // Вторичный цвет текста
},
+
+ // Основные цвета UI
primary: {
- main: "#2d2d2d",
+ main: "#3d74c7", // Основной брендовый цвет (может совпадать со светлой темой)
+ contrastText: "#FFFFFF", // Цвет текста на кнопках primary цвета
},
+
+ // Дополнительные цвета UI
secondary: {
- main: "#333333",
+ main: "#0f55bec2", // Вторичный брендовый цвет
},
+
+ divider: "#444444", // Цвет разделителей
+
+ // Кастомные цвета для специфических элементов
custom: {
- background: "#1E1E1E",
- text: "#E0E0E0",
- sidebar: "#2d2d2d",
- sidebarText: "#E0E0E0",
- modalBackground: "#2d2d2d",
- modalBtnBackground: "#333333",
- modalText: "#FFFFFF",
- tableBorder: "#444444",
- tableHeaderBackground: "#2d2d2d",
- tableCellBackground: "#333333",
- tableText: "#E0E0E0",
- treeChartText: "#FFFFFF",
- scrollbarTrack: "#333",
- hoverButton: "#333d4d",
- hoverText: "#E0E0E0",
+ background: "#1E1E1E", // Кастомный фоновый цвет
+ text: "#E0E0E0", // Кастомный цвет текста
+ sidebar: "#2d2d2d", // Фон боковой панели
+ sidebarText: "#E0E0E0", // Текст в боковой панели
+ sidebarHover: "rgba(255, 255, 255, 0.16)", // Цвет при наведении в боковой панели
+ modalBackground: "#2d2d2d", // Фон модальных окон
+ modalBtnBackground: "#333333", // Фон кнопок в модальных окнах
+ modalText: "#FFFFFF", // Текст в модальных окнах
+ tableBorder: "#444444", // Границы таблиц
+ tableHeaderBackground: "#2d2d2d", // Фон заголовков таблиц
+ tableCellBackground: "#333333", // Фон ячеек таблиц
+ tableText: "#E0E0E0", // Текст в таблицах
+ treeChartText: "#FFFFFF", // Текст в древовидных диаграммах
+ scrollbarTrack: "#333", // Цвет трека скроллбара
+ hoverButton: "#333d4d", // Цвет кнопок при наведении
+ hoverText: "#E0E0E0", // Цвет текста при наведении
},
+
+ // Цвета для различных состояний
+ action: {
+ hover: "rgba(255, 255, 255, 0.08)", // Цвет при наведении на интерактивные элементы
+ selected: "rgba(255, 255, 255, 0.16)", // Цвет выбранных элементов
+ }
},
-});
+});
\ No newline at end of file
diff --git a/src/index.css b/src/index.css
index 1134bba..7ef3275 100755
--- a/src/index.css
+++ b/src/index.css
@@ -83,7 +83,7 @@ button:focus-visible {
/* Фон скроллбара */
::-webkit-scrollbar-track {
- background: var(--scrollbar-track-color, #f1f1f1);
+ background: var(--scrollbar-track-color, #025EA1);
/* Цвет фона */
border-radius: 10px;
/* Скругление углов */
@@ -91,7 +91,7 @@ button:focus-visible {
/* Ползунок */
::-webkit-scrollbar-thumb {
- background: #3d74c7;
+ background: #D4EFFC;
/* Основной цвет */
border-radius: 10px;
/* Скругляем края */