{{-- =========================================================================== [컴포넌트 사용 가이드: x-admin.forms.radio] 1. 검색/필터바 전용 (isFilter + 선택적 autoSubmit): - 세그먼트 캡슐 트랙 버튼 그룹 UI 자동 적용 - 빈값('')은 은은한 기본 칩, 특정 값 선택 시 Primary 칩 강조 2. 등록/수정 폼 본문 (isFilter 기본값 false: 가로형 일반 원형 라디오 + SweetAlert2 필수 검증):
3. 등록/수정 폼 본문 (세로형 리스트 배치: inline=false):
=========================================================================== --}} @props([ 'name', // radio 그룹 name (필수) 'options' => [], // [ '값' => '라벨' ] 연관 배열 'selected' => null, // 현재 선택값 (old() 값을 최우선 반영) 'label' => null, // 상단 라벨 문구 'inline' => true, // true: 가로 나열 / false: 세로 나열 (본문 모드 전용) 'isFilter' => false, // 핵심 인자: true면 세그먼트 버튼 트랙, false면 본문 원형 라디오 'autoSubmit' => false, // 선택 시 즉시 폼 submit 여부 (isFilter와 독립 제어) 'required' => false, // 시각적 필수 표시(*) 및 SweetAlert2/JS 검증 플래그 'nativeRequired' => false, // 브라우저 네이티브 required 부여 여부 (기본 false) 'disabled' => false, // 전체 비활성화 여부 ]) @php $currentSelected = old($name, $selected ?? request($name, '')); @endphp
{{-- 1. 상단 라벨 영역 (본문: small fw-bold, 필터: 0.75rem 규격 자동 전환) --}} @if($label) @endif {{-- 2. 검색 필터 모드 (isFilter == true) : 세그먼트 버튼 그룹 --}} @if($isFilter)
@foreach($options as $value => $optionLabel) @php $isChecked = (string)$currentSelected === (string)$value; $uniqueId = $name . '_' . ($value !== '' ? $value : 'all'); @endphp @endforeach
{{-- 3. 본문 폼 모드 (isFilter == false) : 표준 원형 라디오 박스 --}} @else
@foreach($options as $value => $optionLabel) @php $isChecked = (string)$currentSelected === (string)$value; $uniqueId = $name . '_' . ($value !== '' ? $value : 'all'); @endphp
@endforeach
@error($name)
{{ $message }}
@enderror @endif