<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:h="http://xmlns.jcp.org/jsf/html"
                xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
                xmlns:p="http://primefaces.org/ui">
    
    <!-- 
        Composant bouton de soumission de formulaire réutilisable (WOU/DRY)
        
        Usage :
        <ui:decorate template="/templates/components/buttons/button-form-submit.xhtml">
            <ui:param name="value" value="Enregistrer" />
            <ui:param name="icon" value="pi pi-check" />
            <ui:param name="update" value=":form:messages" />
            <ui:param name="process" value="@form" />
            <ui:param name="severity" value="success" />
            <ui:param name="oncomplete" value="if(!args.validationFailed) PF('dialog').hide();" />
            <ui:define name="action">
                #{bean.saveMethod}
            </ui:define>
        </ui:decorate>
        
        Paramètres :
        - value : Texte du bouton (requis)
        - icon : Icône (optionnel, défaut: pi pi-check)
        - update : Composants à mettre à jour (optionnel)
        - process : Composants à traiter (optionnel, défaut: @form)
        - severity : success, secondary, warning, danger, info, primary (défaut: success)
        - disabled : true/false (défaut: false)
        - oncomplete : JavaScript à exécuter après l'action (optionnel)
        - validateClient : true/false pour validation côté client (défaut: false)
        - styleClass : Classes CSS additionnelles (optionnel)
        
        Slot action : Expression de méthode du bean (requis)
    -->
    
    <p:commandButton value="#{value}"
                   icon="#{empty icon ? 'pi pi-check' : icon}"
                   action="#{action}"
                   update="#{update}"
                   process="#{empty process ? '@form' : process}"
                   oncomplete="#{oncomplete}"
                   validateClient="#{not empty validateClient and validateClient}"
                   disabled="#{not empty disabled and disabled}"
                   styleClass="ui-button-#{empty severity ? 'success' : severity} #{not empty styleClass ? styleClass : ''}"
                   title="#{title}" />
</ui:composition>

