Files
plebeian-signer/projects/chrome/src/app/components/profile-edit/profile-edit.component.scss
mleku ebe2b695cc Release v1.0.0 - Major security upgrade with Argon2id encryption
- Upgrade vault encryption from PBKDF2 (1000 iterations) to Argon2id
  (256MB memory, 8 iterations, 4 threads, ~3 second derivation)
- Add automatic migration from v1 to v2 vault format on unlock
- Add WebAssembly CSP support for hash-wasm Argon2id implementation
- Add NIP-42 relay authentication support for auth-required relays
- Add profile edit feature with pencil icon on identity page
- Add direct NIP-05 validation (removes NDK dependency for validation)
- Add deriving modal with progress timer during key derivation
- Add client tag "plebeian-signer" to profile events
- Fix modal colors (dark theme for visibility)
- Fix NIP-05 badge styling to include check/error indicator
- Add release zip packages for Chrome and Firefox

New files:
- projects/common/src/lib/helpers/argon2-crypto.ts
- projects/common/src/lib/helpers/websocket-auth.ts
- projects/common/src/lib/helpers/nip05-validator.ts
- projects/common/src/lib/components/deriving-modal/
- projects/{chrome,firefox}/src/app/components/profile-edit/
- releases/plebeian-signer-{chrome,firefox}-v1.0.0.zip

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-19 12:30:10 +01:00

70 lines
1.3 KiB
SCSS

:host {
height: 100%;
display: flex;
flex-direction: column;
.loading-container {
flex: 1;
display: flex;
align-items: center;
justify-content: center;
}
.content {
padding-left: var(--size);
padding-right: var(--size);
flex-grow: 1;
display: flex;
flex-direction: column;
gap: 12px;
overflow-y: auto;
padding-bottom: var(--size);
}
.form-group {
display: flex;
flex-direction: column;
gap: 4px;
label {
font-size: 12px;
font-weight: 500;
color: var(--muted-foreground);
text-transform: uppercase;
letter-spacing: 0.05em;
}
.form-control {
font-size: 14px;
background: var(--background-light);
border: 1px solid var(--border);
color: var(--foreground);
border-radius: var(--radius);
padding: 8px 12px;
&:focus {
outline: none;
border-color: var(--primary);
box-shadow: 0 0 0 2px rgba(var(--primary-rgb), 0.2);
}
&::placeholder {
color: var(--muted-foreground);
opacity: 0.6;
}
}
textarea.form-control {
resize: vertical;
min-height: 80px;
}
}
.alert-container {
position: absolute;
bottom: 70px;
left: var(--size);
right: var(--size);
}
}