7dd77d4ef4
- New skald-setup crate: interactive first-run wizard that creates the admin user, prompts for encryption choice and password - Auth system: session-based login/logout with cookie, guard middleware - Roles API: CRUD for data-driven roles, seeded on first boot - Users management API: create, list, edit, delete users - Setup state API: check if first admin has been created - Frontend: login-page, setup-page, users-page, roles-page, profile-page components with corresponding CSS - Topbar: avatar dropdown with profile link and logout - Sidebar: nav entries for Users and Roles (admin only) - Page shell CSS: layout support for the new pages - build.sh: builds both skald and skald-setup binaries - run.sh: runs skald-setup before the server loop - CLAUDE.md: updated workspace layout and build/run docs
97 lines
2.0 KiB
CSS
97 lines
2.0 KiB
CSS
/* ── Custom element display + layout shell ──────────────────────────────────── */
|
|
|
|
tasks-page {
|
|
display: none; /* toggled by JS */
|
|
flex-direction: column;
|
|
flex: 1;
|
|
min-width: 0;
|
|
min-height: 0;
|
|
overflow: hidden;
|
|
border-right: 1px solid var(--toolbar-border, #e5e9f0);
|
|
}
|
|
|
|
task-running-section,
|
|
task-cron-jobs-section,
|
|
task-scheduled-section,
|
|
task-history-section {
|
|
display: flex;
|
|
flex-direction: column;
|
|
flex: 1;
|
|
min-height: 0;
|
|
min-width: 0;
|
|
}
|
|
|
|
llm-providers-page,
|
|
models-hub-page {
|
|
display: none; /* toggled by JS */
|
|
flex: 1;
|
|
min-width: 0;
|
|
overflow-y: auto;
|
|
border-right: 1px solid var(--toolbar-border, #e5e9f0);
|
|
}
|
|
|
|
models-llm-section,
|
|
models-transcribe-section,
|
|
models-image-section {
|
|
display: flex;
|
|
flex-direction: column;
|
|
flex: 1;
|
|
min-height: 0;
|
|
min-width: 0;
|
|
}
|
|
|
|
projects-page {
|
|
display: none; /* toggled by JS */
|
|
flex-direction: column;
|
|
flex: 1;
|
|
min-width: 0;
|
|
min-height: 0;
|
|
overflow: hidden;
|
|
border-right: 1px solid var(--toolbar-border, #e5e9f0);
|
|
}
|
|
|
|
project-list-section,
|
|
project-board-section {
|
|
display: flex;
|
|
flex-direction: column;
|
|
flex: 1;
|
|
min-height: 0;
|
|
min-width: 0;
|
|
}
|
|
|
|
session-detail-page,
|
|
tic-sessions-page,
|
|
file-viewer-page {
|
|
display: none; /* toggled by JS */
|
|
flex-direction: column;
|
|
flex: 1;
|
|
min-width: 0;
|
|
min-height: 0;
|
|
overflow: hidden;
|
|
border-right: 1px solid var(--toolbar-border, #e5e9f0);
|
|
}
|
|
|
|
users-page,
|
|
roles-page,
|
|
profile-page {
|
|
display: none; /* toggled by JS */
|
|
flex-direction: column;
|
|
flex: 1;
|
|
min-width: 0;
|
|
min-height: 0;
|
|
overflow: hidden;
|
|
border-right: 1px solid var(--toolbar-border, #e5e9f0);
|
|
}
|
|
|
|
/* ── Workspace placeholder ──────────────────────────────────────────────────── */
|
|
|
|
.app-workspace {
|
|
display: flex;
|
|
flex: 1;
|
|
min-width: 0;
|
|
align-items: center;
|
|
justify-content: center;
|
|
color: var(--placeholder-color, #94a3b8);
|
|
font-size: 0.9rem;
|
|
}
|