@php use Filament\Support\Enums\Alignment; use Filament\Support\Enums\IconSize; @endphp @props([ "aside" => false, "collapsed" => false, "collapsible" => false, "compact" => false, "contentBefore" => false, "description" => null, "footerActions" => [], "footerActionsAlignment" => Alignment::Start, "headerActions" => [], "headerEnd" => null, "heading" => null, "icon" => null, "iconColor" => "gray", "iconSize" => IconSize::Large, "persistCollapsed" => false, ]) @php $hasDescription = filled((string) $description); $hasHeading = filled($heading); $hasIcon = filled($icon); if (is_array($headerActions)) { $headerActions = array_filter($headerActions, fn ($headerAction): bool => $headerAction->isVisible()); } if (is_array($footerActions)) { $footerActions = array_filter($footerActions, fn ($footerAction): bool => $footerAction->isVisible()); } $hasHeaderActions = $headerActions instanceof \Illuminate\Contracts\Support\Htmlable ? ! \Filament\Support\is_slot_empty($headerActions) : filled($headerActions); $hasFooterActions = $footerActions instanceof \Illuminate\Contracts\Support\Htmlable ? ! \Filament\Support\is_slot_empty($footerActions) : filled($footerActions); $hasHeader = $hasIcon || $hasHeading || $hasDescription || $collapsible || $hasHeaderActions || filled((string) $headerEnd); @endphp
class([ "fi-section", match ($aside) { true => "fi-aside grid grid-cols-1 items-start gap-x-6 gap-y-4 md:grid-cols-3 md:gap-x-12 md:gap-y-6", false => "", }, ]) }} > @if ($hasHeader)
$collapsible, match ($compact) { true => "p-0", false => "py-4", } => ! $aside, ]) >
@if ($hasIcon) "text-gray-400 dark:text-gray-500", default => "fi-color-custom text-custom-500 dark:text-custom-400", }, is_string($iconColor) ? "fi-color-{$iconColor}" : null, match ($iconSize) { IconSize::Small, "sm" => "size-4 mt-1", IconSize::Medium, "md" => "size-5 mt-0.5", IconSize::Large, "lg" => "size-6", default => $iconSize, }, ]) @style([ \Filament\Support\get_color_css_variables( $iconColor, shades: [400, 500], alias: "section.header.icon", ) => $iconColor !== "gray", ]) /> @endif @if ($hasHeading || $hasDescription)
@if ($hasHeading) {{ $heading }} @endif @if ($hasDescription) {{ $description }} @endif
@endif @if ($hasHeaderActions) @endif {{ $headerEnd }} @if ($collapsible) @endif
@if ($hasHeaderActions)
@endif
@endif
$hasHeader && ! $aside && ! $collapsible, "md:col-span-2 lg:max-w-3xl" => $aside, "md:order-first" => $contentBefore, "px-2 pt-4 lg:pt-6" => $collapsible, ]) >
"p-0", false => "py-5", }, ]) > {{ $slot }}
@if ($hasFooterActions) @endif