{"version":3,"file":"taiga-ui-addon-doc-components.mjs","sources":["../../../projects/addon-doc/components/api/api.component.ts","../../../projects/addon-doc/components/api/api.template.html","../../../projects/addon-doc/components/documentation/pipes/inspect.pipe.ts","../../../projects/addon-doc/components/documentation/pipes/type-reference.pipe.ts","../../../projects/addon-doc/components/api/api-item-number.directive.ts","../../../projects/addon-doc/components/api/api-item.component.ts","../../../projects/addon-doc/components/api/api-item.template.html","../../../projects/addon-doc/components/code/index.ts","../../../projects/addon-doc/components/code/index.html","../../../projects/addon-doc/components/copy/index.ts","../../../projects/addon-doc/components/copy/index.html","../../../projects/addon-doc/components/demo/index.ts","../../../projects/addon-doc/components/demo/index.html","../../../projects/addon-doc/components/doc-tab/index.ts","../../../projects/addon-doc/components/doc-tab/index.html","../../../projects/addon-doc/components/documentation/documentation-property-connector.directive.ts","../../../projects/addon-doc/components/documentation/pipes/cleaner.pipe.ts","../../../projects/addon-doc/components/documentation/pipes/optional.pipe.ts","../../../projects/addon-doc/components/documentation/pipes/strip-optional.pipe.ts","../../../projects/addon-doc/components/documentation/documentation.component.ts","../../../projects/addon-doc/components/documentation/documentation.template.html","../../../projects/addon-doc/components/documentation/pipes/color.pipe.ts","../../../projects/addon-doc/components/documentation/pipes/opacity.pipe.ts","../../../projects/addon-doc/components/documentation/pipes/primitive-polymorpheus-content.pipe.ts","../../../projects/addon-doc/components/example/example.options.ts","../../../projects/addon-doc/components/example/example-get-tabs.pipe.ts","../../../projects/addon-doc/components/example/example.component.ts","../../../projects/addon-doc/components/example/example.template.html","../../../projects/addon-doc/components/navigation/navigation.providers.ts","../../../projects/addon-doc/components/navigation/scroll-into-view.directive.ts","../../../projects/addon-doc/components/navigation/navigation.component.ts","../../../projects/addon-doc/components/navigation/navigation.template.html","../../../projects/addon-doc/components/internal/header/index.ts","../../../projects/addon-doc/components/internal/header/index.html","../../../projects/addon-doc/components/internal/see-also/index.ts","../../../projects/addon-doc/components/internal/see-also/index.html","../../../projects/addon-doc/components/internal/source-code/source-code.component.ts","../../../projects/addon-doc/components/internal/source-code/source-code.template.html","../../../projects/addon-doc/components/language-switcher/index.ts","../../../projects/addon-doc/components/language-switcher/index.html","../../../projects/addon-doc/components/main/main.component.ts","../../../projects/addon-doc/components/main/main.template.html","../../../projects/addon-doc/components/page/page.providers.ts","../../../projects/addon-doc/components/page/page-tab.directive.ts","../../../projects/addon-doc/components/page/page.component.ts","../../../projects/addon-doc/components/page/page.template.html","../../../projects/addon-doc/components/theme-switcher/theme-switcher.component.ts","../../../projects/addon-doc/components/theme-switcher/theme-switcher.template.html","../../../projects/addon-doc/components/taiga-ui-addon-doc-components.ts"],"sourcesContent":["import {\n    ChangeDetectionStrategy,\n    Component,\n    inject,\n    ViewEncapsulation,\n} from '@angular/core';\nimport {TUI_DOC_DOCUMENTATION_TEXTS} from '@taiga-ui/addon-doc/tokens';\n\n@Component({\n    standalone: true,\n    selector: 'table[tuiDocAPI]',\n    templateUrl: './api.template.html',\n    styleUrls: ['./api.style.less'],\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiDocAPI {\n    protected readonly texts = inject(TUI_DOC_DOCUMENTATION_TEXTS);\n}\n","<thead>\n    <tr>\n        <th>{{ texts[2] }}</th>\n        <th>{{ texts[1] }}</th>\n        <th>{{ texts[3] }}</th>\n    </tr>\n</thead>\n<ng-content />\n","import type {PipeTransform} from '@angular/core';\nimport {inject, Pipe, TemplateRef} from '@angular/core';\nimport {tuiInspectAny} from '@taiga-ui/addon-doc/utils';\nimport {TUI_IS_E2E} from '@taiga-ui/cdk/tokens';\n\n@Pipe({\n    standalone: true,\n    name: 'tuiInspectAny',\n})\nexport class TuiInspectPipe implements PipeTransform {\n    private readonly isE2E = inject(TUI_IS_E2E);\n\n    public transform(value: unknown, depth = 2): string {\n        if (this.isE2E && typeof value === 'function') {\n            /**\n             * @description:\n             * When developing in production mode the webpack bundler minify\n             * functions in different ways, then due to which the string content\n             * of the function may differ from build to build, which can be to\n             * various problems when screenshot testing on e2e.\n             */\n            return 'λ(x) => y';\n        }\n\n        return value instanceof TemplateRef ? 'TemplateRef' : tuiInspectAny(value, depth);\n    }\n}\n","import type {PipeTransform} from '@angular/core';\nimport {inject, Pipe} from '@angular/core';\nimport {\n    TUI_DOC_TYPE_REFERENCE_HANDLER,\n    TUI_DOC_TYPE_REFERENCE_PARSER,\n} from '@taiga-ui/addon-doc/tokens';\n\n@Pipe({\n    standalone: true,\n    name: 'tuiDocTypeReference',\n})\nexport class TuiDocTypeReferencePipe implements PipeTransform {\n    private readonly parser = inject(TUI_DOC_TYPE_REFERENCE_PARSER);\n    private readonly linkHandler = inject(TUI_DOC_TYPE_REFERENCE_HANDLER);\n\n    public transform(original: string): ReadonlyArray<{\n        type: string;\n        extracted: string;\n        reference: string | null;\n    }> {\n        return this.parser(original)\n            .map(({type, extracted}) => ({\n                type,\n                extracted,\n                reference: this.linkHandler?.(extracted) ?? null,\n            }))\n            .sort((a, b) => b.reference?.localeCompare(a.reference ?? '') ?? -1);\n    }\n}\n","import {Directive, Input} from '@angular/core';\n\n@Directive({\n    standalone: true,\n    selector: 'tr[tuiDocAPIItem][type=number]',\n})\nexport class TuiDocAPINumberItem {\n    @Input()\n    public min: number | null = null;\n\n    @Input()\n    public max: number | null = null;\n}\n","import {Location, NgForOf, NgIf, NgSwitch, NgSwitchCase} from '@angular/common';\nimport type {AfterViewInit} from '@angular/core';\nimport {\n    ChangeDetectionStrategy,\n    Component,\n    EventEmitter,\n    inject,\n    Input,\n    Output,\n} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport type {Params} from '@angular/router';\nimport {ActivatedRoute, UrlSerializer} from '@angular/router';\nimport {TUI_DOC_ICONS, TUI_DOC_URL_STATE_HANDLER} from '@taiga-ui/addon-doc/tokens';\nimport {tuiCoerceValue, tuiInspectAny} from '@taiga-ui/addon-doc/utils';\nimport {tuiIsNumber} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiAlertService} from '@taiga-ui/core/components/alert';\nimport {TuiIcon} from '@taiga-ui/core/components/icon';\nimport {TuiTextfield} from '@taiga-ui/core/components/textfield';\nimport {TuiDataListWrapper} from '@taiga-ui/kit/components/data-list-wrapper';\nimport {TuiInputNumber} from '@taiga-ui/kit/components/input-number';\nimport {TuiSwitch} from '@taiga-ui/kit/components/switch';\nimport {TuiChevron} from '@taiga-ui/kit/directives/chevron';\n\nimport {TuiInspectPipe} from '../documentation/pipes/inspect.pipe';\nimport {TuiDocTypeReferencePipe} from '../documentation/pipes/type-reference.pipe';\nimport {TuiDocAPINumberItem} from './api-item-number.directive';\n\nconst SERIALIZED_SUFFIX = '$';\n\n@Component({\n    standalone: true,\n    selector: 'tr[tuiDocAPIItem]',\n    imports: [\n        FormsModule,\n        NgForOf,\n        NgIf,\n        NgSwitch,\n        NgSwitchCase,\n        TuiChevron,\n        TuiDataListWrapper,\n        TuiDocTypeReferencePipe,\n        TuiIcon,\n        TuiInputNumber,\n        TuiInspectPipe,\n        TuiSwitch,\n        TuiTextfield,\n    ],\n    templateUrl: './api-item.template.html',\n    styleUrls: ['./api-item.style.less'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiDocAPIItem<T> implements AfterViewInit {\n    private readonly locationRef = inject(Location);\n    private readonly activatedRoute = inject(ActivatedRoute);\n    private readonly urlSerializer = inject(UrlSerializer);\n    private readonly urlStateHandler = inject(TUI_DOC_URL_STATE_HANDLER);\n    private readonly alerts = inject(TuiAlertService);\n\n    protected readonly icons = inject(TUI_DOC_ICONS);\n\n    protected readonly numberItem = inject(TuiDocAPINumberItem, {\n        self: true,\n        optional: true,\n    });\n\n    @Input()\n    public name = '';\n\n    @Input()\n    public type = '';\n\n    @Input()\n    public value?: T;\n\n    @Input()\n    public items: readonly T[] = [];\n\n    @Output()\n    public readonly valueChange = new EventEmitter<T>();\n\n    public ngAfterViewInit(): void {\n        this.parseParams(this.activatedRoute.snapshot.queryParams);\n    }\n\n    public onValueChange(value: T): void {\n        this.value = value;\n        this.valueChange.emit(value);\n        this.setQueryParam(value);\n    }\n\n    public emitEvent(event: unknown): void {\n        console.info('emitEvent', event);\n\n        const alert =\n            !event || event?.toString() === '[object Object]'\n                ? tuiInspectAny(event, 2)\n                : (event as string);\n\n        this.alerts.open(alert, {label: this.name}).subscribe();\n    }\n\n    private clearBrackets(value: string): string {\n        return value.replaceAll(/[()[\\]]/g, '');\n    }\n\n    private parseParams(params: Params): void {\n        const name = this.clearBrackets(this.name);\n        const propertyValue: string | undefined = params[name];\n        const propertyValueWithSuffix: number | string | undefined =\n            params[`${name}${SERIALIZED_SUFFIX}`];\n\n        if (!propertyValue && !propertyValueWithSuffix) {\n            return;\n        }\n\n        let value =\n            !!propertyValueWithSuffix && this.items\n                ? this.items[propertyValueWithSuffix as number]\n                : tuiCoerceValue(propertyValue);\n\n        if (this.type === 'string' && tuiIsNumber(value)) {\n            value = value.toString();\n        }\n\n        this.onValueChange(value as T);\n    }\n\n    private setQueryParam(value: T | boolean | number | string | null): void {\n        const tree = this.urlSerializer.parse(this.locationRef.path());\n\n        const isValueAvailableByKey = value instanceof Object;\n        const computedValue =\n            isValueAvailableByKey && this.items ? this.items.indexOf(value as T) : value;\n\n        const suffix = isValueAvailableByKey ? SERIALIZED_SUFFIX : '';\n        const propName = this.clearBrackets(this.name) + suffix;\n\n        tree.queryParams = {\n            ...tree.queryParams,\n            [propName]: computedValue,\n        };\n\n        this.locationRef.go(this.urlStateHandler(tree));\n    }\n}\n","<td class=\"t-td\">\n    <code\n        class=\"t-name\"\n        [class.t-name_banana]=\"name.startsWith('[(')\"\n        [class.t-name_input]=\"name.startsWith('[')\"\n        [class.t-name_output]=\"name.startsWith('(')\"\n    >\n        {{ name }}\n    </code>\n    <ng-content />\n</td>\n<td class=\"t-td\">\n    <code class=\"t-type\">\n        <ng-container *ngFor=\"let item of type | tuiDocTypeReference; let last = last\">\n            <a\n                *ngIf=\"item.reference; else default\"\n                target=\"_blank\"\n                class=\"t-reference\"\n                [attr.href]=\"item.reference\"\n            >\n                {{ item.type }}\n                <tui-icon\n                    *ngIf=\"icons.externalLink\"\n                    [icon]=\"icons.externalLink\"\n                    [style.font-size.rem]=\"1\"\n                />\n            </a>\n            <ng-template #default>\n                {{ item.type }}\n            </ng-template>\n            <span *ngIf=\"!last\">&nbsp;|&nbsp;</span>\n        </ng-container>\n    </code>\n</td>\n<td class=\"t-td\">\n    <tui-textfield\n        *ngIf=\"items.length; else noItems\"\n        tuiChevron\n        tuiTextfieldSize=\"m\"\n        class=\"t-input\"\n        [content]=\"content\"\n        [tuiTextfieldCleaner]=\"type.includes('null') || type.includes('PolymorpheusContent')\"\n    >\n        <select\n            placeholder=\"null\"\n            tuiTextfield\n            [ngModel]=\"value ?? null\"\n            (ngModelChange)=\"onValueChange($event)\"\n        ></select>\n        <tui-data-list-wrapper\n            *tuiTextfieldDropdown\n            [itemContent]=\"content\"\n            [items]=\"items\"\n        />\n    </tui-textfield>\n    <ng-template\n        #content\n        let-data\n    >\n        <code [style.margin]=\"0\">{{ data | tuiInspectAny }}</code>\n    </ng-template>\n    <ng-template #noItems>\n        <ng-container\n            *ngIf=\"value !== undefined\"\n            [ngSwitch]=\"type\"\n        >\n            <input\n                *ngSwitchCase=\"'boolean'\"\n                tuiSwitch\n                type=\"checkbox\"\n                [id]=\"name\"\n                [ngModel]=\"value\"\n                (ngModelChange)=\"onValueChange($event)\"\n            />\n\n            <tui-textfield\n                *ngSwitchCase=\"'string'\"\n                tuiTextfieldSize=\"m\"\n                class=\"t-input\"\n            >\n                <input\n                    tuiTextfield\n                    [id]=\"name\"\n                    [ngModel]=\"value || ''\"\n                    (ngModelChange)=\"onValueChange($event)\"\n                />\n            </tui-textfield>\n\n            <tui-textfield\n                *ngSwitchCase=\"'number'\"\n                tuiTextfieldSize=\"m\"\n            >\n                <input\n                    tuiInputNumber\n                    [id]=\"name\"\n                    [max]=\"numberItem?.max ?? null\"\n                    [min]=\"numberItem?.min ?? null\"\n                    [ngModel]=\"value\"\n                    [step]=\"1\"\n                    (ngModelChange)=\"onValueChange($event || 0)\"\n                />\n            </tui-textfield>\n        </ng-container>\n    </ng-template>\n</td>\n","import {ClipboardModule} from '@angular/cdk/clipboard';\nimport {isPlatformServer, NgForOf, NgIf} from '@angular/common';\nimport {\n    ChangeDetectionStrategy,\n    Component,\n    inject,\n    Input,\n    PLATFORM_ID,\n} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {\n    TUI_DOC_EXAMPLE_MARKDOWN_CODE_PROCESSOR,\n    TUI_DOC_ICONS,\n} from '@taiga-ui/addon-doc/tokens';\nimport type {TuiRawLoaderContent} from '@taiga-ui/addon-doc/types';\nimport {tuiRawLoad} from '@taiga-ui/addon-doc/utils';\nimport type {TuiHandler} from '@taiga-ui/cdk/types';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TUI_COPY_TEXTS} from '@taiga-ui/kit/tokens';\nimport {Highlight} from 'ngx-highlightjs';\nimport {BehaviorSubject, map, startWith, Subject, switchMap, timer} from 'rxjs';\n\n@Component({\n    standalone: true,\n    selector: 'tui-doc-code',\n    imports: [ClipboardModule, Highlight, NgForOf, NgIf, TuiButton],\n    templateUrl: './index.html',\n    styleUrls: ['./index.less'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    host: {\n        '[style.visibility]': 'isServer ? \"hidden\" : \"visible\"',\n        '[class._has-filename]': 'hasFilename',\n    },\n})\nexport class TuiDocCode {\n    private readonly icons = inject(TUI_DOC_ICONS);\n    private readonly rawLoader$$ = new BehaviorSubject<TuiRawLoaderContent>('');\n\n    protected readonly isServer = isPlatformServer(inject(PLATFORM_ID));\n\n    protected readonly markdownCodeProcessor: TuiHandler<string, readonly string[]> =\n        inject(TUI_DOC_EXAMPLE_MARKDOWN_CODE_PROCESSOR);\n\n    protected readonly copy$ = new Subject<void>();\n    protected readonly copyText = toSignal(\n        inject(TUI_COPY_TEXTS).pipe(map(([copy]) => copy)),\n    );\n\n    protected readonly icon = toSignal(\n        this.copy$.pipe(\n            switchMap(() =>\n                timer(2000).pipe(\n                    map(() => this.icons.copy),\n                    startWith(this.icons.check),\n                ),\n            ),\n        ),\n        {initialValue: this.icons.copy},\n    );\n\n    protected readonly processor = toSignal(\n        this.rawLoader$$.pipe(\n            switchMap(tuiRawLoad),\n            map((value: string) => this.markdownCodeProcessor(value)),\n        ),\n        {initialValue: []},\n    );\n\n    @Input()\n    public filename = '';\n\n    @Input()\n    public set code(code: TuiRawLoaderContent) {\n        this.rawLoader$$.next(code);\n    }\n\n    public get hasFilename(): boolean {\n        return !!this.filename;\n    }\n}\n","<p\n    *ngIf=\"filename\"\n    class=\"t-header\"\n>\n    {{ filename }}\n</p>\n<pre\n    *ngFor=\"let content of processor()\"\n    class=\"t-code\"\n>\n    <code [lineNumbers]=\"true\" [highlight]=\"content\"></code>\n    <div class=\"t-code-actions\">\n        <button\n            tuiIconButton\n            type=\"button\"\n            appearance=\"outline-grayscale\"\n            size=\"s\"\n            class=\"t-copy-button\"\n            [iconStart]=\"icon()\"\n            [cdkCopyToClipboard]=\"content\"\n            (click)=\"copy$.next()\"\n        >\n            {{ copyText()}}\n        </button>\n        <ng-content />\n    </div>\n</pre>\n","import {NgIf} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, inject} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {TUI_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TUI_COPY_TEXTS} from '@taiga-ui/kit/tokens';\nimport {map, startWith, Subject, switchMap, timer} from 'rxjs';\n\nconst COPIED_TIMEOUT = 1500;\n\n@Component({\n    standalone: true,\n    selector: 'tui-doc-copy',\n    imports: [NgIf, TuiButton],\n    templateUrl: './index.html',\n    styleUrls: ['./index.less'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiDocCopy {\n    private readonly copy$ = new Subject<void>();\n\n    protected readonly texts = toSignal(inject(TUI_COPY_TEXTS), {\n        initialValue: ['', ''] as const,\n    });\n\n    protected readonly copied = toSignal(\n        this.copy$.pipe(\n            switchMap(() =>\n                timer(COPIED_TIMEOUT).pipe(map(TUI_FALSE_HANDLER), startWith(true)),\n            ),\n        ),\n        {initialValue: false},\n    );\n\n    protected onClick(): void {\n        this.copy$.next();\n    }\n}\n","<button\n    appearance=\"\"\n    size=\"s\"\n    tuiButton\n    type=\"button\"\n    class=\"t-copy\"\n    (click)=\"onClick()\"\n>\n    <span class=\"t-content\">\n        <span\n            class=\"t-initial\"\n            [attr.data-text]=\"copied() ? '' : texts()[0]\"\n        >\n            <ng-container *ngIf=\"!copied()\">\n                <ng-content />\n            </ng-container>\n        </span>\n        {{ copied() ? texts()[1] : '' }}\n    </span>\n</button>\n","import {JsonPipe, Location, NgIf, NgTemplateOutlet} from '@angular/common';\nimport type {AfterViewInit, ElementRef} from '@angular/core';\nimport {\n    ChangeDetectionStrategy,\n    Component,\n    computed,\n    ContentChild,\n    inject,\n    Input,\n    signal,\n    TemplateRef,\n    ViewChild,\n} from '@angular/core';\nimport {takeUntilDestroyed, toObservable} from '@angular/core/rxjs-interop';\nimport type {AbstractControl} from '@angular/forms';\nimport {FormGroup, FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport type {Params, UrlTree} from '@angular/router';\nimport {UrlSerializer} from '@angular/router';\nimport {TUI_DOC_DEMO_TEXTS, TUI_DOC_URL_STATE_HANDLER} from '@taiga-ui/addon-doc/tokens';\nimport type {TuiDemoParams} from '@taiga-ui/addon-doc/types';\nimport {tuiCleanObject, tuiCoerceValueIsTrue} from '@taiga-ui/addon-doc/utils';\nimport {TuiResizable, TuiResizer} from '@taiga-ui/cdk/directives/resizer';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiClamp, tuiToInteger} from '@taiga-ui/cdk/utils/math';\nimport {tuiPure, tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TuiExpand} from '@taiga-ui/core/components/expand';\nimport {TuiGroup} from '@taiga-ui/core/directives/group';\nimport {TUI_DARK_MODE} from '@taiga-ui/core/tokens';\nimport {TuiDataListWrapper} from '@taiga-ui/kit/components/data-list-wrapper';\nimport {TuiSwitch} from '@taiga-ui/kit/components/switch';\nimport {TuiChevron} from '@taiga-ui/kit/directives/chevron';\nimport {TuiSelectModule} from '@taiga-ui/legacy/components/select';\nimport {TuiTextfieldControllerModule} from '@taiga-ui/legacy/directives/textfield-controller';\nimport {skip} from 'rxjs';\n\nconst MIN_WIDTH = 160;\n\n@Component({\n    standalone: true,\n    selector: 'tui-doc-demo',\n    imports: [\n        FormsModule,\n        JsonPipe,\n        NgIf,\n        NgTemplateOutlet,\n        ReactiveFormsModule,\n        TuiButton,\n        TuiChevron,\n        TuiDataListWrapper,\n        TuiExpand,\n        TuiGroup,\n        TuiResizable,\n        TuiResizer,\n        TuiSelectModule,\n        TuiSwitch,\n        TuiTextfieldControllerModule,\n    ],\n    templateUrl: './index.html',\n    styleUrls: ['./index.less'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    host: {\n        '[class._sticky]': 'sticky',\n        '(window:resize)': 'onResize()',\n        '(document:mouseup.zoneless)': 'onMouseUp()',\n    },\n})\nexport class TuiDocDemo implements AfterViewInit {\n    @ViewChild(TuiResizable, {static: true})\n    private readonly resizable?: ElementRef<HTMLElement>;\n\n    @ViewChild('content', {static: true})\n    private readonly content?: ElementRef<HTMLElement>;\n\n    @ViewChild('resizer', {static: true})\n    private readonly resizer?: ElementRef<HTMLElement>;\n\n    private readonly el = tuiInjectElement();\n    private readonly locationRef = inject(Location);\n    private readonly urlSerializer = inject(UrlSerializer);\n    private readonly urlStateHandler = inject(TUI_DOC_URL_STATE_HANDLER);\n    private readonly darkMode = inject(TUI_DARK_MODE);\n\n    @ContentChild(TemplateRef)\n    protected readonly template: TemplateRef<Record<string, unknown>> | null = null;\n\n    protected readonly rendered = signal(false);\n\n    protected theme = computed(() => (this.dark() ? 'dark' : 'light'));\n\n    protected dark = signal(\n        tuiCoerceValueIsTrue(this.params.darkMode ?? this.darkMode()),\n    );\n\n    protected readonly $ = toObservable(this.darkMode)\n        .pipe(skip(1), takeUntilDestroyed())\n        .subscribe((mode) => this.onModeChange(mode));\n\n    protected testForm?: FormGroup;\n\n    protected readonly updateOnVariants = ['change', 'blur', 'submit'] as const;\n\n    protected updateOn: 'blur' | 'change' | 'submit' =\n        this.params.updateOn || this.updateOnVariants[0];\n\n    protected opaque = tuiCoerceValueIsTrue(this.params.sandboxOpaque ?? true);\n    protected expanded = tuiCoerceValueIsTrue(this.params.sandboxExpanded ?? false);\n    protected sandboxWidth = tuiToInteger(this.params.sandboxWidth);\n    protected readonly texts = inject(TUI_DOC_DEMO_TEXTS);\n\n    @Input()\n    public control: AbstractControl | null = null;\n\n    @Input()\n    public sticky = true;\n\n    public ngAfterViewInit(): void {\n        this.createForm();\n        this.updateWidth(this.sandboxWidth + this.delta);\n        this.rendered.set(true);\n    }\n\n    protected onResize(): void {\n        this.updateWidth();\n        this.onMouseUp();\n    }\n\n    protected onMouseUp(): void {\n        this.updateUrl({sandboxWidth: this.sandboxWidth});\n    }\n\n    protected onModeChange(darkMode: boolean): void {\n        this.dark.set(darkMode);\n        this.updateUrl({sandboxWidth: this.sandboxWidth, darkMode});\n    }\n\n    protected toggleDetails(): void {\n        this.expanded = !this.expanded;\n        this.updateUrl({sandboxExpanded: this.expanded});\n    }\n\n    protected changeOpaque(opaque: boolean): void {\n        this.opaque = opaque;\n        this.updateUrl({sandboxOpaque: this.opaque});\n    }\n\n    protected updateOnChange(updateOn: 'blur' | 'change' | 'submit'): void {\n        this.updateOn = updateOn;\n        this.updateUrl({updateOn});\n        this.createForm();\n    }\n\n    protected updateWidth(width = NaN): void {\n        if (!this.resizer || !this.resizable || !this.content) {\n            return;\n        }\n\n        const safe = width || this.resizable.nativeElement.clientWidth;\n        const total = this.el.clientWidth;\n        const clamped = Math.round(tuiClamp(safe, MIN_WIDTH, total)) - this.delta;\n        const validated = safe < total ? clamped : NaN;\n\n        this.resizer.nativeElement.textContent = String(clamped || '-');\n        this.resizable.nativeElement.style.width = validated ? tuiPx(safe) : '';\n        this.sandboxWidth = validated;\n    }\n\n    private get delta(): number {\n        return this.resizable && this.content\n            ? this.resizable.nativeElement.clientWidth -\n                  this.content.nativeElement.clientWidth\n            : 0;\n    }\n\n    private get params(): Params | TuiDemoParams {\n        return this.getUrlTree().queryParams;\n    }\n\n    @tuiPure\n    private updateUrl(params: TuiDemoParams): void {\n        const tree = this.getUrlTree();\n        const {queryParams} = tree;\n\n        delete queryParams.sandboxWidth;\n\n        tree.queryParams = {\n            ...queryParams,\n            ...tuiCleanObject({...params}),\n        };\n\n        this.locationRef.go(this.urlStateHandler(tree));\n    }\n\n    private createForm(): void {\n        const {control, updateOn} = this;\n\n        if (control) {\n            this.testForm = new FormGroup({testValue: control}, {updateOn});\n        }\n    }\n\n    private getUrlTree(): UrlTree {\n        return this.urlSerializer.parse(this.locationRef.path());\n    }\n}\n","<div class=\"t-settings\">\n    <label class=\"t-label\">\n        <input\n            size=\"s\"\n            tuiSwitch\n            type=\"checkbox\"\n            [ngModel]=\"dark()\"\n            (ngModelChange)=\"onModeChange($event)\"\n        />\n        {{ texts[0] }}\n    </label>\n    <label class=\"t-label\">\n        <input\n            size=\"s\"\n            tuiSwitch\n            type=\"checkbox\"\n            [ngModel]=\"opaque\"\n            (ngModelChange)=\"changeOpaque($event)\"\n        />\n        {{ texts[1] }}\n    </label>\n</div>\n<div\n    tuiResizable\n    class=\"t-wrapper\"\n    [attr.tuiTheme]=\"theme()\"\n    [class.t-wrapper_transparent]=\"!opaque\"\n    [style.visibility]=\"rendered() ? 'visible' : 'hidden'\"\n>\n    <div class=\"t-content\">\n        <div\n            #content\n            id=\"demo-content\"\n        >\n            <form\n                *ngIf=\"testForm\"\n                class=\"t-form\"\n                [formGroup]=\"testForm\"\n            >\n                <div class=\"t-input-wrapper\">\n                    <ng-container [ngTemplateOutlet]=\"template\" />\n                </div>\n                <button\n                    automation-id=\"tui-demo-button__toggle-details\"\n                    size=\"s\"\n                    tuiButton\n                    type=\"button\"\n                    class=\"t-button\"\n                    [tuiChevron]=\"expanded\"\n                    (click)=\"toggleDetails()\"\n                >\n                    {{ texts[2] }}\n                </button>\n                <tui-expand\n                    class=\"t-expand\"\n                    [expanded]=\"expanded\"\n                >\n                    <ng-template tuiExpandContent>\n                        <pre class=\"t-value\">Form data: {{ testForm.value | json }}</pre>\n                        <div\n                            tuiGroup\n                            class=\"t-form-controls\"\n                        >\n                            <tui-select\n                                automation-id=\"tui-demo-select__expand-update-on\"\n                                tuiTextfieldSize=\"s\"\n                                class=\"t-select\"\n                                [ngModel]=\"updateOn\"\n                                [ngModelOptions]=\"{standalone: true}\"\n                                (ngModelChange)=\"updateOnChange($event)\"\n                            >\n                                updateOn\n                                <tui-data-list-wrapper\n                                    *tuiDataList\n                                    [items]=\"updateOnVariants\"\n                                />\n                            </tui-select>\n                            <button\n                                automation-id=\"tui-demo-button__reset-state\"\n                                size=\"s\"\n                                tuiButton\n                                type=\"reset\"\n                                [style.flex]=\"'0 0 auto'\"\n                            >\n                                Reset\n                            </button>\n                            <button\n                                automation-id=\"tui-demo-button__submit-state\"\n                                size=\"s\"\n                                tuiButton\n                                type=\"submit\"\n                                [style.flex]=\"'0 0 auto'\"\n                            >\n                                Submit\n                            </button>\n                        </div>\n                    </ng-template>\n                </tui-expand>\n            </form>\n            <ng-content />\n        </div>\n    </div>\n    <div\n        #resizer\n        class=\"t-resizer\"\n        [tuiResizer]=\"[1, 0]\"\n        (tuiSizeChange)=\"updateWidth($event[0])\"\n    ></div>\n</div>\n","import {ChangeDetectionStrategy, Component, Input} from '@angular/core';\n\n@Component({\n    standalone: true,\n    selector: 'tui-doc-tab',\n    templateUrl: './index.html',\n    styleUrls: ['./index.less'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiDocTab {\n    @Input()\n    public src = '';\n}\n","<div class=\"t-tab\">\n    <img\n        alt=\"Documentation tab icon\"\n        class=\"t-icon\"\n        [src]=\"src\"\n    />\n    <ng-content />\n</div>\n","import {Location} from '@angular/common';\nimport type {OnChanges, OnInit} from '@angular/core';\nimport {\n    Directive,\n    EventEmitter,\n    inject,\n    Input,\n    Output,\n    signal,\n    TemplateRef,\n} from '@angular/core';\nimport type {Params} from '@angular/router';\nimport {ActivatedRoute, UrlSerializer} from '@angular/router';\nimport {TUI_DOC_URL_STATE_HANDLER} from '@taiga-ui/addon-doc/tokens';\nimport {tuiCleanObject, tuiCoerceValue, tuiInspectAny} from '@taiga-ui/addon-doc/utils';\nimport {tuiIsNumber} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiAlertService} from '@taiga-ui/core/components/alert';\nimport {Subject} from 'rxjs';\n\nconst SERIALIZED_SUFFIX = '$';\n\nexport type TuiDocumentationPropertyType = 'input-output' | 'input' | 'output' | null;\n\n// @bad TODO: refactor output and value sync\n@Directive({\n    standalone: true,\n    selector: 'ng-template[documentationPropertyName]',\n    exportAs: 'documentationProperty',\n})\nexport class TuiDocDocumentationPropertyConnector<T> implements OnInit, OnChanges {\n    private readonly locationRef = inject(Location);\n    private readonly activatedRoute = inject(ActivatedRoute);\n    private readonly urlSerializer = inject(UrlSerializer);\n    private readonly urlStateHandler = inject(TUI_DOC_URL_STATE_HANDLER);\n    private readonly alerts = inject(TuiAlertService);\n\n    @Input()\n    public documentationPropertyName = '';\n\n    @Input()\n    public documentationPropertyMode: TuiDocumentationPropertyType = null;\n\n    @Input()\n    public documentationPropertyType = '';\n\n    @Input()\n    public documentationPropertyValue!: T;\n\n    @Input()\n    public documentationPropertyDeprecated = false;\n\n    @Input()\n    public documentationPropertyValues: readonly T[] | null = null;\n\n    @Output()\n    public readonly documentationPropertyValueChange = new EventEmitter<T>();\n\n    public readonly changed$ = new Subject<void>();\n\n    public readonly emits = signal(1);\n\n    public readonly template = inject(TemplateRef);\n\n    public get attrName(): string {\n        switch (this.documentationPropertyMode) {\n            case 'input':\n                return `[${this.documentationPropertyName}]`;\n            case 'input-output':\n                return `[(${this.documentationPropertyName})]`;\n            case 'output':\n                return `(${this.documentationPropertyName})`;\n            default:\n                return this.documentationPropertyName;\n        }\n    }\n\n    public get shouldShowValues(): boolean {\n        return this.documentationPropertyMode !== 'output';\n    }\n\n    public get hasItems(): boolean {\n        return !!this.documentationPropertyValues;\n    }\n\n    public ngOnInit(): void {\n        this.parseParams(this.activatedRoute.snapshot.queryParams);\n    }\n\n    public ngOnChanges(): void {\n        this.changed$.next();\n    }\n\n    public onValueChange(value: T): void {\n        this.documentationPropertyValue = value;\n        this.documentationPropertyValueChange.emit(value);\n        this.setQueryParam(value);\n    }\n\n    public emitEvent(event: unknown): void {\n        // For more convenient debugging\n        console.info(this.attrName, event);\n\n        this.emits.update((x) => ++x);\n\n        let content: string | undefined;\n\n        if (event !== undefined) {\n            content = tuiInspectAny(event, 2);\n        }\n\n        this.alerts.open(content, {label: this.attrName}).subscribe();\n    }\n\n    private parseParams(params: Params): void {\n        const propertyValue: string | undefined = params[this.documentationPropertyName];\n        const propertyValueWithSuffix: number | string | undefined =\n            params[`${this.documentationPropertyName}${SERIALIZED_SUFFIX}`];\n\n        if (!propertyValue && !propertyValueWithSuffix) {\n            return;\n        }\n\n        let value =\n            !!propertyValueWithSuffix && this.documentationPropertyValues\n                ? this.documentationPropertyValues[propertyValueWithSuffix as number]\n                : tuiCoerceValue(propertyValue);\n\n        if (this.documentationPropertyType === 'string' && tuiIsNumber(value)) {\n            value = value.toString();\n        }\n\n        this.onValueChange(value as T);\n    }\n\n    private setQueryParam(value: unknown): void {\n        const tree = this.urlSerializer.parse(this.locationRef.path());\n        const isValueAvailableByKey = value instanceof Object;\n        const name = this.documentationPropertyName;\n        const nameWithSuffix = `${name}${SERIALIZED_SUFFIX}`;\n\n        const computedValue =\n            isValueAvailableByKey && this.documentationPropertyValues\n                ? this.documentationPropertyValues.indexOf(value as T)\n                : value;\n\n        tree.queryParams = tuiCleanObject({\n            ...tree.queryParams,\n            /**\n             * Caretaker note: reset previous conflicted param in route\n             * issue: https://github.com/taiga-family/taiga-ui/issues/9764\n             */\n            ...(isValueAvailableByKey\n                ? {\n                      [nameWithSuffix]: computedValue,\n                      [name]: undefined,\n                  }\n                : {\n                      [nameWithSuffix]: undefined,\n                      [name]: computedValue,\n                  }),\n        });\n\n        this.locationRef.go(this.urlStateHandler(tree));\n    }\n}\n","import type {PipeTransform} from '@angular/core';\nimport {Pipe} from '@angular/core';\n\n@Pipe({\n    standalone: true,\n    name: 'tuiShowCleanerPipe',\n})\nexport class TuiShowCleanerPipe implements PipeTransform {\n    public transform(type: string): boolean {\n        return type.includes('null');\n    }\n}\n","import type {PipeTransform} from '@angular/core';\nimport {Pipe} from '@angular/core';\n\n@Pipe({\n    standalone: true,\n    name: 'tuiIsOptionalPipe',\n})\nexport class TuiIsOptionalPipe implements PipeTransform {\n    public transform(name: string): boolean {\n        return name.includes('?');\n    }\n}\n","import type {PipeTransform} from '@angular/core';\nimport {Pipe} from '@angular/core';\n\n@Pipe({\n    standalone: true,\n    name: 'tuiStripOptionalPipe',\n})\nexport class TuiStripOptionalPipe implements PipeTransform {\n    public transform(name: string): string {\n        return name.replace('?', '');\n    }\n}\n","import {animate, style, transition, trigger} from '@angular/animations';\nimport {NgForOf, NgIf, NgSwitch, NgSwitchCase, NgTemplateOutlet} from '@angular/common';\nimport type {AfterContentInit, QueryList} from '@angular/core';\nimport {\n    ChangeDetectionStrategy,\n    ChangeDetectorRef,\n    Component,\n    ContentChildren,\n    DestroyRef,\n    inject,\n    Input,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {FormsModule} from '@angular/forms';\nimport {\n    TUI_DOC_DOCUMENTATION_TEXTS,\n    TUI_DOC_EXCLUDED_PROPERTIES,\n} from '@taiga-ui/addon-doc/tokens';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {tuiQueryListChanges, tuiWatch} from '@taiga-ui/cdk/observables';\nimport {TuiFilterPipe} from '@taiga-ui/cdk/pipes/filter';\nimport {TuiToArrayPipe} from '@taiga-ui/cdk/pipes/to-array';\nimport type {TuiMatcher} from '@taiga-ui/cdk/types';\nimport {TuiNotification} from '@taiga-ui/core/components/notification';\nimport {tuiScrollbarOptionsProvider} from '@taiga-ui/core/components/scrollbar';\nimport {TuiTextfield} from '@taiga-ui/core/components/textfield';\nimport {TuiDropdown} from '@taiga-ui/core/directives/dropdown';\nimport {TuiBadge} from '@taiga-ui/kit/components/badge';\nimport {TuiDataListWrapper} from '@taiga-ui/kit/components/data-list-wrapper';\nimport {TuiInputNumber} from '@taiga-ui/kit/components/input-number';\nimport {TuiSwitch} from '@taiga-ui/kit/components/switch';\nimport {TuiSelectModule} from '@taiga-ui/legacy/components/select';\nimport {TuiTextfieldControllerModule} from '@taiga-ui/legacy/directives/textfield-controller';\nimport {merge, switchMap} from 'rxjs';\n\nimport {TuiDocDocumentationPropertyConnector} from './documentation-property-connector.directive';\nimport {TuiShowCleanerPipe} from './pipes/cleaner.pipe';\nimport {TuiInspectPipe} from './pipes/inspect.pipe';\nimport {TuiIsOptionalPipe} from './pipes/optional.pipe';\nimport {TuiStripOptionalPipe} from './pipes/strip-optional.pipe';\nimport {TuiDocTypeReferencePipe} from './pipes/type-reference.pipe';\n\n// @bad TODO subscribe propertiesConnectors changes\n// @bad TODO refactor to make more flexible\n@Component({\n    standalone: true,\n    selector: 'tui-doc-documentation',\n    imports: [\n        FormsModule,\n        NgForOf,\n        NgIf,\n        NgSwitch,\n        NgSwitchCase,\n        NgTemplateOutlet,\n        TuiBadge,\n        TuiDataListWrapper,\n        TuiDocTypeReferencePipe,\n        TuiDropdown,\n        TuiFilterPipe,\n        TuiInputNumber,\n        TuiInspectPipe,\n        TuiIsOptionalPipe,\n        TuiNotification,\n        TuiSelectModule,\n        TuiShowCleanerPipe,\n        TuiStripOptionalPipe,\n        TuiSwitch,\n        TuiTextfield,\n        TuiTextfieldControllerModule,\n        TuiToArrayPipe,\n    ],\n    templateUrl: './documentation.template.html',\n    styleUrls: ['./documentation.style.less'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    providers: [tuiScrollbarOptionsProvider({mode: 'hover'})],\n    animations: [\n        trigger('emitEvent', [\n            transition(':increment', [style({opacity: 1}), animate('500ms ease-in')]),\n        ]),\n    ],\n})\nexport class TuiDocDocumentation implements AfterContentInit {\n    private readonly cdr = inject(ChangeDetectorRef);\n    private readonly destroyRef = inject(DestroyRef);\n\n    @ContentChildren(TuiDocDocumentationPropertyConnector)\n    protected propertiesConnectors: QueryList<\n        TuiDocDocumentationPropertyConnector<unknown>\n    > = EMPTY_QUERY;\n\n    protected readonly texts = inject(TUI_DOC_DOCUMENTATION_TEXTS);\n    protected readonly excludedProperties = inject(TUI_DOC_EXCLUDED_PROPERTIES);\n    protected activeItemIndex = 0;\n\n    @Input()\n    public heading = '';\n\n    @Input()\n    public showValues = true;\n\n    @Input()\n    public isAPI = false;\n\n    public ngAfterContentInit(): void {\n        tuiQueryListChanges(this.propertiesConnectors)\n            .pipe(\n                switchMap((items) => merge(...items.map(({changed$}) => changed$))),\n                tuiWatch(this.cdr),\n                takeUntilDestroyed(this.destroyRef),\n            )\n            .subscribe();\n    }\n\n    protected get type(): string {\n        return this.isAPI ? this.texts[0] : this.texts[1];\n    }\n\n    protected matcher: TuiMatcher<\n        [TuiDocDocumentationPropertyConnector<unknown>, Set<string>]\n    > = (item, exclusions) => !exclusions.has(item.documentationPropertyName);\n}\n","<h1\n    *ngIf=\"heading\"\n    class=\"t-heading\"\n>\n    {{ heading }}\n</h1>\n<ng-content />\n<ng-container *ngIf=\"propertiesConnectors | tuiToArray | tuiFilter: matcher : excludedProperties as properties\">\n    <table\n        *ngIf=\"properties.length\"\n        class=\"t-table\"\n    >\n        <tr class=\"t-row t-row_header\">\n            <th class=\"t-th t-cell t-cell_prop\">{{ texts[2] }}</th>\n            <th class=\"t-th\">{{ type }}</th>\n            <th\n                *ngIf=\"showValues && !isAPI\"\n                class=\"t-th t-cell t-th_value\"\n            >\n                {{ texts[3] }}\n            </th>\n        </tr>\n        <tr\n            *ngFor=\"let propertyConnector of properties\"\n            class=\"t-row\"\n            [class.t-deprecated]=\"propertyConnector.documentationPropertyDeprecated\"\n        >\n            <td class=\"t-cell t-no-overflow\">\n                <div\n                    automation-id=\"tui-documentation__property-name\"\n                    class=\"t-property t-additional-info\"\n                >\n                    <code\n                        *ngIf=\"propertyConnector.attrName\"\n                        class=\"t-property-code\"\n                        [style.color]=\"'var(--tui-background-accent-2-pressed)'\"\n                    >\n                        {{ propertyConnector.attrName | tuiStripOptionalPipe }}\n                    </code>\n                    <tui-badge\n                        *ngIf=\"propertyConnector.attrName | tuiIsOptionalPipe\"\n                        appearance=\"neutral\"\n                        size=\"s\"\n                    >\n                        Optional\n                    </tui-badge>\n                    <tui-badge\n                        *ngIf=\"propertyConnector.documentationPropertyDeprecated\"\n                        appearance=\"negative\"\n                        size=\"s\"\n                    >\n                        Deprecated\n                    </tui-badge>\n                </div>\n                <ng-container [ngTemplateOutlet]=\"propertyConnector.template\" />\n            </td>\n            <td class=\"t-cell t-no-overflow\">\n                <span class=\"type\">\n                    <code class=\"t-code-type\">\n                        <ng-container\n                            *ngFor=\"\n                                let item of propertyConnector.documentationPropertyType | tuiDocTypeReference;\n                                let last = last\n                            \"\n                        >\n                            <a\n                                *ngIf=\"item.reference; else default\"\n                                target=\"_blank\"\n                                class=\"t-code-reference\"\n                                [attr.href]=\"item.reference\"\n                            >\n                                {{ item.type }}\n                            </a>\n                            <ng-template #default>\n                                {{ item.type }}\n                            </ng-template>\n                            <span *ngIf=\"!last\">&nbsp;|&nbsp;</span>\n                        </ng-container>\n                    </code>\n                </span>\n            </td>\n            <td\n                *ngIf=\"showValues\"\n                class=\"t-cell t-cell_value\"\n            >\n                <ng-container *ngIf=\"propertyConnector.shouldShowValues; else elseEmitter\">\n                    <tui-select\n                        *ngIf=\"propertyConnector.hasItems; else noItems\"\n                        tuiDropdownLimitWidth=\"min\"\n                        tuiTextfieldSize=\"m\"\n                        [nativeId]=\"propertyConnector.attrName\"\n                        [ngModel]=\"propertyConnector.documentationPropertyValue\"\n                        [tuiTextfieldCleaner]=\"propertyConnector.documentationPropertyType | tuiShowCleanerPipe\"\n                        [tuiTextfieldLabelOutside]=\"true\"\n                        [valueContent]=\"selectContent\"\n                        (ngModelChange)=\"propertyConnector.onValueChange($event)\"\n                    >\n                        <code class=\"t-exception\">null</code>\n                        <tui-data-list-wrapper\n                            *tuiDataList\n                            class=\"t-data-list\"\n                            [itemContent]=\"selectContent\"\n                            [items]=\"propertyConnector.documentationPropertyValues\"\n                        />\n                    </tui-select>\n                    <ng-template\n                        #selectContent\n                        let-data\n                    >\n                        <code>{{ data | tuiInspectAny }}</code>\n                    </ng-template>\n\n                    <ng-template #noItems>\n                        <ng-container [ngSwitch]=\"propertyConnector.documentationPropertyType\">\n                            <input\n                                *ngSwitchCase=\"'boolean'\"\n                                tuiSwitch\n                                type=\"checkbox\"\n                                class=\"t-switch\"\n                                [id]=\"propertyConnector.attrName\"\n                                [ngModel]=\"propertyConnector.documentationPropertyValue\"\n                                [showIcons]=\"true\"\n                                (ngModelChange)=\"propertyConnector.onValueChange($event)\"\n                            />\n\n                            <tui-textfield\n                                *ngSwitchCase=\"'string'\"\n                                tuiTextfieldSize=\"m\"\n                            >\n                                <input\n                                    tuiTextfield\n                                    [id]=\"propertyConnector.attrName\"\n                                    [ngModel]=\"propertyConnector.documentationPropertyValue || ''\"\n                                    (ngModelChange)=\"propertyConnector.onValueChange($event)\"\n                                />\n                            </tui-textfield>\n\n                            <tui-textfield\n                                *ngSwitchCase=\"'number'\"\n                                tuiTextfieldSize=\"m\"\n                            >\n                                <input\n                                    tuiInputNumber\n                                    [id]=\"propertyConnector.attrName\"\n                                    [ngModel]=\"propertyConnector.documentationPropertyValue\"\n                                    [step]=\"1\"\n                                    (ngModelChange)=\"propertyConnector.onValueChange($event || 0)\"\n                                />\n                            </tui-textfield>\n                        </ng-container>\n                    </ng-template>\n                </ng-container>\n\n                <ng-template #elseEmitter>\n                    <tui-notification\n                        class=\"t-output\"\n                        [@emitEvent]=\"propertyConnector.emits()\"\n                    >\n                        Emit!\n                    </tui-notification>\n                </ng-template>\n            </td>\n        </tr>\n    </table>\n</ng-container>\n","import type {PipeTransform} from '@angular/core';\nimport {Pipe} from '@angular/core';\nimport {tuiRgbToHex} from '@taiga-ui/cdk/utils/color';\n\n@Pipe({\n    standalone: true,\n    name: 'tuiGetColorPipe',\n})\nexport class TuiGetColorPipe implements PipeTransform {\n    public transform(color: string): string {\n        if (color.length === 4) {\n            return color\n                .split('')\n                .reduce<string[]>((result, current) => [...result, current, current], [])\n                .join('')\n                .replace('#', '');\n        }\n\n        if (color.startsWith('#')) {\n            return color;\n        }\n\n        if (color === 'transparent') {\n            return '#000000';\n        }\n\n        const parsed = color\n            .replace('rgb(', '')\n            .replace('rgba(', '')\n            .replace(')', '')\n            .replace(' ', '')\n            .split(',')\n            .map((v) => Number.parseInt(v, 10)) as [number, number, number];\n\n        return tuiRgbToHex(...parsed);\n    }\n}\n","import type {PipeTransform} from '@angular/core';\nimport {Pipe} from '@angular/core';\n\n@Pipe({\n    standalone: true,\n    name: 'tuiGetOpacity',\n})\nexport class TuiGetOpacityPipe implements PipeTransform {\n    public transform(color: string): number {\n        if (color.startsWith('#') || color.startsWith('rgb(')) {\n            return 100;\n        }\n\n        if (color === 'transparent') {\n            return 0;\n        }\n\n        const lastComma = color.lastIndexOf(',');\n        const parsed = color\n            .slice(lastComma)\n            .replace(')', '')\n            .replace(' ', '')\n            .replace(',', '');\n\n        return Math.round(Number.parseFloat(parsed) * 100);\n    }\n}\n","import type {PipeTransform} from '@angular/core';\nimport {Pipe} from '@angular/core';\nimport {tuiIsNumber, tuiIsString} from '@taiga-ui/cdk/utils/miscellaneous';\n\n@Pipe({\n    standalone: true,\n    name: 'tuiIsPrimitivePolymorpheusContentPipe',\n})\nexport class TuiIsPrimitivePolymorpheusContentPipe implements PipeTransform {\n    public transform(value: unknown): boolean {\n        return tuiIsString(value) || tuiIsNumber(value);\n    }\n}\n","import type {Provider} from '@angular/core';\nimport {InjectionToken} from '@angular/core';\nimport {TUI_EXAMPLE_PRIMARY_FILE_NAME} from '@taiga-ui/addon-doc/types';\nimport type {TuiBooleanHandler} from '@taiga-ui/cdk/types';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\nexport interface TuiDocExampleOptions {\n    codeEditorVisibilityHandler: TuiBooleanHandler<Record<string, string>>;\n    fullsize: boolean;\n    tabTitles: Map<unknown, PolymorpheusContent>;\n}\n\nexport const TUI_DOC_EXAMPLE_DEFAULT_OPTIONS: TuiDocExampleOptions = {\n    codeEditorVisibilityHandler: (files) =>\n        Boolean(\n            files[TUI_EXAMPLE_PRIMARY_FILE_NAME.TS] &&\n                files[TUI_EXAMPLE_PRIMARY_FILE_NAME.HTML],\n        ),\n    tabTitles: new Map(),\n    fullsize: true,\n};\n\n/**\n * Default parameters for DocExample component\n */\nexport const TUI_DOC_EXAMPLE_OPTIONS = new InjectionToken(\n    ngDevMode ? 'TUI_DOC_EXAMPLE_OPTIONS' : '',\n    {\n        factory: () => TUI_DOC_EXAMPLE_DEFAULT_OPTIONS,\n    },\n);\n\nexport function tuiDocExampleOptionsProvider(\n    options: Partial<TuiDocExampleOptions>,\n): Provider {\n    return tuiProvideOptions(\n        TUI_DOC_EXAMPLE_OPTIONS,\n        options,\n        TUI_DOC_EXAMPLE_DEFAULT_OPTIONS,\n    );\n}\n","import type {PipeTransform} from '@angular/core';\nimport {Pipe} from '@angular/core';\n\n@Pipe({\n    standalone: true,\n    name: 'tuiDocExampleGetTabs',\n})\nexport class TuiDocExampleGetTabsPipe implements PipeTransform {\n    public transform(content: Record<string, string>, defaultTab: string): string[] {\n        return [defaultTab, ...Object.keys(content).filter((tab) => content[tab])];\n    }\n}\n","import {Clipboard} from '@angular/cdk/clipboard';\nimport {DOCUMENT, NgForOf, NgIf} from '@angular/common';\nimport type {Type} from '@angular/core';\nimport {ChangeDetectionStrategy, Component, inject, Input, signal} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {ActivatedRoute, RouterLink, RouterLinkActive} from '@angular/router';\nimport {WA_LOCATION} from '@ng-web-apis/common';\nimport {\n    TUI_DOC_CODE_ACTIONS,\n    TUI_DOC_CODE_EDITOR,\n    TUI_DOC_EXAMPLE_CONTENT_PROCESSOR,\n    TUI_DOC_EXAMPLE_TEXTS,\n    TUI_DOC_ICONS,\n} from '@taiga-ui/addon-doc/tokens';\nimport type {TuiRawLoaderContent} from '@taiga-ui/addon-doc/types';\nimport {tuiRawLoadRecord} from '@taiga-ui/addon-doc/utils';\nimport {TuiLet} from '@taiga-ui/cdk/directives/let';\nimport {TuiMapperPipe} from '@taiga-ui/cdk/pipes/mapper';\nimport type {TuiContext} from '@taiga-ui/cdk/types';\nimport {TuiAlertService} from '@taiga-ui/core/components/alert';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TuiFullscreen} from '@taiga-ui/core/components/fullscreen';\nimport {TuiLink} from '@taiga-ui/core/components/link';\nimport {TuiLoader} from '@taiga-ui/core/components/loader';\nimport {TuiTabs} from '@taiga-ui/kit/components/tabs';\nimport {TUI_COPY_TEXTS} from '@taiga-ui/kit/tokens';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport {PolymorpheusComponent, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\nimport {BehaviorSubject, map, ReplaySubject, switchAll, switchMap} from 'rxjs';\n\nimport {TuiDocCode} from '../code';\nimport {TUI_DOC_EXAMPLE_OPTIONS} from './example.options';\nimport {TuiDocExampleGetTabsPipe} from './example-get-tabs.pipe';\n\n@Component({\n    standalone: true,\n    selector: 'tui-doc-example',\n    imports: [\n        NgForOf,\n        NgIf,\n        PolymorpheusOutlet,\n        RouterLink,\n        RouterLinkActive,\n        TuiButton,\n        TuiDocCode,\n        TuiDocExampleGetTabsPipe,\n        TuiFullscreen,\n        TuiLet,\n        TuiLink,\n        TuiLoader,\n        TuiMapperPipe,\n        TuiTabs,\n    ],\n    templateUrl: './example.template.html',\n    styleUrls: ['./example.style.less'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    host: {\n        '[attr.id]': 'id',\n        '[class._fullsize]': 'fullsize',\n    },\n})\nexport class TuiDocExample {\n    private readonly clipboard = inject(Clipboard);\n    private readonly alerts = inject(TuiAlertService);\n    private readonly location = inject(WA_LOCATION);\n    private readonly copyTexts$ = inject(TUI_COPY_TEXTS);\n    private readonly processContent = inject(TUI_DOC_EXAMPLE_CONTENT_PROCESSOR);\n\n    private readonly rawLoader$$ = new BehaviorSubject<\n        Record<string, TuiRawLoaderContent>\n    >({});\n\n    private readonly lazyLoader$$ = new ReplaySubject<\n        Promise<{readonly default: Type<unknown>}>\n    >(1);\n\n    protected readonly fullscreenEnabled = inject(DOCUMENT).fullscreenEnabled;\n    protected readonly icons = inject(TUI_DOC_ICONS);\n    protected readonly options = inject(TUI_DOC_EXAMPLE_OPTIONS);\n    protected readonly texts = inject(TUI_DOC_EXAMPLE_TEXTS);\n    protected readonly codeEditor = inject(TUI_DOC_CODE_EDITOR, {optional: true});\n    protected readonly codeActions =\n        inject<ReadonlyArray<PolymorpheusContent<TuiContext<string>>>>(\n            TUI_DOC_CODE_ACTIONS,\n        );\n\n    protected readonly route = inject(ActivatedRoute);\n\n    protected readonly defaultTabIndex = 0;\n    protected readonly defaultTab = this.texts[this.defaultTabIndex];\n    protected activeItemIndex = this.defaultTabIndex;\n    protected fullscreen = false;\n\n    protected readonly copy = toSignal(this.copyTexts$.pipe(map(([copy]) => copy)), {\n        initialValue: '',\n    });\n\n    protected readonly loading = signal(false);\n\n    protected readonly processor = toSignal(\n        this.rawLoader$$.pipe(\n            switchMap(tuiRawLoadRecord),\n            map((value) => this.processContent(value)),\n        ),\n        {initialValue: {} as unknown as Record<string, string>},\n    );\n\n    protected readonly lazyComponent = toSignal(\n        this.lazyLoader$$.pipe(\n            switchAll(),\n            map((module) => new PolymorpheusComponent(module.default)),\n        ),\n    );\n\n    @Input()\n    public id: string | null = null;\n\n    @Input()\n    public heading: PolymorpheusContent;\n\n    @Input()\n    public description: PolymorpheusContent;\n\n    @Input()\n    public fullsize = inject(TUI_DOC_EXAMPLE_OPTIONS).fullsize;\n\n    @Input()\n    public componentName: string = this.location.pathname.slice(1);\n\n    @Input()\n    public set content(content: Record<string, TuiRawLoaderContent>) {\n        this.rawLoader$$.next(content);\n    }\n\n    @Input()\n    public set component(content: Promise<{readonly default: Type<unknown>}>) {\n        this.lazyLoader$$.next(content);\n    }\n\n    protected readonly visible = (files: Record<string, string>): boolean =>\n        Boolean(this.codeEditor && this.options.codeEditorVisibilityHandler(files));\n\n    protected getTabTitle(fileName: string): PolymorpheusContent {\n        return this.options.tabTitles.get(fileName) || fileName;\n    }\n\n    protected copyExampleLink(target: EventTarget | null): void {\n        this.clipboard.copy((target as HTMLAnchorElement | null)?.href ?? '');\n        this.alerts\n            .open(this.texts[1], {label: this.texts[2], appearance: 'positive'})\n            .subscribe();\n    }\n\n    protected edit(files: Record<string, string>): void {\n        this.loading.set(true);\n        this.codeEditor\n            ?.edit(this.componentName, this.id || '', files)\n            .finally(() => this.loading.set(false));\n    }\n}\n","<div class=\"t-title-block\">\n    <h2\n        *ngIf=\"heading\"\n        class=\"t-title\"\n    >\n        <span\n            *polymorpheusOutlet=\"heading as text\"\n            [textContent]=\"text\"\n        ></span>\n    </h2>\n    <a\n        *ngIf=\"id\"\n        routerLink=\".\"\n        routerLinkActive=\"t-link-active\"\n        tuiLink\n        type=\"button\"\n        class=\"t-link\"\n        [attr.title]=\"copy()\"\n        [fragment]=\"id\"\n        [relativeTo]=\"route.firstChild ?? route\"\n        [routerLinkActiveOptions]=\"{matrixParams: 'exact', queryParams: 'exact', paths: 'exact', fragment: 'exact'}\"\n        (click)=\"copyExampleLink($event.currentTarget)\"\n    >\n        #\n    </a>\n</div>\n<h3\n    *ngIf=\"description\"\n    class=\"t-description\"\n>\n    <ng-container *polymorpheusOutlet=\"description as text\">\n        {{ text }}\n    </ng-container>\n</h3>\n\n<div\n    class=\"t-example\"\n    [(tuiFullscreen)]=\"fullscreen\"\n>\n    <ng-container *ngIf=\"processor() | tuiDocExampleGetTabs: defaultTab as tabs\">\n        <div\n            *ngIf=\"tabs.length > 1\"\n            class=\"t-tabs-wrapper\"\n        >\n            <tui-tabs-with-more\n                class=\"t-tabs\"\n                [(activeItemIndex)]=\"activeItemIndex\"\n            >\n                <ng-container *ngFor=\"let tab of tabs\">\n                    <button\n                        *tuiItem\n                        tuiTab\n                        type=\"button\"\n                    >\n                        <ng-container *polymorpheusOutlet=\"getTabTitle(tab) as text\">\n                            {{ text }}\n                        </ng-container>\n                    </button>\n                </ng-container>\n            </tui-tabs-with-more>\n\n            <tui-loader\n                *ngIf=\"processor() | tuiMapper: visible\"\n                size=\"xs\"\n                class=\"t-code-editor\"\n                [overlay]=\"true\"\n                [showLoader]=\"loading()\"\n                (click)=\"edit(processor())\"\n            >\n                <ng-container *ngIf=\"codeEditor?.content as content; else defaultEditContent\">\n                    <ng-container *polymorpheusOutlet=\"content as editContent\">\n                        {{ editContent }}\n                    </ng-container>\n                </ng-container>\n\n                <ng-template #defaultEditContent>\n                    <button\n                        appearance=\"flat\"\n                        size=\"s\"\n                        tuiButton\n                        type=\"button\"\n                    >\n                        Edit on {{ codeEditor!.name }}\n                    </button>\n                </ng-template>\n            </tui-loader>\n\n            <button\n                *ngIf=\"fullscreenEnabled\"\n                appearance=\"flat\"\n                size=\"xs\"\n                tuiIconButton\n                type=\"button\"\n                [iconStart]=\"fullscreen ? icons.shrink : icons.expand\"\n                (click)=\"fullscreen = !fullscreen\"\n            >\n                Fullscreen\n            </button>\n        </div>\n\n        <div\n            *ngFor=\"let tab of tabs; let index = index\"\n            class=\"t-content\"\n        >\n            <section\n                *ngIf=\"index === defaultTabIndex\"\n                automation-id=\"tui-doc-example\"\n                class=\"t-demo\"\n                [style.display]=\"activeItemIndex === index && index === defaultTabIndex ? 'block' : 'none'\"\n            >\n                <ng-content />\n                <ng-container *polymorpheusOutlet=\"lazyComponent() as text\">\n                    {{ text }}\n                </ng-container>\n            </section>\n\n            <tui-doc-code\n                *tuiLet=\"processor()[tabs[index] || 0] || '' as code\"\n                [code]=\"code\"\n                [style.display]=\"activeItemIndex === index && index !== defaultTabIndex ? 'block' : 'none'\"\n            >\n                <ng-container *ngFor=\"let action of codeActions\">\n                    <ng-container *polymorpheusOutlet=\"action as text; context: {$implicit: code}\">\n                        {{ text }}\n                    </ng-container>\n                </ng-container>\n            </tui-doc-code>\n        </div>\n    </ng-container>\n</div>\n","import type {Provider} from '@angular/core';\nimport {InjectionToken} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport type {Event} from '@angular/router';\nimport {ActivatedRoute, NavigationEnd, Router, Scroll} from '@angular/router';\nimport {TUI_DOC_PAGES, TUI_DOC_TITLE} from '@taiga-ui/addon-doc/tokens';\nimport type {TuiDocRoutePages} from '@taiga-ui/addon-doc/types';\nimport {tuiAutoFocusOptionsProvider} from '@taiga-ui/cdk/directives/auto-focus';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {tuiLinkOptionsProvider} from '@taiga-ui/core/components/link';\nimport {tuiScrollbarOptionsProvider} from '@taiga-ui/core/components/scrollbar';\nimport type {Observable} from 'rxjs';\nimport {filter, map, mergeMap} from 'rxjs';\n\nfunction labelsProviderFactory(pages: TuiDocRoutePages): readonly string[] {\n    return pages\n        .map(({section}) => section)\n        .filter(tuiIsPresent)\n        .filter((item, index, array) => array.indexOf(item) === index);\n}\n\n/**\n * Page title\n */\nexport const NAVIGATION_TITLE = new InjectionToken<Observable<string>>(\n    ngDevMode ? 'NAVIGATION_TITLE' : '',\n);\n\n/**\n * Navigation sections labels for search\n */\nexport const NAVIGATION_LABELS = new InjectionToken<readonly string[]>(\n    ngDevMode ? 'NAVIGATION_LABELS' : '',\n);\n\n/**\n * Navigation pages\n */\nexport const NAVIGATION_ITEMS = new InjectionToken<readonly TuiDocRoutePages[]>(\n    ngDevMode ? 'NAVIGATION_ITEMS' : '',\n);\n\nexport const NAVIGATION_PROVIDERS: Provider[] = [\n    tuiAutoFocusOptionsProvider({preventScroll: true}),\n    tuiLinkOptionsProvider({appearance: 'action-grayscale'}),\n    {\n        provide: NAVIGATION_TITLE,\n        deps: [Router, ActivatedRoute, TUI_DOC_TITLE],\n        useFactory: (\n            router: Router,\n            activatedRoute: ActivatedRoute,\n            titlePrefix: string,\n        ): Observable<string> =>\n            router.events.pipe(\n                filter(\n                    (event: Event) =>\n                        event instanceof NavigationEnd ||\n                        (event instanceof Scroll\n                            ? event.routerEvent instanceof NavigationEnd\n                            : false),\n                ),\n                map(() => activatedRoute.firstChild),\n                filter(tuiIsPresent),\n                mergeMap(({data}) => data),\n                map(({title}) => `${titlePrefix}${title}`),\n                takeUntilDestroyed(),\n            ),\n    },\n    {\n        provide: NAVIGATION_LABELS,\n        deps: [TUI_DOC_PAGES],\n        useFactory: labelsProviderFactory,\n    },\n    {\n        provide: NAVIGATION_ITEMS,\n        deps: [TUI_DOC_PAGES],\n        useFactory: (pages: TuiDocRoutePages): readonly TuiDocRoutePages[] => {\n            const labels = labelsProviderFactory(pages);\n\n            return [\n                ...labels.map((label) => pages.filter(({section}) => section === label)),\n                pages.filter((page) => !page.section),\n            ];\n        },\n    },\n    tuiScrollbarOptionsProvider({\n        mode: 'hover',\n    }),\n];\n","import {Directive, inject, Input} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {TUI_DOC_PAGE_LOADED} from '@taiga-ui/addon-doc/tokens';\nimport {tuiZonefreeScheduler} from '@taiga-ui/cdk/observables';\nimport {tuiGetElementObscures, tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {debounceTime, filter, ReplaySubject, switchMap, take} from 'rxjs';\n\n@Directive({\n    standalone: true,\n    selector: '[tuiDocScrollIntoViewLink]',\n})\nexport class TuiDocScrollIntoViewLink {\n    private readonly scroll$ = new ReplaySubject<boolean>(1);\n    private readonly el = tuiInjectElement();\n\n    protected readonly sub = inject(TUI_DOC_PAGE_LOADED)\n        .pipe(\n            filter(Boolean),\n            take(1),\n            switchMap(() => this.scroll$),\n            debounceTime(750, tuiZonefreeScheduler()),\n            filter((shallWe) => shallWe && !!tuiGetElementObscures(this.el)),\n            takeUntilDestroyed(),\n        )\n        .subscribe(() => this.el.scrollIntoView());\n\n    @Input()\n    public set tuiDocScrollIntoViewLink(shallWe: boolean) {\n        this.scroll$.next(shallWe);\n    }\n}\n","import {DOCUMENT, NgForOf, NgIf, NgTemplateOutlet} from '@angular/common';\nimport {\n    ChangeDetectionStrategy,\n    Component,\n    ElementRef,\n    inject,\n    signal,\n    ViewChild,\n} from '@angular/core';\nimport {takeUntilDestroyed, toSignal} from '@angular/core/rxjs-interop';\nimport {FormControl, ReactiveFormsModule} from '@angular/forms';\nimport {Title} from '@angular/platform-browser';\nimport {Router, RouterLink, RouterLinkActive, Scroll} from '@angular/router';\nimport {\n    TUI_DOC_ICONS,\n    TUI_DOC_PAGE_LOADED,\n    TUI_DOC_SEARCH_ENABLED,\n    TUI_DOC_SEARCH_TEXT,\n} from '@taiga-ui/addon-doc/tokens';\nimport type {TuiDocRoutePage, TuiDocRoutePages} from '@taiga-ui/addon-doc/types';\nimport {tuiTransliterateKeyboardLayout} from '@taiga-ui/addon-doc/utils';\nimport {TuiSidebarDirective} from '@taiga-ui/addon-mobile/directives/sidebar';\nimport {TuiAutoFocus} from '@taiga-ui/cdk/directives/auto-focus';\nimport {tuiControlValue, tuiWatch} from '@taiga-ui/cdk/observables';\nimport {tuiPure, tuiUniqBy} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiDataList} from '@taiga-ui/core/components/data-list';\nimport {TuiExpand} from '@taiga-ui/core/components/expand';\nimport {TuiIcon} from '@taiga-ui/core/components/icon';\nimport {TuiLink} from '@taiga-ui/core/components/link';\nimport {TuiScrollbar} from '@taiga-ui/core/components/scrollbar';\nimport {TuiTextfield, TuiTextfieldDirective} from '@taiga-ui/core/components/textfield';\nimport {TUI_COMMON_ICONS} from '@taiga-ui/core/tokens';\nimport {TuiAccordion} from '@taiga-ui/kit/components/accordion';\nimport {TuiInputModule} from '@taiga-ui/legacy/components/input';\nimport {TuiTextfieldControllerModule} from '@taiga-ui/legacy/directives/textfield-controller';\nimport {PolymorpheusOutlet, PolymorpheusTemplate} from '@taiga-ui/polymorpheus';\nimport {combineLatest, filter, fromEvent, map, of, switchMap, take} from 'rxjs';\n\nimport {\n    NAVIGATION_ITEMS,\n    NAVIGATION_LABELS,\n    NAVIGATION_PROVIDERS,\n    NAVIGATION_TITLE,\n} from './navigation.providers';\nimport {TuiDocScrollIntoViewLink} from './scroll-into-view.directive';\n\n@Component({\n    standalone: true,\n    selector: 'tui-doc-navigation',\n    imports: [\n        NgForOf,\n        NgIf,\n        NgTemplateOutlet,\n        PolymorpheusOutlet,\n        PolymorpheusTemplate,\n        ReactiveFormsModule,\n        RouterLink,\n        RouterLinkActive,\n        TuiAccordion,\n        TuiAutoFocus,\n        TuiDataList,\n        TuiDocScrollIntoViewLink,\n        TuiExpand,\n        TuiIcon,\n        TuiInputModule,\n        TuiLink,\n        TuiScrollbar,\n        TuiTextfield,\n        TuiTextfieldControllerModule,\n    ],\n    templateUrl: './navigation.template.html',\n    styleUrls: ['./navigation.style.less'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    providers: NAVIGATION_PROVIDERS,\n    host: {\n        '[class._open]': 'menuOpen',\n        '(window:keydown)': 'onFocusSearch($event)',\n    },\n})\nexport class TuiDocNavigation {\n    @ViewChild(TuiTextfieldDirective, {read: ElementRef})\n    private readonly searchInput?: ElementRef<HTMLInputElement>;\n\n    private readonly router = inject(Router);\n    private readonly doc = inject(DOCUMENT);\n\n    protected open = signal(false);\n    protected menuOpen = false;\n\n    protected readonly sidebar = inject(TuiSidebarDirective, {optional: true});\n    protected readonly labels = inject(NAVIGATION_LABELS);\n    protected readonly items = inject(NAVIGATION_ITEMS);\n    protected readonly searchText = inject(TUI_DOC_SEARCH_TEXT);\n    protected readonly searchEnabled = inject(TUI_DOC_SEARCH_ENABLED);\n    protected readonly docIcons = inject(TUI_DOC_ICONS);\n    protected readonly icons = inject(TUI_COMMON_ICONS);\n\n    protected openPagesArr: boolean[] = [];\n    protected openPagesGroupsArr: boolean[] = [];\n    protected active = '';\n\n    protected readonly search = new FormControl('');\n\n    protected readonly filtered = toSignal(\n        tuiControlValue<string>(this.search).pipe(\n            filter((search) => search.trim().length > 2),\n            map((search) => this.filterItems(this.flattenSubPages(this.items), search)),\n        ),\n        {initialValue: []},\n    );\n\n    constructor() {\n        const titleService = inject(Title);\n        const readyToScroll$ = inject(TUI_DOC_PAGE_LOADED);\n\n        inject(NAVIGATION_TITLE)\n            .pipe(tuiWatch(), takeUntilDestroyed())\n            .subscribe((title) => {\n                titleService.setTitle(title);\n                this.openActivePageGroup();\n            });\n\n        combineLatest([\n            this.router.events.pipe(\n                filter((event): event is Scroll => event instanceof Scroll),\n                switchMap(({anchor}) =>\n                    'onscrollend' in this.doc\n                        ? fromEvent(this.doc, 'scrollend').pipe(map(() => anchor))\n                        : of(anchor),\n                ),\n            ),\n            inject(NAVIGATION_TITLE).pipe(\n                switchMap(() => readyToScroll$.pipe(filter(Boolean))),\n            ),\n        ])\n            .pipe(\n                take(1),\n                map(([anchor]) => anchor || ''),\n                filter<string>(Boolean),\n                takeUntilDestroyed(),\n            )\n            .subscribe((anchor) => this.navigateToAnchorLink(anchor));\n    }\n\n    protected get canOpen(): boolean {\n        return (this.search.value?.length ?? 0) > 2;\n    }\n\n    protected get itemsWithoutSections(): TuiDocRoutePages {\n        return this.items[this.items.length - 1] ?? [];\n    }\n\n    protected $pages<T extends TuiDocRoutePage[]>(pages: T): readonly TuiDocRoutePage[] {\n        return pages as TuiDocRoutePage[];\n    }\n\n    protected isActive(route: string): boolean {\n        return route === this.active;\n    }\n\n    protected onGroupClick(index: number): void {\n        this.openPagesGroupsArr[index] = !this.openPagesGroupsArr[index];\n    }\n\n    protected closeMenu(): void {\n        this.menuOpen = false;\n    }\n\n    protected onClick(): void {\n        this.open.set(false);\n        this.menuOpen = false;\n        this.search.setValue('');\n        this.openActivePageGroup();\n    }\n\n    protected onFocusSearch(event: KeyboardEvent): void {\n        if (\n            event.code === 'Slash' &&\n            !this.doc.activeElement?.matches('input,textarea,[contenteditable]')\n        ) {\n            this.searchInput?.nativeElement?.focus();\n            event.preventDefault();\n        }\n    }\n\n    @tuiPure\n    private filterItems(\n        items: ReadonlyArray<readonly TuiDocRoutePage[]>,\n        search: string,\n    ): ReadonlyArray<readonly TuiDocRoutePage[]> {\n        return items.map((section) =>\n            tuiUniqBy(\n                section.filter(({title, keywords = ''}) => {\n                    search = search.toLowerCase().trim();\n                    keywords = keywords.toLowerCase();\n                    title = title.toLowerCase();\n\n                    return (\n                        title.includes(search) ||\n                        keywords.includes(search) ||\n                        title.includes(tuiTransliterateKeyboardLayout(search)) ||\n                        keywords.includes(tuiTransliterateKeyboardLayout(search)) ||\n                        search.replaceAll('-', '').includes(title) ||\n                        title.includes(search.replaceAll(/\\s|tui/g, '')) ||\n                        keywords.includes(search.replaceAll(/\\s|tui/g, '')) ||\n                        search.split(/\\s/).find((word) => title.includes(word))\n                    );\n                }),\n                'title',\n            ),\n        );\n    }\n\n    @tuiPure\n    private flattenSubPages(\n        items: readonly TuiDocRoutePages[],\n    ): ReadonlyArray<readonly TuiDocRoutePage[]> {\n        return items.reduce<ReadonlyArray<readonly TuiDocRoutePage[]>>(\n            (array, item) => [\n                ...array,\n                item.reduce<readonly TuiDocRoutePage[]>(\n                    (pages, page) =>\n                        'subPages' in page\n                            ? [...pages, ...page.subPages]\n                            : [...pages, page],\n                    [],\n                ),\n            ],\n            [],\n        );\n    }\n\n    private isActiveRoute(route: string): boolean {\n        return this.router.isActive(route, {\n            paths: 'subset',\n            queryParams: 'subset',\n            fragment: 'ignored',\n            matrixParams: 'ignored',\n        });\n    }\n\n    private openActivePageGroup(): void {\n        this.items.forEach((pages, pagesIndex) => {\n            pages.forEach((page, pageIndex) => {\n                if ('route' in page && this.isActiveRoute(page.route)) {\n                    this.openPagesArr[pagesIndex] = true;\n                    this.active = page.route;\n                }\n\n                if ('subPages' in page) {\n                    page.subPages.forEach((subPage) => {\n                        if (this.isActiveRoute(subPage.route)) {\n                            this.openPagesArr[pagesIndex] = true;\n                            this.openPagesGroupsArr[pagesIndex * 100 + pageIndex] = true;\n                            this.active = subPage.route;\n                        }\n                    });\n                }\n            });\n        });\n    }\n\n    private navigateToAnchorLink(fragment: string): void {\n        const nodes = fragment ? this.doc.querySelectorAll(`#${fragment}`) : [];\n        const element = nodes.length && nodes[nodes.length - 1];\n\n        if (!element) {\n            return;\n        }\n\n        // emulate :target event\n        const target = this.doc.createElement('a');\n\n        target.href = `${this.doc.location.pathname}#${fragment}`;\n        target.style.display = 'none';\n        target.style.position = 'absolute';\n        this.doc.body.appendChild(target);\n        target.click();\n        target.remove();\n    }\n}\n","<tui-textfield\n    *ngIf=\"searchEnabled()\"\n    tuiTextfieldSize=\"m\"\n    class=\"t-input\"\n    [iconStart]=\"docIcons.search\"\n    [open]=\"open() && canOpen\"\n    (keyup)=\"open.set(canOpen && $event.code !== 'Escape')\"\n    (openChange)=\"open.set($event)\"\n>\n    <code\n        *ngIf=\"!search.value\"\n        class=\"t-slash\"\n    >\n        /\n    </code>\n    <input\n        tuiTextfield\n        class=\"t-prevent-ios-scroll\"\n        [formControl]=\"search\"\n        [placeholder]=\"searchText\"\n        [tuiAutoFocus]=\"!!sidebar\"\n    />\n    <ng-container *ngIf=\"canOpen\">\n        <tui-data-list *tuiTextfieldDropdown>\n            <tui-opt-group\n                *ngFor=\"let group of filtered(); let index = index\"\n                [label]=\"labels[index] || ''\"\n            >\n                <ng-container *ngFor=\"let item of group\">\n                    <a\n                        *ngIf=\"item.route.includes('://'); else internal\"\n                        tuiOption\n                        [attr.rel]=\"item.rel\"\n                        [href]=\"item.route\"\n                        [target]=\"item.target || '_self'\"\n                    >\n                        {{ item.title }}\n                        <tui-icon\n                            *polymorpheusOutlet=\"item.icon as icon\"\n                            class=\"t-icon\"\n                            [icon]=\"icon\"\n                        />\n                    </a>\n\n                    <ng-template #internal>\n                        <a\n                            tuiOption\n                            [attr.rel]=\"item.rel\"\n                            [fragment]=\"item.fragment\"\n                            [routerLink]=\"item.route\"\n                            [target]=\"item.target || '_self'\"\n                            (click)=\"onClick()\"\n                        >\n                            {{ item.title }}\n                            <tui-icon\n                                *polymorpheusOutlet=\"item.icon as icon\"\n                                class=\"t-icon\"\n                                [icon]=\"icon\"\n                            />\n                        </a>\n                    </ng-template>\n                </ng-container>\n            </tui-opt-group>\n        </tui-data-list>\n    </ng-container>\n</tui-textfield>\n\n<nav class=\"t-navigation\">\n    <tui-scrollbar class=\"t-scrollbar\">\n        <tui-accordion\n            [class.t-accordion-standalone]=\"!searchEnabled()\"\n            [closeOthers]=\"false\"\n            [rounded]=\"false\"\n        >\n            <tui-accordion-item\n                *ngFor=\"let label of labels; index as index\"\n                size=\"s\"\n                [borders]=\"null\"\n                [open]=\"!!openPagesArr[index]\"\n                (openChange)=\"openPagesArr[index] = $event\"\n            >\n                <span class=\"t-label\">\n                    <strong>{{ label }}</strong>\n                </span>\n                <ng-template tuiAccordionItemContent>\n                    <div class=\"t-section\">\n                        <ng-container\n                            *ngFor=\"let item of items[index]; index as subIndex\"\n                            [ngTemplateOutlet]=\"pages\"\n                            [ngTemplateOutletContext]=\"{item: item, index: index * 100 + subIndex}\"\n                        />\n                    </div>\n                </ng-template>\n            </tui-accordion-item>\n        </tui-accordion>\n        <div class=\"t-items-container\">\n            <ng-container\n                *ngFor=\"let item of itemsWithoutSections; let index = index\"\n                [ngTemplateOutlet]=\"pages\"\n                [ngTemplateOutletContext]=\"{item: item, index: items.length - 1 + index}\"\n            />\n        </div>\n\n        <ng-template\n            #pages\n            let-index=\"index\"\n            let-item=\"item\"\n        >\n            <ng-container *ngIf=\"!item.subPages; else subPagesTemplate\">\n                <a\n                    *ngIf=\"item.route.includes('://'); else internal\"\n                    tuiLink\n                    class=\"t-sublink\"\n                    [attr.rel]=\"item.rel\"\n                    [href]=\"item.route\"\n                    [target]=\"item.target || '_self'\"\n                >\n                    {{ item.title }}\n                    <tui-icon\n                        *polymorpheusOutlet=\"item.icon as icon\"\n                        class=\"t-icon\"\n                        [icon]=\"icon\"\n                    />\n                </a>\n\n                <ng-template #internal>\n                    <a\n                        routerLinkActive=\"t-sublink_active\"\n                        tuiLink\n                        class=\"t-sublink\"\n                        [attr.rel]=\"item.rel\"\n                        [routerLink]=\"item.route\"\n                        [target]=\"item.target || '_self'\"\n                        [tuiDocScrollIntoViewLink]=\"isActive(item.route)\"\n                        (click)=\"closeMenu()\"\n                    >\n                        {{ item.title }}\n                        <tui-icon\n                            *polymorpheusOutlet=\"item.icon as icon\"\n                            class=\"t-icon\"\n                            [icon]=\"icon\"\n                        />\n                    </a>\n                </ng-template>\n            </ng-container>\n\n            <ng-template #subPagesTemplate>\n                <div\n                    routerLinkActive\n                    class=\"t-subsection\"\n                    [routerLinkActiveOptions]=\"{exact: false}\"\n                >\n                    <button\n                        *ngIf=\"item.subPages\"\n                        tuiLink\n                        type=\"button\"\n                        class=\"t-sublink t-sublink_subsection\"\n                        (click)=\"onGroupClick(index)\"\n                    >\n                        <tui-icon\n                            class=\"t-chevron\"\n                            [class.t-chevron_active]=\"!!openPagesGroupsArr[index]\"\n                            [icon]=\"icons.more\"\n                        />\n                        {{ item.title }}\n                        <tui-icon\n                            *polymorpheusOutlet=\"item.icon as icon\"\n                            class=\"t-icon\"\n                            [icon]=\"icon\"\n                        />\n                    </button>\n                    <tui-expand\n                        class=\"t-expand\"\n                        [expanded]=\"!!openPagesGroupsArr[index]\"\n                    >\n                        <div class=\"t-section t-section_bordered\">\n                            <ng-container *ngFor=\"let subPage of $pages(item.subPages)\">\n                                <a\n                                    *ngIf=\"subPage.route.includes('://'); else internal\"\n                                    tuiLink\n                                    class=\"t-sublink t-sublink_small\"\n                                    [attr.rel]=\"subPage.rel\"\n                                    [href]=\"subPage.route\"\n                                    [target]=\"subPage.target || '_self'\"\n                                >\n                                    {{ subPage.title }}\n                                    <tui-icon\n                                        *polymorpheusOutlet=\"subPage.icon as icon\"\n                                        class=\"t-icon\"\n                                        [icon]=\"icon\"\n                                    />\n                                </a>\n\n                                <ng-template #internal>\n                                    <a\n                                        routerLinkActive=\"t-sublink_active\"\n                                        tuiLink\n                                        class=\"t-sublink t-sublink_small\"\n                                        [attr.rel]=\"subPage.rel\"\n                                        [fragment]=\"subPage.fragment\"\n                                        [routerLink]=\"subPage.route\"\n                                        [target]=\"subPage.target || '_self'\"\n                                        [tuiDocScrollIntoViewLink]=\"isActive(subPage.route)\"\n                                        (click)=\"closeMenu()\"\n                                    >\n                                        {{ subPage.title }}\n                                        <tui-icon\n                                            *polymorpheusOutlet=\"subPage.icon as icon\"\n                                            class=\"t-icon\"\n                                            [icon]=\"icon\"\n                                        />\n                                    </a>\n                                </ng-template>\n                            </ng-container>\n                        </div>\n                    </tui-expand>\n                </div>\n            </ng-template>\n        </ng-template>\n    </tui-scrollbar>\n</nav>\n\n<ng-content />\n","import {ChangeDetectionStrategy, Component, inject} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {Router} from '@angular/router';\nimport {TUI_DOC_ICONS, TUI_DOC_LOGO, TUI_DOC_MENU_TEXT} from '@taiga-ui/addon-doc/tokens';\nimport {TuiSidebar} from '@taiga-ui/addon-mobile/directives/sidebar';\nimport {TUI_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {TuiActiveZone} from '@taiga-ui/cdk/directives/active-zone';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {PolymorpheusOutlet, PolymorpheusTemplate} from '@taiga-ui/polymorpheus';\nimport {distinctUntilChanged, map, merge, startWith, Subject} from 'rxjs';\n\nimport {TuiDocNavigation} from '../../navigation/navigation.component';\n\n@Component({\n    standalone: true,\n    selector: 'header[tuiDocHeader]',\n    imports: [\n        PolymorpheusOutlet,\n        PolymorpheusTemplate,\n        TuiActiveZone,\n        TuiButton,\n        TuiDocNavigation,\n        TuiSidebar,\n    ],\n    templateUrl: './index.html',\n    styleUrls: ['./index.less'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiDocHeader {\n    private readonly stream$ = new Subject<boolean>();\n    private readonly router = inject(Router);\n    protected readonly icons = inject(TUI_DOC_ICONS);\n    protected readonly logo = inject(TUI_DOC_LOGO);\n    protected readonly menu = inject(TUI_DOC_MENU_TEXT);\n\n    protected readonly open = toSignal(\n        merge(this.router.events.pipe(map(TUI_FALSE_HANDLER)), this.stream$).pipe(\n            startWith(false),\n            distinctUntilChanged(),\n        ),\n        {initialValue: false},\n    );\n\n    protected onClick(): void {\n        this.stream$.next(true);\n    }\n\n    protected onActiveZone(active: boolean): void {\n        if (!active) {\n            this.stream$.next(false);\n        }\n    }\n}\n","<button\n    appearance=\"icon\"\n    tuiIconButton\n    type=\"button\"\n    class=\"t-menu\"\n    [iconStart]=\"icons.menu\"\n    [title]=\"menu\"\n    (click)=\"onClick()\"\n    (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n    <tui-doc-navigation\n        *tuiSidebar=\"open()\"\n        class=\"t-navigation\"\n    />\n</button>\n<div class=\"t-logo\">\n    <img\n        *polymorpheusOutlet=\"logo as src\"\n        alt=\"Logo\"\n        class=\"t-img\"\n        [src]=\"src\"\n    />\n</div>\n<ng-content />\n","import {NgForOf, NgIf} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, inject, Input} from '@angular/core';\nimport {RouterLink} from '@angular/router';\nimport {TUI_DOC_MAP_PAGES, TUI_DOC_SEE_ALSO_TEXT} from '@taiga-ui/addon-doc/tokens';\nimport {TuiLink} from '@taiga-ui/core/components/link';\n\n@Component({\n    standalone: true,\n    selector: 'tui-doc-see-also',\n    imports: [NgForOf, NgIf, RouterLink, TuiLink],\n    templateUrl: './index.html',\n    styleUrls: ['./index.less'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiDocSeeAlso {\n    private readonly pages = inject(TUI_DOC_MAP_PAGES);\n    protected readonly text = inject(TUI_DOC_SEE_ALSO_TEXT);\n\n    @Input()\n    public seeAlso: readonly string[] = [];\n\n    protected getRouterLink(pageTitle: string): string {\n        return this.pages.get(pageTitle)?.route ?? '';\n    }\n}\n","<h5 class=\"t-header\">{{ text }}</h5>\n<ng-container *ngFor=\"let item of seeAlso; last as last\">\n    <a\n        tuiLink\n        [innerText]=\"item\"\n        [routerLink]=\"getRouterLink(item)\"\n    ></a>\n    <ng-container *ngIf=\"!last\">{{ ', ' }}</ng-container>\n</ng-container>\n","import {ChangeDetectionStrategy, Component, inject, Input} from '@angular/core';\nimport {\n    TUI_DOC_ICONS,\n    TUI_DOC_SOURCE_CODE,\n    TUI_DOC_SOURCE_CODE_TEXT,\n} from '@taiga-ui/addon-doc/tokens';\nimport type {TuiDocSourceCodePathOptions} from '@taiga-ui/addon-doc/types';\nimport {tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {PolymorpheusOutlet, PolymorpheusTemplate} from '@taiga-ui/polymorpheus';\n\n@Component({\n    standalone: true,\n    selector: 'tui-doc-source-code',\n    imports: [PolymorpheusOutlet, PolymorpheusTemplate, TuiButton],\n    templateUrl: './source-code.template.html',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiDocSourceCode {\n    protected readonly icons = inject(TUI_DOC_ICONS);\n    protected readonly sourceCode = inject(TUI_DOC_SOURCE_CODE);\n    protected readonly text = inject(TUI_DOC_SOURCE_CODE_TEXT);\n\n    @Input()\n    public header = '';\n\n    @Input()\n    public package = '';\n\n    @Input()\n    public type = '';\n\n    @Input()\n    public path = '';\n\n    protected get pathOptions(): TuiDocSourceCodePathOptions {\n        return this.getPathOptions(this.header, this.package, this.type, this.path);\n    }\n\n    @tuiPure\n    protected pathIsUrl(path: string): boolean {\n        return path.startsWith('http');\n    }\n\n    @tuiPure\n    private getPathOptions(\n        header: string,\n        packageName: string,\n        type: string,\n        path: string,\n    ): TuiDocSourceCodePathOptions {\n        return {\n            header,\n            package: packageName,\n            type,\n            path,\n        };\n    }\n}\n","<a\n    *polymorpheusOutlet=\"pathIsUrl(path) ? path : sourceCode as link; context: pathOptions\"\n    appearance=\"icon\"\n    size=\"s\"\n    target=\"_blank\"\n    tuiIconButton\n    type=\"button\"\n    [href]=\"link\"\n    [iconStart]=\"icons.code\"\n    [style.height]=\"'var(--tui-height-l)'\"\n>\n    {{ text }}\n</a>\n","import {NgForOf, NgIf, TitleCasePipe} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, inject} from '@angular/core';\nimport {FormControl, ReactiveFormsModule} from '@angular/forms';\nimport {TUI_DOC_ICONS} from '@taiga-ui/addon-doc/tokens';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TuiDataList} from '@taiga-ui/core/components/data-list';\nimport {tuiScrollbarOptionsProvider} from '@taiga-ui/core/components/scrollbar';\nimport {TuiTextfield} from '@taiga-ui/core/components/textfield';\nimport {TuiFlagPipe} from '@taiga-ui/core/pipes/flag';\nimport type {TuiCountryIsoCode, TuiLanguageName} from '@taiga-ui/i18n/types';\nimport {TuiLanguageSwitcherService} from '@taiga-ui/i18n/utils';\nimport {TuiBadge} from '@taiga-ui/kit/components/badge';\nimport {TuiBadgedContent} from '@taiga-ui/kit/components/badged-content';\nimport {TuiButtonSelect} from '@taiga-ui/kit/directives/button-select';\n\n@Component({\n    standalone: true,\n    selector: 'tui-doc-language-switcher',\n    imports: [\n        NgForOf,\n        NgIf,\n        ReactiveFormsModule,\n        TitleCasePipe,\n        TuiBadge,\n        TuiBadgedContent,\n        TuiButton,\n        TuiButtonSelect,\n        TuiDataList,\n        TuiFlagPipe,\n        TuiTextfield,\n    ],\n    templateUrl: './index.html',\n    styleUrls: ['./index.less'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    providers: [tuiScrollbarOptionsProvider({mode: 'hover'})],\n})\nexport class TuiDocLanguageSwitcher {\n    protected readonly icons = inject(TUI_DOC_ICONS);\n    protected readonly switcher = inject(TuiLanguageSwitcherService);\n    protected readonly language = new FormControl(capitalize(this.switcher.language));\n\n    protected open = false;\n\n    public readonly flags = new Map<TuiLanguageName, TuiCountryIsoCode>([\n        ['arabic', 'SA'],\n        ['belarusian', 'BY'],\n        ['chinese', 'CN'],\n        ['dutch', 'NL'],\n        ['english', 'GB'],\n        ['french', 'FR'],\n        ['german', 'DE'],\n        ['hebrew', 'IL'],\n        ['italian', 'IT'],\n        ['japan', 'JP'],\n        ['kazakh', 'KZ'],\n        ['korean', 'KR'],\n        ['lithuanian', 'LT'],\n        ['malay', 'MY'],\n        ['polish', 'PL'],\n        ['portuguese', 'PT'],\n        ['russian', 'RU'],\n        ['spanish', 'ES'],\n        ['turkish', 'TR'],\n        ['ukrainian', 'UA'],\n        ['vietnamese', 'VN'],\n    ]);\n\n    public readonly names: TuiLanguageName[] = Array.from(this.flags.keys());\n\n    public setLang(lang: TuiLanguageName): void {\n        this.language.setValue(lang);\n        this.switcher.setLanguage(lang);\n        this.open = false;\n    }\n}\n\nfunction capitalize(value: string): string {\n    return `${value.charAt(0).toUpperCase()}${value.slice(1)}`;\n}\n","<tui-badged-content>\n    <img\n        alt=\"\"\n        size=\"s\"\n        tuiBadge\n        tuiSlot=\"bottom\"\n        [src]=\"flags.get(language.value ?? '') || flags.get(switcher.language) | tuiFlag\"\n    />\n\n    <button\n        appearance=\"outline-grayscale\"\n        size=\"s\"\n        tuiButtonSelect\n        tuiIconButton\n        type=\"button\"\n        [formControl]=\"language\"\n        [iconStart]=\"icons.languages\"\n    >\n        Language\n        <tui-data-list *tuiTextfieldDropdown>\n            <tui-opt-group label=\"Language of components\">\n                <button\n                    *ngFor=\"let name of names\"\n                    new\n                    tuiOption\n                    type=\"button\"\n                    [value]=\"name | titlecase\"\n                    (click)=\"setLang(name)\"\n                >\n                    <img\n                        alt=\"\"\n                        class=\"t-flag\"\n                        [src]=\"flags.get(name) | tuiFlag\"\n                    />\n                    {{ name | titlecase }}\n                </button>\n            </tui-opt-group>\n        </tui-data-list>\n    </button>\n</tui-badged-content>\n","import {DOCUMENT, NgIf} from '@angular/common';\nimport {\n    ChangeDetectionStrategy,\n    Component,\n    computed,\n    inject,\n    ViewEncapsulation,\n} from '@angular/core';\nimport {RouterOutlet} from '@angular/router';\nimport {TUI_DOC_DIRECTION_ENABLED, TUI_DOC_ICONS} from '@taiga-ui/addon-doc/tokens';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TuiIcon} from '@taiga-ui/core/components/icon';\nimport {TuiRoot} from '@taiga-ui/core/components/root';\nimport {TUI_DARK_MODE} from '@taiga-ui/core/tokens';\n\nimport {TuiDocHeader} from '../internal/header';\nimport {TuiDocNavigation} from '../navigation/navigation.component';\n\n@Component({\n    standalone: true,\n    selector: 'tui-doc-main',\n    imports: [\n        NgIf,\n        RouterOutlet,\n        TuiButton,\n        TuiDocHeader,\n        TuiDocNavigation,\n        TuiIcon,\n        TuiRoot,\n    ],\n    templateUrl: './main.template.html',\n    styleUrls: ['./main.style.less'],\n    encapsulation: ViewEncapsulation.None,\n    // @note: This one was default on purpose, so we can test demo in default mode.\n    // eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection\n    changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class TuiDocMain {\n    private readonly doc = inject(DOCUMENT);\n    protected readonly icons = inject(TUI_DOC_ICONS);\n    protected readonly dir = inject(TUI_DOC_DIRECTION_ENABLED);\n    protected readonly darkMode = inject(TUI_DARK_MODE);\n    protected readonly theme = computed(() => (this.darkMode() ? 'dark' : null));\n    protected readonly icon = computed(() =>\n        this.darkMode() ? this.icons.light : this.icons.dark,\n    );\n\n    public changeTextDirection(): void {\n        const dir = this.doc.documentElement.getAttribute('dir') ?? 'ltr';\n\n        this.doc.documentElement.setAttribute('dir', dir === 'ltr' ? 'rtl' : 'ltr');\n    }\n}\n","<tui-root [attr.tuiTheme]=\"theme()\">\n    <div class=\"tui-doc-page\">\n        <tui-doc-navigation class=\"tui-doc-navigation\">\n            <ng-content select=\"tuiDocNavigation\" />\n        </tui-doc-navigation>\n        <div class=\"tui-doc-content\">\n            <router-outlet class=\"tui-doc-outlet\" />\n        </div>\n    </div>\n    <header tuiDocHeader>\n        <ng-content select=\"tuiDocHeader\" />\n\n        <button\n            *ngIf=\"dir && icons.ltr\"\n            appearance=\"outline\"\n            aria-label=\"Switch directionality of the element's text\"\n            size=\"s\"\n            tuiButton\n            type=\"button\"\n            class=\"tui-doc-switch-direction\"\n            [iconEnd]=\"icons.ltr.preview\"\n            (click)=\"changeTextDirection()\"\n        >\n            <tui-icon [icon]=\"icons.ltr.direction\" />\n        </button>\n\n        <button\n            appearance=\"secondary\"\n            aria-label=\"Switch between dark and light mode\"\n            size=\"s\"\n            tuiIconButton\n            type=\"button\"\n            class=\"tui-doc-dark-mode-switch\"\n            [iconStart]=\"icon()\"\n            [style.border-radius.%]=\"100\"\n            (click)=\"darkMode.set(!darkMode())\"\n        ></button>\n    </header>\n    <ng-container ngProjectAs=\"tuiOverContent\">\n        <ng-content select=\"tuiOverContent\" />\n    </ng-container>\n    <ng-container ngProjectAs=\"tuiOverDialogs\">\n        <ng-content select=\"tuiOverDialogs\" />\n    </ng-container>\n    <ng-container ngProjectAs=\"tuiOverAlerts\">\n        <ng-content select=\"tuiOverAlerts\" />\n    </ng-container>\n    <ng-container ngProjectAs=\"tuiOverDropdowns\">\n        <ng-content select=\"tuiOverDropdowns\" />\n    </ng-container>\n    <ng-container ngProjectAs=\"tuiOverHints\">\n        <ng-content select=\"tuiOverHints\" />\n    </ng-container>\n</tui-root>\n","import type {Provider} from '@angular/core';\nimport {ElementRef, InjectionToken} from '@angular/core';\nimport type {ActivatedRouteSnapshot} from '@angular/router';\nimport {TUI_DOC_SEE_ALSO} from '@taiga-ui/addon-doc/tokens';\nimport type {TuiHandler} from '@taiga-ui/cdk/types';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\nexport const TUI_DOC_TABS = new InjectionToken<\n    TuiHandler<ActivatedRouteSnapshot, Record<string, PolymorpheusContent>>\n>(ngDevMode ? 'TUI_DOC_TABS' : '', {\n    factory: () => () => ({}),\n});\n\n/**\n * Array if related page titles\n */\nexport const PAGE_SEE_ALSO = new InjectionToken<readonly string[]>(\n    ngDevMode ? 'PAGE_SEE_ALSO' : '',\n);\n\nexport const PAGE_PROVIDERS: Provider[] = [\n    {\n        provide: PAGE_SEE_ALSO,\n        deps: [ElementRef, TUI_DOC_SEE_ALSO],\n        useFactory: (\n            {nativeElement}: ElementRef,\n            seeAlsoGroups: ReadonlyArray<readonly string[]>,\n        ): readonly string[] => {\n            const currentHeader = nativeElement.getAttribute('header');\n            const groups =\n                seeAlsoGroups.filter((group) => group.includes(currentHeader)) || [];\n\n            const seeAlsoSet = new Set(\n                groups\n                    .join()\n                    .split(',')\n                    .filter((component) => component && component !== currentHeader),\n            );\n\n            return Array.from(seeAlsoSet);\n        },\n    },\n];\n","import {Directive, inject, Input, TemplateRef} from '@angular/core';\n\n@Directive({\n    standalone: true,\n    selector: 'ng-template[pageTab]',\n})\nexport class TuiDocPageTabConnector {\n    @Input()\n    public pageTab?: string;\n\n    public readonly template = inject(TemplateRef<Record<string, unknown>>);\n}\n","import {KeyValuePipe, NgForOf, NgIf, NgTemplateOutlet} from '@angular/common';\nimport type {QueryList} from '@angular/core';\nimport {\n    ChangeDetectionStrategy,\n    Component,\n    ContentChildren,\n    inject,\n    Input,\n} from '@angular/core';\nimport {ActivatedRoute, RouterLink, RouterLinkActive} from '@angular/router';\nimport {TUI_DOC_DEFAULT_TABS, TUI_DOC_SUPPORT_LANGUAGE} from '@taiga-ui/addon-doc/tokens';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {TuiReplacePipe} from '@taiga-ui/cdk/pipes/replace';\nimport {TuiAutoColorPipe} from '@taiga-ui/core/pipes/auto-color';\nimport {TuiChip} from '@taiga-ui/kit/components/chip';\nimport {TuiTabs} from '@taiga-ui/kit/components/tabs';\nimport {PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nimport {TuiDocSeeAlso} from '../internal/see-also';\nimport {TuiDocSourceCode} from '../internal/source-code/source-code.component';\nimport {TuiDocLanguageSwitcher} from '../language-switcher';\nimport {PAGE_PROVIDERS, PAGE_SEE_ALSO, TUI_DOC_TABS} from './page.providers';\nimport {TuiDocPageTabConnector} from './page-tab.directive';\n\n@Component({\n    standalone: true,\n    selector: 'tui-doc-page',\n    imports: [\n        KeyValuePipe,\n        NgForOf,\n        NgIf,\n        NgTemplateOutlet,\n        PolymorpheusOutlet,\n        RouterLink,\n        RouterLinkActive,\n        TuiAutoColorPipe,\n        TuiChip,\n        TuiDocLanguageSwitcher,\n        TuiDocSeeAlso,\n        TuiDocSourceCode,\n        TuiReplacePipe,\n        TuiTabs,\n    ],\n    templateUrl: './page.template.html',\n    styleUrls: ['./page.style.less'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    providers: PAGE_PROVIDERS,\n})\nexport class TuiDocPage {\n    protected readonly tabs = inject(TUI_DOC_TABS)(inject(ActivatedRoute).snapshot);\n    protected readonly supportLanguage = inject(TUI_DOC_SUPPORT_LANGUAGE);\n    protected readonly defaultTabs = inject(TUI_DOC_DEFAULT_TABS);\n    protected readonly from = / /g;\n    protected readonly to = '_';\n\n    @Input()\n    public header = '';\n\n    @Input()\n    public package = '';\n\n    @Input()\n    public type = '';\n\n    @Input()\n    public tags: string[] = [];\n\n    @Input()\n    public path = '';\n\n    @Input()\n    public deprecated: boolean | '' = false;\n\n    @ContentChildren(TuiDocPageTabConnector)\n    public readonly tabConnectors: QueryList<TuiDocPageTabConnector> = EMPTY_QUERY;\n\n    public activeItemIndex = 0;\n    public readonly seeAlso = inject(PAGE_SEE_ALSO);\n\n    public get showSeeAlso(): boolean {\n        return !!this.seeAlso.length && this.activeItemIndex === 0;\n    }\n}\n","<header class=\"t-header\">\n    <h1\n        *ngIf=\"header\"\n        class=\"t-title\"\n    >\n        {{ header }}\n        <tui-chip\n            *ngIf=\"!!deprecated || deprecated === ''\"\n            appearance=\"custom\"\n            size=\"xs\"\n            class=\"t-tag t-tag_deprecated\"\n        >\n            deprecated\n        </tui-chip>\n        <tui-chip\n            *ngIf=\"package\"\n            appearance=\"custom\"\n            size=\"xs\"\n            class=\"t-tag t-tag_package\"\n            [style.background]=\"package | tuiAutoColor\"\n        >\n            {{ package }}\n        </tui-chip>\n        <tui-chip\n            *ngFor=\"let tag of tags\"\n            appearance=\"custom\"\n            size=\"xs\"\n            class=\"t-tag t-tag_package\"\n            [style.background]=\"tag | tuiAutoColor\"\n        >\n            {{ tag }}\n        </tui-chip>\n    </h1>\n    <tui-tabs-with-more\n        *ngIf=\"tabConnectors.length\"\n        class=\"t-tabs\"\n        [(activeItemIndex)]=\"activeItemIndex\"\n    >\n        <ng-container *ngFor=\"let tab of tabConnectors; first as first; index as index\">\n            <ng-container *ngIf=\"tab.pageTab || defaultTabs[index] as tabName\">\n                <a\n                    *tuiItem\n                    routerLinkActive\n                    tuiTab\n                    [routerLink]=\"first ? './' : (tabName | tuiReplace: from : to)\"\n                    [routerLinkActiveOptions]=\"{exact: first}\"\n                >\n                    {{ tabName }}\n                </a>\n            </ng-container>\n        </ng-container>\n        <ng-container *ngFor=\"let tab of tabs | keyvalue\">\n            <a\n                *tuiItem\n                routerLinkActive\n                tuiTab\n                [routerLink]=\"tab.key\"\n            >\n                {{ tab.key }}\n            </a>\n        </ng-container>\n    </tui-tabs-with-more>\n\n    <div\n        *ngIf=\"package || path || type\"\n        class=\"t-right-side\"\n    >\n        <tui-doc-source-code\n            class=\"t-source-code\"\n            [header]=\"header\"\n            [package]=\"package\"\n            [path]=\"path\"\n            [type]=\"type\"\n        />\n\n        <tui-doc-language-switcher *ngIf=\"supportLanguage.has(header)\" />\n    </div>\n</header>\n<div class=\"t-content\">\n    <ng-content />\n    <tui-doc-see-also\n        *ngIf=\"showSeeAlso\"\n        class=\"t-see-also\"\n        [seeAlso]=\"seeAlso\"\n    />\n    <ng-container *ngFor=\"let tab of tabConnectors; index as index\">\n        <ng-container\n            *ngIf=\"index === activeItemIndex\"\n            [ngTemplateOutlet]=\"tab.template\"\n        />\n    </ng-container>\n    <ng-container *ngFor=\"let tab of tabs | keyvalue; index as index\">\n        <ng-container *ngIf=\"index + tabConnectors.length === activeItemIndex\">\n            <ng-container *polymorpheusOutlet=\"tab.value as text\">{{ text }}</ng-container>\n        </ng-container>\n    </ng-container>\n</div>\n","import {NgForOf} from '@angular/common';\nimport type {FactoryProvider} from '@angular/core';\nimport {ChangeDetectionStrategy, Component, inject, InjectionToken} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {WA_LOCAL_STORAGE, WA_LOCATION} from '@ng-web-apis/common';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TuiDataList} from '@taiga-ui/core/components/data-list';\nimport {TUI_THEME} from '@taiga-ui/core/tokens';\nimport {TuiSelectModule} from '@taiga-ui/legacy/components/select';\n\nexport const TUI_THEME_KEY = new InjectionToken(ngDevMode ? 'TUI_THEME_KEY' : '', {\n    factory: () => 'data-tui-theme',\n});\nexport const TUI_THEMES = new InjectionToken<Record<string, string>>(\n    ngDevMode ? 'TUI_THEMES' : '',\n    {\n        factory: () => ({}),\n    },\n);\n\nexport function tuiDocThemeProvider(): FactoryProvider {\n    return {\n        provide: TUI_THEME,\n        useFactory: () =>\n            inject(WA_LOCAL_STORAGE)?.getItem(inject(TUI_THEME_KEY)) || 'Taiga UI',\n    };\n}\n\n@Component({\n    standalone: true,\n    selector: 'tui-doc-theme-switcher',\n    imports: [FormsModule, NgForOf, TuiButton, TuiDataList, TuiSelectModule],\n    templateUrl: './theme-switcher.template.html',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiDocThemeSwitcher {\n    private readonly storage = inject(WA_LOCAL_STORAGE);\n    private readonly key = inject(TUI_THEME_KEY);\n    private readonly location = inject(WA_LOCATION);\n\n    protected readonly theme = inject(TUI_THEME);\n    protected readonly themes = inject(TUI_THEMES);\n    protected readonly keys = Object.keys(this.themes);\n\n    public onTheme(theme: string): void {\n        this.storage?.setItem(this.key, theme);\n        this.location.reload();\n    }\n}\n","<tui-select\n    [ngModel]=\"theme\"\n    (ngModelChange)=\"onTheme($event)\"\n>\n    <ng-content />\n    <tui-data-list *tuiDataList>\n        <button\n            *ngFor=\"let key of keys\"\n            tuiOption\n            type=\"button\"\n            [value]=\"key\"\n        >\n            <img\n                alt=\"\"\n                [src]=\"themes[key]\"\n                [style.margin-inline-end.rem]=\"0.5\"\n                [style.width.rem]=\"1.75\"\n            />\n            {{ key }}\n        </button>\n    </tui-data-list>\n</tui-select>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["SERIALIZED_SUFFIX","i1","i3","i4","i6","i5","i7","i2"],"mappings":"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"}