Belum ada perubahan.
Modal
Dialog yang menuntut perhatian: memastikan keputusan, memuat formulir singkat, atau menampilkan detail tanpa meninggalkan halaman.
Dasar
Modal dikendalikan v-model. Komponen ini memakai elemen <dialog> bawaan browser, jadi lapisan teratas, perangkap fokus, Escape, dan menonaktifkan sisa halaman datang dari browser — bukan tiruan kami.
Konfirmasi
Untuk keputusan merusak, sebut akibatnya di description dan beri tombol aksi warna danger. Slot #footer menerima close sehingga tombol Batal tidak perlu menyentuh state sendiri.
PU-0042 masih aktif.
Ukuran
Lima ukuran, dari sm untuk konfirmasi singkat hingga full untuk isi yang butuh seluruh layar. Di layar sempit semuanya menyisakan jarak yang sama ke tepi layar.
Isi panjang
Judul dan baris aksi tetap di tempatnya, hanya isinya yang menggulir. Tinggi panel dibatasi tinggi layar, jadi tombolnya tidak pernah terdorong keluar pandangan.
Wajib diselesaikan
:dismissible="false" menghilangkan tombol tutup dan menolak Escape; :close-on-backdrop="false" menahan klik di luar panel. Pakai keduanya hanya bila pengguna memang harus memilih, dan selalu sediakan jalan keluar di dalam dialognya. Kontrol dengan atribut autofocus mendapat fokus saat dialog terbuka.
Belum ada pembatalan.
API
Props
| Prop | Tipe | Default | Keterangan |
|---|---|---|---|
| v-model | boolean | false | Membuka dan menutup dialog. Menutup lewat tombol, Escape, atau klik luar ikut memperbaruinya. |
| title | string | — | Judul dialog, dipakai sebagai namanya lewat aria-labelledby. Dialog tanpa judul wajib diberi aria-label. |
| description | string | — | Satu baris di bawah judul, ditautkan lewat aria-describedby sehingga ikut dibacakan saat dialog terbuka. |
| size | 'sm' | 'md' | 'lg' | 'xl' | 'full' | 'md' | Lebar panel. full memakai seluruh tinggi layar, untuk peta atau tabel lebar. |
| dismissible | boolean | true | Menampilkan tombol tutup dan mengizinkan Escape. Setel false untuk alur yang harus diselesaikan. |
| role | 'dialog' | 'alertdialog' | — | Pakai alertdialog untuk dialog yang menyela dan menuntut jawaban, seperti konfirmasi. Selain itu biarkan sebagai dialog biasa. |
| closeOnBackdrop | boolean | true | Klik di luar panel menutup dialog. Setel false agar isian yang sudah diketik tidak hilang karena salah klik. |
| closeLabel | string | 'Tutup' | Label tombol tutup untuk pembaca layar. |
Slots
| Slot | Tipe | Default | Keterangan |
|---|---|---|---|
| default | — | — | Isi dialog. Bagian inilah yang menggulir kalau isinya panjang. |
| footer | { close: () => void } | — | Baris aksi di bawah. Pakai close untuk tombol Batal tanpa menyentuh state sendiri. |
| header | { close: () => void } | — | Mengganti seluruh kepala dialog, termasuk tombol tutupnya. Sediakan sendiri elemen yang menamai dialog. |
| title / description | — | — | Versi kaya dari prop title dan description, misalnya untuk menyisipkan W4cBadge. |
Events
| Event | Tipe | Default | Keterangan |
|---|---|---|---|
| update:modelValue | (open: boolean) | — | Dialog dibuka atau ditutup. |
| close | () | — | Dialog selesai ditutup, setelah animasi keluarnya habis. |
Lewat template ref tersedia show() dan close(), untuk dialog yang dibuka dari kode tanpa state sendiri. Kelas dan atribut tambahan diteruskan ke panel, bukan ke kotak dialognya.