# Confirmation Modal Components Sistem confirmation modal yang modular dan dapat digunakan kembali di seluruh aplikasi. ## Components ### 1. `confirmation.vue` - Base Confirmation Modal Komponen dasar untuk modal konfirmasi yang dapat dikustomisasi. **Props:** - `open?: boolean` - Status modal (terbuka/tertutup) - `title?: string` - Judul modal (default: "Konfirmasi") - `message?: string` - Pesan konfirmasi (default: "Apakah Anda yakin ingin melanjutkan?") - `confirmText?: string` - Text tombol konfirmasi (default: "Ya") - `cancelText?: string` - Text tombol batal (default: "Batal") - `variant?: 'default' | 'destructive' | 'warning'` - Varian tampilan (default: "default") - `size?: 'sm' | 'md' | 'lg' | 'xl'` - Ukuran modal (default: "md") **Events:** - `@confirm` - Dipanggil saat tombol konfirmasi diklik - `@cancel` - Dipanggil saat tombol batal diklik - `@update:open` - Dipanggil saat status modal berubah **Contoh penggunaan:** ```vue ``` ### 2. `record-confirmation.vue` - Record-specific Confirmation Komponen khusus untuk konfirmasi operasi pada record/data tertentu. **Props:** - `open?: boolean` - Status modal - `action?: 'delete' | 'deactivate' | 'activate' | 'archive' | 'restore'` - Jenis aksi (default: "delete") - `record?: RecordData | null` - Data record yang akan diproses - `customTitle?: string` - Custom judul (opsional) - `customMessage?: string` - Custom pesan (opsional) - `customConfirmText?: string` - Custom text tombol konfirmasi (opsional) - `customCancelText?: string` - Custom text tombol batal (opsional) **Events:** - `@confirm` - Dipanggil dengan parameter `(record, action)` - `@cancel` - Dipanggil saat batal - `@update:open` - Update status modal **Contoh penggunaan:** ```vue ``` ## Action Types Record confirmation mendukung beberapa jenis aksi dengan konfigurasi default: - **delete**: Hapus data (variant: destructive, warna merah) - **deactivate**: Nonaktifkan data (variant: warning, warna kuning) - **activate**: Aktifkan data (variant: default, warna biru) - **archive**: Arsipkan data (variant: warning, warna kuning) - **restore**: Pulihkan data (variant: default, warna biru) ## Integration Example Contoh implementasi di komponen list: ```vue ``` ## Styling Komponen menggunakan Tailwind CSS dan shadcn/ui components. Pastikan dependencies berikut tersedia: - `~/components/pub/custom-ui/modal/dialog.vue` - `~/components/pub/ui/button`