@props(['entry', 'unlocked', 'mode']) {{-- 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'] }}

{{-- Which of the two slots THIS card reads and writes right now — fix round, Important: save()/render() resolve without a mode argument, so they always act on OperatingMode::current()'s slot, but nothing on the card said so. The badge in the header above (Integrations::mode_title) is not enough: it is not visible at the card an operator is about to type into, and repeating "Testbetrieb"/"Livebetrieb" there would only restate the MODE, not name the PLATZ a value lands in. Same colours as that header badge, for one visual language. --}} {{ __('secrets.slot.'.$mode->value) }} {{-- Aufgezählt nach den zwei Enden statt nach jedem Wert einzeln: grün heißt „liegt in DIESEM Platz", gelb heißt „nirgends", und alles dazwischen (aus der Serverdatei, aus dem Live-Platz) ist blau — in Kraft, aber woanders her. So bekommt ein künftiger vierter Wert nicht still die Farbe von „Nicht gesetzt". --}} {{ __('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