@taiga-ui/core 4.52.0-canary.eb5ffe3 → 4.52.0-canary.ece97e9

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 (40) hide show
  1. package/components/dialog/dialog.directive.d.ts +4 -3
  2. package/components/dialog/dialog.service.d.ts +5 -2
  3. package/components/index.d.ts +1 -0
  4. package/components/link/link.directive.d.ts +2 -2
  5. package/components/loader/loader.component.d.ts +7 -7
  6. package/components/modal/index.d.ts +2 -0
  7. package/components/modal/modal.component.d.ts +17 -0
  8. package/components/modal/modal.service.d.ts +13 -0
  9. package/components/notification/notification.directive.d.ts +7 -11
  10. package/components/scrollbar/scroll-into-view.directive.d.ts +3 -2
  11. package/components/scrollbar/scrollbar.component.d.ts +2 -2
  12. package/components/scrollbar/scrollbar.directive.d.ts +2 -2
  13. package/components/spin-button/spin-button.component.d.ts +7 -8
  14. package/components/textfield/textfield-multi/textfield-multi.component.d.ts +2 -2
  15. package/components/textfield/textfield.component.d.ts +3 -4
  16. package/components/textfield/textfield.directive.d.ts +9 -12
  17. package/fesm2022/taiga-ui-core-components-calendar.mjs +5 -7
  18. package/fesm2022/taiga-ui-core-components-calendar.mjs.map +1 -1
  19. package/fesm2022/taiga-ui-core-components-dialog.mjs +29 -17
  20. package/fesm2022/taiga-ui-core-components-dialog.mjs.map +1 -1
  21. package/fesm2022/taiga-ui-core-components-link.mjs +5 -7
  22. package/fesm2022/taiga-ui-core-components-link.mjs.map +1 -1
  23. package/fesm2022/taiga-ui-core-components-loader.mjs +12 -25
  24. package/fesm2022/taiga-ui-core-components-loader.mjs.map +1 -1
  25. package/fesm2022/taiga-ui-core-components-modal.mjs +89 -0
  26. package/fesm2022/taiga-ui-core-components-modal.mjs.map +1 -0
  27. package/fesm2022/taiga-ui-core-components-notification.mjs +12 -27
  28. package/fesm2022/taiga-ui-core-components-notification.mjs.map +1 -1
  29. package/fesm2022/taiga-ui-core-components-root.mjs +1 -1
  30. package/fesm2022/taiga-ui-core-components-scrollbar.mjs +35 -40
  31. package/fesm2022/taiga-ui-core-components-scrollbar.mjs.map +1 -1
  32. package/fesm2022/taiga-ui-core-components-spin-button.mjs +12 -24
  33. package/fesm2022/taiga-ui-core-components-spin-button.mjs.map +1 -1
  34. package/fesm2022/taiga-ui-core-components-textfield.mjs +37 -67
  35. package/fesm2022/taiga-ui-core-components-textfield.mjs.map +1 -1
  36. package/fesm2022/taiga-ui-core-components.mjs +1 -0
  37. package/fesm2022/taiga-ui-core-components.mjs.map +1 -1
  38. package/fesm2022/taiga-ui-core-directives-popup.mjs +2 -2
  39. package/fesm2022/taiga-ui-core-directives-popup.mjs.map +1 -1
  40. package/package.json +5 -1
@@ -1,7 +1,8 @@
1
- import { TuiPopoverDirective } from '@taiga-ui/cdk/directives/popover';
2
1
  import { type TuiDialogOptions } from './dialog.options';
3
2
  import * as i0 from "@angular/core";
4
- export declare class TuiDialog<T> extends TuiPopoverDirective<TuiDialogOptions<T>> {
3
+ import * as i1 from "@taiga-ui/cdk/portals";
4
+ export declare class TuiDialog<T> {
5
+ readonly tuiDialogOptions: import("@angular/core").InputSignal<Partial<TuiDialogOptions<T>>>;
5
6
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiDialog<any>, never>;
6
- static ɵdir: i0.ɵɵDirectiveDeclaration<TuiDialog<any>, "ng-template[tuiDialog]", never, { "options": { "alias": "tuiDialogOptions"; "required": false; }; "open": { "alias": "tuiDialog"; "required": false; }; }, { "openChange": "tuiDialogChange"; }, never, never, true, never>;
7
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TuiDialog<any>, "ng-template[tuiDialog]", never, { "tuiDialogOptions": { "alias": "tuiDialogOptions"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.TuiPortalDirective; inputs: { "options": "tuiDialogOptions"; "open": "tuiDialog"; }; outputs: { "openChange": "tuiDialogChange"; }; }]>;
7
8
  }
@@ -1,7 +1,10 @@
1
- import { TuiPopoverService } from '@taiga-ui/cdk/services';
1
+ import { TuiModalService } from '@taiga-ui/core/components/modal';
2
+ import { TuiDialogComponent } from './dialog.component';
2
3
  import { type TuiDialogOptions } from './dialog.options';
3
4
  import * as i0 from "@angular/core";
4
- export declare class TuiDialogService extends TuiPopoverService<TuiDialogOptions<any>> {
5
+ export declare class TuiDialogService extends TuiModalService<TuiDialogOptions<any>> {
6
+ protected readonly options: TuiDialogOptions<void>;
7
+ protected readonly content: typeof TuiDialogComponent;
5
8
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiDialogService, never>;
6
9
  static ɵprov: i0.ɵɵInjectableDeclaration<TuiDialogService>;
7
10
  }
@@ -11,6 +11,7 @@ export * from '@taiga-ui/core/components/icon';
11
11
  export * from '@taiga-ui/core/components/label';
12
12
  export * from '@taiga-ui/core/components/link';
13
13
  export * from '@taiga-ui/core/components/loader';
14
+ export * from '@taiga-ui/core/components/modal';
14
15
  export * from '@taiga-ui/core/components/notification';
15
16
  export * from '@taiga-ui/core/components/root';
16
17
  export * from '@taiga-ui/core/components/scrollbar';
@@ -7,7 +7,7 @@ export declare class TuiLink {
7
7
  * @deprecated: use on host
8
8
  * [style.text-decoration-line]="'underline'"
9
9
  */
10
- pseudo: boolean;
10
+ readonly pseudo: import("@angular/core").InputSignal<boolean>;
11
11
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiLink, never>;
12
- static ɵdir: i0.ɵɵDirectiveDeclaration<TuiLink, "a[tuiLink], button[tuiLink]", never, { "pseudo": { "alias": "pseudo"; "required": false; }; }, {}, never, never, true, [{ directive: typeof i1.TuiWithAppearance; inputs: {}; outputs: {}; }, { directive: typeof i2.TuiWithIcons; inputs: {}; outputs: {}; }]>;
12
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TuiLink, "a[tuiLink], button[tuiLink]", never, { "pseudo": { "alias": "pseudo"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.TuiWithAppearance; inputs: {}; outputs: {}; }, { directive: typeof i2.TuiWithIcons; inputs: {}; outputs: {}; }]>;
13
13
  }
@@ -4,12 +4,12 @@ export declare class TuiLoader {
4
4
  private readonly isIOS;
5
5
  private readonly options;
6
6
  protected readonly isApple: boolean;
7
- size: "m" | "s" | "xs" | "l" | "xl" | "xxl";
8
- inheritColor: boolean;
9
- overlay: boolean;
10
- textContent: PolymorpheusContent;
11
- loading: boolean;
12
- protected get isHorizontal(): boolean;
7
+ protected readonly isHorizontal: import("@angular/core").Signal<boolean>;
8
+ readonly size: import("@angular/core").InputSignal<"m" | "s" | "xs" | "l" | "xl" | "xxl">;
9
+ readonly inheritColor: import("@angular/core").InputSignal<boolean>;
10
+ readonly overlay: import("@angular/core").InputSignal<boolean>;
11
+ readonly textContent: import("@angular/core").InputSignal<PolymorpheusContent>;
12
+ readonly loading: import("@angular/core").InputSignal<boolean>;
13
13
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiLoader, never>;
14
- static ɵcmp: i0.ɵɵComponentDeclaration<TuiLoader, "tui-loader", never, { "size": { "alias": "size"; "required": false; }; "inheritColor": { "alias": "inheritColor"; "required": false; }; "overlay": { "alias": "overlay"; "required": false; }; "textContent": { "alias": "textContent"; "required": false; }; "loading": { "alias": "showLoader"; "required": false; }; }, {}, never, ["*"], true, never>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<TuiLoader, "tui-loader", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "inheritColor": { "alias": "inheritColor"; "required": false; "isSignal": true; }; "overlay": { "alias": "overlay"; "required": false; "isSignal": true; }; "textContent": { "alias": "textContent"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
15
15
  }
@@ -0,0 +1,2 @@
1
+ export * from './modal.component';
2
+ export * from './modal.service';
@@ -0,0 +1,17 @@
1
+ import { type OnDestroy, type OnInit } from '@angular/core';
2
+ import { type TuiPortalContext } from '@taiga-ui/cdk/portals';
3
+ import { type PolymorpheusContent } from '@taiga-ui/polymorpheus';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@taiga-ui/cdk/directives/active-zone";
6
+ import * as i2 from "@taiga-ui/cdk/directives/focus-trap";
7
+ import * as i3 from "@taiga-ui/core/components/scrollbar";
8
+ export declare class TuiModal<T> implements OnDestroy, OnInit {
9
+ private readonly current;
10
+ private readonly parent;
11
+ readonly context: TuiPortalContext<T>;
12
+ readonly component: import("@angular/core").WritableSignal<PolymorpheusContent<TuiPortalContext<T>>>;
13
+ ngOnInit(): void;
14
+ ngOnDestroy(): void;
15
+ static ɵfac: i0.ɵɵFactoryDeclaration<TuiModal<any>, never>;
16
+ static ɵcmp: i0.ɵɵComponentDeclaration<TuiModal<any>, "tui-modal", never, {}, {}, never, never, true, [{ directive: typeof i1.TuiActiveZone; inputs: {}; outputs: {}; }, { directive: typeof i2.TuiFocusTrap; inputs: {}; outputs: {}; }, { directive: typeof i3.TuiScrollRef; inputs: {}; outputs: {}; }]>;
17
+ }
@@ -0,0 +1,13 @@
1
+ import { type Type } from '@angular/core';
2
+ import { TuiPortal } from '@taiga-ui/cdk/portals';
3
+ import { PolymorpheusComponent } from '@taiga-ui/polymorpheus';
4
+ import { TuiModal } from './modal.component';
5
+ import * as i0 from "@angular/core";
6
+ export declare abstract class TuiModalService<T, K = void> extends TuiPortal<T, K> {
7
+ protected abstract readonly content: Type<unknown>;
8
+ protected readonly component: typeof TuiModal;
9
+ constructor();
10
+ protected add(component: PolymorpheusComponent<TuiModal<T>>): () => void;
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<TuiModalService<any, any>, never>;
12
+ static ɵprov: i0.ɵɵInjectableDeclaration<TuiModalService<any, any>>;
13
+ }
@@ -1,19 +1,15 @@
1
- import { type OnChanges, type OnInit } from '@angular/core';
2
1
  import { type TuiStringHandler } from '@taiga-ui/cdk/types';
3
- import { TuiIcons } from '@taiga-ui/core/directives/icons';
4
2
  import * as i0 from "@angular/core";
5
3
  import * as i1 from "@taiga-ui/core/directives/icons";
6
4
  import * as i2 from "@taiga-ui/core/directives/appearance";
7
- export declare class TuiNotification implements OnChanges, OnInit {
5
+ export declare class TuiNotification {
8
6
  private readonly options;
7
+ protected readonly computedIcon: import("@angular/core").Signal<string>;
9
8
  protected readonly nothing: undefined;
10
- protected readonly icons: TuiIcons;
11
- appearance: "" | ("info" | "positive" | "negative" | "warning" | "neutral" | "accent" | "action-destructive" | "action-grayscale" | "action" | "flat-destructive" | "flat-grayscale" | "flat" | "floating" | "glass" | "icon" | "outline-destructive" | "outline-grayscale" | "outline" | "primary-destructive" | "primary-grayscale" | "primary" | "secondary-destructive" | "secondary-grayscale" | "secondary" | "textfield" | (Record<never, never> & string));
12
- icon: TuiStringHandler<string> | string;
13
- size: "m" | "l" | "s";
14
- ngOnInit(): void;
15
- ngOnChanges(): void;
16
- private refresh;
9
+ protected readonly icons: import("@angular/core").Signal<string>;
10
+ readonly appearance: import("@angular/core").InputSignal<"" | ("info" | "positive" | "negative" | "warning" | "neutral" | "accent" | "action-destructive" | "action-grayscale" | "action" | "flat-destructive" | "flat-grayscale" | "flat" | "floating" | "glass" | "icon" | "outline-destructive" | "outline-grayscale" | "outline" | "primary-destructive" | "primary-grayscale" | "primary" | "secondary-destructive" | "secondary-grayscale" | "secondary" | "textfield" | (Record<never, never> & string))>;
11
+ readonly icon: import("@angular/core").InputSignal<string | TuiStringHandler<string>>;
12
+ readonly size: import("@angular/core").InputSignal<"m" | "l" | "s">;
17
13
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiNotification, never>;
18
- static ɵdir: i0.ɵɵDirectiveDeclaration<TuiNotification, "tui-notification,a[tuiNotification],button[tuiNotification]", never, { "appearance": { "alias": "appearance"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, [{ directive: typeof i1.TuiWithIcons; inputs: {}; outputs: {}; }, { directive: typeof i2.TuiWithAppearance; inputs: {}; outputs: {}; }]>;
14
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TuiNotification, "tui-notification,a[tuiNotification],button[tuiNotification]", never, { "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.TuiWithIcons; inputs: {}; outputs: {}; }, { directive: typeof i2.TuiWithAppearance; inputs: {}; outputs: {}; }]>;
19
15
  }
@@ -5,7 +5,8 @@ import * as i0 from "@angular/core";
5
5
  export declare class TuiScrollIntoView {
6
6
  private readonly el;
7
7
  private readonly destroyRef;
8
- set tuiScrollIntoView(scroll: boolean);
8
+ readonly tuiScrollIntoView: import("@angular/core").InputSignal<boolean | undefined>;
9
+ protected readonly dispatchEvent: import("@angular/core").EffectRef;
9
10
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiScrollIntoView, never>;
10
- static ɵdir: i0.ɵɵDirectiveDeclaration<TuiScrollIntoView, "[tuiScrollIntoView]", never, { "tuiScrollIntoView": { "alias": "tuiScrollIntoView"; "required": false; }; }, {}, never, never, true, never>;
11
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TuiScrollIntoView, "[tuiScrollIntoView]", never, { "tuiScrollIntoView": { "alias": "tuiScrollIntoView"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
11
12
  }
@@ -17,11 +17,11 @@ export declare class TuiScrollbar {
17
17
  /**
18
18
  * @deprecated: use tuiScrollbarOptionsProvider({ mode: 'hidden' })
19
19
  */
20
- hidden: boolean;
20
+ readonly hidden: import("@angular/core").InputSignal<boolean>;
21
21
  protected get delegated(): boolean;
22
22
  protected get scrollRef(): HTMLElement;
23
23
  protected set scrollRef(element: HTMLElement);
24
24
  protected scrollIntoView(detail: HTMLElement): void;
25
25
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiScrollbar, never>;
26
- static ɵcmp: i0.ɵɵComponentDeclaration<TuiScrollbar, "tui-scrollbar", never, { "hidden": { "alias": "hidden"; "required": false; }; }, {}, never, ["*"], true, never>;
26
+ static ɵcmp: i0.ɵɵComponentDeclaration<TuiScrollbar, "tui-scrollbar", never, { "hidden": { "alias": "hidden"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
27
27
  }
@@ -4,11 +4,11 @@ export declare class TuiScrollbarDirective {
4
4
  private readonly style;
5
5
  protected readonly scrollSub: import("rxjs").Subscription;
6
6
  protected readonly styleSub: import("rxjs").Subscription;
7
- tuiScrollbar: 'horizontal' | 'vertical';
7
+ readonly tuiScrollbar: import("@angular/core").InputSignal<"horizontal" | "vertical">;
8
8
  private getScrolled;
9
9
  private getCompensation;
10
10
  private getThumb;
11
11
  private getView;
12
12
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiScrollbarDirective, never>;
13
- static ɵdir: i0.ɵɵDirectiveDeclaration<TuiScrollbarDirective, "[tuiScrollbar]", never, { "tuiScrollbar": { "alias": "tuiScrollbar"; "required": false; }; }, {}, never, never, true, never>;
13
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TuiScrollbarDirective, "[tuiScrollbar]", never, { "tuiScrollbar": { "alias": "tuiScrollbar"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
14
14
  }
@@ -1,16 +1,15 @@
1
- import { EventEmitter } from '@angular/core';
2
1
  import * as i0 from "@angular/core";
3
2
  export declare class TuiSpinButton {
4
3
  protected readonly icons: import("@taiga-ui/core/tokens").TuiSpinIcons;
5
4
  protected readonly spinTexts: import("@angular/core").Signal<readonly [previous: string, next: string]>;
6
- focusable: boolean;
7
- disabled: boolean;
8
- leftDisabled: boolean;
9
- rightDisabled: boolean;
10
- readonly leftClick: EventEmitter<void>;
11
- readonly rightClick: EventEmitter<void>;
5
+ readonly focusable: import("@angular/core").InputSignal<boolean>;
6
+ readonly disabled: import("@angular/core").InputSignal<boolean>;
7
+ readonly leftDisabled: import("@angular/core").InputSignal<boolean>;
8
+ readonly rightDisabled: import("@angular/core").InputSignal<boolean>;
9
+ readonly leftClick: import("@angular/core").OutputEmitterRef<void>;
10
+ readonly rightClick: import("@angular/core").OutputEmitterRef<void>;
12
11
  onLeftClick(): void;
13
12
  onRightClick(): void;
14
13
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiSpinButton, never>;
15
- static ɵcmp: i0.ɵɵComponentDeclaration<TuiSpinButton, "tui-spin-button", never, { "focusable": { "alias": "focusable"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "leftDisabled": { "alias": "leftDisabled"; "required": false; }; "rightDisabled": { "alias": "rightDisabled"; "required": false; }; }, { "leftClick": "leftClick"; "rightClick": "rightClick"; }, never, ["*"], true, never>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<TuiSpinButton, "tui-spin-button", never, { "focusable": { "alias": "focusable"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "leftDisabled": { "alias": "leftDisabled"; "required": false; "isSignal": true; }; "rightDisabled": { "alias": "rightDisabled"; "required": false; "isSignal": true; }; }, { "leftClick": "leftClick"; "rightClick": "rightClick"; }, never, ["*"], true, never>;
16
15
  }
@@ -14,12 +14,12 @@ export declare class TuiTextfieldMultiComponent<T> extends TuiTextfieldBaseCompo
14
14
  protected readonly component: PolymorpheusContent<TuiContext<TuiTextfieldItem<T>>>;
15
15
  protected readonly sub: import("rxjs").Subscription;
16
16
  readonly item?: TemplateRef<unknown>;
17
- rows: number;
17
+ readonly rows: import("@angular/core").InputSignal<number>;
18
18
  handleOption(option: T): void;
19
19
  protected get placeholder(): string;
20
20
  protected onItems({ target }: ResizeObserverEntry): void;
21
21
  protected onLeft(event: any): void;
22
22
  protected onClick(target: HTMLElement): void;
23
23
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiTextfieldMultiComponent<any>, never>;
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: {}; }]>;
24
+ static ɵcmp: i0.ɵɵComponentDeclaration<TuiTextfieldMultiComponent<any>, "tui-textfield[multi]", never, { "rows": { "alias": "rows"; "required": false; "isSignal": true; }; }, {}, ["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: {}; }]>;
25
25
  }
@@ -14,7 +14,6 @@ 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
16
  export declare class TuiTextfieldBaseComponent<T> implements TuiDataListHost<T>, AfterContentChecked {
17
- private readonly filler;
18
17
  private readonly autoId;
19
18
  private readonly focusedIn;
20
19
  private readonly contentReady$;
@@ -35,13 +34,13 @@ export declare class TuiTextfieldBaseComponent<T> implements TuiDataListHost<T>,
35
34
  readonly control?: NgControl;
36
35
  readonly cva?: TuiControl<unknown>;
37
36
  readonly input?: ElementRef<HTMLInputElement>;
38
- content: PolymorpheusContent<TuiContext<T>>;
37
+ readonly content: import("@angular/core").InputSignal<PolymorpheusContent<TuiContext<T>>>;
39
38
  readonly focused: import("@angular/core").Signal<boolean>;
40
39
  readonly options: import("./textfield.options").TuiTextfieldOptions;
41
40
  readonly el: HTMLElement;
42
41
  readonly value: import("@angular/core").WritableSignal<string>;
43
42
  readonly auxiliaries: import("@angular/core").Signal<readonly object[]>;
44
- set fillerSetter(filler: string);
43
+ readonly filler: import("@angular/core").InputSignal<string>;
45
44
  get id(): string;
46
45
  get size(): TuiSizeL | TuiSizeS;
47
46
  ngAfterContentChecked(): void;
@@ -51,7 +50,7 @@ export declare class TuiTextfieldBaseComponent<T> implements TuiDataListHost<T>,
51
50
  protected onIconClick(): void;
52
51
  protected onScroll(element: HTMLElement): void;
53
52
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiTextfieldBaseComponent<any>, never>;
54
- static ɵdir: i0.ɵɵDirectiveDeclaration<TuiTextfieldBaseComponent<any>, never, never, { "content": { "alias": "content"; "required": false; }; "fillerSetter": { "alias": "filler"; "required": false; }; }, {}, ["label", "_input", "accessor", "control", "cva", "input", "auxiliaryQuery"], never, true, never>;
53
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TuiTextfieldBaseComponent<any>, never, never, { "content": { "alias": "content"; "required": false; "isSignal": true; }; "filler": { "alias": "filler"; "required": false; "isSignal": true; }; }, {}, ["label", "_input", "accessor", "control", "cva", "input", "auxiliaryQuery"], never, true, never>;
55
54
  }
56
55
  export declare class TuiTextfieldComponent<T> extends TuiTextfieldBaseComponent<T> {
57
56
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiTextfieldComponent<any>, never>;
@@ -1,4 +1,3 @@
1
- import { type OnChanges } from '@angular/core';
2
1
  import { NgControl } from '@angular/forms';
3
2
  import { type TuiItemsHandlers } from '@taiga-ui/core/directives/items-handlers';
4
3
  import { type TuiInteractiveState } from '@taiga-ui/core/types';
@@ -7,26 +6,24 @@ import { type TuiTextfieldAccessor } from './textfield-accessor';
7
6
  import * as i0 from "@angular/core";
8
7
  import * as i1 from "@taiga-ui/cdk/directives/native-validator";
9
8
  import * as i2 from "@taiga-ui/core/directives/appearance";
10
- export declare class TuiTextfieldBase<T> implements OnChanges, TuiTextfieldAccessor<T> {
11
- private readonly focused;
9
+ export declare class TuiTextfieldBase<T> implements TuiTextfieldAccessor<T> {
12
10
  protected readonly control: NgControl | null;
13
11
  protected readonly a: import("@angular/core").Signal<string>;
14
- protected readonly s: import("@angular/core").WritableSignal<TuiInteractiveState | null>;
15
- protected readonly m: import("@angular/core").WritableSignal<string | readonly string[] | null>;
12
+ protected readonly s: import("@angular/core").Signal<TuiInteractiveState | null>;
13
+ protected readonly m: import("@angular/core").Signal<string | readonly string[] | null>;
16
14
  protected readonly f: import("@angular/core").Signal<boolean | null>;
17
15
  protected readonly el: HTMLInputElement;
18
16
  protected readonly handlers: TuiItemsHandlers<T>;
19
17
  protected readonly textfield: TuiTextfieldComponent<T>;
20
- readOnly: boolean;
21
- invalid: boolean | null;
18
+ readonly readOnly: import("@angular/core").InputSignal<boolean>;
19
+ readonly invalid: import("@angular/core").InputSignal<boolean | null>;
22
20
  readonly value: import("@angular/core").WritableSignal<string>;
23
- set focusedSetter(focused: boolean | null);
24
- set stateSetter(state: TuiInteractiveState | null);
25
- get mode(): string | null;
26
- ngOnChanges(): void;
21
+ readonly focused: import("@angular/core").InputSignal<boolean | null>;
22
+ readonly state: import("@angular/core").InputSignal<TuiInteractiveState | null>;
23
+ readonly mode: import("@angular/core").Signal<string | null>;
27
24
  setValue(value: T | null): void;
28
25
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiTextfieldBase<any>, never>;
29
- static ɵdir: i0.ɵɵDirectiveDeclaration<TuiTextfieldBase<any>, never, never, { "readOnly": { "alias": "readOnly"; "required": false; }; "invalid": { "alias": "invalid"; "required": false; }; "focusedSetter": { "alias": "focused"; "required": false; }; "stateSetter": { "alias": "state"; "required": false; }; }, {}, never, never, true, never>;
26
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TuiTextfieldBase<any>, never, never, { "readOnly": { "alias": "readOnly"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "focused": { "alias": "focused"; "required": false; "isSignal": true; }; "state": { "alias": "state"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
30
27
  }
31
28
  export declare class TuiTextfieldDirective<T> extends TuiTextfieldBase<T> {
32
29
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiTextfieldDirective<any>, never>;
@@ -12,7 +12,6 @@ import { AsyncPipe } from '@angular/common';
12
12
  import { toObservable } from '@angular/core/rxjs-interop';
13
13
  import { TUI_FALSE_HANDLER } from '@taiga-ui/cdk/constants';
14
14
  import { TuiHovered } from '@taiga-ui/cdk/directives/hovered';
15
- import { TuiLet } from '@taiga-ui/cdk/directives/let';
16
15
  import { TuiRepeatTimes } from '@taiga-ui/cdk/directives/repeat-times';
17
16
  import { TuiCalendarSheetPipe, TuiOrderWeekDaysPipe, TuiMonthPipe } from '@taiga-ui/core/pipes';
18
17
  import { TuiLink } from '@taiga-ui/core/components/link';
@@ -141,7 +140,7 @@ class TuiCalendarSheet {
141
140
  this.hoveredItemChange.emit(day);
142
141
  }
143
142
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiCalendarSheet, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
144
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: TuiCalendarSheet, isStandalone: true, selector: "tui-calendar-sheet", inputs: { month: "month", disabledItemHandler: "disabledItemHandler", markerHandler: "markerHandler", value: "value", hoveredItem: "hoveredItem", showAdjacent: "showAdjacent", single: "single" }, outputs: { hoveredItemChange: "hoveredItemChange", dayClick: "dayClick" }, host: { properties: { "class._picking": "isRangePicking" } }, ngImport: i0, template: "<div class=\"t-row t-row_weekday\">\n @for (day of unorderedWeekDays$ | tuiOrderWeekDays | async; track day) {\n <div\n class=\"t-cell\"\n [textContent]=\"day\"\n ></div>\n }\n</div>\n<div *tuiLet=\"month | tuiCalendarSheet: true as sheet\">\n <div\n *tuiRepeatTimes=\"let rowIndex of sheet.length\"\n automation-id=\"tui-calendar-sheet__row\"\n class=\"t-row\"\n >\n <ng-container *tuiRepeatTimes=\"let colIndex of sheet[rowIndex]?.length || 0\">\n <ng-container *tuiLet=\"sheet[rowIndex]?.[colIndex] as item\">\n @if (item && (!itemIsUnavailable(item) || showAdjacent)) {\n <div\n automation-id=\"tui-calendar-sheet__cell\"\n class=\"t-cell\"\n [attr.data-range]=\"getItemRange(item)\"\n [attr.data-type]=\"item | tuiMapper: dayTypeHandler\"\n [class.t-cell_disabled]=\"disabledItemHandler(item)\"\n [class.t-cell_today]=\"itemIsToday(item)\"\n [class.t-cell_unavailable]=\"itemIsUnavailable(item)\"\n (click)=\"onItemClick(item)\"\n (tuiHoveredChange)=\"onItemHovered($event && item)\"\n >\n {{ item.day }}\n @if (\n item | tuiMapper: toMarkers : itemIsToday(item) : getItemRange(item) : markerHandler;\n as markers\n ) {\n <div class=\"t-dots\">\n <div\n class=\"t-dot\"\n [style.background]=\"markers?.[0]\"\n ></div>\n @if (markers.length > 1) {\n <div\n class=\"t-dot\"\n [style.background]=\"markers?.[1] || ''\"\n ></div>\n }\n </div>\n }\n </div>\n }\n </ng-container>\n </ng-container>\n </div>\n</div>\n", styles: [".t-row{display:flex;justify-content:flex-start;font:var(--tui-font-text-m)}.t-row:last-child{justify-content:flex-start}.t-cell{position:relative;display:flex;align-items:center;justify-content:center;line-height:2rem;isolation:isolate;cursor:pointer;overflow:hidden;border:.125rem solid transparent;box-sizing:border-box;mask:linear-gradient(transparent calc(50% - 1rem),#000 calc(50% - 1rem),#000 calc(50% + 1rem),transparent calc(50% + 1rem))}.t-cell:first-child{border-inline-start-color:transparent!important}.t-cell:last-child{border-inline-end-color:transparent!important}.t-cell:before,.t-cell:after{position:absolute;top:0;left:0;bottom:0;right:0;content:\"\";z-index:-1;border-radius:var(--tui-radius-m)}.t-cell:after{mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 12 32\"><path d=\"M0.2856 0L0.6763 0C2.9265 0 4.9876 1.259 6.0147 3.2611L10.2442 11.5048C11.5301 14.0113 11.5683 16.9754 10.3472 19.5141L5.9766 28.6007C4.9772 30.6786 2.8754 32 0.5696 32H0.285645V0Z\"></path></svg>') right / .75rem 100% no-repeat,linear-gradient(#000,#000) left / calc(100% - .7rem) 100% no-repeat}.t-cell[data-range]:before{background:var(--tui-background-neutral-1)}:host._picking .t-cell[data-range]:before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1)}:host._picking .t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]:not(:first-child):before{border-top-left-radius:0;border-bottom-left-radius:0}.t-cell[data-range=middle]:not(:last-child):before{border-top-right-radius:0;border-bottom-right-radius:0}.t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:not(:last-child):before{right:-1rem}.t-cell[data-range=start]:after{background:var(--tui-background-accent-1)}.t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=end]:not(:first-child):before{left:-1rem}.t-cell[data-range=end]:after{background:var(--tui-background-accent-1);transform:scaleX(-1)}.t-cell[data-range=active]{color:var(--tui-text-primary-on-accent-1)}.t-cell[data-range=active]:after{background:var(--tui-background-accent-1);mask:none}.t-cell_disabled{opacity:var(--tui-disabled-opacity);pointer-events:none}.t-cell_today{text-decoration:underline;text-underline-offset:.25rem}@media (hover: hover) and (pointer: fine){.t-cell:hover:not([data-range=start]):not([data-range=end]):before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:hover:after,.t-cell[data-range=end]:hover:after,.t-cell[data-range=active]:hover:after{background:var(--tui-background-accent-1-hover)}}.t-cell{inline-size:calc(100% / 7)}[data-type=weekday]{color:var(--tui-text-primary)}[data-type=weekend]{color:var(--tui-text-negative)}.t-row{justify-content:flex-start}.t-row:first-child{justify-content:flex-end}.t-row_weekday{font:var(--tui-font-text-s);color:var(--tui-text-secondary);pointer-events:none}.t-cell_unavailable{opacity:var(--tui-disabled-opacity)}.t-dots{position:absolute;bottom:0;display:flex;justify-content:center;margin-block-start:-.5rem;padding-block-end:.25rem}.t-dot{display:inline-block;inline-size:.25rem;block-size:.25rem;border-radius:100%;margin:0 .0625rem}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: TuiCalendarSheetPipe, name: "tuiCalendarSheet" }, { kind: "directive", type: TuiHovered, selector: "[tuiHoveredChange]", outputs: ["tuiHoveredChange"] }, { kind: "directive", type: TuiLet, selector: "[tuiLet]", inputs: ["tuiLet"] }, { kind: "pipe", type: TuiMapperPipe, name: "tuiMapper" }, { kind: "pipe", type: TuiOrderWeekDaysPipe, name: "tuiOrderWeekDays" }, { kind: "directive", type: TuiRepeatTimes, selector: "[tuiRepeatTimes][tuiRepeatTimesOf]", inputs: ["tuiRepeatTimesOf"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
143
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: TuiCalendarSheet, isStandalone: true, selector: "tui-calendar-sheet", inputs: { month: "month", disabledItemHandler: "disabledItemHandler", markerHandler: "markerHandler", value: "value", hoveredItem: "hoveredItem", showAdjacent: "showAdjacent", single: "single" }, outputs: { hoveredItemChange: "hoveredItemChange", dayClick: "dayClick" }, host: { properties: { "class._picking": "isRangePicking" } }, ngImport: i0, template: "<div class=\"t-row t-row_weekday\">\n @for (day of unorderedWeekDays$ | tuiOrderWeekDays | async; track day) {\n <div\n class=\"t-cell\"\n [textContent]=\"day\"\n ></div>\n }\n</div>\n@let sheet = month | tuiCalendarSheet: true;\n<div>\n <div\n *tuiRepeatTimes=\"let rowIndex of sheet.length\"\n automation-id=\"tui-calendar-sheet__row\"\n class=\"t-row\"\n >\n <ng-container *tuiRepeatTimes=\"let colIndex of sheet[rowIndex]?.length || 0\">\n @let item = sheet[rowIndex]?.[colIndex];\n @if (item && (!itemIsUnavailable(item) || showAdjacent)) {\n <div\n automation-id=\"tui-calendar-sheet__cell\"\n class=\"t-cell\"\n [attr.data-range]=\"getItemRange(item)\"\n [attr.data-type]=\"item | tuiMapper: dayTypeHandler\"\n [class.t-cell_disabled]=\"disabledItemHandler(item)\"\n [class.t-cell_today]=\"itemIsToday(item)\"\n [class.t-cell_unavailable]=\"itemIsUnavailable(item)\"\n (click)=\"onItemClick(item)\"\n (tuiHoveredChange)=\"onItemHovered($event && item)\"\n >\n {{ item.day }}\n @if (\n item | tuiMapper: toMarkers : itemIsToday(item) : getItemRange(item) : markerHandler;\n as markers\n ) {\n <div class=\"t-dots\">\n <div\n class=\"t-dot\"\n [style.background]=\"markers?.[0]\"\n ></div>\n @if (markers.length > 1) {\n <div\n class=\"t-dot\"\n [style.background]=\"markers?.[1] || ''\"\n ></div>\n }\n </div>\n }\n </div>\n }\n </ng-container>\n </div>\n</div>\n", styles: [".t-row{display:flex;justify-content:flex-start;font:var(--tui-font-text-m)}.t-row:last-child{justify-content:flex-start}.t-cell{position:relative;display:flex;align-items:center;justify-content:center;line-height:2rem;isolation:isolate;cursor:pointer;overflow:hidden;border:.125rem solid transparent;box-sizing:border-box;mask:linear-gradient(transparent calc(50% - 1rem),#000 calc(50% - 1rem),#000 calc(50% + 1rem),transparent calc(50% + 1rem))}.t-cell:first-child{border-inline-start-color:transparent!important}.t-cell:last-child{border-inline-end-color:transparent!important}.t-cell:before,.t-cell:after{position:absolute;top:0;left:0;bottom:0;right:0;content:\"\";z-index:-1;border-radius:var(--tui-radius-m)}.t-cell:after{mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 12 32\"><path d=\"M0.2856 0L0.6763 0C2.9265 0 4.9876 1.259 6.0147 3.2611L10.2442 11.5048C11.5301 14.0113 11.5683 16.9754 10.3472 19.5141L5.9766 28.6007C4.9772 30.6786 2.8754 32 0.5696 32H0.285645V0Z\"></path></svg>') right / .75rem 100% no-repeat,linear-gradient(#000,#000) left / calc(100% - .7rem) 100% no-repeat}.t-cell[data-range]:before{background:var(--tui-background-neutral-1)}:host._picking .t-cell[data-range]:before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1)}:host._picking .t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]:not(:first-child):before{border-top-left-radius:0;border-bottom-left-radius:0}.t-cell[data-range=middle]:not(:last-child):before{border-top-right-radius:0;border-bottom-right-radius:0}.t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:not(:last-child):before{right:-1rem}.t-cell[data-range=start]:after{background:var(--tui-background-accent-1)}.t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=end]:not(:first-child):before{left:-1rem}.t-cell[data-range=end]:after{background:var(--tui-background-accent-1);transform:scaleX(-1)}.t-cell[data-range=active]{color:var(--tui-text-primary-on-accent-1)}.t-cell[data-range=active]:after{background:var(--tui-background-accent-1);mask:none}.t-cell_disabled{opacity:var(--tui-disabled-opacity);pointer-events:none}.t-cell_today{text-decoration:underline;text-underline-offset:.25rem}@media (hover: hover) and (pointer: fine){.t-cell:hover:not([data-range=start]):not([data-range=end]):before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:hover:after,.t-cell[data-range=end]:hover:after,.t-cell[data-range=active]:hover:after{background:var(--tui-background-accent-1-hover)}}.t-cell{inline-size:calc(100% / 7)}[data-type=weekday]{color:var(--tui-text-primary)}[data-type=weekend]{color:var(--tui-text-negative)}.t-row{justify-content:flex-start}.t-row:first-child{justify-content:flex-end}.t-row_weekday{font:var(--tui-font-text-s);color:var(--tui-text-secondary);pointer-events:none}.t-cell_unavailable{opacity:var(--tui-disabled-opacity)}.t-dots{position:absolute;bottom:0;display:flex;justify-content:center;margin-block-start:-.5rem;padding-block-end:.25rem}.t-dot{display:inline-block;inline-size:.25rem;block-size:.25rem;border-radius:100%;margin:0 .0625rem}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: TuiCalendarSheetPipe, name: "tuiCalendarSheet" }, { kind: "directive", type: TuiHovered, selector: "[tuiHoveredChange]", outputs: ["tuiHoveredChange"] }, { kind: "pipe", type: TuiMapperPipe, name: "tuiMapper" }, { kind: "pipe", type: TuiOrderWeekDaysPipe, name: "tuiOrderWeekDays" }, { kind: "directive", type: TuiRepeatTimes, selector: "[tuiRepeatTimes][tuiRepeatTimesOf]", inputs: ["tuiRepeatTimesOf"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
145
144
  }
146
145
  __decorate([
147
146
  tuiPure
@@ -152,13 +151,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
152
151
  AsyncPipe,
153
152
  TuiCalendarSheetPipe,
154
153
  TuiHovered,
155
- TuiLet,
156
154
  TuiMapperPipe,
157
155
  TuiOrderWeekDaysPipe,
158
156
  TuiRepeatTimes,
159
157
  ], changeDetection: ChangeDetectionStrategy.OnPush, host: {
160
158
  '[class._picking]': 'isRangePicking',
161
- }, template: "<div class=\"t-row t-row_weekday\">\n @for (day of unorderedWeekDays$ | tuiOrderWeekDays | async; track day) {\n <div\n class=\"t-cell\"\n [textContent]=\"day\"\n ></div>\n }\n</div>\n<div *tuiLet=\"month | tuiCalendarSheet: true as sheet\">\n <div\n *tuiRepeatTimes=\"let rowIndex of sheet.length\"\n automation-id=\"tui-calendar-sheet__row\"\n class=\"t-row\"\n >\n <ng-container *tuiRepeatTimes=\"let colIndex of sheet[rowIndex]?.length || 0\">\n <ng-container *tuiLet=\"sheet[rowIndex]?.[colIndex] as item\">\n @if (item && (!itemIsUnavailable(item) || showAdjacent)) {\n <div\n automation-id=\"tui-calendar-sheet__cell\"\n class=\"t-cell\"\n [attr.data-range]=\"getItemRange(item)\"\n [attr.data-type]=\"item | tuiMapper: dayTypeHandler\"\n [class.t-cell_disabled]=\"disabledItemHandler(item)\"\n [class.t-cell_today]=\"itemIsToday(item)\"\n [class.t-cell_unavailable]=\"itemIsUnavailable(item)\"\n (click)=\"onItemClick(item)\"\n (tuiHoveredChange)=\"onItemHovered($event && item)\"\n >\n {{ item.day }}\n @if (\n item | tuiMapper: toMarkers : itemIsToday(item) : getItemRange(item) : markerHandler;\n as markers\n ) {\n <div class=\"t-dots\">\n <div\n class=\"t-dot\"\n [style.background]=\"markers?.[0]\"\n ></div>\n @if (markers.length > 1) {\n <div\n class=\"t-dot\"\n [style.background]=\"markers?.[1] || ''\"\n ></div>\n }\n </div>\n }\n </div>\n }\n </ng-container>\n </ng-container>\n </div>\n</div>\n", styles: [".t-row{display:flex;justify-content:flex-start;font:var(--tui-font-text-m)}.t-row:last-child{justify-content:flex-start}.t-cell{position:relative;display:flex;align-items:center;justify-content:center;line-height:2rem;isolation:isolate;cursor:pointer;overflow:hidden;border:.125rem solid transparent;box-sizing:border-box;mask:linear-gradient(transparent calc(50% - 1rem),#000 calc(50% - 1rem),#000 calc(50% + 1rem),transparent calc(50% + 1rem))}.t-cell:first-child{border-inline-start-color:transparent!important}.t-cell:last-child{border-inline-end-color:transparent!important}.t-cell:before,.t-cell:after{position:absolute;top:0;left:0;bottom:0;right:0;content:\"\";z-index:-1;border-radius:var(--tui-radius-m)}.t-cell:after{mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 12 32\"><path d=\"M0.2856 0L0.6763 0C2.9265 0 4.9876 1.259 6.0147 3.2611L10.2442 11.5048C11.5301 14.0113 11.5683 16.9754 10.3472 19.5141L5.9766 28.6007C4.9772 30.6786 2.8754 32 0.5696 32H0.285645V0Z\"></path></svg>') right / .75rem 100% no-repeat,linear-gradient(#000,#000) left / calc(100% - .7rem) 100% no-repeat}.t-cell[data-range]:before{background:var(--tui-background-neutral-1)}:host._picking .t-cell[data-range]:before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1)}:host._picking .t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]:not(:first-child):before{border-top-left-radius:0;border-bottom-left-radius:0}.t-cell[data-range=middle]:not(:last-child):before{border-top-right-radius:0;border-bottom-right-radius:0}.t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:not(:last-child):before{right:-1rem}.t-cell[data-range=start]:after{background:var(--tui-background-accent-1)}.t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=end]:not(:first-child):before{left:-1rem}.t-cell[data-range=end]:after{background:var(--tui-background-accent-1);transform:scaleX(-1)}.t-cell[data-range=active]{color:var(--tui-text-primary-on-accent-1)}.t-cell[data-range=active]:after{background:var(--tui-background-accent-1);mask:none}.t-cell_disabled{opacity:var(--tui-disabled-opacity);pointer-events:none}.t-cell_today{text-decoration:underline;text-underline-offset:.25rem}@media (hover: hover) and (pointer: fine){.t-cell:hover:not([data-range=start]):not([data-range=end]):before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:hover:after,.t-cell[data-range=end]:hover:after,.t-cell[data-range=active]:hover:after{background:var(--tui-background-accent-1-hover)}}.t-cell{inline-size:calc(100% / 7)}[data-type=weekday]{color:var(--tui-text-primary)}[data-type=weekend]{color:var(--tui-text-negative)}.t-row{justify-content:flex-start}.t-row:first-child{justify-content:flex-end}.t-row_weekday{font:var(--tui-font-text-s);color:var(--tui-text-secondary);pointer-events:none}.t-cell_unavailable{opacity:var(--tui-disabled-opacity)}.t-dots{position:absolute;bottom:0;display:flex;justify-content:center;margin-block-start:-.5rem;padding-block-end:.25rem}.t-dot{display:inline-block;inline-size:.25rem;block-size:.25rem;border-radius:100%;margin:0 .0625rem}\n"] }]
159
+ }, template: "<div class=\"t-row t-row_weekday\">\n @for (day of unorderedWeekDays$ | tuiOrderWeekDays | async; track day) {\n <div\n class=\"t-cell\"\n [textContent]=\"day\"\n ></div>\n }\n</div>\n@let sheet = month | tuiCalendarSheet: true;\n<div>\n <div\n *tuiRepeatTimes=\"let rowIndex of sheet.length\"\n automation-id=\"tui-calendar-sheet__row\"\n class=\"t-row\"\n >\n <ng-container *tuiRepeatTimes=\"let colIndex of sheet[rowIndex]?.length || 0\">\n @let item = sheet[rowIndex]?.[colIndex];\n @if (item && (!itemIsUnavailable(item) || showAdjacent)) {\n <div\n automation-id=\"tui-calendar-sheet__cell\"\n class=\"t-cell\"\n [attr.data-range]=\"getItemRange(item)\"\n [attr.data-type]=\"item | tuiMapper: dayTypeHandler\"\n [class.t-cell_disabled]=\"disabledItemHandler(item)\"\n [class.t-cell_today]=\"itemIsToday(item)\"\n [class.t-cell_unavailable]=\"itemIsUnavailable(item)\"\n (click)=\"onItemClick(item)\"\n (tuiHoveredChange)=\"onItemHovered($event && item)\"\n >\n {{ item.day }}\n @if (\n item | tuiMapper: toMarkers : itemIsToday(item) : getItemRange(item) : markerHandler;\n as markers\n ) {\n <div class=\"t-dots\">\n <div\n class=\"t-dot\"\n [style.background]=\"markers?.[0]\"\n ></div>\n @if (markers.length > 1) {\n <div\n class=\"t-dot\"\n [style.background]=\"markers?.[1] || ''\"\n ></div>\n }\n </div>\n }\n </div>\n }\n </ng-container>\n </div>\n</div>\n", styles: [".t-row{display:flex;justify-content:flex-start;font:var(--tui-font-text-m)}.t-row:last-child{justify-content:flex-start}.t-cell{position:relative;display:flex;align-items:center;justify-content:center;line-height:2rem;isolation:isolate;cursor:pointer;overflow:hidden;border:.125rem solid transparent;box-sizing:border-box;mask:linear-gradient(transparent calc(50% - 1rem),#000 calc(50% - 1rem),#000 calc(50% + 1rem),transparent calc(50% + 1rem))}.t-cell:first-child{border-inline-start-color:transparent!important}.t-cell:last-child{border-inline-end-color:transparent!important}.t-cell:before,.t-cell:after{position:absolute;top:0;left:0;bottom:0;right:0;content:\"\";z-index:-1;border-radius:var(--tui-radius-m)}.t-cell:after{mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 12 32\"><path d=\"M0.2856 0L0.6763 0C2.9265 0 4.9876 1.259 6.0147 3.2611L10.2442 11.5048C11.5301 14.0113 11.5683 16.9754 10.3472 19.5141L5.9766 28.6007C4.9772 30.6786 2.8754 32 0.5696 32H0.285645V0Z\"></path></svg>') right / .75rem 100% no-repeat,linear-gradient(#000,#000) left / calc(100% - .7rem) 100% no-repeat}.t-cell[data-range]:before{background:var(--tui-background-neutral-1)}:host._picking .t-cell[data-range]:before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1)}:host._picking .t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]:not(:first-child):before{border-top-left-radius:0;border-bottom-left-radius:0}.t-cell[data-range=middle]:not(:last-child):before{border-top-right-radius:0;border-bottom-right-radius:0}.t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:not(:last-child):before{right:-1rem}.t-cell[data-range=start]:after{background:var(--tui-background-accent-1)}.t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=end]:not(:first-child):before{left:-1rem}.t-cell[data-range=end]:after{background:var(--tui-background-accent-1);transform:scaleX(-1)}.t-cell[data-range=active]{color:var(--tui-text-primary-on-accent-1)}.t-cell[data-range=active]:after{background:var(--tui-background-accent-1);mask:none}.t-cell_disabled{opacity:var(--tui-disabled-opacity);pointer-events:none}.t-cell_today{text-decoration:underline;text-underline-offset:.25rem}@media (hover: hover) and (pointer: fine){.t-cell:hover:not([data-range=start]):not([data-range=end]):before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:hover:after,.t-cell[data-range=end]:hover:after,.t-cell[data-range=active]:hover:after{background:var(--tui-background-accent-1-hover)}}.t-cell{inline-size:calc(100% / 7)}[data-type=weekday]{color:var(--tui-text-primary)}[data-type=weekend]{color:var(--tui-text-negative)}.t-row{justify-content:flex-start}.t-row:first-child{justify-content:flex-end}.t-row_weekday{font:var(--tui-font-text-s);color:var(--tui-text-secondary);pointer-events:none}.t-cell_unavailable{opacity:var(--tui-disabled-opacity)}.t-dots{position:absolute;bottom:0;display:flex;justify-content:center;margin-block-start:-.5rem;padding-block-end:.25rem}.t-dot{display:inline-block;inline-size:.25rem;block-size:.25rem;border-radius:100%;margin:0 .0625rem}\n"] }]
162
160
  }], propDecorators: { month: [{
163
161
  type: Input
164
162
  }], disabledItemHandler: [{
@@ -314,13 +312,13 @@ class TuiCalendarYear {
314
312
  return max < initial ? max + 1 : initial;
315
313
  }
316
314
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiCalendarYear, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
317
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.15", type: TuiCalendarYear, isStandalone: true, selector: "tui-calendar-year", inputs: { rangeMode: "rangeMode", disabledItemHandler: "disabledItemHandler", initialItemSetter: ["initialItem", "initialItemSetter", (x) => x ?? CURRENT_YEAR], minSetter: ["min", "minSetter", (x) => x ?? MIN_YEAR], maxSetter: ["max", "maxSetter", (x) => x ?? MAX_YEAR], valueSetter: ["value", "valueSetter"] }, outputs: { yearClick: "yearClick" }, host: { properties: { "class._picking": "isRangePicking()" } }, providers: [tuiAsAuxiliary(TuiCalendarYear)], ngImport: i0, template: "<div\n *tuiRepeatTimes=\"let rowIndex of rows\"\n automation-id=\"tui-calendar-year__row\"\n class=\"t-row\"\n>\n <ng-container *tuiRepeatTimes=\"let colIndex of 4\">\n <div\n *tuiLet=\"getItem(rowIndex, colIndex) as item\"\n automation-id=\"tui-calendar-year__cell\"\n class=\"t-cell\"\n [attr.data-range]=\"getItemRange(item)\"\n [class.t-cell_disabled]=\"isDisabled(item)\"\n [class.t-cell_today]=\"itemIsToday(item)\"\n [tuiScrollIntoView]=\"scrollItemIntoView(item)\"\n (click)=\"yearClick.emit(item)\"\n (tuiHoveredChange)=\"onItemHovered($event, item)\"\n >\n {{ item }}\n </div>\n </ng-container>\n</div>\n", styles: [".t-row{display:flex;justify-content:flex-start;font:var(--tui-font-text-m)}.t-row:first-child{justify-content:flex-end}.t-row:last-child{justify-content:flex-start}.t-cell{position:relative;display:flex;align-items:center;justify-content:center;line-height:2rem;isolation:isolate;cursor:pointer;overflow:hidden;border:.125rem solid transparent;box-sizing:border-box;mask:linear-gradient(transparent calc(50% - 1rem),#000 calc(50% - 1rem),#000 calc(50% + 1rem),transparent calc(50% + 1rem))}.t-cell:first-child{border-inline-start-color:transparent!important}.t-cell:last-child{border-inline-end-color:transparent!important}.t-cell:before,.t-cell:after{position:absolute;top:0;left:0;bottom:0;right:0;content:\"\";z-index:-1;border-radius:var(--tui-radius-m)}.t-cell:after{mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 12 32\"><path d=\"M0.2856 0L0.6763 0C2.9265 0 4.9876 1.259 6.0147 3.2611L10.2442 11.5048C11.5301 14.0113 11.5683 16.9754 10.3472 19.5141L5.9766 28.6007C4.9772 30.6786 2.8754 32 0.5696 32H0.285645V0Z\"></path></svg>') right / .75rem 100% no-repeat,linear-gradient(#000,#000) left / calc(100% - .7rem) 100% no-repeat}.t-cell[data-range]:before{background:var(--tui-background-neutral-1)}:host._picking .t-cell[data-range]:before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1)}:host._picking .t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]:not(:first-child):before{border-top-left-radius:0;border-bottom-left-radius:0}.t-cell[data-range=middle]:not(:last-child):before{border-top-right-radius:0;border-bottom-right-radius:0}.t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:not(:last-child):before{right:-1rem}.t-cell[data-range=start]:after{background:var(--tui-background-accent-1)}.t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=end]:not(:first-child):before{left:-1rem}.t-cell[data-range=end]:after{background:var(--tui-background-accent-1);transform:scaleX(-1)}.t-cell[data-range=active]{color:var(--tui-text-primary-on-accent-1)}.t-cell[data-range=active]:after{background:var(--tui-background-accent-1);mask:none}.t-cell_disabled{opacity:var(--tui-disabled-opacity);pointer-events:none}.t-cell_today{text-decoration:underline;text-underline-offset:.25rem}@media (hover: hover) and (pointer: fine){.t-cell:hover:not([data-range=start]):not([data-range=end]):before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:hover:after,.t-cell[data-range=end]:hover:after,.t-cell[data-range=active]:hover:after{background:var(--tui-background-accent-1-hover)}}:host{display:block;padding-inline-end:1rem;inline-size:15.75rem;padding:0 1.125rem}.t-cell{flex:1;border-block-start-width:.5rem;border-block-end-width:.5rem}\n"], dependencies: [{ kind: "directive", type: TuiHovered, selector: "[tuiHoveredChange]", outputs: ["tuiHoveredChange"] }, { kind: "directive", type: TuiLet, selector: "[tuiLet]", inputs: ["tuiLet"] }, { kind: "directive", type: TuiRepeatTimes, selector: "[tuiRepeatTimes][tuiRepeatTimesOf]", inputs: ["tuiRepeatTimesOf"] }, { kind: "directive", type: TuiScrollIntoView, selector: "[tuiScrollIntoView]", inputs: ["tuiScrollIntoView"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
315
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.15", type: TuiCalendarYear, isStandalone: true, selector: "tui-calendar-year", inputs: { rangeMode: "rangeMode", disabledItemHandler: "disabledItemHandler", initialItemSetter: ["initialItem", "initialItemSetter", (x) => x ?? CURRENT_YEAR], minSetter: ["min", "minSetter", (x) => x ?? MIN_YEAR], maxSetter: ["max", "maxSetter", (x) => x ?? MAX_YEAR], valueSetter: ["value", "valueSetter"] }, outputs: { yearClick: "yearClick" }, host: { properties: { "class._picking": "isRangePicking()" } }, providers: [tuiAsAuxiliary(TuiCalendarYear)], ngImport: i0, template: "<div\n *tuiRepeatTimes=\"let rowIndex of rows\"\n automation-id=\"tui-calendar-year__row\"\n class=\"t-row\"\n>\n <ng-container *tuiRepeatTimes=\"let colIndex of 4\">\n @let item = getItem(rowIndex, colIndex);\n <div\n automation-id=\"tui-calendar-year__cell\"\n class=\"t-cell\"\n [attr.data-range]=\"getItemRange(item)\"\n [class.t-cell_disabled]=\"isDisabled(item)\"\n [class.t-cell_today]=\"itemIsToday(item)\"\n [tuiScrollIntoView]=\"scrollItemIntoView(item)\"\n (click)=\"yearClick.emit(item)\"\n (tuiHoveredChange)=\"onItemHovered($event, item)\"\n >\n {{ item }}\n </div>\n </ng-container>\n</div>\n", styles: [".t-row{display:flex;justify-content:flex-start;font:var(--tui-font-text-m)}.t-row:first-child{justify-content:flex-end}.t-row:last-child{justify-content:flex-start}.t-cell{position:relative;display:flex;align-items:center;justify-content:center;line-height:2rem;isolation:isolate;cursor:pointer;overflow:hidden;border:.125rem solid transparent;box-sizing:border-box;mask:linear-gradient(transparent calc(50% - 1rem),#000 calc(50% - 1rem),#000 calc(50% + 1rem),transparent calc(50% + 1rem))}.t-cell:first-child{border-inline-start-color:transparent!important}.t-cell:last-child{border-inline-end-color:transparent!important}.t-cell:before,.t-cell:after{position:absolute;top:0;left:0;bottom:0;right:0;content:\"\";z-index:-1;border-radius:var(--tui-radius-m)}.t-cell:after{mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 12 32\"><path d=\"M0.2856 0L0.6763 0C2.9265 0 4.9876 1.259 6.0147 3.2611L10.2442 11.5048C11.5301 14.0113 11.5683 16.9754 10.3472 19.5141L5.9766 28.6007C4.9772 30.6786 2.8754 32 0.5696 32H0.285645V0Z\"></path></svg>') right / .75rem 100% no-repeat,linear-gradient(#000,#000) left / calc(100% - .7rem) 100% no-repeat}.t-cell[data-range]:before{background:var(--tui-background-neutral-1)}:host._picking .t-cell[data-range]:before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1)}:host._picking .t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]:not(:first-child):before{border-top-left-radius:0;border-bottom-left-radius:0}.t-cell[data-range=middle]:not(:last-child):before{border-top-right-radius:0;border-bottom-right-radius:0}.t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:not(:last-child):before{right:-1rem}.t-cell[data-range=start]:after{background:var(--tui-background-accent-1)}.t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=end]:not(:first-child):before{left:-1rem}.t-cell[data-range=end]:after{background:var(--tui-background-accent-1);transform:scaleX(-1)}.t-cell[data-range=active]{color:var(--tui-text-primary-on-accent-1)}.t-cell[data-range=active]:after{background:var(--tui-background-accent-1);mask:none}.t-cell_disabled{opacity:var(--tui-disabled-opacity);pointer-events:none}.t-cell_today{text-decoration:underline;text-underline-offset:.25rem}@media (hover: hover) and (pointer: fine){.t-cell:hover:not([data-range=start]):not([data-range=end]):before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:hover:after,.t-cell[data-range=end]:hover:after,.t-cell[data-range=active]:hover:after{background:var(--tui-background-accent-1-hover)}}:host{display:block;padding-inline-end:1rem;inline-size:15.75rem;padding:0 1.125rem}.t-cell{flex:1;border-block-start-width:.5rem;border-block-end-width:.5rem}\n"], dependencies: [{ kind: "directive", type: TuiHovered, selector: "[tuiHoveredChange]", outputs: ["tuiHoveredChange"] }, { kind: "directive", type: TuiRepeatTimes, selector: "[tuiRepeatTimes][tuiRepeatTimesOf]", inputs: ["tuiRepeatTimesOf"] }, { kind: "directive", type: TuiScrollIntoView, selector: "[tuiScrollIntoView]", inputs: ["tuiScrollIntoView"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
318
316
  }
319
317
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiCalendarYear, decorators: [{
320
318
  type: Component,
321
- args: [{ selector: 'tui-calendar-year', imports: [TuiHovered, TuiLet, TuiRepeatTimes, TuiScrollIntoView], changeDetection: ChangeDetectionStrategy.OnPush, providers: [tuiAsAuxiliary(TuiCalendarYear)], host: {
319
+ args: [{ selector: 'tui-calendar-year', imports: [TuiHovered, TuiRepeatTimes, TuiScrollIntoView], changeDetection: ChangeDetectionStrategy.OnPush, providers: [tuiAsAuxiliary(TuiCalendarYear)], host: {
322
320
  '[class._picking]': 'isRangePicking()',
323
- }, template: "<div\n *tuiRepeatTimes=\"let rowIndex of rows\"\n automation-id=\"tui-calendar-year__row\"\n class=\"t-row\"\n>\n <ng-container *tuiRepeatTimes=\"let colIndex of 4\">\n <div\n *tuiLet=\"getItem(rowIndex, colIndex) as item\"\n automation-id=\"tui-calendar-year__cell\"\n class=\"t-cell\"\n [attr.data-range]=\"getItemRange(item)\"\n [class.t-cell_disabled]=\"isDisabled(item)\"\n [class.t-cell_today]=\"itemIsToday(item)\"\n [tuiScrollIntoView]=\"scrollItemIntoView(item)\"\n (click)=\"yearClick.emit(item)\"\n (tuiHoveredChange)=\"onItemHovered($event, item)\"\n >\n {{ item }}\n </div>\n </ng-container>\n</div>\n", styles: [".t-row{display:flex;justify-content:flex-start;font:var(--tui-font-text-m)}.t-row:first-child{justify-content:flex-end}.t-row:last-child{justify-content:flex-start}.t-cell{position:relative;display:flex;align-items:center;justify-content:center;line-height:2rem;isolation:isolate;cursor:pointer;overflow:hidden;border:.125rem solid transparent;box-sizing:border-box;mask:linear-gradient(transparent calc(50% - 1rem),#000 calc(50% - 1rem),#000 calc(50% + 1rem),transparent calc(50% + 1rem))}.t-cell:first-child{border-inline-start-color:transparent!important}.t-cell:last-child{border-inline-end-color:transparent!important}.t-cell:before,.t-cell:after{position:absolute;top:0;left:0;bottom:0;right:0;content:\"\";z-index:-1;border-radius:var(--tui-radius-m)}.t-cell:after{mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 12 32\"><path d=\"M0.2856 0L0.6763 0C2.9265 0 4.9876 1.259 6.0147 3.2611L10.2442 11.5048C11.5301 14.0113 11.5683 16.9754 10.3472 19.5141L5.9766 28.6007C4.9772 30.6786 2.8754 32 0.5696 32H0.285645V0Z\"></path></svg>') right / .75rem 100% no-repeat,linear-gradient(#000,#000) left / calc(100% - .7rem) 100% no-repeat}.t-cell[data-range]:before{background:var(--tui-background-neutral-1)}:host._picking .t-cell[data-range]:before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1)}:host._picking .t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]:not(:first-child):before{border-top-left-radius:0;border-bottom-left-radius:0}.t-cell[data-range=middle]:not(:last-child):before{border-top-right-radius:0;border-bottom-right-radius:0}.t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:not(:last-child):before{right:-1rem}.t-cell[data-range=start]:after{background:var(--tui-background-accent-1)}.t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=end]:not(:first-child):before{left:-1rem}.t-cell[data-range=end]:after{background:var(--tui-background-accent-1);transform:scaleX(-1)}.t-cell[data-range=active]{color:var(--tui-text-primary-on-accent-1)}.t-cell[data-range=active]:after{background:var(--tui-background-accent-1);mask:none}.t-cell_disabled{opacity:var(--tui-disabled-opacity);pointer-events:none}.t-cell_today{text-decoration:underline;text-underline-offset:.25rem}@media (hover: hover) and (pointer: fine){.t-cell:hover:not([data-range=start]):not([data-range=end]):before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:hover:after,.t-cell[data-range=end]:hover:after,.t-cell[data-range=active]:hover:after{background:var(--tui-background-accent-1-hover)}}:host{display:block;padding-inline-end:1rem;inline-size:15.75rem;padding:0 1.125rem}.t-cell{flex:1;border-block-start-width:.5rem;border-block-end-width:.5rem}\n"] }]
321
+ }, template: "<div\n *tuiRepeatTimes=\"let rowIndex of rows\"\n automation-id=\"tui-calendar-year__row\"\n class=\"t-row\"\n>\n <ng-container *tuiRepeatTimes=\"let colIndex of 4\">\n @let item = getItem(rowIndex, colIndex);\n <div\n automation-id=\"tui-calendar-year__cell\"\n class=\"t-cell\"\n [attr.data-range]=\"getItemRange(item)\"\n [class.t-cell_disabled]=\"isDisabled(item)\"\n [class.t-cell_today]=\"itemIsToday(item)\"\n [tuiScrollIntoView]=\"scrollItemIntoView(item)\"\n (click)=\"yearClick.emit(item)\"\n (tuiHoveredChange)=\"onItemHovered($event, item)\"\n >\n {{ item }}\n </div>\n </ng-container>\n</div>\n", styles: [".t-row{display:flex;justify-content:flex-start;font:var(--tui-font-text-m)}.t-row:first-child{justify-content:flex-end}.t-row:last-child{justify-content:flex-start}.t-cell{position:relative;display:flex;align-items:center;justify-content:center;line-height:2rem;isolation:isolate;cursor:pointer;overflow:hidden;border:.125rem solid transparent;box-sizing:border-box;mask:linear-gradient(transparent calc(50% - 1rem),#000 calc(50% - 1rem),#000 calc(50% + 1rem),transparent calc(50% + 1rem))}.t-cell:first-child{border-inline-start-color:transparent!important}.t-cell:last-child{border-inline-end-color:transparent!important}.t-cell:before,.t-cell:after{position:absolute;top:0;left:0;bottom:0;right:0;content:\"\";z-index:-1;border-radius:var(--tui-radius-m)}.t-cell:after{mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 12 32\"><path d=\"M0.2856 0L0.6763 0C2.9265 0 4.9876 1.259 6.0147 3.2611L10.2442 11.5048C11.5301 14.0113 11.5683 16.9754 10.3472 19.5141L5.9766 28.6007C4.9772 30.6786 2.8754 32 0.5696 32H0.285645V0Z\"></path></svg>') right / .75rem 100% no-repeat,linear-gradient(#000,#000) left / calc(100% - .7rem) 100% no-repeat}.t-cell[data-range]:before{background:var(--tui-background-neutral-1)}:host._picking .t-cell[data-range]:before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1)}:host._picking .t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]:not(:first-child):before{border-top-left-radius:0;border-bottom-left-radius:0}.t-cell[data-range=middle]:not(:last-child):before{border-top-right-radius:0;border-bottom-right-radius:0}.t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:not(:last-child):before{right:-1rem}.t-cell[data-range=start]:after{background:var(--tui-background-accent-1)}.t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=end]:not(:first-child):before{left:-1rem}.t-cell[data-range=end]:after{background:var(--tui-background-accent-1);transform:scaleX(-1)}.t-cell[data-range=active]{color:var(--tui-text-primary-on-accent-1)}.t-cell[data-range=active]:after{background:var(--tui-background-accent-1);mask:none}.t-cell_disabled{opacity:var(--tui-disabled-opacity);pointer-events:none}.t-cell_today{text-decoration:underline;text-underline-offset:.25rem}@media (hover: hover) and (pointer: fine){.t-cell:hover:not([data-range=start]):not([data-range=end]):before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:hover:after,.t-cell[data-range=end]:hover:after,.t-cell[data-range=active]:hover:after{background:var(--tui-background-accent-1-hover)}}:host{display:block;padding-inline-end:1rem;inline-size:15.75rem;padding:0 1.125rem}.t-cell{flex:1;border-block-start-width:.5rem;border-block-end-width:.5rem}\n"] }]
324
322
  }], propDecorators: { rangeMode: [{
325
323
  type: Input
326
324
  }], disabledItemHandler: [{