let componentsData;
try {
    componentsData = require('../../../../dist/components_json.json');
}
catch (error) {
    console.warn('components_json.json non trouvé. Utilisation de valeurs par défaut.');
    componentsData = {};
}
import { withComponentControls, extractArgTypes, toKebabCase } from "../../../utils/utils";
const elementTag = 'spw-footer';
const subComponentTags = ['spw-footer-bottom', 'spw-footer-content', 'spw-footer-content-col', 'spw-footer-link', 'spw-socials'];
const argTypes = Object.assign(Object.assign({}, withComponentControls(componentsData, { tag: elementTag })), extractArgTypes(componentsData, subComponentTags));
const meta = {
    title: 'Organismes/Pied de page (footer)',
    component: elementTag,
    argTypes,
    tags: ['autodocs'],
    parameters: {
        docs: {
            description: {
                component: `

Le composant Footer est la section inférieure récurrente d'une page web. Il contient généralement des liens de navigation secondaire, des informations de contact, des mentions légales et le copyright du site.

## Structure

Le composant se compose de plusieurs sous-éléments :
- **spw-footer** : Conteneur principal avec gestion des colonnes responsive
- **spw-footer-content** : Section supérieure avec colonnes de liens
- **spw-footer-content-col** : Colonne individuelle avec titre
- **spw-footer-link** : Lien de navigation dans le footer
- **spw-footer-bottom** : Barre inférieure avec mentions légales

Le composant **spw-socials** peut être associé au footer en le plaçant **structurellement en dehors** de spw-footer, juste avant lui. Cela permet de conserver une séparation claire entre le bandeau de réseaux sociaux et le footer proprement dit.

## Fonctionnalités

- Configuration dynamique du nombre de colonnes par breakpoint
- Support du Shadow DOM pour l'encapsulation
- Trois versions : complète avec sections, légère (bottom only), ou avec bandeau de réseaux sociaux

[<spw-link>Consulter la documentation</spw-link>](https://zeroheight.com/2310c7a1e/p/91a10d-pied-de-page-footer)
        `,
            },
        },
    },
};
export default meta;
function htmlSocials(slotArgs) {
    return /* HTML */ `
    <spw-socials main-title="${slotArgs.socialsMainTitle}">
      <a target="_blank" aria-label="Facebook" title="Facebook" href="#"><spw-icon variant="fa-brands" icon="fa-facebook"></spw-icon></a>
      <a target="_blank" aria-label="Instagram" title="Instagram" href="#"><spw-icon variant="fa-brands" icon="fa-instagram"></spw-icon></a>
      <a target="_blank" aria-label="Twitter" title="Twitter" href="#"><spw-icon variant="fa-brands" icon="fa-x-twitter"></spw-icon></a>
      <a target="_blank" aria-label="YouTube" title="YouTube" href="#"><spw-icon variant="fa-brands" icon="fa-youtube"></spw-icon></a>
      <a target="_blank" aria-label="LinkedIn" title="LinkedIn" href="#"><spw-icon variant="fa-brands" icon="fa-linkedin-in"></spw-icon></a>
    </spw-socials>
  `;
}
function htmlContent(slotArgs) {
    return /* HTML */ `
    <spw-footer-content>
      <spw-footer-content-col col-title="${slotArgs.colTitle1}">
        <spw-footer-link href="https://www.wallonie.be/fr/demarches">Démarches</spw-footer-link>
        <spw-footer-link href="https://www.wallonie.be/fr/jobs">Jobs</spw-footer-link>
        <spw-footer-link href="https://www.wallonie.be/fr/actualites">Actualités</spw-footer-link>
        <spw-footer-link href="https://www.wallonie.be/fr/agenda">Agenda</spw-footer-link>
        <spw-footer-link href="https://www.wallonie.be/fr/acteurs-et-institutions">Acteurs et institutions</spw-footer-link>
        <spw-footer-link href="https://www.wallonie.be/fr/appels-a-projets">Appels à projets</spw-footer-link>
        <spw-footer-link href="https://www.wallonie.be/fr/demarches/se-renseigner-sur-la-charte-graphique-de-la-wallonie">Charte graphique</spw-footer-link>
      </spw-footer-content-col>
      <spw-footer-content-col col-title="${slotArgs.colTitle2}">
        <spw-footer-link href="https://www.wallonie.be/fr/">Lien 1</spw-footer-link>
        <spw-footer-link href="https://www.wallonie.be/fr/">Lien 2</spw-footer-link>
        <spw-footer-link href="https://www.wallonie.be/fr/">Lien 3</spw-footer-link>
      </spw-footer-content-col>
      <spw-footer-content-col col-title="${slotArgs.colTitle3}">
        <spw-footer-link href="https://spw.wallonie.be/">Service public de Wallonie</spw-footer-link>
        <spw-footer-link href="https://www.parlement-wallonie.be/">Parlement de Wallonie</spw-footer-link>
        <spw-footer-link href="https://geoportail.wallonie.be/">Géoportail</spw-footer-link>
        <spw-footer-link href="http://developpementdurable.wallonie.be/">Développement durable</spw-footer-link>
        <spw-footer-link href="https://wallex.wallonie.be/">Wallex</spw-footer-link>
        <spw-footer-link href="https://marchespublics.wallonie.be/">Marchés publics wallons</spw-footer-link>
        <spw-footer-link href="https://finances.wallonie.be/home/finances-wallonnes/budget-wallon.html">Budget</spw-footer-link>
        <spw-footer-link href="https://cortex.wallonie.be/home.html">Cortex</spw-footer-link>
      </spw-footer-content-col>
      <spw-footer-content-col col-title="${slotArgs.colTitle4}">
        <spw-footer-link href="https://www.wallonie.be/formulaire-de-contact">Formulaire de contact</spw-footer-link>
        <spw-footer-link href="https://www.wallonie.be//les-espaces-wallonie">Espaces Wallonie</spw-footer-link>
        <spw-footer-link href="https://www.wallonie.be/presse">Presse</spw-footer-link>
        <spw-footer-link href="https://www.wallonie.be/introduire-une-plainte-spw">Introduire une plainte au SPW</spw-footer-link>
        <spw-footer-link href="https://www.wallonie.be/fr/signalement-dune-irregularite">Signalement d'une irrégularité</spw-footer-link>
      </spw-footer-content-col>
    </spw-footer-content>
    <spw-footer-bottom site-title="${slotArgs.siteTitle}">
      <spw-footer-link href="https://www.wallonie.be/fr/plan-du-site">Plan du site</spw-footer-link>
      <spw-footer-link href="https://www.wallonie.be/fr/mentions-legales">Mentions légales</spw-footer-link>
      <spw-footer-link href="https://www.wallonie.be/fr/vie-privee">Vie privée</spw-footer-link>
      <spw-footer-link href="https://www.wallonie.be/fr/mediateur">Médiateur</spw-footer-link>
      <spw-footer-link href="https://www.wallonie.be/fr/accessibilite">Accessibilité</spw-footer-link>
    </spw-footer-bottom>
  `;
}
function htmlContentLight(slotArgs) {
    return /* HTML */ `
    <spw-footer-bottom site-title="${slotArgs.siteTitle}">
      <spw-footer-link href="https://www.wallonie.be/fr/plan-du-site">Plan du site</spw-footer-link>
      <spw-footer-link href="https://www.wallonie.be/fr/mentions-legales">Mentions légales</spw-footer-link>
      <spw-footer-link href="https://www.wallonie.be/fr/vie-privee">Vie privée</spw-footer-link>
      <spw-footer-link href="https://www.wallonie.be/fr/mediateur">Médiateur</spw-footer-link>
      <spw-footer-link href="https://www.wallonie.be/fr/accessibilite">Accessibilité</spw-footer-link>
    </spw-footer-bottom>
  `;
}
const Template = args => {
    const element = document.createElement(elementTag);
    const controls = withComponentControls(componentsData, { tag: elementTag }) || {};
    const masterProps = controls.__realProps || Object.keys(controls);
    Object.entries(args).forEach(([key, val]) => {
        if (masterProps.includes(key)) {
            element.setAttribute(toKebabCase(key), val);
        }
        else if (key.startsWith('on')) {
            element.addEventListener(key.substring(2).toLowerCase(), val);
        }
    });
    element.innerHTML = htmlContent(args);
    return element;
};
const TemplateLight = args => {
    const element = document.createElement(elementTag);
    const controls = withComponentControls(componentsData, { tag: elementTag }) || {};
    const masterProps = controls.__realProps || Object.keys(controls);
    Object.entries(args).forEach(([key, val]) => {
        if (masterProps.includes(key)) {
            element.setAttribute(key, val);
        }
        else if (key.startsWith('on')) {
            element.addEventListener(key.substring(2).toLowerCase(), val);
        }
    });
    element.innerHTML = htmlContentLight(args);
    return element;
};
export const Default = Template.bind({});
Default.args = {
    colTitle1: 'Accès rapides',
    colTitle2: 'Liens utiles',
    colTitle3: 'Sites généraux de Wallonie',
    colTitle4: 'Nous contacter',
    siteTitle: 'Titre du site',
    colsDesktop: 4,
    colsTablet: 2,
    colsMobile: 1,
};
Default.parameters = {
    docs: {
        description: {
            story: `
Footer complet avec section de contenu et barre inférieure. Affiche 4 colonnes de liens sur desktop, 2 sur tablette et 1 sur mobile.

Cas d'usage typique : footer principal d'un site avec accès rapides, liens utiles, sites partenaires et informations de contact. La configuration responsive s'adapte automatiquement selon la largeur de l'écran.
      `,
        },
    },
};
export const Light = TemplateLight.bind({});
Light.args = {
    siteTitle: 'Titre du site',
};
Light.parameters = {
    docs: {
        description: {
            story: `
Version légère du footer avec uniquement la barre inférieure contenant les mentions légales et le titre du site.

Idéal pour les pages simples, pages de connexion ou applications où un footer complet n'est pas nécessaire. Contient les liens essentiels : plan du site, mentions légales, vie privée, médiateur et accessibilité.
      `,
        },
    },
};
const TemplateWithSocials = args => {
    const wrapper = document.createElement('div');
    const footer = document.createElement(elementTag);
    const controls = withComponentControls(componentsData, { tag: elementTag }) || {};
    const masterProps = controls.__realProps || Object.keys(controls);
    Object.entries(args).forEach(([key, val]) => {
        if (masterProps.includes(key)) {
            footer.setAttribute(toKebabCase(key), val);
        }
        else if (key.startsWith('on')) {
            footer.addEventListener(key.substring(2).toLowerCase(), val);
        }
    });
    footer.innerHTML = htmlContent(args);
    wrapper.innerHTML = htmlSocials(args);
    wrapper.appendChild(footer);
    return wrapper;
};
export const WithSocials = TemplateWithSocials.bind({});
WithSocials.args = {
    socialsMainTitle: 'Restez connecté',
    colTitle1: 'Accès rapides',
    colTitle2: 'Liens utiles',
    colTitle3: 'Sites généraux de Wallonie',
    colTitle4: 'Nous contacter',
    siteTitle: 'Titre du site',
    colsDesktop: 4,
    colsTablet: 2,
    colsMobile: 1,
};
WithSocials.parameters = {
    docs: {
        description: {
            story: `
Footer complet précédé du bandeau de réseaux sociaux. Le composant spw-socials est placé structurellement **en dehors** de spw-footer, juste avant lui.

Cas d'usage typique : footer d'un site institutionnel avec présence sur les réseaux sociaux mise en avant au-dessus du footer principal.
      `,
        },
    },
};
