@props(['entry', 'unlocked']) {{-- One vault entry — outline, new-value field, test/save/forget — reusable across every integration section on App\Livewire\Admin\Integrations. Kept as its own component so a section can sit a secret and a plain setting side by side (R20 exception: this is the page, not a table row) without repeating this block per section. Locked and unlocked are two genuinely different renders, not one hidden behind CSS: while locked, nothing about the stored value — not even whether one exists beyond the badge above this component — reaches the page beyond a "gesperrt" note. --}}

{{ $entry['label'] }}

{{ $entry['key'] }}

{{ __('secrets.source_'.$entry['source']) }}
@if (! $unlocked)

{{ __('secrets.locked_title') }}

@else @if ($entry['outline'])
{{ __('secrets.stored_value') }}
{{ $entry['outline'] }}
@if ($entry['updated_at'])
{{ __('secrets.changed') }}
{{ \Illuminate\Support\Carbon::parse($entry['updated_at'])->diffForHumans() }}
@endif
@endif
@if ($entry['multiline']) {{-- A multi-line PEM key: a single-line password field would mangle it on paste. Not masked — a textarea cannot mask its content in any browser. --}}

{{ __('secrets.ssh_private_key_hint') }}

@error('entered.'.$entry['field'])

{{ $message }}

@enderror @else @endif
{{-- Test first: a key that is saved and wrong fails later, somewhere else, usually in front of a customer. --}} @if ($entry['testable']) {{ __('secrets.test') }} @endif {{ __('secrets.save') }} @if ($entry['source'] === 'stored') {{ __('secrets.forget') }} @endif
@endif