- Removed commented-out header styles from styles.base.tcss and styles.tcss. - Added new styles for danger buttons and agent selection views in styles.base.tcss and styles.tcss. - Implemented AgentHomeView to manage agent actions and display metadata. - Created AgentSelectView for selecting agents with a new layout and functionality. - Added CreateAgentView for creating new agents with input validation. - Removed obsolete eval.py and replaced it with evaluation.py. - Developed GameSelectView for selecting games with a dynamic loading interface. - Introduced ModelSelectView for selecting models associated with agents. - Created SelectRunView for managing runs associated with agents. - Added SubmissionView and TrainingView for handling model training and submission processes. - Updated requirements.txt to include pyfiglet for ASCII art rendering.
325 lines
5.2 KiB
Plaintext
325 lines
5.2 KiB
Plaintext
/* === Global App Styles === */
|
|
|
|
Screen {
|
|
background: {{BACKGROUND}};
|
|
color: {{FOREGROUND}};
|
|
}
|
|
|
|
/* === Resets === */
|
|
|
|
* {
|
|
padding: 0 1;
|
|
border: none;
|
|
}
|
|
|
|
/* === Buttons === */
|
|
|
|
Button {
|
|
background: {{SURFACE_10}};
|
|
color: {{ACCENT}};
|
|
border: solid {{ACCENT}};
|
|
padding: 1;
|
|
margin: 0;
|
|
content-align: center middle;
|
|
text-style: bold;
|
|
width: 100%;
|
|
min-height: 3;
|
|
text-align: center;
|
|
}
|
|
|
|
Button:hover {
|
|
background: {{ACCENT}};
|
|
color: {{BACKGROUND}};
|
|
}
|
|
|
|
Button:focus {
|
|
background: {{SURFACE_20}};
|
|
border: solid {{ACCENT}};
|
|
}
|
|
|
|
Button:disabled {
|
|
background: {{DISABLED_BG}};
|
|
color: {{DISABLED}};
|
|
border: solid {{DISABLED_BORDER}};
|
|
text-style: dim;
|
|
}
|
|
|
|
/* === Danger Button Variant === */
|
|
.danger_button {
|
|
background: {{SURFACE_10}};
|
|
color: {{LIGHT}};
|
|
border: solid {{ERROR}};
|
|
}
|
|
|
|
.danger_button:hover {
|
|
background: {{SURFACE_20}};
|
|
color: {{ERROR}};
|
|
border: solid {{ERROR}};
|
|
}
|
|
|
|
/* === Grid Layout === */
|
|
|
|
.rom_grid {
|
|
grid-size: 5;
|
|
grid-gutter: 1;
|
|
padding: 0 1; /* Was: 1 2 */
|
|
margin: 0;
|
|
width: 100%;
|
|
align-horizontal: center;
|
|
align-vertical: middle;
|
|
height: auto; /* Ensure it can grow */
|
|
}
|
|
|
|
#rom_grid_scroll {
|
|
max-height: 30vh; /* was: height: 40vh */
|
|
overflow-y: auto;
|
|
scrollbar-gutter: stable;
|
|
padding: 0;
|
|
margin: 0;
|
|
border-bottom: solid {{BORDER}};
|
|
}
|
|
|
|
/* Optionally ensure the parent container scrolls properly */
|
|
#game_content_layout {
|
|
height: auto;
|
|
width: 100%;
|
|
padding: 1 2;
|
|
}
|
|
|
|
/* === Inputs === */
|
|
|
|
Input {
|
|
background: {{SURFACE_10}};
|
|
color: {{FOREGROUND}};
|
|
border: solid {{BORDER}};
|
|
}
|
|
|
|
Input:focus {
|
|
background: {{SURFACE_20}};
|
|
border: solid {{ACCENT}};
|
|
}
|
|
|
|
/* === Alerts === */
|
|
|
|
.success {
|
|
color: {{SUCCESS}};
|
|
}
|
|
|
|
.warning {
|
|
color: {{ACCENT}};
|
|
}
|
|
|
|
.error {
|
|
color: {{ERROR}};
|
|
}
|
|
|
|
/* === Login Form === */
|
|
|
|
#login_form {
|
|
layout: vertical;
|
|
align-horizontal: center;
|
|
align-vertical: middle;
|
|
width: 60%;
|
|
height: auto;
|
|
padding: 2 4;
|
|
border: solid {{BORDER}};
|
|
}
|
|
|
|
#status_message {
|
|
color: {{ACCENT}};
|
|
padding: 1;
|
|
}
|
|
|
|
#pw_row {
|
|
layout: horizontal;
|
|
padding: 0;
|
|
}
|
|
|
|
#pw_row > * {
|
|
margin-right: 1;
|
|
}
|
|
|
|
#pw_row > *:last-child {
|
|
margin-right: 0;
|
|
}
|
|
|
|
/* === Loading Overlay === */
|
|
|
|
#loading_overlay {
|
|
dock: top;
|
|
background: {{SURFACE_10}};
|
|
color: {{FOREGROUND}};
|
|
padding: 1 2;
|
|
text-style: bold;
|
|
content-align: center middle;
|
|
}
|
|
|
|
/* === Layout === */
|
|
|
|
.centered_layout {
|
|
layout: vertical;
|
|
align-horizontal: center;
|
|
align-vertical: middle;
|
|
padding: 2;
|
|
width: 100%;
|
|
}
|
|
|
|
Static {
|
|
text-align: center;
|
|
}
|
|
|
|
Horizontal {
|
|
content-align: center middle;
|
|
}
|
|
|
|
.info_confirm_row {
|
|
height: auto;
|
|
padding: 0 0;
|
|
margin: 0;
|
|
}
|
|
|
|
#confirm_button {
|
|
width: 100%; /* Take full width of its container */
|
|
min-width: 20; /* Increase minimum width if needed */
|
|
max-width: 100%; /* Optional: avoid oversizing */
|
|
}
|
|
|
|
.confirm_button:hover {
|
|
background: {{ACCENT}};
|
|
color: {{BACKGROUND}};
|
|
}
|
|
|
|
.game_info {
|
|
padding: 0 1;
|
|
margin: 0;
|
|
width: 100%;
|
|
color: {{ACCENT}};
|
|
}
|
|
|
|
#game_info_box {
|
|
width: 80%;
|
|
height: auto;
|
|
max-height: 50vh; /* Adjusted for better visibility */
|
|
padding: 1;
|
|
overflow-y: auto;
|
|
}
|
|
|
|
Button.game_button {
|
|
min-height: 3;
|
|
}
|
|
|
|
#confirm_button_container {
|
|
width: 20%;
|
|
min-width: 20;
|
|
align-vertical: middle;
|
|
align-horizontal: center;
|
|
height: 100%;
|
|
padding-left: 1;
|
|
}
|
|
|
|
/* === Agent Select View === */
|
|
|
|
#agent_select_layout {
|
|
layout: vertical;
|
|
width: 100%;
|
|
height: auto;
|
|
padding: 2;
|
|
}
|
|
|
|
#agent_scroll {
|
|
max-height: 35vh;
|
|
overflow-y: auto;
|
|
padding: 0 1;
|
|
border: solid {{BORDER}};
|
|
scrollbar-gutter: stable;
|
|
}
|
|
|
|
.agent_card {
|
|
background: {{SURFACE_10}};
|
|
border-bottom: dashed {{BORDER}};
|
|
padding: 1 2;
|
|
text-align: left;
|
|
color: {{FOREGROUND}};
|
|
}
|
|
|
|
.agent_card:last-child {
|
|
border-bottom: none;
|
|
}
|
|
|
|
.agent_card:hover {
|
|
background: {{SURFACE_20}};
|
|
color: {{ACCENT}};
|
|
}
|
|
|
|
#agent_scroll > .agent_card {
|
|
margin-bottom: 1;
|
|
}
|
|
|
|
/* Message displayed when no agents exist (mounted manually in Python) */
|
|
#agent_scroll > Static {
|
|
color: {{DISABLED}};
|
|
text-style: italic;
|
|
padding: 1;
|
|
}
|
|
|
|
#create_agent_btn {
|
|
width: 100%;
|
|
max-width: 30%;
|
|
margin-top: 1;
|
|
align: center middle;
|
|
}
|
|
|
|
#create_agent_layout {
|
|
layout: vertical;
|
|
width: 100%;
|
|
height: auto;
|
|
padding: 2;
|
|
}
|
|
|
|
#agent_name_input {
|
|
width: 100%;
|
|
max-width: 40%;
|
|
align: center middle;
|
|
margin: 1 0;
|
|
}
|
|
|
|
#agent_info_panel {
|
|
layout: horizontal;
|
|
width: 100%;
|
|
height: auto;
|
|
max-height: 150vh;
|
|
padding: 0 1;
|
|
border: solid {{BORDER}};
|
|
align-vertical: top;
|
|
content-align: center middle;
|
|
}
|
|
|
|
.agent_info_box {
|
|
width: 70%;
|
|
height: auto;
|
|
}
|
|
|
|
.agent_card {
|
|
max-height: 20;
|
|
}
|
|
|
|
.agent_action_box {
|
|
width: 30%;
|
|
height: auto;
|
|
layout: vertical;
|
|
align-vertical: top;
|
|
align-horizontal: right;
|
|
}
|
|
|
|
#create_button_container {
|
|
align-horizontal: center;
|
|
padding-top: 1;
|
|
}
|
|
|
|
/* === Agent Home View === */
|
|
#agent_home_menu Button {
|
|
max-width: 40%;
|
|
min-height: 3;
|
|
margin: 1 0;
|
|
align: center middle;
|
|
} |