import { r as registerInstance, h, H as Host } from './index-Co4V4Zk-.js';

const spwSkeletonCss = () => `html{line-height:1.3;-webkit-text-size-adjust:100%;}h1,h2,h3,h4,h5,h6,p,ul,li{padding:0;margin:0}ul{list-style:none}:host{box-sizing:border-box;line-height:1.3;-webkit-text-size-adjust:100%;font-size:100%}:host *,:host *::before,:host *::after{box-sizing:inherit;font-family:var(--spw-ds-font-main)}body{margin:0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0;}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px;}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{--spw-ds-container-xl:1232px;--spw-ds-container-lg:1024px;--spw-ds-container-md:768px;--spw-ds-container-sm:640px}.spw-ds-container{width:100%;padding-left:16px;padding-right:16px;margin-left:auto;margin-right:auto}@media (min-width: 460px){.spw-ds-container{max-width:var(--spw-ds-container-sm)}}@media (min-width: 768px){.spw-ds-container{max-width:var(--spw-ds-container-md)}}@media (min-width: 1024px){.spw-ds-container{max-width:var(--spw-ds-container-lg)}}@media (min-width: 1350px){.spw-ds-container{max-width:var(--spw-ds-container-xl)}}:host{display:block}.spw-skeleton__text-block,.spw-skeleton__article-image,.spw-skeleton__button,.spw-skeleton__line{background:linear-gradient(90deg, white 0%, var(--spw-color-themes-grey-grey-300) 50%, white 100%);background-size:200% 100%;animation:shimmer 5s infinite linear}.spw-skeleton{display:flex;flex-direction:column;gap:1rem}.spw-skeleton__line{height:1rem;width:100%;border-radius:4px}.spw-skeleton__line--even{width:85%}.spw-skeleton__line--last{width:50% !important}.spw-skeleton__buttons{display:flex;align-items:center;justify-content:center;margin-top:24px;gap:24px}.spw-skeleton__button{width:200px;height:40px;border-radius:40px}.spw-skeleton__article-image{margin-bottom:24px;border-radius:8px;height:170px}.spw-skeleton__text-block{margin:24px 0;border-radius:4px;height:60px}@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}`;

const SpwSkeleton = class {
    constructor(hostRef) {
        registerInstance(this, hostRef);
        /** Nombre de répétitions du skeleton (uniquement valable pour la variante lines) */
        this.blocks = 1;
        /** Type de skeleton à afficher */
        this.variant = 'lines';
    }
    renderLines() {
        return Array.from({ length: this.blocks }, (_, index) => {
            const isLast = index === this.blocks - 1;
            const isEven = index % 2 === 1;
            const isOdd = index % 2 === 0;
            const isOnly = this.blocks === 1;
            return (h("div", { class: {
                    'spw-skeleton__line': true,
                    'spw-skeleton__line--only': isOnly,
                    'spw-skeleton__line--last': !isOnly && isLast,
                    'spw-skeleton__line--even': !isLast && isEven,
                    'spw-skeleton__line--odd': !isLast && isOdd,
                } }));
        });
    }
    renderText() {
        return (h("div", { class: "spw-skeleton__text" }, h("spw-skeleton", { variant: "lines", blocks: 5 }), h("div", { class: "spw-skeleton__text-block" }), h("spw-skeleton", { variant: "lines", blocks: 2 })));
    }
    renderArticle() {
        return (h("div", { class: "spw-skeleton__article" }, h("div", { class: "spw-skeleton__article-image" }), h("spw-skeleton", { variant: "lines", blocks: 7 })));
    }
    renderTextButtons() {
        return (h("div", { class: "spw-skeleton__text-buttons" }, h("spw-skeleton", { variant: "lines", blocks: 3 }), h("div", { class: "spw-skeleton__buttons" }, h("div", { class: "spw-skeleton__button" }), h("div", { class: "spw-skeleton__button" }))));
    }
    renderVariant() {
        switch (this.variant) {
            case 'text':
                return this.renderText();
            case 'article':
                return this.renderArticle();
            case 'layout':
                return this.renderTextButtons();
            case 'lines':
            default:
                return this.renderLines();
        }
    }
    render() {
        return (h(Host, { key: 'f51453d4c09ee19f5b6d8d770fc106a37f4c7e90' }, h("div", { key: '5c1f100999ec9466dac114f16c23ec4d6e7eaadf', class: "spw-skeleton" }, this.renderVariant(), h("slot", { key: '5347334004f09f1584aa0384d3f65e1070e3c0c6' }))));
    }
};
SpwSkeleton.style = spwSkeletonCss();

export { SpwSkeleton as spw_skeleton };
