var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
    return c > 3 && r && Object.defineProperty(target, key, r), r;
};
import { MelodicComponent } from '@melodicdev/core';
import { loginPageTemplate } from './login-page.template.js';
import { loginPageStyles } from './login-page.styles.js';
/**
 * ml-login-page - A full-page login component
 *
 * @example Centered:
 * ```html
 * <ml-login-page>
 *   <div slot="logo"><img src="logo.svg" alt="Logo" /></div>
 *   <form slot="form">...</form>
 *   <div slot="footer">
 *     <a href="/forgot">Forgot password?</a>
 *     <a href="/signup">Sign up</a>
 *   </div>
 * </ml-login-page>
 * ```
 *
 * @example Split variant:
 * ```html
 * <ml-login-page variant="split">
 *   <form slot="form">...</form>
 *   <div slot="brand">Welcome back to our platform</div>
 * </ml-login-page>
 * ```
 *
 * @slot logo - Brand logo area
 * @slot header - Custom header content (overrides title/description props)
 * @slot form - The login form
 * @slot footer - Links like "Forgot password?", "Sign up"
 * @slot social - Social login buttons
 * @slot brand - Content for the brand side (split variant only)
 */
let LoginPageComponent = class LoginPageComponent {
    constructor() {
        /** Layout variant */
        this.variant = 'centered';
        /** Page title */
        this.title = 'Log in to your account';
        /** Page description */
        this.description = 'Welcome back! Please enter your details.';
    }
    /** Check if header slot has content */
    get hasHeaderSlot() {
        return this.elementRef?.querySelector('[slot="header"]') !== null;
    }
    /** Check if brand slot has content */
    get hasBrandSlot() {
        return this.elementRef?.querySelector('[slot="brand"]') !== null;
    }
};
LoginPageComponent = __decorate([
    MelodicComponent({
        selector: 'ml-login-page',
        template: loginPageTemplate,
        styles: loginPageStyles,
        attributes: ['variant', 'title', 'description']
    })
], LoginPageComponent);
export { LoginPageComponent };
