{"version":3,"file":"taiga-ui-core-components-root.mjs","sources":["../../../projects/core/components/root/root.component.ts","../../../projects/core/components/root/taiga-ui-core-components-root.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {\n    ChangeDetectionStrategy,\n    Component,\n    inject,\n    signal,\n    ViewEncapsulation,\n} from '@angular/core';\nimport {WA_IS_MOBILE} from '@ng-web-apis/platform';\nimport {TUI_VERSION} from '@taiga-ui/cdk/constants';\nimport {TuiFontSize} from '@taiga-ui/cdk/directives/font-size';\nimport {TuiPlatform} from '@taiga-ui/cdk/directives/platform';\nimport {TuiVisualViewport} from '@taiga-ui/cdk/directives/visual-viewport';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {\n    TUI_SCROLLBAR_OPTIONS,\n    TuiScrollControls,\n} from '@taiga-ui/core/components/scrollbar';\nimport {TuiPopups} from '@taiga-ui/core/portals/popup';\nimport {\n    TUI_ANIMATIONS_SPEED,\n    TUI_BREAKPOINT,\n    TUI_REDUCED_MOTION,\n} from '@taiga-ui/core/tokens';\nimport {\n    TUI_LIQUID_GLASS,\n    TUI_OPTIONS,\n    tuiGetDuration,\n} from '@taiga-ui/core/utils/miscellaneous';\n\n@Component({\n    selector: 'tui-root',\n    imports: [TuiPopups, TuiScrollControls],\n    template: `\n        <div class=\"t-root-content\"><ng-content /></div>\n        @if (top()) {\n            @if (scrollbars) {\n                <tui-scroll-controls class=\"t-root-scrollbar\" />\n            }\n            <tui-popups><ng-content select=\"tuiOverContent\" /></tui-popups>\n        }\n    `,\n    styleUrls: ['./animations.less', './root.style.less'],\n    encapsulation: ViewEncapsulation.None,\n    // eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection\n    changeDetection: ChangeDetectionStrategy.Default,\n    hostDirectives: [TuiPlatform, TuiVisualViewport, TuiFontSize],\n    host: {\n        'data-tui-version': TUI_VERSION,\n        '[class._mobile]': 'breakpoint() === \"mobile\"',\n        '[class.tui-liquid-glass]': 'liquidGlass',\n        '[style.--tui-duration.ms]': 'duration',\n        '[style.--tui-scroll-behavior]': 'reducedMotion ? \"auto\" : \"smooth\"',\n        '(document:fullscreenchange)': 'top.set(parent)',\n        // Required for the :active state to work in Safari. https://stackoverflow.com/a/33681490\n        '(touchstart.passive.zoneless)': '0',\n    },\n})\nexport class TuiRoot {\n    private readonly doc = inject(DOCUMENT);\n    private readonly el = tuiInjectElement();\n    private readonly child = !!inject(TuiRoot, {optional: true, skipSelf: true});\n\n    protected readonly reducedMotion = inject(TUI_REDUCED_MOTION);\n    protected readonly duration = tuiGetDuration(inject(TUI_ANIMATIONS_SPEED));\n    protected readonly top = signal(this.parent);\n    protected readonly breakpoint = inject(TUI_BREAKPOINT);\n    protected readonly liquidGlass = inject(TUI_LIQUID_GLASS);\n\n    protected readonly scrollbars =\n        !inject(WA_IS_MOBILE) &&\n        !this.child &&\n        inject(TUI_SCROLLBAR_OPTIONS).mode !== 'native' &&\n        inject(TUI_OPTIONS).scrollbars !== 'native';\n\n    protected get parent(): boolean {\n        return this.doc.fullscreenElement\n            ? this.doc.fullscreenElement === this.el\n            : !this.child;\n    }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}