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 { signupPageTemplate } from './signup-page.template.js';
import { signupPageStyles } from './signup-page.styles.js';
/**
 * ml-signup-page - A full-page signup/registration component
 *
 * @example Centered:
 * ```html
 * <ml-signup-page>
 *   <div slot="logo"><img src="logo.svg" alt="Logo" /></div>
 *   <form slot="form">...</form>
 *   <div slot="footer">
 *     <a href="/login">Already have an account? Log in</a>
 *   </div>
 * </ml-signup-page>
 * ```
 *
 * @example Split variant:
 * ```html
 * <ml-signup-page variant="split">
 *   <form slot="form">...</form>
 *   <div slot="brand">Join thousands of users</div>
 * </ml-signup-page>
 * ```
 *
 * @slot logo - Brand logo area
 * @slot header - Custom header content (overrides title/description props)
 * @slot form - The signup form
 * @slot footer - Links like "Already have an account?"
 * @slot social - Social signup buttons
 * @slot brand - Content for the brand side (split variant only)
 */
let SignupPageComponent = class SignupPageComponent {
    constructor() {
        /** Layout variant */
        this.variant = 'centered';
        /** Page title */
        this.title = 'Create an account';
        /** Page description */
        this.description = 'Start your journey today.';
    }
    /** 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;
    }
};
SignupPageComponent = __decorate([
    MelodicComponent({
        selector: 'ml-signup-page',
        template: signupPageTemplate,
        styles: signupPageStyles,
        attributes: ['variant', 'title', 'description']
    })
], SignupPageComponent);
export { SignupPageComponent };
