# Composants UI Standardisés - BTPXpress ## ActionButton - Boutons d'Actions Standardisés ### Vue d'ensemble Les composants `ActionButton` fournissent une approche cohérente pour tous les boutons d'actions dans l'application BTPXpress. Ils utilisent le style `p-button-text` pour un rendu subtil et professionnel, similaire au template Atlantis React. ### Utilisation de base ```tsx import { ActionButton, ActionButtonGroup } from '../../components/ui/ActionButton'; // Bouton personnalisé handleView()} color="blue" /> // Groupe de boutons handleView()} /> handleEdit()} /> handleDelete()} /> ``` ### Boutons prédéfinis disponibles - **ViewButton**: `pi pi-eye` - Couleur par défaut (gris) - **EditButton**: `pi pi-pencil` - Orange - **DeleteButton**: `pi pi-trash` - Rouge - **StartButton**: `pi pi-play` - Vert - **CompleteButton**: `pi pi-check` - Vert - **ProgressButton**: `pi pi-percentage` - Bleu - **PauseButton**: `pi pi-pause` - Orange - **ResumeButton**: `pi pi-play` - Teal - **DownloadButton**: `pi pi-download` - Bleu - **PrintButton**: `pi pi-print` - Violet ### Props ActionButton | Prop | Type | Default | Description | |------|------|---------|-------------| | icon | string | - | Icône PrimeIcons (ex: "pi pi-eye") | | tooltip | string | - | Texte du tooltip | | onClick | function | - | Fonction appelée au clic | | color | string | 'default' | Couleur: 'default', 'green', 'blue', 'orange', 'red', 'purple', 'teal' | | disabled | boolean | false | Désactiver le bouton | | size | string | 'small' | Taille: 'small', 'normal', 'large' | ### Props ActionButtonGroup | Prop | Type | Default | Description | |------|------|---------|-------------| | children | ReactNode | - | Boutons enfants | | align | string | 'center' | Alignement: 'left', 'center', 'right' | | gap | string | '1' | Espacement: '1', '2', '3' | ### Exemples d'utilisation dans les tableaux #### DataTable avec actions contextuelles ```tsx const actionBodyTemplate = (rowData: any) => { return ( viewDetails(rowData)} /> {rowData.status === 'DRAFT' && ( editItem(rowData)} /> )} {rowData.canDelete && ( confirmDelete(rowData)} /> )} ); }; ``` #### Actions en en-tête de page ```tsx ``` ### Standards visuels - **Style**: Tous les boutons utilisent `p-button-text` pour un rendu subtil - **Forme**: Boutons ronds (`p-button-rounded`) - **Taille**: Par défaut petite (`p-button-sm`) - **Tooltips**: Toujours positionnés en haut - **Couleurs**: Système cohérent basé sur l'action - Actions neutres: Gris par défaut - Actions positives: Vert (démarrer, valider, compléter) - Actions d'information: Bleu (voir, télécharger) - Actions de modification: Orange (éditer, pauser) - Actions destructives: Rouge (supprimer) - Actions spéciales: Violet (imprimer), Teal (reprendre) ### Intégration dans les pages existantes Pour appliquer ces standards dans vos pages : 1. **Importez les composants nécessaires** ```tsx import { ActionButtonGroup, ViewButton, EditButton, DeleteButton } from '../../components/ui/ActionButton'; ``` 2. **Remplacez les boutons existants** ```tsx // Ancien style