@props([ 'title' => null, 'subtitle' => null, 'actions' => null, // A bootstrap-icons name, drawn in a tinted tile before the title. // Optional: every existing caller omits it and gets exactly the markup it // had before. 'icon' => null, /* | How loudly the title is set. | | The default is the aside label the record's side panels use: small, | uppercase, deliberately quiet, because a column of eight of them should | not shout. A panel that is the main subject of its screen needs a real | heading instead, so it can be opted into rather than imposed on every | existing caller. */ 'heading' => 'label', ]) {{-- A titled panel in the px design language. The same shape the patient record already used inline for demographics and the aside cards, named so the clinical lists can stop being Bootstrap cards in the middle of a screen that is not built from them. Was deliberately kept separate from while both existed. As of 2026-08-13 every screen has moved across and has no callers left, so this is now the only panel in the product — reach for it, not for a Bootstrap card. --}}
merge(['class' => 'px-panel px-panel--titled']) }}> @if ($title || $actions)
@if ($icon) @endif
@if ($title)

{{ $title }}

@endif @if ($subtitle)

{{ $subtitle }}

@endif
@if ($actions)
{{ $actions }}
@endif
@endif
{{ $slot }}