- 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>
131 lines
2.5 KiB
SCSS
131 lines
2.5 KiB
SCSS
@use "sass:meta";
|
|
|
|
@include meta.load-css("../../../node_modules/bootstrap/scss/bootstrap");
|
|
@include meta.load-css(
|
|
"../../../node_modules/bootstrap-icons/font/bootstrap-icons.min.css"
|
|
);
|
|
|
|
// Load the common styles
|
|
@include meta.load-css("../../common/src/lib/styles/styles.scss");
|
|
|
|
body {
|
|
height: 600px;
|
|
width: 375px;
|
|
|
|
color: var(--foreground);
|
|
font-family: var(--font-sans);
|
|
font-size: 16px;
|
|
background: var(--background);
|
|
|
|
margin: 0;
|
|
}
|
|
|
|
// Button styling to match market
|
|
button {
|
|
text-transform: uppercase;
|
|
font-family: var(--font-sans);
|
|
}
|
|
|
|
// Override Bootstrap primary button with orange
|
|
.btn-primary {
|
|
background-color: var(--primary);
|
|
border-color: var(--primary-border);
|
|
color: var(--primary-foreground);
|
|
|
|
&:hover,
|
|
&:focus {
|
|
background-color: var(--primary-hover);
|
|
border-color: var(--primary-border-hover);
|
|
color: var(--primary-foreground-hover);
|
|
}
|
|
|
|
&:active,
|
|
&.active {
|
|
background-color: var(--primary-hover);
|
|
border-color: var(--primary-border-hover);
|
|
}
|
|
|
|
&:disabled,
|
|
&.disabled {
|
|
background-color: var(--primary);
|
|
border-color: var(--primary-border);
|
|
opacity: 0.5;
|
|
}
|
|
|
|
&:focus-visible {
|
|
box-shadow: 0 0 0 0.25rem rgba(255, 62, 181, 0.25);
|
|
}
|
|
}
|
|
|
|
// Style for outline variant
|
|
.btn-outline-primary {
|
|
color: var(--primary);
|
|
border-color: var(--primary-border);
|
|
|
|
&:hover,
|
|
&:focus {
|
|
background-color: var(--primary);
|
|
border-color: var(--primary-border);
|
|
color: var(--primary-foreground);
|
|
}
|
|
}
|
|
|
|
// Form inputs styling
|
|
.form-control {
|
|
background-color: var(--input);
|
|
border-color: var(--input-border);
|
|
color: var(--foreground);
|
|
|
|
&:focus {
|
|
background-color: var(--input);
|
|
border-color: var(--primary);
|
|
color: var(--foreground);
|
|
box-shadow: 0 0 0 0.25rem rgba(255, 62, 181, 0.25);
|
|
}
|
|
|
|
&::placeholder {
|
|
color: var(--muted-foreground);
|
|
}
|
|
}
|
|
|
|
// Ensure alerts work in both themes
|
|
.alert-danger {
|
|
background-color: var(--destructive);
|
|
border-color: var(--destructive);
|
|
color: var(--destructive-foreground);
|
|
}
|
|
|
|
// Cards and panels
|
|
.sam-card {
|
|
background: var(--background-light);
|
|
border-color: var(--border);
|
|
color: var(--foreground);
|
|
}
|
|
|
|
// Bootstrap modal overrides - always use dark theme for modals
|
|
.modal-content {
|
|
background-color: #1a1a1a;
|
|
border-color: #3d3d3d;
|
|
color: #fafafa;
|
|
}
|
|
|
|
.modal-header {
|
|
border-bottom-color: #3d3d3d;
|
|
|
|
.modal-title {
|
|
color: #fafafa;
|
|
}
|
|
|
|
.btn-close {
|
|
filter: invert(1);
|
|
}
|
|
}
|
|
|
|
.modal-footer {
|
|
border-top-color: #3d3d3d;
|
|
}
|
|
|
|
.modal-body {
|
|
color: #fafafa;
|
|
}
|