@taiga-ui/core 4.52.0-canary.669a014 → 4.52.0-canary.692273c

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/components/alert/alert.interfaces.d.ts +1 -1
  2. package/components/cell/cell.directive.d.ts +9 -0
  3. package/components/cell/cell.options.d.ts +6 -0
  4. package/components/cell/index.d.ts +2 -0
  5. package/components/dialog/dialog.component.d.ts +6 -11
  6. package/components/dialog/dialog.directive.d.ts +1 -1
  7. package/components/dialog/dialog.factory.d.ts +1 -1
  8. package/components/dialog/dialog.options.d.ts +26 -0
  9. package/components/dialog/{dialog-close.service.d.ts → dialog.providers.d.ts} +4 -1
  10. package/components/dialog/dialog.service.d.ts +1 -1
  11. package/components/dialog/index.d.ts +2 -3
  12. package/components/expand/expand.component.d.ts +9 -28
  13. package/components/expand/index.d.ts +0 -2
  14. package/components/header/header.directive.d.ts +17 -0
  15. package/components/header/index.d.ts +1 -0
  16. package/components/index.d.ts +2 -1
  17. package/components/root/root.component.d.ts +1 -2
  18. package/components/textfield/index.d.ts +1 -3
  19. package/components/textfield/textfield-multi/textfield-multi.component.d.ts +4 -5
  20. package/components/textfield/textfield.component.d.ts +1 -2
  21. package/components/textfield/textfield.d.ts +2 -3
  22. package/directives/dropdown/dropdown-content.directive.d.ts +9 -0
  23. package/directives/dropdown/dropdown.d.ts +2 -2
  24. package/directives/dropdown/index.d.ts +1 -1
  25. package/directives/hint/hint-options.directive.d.ts +3 -3
  26. package/directives/hint/hint.component.d.ts +6 -8
  27. package/directives/hint/hint.directive.d.ts +1 -1
  28. package/directives/index.d.ts +0 -1
  29. package/fesm2022/taiga-ui-core-components-alert.mjs +3 -3
  30. package/fesm2022/taiga-ui-core-components-alert.mjs.map +1 -1
  31. package/fesm2022/taiga-ui-core-components-calendar.mjs +2 -2
  32. package/fesm2022/taiga-ui-core-components-calendar.mjs.map +1 -1
  33. package/fesm2022/taiga-ui-core-components-cell.mjs +45 -0
  34. package/fesm2022/taiga-ui-core-components-cell.mjs.map +1 -0
  35. package/fesm2022/taiga-ui-core-components-dialog.mjs +58 -72
  36. package/fesm2022/taiga-ui-core-components-dialog.mjs.map +1 -1
  37. package/fesm2022/taiga-ui-core-components-expand.mjs +33 -131
  38. package/fesm2022/taiga-ui-core-components-expand.mjs.map +1 -1
  39. package/fesm2022/taiga-ui-core-components-header.mjs +42 -0
  40. package/fesm2022/taiga-ui-core-components-header.mjs.map +1 -0
  41. package/fesm2022/taiga-ui-core-components-root.mjs +2 -4
  42. package/fesm2022/taiga-ui-core-components-root.mjs.map +1 -1
  43. package/fesm2022/taiga-ui-core-components-textfield.mjs +119 -213
  44. package/fesm2022/taiga-ui-core-components-textfield.mjs.map +1 -1
  45. package/fesm2022/taiga-ui-core-components.mjs +2 -1
  46. package/fesm2022/taiga-ui-core-components.mjs.map +1 -1
  47. package/fesm2022/taiga-ui-core-directives-dropdown.mjs +29 -36
  48. package/fesm2022/taiga-ui-core-directives-dropdown.mjs.map +1 -1
  49. package/fesm2022/taiga-ui-core-directives-hint.mjs +23 -33
  50. package/fesm2022/taiga-ui-core-directives-hint.mjs.map +1 -1
  51. package/fesm2022/taiga-ui-core-directives.mjs +0 -1
  52. package/fesm2022/taiga-ui-core-directives.mjs.map +1 -1
  53. package/fesm2022/taiga-ui-core-tokens.mjs +1 -5
  54. package/fesm2022/taiga-ui-core-tokens.mjs.map +1 -1
  55. package/package.json +10 -10
  56. package/styles/mixins/slider.less +24 -14
  57. package/tokens/icon-resolver.d.ts +0 -4
  58. package/components/dialog/dialog.interfaces.d.ts +0 -34
  59. package/components/dialog/dialog.tokens.d.ts +0 -15
  60. package/components/expand/expand-content.directive.d.ts +0 -8
  61. package/components/expand/expand.d.ts +0 -6
  62. package/components/fullscreen/fullscreen.component.d.ts +0 -14
  63. package/components/fullscreen/index.d.ts +0 -1
  64. package/components/textfield/select.directive.d.ts +0 -19
  65. package/components/textfield/textfield-dropdown.directive.d.ts +0 -16
  66. package/directives/dropdown/dropdown-portal.directive.d.ts +0 -14
  67. package/directives/surface/index.d.ts +0 -1
  68. package/directives/surface/surface.directive.d.ts +0 -8
  69. package/fesm2022/taiga-ui-core-components-fullscreen.mjs +0 -77
  70. package/fesm2022/taiga-ui-core-components-fullscreen.mjs.map +0 -1
  71. package/fesm2022/taiga-ui-core-directives-surface.mjs +0 -45
  72. package/fesm2022/taiga-ui-core-directives-surface.mjs.map +0 -1
@@ -5,7 +5,7 @@ import { type PolymorpheusContent } from '@taiga-ui/polymorpheus';
5
5
  export interface TuiAlertOptions<I = undefined> extends Omit<TuiNotificationOptions, 'size'> {
6
6
  readonly autoClose: TuiHandler<string, number> | number;
7
7
  readonly data: I;
8
- readonly closeable: boolean;
8
+ readonly closable: boolean;
9
9
  readonly label: PolymorpheusContent<TuiAlertOptions<I>>;
10
10
  }
11
11
  export interface TuiAlertContext<O = void, I = undefined> extends TuiPopoverContext<O>, TuiAlertOptions<I> {
@@ -0,0 +1,9 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class TuiCell {
3
+ protected readonly nothing: undefined;
4
+ protected readonly options: import("./cell.options").TuiCellOptions;
5
+ readonly size: import("@angular/core").InputSignal<"" | "m" | "l" | "s">;
6
+ readonly height: import("@angular/core").InputSignal<"compact" | "normal" | "spacious">;
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<TuiCell, never>;
8
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TuiCell, "[tuiCell]:not(ng-template)", never, { "size": { "alias": "tuiCell"; "required": false; "isSignal": true; }; "height": { "alias": "tuiCellHeight"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
9
+ }
@@ -0,0 +1,6 @@
1
+ import { type TuiSizeL, type TuiSizeS } from '@taiga-ui/core/types';
2
+ export interface TuiCellOptions {
3
+ readonly height: 'compact' | 'normal' | 'spacious';
4
+ readonly size: TuiSizeL | TuiSizeS | '';
5
+ }
6
+ export declare const TUI_CELL_OPTIONS: import("@angular/core").InjectionToken<TuiCellOptions>, tuiCellOptionsProvider: (item: Partial<TuiCellOptions> | (() => Partial<TuiCellOptions>)) => import("@angular/core").FactoryProvider;
@@ -0,0 +1,2 @@
1
+ export * from './cell.directive';
2
+ export * from './cell.options';
@@ -1,20 +1,15 @@
1
1
  import { type TuiPopover } from '@taiga-ui/cdk/services';
2
- import { type PolymorpheusContent } from '@taiga-ui/polymorpheus';
3
- import { type Observable, Subject } from 'rxjs';
4
- import { type TuiDialogOptions, type TuiDialogSize } from './dialog.interfaces';
2
+ import { Subject } from 'rxjs';
3
+ import { type TuiDialogOptions } from './dialog.options';
5
4
  import * as i0 from "@angular/core";
6
5
  import * as i1 from "@taiga-ui/cdk/directives/animated";
7
6
  export declare class TuiDialogComponent<O, I> {
8
7
  protected readonly close$: Subject<void>;
9
- protected readonly context: TuiPopover<TuiDialogOptions<I>, O>;
10
- protected readonly closeWord$: Observable<string>;
8
+ protected readonly close: import("@angular/core").Signal<string | undefined>;
11
9
  protected readonly icons: import("@taiga-ui/core/tokens").TuiCommonIcons;
12
- protected readonly from: import("@angular/core").Signal<"translateY(100vh)" | "translateY(2.5rem)">;
13
- protected readonly isMobile: import("@angular/core").Signal<boolean | undefined>;
14
- constructor();
15
- protected get size(): TuiDialogSize;
16
- protected get header(): PolymorpheusContent<TuiPopover<TuiDialogOptions<I>, O>>;
17
- private close;
10
+ protected readonly context: TuiPopover<TuiDialogOptions<I>, O>;
11
+ protected readonly primitive: boolean;
12
+ protected readonly sub: import("rxjs").Subscription;
18
13
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiDialogComponent<any, any>, never>;
19
14
  static ɵcmp: i0.ɵɵComponentDeclaration<TuiDialogComponent<any, any>, "tui-dialog", never, {}, {}, never, never, true, [{ directive: typeof i1.TuiAnimated; inputs: {}; outputs: {}; }]>;
20
15
  }
@@ -1,5 +1,5 @@
1
1
  import { TuiPopoverDirective } from '@taiga-ui/cdk/directives/popover';
2
- import { type TuiDialogOptions } from './dialog.interfaces';
2
+ import { type TuiDialogOptions } from './dialog.options';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class TuiDialog<T> extends TuiPopoverDirective<TuiDialogOptions<T>> {
5
5
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiDialog<any>, never>;
@@ -1,6 +1,6 @@
1
1
  import { type Injector } from '@angular/core';
2
2
  import { type Observable } from 'rxjs';
3
- import { type TuiDialogContext, type TuiDialogOptions } from './dialog.interfaces';
3
+ import { type TuiDialogContext, type TuiDialogOptions } from './dialog.options';
4
4
  type SingleUnionOrNever<T, U = T> = [T] extends [never] ? never : T extends U ? [U] extends [T] ? T : never : never;
5
5
  type ReplaceAny<T> = 0 extends T & 1 ? void : T;
6
6
  type ContextKeys<T> = {
@@ -0,0 +1,26 @@
1
+ import { type TuiPopoverContext } from '@taiga-ui/cdk/services';
2
+ import { type TuiSizeL, type TuiSizeS } from '@taiga-ui/core/types';
3
+ import { type Observable } from 'rxjs';
4
+ /**
5
+ * Options for a dialog
6
+ *
7
+ * appearance - data-appearance attribute of the dialog ('taiga' by default)
8
+ * closable - show close button (true by default)
9
+ * data - arbitrary data for dialog
10
+ * dismissible - close dialog by Esc button or click on overlay (true by default)
11
+ * label - string title for the dialog ('' by default)
12
+ * required - dismissing or closing dialog by X button throws (false by default)
13
+ * size - size of the dialog ('m' by default)
14
+ */
15
+ export interface TuiDialogOptions<I> {
16
+ readonly appearance: string;
17
+ readonly closable: Observable<boolean> | boolean;
18
+ readonly data: I extends void ? undefined : I;
19
+ readonly dismissible: Observable<boolean> | boolean;
20
+ readonly label: string;
21
+ readonly required: boolean;
22
+ readonly size: TuiSizeL | TuiSizeS;
23
+ }
24
+ export interface TuiDialogContext<O = void, I = undefined> extends TuiPopoverContext<O>, TuiDialogOptions<I> {
25
+ }
26
+ export declare const TUI_DIALOG_OPTIONS: import("@angular/core").InjectionToken<TuiDialogOptions<void>>, tuiDialogOptionsProvider: (item: Partial<TuiDialogOptions<void>> | (() => Partial<TuiDialogOptions<void>>)) => import("@angular/core").FactoryProvider;
@@ -1,5 +1,8 @@
1
- import { Observable } from 'rxjs';
1
+ import { InjectionToken } from '@angular/core';
2
+ import { BehaviorSubject, Observable } from 'rxjs';
2
3
  import * as i0 from "@angular/core";
4
+ export declare const TUI_DIALOGS: InjectionToken<BehaviorSubject<readonly any[]>>;
5
+ export declare const TUI_DIALOGS_CLOSE: InjectionToken<Observable<unknown>>;
3
6
  export declare class TuiDialogCloseService extends Observable<unknown> {
4
7
  private readonly win;
5
8
  private readonly doc;
@@ -1,5 +1,5 @@
1
1
  import { TuiPopoverService } from '@taiga-ui/cdk/services';
2
- import { type TuiDialogOptions } from './dialog.interfaces';
2
+ import { type TuiDialogOptions } from './dialog.options';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class TuiDialogService extends TuiPopoverService<TuiDialogOptions<any>> {
5
5
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiDialogService, never>;
@@ -1,8 +1,7 @@
1
1
  export * from './dialog.component';
2
2
  export * from './dialog.directive';
3
3
  export * from './dialog.factory';
4
- export type * from './dialog.interfaces';
4
+ export * from './dialog.options';
5
+ export * from './dialog.providers';
5
6
  export * from './dialog.service';
6
- export * from './dialog.tokens';
7
- export * from './dialog-close.service';
8
7
  export * from './dialogs.component';
@@ -1,30 +1,11 @@
1
- import { type NgIfContext } from '@angular/common';
2
- import { TemplateRef } from '@angular/core';
1
+ import { type OnInit, TemplateRef } from '@angular/core';
3
2
  import * as i0 from "@angular/core";
4
- /**
5
- * An event indicating that async data for expand has finished loading.
6
- * Dispatch to finish loading states for {@link TuiExpandComponent}.
7
- */
8
- export declare const TUI_EXPAND_LOADED = "tui-expand-loaded";
9
- /**
10
- * @deprecated use {@link TuiExpand} from @taiga-ui/experimental
11
- */
12
- export declare class TuiExpandComponent {
13
- private readonly contentWrapper?;
14
- private readonly cdr;
15
- private readonly destroyRef;
16
- private state;
17
- protected content: TemplateRef<NgIfContext<boolean>> | null;
18
- protected expanded: boolean | null;
19
- async: boolean;
20
- set expandedSetter(expanded: boolean | null);
21
- get contentVisible(): boolean;
22
- protected get overflow(): boolean;
23
- protected get loading(): boolean;
24
- protected get height(): number | null;
25
- protected onTransitionEnd({ propertyName, pseudoElement }: TransitionEvent): void;
26
- protected onExpandLoaded(event: Event): void;
27
- private retrigger;
28
- static ɵfac: i0.ɵɵFactoryDeclaration<TuiExpandComponent, never>;
29
- static ɵcmp: i0.ɵɵComponentDeclaration<TuiExpandComponent, "tui-expand", never, { "async": { "alias": "async"; "required": false; }; "expandedSetter": { "alias": "expanded"; "required": false; }; }, {}, ["content"], ["*"], true, never>;
3
+ export declare class TuiExpand implements OnInit {
4
+ protected readonly content: import("@angular/core").Signal<TemplateRef<any> | undefined>;
5
+ protected readonly open: import("@angular/core").WritableSignal<boolean>;
6
+ readonly expanded: import("@angular/core").InputSignal<boolean>;
7
+ ngOnInit(): void;
8
+ protected onTransitionEnd({ propertyName }: TransitionEvent): void;
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<TuiExpand, never>;
10
+ static ɵcmp: i0.ɵɵComponentDeclaration<TuiExpand, "tui-expand", never, { "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; }, {}, ["content"], ["*"], true, never>;
30
11
  }
@@ -1,3 +1 @@
1
- export * from './expand';
2
1
  export * from './expand.component';
3
- export * from './expand-content.directive';
@@ -0,0 +1,17 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare const TUI_HEADER_OPTIONS: import("@angular/core").InjectionToken<{
3
+ size: "" | "body-l" | "body-m" | "body-xl" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6";
4
+ }>, tuiHeaderOptionsProvider: (item: Partial<{
5
+ size: "" | "body-l" | "body-m" | "body-xl" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6";
6
+ }> | (() => Partial<{
7
+ size: "" | "body-l" | "body-m" | "body-xl" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6";
8
+ }>)) => import("@angular/core").FactoryProvider;
9
+ export declare class TuiHeader {
10
+ protected readonly nothing: undefined;
11
+ protected readonly options: {
12
+ size: "" | "body-l" | "body-m" | "body-xl" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6";
13
+ };
14
+ readonly tuiHeader: import("@angular/core").InputSignal<"" | "body-l" | "body-m" | "body-xl" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6">;
15
+ static ɵfac: i0.ɵɵFactoryDeclaration<TuiHeader, never>;
16
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TuiHeader, "[tuiHeader]", never, { "tuiHeader": { "alias": "tuiHeader"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
17
+ }
@@ -0,0 +1 @@
1
+ export * from './header.directive';
@@ -1,11 +1,12 @@
1
1
  export * from '@taiga-ui/core/components/alert';
2
2
  export * from '@taiga-ui/core/components/button';
3
3
  export * from '@taiga-ui/core/components/calendar';
4
+ export * from '@taiga-ui/core/components/cell';
4
5
  export * from '@taiga-ui/core/components/data-list';
5
6
  export * from '@taiga-ui/core/components/dialog';
6
7
  export * from '@taiga-ui/core/components/error';
7
8
  export * from '@taiga-ui/core/components/expand';
8
- export * from '@taiga-ui/core/components/fullscreen';
9
+ export * from '@taiga-ui/core/components/header';
9
10
  export * from '@taiga-ui/core/components/icon';
10
11
  export * from '@taiga-ui/core/components/label';
11
12
  export * from '@taiga-ui/core/components/link';
@@ -2,7 +2,6 @@ import * as i0 from "@angular/core";
2
2
  import * as i1 from "@taiga-ui/cdk/directives/platform";
3
3
  import * as i2 from "@taiga-ui/cdk/directives/visual-viewport";
4
4
  import * as i3 from "@taiga-ui/cdk/directives/font-size";
5
- import * as i4 from "@taiga-ui/cdk/directives/active-zone";
6
5
  export declare class TuiRoot {
7
6
  private readonly doc;
8
7
  private readonly el;
@@ -14,5 +13,5 @@ export declare class TuiRoot {
14
13
  protected readonly scrollbars: boolean;
15
14
  protected get parent(): boolean;
16
15
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiRoot, never>;
17
- static ɵcmp: i0.ɵɵComponentDeclaration<TuiRoot, "tui-root", never, {}, {}, never, ["*", "tuiOverContent", "tuiOverDialogs", "tuiOverAlerts", "tuiOverDropdowns", "tuiOverHints"], true, [{ directive: typeof i1.TuiPlatform; inputs: {}; outputs: {}; }, { directive: typeof i2.TuiVisualViewport; inputs: {}; outputs: {}; }, { directive: typeof i3.TuiFontSize; inputs: {}; outputs: {}; }, { directive: typeof i4.TuiActiveZone; inputs: {}; outputs: {}; }]>;
16
+ static ɵcmp: i0.ɵɵComponentDeclaration<TuiRoot, "tui-root", never, {}, {}, never, ["*", "tuiOverContent", "tuiOverDialogs", "tuiOverAlerts", "tuiOverDropdowns", "tuiOverHints"], true, [{ directive: typeof i1.TuiPlatform; inputs: {}; outputs: {}; }, { directive: typeof i2.TuiVisualViewport; inputs: {}; outputs: {}; }, { directive: typeof i3.TuiFontSize; inputs: {}; outputs: {}; }]>;
18
17
  }
@@ -6,9 +6,7 @@ export * from './textfield.options';
6
6
  export * from './textfield-accessor';
7
7
  export * from './textfield-auxiliary';
8
8
  export * from './textfield-content.directive';
9
- export * from './textfield-dropdown.directive';
10
9
  export * from './textfield-icon';
11
- export * from './with-native-picker.directive';
12
- export * from './select.directive';
13
10
  export * from './textfield-multi/textfield-item.component';
14
11
  export * from './textfield-multi/textfield-multi.component';
12
+ export * from './with-native-picker.directive';
@@ -5,10 +5,9 @@ import { TuiTextfieldBaseComponent } from '../textfield.component';
5
5
  import { type TuiTextfieldItem } from './textfield-item.component';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "@taiga-ui/core/directives/dropdown";
8
- import * as i2 from "../textfield-dropdown.directive";
9
- import * as i3 from "@taiga-ui/core/directives/icons";
10
- import * as i4 from "@taiga-ui/core/directives";
11
- import * as i5 from "@taiga-ui/core/components/data-list";
8
+ import * as i2 from "@taiga-ui/core/directives/icons";
9
+ import * as i3 from "@taiga-ui/core/directives";
10
+ import * as i4 from "@taiga-ui/core/components/data-list";
12
11
  export declare class TuiTextfieldMultiComponent<T> extends TuiTextfieldBaseComponent<T> {
13
12
  protected readonly height: import("@angular/core").WritableSignal<number | null>;
14
13
  protected readonly handlers: import("@taiga-ui/core/directives").TuiItemsHandlers<unknown>;
@@ -22,5 +21,5 @@ export declare class TuiTextfieldMultiComponent<T> extends TuiTextfieldBaseCompo
22
21
  protected onLeft(event: any): void;
23
22
  protected onClick(target: HTMLElement): void;
24
23
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiTextfieldMultiComponent<any>, never>;
25
- static ɵcmp: i0.ɵɵComponentDeclaration<TuiTextfieldMultiComponent<any>, "tui-textfield[multi]", never, { "rows": { "alias": "rows"; "required": false; }; }, {}, ["item"], ["label", "input", "select", "*", "tui-icon"], true, [{ directive: typeof i1.TuiDropdownFixed; inputs: {}; outputs: {}; }, { directive: typeof i1.TuiDropdownDirective; inputs: {}; outputs: {}; }, { directive: typeof i1.TuiWithDropdownOpen; inputs: {}; outputs: {}; }, { directive: typeof i2.TuiWithTextfieldDropdown; inputs: {}; outputs: {}; }, { directive: typeof i3.TuiWithIcons; inputs: {}; outputs: {}; }, { directive: typeof i4.TuiWithItemsHandlers; inputs: {}; outputs: {}; }, { directive: typeof i5.TuiWithOptionContent; inputs: {}; outputs: {}; }, { directive: typeof i4.TuiWithAppearance; inputs: {}; outputs: {}; }]>;
24
+ static ɵcmp: i0.ɵɵComponentDeclaration<TuiTextfieldMultiComponent<any>, "tui-textfield[multi]", never, { "rows": { "alias": "rows"; "required": false; }; }, {}, ["item"], ["label", "input", "select", "*", "tui-icon"], true, [{ directive: typeof i1.TuiDropdownFixed; inputs: {}; outputs: {}; }, { directive: typeof i1.TuiDropdownDirective; inputs: {}; outputs: {}; }, { directive: typeof i1.TuiWithDropdownOpen; inputs: {}; outputs: {}; }, { directive: typeof i2.TuiWithIcons; inputs: {}; outputs: {}; }, { directive: typeof i3.TuiWithItemsHandlers; inputs: {}; outputs: {}; }, { directive: typeof i4.TuiWithOptionContent; inputs: {}; outputs: {}; }, { directive: typeof i3.TuiWithAppearance; inputs: {}; outputs: {}; }]>;
26
25
  }
@@ -13,7 +13,6 @@ import * as i2 from "@taiga-ui/cdk/directives/transitioned";
13
13
  import * as i3 from "@taiga-ui/core/directives/icons";
14
14
  import * as i4 from "@taiga-ui/core/directives/items-handlers";
15
15
  import * as i5 from "@taiga-ui/core/components/data-list";
16
- import * as i6 from "./textfield-dropdown.directive";
17
16
  export declare class TuiTextfieldBaseComponent<T> implements TuiDataListHost<T>, AfterContentChecked {
18
17
  private readonly filler;
19
18
  private readonly autoId;
@@ -56,5 +55,5 @@ export declare class TuiTextfieldBaseComponent<T> implements TuiDataListHost<T>,
56
55
  }
57
56
  export declare class TuiTextfieldComponent<T> extends TuiTextfieldBaseComponent<T> {
58
57
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiTextfieldComponent<any>, never>;
59
- static ɵcmp: i0.ɵɵComponentDeclaration<TuiTextfieldComponent<any>, "tui-textfield:not([multi])", never, {}, {}, never, ["input", "select", "textarea", "label", "*", "tui-icon"], true, [{ directive: typeof i1.TuiDropdownDirective; inputs: {}; outputs: {}; }, { directive: typeof i1.TuiDropdownFixed; inputs: {}; outputs: {}; }, { directive: typeof i2.TuiTransitioned; inputs: {}; outputs: {}; }, { directive: typeof i1.TuiWithDropdownOpen; inputs: {}; outputs: {}; }, { directive: typeof i3.TuiWithIcons; inputs: {}; outputs: {}; }, { directive: typeof i4.TuiWithItemsHandlers; inputs: {}; outputs: {}; }, { directive: typeof i5.TuiWithOptionContent; inputs: {}; outputs: {}; }, { directive: typeof i6.TuiWithTextfieldDropdown; inputs: {}; outputs: {}; }]>;
58
+ static ɵcmp: i0.ɵɵComponentDeclaration<TuiTextfieldComponent<any>, "tui-textfield:not([multi])", never, {}, {}, never, ["input", "select", "textarea", "label", "*", "tui-icon"], true, [{ directive: typeof i1.TuiDropdownDirective; inputs: {}; outputs: {}; }, { directive: typeof i1.TuiDropdownFixed; inputs: {}; outputs: {}; }, { directive: typeof i2.TuiTransitioned; inputs: {}; outputs: {}; }, { directive: typeof i1.TuiWithDropdownOpen; inputs: {}; outputs: {}; }, { directive: typeof i3.TuiWithIcons; inputs: {}; outputs: {}; }, { directive: typeof i4.TuiWithItemsHandlers; inputs: {}; outputs: {}; }, { directive: typeof i5.TuiWithOptionContent; inputs: {}; outputs: {}; }]>;
60
59
  }
@@ -1,9 +1,8 @@
1
1
  import { TuiItem } from '@taiga-ui/cdk/directives/item';
2
2
  import { TuiLabel } from '@taiga-ui/core/components/label';
3
- import { TuiSelect } from './select.directive';
3
+ import { TuiDropdownContent } from '@taiga-ui/core/directives/dropdown';
4
4
  import { TuiTextfieldComponent } from './textfield.component';
5
5
  import { TuiTextfieldDirective } from './textfield.directive';
6
6
  import { TuiTextfieldOptionsDirective } from './textfield.options';
7
- import { TuiTextfieldDropdownDirective } from './textfield-dropdown.directive';
8
7
  import { TuiTextfieldMultiComponent } from './textfield-multi/textfield-multi.component';
9
- export declare const TuiTextfield: readonly [typeof TuiItem, typeof TuiLabel, typeof TuiSelect, typeof TuiTextfieldComponent, typeof TuiTextfieldDirective, typeof TuiTextfieldOptionsDirective, typeof TuiTextfieldDropdownDirective, typeof TuiTextfieldMultiComponent];
8
+ export declare const TuiTextfield: readonly [typeof TuiItem, typeof TuiLabel, typeof TuiTextfieldComponent, typeof TuiTextfieldDirective, typeof TuiTextfieldOptionsDirective, typeof TuiTextfieldMultiComponent, typeof TuiDropdownContent];
@@ -0,0 +1,9 @@
1
+ import { type OnDestroy } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class TuiDropdownContent implements OnDestroy {
4
+ private readonly directive;
5
+ constructor();
6
+ ngOnDestroy(): void;
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<TuiDropdownContent, never>;
8
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TuiDropdownContent, "ng-template[tuiDropdown]", never, {}, {}, never, never, true, never>;
9
+ }
@@ -1,14 +1,14 @@
1
1
  import { TuiDropdownComponent } from './dropdown.component';
2
2
  import { TuiDropdownDirective } from './dropdown.directive';
3
3
  import { TuiDropdownDriverDirective } from './dropdown.driver';
4
+ import { TuiDropdownContent } from './dropdown-content.directive';
4
5
  import { TuiDropdownContext } from './dropdown-context.directive';
5
6
  import { TuiDropdownHover } from './dropdown-hover.directive';
6
7
  import { TuiDropdownManual } from './dropdown-manual.directive';
7
8
  import { TuiDropdownOpen } from './dropdown-open.directive';
8
9
  import { TuiDropdownOpenLegacy } from './dropdown-open-legacy.directive';
9
10
  import { TuiDropdownOptionsDirective } from './dropdown-options.directive';
10
- import { TuiDropdownPortal } from './dropdown-portal.directive';
11
11
  import { TuiDropdownPosition } from './dropdown-position.directive';
12
12
  import { TuiDropdownPositionSided } from './dropdown-position-sided.directive';
13
13
  import { TuiDropdownSelection } from './dropdown-selection.directive';
14
- export declare const TuiDropdown: readonly [typeof TuiDropdownOptionsDirective, typeof TuiDropdownDriverDirective, typeof TuiDropdownDirective, typeof TuiDropdownComponent, typeof TuiDropdownOpen, typeof TuiDropdownOpenLegacy, typeof TuiDropdownPortal, typeof TuiDropdownManual, typeof TuiDropdownHover, typeof TuiDropdownContext, typeof TuiDropdownPosition, typeof TuiDropdownPositionSided, typeof TuiDropdownSelection];
14
+ export declare const TuiDropdown: readonly [typeof TuiDropdownOptionsDirective, typeof TuiDropdownDriverDirective, typeof TuiDropdownDirective, typeof TuiDropdownComponent, typeof TuiDropdownOpen, typeof TuiDropdownOpenLegacy, typeof TuiDropdownManual, typeof TuiDropdownHover, typeof TuiDropdownContent, typeof TuiDropdownContext, typeof TuiDropdownPosition, typeof TuiDropdownPositionSided, typeof TuiDropdownSelection];
@@ -5,6 +5,7 @@ export * from './dropdown.directive';
5
5
  export * from './dropdown.driver';
6
6
  export * from './dropdown.providers';
7
7
  export * from './dropdown.service';
8
+ export * from './dropdown-content.directive';
8
9
  export * from './dropdown-context.directive';
9
10
  export * from './dropdown-hover.directive';
10
11
  export * from './dropdown-hover.options';
@@ -13,7 +14,6 @@ export * from './dropdown-manual.directive';
13
14
  export * from './dropdown-open.directive';
14
15
  export * from './dropdown-open-legacy.directive';
15
16
  export * from './dropdown-options.directive';
16
- export * from './dropdown-portal.directive';
17
17
  export * from './dropdown-position.directive';
18
18
  export * from './dropdown-position-sided.directive';
19
19
  export * from './dropdown-selection.directive';
@@ -1,11 +1,11 @@
1
1
  import { type FactoryProvider, InjectionToken, type OnChanges } from '@angular/core';
2
+ import { type TuiAppearanceOptions } from '@taiga-ui/core/directives/appearance';
2
3
  import { type PolymorpheusContent } from '@taiga-ui/polymorpheus';
3
4
  import { Subject } from 'rxjs';
4
5
  import * as i0 from "@angular/core";
5
6
  export type TuiHintDirection = 'bottom-left' | 'bottom-right' | 'bottom' | 'left-bottom' | 'left-top' | 'left' | 'right-bottom' | 'right-top' | 'right' | 'top-left' | 'top-right' | 'top';
6
7
  export declare const TUI_HINT_DIRECTIONS: readonly TuiHintDirection[];
7
- export interface TuiHintOptions {
8
- readonly appearance: string;
8
+ export interface TuiHintOptions extends TuiAppearanceOptions {
9
9
  readonly direction: TuiHintDirection | TuiHintDirection[];
10
10
  readonly hideDelay: number;
11
11
  readonly icon: string;
@@ -25,7 +25,7 @@ export declare class TuiHintOptionsDirective implements TuiHintOptions, OnChange
25
25
  private readonly options;
26
26
  content: PolymorpheusContent;
27
27
  direction: TuiHintDirection | TuiHintDirection[];
28
- appearance: string;
28
+ appearance: "accent" | "action-destructive" | "action-grayscale" | "action" | "flat-destructive" | "flat-grayscale" | "flat" | "floating" | "glass" | "icon" | "info" | "negative" | "neutral" | "outline-destructive" | "outline-grayscale" | "outline" | "positive" | "primary-destructive" | "primary-grayscale" | "primary" | "secondary-destructive" | "secondary-grayscale" | "secondary" | "textfield" | "warning" | (Record<never, never> & string);
29
29
  showDelay: number;
30
30
  hideDelay: number;
31
31
  icon: string;
@@ -4,9 +4,10 @@ import { TuiPositionService } from '@taiga-ui/core/services';
4
4
  import { TuiHintDirective } from './hint.directive';
5
5
  import { TuiHintPointer } from './hint-pointer.directive';
6
6
  import * as i0 from "@angular/core";
7
- import * as i1 from "@taiga-ui/cdk/directives/animated";
7
+ import * as i1 from "@taiga-ui/core/directives/appearance";
8
+ import * as i2 from "@taiga-ui/cdk/directives/animated";
8
9
  export declare const TUI_HINT_PROVIDERS: (import("@angular/core").FactoryProvider | typeof TuiHoveredService | typeof TuiPositionService)[];
9
- export declare class TuiHintBaseComponent<C = any> {
10
+ export declare class TuiHintComponent<C = any> {
10
11
  private readonly el;
11
12
  private readonly hover;
12
13
  private readonly vvs;
@@ -16,15 +17,12 @@ export declare class TuiHintBaseComponent<C = any> {
16
17
  protected readonly hint: TuiHintDirective<C>;
17
18
  protected readonly isMobile: boolean;
18
19
  protected readonly content: import("@angular/core").WritableSignal<import("@taiga-ui/polymorpheus").PolymorpheusContent<C>>;
19
- protected readonly appearance: string | null | undefined;
20
+ protected readonly theme: string | null | undefined;
21
+ protected readonly appearance: import("@angular/core").WritableSignal<string>;
20
22
  constructor();
21
23
  protected onClick(target: HTMLElement): void;
22
24
  private apply;
23
25
  private update;
24
- static ɵfac: i0.ɵɵFactoryDeclaration<TuiHintBaseComponent<any>, never>;
25
- static ɵcmp: i0.ɵɵComponentDeclaration<TuiHintBaseComponent<any>, "ng-component", never, {}, {}, never, never, true, never>;
26
- }
27
- export declare class TuiHintComponent<C = any> extends TuiHintBaseComponent<C> {
28
26
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiHintComponent<any>, never>;
29
- static ɵcmp: i0.ɵɵComponentDeclaration<TuiHintComponent<any>, "tui-hint", never, {}, {}, never, ["*"], true, [{ directive: typeof i1.TuiAnimated; inputs: {}; outputs: {}; }]>;
27
+ static ɵcmp: i0.ɵɵComponentDeclaration<TuiHintComponent<any>, "tui-hint", never, {}, {}, never, ["*"], true, [{ directive: typeof i1.TuiAppearance; inputs: {}; outputs: {}; }, { directive: typeof i2.TuiAnimated; inputs: {}; outputs: {}; }]>;
30
28
  }
@@ -10,7 +10,7 @@ import * as i3 from "./hint-position.directive";
10
10
  export declare class TuiHintDirective<C> implements OnDestroy, TuiPortalItem<C>, TuiRectAccessor, TuiVehicle {
11
11
  private readonly service;
12
12
  context?: C;
13
- appearance: string;
13
+ appearance: "accent" | "action-destructive" | "action-grayscale" | "action" | "flat-destructive" | "flat-grayscale" | "flat" | "floating" | "glass" | "icon" | "info" | "negative" | "neutral" | "outline-destructive" | "outline-grayscale" | "outline" | "positive" | "primary-destructive" | "primary-grayscale" | "primary" | "secondary-destructive" | "secondary-grayscale" | "secondary" | "textfield" | "warning" | (Record<never, never> & string);
14
14
  readonly visible: EventEmitter<boolean>;
15
15
  content: import("@angular/core").WritableSignal<PolymorpheusContent<C>>;
16
16
  component: PolymorpheusComponent<any>;
@@ -7,5 +7,4 @@ export * from '@taiga-ui/core/directives/icons';
7
7
  export * from '@taiga-ui/core/directives/items-handlers';
8
8
  export * from '@taiga-ui/core/directives/number-format';
9
9
  export * from '@taiga-ui/core/directives/popup';
10
- export * from '@taiga-ui/core/directives/surface';
11
10
  export * from '@taiga-ui/core/directives/title';
@@ -19,7 +19,7 @@ import { TuiMapperPipe } from '@taiga-ui/cdk/pipes/mapper';
19
19
  const TUI_ALERT_DEFAULT_OPTIONS = {
20
20
  autoClose: 3000,
21
21
  label: '',
22
- closeable: true,
22
+ closable: true,
23
23
  data: undefined,
24
24
  };
25
25
  const TUI_ALERT_OPTIONS = new InjectionToken(ngDevMode ? 'TUI_ALERT_OPTIONS' : '', {
@@ -80,7 +80,7 @@ class TuiAlertComponent {
80
80
  return this.position.endsWith('auto') ? 'translateX(100%)' : 'translateX(-100%)';
81
81
  }
82
82
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiAlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
83
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: TuiAlertComponent, isStandalone: true, selector: "tui-alert", host: { attributes: { "role": "alert" }, properties: { "style.margin": "position", "style.--tui-from": "from" } }, hostDirectives: [{ directive: i1.TuiAnimated }], ngImport: i0, template: "<div class=\"t-wrapper\">\n <tui-notification\n size=\"m\"\n [appearance]=\"item.appearance\"\n [class.t-closeable]=\"item.closeable\"\n [icon]=\"item.icon\"\n >\n <span tuiTitle>\n <ng-container *polymorpheusOutlet=\"item.label as text; context: item\">\n {{ text }}\n </ng-container>\n <span tuiSubtitle>\n <span\n *polymorpheusOutlet=\"item.content as text; context: item\"\n [innerHTML]=\"text\"\n ></span>\n </span>\n </span>\n @if (item.closeable) {\n <button\n tuiIconButton\n type=\"button\"\n [iconStart]=\"icons.close\"\n (click)=\"item.$implicit.complete()\"\n >\n {{ close() }}\n </button>\n }\n </tui-notification>\n</div>\n", styles: [":host{display:grid;inline-size:18rem;flex-shrink:0;word-break:break-word}:host.tui-enter,:host.tui-leave{animation-name:tuiFade,tuiSlide,tuiCollapse}:host:not(:first-child){margin-block-start:0!important}:host:not(:last-child){margin-block-end:0!important}.t-wrapper{transition-property:margin;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;grid-row:1 / span 2;overflow:hidden;margin-block-end:.75rem;background:var(--tui-background-base);border-radius:var(--tui-radius-m);box-shadow:var(--tui-shadow-medium)}:host.tui-leave .t-wrapper{margin:0}.t-closeable{padding-inline-end:2.5rem}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "directive", type: TuiNotification, selector: "tui-notification,a[tuiNotification],button[tuiNotification]", inputs: ["appearance", "icon", "size"] }, { kind: "directive", type: TuiTitle, selector: "[tuiTitle]", inputs: ["tuiTitle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
83
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: TuiAlertComponent, isStandalone: true, selector: "tui-alert", host: { attributes: { "role": "alert" }, properties: { "style.margin": "position", "style.--tui-from": "from" } }, hostDirectives: [{ directive: i1.TuiAnimated }], ngImport: i0, template: "<div class=\"t-wrapper\">\n <tui-notification\n size=\"m\"\n [appearance]=\"item.appearance\"\n [class.t-closable]=\"item.closable\"\n [icon]=\"item.icon\"\n >\n <span tuiTitle>\n <ng-container *polymorpheusOutlet=\"item.label as text; context: item\">\n {{ text }}\n </ng-container>\n <span tuiSubtitle>\n <span\n *polymorpheusOutlet=\"item.content as text; context: item\"\n [innerHTML]=\"text\"\n ></span>\n </span>\n </span>\n @if (item.closable) {\n <button\n tuiIconButton\n type=\"button\"\n [iconStart]=\"icons.close\"\n (click)=\"item.$implicit.complete()\"\n >\n {{ close() }}\n </button>\n }\n </tui-notification>\n</div>\n", styles: [":host{display:grid;inline-size:18rem;flex-shrink:0;word-break:break-word}:host.tui-enter,:host.tui-leave{animation-name:tuiFade,tuiSlide,tuiCollapse}:host:not(:first-child){margin-block-start:0!important}:host:not(:last-child){margin-block-end:0!important}.t-wrapper{transition-property:margin;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;grid-row:1 / span 2;overflow:hidden;margin-block-end:.75rem;background:var(--tui-background-base);border-radius:var(--tui-radius-m);box-shadow:var(--tui-shadow-medium)}:host.tui-leave .t-wrapper{margin:0}.t-closable{padding-inline-end:2.5rem}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "directive", type: TuiNotification, selector: "tui-notification,a[tuiNotification],button[tuiNotification]", inputs: ["appearance", "icon", "size"] }, { kind: "directive", type: TuiTitle, selector: "[tuiTitle]", inputs: ["tuiTitle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
84
84
  }
85
85
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiAlertComponent, decorators: [{
86
86
  type: Component,
@@ -88,7 +88,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
88
88
  role: 'alert',
89
89
  '[style.margin]': 'position',
90
90
  '[style.--tui-from]': 'from',
91
- }, template: "<div class=\"t-wrapper\">\n <tui-notification\n size=\"m\"\n [appearance]=\"item.appearance\"\n [class.t-closeable]=\"item.closeable\"\n [icon]=\"item.icon\"\n >\n <span tuiTitle>\n <ng-container *polymorpheusOutlet=\"item.label as text; context: item\">\n {{ text }}\n </ng-container>\n <span tuiSubtitle>\n <span\n *polymorpheusOutlet=\"item.content as text; context: item\"\n [innerHTML]=\"text\"\n ></span>\n </span>\n </span>\n @if (item.closeable) {\n <button\n tuiIconButton\n type=\"button\"\n [iconStart]=\"icons.close\"\n (click)=\"item.$implicit.complete()\"\n >\n {{ close() }}\n </button>\n }\n </tui-notification>\n</div>\n", styles: [":host{display:grid;inline-size:18rem;flex-shrink:0;word-break:break-word}:host.tui-enter,:host.tui-leave{animation-name:tuiFade,tuiSlide,tuiCollapse}:host:not(:first-child){margin-block-start:0!important}:host:not(:last-child){margin-block-end:0!important}.t-wrapper{transition-property:margin;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;grid-row:1 / span 2;overflow:hidden;margin-block-end:.75rem;background:var(--tui-background-base);border-radius:var(--tui-radius-m);box-shadow:var(--tui-shadow-medium)}:host.tui-leave .t-wrapper{margin:0}.t-closeable{padding-inline-end:2.5rem}\n"] }]
91
+ }, template: "<div class=\"t-wrapper\">\n <tui-notification\n size=\"m\"\n [appearance]=\"item.appearance\"\n [class.t-closable]=\"item.closable\"\n [icon]=\"item.icon\"\n >\n <span tuiTitle>\n <ng-container *polymorpheusOutlet=\"item.label as text; context: item\">\n {{ text }}\n </ng-container>\n <span tuiSubtitle>\n <span\n *polymorpheusOutlet=\"item.content as text; context: item\"\n [innerHTML]=\"text\"\n ></span>\n </span>\n </span>\n @if (item.closable) {\n <button\n tuiIconButton\n type=\"button\"\n [iconStart]=\"icons.close\"\n (click)=\"item.$implicit.complete()\"\n >\n {{ close() }}\n </button>\n }\n </tui-notification>\n</div>\n", styles: [":host{display:grid;inline-size:18rem;flex-shrink:0;word-break:break-word}:host.tui-enter,:host.tui-leave{animation-name:tuiFade,tuiSlide,tuiCollapse}:host:not(:first-child){margin-block-start:0!important}:host:not(:last-child){margin-block-end:0!important}.t-wrapper{transition-property:margin;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;grid-row:1 / span 2;overflow:hidden;margin-block-end:.75rem;background:var(--tui-background-base);border-radius:var(--tui-radius-m);box-shadow:var(--tui-shadow-medium)}:host.tui-leave .t-wrapper{margin:0}.t-closable{padding-inline-end:2.5rem}\n"] }]
92
92
  }] });
93
93
 
94
94
  class TuiAlertService extends TuiPopoverService {
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-components-alert.mjs","sources":["../../../projects/core/components/alert/alert.tokens.ts","../../../projects/core/components/alert/alert.component.ts","../../../projects/core/components/alert/alert.template.html","../../../projects/core/components/alert/alert.service.ts","../../../projects/core/components/alert/alert.directive.ts","../../../projects/core/components/alert/alerts.component.ts","../../../projects/core/components/alert/alerts.template.html","../../../projects/core/components/alert/taiga-ui-core-components-alert.ts"],"sourcesContent":["import {type FactoryProvider, inject, InjectionToken, type Type} from '@angular/core';\nimport {type TuiPopover} from '@taiga-ui/cdk/services';\nimport {TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport {TUI_NOTIFICATION_OPTIONS} from '@taiga-ui/core/components/notification';\nimport {BehaviorSubject, combineLatest, map, of} from 'rxjs';\n\nimport {type TuiAlertOptions} from './alert.interfaces';\n\nexport const TUI_ALERT_DEFAULT_OPTIONS: Omit<TuiAlertOptions, 'appearance' | 'icon'> = {\n autoClose: 3000,\n label: '',\n closeable: true,\n data: undefined,\n};\n\nexport const TUI_ALERT_OPTIONS = new InjectionToken<TuiAlertOptions>(\n ngDevMode ? 'TUI_ALERT_OPTIONS' : '',\n {\n factory: () => ({\n ...TUI_ALERT_DEFAULT_OPTIONS,\n ...inject(TUI_NOTIFICATION_OPTIONS),\n }),\n },\n);\n\nexport const TUI_ALERT_POSITION = new InjectionToken<string>(\n ngDevMode ? 'TUI_ALERT_POSITION' : '',\n {\n factory: () => (inject(TUI_IS_MOBILE) ? '1rem 1rem 0 auto' : '2rem 3rem 0 auto'),\n },\n);\n\nexport const TUI_ALERTS = new InjectionToken(ngDevMode ? 'TUI_ALERTS' : '', {\n factory: () => new BehaviorSubject<ReadonlyArray<TuiPopover<any, any>>>([]),\n});\n\n/**\n * Grouping alerts by their component\n */\nexport const TUI_ALERTS_GROUPED = new InjectionToken(\n ngDevMode ? 'TUI_ALERTS_GROUPED' : '',\n {\n factory: () =>\n combineLatest([\n of(new Map<Type<any>, ReadonlyArray<TuiPopover<any, any>>>()),\n inject(TUI_ALERTS),\n ]).pipe(\n map(([map, alerts]) => {\n map.forEach((_, key) => map.set(key, []));\n\n alerts.forEach((alert) => {\n const key = alert.component.component;\n const value = map.get(key) || [];\n\n map.set(key, [...value, alert]);\n });\n\n return Array.from(map.values());\n }),\n ),\n },\n);\n\nexport function tuiAlertOptionsProvider(\n options: Partial<TuiAlertOptions>,\n): FactoryProvider {\n return {\n provide: TUI_ALERT_OPTIONS,\n useFactory: (): TuiAlertOptions => ({\n ...TUI_ALERT_DEFAULT_OPTIONS,\n ...(inject(TUI_ALERT_OPTIONS, {optional: true, skipSelf: true}) ||\n inject(TUI_NOTIFICATION_OPTIONS)),\n ...options,\n }),\n };\n}\n","import {ChangeDetectionStrategy, Component, inject} from '@angular/core';\nimport {takeUntilDestroyed, toSignal} from '@angular/core/rxjs-interop';\nimport {TuiAnimated} from '@taiga-ui/cdk/directives/animated';\nimport {type TuiPopover} from '@taiga-ui/cdk/services';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TuiNotification} from '@taiga-ui/core/components/notification';\nimport {TuiTitle} from '@taiga-ui/core/directives/title';\nimport {TUI_CLOSE_WORD, TUI_COMMON_ICONS} from '@taiga-ui/core/tokens';\nimport {injectContext, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\nimport {EMPTY, fromEvent, of, repeat, switchMap, takeUntil, timer} from 'rxjs';\n\nimport {type TuiAlertOptions} from './alert.interfaces';\nimport {TUI_ALERT_POSITION} from './alert.tokens';\n\n@Component({\n selector: 'tui-alert',\n imports: [PolymorpheusOutlet, TuiButton, TuiNotification, TuiTitle],\n templateUrl: './alert.template.html',\n styleUrls: ['./alert.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [TuiAnimated],\n host: {\n role: 'alert',\n '[style.margin]': 'position',\n '[style.--tui-from]': 'from',\n },\n})\nexport class TuiAlertComponent<O, I> {\n private readonly el = tuiInjectElement();\n\n protected readonly icons = inject(TUI_COMMON_ICONS);\n protected readonly close = toSignal(inject(TUI_CLOSE_WORD));\n protected readonly position = inject(TUI_ALERT_POSITION);\n protected readonly item = injectContext<TuiPopover<TuiAlertOptions<I>, O>>();\n\n protected readonly sub = of(\n typeof this.item.autoClose === 'function'\n ? this.item.autoClose(this.item.appearance)\n : this.item.autoClose,\n )\n .pipe(\n switchMap((autoClose) => (autoClose ? timer(autoClose) : EMPTY)),\n takeUntil(fromEvent(this.el, 'mouseenter')),\n repeat({delay: () => fromEvent(this.el, 'mouseleave')}),\n takeUntilDestroyed(),\n )\n .subscribe(() => this.item.$implicit.complete());\n\n public get from(): string {\n return this.position.endsWith('auto') ? 'translateX(100%)' : 'translateX(-100%)';\n }\n}\n","<div class=\"t-wrapper\">\n <tui-notification\n size=\"m\"\n [appearance]=\"item.appearance\"\n [class.t-closeable]=\"item.closeable\"\n [icon]=\"item.icon\"\n >\n <span tuiTitle>\n <ng-container *polymorpheusOutlet=\"item.label as text; context: item\">\n {{ text }}\n </ng-container>\n <span tuiSubtitle>\n <span\n *polymorpheusOutlet=\"item.content as text; context: item\"\n [innerHTML]=\"text\"\n ></span>\n </span>\n </span>\n @if (item.closeable) {\n <button\n tuiIconButton\n type=\"button\"\n [iconStart]=\"icons.close\"\n (click)=\"item.$implicit.complete()\"\n >\n {{ close() }}\n </button>\n }\n </tui-notification>\n</div>\n","import {inject, Injectable} from '@angular/core';\nimport {TuiPopoverService} from '@taiga-ui/cdk/services';\n\nimport {TuiAlertComponent} from './alert.component';\nimport {type TuiAlertOptions} from './alert.interfaces';\nimport {TUI_ALERT_OPTIONS, TUI_ALERTS} from './alert.tokens';\n\n@Injectable({\n providedIn: 'root',\n useFactory: () =>\n new TuiAlertService(TUI_ALERTS, TuiAlertComponent, inject(TUI_ALERT_OPTIONS)),\n})\nexport class TuiAlertService extends TuiPopoverService<TuiAlertOptions<any>> {}\n","import {Directive} from '@angular/core';\nimport {TuiPopoverDirective} from '@taiga-ui/cdk/directives/popover';\nimport {tuiAsPopover} from '@taiga-ui/cdk/services';\n\nimport {type TuiAlertOptions} from './alert.interfaces';\nimport {TuiAlertService} from './alert.service';\n\n@Directive({\n standalone: true,\n selector: 'ng-template[tuiAlert]',\n inputs: ['options: tuiAlertOptions', 'open: tuiAlert'],\n outputs: ['openChange: tuiAlertChange'],\n providers: [tuiAsPopover(TuiAlertService)],\n})\nexport class TuiAlert<T> extends TuiPopoverDirective<TuiAlertOptions<T>> {}\n","import {AsyncPipe, NgComponentOutlet} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n INJECTOR,\n Injector,\n type Type,\n ViewEncapsulation,\n} from '@angular/core';\nimport {TuiAnimatedParent} from '@taiga-ui/cdk/directives/animated';\nimport {TuiMapperPipe} from '@taiga-ui/cdk/pipes/mapper';\nimport {type TuiMapper} from '@taiga-ui/cdk/types';\n// eslint-disable-next-line no-restricted-imports\nimport {POLYMORPHEUS_CONTEXT} from '@taiga-ui/polymorpheus';\nimport {identity} from 'rxjs';\n\nimport {TUI_ALERTS_GROUPED} from './alert.tokens';\n\n@Component({\n selector: 'tui-alerts',\n imports: [AsyncPipe, NgComponentOutlet, TuiAnimatedParent, TuiMapperPipe],\n templateUrl: './alerts.template.html',\n styleUrls: ['./alerts.style.less'],\n encapsulation: ViewEncapsulation.None,\n // So that we do not force OnPush on custom alerts\n // eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class TuiAlerts {\n private readonly injector = inject(INJECTOR);\n\n protected readonly alerts$ = inject(TUI_ALERTS_GROUPED);\n protected readonly trackBy = identity;\n protected readonly mapper: TuiMapper<[Type<any>], Injector> = (useValue) =>\n Injector.create({\n providers: [\n {\n provide: POLYMORPHEUS_CONTEXT,\n useValue,\n },\n ],\n parent: this.injector,\n });\n}\n","@for (group of alerts$ | async; track trackBy(group)) {\n <div\n tuiAnimatedParent\n class=\"t-wrapper\"\n >\n @for (item of group; track item) {\n <ng-container\n [ngComponentOutlet]=\"item.component.component\"\n [ngComponentOutletInjector]=\"item | tuiMapper: mapper\"\n />\n }\n </div>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-core-components-alert.mjs","sources":["../../../projects/core/components/alert/alert.tokens.ts","../../../projects/core/components/alert/alert.component.ts","../../../projects/core/components/alert/alert.template.html","../../../projects/core/components/alert/alert.service.ts","../../../projects/core/components/alert/alert.directive.ts","../../../projects/core/components/alert/alerts.component.ts","../../../projects/core/components/alert/alerts.template.html","../../../projects/core/components/alert/taiga-ui-core-components-alert.ts"],"sourcesContent":["import {type FactoryProvider, inject, InjectionToken, type Type} from '@angular/core';\nimport {type TuiPopover} from '@taiga-ui/cdk/services';\nimport {TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport {TUI_NOTIFICATION_OPTIONS} from '@taiga-ui/core/components/notification';\nimport {BehaviorSubject, combineLatest, map, of} from 'rxjs';\n\nimport {type TuiAlertOptions} from './alert.interfaces';\n\nexport const TUI_ALERT_DEFAULT_OPTIONS: Omit<TuiAlertOptions, 'appearance' | 'icon'> = {\n autoClose: 3000,\n label: '',\n closable: true,\n data: undefined,\n};\n\nexport const TUI_ALERT_OPTIONS = new InjectionToken<TuiAlertOptions>(\n ngDevMode ? 'TUI_ALERT_OPTIONS' : '',\n {\n factory: () => ({\n ...TUI_ALERT_DEFAULT_OPTIONS,\n ...inject(TUI_NOTIFICATION_OPTIONS),\n }),\n },\n);\n\nexport const TUI_ALERT_POSITION = new InjectionToken<string>(\n ngDevMode ? 'TUI_ALERT_POSITION' : '',\n {\n factory: () => (inject(TUI_IS_MOBILE) ? '1rem 1rem 0 auto' : '2rem 3rem 0 auto'),\n },\n);\n\nexport const TUI_ALERTS = new InjectionToken(ngDevMode ? 'TUI_ALERTS' : '', {\n factory: () => new BehaviorSubject<ReadonlyArray<TuiPopover<any, any>>>([]),\n});\n\n/**\n * Grouping alerts by their component\n */\nexport const TUI_ALERTS_GROUPED = new InjectionToken(\n ngDevMode ? 'TUI_ALERTS_GROUPED' : '',\n {\n factory: () =>\n combineLatest([\n of(new Map<Type<any>, ReadonlyArray<TuiPopover<any, any>>>()),\n inject(TUI_ALERTS),\n ]).pipe(\n map(([map, alerts]) => {\n map.forEach((_, key) => map.set(key, []));\n\n alerts.forEach((alert) => {\n const key = alert.component.component;\n const value = map.get(key) || [];\n\n map.set(key, [...value, alert]);\n });\n\n return Array.from(map.values());\n }),\n ),\n },\n);\n\nexport function tuiAlertOptionsProvider(\n options: Partial<TuiAlertOptions>,\n): FactoryProvider {\n return {\n provide: TUI_ALERT_OPTIONS,\n useFactory: (): TuiAlertOptions => ({\n ...TUI_ALERT_DEFAULT_OPTIONS,\n ...(inject(TUI_ALERT_OPTIONS, {optional: true, skipSelf: true}) ||\n inject(TUI_NOTIFICATION_OPTIONS)),\n ...options,\n }),\n };\n}\n","import {ChangeDetectionStrategy, Component, inject} from '@angular/core';\nimport {takeUntilDestroyed, toSignal} from '@angular/core/rxjs-interop';\nimport {TuiAnimated} from '@taiga-ui/cdk/directives/animated';\nimport {type TuiPopover} from '@taiga-ui/cdk/services';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TuiNotification} from '@taiga-ui/core/components/notification';\nimport {TuiTitle} from '@taiga-ui/core/directives/title';\nimport {TUI_CLOSE_WORD, TUI_COMMON_ICONS} from '@taiga-ui/core/tokens';\nimport {injectContext, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\nimport {EMPTY, fromEvent, of, repeat, switchMap, takeUntil, timer} from 'rxjs';\n\nimport {type TuiAlertOptions} from './alert.interfaces';\nimport {TUI_ALERT_POSITION} from './alert.tokens';\n\n@Component({\n selector: 'tui-alert',\n imports: [PolymorpheusOutlet, TuiButton, TuiNotification, TuiTitle],\n templateUrl: './alert.template.html',\n styleUrls: ['./alert.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [TuiAnimated],\n host: {\n role: 'alert',\n '[style.margin]': 'position',\n '[style.--tui-from]': 'from',\n },\n})\nexport class TuiAlertComponent<O, I> {\n private readonly el = tuiInjectElement();\n\n protected readonly icons = inject(TUI_COMMON_ICONS);\n protected readonly close = toSignal(inject(TUI_CLOSE_WORD));\n protected readonly position = inject(TUI_ALERT_POSITION);\n protected readonly item = injectContext<TuiPopover<TuiAlertOptions<I>, O>>();\n\n protected readonly sub = of(\n typeof this.item.autoClose === 'function'\n ? this.item.autoClose(this.item.appearance)\n : this.item.autoClose,\n )\n .pipe(\n switchMap((autoClose) => (autoClose ? timer(autoClose) : EMPTY)),\n takeUntil(fromEvent(this.el, 'mouseenter')),\n repeat({delay: () => fromEvent(this.el, 'mouseleave')}),\n takeUntilDestroyed(),\n )\n .subscribe(() => this.item.$implicit.complete());\n\n public get from(): string {\n return this.position.endsWith('auto') ? 'translateX(100%)' : 'translateX(-100%)';\n }\n}\n","<div class=\"t-wrapper\">\n <tui-notification\n size=\"m\"\n [appearance]=\"item.appearance\"\n [class.t-closable]=\"item.closable\"\n [icon]=\"item.icon\"\n >\n <span tuiTitle>\n <ng-container *polymorpheusOutlet=\"item.label as text; context: item\">\n {{ text }}\n </ng-container>\n <span tuiSubtitle>\n <span\n *polymorpheusOutlet=\"item.content as text; context: item\"\n [innerHTML]=\"text\"\n ></span>\n </span>\n </span>\n @if (item.closable) {\n <button\n tuiIconButton\n type=\"button\"\n [iconStart]=\"icons.close\"\n (click)=\"item.$implicit.complete()\"\n >\n {{ close() }}\n </button>\n }\n </tui-notification>\n</div>\n","import {inject, Injectable} from '@angular/core';\nimport {TuiPopoverService} from '@taiga-ui/cdk/services';\n\nimport {TuiAlertComponent} from './alert.component';\nimport {type TuiAlertOptions} from './alert.interfaces';\nimport {TUI_ALERT_OPTIONS, TUI_ALERTS} from './alert.tokens';\n\n@Injectable({\n providedIn: 'root',\n useFactory: () =>\n new TuiAlertService(TUI_ALERTS, TuiAlertComponent, inject(TUI_ALERT_OPTIONS)),\n})\nexport class TuiAlertService extends TuiPopoverService<TuiAlertOptions<any>> {}\n","import {Directive} from '@angular/core';\nimport {TuiPopoverDirective} from '@taiga-ui/cdk/directives/popover';\nimport {tuiAsPopover} from '@taiga-ui/cdk/services';\n\nimport {type TuiAlertOptions} from './alert.interfaces';\nimport {TuiAlertService} from './alert.service';\n\n@Directive({\n standalone: true,\n selector: 'ng-template[tuiAlert]',\n inputs: ['options: tuiAlertOptions', 'open: tuiAlert'],\n outputs: ['openChange: tuiAlertChange'],\n providers: [tuiAsPopover(TuiAlertService)],\n})\nexport class TuiAlert<T> extends TuiPopoverDirective<TuiAlertOptions<T>> {}\n","import {AsyncPipe, NgComponentOutlet} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n INJECTOR,\n Injector,\n type Type,\n ViewEncapsulation,\n} from '@angular/core';\nimport {TuiAnimatedParent} from '@taiga-ui/cdk/directives/animated';\nimport {TuiMapperPipe} from '@taiga-ui/cdk/pipes/mapper';\nimport {type TuiMapper} from '@taiga-ui/cdk/types';\n// eslint-disable-next-line no-restricted-imports\nimport {POLYMORPHEUS_CONTEXT} from '@taiga-ui/polymorpheus';\nimport {identity} from 'rxjs';\n\nimport {TUI_ALERTS_GROUPED} from './alert.tokens';\n\n@Component({\n selector: 'tui-alerts',\n imports: [AsyncPipe, NgComponentOutlet, TuiAnimatedParent, TuiMapperPipe],\n templateUrl: './alerts.template.html',\n styleUrls: ['./alerts.style.less'],\n encapsulation: ViewEncapsulation.None,\n // So that we do not force OnPush on custom alerts\n // eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class TuiAlerts {\n private readonly injector = inject(INJECTOR);\n\n protected readonly alerts$ = inject(TUI_ALERTS_GROUPED);\n protected readonly trackBy = identity;\n protected readonly mapper: TuiMapper<[Type<any>], Injector> = (useValue) =>\n Injector.create({\n providers: [\n {\n provide: POLYMORPHEUS_CONTEXT,\n useValue,\n },\n ],\n parent: this.injector,\n });\n}\n","@for (group of alerts$ | async; track trackBy(group)) {\n <div\n tuiAnimatedParent\n class=\"t-wrapper\"\n >\n @for (item of group; track item) {\n <ng-container\n [ngComponentOutlet]=\"item.component.component\"\n [ngComponentOutletInjector]=\"item | tuiMapper: mapper\"\n />\n }\n </div>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}