017bcc9ce1
- Fix indentation - Split awkward initializer into separate methods - Rename credentials to passkeys - Simplify authenticator registry loading - Flatten nested errors under ActionPack::WebAuthn - Set passkey current params only requests that use it - Inline anemic methods - Replace custom validation with ActiveModel::Validation - Rename identity to holder in Passkey - Rename credentials to passkeys in JS - Extract framework library out of controllers - Pass params hashes down to ActionPack - Attempt to simplify public interface - Push data decoding down to the classes representing the data - Introduce has_passkeys - Add CBOR bigint support - Rename ActionPack::WebAuthn::Passkey to ActionPack::Passkey - Add create_passkey_button helper - Rename public-key to creation-options - Add sign_in_with_passkey_button helper - Dispatch events for the whole Passkey lifecycle - Add ED25519 support - Prevent crash on missing meta tag - Validate resident key options - Don't clobber existing ActionPack config options - Validate cryptographic params - Move CurrentWebAuthnRequest into ActionPack::Passkey - Use ActiveModel::Attributes for Options objects - Implement expiring challanges - Add lifecycle events - Extract param helpers into Request - Add passkey_creation_options and passkey_request_options helpers - Add create_passkey_challenge to make it easier to override the create method if needed - Prefix all view helpers with passkey_ - Auto-include ActionPack::Passkey::Holder - Make the passkey challange url configurable - Add a reminder about Passkeys to the magic link email
44 lines
858 B
CSS
44 lines
858 B
CSS
@layer components {
|
|
.credential {
|
|
border-block-start: var(--border);
|
|
list-style: none;
|
|
|
|
&:last-child {
|
|
border-block-end: var(--border);
|
|
}
|
|
}
|
|
|
|
.credential__link {
|
|
align-items: center;
|
|
block-size: 1.75lh;
|
|
color: currentcolor;
|
|
display: flex;
|
|
gap: 1ch;
|
|
padding-inline: 1ch;
|
|
|
|
@media (any-hover: hover) {
|
|
&:hover {
|
|
background: var(--color-ink-lightest);
|
|
|
|
.credential__arrow {
|
|
opacity: 0.66;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
.credential__arrow {
|
|
margin-inline-start: auto;
|
|
opacity: 0;
|
|
}
|
|
|
|
[data-passkey-errors] [data-passkey-error] {
|
|
display: none;
|
|
}
|
|
|
|
[data-passkey-errors][data-passkey-error-state="error"] [data-passkey-error="error"],
|
|
[data-passkey-errors][data-passkey-error-state="cancelled"] [data-passkey-error="cancelled"] {
|
|
display: block;
|
|
}
|
|
}
|