diff --git a/projects/core/components/dialog/dialogs.component.ts b/projects/core/components/dialog/dialogs.component.ts index 536e3bea4e5d..d121ab1a5d03 100644 --- a/projects/core/components/dialog/dialogs.component.ts +++ b/projects/core/components/dialog/dialogs.component.ts @@ -1,26 +1,19 @@ -import {CommonModule} from '@angular/common'; -import {ChangeDetectionStrategy, Component, inject} from '@angular/core'; +import {NgForOf} from '@angular/common'; +import {ChangeDetectionStrategy, Component, inject, type Signal} from '@angular/core'; +import {toSignal} from '@angular/core/rxjs-interop'; import {TuiFocusTrap} from '@taiga-ui/cdk/directives/focus-trap'; import type {TuiPopover} from '@taiga-ui/cdk/services'; import {tuiInjectElement} from '@taiga-ui/cdk/utils/dom'; import {tuiHost} from '@taiga-ui/core/animations'; import {TuiScrollControls, TuiScrollRef} from '@taiga-ui/core/components/scrollbar'; -import {PolymorpheusOutlet, PolymorpheusTemplate} from '@taiga-ui/polymorpheus'; -import type {Observable} from 'rxjs'; +import {PolymorpheusOutlet} from '@taiga-ui/polymorpheus'; import {TUI_DIALOGS} from './dialog.tokens'; @Component({ standalone: true, selector: 'tui-dialogs', - imports: [ - CommonModule, - PolymorpheusOutlet, - PolymorpheusTemplate, - TuiFocusTrap, - TuiScrollControls, - TuiScrollRef, - ], + imports: [NgForOf, PolymorpheusOutlet, TuiFocusTrap, TuiScrollControls, TuiScrollRef], templateUrl: './dialogs.template.html', styleUrls: ['./dialogs.style.less'], // So that we do not force OnPush on custom dialogs @@ -33,6 +26,8 @@ import {TUI_DIALOGS} from './dialog.tokens'; }) export class TuiDialogs { protected readonly el = tuiInjectElement(); - protected readonly dialogs$: Observable>> = - inject(TUI_DIALOGS); + protected readonly dialogs: Signal>> = toSignal( + inject(TUI_DIALOGS), + {initialValue: []}, + ); } diff --git a/projects/core/components/dialog/dialogs.style.less b/projects/core/components/dialog/dialogs.style.less index a430c27fc507..76fc84cffc07 100644 --- a/projects/core/components/dialog/dialogs.style.less +++ b/projects/core/components/dialog/dialogs.style.less @@ -22,6 +22,7 @@ .t-overlay, .t-dialog { + .transition(filter); .scrollbar-hidden(); .fullsize(fixed, inset); @@ -38,8 +39,8 @@ .t-dialog { position: sticky; - pointer-events: auto; overscroll-behavior: none; + filter: brightness(0.25); } .t-overlay { @@ -47,10 +48,12 @@ background: var(--tui-service-backdrop); backdrop-filter: var(--tui-backdrop, none); + opacity: 0; } -.t-dialog:last-of-type { - z-index: 1; +.t-dialog:last-child { + pointer-events: auto; + filter: none; } .t-scrollbars { diff --git a/projects/core/components/dialog/dialogs.template.html b/projects/core/components/dialog/dialogs.template.html index 7f9fda255b89..703aa1e86e46 100644 --- a/projects/core/components/dialog/dialogs.template.html +++ b/projects/core/components/dialog/dialogs.template.html @@ -1,20 +1,17 @@ - - -
-
+
+