feat(ui): version in footer, iOS icon grid, alphanumeric passwords

This commit is contained in:
Claus Lohmar 2026-06-14 17:56:57 +00:00
parent 28881750db
commit 9e056ddd4a
3 changed files with 79 additions and 75 deletions

View file

@ -1 +1 @@
2026.6.0004 2026.6.0005

View file

@ -1,5 +1,7 @@
package ui package ui
import appver "git.lohmar.co.uk/lexton-it/NextWks/core/version"
templ LauncherPage(userName string, role string, apps []AppTile) { templ LauncherPage(userName string, role string, apps []AppTile) {
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
@ -21,6 +23,9 @@ templ LauncherPage(userName string, role string, apps []AppTile) {
@greetingSection(userName) @greetingSection(userName)
@AppGrid(apps) @AppGrid(apps)
</main> </main>
<footer class="footer">
<span>NextWks v{ appver.Version }</span>
</footer>
</div> </div>
<!-- PWA Modal --> <!-- PWA Modal -->
@ -149,40 +154,20 @@ templ workspaceCSS() {
.app-card.disabled{opacity:0.35;cursor:default} .app-card.disabled{opacity:0.35;cursor:default}
.app-card.disabled:active{transform:none} .app-card.disabled:active{transform:none}
/* Overlay & Modal */ /* Footer */
.overlay{ .footer{
position:fixed;inset:0;background:rgba(0,0,0,0.7);z-index:1000; text-align:center;padding:16px;color:var(--text3);font-size:0.7rem;
display:flex;align-items:center;justify-content:center; border-top:1px solid var(--border);margin-top:auto
backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px)
} }
.modal{
background:var(--surface); border:1px solid var(--border);
border-radius:var(--radius); width:92%; max-width:420px; max-height:85vh; overflow-y:auto
}
.modal-head{
display:flex;justify-content:space-between;align-items:center;
padding:18px 20px 12px
}
.modal-head h2{font-size:1.1rem;font-weight:600}
.modal-body{padding:0 20px 20px}
.close-btn{
width:32px;height:32px;border-radius:50%;border:none;background:transparent;
color:var(--text2);font-size:22px;cursor:pointer;display:flex;align-items:center;justify-content:center
}
.modal-body h3{font-size:0.85rem;font-weight:600;color:var(--text2);margin:14px 0 6px;text-transform:uppercase;letter-spacing:0.5px}
.modal-body ol{padding-left:18px}
.modal-body li{font-size:0.85rem;color:var(--text);margin-bottom:4px;line-height:1.5}
.modal-body code{background:var(--surface2);padding:1px 5px;border-radius:4px;font-size:0.8rem}
.modal-body .btn{
display:block;width:100%;padding:12px;margin-top:16px;border:none;border-radius:var(--radius-sm);
background:var(--blue);color:#fff;font-size:0.9rem;font-weight:600;cursor:pointer;text-align:center
}
.modal-body .btn:hover{opacity:0.9}
</style> </style>
} }
// --- Helpers --- // --- Helpers ---
func version() string {
return appver.Version
}
func initials(name string) string { func initials(name string) string {
if name == "" { return "?" } if name == "" { return "?" }
if len(name) == 1 { return name } if len(name) == 1 { return name }

File diff suppressed because one or more lines are too long