Accordion
Panel konten yang dapat diperluas atau dilipat untuk menyembunyikan informasi sekunder dan menjaga halaman tetap ringkas.
Dasar
Secara default, accordion bekerja dalam mode tunggal (*single*): membuka satu panel akan otomatis melipat panel lain yang sedang terbuka.
Mode multiple
Gunakan prop multiple untuk mengizinkan beberapa bagian informasi terbuka secara bersamaan.
Variant
Tersedia tiga variant tampilan: bordered (satu kartu bersatu dengan garis pemisah), separated (tiap panel dalam kartu mandiri), dan ghost (tanpa border, cocok untuk navigasi sub-menu atau sidebar).
Bordered (Bawaan)
Separated
Ghost
Ikon
Sematkan prop icon pada item untuk menampilkan ikon visual di samping judul.
Kustomisasi slot
Gunakan slot #content atau #content-[value] untuk merender elemen kompleks seperti form, badge status, tabel, atau tombol aksi di dalam badan accordion.
Pengangkutan selesai tepat waktu pada pukul 09:30 WIB.
API
Props
| Prop | Tipe | Default | Keterangan |
|---|---|---|---|
| items | W4cAccordionItem[] | [] | Daftar item accordion ({ value, title, description?, icon?, disabled? }). |
| modelValue | string | string[] | undefined | Nilai panel yang aktif (mendukung v-model). |
| defaultValue | string | string[] | undefined | Nilai panel awal saat tidak menggunakan v-model. |
| multiple | boolean | false | Mengizinkan lebih dari satu panel terbuka dalam waktu bersamaan. |
| variant | 'bordered' | 'separated' | 'ghost' | 'bordered' | Gaya bingkai wadah accordion. Ghost cocok untuk menu/sidebar. |
| size | 'sm' | 'md' | 'lg' | 'md' | Ukuran padding tombol, ikon, dan teks isi panel. |
W4cAccordionItem
| Prop | Tipe | Default | Keterangan |
|---|---|---|---|
| value | string | wajib | Kunci unik pengidentifikasi panel. |
| title | string | wajib | Teks judul pada tombol header. |
| description | string | — | Keterangan ringkas atau isi teks bawaan dalam panel. |
| icon | string | — | Ikon Iconify sebelum teks judul. |
| disabled | boolean | false | Menonaktifkan interaksi klik buka-tutup pada item. |
Slots
| Slot | Tipe | Default | Keterangan |
|---|---|---|---|
| default | — | — | Mengganti seluruh daftar item jika membutuhkan struktur kustom. |
| header | { item: W4cAccordionItem, isOpen: boolean, toggle: () => void } | — | Kustomisasi tampilan tombol header. |
| content | { item: W4cAccordionItem } | — | Kustomisasi seluruh isi panel untuk semua item. |
| content-[value] | { item: W4cAccordionItem } | — | Kustomisasi isi panel spesifik berdasarkan value item. |
| icon | { item: W4cAccordionItem, isOpen: boolean } | — | Kustomisasi ikon di samping judul. |
Events
| Event | Tipe | Default | Keterangan |
|---|---|---|---|
| update:modelValue | (value: string | string[]) => void | — | Dipicu saat panel yang terbuka berubah. |
| change | (value: string | string[]) => void | — | Dipicu bersamaan dengan pembaruan status terbuka. |