import * as i0 from '@angular/core';
import { inject, ElementRef, input, HostListener, Directive, viewChild, contentChild, output, signal, effect, ChangeDetectionStrategy, Component } from '@angular/core';
import { BadgeComponent } from '@agorapulse/ui-components/badge';
import { createDropdownOverlay } from '@agorapulse/ui-components/dropdown-base';
import { UI_COMPONENTS_SYMBOLS } from '@agorapulse/ui-components/providers';
import { TooltipDirective } from '@agorapulse/ui-components/tooltip';
import { SymbolRegistry, SymbolComponent, withSymbols, apInfo, apFeatureLock } from '@agorapulse/ui-symbol';

/**
 * Directive that turns any element into a trigger for an ActionDropdown component.
 * Handles click and keyboard interactions to open/close the dropdown.
 */
class ActionDropdownTriggerDirective {
    elementRef = inject((ElementRef));
    /** Reference to the ActionDropdown component that this trigger controls */
    apActionDropdownTrigger = input(...(ngDevMode ? [undefined, { debugName: "apActionDropdownTrigger" }] : /* istanbul ignore next */ []));
    /** Handles click events to toggle the dropdown */
    onClick(event) {
        event.preventDefault();
        event.stopPropagation();
        this.apActionDropdownTrigger()?.toggle(this.elementRef.nativeElement);
    }
    /** Handles keyboard events for accessibility (Enter, Space, Arrow Down, Escape) */
    onKeyDown(event) {
        const dropdown = this.apActionDropdownTrigger();
        if (!dropdown)
            return;
        switch (event.key) {
            case 'Enter':
            case ' ':
            case 'ArrowDown':
                event.preventDefault();
                dropdown.open(this.elementRef.nativeElement);
                break;
            case 'Escape':
                event.preventDefault();
                dropdown.close();
                break;
        }
    }
    static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: ActionDropdownTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
    static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.16", type: ActionDropdownTriggerDirective, isStandalone: true, selector: "[apActionDropdownTrigger]", inputs: { apActionDropdownTrigger: { classPropertyName: "apActionDropdownTrigger", publicName: "apActionDropdownTrigger", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "onClick($event)", "keydown": "onKeyDown($event)" } }, ngImport: i0 });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: ActionDropdownTriggerDirective, decorators: [{
            type: Directive,
            args: [{
                    selector: '[apActionDropdownTrigger]',
                }]
        }], propDecorators: { apActionDropdownTrigger: [{ type: i0.Input, args: [{ isSignal: true, alias: "apActionDropdownTrigger", required: false }] }], onClick: [{
                type: HostListener,
                args: ['click', ['$event']]
            }], onKeyDown: [{
                type: HostListener,
                args: ['keydown', ['$event']]
            }] } });

/**
 * A dropdown component that displays a list of actionable items with support for icons,
 * badges, tooltips, and keyboard navigation.
 */
class ActionDropdownComponent {
    symbolRegistry = inject(SymbolRegistry);
    overlay = createDropdownOverlay();
    actionDropdownTemplate = viewChild('actionDropdownTemplate', ...(ngDevMode ? [{ debugName: "actionDropdownTemplate" }] : /* istanbul ignore next */ []));
    trigger = contentChild('trigger', ...(ngDevMode ? [{ debugName: "trigger" }] : /* istanbul ignore next */ []));
    /** Array of items to display in the dropdown menu */
    items = input([], ...(ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []));
    /** Whether to enable large mode styling for the dropdown */
    largeModeEnabled = input(false, ...(ngDevMode ? [{ debugName: "largeModeEnabled" }] : /* istanbul ignore next */ []));
    /** Custom width for the dropdown menu in pixels */
    customWidth = input(null, ...(ngDevMode ? [{ debugName: "customWidth" }] : /* istanbul ignore next */ []));
    /** Whether to show a backdrop that closes the dropdown when clicked */
    showBackdrop = input(true, ...(ngDevMode ? [{ debugName: "showBackdrop" }] : /* istanbul ignore next */ []));
    /** Whether the dropdown is disabled and cannot be opened */
    disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
    /** Default position for the dropdown relative to the trigger element */
    defaultPosition = input('right', ...(ngDevMode ? [{ debugName: "defaultPosition" }] : /* istanbul ignore next */ []));
    /** Emits when the dropdown menu is opened */
    opened = output();
    /** Emits when the dropdown menu is closed */
    closed = output();
    /** Emits when a dropdown item is clicked */
    itemClick = output();
    focusedIndex = signal(-1, ...(ngDevMode ? [{ debugName: "focusedIndex" }] : /* istanbul ignore next */ []));
    isOpen = this.overlay.isOpen;
    constructor() {
        this.symbolRegistry.withSymbols(...(inject(UI_COMPONENTS_SYMBOLS, { optional: true })?.flat() ?? []));
        // Set up keyboard navigation when dropdown opens
        effect(() => {
            if (this.isOpen()) {
                this.setupKeyboardNavigation();
            }
        });
    }
    /** Opens the dropdown menu at the specified trigger element */
    open(triggerElement) {
        const template = this.actionDropdownTemplate();
        if (this.disabled() || this.isOpen() || !template)
            return;
        this.overlay.open(template, triggerElement, {
            showBackdrop: this.showBackdrop(),
            defaultPosition: this.defaultPosition(),
            onClose: () => this.close(),
        });
        this.opened.emit();
    }
    /** Closes the dropdown menu and cleans up overlay resources */
    close() {
        if (!this.isOpen())
            return;
        this.focusedIndex.set(-1);
        this.overlay.close();
        this.closed.emit();
    }
    /** Toggles the dropdown menu open or closed state */
    toggle(triggerElement) {
        if (this.isOpen()) {
            this.close();
        }
        else {
            this.open(triggerElement);
        }
    }
    /** Handles item click events, emitting the selected item and closing the dropdown */
    onItemClick(item) {
        if (item.disabled) {
            return;
        }
        this.itemClick.emit(item);
        this.close();
    }
    /** Handles keyboard navigation within the dropdown menu */
    onKeyDown(event) {
        const items = this.items();
        const currentIndex = this.focusedIndex();
        let nextIndex;
        let prevIndex;
        switch (event.key) {
            case 'ArrowDown':
                event.preventDefault();
                nextIndex = currentIndex < items.length - 1 ? currentIndex + 1 : 0;
                this.focusedIndex.set(nextIndex);
                break;
            case 'ArrowUp':
                event.preventDefault();
                prevIndex = currentIndex > 0 ? currentIndex - 1 : items.length - 1;
                this.focusedIndex.set(prevIndex);
                break;
            case 'Enter':
            case ' ':
                event.preventDefault();
                if (currentIndex >= 0 && currentIndex < items.length) {
                    this.onItemClick(items[currentIndex]);
                }
                break;
            case 'Escape':
                event.preventDefault();
                this.close();
                break;
            case 'Tab':
                event.preventDefault();
                if (event.shiftKey) {
                    // Shift+Tab - move to previous item
                    prevIndex = currentIndex > 0 ? currentIndex - 1 : items.length - 1;
                    this.focusedIndex.set(prevIndex);
                }
                else {
                    // Tab - move to next item
                    nextIndex = currentIndex < items.length - 1 ? currentIndex + 1 : 0;
                    this.focusedIndex.set(nextIndex);
                }
                break;
        }
    }
    /** Sets up keyboard event handling for the opened dropdown */
    setupKeyboardNavigation() {
        const ref = this.overlay.overlayRef;
        if (!ref)
            return;
        ref.keydownEvents().subscribe((event) => {
            this.onKeyDown(event);
        });
    }
    static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: ActionDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
    static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.16", type: ActionDropdownComponent, isStandalone: true, selector: "ap-action-dropdown", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, largeModeEnabled: { classPropertyName: "largeModeEnabled", publicName: "largeModeEnabled", isSignal: true, isRequired: false, transformFunction: null }, customWidth: { classPropertyName: "customWidth", publicName: "customWidth", isSignal: true, isRequired: false, transformFunction: null }, showBackdrop: { classPropertyName: "showBackdrop", publicName: "showBackdrop", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, defaultPosition: { classPropertyName: "defaultPosition", publicName: "defaultPosition", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { opened: "opened", closed: "closed", itemClick: "itemClick" }, providers: [withSymbols(apInfo, apFeatureLock)], queries: [{ propertyName: "trigger", first: true, predicate: ["trigger"], descendants: true, isSignal: true }], viewQueries: [{ propertyName: "actionDropdownTemplate", first: true, predicate: ["actionDropdownTemplate"], descendants: true, isSignal: true }], ngImport: i0, template: "<ng-template #actionDropdownTemplate>\n    <!-- Action dropdown -->\n    <div\n        class=\"ap-action-dropdown__content\"\n        role=\"menu\"\n        tabindex=\"-1\"\n        [attr.aria-label]=\"'Action dropdown'\"\n        [class.ap-action-dropdown__content--default]=\"!largeModeEnabled() && !customWidth()\"\n        [class.ap-action-dropdown__content--large]=\"largeModeEnabled()\"\n        [style.width]=\"customWidth() ? customWidth() + 'px' : undefined\"\n        (keydown)=\"onKeyDown($event)\">\n        <!-- Action dropdown items -->\n        @for (item of items(); track item.label) {\n            <!-- Divider -->\n            @if (item.dividerEnabled) {\n                <div\n                    class=\"ap-action-dropdown__divider\"\n                    role=\"separator\"></div>\n            }\n            <!-- Action dropdown item -->\n            <div [apTooltip]=\"item.itemTooltipText\">\n                <button\n                    type=\"button\"\n                    role=\"menuitem\"\n                    class=\"ap-action-dropdown__item\"\n                    [class.ap-action-dropdown__item--has-description]=\"item.description\"\n                    [class.ap-action-dropdown__item--focused]=\"focusedIndex() === $index\"\n                    [class.ap-action-dropdown__item--red-mode]=\"item.redModeEnabled\"\n                    [class.ap-action-dropdown__item--feature-lock]=\"item.featureLockEnabled\"\n                    [attr.aria-disabled]=\"item.disabled\"\n                    [attr.data-track]=\"item.dataTrack\"\n                    [attr.id]=\"item.id\"\n                    [disabled]=\"item.disabled\"\n                    (click)=\"onItemClick(item)\">\n                    <!-- Start icon -->\n                    @if (item.startSymbolId) {\n                        <ap-symbol\n                            class=\"ap-action-dropdown__item-start-icon\"\n                            size=\"sm\"\n                            [color]=\"item.startSymbolColor ? item.startSymbolColor : item.redModeEnabled ? 'red' : 'basic-grey'\"\n                            [symbolId]=\"item.startSymbolId\"\n                            [apTooltip]=\"item.startSymbolTooltipText\" />\n                    }\n                    <!-- Label -->\n                    <div class=\"ap-action-dropdown__item-text-container\">\n                        <div class=\"ap-action-dropdown__item-label-container\">\n                            <div\n                                class=\"ap-action-dropdown__item-label\"\n                                [class.ap-action-dropdown__item-label--bold]=\"item.description\">\n                                {{ item.label }}\n                            </div>\n                            <!-- Badge -->\n                            @if (item.badgeLabel) {\n                                <ap-badge [color]=\"item.badgeColor ?? 'blue'\">\n                                    {{ item.badgeLabel }}\n                                </ap-badge>\n                            }\n                        </div>\n                        <!-- Description -->\n                        <div class=\"ap-action-dropdown__item-description\">{{ item.description }}</div>\n                    </div>\n                    <!-- End icon -->\n                    @if (item.endSymbolId) {\n                        <ap-symbol\n                            class=\"ap-action-dropdown__item-end-icon\"\n                            size=\"sm\"\n                            color=\"#858FA1\"\n                            [symbolId]=\"item.endSymbolId\"\n                            [apTooltip]=\"item.endSymbolTooltipText\" />\n                    }\n                    <!-- Feature lock icon -->\n                    @if (item.featureLockEnabled) {\n                        <ap-symbol\n                            class=\"ap-action-dropdown__item-end-icon\"\n                            size=\"sm\"\n                            color=\"purple\"\n                            symbolId=\"feature-lock\" />\n                    }\n                </button>\n            </div>\n        }\n    </div>\n</ng-template>\n", styles: [":host{display:none}.ap-action-dropdown__content{background-color:var(--comp-action-dropdown-background-color);border-radius:var(--comp-action-dropdown-border-radius);box-shadow:var(--comp-action-dropdown-box-shadow);padding:var(--comp-action-dropdown-padding);outline:none;overflow:hidden;z-index:1000}.ap-action-dropdown__content.ap-action-dropdown__content--default{width:250px}.ap-action-dropdown__content.ap-action-dropdown__content--large{width:340px}.ap-action-dropdown__content:focus{outline:2px solid var(--comp-action-dropdown-item-background-color-focused);outline-offset:2px}.ap-action-dropdown__item{display:flex;align-items:center;width:100%;height:40px;padding:var(--comp-action-dropdown-item-padding);border:none;background:transparent;color:var(--comp-action-dropdown-item-text-color);cursor:pointer;font-family:Averta;font-size:var(--comp-action-dropdown-item-text-size);line-height:var(--comp-action-dropdown-item-text-line-height);text-align:left}.ap-action-dropdown__item:hover{background-color:var(--comp-action-dropdown-item-background-color-hover)}.ap-action-dropdown__item:focus{outline:none;background-color:var(--comp-action-dropdown-item-background-color-focused)}.ap-action-dropdown__item:disabled{cursor:not-allowed;opacity:.4}.ap-action-dropdown__item.ap-action-dropdown__item--has-description{height:auto;min-height:50px}.ap-action-dropdown__item.ap-action-dropdown__item--focused{background-color:var(--comp-action-dropdown-item-background-color-focused)}.ap-action-dropdown__item.ap-action-dropdown__item--red-mode{color:var(--comp-action-dropdown-item-text-color-red-mode)}.ap-action-dropdown__item.ap-action-dropdown__item--red-mode:hover{background-color:var(--comp-action-dropdown-item-background-color-red-mode-hover)}.ap-action-dropdown__item.ap-action-dropdown__item--red-mode:focus{background-color:var(--comp-action-dropdown-item-background-color-red-mode-focused)}.ap-action-dropdown__item.ap-action-dropdown__item--red-mode.ap-action-dropdown__item--focused{background-color:var(--comp-action-dropdown-item-background-color-red-mode-focused)}.ap-action-dropdown__item.ap-action-dropdown__item--feature-lock:hover{background-color:var(--comp-action-dropdown-item-background-color-feature-lock-hover)}.ap-action-dropdown__item.ap-action-dropdown__item--feature-lock:focus{background-color:var(--comp-action-dropdown-item-background-color-feature-lock-focused)}.ap-action-dropdown__item.ap-action-dropdown__item--feature-lock.ap-action-dropdown__item--focused{background-color:var(--comp-action-dropdown-item-background-color-feature-lock-focused)}.ap-action-dropdown__item.ap-action-dropdown__item--disabled:hover{background-color:transparent}.ap-action-dropdown__item .ap-action-dropdown__item-start-icon{margin-right:var(--comp-action-dropdown-item-icon-spacing)}.ap-action-dropdown__item .ap-action-dropdown__item-end-icon{margin-left:var(--comp-action-dropdown-item-icon-spacing)}.ap-action-dropdown__item .ap-action-dropdown__item-text-container{display:flex;flex-direction:column;flex:1;min-width:0}.ap-action-dropdown__item .ap-action-dropdown__item-text-container .ap-action-dropdown__item-label-container{display:flex;align-items:center;gap:var(--comp-action-dropdown-item-label-spacing);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ap-action-dropdown__item .ap-action-dropdown__item-text-container .ap-action-dropdown__item-label-container .ap-action-dropdown__item-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ap-action-dropdown__item .ap-action-dropdown__item-text-container .ap-action-dropdown__item-label-container .ap-action-dropdown__item-label.ap-action-dropdown__item-label--bold{font-weight:var(--ref-font-weight-bold)}.ap-action-dropdown__item .ap-action-dropdown__item-text-container .ap-action-dropdown__item-description{color:var(--comp-action-dropdown-item-description-color);font-size:var(--comp-action-dropdown-item-description-size);line-height:var(--comp-action-dropdown-item-description-line-height)}.ap-action-dropdown__divider{height:1px;background-color:var(--comp-action-dropdown-divider-color);margin:var(--comp-action-dropdown-divider-margin)}\n"], dependencies: [{ kind: "component", type: BadgeComponent, selector: "ap-badge", inputs: ["color"] }, { kind: "component", type: SymbolComponent, selector: "ap-symbol", inputs: ["symbolId", "color", "size"], outputs: ["sizeChange"] }, { kind: "directive", type: TooltipDirective, selector: "[apTooltip]", inputs: ["apTooltip", "apTooltipPosition", "apTooltipShowDelay", "apTooltipHideDelay", "apTooltipDuration", "apTooltipDisabled", "apTooltipTruncatedTextOnly", "apTooltipTemplateContext", "apTooltipVirtualScrollElement", "apTooltipTrigger", "apTooltipType", "apTooltipPresentationContext", "apTooltipListItems", "apTooltipShowAvatarCaption"], exportAs: ["apTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: ActionDropdownComponent, decorators: [{
            type: Component,
            args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'ap-action-dropdown', imports: [BadgeComponent, SymbolComponent, TooltipDirective], providers: [withSymbols(apInfo, apFeatureLock)], template: "<ng-template #actionDropdownTemplate>\n    <!-- Action dropdown -->\n    <div\n        class=\"ap-action-dropdown__content\"\n        role=\"menu\"\n        tabindex=\"-1\"\n        [attr.aria-label]=\"'Action dropdown'\"\n        [class.ap-action-dropdown__content--default]=\"!largeModeEnabled() && !customWidth()\"\n        [class.ap-action-dropdown__content--large]=\"largeModeEnabled()\"\n        [style.width]=\"customWidth() ? customWidth() + 'px' : undefined\"\n        (keydown)=\"onKeyDown($event)\">\n        <!-- Action dropdown items -->\n        @for (item of items(); track item.label) {\n            <!-- Divider -->\n            @if (item.dividerEnabled) {\n                <div\n                    class=\"ap-action-dropdown__divider\"\n                    role=\"separator\"></div>\n            }\n            <!-- Action dropdown item -->\n            <div [apTooltip]=\"item.itemTooltipText\">\n                <button\n                    type=\"button\"\n                    role=\"menuitem\"\n                    class=\"ap-action-dropdown__item\"\n                    [class.ap-action-dropdown__item--has-description]=\"item.description\"\n                    [class.ap-action-dropdown__item--focused]=\"focusedIndex() === $index\"\n                    [class.ap-action-dropdown__item--red-mode]=\"item.redModeEnabled\"\n                    [class.ap-action-dropdown__item--feature-lock]=\"item.featureLockEnabled\"\n                    [attr.aria-disabled]=\"item.disabled\"\n                    [attr.data-track]=\"item.dataTrack\"\n                    [attr.id]=\"item.id\"\n                    [disabled]=\"item.disabled\"\n                    (click)=\"onItemClick(item)\">\n                    <!-- Start icon -->\n                    @if (item.startSymbolId) {\n                        <ap-symbol\n                            class=\"ap-action-dropdown__item-start-icon\"\n                            size=\"sm\"\n                            [color]=\"item.startSymbolColor ? item.startSymbolColor : item.redModeEnabled ? 'red' : 'basic-grey'\"\n                            [symbolId]=\"item.startSymbolId\"\n                            [apTooltip]=\"item.startSymbolTooltipText\" />\n                    }\n                    <!-- Label -->\n                    <div class=\"ap-action-dropdown__item-text-container\">\n                        <div class=\"ap-action-dropdown__item-label-container\">\n                            <div\n                                class=\"ap-action-dropdown__item-label\"\n                                [class.ap-action-dropdown__item-label--bold]=\"item.description\">\n                                {{ item.label }}\n                            </div>\n                            <!-- Badge -->\n                            @if (item.badgeLabel) {\n                                <ap-badge [color]=\"item.badgeColor ?? 'blue'\">\n                                    {{ item.badgeLabel }}\n                                </ap-badge>\n                            }\n                        </div>\n                        <!-- Description -->\n                        <div class=\"ap-action-dropdown__item-description\">{{ item.description }}</div>\n                    </div>\n                    <!-- End icon -->\n                    @if (item.endSymbolId) {\n                        <ap-symbol\n                            class=\"ap-action-dropdown__item-end-icon\"\n                            size=\"sm\"\n                            color=\"#858FA1\"\n                            [symbolId]=\"item.endSymbolId\"\n                            [apTooltip]=\"item.endSymbolTooltipText\" />\n                    }\n                    <!-- Feature lock icon -->\n                    @if (item.featureLockEnabled) {\n                        <ap-symbol\n                            class=\"ap-action-dropdown__item-end-icon\"\n                            size=\"sm\"\n                            color=\"purple\"\n                            symbolId=\"feature-lock\" />\n                    }\n                </button>\n            </div>\n        }\n    </div>\n</ng-template>\n", styles: [":host{display:none}.ap-action-dropdown__content{background-color:var(--comp-action-dropdown-background-color);border-radius:var(--comp-action-dropdown-border-radius);box-shadow:var(--comp-action-dropdown-box-shadow);padding:var(--comp-action-dropdown-padding);outline:none;overflow:hidden;z-index:1000}.ap-action-dropdown__content.ap-action-dropdown__content--default{width:250px}.ap-action-dropdown__content.ap-action-dropdown__content--large{width:340px}.ap-action-dropdown__content:focus{outline:2px solid var(--comp-action-dropdown-item-background-color-focused);outline-offset:2px}.ap-action-dropdown__item{display:flex;align-items:center;width:100%;height:40px;padding:var(--comp-action-dropdown-item-padding);border:none;background:transparent;color:var(--comp-action-dropdown-item-text-color);cursor:pointer;font-family:Averta;font-size:var(--comp-action-dropdown-item-text-size);line-height:var(--comp-action-dropdown-item-text-line-height);text-align:left}.ap-action-dropdown__item:hover{background-color:var(--comp-action-dropdown-item-background-color-hover)}.ap-action-dropdown__item:focus{outline:none;background-color:var(--comp-action-dropdown-item-background-color-focused)}.ap-action-dropdown__item:disabled{cursor:not-allowed;opacity:.4}.ap-action-dropdown__item.ap-action-dropdown__item--has-description{height:auto;min-height:50px}.ap-action-dropdown__item.ap-action-dropdown__item--focused{background-color:var(--comp-action-dropdown-item-background-color-focused)}.ap-action-dropdown__item.ap-action-dropdown__item--red-mode{color:var(--comp-action-dropdown-item-text-color-red-mode)}.ap-action-dropdown__item.ap-action-dropdown__item--red-mode:hover{background-color:var(--comp-action-dropdown-item-background-color-red-mode-hover)}.ap-action-dropdown__item.ap-action-dropdown__item--red-mode:focus{background-color:var(--comp-action-dropdown-item-background-color-red-mode-focused)}.ap-action-dropdown__item.ap-action-dropdown__item--red-mode.ap-action-dropdown__item--focused{background-color:var(--comp-action-dropdown-item-background-color-red-mode-focused)}.ap-action-dropdown__item.ap-action-dropdown__item--feature-lock:hover{background-color:var(--comp-action-dropdown-item-background-color-feature-lock-hover)}.ap-action-dropdown__item.ap-action-dropdown__item--feature-lock:focus{background-color:var(--comp-action-dropdown-item-background-color-feature-lock-focused)}.ap-action-dropdown__item.ap-action-dropdown__item--feature-lock.ap-action-dropdown__item--focused{background-color:var(--comp-action-dropdown-item-background-color-feature-lock-focused)}.ap-action-dropdown__item.ap-action-dropdown__item--disabled:hover{background-color:transparent}.ap-action-dropdown__item .ap-action-dropdown__item-start-icon{margin-right:var(--comp-action-dropdown-item-icon-spacing)}.ap-action-dropdown__item .ap-action-dropdown__item-end-icon{margin-left:var(--comp-action-dropdown-item-icon-spacing)}.ap-action-dropdown__item .ap-action-dropdown__item-text-container{display:flex;flex-direction:column;flex:1;min-width:0}.ap-action-dropdown__item .ap-action-dropdown__item-text-container .ap-action-dropdown__item-label-container{display:flex;align-items:center;gap:var(--comp-action-dropdown-item-label-spacing);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ap-action-dropdown__item .ap-action-dropdown__item-text-container .ap-action-dropdown__item-label-container .ap-action-dropdown__item-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ap-action-dropdown__item .ap-action-dropdown__item-text-container .ap-action-dropdown__item-label-container .ap-action-dropdown__item-label.ap-action-dropdown__item-label--bold{font-weight:var(--ref-font-weight-bold)}.ap-action-dropdown__item .ap-action-dropdown__item-text-container .ap-action-dropdown__item-description{color:var(--comp-action-dropdown-item-description-color);font-size:var(--comp-action-dropdown-item-description-size);line-height:var(--comp-action-dropdown-item-description-line-height)}.ap-action-dropdown__divider{height:1px;background-color:var(--comp-action-dropdown-divider-color);margin:var(--comp-action-dropdown-divider-margin)}\n"] }]
        }], ctorParameters: () => [], propDecorators: { actionDropdownTemplate: [{ type: i0.ViewChild, args: ['actionDropdownTemplate', { isSignal: true }] }], trigger: [{ type: i0.ContentChild, args: ['trigger', { isSignal: true }] }], items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], largeModeEnabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "largeModeEnabled", required: false }] }], customWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "customWidth", required: false }] }], showBackdrop: [{ type: i0.Input, args: [{ isSignal: true, alias: "showBackdrop", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], defaultPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultPosition", required: false }] }], opened: [{ type: i0.Output, args: ["opened"] }], closed: [{ type: i0.Output, args: ["closed"] }], itemClick: [{ type: i0.Output, args: ["itemClick"] }] } });

/**
 * Generated bundle index. Do not edit.
 */

export { ActionDropdownComponent, ActionDropdownTriggerDirective };
//# sourceMappingURL=agorapulse-ui-components-action-dropdown.mjs.map
