@if (session('dashboard_status'))
{{ session('dashboard_status') }}
@endif {{-- Quick Stats Section --}}
@foreach ([['label' => 'Total Paket', 'value' => $stats['packages'], 'color' => 'text-slate-950'], ['label' => 'Paket Aktif', 'value' => $stats['active_packages'], 'color' => 'text-emerald-600'], ['label' => 'Total Soal', 'value' => $stats['questions'], 'color' => 'text-blue-600'], ['label' => 'Total Passage', 'value' => $stats['passages'], 'color' => 'text-amber-600']] as $stat)

{{ $stat['label'] }}

{{ $stat['value'] }}

@endforeach
{{-- Navigation Tabs --}}
@if ($selectedPackage)
{{ $selectedPackage->code }} : {{ Str::limit($selectedPackage->title, 30) }}
@endif
{{-- Package Control & Create --}} @if ($activeTab === 'info')

Package Control

Workspace Paket TOEFL

Pilih paket aktif untuk mulai menyusun passage dan soal, atau buat paket baru dari panel ini.

@if ($selectedPackage)

{{ $selectedPackage->title }}

{{ $selectedPackage->code }}

{{ $selectedPackage->description ?: 'Belum ada deskripsi paket.' }}

{{ $selectedPackage->is_active ? 'Aktif' : 'Nonaktif' }} {{ $selectedPackage->workflow_status }}
@if ($selectedPackage->workflow_status === 'draft') @elseif ($selectedPackage->workflow_status === 'in_review') @elseif ($selectedPackage->workflow_status === 'published') @endif
Submitted: {{ optional($selectedPackage->submitted_for_review_at)->format('d M Y H:i') ?: '-' }} Reviewed: {{ optional($selectedPackage->reviewed_at)->format('d M Y H:i') ?: '-' }} Published: {{ optional($selectedPackage->published_at)->format('d M Y H:i') ?: '-' }}

Soal

{{ $selectedPackage->questions->count() }}

Passage

{{ $selectedPackage->passages->count() }}

Session

{{ $selectedPackage->sessions_count }}

@endif

Create Package

{{ $editingPackageId ? 'Edit Paket' : 'Buat Paket Baru' }}

@if ($editingPackageId) @endif
@error('package_code')

{{ $message }}

@enderror
@error('package_title')

{{ $message }}

@enderror
@error('package_description')

{{ $message }}

@enderror

*Hanya paket berstatus `published` yang bisa benar-benar aktif untuk peserta.

@endif @if ($activeTab === 'builder')

Passage Builder

{{ $editingPassageId ? 'Edit Passage' : 'Tambah Passage' }}

@if ($editingPassageId) @endif
@error('passage_section_id')

{{ $message }}

@enderror
@error('passage_title')

{{ $message }}

@enderror
@error('passage_content')

{{ $message }}

@enderror
@error('passage_media')

{{ $message }}

@enderror

Untuk listening prompt atau lampiran pendukung passage.

Question Builder

{{ $editingQuestionId ? 'Edit Soal' : 'Tambah Soal + Opsi' }}

@if ($editingQuestionId) @endif
@error('question_section_id')

{{ $message }}

@enderror
@error('question_passage_id')

{{ $message }}

@enderror
@error('question_text')

{{ $message }}

@enderror
@error('question_order')

{{ $message }}

@enderror
@error('correct_option_label')

{{ $message }}

@enderror
@error('question_audio')

{{ $message }}

@enderror

Digunakan untuk soal listening yang membutuhkan audio per question.

@foreach (['A', 'B', 'C', 'D'] as $label)
@error("option_contents.$label")

{{ $message }}

@enderror
@endforeach
@endif @if ($activeTab === 'collection')

Content Preview

Struktur Konten Paket

@forelse ($questions as $question)

{{ $question->section->name }} - Soal {{ $question->order }}

{{ $question->question_text }}

{{ $question->passage?->title ? 'Passage: ' . $question->passage->title : 'Tanpa passage' }} @if ($question->audio_path) Audio attached @endif
{{ $question->options->count() }} opsi
@foreach ($question->options as $option)
{{ $option->label }}. {{ $option->content }}
@endforeach
@empty
Belum ada soal pada paket ini.
@endforelse

Passage Library

Daftar Passage

@forelse ($passages as $passage)

{{ $passage->title }}

{{ $passage->section->name }} - Urutan {{ $passage->order }} @if ($passage->media_path) Media attached @endif
{{ $passage->questions->count() }} soal

{{ $passage->content }}

@empty
Belum ada passage pada paket ini.
@endforelse
@endif