fix: UI overhaul — align all HTMX views with Lumina Design System (46 fixes)

- All 7 pages rewritten: Dashboard, Terminal, Snippets, Keychain, SFTP, Settings, Brief
- Apply consistent Lumina glassmorphic theme (rounded-2xl, shadows, borders, tracking)
- Fix SVG icons not rendering — return template.HTML instead of string
- Fix Alpine x-data scoping: terminal tabs, SFTP modals, snippet tag buttons
- Fix dashboard search sending literal ?q=...
- Rebuild CSS with all new Tailwind classes (62KB)
- Add .air.toml with hot-reload config, docs/PERBAIKANUI.md checklist
- Remove unused backup partials
This commit is contained in:
swanadiva
2026-07-07 14:55:42 +07:00
parent fd7361aa14
commit 8357d9d76e
29 changed files with 3321 additions and 924 deletions
+19 -1
View File
@@ -44,13 +44,16 @@ func (s *KeyStore) Search(q string) []model.Key {
func (s *KeyStore) Add(name, username, url, passphrase string) model.Key {
mu.Lock()
defer mu.Unlock()
keyType := guessKeyType(name, passphrase)
k := model.Key{
ID: randID(),
Name: name,
Username: username,
URL: url,
Passphrase: passphrase,
Strength: calcStrength(passphrase),
Type: keyType,
URL: url,
KeyFile: "— " + keyType + " credential —",
CreatedAt: time.Now().Format("Jan 2, 2006"),
}
s.keys = append(s.keys, k)
@@ -58,6 +61,21 @@ func (s *KeyStore) Add(name, username, url, passphrase string) model.Key {
return k
}
func guessKeyType(name, passphrase string) string {
switch {
case len(passphrase) >= 25:
return "ED25519"
case contains(name, "aws") || contains(name, "AWS"):
return "AWS Key"
case contains(name, "token") || contains(name, "bearer") || contains(name, "TOKEN"):
return "Bearer Token"
case len(passphrase) <= 3:
return "PASSWORD"
default:
return "SSH RSA"
}
}
func (s *KeyStore) Delete(id string) {
mu.Lock()
defer mu.Unlock()