From 9cbd5e4288d20482fe0f4e302b24cc1ee8f73d4e Mon Sep 17 00:00:00 2001 From: Untone Date: Sat, 28 Jun 2025 16:27:31 +0300 Subject: [PATCH] pretty-print2 --- panel/admin.tsx | 57 ++++++++++++++- panel/discours.svg | 2 +- panel/publy.svg | 2 +- panel/styles.css | 170 ++++++++++++++++++++++++++++++--------------- 4 files changed, 172 insertions(+), 59 deletions(-) diff --git a/panel/admin.tsx b/panel/admin.tsx index 51137577..ba41e7bc 100644 --- a/panel/admin.tsx +++ b/panel/admin.tsx @@ -240,6 +240,8 @@ const AdminPage: Component = (props) => { const [successMessage, setSuccessMessage] = createSignal(null) const [showBodyModal, setShowBodyModal] = createSignal(false) const [selectedShoutBody, setSelectedShoutBody] = createSignal('') + const [showMediaBodyModal, setShowMediaBodyModal] = createSignal(false) + const [selectedMediaBody, setSelectedMediaBody] = createSignal('') // Переменные среды const [envSections, setEnvSections] = createSignal([]) @@ -1325,6 +1327,39 @@ const AdminPage: Component = (props) => { ) } + /** + * Компонент модального окна для просмотра содержимого media.body + */ + const MediaBodyModal: Component = () => { + const language = () => detectLanguage(selectedMediaBody()) + const formattedCode = () => formatCode(selectedMediaBody()) + + return ( + + + + ) + } + /** * Обработчик изменения страницы для публикаций * @param page - Номер страницы @@ -1667,7 +1702,26 @@ const AdminPage: Component = (props) => { 0}> - {shout.media!.length} файл(ов) +
+ + {(mediaItem, idx) => ( +
+ {mediaItem.title || `media[${idx()}]`} + + + +
+ )} +
+
- @@ -1697,6 +1751,7 @@ const AdminPage: Component = (props) => { + ) } diff --git a/panel/discours.svg b/panel/discours.svg index dc4ab588..7e49ad87 100644 --- a/panel/discours.svg +++ b/panel/discours.svg @@ -1,4 +1,4 @@ - + diff --git a/panel/publy.svg b/panel/publy.svg index 414f218a..11fe3ba5 100644 --- a/panel/publy.svg +++ b/panel/publy.svg @@ -1,4 +1,4 @@ - + diff --git a/panel/styles.css b/panel/styles.css index a0b661bc..549bc447 100644 --- a/panel/styles.css +++ b/panel/styles.css @@ -622,9 +622,9 @@ tr:hover { flex-wrap: wrap; gap: var(--spacing-4); padding: var(--spacing-4); - background-color: var(--primary-light); - border-radius: var(--border-radius-md); - box-shadow: var(--shadow-sm); + background: #ededed; + border: 1px solid var(--border-color); + box-shadow: none; } .pagination-info { @@ -644,53 +644,52 @@ tr:hover { display: inline-flex; align-items: center; justify-content: center; - min-width: 36px; - height: 36px; - padding: var(--spacing-2) var(--spacing-3); - border: 1px solid var(--border-color); - background-color: var(--bg-color); - color: var(--text-color); - font-size: var(--text-sm); - font-weight: var(--font-medium); - cursor: pointer; - transition: var(--transition-fast); - border-radius: var(--border-radius-md); - user-select: none; -} - -.pagination-button:hover:not(:disabled) { - background-color: var(--primary-light); - border-color: var(--primary-color); - transform: translateY(-1px); - box-shadow: var(--shadow-sm); -} - -.pagination-button:focus-visible { - outline: 2px solid var(--primary-color); - outline-offset: 2px; + min-width: 44px; + height: 44px; + padding: 0; + background: #181818; + color: #fff; + border: 1px solid #222; + font-size: 18px; + font-weight: 500; + border-radius: 0 !important; + box-shadow: none !important; + margin-bottom: 8px; + transition: background 0.15s, color 0.15s, border 0.15s; } .pagination-button.active { - background-color: var(--primary-color); - color: var(--bg-color); - border-color: var(--primary-color); - font-weight: var(--font-semibold); + background: #fff; + color: #111; + border: 2px solid #fff; + font-weight: 700; +} + +.pagination-button:hover:not(:disabled) { + background: #333; + color: #fff; + border-color: #111; + transform: none; + box-shadow: none; } .pagination-button:disabled { + background: #aaa; + color: #fff; opacity: 0.5; - cursor: not-allowed; - background-color: var(--primary-light); + border-color: #888; } .pagination-ellipsis { - display: inline-flex; + background: transparent; + color: #888; + min-width: 44px; + height: 44px; + display: flex; align-items: center; justify-content: center; - min-width: 36px; - padding: var(--spacing-2); - color: var(--text-secondary); - user-select: none; + border: none; + margin-bottom: 8px; } .pagination-per-page { @@ -702,24 +701,11 @@ tr:hover { } .pagination-per-page select { - padding: var(--spacing-2) var(--spacing-3); - border: 1px solid var(--border-color); - border-radius: var(--border-radius-md); - background-color: var(--bg-color); - color: var(--text-color); - font-size: var(--text-sm); - cursor: pointer; - transition: var(--transition-fast); -} - -.pagination-per-page select:hover { - border-color: var(--primary-color); -} - -.pagination-per-page select:focus { - outline: none; - border-color: var(--primary-color); - box-shadow: var(--shadow-sm); + background: #181818; + color: #fff; + border: 1px solid #222; + border-radius: 0 !important; + box-shadow: none !important; } /* Поиск */ @@ -1414,3 +1400,75 @@ button:hover, outline: 2px solid var(--primary-color); outline-offset: 2px; } + +/* Убираем скругления и делаем строгий стиль для пагинации и кнопок */ +button, +.pagination, +.pagination-button, +.pagination-per-page select { + border-radius: 0 !important; + box-shadow: none !important; +} + +.pagination { + background: #ededed; + border: 1px solid var(--border-color); + box-shadow: none; +} + +.pagination-button { + min-width: 44px; + height: 44px; + padding: 0; + background: #181818; + color: #fff; + border: 1px solid #222; + font-size: 18px; + font-weight: 500; + border-radius: 0 !important; + box-shadow: none !important; + margin-bottom: 8px; + transition: background 0.15s, color 0.15s, border 0.15s; +} + +.pagination-button.active { + background: #fff; + color: #111; + border: 2px solid #fff; + font-weight: 700; +} + +.pagination-button:hover:not(:disabled) { + background: #333; + color: #fff; + border-color: #111; + transform: none; + box-shadow: none; +} + +.pagination-button:disabled { + background: #aaa; + color: #fff; + opacity: 0.5; + border-color: #888; +} + +.pagination-ellipsis { + background: transparent; + color: #888; + min-width: 44px; + height: 44px; + display: flex; + align-items: center; + justify-content: center; + border: none; + margin-bottom: 8px; +} + +.pagination-per-page select { + background: #181818; + color: #fff; + border: 1px solid #222; + border-radius: 0 !important; + box-shadow: none !important; +}