@taiga-ui/layout
Version:
A package with Taiga UI layout components
410 lines (400 loc) • 57.9 kB
JavaScript
import * as i0 from '@angular/core';
import { signal, Component, ViewEncapsulation, ChangeDetectionStrategy, Input, inject, computed, TemplateRef, ViewChild, ContentChild, Output, Directive } from '@angular/core';
import * as i3$1 from '@taiga-ui/core/components/button';
import { tuiButtonOptionsProvider, TuiButton } from '@taiga-ui/core/components/button';
import { TuiScrollable, TuiScrollbar } from '@taiga-ui/core/components/scrollbar';
import * as i1 from '@taiga-ui/core/directives/dropdown';
import { tuiDropdownOptionsProvider, TuiDropdownDirective, TuiDropdownHover, TuiDropdownPositionSided, TuiDropdownOpen, TuiDropdownManual, TUI_DROPDOWN_OPTIONS, tuiDropdown, TUI_DROPDOWN_COMPONENT, TuiWithDropdownOpen } from '@taiga-ui/core/directives/dropdown';
import { TuiFade } from '@taiga-ui/kit/directives/fade';
import { toObservable, toSignal } from '@angular/core/rxjs-interop';
import { tuiDirectiveBinding } from '@taiga-ui/cdk/utils/miscellaneous';
import * as i2 from '@taiga-ui/core/components/data-list';
import { tuiAsDataListHost, TuiDataList, TuiDataListComponent } from '@taiga-ui/core/components/data-list';
import * as i3 from '@taiga-ui/core/components/expand';
import { TuiExpand } from '@taiga-ui/core/components/expand';
import { TuiChevron, TUI_CHEVRON } from '@taiga-ui/kit/directives/chevron';
import { PolymorpheusOutlet } from '@taiga-ui/polymorpheus';
import { skip } from 'rxjs';
import * as i4 from '@angular/router';
import { RouterLink, RouterLinkActive } from '@angular/router';
import { TuiIcons } from '@taiga-ui/core/directives/icons';
import { TUI_COMMON_ICONS, TUI_ICON_END, TUI_ANIMATIONS_SPEED } from '@taiga-ui/core/tokens';
import { tuiInjectElement, tuiIsHTMLElement } from '@taiga-ui/cdk/utils/dom';
import * as i1$1 from '@taiga-ui/core/directives/hint';
import { TuiHintDirective, tuiHintOptionsProvider } from '@taiga-ui/core/directives/hint';
import * as i1$2 from '@taiga-ui/cdk/directives/active-zone';
import { TuiActiveZone } from '@taiga-ui/cdk/directives/active-zone';
import * as i2$1 from '@taiga-ui/cdk/directives/animated';
import { TuiAnimated } from '@taiga-ui/cdk/directives/animated';
import { tuiToAnimationOptions } from '@taiga-ui/core/utils/miscellaneous';
import { TUI_LAYOUT_ICONS } from '@taiga-ui/layout/tokens';
import { tuiTextfieldOptionsProvider } from '@taiga-ui/core/components/textfield';
import { tuiAvatarOptionsProvider } from '@taiga-ui/kit/components/avatar';
import { tuiBadgeOptionsProvider } from '@taiga-ui/kit/components/badge';
import { tuiBadgeNotificationOptionsProvider } from '@taiga-ui/kit/components/badge-notification';
import { tuiTabsOptionsProvider } from '@taiga-ui/kit/components/tabs';
import { tuiLinkOptionsProvider } from '@taiga-ui/core/components/link';
import { tuiBreadcrumbsOptionsProvider } from '@taiga-ui/kit/components/breadcrumbs';
class TuiAsideComponent {
constructor() {
// TODO: refactor to signal inputs after Angular update
this.expanded = signal(false);
}
set tuiNavigationAside(expanded) {
this.expanded.set(expanded);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiAsideComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiAsideComponent, isStandalone: true, selector: "aside[tuiNavigationAside]", inputs: { tuiNavigationAside: "tuiNavigationAside" }, host: { attributes: { "tuiNavigationAside": "", "tuiTheme": "dark" }, properties: { "class._expanded": "expanded()" } }, providers: [
tuiButtonOptionsProvider({ size: 's', appearance: 'flat-grayscale' }),
tuiDropdownOptionsProvider({
appearance: 'dropdown-navigation',
align: 'right',
offset: 12,
}),
], ngImport: i0, template: `
<ng-content select="header" />
<tui-scrollbar class="t-nav-scrollbar">
<div
tuiFade="vertical"
tuiScrollable
class="t-nav-content"
>
<ng-content />
</div>
</tui-scrollbar>
<ng-content select="footer" />
`, isInline: true, styles: ["aside[tuiNavigationAside]{transition-property:width;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:sticky;top:3rem;left:0;z-index:1;display:flex;inset-inline-start:0;inline-size:3rem;flex-direction:column;padding:.5rem .5rem .25rem;box-sizing:border-box;background:var(--tui-theme-color, #000);color:var(--tui-text-primary)}aside[tuiNavigationAside]:before{content:\"\";position:absolute;top:0;left:100%;z-index:-1;inset-inline-start:100%;block-size:3rem;inline-size:3rem;pointer-events:none;border-top-left-radius:1.25rem;box-shadow:-1.5rem 0 var(--tui-theme-color, #000);transform:scaleX(var(--tui-inline))}aside[tuiNavigationAside]:after{content:\"\";position:fixed;top:inherit;left:0;bottom:-3rem;z-index:-1;inset-inline-start:0;inline-size:3rem;background:inherit}aside[tuiNavigationAside]._expanded{inline-size:14.375rem}aside[tuiNavigationAside]._expanded+main[tuiNavigationMain]{max-inline-size:calc(100% - 14.375rem)}aside[tuiNavigationAside] .t-nav-scrollbar{margin:0 -.25rem}aside[tuiNavigationAside] .t-nav-content{scrollbar-width:none;-ms-overflow-style:none;block-size:100%;padding:0 .25rem;overflow:auto}aside[tuiNavigationAside] .t-nav-content::-webkit-scrollbar,aside[tuiNavigationAside] .t-nav-content::-webkit-scrollbar-thumb{display:none}aside[tuiNavigationAside] tui-expand [tuiAsideItem]{padding-inline-start:2rem}aside[tuiNavigationAside] hr{background:var(--tui-border-normal);block-size:1px;margin:0 0 .25rem;border:none}aside[tuiNavigationAside] header{padding-block-end:.25rem;box-shadow:inset 0 -1px var(--tui-border-normal);margin-block-end:1rem}aside[tuiNavigationAside] footer{display:flex;flex-direction:column;flex:1}aside[tuiNavigationAside] footer:before{content:\"\";min-block-size:1.75rem;margin:0 -.5rem;flex:1;-webkit-mask:linear-gradient(transparent 0,black 3rem,black calc(100% - 3rem),transparent 100%);mask:linear-gradient(transparent 0,black 3rem,black calc(100% - 3rem),transparent 100%)}aside[tuiNavigationAside]+main[tuiNavigationMain]{max-inline-size:calc(100% - 3rem)}[tuiAsideItem][tuiAsideItem]{inline-size:100%;justify-content:flex-start;gap:.625rem;margin-block-end:.25rem}[tuiAsideItem][tuiAsideItem]:after{border:none!important;margin-inline-start:auto!important;color:var(--tui-text-tertiary)}[tuiAsideItem][tuiAsideItem].tui-dropdown-open,[tuiAsideItem][tuiAsideItem]._active:not(._chevron-rotated),aside[tuiNavigationAside]:not(._expanded) [tuiAsideItem][tuiAsideItem]._active{background:var(--tui-background-neutral-1-hover)}tui-dropdown[data-appearance=dropdown-navigation]{border:none;background:var(--tui-background-elevation-3);background:color-mix(in srgb,var(--tui-theme-color, #000) 80%,#fff)}tui-dropdown[data-appearance=dropdown-navigation] [tuiAsideItem]{justify-content:flex-start;margin:0;padding:0 .5rem}tui-dropdown[data-appearance=dropdown-navigation] [tuiAsideItem]._active{background:transparent}tui-dropdown[data-appearance=dropdown-navigation] [tuiAsideItem]._link:not(._custom):after{opacity:0}tui-dropdown[data-appearance=dropdown-navigation] [tuiAsideItem]._link._active:after{opacity:1}\n"], dependencies: [{ kind: "directive", type: TuiFade, selector: "[tuiFade]", inputs: ["tuiFadeHeight", "tuiFadeSize", "tuiFadeOffset", "tuiFade"] }, { kind: "directive", type: TuiScrollable, selector: "[tuiScrollable]" }, { kind: "component", type: TuiScrollbar, selector: "tui-scrollbar", inputs: ["hidden"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiAsideComponent, decorators: [{
type: Component,
args: [{ standalone: true, selector: 'aside[tuiNavigationAside]', imports: [TuiFade, TuiScrollable, TuiScrollbar], template: `
<ng-content select="header" />
<tui-scrollbar class="t-nav-scrollbar">
<div
tuiFade="vertical"
tuiScrollable
class="t-nav-content"
>
<ng-content />
</div>
</tui-scrollbar>
<ng-content select="footer" />
`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
tuiButtonOptionsProvider({ size: 's', appearance: 'flat-grayscale' }),
tuiDropdownOptionsProvider({
appearance: 'dropdown-navigation',
align: 'right',
offset: 12,
}),
], host: {
tuiNavigationAside: '',
tuiTheme: 'dark',
'[class._expanded]': 'expanded()',
}, styles: ["aside[tuiNavigationAside]{transition-property:width;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:sticky;top:3rem;left:0;z-index:1;display:flex;inset-inline-start:0;inline-size:3rem;flex-direction:column;padding:.5rem .5rem .25rem;box-sizing:border-box;background:var(--tui-theme-color, #000);color:var(--tui-text-primary)}aside[tuiNavigationAside]:before{content:\"\";position:absolute;top:0;left:100%;z-index:-1;inset-inline-start:100%;block-size:3rem;inline-size:3rem;pointer-events:none;border-top-left-radius:1.25rem;box-shadow:-1.5rem 0 var(--tui-theme-color, #000);transform:scaleX(var(--tui-inline))}aside[tuiNavigationAside]:after{content:\"\";position:fixed;top:inherit;left:0;bottom:-3rem;z-index:-1;inset-inline-start:0;inline-size:3rem;background:inherit}aside[tuiNavigationAside]._expanded{inline-size:14.375rem}aside[tuiNavigationAside]._expanded+main[tuiNavigationMain]{max-inline-size:calc(100% - 14.375rem)}aside[tuiNavigationAside] .t-nav-scrollbar{margin:0 -.25rem}aside[tuiNavigationAside] .t-nav-content{scrollbar-width:none;-ms-overflow-style:none;block-size:100%;padding:0 .25rem;overflow:auto}aside[tuiNavigationAside] .t-nav-content::-webkit-scrollbar,aside[tuiNavigationAside] .t-nav-content::-webkit-scrollbar-thumb{display:none}aside[tuiNavigationAside] tui-expand [tuiAsideItem]{padding-inline-start:2rem}aside[tuiNavigationAside] hr{background:var(--tui-border-normal);block-size:1px;margin:0 0 .25rem;border:none}aside[tuiNavigationAside] header{padding-block-end:.25rem;box-shadow:inset 0 -1px var(--tui-border-normal);margin-block-end:1rem}aside[tuiNavigationAside] footer{display:flex;flex-direction:column;flex:1}aside[tuiNavigationAside] footer:before{content:\"\";min-block-size:1.75rem;margin:0 -.5rem;flex:1;-webkit-mask:linear-gradient(transparent 0,black 3rem,black calc(100% - 3rem),transparent 100%);mask:linear-gradient(transparent 0,black 3rem,black calc(100% - 3rem),transparent 100%)}aside[tuiNavigationAside]+main[tuiNavigationMain]{max-inline-size:calc(100% - 3rem)}[tuiAsideItem][tuiAsideItem]{inline-size:100%;justify-content:flex-start;gap:.625rem;margin-block-end:.25rem}[tuiAsideItem][tuiAsideItem]:after{border:none!important;margin-inline-start:auto!important;color:var(--tui-text-tertiary)}[tuiAsideItem][tuiAsideItem].tui-dropdown-open,[tuiAsideItem][tuiAsideItem]._active:not(._chevron-rotated),aside[tuiNavigationAside]:not(._expanded) [tuiAsideItem][tuiAsideItem]._active{background:var(--tui-background-neutral-1-hover)}tui-dropdown[data-appearance=dropdown-navigation]{border:none;background:var(--tui-background-elevation-3);background:color-mix(in srgb,var(--tui-theme-color, #000) 80%,#fff)}tui-dropdown[data-appearance=dropdown-navigation] [tuiAsideItem]{justify-content:flex-start;margin:0;padding:0 .5rem}tui-dropdown[data-appearance=dropdown-navigation] [tuiAsideItem]._active{background:transparent}tui-dropdown[data-appearance=dropdown-navigation] [tuiAsideItem]._link:not(._custom):after{opacity:0}tui-dropdown[data-appearance=dropdown-navigation] [tuiAsideItem]._link._active:after{opacity:1}\n"] }]
}], propDecorators: { tuiNavigationAside: [{
type: Input
}] } });
class TuiAsideGroupComponent {
constructor() {
this.aside = inject(TuiAsideComponent);
this.open = signal(false);
this.template = null;
this.expanded = computed(() => this.aside.expanded() && this.open());
this.binding = tuiDirectiveBinding(TuiDropdownDirective, 'tuiDropdown', computed(() => (this.aside.expanded() ? null : this.datalist)));
this.openChange = toObservable(this.open).pipe(skip(1));
this.size = 's';
}
set openSetter(open) {
this.toggle(open);
}
toggle(open = !this.open()) {
this.open.set(open && this.aside.expanded());
this.chevron?.chevron.set(this.open());
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiAsideGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiAsideGroupComponent, isStandalone: true, selector: "tui-aside-group", inputs: { openSetter: ["open", "openSetter"] }, outputs: { openChange: "openChange" }, providers: [tuiAsDataListHost(TuiAsideGroupComponent)], queries: [{ propertyName: "chevron", first: true, predicate: TuiChevron, descendants: true, static: true }, { propertyName: "template", first: true, predicate: TemplateRef, descendants: true }], viewQueries: [{ propertyName: "datalist", first: true, predicate: ["datalist"], descendants: true, static: true }], hostDirectives: [{ directive: i1.TuiDropdownDirective }, { directive: i1.TuiDropdownHover }, { directive: i1.TuiDropdownPositionSided }, { directive: i1.TuiDropdownOpen }], ngImport: i0, template: "<div\n #host\n (click)=\"toggle()\"\n>\n <ng-content />\n</div>\n<tui-expand [expanded]=\"expanded()\">\n <ng-container *polymorpheusOutlet=\"template\" />\n</tui-expand>\n<ng-template #datalist>\n <tui-data-list>\n <tui-opt-group [label]=\"host.textContent\">\n <ng-container *polymorpheusOutlet=\"template\" />\n </tui-opt-group>\n </tui-data-list>\n</ng-template>\n", dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "component", type: i2.TuiDataListComponent, selector: "tui-data-list", inputs: ["emptyContent", "size"] }, { kind: "directive", type: i2.TuiOptGroup, selector: "tui-opt-group", inputs: ["label"] }, { kind: "component", type: i3.TuiExpandComponent, selector: "tui-expand", inputs: ["async", "expanded"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiAsideGroupComponent, decorators: [{
type: Component,
args: [{ standalone: true, selector: 'tui-aside-group', imports: [PolymorpheusOutlet, TuiDataList, TuiExpand], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [tuiAsDataListHost(TuiAsideGroupComponent)], hostDirectives: [
TuiDropdownDirective,
TuiDropdownHover,
TuiDropdownPositionSided,
TuiDropdownOpen,
], template: "<div\n #host\n (click)=\"toggle()\"\n>\n <ng-content />\n</div>\n<tui-expand [expanded]=\"expanded()\">\n <ng-container *polymorpheusOutlet=\"template\" />\n</tui-expand>\n<ng-template #datalist>\n <tui-data-list>\n <tui-opt-group [label]=\"host.textContent\">\n <ng-container *polymorpheusOutlet=\"template\" />\n </tui-opt-group>\n </tui-data-list>\n</ng-template>\n" }]
}], propDecorators: { datalist: [{
type: ViewChild,
args: ['datalist', { static: true }]
}], chevron: [{
type: ContentChild,
args: [TuiChevron, { static: true }]
}], template: [{
type: ContentChild,
args: [TemplateRef]
}], openChange: [{
type: Output
}], openSetter: [{
type: Input,
args: ['open']
}] } });
class TuiHintAsideDirective {
constructor() {
this.el = tuiInjectElement();
this.aside = inject(TuiAsideComponent);
this.dropdown = inject(TuiDropdownDirective, { optional: true });
this.binding = tuiDirectiveBinding(TuiHintDirective, 'tuiHint', computed(() => this.aside.expanded() || this.dropdown
? ''
: () => this.el.textContent?.trim()));
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiHintAsideDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiHintAsideDirective, isStandalone: true, selector: "[tuiHintAside]", providers: [tuiHintOptionsProvider({ direction: 'right' })], hostDirectives: [{ directive: i1$1.TuiHintDirective }], ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiHintAsideDirective, decorators: [{
type: Directive,
args: [{
standalone: true,
selector: '[tuiHintAside]',
providers: [tuiHintOptionsProvider({ direction: 'right' })],
hostDirectives: [TuiHintDirective],
}]
}] });
class TuiAsideItemDirective {
constructor() {
this.icon = inject(TUI_COMMON_ICONS).check;
this.icons = inject(TuiIcons);
this.link = inject(RouterLink, { self: true, optional: true });
this.active = toSignal(inject(RouterLinkActive).isActiveChange);
this.size = 's';
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiAsideItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiAsideItemDirective, isStandalone: true, selector: "[tuiAsideItem]", host: { attributes: { "tuiButton": "", "tuiOption": "" }, properties: { "class._link": "link", "class._active": "active()", "class._custom": "icon !== icons.iconEnd()" } }, providers: [
tuiAsDataListHost(TuiAsideItemDirective),
provideIcon(),
provideDropdown(),
], hostDirectives: [{ directive: TuiHintAsideDirective }, { directive: i1.TuiDropdownManual }, { directive: i1.TuiDropdownPositionSided }, { directive: i3$1.TuiButton }, { directive: i4.RouterLinkActive, inputs: ["routerLinkActiveOptions", "routerLinkActiveOptions"] }], ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiAsideItemDirective, decorators: [{
type: Directive,
args: [{
standalone: true,
selector: '[tuiAsideItem]',
providers: [
tuiAsDataListHost(TuiAsideItemDirective),
provideIcon(),
provideDropdown(),
],
hostDirectives: [
TuiHintAsideDirective,
TuiDropdownManual,
TuiDropdownPositionSided,
TuiButton,
{
directive: RouterLinkActive,
inputs: ['routerLinkActiveOptions'],
},
],
host: {
tuiButton: '',
tuiOption: '',
'[class._link]': 'link',
'[class._active]': 'active()',
'[class._custom]': 'icon !== icons.iconEnd()',
},
}]
}] });
function provideIcon() {
return {
provide: TUI_ICON_END,
useFactory: () => {
if (inject(TuiChevron, { optional: true, self: true })) {
return inject(TUI_CHEVRON);
}
const { check, more } = inject(TUI_COMMON_ICONS);
const active = inject(TuiDataListComponent, { optional: true }) &&
inject(RouterLink, { self: true, optional: true })
? check
: '';
return inject(TuiDropdownDirective, { self: true, optional: true })
? more
: active;
},
};
}
function provideDropdown() {
return {
provide: TUI_DROPDOWN_OPTIONS,
useFactory: () => ({
...inject(TUI_DROPDOWN_OPTIONS, { skipSelf: true }),
offset: inject(TuiDataListComponent, { optional: true }) ? 8 : 12,
}),
};
}
class TuiDrawerComponent {
constructor() {
this.directive = inject(TuiDropdownDirective);
this.animation = tuiToAnimationOptions(inject(TUI_ANIMATIONS_SPEED));
this.top = tuiIsHTMLElement(this.directive.el.offsetParent) &&
tuiIsHTMLElement(this.directive.el.offsetParent.offsetParent)
? this.directive.el.offsetParent.getBoundingClientRect().bottom -
Math.max(this.directive.el.offsetParent.offsetParent.getBoundingClientRect().top, 0)
: 0;
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDrawerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiDrawerComponent, isStandalone: true, selector: "ng-component", host: { attributes: { "tuiTheme": "dark" }, properties: { "style.top.px": "top" } }, hostDirectives: [{ directive: i1$2.TuiActiveZone }, { directive: i2$1.TuiAnimated }], ngImport: i0, template: `
<tui-scrollbar [style.height.%]="100">
<ng-container *polymorpheusOutlet="directive._content()" />
</tui-scrollbar>
`, isInline: true, styles: [":host{position:fixed;left:0;right:0;bottom:0;background:var(--tui-theme-color, #000);inline-size:14.375rem;color:var(--tui-text-primary);pointer-events:auto;--tui-from: translateX(-100%)}:host.tui-enter,:host.tui-leave{animation-name:tuiSlide}:host ::ng-deep tui-data-list [tuiOption]{justify-content:flex-start;gap:.75rem;margin:0;font:var(--tui-font-text-ui-s);font-weight:700}:host ::ng-deep tui-data-list tui-opt-group:before{font:var(--tui-font-text-xs);text-transform:uppercase;color:var(--tui-text-tertiary)}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "component", type: TuiScrollbar, selector: "tui-scrollbar", inputs: ["hidden"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDrawerComponent, decorators: [{
type: Component,
args: [{ standalone: true, imports: [PolymorpheusOutlet, TuiScrollbar], template: `
<tui-scrollbar [style.height.%]="100">
<ng-container *polymorpheusOutlet="directive._content()" />
</tui-scrollbar>
`, changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [TuiActiveZone, TuiAnimated], host: {
tuiTheme: 'dark',
'[style.top.px]': 'top',
}, styles: [":host{position:fixed;left:0;right:0;bottom:0;background:var(--tui-theme-color, #000);inline-size:14.375rem;color:var(--tui-text-primary);pointer-events:auto;--tui-from: translateX(-100%)}:host.tui-enter,:host.tui-leave{animation-name:tuiSlide}:host ::ng-deep tui-data-list [tuiOption]{justify-content:flex-start;gap:.75rem;margin:0;font:var(--tui-font-text-ui-s);font-weight:700}:host ::ng-deep tui-data-list tui-opt-group:before{font:var(--tui-font-text-xs);text-transform:uppercase;color:var(--tui-text-tertiary)}\n"] }]
}] });
class TuiDrawerDirective {
constructor() {
this.x = inject(TUI_COMMON_ICONS).close;
this.icons = inject(TuiIcons);
this.dropdown = tuiDropdown(null);
this.open = inject(TuiDropdownOpen);
}
ngDoCheck() {
this.icons.iconStart.set(this.open.tuiDropdownOpen ? this.x : '');
}
set template(template) {
this.dropdown.set(template);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDrawerDirective, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiDrawerDirective, isStandalone: true, selector: "[tuiIconButton][tuiNavigationDrawer]", providers: [
tuiButtonOptionsProvider({ appearance: 'secondary-grayscale' }),
{
provide: TUI_ICON_END,
useFactory: () => inject(TUI_LAYOUT_ICONS).grid,
},
{
provide: TUI_DROPDOWN_COMPONENT,
useValue: TuiDrawerComponent,
},
], viewQueries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true }], hostDirectives: [{ directive: i1.TuiDropdownDirective }, { directive: i1.TuiWithDropdownOpen }], ngImport: i0, template: '<ng-template><ng-content /></ng-template>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDrawerDirective, decorators: [{
type: Component,
args: [{
standalone: true,
// TODO: move to host directives
selector: '[tuiIconButton][tuiNavigationDrawer]',
template: '<ng-template><ng-content /></ng-template>',
changeDetection: ChangeDetectionStrategy.OnPush,
providers: [
tuiButtonOptionsProvider({ appearance: 'secondary-grayscale' }),
{
provide: TUI_ICON_END,
useFactory: () => inject(TUI_LAYOUT_ICONS).grid,
},
{
provide: TUI_DROPDOWN_COMPONENT,
useValue: TuiDrawerComponent,
},
],
hostDirectives: [TuiDropdownDirective, TuiWithDropdownOpen],
}]
}], propDecorators: { template: [{
type: ViewChild,
args: [TemplateRef]
}] } });
class TuiHeaderComponent {
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiHeaderComponent, isStandalone: true, selector: "header[tuiNavigationHeader]", host: { attributes: { "tuiTheme": "dark" } }, providers: [
tuiAvatarOptionsProvider({ size: 's', appearance: 'secondary-grayscale' }),
tuiBadgeNotificationOptionsProvider({ size: 'xs' }),
tuiBadgeOptionsProvider({ size: 'm', appearance: 'primary' }),
tuiButtonOptionsProvider({ size: 's', appearance: 'flat-grayscale' }),
tuiDropdownOptionsProvider({ appearance: 'dropdown-navigation' }),
tuiTextfieldOptionsProvider({ size: signal('s') }),
], ngImport: i0, template: '<ng-content />', isInline: true, styles: ["header[tuiNavigationHeader][tuiNavigationHeader]{position:sticky;top:0;left:0;z-index:2;display:flex;inset-inline-start:0;block-size:3rem;inline-size:100vw;align-items:center;gap:.25rem;padding:.5rem;box-sizing:border-box;font:var(--tui-font-text-s);line-height:1rem;background:var(--tui-theme-color, #000);color:var(--tui-text-primary);box-shadow:0 -100rem 0 100rem var(--tui-theme-color, #000)}header[tuiNavigationHeader][tuiNavigationHeader]:before{content:\"\";position:absolute;top:100%;left:0;right:0;z-index:-1;block-size:3rem;pointer-events:none;box-shadow:0 -1.5rem var(--tui-theme-color, #000);border-radius:1.25rem 1.25rem 0 0}header[tuiNavigationHeader][tuiNavigationHeader] [tuiNavigationLogo]{padding:0 .5rem;margin:0 1rem}header[tuiNavigationHeader][tuiNavigationHeader] [tuiNavigationLogo] tui-icon{font-size:1rem}header[tuiNavigationHeader][tuiNavigationHeader] [tuiNavigationSegments]{display:flex;gap:.5rem;min-inline-size:12rem}header[tuiNavigationHeader][tuiNavigationHeader] [tuiNavigationSegments]>*:not(:last-child){flex:1 0 auto}header[tuiNavigationHeader][tuiNavigationHeader] [tuiNavigationSegments]>*:last-child{min-inline-size:3rem;flex:1 1 auto}header[tuiNavigationHeader][tuiNavigationHeader] [tuiButton],header[tuiNavigationHeader][tuiNavigationHeader] [tuiBadge],header[tuiNavigationHeader][tuiNavigationHeader] [tuiChip],header[tuiNavigationHeader][tuiNavigationHeader] tui-badge,header[tuiNavigationHeader][tuiNavigationHeader] tui-chip{max-inline-size:12.5rem}header[tuiNavigationHeader][tuiNavigationHeader] hr{flex:1;block-size:calc(100% + 1rem);min-inline-size:4rem;margin:-.5rem 0;border:none;flex-shrink:0;background:transparent;-webkit-mask:linear-gradient(to right,transparent 0,black 3rem,black calc(100% - 3rem),transparent 100%);mask:linear-gradient(to right,transparent 0,black 3rem,black calc(100% - 3rem),transparent 100%)}header[tuiNavigationHeader][tuiNavigationHeader] hr~[tuiButton]{margin-inline-end:.5rem}header[tuiNavigationHeader][tuiNavigationHeader] tui-textfield{inline-size:12rem;margin-inline-end:1.75rem}tui-dropdown[data-appearance=dropdown-navigation]{border:none;color:var(--tui-text-primary);background:var(--tui-background-elevation-3);background:color-mix(in srgb,var(--tui-theme-color, #000) 80%,#fff)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiHeaderComponent, decorators: [{
type: Component,
args: [{ standalone: true, selector: 'header[tuiNavigationHeader]', template: '<ng-content />', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
tuiAvatarOptionsProvider({ size: 's', appearance: 'secondary-grayscale' }),
tuiBadgeNotificationOptionsProvider({ size: 'xs' }),
tuiBadgeOptionsProvider({ size: 'm', appearance: 'primary' }),
tuiButtonOptionsProvider({ size: 's', appearance: 'flat-grayscale' }),
tuiDropdownOptionsProvider({ appearance: 'dropdown-navigation' }),
tuiTextfieldOptionsProvider({ size: signal('s') }),
], host: {
tuiTheme: 'dark',
}, styles: ["header[tuiNavigationHeader][tuiNavigationHeader]{position:sticky;top:0;left:0;z-index:2;display:flex;inset-inline-start:0;block-size:3rem;inline-size:100vw;align-items:center;gap:.25rem;padding:.5rem;box-sizing:border-box;font:var(--tui-font-text-s);line-height:1rem;background:var(--tui-theme-color, #000);color:var(--tui-text-primary);box-shadow:0 -100rem 0 100rem var(--tui-theme-color, #000)}header[tuiNavigationHeader][tuiNavigationHeader]:before{content:\"\";position:absolute;top:100%;left:0;right:0;z-index:-1;block-size:3rem;pointer-events:none;box-shadow:0 -1.5rem var(--tui-theme-color, #000);border-radius:1.25rem 1.25rem 0 0}header[tuiNavigationHeader][tuiNavigationHeader] [tuiNavigationLogo]{padding:0 .5rem;margin:0 1rem}header[tuiNavigationHeader][tuiNavigationHeader] [tuiNavigationLogo] tui-icon{font-size:1rem}header[tuiNavigationHeader][tuiNavigationHeader] [tuiNavigationSegments]{display:flex;gap:.5rem;min-inline-size:12rem}header[tuiNavigationHeader][tuiNavigationHeader] [tuiNavigationSegments]>*:not(:last-child){flex:1 0 auto}header[tuiNavigationHeader][tuiNavigationHeader] [tuiNavigationSegments]>*:last-child{min-inline-size:3rem;flex:1 1 auto}header[tuiNavigationHeader][tuiNavigationHeader] [tuiButton],header[tuiNavigationHeader][tuiNavigationHeader] [tuiBadge],header[tuiNavigationHeader][tuiNavigationHeader] [tuiChip],header[tuiNavigationHeader][tuiNavigationHeader] tui-badge,header[tuiNavigationHeader][tuiNavigationHeader] tui-chip{max-inline-size:12.5rem}header[tuiNavigationHeader][tuiNavigationHeader] hr{flex:1;block-size:calc(100% + 1rem);min-inline-size:4rem;margin:-.5rem 0;border:none;flex-shrink:0;background:transparent;-webkit-mask:linear-gradient(to right,transparent 0,black 3rem,black calc(100% - 3rem),transparent 100%);mask:linear-gradient(to right,transparent 0,black 3rem,black calc(100% - 3rem),transparent 100%)}header[tuiNavigationHeader][tuiNavigationHeader] hr~[tuiButton]{margin-inline-end:.5rem}header[tuiNavigationHeader][tuiNavigationHeader] tui-textfield{inline-size:12rem;margin-inline-end:1.75rem}tui-dropdown[data-appearance=dropdown-navigation]{border:none;color:var(--tui-text-primary);background:var(--tui-background-elevation-3);background:color-mix(in srgb,var(--tui-theme-color, #000) 80%,#fff)}\n"] }]
}] });
class TuiLogoComponent {
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiLogoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiLogoComponent, isStandalone: true, selector: "[tuiNavigationLogo]", ngImport: i0, template: '<ng-content />', isInline: true, styles: ["[tuiNavigationLogo]{display:flex;align-items:center;gap:.5rem;overflow:hidden;white-space:nowrap;font-weight:700}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiLogoComponent, decorators: [{
type: Component,
args: [{ standalone: true, selector: '[tuiNavigationLogo]', template: '<ng-content />', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: ["[tuiNavigationLogo]{display:flex;align-items:center;gap:.5rem;overflow:hidden;white-space:nowrap;font-weight:700}\n"] }]
}] });
class TuiMainComponent {
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiMainComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiMainComponent, isStandalone: true, selector: "main[tuiNavigationMain]", host: { attributes: { "tuiNavigationMain": "" } }, ngImport: i0, template: '<ng-content />', isInline: true, styles: ["main[tuiNavigationMain]{transition-property:max-width;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:relative;display:grid;grid-template-columns:repeat(12,minmax(0,8.5625rem));align-items:start;gap:0 1rem;place-content:start center;flex:1;border:1.5rem solid transparent;border-block-start:0;isolation:isolate;box-sizing:border-box}main[tuiNavigationMain]>*{grid-column:span 12;max-inline-size:100%}main[tuiNavigationMain]>nav[tuiNavigationNav]:not(:first-child){border-image:conic-gradient(var(--tui-background-base) 0 0) fill 0/0/0 100vw;box-shadow:inset 0 -1px var(--tui-border-normal)}main[tuiNavigationMain]>[tuiHeader]{margin:1rem 0 .5rem}main[tuiNavigationMain]>[tuiHeader][tuiCardLarge]{flex-direction:column;gap:1rem}main[tuiNavigationMain]>[tuiHeader][tuiCardLarge]>:last-child:not([tuiTitle]){margin-block-end:.25rem}main[tuiNavigationMain]>[tuiHeader]:not([tuiCardLarge]) [tuiTitle]{max-inline-size:42rem;margin-inline-end:auto;white-space:nowrap;gap:.375rem;overflow:hidden}main[tuiNavigationMain]>[tuiHeader]:not([tuiCardLarge]) [tuiSubtitle]{display:-webkit-box;-webkit-box-orient:block-axis;-webkit-line-clamp:2;white-space:normal;word-break:break-word;font:var(--tui-font-text-s);overflow:hidden}main[tuiNavigationMain]>[tuiHeader] [tuiCaption]{scrollbar-width:none;-ms-overflow-style:none;display:flex;gap:1rem;color:var(--tui-text-tertiary);font:var(--tui-font-text-s);white-space:nowrap;text-transform:none;overflow:auto}main[tuiNavigationMain]>[tuiHeader] [tuiCaption]::-webkit-scrollbar,main[tuiNavigationMain]>[tuiHeader] [tuiCaption]::-webkit-scrollbar-thumb{display:none}main[tuiNavigationMain]>[tuiHeader] [tuiCaption] tui-icon{font-size:1rem;margin:.125rem 0;color:var(--tui-text-secondary)}main[tuiNavigationMain]>[tuiHeader] [tuiAccessories]{margin-inline-start:3rem;gap:.5rem!important}main[tuiNavigationMain]>a:first-child,main[tuiNavigationMain]>button:first-child,main[tuiNavigationMain]>tui-breadcrumbs:first-child{block-size:1.25rem;padding:0;margin-block-start:.875rem;justify-self:flex-start}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiMainComponent, decorators: [{
type: Component,
args: [{ standalone: true, selector: 'main[tuiNavigationMain]', template: '<ng-content />', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
tuiNavigationMain: '',
}, styles: ["main[tuiNavigationMain]{transition-property:max-width;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:relative;display:grid;grid-template-columns:repeat(12,minmax(0,8.5625rem));align-items:start;gap:0 1rem;place-content:start center;flex:1;border:1.5rem solid transparent;border-block-start:0;isolation:isolate;box-sizing:border-box}main[tuiNavigationMain]>*{grid-column:span 12;max-inline-size:100%}main[tuiNavigationMain]>nav[tuiNavigationNav]:not(:first-child){border-image:conic-gradient(var(--tui-background-base) 0 0) fill 0/0/0 100vw;box-shadow:inset 0 -1px var(--tui-border-normal)}main[tuiNavigationMain]>[tuiHeader]{margin:1rem 0 .5rem}main[tuiNavigationMain]>[tuiHeader][tuiCardLarge]{flex-direction:column;gap:1rem}main[tuiNavigationMain]>[tuiHeader][tuiCardLarge]>:last-child:not([tuiTitle]){margin-block-end:.25rem}main[tuiNavigationMain]>[tuiHeader]:not([tuiCardLarge]) [tuiTitle]{max-inline-size:42rem;margin-inline-end:auto;white-space:nowrap;gap:.375rem;overflow:hidden}main[tuiNavigationMain]>[tuiHeader]:not([tuiCardLarge]) [tuiSubtitle]{display:-webkit-box;-webkit-box-orient:block-axis;-webkit-line-clamp:2;white-space:normal;word-break:break-word;font:var(--tui-font-text-s);overflow:hidden}main[tuiNavigationMain]>[tuiHeader] [tuiCaption]{scrollbar-width:none;-ms-overflow-style:none;display:flex;gap:1rem;color:var(--tui-text-tertiary);font:var(--tui-font-text-s);white-space:nowrap;text-transform:none;overflow:auto}main[tuiNavigationMain]>[tuiHeader] [tuiCaption]::-webkit-scrollbar,main[tuiNavigationMain]>[tuiHeader] [tuiCaption]::-webkit-scrollbar-thumb{display:none}main[tuiNavigationMain]>[tuiHeader] [tuiCaption] tui-icon{font-size:1rem;margin:.125rem 0;color:var(--tui-text-secondary)}main[tuiNavigationMain]>[tuiHeader] [tuiAccessories]{margin-inline-start:3rem;gap:.5rem!important}main[tuiNavigationMain]>a:first-child,main[tuiNavigationMain]>button:first-child,main[tuiNavigationMain]>tui-breadcrumbs:first-child{block-size:1.25rem;padding:0;margin-block-start:.875rem;justify-self:flex-start}\n"] }]
}] });
class TuiNavComponent {
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiNavComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiNavComponent, isStandalone: true, selector: "nav[tuiNavigationNav]", providers: [
tuiBadgeOptionsProvider({ size: 'm' }),
tuiButtonOptionsProvider({ size: 's' }),
tuiTabsOptionsProvider({ size: 'm' }),
], ngImport: i0, template: '<ng-content />', isInline: true, styles: ["nav[tuiNavigationNav]{top:3rem;z-index:1;display:flex;min-block-size:3rem;align-items:center;gap:.5rem;padding:.25rem 0 0;box-sizing:border-box;white-space:nowrap;overflow:hidden;font:var(--tui-font-text-s);line-height:1rem;color:var(--tui-text-secondary);border-image:linear-gradient(0deg,var(--tui-border-normal) 1px,var(--tui-background-base) 0) fill 0/0/0 100vw}nav[tuiNavigationNav] [tuiNavigationLogo]{font:var(--tui-font-text-m);font-weight:700;color:var(--tui-text-primary)}nav[tuiNavigationNav]>a{text-decoration:none;color:inherit}nav[tuiNavigationNav]>hr{inline-size:2rem;margin:0 0 0 auto;border:none;visibility:hidden;flex-shrink:0}nav[tuiNavigationNav] tui-icon{font-size:1rem;vertical-align:bottom}nav[tuiNavigationNav] tui-tabs,nav[tuiNavigationNav] [tuiTabs]{box-shadow:none;margin-inline-end:1rem}nav[tuiNavigationNav] tui-tabs:before,nav[tuiNavigationNav] [tuiTabs]:before{background:var(--tui-background-accent-opposite-pressed)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiNavComponent, decorators: [{
type: Component,
args: [{ standalone: true, selector: 'nav[tuiNavigationNav]', template: '<ng-content />', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
tuiBadgeOptionsProvider({ size: 'm' }),
tuiButtonOptionsProvider({ size: 's' }),
tuiTabsOptionsProvider({ size: 'm' }),
], styles: ["nav[tuiNavigationNav]{top:3rem;z-index:1;display:flex;min-block-size:3rem;align-items:center;gap:.5rem;padding:.25rem 0 0;box-sizing:border-box;white-space:nowrap;overflow:hidden;font:var(--tui-font-text-s);line-height:1rem;color:var(--tui-text-secondary);border-image:linear-gradient(0deg,var(--tui-border-normal) 1px,var(--tui-background-base) 0) fill 0/0/0 100vw}nav[tuiNavigationNav] [tuiNavigationLogo]{font:var(--tui-font-text-m);font-weight:700;color:var(--tui-text-primary)}nav[tuiNavigationNav]>a{text-decoration:none;color:inherit}nav[tuiNavigationNav]>hr{inline-size:2rem;margin:0 0 0 auto;border:none;visibility:hidden;flex-shrink:0}nav[tuiNavigationNav] tui-icon{font-size:1rem;vertical-align:bottom}nav[tuiNavigationNav] tui-tabs,nav[tuiNavigationNav] [tuiTabs]{box-shadow:none;margin-inline-end:1rem}nav[tuiNavigationNav] tui-tabs:before,nav[tuiNavigationNav] [tuiTabs]:before{background:var(--tui-background-accent-opposite-pressed)}\n"] }]
}] });
const PROVIDERS = [
tuiTextfieldOptionsProvider({ size: signal('s') }),
tuiBreadcrumbsOptionsProvider({ icon: '/' }),
tuiLinkOptionsProvider({ appearance: 'action-grayscale' }),
tuiTabsOptionsProvider({ size: 'm' }),
tuiDropdownOptionsProvider({ align: 'right' }),
];
class TuiSubheaderComponent {
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiSubheaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiSubheaderComponent, isStandalone: true, selector: "[tuiSubheader]:not([compact]),[tuiNavigationSubheader]:not([compact])", providers: [
PROVIDERS,
tuiButtonOptionsProvider({ appearance: 'secondary', size: 'xs' }),
], ngImport: i0, template: `
<ng-content select="[tuiLink]" />
<ng-content select="tui-breadcrumbs" />
<ng-content select="[tuiHeader]" />
<ng-content />
<ng-content select="tui-tabs,[tuiTabs]" />
`, isInline: true, styles: ["[tuiSubheader][compact]{top:3rem;z-index:1;block-size:var(--tui-height-m);padding-block-start:.25rem}[tuiSubheader][compact] .t-nav-subheader{position:absolute;top:0;left:0;right:0;display:flex;block-size:inherit;align-items:center;gap:.5rem;font:var(--tui-font-text-s);white-space:nowrap;overflow:hidden;padding:inherit;border-image:linear-gradient(0deg,var(--tui-border-normal) 1px,var(--tui-background-base) 0) fill 0/0/0 100vw}[tuiSubheader][compact] .t-nav-subheader tui-breadcrumbs{flex:1;overflow:hidden}[tuiSubheader][compact] .t-nav-subheader>tui-tabs,[tuiSubheader][compact] .t-nav-subheader>tui-tabs-with-more,[tuiSubheader][compact] .t-nav-subheader>[tuiTabs],[tuiSubheader][compact] .t-nav-subheader>[tuiTabsWithMore]{margin-inline-start:auto;margin-inline-end:1.5rem;border-inline-start:3rem solid transparent;box-shadow:none}[tuiSubheader][compact] .t-nav-subheader tui-tabs:before,[tuiSubheader][compact] .t-nav-subheader tui-tabs-with-more:before,[tuiSubheader][compact] .t-nav-subheader [tuiTabs]:before,[tuiSubheader][compact] .t-nav-subheader [tuiTabsWithMore]:before{background:var(--tui-background-accent-opposite-pressed)}[tuiSubheader]:not([compact]){margin-block-start:.875rem}[tuiSubheader]:not([compact]) [tuiHeader]{margin:1rem 0 .5rem}[tuiSubheader]:not([compact]) [tuiHeader]:first-child{margin-block-start:0}[tuiSubheader]:not([compact]) [tuiHeader] [tuiTitle]{max-inline-size:42rem;margin-inline-end:auto}[tuiSubheader]:not([compact]) [tuiHeader] [tuiSubtitle]{font:var(--tui-font-text-s)}[tuiSubheader]:not([compact]) [tuiHeader] [tuiSubtitle] tui-icon{font-size:1rem}[tuiSubheader]:not([compact]) [tuiHeader]+tui-textfield{margin-block-start:.75rem}[tuiSubheader]:not([compact]) tui-tabs,[tuiSubheader]:not([compact]) [tuiTabs]{margin-block-start:.5rem}[tuiSubheader]:not([compact]) tui-tabs:before,[tuiSubheader]:not([compact]) [tuiTabs]:before{background:var(--tui-background-accent-opposite-pressed)}[tuiSubheader]:not([compact]) tui-tabs [tuiButton],[tuiSubheader]:not([compact]) [tuiTabs] [tuiButton],[tuiSubheader]:not([compact]) tui-tabs [tuiIconButton],[tuiSubheader]:not([compact]) [tuiTabs] [tuiIconButton]{margin-inline-start:.5rem;align-self:center}[tuiSubheader]:not([compact]) tui-tabs [tuiTab]+[tuiButton],[tuiSubheader]:not([compact]) [tuiTabs] [tuiTab]+[tuiButton],[tuiSubheader]:not([compact]) tui-tabs [tuiTab]+[tuiIconButton],[tuiSubheader]:not([compact]) [tuiTabs] [tuiTab]+[tuiIconButton]{margin-inline-start:auto}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiSubheaderComponent, decorators: [{
type: Component,
args: [{ standalone: true, selector: '[tuiSubheader]:not([compact]),[tuiNavigationSubheader]:not([compact])', template: `
<ng-content select="[tuiLink]" />
<ng-content select="tui-breadcrumbs" />
<ng-content select="[tuiHeader]" />
<ng-content />
<ng-content select="tui-tabs,[tuiTabs]" />
`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
PROVIDERS,
tuiButtonOptionsProvider({ appearance: 'secondary', size: 'xs' }),
], styles: ["[tuiSubheader][compact]{top:3rem;z-index:1;block-size:var(--tui-height-m);padding-block-start:.25rem}[tuiSubheader][compact] .t-nav-subheader{position:absolute;top:0;left:0;right:0;display:flex;block-size:inherit;align-items:center;gap:.5rem;font:var(--tui-font-text-s);white-space:nowrap;overflow:hidden;padding:inherit;border-image:linear-gradient(0deg,var(--tui-border-normal) 1px,var(--tui-background-base) 0) fill 0/0/0 100vw}[tuiSubheader][compact] .t-nav-subheader tui-breadcrumbs{flex:1;overflow:hidden}[tuiSubheader][compact] .t-nav-subheader>tui-tabs,[tuiSubheader][compact] .t-nav-subheader>tui-tabs-with-more,[tuiSubheader][compact] .t-nav-subheader>[tuiTabs],[tuiSubheader][compact] .t-nav-subheader>[tuiTabsWithMore]{margin-inline-start:auto;margin-inline-end:1.5rem;border-inline-start:3rem solid transparent;box-shadow:none}[tuiSubheader][compact] .t-nav-subheader tui-tabs:before,[tuiSubheader][compact] .t-nav-subheader tui-tabs-with-more:before,[tuiSubheader][compact] .t-nav-subheader [tuiTabs]:before,[tuiSubheader][compact] .t-nav-subheader [tuiTabsWithMore]:before{background:var(--tui-background-accent-opposite-pressed)}[tuiSubheader]:not([compact]){margin-block-start:.875rem}[tuiSubheader]:not([compact]) [tuiHeader]{margin:1rem 0 .5rem}[tuiSubheader]:not([compact]) [tuiHeader]:first-child{margin-block-start:0}[tuiSubheader]:not([compact]) [tuiHeader] [tuiTitle]{max-inline-size:42rem;margin-inline-end:auto}[tuiSubheader]:not([compact]) [tuiHeader] [tuiSubtitle]{font:var(--tui-font-text-s)}[tuiSubheader]:not([compact]) [tuiHeader] [tuiSubtitle] tui-icon{font-size:1rem}[tuiSubheader]:not([compact]) [tuiHeader]+tui-textfield{margin-block-start:.75rem}[tuiSubheader]:not([compact]) tui-tabs,[tuiSubheader]:not([compact]) [tuiTabs]{margin-block-start:.5rem}[tuiSubheader]:not([compact]) tui-tabs:before,[tuiSubheader]:not([compact]) [tuiTabs]:before{background:var(--tui-background-accent-opposite-pressed)}[tuiSubheader]:not([compact]) tui-tabs [tuiButton],[tuiSubheade