Skip to content

Commit 5cb411a

Browse files
committed
ci: Add GitHub Actions workflow for build and release
1 parent 19e297a commit 5cb411a

37 files changed

+3562
-3467
lines changed

css/components/archive.css

Lines changed: 242 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,242 @@
1+
/* --- Стили для вида архива --- */
2+
#archive-view {
3+
position: fixed;
4+
top: var(--header-height);
5+
left: 0;
6+
width: 100%;
7+
height: calc(100vh - var(--header-height));
8+
background-color: var(--bg-darker);
9+
z-index: 1000;
10+
display: flex;
11+
flex-direction: row;
12+
}
13+
14+
.archive-main-content {
15+
display: flex;
16+
flex-direction: column;
17+
flex-grow: 1;
18+
}
19+
20+
.archive-sidebar {
21+
width: 300px;
22+
flex-shrink: 0;
23+
background-color: var(--bg-dark);
24+
border-left: 1px solid var(--border-color);
25+
display: flex;
26+
flex-direction: column;
27+
padding: 10px;
28+
}
29+
30+
.archive-sidebar h3 {
31+
color: var(--text-main);
32+
margin: 0 0 10px 0;
33+
font-size: 1.1em;
34+
border-bottom: 1px solid var(--border-color);
35+
padding-bottom: 8px;
36+
}
37+
38+
#archive-filters .form-check-inline {
39+
display: flex;
40+
margin-bottom: 8px;
41+
color: var(--text-main);
42+
}
43+
44+
#event-list {
45+
list-style: none;
46+
padding: 0;
47+
margin: 0;
48+
overflow-y: auto;
49+
flex-grow: 1;
50+
}
51+
52+
#event-list li {
53+
padding: 8px 5px;
54+
cursor: pointer;
55+
border-bottom: 1px solid var(--border-color);
56+
font-size: 13px;
57+
transition: background-color 0.2s;
58+
}
59+
60+
#event-list li:hover {
61+
background-color: var(--bg-light);
62+
}
63+
64+
.event-time {
65+
font-weight: bold;
66+
margin-right: 10px;
67+
}
68+
69+
.event-objects {
70+
color: var(--text-secondary);
71+
}
72+
73+
.archive-header {
74+
display: flex;
75+
align-items: center;
76+
padding: 10px 15px;
77+
background-color: var(--bg-dark);
78+
border-bottom: 1px solid var(--border-color);
79+
flex-shrink: 0;
80+
gap: 15px;
81+
}
82+
83+
.archive-header h2 {
84+
margin: 0;
85+
font-size: 1.2em;
86+
flex-grow: 1;
87+
}
88+
89+
.archive-header button {
90+
background-color: var(--bg-light);
91+
border: 1px solid var(--border-color);
92+
color: var(--text-main);
93+
padding: 5px 10px;
94+
border-radius: 4px;
95+
cursor: pointer;
96+
}
97+
98+
.archive-header button:disabled {
99+
opacity: 0.5;
100+
cursor: not-allowed;
101+
}
102+
103+
.archive-header input[type="text"] {
104+
background-color: var(--bg-light);
105+
border: 1px solid var(--border-color);
106+
color: var(--text-main);
107+
padding: 5px;
108+
border-radius: 4px;
109+
}
110+
111+
.archive-video-container {
112+
flex-grow: 1;
113+
display: flex;
114+
justify-content: center;
115+
align-items: center;
116+
background-color: #000;
117+
overflow: hidden;
118+
position: relative;
119+
}
120+
121+
.archive-video-container video {
122+
max-width: 100%;
123+
max-height: 100%;
124+
}
125+
126+
.archive-video-placeholder {
127+
color: var(--text-secondary);
128+
}
129+
130+
.timeline-container {
131+
height: 80px;
132+
background-color: var(--bg-dark);
133+
flex-shrink: 0;
134+
border-top: 1px solid var(--border-color);
135+
padding: 10px;
136+
display: flex;
137+
align-items: center;
138+
}
139+
140+
.timeline-wrapper {
141+
width: 100%;
142+
height: 100%;
143+
background-color: var(--bg-darker);
144+
border-radius: 4px;
145+
position: relative;
146+
border: 1px solid var(--border-color);
147+
cursor: grab;
148+
overflow-x: hidden;
149+
}
150+
.timeline-wrapper.grabbing {
151+
cursor: grabbing;
152+
}
153+
154+
#timeline-canvas {
155+
position: absolute;
156+
top: 0;
157+
left: 0;
158+
width: 100%;
159+
height: 100%;
160+
}
161+
162+
.timeline-labels {
163+
position: absolute;
164+
top: 0;
165+
left: 0;
166+
width: 100%;
167+
height: 20px;
168+
display: flex;
169+
color: var(--text-secondary);
170+
font-size: 12px;
171+
pointer-events: none;
172+
user-select: none;
173+
z-index: 2;
174+
}
175+
176+
.timeline-labels span {
177+
position: absolute;
178+
transform: translateX(-50%);
179+
}
180+
181+
#timeline-selection {
182+
position: absolute;
183+
top: 0;
184+
left: 0;
185+
height: 100%;
186+
background-color: rgba(255, 255, 0, 0.4);
187+
border: 1px dashed yellow;
188+
display: none;
189+
pointer-events: none;
190+
}
191+
192+
.archive-controls {
193+
display: flex;
194+
align-items: center;
195+
gap: 10px;
196+
padding: 5px 15px;
197+
background-color: var(--bg-dark);
198+
flex-shrink: 0;
199+
border-bottom: 1px solid var(--border-color);
200+
}
201+
202+
.archive-controls .icon-button {
203+
background-color: var(--bg-medium);
204+
border: 1px solid var(--border-color);
205+
border-radius: 50%;
206+
width: 32px;
207+
height: 32px;
208+
display: flex;
209+
align-items: center;
210+
justify-content: center;
211+
cursor: pointer;
212+
}
213+
.archive-controls .icon-button:hover {
214+
background-color: var(--accent-color);
215+
}
216+
.archive-controls .icon-button i {
217+
font-size: 24px;
218+
color: var(--text-main);
219+
}
220+
221+
.archive-controls .control-button {
222+
background-color: var(--bg-medium);
223+
border: 1px solid var(--border-color);
224+
border-radius: 4px;
225+
padding: 5px 10px;
226+
color: var(--text-main);
227+
cursor: pointer;
228+
font-family: monospace;
229+
}
230+
.archive-controls .control-button:hover {
231+
background-color: var(--accent-color);
232+
}
233+
.archive-controls .icon-button.active {
234+
background-color: var(--danger-color);
235+
animation: pulse-rec 1.5s infinite;
236+
}
237+
238+
.archive-controls .time-display {
239+
font-family: monospace;
240+
font-size: 16px;
241+
color: var(--text-main);
242+
}

0 commit comments

Comments
 (0)