{"version":3,"file":"taiga-ui-core-portals-hint.mjs","sources":["../../../projects/core/portals/hint/hint.providers.ts","../../../projects/core/portals/hint/hint-anchor.directive.ts","../../../projects/core/portals/hint/hint-driver.directive.ts","../../../projects/core/portals/hint/hint-options.directive.ts","../../../projects/core/portals/hint/hint-hover.directive.ts","../../../projects/core/portals/hint/hint-position.directive.ts","../../../projects/core/portals/hint/hint.directive.ts","../../../projects/core/portals/hint/hint-anchored.directive.ts","../../../projects/core/portals/hint/hint-pointer.directive.ts","../../../projects/core/portals/hint/hint-unstyled.component.ts","../../../projects/core/portals/hint/hint.component.ts","../../../projects/core/portals/hint/hint-describe.directive.ts","../../../projects/core/portals/hint/hint-host.directive.ts","../../../projects/core/portals/hint/hint-manual.directive.ts","../../../projects/core/portals/hint/hint-overflow.directive.ts","../../../projects/core/portals/hint/hint.ts","../../../projects/core/portals/hint/taiga-ui-core-portals-hint.ts"],"sourcesContent":["import {InjectionToken, type Type} from '@angular/core';\n\nimport {TuiHintComponent} from './hint.component';\n\n/**\n * A component to display a hint\n */\nexport const TUI_HINT_COMPONENT = new InjectionToken<Type<unknown>>(\n    ngDevMode ? 'TUI_HINT_COMPONENT' : '',\n    {factory: () => TuiHintComponent},\n);\n","import {Directive, ElementRef, InjectionToken} from '@angular/core';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/di';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiGenerateId} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {tuiAsRectAccessor, TuiRectAccessor} from '@taiga-ui/core/classes';\n\nexport const TUI_HINT_ANCHOR = new InjectionToken<ElementRef<Element>>(\n    ngDevMode ? 'TUI_HINT_ANCHOR' : '',\n);\n\n@Directive({\n    providers: [\n        tuiAsRectAccessor(TuiHintAnchor),\n        tuiProvide(TUI_HINT_ANCHOR, ElementRef),\n    ],\n    host: {\n        '[attr.data-tui-anchor]': 'anchor',\n        '[style.anchor-name]': 'anchor',\n    },\n})\nexport class TuiHintAnchor extends TuiRectAccessor {\n    protected readonly el = tuiInjectElement();\n    protected readonly anchor = `--${tuiGenerateId()}`;\n\n    public readonly type = 'hint';\n\n    public getClientRect(): DOMRect {\n        return this.el.getBoundingClientRect();\n    }\n}\n","import {Directive} from '@angular/core';\nimport {TuiDriverDirective} from '@taiga-ui/core/classes';\n\n@Directive()\nexport class TuiHintDriver extends TuiDriverDirective {\n    public readonly type = 'hint';\n}\n","import {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport {type TuiAppearanceOptions} from '@taiga-ui/core/directives/appearance';\n\nexport type TuiHintDirection =\n    | 'bottom-end'\n    | 'bottom-start'\n    | 'bottom'\n    | 'end-bottom'\n    | 'end-top'\n    | 'end'\n    | 'start-bottom'\n    | 'start-top'\n    | 'start'\n    | 'top-end'\n    | 'top-start'\n    | 'top';\n\nexport const TUI_HINT_DIRECTIONS: readonly TuiHintDirection[] = [\n    'bottom-start',\n    'bottom',\n    'bottom-end',\n    'top-start',\n    'top',\n    'top-end',\n    'start-top',\n    'start',\n    'start-bottom',\n    'end-top',\n    'end',\n    'end-bottom',\n];\n\n/** TODO: remove optionality in v6 */\nexport interface TuiHintOptions extends TuiAppearanceOptions {\n    readonly direction: TuiHintDirection | TuiHintDirection[];\n    readonly centered?: boolean;\n    readonly hideDelay: number;\n    readonly icon: string;\n    readonly showDelay: number;\n}\n\n/** Default values for hint options */\nexport const TUI_HINT_DEFAULT_OPTIONS: TuiHintOptions = {\n    direction: 'bottom-start',\n    centered: true,\n    showDelay: 500,\n    hideDelay: 200,\n    appearance: '',\n    /** TODO @deprecated use {@link TUI_TOOLTIP_OPTIONS} instead **/\n    icon: '@tui.circle-help',\n};\n\n/**\n * Default parameters for hint directive\n */\nexport const [TUI_HINT_OPTIONS, tuiHintOptionsProvider] = tuiCreateOptions(\n    TUI_HINT_DEFAULT_OPTIONS,\n);\n","import {Directive, inject, input} from '@angular/core';\nimport {WA_IS_MOBILE} from '@ng-web-apis/platform';\nimport {TuiHoveredService} from '@taiga-ui/cdk/directives/hovered';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiAsDriver, TuiDriver} from '@taiga-ui/core/classes';\nimport {tuiIsObscured} from '@taiga-ui/core/utils/miscellaneous';\nimport {\n    delay,\n    filter,\n    map,\n    merge,\n    of,\n    repeat,\n    Subject,\n    switchMap,\n    takeUntil,\n    tap,\n} from 'rxjs';\n\nimport {TUI_HINT_OPTIONS} from './hint-options.directive';\n\nconst MOBILE_HIDE_DELAY_MS = 100;\n\n@Directive({\n    providers: [tuiAsDriver(TuiHintHover), TuiHoveredService],\n    exportAs: 'tuiHintHover',\n    host: {'(click)': 'onClick()'},\n})\nexport class TuiHintHover extends TuiDriver {\n    private readonly isMobile = inject(WA_IS_MOBILE);\n    private readonly hovered$ = inject(TuiHoveredService);\n    private readonly options = inject(TUI_HINT_OPTIONS);\n    private visible = false;\n    private readonly toggle$ = new Subject<boolean>();\n    private readonly stream$ = merge(\n        this.toggle$.pipe(\n            switchMap((show) =>\n                this.isMobile\n                    ? of(show).pipe(delay(show ? 0 : MOBILE_HIDE_DELAY_MS))\n                    : of(show).pipe(delay(show ? 0 : this.hideDelay())),\n            ),\n            takeUntil(this.hovered$),\n            repeat(),\n        ),\n        this.hovered$.pipe(\n            switchMap((show) =>\n                this.isMobile\n                    ? of(show).pipe(delay(0))\n                    : of(show).pipe(delay(show ? this.showDelay() : this.hideDelay())),\n            ),\n            takeUntil(this.toggle$),\n            repeat(),\n        ),\n    ).pipe(\n        filter(() => this.enabled),\n        map(\n            (value) =>\n                value &&\n                (this.el.hasAttribute('tuiHintPointer') || !tuiIsObscured(this.el)),\n        ),\n        tap((visible) => {\n            this.visible = visible;\n        }),\n    );\n\n    private readonly parent = inject(TuiHintHover, {\n        optional: true,\n        skipSelf: true,\n    });\n\n    protected readonly el = tuiInjectElement();\n\n    public readonly showDelay = input(this.options.showDelay, {\n        alias: 'tuiHintShowDelay',\n    });\n\n    public readonly hideDelay = input(this.options.hideDelay, {\n        alias: 'tuiHintHideDelay',\n    });\n\n    public readonly type = 'hint';\n    public enabled = true;\n\n    constructor() {\n        super((subscriber) => this.stream$.subscribe(subscriber));\n    }\n\n    public toggle(visible = !this.visible): void {\n        this.toggle$.next(visible);\n        this.parent?.toggle(visible);\n    }\n\n    public close(): void {\n        this.toggle$.next(false);\n    }\n\n    /**\n     * Synthesized `mouseenter` is not fired again until another element is tapped, so showing on mobile\n     * cannot rely on it.\n     */\n    protected onClick(): void {\n        if (this.isMobile) {\n            this.toggle();\n        }\n    }\n}\n","import {Directive, inject, input} from '@angular/core';\nimport {outputFromObservable} from '@angular/core/rxjs-interop';\nimport {WA_IS_MOBILE} from '@ng-web-apis/platform';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {\n    tuiAsPositionAccessor,\n    tuiInjectAccessor,\n    TuiPositionAccessor,\n    TuiRectAccessor,\n} from '@taiga-ui/core/classes';\nimport {TUI_VIEWPORT} from '@taiga-ui/core/tokens';\nimport {type TuiPoint} from '@taiga-ui/core/types';\nimport {distinctUntilChanged, Subject} from 'rxjs';\n\nimport {\n    TUI_HINT_DIRECTIONS,\n    TUI_HINT_OPTIONS,\n    type TuiHintDirection,\n} from './hint-options.directive';\n\nconst GAP = 8;\nconst ARROW_OFFSET = 22;\nconst TOP = 1;\nconst LEFT = 0;\n\n@Directive({providers: [tuiAsPositionAccessor(TuiHintPosition)]})\nexport class TuiHintPosition extends TuiPositionAccessor {\n    private readonly el = tuiInjectElement();\n    private readonly viewport = inject(TUI_VIEWPORT);\n    private readonly options = inject(TUI_HINT_OPTIONS);\n    private readonly directionChange = new Subject<TuiHintDirection>();\n    private readonly accessor = tuiInjectAccessor(TuiRectAccessor, 'hint');\n    private readonly points: Record<TuiHintDirection, [number, number]> =\n        TUI_HINT_DIRECTIONS.reduce(\n            (acc, direction) => ({...acc, [direction]: [0, 0]}),\n            {} as Record<TuiHintDirection, [number, number]>,\n        );\n\n    public readonly direction = input(this.options.direction, {\n        alias: 'tuiHintDirection',\n    });\n\n    public readonly offset = input(inject(WA_IS_MOBILE) ? 16 : 8, {\n        alias: 'tuiHintOffset',\n    });\n\n    public readonly centered = input(this.options.centered, {alias: 'tuiHintCentered'});\n\n    public readonly tuiHintDirectionChange = outputFromObservable(\n        this.directionChange.pipe(distinctUntilChanged()),\n    );\n\n    public readonly type = 'hint';\n\n    public getPosition({width, height}: DOMRect): TuiPoint {\n        const direction = this.direction();\n        const rect = this.accessor.getClientRect();\n        const leftCenter = rect.left + rect.width / 2;\n        const topCenter = rect.top + rect.height / 2;\n        const rtl = this.el.matches('[dir=\"rtl\"] :scope');\n        const narrow = rect.width < ARROW_OFFSET * 2 || this.centered();\n        const short = rect.height < ARROW_OFFSET * 2 || this.centered();\n        const start = narrow ? leftCenter - ARROW_OFFSET : rect.left;\n        const end = narrow ? leftCenter - width + ARROW_OFFSET : rect.right - width;\n        const top = short ? topCenter - ARROW_OFFSET : rect.top;\n        const bottom = short ? topCenter - height + ARROW_OFFSET : rect.bottom - height;\n\n        this.points['top-start'][TOP] = rect.top - height - this.offset();\n        this.points['top-start'][LEFT] = this.centered() ? end : start;\n        this.points.top[TOP] = this.points['top-start'][TOP];\n        this.points.top[LEFT] = leftCenter - width / 2;\n        this.points['top-end'][TOP] = this.points['top-start'][TOP];\n        this.points['top-end'][LEFT] = this.centered() ? start : end;\n\n        this.points['bottom-start'][TOP] = rect.bottom + this.offset();\n        this.points['bottom-start'][LEFT] = this.points['top-start'][LEFT];\n        this.points.bottom[TOP] = this.points['bottom-start'][TOP];\n        this.points.bottom[LEFT] = this.points.top[LEFT];\n        this.points['bottom-end'][TOP] = this.points['bottom-start'][TOP];\n        this.points['bottom-end'][LEFT] = this.points['top-end'][LEFT];\n\n        this.points['start-top'][TOP] = this.centered() ? bottom : top;\n        this.points['start-top'][LEFT] = rect.left - width - this.offset();\n        this.points.start[TOP] = topCenter - height / 2;\n        this.points.start[LEFT] = this.points['start-top'][LEFT];\n        this.points['start-bottom'][TOP] = this.centered() ? bottom : top;\n        this.points['start-bottom'][LEFT] = this.points['start-top'][LEFT];\n\n        this.points['end-top'][TOP] = this.points['start-top'][TOP];\n        this.points['end-top'][LEFT] = rect.right + this.offset();\n        this.points.end[TOP] = this.points.start[TOP];\n        this.points.end[LEFT] = this.points['end-top'][LEFT];\n        this.points['end-bottom'][TOP] = this.points['start-bottom'][TOP];\n        this.points['end-bottom'][LEFT] = this.points['end-top'][LEFT];\n\n        const array = Array.isArray(direction) ? direction : [direction];\n        const priority = array.map((direction) => adjust(direction, rtl));\n\n        const updated =\n            priority\n                .concat(TUI_HINT_DIRECTIONS)\n                .find((dir) => this.checkPosition(this.points[dir], width, height)) ||\n            this.fallback;\n\n        this.directionChange.next(adjust(updated, rtl));\n\n        return this.points[updated];\n    }\n\n    private get fallback(): TuiHintDirection {\n        return this.points.top[TOP] >\n            this.viewport.getClientRect().bottom - this.points.bottom[TOP]\n            ? 'top'\n            : 'bottom';\n    }\n\n    private checkPosition([left, top]: TuiPoint, width: number, height: number): boolean {\n        const viewport = this.viewport.getClientRect();\n\n        return (\n            top > viewport.top + GAP &&\n            left > viewport.left + GAP &&\n            top + height < viewport.bottom - GAP &&\n            left + width < viewport.right - GAP\n        );\n    }\n}\n\nfunction adjust(direction: TuiHintDirection, rtl: boolean): TuiHintDirection {\n    if (rtl && direction.includes('left')) {\n        return direction.replace('left', 'right') as TuiHintDirection;\n    }\n\n    return rtl && direction.includes('right')\n        ? (direction.replace('right', 'left') as TuiHintDirection)\n        : direction;\n}\n","import {\n    type ComponentRef,\n    Directive,\n    inject,\n    INJECTOR,\n    input,\n    type OnChanges,\n    type OnDestroy,\n    signal,\n} from '@angular/core';\nimport {outputFromObservable, toObservable} from '@angular/core/rxjs-interop';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {\n    tuiAsVehicle,\n    type TuiRectAccessor,\n    type TuiVehicle,\n} from '@taiga-ui/core/classes';\nimport {TuiPopupService} from '@taiga-ui/core/portals/popup';\nimport {PolymorpheusComponent, type PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport {map, skip} from 'rxjs';\n\nimport {TUI_HINT_COMPONENT} from './hint.providers';\nimport {TuiHintAnchor} from './hint-anchor.directive';\nimport {TuiHintDriver} from './hint-driver.directive';\nimport {TuiHintHover} from './hint-hover.directive';\nimport {TUI_HINT_OPTIONS} from './hint-options.directive';\nimport {TuiHintPosition} from './hint-position.directive';\n\n@Directive({\n    selector: '[tuiHint]:not(ng-container):not(ng-template)',\n    providers: [\n        tuiAsVehicle(TuiHintDirective),\n        {\n            provide: PolymorpheusComponent,\n            deps: [TUI_HINT_COMPONENT, INJECTOR],\n            useClass: PolymorpheusComponent,\n        },\n    ],\n    hostDirectives: [\n        TuiHintAnchor,\n        TuiHintDriver,\n        {\n            directive: TuiHintHover,\n            inputs: ['tuiHintHideDelay', 'tuiHintShowDelay'],\n        },\n        {\n            directive: TuiHintPosition,\n            inputs: ['tuiHintDirection', 'tuiHintCentered', 'tuiHintOffset'],\n            outputs: ['tuiHintDirectionChange'],\n        },\n    ],\n})\nexport class TuiHintDirective<C>\n    implements OnDestroy, OnChanges, TuiRectAccessor, TuiVehicle\n{\n    private readonly service = inject(TuiPopupService);\n    private readonly ref = signal<ComponentRef<unknown> | null>(null);\n\n    public readonly content = input<PolymorpheusContent<C>>(null, {alias: 'tuiHint'});\n    public readonly context = input<C>(undefined, {alias: 'tuiHintContext'});\n    public readonly appearance = input(inject(TUI_HINT_OPTIONS).appearance, {\n        alias: 'tuiHintAppearance',\n    });\n\n    public readonly visible = outputFromObservable(\n        toObservable(this.ref).pipe(map(Boolean), skip(1)),\n        {alias: 'tuiHintVisible'},\n    );\n\n    public component = inject(PolymorpheusComponent<unknown>);\n    public readonly el = tuiInjectElement();\n    public readonly type = 'hint';\n\n    public ngOnChanges(): void {\n        if (!this.content()) {\n            this.toggle(false);\n        }\n    }\n\n    public ngOnDestroy(): void {\n        this.toggle(false);\n    }\n\n    public getClientRect(): DOMRect {\n        return this.el.getBoundingClientRect();\n    }\n\n    public toggle(show: boolean): void {\n        if (show && this.content() && !this.ref()) {\n            this.ref.set(this.service.add(this.component));\n        } else if (!show) {\n            this.ref()?.destroy();\n            this.ref.set(null);\n        }\n    }\n}\n","import {type AfterViewInit, Directive, inject} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {EMPTY_CLIENT_RECT} from '@taiga-ui/cdk/constants';\nimport {TuiHoveredService} from '@taiga-ui/cdk/directives/hovered';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiClamp} from '@taiga-ui/cdk/utils/math';\nimport {tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n    TuiPositionAccessor,\n    tuiProvideAccessor,\n    TuiRectAccessor,\n} from '@taiga-ui/core/classes';\nimport {TuiPositionService, TuiVisualViewportService} from '@taiga-ui/core/services';\nimport {TUI_VIEWPORT} from '@taiga-ui/core/tokens';\nimport {map, takeWhile} from 'rxjs';\n\nimport {TuiHintDirective} from './hint.directive';\nimport {TuiHintHover} from './hint-hover.directive';\n\nconst GAP = 8;\nconst ARROW_OFFSET = 22;\n\n@Directive({\n    providers: [\n        TuiPositionService,\n        TuiHoveredService,\n        tuiProvideAccessor(TuiPositionAccessor, 'hint'),\n        tuiProvideAccessor(TuiRectAccessor, 'hint'),\n    ],\n})\nexport class TuiHintAnchored implements AfterViewInit {\n    private readonly el = tuiInjectElement();\n    private readonly hover = inject(TuiHintHover);\n    private readonly vvs = inject(TuiVisualViewportService);\n    private readonly viewport = inject(TUI_VIEWPORT);\n    private readonly accessor = inject(TuiRectAccessor);\n    private readonly directive = inject(TuiHintDirective);\n    private readonly styles$ = inject(TuiPositionService).pipe(\n        takeWhile(\n            () =>\n                this.directive.el.isConnected &&\n                this.directive.el.getClientRects().length > 0,\n        ),\n        map((point) => this.vvs.correct(point)),\n        takeUntilDestroyed(),\n    );\n\n    protected readonly sub = inject(TuiHoveredService)\n        .pipe(takeUntilDestroyed())\n        .subscribe((hover) => this.hover.toggle(hover));\n\n    public ngAfterViewInit(): void {\n        this.styles$.subscribe({\n            next: (point) => this.update(...point),\n            complete: () => this.directive.toggle(false),\n        });\n    }\n\n    private update(left: number, top: number): void {\n        const {clientHeight, clientWidth} = this.el;\n        const rect = this.accessor.getClientRect();\n\n        if (rect === EMPTY_CLIENT_RECT || !clientHeight || !clientWidth) {\n            return;\n        }\n\n        const viewport = this.viewport.getClientRect();\n        const max = Math.max(GAP, viewport.width + viewport.left - clientWidth - GAP);\n        const safeLeft = tuiClamp(Math.max(GAP, left), viewport.left + GAP, max);\n        const startX = Math.round(safeLeft) === Math.round(rect.left);\n        const startY = Math.round(top) === Math.round(rect.top);\n        const endX = Math.round(safeLeft + clientWidth) === Math.round(rect.right);\n        const endY = Math.round(top + clientHeight) === Math.round(rect.bottom);\n        const [beakLeft, beakTop] = this.vvs.correct([\n            rect.left + rect.width / 2 - safeLeft,\n            rect.top + rect.height / 2 - top,\n        ]);\n\n        /* eslint-disable no-nested-ternary */\n        const x = startX ? ARROW_OFFSET : endX ? clientWidth - ARROW_OFFSET : beakLeft;\n        const y = startY ? ARROW_OFFSET : endY ? clientHeight - ARROW_OFFSET : beakTop;\n\n        this.apply(\n            tuiPx(Math.round(top)),\n            tuiPx(Math.round(safeLeft)),\n            Math.round((tuiClamp(y, 0, clientHeight) / clientHeight) * 100),\n            Math.round((tuiClamp(x, 0, clientWidth) / clientWidth) * 100),\n        );\n    }\n\n    private apply(top: string, left: string, beakTop: number, beakLeft: number): void {\n        this.el.style.setProperty('top', top);\n        this.el.style.setProperty('left', left);\n        this.el.style.setProperty('--t-top', `${beakTop}%`);\n        this.el.style.setProperty('--t-left', `${beakLeft}%`);\n        this.el.style.setProperty(\n            '--t-rotate',\n            !beakLeft || Math.ceil(beakLeft) === 100 ? '90deg' : '0deg',\n        );\n    }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {\n    afterNextRender,\n    Directive,\n    type ElementRef,\n    inject,\n    type OnDestroy,\n} from '@angular/core';\nimport {EMPTY_CLIENT_RECT} from '@taiga-ui/cdk/constants';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/di';\nimport {tuiPointToClientRect} from '@taiga-ui/cdk/utils/dom';\nimport {tuiGenerateId} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n    tuiAsDriver,\n    tuiAsRectAccessor,\n    type TuiRectAccessor,\n} from '@taiga-ui/core/classes';\n\nimport {TUI_HINT_ANCHOR} from './hint-anchor.directive';\nimport {TuiHintHover} from './hint-hover.directive';\n\nconst STYLE: Partial<CSSStyleDeclaration> = {\n    position: 'fixed',\n    blockSize: '1px',\n    inlineSize: '1px',\n    pointerEvents: 'none',\n};\n\n@Directive({\n    selector: '[tuiHint][tuiHintPointer]',\n    providers: [\n        tuiAsRectAccessor(TuiHintPointer),\n        tuiAsDriver(TuiHintPointer),\n        tuiProvide(TUI_HINT_ANCHOR, TuiHintPointer),\n    ],\n    host: {'(mousemove.zoneless)': 'onMove($event)'},\n})\nexport class TuiHintPointer\n    extends TuiHintHover\n    implements TuiRectAccessor, ElementRef<HTMLElement>, OnDestroy\n{\n    private readonly doc = inject(DOCUMENT);\n    private currentRect = EMPTY_CLIENT_RECT;\n\n    public readonly nativeElement = this.doc.createElement('div');\n\n    constructor() {\n        super();\n\n        afterNextRender(() => {\n            const anchorName = `--${tuiGenerateId()}`;\n            const positionAnchor = this.el.getAttribute('data-tui-anchor');\n            const style = {...STYLE, positionAnchor, anchorName};\n\n            Object.assign(this.nativeElement.style, style);\n            this.nativeElement.setAttribute('data-tui-anchor', anchorName);\n            this.doc.body.appendChild(this.nativeElement);\n        });\n    }\n\n    public ngOnDestroy(): void {\n        this.nativeElement.parentNode?.removeChild(this.nativeElement);\n    }\n\n    public getClientRect(): DOMRect {\n        return this.currentRect;\n    }\n\n    protected onMove({clientX, clientY}: MouseEvent): void {\n        const {top, left} = this.el.getBoundingClientRect();\n\n        this.currentRect = tuiPointToClientRect(clientX, clientY);\n        this.nativeElement.style.top = `calc(anchor(top) + ${clientY - top}px)`;\n        this.nativeElement.style.left = `calc(anchor(left) + ${clientX - left}px)`;\n    }\n}\n","import {\n    ChangeDetectionStrategy,\n    Component,\n    Directive,\n    inject,\n    INJECTOR,\n    TemplateRef,\n} from '@angular/core';\nimport {tuiSetSignal} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {PolymorpheusComponent, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nimport {TuiHintDirective} from './hint.directive';\n\n@Component({\n    imports: [PolymorpheusOutlet],\n    template: '<ng-container *polymorpheusOutlet=\"hint.content()\" />',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiHintUnstyledComponent {\n    protected readonly hint = inject(TuiHintDirective);\n}\n\n@Directive({selector: 'ng-template[tuiHint]'})\nexport class TuiHintUnstyled<C> {\n    constructor() {\n        const hint = inject(TuiHintDirective<C>);\n\n        tuiSetSignal(hint.content, inject(TemplateRef<C>));\n        hint.component = new PolymorpheusComponent(\n            TuiHintUnstyledComponent,\n            inject(INJECTOR),\n        );\n    }\n}\n","import {ChangeDetectionStrategy, Component, inject, signal} from '@angular/core';\nimport {TuiActiveZone} from '@taiga-ui/cdk/directives/active-zone';\nimport {TuiAnimated} from '@taiga-ui/cdk/directives/animated';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TuiRectAccessor} from '@taiga-ui/core/classes';\nimport {tuiButtonOptionsProvider} from '@taiga-ui/core/components/button';\nimport {TuiAppearance, tuiAppearance} from '@taiga-ui/core/directives/appearance';\nimport {tuiIsObscured} from '@taiga-ui/core/utils/miscellaneous';\nimport {PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nimport {TuiHintDirective} from './hint.directive';\nimport {TuiHintAnchored} from './hint-anchored.directive';\nimport {TuiHintHover} from './hint-hover.directive';\nimport {TuiHintPointer} from './hint-pointer.directive';\nimport {TuiHintUnstyledComponent} from './hint-unstyled.component';\n\n@Component({\n    selector: 'tui-hint',\n    imports: [PolymorpheusOutlet],\n    template: `\n        <ng-content />\n        <span\n            *polymorpheusOutlet=\"content() as text; context: hint.context()\"\n            [innerHTML]=\"text\"\n        ></span>\n    `,\n    styleUrl: './hint.style.less',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    providers: [tuiButtonOptionsProvider({size: 's'})],\n    hostDirectives: [TuiAppearance, TuiAnimated, TuiActiveZone, TuiHintAnchored],\n    host: {\n        role: 'tooltip',\n        '[attr.tuiTheme]': 'theme',\n        '[class._untouchable]': 'pointer',\n        '(document:pointerdown)': 'onPointerDown($event.target)',\n    },\n})\nexport class TuiHintComponent {\n    private readonly el = tuiInjectElement();\n    private readonly hover = inject(TuiHintHover);\n\n    protected readonly pointer = inject(TuiHintPointer, {optional: true});\n    protected readonly accessor = inject(TuiRectAccessor);\n    protected readonly hint = inject(TuiHintDirective);\n    protected readonly appearance = tuiAppearance(this.hint.appearance);\n    protected readonly content =\n        this.hint.component.component === TuiHintUnstyledComponent\n            ? signal('')\n            : this.hint.content;\n\n    protected readonly theme = this.hint.el\n        .closest('[tuiTheme]')\n        ?.getAttribute('tuiTheme');\n\n    protected onPointerDown(target: HTMLElement): void {\n        if (\n            (!target.closest(this.el.tagName) && !this.hint.el.contains(target)) ||\n            tuiIsObscured(this.hint.el)\n        ) {\n            this.hover.toggle(false);\n        }\n    }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {computed, Directive, inject, input} from '@angular/core';\nimport {toObservable} from '@angular/core/rxjs-interop';\nimport {tuiIfMap, tuiTypedFromEvent, tuiZoneOptimized} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiIsFocused} from '@taiga-ui/cdk/utils/focus';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {tuiAsDriver, TuiDriver} from '@taiga-ui/core/classes';\nimport {\n    debounce,\n    distinctUntilChanged,\n    fromEvent,\n    map,\n    merge,\n    of,\n    skip,\n    startWith,\n    switchMap,\n    timer,\n} from 'rxjs';\n\n@Directive({\n    selector: '[tuiHintDescribe]',\n    providers: [tuiAsDriver(TuiHintDescribe)],\n})\nexport class TuiHintDescribe extends TuiDriver {\n    private readonly doc = inject(DOCUMENT);\n    private readonly el = tuiInjectElement();\n\n    protected readonly element = computed((id = this.id()) =>\n        id ? this.doc.querySelector(`#${id}`) || this.el : this.el,\n    );\n\n    public readonly id = input<string | null | undefined>('', {alias: 'tuiHintDescribe'});\n    public readonly type = 'hint';\n\n    protected readonly stream$ = toObservable(this.id).pipe(\n        distinctUntilChanged(),\n        tuiIfMap(() => fromEvent(this.doc, 'keydown', {capture: true}), tuiIsPresent),\n        switchMap(() =>\n            this.focused\n                ? of(false)\n                : merge(\n                      tuiTypedFromEvent(this.doc, 'keyup'),\n                      tuiTypedFromEvent(this.element(), 'blur'),\n                  ).pipe(map(() => this.focused)),\n        ),\n        debounce((visible) => (visible ? timer(1000) : of(null))),\n        startWith(false),\n        distinctUntilChanged(),\n        skip(1),\n        tuiZoneOptimized(),\n    );\n\n    constructor() {\n        super((subscriber) => this.stream$.subscribe(subscriber));\n    }\n\n    private get focused(): boolean {\n        return tuiIsFocused(this.element());\n    }\n}\n","import {Directive, effect, type ElementRef, input} from '@angular/core';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/di';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiGenerateId} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {tuiAsRectAccessor, TuiRectAccessor} from '@taiga-ui/core/classes';\n\nimport {TUI_HINT_ANCHOR} from './hint-anchor.directive';\n\n@Directive({\n    selector: '[tuiHint][tuiHintHost]',\n    providers: [tuiAsRectAccessor(TuiHintHost), tuiProvide(TUI_HINT_ANCHOR, TuiHintHost)],\n})\nexport class TuiHintHost extends TuiRectAccessor implements ElementRef<HTMLElement> {\n    public readonly tuiHintHost = input<HTMLElement>();\n    public readonly type = 'hint';\n    public nativeElement = tuiInjectElement();\n\n    protected readonly sync = effect(() => {\n        const anchorName = `--${tuiGenerateId()}`;\n\n        this.nativeElement = this.tuiHintHost() || this.nativeElement;\n        this.nativeElement.setAttribute('data-tui-anchor', anchorName);\n        this.nativeElement.style.setProperty('anchor-name', anchorName);\n    });\n\n    public getClientRect(): DOMRect {\n        return this.nativeElement.getBoundingClientRect();\n    }\n}\n","import {Directive, inject, input, type OnChanges} from '@angular/core';\nimport {tuiAsDriver, TuiDriver} from '@taiga-ui/core/classes';\nimport {BehaviorSubject} from 'rxjs';\n\nimport {TuiHintHover} from './hint-hover.directive';\n\n@Directive({\n    selector: '[tuiHint][tuiHintManual]',\n    providers: [tuiAsDriver(TuiHintManual)],\n})\nexport class TuiHintManual extends TuiDriver implements OnChanges {\n    private readonly hover = inject(TuiHintHover);\n    private readonly stream$ = new BehaviorSubject(false);\n\n    public readonly visible = input<boolean | null>(false, {alias: 'tuiHintManual'});\n    public readonly type = 'hint';\n\n    constructor() {\n        super((subscriber) => this.stream$.subscribe(subscriber));\n        this.hover.enabled = false;\n    }\n\n    public ngOnChanges(): void {\n        this.stream$.next(!!this.visible());\n        this.hover.enabled = this.visible() === null;\n    }\n}\n","import {Directive, inject, input} from '@angular/core';\nimport {tuiSetSignal} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {TuiHintDirective} from './hint.directive';\n\n@Directive({\n    selector: '[tuiHintOverflow]',\n    hostDirectives: [\n        {\n            directive: TuiHintDirective,\n            inputs: ['tuiHintAppearance'],\n        },\n    ],\n    host: {'(mouseenter)': 'onMouseEnter($event.currentTarget)'},\n})\nexport class TuiHintOverflow {\n    private readonly hint = inject(TuiHintDirective);\n\n    public readonly content = input<string | null>('', {alias: 'tuiHintOverflow'});\n\n    protected onMouseEnter({scrollWidth, clientWidth, textContent}: Element): void {\n        const content = this.content();\n\n        tuiSetSignal(\n            this.hint.content,\n            scrollWidth > clientWidth && content !== null ? content || textContent : '',\n        );\n    }\n}\n","import {TuiHintComponent} from './hint.component';\nimport {TuiHintDirective} from './hint.directive';\nimport {TuiHintDescribe} from './hint-describe.directive';\nimport {TuiHintDriver} from './hint-driver.directive';\nimport {TuiHintHost} from './hint-host.directive';\nimport {TuiHintHover} from './hint-hover.directive';\nimport {TuiHintManual} from './hint-manual.directive';\nimport {TuiHintOverflow} from './hint-overflow.directive';\nimport {TuiHintPointer} from './hint-pointer.directive';\nimport {TuiHintUnstyled} from './hint-unstyled.component';\n\nexport const TuiHint = [\n    TuiHintComponent,\n    TuiHintDirective,\n    TuiHintUnstyled,\n    TuiHintDriver,\n    TuiHintHover,\n    TuiHintOverflow,\n    TuiHintDescribe,\n    TuiHintHost,\n    TuiHintManual,\n    TuiHintPointer,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["GAP","ARROW_OFFSET","i1.TuiHintAnchor","i2.TuiHintDriver","i3.TuiHintHover","i4.TuiHintPosition","i4.TuiHintAnchored","i1.TuiHintDirective"],"mappings":"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"}