From 2c87e7ec95328989cc97b806e462b7fb85ecd44f Mon Sep 17 00:00:00 2001 From: Lars Gebhardt-Kusche Date: Fri, 19 Jun 2026 00:58:20 +0200 Subject: [PATCH] dssad --- .../assets/apps/user-self-management/app.css | 213 +----------- .../assets/apps/user-self-management/app.js | 104 +++--- public/assets/desktop/desktop.css | 309 ++++++++++++++++++ 3 files changed, 362 insertions(+), 264 deletions(-) diff --git a/public/assets/apps/user-self-management/app.css b/public/assets/apps/user-self-management/app.css index b1e0596d..686c543b 100644 --- a/public/assets/apps/user-self-management/app.css +++ b/public/assets/apps/user-self-management/app.css @@ -9,25 +9,6 @@ box-sizing: border-box; } -#user-self-management-app .usm-shell { - min-height: 100%; - background: - linear-gradient(180deg, rgba(255, 255, 255, 0.95), rgba(241, 245, 249, 0.98)), - radial-gradient(circle at top right, rgba(96, 165, 250, 0.12), transparent 36%); -} - -#user-self-management-app .usm-frame { - display: grid; - grid-template-columns: 240px minmax(0, 1fr); - min-height: 100%; -} - -#user-self-management-app .usm-nav { - padding: 22px 16px; - border-right: 1px solid rgba(148, 163, 184, 0.25); - background: linear-gradient(180deg, #dbeafe 0%, #eff6ff 100%); -} - #user-self-management-app .usm-brand { margin-bottom: 18px; } @@ -49,55 +30,8 @@ color: #475569; } -#user-self-management-app .usm-nav-list { - display: grid; - gap: 8px; -} - -#user-self-management-app .usm-nav-button { - width: 100%; - padding: 12px 14px; - border: 1px solid rgba(148, 163, 184, 0.25); - border-radius: 14px; - background: rgba(255, 255, 255, 0.82); - color: inherit; - text-align: left; - font: inherit; - cursor: pointer; -} - #user-self-management-app .usm-nav-button.is-active { - background: #0f172a; - color: #f8fafc; - border-color: #0f172a; -} - -#user-self-management-app .usm-main { - padding: 24px; -} - -#user-self-management-app .usm-panel { - display: grid; - gap: 18px; - max-width: 1080px; - margin: 0 auto; -} - -#user-self-management-app .usm-hero, -#user-self-management-app .usm-card, -#user-self-management-app .usm-actions { - padding: 22px; - border-radius: 20px; - border: 1px solid rgba(148, 163, 184, 0.24); - background: rgba(255, 255, 255, 0.92); - box-shadow: 0 18px 42px rgba(15, 23, 42, 0.08); -} - -#user-self-management-app .usm-hero { - display: flex; - align-items: flex-start; - justify-content: space-between; - gap: 18px; + color: #0f172a; } #user-self-management-app .usm-kicker { @@ -115,83 +49,6 @@ line-height: 1.1; } -#user-self-management-app .usm-pill-row { - display: flex; - flex-wrap: wrap; - gap: 8px; -} - -#user-self-management-app .usm-pill { - display: inline-flex; - align-items: center; - min-height: 30px; - padding: 0 12px; - border-radius: 999px; - background: #e2e8f0; - font-size: 12px; - font-weight: 700; - color: #334155; -} - -#user-self-management-app .usm-grid, -#user-self-management-app .usm-choice-grid, -#user-self-management-app .usm-list { - display: grid; - gap: 16px; -} - -#user-self-management-app .usm-grid { - grid-template-columns: repeat(2, minmax(0, 1fr)); -} - -#user-self-management-app .usm-choice-grid { - grid-template-columns: repeat(3, minmax(0, 1fr)); -} - -#user-self-management-app .usm-field { - display: grid; - gap: 8px; -} - -#user-self-management-app .usm-label { - font-size: 13px; - font-weight: 700; - color: #334155; -} - -#user-self-management-app .usm-input, -#user-self-management-app .usm-textarea { - width: 100%; - min-height: 42px; - padding: 10px 12px; - border: 1px solid #cbd5e1; - border-radius: 12px; - background: #fff; - color: inherit; - font: inherit; -} - -#user-self-management-app .usm-textarea { - min-height: 112px; - resize: vertical; -} - -#user-self-management-app .usm-input:focus, -#user-self-management-app .usm-textarea:focus { - outline: 2px solid rgba(37, 99, 235, 0.18); - border-color: #3b82f6; -} - -#user-self-management-app .usm-choice { - display: grid; - gap: 8px; - padding: 16px; - border: 1px solid #cbd5e1; - border-radius: 16px; - background: #fff; - cursor: pointer; -} - #user-self-management-app .usm-choice.is-active { border-color: #2563eb; box-shadow: inset 0 0 0 1px #2563eb; @@ -212,17 +69,6 @@ color: #475569; } -#user-self-management-app .usm-item { - display: grid; - grid-template-columns: auto minmax(0, 1fr); - align-items: start; - gap: 12px; - padding: 14px 16px; - border: 1px solid #dbe2ea; - border-radius: 16px; - background: #fff; -} - #user-self-management-app .usm-item input { margin-top: 4px; } @@ -238,33 +84,6 @@ color: #1d4ed8; } -#user-self-management-app .usm-actions { - display: flex; - align-items: center; - justify-content: space-between; - gap: 16px; -} - -#user-self-management-app .usm-button { - display: inline-flex; - align-items: center; - justify-content: center; - min-height: 42px; - padding: 0 18px; - border: 0; - border-radius: 999px; - background: #2563eb; - color: #f8fafc; - font: inherit; - font-weight: 700; - cursor: pointer; -} - -#user-self-management-app .usm-button:disabled { - cursor: default; - opacity: 0.6; -} - #user-self-management-app .usm-message { font-size: 13px; color: #334155; @@ -277,33 +96,3 @@ #user-self-management-app .usm-message.is-success { color: #047857; } - -#user-self-management-app .usm-loading, -#user-self-management-app .usm-error-state { - display: grid; - place-items: center; - min-height: 320px; - padding: 24px; -} - -@media (max-width: 900px) { - #user-self-management-app .usm-frame { - grid-template-columns: 1fr; - } - - #user-self-management-app .usm-nav { - border-right: 0; - border-bottom: 1px solid rgba(148, 163, 184, 0.25); - } - - #user-self-management-app .usm-grid, - #user-self-management-app .usm-choice-grid { - grid-template-columns: 1fr; - } - - #user-self-management-app .usm-hero, - #user-self-management-app .usm-actions { - grid-template-columns: 1fr; - display: grid; - } -} diff --git a/public/assets/apps/user-self-management/app.js b/public/assets/apps/user-self-management/app.js index c9289719..a77bc9b9 100644 --- a/public/assets/apps/user-self-management/app.js +++ b/public/assets/apps/user-self-management/app.js @@ -43,7 +43,7 @@ return ` `).join('')} -
-
-
+
+
+
-

Desktop Setup

-

${escapeHtml(sectionTitle(state.activeSection))}

-

${escapeHtml(summarizeSection(state.activeSection))}

+

Desktop Setup

+

${escapeHtml(sectionTitle(state.activeSection))}

+

${escapeHtml(summarizeSection(state.activeSection))}

-
- LDAP: geplant - Keycloak: geplant - Scope: ${escapeHtml(state.bootstrap.meta.storage_scope || 'guest')} +
+ LDAP: geplant + Keycloak: geplant + Scope: ${escapeHtml(state.bootstrap.meta.storage_scope || 'guest')}
${sectionContent(state)} -
+
-

Skin- und App-Aenderungen koennen einen Reload ausloesen, damit Fenster, Icons und Menue sauber synchron bleiben.

-

${escapeHtml(state.error || state.success || '')}

+

Skin- und App-Aenderungen koennen einen Reload ausloesen, damit Fenster, Icons und Menue sauber synchron bleiben.

+

${escapeHtml(state.error || state.success || '')}

-
diff --git a/public/assets/desktop/desktop.css b/public/assets/desktop/desktop.css index cf4b5eea..8a069c66 100644 --- a/public/assets/desktop/desktop.css +++ b/public/assets/desktop/desktop.css @@ -514,6 +514,295 @@ h1 { color: #991b1b; } +.window-app-shell { + min-height: 100%; + color: #0f172a; + background: + linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(241, 245, 249, 0.98)), + radial-gradient(circle at top right, rgba(96, 165, 250, 0.12), transparent 36%); +} + +.window-app-frame { + display: grid; + grid-template-columns: 240px minmax(0, 1fr); + min-height: 100%; +} + +.window-app-sidebar { + padding: 22px 16px; + border-right: 1px solid rgba(148, 163, 184, 0.24); + background: + linear-gradient(180deg, rgba(219, 234, 254, 0.96), rgba(239, 246, 255, 0.94)), + linear-gradient(135deg, rgba(255, 255, 255, 0.3), transparent); +} + +.window-app-brand { + margin-bottom: 18px; +} + +.window-app-brand h1 { + margin: 0 0 8px; + font-size: 24px; + line-height: 1.1; +} + +.window-app-copy, +.window-app-meta, +.window-app-note, +.window-app-status, +.window-app-brand p { + margin: 0; + font-size: 14px; + line-height: 1.5; + color: #475569; +} + +.window-app-nav-list { + display: grid; + gap: 8px; +} + +.window-app-nav-button { + width: 100%; + padding: 12px 14px; + border: 1px solid rgba(148, 163, 184, 0.24); + border-radius: 14px; + background: rgba(255, 255, 255, 0.84); + color: inherit; + text-align: left; + font: inherit; + cursor: pointer; + box-shadow: 0 6px 16px rgba(15, 23, 42, 0.05); + transition: background-color 140ms ease, border-color 140ms ease, box-shadow 140ms ease, transform 140ms ease; +} + +.window-app-nav-button:hover { + transform: translateY(-1px); + border-color: rgba(59, 130, 246, 0.28); + background: rgba(255, 255, 255, 0.96); +} + +.window-app-nav-button.is-active { + border-color: rgba(37, 99, 235, 0.3); + background: linear-gradient(180deg, #ffffff 0%, #eff6ff 100%); + box-shadow: inset 0 0 0 1px rgba(37, 99, 235, 0.18), 0 8px 18px rgba(37, 99, 235, 0.08); + color: #0f172a; +} + +.window-app-main { + padding: 24px; +} + +.window-app-panel { + display: grid; + gap: 18px; + max-width: 1080px; + margin: 0 auto; +} + +.window-app-hero, +.window-app-card, +.window-app-actions { + padding: 22px; + border-radius: 20px; + border: 1px solid rgba(148, 163, 184, 0.24); + background: rgba(255, 255, 255, 0.92); + box-shadow: 0 18px 42px rgba(15, 23, 42, 0.08); +} + +.window-app-hero { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 18px; +} + +.window-app-kicker { + margin: 0 0 10px; + font-size: 12px; + font-weight: 700; + letter-spacing: 0.12em; + text-transform: uppercase; + color: #2563eb; +} + +.window-app-title { + margin: 0 0 8px; + font-size: 32px; + line-height: 1.1; +} + +.window-app-pill-row { + display: flex; + flex-wrap: wrap; + gap: 8px; +} + +.window-app-pill { + display: inline-flex; + align-items: center; + min-height: 30px; + padding: 0 12px; + border-radius: 999px; + background: #e2e8f0; + font-size: 12px; + font-weight: 700; + color: #334155; +} + +.window-app-grid, +.window-app-choice-grid, +.window-app-list { + display: grid; + gap: 16px; +} + +.window-app-grid { + grid-template-columns: repeat(2, minmax(0, 1fr)); +} + +.window-app-choice-grid { + grid-template-columns: repeat(3, minmax(0, 1fr)); +} + +.window-app-field { + display: grid; + gap: 8px; +} + +.window-app-label { + font-size: 13px; + font-weight: 700; + color: #334155; +} + +.window-app-input, +.window-app-textarea { + width: 100%; + min-height: 42px; + padding: 10px 12px; + border: 1px solid #cbd5e1; + border-radius: 12px; + background: #fff; + color: inherit; + font: inherit; +} + +.window-app-textarea { + min-height: 112px; + resize: vertical; +} + +.window-app-input:focus, +.window-app-textarea:focus { + outline: 2px solid rgba(37, 99, 235, 0.18); + border-color: #3b82f6; +} + +.window-app-choice { + display: grid; + gap: 8px; + padding: 16px; + border: 1px solid #cbd5e1; + border-radius: 16px; + background: #fff; + cursor: pointer; +} + +.window-app-choice.is-active { + border-color: #2563eb; + box-shadow: inset 0 0 0 1px #2563eb; + background: #eff6ff; +} + +.window-app-choice strong, +.window-app-item-main strong { + display: block; + margin: 0 0 4px; + font-size: 15px; +} + +.window-app-choice p, +.window-app-item-main p { + margin: 0; + font-size: 13px; + color: #475569; +} + +.window-app-item { + display: grid; + grid-template-columns: auto minmax(0, 1fr); + align-items: start; + gap: 12px; + padding: 14px 16px; + border: 1px solid #dbe2ea; + border-radius: 16px; + background: #fff; +} + +.window-app-item input { + margin-top: 4px; +} + +.window-app-item-main { + min-width: 0; +} + +.window-app-item-meta { + margin-top: 8px; + font-size: 12px; + font-weight: 700; + color: #1d4ed8; +} + +.window-app-actions { + display: flex; + align-items: center; + justify-content: space-between; + gap: 16px; +} + +.window-app-button { + display: inline-flex; + align-items: center; + justify-content: center; + min-height: 42px; + padding: 0 18px; + border: 0; + border-radius: 999px; + background: #2563eb; + color: #f8fafc; + font: inherit; + font-weight: 700; + cursor: pointer; +} + +.window-app-button:disabled { + cursor: default; + opacity: 0.6; +} + +.window-app-message { + font-size: 13px; + color: #334155; +} + +.window-app-message.is-error { + color: #b91c1c; +} + +.window-app-message.is-success { + color: #047857; +} + +.window-app-loading, +.window-app-error-state { + display: grid; + place-items: center; + min-height: 320px; + padding: 24px; +} + .window-embed-fallback { position: absolute; inset: auto 16px 16px 16px; @@ -933,4 +1222,24 @@ h1 { left: auto !important; top: auto !important; } + + .window-app-frame { + grid-template-columns: 1fr; + } + + .window-app-sidebar { + border-right: 0; + border-bottom: 1px solid rgba(148, 163, 184, 0.25); + } + + .window-app-grid, + .window-app-choice-grid { + grid-template-columns: 1fr; + } + + .window-app-hero, + .window-app-actions { + display: grid; + grid-template-columns: 1fr; + } }