import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
import { s as stopEventBubbling } from './form-input.js';
import { B as BEM } from './bem.js';
import { a as ariaBooleanToString } from './aria.js';

const DateCalendarCell = /*@__PURE__*/ proxyCustomElement(class DateCalendarCell extends HTMLElement {
    constructor(registerHost) {
        super();
        if (registerHost !== false) {
            this.__registerHost();
        }
        this.balSelectDay = createEvent(this, "balSelectDay", 7);
        this.selected = false;
        this.today = false;
        this.disabled = false;
        /**
         * EVENT BINDING
         * ------------------------------------------------------
         */
        this.onClick = (ev, selectedDate) => {
            if (!this.disabled) {
                this.balSelectDay.emit(selectedDate);
            }
            else {
                stopEventBubbling(ev);
            }
        };
    }
    /**
     * RENDER
     * ------------------------------------------------------
     */
    render() {
        const block = BEM.block('date-calendar-cell');
        return (h(Host, { key: 'd1db2d94effc57679d76eda478c58b8b249ec8f8', class: Object.assign(Object.assign(Object.assign(Object.assign({}, block.class()), block.modifier('today').class(!this.disabled && this.today)), block.modifier('selected').class(!this.disabled && this.selected)), block.modifier('disabled').class(this.disabled === true)), tabIndex: -1, type: "button", role: "button", "aria-label": this.fullDate, "aria-selected": ariaBooleanToString(this.selected), "aria-disabled": ariaBooleanToString(this.disabled), title: this.fullDate, onClick: (ev) => this.onClick(ev, this.isoDate) }, h("time", { key: '9f52e4756e920afd593cc0e189fb7a3a787f87f0', dateTime: this.isoDate }, this.day)));
    }
}, [256, "bal-date-calendar-cell", {
        "day": [2],
        "month": [2],
        "year": [2],
        "isoDate": [1, "iso-date"],
        "fullDate": [1, "full-date"],
        "selected": [4],
        "today": [4],
        "disabled": [4]
    }]);
function defineCustomElement() {
    if (typeof customElements === "undefined") {
        return;
    }
    const components = ["bal-date-calendar-cell"];
    components.forEach(tagName => { switch (tagName) {
        case "bal-date-calendar-cell":
            if (!customElements.get(tagName)) {
                customElements.define(tagName, DateCalendarCell);
            }
            break;
    } });
}

export { DateCalendarCell as D, defineCustomElement as d };
