# Guide des Composants Composites Freya Extension
## Vue d'ensemble
L'extension Freya fournit 15 composants composites qui appliquent automatiquement les patterns Freya et réduisent le code boilerplate dans vos formulaires Jakarta Faces.
### Namespace
```xml
xmlns:fr="http://primefaces.org/freya"
```
### Avantages
✅ **Réduction massive du boilerplate** - ~80% de code en moins
✅ **Pattern Freya garanti** - Structure `field` et `field-checkbox` standardisée
✅ **Indicateur requis optimal** - Astérisque rouge géré proprement via `h:outputText`
✅ **Composants modernes** - Utilisation de `p:datePicker`, `p:toggleSwitch`, etc.
✅ **Fluid Design** - Tous les champs sont optimisés pour `ui-fluid`
✅ **Validation simplifiée** - Un seul tag pour label + input + message
---
## Liste des Composants
| Catégorie | Composant | Description | PF Natif |
|-----------|-----------|-------------|----------|
| **Texte** | `fr:fieldInput` | Champ texte standard | `p:inputText` |
| | `fr:fieldTextarea` | Zone de texte multiligne | `p:inputTextarea` |
| | `fr:fieldPassword` | Mot de passe | `p:password` |
| | `fr:fieldChips` | Saisie de tags | `p:chips` |
| **Sélection** | `fr:fieldSelect` | Liste déroulante unique | `p:selectOneMenu` |
| | `fr:fieldMultiSelect`| Liste déroulante multiple | `p:selectCheckboxMenu`|
| | `fr:fieldRadio` | Boutons radio | `p:selectOneRadio` |
| **Date & Nombre**| `fr:fieldCalendar` | Sélecteur de date | `p:datePicker` |
| | `fr:fieldNumber` | Champ numérique | `p:inputNumber` |
| **Boutons** | `fr:fieldCheckbox` | Case à cocher | `p:selectBooleanCheckbox`|
| | `fr:fieldSwitch` | Interrupteur | `p:toggleSwitch` |
| | `fr:fieldToggle` | Bouton bascule | `p:selectBooleanButton` |
| **Spéciaux** | `fr:fieldRating` | Évaluation | `p:rating` |
| | `fr:fieldColor` | Couleur | `p:colorPicker` |
| **Layout** | `fr:actionDialog` | Dialog standardisé | `p:dialog` |
---
## Détails des Composants
### 1. fr:fieldInput
*(Identique à la version précédente)*
### 2. fr:fieldNumber
Champ numérique pour les montants, prix ou quantités.
#### Attributs spécifiques
| Attribut | Type | Défaut | Description |
|----------|------|--------|-------------|
| `symbol` | String | - | Symbole monétaire (ex: " FCFA") |
| `symbolPosition`| String | "p" | Position du symbole ("p"refix, "s"uffix) |
| `decimalPlaces` | String | "2" | Nombre de décimales |
| `minValue` | String | - | Valeur minimale |
| `maxValue` | String | - | Valeur maximale |
### 3. fr:fieldSelect
*(Identique à la version précédente)*
### 4. fr:fieldMultiSelect
Sélecteur multiple compact.
#### Attributs spécifiques
| Attribut | Type | Défaut | Description |
|----------|------|--------|-------------|
| `filter` | Boolean | `false` | Active la recherche |
| `multiple` | Boolean | `true` | Sélection multiple |
### 5. fr:fieldRadio
Boutons radio pour un choix exclusif visible.
#### Attributs spécifiques
| Attribut | Type | Défaut | Description |
|----------|------|--------|-------------|
| `layout` | String | "lineDirection"| Disposition ("lineDirection" ou "pageDirection") |
### 6. fr:fieldCalendar
Sélecteur de date moderne (DatePicker).
#### Attributs spécifiques
| Attribut | Type | Défaut | Description |
|----------|------|--------|-------------|
| `showIcon` | Boolean | `true` | Affiche l'icône calendrier |
| `pattern` | String | - | Format (ex: "dd/MM/yyyy") |
| `yearRange` | String | - | Plage d'années |
### 7. fr:fieldPassword
*(Identique à la version précédente)*
### 8. fr:fieldTextarea
*(Identique à la version précédente)*
### 9. fr:fieldCheckbox
Case à cocher standard. Utilise le layout `field-checkbox`.
### 10. fr:fieldSwitch
Interrupteur ON/OFF moderne.
### 11. fr:fieldToggle
Bouton avec états ON/OFF personnalisables.
#### Attributs spécifiques
| Attribut | Type | Défaut | Description |
|----------|------|--------|-------------|
| `onLabel` | String | "Oui" | Texte état ON |
| `offLabel` | String | "Non" | Texte état OFF |
| `onIcon` | String | - | Icône état ON |
| `offIcon` | String | - | Icône état OFF |
### 12. fr:fieldChips
Saisie de tags/mots-clés.
### 13. fr:fieldRating
Saisie d'une note.
### 14. fr:fieldColor
Sélecteur de couleur graphique.
### 15. fr:actionDialog
*(Identique à la version précédente)*
**Dialog personnalisé:**
```xml
Êtes-vous sûr de vouloir supprimer cet utilisateur ? #{userBean.selectedUser.nom}Créer un compte